diff options
author | darkvater <darkvater@openttd.org> | 2004-12-05 21:30:58 +0000 |
---|---|---|
committer | darkvater <darkvater@openttd.org> | 2004-12-05 21:30:58 +0000 |
commit | c8d83ce557fff5b6271d2fdecee04ac3942cbde2 (patch) | |
tree | f2d440d547e1c5d281b00e545695dcddb2298876 /ai_new.c | |
parent | 860a39af2ad2b891a0e191317d6e93be0087ab46 (diff) | |
download | openttd-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.c | 32 |
1 files changed, 20 insertions, 12 deletions
@@ -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! |