(svn r3248) - Codechange: Change interface of CanRefitTo() to supply the engine type directly instead of getting it from a vehicle. This allows the function to be used before vehicles are involved.
This commit is contained in:
		@@ -496,7 +496,7 @@ int32 CmdRefitAircraft(int x, int y, uint32 flags, uint32 p1, uint32 p2)
 | 
			
		||||
	avi = AircraftVehInfo(v->engine_type);
 | 
			
		||||
 | 
			
		||||
	/* Check cargo */
 | 
			
		||||
	if (new_cid > NUM_CARGO || !CanRefitTo(v, new_cid)) return CMD_ERROR;
 | 
			
		||||
	if (new_cid > NUM_CARGO || !CanRefitTo(v->engine_type, new_cid)) return CMD_ERROR;
 | 
			
		||||
 | 
			
		||||
	SET_EXPENSES_TYPE(EXPENSES_AIRCRAFT_RUN);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1056,7 +1056,7 @@ int32 CmdRefitShip(int x, int y, uint32 flags, uint32 p1, uint32 p2)
 | 
			
		||||
 | 
			
		||||
	/* Check cargo */
 | 
			
		||||
	if (!ShipVehInfo(v->engine_type)->refittable) return CMD_ERROR;
 | 
			
		||||
	if (new_cid > NUM_CARGO || !CanRefitTo(v, new_cid)) return CMD_ERROR;
 | 
			
		||||
	if (new_cid > NUM_CARGO || !CanRefitTo(v->engine_type, new_cid)) return CMD_ERROR;
 | 
			
		||||
 | 
			
		||||
	SET_EXPENSES_TYPE(EXPENSES_SHIP_RUN);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1717,7 +1717,7 @@ int32 CmdRefitRailVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2)
 | 
			
		||||
		/* XXX: We also refit all the attached wagons en-masse if they
 | 
			
		||||
		 * can be refitted. This is how TTDPatch does it.  TODO: Have
 | 
			
		||||
		 * some nice [Refit] button near each wagon. --pasky */
 | 
			
		||||
		if (!CanRefitTo(v, new_cid)) continue;
 | 
			
		||||
		if (!CanRefitTo(v->engine_type, new_cid)) continue;
 | 
			
		||||
 | 
			
		||||
		if (v->cargo_cap != 0) {
 | 
			
		||||
			const RailVehicleInfo *rvi = RailVehInfo(v->engine_type);
 | 
			
		||||
 
 | 
			
		||||
@@ -680,15 +680,15 @@ bool CanFillVehicle(Vehicle *v)
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** Check if a given vehicle (type) can be refitted to a given cargo
 | 
			
		||||
 * @param *v vehicle to check
 | 
			
		||||
/** Check if a given engine type can be refitted to a given cargo
 | 
			
		||||
 * @param engine_type Engine type to check
 | 
			
		||||
 * @param cid_to check refit to this cargo-type
 | 
			
		||||
 * @return true if it is possible, false otherwise
 | 
			
		||||
 */
 | 
			
		||||
bool CanRefitTo(const Vehicle *v, CargoID cid_to)
 | 
			
		||||
bool CanRefitTo(EngineID engine_type, CargoID cid_to)
 | 
			
		||||
{
 | 
			
		||||
	CargoID cid = _global_cargo_id[_opt_ptr->landscape][cid_to];
 | 
			
		||||
	return HASBIT(_engine_info[v->engine_type].refit_mask, cid) != 0;
 | 
			
		||||
	return HASBIT(_engine_info[engine_type].refit_mask, cid) != 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void DoDrawVehicle(const Vehicle *v)
 | 
			
		||||
 
 | 
			
		||||
@@ -273,7 +273,7 @@ Vehicle *FindVehicleOnTileZ(TileIndex tile, byte z);
 | 
			
		||||
void InitializeTrains(void);
 | 
			
		||||
 | 
			
		||||
bool CanFillVehicle(Vehicle *v);
 | 
			
		||||
bool CanRefitTo(const Vehicle *v, CargoID cid_to);
 | 
			
		||||
bool CanRefitTo(EngineID engine_type, CargoID cid_to);
 | 
			
		||||
 | 
			
		||||
void ViewportAddVehicles(DrawPixelInfo *dpi);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user