File diff r9749:254383608c8d → r9750:1e2535e15958
src/newgrf_engine.cpp
Show inline comments
 
@@ -436,22 +436,12 @@ static void VehicleSetTriggers(const Res
 
	assert(object->trigger != 0);
 

	
 
	if (v != NULL) v->waiting_triggers = triggers;
 
}
 

	
 

	
 
static uint32 GetGRFParameter(EngineID engine_type, byte parameter)
 
{
 
	const GRFFile *file = GetEngineGRF(engine_type);
 

	
 
	if (file == NULL) return 0;
 
	if (parameter >= file->param_end) return 0;
 
	return file->param[parameter];
 
}
 

	
 

	
 
static uint8 LiveryHelper(EngineID engine, const Vehicle *v)
 
{
 
	const Livery *l;
 

	
 
	if (v == NULL) {
 
		if (!IsValidPlayerID(_current_player)) return 0;
 
@@ -476,13 +466,12 @@ static uint32 VehicleGetVariable(const R
 
			case 0x43: return _current_player | (LiveryHelper(object->u.vehicle.self_type, NULL) << 24); // Owner information
 
			case 0x46: return 0;               // Motion counter
 
			case 0x48: return GetEngine(object->u.vehicle.self_type)->flags; // Vehicle Type Info
 
			case 0x49: return _cur_year; // 'Long' format build year
 
			case 0xC4: return Clamp(_cur_year, ORIGINAL_BASE_YEAR, ORIGINAL_MAX_YEAR) - ORIGINAL_BASE_YEAR; // Build year
 
			case 0xDA: return INVALID_VEHICLE; // Next vehicle
 
			case 0x7F: return GetGRFParameter(object->u.vehicle.self_type, parameter); // Read GRF parameter
 
		}
 

	
 
		*available = false;
 
		return UINT_MAX;
 
	}
 

	
 
@@ -629,14 +618,12 @@ static uint32 VehicleGetVariable(const R
 
				for (; v != NULL; v = v->Next()) {
 
					if (GetEngine(v->engine_type)->internal_id == parameter) count++;
 
				}
 
				return count;
 
			}
 

	
 
		case 0x7F: return GetGRFParameter(v->engine_type, parameter); // Read GRF parameter
 

	
 
		case 0xFE:
 
		case 0xFF: {
 
			uint16 modflags = 0;
 

	
 
			if (v->type == VEH_TRAIN) {
 
				const Vehicle *u = IsTrainWagon(v) && HasBit(v->vehicle_flags, VRF_POWEREDWAGON) ? v->First() : v;
 
@@ -829,12 +816,15 @@ static inline void NewVehicleResolver(Re
 
	res->callback_param1 = 0;
 
	res->callback_param2 = 0;
 
	res->last_value      = 0;
 
	res->trigger         = 0;
 
	res->reseed          = 0;
 
	res->count           = 0;
 

	
 
	const Engine *e = GetEngine(engine_type);
 
	res->grffile         = (e != NULL ? e->grffile : NULL);
 
}
 

	
 

	
 
/** Retrieve the SpriteGroup for the specified vehicle.
 
 * If the vehicle is not specified, the purchase list group for the engine is
 
 * chosen. For trains, an additional engine override lookup is performed.