diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -191,7 +191,7 @@ DEF_CONSOLE_HOOK(ConHookNewGRFDeveloperT */ static void IConsoleHelp(const char *str) { - IConsolePrintF(CC_HELP, "- {}", str); + IConsolePrint(CC_HELP, "- {}", str); } /** @@ -325,9 +325,9 @@ DEF_CONSOLE_CMD(ConSave) IConsolePrint(CC_DEFAULT, "Saving map..."); if (SaveOrLoad(filename, SLO_SAVE, DFT_GAME_FILE, SAVE_DIR) != SL_OK) { - IConsolePrint(CC_ERROR, "Saving map failed"); + IConsolePrint(CC_ERROR, "Saving map failed."); } else { - IConsolePrintF(CC_DEFAULT, "Map successfully saved to %s", filename); + IConsolePrint(CC_INFO, "Map successfully saved to '{}'.", filename); } free(filename); return true; @@ -417,7 +417,7 @@ DEF_CONSOLE_CMD(ConListFiles) _console_file_list.ValidateFileList(true); for (uint i = 0; i < _console_file_list.size(); i++) { - IConsolePrintF(CC_DEFAULT, "%d) %s", i, _console_file_list[i].title); + IConsolePrint(CC_DEFAULT, "{}) {}", i, _console_file_list[i].title); } return true; @@ -523,7 +523,7 @@ static bool ConKickOrBan(const char *arg if (n == 0) { IConsolePrint(CC_DEFAULT, ban ? "Client not online, address added to banlist." : "Client not found."); } else { - IConsolePrintF(CC_DEFAULT, "%sed %u client(s).", ban ? "Bann" : "Kick", n); + IConsolePrint(CC_DEFAULT, "{}ed {} client(s).", ban ? "Bann" : "Kick", n); } return true; @@ -598,9 +598,7 @@ DEF_CONSOLE_CMD(ConUnBan) } if (index < _network_ban_list.size()) { - char msg[64]; - seprintf(msg, lastof(msg), "Unbanned %s", _network_ban_list[index].c_str()); - IConsolePrint(CC_DEFAULT, msg); + IConsolePrint(CC_DEFAULT, "Unbanned {}.", _network_ban_list[index]); _network_ban_list.erase(_network_ban_list.begin() + index); } else { IConsolePrint(CC_DEFAULT, "Invalid list index or IP not in ban-list."); @@ -621,7 +619,7 @@ DEF_CONSOLE_CMD(ConBanList) uint i = 1; for (const auto &entry : _network_ban_list) { - IConsolePrintF(CC_DEFAULT, " %d) %s", i, entry.c_str()); + IConsolePrint(CC_DEFAULT, " {}) {}", i, entry); i++; } @@ -713,9 +711,9 @@ DEF_CONSOLE_CMD(ConServerInfo) return true; } - IConsolePrintF(CC_DEFAULT, "Current/maximum clients: %2d/%2d", _network_game_info.clients_on, _settings_client.network.max_clients); - IConsolePrintF(CC_DEFAULT, "Current/maximum companies: %2d/%2d", (int)Company::GetNumItems(), _settings_client.network.max_companies); - IConsolePrintF(CC_DEFAULT, "Current/maximum spectators: %2d/%2d", NetworkSpectatorCount(), _settings_client.network.max_spectators); + IConsolePrint(CC_DEFAULT, "Current/maximum clients: {:3d}/{:3d}", _network_game_info.clients_on, _settings_client.network.max_clients); + IConsolePrint(CC_DEFAULT, "Current/maximum companies: {:3d}/{:3d}", Company::GetNumItems(), _settings_client.network.max_companies); + IConsolePrint(CC_DEFAULT, "Current/maximum spectators: {:3d}/{:3d}", NetworkSpectatorCount(), _settings_client.network.max_spectators); return true; } @@ -922,7 +920,7 @@ DEF_CONSOLE_CMD(ConNetworkReconnect) } /* Don't resolve the address first, just print it directly as it comes from the config file. */ - IConsolePrintF(CC_DEFAULT, "Reconnecting to %s ...", _settings_client.network.last_joined.c_str()); + IConsolePrint(CC_DEFAULT, "Reconnecting to {} ...", _settings_client.network.last_joined); return NetworkClientConnectGame(_settings_client.network.last_joined, playas); } @@ -1025,9 +1023,12 @@ DEF_CONSOLE_CMD(ConScript) if (!CloseConsoleLogIfActive()) { if (argc < 2) return false; - IConsolePrintF(CC_DEFAULT, "file output started to: %s", argv[1]); _iconsole_output_file = fopen(argv[1], "ab"); - if (_iconsole_output_file == nullptr) IConsolePrint(CC_ERROR, "Could not open file '{}'.", argv[1]); + if (_iconsole_output_file == nullptr) { + IConsolePrint(CC_ERROR, "Could not open console log file '{}'.", argv[1]); + } else { + IConsolePrint(CC_INFO, "Console log output started to: '{}'", argv[1]); + } } return true; @@ -1117,7 +1118,7 @@ static void PrintLineByLine(char *buf) for (char *p2 = buf; *p2 != '\0'; p2++) { if (*p2 == '\n') { *p2 = '\0'; - IConsolePrintF(CC_DEFAULT, "%s", p); + IConsolePrint(CC_DEFAULT, p); p = p2 + 1; } } @@ -1257,7 +1258,7 @@ DEF_CONSOLE_CMD(ConReloadAI) CompanyID company_id = (CompanyID)(atoi(argv[1]) - 1); if (!Company::IsValidID(company_id)) { - IConsolePrintF(CC_DEFAULT, "Unknown company. Company range is between 1 and %d.", MAX_COMPANIES); + IConsolePrint(CC_ERROR, "Unknown company. Company range is between 1 and {}.", MAX_COMPANIES); return true; } @@ -1295,7 +1296,7 @@ DEF_CONSOLE_CMD(ConStopAI) CompanyID company_id = (CompanyID)(atoi(argv[1]) - 1); if (!Company::IsValidID(company_id)) { - IConsolePrintF(CC_DEFAULT, "Unknown company. Company range is between 1 and %d.", MAX_COMPANIES); + IConsolePrint(CC_ERROR, "Unknown company. Company range is between 1 and {}.", MAX_COMPANIES); return true; } @@ -1368,7 +1369,7 @@ DEF_CONSOLE_CMD(ConGetSeed) return true; } - IConsolePrintF(CC_DEFAULT, "Generation Seed: %u", _settings_game.game_creation.generation_seed); + IConsolePrint(CC_DEFAULT, "Generation Seed: {}", _settings_game.game_creation.generation_seed); return true; } @@ -1381,7 +1382,7 @@ DEF_CONSOLE_CMD(ConGetDate) YearMonthDay ymd; ConvertDateToYMD(_date, &ymd); - IConsolePrintF(CC_DEFAULT, "Date: %04d-%02d-%02d", ymd.year, ymd.month + 1, ymd.day); + IConsolePrint(CC_DEFAULT, "Date: {:04d}-{:02d}-{:02d}", ymd.year, ymd.month + 1, ymd.day); return true; } @@ -1394,7 +1395,7 @@ DEF_CONSOLE_CMD(ConGetSysDate) char buffer[lengthof("2000-01-02 03:04:05")]; LocalTime::Format(buffer, lastof(buffer), "%Y-%m-%d %H:%M:%S"); - IConsolePrintF(CC_DEFAULT, "System Date: %s", buffer); + IConsolePrint(CC_DEFAULT, "System Date: {}", buffer); return true; } @@ -1532,7 +1533,7 @@ DEF_CONSOLE_CMD(ConDebugLevel) if (argc > 2) return false; if (argc == 1) { - IConsolePrintF(CC_DEFAULT, "Current debug-level: '%s'", GetDebugString()); + IConsolePrint(CC_DEFAULT, "Current debug-level: '{}'", GetDebugString()); } else { SetDebugString(argv[1]); } @@ -1585,7 +1586,7 @@ DEF_CONSOLE_CMD(ConHelp) cmd->proc(0, nullptr); return true; } - IConsolePrintF(CC_ERROR, "ERROR: alias is of special type, please see its execution-line: '%s'", alias->cmdline.c_str()); + IConsolePrint(CC_ERROR, "Alias is of special type, please see its execution-line: '{}'.", alias->cmdline); return true; } @@ -1615,7 +1616,7 @@ DEF_CONSOLE_CMD(ConListCommands) for (auto &it : IConsole::Commands()) { const IConsoleCmd *cmd = &it.second; if (argv[1] == nullptr || cmd->name.find(argv[1]) != std::string::npos) { - if (cmd->hook == nullptr || cmd->hook(false) != CHR_HIDE) IConsolePrintF(CC_DEFAULT, "%s", cmd->name.c_str()); + if (cmd->hook == nullptr || cmd->hook(false) != CHR_HIDE) IConsolePrint(CC_DEFAULT, cmd->name); } } @@ -1632,7 +1633,7 @@ DEF_CONSOLE_CMD(ConListAliases) for (auto &it : IConsole::Aliases()) { const IConsoleAlias *alias = &it.second; if (argv[1] == nullptr || alias->name.find(argv[1]) != std::string::npos) { - IConsolePrintF(CC_DEFAULT, "%s => %s", alias->name.c_str(), alias->cmdline.c_str()); + IConsolePrint(CC_DEFAULT, "{} => {}", alias->name, alias->cmdline); } } @@ -1661,7 +1662,7 @@ DEF_CONSOLE_CMD(ConCompanies) char colour[512]; GetString(colour, STR_COLOUR_DARK_BLUE + _company_colours[c->index], lastof(colour)); - IConsolePrintF(CC_INFO, "#:%d(%s) Company Name: '%s' Year Founded: %d Money: " OTTD_PRINTF64 " Loan: " OTTD_PRINTF64 " Value: " OTTD_PRINTF64 " (T:%d, R:%d, P:%d, S:%d) %s", + IConsolePrint(CC_INFO, "#:{}({}) Company Name: '{}' Year Founded: {} Money: {} Loan: {} Value: {} (T:{}, R:{}, P:{}, S:{}) {}", c->index + 1, colour, company_name, c->inaugurated_year, (int64)c->money, (int64)c->current_loan, (int64)CalculateCompanyValue(c), c->group_all[VEH_TRAIN].num_vehicle, @@ -1705,7 +1706,7 @@ DEF_CONSOLE_CMD(ConSayCompany) CompanyID company_id = (CompanyID)(atoi(argv[1]) - 1); if (!Company::IsValidID(company_id)) { - IConsolePrintF(CC_DEFAULT, "Unknown company. Company range is between 1 and %d.", MAX_COMPANIES); + IConsolePrint(CC_DEFAULT, "Unknown company. Company range is between 1 and {}.", MAX_COMPANIES); return true; } @@ -1742,18 +1743,15 @@ DEF_CONSOLE_CMD(ConSayClient) DEF_CONSOLE_CMD(ConCompanyPassword) { if (argc == 0) { - const char *helpmsg; - if (_network_dedicated) { - helpmsg = "Change the password of a company. Usage: 'company_pw \"\""; + IConsolePrint(CC_HELP, "Change the password of a company. Usage: 'company_pw \"\"."); } else if (_network_server) { - helpmsg = "Change the password of your or any other company. Usage: 'company_pw [] \"\"'"; + IConsolePrint(CC_HELP, "Change the password of your or any other company. Usage: 'company_pw [] \"\"'."); } else { - helpmsg = "Change the password of your company. Usage: 'company_pw \"\"'"; + IConsolePrint(CC_HELP, "Change the password of your company. Usage: 'company_pw \"\"'."); } - IConsoleHelp(helpmsg); - IConsoleHelp("Use \"*\" to disable the password."); + IConsolePrint(CC_HELP, "Use \"*\" to disable the password."); return true; } @@ -1807,17 +1805,17 @@ static ContentType StringToContentType(c struct ConsoleContentCallback : public ContentCallback { void OnConnect(bool success) { - IConsolePrintF(CC_DEFAULT, "Content server connection %s", success ? "established" : "failed"); + IConsolePrint(CC_DEFAULT, "Content server connection {}.", success ? "established" : "failed"); } void OnDisconnect() { - IConsolePrintF(CC_DEFAULT, "Content server connection closed"); + IConsolePrint(CC_DEFAULT, "Content server connection closed."); } void OnDownloadComplete(ContentID cid) { - IConsolePrintF(CC_DEFAULT, "Completed download of %d", cid); + IConsolePrint(CC_DEFAULT, "Completed download of {}.", cid); } }; @@ -1834,7 +1832,7 @@ static void OutputContentState(const Con char buf[sizeof(ci->md5sum) * 2 + 1]; md5sumToString(buf, lastof(buf), ci->md5sum); - IConsolePrintF(state_to_colour[ci->state], "%d, %s, %s, %s, %08X, %s", ci->id, types[ci->type - 1], states[ci->state], ci->name.c_str(), ci->unique_id, buf); + IConsolePrint(state_to_colour[ci->state], "{}, {}, {}, {}, {:08X}, {}", ci->id, types[ci->type - 1], states[ci->state], ci->name, ci->unique_id, buf); } DEF_CONSOLE_CMD(ConContent) @@ -1869,7 +1867,7 @@ DEF_CONSOLE_CMD(ConContent) if (strcasecmp(argv[1], "select") == 0) { if (argc <= 2) { /* List selected content */ - IConsolePrintF(CC_WHITE, "id, type, state, name"); + IConsolePrint(CC_WHITE, "id, type, state, name"); for (ConstContentIterator iter = _network_content_client.Begin(); iter != _network_content_client.End(); iter++) { if ((*iter)->state != ContentInfo::SELECTED && (*iter)->state != ContentInfo::AUTOSELECTED) continue; OutputContentState(*iter); @@ -1902,7 +1900,7 @@ DEF_CONSOLE_CMD(ConContent) } if (strcasecmp(argv[1], "state") == 0) { - IConsolePrintF(CC_WHITE, "id, type, state, name"); + IConsolePrint(CC_WHITE, "id, type, state, name"); for (ConstContentIterator iter = _network_content_client.Begin(); iter != _network_content_client.End(); iter++) { if (argc > 2 && strcasestr((*iter)->name.c_str(), argv[2]) == nullptr) continue; OutputContentState(*iter); @@ -1914,7 +1912,7 @@ DEF_CONSOLE_CMD(ConContent) uint files; uint bytes; _network_content_client.DownloadSelectedContent(files, bytes); - IConsolePrintF(CC_DEFAULT, "Downloading %d file(s) (%d bytes)", files, bytes); + IConsolePrint(CC_DEFAULT, "Downloading {} file(s) ({} bytes).", files, bytes); return true; } @@ -2022,7 +2020,7 @@ DEF_CONSOLE_CMD(ConNewGRFProfile) bool active = selected && profiler->active; TextColour tc = active ? TC_LIGHT_BLUE : selected ? TC_GREEN : CC_INFO; const char *statustext = active ? " (active)" : selected ? " (selected)" : ""; - IConsolePrintF(tc, "%d: [%08X] %s%s", i, BSWAP32(grf->grfid), grf->filename, statustext); + IConsolePrint(tc, "{}: [{:08X}] {}{}", i, BSWAP32(grf->grfid), grf->filename, statustext); i++; } return true; @@ -2081,7 +2079,7 @@ DEF_CONSOLE_CMD(ConNewGRFProfile) } } if (started > 0) { - IConsolePrintF(CC_DEBUG, "Started profiling for GRFID%s %s", (started > 1) ? "s" : "", grfids.c_str()); + IConsolePrint(CC_DEBUG, "Started profiling for GRFID{} {}", (started > 1) ? "s" : "", grfids); if (argc >= 3) { int days = std::max(atoi(argv[2]), 1); _newgrf_profile_end_date = _date + days; @@ -2089,7 +2087,7 @@ DEF_CONSOLE_CMD(ConNewGRFProfile) char datestrbuf[32]{ 0 }; SetDParam(0, _newgrf_profile_end_date); GetString(datestrbuf, STR_JUST_DATE_ISO, lastof(datestrbuf)); - IConsolePrintF(CC_DEBUG, "Profiling will automatically stop on game date %s", datestrbuf); + IConsolePrint(CC_DEBUG, "Profiling will automatically stop on game date {}.", datestrbuf); } else { _newgrf_profile_end_date = MAX_DAY; } @@ -2165,12 +2163,12 @@ DEF_CONSOLE_CMD(ConFramerateWindow) static void ConDumpRoadTypes() { - IConsolePrintF(CC_DEFAULT, " Flags:"); - IConsolePrintF(CC_DEFAULT, " c = catenary"); - IConsolePrintF(CC_DEFAULT, " l = no level crossings"); - IConsolePrintF(CC_DEFAULT, " X = no houses"); - IConsolePrintF(CC_DEFAULT, " h = hidden"); - IConsolePrintF(CC_DEFAULT, " T = buildable by towns"); + IConsolePrint(CC_DEFAULT, " Flags:"); + IConsolePrint(CC_DEFAULT, " c = catenary"); + IConsolePrint(CC_DEFAULT, " l = no level crossings"); + IConsolePrint(CC_DEFAULT, " X = no houses"); + IConsolePrint(CC_DEFAULT, " h = hidden"); + IConsolePrint(CC_DEFAULT, " T = buildable by towns"); std::map grfs; for (RoadType rt = ROADTYPE_BEGIN; rt < ROADTYPE_END; rt++) { @@ -2182,7 +2180,7 @@ static void ConDumpRoadTypes() grfid = grf->grfid; grfs.emplace(grfid, grf); } - IConsolePrintF(CC_DEFAULT, " %02u %s %c%c%c%c, Flags: %c%c%c%c%c, GRF: %08X, %s", + IConsolePrint(CC_DEFAULT, " {:02d} {} {:c}{:c}{:c}{:c}, Flags: {}{}{}{}{}, GRF: {:08X}, {}", (uint)rt, RoadTypeIsTram(rt) ? "Tram" : "Road", rti->label >> 24, rti->label >> 16, rti->label >> 8, rti->label, @@ -2196,19 +2194,19 @@ static void ConDumpRoadTypes() ); } for (const auto &grf : grfs) { - IConsolePrintF(CC_DEFAULT, " GRF: %08X = %s", BSWAP32(grf.first), grf.second->filename); + IConsolePrint(CC_DEFAULT, " GRF: {:08X} = {}", BSWAP32(grf.first), grf.second->filename); } } static void ConDumpRailTypes() { - IConsolePrintF(CC_DEFAULT, " Flags:"); - IConsolePrintF(CC_DEFAULT, " c = catenary"); - IConsolePrintF(CC_DEFAULT, " l = no level crossings"); - IConsolePrintF(CC_DEFAULT, " h = hidden"); - IConsolePrintF(CC_DEFAULT, " s = no sprite combine"); - IConsolePrintF(CC_DEFAULT, " a = always allow 90 degree turns"); - IConsolePrintF(CC_DEFAULT, " d = always disallow 90 degree turns"); + IConsolePrint(CC_DEFAULT, " Flags:"); + IConsolePrint(CC_DEFAULT, " c = catenary"); + IConsolePrint(CC_DEFAULT, " l = no level crossings"); + IConsolePrint(CC_DEFAULT, " h = hidden"); + IConsolePrint(CC_DEFAULT, " s = no sprite combine"); + IConsolePrint(CC_DEFAULT, " a = always allow 90 degree turns"); + IConsolePrint(CC_DEFAULT, " d = always disallow 90 degree turns"); std::map grfs; for (RailType rt = RAILTYPE_BEGIN; rt < RAILTYPE_END; rt++) { @@ -2220,7 +2218,7 @@ static void ConDumpRailTypes() grfid = grf->grfid; grfs.emplace(grfid, grf); } - IConsolePrintF(CC_DEFAULT, " %02u %c%c%c%c, Flags: %c%c%c%c%c%c, GRF: %08X, %s", + IConsolePrint(CC_DEFAULT, " {:02d} {:c}{:c}{:c}{:c}, Flags: {}{}{}{}{}{}, GRF: {:08X}, {}", (uint)rt, rti->label >> 24, rti->label >> 16, rti->label >> 8, rti->label, HasBit(rti->flags, RTF_CATENARY) ? 'c' : '-', @@ -2234,24 +2232,24 @@ static void ConDumpRailTypes() ); } for (const auto &grf : grfs) { - IConsolePrintF(CC_DEFAULT, " GRF: %08X = %s", BSWAP32(grf.first), grf.second->filename); + IConsolePrint(CC_DEFAULT, " GRF: {:08X} = {}", BSWAP32(grf.first), grf.second->filename); } } static void ConDumpCargoTypes() { - IConsolePrintF(CC_DEFAULT, " Cargo classes:"); - IConsolePrintF(CC_DEFAULT, " p = passenger"); - IConsolePrintF(CC_DEFAULT, " m = mail"); - IConsolePrintF(CC_DEFAULT, " x = express"); - IConsolePrintF(CC_DEFAULT, " a = armoured"); - IConsolePrintF(CC_DEFAULT, " b = bulk"); - IConsolePrintF(CC_DEFAULT, " g = piece goods"); - IConsolePrintF(CC_DEFAULT, " l = liquid"); - IConsolePrintF(CC_DEFAULT, " r = refrigerated"); - IConsolePrintF(CC_DEFAULT, " h = hazardous"); - IConsolePrintF(CC_DEFAULT, " c = covered/sheltered"); - IConsolePrintF(CC_DEFAULT, " S = special"); + IConsolePrint(CC_DEFAULT, " Cargo classes:"); + IConsolePrint(CC_DEFAULT, " p = passenger"); + IConsolePrint(CC_DEFAULT, " m = mail"); + IConsolePrint(CC_DEFAULT, " x = express"); + IConsolePrint(CC_DEFAULT, " a = armoured"); + IConsolePrint(CC_DEFAULT, " b = bulk"); + IConsolePrint(CC_DEFAULT, " g = piece goods"); + IConsolePrint(CC_DEFAULT, " l = liquid"); + IConsolePrint(CC_DEFAULT, " r = refrigerated"); + IConsolePrint(CC_DEFAULT, " h = hazardous"); + IConsolePrint(CC_DEFAULT, " c = covered/sheltered"); + IConsolePrint(CC_DEFAULT, " S = special"); std::map grfs; for (CargoID i = 0; i < NUM_CARGO; i++) { @@ -2263,7 +2261,7 @@ static void ConDumpCargoTypes() grfid = grf->grfid; grfs.emplace(grfid, grf); } - IConsolePrintF(CC_DEFAULT, " %02u Bit: %2u, Label: %c%c%c%c, Callback mask: 0x%02X, Cargo class: %c%c%c%c%c%c%c%c%c%c%c, GRF: %08X, %s", + IConsolePrint(CC_DEFAULT, " {:02d} Bit: {:2d}, Label: {:c}{:c}{:c}{:c}, Callback mask: 0x{:02X}, Cargo class: {}{}{}{}{}{}{}{}{}{}{}, GRF: {:08X}, {}", (uint)i, spec->bitnum, spec->label >> 24, spec->label >> 16, spec->label >> 8, spec->label, @@ -2284,7 +2282,7 @@ static void ConDumpCargoTypes() ); } for (const auto &grf : grfs) { - IConsolePrintF(CC_DEFAULT, " GRF: %08X = %s", BSWAP32(grf.first), grf.second->filename); + IConsolePrint(CC_DEFAULT, " GRF: {:08X} = {}", BSWAP32(grf.first), grf.second->filename); } }