summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Greffrath2015-03-05 20:43:06 +0100
committerFabian Greffrath2015-03-05 20:51:47 +0100
commitbfda08cf5275a70a705b3d290ca5271d40481993 (patch)
tree30fea8481722dddcc81136626074c156b124f164
parent074026b37ee26e78ae1c25907d2b7211b3e5fe91 (diff)
downloadchocolate-doom-bfda08cf5275a70a705b3d290ca5271d40481993.tar.gz
chocolate-doom-bfda08cf5275a70a705b3d290ca5271d40481993.tar.bz2
chocolate-doom-bfda08cf5275a70a705b3d290ca5271d40481993.zip
Initialize floor->type and floor->crush fields in EV_BuildStairs()
The floor->type and floor->crush fields of the floor thinkers added in EV_BuildStairs() were originally left uninitialized and thus contained random memory content. Initialize them to make sure the floor->type field does not trigger propagation of random content into the special and texture fields of the adjacent sector in T_MoveFloor(). That is, make sure its value is neither donutRaise, i.e. 11, nor lowerAndChange, i.e. 6. Also, the chances of 32 bit of random memory being "true", i.e. 0, are negligible. This is functionally equivalent to what PrBoom+ is doing. Fixes desync of mm09-512.lmp. Fixes #368.
-rw-r--r--src/doom/p_floor.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/doom/p_floor.c b/src/doom/p_floor.c
index 1384ee6b..c120d616 100644
--- a/src/doom/p_floor.c
+++ b/src/doom/p_floor.c
@@ -493,6 +493,9 @@ EV_BuildStairs
floor->speed = speed;
height = sec->floorheight + stairsize;
floor->floordestheight = height;
+ // Initialize
+ floor->type = lowerFloor;
+ floor->crush = true;
texture = sec->floorpic;
@@ -536,6 +539,9 @@ EV_BuildStairs
floor->sector = sec;
floor->speed = speed;
floor->floordestheight = height;
+ // Initialize
+ floor->type = lowerFloor;
+ floor->crush = true;
ok = 1;
break;
}