src/ai/api/ai_station.cpp
author truelight
Thu, 12 Jul 2007 15:51:19 +0000
branchnoai
changeset 9638 f6d169a5a45a
child 9648 760b7b504e37
permissions -rw-r--r--
(svn r10529) [NoAI] -Add: added AIStation to gather information about stations directly by Id, which is used now by AIStationList
/* $Id$ */

/** @file ai_station.cpp handles the functions of the AIStation class */

#include "ai_station.hpp"
#include "ai_cargo.hpp"
#include "../../station.h"

/* static */ bool AIStation::IsValidStation(StationID station_id)
{
	return ::IsValidStationID(station_id) && ::GetStation(station_id)->owner == _current_player;
}

/* static */ TileIndex AIStation::GetLocation(StationID station_id)
{
	if (!AIStation::IsValidStation(station_id)) return INVALID_TILE;

	return ::GetStation(station_id)->xy;
}

/* static */ int32 AIStation::GetCargoWaiting(StationID station_id, CargoID cargo_id)
{
	if (!AIStation::IsValidStation(station_id)) return -1;
	if (!AICargo::IsValidCargo(cargo_id)) return -1;

	return ::GetStation(station_id)->goods[cargo_id].cargo.Count();
}