summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris <eratonysiad@gmail.com>2021-04-27 18:57:53 +0200
committerGitHub <noreply@github.com>2021-04-27 17:57:53 +0100
commita934dfe0be9621b784ccd1dca81d2ef8214fc4e0 (patch)
tree197cd82087d41b20091c979dc83f03086c7f658e
parent8ea06128be7b33749546500c9f2159b9d43f07a1 (diff)
downloadopenttd-a934dfe0be9621b784ccd1dca81d2ef8214fc4e0.tar.xz
Fix: [NewGRF] Errors with severity ERROR also display a pop-up window (#9119)
-rw-r--r--src/lang/english.txt1
-rw-r--r--src/newgrf_gui.cpp10
2 files changed, 8 insertions, 3 deletions
diff --git a/src/lang/english.txt b/src/lang/english.txt
index 46a8492c9..3037bf90f 100644
--- a/src/lang/english.txt
+++ b/src/lang/english.txt
@@ -3079,6 +3079,7 @@ STR_NEWGRF_ERROR_MSG_WARNING :{RED}Warning: {
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Error: {SILVER}{RAW_STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Fatal: {SILVER}{RAW_STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}A fatal NewGRF error has occurred: {}{STRING5}
+STR_NEWGRF_ERROR_POPUP :{WHITE}A NewGRF error has occurred: {}{STRING5}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:RAW_STRING} will not work with the TTDPatch version reported by OpenTTD
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:RAW_STRING} is for the {RAW_STRING} version of TTD
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:RAW_STRING} is designed to be used with {RAW_STRING}
diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp
index fe2510f74..3465a9437 100644
--- a/src/newgrf_gui.cpp
+++ b/src/newgrf_gui.cpp
@@ -47,8 +47,8 @@ void ShowNewGRFError()
if (_game_mode == GM_MENU) return;
for (const GRFConfig *c = _grfconfig; c != nullptr; c = c->next) {
- /* We only want to show fatal errors */
- if (c->error == nullptr || c->error->severity != STR_NEWGRF_ERROR_MSG_FATAL) continue;
+ /* Only show Fatal and Error level messages */
+ if (c->error == nullptr || (c->error->severity != STR_NEWGRF_ERROR_MSG_FATAL && c->error->severity != STR_NEWGRF_ERROR_MSG_ERROR)) continue;
SetDParam (0, c->error->message != STR_NULL ? c->error->message : STR_JUST_RAW_STRING);
SetDParamStr(1, c->error->custom_message.c_str());
@@ -57,7 +57,11 @@ void ShowNewGRFError()
for (uint i = 0; i < lengthof(c->error->param_value); i++) {
SetDParam(4 + i, c->error->param_value[i]);
}
- ShowErrorMessage(STR_NEWGRF_ERROR_FATAL_POPUP, INVALID_STRING_ID, WL_CRITICAL);
+ if (c->error->severity == STR_NEWGRF_ERROR_MSG_FATAL) {
+ ShowErrorMessage(STR_NEWGRF_ERROR_FATAL_POPUP, INVALID_STRING_ID, WL_CRITICAL);
+ } else {
+ ShowErrorMessage(STR_NEWGRF_ERROR_POPUP, INVALID_STRING_ID, WL_ERROR);
+ }
break;
}
}