diff options
author | bjarni <bjarni@openttd.org> | 2007-04-20 16:56:55 +0000 |
---|---|---|
committer | bjarni <bjarni@openttd.org> | 2007-04-20 16:56:55 +0000 |
commit | 73875647b5bd3e6eb38a988197497fc6d48f602f (patch) | |
tree | 5ebbc58e20bc27e0078c3a734402509a3debef53 /src/engine.cpp | |
parent | afea22e0138252c762943aba63f196642f27ce3c (diff) | |
download | openttd-73875647b5bd3e6eb38a988197497fc6d48f602f.tar.xz |
(svn r9688) -Codechange: Created a function to get default cargo type for a cargo type
Diffstat (limited to 'src/engine.cpp')
-rw-r--r-- | src/engine.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
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 ************************************************************************/ |