summaryrefslogtreecommitdiff
path: root/src/newgrf.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2010-11-18 14:32:09 +0000
committerrubidium <rubidium@openttd.org>2010-11-18 14:32:09 +0000
commit2223ff92c7f9f23ced4c63a3591aa46d1c2b52b2 (patch)
tree2aca4783ed87aa6c09a9e38bbc49cbf7daf0f606 /src/newgrf.cpp
parent46186134c892f236ecc610aacd6c18ee95600d5f (diff)
downloadopenttd-2223ff92c7f9f23ced4c63a3591aa46d1c2b52b2.tar.xz
(svn r21240) -Feature: [NewGRF] Implement action0 visual effect properties for ships and RVs (Hirundo)
Diffstat (limited to 'src/newgrf.cpp')
-rw-r--r--src/newgrf.cpp20
1 files changed, 20 insertions, 0 deletions
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;