(svn r2415) - Fix: [newgrf] Powered Wagons - Don't assume an undefined callback will fail.

replace/41b28d7194a279bdc17475d4fbe2ea6ec885a466
hackykid 20 years ago
parent 1018d3b786
commit 2fbb96bfa5

@ -144,6 +144,7 @@ enum CallbackID {
// bit positions for rvi->callbackmask, indicates which callbacks are used by an engine // bit positions for rvi->callbackmask, indicates which callbacks are used by an engine
// (some callbacks are always used, and dont appear here) // (some callbacks are always used, and dont appear here)
enum CallbackMask { enum CallbackMask {
CBM_WAGON_POWER = 0,
CBM_REFIT_CAP = 3, CBM_REFIT_CAP = 3,
}; };

@ -79,9 +79,10 @@ void TrainConsistChanged(Vehicle *v) {
// check if its a powered wagon // check if its a powered wagon
CLRBIT(u->u.rail.flags, VRF_POWEREDWAGON); CLRBIT(u->u.rail.flags, VRF_POWEREDWAGON);
if ((rvi_v->pow_wag_power != 0) && (rvi_u->flags & RVI_WAGON) && UsesWagonOverride(u)) { if ((rvi_v->pow_wag_power != 0) && (rvi_u->flags & RVI_WAGON) && UsesWagonOverride(u)) {
uint16 callback; uint16 callback = CALLBACK_FAILED;
callback = GetCallBackResult(CBID_WAGON_POWER, u->engine_type, u); if (HASBIT(rvi_u->callbackmask, CBM_WAGON_POWER))
callback = GetCallBackResult(CBID_WAGON_POWER, u->engine_type, u);
if (callback == CALLBACK_FAILED) if (callback == CALLBACK_FAILED)
callback = rvi_u->visual_effect; callback = rvi_u->visual_effect;

Loading…
Cancel
Save