From efd0d2d2b73a0e207fcf77179c944e404081d8e6 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 23 Apr 2006 22:33:10 +0000 Subject: [PATCH] (svn r4561) - NewGRF: implement most of callback 0x23: additional text in vehicle purchase windows. --- newgrf_callbacks.h | 4 ++++ vehicle_gui.c | 12 ++++++++++++ vehicle_gui.h | 1 + 3 files changed, 17 insertions(+) diff --git a/newgrf_callbacks.h b/newgrf_callbacks.h index 228b46af21..0d591067b9 100644 --- a/newgrf_callbacks.h +++ b/newgrf_callbacks.h @@ -24,6 +24,10 @@ enum CallbackID { 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, }; /** diff --git a/vehicle_gui.c b/vehicle_gui.c index 97396546ec..3ed835f2e8 100644 --- 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 @@ CargoID DrawVehicleRefitWindow(const Vehicle *v, int sel) 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) { diff --git a/vehicle_gui.h b/vehicle_gui.h index cf081130cc..74a1835f15 100644 --- a/vehicle_gui.h +++ b/vehicle_gui.h @@ -62,6 +62,7 @@ void DrawShipPurchaseInfo(int x, int y, EngineID engine_number); 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 */