Index: src/newgrf_gui.cpp =================================================================== --- src/newgrf_gui.cpp (revision 22876) +++ src/newgrf_gui.cpp (working copy) @@ -57,6 +57,9 @@ static void ShowNewGRFInfo(const GRFConfig *c, uint x, uint y, uint right, uint bottom, bool show_params) { + char buff[256]; + uint vsep_y; + if (c->error != NULL) { char message[512]; SetDParamStr(0, c->error->custom_message); // is skipped by built-in messages @@ -71,20 +74,17 @@ SetDParamStr(0, message); y = DrawStringMultiLine(x, right, y, bottom, c->error->severity); + y += WD_PAR_VSEP_WIDE; } + vsep_y = y; + /* Draw filename or not if it is not known (GRF sent over internet) */ if (c->filename != NULL) { SetDParamStr(0, c->filename); y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_FILENAME); } - /* Prepare and draw GRF ID */ - char buff[256]; - snprintf(buff, lengthof(buff), "%08X", BSWAP32(c->ident.grfid)); - SetDParamStr(0, buff); - y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_GRF_ID); - if ((_settings_client.gui.newgrf_developer_tools || _settings_client.gui.newgrf_show_old_versions) && c->version != 0) { SetDParam(0, c->version); y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_VERSION); @@ -94,11 +94,22 @@ y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_MIN_VERSION); } - /* Prepare and draw MD5 sum */ - md5sumToString(buff, lastof(buff), c->ident.md5sum); - SetDParamStr(0, buff); - y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_MD5SUM); + if (y != vsep_y) { + y += WD_PAR_VSEP_WIDE; + vsep_y = y; + } + /* Show flags */ + if (c->status == GCS_NOT_FOUND) y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_NOT_FOUND); + if (c->status == GCS_DISABLED) y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_DISABLED); + if (HasBit(c->flags, GCF_INVALID)) y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_INCOMPATIBLE); + if (HasBit(c->flags, GCF_COMPATIBLE)) y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_COMPATIBLE_LOADED); + + if (y != vsep_y) { + y += WD_PAR_VSEP_WIDE; + vsep_y = y; + } + /* Show GRF parameter list */ if (show_params) { if (c->num_params > 0) { @@ -115,12 +126,20 @@ y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_PALETTE); } - /* Show flags */ - if (c->status == GCS_NOT_FOUND) y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_NOT_FOUND); - if (c->status == GCS_DISABLED) y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_DISABLED); - if (HasBit(c->flags, GCF_INVALID)) y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_INCOMPATIBLE); - if (HasBit(c->flags, GCF_COMPATIBLE)) y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_COMPATIBLE_LOADED); + if (y != vsep_y) y += WD_PAR_VSEP_WIDE; + /* Prepare and draw GRF ID */ + snprintf(buff, lengthof(buff), "%08X", BSWAP32(c->ident.grfid)); + SetDParamStr(0, buff); + y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_GRF_ID); + + /* Prepare and draw MD5 sum */ + md5sumToString(buff, lastof(buff), c->ident.md5sum); + SetDParamStr(0, buff); + y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_MD5SUM); + + y += WD_PAR_VSEP_WIDE; + /* Draw GRF info if it exists */ if (!StrEmpty(c->GetDescription())) { SetDParam(0, STR_JUST_RAW_STRING);