From 8e7fe3973fc03561c828594ce3293c1ab3c15481 Mon Sep 17 00:00:00 2001 From: glx Date: Mon, 4 Feb 2019 18:06:19 +0100 Subject: [PATCH 01/38] Add: CompanyCtrlAction enum for CMD_COMPANY_CTRL actions --- src/ai/ai_gui.cpp | 4 ++-- src/company_cmd.cpp | 15 ++++++--------- src/company_type.h | 9 +++++++++ src/console_cmds.cpp | 10 +++++----- src/economy.cpp | 2 +- src/network/network_client.cpp | 2 +- src/network/network_server.cpp | 4 ++-- src/toolbar_gui.cpp | 4 ++-- 8 files changed, 28 insertions(+), 22 deletions(-) diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index 69476856ce..dbdd772452 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -1282,8 +1282,8 @@ struct AIDebugWindow : public Window { case WID_AID_RELOAD_TOGGLE: if (ai_debug_company == OWNER_DEITY) break; /* First kill the company of the AI, then start a new one. This should start the current AI again */ - DoCommandP(0, 2 | ai_debug_company << 16, CRR_MANUAL, CMD_COMPANY_CTRL); - DoCommandP(0, 1 | ai_debug_company << 16, 0, CMD_COMPANY_CTRL); + DoCommandP(0, CCA_DELETE | ai_debug_company << 16, CRR_MANUAL, CMD_COMPANY_CTRL); + DoCommandP(0, CCA_NEW_AI | ai_debug_company << 16, 0, CMD_COMPANY_CTRL); break; case WID_AID_SETTINGS: diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp index cf66690f41..392f97afb1 100644 --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -612,7 +612,7 @@ static bool MaybeStartNewCompany() if (n < (uint)_settings_game.difficulty.max_no_competitors) { /* Send a command to all clients to start up a new AI. * Works fine for Multiplayer and Singleplayer */ - return DoCommandP(0, 1 | INVALID_COMPANY << 16, 0, CMD_COMPANY_CTRL); + return DoCommandP(0, CCA_NEW_AI | INVALID_COMPANY << 16, 0, CMD_COMPANY_CTRL); } return false; @@ -810,10 +810,7 @@ void CompanyAdminRemove(CompanyID company_id, CompanyRemoveReason reason) * @param tile unused * @param flags operation to perform * @param p1 various functionality - * - bits 0..15: - * = 0 - create a new company - * = 1 - create a new AI company - * = 2 - delete a company + * - bits 0..15: CompanyCtrlAction * - bits 16..24: CompanyID * @param p2 ClientID * @param text unused @@ -827,8 +824,8 @@ CommandCost CmdCompanyCtrl(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 ClientID client_id = (ClientID)p2; #endif /* ENABLE_NETWORK */ - switch (GB(p1, 0, 16)) { - case 0: { // Create a new company + switch ((CompanyCtrlAction)GB(p1, 0, 16)) { + case CCA_NEW: { // Create a new company /* This command is only executed in a multiplayer game */ if (!_networking) return CMD_ERROR; @@ -878,7 +875,7 @@ CommandCost CmdCompanyCtrl(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 break; } - case 1: { // Make a new AI company + case CCA_NEW_AI: { // Make a new AI company if (!(flags & DC_EXEC)) return CommandCost(); if (company_id != INVALID_COMPANY && (company_id >= MAX_COMPANIES || Company::IsValidID(company_id))) return CMD_ERROR; @@ -889,7 +886,7 @@ CommandCost CmdCompanyCtrl(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 break; } - case 2: { // Delete a company + case CCA_DELETE: { // Delete a company CompanyRemoveReason reason = (CompanyRemoveReason)GB(p2, 0, 2); if (reason >= CRR_END) return CMD_ERROR; diff --git a/src/company_type.h b/src/company_type.h index 44a074e104..771e6d8b93 100644 --- a/src/company_type.h +++ b/src/company_type.h @@ -64,4 +64,13 @@ enum CompanyRemoveReason { CRR_END, ///< Sentinel for end. }; +/** The action to do with CMD_COMPANY_CTRL. */ +enum CompanyCtrlAction { + CCA_NEW, ///< Create a new company. + CCA_NEW_AI, ///< Create a new AI company. + CCA_DELETE, ///< Delete a company. + + CCA_END, ///< Sentinel for end. +}; + #endif /* COMPANY_TYPE_H */ diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index d9155a97db..732ace6a2b 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -836,7 +836,7 @@ DEF_CONSOLE_CMD(ConResetCompany) } /* It is safe to remove this company */ - DoCommandP(0, 2 | index << 16, CRR_MANUAL, CMD_COMPANY_CTRL); + DoCommandP(0, CCA_DELETE | index << 16, CRR_MANUAL, CMD_COMPANY_CTRL); IConsolePrint(CC_DEFAULT, "Company deleted."); return true; @@ -1178,7 +1178,7 @@ DEF_CONSOLE_CMD(ConStartAI) } /* Start a new AI company */ - DoCommandP(0, 1 | INVALID_COMPANY << 16, 0, CMD_COMPANY_CTRL); + DoCommandP(0, CCA_NEW_AI | INVALID_COMPANY << 16, 0, CMD_COMPANY_CTRL); return true; } @@ -1213,8 +1213,8 @@ DEF_CONSOLE_CMD(ConReloadAI) } /* First kill the company of the AI, then start a new one. This should start the current AI again */ - DoCommandP(0, 2 | company_id << 16, CRR_MANUAL, CMD_COMPANY_CTRL); - DoCommandP(0, 1 | company_id << 16, 0, CMD_COMPANY_CTRL); + DoCommandP(0, CCA_DELETE | company_id << 16, CRR_MANUAL, CMD_COMPANY_CTRL); + DoCommandP(0, CCA_NEW_AI | company_id << 16, 0, CMD_COMPANY_CTRL); IConsolePrint(CC_DEFAULT, "AI reloaded."); return true; @@ -1250,7 +1250,7 @@ DEF_CONSOLE_CMD(ConStopAI) } /* Now kill the company of the AI. */ - DoCommandP(0, 2 | company_id << 16, CRR_MANUAL, CMD_COMPANY_CTRL); + DoCommandP(0, CCA_DELETE | company_id << 16, CRR_MANUAL, CMD_COMPANY_CTRL); IConsolePrint(CC_DEFAULT, "AI stopped, company deleted."); return true; diff --git a/src/economy.cpp b/src/economy.cpp index 6d3c2a8b26..97283ae448 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -642,7 +642,7 @@ static void CompanyCheckBankrupt(Company *c) * that changing the current company is okay. In case of single * player we are sure (the above check) that we are not the local * company and thus we won't be moved. */ - if (!_networking || _network_server) DoCommandP(0, 2 | (c->index << 16), CRR_BANKRUPT, CMD_COMPANY_CTRL); + if (!_networking || _network_server) DoCommandP(0, CCA_DELETE | (c->index << 16), CRR_BANKRUPT, CMD_COMPANY_CTRL); break; } } diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp index 9e34ebb099..b4d0a06f7c 100644 --- a/src/network/network_client.cpp +++ b/src/network/network_client.cpp @@ -878,7 +878,7 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::Receive_SERVER_MAP_DONE(Packet * the server will give us a client-id and let us in */ _network_join_status = NETWORK_JOIN_STATUS_REGISTERING; ShowJoinStatusWindow(); - NetworkSendCommand(0, 0, 0, CMD_COMPANY_CTRL, NULL, NULL, _local_company); + NetworkSendCommand(0, CCA_NEW, 0, CMD_COMPANY_CTRL, NULL, NULL, _local_company); } } else { /* take control over an existing company */ diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index 275b6200eb..05fb27fc87 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -1675,7 +1675,7 @@ static void NetworkAutoCleanCompanies() /* Is the company empty for autoclean_unprotected-months, and is there no protection? */ if (_settings_client.network.autoclean_unprotected != 0 && _network_company_states[c->index].months_empty > _settings_client.network.autoclean_unprotected && StrEmpty(_network_company_states[c->index].password)) { /* Shut the company down */ - DoCommandP(0, 2 | c->index << 16, CRR_AUTOCLEAN, CMD_COMPANY_CTRL); + DoCommandP(0, CCA_DELETE | c->index << 16, CRR_AUTOCLEAN, CMD_COMPANY_CTRL); IConsolePrintF(CC_DEFAULT, "Auto-cleaned company #%d with no password", c->index + 1); } /* Is the company empty for autoclean_protected-months, and there is a protection? */ @@ -1689,7 +1689,7 @@ static void NetworkAutoCleanCompanies() /* Is the company empty for autoclean_novehicles-months, and has no vehicles? */ if (_settings_client.network.autoclean_novehicles != 0 && _network_company_states[c->index].months_empty > _settings_client.network.autoclean_novehicles && vehicles_in_company[c->index] == 0) { /* Shut the company down */ - DoCommandP(0, 2 | c->index << 16, CRR_AUTOCLEAN, CMD_COMPANY_CTRL); + DoCommandP(0, CCA_DELETE | c->index << 16, CRR_AUTOCLEAN, CMD_COMPANY_CTRL); IConsolePrintF(CC_DEFAULT, "Auto-cleaned company #%d with no vehicles", c->index + 1); } } else { diff --git a/src/toolbar_gui.cpp b/src/toolbar_gui.cpp index afa9adacbd..fbc099f8a3 100644 --- a/src/toolbar_gui.cpp +++ b/src/toolbar_gui.cpp @@ -618,9 +618,9 @@ static CallBackFunction MenuClickCompany(int index) case CTMN_NEW_COMPANY: if (_network_server) { - DoCommandP(0, 0, _network_own_client_id, CMD_COMPANY_CTRL); + DoCommandP(0, CCA_NEW, _network_own_client_id, CMD_COMPANY_CTRL); } else { - NetworkSendCommand(0, 0, 0, CMD_COMPANY_CTRL, NULL, NULL, _local_company); + NetworkSendCommand(0, CCA_NEW, 0, CMD_COMPANY_CTRL, NULL, NULL, _local_company); } return CBF_NONE; From 0b10678050c82604214136343673a5290f986cdb Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Sat, 19 May 2018 21:50:03 +0100 Subject: [PATCH 02/38] Change: Make ships stop in locks to move up/down instead of following the slope. --- src/saveload/afterload.cpp | 37 ++++++++++++++++++++++++++ src/saveload/saveload.h | 1 + src/ship_cmd.cpp | 53 +++++++++++++++++++++++++++++++++++++- 3 files changed, 90 insertions(+), 1 deletion(-) diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 872458b251..d0b4723c6e 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -55,6 +55,7 @@ #include "../order_backup.h" #include "../error.h" #include "../disaster_vehicle.h" +#include "../ship.h" #include "saveload_internal.h" @@ -3045,6 +3046,42 @@ bool AfterLoadGame() } } + if (IsSavegameVersionBefore(SLV_SHIPS_STOP_IN_LOCKS)) { + /* Move ships from lock slope to upper or lower position. */ + Ship *s; + FOR_ALL_SHIPS(s) { + /* Suitable tile? */ + if (!IsTileType(s->tile, MP_WATER) || !IsLock(s->tile) || GetLockPart(s->tile) != LOCK_PART_MIDDLE) continue; + + /* We don't need to adjust position when at the tile centre */ + int x = s->x_pos & 0xF; + int y = s->y_pos & 0xF; + if (x == 8 && y == 8) continue; + + /* Test if ship is on the second half of the tile */ + bool second_half; + DiagDirection shipdiagdir = DirToDiagDir(s->direction); + switch (shipdiagdir) { + default: NOT_REACHED(); + case DIAGDIR_NE: second_half = x < 8; break; + case DIAGDIR_NW: second_half = y < 8; break; + case DIAGDIR_SW: second_half = x > 8; break; + case DIAGDIR_SE: second_half = y > 8; break; + } + + DiagDirection slopediagdir = GetInclinedSlopeDirection(GetTileSlope(s->tile)); + + /* Heading up slope == passed half way */ + if ((shipdiagdir == slopediagdir) == second_half) { + /* On top half of lock */ + s->z_pos = GetTileMaxZ(s->tile) * (int)TILE_HEIGHT; + } else { + /* On lower half of lock */ + s->z_pos = GetTileZ(s->tile) * (int)TILE_HEIGHT; + } + } + } + /* Station acceptance is some kind of cache */ if (IsSavegameVersionBefore(SLV_127)) { Station *st; diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 613c9ce514..5c84abc21b 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -289,6 +289,7 @@ enum SaveLoadVersion : uint16 { SLV_SHIP_ROTATION, ///< 204 PR#7065 Add extra rotation stages for ships. SLV_GROUP_LIVERIES, ///< 205 PR#7108 Livery storage change and group liveries. + SLV_SHIPS_STOP_IN_LOCKS, ///< 206 PR#7150 Ship/lock movement changes. SL_MAX_VERSION, ///< Highest possible saveload version }; diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index 5d3a28b1b4..23786c17d1 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -550,6 +550,56 @@ static const byte _ship_subcoord[4][6][3] = { } }; +/** + * Test if a ship is in the centre of a lock and should move up or down. + * @param v Ship being tested. + * @return 0 if ship is not moving in lock, or -1 to move down, 1 to move up. + */ +static int ShipTestUpDownOnLock(const Ship *v) +{ + /* Suitable tile? */ + if (!IsTileType(v->tile, MP_WATER) || !IsLock(v->tile) || GetLockPart(v->tile) != LOCK_PART_MIDDLE) return 0; + + /* Must be at the centre of the lock */ + if ((v->x_pos & 0xF) != 8 || (v->y_pos & 0xF) != 8) return 0; + + DiagDirection diagdir = GetInclinedSlopeDirection(GetTileSlope(v->tile)); + assert(IsValidDiagDirection(diagdir)); + + if (DirToDiagDir(v->direction) == diagdir) { + /* Move up */ + return (v->z_pos < GetTileMaxZ(v->tile) * (int)TILE_HEIGHT) ? 1 : 0; + } else { + /* Move down */ + return (v->z_pos > GetTileZ(v->tile) * (int)TILE_HEIGHT) ? -1 : 0; + } +} + +/** + * Test and move a ship up or down in a lock. + * @param v Ship to move. + * @return true iff ship is moving up or down in a lock. + */ +static bool ShipMoveUpDownOnLock(Ship *v) +{ + /* Moving up/down through lock */ + int dz = ShipTestUpDownOnLock(v); + if (dz == 0) return false; + + if (v->cur_speed != 0) { + v->cur_speed = 0; + SetWindowWidgetDirty(WC_VEHICLE_VIEW, v->index, WID_VV_START_STOP); + } + + if ((v->tick_counter & 7) == 0) { + v->z_pos += dz; + v->UpdatePosition(); + v->UpdateViewport(true, true); + } + + return true; +} + static void ShipController(Ship *v) { uint32 r; @@ -583,6 +633,8 @@ static void ShipController(Ship *v) return; } + if (ShipMoveUpDownOnLock(v)) return; + if (!ShipAccelerate(v)) return; GetNewVehiclePosResult gp = GetNewVehiclePos(v); @@ -707,7 +759,6 @@ static void ShipController(Ship *v) /* update image of ship, as well as delta XY */ v->x_pos = gp.x; v->y_pos = gp.y; - v->z_pos = GetSlopePixelZ(gp.x, gp.y); getout: v->UpdatePosition(); From 64878320ccac0854b0712730e5f9dedcf0bb591d Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Sun, 3 Feb 2019 23:50:50 +0000 Subject: [PATCH 03/38] Fix #6803: CargoMonitorID bit packing updated to handle 64 cargo types. This requires a saveload bump to change the bitpacking on loading older saves. --- src/cargomonitor.h | 11 ++++++++--- src/saveload/cargomonitor_sl.cpp | 21 +++++++++++++++++++++ src/saveload/saveload.h | 1 + 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/cargomonitor.h b/src/cargomonitor.h index 061a1821a4..e74f717e05 100644 --- a/src/cargomonitor.h +++ b/src/cargomonitor.h @@ -45,11 +45,14 @@ enum CargoCompanyBits { CCB_IS_INDUSTRY_BIT = 16, ///< Bit indicating the town/industry number is an industry. CCB_IS_INDUSTRY_BIT_VALUE = 1ul << CCB_IS_INDUSTRY_BIT, ///< Value of the #CCB_IS_INDUSTRY_BIT bit. CCB_CARGO_TYPE_START = 19, ///< Start bit of the cargo type field. - CCB_CARGO_TYPE_LENGTH = 5, ///< Number of bits of the cargo type field. - CCB_COMPANY_START = 24, ///< Start bit of the company field. - CCB_COMPANY_LENGTH = 8, ///< Number of bits of the company field. + CCB_CARGO_TYPE_LENGTH = 6, ///< Number of bits of the cargo type field. + CCB_COMPANY_START = 25, ///< Start bit of the company field. + CCB_COMPANY_LENGTH = 4, ///< Number of bits of the company field. }; +assert_compile(NUM_CARGO <= (1 << CCB_CARGO_TYPE_LENGTH)); +assert_compile(MAX_COMPANIES <= (1 << CCB_COMPANY_LENGTH)); + /** * Encode a cargo monitor for pickup or delivery at an industry. @@ -61,6 +64,7 @@ enum CargoCompanyBits { static inline CargoMonitorID EncodeCargoIndustryMonitor(CompanyID company, CargoID ctype, IndustryID ind) { assert(ctype < (1 << CCB_CARGO_TYPE_LENGTH)); + assert(company < (1 << CCB_COMPANY_LENGTH)); uint32 ret = 0; SB(ret, CCB_TOWN_IND_NUMBER_START, CCB_TOWN_IND_NUMBER_LENGTH, ind); @@ -80,6 +84,7 @@ static inline CargoMonitorID EncodeCargoIndustryMonitor(CompanyID company, Cargo static inline CargoMonitorID EncodeCargoTownMonitor(CompanyID company, CargoID ctype, TownID town) { assert(ctype < (1 << CCB_CARGO_TYPE_LENGTH)); + assert(company < (1 << CCB_COMPANY_LENGTH)); uint32 ret = 0; SB(ret, CCB_TOWN_IND_NUMBER_START, CCB_TOWN_IND_NUMBER_LENGTH, town); diff --git a/src/saveload/cargomonitor_sl.cpp b/src/saveload/cargomonitor_sl.cpp index 98ad95f090..9a313970ff 100644 --- a/src/saveload/cargomonitor_sl.cpp +++ b/src/saveload/cargomonitor_sl.cpp @@ -29,6 +29,21 @@ static const SaveLoad _cargomonitor_pair_desc[] = { SLE_END() }; +static CargoMonitorID FixupCargoMonitor(CargoMonitorID number) +{ + /* Between SLV_EXTEND_CARGOTYPES and SLV_FIX_CARGO_MONITOR, the + * CargoMonitorID structure had insufficient packing for more + * than 32 cargo types. Here we have to shuffle bits to account + * for the change. + * Company moved from bits 24-31 to 25-28. + * Cargo type increased from bits 19-23 to 19-24. + */ + SB(number, 25, 4, GB(number, 24, 4)); + SB(number, 29, 3, 0); + ClrBit(number, 24); + return number; +} + /** Save the #_cargo_deliveries monitoring map. */ static void SaveDelivery() { @@ -52,12 +67,15 @@ static void SaveDelivery() static void LoadDelivery() { TempStorage storage; + bool fix = IsSavegameVersionBefore(SLV_FIX_CARGO_MONITOR); ClearCargoDeliveryMonitoring(); for (;;) { if (SlIterateArray() < 0) break; SlObject(&storage, _cargomonitor_pair_desc); + if (fix) storage.number = FixupCargoMonitor(storage.number); + std::pair p(storage.number, storage.amount); _cargo_deliveries.insert(p); } @@ -87,12 +105,15 @@ static void SavePickup() static void LoadPickup() { TempStorage storage; + bool fix = IsSavegameVersionBefore(SLV_FIX_CARGO_MONITOR); ClearCargoPickupMonitoring(); for (;;) { if (SlIterateArray() < 0) break; SlObject(&storage, _cargomonitor_pair_desc); + if (fix) storage.number = FixupCargoMonitor(storage.number); + std::pair p(storage.number, storage.amount); _cargo_pickups.insert(p); } diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 5c84abc21b..e5e2e1fa23 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -290,6 +290,7 @@ enum SaveLoadVersion : uint16 { SLV_GROUP_LIVERIES, ///< 205 PR#7108 Livery storage change and group liveries. SLV_SHIPS_STOP_IN_LOCKS, ///< 206 PR#7150 Ship/lock movement changes. + SLV_FIX_CARGO_MONITOR, ///< 207 PR#7175 Cargo monitor data packing fix to support 64 cargotypes. SL_MAX_VERSION, ///< Highest possible saveload version }; From b1e40b6b569c206d672f677a8e474a73ecf2173b Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Mon, 4 Feb 2019 17:19:21 +0000 Subject: [PATCH 04/38] Fix #7151: Hang when concurrently starting AIs in multiplayer, or with shift pressed. --- src/command.cpp | 6 +++--- src/command_type.h | 1 + src/company_cmd.cpp | 4 ++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/command.cpp b/src/command.cpp index 70258aaa1d..72b3f4302e 100644 --- a/src/command.cpp +++ b/src/command.cpp @@ -283,7 +283,7 @@ static const Command _command_proc_table[] = { DEF_CMD(CmdTurnRoadVeh, 0, CMDT_VEHICLE_MANAGEMENT ), // CMD_TURN_ROADVEH - DEF_CMD(CmdPause, CMD_SERVER, CMDT_SERVER_SETTING ), // CMD_PAUSE + DEF_CMD(CmdPause, CMD_SERVER | CMD_NO_EST, CMDT_SERVER_SETTING ), // CMD_PAUSE DEF_CMD(CmdBuyShareInCompany, 0, CMDT_MONEY_MANAGEMENT ), // CMD_BUY_SHARE_IN_COMPANY DEF_CMD(CmdSellShareInCompany, 0, CMDT_MONEY_MANAGEMENT ), // CMD_SELL_SHARE_IN_COMPANY @@ -307,7 +307,7 @@ static const Command _command_proc_table[] = { DEF_CMD(CmdChangeBankBalance, CMD_DEITY, CMDT_MONEY_MANAGEMENT ), // CMD_CHANGE_BANK_BALANCE DEF_CMD(CmdBuildCanal, CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_BUILD_CANAL DEF_CMD(CmdCreateSubsidy, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_CREATE_SUBSIDY - DEF_CMD(CmdCompanyCtrl, CMD_SPECTATOR | CMD_CLIENT_ID, CMDT_SERVER_SETTING ), // CMD_COMPANY_CTRL + DEF_CMD(CmdCompanyCtrl, CMD_SPECTATOR | CMD_CLIENT_ID | CMD_NO_EST, CMDT_SERVER_SETTING ), // CMD_COMPANY_CTRL DEF_CMD(CmdCustomNewsItem, CMD_STR_CTRL | CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_CUSTOM_NEWS_ITEM DEF_CMD(CmdCreateGoal, CMD_STR_CTRL | CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_CREATE_GOAL DEF_CMD(CmdRemoveGoal, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_REMOVE_GOAL @@ -558,7 +558,7 @@ bool DoCommandP(TileIndex tile, uint32 p1, uint32 p2, uint32 cmd, CommandCallbac bool estimate_only = _shift_pressed && IsLocalCompany() && !_generating_world && !(cmd & CMD_NETWORK_COMMAND) && - (cmd & CMD_ID_MASK) != CMD_PAUSE; + !(GetCommandFlags(cmd) & CMD_NO_EST); /* We're only sending the command, so don't do * fancy things for 'success'. */ diff --git a/src/command_type.h b/src/command_type.h index e7512f11d2..650a8987a4 100644 --- a/src/command_type.h +++ b/src/command_type.h @@ -395,6 +395,7 @@ enum CommandFlags { CMD_CLIENT_ID = 0x080, ///< set p2 with the ClientID of the sending client. CMD_DEITY = 0x100, ///< the command may be executed by COMPANY_DEITY CMD_STR_CTRL = 0x200, ///< the command's string may contain control strings + CMD_NO_EST = 0x400, ///< the command is never estimated. }; DECLARE_ENUM_AS_BIT_SET(CommandFlags) diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp index 392f97afb1..77572c5af3 100644 --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -724,6 +724,10 @@ void OnTick_Companies() /* Allow multiple AIs to possibly start in the same tick. */ do { if (!MaybeStartNewCompany()) break; + + /* In networking mode, we can only send a command to start but it + * didn't execute yet, so we cannot loop. */ + if (_networking) break; } while (AI::GetStartNextTime() == 0); } From 9fc430a920ea5f42e56e459bec48e3ce8f13e3c0 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 5 Feb 2019 19:45:42 +0100 Subject: [PATCH 05/38] Update: Translations from eints swedish: 21 changes by Joel_A german: 1 change by smwforever45 --- src/lang/german.txt | 2 +- src/lang/swedish.txt | 38 +++++++++++++++++++++----------------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/lang/german.txt b/src/lang/german.txt index 03d338b19d..bf6ce994f8 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3890,7 +3890,7 @@ STR_ORDERS_DELETE_BUTTON :{BLACK}Löschen STR_ORDERS_DELETE_TOOLTIP :{BLACK}Lösche den markierten Auftrag STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}Lösche alle Aufträge STR_ORDERS_STOP_SHARING_BUTTON :{BLACK}Gemeinsame Aufträge aufheben -STR_ORDERS_STOP_SHARING_TOOLTIP :{BLACK}Gemeinsame Auftragliste aufheben. Ctrl+Klick löscht zusätzlich die Auftragliste für dieses Fahrzeug +STR_ORDERS_STOP_SHARING_TOOLTIP :{BLACK}Gemeinsame Auftragliste aufheben. Strg+Klick löscht zusätzlich die Auftragliste für dieses Fahrzeug STR_ORDERS_GO_TO_BUTTON :{BLACK}Fahre zu STR_ORDER_GO_TO_NEAREST_DEPOT :Nächstes Depot diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 2a29a33b77..2917b027c3 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -190,6 +190,7 @@ STR_COLOUR_BROWN :Brun STR_COLOUR_GREY :Grå STR_COLOUR_WHITE :Vit STR_COLOUR_RANDOM :Slumpmässig +STR_COLOUR_DEFAULT :Standard # Units used in OpenTTD STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph @@ -1779,7 +1780,7 @@ STR_INTRO_TRANSLATION :{BLACK}Den här # Quit window STR_QUIT_CAPTION :{WHITE}Avsluta -STR_QUIT_ARE_YOU_SURE_YOU_WANT_TO_EXIT_OPENTTD :{YELLOW}Vill du verkligen avsluta OpenTTD och återvända till {STRING}? +STR_QUIT_ARE_YOU_SURE_YOU_WANT_TO_EXIT_OPENTTD :{YELLOW}Är du säker på att du vill avsluta OpenTTD och återvända till {STRING}? STR_QUIT_YES :{BLACK}Ja STR_QUIT_NO :{BLACK}Nej @@ -1797,8 +1798,8 @@ STR_OSNAME_SUNOS :SunOS # Abandon game STR_ABANDON_GAME_CAPTION :{WHITE}Avsluta spelet -STR_ABANDON_GAME_QUERY :{YELLOW}Vill du verkligen avsluta spelet? -STR_ABANDON_SCENARIO_QUERY :{YELLOW}Vill du verkligen avsluta detta scenario? +STR_ABANDON_GAME_QUERY :{YELLOW}Är du säker på att du vill avsluta spelet? +STR_ABANDON_SCENARIO_QUERY :{YELLOW}Är du säker på att du vill avsluta detta scenario? # Cheat window STR_CHEATS :{WHITE}Fusk @@ -1985,9 +1986,9 @@ STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Välj ma STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} företag{P y ies} STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Max antal företag: STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Begränsa antalet företag på servern -STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} åskådare{P "" s} +STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} åskådare STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Max antal åskådare: -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Begränsa antalet observatörer på servern +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Begränsa antalet åskådare på servern STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Språk som talas: STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Andra spelare kommer vara medvetna vilket språk som talas på servern. @@ -2469,7 +2470,7 @@ STR_STATION_BUILD_AIRPORT_LAYOUT_NAME :{BLACK}Layout { STR_AIRPORT_SMALL :Liten flygplats STR_AIRPORT_CITY :Stad -STR_AIRPORT_METRO :Storstads-flygplats +STR_AIRPORT_METRO :Storstadsflygplats STR_AIRPORT_INTERNATIONAL :Internationell flygplats STR_AIRPORT_COMMUTER :Pendlare STR_AIRPORT_INTERCONTINENTAL :Interkontinental flygplats @@ -2778,6 +2779,8 @@ STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Ingen in STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING} STR_SAVELOAD_FILTER_TITLE :{BLACK}Sökfilter: +STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Skriv över fil +STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}Är du säker på att du vill skriva över den existerande filen? STR_SAVELOAD_OSKTITLE :{BLACK}Mata in ett namn för detta sparade spel @@ -2954,7 +2957,7 @@ STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X offset STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Välj objekt STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Välj ett objekt på bildskärmen -STR_SPRITE_ALIGNER_GOTO_CAPTION :{WHITE}Gå till objekt +STR_SPRITE_ALIGNER_GOTO_CAPTION :{WHITE}Gå till spriteobjekt # NewGRF (self) generated warnings/errors STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING} @@ -2975,7 +2978,7 @@ STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Att ladda {1:ST STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Oväntat spriteobjekt (spriteobjekt {3:NUM}) STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Okänd Action 0-egenskap {4:HEX} (spriteobjekt {3:NUM}) STR_NEWGRF_ERROR_INVALID_ID :Försök att använda ett ogiltligt ID (spriteobjekt {3:NUM}) -STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} innehåller en skadad bild. Alla korrupta bilder kommer att visas som ett rött frågetecken (?) +STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} innehåller ett skadat spriteobjekt. Alla korrupta spriteobjekt kommer att visas som röda frågetecken (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Innehåller flera Action 8 (spriteobjekt {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Läste förbi slutet av pseudo-spriteobjekt (spriteobjekt {3:NUM}) STR_NEWGRF_ERROR_GRM_FAILED :Efterfrågade GRF-resurser är inte tillgängliga (spriteobjekt {3:NUM}) @@ -2986,7 +2989,7 @@ STR_NEWGRF_ERROR_INDPROD_CALLBACK :Ogiltig industr # NewGRF related 'general' warnings STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Varning! -STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Du håller på att göra ändringar i ett pågående spel; detta kan krascha OpenTTD eller orsaka andra fel i spelet.{}Skicka inte bugrapporter om sådana fel.{}Är du helt säker på detta? +STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Du håller på att göra ändringar i ett pågående spel; detta kan krascha OpenTTD eller orsaka andra fel i spelet. Skicka inte buggrapporter om sådana fel.{}Är du helt säker på detta? STR_NEWGRF_DUPLICATE_GRFID :{WHITE}Kan inte lägga till filen: redan existerande GRF ID STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Matchande fil saknas (kompatibel GRF laddad) @@ -3314,7 +3317,7 @@ STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}Visa det STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Nytt ansikte STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}Välj nytt ansikte på VD:n STR_COMPANY_VIEW_COLOUR_SCHEME_BUTTON :{BLACK}Färgschema -STR_COMPANY_VIEW_COLOUR_SCHEME_TOOLTIP :{BLACK}Byt färg på företaget +STR_COMPANY_VIEW_COLOUR_SCHEME_TOOLTIP :{BLACK}Byt företagets färgschema STR_COMPANY_VIEW_COMPANY_NAME_BUTTON :{BLACK}Företagsnamn STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Byt företagets namn STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Namn på VD @@ -3390,7 +3393,7 @@ STR_VEHICLE_LIST_AVAILABLE_SHIPS :Tillgängliga s STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :Tillgängliga flyplan STR_VEHICLE_LIST_AVAILABLE_ENGINES_TOOLTIP :{BLACK}Se lista med tillgängliga motordesigner för denna fordonstyp -STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Behandlingslista +STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Hantera lista STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}Skicka instruktioner till alla fordon på denna lista STR_VEHICLE_LIST_REPLACE_VEHICLES :Byt ut fordon STR_VEHICLE_LIST_SEND_FOR_SERVICING :Skicka på service @@ -3420,6 +3423,7 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupper STR_GROUP_CREATE_TOOLTIP :{BLACK}Klicka för att skapa en grupp STR_GROUP_DELETE_TOOLTIP :{BLACK}Ta bort vald grupp STR_GROUP_RENAME_TOOLTIP :{BLACK}Byt namn på vald grupp +STR_GROUP_LIVERY_TOOLTIP :{BLACK}Byt färgschema på vald grupp STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klicka för att skydda denna grupp mot allmän autoreplace STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Ta bort grupp @@ -3441,7 +3445,7 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nya elektriska STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nytt monorailfordon STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nytt maglevfordon -STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nya Rälsfordon +STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nya rälsfordon STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nytt Vägfordon STR_BUY_VEHICLE_SHIP_CAPTION :Nytt skepp STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nytt flygplan @@ -3572,10 +3576,10 @@ STR_DEPOT_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}Centrera STR_DEPOT_SHIP_LOCATION_TOOLTIP :{BLACK}Centrera huvudvyn ovanför skeppdepån. Ctrl+klick öppnar en ny vy över skeppdepåns läge STR_DEPOT_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Centrera huvudvyn ovanför hangaren. Ctrl+klick öppnar en ny vy över hangarens läge -STR_DEPOT_VEHICLE_ORDER_LIST_TRAIN_TOOLTIP :{BLACK}Ge en lista av alla tåg som har denna depå i dess körschema -STR_DEPOT_VEHICLE_ORDER_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Ge en lista av alla fordon som har denna depå i dess körschema -STR_DEPOT_VEHICLE_ORDER_LIST_SHIP_TOOLTIP :{BLACK}Ge en lista av alla fartyg som har denna depå i dess körschema -STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TOOLTIP :{BLACK}Ge en lista av alla flygplan som har denna flygplats-hangar i dess körschema +STR_DEPOT_VEHICLE_ORDER_LIST_TRAIN_TOOLTIP :{BLACK}Visa en lista med alla tåg som har denna depå i sitt körschema +STR_DEPOT_VEHICLE_ORDER_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Visa en lista med alla vägfordon som har denna depå i sitt körschema +STR_DEPOT_VEHICLE_ORDER_LIST_SHIP_TOOLTIP :{BLACK}Visa en lista med alla fartyg som har denna depå i sitt körschema +STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TOOLTIP :{BLACK}Visa en lista med alla flygplan som har en hangar på denna flygplats i sitt körschema STR_DEPOT_MASS_STOP_DEPOT_TRAIN_TOOLTIP :{BLACK}Klicka för att stanna alla tåg i depån STR_DEPOT_MASS_STOP_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Klicka för att stanna alla fordon i depån @@ -3736,7 +3740,7 @@ STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vikt: {L STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Vinst detta år: {LTBLUE}{CURRENCY_LONG} (förra året: {CURRENCY_LONG}) STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}Tillförlitlighet: {LTBLUE}{COMMA}% {BLACK}Motorstopp sedan senaste servicen: {LTBLUE}{COMMA} -STR_VEHICLE_INFO_BUILT_VALUE :{LTBLUE}{ENGINE} {BLACK}Bygt: {LTBLUE}{NUM}{BLACK} Värde: {LTBLUE}{CURRENCY_LONG} +STR_VEHICLE_INFO_BUILT_VALUE :{LTBLUE}{ENGINE} {BLACK}Byggt: {LTBLUE}{NUM}{BLACK} Värde: {LTBLUE}{CURRENCY_LONG} STR_VEHICLE_INFO_NO_CAPACITY :{BLACK}Kapacitet: {LTBLUE}Ingen{STRING} STR_VEHICLE_INFO_CAPACITY :{BLACK}Kapacitet: {LTBLUE}{CARGO_LONG}{3:STRING} STR_VEHICLE_INFO_CAPACITY_MULT :{BLACK}Kapacitet: {LTBLUE}{CARGO_LONG}{3:STRING} (x{4:NUM}) From 4764d1c45e7d82bc35f6fcb25012f5cfe545ce6c Mon Sep 17 00:00:00 2001 From: PeterN Date: Tue, 5 Feb 2019 23:33:49 +0000 Subject: [PATCH 06/38] Doc #7181: AAT_STATION_AIRPLANE_LAND triggers only a single tile, not all airport tiles. (#7182) --- src/newgrf_animation_type.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/newgrf_animation_type.h b/src/newgrf_animation_type.h index 8eec6ada9c..d014bf3cde 100644 --- a/src/newgrf_animation_type.h +++ b/src/newgrf_animation_type.h @@ -51,7 +51,7 @@ enum AirpAnimationTrigger { AAT_STATION_NEW_CARGO, ///< Triggered when new cargo arrives at the station (for all tiles at the same time). AAT_STATION_CARGO_TAKEN, ///< Triggered when a cargo type is completely removed from the station (for all tiles at the same time). AAT_STATION_250_TICKS, ///< Triggered every 250 ticks (for all tiles at the same time). - AAT_STATION_AIRPLANE_LAND, ///< Triggered when an airplane (not a helicopter) touches down at the airport (for all tiles at the same time). + AAT_STATION_AIRPLANE_LAND, ///< Triggered when an airplane (not a helicopter) touches down at the airport (for single tile). }; /** Animation triggers for objects. */ From e3b440c9c50b39092a2f887dba9370b21369f2cb Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Tue, 5 Feb 2019 08:23:25 +0000 Subject: [PATCH 07/38] Add #5006: Flag to hide rail type from construction. --- src/rail.cpp | 14 ++++++++++++-- src/rail.h | 4 ++++ src/rail_cmd.cpp | 6 +++++- src/vehicle.cpp | 5 ++++- 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/rail.cpp b/src/rail.cpp index 1664f78e9a..8bd7aa5181 100644 --- a/src/rail.cpp +++ b/src/rail.cpp @@ -180,14 +180,24 @@ RailType GetTileRailType(TileIndex tile) } /** - * Finds out if a company has a certain railtype available + * Finds out if a company has a certain buildable railtype available. * @param company the company in question * @param railtype requested RailType * @return true if company has requested RailType available */ bool HasRailtypeAvail(const CompanyID company, const RailType railtype) { - return HasBit(Company::Get(company)->avail_railtypes, railtype); + return !HasBit(_railtypes_hidden_mask, railtype) && HasBit(Company::Get(company)->avail_railtypes, railtype); +} + +/** + * Test if any buildable railtype is available for a company. + * @param company the company in question + * @return true if company has any RailTypes available + */ +bool HasAnyRailtypesAvail(const CompanyID company) +{ + return (Company::Get(company)->avail_railtypes & ~_railtypes_hidden_mask) != 0; } /** diff --git a/src/rail.h b/src/rail.h index b7258d3016..83d1d9b7af 100644 --- a/src/rail.h +++ b/src/rail.h @@ -26,10 +26,12 @@ enum RailTypeFlags { RTF_CATENARY = 0, ///< Bit number for drawing a catenary. RTF_NO_LEVEL_CROSSING = 1, ///< Bit number for disallowing level crossings. + RTF_HIDDEN = 2, ///< Bit number for hiding from selection. RTFB_NONE = 0, ///< All flags cleared. RTFB_CATENARY = 1 << RTF_CATENARY, ///< Value for drawing a catenary. RTFB_NO_LEVEL_CROSSING = 1 << RTF_NO_LEVEL_CROSSING, ///< Value for disallowing level crossings. + RTFB_HIDDEN = 1 << RTF_HIDDEN, ///< Value for hiding from selection. }; DECLARE_ENUM_AS_BIT_SET(RailTypeFlags) @@ -419,6 +421,7 @@ Foundation GetRailFoundation(Slope tileh, TrackBits bits); bool HasRailtypeAvail(const CompanyID company, const RailType railtype); +bool HasAnyRailtypesAvail(const CompanyID company); bool ValParamRailtype(const RailType rail); RailTypes AddDateIntroducedRailTypes(RailTypes current, Date date); @@ -434,6 +437,7 @@ RailType AllocateRailType(RailTypeLabel label); extern RailType _sorted_railtypes[RAILTYPE_END]; extern uint8 _sorted_railtypes_size; +extern RailTypes _railtypes_hidden_mask; /** * Loop header for iterating over railtypes, sorted by sortorder. diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index a0fd968cc6..f4b26c092e 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -46,6 +46,7 @@ typedef SmallVector TrainList; RailtypeInfo _railtypes[RAILTYPE_END]; RailType _sorted_railtypes[RAILTYPE_END]; uint8 _sorted_railtypes_size; +RailTypes _railtypes_hidden_mask; /** Enum holding the signal offset in the sprite sheet according to the side it is representing. */ enum SignalOffsets { @@ -78,6 +79,8 @@ void ResetRailTypes() RailTypeLabelList(), 0, 0, RAILTYPES_NONE, RAILTYPES_NONE, 0, {}, {} }; for (; i < lengthof(_railtypes); i++) _railtypes[i] = empty_railtype; + + _railtypes_hidden_mask = RAILTYPES_NONE; } void ResolveRailTypeGUISprites(RailtypeInfo *rti) @@ -140,11 +143,12 @@ void InitRailTypes() for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) { RailtypeInfo *rti = &_railtypes[rt]; ResolveRailTypeGUISprites(rti); + if (HasBit(rti->flags, RTF_HIDDEN)) SetBit(_railtypes_hidden_mask, rt); } _sorted_railtypes_size = 0; for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) { - if (_railtypes[rt].label != 0) { + if (_railtypes[rt].label != 0 && !HasBit(_railtypes_hidden_mask, rt)) { _sorted_railtypes[_sorted_railtypes_size++] = rt; } } diff --git a/src/vehicle.cpp b/src/vehicle.cpp index 62d279db62..53220474e5 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -1757,7 +1757,10 @@ bool CanBuildVehicleInfrastructure(VehicleType type) UnitID max; switch (type) { - case VEH_TRAIN: max = _settings_game.vehicle.max_trains; break; + case VEH_TRAIN: + if (!HasAnyRailtypesAvail(_local_company)) return false; + max = _settings_game.vehicle.max_trains; + break; case VEH_ROAD: max = _settings_game.vehicle.max_roadveh; break; case VEH_SHIP: max = _settings_game.vehicle.max_ships; break; case VEH_AIRCRAFT: max = _settings_game.vehicle.max_aircraft; break; From db2c0ccae08d830b654b4db93e554ca98e6003c5 Mon Sep 17 00:00:00 2001 From: Niels Martin Hansen Date: Wed, 6 Feb 2019 21:09:02 +0100 Subject: [PATCH 08/38] Fix fdc2e85: Double close of file handles When unpacking downloaded content, the downloaded .gz file was being opened with `fopen`, the OS file handle given to zlib, and then afterwards zlib told to close the file. But the `FILE *` object was never closed with `fclose`, meaning the stdio library would have a hanging file object, whose file handle was now invalid or referred to a different file. This caused asserts during shutdown with Microsoft's C library in debug mode. Fix this by properly duplicating the OS handle and `fclose`ing the `FILE *` object, before giving the handle to zlib. --- src/network/network_content.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/network/network_content.cpp b/src/network/network_content.cpp index e998aaeaf1..551abb4420 100644 --- a/src/network/network_content.cpp +++ b/src/network/network_content.cpp @@ -404,10 +404,14 @@ static bool GunzipFile(const ContentInfo *ci) { #if defined(WITH_ZLIB) bool ret = true; + + /* Need to open the file with fopen() to support non-ASCII on Windows. */ FILE *ftmp = fopen(GetFullFilename(ci, true), "rb"); if (ftmp == NULL) return false; + /* Duplicate the handle, and close the FILE*, to avoid double-closing the handle later. */ + gzFile fin = gzdopen(dup(fileno(ftmp)), "rb"); + fclose(ftmp); - gzFile fin = gzdopen(fileno(ftmp), "rb"); FILE *fout = fopen(GetFullFilename(ci, false), "wb"); if (fin == NULL || fout == NULL) { @@ -444,14 +448,7 @@ static bool GunzipFile(const ContentInfo *ci) } } - if (fin != NULL) { - /* Closes ftmp too! */ - gzclose(fin); - } else if (ftmp != NULL) { - /* In case the gz stream was opened correctly this will - * be closed by gzclose. */ - fclose(ftmp); - } + if (fin != NULL) gzclose(fin); if (fout != NULL) fclose(fout); return ret; From bfdad9ad1b19dfd68c277641b406ebc98ee82af3 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Wed, 6 Feb 2019 19:55:48 +0000 Subject: [PATCH 09/38] Fix #7108: Missed generate_widget script run for livery changes. --- src/script/api/game/game_window.hpp.sq | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/script/api/game/game_window.hpp.sq b/src/script/api/game/game_window.hpp.sq index 9fc9526cc2..fc818a443a 100644 --- a/src/script/api/game/game_window.hpp.sq +++ b/src/script/api/game/game_window.hpp.sq @@ -307,10 +307,15 @@ void SQGSWindow_Register(Squirrel *engine) SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_CLASS_ROAD, "WID_SCL_CLASS_ROAD"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_CLASS_SHIP, "WID_SCL_CLASS_SHIP"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_CLASS_AIRCRAFT, "WID_SCL_CLASS_AIRCRAFT"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_GROUPS_RAIL, "WID_SCL_GROUPS_RAIL"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_GROUPS_ROAD, "WID_SCL_GROUPS_ROAD"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_GROUPS_SHIP, "WID_SCL_GROUPS_SHIP"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_GROUPS_AIRCRAFT, "WID_SCL_GROUPS_AIRCRAFT"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_SPACER_DROPDOWN, "WID_SCL_SPACER_DROPDOWN"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_PRI_COL_DROPDOWN, "WID_SCL_PRI_COL_DROPDOWN"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_SEC_COL_DROPDOWN, "WID_SCL_SEC_COL_DROPDOWN"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_MATRIX, "WID_SCL_MATRIX"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_MATRIX_SCROLLBAR, "WID_SCL_MATRIX_SCROLLBAR"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_CAPTION, "WID_SCMF_CAPTION"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_TOGGLE_LARGE_SMALL, "WID_SCMF_TOGGLE_LARGE_SMALL"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_SELECT_FACE, "WID_SCMF_SELECT_FACE"); @@ -563,6 +568,7 @@ void SQGSWindow_Register(Squirrel *engine) SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_CREATE_GROUP, "WID_GL_CREATE_GROUP"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_DELETE_GROUP, "WID_GL_DELETE_GROUP"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_RENAME_GROUP, "WID_GL_RENAME_GROUP"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_LIVERY_GROUP, "WID_GL_LIVERY_GROUP"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_REPLACE_PROTECTION, "WID_GL_REPLACE_PROTECTION"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_INFO, "WID_GL_INFO"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_H_BACKGROUND, "WID_H_BACKGROUND"); From 62d6cd75ba74569aa6016dd337579433d58a1cb4 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 7 Feb 2019 19:45:43 +0100 Subject: [PATCH 10/38] Update: Translations from eints korean: 6 changes by telk5093 polish: 18 changes by xaxa --- src/lang/korean.txt | 12 ++++++------ src/lang/polish.txt | 20 ++++++++++++++++++-- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 8305819cb6..d4bb70baa6 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1168,7 +1168,7 @@ STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :이 설정을 STR_CONFIG_SETTING_DISASTERS :재앙: {STRING} STR_CONFIG_SETTING_DISASTERS_HELPTEXT :일정 구역이나 차량, 기반시설을 간혹 파괴할 수도 있는 재앙을 켜거나 끕니다. STR_CONFIG_SETTING_CITY_APPROVAL :지역 개발에 대한 도시의 태도: {STRING} -STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :회사가 유발하는 소음과 환경 파괴가 회사에 대한 도시의 평가치와 향후 해당 지역에서의 건설 행동에 얼마나 영향을 미칠지 선택하십시오. +STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :회사가 유발하는 소음과 환경 파괴가 회사에 대한 도시의 평가치와 향후 해당 지역에서 건설하는 행동에 얼마나 영향을 미칠지 선택하십시오. STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :최대 지형 높이: {STRING} STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :지도에 생성되는 산이 가질 수 있는 최대 높이를 설정합니다. @@ -3454,8 +3454,8 @@ STR_BUY_VEHICLE_AIRCRAFT_CAPTION :새 항공기 STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}가격: {GOLD}{CURRENCY_LONG}{BLACK} 중량: {GOLD}{WEIGHT_SHORT} STR_PURCHASE_INFO_SPEED_POWER :{BLACK}속력: {GOLD}{VELOCITY}{BLACK} 힘: {GOLD}{POWER} STR_PURCHASE_INFO_SPEED :{BLACK}속력: {GOLD}{VELOCITY} -STR_PURCHASE_INFO_SPEED_OCEAN :{BLACK}바다에서의 속력: {GOLD}{VELOCITY} -STR_PURCHASE_INFO_SPEED_CANAL :{BLACK}운하/강에서의 속력: {GOLD}{VELOCITY} +STR_PURCHASE_INFO_SPEED_OCEAN :{BLACK}바다에서 속력: {GOLD}{VELOCITY} +STR_PURCHASE_INFO_SPEED_CANAL :{BLACK}운하/강에서 속력: {GOLD}{VELOCITY} STR_PURCHASE_INFO_RUNNINGCOST :{BLACK}유지비: {GOLD}{CURRENCY_LONG}/년 STR_PURCHASE_INFO_CAPACITY :{BLACK}수송량: {GOLD}{CARGO_LONG} {STRING} STR_PURCHASE_INFO_REFITTABLE :(개조 가능) @@ -3829,21 +3829,21 @@ STR_ORDER_GO_TO :완행 STR_ORDER_GO_NON_STOP_TO :직행 STR_ORDER_GO_VIA :완행 경유 STR_ORDER_GO_NON_STOP_VIA :직행 경유 -STR_ORDER_TOOLTIP_NON_STOP :{BLACK}선택한 목적지에서의 정차 방식을 변경합니다 +STR_ORDER_TOOLTIP_NON_STOP :{BLACK}선택한 목적지에서 화물을 정차할 방식을 변경합니다 STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}아무 화물이나 가득 싣기 STR_ORDER_DROP_LOAD_IF_POSSIBLE :가능한 것만 적재 STR_ORDER_DROP_FULL_LOAD_ALL :모든 화물을 가득 실음 STR_ORDER_DROP_FULL_LOAD_ANY :아무 화물이나 가득 싣기 STR_ORDER_DROP_NO_LOADING :싣지 않기 -STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}선택한 목적지에서의 화물 적재 방식을 변경합니다 +STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}선택한 목적지에서 화물을 적재할 방식을 변경합니다 STR_ORDER_TOGGLE_UNLOAD :{BLACK}모든 화물 하차 STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :화물을 받는경우 하차 STR_ORDER_DROP_UNLOAD :모든 화물 하차 STR_ORDER_DROP_TRANSFER :환승 STR_ORDER_DROP_NO_UNLOADING :화물을 하차시키지 않음 -STR_ORDER_TOOLTIP_UNLOAD :{BLACK}선택한 목적지에서의 화물 하차 방식을 변경합니다 +STR_ORDER_TOOLTIP_UNLOAD :{BLACK}선택한 목적지에서 화물을 하차할 방식을 변경합니다 STR_ORDER_REFIT :{BLACK}개조 STR_ORDER_REFIT_TOOLTIP :{BLACK}이 경로에서 열차를 어떤 화물을 받을 수 있게 개조할 것인지 선택하십시오. CTRL+클릭하면 개조 설정을 해제합니다. diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 039ba954f3..881494d78e 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -569,6 +569,7 @@ STR_COLOUR_BROWN :Brązowy STR_COLOUR_GREY :Szary STR_COLOUR_WHITE :Biały STR_COLOUR_RANDOM :Losowy +STR_COLOUR_DEFAULT :Domyślny # Units used in OpenTTD STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph @@ -1725,6 +1726,8 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :zielony STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :ciemnozielony STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :fioletowy STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Zachowanie podczas przeciągania mapy +STR_CONFIG_SETTING_SCROLLMODE_DEFAULT :Przeciągnij okno podglądu prawym przyciskiem myszy, pozycja myszy zablokowana +STR_CONFIG_SETTING_SCROLLMODE_RMB_LOCKED :Przeciągnij mapę prawym przyciskiem myszy, pozycja myszy zablokowana STR_CONFIG_SETTING_SCROLLMODE_RMB :Przeciągnij mapę prawym przyciskiem myszy STR_CONFIG_SETTING_SCROLLMODE_LMB :Przeciągnij mapę lewym przyciskiem myszy STR_CONFIG_SETTING_SMOOTH_SCROLLING :Wygładź przesuwanie widoku: {STRING} @@ -2195,7 +2198,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Zmiana o STR_CHEAT_SETUP_PROD :{LTBLUE}Pozwól modyfikować wielkość produkcji przedsiębiorstw: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nowy schemat kolorów +STR_LIVERY_CAPTION :{WHITE}{COMPANY} - Schemat kolorów STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Pokaż ogólne schematy koloru STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Pokaż schematy koloru pociągów @@ -2756,7 +2759,7 @@ STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Sygnaliz STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Jednokierunkowy sygnalizator trasy (elektryczny){}Sygnalizator trasy umożliwiający wejście więcej niż jednemu pociagowi do bloku sygnalizatorów, o ile pociąg może zarezerwować trasę do bezpiecznego punktu zatrzymania. Sygnalizatory jednokierunkowe nie mogą być mijane w przeciwnym kierunku STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Zamiana sygnałów{}Jeżeli włączone, kliknięcie na istniejący sygnał spowoduje zamianę go na wybrany typ i wariant. CTRL+klik przełącza istniejący wariant. Shift+klik pokazuje szacowany koszt zamiany STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Gęstość sygnałów przy przeciąganiu -STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Zmniejsz gęstość sygnałów przy przeciąganiu +STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Zmniejsz odległość między sygnałami przy przeciąganiu STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Zwiększ gęstość sygnałów przy przeciąganiu # Bridge selection window @@ -3086,6 +3089,7 @@ STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Liczba r STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Jak szybko gra obecnie działa, w porównaniu do oczekiwanej prędkości przy normalnym tempie symulacji. STR_FRAMERATE_CURRENT :{WHITE}Obecny STR_FRAMERATE_AVERAGE :{WHITE}Średnia +STR_FRAMERATE_DATA_POINTS :{BLACK}Dane oparte na {COMMA} pomiarach STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms STR_FRAMERATE_MS_BAD :{RED}{DECIMAL} ms @@ -3095,13 +3099,18 @@ STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} sek. ############ Leave those lines in this order!! +STR_FRAMERATE_GL_ECONOMY :{BLACK} Obsługa ładunku: STR_FRAMERATE_GL_LINKGRAPH :{WHITE} Opóźnienie wykresu połączeń: STR_FRAMERATE_DRAWING :{BLACK}Renderowanie grafiki: +STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Okna podgląu świata: STR_FRAMERATE_VIDEO :{WHITE}Wyjście video: STR_FRAMERATE_SOUND :{WHITE}Miksowanie dźwięku: ############ End of leave-in-this-order ############ Leave those lines in this order!! +STR_FRAMETIME_CAPTION_GAMELOOP :Pętla gry +STR_FRAMETIME_CAPTION_GL_LINKGRAPH :Opóźnienie wykresu połączeń STR_FRAMETIME_CAPTION_DRAWING :Renderowanie grafiki +STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Renderowanie okna podgląu świata STR_FRAMETIME_CAPTION_VIDEO :Wyjście wideo STR_FRAMETIME_CAPTION_SOUND :Miksowanie dźwięku ############ End of leave-in-this-order @@ -3129,6 +3138,9 @@ STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Szczegó STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Brak dostępnych informacji STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING} +STR_SAVELOAD_FILTER_TITLE :{BLACK}Fraza filtru: +STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Zastąp plik +STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}Czy na pewno chcesz zastąpić istniejący stan gry? STR_SAVELOAD_OSKTITLE :{BLACK}Wprowadź nazwę pod jaką zapisać grę @@ -3246,7 +3258,10 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Wersja: STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Kompatybilność z wersją min.: {SILVER}{NUM} STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}Suma MD5: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Paleta: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Domyslny (D) +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Domyślny (D) / 32 bpp STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parametry: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PARAMETER_NONE :Żadne STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Brak dostępnych informacji STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Nie znaleziono pasującego pliku @@ -3804,6 +3819,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Ładowno STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Moc: {GOLD}+{POWER}{BLACK} Masa: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Można przystosować do: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :wszystkie typy ładunków +STR_PURCHASE_INFO_NONE :Żadne STR_PURCHASE_INFO_ALL_BUT :wszystko oprócz {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Maks. siła pociągowa: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Zasięg: {GOLD}{COMMA} pól From 5e4f76f2f9ad105f619003657229b3bbd87ba678 Mon Sep 17 00:00:00 2001 From: Gabda Date: Thu, 7 Feb 2019 21:17:32 +0100 Subject: [PATCH 11/38] Fix #5654: (Re)initialise graph GUI on game (re)start (#7191) --- src/graph_gui.cpp | 6 ++++++ src/misc.cpp | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/graph_gui.cpp b/src/graph_gui.cpp index bbf1c22d62..08b99598fa 100644 --- a/src/graph_gui.cpp +++ b/src/graph_gui.cpp @@ -1580,3 +1580,9 @@ void ShowPerformanceRatingDetail() { AllocateWindowDescFront(&_performance_rating_detail_desc, 0); } + +void InitializeGraphGui() +{ + _legend_excluded_companies = 0; + _legend_excluded_cargo = 0; +} diff --git a/src/misc.cpp b/src/misc.cpp index d9d506993f..8151f2dd32 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -42,6 +42,7 @@ void InitializeRailGui(); void InitializeRoadGui(); void InitializeAirportGui(); void InitializeDockGui(); +void InitializeGraphGui(); void InitializeObjectGui(); void InitializeIndustries(); void InitializeObjects(); @@ -87,6 +88,7 @@ void InitializeGame(uint size_x, uint size_y, bool reset_date, bool reset_settin InitializeRoadGui(); InitializeAirportGui(); InitializeDockGui(); + InitializeGraphGui(); InitializeObjectGui(); InitializeAIGui(); InitializeTrees(); From 37bb2c930828260cd28365c8d96befea096bacd6 Mon Sep 17 00:00:00 2001 From: Gabda Date: Sat, 9 Feb 2019 00:05:25 +0100 Subject: [PATCH 12/38] Codechange: Make the style of MakeVoid calls uniform (#7192) --- src/genworld.cpp | 4 ++-- src/landscape.cpp | 23 +++++++++-------------- src/saveload/afterload.cpp | 6 ++---- src/settings.cpp | 4 ++-- src/tgp.cpp | 4 ++-- 5 files changed, 17 insertions(+), 24 deletions(-) diff --git a/src/genworld.cpp b/src/genworld.cpp index 5cdb129b9c..25d6a7bd9d 100644 --- a/src/genworld.cpp +++ b/src/genworld.cpp @@ -120,8 +120,8 @@ static void _GenerateWorld(void *) /* Make sure the tiles at the north border are void tiles if needed. */ if (_settings_game.construction.freeform_edges) { - for (uint row = 0; row < MapSizeY(); row++) MakeVoid(TileXY(0, row)); - for (uint col = 0; col < MapSizeX(); col++) MakeVoid(TileXY(col, 0)); + for (uint x = 0; x < MapSizeX(); x++) MakeVoid(TileXY(x, 0)); + for (uint y = 0; y < MapSizeY(); y++) MakeVoid(TileXY(0, y)); } /* Make the map the height of the setting */ diff --git a/src/landscape.cpp b/src/landscape.cpp index 2f14a69e4b..b173709f37 100644 --- a/src/landscape.cpp +++ b/src/landscape.cpp @@ -841,22 +841,17 @@ void RunTileLoop() void InitializeLandscape() { - uint maxx = MapMaxX(); - uint maxy = MapMaxY(); - uint sizex = MapSizeX(); - - uint y; - for (y = _settings_game.construction.freeform_edges ? 1 : 0; y < maxy; y++) { - uint x; - for (x = _settings_game.construction.freeform_edges ? 1 : 0; x < maxx; x++) { - MakeClear(sizex * y + x, CLEAR_GRASS, 3); - SetTileHeight(sizex * y + x, 0); - SetTropicZone(sizex * y + x, TROPICZONE_NORMAL); - ClearBridgeMiddle(sizex * y + x); + for (uint y = _settings_game.construction.freeform_edges ? 1 : 0; y < MapMaxY(); y++) { + for (uint x = _settings_game.construction.freeform_edges ? 1 : 0; x < MapMaxX(); x++) { + MakeClear(TileXY(x, y), CLEAR_GRASS, 3); + SetTileHeight(TileXY(x, y), 0); + SetTropicZone(TileXY(x, y), TROPICZONE_NORMAL); + ClearBridgeMiddle(TileXY(x, y)); } - MakeVoid(sizex * y + x); } - for (uint x = 0; x < sizex; x++) MakeVoid(sizex * y + x); + + for (uint x = 0; x < MapSizeX(); x++) MakeVoid(TileXY(x, MapMaxY())); + for (uint y = 0; y < MapSizeY(); y++) MakeVoid(TileXY(MapMaxX(), y)); } static const byte _genterrain_tbl_1[5] = { 10, 22, 33, 37, 4 }; diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index d0b4723c6e..0b570966dc 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -204,10 +204,8 @@ static void UpdateCurrencies() */ static void UpdateVoidTiles() { - uint i; - - for (i = 0; i < MapMaxY(); ++i) MakeVoid(i * MapSizeX() + MapMaxX()); - for (i = 0; i < MapSizeX(); ++i) MakeVoid(MapSizeX() * MapMaxY() + i); + for (uint x = 0; x < MapSizeX(); x++) MakeVoid(TileXY(x, MapMaxY())); + for (uint y = 0; y < MapSizeY(); y++) MakeVoid(TileXY(MapMaxX(), y)); } static inline RailType UpdateRailType(RailType rt, RailType min) diff --git a/src/settings.cpp b/src/settings.cpp index 41d3e28092..b93f4d7066 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1222,8 +1222,8 @@ static bool CheckFreeformEdges(int32 p1) return false; } } - for (uint i = 0; i < MapSizeX(); i++) MakeVoid(TileXY(i, 0)); - for (uint i = 0; i < MapSizeY(); i++) MakeVoid(TileXY(0, i)); + for (uint x = 0; x < MapSizeX(); x++) MakeVoid(TileXY(x, 0)); + for (uint y = 0; y < MapSizeY(); y++) MakeVoid(TileXY(0, y)); } else { for (uint i = 0; i < MapMaxX(); i++) { if (TileHeight(TileXY(i, 1)) != 0) { diff --git a/src/tgp.cpp b/src/tgp.cpp index 02621f127e..4dbb79aa82 100644 --- a/src/tgp.cpp +++ b/src/tgp.cpp @@ -995,8 +995,8 @@ void GenerateTerrainPerlin() /* First make sure the tiles at the north border are void tiles if needed. */ if (_settings_game.construction.freeform_edges) { - for (int y = 0; y < _height_map.size_y - 1; y++) MakeVoid(_height_map.size_x * y); - for (int x = 0; x < _height_map.size_x; x++) MakeVoid(x); + for (uint x = 0; x < MapSizeX(); x++) MakeVoid(TileXY(x, 0)); + for (uint y = 0; y < MapSizeY(); y++) MakeVoid(TileXY(0, y)); } int max_height = H2I(TGPGetMaxHeight()); From d03cb80346dac780973744af35f5251c4cdeb138 Mon Sep 17 00:00:00 2001 From: Henry Wilson Date: Fri, 8 Feb 2019 22:37:41 +0000 Subject: [PATCH 13/38] Fix: trains cancelling their pending reversal when ordered to go to a depot behind them Previously, if a train had been ordered to reverse, and while it was slowing down, was ordered to travel to a depot that is behind it, the train would continue forwards. Also when a train had been ordered to reverse, and while it was slowing down, was ordered to travel to a depot that is in front of it, the train would not cancel the reversal. In both cases the train would travel away from the target depot. Trains in this situation now behave correctly and will travel towards the depot. --- src/vehicle.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/vehicle.cpp b/src/vehicle.cpp index 53220474e5..f655bbafc5 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -2356,8 +2356,10 @@ CommandCost Vehicle::SendToDepot(DoCommandFlag flags, DepotCommand command) if (!(command & DEPOT_SERVICE)) this->current_order.SetDepotActionType(ODATFB_HALT); SetWindowWidgetDirty(WC_VEHICLE_VIEW, this->index, WID_VV_START_STOP); - /* If there is no depot in front, reverse automatically (trains only) */ - if (this->type == VEH_TRAIN && reverse) DoCommand(this->tile, this->index, 0, DC_EXEC, CMD_REVERSE_TRAIN_DIRECTION); + /* If there is no depot in front and the train is not already reversing, reverse automatically (trains only) */ + if (this->type == VEH_TRAIN && (reverse ^ HasBit(Train::From(this)->flags, VRF_REVERSING))) { + DoCommand(this->tile, this->index, 0, DC_EXEC, CMD_REVERSE_TRAIN_DIRECTION); + } if (this->type == VEH_AIRCRAFT) { Aircraft *a = Aircraft::From(this); From de1278290b7ede2fa9e4a7455abfeb8487496dcf Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 9 Feb 2019 14:41:18 +0100 Subject: [PATCH 14/38] Update: Translations from eints greek: 15 changes by fumantsu dutch: 73 changes by JanWillem --- src/lang/afrikaans.txt | 1 - src/lang/arabic_egypt.txt | 1 - src/lang/basque.txt | 1 - src/lang/belarusian.txt | 1 - src/lang/brazilian_portuguese.txt | 1 - src/lang/bulgarian.txt | 1 - src/lang/catalan.txt | 1 - src/lang/czech.txt | 1 - src/lang/dutch.txt | 146 +++++++++++++++--------------- src/lang/english_AU.txt | 1 - src/lang/english_US.txt | 1 - src/lang/esperanto.txt | 1 - src/lang/faroese.txt | 1 - src/lang/gaelic.txt | 1 - src/lang/galician.txt | 1 - src/lang/greek.txt | 16 +++- src/lang/hebrew.txt | 1 - src/lang/hungarian.txt | 1 - src/lang/icelandic.txt | 1 - src/lang/indonesian.txt | 1 - src/lang/irish.txt | 1 - src/lang/italian.txt | 1 - src/lang/japanese.txt | 1 - src/lang/latin.txt | 1 - src/lang/latvian.txt | 1 - src/lang/lithuanian.txt | 1 - src/lang/luxembourgish.txt | 1 - src/lang/malay.txt | 1 - src/lang/norwegian_bokmal.txt | 1 - src/lang/norwegian_nynorsk.txt | 1 - src/lang/serbian.txt | 1 - src/lang/simplified_chinese.txt | 1 - src/lang/slovak.txt | 1 - src/lang/slovenian.txt | 1 - src/lang/tamil.txt | 1 - src/lang/thai.txt | 1 - src/lang/traditional_chinese.txt | 1 - src/lang/turkish.txt | 1 - src/lang/ukrainian.txt | 1 - src/lang/unfinished/frisian.txt | 1 - src/lang/unfinished/persian.txt | 1 - src/lang/unfinished/urdu.txt | 4 - src/lang/vietnamese.txt | 1 - src/lang/welsh.txt | 1 - 44 files changed, 88 insertions(+), 119 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 02efdd5aa4..28234123f7 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -1801,7 +1801,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Verander STR_CHEAT_SETUP_PROD :{LTBLUE}Aktiveer modifisering van produksie waardes: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nuwe Kleur Skema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Toon algemene kleurskemas STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Wys trein kleur skemas diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 5cccd49091..7a2685b3ce 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -1471,7 +1471,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}غير STR_CHEAT_SETUP_PROD :{LTBLUE}تفعيل تغيير قيمة الانتاج: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}الوان جديدة STR_LIVERY_GENERAL_TOOLTIP :{BLACK}اظهر اللون العام STR_LIVERY_TRAIN_TOOLTIP :{BLACK}اظهر لون القطائرات diff --git a/src/lang/basque.txt b/src/lang/basque.txt index aa57bb9f70..94bacd7880 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -1711,7 +1711,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Aurtengo STR_CHEAT_SETUP_PROD :{LTBLUE}Ekoizpen balioak aldatzea baimendu: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Kolore eskema berria STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Erakutsi kolore eskema orokorrak STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Erakutsi trenen kolore eskemak diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index cb79266a70..e610acc119 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -2126,7 +2126,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Зьмя STR_CHEAT_SETUP_PROD :{LTBLUE}Дазволіць зьмяненьне прадукцыйнасьці: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Новая каляровая схэма STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Паказаць асноўныя каляровыя схэмы STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Паказаць каляровыя схэмы цягнікоў diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 52978f65da..31aa357626 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -1817,7 +1817,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Mudar an STR_CHEAT_SETUP_PROD :{LTBLUE}Ativar modificação de valores de produção: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Novo Esquema de Cores STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Exibir esquemas de cor gerais STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Exibe esquemas de cor de trens diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 9066f2cdda..16d9038acb 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -1749,7 +1749,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Пром STR_CHEAT_SETUP_PROD :{LTBLUE}Промяна на производствените стойности: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Нова цветове STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Показване на общи цветови схеми STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Показване цветовите схеми на влаковете diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 15e2bff8f7..d20684b036 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1815,7 +1815,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Canvia l STR_CHEAT_SETUP_PROD :{LTBLUE}Activa la modificació dels valors de producció: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nou esquema de colors STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostra esquemes de colors generals STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Mostra els esquemes de colors dels trens diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 7d1486c992..e26dd9963d 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -1895,7 +1895,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Změnit STR_CHEAT_SETUP_PROD :{LTBLUE}Povolit změnu produkce průmyslu: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nové barevné schéma STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Zobrazit všeobecná barevná schémata STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Zobrazit barevná schémata pro vlaky diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 1b48c5c1ff..f6382d8700 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -1101,7 +1101,7 @@ STR_CONFIG_SETTING_FILTER_TITLE :{BLACK}Filterte STR_CONFIG_SETTING_EXPAND_ALL :{BLACK}Alles uitvouwen STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}Alles inklappen STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT :(geen uitleg beschikbaar) -STR_CONFIG_SETTING_DEFAULT_VALUE :{LTBLUE}Standaard waarde: {ORANGE}{STRING} +STR_CONFIG_SETTING_DEFAULT_VALUE :{LTBLUE}Standaardwaarde: {ORANGE}{STRING} STR_CONFIG_SETTING_TYPE :{LTBLUE}Instellingstype: {ORANGE}{STRING} STR_CONFIG_SETTING_TYPE_CLIENT :Gebruiker instellingen (niet opgeslagen in bestand; heeft invloed op alle spellen) STR_CONFIG_SETTING_TYPE_GAME_MENU :Spelinstellingen (opgeslagen in bestand; hebben alleen invloed op nieuw spel) @@ -1159,7 +1159,7 @@ STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Controle hoe va STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER :Subsidie indicator: {STRING} STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :Instellen hoeveel wordt betaald voor gesubsidieerde verbindingen STR_CONFIG_SETTING_CONSTRUCTION_COSTS :Bouwkosten: {STRING} -STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :Het niveau van bouw- en aankoopkosten +STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :Het niveau van bouw- en aankoopkosten instellen STR_CONFIG_SETTING_RECESSIONS :Recessies: {STRING} STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :Wanneer ingeschakeld kunnen recessies om de paar jaar optreden. Tijdens een recessie is alle productie aanzienlijk lager (deze keert terug naar het vorige niveau als de recessie voorbij is) STR_CONFIG_SETTING_TRAIN_REVERSING :Niet toestaan dat treinen keren in stations: {STRING} @@ -1167,16 +1167,16 @@ STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Indien ingescha STR_CONFIG_SETTING_DISASTERS :Rampen: {STRING} STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Schakel rampen die af en toe voertuigen of infrastructuur kunnen blokkeren of vernietigen in/uit STR_CONFIG_SETTING_CITY_APPROVAL :Houding van gemeentebestuur ten opzichte van herstructurering omgeving: {STRING} -STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Kies hoeveel lawaai en schade aan het milieu door bedrijven de stadswaardering en hun acties beïnvloeden in hun bouwgebied +STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Bepaalt in hoeverre lawaai en schade aan het milieu door bedrijven de stadswaardering en verdere bouwacties beïnvloeden in hun omgeving STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Maximale kaarthoogte: {STRING} STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Stel de maximum toegestane hoogte voor bergen op de kaart in STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Je kunt de maximale kaarthoogte niet in deze waarde wijzigen. Minstens één berg op de kaart is hoger. STR_CONFIG_SETTING_AUTOSLOPE :Omgeving aanpassen onder gebouwen, spoorwegen, enz. toestaan: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Staat het aanpassen van funderingen onder gebouwen en sporen toe zonder deze te verwijderen -STR_CONFIG_SETTING_CATCHMENT :Gebruik meer realistische handelsgebieden: {STRING} -STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Heb verschillende grootte verzorgingsgebied voor verschillende typen stations en luchthavens -STR_CONFIG_SETTING_EXTRADYNAMITE :Sta verwijderen van meer stedelijke wegen, bruggen en tunnels toe: {STRING} +STR_CONFIG_SETTING_CATCHMENT :Meer realistische verzorgingsgebieden toestaan: {STRING} +STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Verzorgingsgebieden met verschillende groottes voor verschillende typen stations en luchthavens +STR_CONFIG_SETTING_EXTRADYNAMITE :Verwijderen van meer stedelijke wegen, bruggen en tunnels toestaan: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Maakt het gemakkelijker om door de stad beheerde infrastructuur en gebouwen te verwijderen. STR_CONFIG_SETTING_TRAIN_LENGTH :Maximale lengte van treinen: {STRING} STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT :Stel de maximale lengte van treinen in @@ -1209,7 +1209,7 @@ STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Wijze van finan STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :Geen STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :Zoals andere industrieën STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :Proberen -STR_CONFIG_SETTING_INDUSTRY_PLATFORM :Plat gebied rond industrieën: {STRING} +STR_CONFIG_SETTING_INDUSTRY_PLATFORM :Vlak gebied rond industrieën: {STRING} STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT :Hoeveelheid ruimte rond een industrie. Dit zorgt ervoor dat lege ruimte rond een industrie beschikbaar blijft voor sporen, stations, wegen enz. STR_CONFIG_SETTING_MULTIPINDTOWN :Meerdere vergelijkbare industrieën per stad toestaan: {STRING} STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT :Normaal zal een stad niet meer dan één industrie van ieder type toestaan. Door deze optie in te schakelen zullen steden meerdere industrieën van één soort accepteren. @@ -1227,8 +1227,8 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Plaats waar een STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :aan het begin STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :in het midden STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :aan het einde -STR_CONFIG_SETTING_AUTOSCROLL :Verschuif scherm als muis aan de rand is: {STRING} -STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Wanneer aan, start een subvenster met scrollen wanneer de muis vlak bij de rand van het venster komt +STR_CONFIG_SETTING_AUTOSCROLL :Scherm verplaatsen als muis de rand raakt: {STRING} +STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Als dit is ingeschakeld, wordt een subvenster verplaatst wanneer de muis vlak bij de rand van het venster komt STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Uitgeschakeld STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Hoofdkijkvenster, alleen volledig scherm STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Hoofdkijkvenster @@ -1238,13 +1238,13 @@ STR_CONFIG_SETTING_BRIBE_HELPTEXT :Toestaan dat be STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :Kopen van exclusieve transportrechten toestaan: {STRING} STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Wanneer een bedrijf de exclusieve transportrechten van een stad koopt, ontvangen de stations (zowel passagiers als vracht) van de tegenstanders geen vracht voor één heel jaar. STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS :Financiering van gebouwen toestaan: {STRING} -STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Deze optie staat bedrijven toe meer geld te geven aan steden voor de financiering van nieuwe huizen. +STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Staat bedrijven toe geld te geven aan steden voor de financiering van nieuwe huizen. STR_CONFIG_SETTING_ALLOW_FUND_ROAD :Financieren van lokale wegreconstructie toestaan: {STRING} -STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT :Deze optie staat bedrijven toe geld te geven aan steden voor het herbouwen van wegen, zodat op wegbedrijven gesaboteerd worden. +STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT :Staat bedrijven toe geld te geven aan steden voor wegreconstructies zodat wegbedrijven gesaboteerd worden. STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :Geld geven aan andere bedrijven toestaan: {STRING} STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Sta toe dat bedrijven geld naar elkaar overmaken in een multiplayerspel. STR_CONFIG_SETTING_FREIGHT_TRAINS :Gewichtsfactor voor vracht om zware treinen te simuleren: {STRING} -STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Stel de impact van het vervoer van vracht bij treinen. Een hogere waarde maakt het vervoer van vracht veeleisender voor treinen, met name in heuvels +STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Stelt in hoe vracht treinen beïnvloedt. Een hogere waarde maakt het vervoer van vracht veeleisender voor treinen, met name in heuvels. STR_CONFIG_SETTING_PLANE_SPEED :Vliegtuig snelheidsfactor: {STRING} STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT :Stel de relatieve snelheid van de vliegtuigen in vergelijking met andere typen voertuigen, om de hoogte van het inkomen van het vervoer door vliegtuigen te verminderen STR_CONFIG_SETTING_PLANE_SPEED_VALUE :1 / {COMMA} @@ -1278,20 +1278,20 @@ STR_CONFIG_SETTING_WARN_INCOME_LESS :Waarschuw als i STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT :Wanneer ingeschakeld, wordt een nieuws-bericht verstuurd wanneer een voertuig geen winst heeft gemaakt in een kalenderjaar STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Voertuigen verlopen nooit: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :Wanneer ingeschakeld, alle voertuig modellen blijven voor altijd beschikbaar na hun introductie -STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Vernieuw voertuig automatisch wanneer deze oud wordt: {STRING} -STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Wanneer ingeschakeld, wordt een voertuig die het einde van zijn levensduur nadert automatisch vervangen als aan de vernieuw voorwaarden worden voldaan +STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Voertuig automatisch vernieuwen wanneer dit oud wordt: {STRING} +STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Wanneer ingeschakeld, wordt een voertuig dat het einde van zijn levensduur nadert automatisch vervangen als aan de voorwaarden voor vernieuwing wordt voldaan STR_CONFIG_SETTING_AUTORENEW_MONTHS :Vernieuw voertuigen automatisch na {STRING} maximumleeftijd -STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Relatieve leeftijd van een voertuig wanneer deze in aanmerking komt voor automatisch vervangen +STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Relatieve leeftijd van een voertuig wanneer dit in aanmerking komt voor automatisch vervangen STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} maand{P 0 "" en} voor STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} maand{P 0 "" en} na -STR_CONFIG_SETTING_AUTORENEW_MONEY :Minimum benodigd geld voor automatisch vernieuwen: {STRING} -STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimale hoeveelheid geld die op de bank moet blijven alvorens automatisch vernieuwen voertuigen te starten +STR_CONFIG_SETTING_AUTORENEW_MONEY :Minimumbedrag dat nodig is voor automatisch vernieuwen: {STRING} +STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimumbedrag dat de bank moet blijven voordat automatisch vernieuwen van voertuigen mogelijk is STR_CONFIG_SETTING_ERRMSG_DURATION :Duur van foutbericht: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duur voor het weergeven van foutberichten in een rood venster. Merk op dat sommige (kritische) foutmeldingen niet automatisch worden gesloten na deze tijd, deze moeten handmatig worden gesloten STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} seconde{P 0 "" n} STR_CONFIG_SETTING_HOVER_DELAY :Knopinfo weergeven: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Vertraging voordat tooltips worden weergegeven wanneer de muis over een interface-element. Als alternatief kunnen tooltips worden gebonden aan de rechtermuisknop wanneer de waarde 0 is. -STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Wijs aan voor {COMMA} seconde{P 0 "" n} +STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Muis stilhouden gedurende {COMMA} seconde{P 0 "" n} STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :Rechtsklik STR_CONFIG_SETTING_POPULATION_IN_LABEL :Geef het inwoneraantal bij een stad weer: {STRING} STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Aantal inwoners van een stad weergeven bij naam op de kaart @@ -1307,7 +1307,7 @@ STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis STR_CONFIG_SETTING_TERRAIN_TYPE :Terrein type: {STRING} STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Alleen TerraGenesis) Heuvelachtigheid van het landschap STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industriedichtheid: {STRING} -STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Stel in hoeveel industrieën moeten worden gegenereerd en welk niveau tijdens het spel moet worden gehandhaafd +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Stelt in hoeveel industrieën worden gegenereerd en welk niveau tijdens het spel moet worden gehandhaafd STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximumafstand van de rand voor Olierafinaderijen: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Olieraffinaderijen worden alleen gebouwd nabij de kaart grens, dat is aan de kust van eiland kaarten STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Sneeuwhoogte: {STRING} @@ -1347,13 +1347,13 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Kleur van het t STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Groen STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Donker groen STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violet -STR_CONFIG_SETTING_SCROLLMODE :Bekijk scrollgedrag: {STRING} -STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Gedrag tijdens het scrollen van de kaart +STR_CONFIG_SETTING_SCROLLMODE :Verplaatsingsgedrag voor kijkvensters: {STRING} +STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Gedrag tijdens het verplaatsen van de kaart STR_CONFIG_SETTING_SCROLLMODE_DEFAULT :Verplaats kijkvenster met RMB, muispositie staat vast STR_CONFIG_SETTING_SCROLLMODE_RMB_LOCKED :Verplaats kaart met RMB, muispositie staat vast STR_CONFIG_SETTING_SCROLLMODE_RMB :Verplaats kaart met RMB STR_CONFIG_SETTING_SCROLLMODE_LMB :Verplaats kaart met LMB -STR_CONFIG_SETTING_SMOOTH_SCROLLING :Vloeiend scrollen kijkvenster: {STRING} +STR_CONFIG_SETTING_SMOOTH_SCROLLING :Kijkvenster vloeiend verplaatsen: {STRING} STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Bepalen hoe de hoofdweergave naar een specifieke positie schuift bij het klikken op de minikaart of bij het uitvoeren van een commando om naar een specifiek object op de kaart te scrollen. Indien ingeschakeld, dan scrollt het kijkvenster soepel, als deze uitgeschakeld gaat u rechtstreeks naar de beoogde plek STR_CONFIG_SETTING_MEASURE_TOOLTIP :Maten weergeven bij het gebruik van diverse bouwgereedschappen: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Geef tegelafstanden en hoogteverschillen weer bij het slepen tijdens het bouwen @@ -1365,12 +1365,12 @@ STR_CONFIG_SETTING_LIVERIES_ALL :Alle bedrijven STR_CONFIG_SETTING_PREFER_TEAMCHAT :Voorkeur voor team chat met : {STRING} STR_CONFIG_SETTING_PREFER_TEAMCHAT_HELPTEXT :Schakel de binding van bedrijfs-interne en publieke chat om resp. STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING :Functie van muiswiel: {STRING} -STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING_HELPTEXT :Scrollen inschakelen met twee-dimensioneel muis-wielen +STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING_HELPTEXT :Verplaatsen inschakelen met tweedimensionale muiswieltjes STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM :Zoom kaart -STR_CONFIG_SETTING_SCROLLWHEEL_SCROLL :Scroll kaart +STR_CONFIG_SETTING_SCROLLWHEEL_SCROLL :Kaart verplaatsen STR_CONFIG_SETTING_SCROLLWHEEL_OFF :Uit STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :Muiswielsnelheid: {STRING} -STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER_HELPTEXT :Regel de gevoeligheid van het muis-wiel scrollen +STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER_HELPTEXT :Gevoeligheid van verplaatsen met de instellen STR_CONFIG_SETTING_OSK_ACTIVATION :Toetsenbord op scherm: {STRING} STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT :Selecteer de methode om het toetsenbord op het scherm te openen voor tekst invoeren in editboxes alleen met behulp van het aanwijsapparaat. Dit is bedoeld voor kleine apparaten zonder toetsenbord STR_CONFIG_SETTING_OSK_ACTIVATION_DISABLED :Uitgeschakeld @@ -1390,9 +1390,9 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Sluit een venst STR_CONFIG_SETTING_AUTOSAVE :Automatisch opslaan: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Kies tijdsduur voor automatische spelopslag -STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Gebruik {STRING} datumformaat voor naamgeving van opgeslagen spellen +STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Datumindeling {STRING} gebruiken voor naamgeving van opgeslagen spellen STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Formaat van de datum in savegamebestandsnamen -STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :lang (31e dec 2008) +STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :lang (31 dec 2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :kort (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) @@ -1404,8 +1404,8 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Geen mogelijkhe STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Alle niet-constructiemogelijkheden STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Alles behalve landschapsaanpassingen STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Alle mogelijkheden -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Gebruik groepen voor voertuigenlijst: {STRING} -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Schakel het gebruik van de geavanceerde voertuigenlijsten in voor het groeperen van voertuigen +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Groepen gebruiken in voertuigenlijst: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Schakelt het gebruik van de geavanceerde voertuigenlijsten in voor het groeperen van voertuigen STR_CONFIG_SETTING_LOADING_INDICATORS :Laadpercentages gebruiken: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Geef aan of laadindicatoren worden weergegeven boven ladende of lossende voertuigen STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :Dienstregeling in tikken weergeven i.p.v. in dagen: {STRING} @@ -1423,7 +1423,7 @@ STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Gereserveerd sp STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Geef gereserveerde tracks een andere kleur om te helpen met de problemen met treinen te weigeren een route op basis van blokken in te gaan STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Hou bouwgereedschappen actief na gebruik: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Houd de bouwhulpmiddelen voor bruggen, tunnels, enz. open na gebruik -STR_CONFIG_SETTING_EXPENSES_LAYOUT :Groepeer uitgaven in bedrijfsfinanciënscherm: {STRING} +STR_CONFIG_SETTING_EXPENSES_LAYOUT :Uitgaven in bedrijfsfinanciënvenster groeperen: {STRING} STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Definieer de lay-out voor het bedrijfsuitgavenvenster STR_CONFIG_SETTING_SOUND_TICKER :Nieuwsticker: {STRING} @@ -1469,7 +1469,7 @@ STR_CONFIG_SETTING_AI_PROFILE_EASY :Makkelijk STR_CONFIG_SETTING_AI_PROFILE_MEDIUM :Gemiddeld STR_CONFIG_SETTING_AI_PROFILE_HARD :Moeilijk -STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Laat computerspelers toe in netwerkspel: {STRING} +STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Computerspelers toestaan in netwerkspelen: {STRING} STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Sta door computer gegenereerde speler toe deel te nemen in multiplayerspellen STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes voordat scripts worden gestopt: {STRING} STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Maximumaantal berekeningsstappen die een script kan maken in een beurt @@ -1490,8 +1490,8 @@ STR_CONFIG_SETTING_NOSERVICE :Onderhoud uitsc STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :Als deze optie is ingeschakeld worden voertuigen niet onderhouden als ze niet kapot kunnen gaan. STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Schakel snelheidslimieten voor wagons aan: {STRING} STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :Wanneer ingeschakeld, ook gebruik maken van snelheidsbeperkingen van wagons voor het bepalen van de maximale snelheid van een trein -STR_CONFIG_SETTING_DISABLE_ELRAILS :Schakel elektrische sporen uit: {STRING} -STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT :Het inschakelen van deze instelling schakelt de verplichting voor spoorelektrificatie voor elektrische treinen uit +STR_CONFIG_SETTING_DISABLE_ELRAILS :Elektrische sporen uitschakelen: {STRING} +STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT :Wanneer dit is ingeschakeld, hoeven sporen niet te zijn geëlektrificeerd voor elektrische treinen STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :Eerste voertuig bij eigen station: {STRING} STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN_HELPTEXT :Nieuwsbericht weergeven als het eerste voertuig arriveert op een station van de speler @@ -1533,14 +1533,14 @@ STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Jaar dat de kra STR_CONFIG_SETTING_STARTING_YEAR :Startjaar: {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY :Vloeiende economie inschakelen (meer, kleinere veranderingen): {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Wanneer ingeschakeld, industrie produktie verandert vaker en in kleinere stappen. Deze instelling heeft meestal geen effect, als de industrie soorten worden geleverd door een NewGRF -STR_CONFIG_SETTING_ALLOW_SHARES :Sta het kopen van aandelen van andere bedrijven toe: {STRING} +STR_CONFIG_SETTING_ALLOW_SHARES :Kopen van aandelen in andere bedrijven toestaan: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Wanneer ingeschakeld is het toegestaan om bedrijfsaandelen te kopen en te verkopen. Aandelen zullen alleen beschikbaar zijn voor bedrijven die een bepaalde leeftijd hebben bereikt STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentage van routeopbrengst in overdrachtssysteem: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentage van het inkomen besteed aan de intermediaire delen in feedersystemen waardoor er meer controle over de inkomsten is -STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Bij slepen, plaats seinen elke: {STRING} +STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Bij slepen, seinen plaatsen om de: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :Stel de afstand waarop signalen worden gebouwd op een spoor in totaan de volgende hindernis (signaal, kruising) als signalen worden gesleept STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} tegel{P 0 "" s} -STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE :Bij slepen, hou vaste afstand tussen seinen: {STRING} +STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE :Bij slepen vaste afstand tussen seinen aanhouden: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :Selecteer het gedrag van seinplaatsing wanneer je met Ctrl+slepen seinen plaatst. Indien dit uitgeschakeld is, dan worden seinen rondom tunnels of bruggen geplaatst om lange stukken te vermijden zonder seinen. Indien dit ingeschakeld is, dan worden seinen om de N tegels geplaatst, waardoor de uitlijning van de seinen op parallelle sporen makkelijker is STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :Plaats automatisch armseinen voor: {STRING} STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :Stel het jaar waarin elektrische seinen zal worden gebruikt voor sporen. Voor dit jaar zal niet-elektrische seinen worden gebruikt (die exact dezelfde functie hebben, maar verschillend uiterlijk) @@ -1577,8 +1577,8 @@ STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :Toestaan STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :Toestaan, eigen wegpatroon STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Plaatsing van bomen in het spel: {STRING} -STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Beheer willekeurig verschijnen van bomen tijdens het spel. Dit kan gevolgen hebben voor industrietakken die afhankelijk zijn van groei van bomen, bijvoorbeeld houtzagerijen -STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE :Geen {RED}(houtzagerij werkt niet) +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Beheert het willekeurig verschijnen van bomen tijdens het spel. Dit kan gevolgen hebben voor industrietakken die afhankelijk zijn van groei van bomen, bijvoorbeeld houtzagerijen. +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE :Geen {RED}(houtzagerijen werken niet) STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_RAINFOREST :Alleen in regenwouden STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :Overal @@ -1626,7 +1626,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :handmatig STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asymmetrisch STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC :symmetrisch STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distributiemodus voor passagiers: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"symmetrisch" betekent dat ongeveer hetzelfde aantal passagiers gaan van een station A naar station B als een van B naar A. "asymmetrische" betekent dat willekeurig aantal passagiers kunnen gaan in beide richtingen. "handmatig" betekent dat er geen automatische distributie zal plaatsvinden voor passagiers. +STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :'Symmetrisch' betekent dat ongeveer hetzelfde aantal passagiers van station A naar station B gaat als van B naar A. 'Asymmetrisch' betekent dat willekeurige aantallen passagiers reizen in beide richtingen. 'Handmatig' betekent dat er geen automatische distributie plaatsvindt voor passagiers. STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Distributiemodus voor post: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"symmetrisch" betekent dat ongeveer dezelfde hoeveelheid post zal worden verzonden van een station A naar een station B als B naar A. "asymmetrisch" betekent dat willekeurige hoeveelheden post in beide richtingen worden verzonden. "handmatig" betekent dat er geen automatische distributie zal plaatsvinden voor post. STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Distributiemodus voor de GEPANTSERDE ladingsklasse: {STRING} @@ -1637,7 +1637,7 @@ STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Verdeelnauwkeur STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :Hoe hoger de instelling, des te meer CPU-tijd de berekening van de linkgrafiek zal gebruiken. Als het te lang duurt, kan dan dat lag opleveren. Als je dit echter op een lage waarde instelt, zal de verdeling onnauwkeurig zijn, en kan het zijn dat vracht niet wordt gestuurd naar de plekken waar het naartoe moet gaan. STR_CONFIG_SETTING_DEMAND_DISTANCE :Effect van afstand op de vraag: {STRING} STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Als je dit op een waarde hoger dan 0 zet, dan zal de afstand tussen het station van herkomst A met enige vracht en een mogelijke bestemming B effect hebben op de hoeveelheid lading verzonden van A naar B. Hoe verder weg B is van A, des te minder lading wordt verzonden. Hoe hoger je deze instelt, hoe minder lading wordt verzonden naar verder geleden stations en meer lading zal worden verzonden naar dichtbij gelegen stations. -STR_CONFIG_SETTING_DEMAND_SIZE :Hoeveelheid van de kerende vracht voor symmetrische modus: {STRING} +STR_CONFIG_SETTING_DEMAND_SIZE :Hoeveelheid terugkerende vracht voor symmetrische modus: {STRING} STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Door dit op minder dan 100% te zetten lijkt de symmetrische verdeling meer op de asymmetrische verdeling. Minder vracht zal geforceerd worden om zich terug te sturen als er een bepaalde hoeveelheid wordt verzonden naar een station. Op 0% van de symmetrische verdeling gedraagt deze zicht als de asymmetrische verdeling. STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Verzadiging van korte routes voor het gebruik van ruime routes: {STRING} STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Vaak zijn er meerdere routes mogelijk tussen twee stations. Cargodist zal de kortste route eerst verzadigen, gebruik dan de tweede kortste route tot die verzadigd is en ga zo maar door. Verzadiging wordt bepaald door een schatting van de capaciteit en het geplande gebruik. Zodra alle routes verzadigd zijn, maar er is meer vraag, zal alle wegen overbelast worden, die met hoge capaciteit eerst. In veel gevallen zat het algoritme niet nauwkeurig de capaciteit inschatten, helaas. Met deze instelling kunt u aangeven tot welk percentage een korter pad moet worden verzadigd eer de eerst volgende langere route wordt gekozen. Zet deze op minder dan 100% om overvolle stations in geval van overschat capaciteit te voorkomen. @@ -1679,20 +1679,20 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrisch (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalisatie -STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Graphics +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafische elementen STR_CONFIG_SETTING_SOUND :{ORANGE}Geluid -STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interface +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Gebruikersscherm STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Algemeen STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Kijkvensters STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Constructie -STR_CONFIG_SETTING_ADVISORS :{ORANGE}Nieuws / Adviseurs +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Nieuws/adviseurs STR_CONFIG_SETTING_COMPANY :{ORANGE}Bedrijf STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Boekhouding STR_CONFIG_SETTING_VEHICLES :{ORANGE}Voertuigen STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Physics STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Routebepaling STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Beperkingen -STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Rampen / Ongelukken +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Rampen/ongelukken STR_CONFIG_SETTING_GENWORLD :{ORANGE}Wereldgeneratie STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Omgeving STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autoriteiten @@ -1721,12 +1721,12 @@ STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Verander STR_CONFIG_ERROR :{WHITE}Fout in het configuratiebestand... STR_CONFIG_ERROR_ARRAY :{WHITE}... fout in array '{STRING}' STR_CONFIG_ERROR_INVALID_VALUE :{WHITE}... ongeldige waarde '{STRING}' voor '{STRING}' -STR_CONFIG_ERROR_TRAILING_CHARACTERS :{WHITE}... karakters gevonden aan het einde van instellingen '{STRING}' -STR_CONFIG_ERROR_DUPLICATE_GRFID :{WHITE}... negeer NewGRF '{STRING}': dubbel GRF ID met '{STRING}' +STR_CONFIG_ERROR_TRAILING_CHARACTERS :{WHITE}... tekens gevonden aan het einde van instellingen '{STRING}' +STR_CONFIG_ERROR_DUPLICATE_GRFID :{WHITE}... NewGRF '{STRING}' wordt genegeerd: dubbele GRF-id met '{STRING}' STR_CONFIG_ERROR_INVALID_GRF :{WHITE}... negeer ongeldige NewGRF '{STRING}': {STRING} STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :niet gevonden STR_CONFIG_ERROR_INVALID_GRF_UNSAFE :onveilig voor statisch gebruik -STR_CONFIG_ERROR_INVALID_GRF_SYSTEM :systeem NewGRF +STR_CONFIG_ERROR_INVALID_GRF_SYSTEM :systeem-NewGRF STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :niet compatibel met deze versie van OpenTTD STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :onbekend STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... compressieniveau '{STRING}' is niet geldig @@ -1735,7 +1735,7 @@ STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... nege STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... negeert standaard geluidsset '{STRING}': niet gevonden STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... negeert standaard muziekset '{STRING}': niet gevonden STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Geen geheugen meer -STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Toewijzen van {BYTES} van spritecache mislukt. De spritecache werd teruggebracht tot {BYTES}. Dit zal de prestaties van OpenTTD verlagen. Om het geheugen te verminderen kunt u proberen om 32bpp graphics en / of zoom-in levels uit te schakelen +STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Toewijzen van {BYTES} van spritecache mislukt. De spritecache werd teruggebracht tot {BYTES}. Dit verlaagt de prestaties van OpenTTD. Om het benodigde geheugen te verminderen, kunt u proberen om 32bpp-beeldelementen en/of inzoomniveaus uit te schakelen # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -1802,10 +1802,10 @@ STR_ABANDON_GAME_QUERY :{YELLOW}Weet je STR_ABANDON_SCENARIO_QUERY :{YELLOW}Weet je zeker dat je dit scenario wilt sluiten? # Cheat window -STR_CHEATS :{WHITE}Cheats -STR_CHEATS_TOOLTIP :{BLACK}Keuzevakjes geven aan of je deze cheat eerder hebt gebruikt +STR_CHEATS :{WHITE}Valsspelen +STR_CHEATS_TOOLTIP :{BLACK}Keuzevakjes geven aan of je deze manier van valsspelen eerder hebt gebruikt STR_CHEATS_WARNING :{BLACK}Waarschuwing! Je staat op het punt je medespelers te verraden. Onthoud dat zo'n schande eeuwig wordt onthouden -STR_CHEAT_MONEY :{LTBLUE}Verhoog geld met {CURRENCY_LONG} +STR_CHEAT_MONEY :{LTBLUE}Kapitaal vergroten met {CURRENCY_LONG} STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Spelen als bedrijf: {ORANGE}{COMMA} STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Magische bulldozer (industrieën en andere onverplaatsbare objecten verwijderen): {ORANGE}{STRING} STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Tunnels mogen elkaar kruisen: {ORANGE}{STRING} @@ -1816,9 +1816,9 @@ STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :Gematigd landsc STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :Subarctisch landschap STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Subtropisch landschap STR_CHEAT_SWITCH_CLIMATE_TOYLAND_LANDSCAPE :Speelgoedlandschap -STR_CHEAT_CHANGE_DATE :{LTBLUE}Verander datum: {ORANGE}{DATE_SHORT} -STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Wijzig huidig jaar -STR_CHEAT_SETUP_PROD :{LTBLUE}Sta aanpassen productiewaarden toe: {ORANGE}{STRING} +STR_CHEAT_CHANGE_DATE :{LTBLUE}Datum wijzigen: {ORANGE}{DATE_SHORT} +STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Huidig jaar wijzigen +STR_CHEAT_SETUP_PROD :{LTBLUE}Productiewaarden aanpassen toestaan: {ORANGE}{STRING} # Livery window STR_LIVERY_CAPTION :{WHITE}{COMPANY} - kleurenschema @@ -2103,18 +2103,18 @@ STR_NETWORK_GIVE_MONEY_CAPTION :{WHITE}Voer de STR_NETWORK_TOOLBAR_LIST_SPECTATOR :{BLACK}Toeschouwer # Network set password -STR_COMPANY_PASSWORD_CANCEL :{BLACK}Sla het ingegeven wachtwoord niet op -STR_COMPANY_PASSWORD_OK :{BLACK}Geef het bedrijf het nieuwe wachtwoord +STR_COMPANY_PASSWORD_CANCEL :{BLACK}Ingevoerd wachtwoord niet opslaan +STR_COMPANY_PASSWORD_OK :{BLACK}Bedrijf het nieuwe wachtwoord geven STR_COMPANY_PASSWORD_CAPTION :{WHITE}Bedrijfswachtwoord STR_COMPANY_PASSWORD_MAKE_DEFAULT :{BLACK}Standaard bedrijfswachtwoord -STR_COMPANY_PASSWORD_MAKE_DEFAULT_TOOLTIP :{BLACK}Gebruik dit bedrijfswachtwoord als standaard voor nieuwe bedrijven +STR_COMPANY_PASSWORD_MAKE_DEFAULT_TOOLTIP :{BLACK}Dit bedrijfswachtwoord gebruiken als standaard voor nieuwe bedrijven # Network company info join/password -STR_COMPANY_VIEW_JOIN :{BLACK}Doe mee +STR_COMPANY_VIEW_JOIN :{BLACK}Meedoen STR_COMPANY_VIEW_JOIN_TOOLTIP :{BLACK}Doe mee en speel als dit bedrijf STR_COMPANY_VIEW_PASSWORD :{BLACK}Wachtwoord STR_COMPANY_VIEW_PASSWORD_TOOLTIP :{BLACK}Bescherm het bedrijf met een wachtwoord zodat niet-geautoriseerde personen niet mee kunnen doen -STR_COMPANY_VIEW_SET_PASSWORD :{BLACK}Geef bedrijfswachtwoord op +STR_COMPANY_VIEW_SET_PASSWORD :{BLACK}Bedrijfswachtwoord instellen # Network chat STR_NETWORK_CHAT_SEND :{BLACK}Verstuur @@ -3011,7 +3011,7 @@ STR_NEWGRF_BROKEN :{WHITE}Gedrag v STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Wagon '{1:ENGINE}' gewijzigde status van aandrijfeenheid wanneer niet in een depot STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Het veranderde de lengte van voertuig '{1:ENGINE}' wanneer het niet in een depot is STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Het wijzigde voertuigcapaciteit voor '{1:ENGINE}' wanneer niet in een depot of ombouwen -STR_BROKEN_VEHICLE_LENGTH :{WHITE}Trein '{VEHICLE}' behorend bij '{COMPANY}' heeft een ongeldige lengte. Het is waarschijnlijk veroorzaakt door problemen met NewGRF's. Het spel kan desynchroniseren of vastlopen +STR_BROKEN_VEHICLE_LENGTH :{WHITE}Trein '{VEHICLE}' behorend bij '{COMPANY}' heeft een ongeldige lengte. Dit wordt waarschijnlijk veroorzaakt door problemen met NewGRF's. Het spel kan desynchroniseren of vastlopen STR_NEWGRF_BUGGY :{WHITE}NewGRF '{0:STRING}' geeft onjuiste informatie STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Vracht- of ombouwinformatie voor '{1:ENGINE}' wijkt af van aanschaflijst na het bouwen. Dit kan resulteren in problemen bij ombouwen door automatisch vernieuwen/vervangen @@ -3312,14 +3312,14 @@ STR_COMPANY_VIEW_VIEW_HQ_TOOLTIP :{BLACK}Hoofdkan STR_COMPANY_VIEW_RELOCATE_HQ :{BLACK}Hoofdkantoor verplaatsen STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}Hoofdkantoor verplaatsen voor 1% van de bedrijfswaarde. Shift+klik geeft de verwachte kosten zonder hoofdkantoor te verplaatsen. STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON :{BLACK}Details -STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}Bekijken gedetailleerde aantallen infrastructuur +STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}Gedetailleerde aantallen infrastructuur bekijken STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Nieuw gezicht STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}Kies nieuw gezicht voor directeur STR_COMPANY_VIEW_COLOUR_SCHEME_BUTTON :{BLACK}Kleurenschema -STR_COMPANY_VIEW_COLOUR_SCHEME_TOOLTIP :{BLACK}Verander het uiterlijk van de bedrijfsvoertuigen +STR_COMPANY_VIEW_COLOUR_SCHEME_TOOLTIP :{BLACK}Verandert het uiterlijk van de bedrijfsvoertuigen STR_COMPANY_VIEW_COMPANY_NAME_BUTTON :{BLACK}Bedrijfsnaam -STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Verander de bedrijfsnaam +STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Bedrijfsnaam wijzigen STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Naam directeur STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Verander de naam van de directeur @@ -3371,8 +3371,8 @@ STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Vereist: STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} wachtend{STRING} -STR_CONFIG_GAME_PRODUCTION :{WHITE}Verander productie (veelvoud van 8, maximaal 2040) -STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}Verander productieniveau (percentage, maximaal 800%) +STR_CONFIG_GAME_PRODUCTION :{WHITE}Productie wijzigen (veelvoud van 8, maximaal 2040) +STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}Productieniveau wijzigen (percentage, maximaal 800%) # Vehicle lists STR_VEHICLE_LIST_TRAIN_CAPTION :{WHITE}{STRING} - {COMMA} Trein{P "" en} @@ -3689,10 +3689,10 @@ STR_VEHICLE_VIEW_ROAD_VEHICLE_SHOW_DETAILS_TOOLTIP :{BLACK}Details STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}Details van schip weergeven STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}Details van vliegtuig weergeven -STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}Huidige actie van trein - klik hier om de trein te starten/stoppen. Ctrl+klik om naar bestemming te scrollen -STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}Huidige actie van wegvoertuig - klik hier om voertuig te starten/stoppen. Ctrl+klik om naar bestemming te scrollen -STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}Huidige actie van schip - klik hier om het te starten/stoppen. Ctrl+klik om naar bestemming te scrollen -STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Huidige actie van vliegtuig - klik hier om het vliegtuig te stoppen/starten. Ctrl+klik om naar bestemming te scrollen +STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}Huidige actie van trein - klik hier om de trein te starten-stoppen. Ctrl+klik om naar bestemming te verplaatsen. +STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}Huidige actie van wegvoertuig - klik hier om voertuig te starten-stoppen. Ctrl+klik om naar bestemming te verplaatsen. +STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}Huidige actie van schip - klik hier om te starten-stoppen. Ctrl+klik om naar bestemming te verplaatsen. +STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Huidige actie van vliegtuig - klik hier om het vliegtuig te stoppen-starten. Ctrl+klik om naar bestemming te verplaatsen. # Messages in the start stop button in the vehicle view STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}In- en uitladen @@ -4060,7 +4060,7 @@ STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Eén van STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}AI-/spelscript-probleemvenster is alleen beschikbaar voor de server # AI configuration window -STR_AI_CONFIG_CAPTION :{WHITE}AI/Spelscriptconfiguratie +STR_AI_CONFIG_CAPTION :{WHITE}AI-/spelscriptconfiguratie STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}Het spelscript dat in het volgende spel geladen wordt STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}De AI's die in het volgende spel geladen worden STR_AI_CONFIG_HUMAN_PLAYER :Menselijke speler @@ -4113,7 +4113,7 @@ STR_TEXTFILE_README_CAPTION :{WHITE}{STRING} STR_TEXTFILE_CHANGELOG_CAPTION :{WHITE}{STRING} wijzigingen van {STRING} STR_TEXTFILE_LICENCE_CAPTION :{WHITE}{STRING} licentie van {STRING} STR_TEXTFILE_WRAP_TEXT :{WHITE}Tekst afbreken -STR_TEXTFILE_WRAP_TEXT_TOOLTIP :{BLACK}Maak de tekst passen in het scherm zonder te hoeven scrollen +STR_TEXTFILE_WRAP_TEXT_TOOLTIP :{BLACK}Tekst aanpassen aan venster zodat je niet hoeft te bladeren STR_TEXTFILE_VIEW_README :{BLACK}Bekijk leesme STR_TEXTFILE_VIEW_CHANGELOG :{BLACK}Wijzigingen STR_TEXTFILE_VIEW_LICENCE :{BLACK}Licentie @@ -4151,7 +4151,7 @@ STR_ERROR_GAME_SAVE_FAILED :{WHITE}Opslaan STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}Kan bestand niet verwijderen STR_ERROR_GAME_LOAD_FAILED :{WHITE}Laden spel mislukt{}{STRING} STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Interne fout: {STRING} -STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Kapotte savegame - {STRING} +STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Opgeslagen spel beschadigd - {STRING} STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :Opgeslagen spel hoort bij een nieuwere versie STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :Bestand is niet leesbaar STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :Bestand is niet schrijfbaar @@ -4503,7 +4503,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Nog geen STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE} Start een nieuw spel na {DATE_SHORT} of gebruik een NewGRF dat in vroege voertuigen voorziet # Specific vehicle errors -STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Kan trein niet het signaal laten passeren bij gevaar... +STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Kan trein niet het sein laten passeren bij gevaar... STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Kan de richting van de trein niet omdraaien... STR_ERROR_TRAIN_START_NO_POWER :Trein heeft geen vermogen diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 63b5461a53..b771355ff8 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -1775,7 +1775,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Change c STR_CHEAT_SETUP_PROD :{LTBLUE}Enable modifying production values: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}New Colour Scheme STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Show general colour schemes STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Show train colour schemes diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 8e806f0e02..4afd9de274 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -1813,7 +1813,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Change c STR_CHEAT_SETUP_PROD :{LTBLUE}Enable modifying production values: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}New Color Scheme STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Show general color schemes STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Show train color schemes diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index a6346cb35d..c80cca6167 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -1458,7 +1458,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Ŝanĝu STR_CHEAT_SETUP_PROD :{LTBLUE}Ebligu ŝanĝi produktvalorojn: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nova Kolorskemo STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Montru ĝeneralajn kolorskemojn STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Montru trajnajn kolorskemojn diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index e42bfe3bfa..e1fde3e3e8 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -1621,7 +1621,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Broyt n STR_CHEAT_SETUP_PROD :{LTBLUE}Gilda broytingar av framleiðslu virðum: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nýggja lit samanseting STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Vís vanligu lit samansetingarnar STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Vís tok lit samansetingarnar diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 42e7b17554..942f935f5e 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -2005,7 +2005,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Atharrai STR_CHEAT_SETUP_PROD :{LTBLUE}Cuir an comas atharrachadh air luachan saothrachaidh: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Sgeama nan dath ùr STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Seall sgeamannan nan dath coitcheann STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Seall sgeamannan nan dath airson trèanaichean diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 604a82102b..e6e7af5c9e 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -1804,7 +1804,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Cambiar STR_CHEAT_SETUP_PROD :{LTBLUE}Permitir a modificación dos valores de producción: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Novo esquema de cor STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostra-los esquemas de cor xerais STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Mostra-los esquemas de cor dos trens diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 76ff7a1755..ca2730163b 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -250,6 +250,8 @@ STR_COLOUR_ORANGE :Πορτοκα STR_COLOUR_BROWN :Καφέ STR_COLOUR_GREY :Γκρι STR_COLOUR_WHITE :Λευκό +STR_COLOUR_RANDOM :Τυχαία +STR_COLOUR_DEFAULT :Προεπιλογή # Units used in OpenTTD STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}μίλια/ώρα @@ -1033,6 +1035,8 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :Νοτιοαφ STR_GAME_OPTIONS_CURRENCY_CUSTOM :Άλλο... STR_GAME_OPTIONS_CURRENCY_GEL :Γεοργιανό Λάρι (GEL) STR_GAME_OPTIONS_CURRENCY_IRR :Ιρανικό Ριάλ (IRR) +STR_GAME_OPTIONS_CURRENCY_RUB :Νεο Ρώσικο Ρούβλι (RUB) +STR_GAME_OPTIONS_CURRENCY_MXN :Πεσος Μεξικου (MXN) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Οχήματα δρόμου @@ -1920,7 +1924,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Αλλα STR_CHEAT_SETUP_PROD :{LTBLUE}Ενεργοποίηση δυνατότητας αλλαγής τιμών παραγωγής: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Νέος Χρωματισμός +STR_LIVERY_CAPTION :{WHITE}{COMPANY} - Νέος Χρωματισμός STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Εμφάνιση γενικών χρωματικών μοτίβων STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Εμφάνιση χρωματικών μοτίβων τρένων @@ -2806,13 +2810,18 @@ STR_ABOUT_VERSION :{BLACK}Έκδο STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 Η ομάδα του OpenTTD # Framerate display window +STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x) STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Αριθμός στιγμών παιχνιδιού που προσομοιώνεται ανά δευτερόλεπτο. +STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Αριθμος των παραγμενων video frames ανα δευτερολεπτο STR_FRAMERATE_SPEED_FACTOR :{WHITE}Παράγοντας ταχύτητας τρέχοντος παιχνιδιού: {DECIMAL}x STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Πόσο γρήγορα εκτελείται το παιχνίδι αυτήν τη στιγμή, σε σύγκριση με την αναμενόμενη ταχύτητα στον κανονικό ρυθμό εξομοίωσης. STR_FRAMERATE_CURRENT :{WHITE}Τρέχον STR_FRAMERATE_AVERAGE :{WHITE}Μέσο STR_FRAMERATE_DATA_POINTS :{WHITE}Τα δεδομένα βασίζονται σε μετρήσεις {COMMA} STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL}{WHITE} ms +STR_FRAMERATE_MS_BAD :{RED}{DECIMAL} ms +STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} frames/δευτ. +STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} frames/δευτ. ############ Leave those lines in this order!! STR_FRAMERATE_GL_ECONOMY :{WHITE} Διαχείριση φορτίου: STR_FRAMERATE_GL_TRAINS :Στιγμές τρένων: @@ -2858,6 +2867,8 @@ STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Λεπτ STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Δεν υπάρχουν πληροφορίες. STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING} +STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Αντικατάσταση Αρχείου +STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}Είστε σίγουροι οτι θέλετε να αντικαταστήσετε το υπάρχων αρχείο; STR_SAVELOAD_OSKTITLE :{BLACK}Δώστε το όνομα του παιχνιδιού προς αποθήκευση @@ -2975,7 +2986,9 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Έκδο STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Ελάχ. συμβατή έκδοση: {SILVER}{NUM} STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Παλέτα: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Προεπιλογή (D) STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Παράμετροι: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PARAMETER_NONE :Κανένα STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Δεν υπάρχουν διαθέσιμες πληροφορίες STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Δεν βρέθηκε το ταυτοποιημένο αρχείο @@ -3433,6 +3446,7 @@ STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Κεντ STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Επίπεδο παραγωγής: {YELLOW}{COMMA}% STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Η βιομηχανία έχει ανακοινώσει άμεσο κλείσιμο! +STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION :, {STRING}{STRING} STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Απαιτεί: STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING} diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 37630feeb0..bb4e56d489 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -1826,7 +1826,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}שנה STR_CHEAT_SETUP_PROD :{LTBLUE}אפשר שינוי ערכי התפוקה: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}הגדרות צבע חדשות STR_LIVERY_GENERAL_TOOLTIP :{BLACK}הצג הגדרות צבע כלליות STR_LIVERY_TRAIN_TOOLTIP :{BLACK}הצג הגדרות צבע לרכבות diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 1b4de73eb1..2896a0b34e 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -1867,7 +1867,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Aktuáli STR_CHEAT_SETUP_PROD :{LTBLUE}A nyersanyagüzemek termelése változtatható: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Új színséma STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Általános színsémák mutatása STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Vonat színsémák mutatása diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 7cb78a8398..2c9b2282ae 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -1663,7 +1663,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Breyta u STR_CHEAT_SETUP_PROD :{LTBLUE}Leyfa breytingar á verðmæti framleiðslu: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nýtt Litaskema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Grunnlitur fyrirtækis STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Litaskema lesta diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 322b5840d9..0f7fe21256 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -1810,7 +1810,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Ubah tah STR_CHEAT_SETUP_PROD :{LTBLUE}Aktifkan modifikasi nilai produksi: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Warna tema baru STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Tampilkan skema warna umum STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Tampilkan skema warna kereta diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 450c8e9689..55ab4ec654 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -1800,7 +1800,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Athraigh STR_CHEAT_SETUP_PROD :{LTBLUE}Cumasaigh luachanna táirgeachta a athrú: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Scéim Dathanna Nua STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Taispeáin scéimeanna dathanna ginearálta STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Taispeáin scéimeanna dathanna na dtraenacha diff --git a/src/lang/italian.txt b/src/lang/italian.txt index bd265fe7d3..81486a91bc 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1844,7 +1844,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Cambia l STR_CHEAT_SETUP_PROD :{LTBLUE}Permetti la modifica dei valori di produzione: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nuovo schema colori STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostra gli schemi di colorazione generali STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Mostra gli schemi di colorazione dei treni diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index d89ade38ae..9aed8efccf 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -1800,7 +1800,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}現在 STR_CHEAT_SETUP_PROD :{LTBLUE}生産量変更: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}コーポレートカラー STR_LIVERY_GENERAL_TOOLTIP :{BLACK}通常のコーポレートカラー(車両塗装色)を表示します STR_LIVERY_TRAIN_TOOLTIP :{BLACK}列車の塗装色を表示します diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 5de041dcf7..cc670da54a 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -2001,7 +2001,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Mutare a STR_CHEAT_SETUP_PROD :{LTBLUE}Sinere mutare productiones industriarum: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Schema Coloris Novum STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Monstrare schemata coloris generalia STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Monstrare schemata coloris traminum diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 34d12f9e6a..e68a3837d9 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -1747,7 +1747,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Mainīt STR_CHEAT_SETUP_PROD :{LTBLUE}Ieslēgt ražojumu vērtības maiņu: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Jauna identitātes krāsu shēma STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Rādīt vispārējo identitates krāsu shēmas STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Rādīt vilcienu identitātes krāsu shēmas diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 0942333483..82f92f9709 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -2019,7 +2019,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Pakeisti STR_CHEAT_SETUP_PROD :{LTBLUE}Leisti keisti produkcijos vertes: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Naujos spalvos STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Rodyti pagrinidines spalvų parinktis STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Rodyti traukiniš spalvas diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 27e5f1594b..ee811c0efe 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -1803,7 +1803,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Wiessel STR_CHEAT_SETUP_PROD :{LTBLUE}Erlaabt d'ännere vun de Produktiounswäerter: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Neie Faarfschema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Weis generell Faarfschemen STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Weis Zuch Faarfschemen diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 9bdbe9f443..0b95b6a190 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -1561,7 +1561,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Tukar ta STR_CHEAT_SETUP_PROD :{LTBLUE}Bolehkan pengubahsuaian nilai-nilai pengeluaran: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Skim Warna Baru STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Tunjukkan skim warna am STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Tunjukkan skim warna keretapi diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 203166898a..e1cc630c0c 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -1806,7 +1806,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Endre n STR_CHEAT_SETUP_PROD :{LTBLUE}Tillat endring av produksjonsmengder: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Ny firmafarge STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Vis generelle fargetemaer STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Vis togfargetemaer diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index 28f6fb3e37..c951d2e8f3 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -1723,7 +1723,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Byt nove STR_CHEAT_SETUP_PROD :{LTBLUE}Tillet endring av produksjonsmengder: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Ny firmafarge STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Syne generelle fargetema STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Syne togfargetema diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 081e216b3b..de316db554 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -2007,7 +2007,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Promena STR_CHEAT_SETUP_PROD :{LTBLUE}Dozvoliti promenu količine proizvodnje: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nova šema boja STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Prikaži generalnu mustru boja STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Prikaži mustre boja vozova diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index ff5c5ec4ec..f4fbf33813 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -1810,7 +1810,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}改变 STR_CHEAT_SETUP_PROD :{LTBLUE}开启可调整产量模式:{ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}新色彩方案 STR_LIVERY_GENERAL_TOOLTIP :{BLACK}显示总体配色方案 STR_LIVERY_TRAIN_TOOLTIP :{BLACK}显示列车配色方案 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index f888fe61c0..c87cbaa038 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -1868,7 +1868,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Zmeniť STR_CHEAT_SETUP_PROD :{LTBLUE}Povoliť zmenu objemu výroby: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nová farebná schéma STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Zobraziť všeobecné farebné schémy STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Zobraziť farebné schémy pre vlaky diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 2e6554ce58..aa79c4a8d9 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -1954,7 +1954,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Spremeni STR_CHEAT_SETUP_PROD :{LTBLUE}Omogoči spreminjanje proizvodnih vrednosti: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nova barvna shema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Prikaz glavnih barvnih shem STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Prikaz barvnih shem vlakov diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index 24349a53e5..9ed9ccd8a1 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -1568,7 +1568,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}நட STR_CHEAT_SETUP_PROD :{LTBLUE}தயாரிப்பு மதிப்புகளை மாற்ற முடியும்: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}புதிய நிற கோட்பாடு STR_LIVERY_GENERAL_TOOLTIP :{BLACK}பொதுவான நிற கோட்பாடுகளைக் காட்டவும் STR_LIVERY_TRAIN_TOOLTIP :{BLACK}இரயில் நிற கோட்பாடுகளைக் காட்டவும் diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 88a78054d6..5f3742e85f 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -1749,7 +1749,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}เป STR_CHEAT_SETUP_PROD :{LTBLUE}เปิดใช้งานการแก้ไขปริมาณผลผลิต: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}สร้างแบบสีใหม่ STR_LIVERY_GENERAL_TOOLTIP :{BLACK}แสดงแบบสีทั่วไป STR_LIVERY_TRAIN_TOOLTIP :{BLACK}แสดงแบบสีรถไฟ diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 135fed42b0..2046b5d1f2 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -1800,7 +1800,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}變更 STR_CHEAT_SETUP_PROD :{LTBLUE}允許修改產量:{ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}新配色 STR_LIVERY_GENERAL_TOOLTIP :{BLACK}顯示通用配色 STR_LIVERY_TRAIN_TOOLTIP :{BLACK}顯示列車配色 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index f143a3deb9..1aef2bc8ff 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -1804,7 +1804,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Yılı d STR_CHEAT_SETUP_PROD :{LTBLUE}Üretim değerlerini değiştir: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Yeni Renk STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Genel renk şemalarını göster STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Tren renk düzenlerini göster diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index bb2e6afcb6..e7a4856d0f 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -1928,7 +1928,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Змін STR_CHEAT_SETUP_PROD :{LTBLUE}Дозволити зміну рівня виробництва: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Нова кольорова схема STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Показати загальне фарбування STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Показати фарбування поїздів diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index 5649ca310f..aea0f9a5c7 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -1732,7 +1732,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Wizigje STR_CHEAT_SETUP_PROD :{LTBLUE}Stea oanpassen fan produksje ta: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nei Kleurenskema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Lit gewoane kleurskemas sjen STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Lit kleurskema sjen fan treinen diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index eb14ae8035..2e2b23764d 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -1515,7 +1515,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}تغیی STR_CHEAT_SETUP_PROD :{LTBLUE}قابلیت تغییر سطح تولید صنایع: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}طرح رنگ جدید STR_LIVERY_GENERAL_TOOLTIP :{BLACK}نمایش طرح رنگهای اصلی STR_LIVERY_TRAIN_TOOLTIP :{BLACK}نمایش طرح رنگهای قطار diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index 0cc3ba7b68..752e471ef5 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -1412,7 +1412,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}موجو STR_CHEAT_SETUP_PROD :{LTBLUE}پیداوار میں تبدیلی کو فعال کریں: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}نئے رنگوں کا انتخاب STR_LIVERY_GENERAL_TOOLTIP :{BLACK}رنگوں کا عام انتخاب دکھائیں STR_LIVERY_TRAIN_TOOLTIP :{BLACK}ریل گاڑیوں کے رنگوں کا انتخاب دکھائیں @@ -2292,9 +2291,6 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN # Company view -STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA}پٹڑی { "کا" "کے" P} { "ٹکڑا" "ٹکڑے" P} -STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} سڑک { "کا" "کے" P} { "ٹکڑا" "ٹکڑے" P} -STR_COMPANY_VIEW_INFRASTRUCTURE_WATER :{WHITE}{COMMA} پانی { "کا" "کے" P} { "ٹکڑا" "ٹکڑے" P} STR_COMPANY_VIEW_INFRASTRUCTURE_STATION :{WHITE}{COMMA} اسٹیشن کی ٹائلیں STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT :{COMMA}{WHITE} ہوائی اڈے STR_COMPANY_VIEW_INFRASTRUCTURE_NONE :{WHITE}کوئی نہیں diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 2dde004aab..b74c0e9a8e 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -1816,7 +1816,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Thay đ STR_CHEAT_SETUP_PROD :{LTBLUE}Cho phép khả năng sửa giá trị sản xuất: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Cách Phối Màu Mới STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Hiển thị phối màu chung STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Hiển thị phối màu tàu hỏa diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 2ed53b3152..92dd920509 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -1803,7 +1803,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Newid y STR_CHEAT_SETUP_PROD :{LTBLUE}Galluogi newid graddfeydd cynhyrchu: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Cynllun Lliw Newydd STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Dangos cynllun lliw cyffredinol STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Dangos cynllun lliw trenau From 5b74118ae77cd7c931fc833b174522b77cf00737 Mon Sep 17 00:00:00 2001 From: Charles Pigott Date: Sun, 3 Feb 2019 16:31:27 +0000 Subject: [PATCH 15/38] Update: Add changelog for 1.9.0-beta1 and prepare for release --- changelog.txt | 73 +++++++++++++++++++++++++++++++++++++++++++++ known-bugs.txt | 4 +-- os/debian/changelog | 6 ++++ 3 files changed, 81 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 5e1540a1e0..2f981909eb 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,76 @@ +1.9.0-beta1 (2018-02-09) +------------------------------------------------------------------------ +Note: OpenTTD was migrated to GitHub for 1.9, so SVN revision and FlySpray numbers have been replaced with Pull Requests and Issue numbers +- Feature: Group liveries, and livery window usability enhancements (#7108) +- Feature: Overhaul of music system, support MPSMIDI music files (TTD DOS/TTO) (#6839) +- Feature: [Win32] Rewritten DMusic and WinMM music drivers +- Feature: [Win32] New XAudio2 sound driver +- Feature: [Linux] New Fluidsynth music driver +- Feature: Framerate display window (#6822) +- Feature: [NewGRF] Ability for industries & houses to produce and/or accept up to 16 different cargoes +- Feature #6610: Allow towns to build houses on road turns (#6758) +- Feature: Replace independent map scrolling GUI settings with single option, and add choice to not lock cursor position when scrolling (#6756) +- Feature #6459: API for querying network clients from GS (#6736) +- Feature: New Russian Ruble & Mexican Peso as currencies (#6678, #7035) +- Feature #4186: Append '(City)' after city names in the town directory +- Feature #986: Automatic save when losing connection to a network game +- Add: [NewGRF] Flag to hide rail types from construction (#7118) +- Add: [NewGRF] Airport animation trigger for plane landing (#6334) +- Add #4115: Default starting company colour setting (#6998) +- Add: Mixer feature for streaming sampled music +- Add #6460: [AI] start_date parameter for Random AIs on new game +- Add: BACKSPACE can be mapped as a hotkey +- Add: 32bpp SSE2 blitter palette animator (#6795) +- Change: Make ships turn slowly when changing direction and stop when going up or down a lock (#7065, #7150) +- Change: Improve ship pathfinder performance +- Change: Decouple GUI timing from game ticks (#6780) +- Change: Desert tiles are now half-desert if a neighboured tile is non-desert or sea/coast (#4754) +- Change: Gradually slow down aircraft speed on breakdown (#6932) +- Change: [NewGRF] Increase rail type & cargo type limits to 64 +- Change: [NewGRF] Increase size of persistent storage to 256 +- Change: [NewGRF] Use last OpenTTD SVN revision in NewGRF version number (#6843) +- Change: Clone tool in depot window now behaves like clone button in vehicle window (#6754) +- Change #6397: Keep town growth rate in sync with house count +- Change: Scale default FreeType font size selection by UI zoom level +- Change: [OSX] Reversed pinch to zoom behaviour +- Change: Switch town growth rate and counter to actual game ticks (#6763) +- Change: Non-tag revisions are now named '--g' +- Change: Rewrite several bits of documentation in markdown +- Fix: Reinitialise graph GUI on game restart (#7191) +- Fix: Potential crash during shutdown after unpacking downloaded content (#7185) +- Fix #6584: Text layout in engine preview dialogue +- Fix #6636: Airplanes could be sent to helicopter station depots +- Fix: Deadlock when launched with -n switch (#7103) +- Fix: Various corrections to town names in non-English languages (#7038, 7141) +- Fix: Only consider airport tiles when placing (for non-rectangular airports) (#6613) +- Fix: Spelling fixes on some Latin American town names +- Fix #7001: Pathfinders should see standard road stations as tiles where to reverse +- Fix #6676: Prevent helicopters from stopping in midair during some kinds of landing +- Fix: Remove need to use Ctrl+Click when building stations next to competitors (#6906) +- Fix: [NewGRF] Make VA2 operator 11 (ror) behave well-defined when rotating by 0 bits +- Fix #4109: Add more water checks to the Oil Rig layout +- Fix #6938: Incorrect value for "Cost to Clear" was displayed for Company Headquarters in tile inspector (#6939) +- Fix #6920: Make 9.8m/s^2 a common constant for TE-calculation +- Fix #6892: [Script] CONFIG_RANDOM did not use the full parameter range (#6902) +- Fix #6622: News message when GS constructs a town had empty company name +- Fix: [NewGRF] Action7 variable 0x85 had no bounds checks +- Fix #6875: Depot building cost did not include foundation build cost (#6883) +- Fix: Some pixels in ship autoreplace icon (sprite 106) were transparent +- Fix: Poor contrast in cargo dest flow legend window cargo labels +- Fix #6553: Make viewport button text unambiguous +- Fix: [OSX] Setting mouse-wheel to scroll the map does not disable pinch to zoom +- Fix #6969: Account for BOM when reading script files +- Fix #6898: Ability to use seeds above INT_MAX (#6936) +- Fix #6659: Bus stations could be demolished when not in demolish mode (#6815) +- Fix: One-way roads could be over-built by road stops regardless of road owner +- Fix: Use name of cargo instead of Passengers/Mail in town statistics (#6801) +- Fix: Prevent ships moving into docks after finishing (un)loading (#6791) +- Fix: Tractive effort was slightly too high as per NewGRF spec (#6785) +- Fix #6465: Add {NORMAL_FONT} and {MONO_FONT} control codes to GS strings (#6726) +- Fix: Four group action icons were misplaced and cropped +- Remove: PSP, WinCE support + + 1.8.0 (2018-04-01) ------------------------------------------------------------------------ (None) diff --git a/known-bugs.txt b/known-bugs.txt index 8d4fd2204b..1cd1dc3412 100644 --- a/known-bugs.txt +++ b/known-bugs.txt @@ -1,6 +1,6 @@ OpenTTD's known bugs -Last updated: 2018-11-05 -Release version: 1.9.0 +Last updated: 2019-02-09 +Release version: 1.9.0-beta1 ------------------------------------------------------------------------ diff --git a/os/debian/changelog b/os/debian/changelog index bb57ca39e8..7408b68d99 100644 --- a/os/debian/changelog +++ b/os/debian/changelog @@ -1,3 +1,9 @@ +openttd (1.9.0~beta1-0) unstable; urgency=low + + * New upstream release 1.9.0-beta1 + + -- OpenTTD Sat, 09 Feb 2019 16:00:00 +0000 + openttd (1.8.0-0) unstable; urgency=low * New upstream release 1.8.0 From b7ed49af337f876954f207329e960dc89edf7bb2 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 9 Feb 2019 15:26:28 +0100 Subject: [PATCH 16/38] Fix: [AzurePipelines] in case of a Pull Request, use that number (prefix with 'pr') as branchname Otherwise the branch name is always 'merge', which is not really useful or verbose. --- .../templates/release-prepare-source.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/azure-pipelines/templates/release-prepare-source.yml b/azure-pipelines/templates/release-prepare-source.yml index 22ec126b1f..b20bf0b350 100644 --- a/azure-pipelines/templates/release-prepare-source.yml +++ b/azure-pipelines/templates/release-prepare-source.yml @@ -5,7 +5,18 @@ steps: - script: | set -ex - git checkout -B ${BUILD_SOURCEBRANCHNAME} + + if [ -n "${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}" ]; then + # We are triggered from a GitHub Pull Request + git checkout -B pr${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER} + elif [ "${BUILD_SOURCEBRANCHNAME}" = "merge" ] || [ "${BUILD_SOURCEBRANCHNAME}" = "head" ]; then + # We are manually triggered based on a GitHub Pull Request + PULLREQUESTNUMBER=$(echo ${BUILD_SOURCEBRANCH} | cut -d/ -f3) + git checkout -B pr${PULLREQUESTNUMBER} + else + git checkout -B ${BUILD_SOURCEBRANCHNAME} + fi + ./findversion.sh > .ottdrev ./azure-pipelines/changelog.sh > .changelog TZ='UTC' date +"%Y-%m-%d %H:%M UTC" > .release_date From 8c0bfb46377c6b528c658003086144f973d64a55 Mon Sep 17 00:00:00 2001 From: glx Date: Sat, 9 Feb 2019 15:45:54 +0100 Subject: [PATCH 17/38] Update: [AzurePipelines] NSIS is now part of the Hosted image --- azure-pipelines/templates/windows-dependency-nsis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/azure-pipelines/templates/windows-dependency-nsis.yml b/azure-pipelines/templates/windows-dependency-nsis.yml index a1ee8f81e5..9b54a3ac5f 100644 --- a/azure-pipelines/templates/windows-dependency-nsis.yml +++ b/azure-pipelines/templates/windows-dependency-nsis.yml @@ -4,8 +4,6 @@ parameters: steps: - bash: | set -ex - # NSIS will be part of the Hosted image in the next update. Till then, we install it ourself - choco install nsis -y mkdir nsis-plugin; cd nsis-plugin curl -L https://devs.openttd.org/~truebrain/nsis-plugins/Nsis7z.zip > Nsis7z.zip From 887e524e066cee3dc3307abcbccdf01fa7fb1d25 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 9 Feb 2019 16:49:42 +0100 Subject: [PATCH 18/38] Add: [AzurePipelines] build a stable release if a tag is created --- azure-pipelines-release-stable.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/azure-pipelines-release-stable.yml b/azure-pipelines-release-stable.yml index 3c42c6bee5..ee756ca9ee 100644 --- a/azure-pipelines-release-stable.yml +++ b/azure-pipelines-release-stable.yml @@ -1,4 +1,7 @@ -trigger: none +trigger: + branches: + include: + - refs/tags/* pr: none jobs: From 0151fe998a999b48b67afa5b96d9a4cd72246455 Mon Sep 17 00:00:00 2001 From: Niels Martin Hansen Date: Sat, 9 Feb 2019 19:41:49 +0100 Subject: [PATCH 19/38] Fix 5f8354f3: Non-Windows builds did not get correct git hash Effect is that gamelog and network revisions indicate a git revision of 0, potentially causing issues. --- Makefile.src.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.src.in b/Makefile.src.in index 9cf3557c56..94534fd60f 100644 --- a/Makefile.src.in +++ b/Makefile.src.in @@ -90,7 +90,7 @@ MODIFIED := $(shell echo "$(VERSIONS)" | cut -f 3 -d' ') # Use autodetected revisions VERSION := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ') ISODATE := $(shell echo "$(VERSIONS)" | cut -f 2 -d' ') -GITHASH := $(shell echo "$(VERSIONS)" | cut -f 3 -d' ') +GITHASH := $(shell echo "$(VERSIONS)" | cut -f 4 -d' ') # Make sure we have something in VERSION and ISODATE ifeq ($(VERSION),) From 13b7e8774d813ab84a8e58f3d629e6e9ab3b8765 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 9 Feb 2019 20:13:28 +0100 Subject: [PATCH 20/38] Fix: [AzurePipelines] manifest.sh didn't know when it was a stable release In result, the name of the release was wrong, causing confusing in tools using the manifest.yaml. --- azure-pipelines/manifest.sh | 2 +- azure-pipelines/templates/release-manifest.yml | 7 +++++++ azure-pipelines/templates/release.yml | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/azure-pipelines/manifest.sh b/azure-pipelines/manifest.sh index 4d11972777..d8f4f9aac9 100755 --- a/azure-pipelines/manifest.sh +++ b/azure-pipelines/manifest.sh @@ -15,7 +15,7 @@ if [ ! -e .version ] || [ ! -e .release_date ]; then fi # Find the name based on the version -if [ "${ISSTABLERELEASE}" = "true" ]; then +if [ -e .is_stable ]; then isTesting=$(cat .version | grep "RC\|beta" || true) if [ -z "${isTesting}" ]; then NAME="stable" diff --git a/azure-pipelines/templates/release-manifest.yml b/azure-pipelines/templates/release-manifest.yml index 5c076b30e9..9e8b486d5c 100644 --- a/azure-pipelines/templates/release-manifest.yml +++ b/azure-pipelines/templates/release-manifest.yml @@ -1,3 +1,6 @@ +parameters: + IsStableRelease: false + steps: - task: DownloadBuildArtifacts@0 displayName: 'Download all bundles' @@ -5,6 +8,10 @@ steps: downloadType: specific itemPattern: 'bundles/*' downloadPath: '$(Build.ArtifactStagingDirectory)' +- ${{ if eq(parameters.IsStableRelease, true) }}: + - script: | + touch .is_stable + displayName: 'Mark as stable release' - script: | set -ex ./azure-pipelines/manifest.sh ../a/bundles/ diff --git a/azure-pipelines/templates/release.yml b/azure-pipelines/templates/release.yml index 4daf66dedb..86f2be40ed 100644 --- a/azure-pipelines/templates/release.yml +++ b/azure-pipelines/templates/release.yml @@ -164,6 +164,9 @@ jobs: steps: - template: release-fetch-source.yml - template: release-manifest.yml + ${{ if eq(parameters.IsStableRelease, true) }}: + parameters: + IsStableRelease: true - template: release-bundles.yml parameters: CalculateChecksums: false From 6e211908588ab5272336d0d2db3bbb4020f7004f Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 9 Feb 2019 22:15:34 +0100 Subject: [PATCH 21/38] Update: Add changelog for 1.9.0-beta2 and prepare for release --- changelog.txt | 4 ++++ known-bugs.txt | 2 +- os/debian/changelog | 6 ++++++ os/rpm/openttd.spec | 4 ++-- os/windows/installer/install.nsi | 4 ++-- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/changelog.txt b/changelog.txt index 2f981909eb..32eb4ca6d5 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,7 @@ +1.9.0-beta2 (2018-02-09) +------------------------------------------------------------------------ +- Fix: Non-Windows builds did not get correct git hash + 1.9.0-beta1 (2018-02-09) ------------------------------------------------------------------------ Note: OpenTTD was migrated to GitHub for 1.9, so SVN revision and FlySpray numbers have been replaced with Pull Requests and Issue numbers diff --git a/known-bugs.txt b/known-bugs.txt index 1cd1dc3412..bcb9c354a9 100644 --- a/known-bugs.txt +++ b/known-bugs.txt @@ -1,6 +1,6 @@ OpenTTD's known bugs Last updated: 2019-02-09 -Release version: 1.9.0-beta1 +Release version: 1.9.0-beta2 ------------------------------------------------------------------------ diff --git a/os/debian/changelog b/os/debian/changelog index 7408b68d99..e429487ec0 100644 --- a/os/debian/changelog +++ b/os/debian/changelog @@ -1,3 +1,9 @@ +openttd (1.9.0~beta2-0) unstable; urgency=low + + * New upstream release 1.9.0-beta2 + + -- OpenTTD Sat, 09 Feb 2019 23:00:00 +0000 + openttd (1.9.0~beta1-0) unstable; urgency=low * New upstream release 1.9.0-beta1 diff --git a/os/rpm/openttd.spec b/os/rpm/openttd.spec index 28f3666186..d16230f312 100644 --- a/os/rpm/openttd.spec +++ b/os/rpm/openttd.spec @@ -17,9 +17,9 @@ # Name: openttd -Version: 1.9.beta1 +Version: 1.9.beta2 Release: 0 -%define srcver 1.9.0-beta1 +%define srcver 1.9.0-beta2 Summary: An open source reimplementation of Chris Sawyer's Transport Tycoon Deluxe License: GPL-2.0 Group: Amusements/Games/Strategy/Other diff --git a/os/windows/installer/install.nsi b/os/windows/installer/install.nsi index 2c4c6f94b2..d0c933ca21 100644 --- a/os/windows/installer/install.nsi +++ b/os/windows/installer/install.nsi @@ -2,8 +2,8 @@ !define APPV_MAJOR 1 !define APPV_MINOR 9 !define APPV_MAINT 0 -!define APPV_BUILD 0 -!define APPV_EXTRA "-beta1" +!define APPV_BUILD 1 +!define APPV_EXTRA "-beta2" !define APPNAME "OpenTTD" ; Define application name !define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version From d242875d270e29f198cc62508b338f8949bf3404 Mon Sep 17 00:00:00 2001 From: PeterN Date: Sun, 10 Feb 2019 08:43:54 +0000 Subject: [PATCH 22/38] Fix #7197: Invalidate depot buttons when necessary. (#7212) --- src/vehicle.cpp | 2 ++ src/vehicle_cmd.cpp | 1 + src/vehicle_gui.cpp | 6 +++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/vehicle.cpp b/src/vehicle.cpp index f655bbafc5..f9a48a8986 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -1490,6 +1490,8 @@ void VehicleEnterDepot(Vehicle *v) TriggerVehicle(v, VEHICLE_TRIGGER_DEPOT); v->MarkDirty(); + InvalidateWindowData(WC_VEHICLE_VIEW, v->index); + if (v->current_order.IsType(OT_GOTO_DEPOT)) { SetWindowDirty(WC_VEHICLE_VIEW, v->index); diff --git a/src/vehicle_cmd.cpp b/src/vehicle_cmd.cpp index 9f8e038877..8284511dd4 100644 --- a/src/vehicle_cmd.cpp +++ b/src/vehicle_cmd.cpp @@ -585,6 +585,7 @@ CommandCost CmdStartStopVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, SetWindowWidgetDirty(WC_VEHICLE_VIEW, v->index, WID_VV_START_STOP); SetWindowDirty(WC_VEHICLE_DEPOT, v->tile); SetWindowClassesDirty(GetWindowClassForVehicleType(v->type)); + InvalidateWindowData(WC_VEHICLE_VIEW, v->index); } return CommandCost(); } diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index b4d6fdfabe..777716c646 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2503,6 +2503,8 @@ public: this->GetWidget(WID_VV_SHOW_ORDERS)->tool_tip = STR_VEHICLE_VIEW_TRAIN_ORDERS_TOOLTIP + v->type; this->GetWidget(WID_VV_SHOW_DETAILS)->tool_tip = STR_VEHICLE_VIEW_TRAIN_SHOW_DETAILS_TOOLTIP + v->type; this->GetWidget(WID_VV_CLONE)->tool_tip = STR_VEHICLE_VIEW_CLONE_TRAIN_INFO + v->type; + + this->UpdateButtonStatus(); } ~VehicleViewWindow() @@ -2732,7 +2734,7 @@ public: } } - virtual void OnGameTick() + void UpdateButtonStatus() { const Vehicle *v = Vehicle::Get(this->window_number); bool veh_stopped = v->IsStoppedInDepot(); @@ -2769,6 +2771,8 @@ public: * Nothing to do for this window. */ return; } + + this->UpdateButtonStatus(); } virtual bool IsNewGRFInspectable() const From 70e1c57f81006abd571b35ad7f876f2176cf413d Mon Sep 17 00:00:00 2001 From: glx Date: Sat, 9 Feb 2019 21:26:37 +0100 Subject: [PATCH 23/38] Fix: line ending issues with MSYS2 --- src/script/api/generate_widget.sh | 2 +- src/script/api/squirrel_export.sh | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/script/api/generate_widget.sh b/src/script/api/generate_widget.sh index 4bdbc31c70..96ef5dfb3a 100755 --- a/src/script/api/generate_widget.sh +++ b/src/script/api/generate_widget.sh @@ -20,5 +20,5 @@ if [ "$?" != "0" ]; then exit 1 fi -${AWK} -f generate_widget.awk script_window.hpp > script_window.tmp +${AWK} -v BINMODE=1 -f generate_widget.awk script_window.hpp > script_window.tmp mv script_window.tmp script_window.hpp diff --git a/src/script/api/squirrel_export.sh b/src/script/api/squirrel_export.sh index e1f5e8613c..14ff4e1477 100755 --- a/src/script/api/squirrel_export.sh +++ b/src/script/api/squirrel_export.sh @@ -49,7 +49,7 @@ for f in `ls ../*.hpp`; do # ScriptController has custom code, and should not be generated if [ "`basename ${f}`" = "script_controller.hpp" ]; then continue; fi - ${AWK} -v api=${apiuc} -f ${scriptdir}/squirrel_export.awk ${f} > ${bf}.tmp + ${AWK} -v BINMODE=1 -v api=${apiuc} -f ${scriptdir}/squirrel_export.awk ${f} > ${bf}.tmp if [ "`wc -l ${bf}.tmp | cut -d\ -f1`" = "0" ]; then if [ -f "${bf}.sq" ]; then @@ -90,7 +90,7 @@ echo " /Note: this line is a marker in squirrel_export.sh. Do not change!/ { print \$0 gsub(\"^.*/\", \"\") - split(\"`grep '^void SQ'${apiuc}'.*_Register(Squirrel \*engine)$' *.hpp.sq | sed 's/:.*$//' | sort | uniq | tr -d '\r' | tr '\n' ' '`\", files, \" \") + split(\"`grep '^void SQ'${apiuc}'.*_Register(Squirrel \*engine).\?$' *.hpp.sq | sed 's/:.*$//' | sort | uniq | tr -d '\r' | tr '\n' ' '`\", files, \" \") for (i = 1; files[i] != \"\"; i++) { print \"#include \\\"../script/api/${apilc}/\" files[i] \"\\\"\" \$0 @@ -104,7 +104,7 @@ echo " gsub(\"^.*/\", \"\") # List needs to be registered with squirrel before all List subclasses. print \" SQ${apiuc}List_Register(this->engine);\" \$0 - split(\"`grep '^void SQ'${apiuc}'.*_Register(Squirrel \*engine)$' *.hpp.sq | grep -v 'SQ'${apiuc}'List_Register' | sed 's/^.*void //;s/Squirrel \*/this->/;s/$/;/;s/_Register/0000Register/g;' | sort | sed 's/0000Register/_Register/g' | tr -d '\r' | tr '\n' ' '`\", regs, \" \") + split(\"`grep '^void SQ'${apiuc}'.*_Register(Squirrel \*engine).\?$' *.hpp.sq | grep -v 'SQ'${apiuc}'List_Register' | sed 's/^.*void //;s/Squirrel \*/this->/;s/$/;/;s/_Register/0000Register/g;' | sort | sed 's/0000Register/_Register/g' | tr -d '\r' | tr '\n' ' '`\", regs, \" \") for (i = 1; regs[i] != \"\"; i++) { if (regs[i] == \"SQ${apiuc}Controller_Register(this->engine);\") continue @@ -117,7 +117,7 @@ echo " { print \$0; } " > ${f}.awk -${AWK} -f ${f}.awk ${f} > ${f}.tmp +${AWK} -v BINMODE=1 -f ${f}.awk ${f} > ${f}.tmp if ! [ -f "${f}" ] || [ -n "`diff -I '$Id' ${f} ${f}.tmp 2> /dev/null || echo boo`" ]; then mv ${f}.tmp ${f} From 0df95811ce76f21032b3c5dae7cc93b9145ffa5d Mon Sep 17 00:00:00 2001 From: glx Date: Sat, 9 Feb 2019 21:40:27 +0100 Subject: [PATCH 24/38] Fix: generate.vbs used wrong data for basesets_vs142 --- projects/generate.vbs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/generate.vbs b/projects/generate.vbs index e8cf13d03d..aa91bd3164 100644 --- a/projects/generate.vbs +++ b/projects/generate.vbs @@ -405,5 +405,5 @@ generate basesetvcxproj, ROOT_DIR & "/projects/basesets_vs140.vcxproj", basesetl generate basesetfiles, ROOT_DIR & "/projects/basesets_vs140.vcxproj.filters", Null generate basesetvcxproj, ROOT_DIR & "/projects/basesets_vs141.vcxproj", basesetlangs generate basesetfiles, ROOT_DIR & "/projects/basesets_vs141.vcxproj.filters", Null -generate settingsvcxproj, ROOT_DIR & "/projects/basesets_vs142.vcxproj", settingscommand -generate settingsfiles, ROOT_DIR & "/projects/basesets_vs142.vcxproj.filters", Null +generate basesetvcxproj, ROOT_DIR & "/projects/basesets_vs142.vcxproj", basesetlangs +generate basesetfiles, ROOT_DIR & "/projects/basesets_vs142.vcxproj.filters", Null From 748d72202a1b1ec8e61f74afa99c363ee27a1ae3 Mon Sep 17 00:00:00 2001 From: glx Date: Sat, 9 Feb 2019 22:10:07 +0100 Subject: [PATCH 25/38] Fix: generate and generate.vbs were sorting differently --- projects/generate | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/projects/generate b/projects/generate index 595fa3acc6..3bd94a4fa2 100755 --- a/projects/generate +++ b/projects/generate @@ -10,6 +10,10 @@ # This file generates all project files based on sources.list, so everyone who # can start a bash process, can update the project files. +# Set neutral locale so sort behaves the same everywhere +LC_ALL=C +export LC_ALL + ROOT_DIR="`pwd`/.." if ! [ -e "$ROOT_DIR/source.list" ] then From 2ff10327d7962ee61f5eb45baa804e80fa966405 Mon Sep 17 00:00:00 2001 From: glx Date: Sun, 10 Feb 2019 01:46:05 +0100 Subject: [PATCH 26/38] Fix: projects/generate now keeps the line ending --- projects/generate | 110 ++++++++++++++++++++-------------------------- 1 file changed, 48 insertions(+), 62 deletions(-) diff --git a/projects/generate b/projects/generate index 3bd94a4fa2..cfedc8b32d 100755 --- a/projects/generate +++ b/projects/generate @@ -14,6 +14,15 @@ LC_ALL=C export LC_ALL +# We really need gawk for this! +AWK=gawk + +${AWK} --version > /dev/null 2> /dev/null +if [ "$?" != "0" ]; then + echo "This script needs gawk to run properly" + exit 1 +fi + ROOT_DIR="`pwd`/.." if ! [ -e "$ROOT_DIR/source.list" ] then @@ -70,7 +79,7 @@ with_cocoa="0" enable_directmusic="1" enable_fluidsynth="0" with_threads="1" -file_prefix="..\\\\src\\\\" +file_prefix="..\\\\\\\\src\\\\\\\\" safety_check() { li="" @@ -101,7 +110,8 @@ rm tmp.headers.* load_main_data() { # Read the source.list and process it - RES="`cat $1 | tr '\r' '\n' | awk ' + RES="`cat $1 | ${AWK} -v BINMODE=1 ' + { gsub("\\r", "", $0); } /^( *)#end/ { if (deep == skip) { skip -= 1; } deep -= 1; next; } /^( *)#else/ { if (deep == skip) { skip -= 1; } else if (deep - 1 == skip) { skip += 1; } next; } /^( *)#if/ { @@ -153,7 +163,7 @@ load_main_data() { { if (deep == skip) { gsub(" ", "", $0); - gsub("/", "\\\\", $0); + gsub("/", "\\\\\\\\", $0); split($0, file, "."); cltype = "ClInclude" if (file[2] == "cpp") cltype = "ClCompile"; @@ -181,13 +191,13 @@ load_lang_data() { continue fi RES="$RES -#2 +#2 #2 Generating "$i" language file -#2 ..\\objs\\strgen\\strgen.exe -s ..\\src\\lang -d ..\\bin\\lang \"%(FullPath)\" -#2 ..\\src\\lang\\english.txt;..\\objs\\strgen\\strgen.exe;%(AdditionalInputs) -#2 ..\\bin\\lang\\"$i".lng;%(Outputs) +#2 ..\\\\objs\\\\strgen\\\\strgen.exe -s ..\\\\src\\\\lang -d ..\\\\bin\\\\lang \"%(FullPath)\" +#2 ..\\\\src\\\\lang\\\\english.txt;..\\\\objs\\\\strgen\\\\strgen.exe;%(AdditionalInputs) +#2 ..\\\\bin\\\\lang\\\\"$i".lng;%(Outputs) #2 -#3 +#3 #3 Translations #3 " done @@ -198,16 +208,16 @@ load_lang_data() { load_settings_data() { RES="" RES2=" -#3..\\objs\\settings\\settings_gen.exe -o ..\\objs\\settings\\table\\settings.h -b ..\\src\\table\\settings.h.preamble -a ..\\src\\table\\settings.h.postamble" +#3..\\\\objs\\\\settings\\\\settings_gen.exe -o ..\\\\objs\\\\settings\\\\table\\\\settings.h -b ..\\\\src\\\\table\\\\settings.h.preamble -a ..\\\\src\\\\table\\\\settings.h.postamble" for i in `ls $1` do i=`basename $i` RES="$RES -#2 -#4 +#2 +#4 #4 INI #4 " - RES2="$RES2 ..\\src\\table\\"$i + RES2="$RES2 ..\\\\src\\\\table\\\\"$i done eval "$2=\"\$RES\$RES2\"" @@ -228,7 +238,7 @@ load_baseset_data() { FIRST=1 fi i=`basename $i` - RES2="$RES2..\\src\\lang\\$i.txt" + RES2="$RES2..\\\\src\\\\lang\\\\$i.txt" done RES2="$RES2" # Windows Folder sort and Linux Folder sort are slightly different. @@ -237,13 +247,13 @@ load_baseset_data() { do i=`basename $i` RES="$RES -#2 +#2 #2 Generating "$i" baseset metadata file -#2 cscript //nologo ..\\media\\baseset\\translations.vbs \"%(FullPath)\" \"\$(OutputPath)$i\" ..\\src\\lang ..\\bin\\baseset\\orig_extra.grf -#2 \$(Langs);..\\bin\\baseset\\orig_extra.grf;%(AdditionalInputs) -#2 ..\\bin\\baseset\\"$i";%(Outputs) +#2 cscript //nologo ..\\\\media\\\\baseset\\\\translations.vbs \"%(FullPath)\" \"\$(OutputPath)$i\" ..\\\\src\\\\lang ..\\\\bin\\\\baseset\\\\orig_extra.grf +#2 \$(Langs);..\\\\bin\\\\baseset\\\\orig_extra.grf;%(AdditionalInputs) +#2 ..\\\\bin\\\\baseset\\\\"$i";%(Outputs) #2 -#3 +#3 #3 Baseset Metadata #3 " done @@ -253,52 +263,28 @@ load_baseset_data() { generate() { echo "Generating $2..." - if [ $# -eq 3 ]; then - # Everything above the !!FILTERS!! marker - cat "$ROOT_DIR/projects/$2".in | tr '\r' '\n' | awk ' - /^$/ { next } - /!!FILTERS!!/ { stop = 1; } - { - if (stop == 0) { print $0 } - } - ' > "$ROOT_DIR/projects/$2" - - echo "$3" >> "$ROOT_DIR/projects/$2" - - # Everything below the !!FILTERS!! marker and above the !!FILES!! marker - cat "$ROOT_DIR/projects/$2".in | tr '\r' '\n' | awk ' - BEGIN { stop = 1; } - /^$/ { next } - /!!FILTERS!!/ { stop = 2; } - /!!FILES!!/ { stop = 1; } - { - if (stop == 0) { print $0 } - if (stop == 2) { stop = 0 } - } - ' >> "$ROOT_DIR/projects/$2" - else - # Everything above the !!FILES!! marker - cat "$ROOT_DIR/projects/$2".in | tr '\r' '\n' | awk ' - /^$/ { next } - /!!FILES!!/ { stop = 1; } - { - if (stop == 0) { print $0 } - } - ' > "$ROOT_DIR/projects/$2" - fi - - echo "$1" >> "$ROOT_DIR/projects/$2" - - # Everything below the !!FILES!! marker - cat "$ROOT_DIR/projects/$2".in | tr '\r' '\n' | awk ' - BEGIN { stop = 1; } + # Everything above the !!FILTERS!! marker + cat "$ROOT_DIR/projects/$2".in | ${AWK} -v BINMODE=1 -v FILTERS="$3" -v FILES="$1" ' + { CR = (match($0, "\\r$") > 0 ? "\r" : "") } /^$/ { next } - /!!FILES!!/ { stop = 2; } - { - if (stop == 0) { print $0 } - if (stop == 2) { stop = 0 } + /!!FILTERS!!/ { + split(FILTERS, filters, "\n"); + for (i = 1; filters[i] != ""; i++) { + print filters[i] CR; + } + next; } - ' >> "$ROOT_DIR/projects/$2" + /!!FILES!!/ { + split(FILES, files, "\n"); + for (i = 1; files[i] != ""; i++) { + print files[i] CR; + } + next; + } + { + print $0; + } + ' > "$ROOT_DIR/projects/$2" } safety_check "$ROOT_DIR/source.list" From 148e5b41d668a82e866f70d559dead0d5ffbeb99 Mon Sep 17 00:00:00 2001 From: Eddi-z <43699911+Eddi-z@users.noreply.github.com> Date: Sun, 10 Feb 2019 18:45:48 +0100 Subject: [PATCH 27/38] Change: Skip reliability decay if servicing is disabled --- src/vehicle.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/vehicle.cpp b/src/vehicle.cpp index f9a48a8986..37afa6cb8c 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -1222,7 +1222,10 @@ void CheckVehicleBreakdown(Vehicle *v) int rel, rel_old; /* decrease reliability */ - v->reliability = rel = max((rel_old = v->reliability) - v->reliability_spd_dec, 0); + if (!_settings_game.order.no_servicing_if_no_breakdowns || + _settings_game.difficulty.vehicle_breakdowns != 0) { + v->reliability = rel = max((rel_old = v->reliability) - v->reliability_spd_dec, 0); + } if ((rel_old >> 8) != (rel >> 8)) SetWindowDirty(WC_VEHICLE_DETAILS, v->index); if (v->breakdown_ctr != 0 || (v->vehstatus & VS_STOPPED) || From 4d5d21be7668ae90d6f3c916ad754b719b2f2af5 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 9 Feb 2019 23:34:06 +0100 Subject: [PATCH 28/38] Fix: [AzurePipelines] always list the full changelog since last stable --- azure-pipelines/changelog.sh | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/azure-pipelines/changelog.sh b/azure-pipelines/changelog.sh index 71bc56fac7..33eb8a78d4 100755 --- a/azure-pipelines/changelog.sh +++ b/azure-pipelines/changelog.sh @@ -2,13 +2,9 @@ tag=$(git describe --tags 2>/dev/null) -# If we are a tag, show the part of the changelog that matches the tag. -# In case of a stable, also show all betas and RCs. +# If we are a tag, show the part of the changelog till (but excluding) the last stable if [ -n "$tag" ]; then - grep="." - if [ "$(echo $tag | grep '-')" = "" ]; then - grep='^[0-9]\.[0-9]\.[0-9][^-]' - fi + grep='^[0-9]\.[0-9]\.[0-9][^-]' next=$(cat changelog.txt | grep '^[0-9]' | awk 'BEGIN { show="false" } // { if (show=="true") print $0; if ($1=="'$tag'") show="true"} ' | grep "$grep" | head -n1 | sed 's/ .*//') cat changelog.txt | awk 'BEGIN { show="false" } /^[0-9].[0-9].[0-9]/ { if ($1=="'$next'") show="false"; if ($1=="'$tag'") show="true";} // { if (show=="true") print $0 }' exit 0 From 13af2b88b4d301d67a483e5d293acf0b2d9383f2 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 10 Feb 2019 19:45:45 +0100 Subject: [PATCH 29/38] Update: Translations from eints russian: 3 changes by Lone_Wolf --- src/lang/russian.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lang/russian.txt b/src/lang/russian.txt index ed24128997..e03a395f3b 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -1539,7 +1539,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Выкл. STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Закрывать окна щелчком ПКМ: {STRING} STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Закрывать окно щелчком правой кнопкой мыши в его пределах. При этом отключается появление подсказок по правой кнопке. -STR_CONFIG_SETTING_AUTOSAVE :Автосохранения: {STRING} +STR_CONFIG_SETTING_AUTOSAVE :Автосохранение: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Укажите интервал между автоматическими сохранениями STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Использовать {STRING} формат даты для имён сохранений @@ -1651,7 +1651,7 @@ STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER :Первое т STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT :Показывать новости о первом транспортном средстве, прибывающем на станцию конкурента STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :Аварии и катастрофы: {STRING} STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT :Показывать новости об авариях и катастрофах -STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Информация о Компании: {STRING} +STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Информация о компании: {STRING} STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Показывать новости об основании и риске банкротства транспортных компаний STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN :Открытие предприятий: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN_HELPTEXT :Показывать новости об открывающихся предприятиях @@ -2367,7 +2367,7 @@ STR_CONTENT_NAME_CAPTION_TOOLTIP :{BLACK}Наим STR_CONTENT_MATRIX_TOOLTIP :{BLACK}Нажмите на строке для просмотра подробностей{}Отметьте чекбокс для загрузки STR_CONTENT_SELECT_ALL_CAPTION :{BLACK}Выбрать всё STR_CONTENT_SELECT_ALL_CAPTION_TOOLTIP :{BLACK}Пометить весь контент для загрузки -STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Выбрать обновл. +STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Выбрать обновления STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{BLACK}Отметить для загрузки обновления для имеющегося контента STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Снять выделение STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK}Ничего не загружать From 22f33fdd08aa2957f71acf11063da98b96a89712 Mon Sep 17 00:00:00 2001 From: PeterN Date: Sun, 10 Feb 2019 21:06:09 +0000 Subject: [PATCH 30/38] Fix 148e5b41d6: Uninitialized variable usage. (#7216) --- src/vehicle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vehicle.cpp b/src/vehicle.cpp index 37afa6cb8c..f4dc0c4ddb 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -1225,8 +1225,8 @@ void CheckVehicleBreakdown(Vehicle *v) if (!_settings_game.order.no_servicing_if_no_breakdowns || _settings_game.difficulty.vehicle_breakdowns != 0) { v->reliability = rel = max((rel_old = v->reliability) - v->reliability_spd_dec, 0); + if ((rel_old >> 8) != (rel >> 8)) SetWindowDirty(WC_VEHICLE_DETAILS, v->index); } - if ((rel_old >> 8) != (rel >> 8)) SetWindowDirty(WC_VEHICLE_DETAILS, v->index); if (v->breakdown_ctr != 0 || (v->vehstatus & VS_STOPPED) || _settings_game.difficulty.vehicle_breakdowns < 1 || From cac2f6226c5cb81efb6aea747e3ef896504bca03 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Sun, 10 Feb 2019 22:34:55 +0000 Subject: [PATCH 31/38] Codechange: In CmdCompanyCtrl, move client_id assignment to where it is used, and document bit usage better. --- src/company_cmd.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp index 77572c5af3..8cc876751c 100644 --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -816,7 +816,9 @@ void CompanyAdminRemove(CompanyID company_id, CompanyRemoveReason reason) * @param p1 various functionality * - bits 0..15: CompanyCtrlAction * - bits 16..24: CompanyID - * @param p2 ClientID + * @param p2 various depending on CompanyCtrlAction + * - bits 0..31: ClientID (with CCA_NEW) + * - bits 0..1: CompanyRemoveReason (with CCA_DELETE) * @param text unused * @return the cost of this operation or an error */ @@ -824,9 +826,6 @@ CommandCost CmdCompanyCtrl(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 { InvalidateWindowData(WC_COMPANY_LEAGUE, 0, 0); CompanyID company_id = (CompanyID)GB(p1, 16, 8); -#ifdef ENABLE_NETWORK - ClientID client_id = (ClientID)p2; -#endif /* ENABLE_NETWORK */ switch ((CompanyCtrlAction)GB(p1, 0, 16)) { case CCA_NEW: { // Create a new company @@ -836,6 +835,8 @@ CommandCost CmdCompanyCtrl(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 #ifdef ENABLE_NETWORK /* Has the network client a correct ClientIndex? */ if (!(flags & DC_EXEC)) return CommandCost(); + + ClientID client_id = (ClientID)p2; NetworkClientInfo *ci = NetworkClientInfo::GetByClientID(client_id); #ifndef DEBUG_DUMP_COMMANDS /* When replaying the client ID is not a valid client; there From 75d3054ae41251741620c2759a1bf3501570b481 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 11 Feb 2019 19:45:43 +0100 Subject: [PATCH 32/38] Update: Translations from eints faroese: 1 change by JayPee german: 1 change by ShadowCop norwegian (bokmal): 96 changes by Leifbk --- src/lang/faroese.txt | 1 + src/lang/german.txt | 2 +- src/lang/norwegian_bokmal.txt | 108 ++++++++++++++++++++++++++++++---- 3 files changed, 98 insertions(+), 13 deletions(-) diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index e1fde3e3e8..72c497240d 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -453,6 +453,7 @@ STR_ABOUT_MENU_SCREENSHOT :Skermmynd STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Suma in skermmynd STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Vanliga suma skermmynd STR_ABOUT_MENU_GIANT_SCREENSHOT :Skermmynd av øllum kortinum +STR_ABOUT_MENU_SHOW_FRAMERATE :Vís mynda títtleika STR_ABOUT_MENU_ABOUT_OPENTTD :Um 'OpenTTD' STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite aligner STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Skift millum bindingar kassar diff --git a/src/lang/german.txt b/src/lang/german.txt index bf6ce994f8..e0bc195e5b 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -1776,7 +1776,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Prüfe, STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Zeige KI- und Skripteinstellungen STR_INTRO_TOOLTIP_QUIT :{BLACK}OpenTTD beenden -STR_INTRO_BASESET :{BLACK}Dem momentan ausgewählten Basisgrafiken fehl{P 0 "t" "en"} {NUM} Sprite{P 0 "" s}. Bitte überprüfe, ob es Updates für die Basisgrafiken gibt. +STR_INTRO_BASESET :{BLACK}Den momentan ausgewählten Basisgrafiken fehl{P 0 "t" "en"} {NUM} Sprite{P 0 "" "s"}. Bitte überprüfe, ob es Updates für die Basisgrafiken gibt. STR_INTRO_TRANSLATION :{BLACK}Dieser Übersetzung fehl{P 0 t en} {NUM} String{P "" s}. Bitte hilf, OpenTTD zu verbessern und melde Dich als Übersetzer an. Siehe readme.txt für weitere Details. # Quit window diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index e1cc630c0c..48f088ad57 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -191,6 +191,8 @@ STR_COLOUR_ORANGE :Oransje STR_COLOUR_BROWN :Brun STR_COLOUR_GREY :Grå STR_COLOUR_WHITE :Hvit +STR_COLOUR_RANDOM :Tilfeldig +STR_COLOUR_DEFAULT :Standard # Units used in OpenTTD STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mi/t @@ -477,6 +479,7 @@ STR_ABOUT_MENU_SCREENSHOT :Skjermbilde STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Fullt forstørret skjermbilde STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Normalt forstørret skjermbilde STR_ABOUT_MENU_GIANT_SCREENSHOT :Skjermbilde av hele kartet +STR_ABOUT_MENU_SHOW_FRAMERATE :Vis bildehastighet STR_ABOUT_MENU_ABOUT_OPENTTD :Om 'OpenTTD' STR_ABOUT_MENU_SPRITE_ALIGNER :Spriteforskyver STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Vis/skjul markeringsramme @@ -652,6 +655,7 @@ STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLA STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}-- STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM} STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------ +STR_MUSIC_TITLE_NOMUSIC :{TINY_FONT}{DKGREEN}Ingen musikk tilgjengelig STR_MUSIC_TITLE_NAME :{TINY_FONT}{DKGREEN}«{STRING}» STR_MUSIC_TRACK :{TINY_FONT}{BLACK}Spor STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Tittel @@ -672,11 +676,14 @@ STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Skru av/ STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION :{BLACK}Vis musikkspormeny # Playlist window +STR_PLAYLIST_MUSIC_SELECTION_SETNAME :{WHITE}Musikkprogram - '{STRING}' STR_PLAYLIST_TRACK_NAME :{TINY_FONT}{LTBLUE}{ZEROFILL_NUM} "{STRING}" STR_PLAYLIST_TRACK_INDEX :{TINY_FONT}{BLACK}Sporliste STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLACK}Program - '{STRING}' STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Tøm +STR_PLAYLIST_CHANGE_SET :{BLACK}Endre sett STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Slett gjeldende program (gjelder bare Egendefinert 1 og 2) +STR_PLAYLIST_TOOLTIP_CHANGE_SET :{BLACK} Bytt musikk til et annet installert sett STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Klikk på et musikkspor for å legge til gjeldende program (Gjelder bare egendefinert 1 og 2) STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Klikk på et musikkspor for å fjerne det fra nåværende program (Gjelder bare egendefinert 1 og 2) @@ -812,6 +819,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Sjef) STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} sponset grunnleggelsen av den nye byen {TOWN}! +STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}En ny by kalt {TOWN} har blitt reist! STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Ny{G "" "" tt} {STRING} blir anlagt i nærheten av {TOWN}! STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Ny{G "" "" tt} {STRING} plantes i nærheten av {TOWN}! @@ -881,8 +889,8 @@ STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION :{BIG_FONT}{BLAC STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Tilleggsvindu {COMMA} STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Kopier til tilleggsvindu STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Kopier hovedvisningen til dette tilleggsvinduet -STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Lim inn fra tilleggsvindu -STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Kopier plasseringen av dette tilleggsvinduet til hovedvisningen +STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Endre hovedsynsfelt +STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}flytt plasseringen i dette tilleggsvinduet til hovedvisningen # Game options window STR_GAME_OPTIONS_CAPTION :{WHITE}Spillinnstillinger @@ -918,12 +926,14 @@ STR_GAME_OPTIONS_CURRENCY_TRY :Tyrkisk lire (T STR_GAME_OPTIONS_CURRENCY_SKK :Slovakisk koruna (SKK) STR_GAME_OPTIONS_CURRENCY_BRL :Brasiliansk real (BRL) STR_GAME_OPTIONS_CURRENCY_EEK :Estlandsk krone (EEK) -STR_GAME_OPTIONS_CURRENCY_LTL :Litauiske litas (LTL) -STR_GAME_OPTIONS_CURRENCY_KRW :Sørkoreanske won (KRW) +STR_GAME_OPTIONS_CURRENCY_LTL :Litauisk litas (LTL) +STR_GAME_OPTIONS_CURRENCY_KRW :Sørkoreansk won (KRW) STR_GAME_OPTIONS_CURRENCY_ZAR :Sørafrikanske rand (ZAR) STR_GAME_OPTIONS_CURRENCY_CUSTOM :Egendefinert... -STR_GAME_OPTIONS_CURRENCY_GEL :Georgianske Lari (GEL) -STR_GAME_OPTIONS_CURRENCY_IRR :Iranske Rial (IRR) +STR_GAME_OPTIONS_CURRENCY_GEL :Georgisk lari (GEL) +STR_GAME_OPTIONS_CURRENCY_IRR :Iransk rial (IRR) +STR_GAME_OPTIONS_CURRENCY_RUB :Ny russisk rubel (RUB) +STR_GAME_OPTIONS_CURRENCY_MXN :Meksikansk peso (MXN) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Kjøretøy @@ -1254,6 +1264,8 @@ STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Det er i STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Vedlikehold av infrastruktur: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Når aktivert, medfører infrastruktur vedlikeholdskostnader. Kostnadene vokser over-proporsjonalt med nettverkets størrelse, og påvirker dermed større selskaper mer enn de små +STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR :Startifarge for firmaet: {STRING} +STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT :Velg startfarge for firmaet STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Flyplasser utgår aldri: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Aktivering av denne innstillingen gjør at hver type flyplass forblir tilgjengelig for alltid etter at sin introduksjon @@ -1277,9 +1289,9 @@ STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} måned{ STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} måned{P 0 "" er} etter STR_CONFIG_SETTING_AUTORENEW_MONEY :Minimum formue for autofornyelse av kjøretøy: {STRING} STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minste pengemengde som må være igjen i banken for å vurdere automatisk fornying av kjøretøy -STR_CONFIG_SETTING_ERRMSG_DURATION :Varighet av error-melding: {STRING} +STR_CONFIG_SETTING_ERRMSG_DURATION :Varighet av feilmelding: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Varighet for visning av feilmeldinger i et rødt vindu. Vær oppmerksom på at noen (kritiske) feilmeldinger ikke lukkes automatisk etter dette tidspunktet, men må lukkes manuelt -STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} andre{P 0 "" s} +STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekund{P 0 "" er} STR_CONFIG_SETTING_HOVER_DELAY :Vis verktøytips: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Forsinkelse før verktøytips vises når musen svever over elementer i grensesnittet. Alternativt kan verktøytips bindes til den høyre museknappen STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Hovre i {COMMA} millisekunder{P 0 "" s} @@ -1338,6 +1350,12 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Farge på terre STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Grønn STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Mørkegrønn STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Fiolett +STR_CONFIG_SETTING_SCROLLMODE :Rulleoppførsel for vindu: {STRING} +STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Oppførsel ved rulling av kart +STR_CONFIG_SETTING_SCROLLMODE_DEFAULT :Flytt synsfelt med høyre museknapp, museposisjon låst +STR_CONFIG_SETTING_SCROLLMODE_RMB_LOCKED :Rull kartet med høyre museknapp, museposisjon låst +STR_CONFIG_SETTING_SCROLLMODE_RMB :Rull kartet med høyre museknapp +STR_CONFIG_SETTING_SCROLLMODE_LMB :Rull kartet med venstre museknapp STR_CONFIG_SETTING_SMOOTH_SCROLLING :Myk rulling: {STRING} STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Velge hvordan synsfeltet ruller til en bestemt posisjon når du klikker på det lille kartet, eller ved utstedelse av en kommando for å gå til et bestemt objekt på kartet. Hvis aktivert, ruller synsfeltet jevnt, og hvis deaktivert hopper det direkte til det valgte punktet STR_CONFIG_SETTING_MEASURE_TOOLTIP :Vis målingsverktøy ved bruk av byggingsverktøy: {STRING} @@ -1806,6 +1824,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Endre n STR_CHEAT_SETUP_PROD :{LTBLUE}Tillat endring av produksjonsmengder: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}{COMPANY} - Firmafarge STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Vis generelle fargetemaer STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Vis togfargetemaer @@ -2282,6 +2301,7 @@ STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Symbolfo STR_LINKGRAPH_LEGEND_ALL :{BLACK}Alle STR_LINKGRAPH_LEGEND_NONE :{BLACK}Ingen STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Velg selskaper som skal vises +STR_LINKGRAPH_LEGEND_COMPANY_TOOLTIP :{BLACK}{STRING}{}{COMPANY} # Linkgraph legend window and linkgraph legend in smallmap STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}ubrukt @@ -2367,8 +2387,8 @@ STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Avansert STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Enveis avansert signal (lyssignal){}Et avansert signal tillater flere tog å kjøre samtidig på samme signalblokk, dersom togene kan reservere en rute til et trygt stoppested . Enveis avanserte signaler kan ikke passeres bakfra. STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Konverter signal{}Konverterer signaler til den valgte signaltypen. Ctrl+klikk vil endre eksisterende variant. Shift+klikk viser kostnadsestimat STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Signaltetthet ved dra-og-slipp -STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Senk signaltetthet ved dra-og-slipp -STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Øk signaltetthet ved dra-og-slipp +STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Senk signalavstand ved dra-og-slipp +STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Øk signalavstand ved dra-og-slipp # Bridge selection window STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Velg jernbanebrotype @@ -2691,9 +2711,52 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 OpenTTD-teamet # Framerate display window +STR_FRAMERATE_CAPTION :{WHITE}Bildehastighet +STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x) +STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Simuleringshastighet: {STRING} +STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Antall spill-tikk per sekund. +STR_FRAMERATE_RATE_BLITTER :{BLACK}Bildehastighet: {STRING} +STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Antall bilder tegnet per sekund. +STR_FRAMERATE_SPEED_FACTOR :{BLACK}Gjeldende spillhastighetsfaktor: {DECIMAL}x +STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Hvor raskt spillet kjører i forhold til forventet hastighet ved normal simulering. +STR_FRAMERATE_CURRENT :{WHITE}Gjeldende +STR_FRAMERATE_AVERAGE :{WHITE}Middels +STR_FRAMERATE_DATA_POINTS :{BLACK}Data basert på {COMMA} målinger +STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms +STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms +STR_FRAMERATE_MS_BAD :{RED}{DECIMAL} ms +STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} bilder/s +STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} Bilder/s +STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} frames/s +STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms +STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s ############ Leave those lines in this order!! +STR_FRAMERATE_GAMELOOP :{BLACK}Spill-løkke totalt: +STR_FRAMERATE_GL_ECONOMY :{BLACK} Godshåndtering: +STR_FRAMERATE_GL_TRAINS :{BLACK} Tog-tikk: +STR_FRAMERATE_GL_ROADVEHS :{BLACK} Veikjøretøy-tikk: +STR_FRAMERATE_GL_SHIPS :{BLACK} Skips-tikk: +STR_FRAMERATE_GL_AIRCRAFT :{BLACK} Fly-tikk: +STR_FRAMERATE_GL_LANDSCAPE :{BLACK} Spillverden-tikk: +STR_FRAMERATE_GL_LINKGRAPH :{BLACK} Koblingsgraf-etterslep: +STR_FRAMERATE_DRAWING :{BLACK}Grafikktegning: +STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Synsfelt for spillverden: +STR_FRAMERATE_VIDEO :{BLACK}Video output: +STR_FRAMERATE_SOUND :{BLACK}Lydmiksing: ############ End of leave-in-this-order ############ Leave those lines in this order!! +STR_FRAMETIME_CAPTION_GAMELOOP :Spill-løkke +STR_FRAMETIME_CAPTION_GL_ECONOMY :Godshåndtering +STR_FRAMETIME_CAPTION_GL_TRAINS :Tog-tikk +STR_FRAMETIME_CAPTION_GL_ROADVEHS :Veikjøretøy-tikk +STR_FRAMETIME_CAPTION_GL_SHIPS :Skips-tikk +STR_FRAMETIME_CAPTION_GL_AIRCRAFT :Fly-tikk +STR_FRAMETIME_CAPTION_GL_LANDSCAPE :Verdens-tikk +STR_FRAMETIME_CAPTION_GL_LINKGRAPH :Koblingsgrad-etterslep +STR_FRAMETIME_CAPTION_DRAWING :Grafikktegning +STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Tegning av synsfelt for spillverden +STR_FRAMETIME_CAPTION_VIDEO :Video output +STR_FRAMETIME_CAPTION_SOUND :Lydmiksing ############ End of leave-in-this-order @@ -2719,6 +2782,9 @@ STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Spilldet STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Ingen informasjon tilgjengelig. STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING} +STR_SAVELOAD_FILTER_TITLE :{BLACK}Filtrer streng: +STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Overskriv fil +STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}Er du sikker på at du vil overskrive eksisterende fil? STR_SAVELOAD_OSKTITLE :{BLACK}Skriv inn et navn på spillet som skal lagres @@ -2836,7 +2902,12 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Versjon: STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Min. kompatibel versjon: {SILVER}{NUM} STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Palett: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Default (D) +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Default (D) / 32 bpp +STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Legacy (W) +STR_NEWGRF_SETTINGS_PALETTE_LEGACY_32BPP :Legacy (W) / 32 bpp STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parametre: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PARAMETER_NONE :Ingen STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Ingen informasjon tilgjengelig STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Matchende fil ble ikke funnet @@ -2854,7 +2925,7 @@ STR_SAVE_PRESET_SAVE :{BLACK}Lagre STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Lagre forhåndsinnstillingen med det valgte navnet # NewGRF parameters window -STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Forandre NewGRF-parametre +STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Endre NewGRF-parametre STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Lukk STR_NEWGRF_PARAMETERS_RESET :{BLACK}Tilbakestill STR_NEWGRF_PARAMETERS_RESET_TOOLTIP :{BLACK}Sett alle parametere til standardverdi @@ -2917,6 +2988,8 @@ STR_NEWGRF_ERROR_READ_BOUNDS :Leste forbi slu STR_NEWGRF_ERROR_GRM_FAILED :Etterspurte GRF-ressurser ikke tilgjengelig (figur {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} ble deaktivert av {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ugyldig/ukjent sprite layout-format (figur {3:NUM}) +STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :For mange elementer i fortegnelse over eiendomsverdier (sprite {3:NUM}, property {4:HEX}) +STR_NEWGRF_ERROR_INDPROD_CALLBACK :Ugyldig industriprodukjson callback (sprite {3:NUM}, "{1:STRING}") # NewGRF related 'general' warnings STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Advarsel! @@ -2981,13 +3054,15 @@ STR_EDIT_SIGN_SIGN_OSKTITLE :{BLACK}Skriv in STR_TOWN_DIRECTORY_CAPTION :{WHITE}Byer STR_TOWN_DIRECTORY_NONE :{ORANGE}- Ingen - STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA}) +STR_TOWN_DIRECTORY_CITY :{ORANGE}{TOWN}{YELLOW} (By){BLACK} ({COMMA}) STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Bynavn - klikk på navnet for å gå til byen. Ctrl+klikk åpner et nytt tilleggsvindu over byen STR_TOWN_POPULATION :{BLACK}Verdensbefolkning: {COMMA} # Town view window STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN} -STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (By) +STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (Storby) STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Innbyggertall: {ORANGE}{COMMA}{BLACK} Antall hus: {ORANGE}{COMMA} +STR_TOWN_VIEW_CARGO_LAST_MONTH_MAX :{BLACK}{CARGO_LIST} siste måned: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA} STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Varebehov for byvekst: STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED} påkrevd STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} nødvendig om vinteren @@ -3292,6 +3367,9 @@ STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Gå til STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Produksjonsnivå: {YELLOW}{COMMA}% STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Næringen har annonsert snarlig nedleggelse! +STR_INDUSTRY_VIEW_REQUIRES_N_CARGO :{BLACK}Trenger: {YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_PRODUCES_N_CARGO :{BLACK}Produserer: {YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION :, {STRING}{STRING} STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Krever: STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING} @@ -3349,6 +3427,7 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupper STR_GROUP_CREATE_TOOLTIP :{BLACK}Klikk for å opprette en gruppe STR_GROUP_DELETE_TOOLTIP :{BLACK}Fjern den valgte gruppen STR_GROUP_RENAME_TOOLTIP :{BLACK}Gi nytt navn på den valgte gruppen +STR_GROUP_LIVERY_TOOLTIP :{BLACK}Endre firmafarger for valgt gruppe STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klikk for å beskytte denne gruppen fra global autoerstatning STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Slette gruppe @@ -3392,6 +3471,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Kapasite STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Lokomotivvogner: {GOLD}+{POWER}{BLACK} Vekt: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Kan bygges om til: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Alle varetyper +STR_PURCHASE_INFO_NONE :Ingen STR_PURCHASE_INFO_ALL_BUT :Alt utenom {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Maks trekkraft: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Rekkevidde: {GOLD}{COMMA} ruter @@ -3791,6 +3871,7 @@ STR_ORDER_CONDITIONAL_AGE :Alder (år) STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Trenger vedlikehold STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Alltid STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Gjenstående levetid (år) +STR_ORDER_CONDITIONAL_MAX_RELIABILITY :Maksimal pålitelighet STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Hvordan sammenligne kjøretøyets data til den gitte verdi STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :er lik @@ -4224,6 +4305,7 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... denn STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... veien vender i feil retning STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... gjennomkjøringsstopper kan ikke ha hjørner STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... gjennomkjøringsstopper kan ikke ha kryss +STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... veien er enveiskjørt eller blokkert # Station destruction related errors STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Kan ikke fjerne del av stasjonen... @@ -4475,6 +4557,8 @@ STR_BASESOUNDS_DOS_DESCRIPTION :Originale lyder STR_BASESOUNDS_WIN_DESCRIPTION :Originale lyder fra Transport Tycoon Deluxe for Windows. STR_BASESOUNDS_NONE_DESCRIPTION :En lydpakke uten noen lyder. STR_BASEMUSIC_WIN_DESCRIPTION :Original musikk fra Transport Tycoon Deluxe for Windows. +STR_BASEMUSIC_DOS_DESCRIPTION :Original Transport Tycoon Deluxe DOS edition music. +STR_BASEMUSIC_TTO_DESCRIPTION :Original Transport Tycoon (Original/World Editor) DOS edition music. STR_BASEMUSIC_NONE_DESCRIPTION :En musikkpakke uten noe musikk. ##id 0x2000 From aa737715ddef17f448e4121199bd10c0e70fcaaa Mon Sep 17 00:00:00 2001 From: PeterN Date: Mon, 11 Feb 2019 18:59:55 +0000 Subject: [PATCH 33/38] Fix #7151: AI start date deviation was still applied when not set to a random AI. (#7223) --- src/ai/ai_config.cpp | 9 +++++++++ src/ai/ai_config.hpp | 4 +--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/ai/ai_config.cpp b/src/ai/ai_config.cpp index 20e913c2e9..a782814786 100644 --- a/src/ai/ai_config.cpp +++ b/src/ai/ai_config.cpp @@ -35,6 +35,15 @@ ScriptConfigItem _start_date_config = { false }; +AIConfig::AIConfig(const AIConfig *config) : ScriptConfig(config) +{ + /* Override start_date as per AIConfig::AddRandomDeviation(). + * This is necessary because the ScriptConfig constructor will instead call + * ScriptConfig::AddRandomDeviation(). */ + int start_date = config->GetSetting("start_date"); + this->SetSetting("start_date", start_date != 0 ? max(1, this->GetSetting("start_date")) : 0); +} + /* static */ AIConfig *AIConfig::GetConfig(CompanyID company, ScriptSettingSource source) { AIConfig **config; diff --git a/src/ai/ai_config.hpp b/src/ai/ai_config.hpp index 600ae1af93..30c6f84bbd 100644 --- a/src/ai/ai_config.hpp +++ b/src/ai/ai_config.hpp @@ -26,9 +26,7 @@ public: ScriptConfig() {} - AIConfig(const AIConfig *config) : - ScriptConfig(config) - {} + AIConfig(const AIConfig *config); class AIInfo *GetInfo() const; From 6b5ebe2b098994abd9514ff59b64bae7d0313fa6 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 12 Feb 2019 19:45:44 +0100 Subject: [PATCH 34/38] Update: Translations from eints english (us): 64 changes by njn polish: 2 changes by McZapkie danish: 1 change by njn french: 2 changes by glx --- src/lang/danish.txt | 1 + src/lang/english_US.txt | 65 ++++++++++++++++++++++++++++++++++++++++- src/lang/french.txt | 2 ++ src/lang/polish.txt | 2 ++ 4 files changed, 69 insertions(+), 1 deletion(-) diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 906e5ff1d5..c415430b97 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -2779,6 +2779,7 @@ STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Ingen in STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING} STR_SAVELOAD_FILTER_TITLE :{BLACK}Filter-udtryk: +STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Overskriv fil STR_SAVELOAD_OSKTITLE :{BLACK}Skriv et navn til det gemte spil diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 4afd9de274..0f3baee134 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -189,6 +189,8 @@ STR_COLOUR_ORANGE :Orange STR_COLOUR_BROWN :Brown STR_COLOUR_GREY :Gray STR_COLOUR_WHITE :White +STR_COLOUR_RANDOM :Random +STR_COLOUR_DEFAULT :Default # Units used in OpenTTD STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph @@ -475,6 +477,7 @@ STR_ABOUT_MENU_SCREENSHOT :Screenshot STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Fully zoomed in screenshot STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Default zoom screenshot STR_ABOUT_MENU_GIANT_SCREENSHOT :Whole map screenshot +STR_ABOUT_MENU_SHOW_FRAMERATE :Show frame rate STR_ABOUT_MENU_ABOUT_OPENTTD :About 'OpenTTD' STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite aligner STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Toggle bounding boxes @@ -814,6 +817,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(President) STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} sponsored construction of new town {TOWN}! +STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}A new town called {TOWN} has been constructed! STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}New {STRING} under construction near {TOWN}! STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}New {STRING} being planted near {TOWN}! @@ -926,6 +930,8 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :South African R STR_GAME_OPTIONS_CURRENCY_CUSTOM :Custom... STR_GAME_OPTIONS_CURRENCY_GEL :Georgian Lari (GEL) STR_GAME_OPTIONS_CURRENCY_IRR :Iranian Rial (IRR) +STR_GAME_OPTIONS_CURRENCY_RUB :New Russian Ruble (RUB) +STR_GAME_OPTIONS_CURRENCY_MXN :Mexican Peso (MXN) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Road vehicles @@ -1255,6 +1261,8 @@ STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Changing STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Infrastructure maintenance: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :When enabled, infrastructure causes maintenance costs. The cost grows over-proportional with the network size, thus affecting bigger companies more than smaller ones +STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR :Starting company color: {STRING} +STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT :Choose starting color for the company STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Airports never expire: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Enabling this setting makes each airport type stay available forever after its introduction @@ -1813,6 +1821,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Change c STR_CHEAT_SETUP_PROD :{LTBLUE}Enable modifying production values: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}{COMPANY} - Color Scheme STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Show general color schemes STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Show train color schemes @@ -2374,7 +2383,7 @@ STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Path Sig STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}One-way Path Signal (electric){}A path signal allows more than one train to enter a signal block at the same time, if the train can reserve a path to a safe stopping point. One-way path signals can't be passed from the back side STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Signal Convert{}When selected, clicking an existing signal will convert it to the selected signal type and variant. Ctrl+Click will toggle the existing variant. Shift+Click shows estimated conversion cost STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Dragging signal density -STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Decrease dragging signal density +STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Decrease dragging signal distance STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Increase dragging signal density # Bridge selection window @@ -2698,9 +2707,51 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 The OpenTTD team # Framerate display window +STR_FRAMERATE_CAPTION :{WHITE}Frame rate +STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x) +STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Simulation rate: {STRING} +STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Number of game ticks simulated per second. +STR_FRAMERATE_RATE_BLITTER :{BLACK}Graphics frame rate: {STRING} +STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Number of video frames rendered per second. +STR_FRAMERATE_SPEED_FACTOR :{BLACK}Current game speed factor: {DECIMAL}x +STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}How fast the game is currently running, compared to the expected speed at normal simulation rate. +STR_FRAMERATE_CURRENT :{WHITE}Current +STR_FRAMERATE_AVERAGE :{WHITE}Average +STR_FRAMERATE_DATA_POINTS :{BLACK}Data based on {COMMA} measurements +STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms +STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms +STR_FRAMERATE_MS_BAD :{RED}{DECIMAL} ms +STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} frames/s +STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} frames/s +STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} frames/s +STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms ############ Leave those lines in this order!! +STR_FRAMERATE_GAMELOOP :{BLACK}Game loop total: +STR_FRAMERATE_GL_ECONOMY :{BLACK} Cargo handling: +STR_FRAMERATE_GL_TRAINS :{BLACK} Train ticks: +STR_FRAMERATE_GL_ROADVEHS :{BLACK} Road vehicle ticks: +STR_FRAMERATE_GL_SHIPS :{BLACK} Ship ticks: +STR_FRAMERATE_GL_AIRCRAFT :{BLACK} Aircraft ticks: +STR_FRAMERATE_GL_LANDSCAPE :{BLACK} World ticks: +STR_FRAMERATE_GL_LINKGRAPH :{BLACK} Link graph delay: +STR_FRAMERATE_DRAWING :{BLACK}Graphics rendering: +STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} World viewports: +STR_FRAMERATE_VIDEO :{BLACK}Video output: +STR_FRAMERATE_SOUND :{BLACK}Sound mixing: ############ End of leave-in-this-order ############ Leave those lines in this order!! +STR_FRAMETIME_CAPTION_GAMELOOP :Game loop +STR_FRAMETIME_CAPTION_GL_ECONOMY :Cargo handling +STR_FRAMETIME_CAPTION_GL_TRAINS :Train ticks +STR_FRAMETIME_CAPTION_GL_ROADVEHS :Road vehicle ticks +STR_FRAMETIME_CAPTION_GL_SHIPS :Ship ticks +STR_FRAMETIME_CAPTION_GL_AIRCRAFT :Aircraft ticks +STR_FRAMETIME_CAPTION_GL_LANDSCAPE :World ticks +STR_FRAMETIME_CAPTION_GL_LINKGRAPH :Link graph delay +STR_FRAMETIME_CAPTION_DRAWING :Graphics rendering +STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :World viewport rendering +STR_FRAMETIME_CAPTION_VIDEO :Video output +STR_FRAMETIME_CAPTION_SOUND :Sound mixing ############ End of leave-in-this-order @@ -2726,6 +2777,9 @@ STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Game Det STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}No information available STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING} +STR_SAVELOAD_FILTER_TITLE :{BLACK}Filter string: +STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Overwrite File +STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}Are you sure you want to overwrite the existing file? STR_SAVELOAD_OSKTITLE :{BLACK}Enter a name for the savegame @@ -2843,7 +2897,12 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Version: STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Min. compatible version: {SILVER}{NUM} STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Palette: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Default (D) +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Default (D) / 32 bpp +STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Legacy (W) +STR_NEWGRF_SETTINGS_PALETTE_LEGACY_32BPP :Legacy (W) / 32 bpp STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parameters: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PARAMETER_NONE :None STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}No information available STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Matching file not found @@ -2924,6 +2983,7 @@ STR_NEWGRF_ERROR_READ_BOUNDS :Read past end o STR_NEWGRF_ERROR_GRM_FAILED :Requested GRF resources not available (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} was disabled by {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/unknown sprite layout format (sprite {3:NUM}) +STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Too many elements in property value list (sprite {3:NUM}, property {4:HEX}) # NewGRF related 'general' warnings STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Caution! @@ -3358,6 +3418,7 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Groups - STR_GROUP_CREATE_TOOLTIP :{BLACK}Click to create a group STR_GROUP_DELETE_TOOLTIP :{BLACK}Delete the selected group STR_GROUP_RENAME_TOOLTIP :{BLACK}Rename the selected group +STR_GROUP_LIVERY_TOOLTIP :{BLACK}Change livery of the selected group STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Click to protect this group from global autoreplace STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Delete Group @@ -3401,6 +3462,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Capacity STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Powered Wagons: {GOLD}+{POWER}{BLACK} Weight: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Refittable to: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :All cargo types +STR_PURCHASE_INFO_NONE :None STR_PURCHASE_INFO_ALL_BUT :All but {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Tractive Effort: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Range: {GOLD}{COMMA} tiles @@ -3800,6 +3862,7 @@ STR_ORDER_CONDITIONAL_AGE :Age (years) STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Requires maintenance STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Always STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Remaining lifetime (years) +STR_ORDER_CONDITIONAL_MAX_RELIABILITY :Maximum reliability STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}How to compare the vehicle data to the given value STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :is equal to diff --git a/src/lang/french.txt b/src/lang/french.txt index 3b108cb9ed..a1b3fe2ade 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -2780,6 +2780,8 @@ STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Pas d'in STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}{NBSP}: {WHITE}{STRING} STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF{NBSP}: {WHITE}{STRING} STR_SAVELOAD_FILTER_TITLE :{BLACK}Filtre{NBSP}: +STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Écraser le fichier +STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}Êtes-vous sûr de vouloir écraser le fichier existant{NBSP}? STR_SAVELOAD_OSKTITLE :{BLACK}Entrer un nom pour la sauvegarde diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 881494d78e..682fd5688f 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -1640,6 +1640,7 @@ STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Zmiana t STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Utrzymywanie infrastruktury: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Kiedy włączone, utrzymanie infrastruktury jest naliczane w kosztach. Koszty wzrastają nadproporcjonalnie do rozmiarów sieci połączeń, a więc dotykają bardziej duże niż małe firmy +STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR :Początkowy kolor firmy: {STRING} STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT :Wybierz początkowy kolor dla firmy STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Pozwól budować stare lotniska: {STRING} @@ -3776,6 +3777,7 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupy - STR_GROUP_CREATE_TOOLTIP :{BLACK}Kliknij aby stworzyć grupę STR_GROUP_DELETE_TOOLTIP :{BLACK}Usuń zaznaczoną grupę STR_GROUP_RENAME_TOOLTIP :{BLACK}Zmień nazwę zaznaczonej grupy +STR_GROUP_LIVERY_TOOLTIP :{BLACK}Zmień kolor zaznaczonej grupy STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Kliknij, aby ochronić tę grupę przed globalną zamianą pojazdów STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Skasuj Grupę From 412e6132b60ad5db8912643befb0b895f4e11710 Mon Sep 17 00:00:00 2001 From: Thomas den Hollander Date: Sun, 3 Feb 2019 14:39:36 +0100 Subject: [PATCH 35/38] Fix: CompanyEconomy documentation Company income was described as an unsigned integer, but it should be signed. --- src/network/core/tcp_admin.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/core/tcp_admin.h b/src/network/core/tcp_admin.h index 72c2e1160e..e141a191a8 100644 --- a/src/network/core/tcp_admin.h +++ b/src/network/core/tcp_admin.h @@ -363,7 +363,7 @@ protected: * uint8 ID of the company. * uint64 Money. * uint64 Loan. - * uint64 Income. + * int64 Income. * uint16 Delivered cargo (this quarter). * uint64 Company value (last quarter). * uint16 Performance (last quarter). From 46d97239c4aaead07e61f676fa88268b5b5208fa Mon Sep 17 00:00:00 2001 From: Niels Martin Hansen Date: Sun, 10 Feb 2019 18:01:30 +0100 Subject: [PATCH 36/38] Codechange: Include flag for whether a build is of a tagged revision --- Makefile.src.in | 5 +++-- findversion.sh | 5 ++++- projects/determineversion.vbs | 22 +++++++++++++++------- src/rev.cpp.in | 7 +++++++ src/rev.h | 1 + 5 files changed, 30 insertions(+), 10 deletions(-) diff --git a/Makefile.src.in b/Makefile.src.in index 94534fd60f..19231d45ce 100644 --- a/Makefile.src.in +++ b/Makefile.src.in @@ -91,6 +91,7 @@ MODIFIED := $(shell echo "$(VERSIONS)" | cut -f 3 -d' ') VERSION := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ') ISODATE := $(shell echo "$(VERSIONS)" | cut -f 2 -d' ') GITHASH := $(shell echo "$(VERSIONS)" | cut -f 4 -d' ') +ISTAG := $(shell echo "$(VERSIONS)" | cut -f 5 -d' ') # Make sure we have something in VERSION and ISODATE ifeq ($(VERSION),) @@ -276,10 +277,10 @@ endif # Revision files $(SRC_DIR)/rev.cpp: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/rev.cpp.in - $(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!MODIFIED!!@$(MODIFIED)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g" > $(SRC_DIR)/rev.cpp + $(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!MODIFIED!!@$(MODIFIED)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g;s@!!ISTAG!!@$(ISTAG)@g" > $(SRC_DIR)/rev.cpp $(SRC_DIR)/os/windows/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/os/windows/ottdres.rc.in - $(Q)cat $(SRC_DIR)/os/windows/ottdres.rc.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g" > $(SRC_DIR)/os/windows/ottdres.rc + $(Q)cat $(SRC_DIR)/os/windows/ottdres.rc.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g;s@!!ISTAG!!@$(ISTAG)@g" > $(SRC_DIR)/os/windows/ottdres.rc FORCE: diff --git a/findversion.sh b/findversion.sh index 5d2322adb7..37e483cae3 100755 --- a/findversion.sh +++ b/findversion.sh @@ -82,8 +82,10 @@ if [ -d "$ROOT_DIR/.git" ]; then if [ -n "$TAG" ]; then VERSION="${TAG}" + ISTAG="1" else VERSION="${ISODATE}-${BRANCH}${hashprefix}${SHORTHASH}" + ISTAG="0" fi elif [ -f "$ROOT_DIR/.ottdrev" ]; then @@ -99,6 +101,7 @@ else ISODATE="" TAG="" VERSION="" + ISTAG="0" fi -echo "$VERSION $ISODATE $MODIFIED $HASH" +echo "$VERSION $ISODATE $MODIFIED $HASH $ISTAG" diff --git a/projects/determineversion.vbs b/projects/determineversion.vbs index 98c704553c..a2f348faf0 100755 --- a/projects/determineversion.vbs +++ b/projects/determineversion.vbs @@ -21,34 +21,40 @@ Sub FindReplaceInFile(filename, to_find, replacement) file.Close End Sub -Sub UpdateFile(modified, isodate, version, cur_date, githash, filename) +Sub UpdateFile(modified, isodate, version, cur_date, githash, istag, filename) FSO.CopyFile filename & ".in", filename FindReplaceInFile filename, "!!MODIFIED!!", modified FindReplaceInFile filename, "!!ISODATE!!", isodate FindReplaceInFile filename, "!!VERSION!!", version FindReplaceInFile filename, "!!DATE!!", cur_date FindReplaceInFile filename, "!!GITHASH!!", githash + FindReplaceInFile filename, "!!ISTAG!!", istag End Sub Sub UpdateFiles(version) - Dim modified, isodate, cur_date, githash + Dim modified, isodate, cur_date, githash, istag cur_date = DatePart("D", Date) & "." & DatePart("M", Date) & "." & DatePart("YYYY", Date) If InStr(version, Chr(9)) Then + ' Split string into field with tails isodate = Mid(version, InStr(version, Chr(9)) + 1) modified = Mid(isodate, InStr(isodate, Chr(9)) + 1) githash = Mid(modified, InStr(modified, Chr(9)) + 1) + istag = Mid(githash, InStr(githash, Chr(9)) + 1) + ' Remove tails from fields + version = Mid(version, 1, InStr(version, Chr(9)) - 1) isodate = Mid(isodate, 1, InStr(isodate, Chr(9)) - 1) modified = Mid(modified, 1, InStr(modified, Chr(9)) - 1) - version = Mid(version, 1, InStr(version, Chr(9)) - 1) + githash = Mid(githash, 1, InStr(githash, Chr(9)) - 1) Else isodate = 0 modified = 1 githash = "" + istag = 0 End If - UpdateFile modified, isodate, version, cur_date, githash, "../src/rev.cpp" - UpdateFile modified, isodate, version, cur_date, githash, "../src/os/windows/ottdres.rc" + UpdateFile modified, isodate, version, cur_date, githash, istag, "../src/rev.cpp" + UpdateFile modified, isodate, version, cur_date, githash, istag, "../src/os/windows/ottdres.rc" End Sub Function DetermineVersion() @@ -137,7 +143,7 @@ Function DetermineVersion() DetermineVersion = "norev000" modified = 1 Else - Dim version, hashprefix + Dim version, hashprefix, istag If modified = 0 Then hashprefix = "-g" ElseIf modified = 2 Then @@ -148,11 +154,13 @@ Function DetermineVersion() If tag <> "" Then version = tag + istag = 1 Else version = isodate & "-" & branch & hashprefix & shorthash + istag = 0 End If - DetermineVersion = version & Chr(9) & isodate & Chr(9) & modified & Chr(9) & hash + DetermineVersion = version & Chr(9) & isodate & Chr(9) & modified & Chr(9) & hash & Chr(9) & istag End If End Function diff --git a/src/rev.cpp.in b/src/rev.cpp.in index 3c68e18ebf..b4855d4cc8 100644 --- a/src/rev.cpp.in +++ b/src/rev.cpp.in @@ -62,6 +62,13 @@ const char _openttd_revision_hash[] = "!!GITHASH!!"; */ const byte _openttd_revision_modified = !!MODIFIED!!; +/** + * Indicate whether this is a tagged version. + * If this is non-0, then _openttd_revision is the name of the tag, + * and the version is likely a beta, release candidate, or real release. + */ +const byte _openttd_revision_tagged = !!ISTAG!!; + /** * The NewGRF revision of OTTD: * bits meaning. diff --git a/src/rev.h b/src/rev.h index 55fc086992..55674cc805 100644 --- a/src/rev.h +++ b/src/rev.h @@ -16,6 +16,7 @@ extern const char _openttd_revision[]; extern const char _openttd_build_date[]; extern const char _openttd_revision_hash[]; extern const byte _openttd_revision_modified; +extern const byte _openttd_revision_tagged; extern const uint32 _openttd_newgrf_version; bool IsReleasedVersion(); From 830ed6be6114b2b1ed6680c3acc422cd8a849874 Mon Sep 17 00:00:00 2001 From: Niels Martin Hansen Date: Sun, 10 Feb 2019 18:04:48 +0100 Subject: [PATCH 37/38] Fix: Do not mangle tagged revision strings for network revision strings --- src/network/network.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/network/network.cpp b/src/network/network.cpp index d70d800f9c..4727e33443 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -1121,8 +1121,11 @@ const char * GetNetworkRevisionString() /* Ensure it's not longer than the packet buffer length. */ if (strlen(network_revision) >= NETWORK_REVISION_LENGTH) network_revision[NETWORK_REVISION_LENGTH - 1] = '\0'; - /* Release version names are not mangled further. */ - if (IsReleasedVersion()) return network_revision; + /* Tag names are not mangled further. */ + if (_openttd_revision_tagged) { + DEBUG(net, 1, "Network revision name is '%s'", network_revision); + return network_revision; + } /* Prepare a prefix of the git hash. * Size is length + 1 for terminator, +2 for -g prefix. */ @@ -1140,6 +1143,7 @@ const char * GetNetworkRevisionString() /* Replace the git hash in revision string. */ strecpy(network_revision + hashofs, githash_suffix, network_revision + NETWORK_REVISION_LENGTH); assert(strlen(network_revision) < NETWORK_REVISION_LENGTH); // strlen does not include terminator, constant does, hence strictly less than + DEBUG(net, 1, "Network revision name is '%s'", network_revision); } return network_revision; @@ -1159,6 +1163,11 @@ bool IsNetworkCompatibleVersion(const char *other) { if (strncmp(GetNetworkRevisionString(), other, NETWORK_REVISION_LENGTH - 1) == 0) return true; + /* If this version is tagged, then the revision string must be a complete match, + * since there is no git hash suffix in it. + * This is needed to avoid situations like "1.9.0-beta1" comparing equal to "2.0.0-beta1". */ + if (_openttd_revision_tagged) return false; + const char *hash1 = ExtractNetworkRevisionHash(GetNetworkRevisionString()); const char *hash2 = ExtractNetworkRevisionHash(other); return hash1 && hash2 && (strncmp(hash1, hash2, GITHASH_SUFFIX_LEN) == 0); From c0c8fb25fb84d498207713f89720e38a98f16435 Mon Sep 17 00:00:00 2001 From: PeterN Date: Wed, 13 Feb 2019 09:01:49 +0000 Subject: [PATCH 38/38] Change: Use SlErrorCorrupt() on pool index error when loading a savegame, instead of terminating. (#7219) --- src/core/pool_func.hpp | 8 +++++--- src/saveload/saveload.cpp | 19 +++++++++++++++++++ src/saveload/saveload.h | 1 + 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/core/pool_func.hpp b/src/core/pool_func.hpp index 5569addbd7..64af175649 100644 --- a/src/core/pool_func.hpp +++ b/src/core/pool_func.hpp @@ -152,18 +152,20 @@ DEFINE_POOL_METHOD(void *)::GetNew(size_t size) * @param size size of item * @param index index of item * @return pointer to allocated item - * @note usererror() on failure! (index out of range or already used) + * @note SlErrorCorruptFmt() on failure! (index out of range or already used) */ DEFINE_POOL_METHOD(void *)::GetNew(size_t size, size_t index) { + extern void NORETURN SlErrorCorruptFmt(const char *format, ...); + if (index >= Tmax_size) { - usererror("failed loading savegame: %s index " PRINTF_SIZE " out of range (" PRINTF_SIZE ")", this->name, index, Tmax_size); + SlErrorCorruptFmt("%s index " PRINTF_SIZE " out of range (" PRINTF_SIZE ")", this->name, index, Tmax_size); } if (index >= this->size) this->ResizeFor(index); if (this->data[index] != NULL) { - usererror("failed loading savegame: %s index " PRINTF_SIZE " already in use", this->name, index); + SlErrorCorruptFmt("%s index " PRINTF_SIZE " already in use", this->name, index); } return this->AllocateItem(size, index); diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 9be9506b15..bff85dfc61 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -350,6 +350,25 @@ void NORETURN SlErrorCorrupt(const char *msg) SlError(STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME, msg); } +/** + * Issue an SlErrorCorrupt with a format string. + * @param format format string + * @param ... arguments to format string + * @note This function does never return as it throws an exception to + * break out of all the saveload code. + */ +void NORETURN SlErrorCorruptFmt(const char *format, ...) +{ + va_list ap; + char msg[256]; + + va_start(ap, format); + vseprintf(msg, lastof(msg), format, ap); + va_end(ap); + + SlErrorCorrupt(msg); +} + typedef void (*AsyncSaveFinishProc)(); ///< Callback for when the savegame loading is finished. static AsyncSaveFinishProc _async_save_finish = NULL; ///< Callback to call when the savegame loading is finished. diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index e5e2e1fa23..ad6b76e05e 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -836,6 +836,7 @@ void SlObject(void *object, const SaveLoad *sld); bool SlObjectMember(void *object, const SaveLoad *sld); void NORETURN SlError(StringID string, const char *extra_msg = NULL); void NORETURN SlErrorCorrupt(const char *msg); +void NORETURN SlErrorCorruptFmt(const char *format, ...); bool SaveloadCrashWithMissingNewGRFs();