changeset 3987:1fde440441eb draft

(svn r5186) - NewGRF: show default aircraft cargo type and the purchase list (mart3p)
author peter1138 <peter1138@openttd.org>
date Fri, 09 Jun 2006 06:34:28 +0000
parents cd3843a5859b
children f0035479f4a4
files aircraft.h aircraft_cmd.c aircraft_gui.c
diffstat 3 files changed, 22 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/aircraft.h
+++ b/aircraft.h
@@ -1,5 +1,8 @@
 /* $Id$ */
 
+#ifndef AIRCRAFT_H
+#define AIRCRAFT_H
+
 #include "station_map.h"
 #include "vehicle.h"
 
@@ -14,3 +17,7 @@
 {
 	return IsAircraftInHangar(v) && v->vehstatus & VS_STOPPED;
 }
+
+uint16 AircraftDefaultCargoCapacity(CargoID cid, EngineID engine_type);
+
+#endif /* AIRCRAFT_H */
--- a/aircraft_cmd.c
+++ b/aircraft_cmd.c
@@ -164,7 +164,7 @@
  * @param engine Which engine to find a cargo capacity for.
  * @return New cargo capacity value.
  */
-static uint16 AircraftDefaultCargoCapacity(CargoID cid, EngineID engine_type)
+uint16 AircraftDefaultCargoCapacity(CargoID cid, EngineID engine_type)
 {
 	const AircraftVehicleInfo *avi = AircraftVehInfo(engine_type);
 
--- a/aircraft_gui.c
+++ b/aircraft_gui.c
@@ -32,6 +32,7 @@
 {
 	const AircraftVehicleInfo *avi = AircraftVehInfo(engine_number);
 	const Engine* e = GetEngine(engine_number);
+	CargoID cargo;
 	YearMonthDay ymd;
 	ConvertDayToYMD(&ymd, e->intro_date);
 
@@ -42,9 +43,19 @@
 	y += 10;
 
 	/* Cargo capacity */
-	SetDParam(0, avi->passenger_capacity);
-	SetDParam(1, avi->mail_capacity);
-	DrawString(x, y, STR_PURCHASE_INFO_AIRCRAFT_CAPACITY, 0);
+	cargo = FindFirstRefittableCargo(engine_number);
+	if (cargo == CT_INVALID || cargo == CT_PASSENGERS) {
+		SetDParam(0, avi->passenger_capacity);
+		SetDParam(1, avi->mail_capacity);
+		DrawString(x, y, STR_PURCHASE_INFO_AIRCRAFT_CAPACITY, 0);
+	} else {
+		/* Note, if the default capacity is selected by the refit capacity
+		 * callback, then the capacity shown is likely to be incorrect. */
+		SetDParam(0, _cargoc.names_long[cargo]);
+		SetDParam(1, AircraftDefaultCargoCapacity(cargo, engine_number));
+		SetDParam(2, STR_9842_REFITTABLE);
+		DrawString(x, y, STR_PURCHASE_INFO_CAPACITY, 0);
+	}
 	y += 10;
 
 	/* Running cost */