src/ai/api/ai_cargolist.cpp
author truebrain
Fri, 18 Jul 2008 00:15:14 +0000
branchnoai
changeset 11165 a725845fcc01
parent 11164 67338721eb26
permissions -rw-r--r--
(svn r13723) [NoAI] -Add: added AIIndustry::GetStockpiledCargo() (Yexo)
9820
8c116d4c6033 (svn r12423) [NoAI] -Change: bring a little more uniformness into the first few lines of the API related files (add missing /* $Id$ */ and such).
rubidium
parents: 9785
diff changeset
     1
/* $Id$ */
8c116d4c6033 (svn r12423) [NoAI] -Change: bring a little more uniformness into the first few lines of the API related files (add missing /* $Id$ */ and such).
rubidium
parents: 9785
diff changeset
     2
9833
89a64246458f (svn r12496) [NoAI] -Documentation: give the .cpp files a nice uniform format too
truebrain
parents: 9820
diff changeset
     3
/** @file ai_cargolist.cpp Implementation of AICargoList and friends. */
9820
8c116d4c6033 (svn r12423) [NoAI] -Change: bring a little more uniformness into the first few lines of the API related files (add missing /* $Id$ */ and such).
rubidium
parents: 9785
diff changeset
     4
9785
edbd185e05ed (svn r12280) [NoAI] -Add: added AICargoList (Morloth)
truebrain
parents:
diff changeset
     5
#include "ai_cargolist.hpp"
11164
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
     6
#include "ai_industry.hpp"
10339
ce6cd68d9eb8 (svn r12880) [NoAI] -Add: introduces ai_types.hpp, which has all NNNId like VehicleID. This simplifies the include-mess, and avoids including tons of _type.h for just a single typedef.
truebrain
parents: 9833
diff changeset
     7
#include "../../openttd.h"
9785
edbd185e05ed (svn r12280) [NoAI] -Add: added AICargoList (Morloth)
truebrain
parents:
diff changeset
     8
#include "../../cargotype.h"
11164
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
     9
#include "../../industry.h"
9785
edbd185e05ed (svn r12280) [NoAI] -Add: added AICargoList (Morloth)
truebrain
parents:
diff changeset
    10
edbd185e05ed (svn r12280) [NoAI] -Add: added AICargoList (Morloth)
truebrain
parents:
diff changeset
    11
AICargoList::AICargoList()
edbd185e05ed (svn r12280) [NoAI] -Add: added AICargoList (Morloth)
truebrain
parents:
diff changeset
    12
{
edbd185e05ed (svn r12280) [NoAI] -Add: added AICargoList (Morloth)
truebrain
parents:
diff changeset
    13
	for (byte i = 0; i < NUM_CARGO; i++) {
edbd185e05ed (svn r12280) [NoAI] -Add: added AICargoList (Morloth)
truebrain
parents:
diff changeset
    14
		const CargoSpec *c = ::GetCargo(i);
edbd185e05ed (svn r12280) [NoAI] -Add: added AICargoList (Morloth)
truebrain
parents:
diff changeset
    15
		if (c->IsValid()) {
edbd185e05ed (svn r12280) [NoAI] -Add: added AICargoList (Morloth)
truebrain
parents:
diff changeset
    16
			this->AddItem(i);
edbd185e05ed (svn r12280) [NoAI] -Add: added AICargoList (Morloth)
truebrain
parents:
diff changeset
    17
		}
edbd185e05ed (svn r12280) [NoAI] -Add: added AICargoList (Morloth)
truebrain
parents:
diff changeset
    18
	}
edbd185e05ed (svn r12280) [NoAI] -Add: added AICargoList (Morloth)
truebrain
parents:
diff changeset
    19
}
edbd185e05ed (svn r12280) [NoAI] -Add: added AICargoList (Morloth)
truebrain
parents:
diff changeset
    20
11164
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    21
AICargoList_IndustryAccepting::AICargoList_IndustryAccepting(IndustryID industry_id)
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    22
{
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    23
	if (!AIIndustry::IsValidIndustry(industry_id)) return;
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    24
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    25
	Industry *ind = ::GetIndustry(industry_id);
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    26
	for (uint i = 0; i < lengthof(ind->accepts_cargo); i++) {
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    27
		CargoID cargo_id = ind->accepts_cargo[i];
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    28
		if (cargo_id != CT_INVALID) {
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    29
			this->AddItem(cargo_id);
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    30
		}
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    31
	}
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    32
}
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    33
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    34
AICargoList_IndustryProducing::AICargoList_IndustryProducing(IndustryID industry_id)
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    35
{
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    36
	if (!AIIndustry::IsValidIndustry(industry_id)) return;
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    37
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    38
	Industry *ind = ::GetIndustry(industry_id);
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    39
	for (uint i = 0; i < lengthof(ind->produced_cargo); i++) {
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    40
		CargoID cargo_id = ind->produced_cargo[i];
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    41
		if (cargo_id != CT_INVALID) {
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    42
			this->AddItem(cargo_id);
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    43
		}
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    44
	}
67338721eb26 (svn r13722) [NoAI] -Add: AICargoList_IndustryNNN (Yexo)
truebrain
parents: 10339
diff changeset
    45
}