diff --git a/src/ai/api/ai_event_types.hpp b/src/ai/api/ai_event_types.hpp index a58fd0ebb7..afbdb5b6fe 100644 --- a/src/ai/api/ai_event_types.hpp +++ b/src/ai/api/ai_event_types.hpp @@ -370,7 +370,7 @@ public: * @param value The value/costs of buying the company. */ AIEventCompanyAskMerger(Owner owner, int32 value) : - AIEvent(AI_ET_COMPANY_MERGER), + AIEvent(AI_ET_COMPANY_ASK_MERGER), owner((AICompany::CompanyID)owner), value(value) {} diff --git a/src/table/townname.h b/src/table/townname.h index 389530081b..7493df355d 100644 --- a/src/table/townname.h +++ b/src/table/townname.h @@ -2115,7 +2115,7 @@ static const char * const _name_slovak_real[] = { "Turcianske Teplice", "Tvrdosin", "Vrable", - "Vranov nad Toplov", + "Vranov nad Toplou", "Zahorska Bystrica", "Zdiar", "Ziar nad Hronom", diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 3abaf88a6d..0956920c70 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -402,9 +402,6 @@ static void MakeSingleHouseBigger(TileIndex tile) { assert(IsTileType(tile, MP_HOUSE)); - /* means it is completed, get out. */ - if (LiftHasDestination(tile)) return; - /* progress in construction stages */ IncHouseConstructionTick(tile); if (GetHouseConstructionTick(tile) != 0) return; @@ -1987,18 +1984,19 @@ static inline bool TownLayoutAllows2x2HouseHere(Town *t, TileIndex tile) /* Allow towns everywhere when we don't build roads */ if (!_settings_game.economy.allow_town_roads && !_generating_world) return true; - /* MapSize() is sure dividable by both MapSizeX() and MapSizeY(), - * so to do only one memory access, use MapSize() */ - uint dx = MapSize() + TileX(t->xy) - TileX(tile); - uint dy = MapSize() + TileY(t->xy) - TileY(tile); + /* Compute relative position of tile. (Positive offsets are towards north) */ + TileIndexDiffC grid_pos = TileIndexToTileIndexDiffC(t->xy, tile); switch (t->layout) { case TL_2X2_GRID: - if ((dx % 3) != 0 || (dy % 3) != 0) return false; + grid_pos.x %= 3; + grid_pos.y %= 3; + if ((grid_pos.x != 2 && grid_pos.x != -1) || + (grid_pos.y != 2 && grid_pos.y != -1)) return false; break; case TL_3X3_GRID: - if ((dx % 4) < 2 || (dy % 4) < 2) return false; + if ((grid_pos.x & 3) < 2 || (grid_pos.y & 3) < 2) return false; break; default: diff --git a/src/video/dedicated_v.cpp b/src/video/dedicated_v.cpp index 37797f7e4d..1ff9b4d6c5 100644 --- a/src/video/dedicated_v.cpp +++ b/src/video/dedicated_v.cpp @@ -24,6 +24,8 @@ #include "../blitter/factory.hpp" #include "../company_func.h" #include "../core/random_func.hpp" +#include "../saveload/saveload.h" +#include "../settings_type.h" #include "dedicated_v.h" #ifdef BEOS_NET_SERVER @@ -70,6 +72,7 @@ static void OS2_SwitchToConsoleMode() /* Signal handlers */ static void DedicatedSignalHandler(int sig) { + if (_game_mode == GM_NORMAL && _settings_client.gui.autosave_on_exit) DoExitSave(); _exit_game = true; signal(sig, DedicatedSignalHandler); }