diff options
author | truelight <truelight@openttd.org> | 2005-02-06 20:29:32 +0000 |
---|---|---|
committer | truelight <truelight@openttd.org> | 2005-02-06 20:29:32 +0000 |
commit | cc8fc19d4a1caab042a1b545f37eead2ff62f5ff (patch) | |
tree | dea5801b5c91bbc69b9d02ecad98640ac1b0e031 | |
parent | 2bd8df54e1ca6e7aff9df44b8f98665aadbe2596 (diff) | |
download | openttd-cc8fc19d4a1caab042a1b545f37eead2ff62f5ff.tar.xz |
(svn r1831) -Fix: Scenario Editor now handles human-made roads better (try to build
a city layout before placing the city, finally that works very nice)
-rw-r--r-- | road_cmd.c | 7 | ||||
-rw-r--r-- | town_cmd.c | 14 |
2 files changed, 11 insertions, 10 deletions
diff --git a/road_cmd.c b/road_cmd.c index a9b2ef350..5b221c9d6 100644 --- a/road_cmd.c +++ b/road_cmd.c @@ -966,13 +966,6 @@ static void TileLoop_Road(uint tile) grp = 0; if (t != NULL) { - /* In SE, set the owner to OWNER_TOWN */ - if (_game_mode == GM_EDITOR && _map_owner[tile] != OWNER_TOWN) { - _map_owner[tile] = OWNER_TOWN; - /* XXX - This line is not perfect, any suggestions? */ - _map2[tile] = ClosestTownFromTile(tile, (uint)-1)->index; - } - grp = GetTownRadiusGroup(t, tile); // Show an animation to indicate road work diff --git a/town_cmd.c b/town_cmd.c index 7c9737a05..0c7a16756 100644 --- a/town_cmd.c +++ b/town_cmd.c @@ -729,9 +729,17 @@ static int GrowTownAtRoad(Town *t, uint tile) do block = Random() & 3; while (!HASBIT(mask,block)); tile += ToTileIndexDiff(_roadblock_tileadd[block]); - /* Don't allow building over roads of other cities */ - if (IsTileType(tile, MP_STREET) && _map_owner[tile] == OWNER_TOWN && GetTown(_map2[tile]) != t) - _grow_town_result = -1; + if (IsTileType(tile, MP_STREET)) { + /* Don't allow building over roads of other cities */ + if (_map_owner[tile] == OWNER_TOWN && GetTown(_map2[tile]) != t) + _grow_town_result = -1; + else if (_game_mode == GM_EDITOR) { + /* If we are in the SE, and this road-piece has no town owner yet, it just found an + * owner :) (happy happy happy road now) */ + _map_owner[tile] = OWNER_TOWN; + _map2[tile] = t->index; + } + } // Max number of times is checked. } while (--_grow_town_result >= 0); |