From bfda08cf5275a70a705b3d290ca5271d40481993 Mon Sep 17 00:00:00 2001 From: Fabian Greffrath Date: Thu, 5 Mar 2015 20:43:06 +0100 Subject: 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. --- src/doom/p_floor.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') 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; } -- cgit v1.2.3