diff options
author | peter1138 <peter1138@openttd.org> | 2006-10-23 18:13:24 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2006-10-23 18:13:24 +0000 |
commit | 61611711e39630308b0742fb890a2fc240d6ddc7 (patch) | |
tree | 16abfe336e37ba9af9b92ca92f778be77e7c68a0 | |
parent | ba60e4ac3428f20f74e635ea9ac1f729e1aa16a9 (diff) | |
download | openttd-61611711e39630308b0742fb890a2fc240d6ddc7.tar.xz |
(svn r6908) - Codechange: Modify DrawStringMultiLine() to return the number of pixel lines used, and use it for drawing NewGRF additional text (mart3p)
-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); |