Bug #638
Monsters become active at start of some maps
100%
Description
At the beginning of certain maps, some monsters immediately become active and start roaming around the area without even seeing you. Even if you don't fire a gunshot, they still may walk around the area. For example, this always seems to happen in E2M1 and E1M3 of Ultimate Doom. In E1M3, the Shotgun Guy outside the starting door starts walking around at the start. In E2M1, a Zombieman near the Blue Key is active at the start when they shouldn't be. These were both tested on Ultra Violence skill levels by the way.
Just IDDT the map twice and you'll be able to see the moving monsters.
Labels: Gameplay
History
#1 Updated by danij over 15 years ago
At the start of E2M1 it seems to be a call to P_CheckSight, via A_Look that is incorrectly determining that the player is in sight when clearly, they should not be.
#2 Updated by danij over 15 years ago
Further investigation shows that cause of this problem is that P_SightPathTraverse is not actually getting a chance to call the block linedef iterator for all blocks in the LOS path.
P_SightPathTraverse appears to be functioning correctly logic-wise but at some point when stepping through the blocks, the value of intercept[] ends up invalid (i.e., neither of the x or y components are equal to the current block) and as such, they cease to be incremented. This in turn means that the same block is processed repeatedly until count is >= 64.
Initially I thought this could simply be down to floating point inaccuracy or round off issues but restoring P_SightPathTraverse to an older, fixed-point version of the algorithm produced the same results.
Right now I am wondering whether this problem is due to the fact we use two different methods to convert world coordinates to/from blockmap block coordinates.
#3 Updated by danij over 15 years ago
Fixed in svn for 1.9.0-beta6.3