Mercurial > hg > openttd
changeset 6103:e3a3a903fa28 draft
(svn r8838) -Feature: Show newgrf error messages loaded in Action B in the newgrf gui
window. GRFs with an error have a warning symbol shown before the name.
author | maedhros <maedhros@openttd.org> |
---|---|
date | Wed, 21 Feb 2007 23:18:08 +0000 |
parents | 02d711c318c9 |
children | a4daf7c49a8f |
files | bin/data/openttd.grf src/gfxinit.cpp src/lang/english.txt src/newgrf.cpp src/newgrf_config.cpp src/newgrf_config.h src/newgrf_gui.cpp src/table/files.h src/table/sprites.h |
diffstat | 9 files changed, 25 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
index 95ec41dbbfd45a77def87393839a5941510c3958..30f54a294ee8172c5ff52090be14f014a8c009a8 GIT binary patch literal 30508 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 M8ioNcjY#MCFY9-1kpKVy
--- a/src/gfxinit.cpp +++ b/src/gfxinit.cpp @@ -333,6 +333,7 @@ 377, 377, // · small 153, 153, // · medium 601, 601, // · large + SPR_WARNING_SIGN, SPR_WARNING_SIGN, END };
--- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -2896,6 +2896,7 @@ STR_NEWGRF_SET_PARAMETERS :{BLACK}Set parameters STR_NEWGRF_TIP :{BLACK}A list of all the Newgrf sets that you have installed. Click a set to change the settings STR_NEWGRF_NO_FILES_INSTALLED :{BLACK}There are currently no newgrf files installed! Please refer to the manual for instructions on installing new graphics +STR_NEWGRF_ERROR_MSG :{RED}{STRING} STR_NEWGRF_FILENAME :{BLACK}Filename: {SILVER}{STRING} STR_NEWGRF_GRF_ID :{BLACK}GRF ID: {SILVER}{STRING} STR_NEWGRF_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING}
--- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -2712,7 +2712,14 @@ return; } - grfmsg(0, msgstr[(message_id == 0xFF) ? lengthof(msgstr) - 1 : message_id], sevstr[severity], grf_load_string(&buf, len)); + char message[512]; + snprintf(message, lengthof(message), msgstr[(message_id == 0xFF) ? lengthof(msgstr) - 1 : message_id], sevstr[severity], grf_load_string(&buf, len)); + + if (_cur_grfconfig->error == NULL) { + _cur_grfconfig->error = strdup(message); + } + + grfmsg(0, message); } /* Action 0x0C */
--- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -91,6 +91,7 @@ free((*config)->filename); free((*config)->name); free((*config)->info); + free((*config)->error); } free(*config); *config = NULL; @@ -123,6 +124,7 @@ if (src->filename != NULL) c->filename = strdup(src->filename); if (src->name != NULL) c->name = strdup(src->name); if (src->info != NULL) c->info = strdup(src->info); + if (src->error != NULL) c->error = strdup(src->error); *dst = c; dst = &c->next; @@ -252,6 +254,7 @@ memcpy(c->md5sum, f->md5sum, sizeof(c->md5sum)); if (c->name == NULL) c->name = strdup(f->name); if (c->info == NULL) c->info = strdup(f->info); + c->error = NULL; } } }
--- a/src/newgrf_config.h +++ b/src/newgrf_config.h @@ -24,6 +24,7 @@ char *filename; char *name; char *info; + char *error; uint8 flags; uint32 param[0x80];
--- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -43,6 +43,11 @@ { char buff[256]; + if (c->error != NULL) { + SetDParamStr(0, c->error); + y += DrawStringMultiLine(x, y, STR_NEWGRF_ERROR_MSG, w); + } + /* Draw filename or not if it is not known (GRF sent over internet) */ if (c->filename != NULL) { SetDParamStr(0, c->filename); @@ -328,7 +333,8 @@ } DrawSprite(SPR_SQUARE, pal, 5, y + 2); - DoDrawString(text, 25, y + 3, WP(w, newgrf_d).sel == c ? 0xC : 0x10); + if (c->error != NULL) DrawSprite(SPR_WARNING_SIGN, 0, 20, y + 2); + DoDrawString(text, c->error != NULL ? 35 : 25, y + 3, WP(w, newgrf_d).sel == c ? 0xC : 0x10); y += 14; } }
--- a/src/table/files.h +++ b/src/table/files.h @@ -59,7 +59,7 @@ { "autorail.grf", { 0xed, 0x44, 0x7f, 0xbb, 0x19, 0x44, 0x48, 0x4c, 0x07, 0x8a, 0xb1, 0xc1, 0x5c, 0x12, 0x3a, 0x60 } }, { "canalsw.grf", { 0x13, 0x9c, 0x98, 0xcf, 0xb8, 0x7c, 0xd7, 0x1f, 0xca, 0x34, 0xa5, 0x6b, 0x65, 0x31, 0xec, 0x0f } }, { "elrailsw.grf", { 0x4f, 0xf9, 0xac, 0x79, 0x50, 0x28, 0x9b, 0xe2, 0x15, 0x30, 0xa8, 0x1e, 0xd5, 0xfd, 0xe1, 0xda } }, - { "openttd.grf", { 0x59, 0x22, 0x19, 0xe0, 0x6e, 0xe7, 0xb6, 0xa3, 0x55, 0x53, 0xcc, 0x9e, 0xbc, 0xaf, 0xcc, 0x83 } }, + { "openttd.grf", { 0x10, 0xc1, 0x68, 0x56, 0x9e, 0x1e, 0x0e, 0x85, 0x9d, 0xf8, 0x53, 0x27, 0x48, 0x7e, 0x17, 0x58 } }, { "trkfoundw.grf", { 0x12, 0x33, 0x3f, 0xa3, 0xd1, 0x86, 0x8b, 0x04, 0x53, 0x18, 0x9c, 0xee, 0xf9, 0x2d, 0xf5, 0x95 } }, { "roadstops.grf", { 0x8c, 0xd9, 0x45, 0x21, 0x28, 0x82, 0x96, 0x45, 0x33, 0x22, 0x7a, 0xb9, 0x0d, 0xf3, 0x67, 0x4a } }, };
--- a/src/table/sprites.h +++ b/src/table/sprites.h @@ -48,7 +48,7 @@ SPR_ASCII_SPACE_BIG = 450, /* Extra graphic spritenumbers */ - OPENTTD_SPRITES_COUNT = 116, // number of gfx-sprites in openttd.grf + OPENTTD_SPRITES_COUNT = 117, // number of gfx-sprites in openttd.grf SPR_SIGNALS_BASE = 4896, SPR_CANALS_BASE = SPR_SIGNALS_BASE + 486, SPR_SLOPES_BASE = SPR_CANALS_BASE + 70, @@ -95,6 +95,8 @@ SPR_SHARED_ORDERS_ICON = SPR_OPENTTD_BASE + 115, + SPR_WARNING_SIGN = SPR_OPENTTD_BASE + 116, // warning sign (shown if there are any newgrf errors) + /* Network GUI sprites */ SPR_SQUARE = SPR_OPENTTD_BASE + 20, // colored square (used for newgrf compatibility) SPR_LOCK = SPR_OPENTTD_BASE + 19, // lock icon (for password protected servers)