src/engine.cpp
branchcpp_gui
changeset 6308 646711c5feaa
parent 6298 c30fe89622df
--- a/src/engine.cpp	Sun Apr 15 17:04:44 2007 +0000
+++ b/src/engine.cpp	Sat Apr 21 08:23:57 2007 +0000
@@ -249,6 +249,7 @@
 /** Accept an engine prototype. XXX - it is possible that the top-player
  * changes while you are waiting to accept the offer? Then it becomes invalid
  * @param tile unused
+ * @param flags operation to perfom
  * @param p1 engine-prototype offered
  * @param p2 unused
  */
@@ -350,6 +351,7 @@
 
 /** Rename an engine.
  * @param tile unused
+ * @param flags operation to perfom
  * @param p1 engine ID to rename
  * @param p2 unused
  */
@@ -402,6 +404,35 @@
 	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
  ************************************************************************/