From 46186134c892f236ecc610aacd6c18ee95600d5f Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 18 Nov 2010 14:20:03 +0000 Subject: (svn r21239) -Codechange/Fix: [NewGRF] Use 0xFF instead of 0 as default value for visual effect. This makes setting train prop 22 to 0 actually work (Hirundo) --- src/newgrf.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/newgrf.cpp') diff --git a/src/newgrf.cpp b/src/newgrf.cpp index d4b74045a..12696b6dc 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -48,6 +48,7 @@ #include "gui.h" #include "vehicle_func.h" #include "language.h" +#include "vehicle_base.h" #include "table/strings.h" #include "table/build_industry.h" @@ -710,8 +711,13 @@ static ChangeInfoResult RailVehicleChangeInfo(uint engine, int numinfo, int prop break; case 0x22: // Visual effect - /** @see note in engine.h about rvi->visual_effect */ rvi->visual_effect = buf->ReadByte(); + /* Avoid accidentally setting visual_effect to the default value + * Since bit 6 (disable effects) is set anyways, we can safely erase some bits. */ + if (rvi->visual_effect == VE_DEFAULT) { + assert(HasBit(rvi->visual_effect, VE_DISABLE_EFFECT)); + SB(rvi->visual_effect, VE_TYPE_START, VE_TYPE_COUNT, 0); + } break; case 0x23: // Powered wagons weight bonus -- cgit v1.2.3-54-g00ecf