From 73875647b5bd3e6eb38a988197497fc6d48f602f Mon Sep 17 00:00:00 2001 From: bjarni Date: Fri, 20 Apr 2007 16:56:55 +0000 Subject: (svn r9688) -Codechange: Created a function to get default cargo type for a cargo type --- src/engine.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/engine.cpp') diff --git a/src/engine.cpp b/src/engine.cpp index 4a0b27161..41a7bbeaa 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -404,6 +404,35 @@ bool IsEngineBuildable(EngineID engine, byte type, PlayerID player) return true; } +/** Get the default cargo type for a certain engine type + * @param engine The ID to get the cargo for + * @return The cargo type. CT_INVALID means no cargo capacity + */ +CargoID GetEngineCargoType(EngineID engine) +{ + assert(IsEngineIndex(engine)); + + switch (GetEngine(engine)->type) { + case VEH_TRAIN: + if (RailVehInfo(engine)->capacity == 0) return CT_INVALID; + return RailVehInfo(engine)->cargo_type; + + case VEH_ROAD: + if (RoadVehInfo(engine)->capacity == 0) return CT_INVALID; + return RoadVehInfo(engine)->cargo_type; + + case VEH_SHIP: + if (ShipVehInfo(engine)->capacity == 0) return CT_INVALID; + return ShipVehInfo(engine)->cargo_type; + + case VEH_AIRCRAFT: + /* all aircraft starts as passenger planes with cargo capacity */ + return CT_PASSENGERS; + + default: NOT_REACHED(); return CT_INVALID; + } +} + /************************************************************************ * Engine Replacement stuff ************************************************************************/ -- cgit v1.2.3-54-g00ecf