mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-16 00:12:51 +00:00
(svn r6407) -Fix: Check return values of DoCommand() with CmdFailed and that of DoCommandP
with a boolean type.
This commit is contained in:
parent
80814dbb1d
commit
3fee255543
@ -292,7 +292,7 @@ static void AiRestoreVehicleOrders(Vehicle *v, BackuppedOrders *bak)
|
||||
uint i;
|
||||
|
||||
for (i = 0; bak->order[i].type != OT_NOTHING; i++) {
|
||||
if (CmdFailed(DoCommandP(0, v->index + (i << 16), PackOrder(&bak->order[i]), NULL, CMD_INSERT_ORDER | CMD_NO_TEST_IF_IN_NETWORK)))
|
||||
if (!DoCommandP(0, v->index + (i << 16), PackOrder(&bak->order[i]), NULL, CMD_INSERT_ORDER | CMD_NO_TEST_IF_IN_NETWORK))
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -138,7 +138,7 @@ static int TerraformProc(TerraformerState *ts, TileIndex tile, int mode)
|
||||
|
||||
ret = DoCommand(tile, 0,0, ts->flags & ~DC_EXEC, CMD_LANDSCAPE_CLEAR);
|
||||
|
||||
if (ret == CMD_ERROR) {
|
||||
if (CmdFailed(ret)) {
|
||||
_terraform_err_tile = tile;
|
||||
return -1;
|
||||
}
|
||||
|
@ -2047,8 +2047,13 @@ int32 SendAllVehiclesToDepot(byte type, uint32 flags, bool service, PlayerID own
|
||||
/* Send all the vehicles to a depot */
|
||||
for (i = 0; i < n; i++) {
|
||||
const Vehicle *v = sort_list[i];
|
||||
if (!DoCommand(v->tile, v->index, service | DEPOT_DONT_CANCEL, flags, CMD_SEND_TO_DEPOT(type)) && !(flags & DC_EXEC)) {
|
||||
/* At least one vehicle is valid to send the command to, so the mass goto depot is valid. No need to check the rest */
|
||||
int32 ret = DoCommand(v->tile, v->index, service | DEPOT_DONT_CANCEL, flags, CMD_SEND_TO_DEPOT(type));
|
||||
|
||||
/* Return 0 if DC_EXEC is not set this is a valid goto depot command)
|
||||
* In this case we know that at least one vehicle can be sent to a depot
|
||||
* and we will issue the command. We can now safely quit the loop, knowing
|
||||
* it will succeed at least once. With DC_EXEC we really need to send them to the depot */
|
||||
if (!CmdFailed(ret) && !(flags & DC_EXEC)) {
|
||||
free((void*)sort_list);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user