(svn r3887) Add a function to get the other bridge end when you're at a bridge ramp

This commit is contained in:
tron
2006-03-15 16:44:50 +00:00
parent 962852b732
commit 3d9c76d8b8
5 changed files with 33 additions and 8 deletions

View File

@@ -2146,7 +2146,6 @@ static bool AiRemoveTileAndGoForward(Player *p)
int bit;
const byte *ptr;
TileIndex tile = p->ai.cur_tile_a;
int offs;
TileIndex tilenew;
if (IsTileType(tile, MP_TUNNELBRIDGE)) {
@@ -2164,13 +2163,9 @@ static bool AiRemoveTileAndGoForward(Player *p)
// This is not really needed the first place AiRemoveTileAndGoForward is called.
if (DiagDirToAxis(GetBridgeRampDirection(tile)) != (p->ai.cur_dir_a & 1U)) return false;
// Find other side of bridge.
offs = TileOffsByDir(p->ai.cur_dir_a);
do {
tile = TILE_MASK(tile - offs);
} while (_m[tile].m5 & 0x40);
tile = GetOtherBridgeEnd(tile);
tilenew = TILE_MASK(tile - offs);
tilenew = TILE_MASK(tile - TileOffsByDir(p->ai.cur_dir_a));
// And clear the bridge.
if (CmdFailed(DoCommandByTile(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR)))
return false;