(svn r14184) -Codechange: [NewGRF] Since our NewGRF handling is better than it used to be, disable a NewGRF if unexpected sprites are reached.

This commit is contained in:
peter1138 2008-08-29 20:03:51 +00:00
parent 06777f7efc
commit 4c56b827e5
2 changed files with 9 additions and 1 deletions

View File

@ -3216,6 +3216,7 @@ STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{SKIP}{STRING1}
STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :the GRF file it was designed to translate
STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Too many NewGRFs are loaded.
STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Loading {RAW_STRING} as static NewGRF with {RAW_STRING} could cause desyncs.
STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Unexpected sprite.
STR_NEWGRF_PRESET_LIST_TIP :{BLACK}Load the selected preset
STR_NEWGRF_PRESET_SAVE :{BLACK}Save preset

View File

@ -5918,7 +5918,14 @@ void LoadNewGRFFile(GRFConfig *config, uint file_index, GrfLoadingStage stage)
FioSkipBytes(num);
}
} else {
if (_skip_sprites == 0) grfmsg(7, "LoadNewGRFFile: Skipping unexpected sprite");
if (_skip_sprites == 0) {
grfmsg(0, "LoadNewGRFFile: Unexpected sprite, disabling");
config->status = GCS_DISABLED;
config->error = CallocT<GRFError>(1);
config->error->severity = STR_NEWGRF_ERROR_MSG_FATAL;
config->error->message = STR_NEWGRF_ERROR_UNEXPECTED_SPRITE;
break;
}
FioSkipBytes(7);
num -= 8;