summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzuu <zuu@openttd.org>2013-09-13 21:34:32 +0000
committerzuu <zuu@openttd.org>2013-09-13 21:34:32 +0000
commit541fe1775afe65b69d1829361f809e4d08a12957 (patch)
tree0004086d388585e1cf1271545cec39f9375aafee
parente2c618eabaa951249ffb52fa2f3ce7db8e950af9 (diff)
downloadopenttd-541fe1775afe65b69d1829361f809e4d08a12957.tar.xz
(svn r25769) -Fix (r25344): Drawing of broken goal references was broken
-rw-r--r--src/lang/english.txt1
-rw-r--r--src/story_gui.cpp14
2 files changed, 7 insertions, 8 deletions
diff --git a/src/lang/english.txt b/src/lang/english.txt
index e66d12e0d..1d1ec731d 100644
--- a/src/lang/english.txt
+++ b/src/lang/english.txt
@@ -3027,6 +3027,7 @@ STR_STORY_BOOK_PREV_PAGE :{BLACK}Previous
STR_STORY_BOOK_PREV_PAGE_TOOLTIP :{BLACK}Go to previous page
STR_STORY_BOOK_NEXT_PAGE :{BLACK}Next
STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}Go to next page
+STR_STORY_BOOK_INVALID_GOAL_REF :{RED}Invalid goal reference
# Station list window
STR_STATION_LIST_TOOLTIP :{BLACK}Station names - click on name to centre main view on station. Ctrl+Click opens a new viewport on station location
diff --git a/src/story_gui.cpp b/src/story_gui.cpp
index 7ff268984..49913bbbf 100644
--- a/src/story_gui.cpp
+++ b/src/story_gui.cpp
@@ -367,9 +367,10 @@ protected:
* @param width Width of the region available for drawing.
* @param line_height Height of one line of text.
* @param action_sprite The sprite to draw.
+ * @param string_id The string id to draw.
* @return the number of lines.
*/
- void DrawActionElement(int &y_offset, int width, int line_height, SpriteID action_sprite) const
+ void DrawActionElement(int &y_offset, int width, int line_height, SpriteID action_sprite, StringID string_id = STR_JUST_RAW_STRING) const
{
Dimension sprite_dim = GetSpriteSize(action_sprite);
uint element_height = max(sprite_dim.height, (uint)line_height);
@@ -378,7 +379,7 @@ protected:
uint text_top = y_offset + (element_height - line_height) / 2;
DrawSprite(action_sprite, PAL_NONE, 0, sprite_top);
- DrawString(sprite_dim.width + WD_FRAMETEXT_LEFT, width, text_top, STR_JUST_RAW_STRING, TC_BLACK);
+ DrawString(sprite_dim.width + WD_FRAMETEXT_LEFT, width, text_top, string_id, TC_BLACK);
y_offset += element_height;
}
@@ -523,12 +524,9 @@ public:
case SPET_GOAL: {
Goal *g = Goal::Get((GoalID) pe->referenced_id);
- if (g != NULL) {
- SetDParamStr(0, g->text);
- DrawActionElement(y_offset, right - x, line_height, GetPageElementSprite(*pe));
- } else {
- y_offset += line_height;
- }
+ StringID string_id = g == NULL ? STR_STORY_BOOK_INVALID_GOAL_REF : STR_JUST_RAW_STRING;
+ if (g != NULL) SetDParamStr(0, g->text);
+ DrawActionElement(y_offset, right - x, line_height, GetPageElementSprite(*pe), string_id);
break;
}