(svn r16300) -Codechange: reduce usage of Vehicle::AllocateList

pull/155/head
smatz 15 years ago
parent 09d16b4106
commit 53b8d13878

@ -265,10 +265,8 @@ CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, uint32 p1, uin
/* Prevent building aircraft types at places which can't handle them */
if (!CanVehicleUseStation(p1, GetStationByTile(tile))) return CMD_ERROR;
/* Allocate 2 or 3 vehicle structs, depending on type
* vl[0] = aircraft, vl[1] = shadow, [vl[2] = rotor] */
Vehicle *vl[3];
if (!Vehicle::AllocateList(vl, avi->subtype & AIR_CTOL ? 2 : 3)) {
/* We will need to allocate 2 or 3 vehicle structs, depending on type */
if (!Vehicle::CanAllocateItem(avi->subtype & AIR_CTOL ? 2 : 3)) {
return_cmd_error(STR_ERROR_TOO_MANY_VEHICLES_IN_GAME);
}
@ -277,11 +275,9 @@ CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, uint32 p1, uin
return_cmd_error(STR_ERROR_TOO_MANY_VEHICLES_IN_GAME);
if (flags & DC_EXEC) {
Vehicle *v = vl[0]; // aircraft
Vehicle *u = vl[1]; // shadow
Vehicle *v = new Aircraft(); // aircraft
Vehicle *u = new Aircraft(); // shadow
v = new (v) Aircraft();
u = new (u) Aircraft();
v->unitnumber = unit_num;
v->direction = DIR_SE;
@ -402,9 +398,7 @@ CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, uint32 p1, uin
/* Aircraft with 3 vehicles (chopper)? */
if (v->subtype == AIR_HELICOPTER) {
Vehicle *w = vl[2];
w = new (w) Aircraft();
Vehicle *w = new Aircraft();
w->engine_type = p1;
w->direction = DIR_N;
w->owner = _current_company;

@ -361,7 +361,7 @@ CommandCost CmdCloneVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint
veh_counter++;
} while ((v = v->Next()) != NULL);
if (!Vehicle::AllocateList(NULL, veh_counter)) {
if (!Vehicle::CanAllocateItem(veh_counter)) {
return_cmd_error(STR_ERROR_TOO_MANY_VEHICLES_IN_GAME);
}
}

Loading…
Cancel
Save