changeset 3650:dfb952f78e05 draft

(svn r4561) - NewGRF: implement most of callback 0x23: additional text in vehicle purchase windows.
author peter1138 <peter1138@openttd.org>
date Sun, 23 Apr 2006 22:33:10 +0000
parents 42d25288b84c
children 2223302eff46
files newgrf_callbacks.h vehicle_gui.c vehicle_gui.h
diffstat 3 files changed, 17 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/newgrf_callbacks.h
+++ b/newgrf_callbacks.h
@@ -24,6 +24,10 @@
 	CBID_VEHICLE_REFIT_CAPACITY     = 0x15,
 
 	CBID_TRAIN_ARTIC_ENGINE         = 0x16,
+
+	/* This callback is called from vehicle purchase lists. It returns a value to be
+	 * used as a custom string ID in the 0xD000 range. */
+	CBID_VEHICLE_ADDITIONAL_TEXT    = 0x23,
 };
 
 /**
--- a/vehicle_gui.c
+++ b/vehicle_gui.c
@@ -19,7 +19,9 @@
 #include "vehicle_gui.h"
 #include "viewport.h"
 #include "train.h"
+#include "newgrf_callbacks.h"
 #include "newgrf_engine.h"
+#include "newgrf_text.h"
 
 Sorting _sorting;
 
@@ -256,6 +258,16 @@
 	return cargo;
 }
 
+/* Display additional text from NewGRF in the purchase information window */
+int ShowAdditionalText(int x, int y, int w, EngineID engine)
+{
+	uint16 callback = GetVehicleCallback(CBID_VEHICLE_ADDITIONAL_TEXT, 0, 0, engine, NULL);
+	if (callback == CALLBACK_FAILED) return 0;
+
+	DrawStringTruncated(x, y, GetGRFStringID(GetEngineGRFID(engine), 0xD000 + callback), 16, w);
+	return 10;
+}
+
 /************ Sorter functions *****************/
 int CDECL GeneralOwnerSorter(const void *a, const void *b)
 {
--- a/vehicle_gui.h
+++ b/vehicle_gui.h
@@ -62,6 +62,7 @@
 
 void ChangeVehicleViewWindow(const Vehicle *from_v, const Vehicle *to_v);
 
+int ShowAdditionalText(int x, int y, int w, EngineID engine_number);
 
 
 #endif /* VEHICLE_GUI_H */