From 0c5d61bd56cb8ec4c2caa8aadb9c397c6931b544 Mon Sep 17 00:00:00 2001 From: pasky Date: Sun, 27 Mar 2005 00:28:14 +0000 Subject: (svn r2080) - Fix: [OldAI] p->ai.state_counter was uint16 but could hold a tile index, therefore overflowing - changed that to uint32 and bumped the savegame revision to 32. It *MIGHT* close bug 1151374 - it certainly caused AI to stop building anything sometimes. - While at it, use TileIndex as the tile index type in AiRemovePlayerRailOrRoad() and AiStateRemoveTrack(). - Make the number of tiles scanned 4*MapSizeX() instead of 1000. It *MIGHT* close bug 1116614. --- ai.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'ai.c') diff --git a/ai.c b/ai.c index 18bdc162f..f740cb28d 100644 --- a/ai.c +++ b/ai.c @@ -3640,7 +3640,7 @@ static void AiStateRemoveStation(Player *p) } -static void AiRemovePlayerRailOrRoad(Player *p, uint tile) +static void AiRemovePlayerRailOrRoad(Player *p, TileIndex tile) { byte m5; @@ -3758,10 +3758,11 @@ pos_3: static void AiStateRemoveTrack(Player *p) { - int num = 1000; + /* Was 1000 for standard 8x8 maps. */ + int num = MapSizeX() * 4; do { - uint tile = ++p->ai.state_counter; + TileIndex tile = ++p->ai.state_counter; // Iterated all tiles? if (tile >= MapSize()) { -- cgit v1.2.3-54-g00ecf