|
@@ -832,12 +832,14 @@ static void RunVehicleDayProc()
|
|
|
/* Call the 32-day callback if needed */
|
|
|
if ((v->day_counter & 0x1F) == 0 && v->HasEngineType()) {
|
|
|
uint16 callback = GetVehicleCallback(CBID_VEHICLE_32DAY_CALLBACK, 0, 0, v->engine_type, v);
|
|
|
if (callback != CALLBACK_FAILED) {
|
|
|
if (HasBit(callback, 0)) TriggerVehicle(v, VEHICLE_TRIGGER_CALLBACK_32); // Trigger vehicle trigger 10
|
|
|
if (HasBit(callback, 1)) v->colourmap = PAL_NONE;
|
|
|
|
|
|
if (callback & ~3) ErrorUnknownCallbackResult(v->GetGRFID(), CBID_VEHICLE_32DAY_CALLBACK, callback);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/* This is called once per day for each vehicle, but not in the first tick of the day */
|
|
|
v->OnNewDay();
|
|
|
}
|
|
@@ -2172,12 +2174,14 @@ void Vehicle::UpdateVisualEffect(bool al
|
|
|
|
|
|
/* Check powered wagon / visual effect callback */
|
|
|
if (HasBit(e->info.callback_mask, CBM_VEHICLE_VISUAL_EFFECT)) {
|
|
|
uint16 callback = GetVehicleCallback(CBID_VEHICLE_VISUAL_EFFECT, 0, 0, this->engine_type, this);
|
|
|
|
|
|
if (callback != CALLBACK_FAILED) {
|
|
|
if (callback >= 0x100 && e->GetGRF()->grf_version >= 8) ErrorUnknownCallbackResult(e->GetGRFID(), CBID_VEHICLE_VISUAL_EFFECT, callback);
|
|
|
|
|
|
callback = GB(callback, 0, 8);
|
|
|
/* Avoid accidentally setting 'visual_effect' to the default value
|
|
|
* Since bit 6 (disable effects) is set anyways, we can safely erase some bits. */
|
|
|
if (callback == VE_DEFAULT) {
|
|
|
assert(HasBit(callback, VE_DISABLE_EFFECT));
|
|
|
SB(callback, VE_TYPE_START, VE_TYPE_COUNT, 0);
|