Files
@ r12072:bcf36828afcb
Branch filter:
Location: cpp/openttd-patchpack/source/src/ai/api/ai_event_types.cpp - annotation
r12072:bcf36828afcb
2.0 KiB
text/x-c
(svn r16486) -Codechange [FS#2939]: Added widget numbers to the airport toolbar (based on work by erikjanp)
r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r11756:1996f11774e0 r11403:ba31da6812eb r10696:8dfe83e30d01 r10960:e97ebf9cf99b r11403:ba31da6812eb r11403:ba31da6812eb r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10790:a63d33c87344 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r11917:612c11f7ab47 r11188:143f3c64befd r11188:143f3c64befd r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r11917:612c11f7ab47 r11350:df593340eca2 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r11350:df593340eca2 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r11350:df593340eca2 r11350:df593340eca2 r11403:ba31da6812eb r11350:df593340eca2 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r11917:612c11f7ab47 r10969:8b8a9653d684 r10967:2c98940d6c64 r10967:2c98940d6c64 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r11917:612c11f7ab47 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r11917:612c11f7ab47 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r11756:1996f11774e0 r10696:8dfe83e30d01 r11917:612c11f7ab47 r10769:860dac73eb3e r10769:860dac73eb3e r10769:860dac73eb3e r10769:860dac73eb3e r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 | /* $Id$ */
/** @file ai_event_types.cpp Implementation of all EventTypes. */
#include "ai_event_types.hpp"
#include "ai_vehicle.hpp"
#include "../../command_type.h"
#include "../../strings_func.h"
#include "../../settings_type.h"
#include "../../rail.h"
#include "../../engine_base.h"
#include "../../articulated_vehicles.h"
#include "table/strings.h"
char *AIEventEnginePreview::GetName()
{
static const int len = 64;
char *engine_name = MallocT<char>(len);
::SetDParam(0, engine);
::GetString(engine_name, STR_ENGINE_NAME, &engine_name[len - 1]);
return engine_name;
}
CargoID AIEventEnginePreview::GetCargoType()
{
const Engine *e = ::Engine::Get(engine);
if (!e->CanCarryCargo()) return CT_INVALID;
return e->GetDefaultCargoType();
}
int32 AIEventEnginePreview::GetCapacity()
{
const Engine *e = ::Engine::Get(engine);
switch (e->type) {
case VEH_ROAD:
case VEH_TRAIN: {
uint16 *capacities = GetCapacityOfArticulatedParts(engine, e->type);
for (CargoID c = 0; c < NUM_CARGO; c++) {
if (capacities[c] == 0) continue;
return capacities[c];
}
return -1;
} break;
case VEH_SHIP:
case VEH_AIRCRAFT:
return e->GetDisplayDefaultCapacity();
break;
default: NOT_REACHED();
}
}
int32 AIEventEnginePreview::GetMaxSpeed()
{
const Engine *e = ::Engine::Get(engine);
int32 max_speed = e->GetDisplayMaxSpeed(); // km-ish/h
if (e->type == VEH_AIRCRAFT) max_speed /= _settings_game.vehicle.plane_speed;
return max_speed;
}
Money AIEventEnginePreview::GetPrice()
{
return ::Engine::Get(engine)->GetCost();
}
Money AIEventEnginePreview::GetRunningCost()
{
return ::Engine::Get(engine)->GetRunningCost();
}
int32 AIEventEnginePreview::GetVehicleType()
{
switch (::Engine::Get(engine)->type) {
case VEH_ROAD: return AIVehicle::VT_ROAD;
case VEH_TRAIN: return AIVehicle::VT_RAIL;
case VEH_SHIP: return AIVehicle::VT_WATER;
case VEH_AIRCRAFT: return AIVehicle::VT_AIR;
default: NOT_REACHED();
}
}
bool AIEventEnginePreview::AcceptPreview()
{
return AIObject::DoCommand(0, engine, 0, CMD_WANT_ENGINE_PREVIEW);
}
|