diff options
-rw-r--r-- | openttd-git/PKGBUILD | 4 | ||||
-rw-r--r-- | openttd-git/underground.patch | 168 |
2 files changed, 165 insertions, 7 deletions
diff --git a/openttd-git/PKGBUILD b/openttd-git/PKGBUILD index 4e7e01c50..eabb0b346 100644 --- a/openttd-git/PKGBUILD +++ b/openttd-git/PKGBUILD @@ -2,7 +2,7 @@ pkgname=openttd-git pkgver=29428.f2a9a1e2a _commit=${pkgver#*.} -pkgrel=1 +pkgrel=2 pkgdesc="A FOSS clone of Transport Tycoon Deluxe." arch=('x86_64' 'i686' 'pentium4') url="http://www.openttd.org" @@ -41,7 +41,7 @@ source=( sha512sums=('SKIP' 'd1fdbf90c512530df1f01ccc68b3e0444c27124138b4acdc25717806f786ad1ab9218b5ddd6dd2e2b1f3b39c7fdb0dfe2673b7fb34ec8e4959b75c5a7c0af5a0' 'e6379448a49c0db8b07bb090ed14fe019611667b79506b4441219ee172893b726bdc431943c15a9f8fcc5a7b53de8e557929f10c27af32896a54463e2719e0a6' - '12c3f01534274cddb3d9d7fd5bf1cb70cc403a38e5e3186a4b3dcb70122564907fbc4ad7ee51e823cc130adf1f43d9bc23cb65c081a308c9548b220f9539195a') + 'a67796e9ee0ac285887b723784a75f12e588ff7c63f7c4af974d5c39e09bb5f324e51d2c1623e8c375f3c0ad30123f94b2bd3c2e036e7ab3e05d83a2edf34b87') pkgver() { printf '%s.%s\n' \ diff --git a/openttd-git/underground.patch b/openttd-git/underground.patch index f27946818..1c444eea7 100644 --- a/openttd-git/underground.patch +++ b/openttd-git/underground.patch @@ -97,7 +97,7 @@ index 0467866e50..d69bf21c88 100644 CommandCost BeforeAddTile(TileIndex tile, StationRectMode mode); CommandCost BeforeAddRect(TileIndex tile, int w, int h, StationRectMode mode); diff --git a/src/clear_cmd.cpp b/src/clear_cmd.cpp -index 06953884e1..7759134704 100644 +index 06953884e1..eeaba3f87b 100644 --- a/src/clear_cmd.cpp +++ b/src/clear_cmd.cpp @@ -12,6 +12,7 @@ @@ -147,6 +147,24 @@ index 06953884e1..7759134704 100644 DrawBridgeMiddle(ti); } +@@ -321,7 +345,7 @@ void GenerateClearTile() + SetGeneratingWorldProgress(GWP_ROUGH_ROCKY, gi + i); + do { + IncreaseGeneratingWorldProgress(GWP_ROUGH_ROCKY); +- tile = RandomTile(); ++ tile = TopTile(RandomTile()); + if (IsTileType(tile, MP_CLEAR) && !IsClearGround(tile, CLEAR_DESERT)) SetClearGroundDensity(tile, CLEAR_ROUGH, 3); + } while (--i); + +@@ -329,7 +353,7 @@ void GenerateClearTile() + i = gi; + do { + uint32 r = Random(); +- tile = RandomTileSeed(r); ++ tile = TopTile(RandomTileSeed(r)); + + IncreaseGeneratingWorldProgress(GWP_ROUGH_ROCKY); + if (IsTileType(tile, MP_CLEAR) && !IsClearGround(tile, CLEAR_DESERT)) { diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 4706bfd914..bcffd6373c 100644 --- a/src/console_cmds.cpp @@ -167,6 +185,43 @@ index 4706bfd914..bcffd6373c 100644 _settings_game.game_creation.map_x = MapLogX(); _settings_game.game_creation.map_y = FindFirstBit(MapSizeY()); _switch_mode = SM_RESTARTGAME; +diff --git a/src/disaster_vehicle.cpp b/src/disaster_vehicle.cpp +index 1244f99aba..6d5defaace 100644 +--- a/src/disaster_vehicle.cpp ++++ b/src/disaster_vehicle.cpp +@@ -325,7 +325,7 @@ static bool DisasterTick_Ufo(DisasterVehicle *v) + return true; + } + if (++v->age < 6) { +- v->dest_tile = RandomTile(); ++ v->dest_tile = TopTile(RandomTile()); + return true; + } + v->current_order.SetDestination(1); +@@ -572,12 +572,12 @@ static bool DisasterTick_Big_Ufo(DisasterVehicle *v) + } + + if (++v->age < 6) { +- v->dest_tile = RandomTile(); ++ v->dest_tile = TopTile(RandomTile()); + return true; + } + v->current_order.SetDestination(1); + +- TileIndex tile_org = RandomTile(); ++ TileIndex tile_org = TopTile(RandomTile()); + TileIndex tile = tile_org; + do { + if (IsPlainRailTile(tile) && +@@ -958,7 +958,7 @@ void ReleaseDisastersTargetingVehicle(VehicleID vehicle) + if (v->current_order.GetDestination() != 0 && v->dest_tile == vehicle) { + /* Revert to target-searching */ + v->current_order.SetDestination(0); +- v->dest_tile = RandomTile(); ++ v->dest_tile = TopTile(RandomTile()); + GetAircraftFlightLevelBounds(v, &v->z_pos, nullptr); + v->age = 0; + } diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index 154097e722..62fa1966eb 100644 --- a/src/genworld_gui.cpp @@ -366,7 +421,7 @@ index fab93c9802..f345f5ee6d 100644 for (row = 0; (uint)row < height; row++) { for (col = 0; (uint)col < width; col++) { diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp -index 35def46098..c5a5ac03d1 100644 +index 35def46098..ad35d12b8f 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -12,6 +12,7 @@ @@ -386,8 +441,26 @@ index 35def46098..c5a5ac03d1 100644 return_cmd_error(STR_ERROR_SITE_UNSUITABLE); } +@@ -2013,7 +2014,7 @@ CommandCost CmdBuildIndustry(TileIndex tile, DoCommandFlag flags, uint32 p1, uin + /* We should not have more than one Random() in a function call + * because parameter evaluation order is not guaranteed in the c++ standard + */ +- tile = RandomTile(); ++ tile = TopTile(RandomTile()); + /* Start with a random layout */ + size_t layout = RandomRange((uint32)num_layouts); + /* Check now each layout, starting with the random one */ +@@ -2154,7 +2155,7 @@ static Industry *PlaceIndustry(IndustryType type, IndustryAvailabilityCallType c + { + uint tries = try_hard ? 10000u : 2000u; + for (; tries > 0; tries--) { +- Industry *ind = CreateNewIndustry(RandomTile(), type, creation_type); ++ Industry *ind = CreateNewIndustry(TopTile(RandomTile()), type, creation_type); + if (ind != nullptr) return ind; + } + return nullptr; diff --git a/src/landscape.cpp b/src/landscape.cpp -index e97d9cff03..4ad3b9b6cf 100644 +index e97d9cff03..4d23033406 100644 --- a/src/landscape.cpp +++ b/src/landscape.cpp @@ -33,6 +33,7 @@ @@ -431,6 +504,15 @@ index e97d9cff03..4ad3b9b6cf 100644 } static const byte _genterrain_tbl_1[5] = { 10, 22, 33, 37, 4 }; +@@ -1277,7 +1284,7 @@ static void CreateRivers() + for (; wells != 0; wells--) { + IncreaseGeneratingWorldProgress(GWP_RIVER); + for (int tries = 0; tries < 128; tries++) { +- TileIndex t = RandomTile(); ++ TileIndex t = TopTile(RandomTile()); + if (!CircularTileSearch(&t, 8, FindSpring, nullptr)) continue; + if (FlowRiver(t, t)) break; + } diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 4fbca76b54..a6313c2a44 100644 --- a/src/lang/afrikaans.txt @@ -1796,6 +1878,28 @@ index ff2fc3a23c..74b59d294b 100644 GetString(this->landinfo_data[line_nr], STR_LAND_AREA_INFORMATION_LANDINFO_COORDS, lastof(this->landinfo_data[line_nr])); line_nr++; +diff --git a/src/object_cmd.cpp b/src/object_cmd.cpp +index 3fb61d647e..3b08cc637d 100644 +--- a/src/object_cmd.cpp ++++ b/src/object_cmd.cpp +@@ -695,7 +695,7 @@ static bool TryBuildLightHouse() + */ + static bool TryBuildTransmitter() + { +- TileIndex tile = RandomTile(); ++ TileIndex tile = TopTile(RandomTile()); + int h; + if (IsTileType(tile, MP_CLEAR) && IsTileFlat(tile, &h) && h >= 4 && !IsBridgeAbove(tile)) { + TileIndex t = tile; +@@ -759,7 +759,7 @@ void GenerateObjects() + + default: + uint8 view = RandomRange(spec->views); +- if (CmdBuildObject(RandomTile(), DC_EXEC | DC_AUTO | DC_NO_TEST_TOWN_RATING | DC_NO_MODIFY_TOWN_RATING, i, view, nullptr).Succeeded()) amount--; ++ if (CmdBuildObject(TopTile(RandomTile()), DC_EXEC | DC_AUTO | DC_NO_TEST_TOWN_RATING | DC_NO_MODIFY_TOWN_RATING, i, view, nullptr).Succeeded()) amount--; + break; + } + } diff --git a/src/rail.h b/src/rail.h index d9121d545a..ee27f6e179 100644 --- a/src/rail.h @@ -2748,7 +2852,7 @@ index 303e4c7293..2f0a37a55c 100644 SPR_IMG_MESSAGES, // WID_TN_MESSAGES SPR_IMG_QUERY, // WID_TN_HELP diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp -index 507cccd565..b1a722635f 100644 +index 507cccd565..1918651405 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -12,6 +12,7 @@ @@ -2759,6 +2863,15 @@ index 507cccd565..b1a722635f 100644 #include "viewport_func.h" #include "viewport_kdtree.h" #include "cmd_helper.h" +@@ -2095,7 +2096,7 @@ static Town *CreateRandomTown(uint attempts, uint32 townnameparts, TownSize size + + do { + /* Generate a tile index not too close from the edge */ +- TileIndex tile = AlignTileToGrid(RandomTile(), layout); ++ TileIndex tile = AlignTileToGrid(TopTile(RandomTile()), layout); + + /* if we tried to place the town on water, slide it over onto + * the nearest likely-looking spot */ @@ -2271,6 +2272,9 @@ static inline bool CanBuildHouseHere(TileIndex tile, bool noslope) Slope slope = GetTileSlope(tile); if ((noslope && slope != SLOPE_FLAT) || IsSteepSlope(slope)) return false; @@ -2779,7 +2892,7 @@ index 507cccd565..b1a722635f 100644 } return CommandCost(); diff --git a/src/tree_cmd.cpp b/src/tree_cmd.cpp -index 012904fdce..8036ebcf2e 100644 +index 012904fdce..d8f4f2bd78 100644 --- a/src/tree_cmd.cpp +++ b/src/tree_cmd.cpp @@ -11,6 +11,7 @@ @@ -2800,6 +2913,33 @@ index 012904fdce..8036ebcf2e 100644 default: return false; } +@@ -184,7 +186,7 @@ static void PlaceTree(TileIndex tile, uint32 r) + static void PlaceTreeGroups(uint num_groups) + { + do { +- TileIndex center_tile = RandomTile(); ++ TileIndex center_tile = TopTile(RandomTile()); + + for (uint i = 0; i < DEFAULT_TREE_STEPS; i++) { + uint32 r = Random(); +@@ -249,7 +251,7 @@ void PlaceTreesRandomly() + if (_game_mode == GM_EDITOR) i /= EDITOR_TREE_DIV; + do { + uint32 r = Random(); +- TileIndex tile = RandomTileSeed(r); ++ TileIndex tile = TopTile(RandomTileSeed(r)); + + IncreaseGeneratingWorldProgress(GWP_TREE); + +@@ -278,7 +280,7 @@ void PlaceTreesRandomly() + + do { + uint32 r = Random(); +- TileIndex tile = RandomTileSeed(r); ++ TileIndex tile = TopTile(RandomTileSeed(r)); + + IncreaseGeneratingWorldProgress(GWP_TREE); + @@ -337,6 +339,10 @@ CommandCost CmdPlantTree(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 const byte tree_to_plant = GB(p1, 0, 8); // We cannot use Extract as min and max are climate specific. @@ -2811,6 +2951,24 @@ index 012904fdce..8036ebcf2e 100644 /* Check the tree type within the current climate */ if (tree_to_plant != TREE_INVALID && !IsInsideBS(tree_to_plant, _tree_base_by_landscape[_settings_game.game_creation.landscape], _tree_count_by_landscape[_settings_game.game_creation.landscape])) return CMD_ERROR; +@@ -759,7 +765,7 @@ void OnTick_Trees() + + /* place a tree at a random rainforest spot */ + if (_settings_game.game_creation.landscape == LT_TROPIC && +- (r = Random(), tile = RandomTileSeed(r), GetTropicZone(tile) == TROPICZONE_RAINFOREST) && ++ (r = Random(), tile = TopTile(RandomTileSeed(r)), GetTropicZone(tile) == TROPICZONE_RAINFOREST) && + CanPlantTreesOnTile(tile, false) && + (tree = GetRandomTreeType(tile, GB(r, 24, 8))) != TREE_INVALID) { + PlantTreesOnTile(tile, tree, 0, 0); +@@ -770,7 +776,7 @@ void OnTick_Trees() + + /* place a tree at a random spot */ + r = Random(); +- tile = RandomTileSeed(r); ++ tile = TopTile(RandomTileSeed(r)); + if (CanPlantTreesOnTile(tile, false) && (tree = GetRandomTreeType(tile, GB(r, 24, 8))) != TREE_INVALID) { + PlantTreesOnTile(tile, tree, 0, 0); + } diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index c5e2f8d9bb..16e6536e76 100644 --- a/src/tunnelbridge_cmd.cpp |