summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine.h1
-rw-r--r--train_cmd.c5
2 files changed, 4 insertions, 2 deletions
diff --git a/engine.h b/engine.h
index 19ea10492..8a78bec28 100644
--- a/engine.h
+++ b/engine.h
@@ -144,6 +144,7 @@ enum CallbackID {
// bit positions for rvi->callbackmask, indicates which callbacks are used by an engine
// (some callbacks are always used, and dont appear here)
enum CallbackMask {
+ CBM_WAGON_POWER = 0,
CBM_REFIT_CAP = 3,
};
diff --git a/train_cmd.c b/train_cmd.c
index d75f58584..0096e43b4 100644
--- a/train_cmd.c
+++ b/train_cmd.c
@@ -79,9 +79,10 @@ void TrainConsistChanged(Vehicle *v) {
// check if its a powered wagon
CLRBIT(u->u.rail.flags, VRF_POWEREDWAGON);
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)
callback = rvi_u->visual_effect;