Changeset - r6282:fab9db73ce8f
[Not reviewed]
master
0 1 0
peter1138 - 17 years ago 2007-03-10 10:08:38
peter1138@openttd.org
(svn r9094) -Codechange: Don't set up refit masks for engine types not in the current climate, and exclude engine types if their cargo type is invalid and they have no refittable type.
1 file changed with 6 insertions and 0 deletions:
0 comments (0 inline, 0 general)
src/newgrf.cpp
Show inline comments
 
@@ -3752,6 +3752,9 @@ static const CargoLabel *_default_refitm
 
static void CalculateRefitMasks()
 
{
 
	for (EngineID engine = 0; engine < TOTAL_NUM_ENGINES; engine++) {
 
		/* Skip engine if not available in this climate */
 
		if (!HASBIT(_engine_info[engine].climates, _opt.landscape)) continue;
 

	
 
		uint32 mask = 0;
 
		uint32 not_mask = 0;
 
		uint32 xor_mask = _engine_info[engine].refit_mask;
 
@@ -3792,16 +3795,19 @@ static void CalculateRefitMasks()
 
			case VEH_TRAIN: {
 
				RailVehicleInfo *rvi = &_rail_vehicle_info[engine];
 
				if (rvi->cargo_type == CT_INVALID) rvi->cargo_type = FindFirstRefittableCargo(engine);
 
				if (rvi->cargo_type == CT_INVALID) _engine_info[engine].climates = 0;
 
				break;
 
			}
 
			case VEH_ROAD: {
 
				RoadVehicleInfo *rvi = &_road_vehicle_info[engine - ROAD_ENGINES_INDEX];
 
				if (rvi->cargo_type == CT_INVALID) rvi->cargo_type = FindFirstRefittableCargo(engine);
 
				if (rvi->cargo_type == CT_INVALID) _engine_info[engine].climates = 0;
 
				break;
 
			}
 
			case VEH_SHIP: {
 
				ShipVehicleInfo *svi = &_ship_vehicle_info[engine - SHIP_ENGINES_INDEX];
 
				if (svi->cargo_type == CT_INVALID) svi->cargo_type = FindFirstRefittableCargo(engine);
 
				if (svi->cargo_type == CT_INVALID) _engine_info[engine].climates = 0;
 
				break;
 
			}
 
		}
0 comments (0 inline, 0 general)