(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);
 | 
						avi = AircraftVehInfo(v->engine_type);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Check cargo */
 | 
						/* 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);
 | 
						SET_EXPENSES_TYPE(EXPENSES_AIRCRAFT_RUN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1056,7 +1056,7 @@ int32 CmdRefitShip(int x, int y, uint32 flags, uint32 p1, uint32 p2)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	/* Check cargo */
 | 
						/* Check cargo */
 | 
				
			||||||
	if (!ShipVehInfo(v->engine_type)->refittable) return CMD_ERROR;
 | 
						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);
 | 
						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
 | 
							/* XXX: We also refit all the attached wagons en-masse if they
 | 
				
			||||||
		 * can be refitted. This is how TTDPatch does it.  TODO: Have
 | 
							 * can be refitted. This is how TTDPatch does it.  TODO: Have
 | 
				
			||||||
		 * some nice [Refit] button near each wagon. --pasky */
 | 
							 * 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) {
 | 
							if (v->cargo_cap != 0) {
 | 
				
			||||||
			const RailVehicleInfo *rvi = RailVehInfo(v->engine_type);
 | 
								const RailVehicleInfo *rvi = RailVehInfo(v->engine_type);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -680,15 +680,15 @@ bool CanFillVehicle(Vehicle *v)
 | 
				
			|||||||
	return false;
 | 
						return false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** Check if a given vehicle (type) can be refitted to a given cargo
 | 
					/** Check if a given engine type can be refitted to a given cargo
 | 
				
			||||||
 * @param *v vehicle to check
 | 
					 * @param engine_type Engine type to check
 | 
				
			||||||
 * @param cid_to check refit to this cargo-type
 | 
					 * @param cid_to check refit to this cargo-type
 | 
				
			||||||
 * @return true if it is possible, false otherwise
 | 
					 * @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];
 | 
						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)
 | 
					static void DoDrawVehicle(const Vehicle *v)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -273,7 +273,7 @@ Vehicle *FindVehicleOnTileZ(TileIndex tile, byte z);
 | 
				
			|||||||
void InitializeTrains(void);
 | 
					void InitializeTrains(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool CanFillVehicle(Vehicle *v);
 | 
					bool CanFillVehicle(Vehicle *v);
 | 
				
			||||||
bool CanRefitTo(const Vehicle *v, CargoID cid_to);
 | 
					bool CanRefitTo(EngineID engine_type, CargoID cid_to);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void ViewportAddVehicles(DrawPixelInfo *dpi);
 | 
					void ViewportAddVehicles(DrawPixelInfo *dpi);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user