summaryrefslogtreecommitdiff
path: root/ai_new.c
diff options
context:
space:
mode:
authordarkvater <darkvater@openttd.org>2004-12-05 21:30:58 +0000
committerdarkvater <darkvater@openttd.org>2004-12-05 21:30:58 +0000
commitc8d83ce557fff5b6271d2fdecee04ac3942cbde2 (patch)
treef2d440d547e1c5d281b00e545695dcddb2298876 /ai_new.c
parent860a39af2ad2b891a0e191317d6e93be0087ab46 (diff)
downloadopenttd-c8d83ce557fff5b6271d2fdecee04ac3942cbde2.tar.xz
(svn r960) -Fix: forgotten conversion of orders for the AI (Tron)
Diffstat (limited to 'ai_new.c')
-rw-r--r--ai_new.c32
1 files changed, 20 insertions, 12 deletions
diff --git a/ai_new.c b/ai_new.c
index 5b31ef902..79c503b71 100644
--- a/ai_new.c
+++ b/ai_new.c
@@ -1114,7 +1114,9 @@ static void AiNew_State_BuildVehicle(Player *p) {
// Put the stations in the order list
static void AiNew_State_GiveOrders(Player *p) {
- int order, flags;
+ int idx;
+ Order order;
+
assert(p->ainew.state == AI_STATE_GIVE_ORDERS);
if (p->ainew.veh_main_id != (VehicleID)-1) {
@@ -1131,23 +1133,29 @@ static void AiNew_State_GiveOrders(Player *p) {
}
// When more then 1 vehicle, we send them to different directions
- order = 0;
- flags = (_map2[p->ainew.from_tile] << 8) | OT_GOTO_STATION;
+ idx = 0;
+ order.type = OT_GOTO_STATION;
+ order.flags = 0;
+ order.station = _map2[p->ainew.from_tile];
if (p->ainew.tbt == AI_TRUCK && p->ainew.from_deliver)
- flags |= OF_FULL_LOAD;
- DoCommandByTile(0, p->ainew.veh_id + (order << 16), flags, DC_EXEC, CMD_INSERT_ORDER);
+ order.flags |= OF_FULL_LOAD;
+ DoCommandByTile(0, p->ainew.veh_id + (idx << 16), PackOrder(&order), DC_EXEC, CMD_INSERT_ORDER);
- order = 1;
- flags = (_map2[p->ainew.to_tile] << 8) | OT_GOTO_STATION;
+ idx = 1;
+ order.type = OT_GOTO_STATION;
+ order.flags = 0;
+ order.station = _map2[p->ainew.to_tile];
if (p->ainew.tbt == AI_TRUCK && p->ainew.to_deliver)
- flags |= OF_FULL_LOAD;
- DoCommandByTile(0, p->ainew.veh_id + (order << 16), flags, DC_EXEC, CMD_INSERT_ORDER);
+ order.flags |= OF_FULL_LOAD;
+ DoCommandByTile(0, p->ainew.veh_id + (idx << 16), PackOrder(&order), DC_EXEC, CMD_INSERT_ORDER);
// Very handy for AI, goto depot.. but yeah, it needs to be activated ;)
if (_patches.gotodepot) {
- order = 2;
- flags = (GetDepotByTile(p->ainew.depot_tile) << 8) | OT_GOTO_DEPOT | OF_UNLOAD;
- DoCommandByTile(0, p->ainew.veh_id + (order << 16), flags, DC_EXEC, CMD_INSERT_ORDER);
+ idx = 2;
+ order.type = OT_GOTO_DEPOT;
+ order.flags = OF_UNLOAD;
+ order.station = GetDepotByTile(p->ainew.depot_tile);
+ DoCommandByTile(0, p->ainew.veh_id + (idx << 16), PackOrder(&order), DC_EXEC, CMD_INSERT_ORDER);
}
// Start the engines!