From 2223ff92c7f9f23ced4c63a3591aa46d1c2b52b2 Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 18 Nov 2010 14:32:09 +0000 Subject: (svn r21240) -Feature: [NewGRF] Implement action0 visual effect properties for ships and RVs (Hirundo) --- src/newgrf.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/newgrf.cpp') diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 12696b6dc..fb8f8f331 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -891,6 +891,16 @@ static ChangeInfoResult RoadVehicleChangeInfo(uint engine, int numinfo, int prop AlterVehicleListOrder(e->index, buf->ReadExtendedByte()); break; + case 0x21: // 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; + default: ret = CommonVehicleChangeInfo(ei, prop, buf); break; @@ -1007,6 +1017,16 @@ static ChangeInfoResult ShipVehicleChangeInfo(uint engine, int numinfo, int prop AlterVehicleListOrder(e->index, buf->ReadExtendedByte()); break; + case 0x1C: // Visual effect + svi->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 (svi->visual_effect == VE_DEFAULT) { + assert(HasBit(svi->visual_effect, VE_DISABLE_EFFECT)); + SB(svi->visual_effect, VE_TYPE_START, VE_TYPE_COUNT, 0); + } + break; + default: ret = CommonVehicleChangeInfo(ei, prop, buf); break; -- cgit v1.2.3-54-g00ecf