diff options
-rw-r--r-- | gfx.c | 7 | ||||
-rw-r--r-- | gfx.h | 2 | ||||
-rw-r--r-- | vehicle_gui.c | 7 | ||||
-rw-r--r-- | vehicle_gui.h | 2 |
4 files changed, 11 insertions, 7 deletions
@@ -500,11 +500,13 @@ void DrawStringMultiCenter(int x, int y, StringID str, int maxw) } } -void DrawStringMultiLine(int x, int y, StringID str, int maxw) + +uint DrawStringMultiLine(int x, int y, StringID str, int maxw) { char buffer[512]; uint32 tmp; int num, mt; + uint total_height; const char *src; byte c; @@ -514,6 +516,7 @@ void DrawStringMultiLine(int x, int y, StringID str, int maxw) num = GB(tmp, 0, 16); mt = GetCharacterHeight(GB(tmp, 16, 16)); + total_height = (num + 1) * mt; src = buffer; @@ -527,7 +530,7 @@ void DrawStringMultiLine(int x, int y, StringID str, int maxw) y += mt; if (--num < 0) { _cur_fontsize = FS_NORMAL; - return; + return total_height; } break; } else if (c == ASCII_SETX) { @@ -70,7 +70,7 @@ void GfxDrawLine(int left, int top, int right, int bottom, int color); BoundingRect GetStringBoundingBox(const char *str); void LoadStringWidthTable(void); void DrawStringMultiCenter(int x, int y, StringID str, int maxw); -void DrawStringMultiLine(int x, int y, StringID str, int maxw); +uint DrawStringMultiLine(int x, int y, StringID str, int maxw); void DrawDirtyBlocks(void); void SetDirtyBlocks(int left, int top, int right, int bottom); void MarkWholeScreenDirty(void); diff --git a/vehicle_gui.c b/vehicle_gui.c index 9d8faa19a..b1b455b65 100644 --- a/vehicle_gui.c +++ b/vehicle_gui.c @@ -482,13 +482,14 @@ void ShowVehicleRefitWindow(const Vehicle *v, VehicleOrderID order) } /* Display additional text from NewGRF in the purchase information window */ -int ShowAdditionalText(int x, int y, int w, EngineID engine) +uint 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; + // STR_02BD is used to start the string with {BLACK} + SetDParam(0, GetGRFStringID(GetEngineGRFID(engine), 0xD000 + callback)); + return DrawStringMultiLine(x, y, STR_02BD, w); } diff --git a/vehicle_gui.h b/vehicle_gui.h index 733a14042..1b23a6399 100644 --- a/vehicle_gui.h +++ b/vehicle_gui.h @@ -50,7 +50,7 @@ void ShowBuildVehicleWindow(TileIndex tile, byte type); void ChangeVehicleViewWindow(const Vehicle *from_v, const Vehicle *to_v); -int ShowAdditionalText(int x, int y, int w, EngineID engine); +uint ShowAdditionalText(int x, int y, int w, EngineID engine); void ShowVehicleListWindow(PlayerID player, StationID station, byte vehicle_type); void ShowVehWithSharedOrders(Vehicle *v, byte vehicle_type); |