summaryrefslogtreecommitdiff
path: root/ai
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-03-24 08:55:08 +0000
committertron <tron@openttd.org>2006-03-24 08:55:08 +0000
commitf6285a659c0457b2b468d53885a583e126a07302 (patch)
tree4f245f2fb33365183177a0e7de46103b9c2464d3 /ai
parent8ce4bdfad969dd1d81ad3ab7d1a09dabf0f7a872 (diff)
downloadopenttd-f6285a659c0457b2b468d53885a583e126a07302.tar.xz
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
Diffstat (limited to 'ai')
-rw-r--r--ai/default/default.c15
-rw-r--r--ai/trolly/trolly.c5
2 files changed, 11 insertions, 9 deletions
diff --git a/ai/default/default.c b/ai/default/default.c
index 4ba475e06..e87079dc5 100644
--- a/ai/default/default.c
+++ b/ai/default/default.c
@@ -7,6 +7,7 @@
#include "../../map.h"
#include "../../rail_map.h"
#include "../../road_map.h"
+#include "../../station_map.h"
#include "../../tile.h"
#include "../../player.h"
#include "../../tunnel_map.h"
@@ -2313,11 +2314,11 @@ static void AiStateBuildRail(Player *p)
p->ai.banned_tile_count = 0;
}
-static int AiGetStationIdByDef(TileIndex tile, int id)
+static StationID AiGetStationIdByDef(TileIndex tile, int id)
{
const AiDefaultBlockData *p = _default_rail_track_data[id]->data;
while (p->mode != 1) p++;
- return _m[TILE_ADD(tile, ToTileIndexDiff(p->tileoffs))].m2;
+ return GetStationIndex(TILE_ADD(tile, ToTileIndexDiff(p->tileoffs)));
}
static void AiStateBuildRailVeh(Player *p)
@@ -3096,11 +3097,11 @@ static void AiStateBuildRoad(Player *p)
p->ai.banned_tile_count = 0;
}
-static int AiGetStationIdFromRoadBlock(TileIndex tile, int id)
+static StationID AiGetStationIdFromRoadBlock(TileIndex tile, int id)
{
const AiDefaultBlockData *p = _road_default_block_data[id]->data;
while (p->mode != 1) p++;
- return _m[TILE_ADD(tile, ToTileIndexDiff(p->tileoffs))].m2;
+ return GetStationIndex(TILE_ADD(tile, ToTileIndexDiff(p->tileoffs)));
}
static void AiStateBuildRoadVehicles(Player *p)
@@ -3406,11 +3407,11 @@ static void AiStateBuildDefaultAirportBlocks(Player *p)
p->ai.state = AIS_BUILD_AIRCRAFT_VEHICLES;
}
-static int AiGetStationIdFromAircraftBlock(TileIndex tile, int id)
+static StationID AiGetStationIdFromAircraftBlock(TileIndex tile, int id)
{
const AiDefaultBlockData *p = _airport_default_block_data[id];
while (p->mode != 1) p++;
- return _m[TILE_ADD(tile, ToTileIndexDiff(p->tileoffs))].m2;
+ return GetStationIndex(TILE_ADD(tile, ToTileIndexDiff(p->tileoffs)));
}
static void AiStateBuildAircraftVehicles(Player *p)
@@ -3431,7 +3432,7 @@ static void AiStateBuildAircraftVehicles(Player *p)
/* XXX - Have the AI pick the hangar terminal in an airport. Eg get airport-type
* and offset to the FIRST depot because the AI picks the st->xy tile */
- tile += ToTileIndexDiff(GetAirport(GetStation(_m[tile].m2)->airport_type)->airport_depots[0]);
+ tile += ToTileIndexDiff(GetAirport(GetStationByTile(tile)->airport_type)->airport_depots[0]);
if (CmdFailed(DoCommandByTile(tile, veh, 0, DC_EXEC, CMD_BUILD_AIRCRAFT))) return;
loco_id = _new_aircraft_id;
diff --git a/ai/trolly/trolly.c b/ai/trolly/trolly.c
index 57cac9698..eac7793ae 100644
--- a/ai/trolly/trolly.c
+++ b/ai/trolly/trolly.c
@@ -22,6 +22,7 @@
#include "../../debug.h"
#include "../../functions.h"
#include "../../road_map.h"
+#include "../../station_map.h"
#include "../../table/strings.h"
#include "../../map.h"
#include "../../tile.h"
@@ -1202,7 +1203,7 @@ static void AiNew_State_GiveOrders(Player *p)
idx = 0;
order.type = OT_GOTO_STATION;
order.flags = 0;
- order.station = _m[p->ainew.to_tile].m2;
+ order.station = GetStationIndex(p->ainew.to_tile);
if (p->ainew.tbt == AI_TRUCK && p->ainew.to_deliver)
order.flags |= OF_FULL_LOAD;
AI_DoCommand(0, p->ainew.veh_id + (idx << 16), PackOrder(&order), DC_EXEC, CMD_INSERT_ORDER);
@@ -1210,7 +1211,7 @@ static void AiNew_State_GiveOrders(Player *p)
idx = 0;
order.type = OT_GOTO_STATION;
order.flags = 0;
- order.station = _m[p->ainew.from_tile].m2;
+ order.station = GetStationIndex(p->ainew.from_tile);
if (p->ainew.tbt == AI_TRUCK && p->ainew.from_deliver)
order.flags |= OF_FULL_LOAD;
AI_DoCommand(0, p->ainew.veh_id + (idx << 16), PackOrder(&order), DC_EXEC, CMD_INSERT_ORDER);