diff --git a/src/story_gui.cpp b/src/story_gui.cpp --- 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; }