From c8d83ce557fff5b6271d2fdecee04ac3942cbde2 Mon Sep 17 00:00:00 2001 From: darkvater Date: Sun, 5 Dec 2004 21:30:58 +0000 Subject: (svn r960) -Fix: forgotten conversion of orders for the AI (Tron) --- ai_new.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) (limited to 'ai_new.c') 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! -- cgit v1.2.3-54-g00ecf