mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2026-07-15 15:19:52 +00:00
Codechange: make WarningLevel a scoped enum (#15622)
This commit is contained in:
+1
-1
@@ -293,7 +293,7 @@ struct AIConfigWindow : public Window {
|
||||
|
||||
case WID_AIC_CONTENT_DOWNLOAD:
|
||||
if (!_network_available) {
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NOTAVAILABLE), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NOTAVAILABLE), {}, WarningLevel::Error);
|
||||
} else {
|
||||
ShowNetworkContentListWindow(nullptr, ContentType::Ai);
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ void AIInstance::Died()
|
||||
|
||||
const AIInfo *info = AIConfig::GetConfig(_current_company)->GetInfo();
|
||||
if (info != nullptr) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_AI_PLEASE_REPORT_CRASH), {}, WL_WARNING);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_AI_PLEASE_REPORT_CRASH), {}, WarningLevel::Warning);
|
||||
|
||||
if (!info->GetURL().empty()) {
|
||||
ScriptLog::Info("Please report the error to the following URL:");
|
||||
|
||||
+1
-1
@@ -152,7 +152,7 @@ static int32_t ClickChangeMaxHlCheat(int32_t new_value, int32_t)
|
||||
* If yes, disallow the change. */
|
||||
for (const auto t : Map::Iterate()) {
|
||||
if ((int32_t)TileHeight(t) > new_value) {
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN), {}, WarningLevel::Error);
|
||||
/* Return old, unchanged value */
|
||||
return _settings_game.construction.map_height_limit;
|
||||
}
|
||||
|
||||
+1
-1
@@ -212,7 +212,7 @@ std::tuple<bool, bool, bool> CommandHelperBase::InternalPostBefore(Commands cmd,
|
||||
|
||||
if (_pause_mode.Any() && !IsCommandAllowedWhilePaused(cmd) && !estimate_only) {
|
||||
ShowErrorMessage(GetEncodedString(err_message), GetEncodedString(STR_ERROR_NOT_ALLOWED_WHILE_PAUSED),
|
||||
WL_INFO, TileX(tile) * TILE_SIZE, TileY(tile) * TILE_SIZE);
|
||||
WarningLevel::Info, TileX(tile) * TILE_SIZE, TileY(tile) * TILE_SIZE);
|
||||
return { true, estimate_only, only_sending };
|
||||
} else {
|
||||
return { false, estimate_only, only_sending };
|
||||
|
||||
+4
-4
@@ -1408,7 +1408,7 @@ public:
|
||||
case WID_SCMF_LOAD: {
|
||||
auto cmf = ParseCompanyManagerFaceCode(_company_manager_face);
|
||||
if (cmf.has_value()) this->face = *cmf;
|
||||
ShowErrorMessage(GetEncodedString(STR_FACE_LOAD_DONE), {}, WL_INFO);
|
||||
ShowErrorMessage(GetEncodedString(STR_FACE_LOAD_DONE), {}, WarningLevel::Info);
|
||||
this->UpdateData();
|
||||
this->SetDirty();
|
||||
break;
|
||||
@@ -1422,7 +1422,7 @@ public:
|
||||
/* Save button */
|
||||
case WID_SCMF_SAVE:
|
||||
_company_manager_face = FormatCompanyManagerFaceCode(this->face);
|
||||
ShowErrorMessage(GetEncodedString(STR_FACE_SAVE_DONE), {}, WL_INFO);
|
||||
ShowErrorMessage(GetEncodedString(STR_FACE_SAVE_DONE), {}, WarningLevel::Info);
|
||||
break;
|
||||
|
||||
/* Randomize face button */
|
||||
@@ -1518,11 +1518,11 @@ public:
|
||||
auto cmf = ParseCompanyManagerFaceCode(*str);
|
||||
if (cmf.has_value()) {
|
||||
this->face = *cmf;
|
||||
ShowErrorMessage(GetEncodedString(STR_FACE_FACECODE_SET), {}, WL_INFO);
|
||||
ShowErrorMessage(GetEncodedString(STR_FACE_FACECODE_SET), {}, WarningLevel::Info);
|
||||
this->UpdateData();
|
||||
this->SetDirty();
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_FACE_FACECODE_ERR), {}, WL_INFO);
|
||||
ShowErrorMessage(GetEncodedString(STR_FACE_FACECODE_ERR), {}, WarningLevel::Info);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
+4
-4
@@ -966,11 +966,11 @@ struct DepotWindow : Window {
|
||||
OnVehicleSelect(*begin);
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_BUY_TRAIN + to_underlying((*begin)->type)),
|
||||
GetEncodedString(STR_ERROR_CAN_T_COPY_ORDER_VEHICLE_LIST), WL_INFO);
|
||||
GetEncodedString(STR_ERROR_CAN_T_COPY_ORDER_VEHICLE_LIST), WarningLevel::Info);
|
||||
}
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_BUY_TRAIN + to_underlying((*begin)->type)),
|
||||
GetEncodedString(STR_ERROR_CAN_T_CLONE_VEHICLE_LIST), WL_INFO);
|
||||
GetEncodedString(STR_ERROR_CAN_T_CLONE_VEHICLE_LIST), WarningLevel::Info);
|
||||
}
|
||||
} else {
|
||||
/* If CTRL is pressed: If all the vehicles in this list share orders, then copy orders */
|
||||
@@ -983,11 +983,11 @@ struct DepotWindow : Window {
|
||||
OnVehicleSelect(*begin);
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_BUY_TRAIN + to_underlying((*begin)->type)),
|
||||
GetEncodedString(STR_ERROR_CAN_T_SHARE_ORDER_VEHICLE_LIST), WL_INFO);
|
||||
GetEncodedString(STR_ERROR_CAN_T_SHARE_ORDER_VEHICLE_LIST), WarningLevel::Info);
|
||||
}
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_BUY_TRAIN + to_underlying((*begin)->type)),
|
||||
GetEncodedString(STR_ERROR_CAN_T_CLONE_VEHICLE_LIST), WL_INFO);
|
||||
GetEncodedString(STR_ERROR_CAN_T_CLONE_VEHICLE_LIST), WarningLevel::Info);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1355,9 +1355,9 @@ void CheckEngines()
|
||||
|
||||
if (min_date < INT32_MAX) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_NO_VEHICLES_AVAILABLE_YET),
|
||||
GetEncodedString(STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION, min_date), WL_WARNING);
|
||||
GetEncodedString(STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION, min_date), WarningLevel::Warning);
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL),
|
||||
GetEncodedString(STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION), WL_WARNING);
|
||||
GetEncodedString(STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION), WarningLevel::Warning);
|
||||
}
|
||||
}
|
||||
|
||||
+5
-5
@@ -20,11 +20,11 @@
|
||||
struct GRFFile;
|
||||
|
||||
/** Message severity/type */
|
||||
enum WarningLevel : uint8_t {
|
||||
WL_INFO, ///< Used for DoCommand-like (and some non-fatal AI GUI) errors/information
|
||||
WL_WARNING, ///< Other information
|
||||
WL_ERROR, ///< Errors (eg. saving/loading failed)
|
||||
WL_CRITICAL, ///< Critical errors, the MessageBox is shown in all cases
|
||||
enum class WarningLevel : uint8_t {
|
||||
Info, ///< Used for DoCommand-like (and some non-fatal AI GUI) errors/information
|
||||
Warning, ///< Other information
|
||||
Error, ///< Errors (eg. saving/loading failed)
|
||||
Critical, ///< Critical errors, the MessageBox is shown in all cases
|
||||
};
|
||||
|
||||
/** The data of the error message. */
|
||||
|
||||
+6
-6
@@ -290,7 +290,7 @@ void UnshowCriticalError()
|
||||
|
||||
/**
|
||||
* Display an error message in a window.
|
||||
* Note: CommandCost errors are always severity level WL_INFO.
|
||||
* Note: CommandCost errors are always severity level WarningLevel::Info.
|
||||
* @param summary_msg General error message showed in first line. Must be valid.
|
||||
* @param x World X position (TileVirtX) of the error location. Set both x and y to 0 to just center the message when there is no related error tile.
|
||||
* @param y World Y position (TileVirtY) of the error location. Set both x and y to 0 to just center the message when there is no related error tile.
|
||||
@@ -301,7 +301,7 @@ void ShowErrorMessage(EncodedString &&summary_msg, int x, int y, CommandCost &cc
|
||||
EncodedString error = std::move(cc.GetEncodedMessage());
|
||||
if (error.empty()) error = GetEncodedStringIfValid(cc.GetErrorMessage());
|
||||
|
||||
ShowErrorMessage(std::move(summary_msg), std::move(error), WL_INFO, x, y,
|
||||
ShowErrorMessage(std::move(summary_msg), std::move(error), WarningLevel::Info, x, y,
|
||||
GetEncodedStringIfValid(cc.GetExtraErrorMessage()), cc.GetErrorOwner());
|
||||
}
|
||||
|
||||
@@ -317,7 +317,7 @@ void ShowErrorMessage(EncodedString &&summary_msg, int x, int y, CommandCost &cc
|
||||
*/
|
||||
void ShowErrorMessage(EncodedString &&summary_msg, EncodedString &&detailed_msg, WarningLevel wl, int x, int y, EncodedString &&extra_msg, CompanyID company)
|
||||
{
|
||||
if (wl != WL_INFO) {
|
||||
if (wl != WarningLevel::Info) {
|
||||
/* Print message to console */
|
||||
|
||||
std::string message = summary_msg.GetDecodedString();
|
||||
@@ -330,10 +330,10 @@ void ShowErrorMessage(EncodedString &&summary_msg, EncodedString &&detailed_msg,
|
||||
message += extra_msg.GetDecodedString();
|
||||
}
|
||||
|
||||
IConsolePrint(wl == WL_WARNING ? CC_WARNING : CC_ERROR, message);
|
||||
IConsolePrint(wl == WarningLevel::Warning ? CC_WARNING : CC_ERROR, message);
|
||||
}
|
||||
|
||||
bool is_critical = wl == WL_CRITICAL;
|
||||
bool is_critical = wl == WarningLevel::Critical;
|
||||
|
||||
if (_game_mode == GM_BOOTSTRAP) return;
|
||||
if (_settings_client.gui.errmsg_duration == 0 && !is_critical) return;
|
||||
@@ -344,7 +344,7 @@ void ShowErrorMessage(EncodedString &&summary_msg, EncodedString &&detailed_msg,
|
||||
if (w != nullptr) {
|
||||
if (w->IsCritical()) {
|
||||
/* A critical error is currently shown. */
|
||||
if (wl == WL_CRITICAL) {
|
||||
if (wl == WarningLevel::Critical) {
|
||||
/* Push another critical error in the queue of errors,
|
||||
* but do not put other errors in the queue. */
|
||||
_error_list.push_back(std::move(data));
|
||||
|
||||
+3
-3
@@ -377,7 +377,7 @@ private:
|
||||
|
||||
if (confirmed) {
|
||||
if (!FioRemove(save_load_window->selected->name)) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_UNABLE_TO_DELETE_FILE), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_UNABLE_TO_DELETE_FILE), {}, WarningLevel::Error);
|
||||
} else {
|
||||
save_load_window->InvalidateData(SLIWD_RESCAN_FILES);
|
||||
/* Reset file name to current date on successful delete */
|
||||
@@ -733,7 +733,7 @@ public:
|
||||
|
||||
case WID_SL_MISSING_NEWGRFS:
|
||||
if (!_network_available) {
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NOTAVAILABLE), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NOTAVAILABLE), {}, WarningLevel::Error);
|
||||
} else if (_load_check_data.HasNewGrfs()) {
|
||||
ShowMissingContentWindow(_load_check_data.grfconfig);
|
||||
}
|
||||
@@ -788,7 +788,7 @@ public:
|
||||
|
||||
case WID_SL_CONTENT_DOWNLOAD:
|
||||
if (!_network_available) {
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NOTAVAILABLE), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NOTAVAILABLE), {}, WarningLevel::Error);
|
||||
} else {
|
||||
assert(this->fop == SaveLoadOperation::Load);
|
||||
switch (this->abstract_filetype) {
|
||||
|
||||
@@ -245,7 +245,7 @@ struct GSConfigWindow : public Window {
|
||||
|
||||
case WID_GSC_CONTENT_DOWNLOAD:
|
||||
if (!_network_available) {
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NOTAVAILABLE), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NOTAVAILABLE), {}, WarningLevel::Error);
|
||||
} else {
|
||||
ShowNetworkContentListWindow(nullptr, ContentType::Gs);
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ void GameInstance::Died()
|
||||
|
||||
const GameInfo *info = Game::GetInfo();
|
||||
if (info != nullptr) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_AI_PLEASE_REPORT_CRASH), {}, WL_WARNING);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_AI_PLEASE_REPORT_CRASH), {}, WarningLevel::Warning);
|
||||
|
||||
if (!info->GetURL().empty()) {
|
||||
ScriptLog::Info("Please report the error to the following URL:");
|
||||
|
||||
+9
-9
@@ -364,7 +364,7 @@ void LoadTownData()
|
||||
|
||||
if (!f.has_value()) {
|
||||
ShowErrorMessage(GetEncodedString(STR_TOWN_DATA_ERROR_LOAD_FAILED),
|
||||
GetEncodedString(STR_TOWN_DATA_ERROR_JSON_FORMATTED_INCORRECTLY), WL_ERROR);
|
||||
GetEncodedString(STR_TOWN_DATA_ERROR_JSON_FORMATTED_INCORRECTLY), WarningLevel::Error);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -373,7 +373,7 @@ void LoadTownData()
|
||||
f.reset();
|
||||
if (len != 1) {
|
||||
ShowErrorMessage(GetEncodedString(STR_TOWN_DATA_ERROR_LOAD_FAILED),
|
||||
GetEncodedString(STR_TOWN_DATA_ERROR_JSON_FORMATTED_INCORRECTLY), WL_ERROR);
|
||||
GetEncodedString(STR_TOWN_DATA_ERROR_JSON_FORMATTED_INCORRECTLY), WarningLevel::Error);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -382,13 +382,13 @@ void LoadTownData()
|
||||
try {
|
||||
town_data = nlohmann::json::parse(text);
|
||||
} catch (nlohmann::json::exception &) {
|
||||
ShowErrorMessage(GetEncodedString(STR_TOWN_DATA_ERROR_LOAD_FAILED), GetEncodedString(STR_TOWN_DATA_ERROR_JSON_FORMATTED_INCORRECTLY), WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_TOWN_DATA_ERROR_LOAD_FAILED), GetEncodedString(STR_TOWN_DATA_ERROR_JSON_FORMATTED_INCORRECTLY), WarningLevel::Error);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Check for JSON formatting errors with the array of towns. */
|
||||
if (!town_data.is_array()) {
|
||||
ShowErrorMessage(GetEncodedString(STR_TOWN_DATA_ERROR_LOAD_FAILED), GetEncodedString(STR_TOWN_DATA_ERROR_JSON_FORMATTED_INCORRECTLY), WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_TOWN_DATA_ERROR_LOAD_FAILED), GetEncodedString(STR_TOWN_DATA_ERROR_JSON_FORMATTED_INCORRECTLY), WarningLevel::Error);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -405,14 +405,14 @@ void LoadTownData()
|
||||
|
||||
/* Ensure JSON is formatted properly. */
|
||||
if (!feature.is_object()) {
|
||||
ShowErrorMessage(GetEncodedString(STR_TOWN_DATA_ERROR_LOAD_FAILED), GetEncodedString(STR_TOWN_DATA_ERROR_JSON_FORMATTED_INCORRECTLY), WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_TOWN_DATA_ERROR_LOAD_FAILED), GetEncodedString(STR_TOWN_DATA_ERROR_JSON_FORMATTED_INCORRECTLY), WarningLevel::Error);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Check to ensure all fields exist and are of the correct type.
|
||||
* If the town name is formatted wrong, all we can do is give a general warning. */
|
||||
if (!feature.contains("name") || !feature.at("name").is_string()) {
|
||||
ShowErrorMessage(GetEncodedString(STR_TOWN_DATA_ERROR_LOAD_FAILED), GetEncodedString(STR_TOWN_DATA_ERROR_JSON_FORMATTED_INCORRECTLY), WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_TOWN_DATA_ERROR_LOAD_FAILED), GetEncodedString(STR_TOWN_DATA_ERROR_JSON_FORMATTED_INCORRECTLY), WarningLevel::Error);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -423,7 +423,7 @@ void LoadTownData()
|
||||
!feature.contains("y") || !feature.at("y").is_number()) {
|
||||
feature.at("name").get_to(name);
|
||||
ShowErrorMessage(GetEncodedString(STR_TOWN_DATA_ERROR_LOAD_FAILED),
|
||||
GetEncodedString(STR_TOWN_DATA_ERROR_TOWN_FORMATTED_INCORRECTLY, name), WL_ERROR);
|
||||
GetEncodedString(STR_TOWN_DATA_ERROR_TOWN_FORMATTED_INCORRECTLY, name), WarningLevel::Error);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -439,7 +439,7 @@ void LoadTownData()
|
||||
/* Check for improper coordinates and warn the player. */
|
||||
if (x_proportion <= 0.0f || y_proportion <= 0.0f || x_proportion >= 1.0f || y_proportion >= 1.0f) {
|
||||
ShowErrorMessage(GetEncodedString(STR_TOWN_DATA_ERROR_LOAD_FAILED),
|
||||
GetEncodedString(STR_TOWN_DATA_ERROR_BAD_COORDINATE, name), WL_ERROR);
|
||||
GetEncodedString(STR_TOWN_DATA_ERROR_BAD_COORDINATE, name), WarningLevel::Error);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -482,7 +482,7 @@ void LoadTownData()
|
||||
|
||||
/* If we couldn't found a town (or multiple), display a message to the player with the number of failed towns. */
|
||||
if (failed_towns > 0) {
|
||||
ShowErrorMessage(GetEncodedString(STR_TOWN_DATA_ERROR_FAILED_TO_FOUND_TOWN, failed_towns), {}, WL_WARNING);
|
||||
ShowErrorMessage(GetEncodedString(STR_TOWN_DATA_ERROR_FAILED_TO_FOUND_TOWN, failed_towns), {}, WarningLevel::Warning);
|
||||
}
|
||||
|
||||
/* Now that we've created the towns, let's grow them to their target populations. */
|
||||
|
||||
+9
-9
@@ -157,19 +157,19 @@ static bool ReadHeightmapPNG(std::string_view filename, uint *x, uint *y, std::v
|
||||
|
||||
auto fp = FioFOpenFile(filename, "rb", Subdirectory::Heightmap);
|
||||
if (!fp.has_value()) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_PNGMAP), GetEncodedString(STR_ERROR_PNGMAP_FILE_NOT_FOUND), WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_PNGMAP), GetEncodedString(STR_ERROR_PNGMAP_FILE_NOT_FOUND), WarningLevel::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, nullptr, nullptr, nullptr);
|
||||
if (png_ptr == nullptr) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_PNGMAP), GetEncodedString(STR_ERROR_PNGMAP_MISC), WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_PNGMAP), GetEncodedString(STR_ERROR_PNGMAP_MISC), WarningLevel::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
info_ptr = png_create_info_struct(png_ptr);
|
||||
if (info_ptr == nullptr || setjmp(png_jmpbuf(png_ptr))) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_PNGMAP), GetEncodedString(STR_ERROR_PNGMAP_MISC), WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_PNGMAP), GetEncodedString(STR_ERROR_PNGMAP_MISC), WarningLevel::Error);
|
||||
png_destroy_read_struct(&png_ptr, &info_ptr, nullptr);
|
||||
return false;
|
||||
}
|
||||
@@ -184,7 +184,7 @@ static bool ReadHeightmapPNG(std::string_view filename, uint *x, uint *y, std::v
|
||||
/* Maps of wrong colour-depth are not used.
|
||||
* (this should have been taken care of by stripping alpha and 16-bit samples on load) */
|
||||
if ((png_get_channels(png_ptr, info_ptr) != 1) && (png_get_channels(png_ptr, info_ptr) != 3) && (png_get_bit_depth(png_ptr, info_ptr) != 8)) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_PNGMAP), GetEncodedString(STR_ERROR_PNGMAP_IMAGE_TYPE), WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_PNGMAP), GetEncodedString(STR_ERROR_PNGMAP_IMAGE_TYPE), WarningLevel::Error);
|
||||
png_destroy_read_struct(&png_ptr, &info_ptr, nullptr);
|
||||
return false;
|
||||
}
|
||||
@@ -193,7 +193,7 @@ static bool ReadHeightmapPNG(std::string_view filename, uint *x, uint *y, std::v
|
||||
uint height = png_get_image_height(png_ptr, info_ptr);
|
||||
|
||||
if (!IsValidHeightmapDimension(width, height)) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_PNGMAP), GetEncodedString(STR_ERROR_HEIGHTMAP_TOO_LARGE), WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_PNGMAP), GetEncodedString(STR_ERROR_HEIGHTMAP_TOO_LARGE), WarningLevel::Error);
|
||||
png_destroy_read_struct(&png_ptr, &info_ptr, nullptr);
|
||||
return false;
|
||||
}
|
||||
@@ -283,7 +283,7 @@ static bool ReadHeightmapBMP(std::string_view filename, uint *x, uint *y, std::v
|
||||
{
|
||||
auto f = FioFOpenFile(filename, "rb", Subdirectory::Heightmap);
|
||||
if (!f.has_value()) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_BMPMAP), GetEncodedString(STR_ERROR_PNGMAP_FILE_NOT_FOUND), WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_BMPMAP), GetEncodedString(STR_ERROR_PNGMAP_FILE_NOT_FOUND), WarningLevel::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -292,18 +292,18 @@ static bool ReadHeightmapBMP(std::string_view filename, uint *x, uint *y, std::v
|
||||
BmpData data{};
|
||||
|
||||
if (!BmpReadHeader(file, info, data)) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_BMPMAP), GetEncodedString(STR_ERROR_BMPMAP_IMAGE_TYPE), WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_BMPMAP), GetEncodedString(STR_ERROR_BMPMAP_IMAGE_TYPE), WarningLevel::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!IsValidHeightmapDimension(info.width, info.height)) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_BMPMAP), GetEncodedString(STR_ERROR_HEIGHTMAP_TOO_LARGE), WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_BMPMAP), GetEncodedString(STR_ERROR_HEIGHTMAP_TOO_LARGE), WarningLevel::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (map != nullptr) {
|
||||
if (!BmpReadBitmap(file, info, data)) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_BMPMAP), GetEncodedString(STR_ERROR_BMPMAP_IMAGE_TYPE), WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_BMPMAP), GetEncodedString(STR_ERROR_BMPMAP_IMAGE_TYPE), WarningLevel::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -2117,9 +2117,9 @@ CommandCost CmdBuildIndustry(DoCommandFlags flags, TileIndex tile, IndustryType
|
||||
}
|
||||
if (ret.Failed() && IsLocalCompany()) {
|
||||
if (prospect_success) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_PROSPECT_INDUSTRY), GetEncodedString(STR_ERROR_NO_SUITABLE_PLACES_FOR_PROSPECTING), WL_INFO);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_PROSPECT_INDUSTRY), GetEncodedString(STR_ERROR_NO_SUITABLE_PLACES_FOR_PROSPECTING), WarningLevel::Info);
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_PROSPECT_INDUSTRY), GetEncodedString(STR_ERROR_PROSPECTING_WAS_UNLUCKY), WL_INFO);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_PROSPECT_INDUSTRY), GetEncodedString(STR_ERROR_PROSPECTING_WAS_UNLUCKY), WarningLevel::Info);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3161,7 +3161,7 @@ void CheckIndustries()
|
||||
|
||||
const IndustrySpec *is = GetIndustrySpec(it);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES, is->name),
|
||||
GetEncodedString(STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION), WL_WARNING);
|
||||
GetEncodedString(STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION), WarningLevel::Warning);
|
||||
|
||||
count++;
|
||||
if (count >= 3) break; // Don't swamp the user with errors.
|
||||
|
||||
@@ -602,7 +602,7 @@ public:
|
||||
if (!confirmed) return;
|
||||
|
||||
if (Town::GetNumItems() == 0) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_GENERATE_INDUSTRIES), GetEncodedString(STR_ERROR_MUST_FOUND_TOWN_FIRST), WL_INFO);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_GENERATE_INDUSTRIES), GetEncodedString(STR_ERROR_MUST_FOUND_TOWN_FIRST), WarningLevel::Info);
|
||||
} else {
|
||||
AutoRestoreBackup old_generating_world(_generating_world, true);
|
||||
BasePersistentStorageArray::SwitchMode(PSM_ENTER_GAMELOOP);
|
||||
@@ -709,7 +709,7 @@ public:
|
||||
/* Show error if no town exists at all */
|
||||
if (Town::GetNumItems() == 0) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_BUILD_HERE, indsp->name),
|
||||
GetEncodedString(STR_ERROR_MUST_FOUND_TOWN_FIRST), WL_INFO, pt.x, pt.y);
|
||||
GetEncodedString(STR_ERROR_MUST_FOUND_TOWN_FIRST), WarningLevel::Info, pt.x, pt.y);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -321,7 +321,7 @@ struct SelectGameWindow : public Window {
|
||||
|
||||
case WID_SGI_PLAY_NETWORK:
|
||||
if (!_network_available) {
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NOTAVAILABLE), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NOTAVAILABLE), {}, WarningLevel::Error);
|
||||
} else {
|
||||
ShowNetworkGameWindow();
|
||||
}
|
||||
@@ -332,7 +332,7 @@ struct SelectGameWindow : public Window {
|
||||
case WID_SGI_HELP: ShowHelpWindow(); break;
|
||||
case WID_SGI_CONTENT_DOWNLOAD:
|
||||
if (!_network_available) {
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NOTAVAILABLE), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NOTAVAILABLE), {}, WarningLevel::Error);
|
||||
} else {
|
||||
ShowNetworkContentListWindow();
|
||||
}
|
||||
|
||||
+1
-1
@@ -495,7 +495,7 @@ void ShowEstimatedCostOrIncome(Money cost, int x, int y)
|
||||
cost = -cost;
|
||||
msg = STR_MESSAGE_ESTIMATED_INCOME;
|
||||
}
|
||||
ShowErrorMessage(GetEncodedString(msg, cost), {}, WL_INFO, x, y);
|
||||
ShowErrorMessage(GetEncodedString(msg, cost), {}, WarningLevel::Info, x, y);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -42,7 +42,7 @@ NetworkRecvStatus NetworkGameSocketHandler::CloseConnection([[maybe_unused]] boo
|
||||
ClientNetworkEmergencySave();
|
||||
_switch_mode = SM_MENU;
|
||||
_networking = false;
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_LOSTCONNECTION), {}, WL_CRITICAL);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_LOSTCONNECTION), {}, WarningLevel::Critical);
|
||||
|
||||
return this->CloseConnection(NETWORK_RECV_STATUS_CLIENT_QUIT);
|
||||
}
|
||||
|
||||
@@ -316,7 +316,7 @@ uint NetworkCalculateLag(const NetworkClientSocket *cs)
|
||||
void ShowNetworkError(StringID error_string)
|
||||
{
|
||||
_switch_mode = SM_MENU;
|
||||
ShowErrorMessage(GetEncodedString(error_string), {}, WL_CRITICAL);
|
||||
ShowErrorMessage(GetEncodedString(error_string), {}, WarningLevel::Critical);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -889,7 +889,7 @@ bool NetworkValidateServerName(std::string &server_name)
|
||||
StrTrimInPlace(server_name);
|
||||
if (!server_name.empty()) return true;
|
||||
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_BAD_SERVER_NAME), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_BAD_SERVER_NAME), {}, WarningLevel::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -534,7 +534,7 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::ReceiveServerFull(Packet &)
|
||||
Debug(net, 9, "Client::ReceiveServerFull()");
|
||||
|
||||
/* We try to join a server which is full */
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_SERVER_FULL), {}, WL_CRITICAL);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_SERVER_FULL), {}, WarningLevel::Critical);
|
||||
|
||||
return NETWORK_RECV_STATUS_SERVER_FULL;
|
||||
}
|
||||
@@ -544,7 +544,7 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::ReceiveServerBanned(Packet &)
|
||||
Debug(net, 9, "Client::ReceiveServerBanned()");
|
||||
|
||||
/* We try to join a server where we are banned */
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_SERVER_BANNED), {}, WL_CRITICAL);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_SERVER_BANNED), {}, WarningLevel::Critical);
|
||||
|
||||
return NETWORK_RECV_STATUS_SERVER_BANNED;
|
||||
}
|
||||
@@ -663,9 +663,9 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::ReceiveServerError(Packet &p)
|
||||
if (error == NetworkErrorCode::Kicked && p.CanReadFromPacket(1)) {
|
||||
ShowErrorMessage(GetEncodedString(err),
|
||||
GetEncodedString(STR_NETWORK_ERROR_KICK_MESSAGE, p.Recv_string(NETWORK_CHAT_LENGTH)),
|
||||
WL_CRITICAL);
|
||||
WarningLevel::Critical);
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(err), {}, WL_CRITICAL);
|
||||
ShowErrorMessage(GetEncodedString(err), {}, WarningLevel::Critical);
|
||||
}
|
||||
|
||||
/* Perform an emergency save if we had already entered the game */
|
||||
@@ -703,7 +703,7 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::ReceiveServerCheckNewGRFs(Pack
|
||||
}
|
||||
|
||||
/* NewGRF mismatch, bail out */
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NEWGRF_MISMATCH), {}, WL_CRITICAL);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NEWGRF_MISMATCH), {}, WarningLevel::Critical);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -870,7 +870,7 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::ReceiveServerMapDone(Packet &)
|
||||
this->last_packet = std::chrono::steady_clock::now();
|
||||
|
||||
if (!load_success) {
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_SAVEGAMEERROR), {}, WL_CRITICAL);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_SAVEGAMEERROR), {}, WarningLevel::Critical);
|
||||
return NETWORK_RECV_STATUS_SAVEGAME;
|
||||
}
|
||||
/* If the savegame has successfully loaded, ALL windows have been removed,
|
||||
@@ -1113,7 +1113,7 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::ReceiveServerShutdown(Packet &
|
||||
/* Only when we're trying to join we really
|
||||
* care about the server shutting down. */
|
||||
if (this->status >= ServerStatus::Join) {
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_MESSAGE_SERVER_SHUTDOWN), {}, WL_CRITICAL);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_MESSAGE_SERVER_SHUTDOWN), {}, WarningLevel::Critical);
|
||||
}
|
||||
|
||||
if (this->status == ServerStatus::Active) ClientNetworkEmergencySave();
|
||||
@@ -1132,7 +1132,7 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::ReceiveServerNewGame(Packet &)
|
||||
* Client ID modulo 16 + 1 (value 0 means no reconnect).
|
||||
* This way reconnects should be spread out a bit. */
|
||||
_network_reconnect = _network_own_client_id % 16 + 1;
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_MESSAGE_SERVER_REBOOT), {}, WL_CRITICAL);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_MESSAGE_SERVER_REBOOT), {}, WarningLevel::Critical);
|
||||
}
|
||||
|
||||
if (this->status == ServerStatus::Active) ClientNetworkEmergencySave();
|
||||
@@ -1227,7 +1227,7 @@ void ClientNetworkGameSocketHandler::CheckConnection()
|
||||
ShowErrorMessage(
|
||||
GetEncodedString(STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION_CAPTION),
|
||||
GetEncodedString(STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION, std::chrono::duration_cast<std::chrono::seconds>(lag).count()),
|
||||
WL_INFO);
|
||||
WarningLevel::Info);
|
||||
}
|
||||
|
||||
|
||||
@@ -1315,7 +1315,7 @@ bool NetworkValidateClientName(std::string &client_name)
|
||||
StrTrimInPlace(client_name);
|
||||
if (NetworkIsValidClientName(client_name)) return true;
|
||||
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_BAD_PLAYER_NAME), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_BAD_PLAYER_NAME), {}, WarningLevel::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -471,7 +471,7 @@ bool ClientNetworkContentSocketHandler::ReceiveServerContent(Packet &p)
|
||||
ShowErrorMessage(
|
||||
GetEncodedString(STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD),
|
||||
GetEncodedString(STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE),
|
||||
WL_ERROR);
|
||||
WarningLevel::Error);
|
||||
this->CloseConnection();
|
||||
this->cur_file.reset();
|
||||
|
||||
@@ -506,7 +506,7 @@ bool ClientNetworkContentSocketHandler::BeforeDownload()
|
||||
ShowErrorMessage(
|
||||
GetEncodedString(STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD),
|
||||
GetEncodedString(STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE),
|
||||
WL_ERROR);
|
||||
WarningLevel::Error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -545,7 +545,7 @@ void ClientNetworkContentSocketHandler::AfterDownload()
|
||||
|
||||
this->OnDownloadComplete(this->cur_info->id);
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_CONTENT_ERROR_COULD_NOT_EXTRACT), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_CONTENT_ERROR_COULD_NOT_EXTRACT), {}, WarningLevel::Error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -965,7 +965,7 @@ public:
|
||||
void OnConnect(bool success) override
|
||||
{
|
||||
if (!success) {
|
||||
ShowErrorMessage(GetEncodedString(STR_CONTENT_ERROR_COULD_NOT_CONNECT), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_CONTENT_ERROR_COULD_NOT_CONNECT), {}, WarningLevel::Error);
|
||||
this->Close();
|
||||
return;
|
||||
}
|
||||
@@ -1155,6 +1155,6 @@ void ShowNetworkContentListWindow(ContentVector *cv, ContentType type1, ContentT
|
||||
ShowErrorMessage(
|
||||
GetEncodedString(STR_CONTENT_NO_ZLIB),
|
||||
GetEncodedString(STR_CONTENT_NO_ZLIB_SUB),
|
||||
WL_ERROR);
|
||||
WarningLevel::Error);
|
||||
#endif /* WITH_ZLIB */
|
||||
}
|
||||
|
||||
@@ -136,7 +136,7 @@ bool ClientNetworkCoordinatorSocketHandler::ReceiveGameCoordinatorError(Packet &
|
||||
return false;
|
||||
|
||||
case NETWORK_COORDINATOR_ERROR_REGISTRATION_FAILED:
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_COORDINATOR_REGISTRATION_FAILED), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_COORDINATOR_REGISTRATION_FAILED), {}, WarningLevel::Error);
|
||||
|
||||
/* To prevent that we constantly try to reconnect, switch to local game. */
|
||||
_settings_client.network.server_game_type = ServerGameType::Local;
|
||||
@@ -160,7 +160,7 @@ bool ClientNetworkCoordinatorSocketHandler::ReceiveGameCoordinatorError(Packet &
|
||||
}
|
||||
|
||||
case NETWORK_COORDINATOR_ERROR_REUSE_OF_INVITE_CODE:
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_COORDINATOR_REUSE_OF_INVITE_CODE), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_COORDINATOR_REUSE_OF_INVITE_CODE), {}, WarningLevel::Error);
|
||||
|
||||
/* To prevent that we constantly battle for the same invite-code, switch to local game. */
|
||||
_settings_client.network.server_game_type = ServerGameType::Local;
|
||||
@@ -189,7 +189,7 @@ bool ClientNetworkCoordinatorSocketHandler::ReceiveGameCoordinatorRegisterAck(Pa
|
||||
ShowErrorMessage(
|
||||
GetEncodedString(STR_NETWORK_ERROR_COORDINATOR_ISOLATED),
|
||||
GetEncodedString(STR_NETWORK_ERROR_COORDINATOR_ISOLATED_DETAIL),
|
||||
WL_ERROR);
|
||||
WarningLevel::Error);
|
||||
}
|
||||
|
||||
/* Users can change the invite code in the settings, but this has no effect
|
||||
|
||||
@@ -519,7 +519,7 @@ void ErrorUnknownCallbackResult(uint32_t grfid, uint16_t cbid, uint16_t cb_res)
|
||||
grfconfig->grf_bugs.Set(GRFBug::UnknownCbResult);
|
||||
ShowErrorMessage(GetEncodedString(STR_NEWGRF_BUGGY, grfconfig->GetName()),
|
||||
GetEncodedString(STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT, std::monostate{}, cbid, cb_res),
|
||||
WL_CRITICAL);
|
||||
WarningLevel::Critical);
|
||||
}
|
||||
|
||||
/* debug output */
|
||||
|
||||
+5
-5
@@ -65,9 +65,9 @@ void ShowNewGRFError()
|
||||
for (const uint32_t &value : error.param_value) params.emplace_back(value);
|
||||
|
||||
if (error.severity == STR_NEWGRF_ERROR_MSG_FATAL) {
|
||||
ShowErrorMessage(GetEncodedStringWithArgs(STR_NEWGRF_ERROR_FATAL_POPUP, params), {}, WL_CRITICAL);
|
||||
ShowErrorMessage(GetEncodedStringWithArgs(STR_NEWGRF_ERROR_FATAL_POPUP, params), {}, WarningLevel::Critical);
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedStringWithArgs(STR_NEWGRF_ERROR_POPUP, params), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedStringWithArgs(STR_NEWGRF_ERROR_POPUP, params), {}, WarningLevel::Error);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1115,7 +1115,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback {
|
||||
case WID_NS_CONTENT_DOWNLOAD:
|
||||
case WID_NS_CONTENT_DOWNLOAD2:
|
||||
if (!_network_available) {
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NOTAVAILABLE), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NOTAVAILABLE), {}, WarningLevel::Error);
|
||||
} else {
|
||||
this->CloseChildWindows(WindowClass::QueryString); // Remove the parameter query window
|
||||
|
||||
@@ -1468,13 +1468,13 @@ private:
|
||||
/* Get number of non-static NewGRFs. */
|
||||
size_t count = std::ranges::count_if(this->actives, [](const auto &gc) { return !gc->flags.Test(GRFConfigFlag::Static); });
|
||||
if (count >= NETWORK_MAX_GRF_COUNT) {
|
||||
ShowErrorMessage(GetEncodedString(STR_NEWGRF_TOO_MANY_NEWGRFS), {}, WL_INFO);
|
||||
ShowErrorMessage(GetEncodedString(STR_NEWGRF_TOO_MANY_NEWGRFS), {}, WarningLevel::Info);
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Check for duplicate GRF ID. */
|
||||
if (std::ranges::any_of(this->actives, [&grfid = this->avail_sel->ident.grfid](const auto &gc) { return gc->ident.grfid == grfid; })) {
|
||||
ShowErrorMessage(GetEncodedString(STR_NEWGRF_DUPLICATE_GRFID), {}, WL_INFO);
|
||||
ShowErrorMessage(GetEncodedString(STR_NEWGRF_DUPLICATE_GRFID), {}, WarningLevel::Info);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -622,7 +622,7 @@ void IndustryProductionCallback(Industry *ind, int reason)
|
||||
/* display error message */
|
||||
ShowErrorMessage(GetEncodedString(STR_NEWGRF_BUGGY, spec->grf_prop.grffile->filename),
|
||||
GetEncodedString(STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK, std::monostate{}, spec->name),
|
||||
WL_WARNING);
|
||||
WarningLevel::Warning);
|
||||
|
||||
/* abort the function early, this error isn't critical and will allow the game to continue to run */
|
||||
break;
|
||||
@@ -636,7 +636,7 @@ void IndustryProductionCallback(Industry *ind, int reason)
|
||||
/* Result was marked invalid on load, display error message */
|
||||
ShowErrorMessage(GetEncodedString(STR_NEWGRF_BUGGY, spec->grf_prop.grffile->filename),
|
||||
GetEncodedString(STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK, std::monostate{}, spec->name, ind->location.tile),
|
||||
WL_WARNING);
|
||||
WarningLevel::Warning);
|
||||
|
||||
/* abort the function early, this error isn't critical and will allow the game to continue to run */
|
||||
break;
|
||||
|
||||
+4
-4
@@ -1099,7 +1099,7 @@ void SwitchToMode(SwitchMode new_mode)
|
||||
ResetWindowSystem();
|
||||
|
||||
if (!SafeLoad(_file_to_saveload.name, _file_to_saveload.file_op, _file_to_saveload.ftype.detailed, GM_NORMAL, Subdirectory::None)) {
|
||||
ShowErrorMessage(GetSaveLoadErrorType(), GetSaveLoadErrorMessage(), WL_CRITICAL);
|
||||
ShowErrorMessage(GetSaveLoadErrorType(), GetSaveLoadErrorMessage(), WarningLevel::Critical);
|
||||
} else {
|
||||
if (_file_to_saveload.ftype.abstract == AbstractFileType::Scenario) {
|
||||
OnStartScenario();
|
||||
@@ -1141,7 +1141,7 @@ void SwitchToMode(SwitchMode new_mode)
|
||||
/* Cancel the saveload pausing */
|
||||
Command<Commands::Pause>::Post(PauseMode::SaveLoad, false);
|
||||
} else {
|
||||
ShowErrorMessage(GetSaveLoadErrorType(), GetSaveLoadErrorMessage(), WL_CRITICAL);
|
||||
ShowErrorMessage(GetSaveLoadErrorType(), GetSaveLoadErrorMessage(), WarningLevel::Critical);
|
||||
}
|
||||
|
||||
UpdateSocialIntegration(GM_EDITOR);
|
||||
@@ -1158,7 +1158,7 @@ void SwitchToMode(SwitchMode new_mode)
|
||||
case SM_MENU: // Switch to game intro menu
|
||||
LoadIntroGame();
|
||||
if (BaseSounds::ini_set.empty() && BaseSounds::GetUsedSet()->fallback && SoundDriver::GetInstance()->HasOutput()) {
|
||||
ShowErrorMessage(GetEncodedString(STR_WARNING_FALLBACK_SOUNDSET), {}, WL_CRITICAL);
|
||||
ShowErrorMessage(GetEncodedString(STR_WARNING_FALLBACK_SOUNDSET), {}, WarningLevel::Critical);
|
||||
BaseSounds::ini_set = BaseSounds::GetUsedSet()->name;
|
||||
}
|
||||
if (_settings_client.network.participate_survey == ParticipateSurvey::Ask) {
|
||||
@@ -1176,7 +1176,7 @@ void SwitchToMode(SwitchMode new_mode)
|
||||
case SM_SAVE_GAME: // Save game.
|
||||
/* Make network saved games on pause compatible to singleplayer mode */
|
||||
if (SaveOrLoad(_file_to_saveload.name, SaveLoadOperation::Save, DetailedFileType::GameFile, Subdirectory::None) != SaveLoadResult::Ok) {
|
||||
ShowErrorMessage(GetSaveLoadErrorType(), GetSaveLoadErrorMessage(), WL_ERROR);
|
||||
ShowErrorMessage(GetSaveLoadErrorType(), GetSaveLoadErrorMessage(), WarningLevel::Error);
|
||||
} else {
|
||||
CloseWindowById(WindowClass::SaveLoad, 0);
|
||||
}
|
||||
|
||||
+2
-2
@@ -1504,7 +1504,7 @@ public:
|
||||
})) {
|
||||
OnVehicleSelect(*begin);
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_COPY_ORDER_LIST), GetEncodedString(STR_ERROR_CAN_T_COPY_ORDER_VEHICLE_LIST), WL_INFO);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_COPY_ORDER_LIST), GetEncodedString(STR_ERROR_CAN_T_COPY_ORDER_VEHICLE_LIST), WarningLevel::Info);
|
||||
}
|
||||
} else {
|
||||
/* If CTRL is pressed: If all the vehicles in this list share orders, then copy orders */
|
||||
@@ -1513,7 +1513,7 @@ public:
|
||||
})) {
|
||||
OnVehicleSelect(*begin);
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_SHARE_ORDER_LIST), GetEncodedString(STR_ERROR_CAN_T_SHARE_ORDER_VEHICLE_LIST), WL_INFO);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_SHARE_ORDER_LIST), GetEncodedString(STR_ERROR_CAN_T_SHARE_ORDER_VEHICLE_LIST), WarningLevel::Info);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -721,8 +721,8 @@ bool AfterLoadGame()
|
||||
}
|
||||
|
||||
switch (gcf_res) {
|
||||
case GRFListCompatibility::Compatible: ShowErrorMessage(GetEncodedString(STR_NEWGRF_COMPATIBLE_LOAD_WARNING), {}, WL_CRITICAL); break;
|
||||
case GRFListCompatibility::NotFound: ShowErrorMessage(GetEncodedString(STR_NEWGRF_DISABLED_WARNING), {}, WL_CRITICAL); _pause_mode = PauseMode::Error; break;
|
||||
case GRFListCompatibility::Compatible: ShowErrorMessage(GetEncodedString(STR_NEWGRF_COMPATIBLE_LOAD_WARNING), {}, WarningLevel::Critical); break;
|
||||
case GRFListCompatibility::NotFound: ShowErrorMessage(GetEncodedString(STR_NEWGRF_DISABLED_WARNING), {}, WarningLevel::Critical); _pause_mode = PauseMode::Error; break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
@@ -1990,7 +1990,7 @@ bool AfterLoadGame()
|
||||
* There would be trams without tram track under causing crashes sooner or later. */
|
||||
for (RoadVehicle *v : RoadVehicle::Iterate()) {
|
||||
if (v->First() == v && EngInfo(v->engine_type)->misc_flags.Test(EngineMiscFlag::RoadIsTram)) {
|
||||
ShowErrorMessage(GetEncodedString(STR_WARNING_LOADGAME_REMOVED_TRAMS), {}, WL_CRITICAL);
|
||||
ShowErrorMessage(GetEncodedString(STR_WARNING_LOADGAME_REMOVED_TRAMS), {}, WarningLevel::Critical);
|
||||
delete v;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2853,7 +2853,7 @@ static std::pair<const SaveLoadFormat &, uint8_t> GetSavegameFormat(std::string_
|
||||
ShowErrorMessage(
|
||||
GetEncodedString(STR_CONFIG_ERROR),
|
||||
GetEncodedString(STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL, complevel),
|
||||
WL_CRITICAL);
|
||||
WarningLevel::Critical);
|
||||
} else {
|
||||
return {slf, *level};
|
||||
}
|
||||
@@ -2865,7 +2865,7 @@ static std::pair<const SaveLoadFormat &, uint8_t> GetSavegameFormat(std::string_
|
||||
ShowErrorMessage(
|
||||
GetEncodedString(STR_CONFIG_ERROR),
|
||||
GetEncodedString(STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM, name, def.name),
|
||||
WL_CRITICAL);
|
||||
WarningLevel::Critical);
|
||||
}
|
||||
return {def, def.default_compression};
|
||||
}
|
||||
@@ -2969,7 +2969,7 @@ EncodedString GetSaveLoadErrorMessage()
|
||||
/** Show a gui message when saving has failed */
|
||||
static void SaveFileError()
|
||||
{
|
||||
ShowErrorMessage(GetSaveLoadErrorType(), GetSaveLoadErrorMessage(), WL_ERROR);
|
||||
ShowErrorMessage(GetSaveLoadErrorType(), GetSaveLoadErrorMessage(), WarningLevel::Error);
|
||||
SaveFileDone();
|
||||
}
|
||||
|
||||
@@ -3253,7 +3253,7 @@ SaveLoadResult SaveOrLoad(std::string_view filename, SaveLoadOperation fop, Deta
|
||||
/* An instance of saving is already active, so don't go saving again */
|
||||
if (_sl.saveinprogress && fop == SaveLoadOperation::Save && dft == DetailedFileType::GameFile && threaded) {
|
||||
/* if not an autosave, but a user action, show error message */
|
||||
if (!_do_autosave) ShowErrorMessage(GetEncodedString(STR_ERROR_SAVE_STILL_IN_PROGRESS), {}, WL_ERROR);
|
||||
if (!_do_autosave) ShowErrorMessage(GetEncodedString(STR_ERROR_SAVE_STILL_IN_PROGRESS), {}, WarningLevel::Error);
|
||||
return SaveLoadResult::Ok;
|
||||
}
|
||||
WaitTillSaved();
|
||||
@@ -3349,7 +3349,7 @@ void DoAutoOrNetsave(FiosNumberedSaveName &counter)
|
||||
|
||||
Debug(sl, 2, "Autosaving to '{}'", filename);
|
||||
if (SaveOrLoad(filename, SaveLoadOperation::Save, DetailedFileType::GameFile, Subdirectory::Autosave) != SaveLoadResult::Ok) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_AUTOSAVE_FAILED), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_AUTOSAVE_FAILED), {}, WarningLevel::Error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -444,12 +444,12 @@ static bool RealMakeScreenshot(ScreenshotType t, const std::string &name, uint32
|
||||
|
||||
if (ret) {
|
||||
if (t == SC_HEIGHTMAP) {
|
||||
ShowErrorMessage(GetEncodedString(STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY, _screenshot_name, _heightmap_highest_peak), {}, WL_WARNING);
|
||||
ShowErrorMessage(GetEncodedString(STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY, _screenshot_name, _heightmap_highest_peak), {}, WarningLevel::Warning);
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_MESSAGE_SCREENSHOT_SUCCESSFULLY, _screenshot_name), {}, WL_WARNING);
|
||||
ShowErrorMessage(GetEncodedString(STR_MESSAGE_SCREENSHOT_SUCCESSFULLY, _screenshot_name), {}, WarningLevel::Warning);
|
||||
}
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_SCREENSHOT_FAILED), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_SCREENSHOT_FAILED), {}, WarningLevel::Error);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
||||
@@ -1290,7 +1290,7 @@ Window *ShowScriptDebugWindow(CompanyID show_company, bool new_window)
|
||||
}
|
||||
return new ScriptDebugWindow(_script_debug_desc, i, show_company);
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_AI_DEBUG_SERVER_ONLY), {}, WL_INFO);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_AI_DEBUG_SERVER_ONLY), {}, WarningLevel::Info);
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
|
||||
+7
-7
@@ -1024,7 +1024,7 @@ static void GraphicsSetLoadConfig(IniFile &ini)
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_ERROR),
|
||||
GetEncodedString(STR_CONFIG_ERROR_INVALID_VALUE, *item->value, BaseGraphics::ini_data.name),
|
||||
WL_CRITICAL);
|
||||
WarningLevel::Critical);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1035,7 +1035,7 @@ static void GraphicsSetLoadConfig(IniFile &ini)
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_ERROR),
|
||||
GetEncodedString(STR_CONFIG_ERROR_INVALID_VALUE, *item->value, BaseGraphics::ini_data.name),
|
||||
WL_CRITICAL);
|
||||
WarningLevel::Critical);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1046,7 +1046,7 @@ static void GraphicsSetLoadConfig(IniFile &ini)
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_ERROR),
|
||||
GetEncodedString(STR_CONFIG_ERROR_ARRAY, BaseGraphics::ini_data.name),
|
||||
WL_CRITICAL);
|
||||
WarningLevel::Critical);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1114,7 +1114,7 @@ static GRFConfigList GRFLoadConfig(const IniFile &ini, std::string_view grpname,
|
||||
} else {
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_ERROR),
|
||||
GetEncodedString(STR_CONFIG_ERROR_ARRAY, filename),
|
||||
WL_CRITICAL);
|
||||
WarningLevel::Critical);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1135,7 +1135,7 @@ static GRFConfigList GRFLoadConfig(const IniFile &ini, std::string_view grpname,
|
||||
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_ERROR),
|
||||
GetEncodedString(STR_CONFIG_ERROR_INVALID_GRF, filename.empty() ? item.name : filename, reason),
|
||||
WL_CRITICAL);
|
||||
WarningLevel::Critical);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1144,7 +1144,7 @@ static GRFConfigList GRFLoadConfig(const IniFile &ini, std::string_view grpname,
|
||||
if (found != std::end(list)) {
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_ERROR),
|
||||
GetEncodedString(STR_CONFIG_ERROR_DUPLICATE_GRFID, c->filename, (*found)->filename),
|
||||
WL_CRITICAL);
|
||||
WarningLevel::Critical);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1154,7 +1154,7 @@ static GRFConfigList GRFLoadConfig(const IniFile &ini, std::string_view grpname,
|
||||
} else if (++num_grfs > NETWORK_MAX_GRF_COUNT) {
|
||||
/* Check we will not load more non-static NewGRFs than allowed. This could trigger issues for game servers. */
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_ERROR),
|
||||
GetEncodedString(STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED), WL_CRITICAL);
|
||||
GetEncodedString(STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED), WarningLevel::Critical);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -988,7 +988,7 @@ struct GameOptionsWindow : Window {
|
||||
case WID_GO_FULLSCREEN_BUTTON: // Click fullscreen on/off
|
||||
/* try to toggle full-screen on/off */
|
||||
if (!ToggleFullScreen(!_fullscreen)) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_FULLSCREEN_FAILED), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_FULLSCREEN_FAILED), {}, WarningLevel::Error);
|
||||
}
|
||||
this->SetWidgetLoweredState(WID_GO_FULLSCREEN_BUTTON, _fullscreen);
|
||||
this->SetWidgetDirty(WID_GO_FULLSCREEN_BUTTON);
|
||||
@@ -997,7 +997,7 @@ struct GameOptionsWindow : Window {
|
||||
|
||||
case WID_GO_VIDEO_ACCEL_BUTTON:
|
||||
_video_hw_accel = !_video_hw_accel;
|
||||
ShowErrorMessage(GetEncodedString(STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART), {}, WL_INFO);
|
||||
ShowErrorMessage(GetEncodedString(STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART), {}, WarningLevel::Info);
|
||||
this->SetWidgetLoweredState(WID_GO_VIDEO_ACCEL_BUTTON, _video_hw_accel);
|
||||
this->SetWidgetDirty(WID_GO_VIDEO_ACCEL_BUTTON);
|
||||
this->SetWidgetDirty(WID_GO_VIDEO_ACCEL_TEXT);
|
||||
@@ -1162,7 +1162,7 @@ struct GameOptionsWindow : Window {
|
||||
if (!list.empty()) {
|
||||
ShowDropDownList(this, std::move(list), selected, widget);
|
||||
} else {
|
||||
if (widget == WID_GO_RESOLUTION_DROPDOWN) ShowErrorMessage(GetEncodedString(STR_ERROR_RESOLUTION_LIST_FAILED), {}, WL_ERROR);
|
||||
if (widget == WID_GO_RESOLUTION_DROPDOWN) ShowErrorMessage(GetEncodedString(STR_ERROR_RESOLUTION_LIST_FAILED), {}, WarningLevel::Error);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1177,7 +1177,7 @@ struct GameOptionsWindow : Window {
|
||||
if (!list.empty()) {
|
||||
ShowDropDownList(this, std::move(list), selected, widget, 0, DropDownOption::Filterable);
|
||||
} else {
|
||||
if (widget == WID_GO_RESOLUTION_DROPDOWN) ShowErrorMessage(GetEncodedString(STR_ERROR_RESOLUTION_LIST_FAILED), {}, WL_ERROR);
|
||||
if (widget == WID_GO_RESOLUTION_DROPDOWN) ShowErrorMessage(GetEncodedString(STR_ERROR_RESOLUTION_LIST_FAILED), {}, WarningLevel::Error);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1456,7 +1456,7 @@ struct GameOptionsWindow : Window {
|
||||
if (_settings_client.gui.refresh_rate > 60) {
|
||||
/* Show warning to the user that this refresh rate might not be suitable on
|
||||
* larger maps with many NewGRFs and vehicles. */
|
||||
ShowErrorMessage(GetEncodedString(STR_GAME_OPTIONS_REFRESH_RATE_WARNING), {}, WL_INFO);
|
||||
ShowErrorMessage(GetEncodedString(STR_GAME_OPTIONS_REFRESH_RATE_WARNING), {}, WarningLevel::Info);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -443,7 +443,7 @@ static void MaxNoAIsChange(int32_t)
|
||||
if (GetGameSettings().difficulty.max_no_competitors != 0 &&
|
||||
AI::GetInfoList()->empty() &&
|
||||
(!_networking || _network_server)) {
|
||||
ShowErrorMessage(GetEncodedString(STR_WARNING_NO_SUITABLE_AI), {}, WL_CRITICAL);
|
||||
ShowErrorMessage(GetEncodedString(STR_WARNING_NO_SUITABLE_AI), {}, WarningLevel::Critical);
|
||||
}
|
||||
|
||||
InvalidateWindowClassesData(WindowClass::GameOptions, 0);
|
||||
@@ -479,39 +479,39 @@ static bool CheckFreeformEdges(int32_t &new_value)
|
||||
for (Ship *s : Ship::Iterate()) {
|
||||
/* Check if there is a ship on the northern border. */
|
||||
if (TileX(s->tile) == 0 || TileY(s->tile) == 0) {
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_EDGES_NOT_EMPTY), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_EDGES_NOT_EMPTY), {}, WarningLevel::Error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (const BaseStation *st : BaseStation::Iterate()) {
|
||||
/* Check if there is a non-deleted buoy on the northern border. */
|
||||
if (st->IsInUse() && (TileX(st->xy) == 0 || TileY(st->xy) == 0)) {
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_EDGES_NOT_EMPTY), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_EDGES_NOT_EMPTY), {}, WarningLevel::Error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (uint i = 0; i < Map::MaxX(); i++) {
|
||||
if (TileHeight(TileXY(i, 1)) != 0) {
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_EDGES_NOT_WATER), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_EDGES_NOT_WATER), {}, WarningLevel::Error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (uint i = 1; i < Map::MaxX(); i++) {
|
||||
if (!IsTileType(TileXY(i, Map::MaxY() - 1), TileType::Water) || TileHeight(TileXY(1, Map::MaxY())) != 0) {
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_EDGES_NOT_WATER), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_EDGES_NOT_WATER), {}, WarningLevel::Error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (uint i = 0; i < Map::MaxY(); i++) {
|
||||
if (TileHeight(TileXY(1, i)) != 0) {
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_EDGES_NOT_WATER), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_EDGES_NOT_WATER), {}, WarningLevel::Error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (uint i = 1; i < Map::MaxY(); i++) {
|
||||
if (!IsTileType(TileXY(Map::MaxX() - 1, i), TileType::Water) || TileHeight(TileXY(Map::MaxX(), i)) != 0) {
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_EDGES_NOT_WATER), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_EDGES_NOT_WATER), {}, WarningLevel::Error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -550,7 +550,7 @@ static bool CheckDynamicEngines([[maybe_unused]] int32_t &value)
|
||||
if (_game_mode == GM_MENU) return true;
|
||||
|
||||
if (!EngineOverrideManager::ResetToCurrentNewGRFConfig()) {
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES), {}, WarningLevel::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -566,7 +566,7 @@ static bool CheckMaxHeightLevel(int32_t &new_value)
|
||||
* If yes, disallow the change. */
|
||||
for (const auto t : Map::Iterate()) {
|
||||
if ((int32_t)TileHeight(t) > new_value) {
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN), {}, WarningLevel::Error);
|
||||
/* Return old, unchanged value */
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ static bool WarnCorruptSprite(const SpriteFile &file, size_t file_pos, int line)
|
||||
{
|
||||
static uint8_t warning_level = 0;
|
||||
if (warning_level == 0) {
|
||||
ShowErrorMessage(GetEncodedString(STR_NEWGRF_ERROR_CORRUPT_SPRITE, file.GetSimplifiedFilename()), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_NEWGRF_ERROR_CORRUPT_SPRITE, file.GetSimplifiedFilename()), {}, WarningLevel::Error);
|
||||
}
|
||||
Debug(sprite, warning_level, "[{}] Loading corrupted sprite from {} at position {}", line, file.GetSimplifiedFilename(), file_pos);
|
||||
warning_level = 6;
|
||||
|
||||
+3
-3
@@ -2416,7 +2416,7 @@ void CheckForMissingGlyphs(MissingGlyphSearcher *searcher)
|
||||
StringBuilder builder(err_str);
|
||||
builder.PutUtf8(SCC_YELLOW);
|
||||
builder.Put("The current font is missing some of the characters used in the texts for this language. Using system fallback font instead.");
|
||||
ShowErrorMessage(GetEncodedString(STR_JUST_RAW_STRING, std::move(err_str)), {}, WL_WARNING);
|
||||
ShowErrorMessage(GetEncodedString(STR_JUST_RAW_STRING, std::move(err_str)), {}, WarningLevel::Warning);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -2433,7 +2433,7 @@ void CheckForMissingGlyphs(MissingGlyphSearcher *searcher)
|
||||
StringBuilder builder(err_str);
|
||||
builder.PutUtf8(SCC_YELLOW);
|
||||
builder.Put("The current font is missing some of the characters used in the texts for this language. Go to Help & Manuals > Fonts, or read the file docs/fonts.md in your OpenTTD directory, to see how to solve this.");
|
||||
ShowErrorMessage(GetEncodedString(STR_JUST_RAW_STRING, std::move(err_str)), {}, WL_WARNING);
|
||||
ShowErrorMessage(GetEncodedString(STR_JUST_RAW_STRING, std::move(err_str)), {}, WarningLevel::Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2452,7 +2452,7 @@ void CheckForMissingGlyphs(MissingGlyphSearcher *searcher)
|
||||
StringBuilder builder(err_str);
|
||||
builder.PutUtf8(SCC_YELLOW);
|
||||
builder.Put("This version of OpenTTD does not support right-to-left languages. Recompile with ICU + Harfbuzz enabled.");
|
||||
ShowErrorMessage(GetEncodedString(STR_JUST_RAW_STRING, std::move(err_str)), {}, WL_ERROR);
|
||||
ShowErrorMessage(GetEncodedString(STR_JUST_RAW_STRING, std::move(err_str)), {}, WarningLevel::Error);
|
||||
}
|
||||
#endif /* !(WITH_ICU_I18N && WITH_HARFBUZZ) && !WITH_UNISCRIBE && !WITH_COCOA */
|
||||
}
|
||||
|
||||
+4
-4
@@ -991,11 +991,11 @@ bool CheckTownRoadTypes()
|
||||
ShowErrorMessage(
|
||||
GetEncodedString(STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET),
|
||||
GetEncodedString(STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET_EXPLANATION, min_date),
|
||||
WL_CRITICAL);
|
||||
WarningLevel::Critical);
|
||||
} else {
|
||||
ShowErrorMessage(
|
||||
GetEncodedString(STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL),
|
||||
GetEncodedString(STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL_EXPLANATION), WL_CRITICAL);
|
||||
GetEncodedString(STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL_EXPLANATION), WarningLevel::Critical);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -2472,7 +2472,7 @@ bool GenerateTowns(TownLayout layout, std::optional<uint> number)
|
||||
|
||||
/* If there are no towns at all and we are generating new game, bail out */
|
||||
if (Town::GetNumItems() == 0 && _game_mode != GM_EDITOR) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_COULD_NOT_CREATE_TOWN), {}, WL_CRITICAL);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_COULD_NOT_CREATE_TOWN), {}, WarningLevel::Critical);
|
||||
}
|
||||
|
||||
return false; // we are still without a town? we failed, simply
|
||||
@@ -3660,7 +3660,7 @@ static CommandCost TownActionBribe(Town *t, DoCommandFlags flags)
|
||||
|
||||
/* only show error message to the executing player. All errors are handled command.c
|
||||
* but this is special, because it can only 'fail' on a DoCommandFlag::Execute */
|
||||
if (IsLocalCompany()) ShowErrorMessage(GetEncodedString(STR_ERROR_BRIBE_FAILED), {}, WL_INFO);
|
||||
if (IsLocalCompany()) ShowErrorMessage(GetEncodedString(STR_ERROR_BRIBE_FAILED), {}, WarningLevel::Info);
|
||||
|
||||
/* decrease by a lot!
|
||||
* ChangeTownRating is only for stuff in demolishing. Bribe failure should
|
||||
|
||||
+1
-1
@@ -1319,7 +1319,7 @@ public:
|
||||
AutoRestoreBackup old_generating_world(_generating_world, true);
|
||||
UpdateNearestTownForRoadTiles(true);
|
||||
if (!GenerateTowns(this->town_layout, value)) {
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_GENERATE_TOWN), GetEncodedString(STR_ERROR_NO_SPACE_FOR_TOWN), WL_INFO);
|
||||
ShowErrorMessage(GetEncodedString(STR_ERROR_CAN_T_GENERATE_TOWN), GetEncodedString(STR_ERROR_NO_SPACE_FOR_TOWN), WarningLevel::Info);
|
||||
}
|
||||
UpdateNearestTownForRoadTiles(false);
|
||||
}
|
||||
|
||||
+1
-1
@@ -84,7 +84,7 @@ void CheckTrainsLengths()
|
||||
if ((w->track != TRACK_BIT_DEPOT &&
|
||||
std::max(abs(u->x_pos - w->x_pos), abs(u->y_pos - w->y_pos)) != u->CalcNextVehicleOffset()) ||
|
||||
(w->track == TRACK_BIT_DEPOT && TicksToLeaveDepot(u) <= 0)) {
|
||||
ShowErrorMessage(GetEncodedString(STR_BROKEN_VEHICLE_LENGTH, v->index, v->owner), {}, WL_CRITICAL);
|
||||
ShowErrorMessage(GetEncodedString(STR_BROKEN_VEHICLE_LENGTH, v->index, v->owner), {}, WarningLevel::Critical);
|
||||
|
||||
if (!_networking && first) {
|
||||
first = false;
|
||||
|
||||
+1
-1
@@ -345,7 +345,7 @@ void ShowNewGrfVehicleError(EngineID engine, StringID part1, StringID part2, GRF
|
||||
if (!grfconfig->grf_bugs.Test(bug_type)) {
|
||||
grfconfig->grf_bugs.Set(bug_type);
|
||||
ShowErrorMessage(GetEncodedString(part1, grfconfig->GetName()),
|
||||
GetEncodedString(part2, std::monostate{}, engine), WL_CRITICAL);
|
||||
GetEncodedString(part2, std::monostate{}, engine), WarningLevel::Critical);
|
||||
if (!_networking) Command<Commands::Pause>::Do(DoCommandFlag::Execute, critical ? PauseMode::Error : PauseMode::Normal, true);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user