(svn r4561) - NewGRF: implement most of callback 0x23: additional text in vehicle purchase windows.
authorpeter1138
Sun, 23 Apr 2006 22:33:10 +0000
changeset 3650 4dd8517bdcf6
parent 3649 56d941304eef
child 3651 f2998a6a190d
(svn r4561) - NewGRF: implement most of callback 0x23: additional text in vehicle purchase windows.
newgrf_callbacks.h
vehicle_gui.c
vehicle_gui.h
--- a/newgrf_callbacks.h	Sun Apr 23 22:28:26 2006 +0000
+++ b/newgrf_callbacks.h	Sun Apr 23 22:33:10 2006 +0000
@@ -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	Sun Apr 23 22:28:26 2006 +0000
+++ b/vehicle_gui.c	Sun Apr 23 22:33:10 2006 +0000
@@ -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	Sun Apr 23 22:28:26 2006 +0000
+++ b/vehicle_gui.h	Sun Apr 23 22:33:10 2006 +0000
@@ -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 */