summaryrefslogtreecommitdiff
path: root/src/engine.cpp
diff options
context:
space:
mode:
authorbjarni <bjarni@openttd.org>2007-04-20 16:56:55 +0000
committerbjarni <bjarni@openttd.org>2007-04-20 16:56:55 +0000
commit73875647b5bd3e6eb38a988197497fc6d48f602f (patch)
tree5ebbc58e20bc27e0078c3a734402509a3debef53 /src/engine.cpp
parentafea22e0138252c762943aba63f196642f27ce3c (diff)
downloadopenttd-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.cpp29
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
************************************************************************/