Bug is critical. Level editing. FOF plane Movement.
The Linedef Type 52, Continuously Falling Sector, uses wrong heights for ending point of the falling FOF.
SRB2Wiki:
But it's not the way how the falling FOF is working now. The FOF's ceiling will fall to the floor height of the linedef's back sector, and the FOF's floor will fall "FOF's height" further, I mean, if the FOF has a height of 64 FU, the FOF's floor will fall 64 FU below the floor height of the linedef's back sector.
Therefore, if the level designer is intending to stack FOFs over each other, like in DSZ2, with a constant gap between them, the FOFs will lose and regain sync, clashing with each other.
How to reproduce it:
Still not confirmed if it will work. Confirmed, it works.
Sample wad: download
Confirmed in SRB2Trunk r7222
The Linedef Type 52, Continuously Falling Sector, uses wrong heights for ending point of the falling FOF.
SRB2Wiki:
http://wiki.srb2.org/wiki/Linedef_Type_52#SetupThe floor and ceiling height of the [special] linedef's front sector will indicate the starting point of the FOF. The floor and ceiling height of the linedef's back sector will indicate the point the sector will fall to, before respawning at the height of the linedef's front sector and repeating the process.
But it's not the way how the falling FOF is working now. The FOF's ceiling will fall to the floor height of the linedef's back sector, and the FOF's floor will fall "FOF's height" further, I mean, if the FOF has a height of 64 FU, the FOF's floor will fall 64 FU below the floor height of the linedef's back sector.
Therefore, if the level designer is intending to stack FOFs over each other, like in DSZ2, with a constant gap between them, the FOFs will lose and regain sync, clashing with each other.
<MonsterIestyn> Meanwhile I'll go and double check the source code for that particular linedef effect.
<MonsterIestyn> I think I see what's going on
<MonsterIestyn> "faller->floordestheight = backsector->floorheight; faller->ceilingdestheight = faller->floordestheight;"
<MonsterIestyn> Someone goofed up with the ceiling destination height setting
<MonsterIestyn> The ceiling goes to the exact same height as the floor
<EzerArch> yes!
<MonsterIestyn> And with backwards, the floor goes to whatever the ceiling height is
<MonsterIestyn> In other words, it squishes itself to make the FOF a height of 0 before respawning at the original heights
<MonsterIestyn> And so the floor height only affects the final height when going down, and the ceiling height when going up
<MonsterIestyn> Then again, maybe this is not someone goofing up, but someone thinking the FOF should flatten itself completely before disappearing :V
<MonsterIestyn> Since the error is exactly flipped for backwards
(...)
<MonsterIestyn> Also, for those wishing to see where that line from SRB2's source came from, it's in the section for "EV_DoContinuousFall" in p_floor.c
<MonsterIestyn> I think I see what's going on
<MonsterIestyn> "faller->floordestheight = backsector->floorheight; faller->ceilingdestheight = faller->floordestheight;"
<MonsterIestyn> Someone goofed up with the ceiling destination height setting
<MonsterIestyn> The ceiling goes to the exact same height as the floor
<EzerArch> yes!
<MonsterIestyn> And with backwards, the floor goes to whatever the ceiling height is
<MonsterIestyn> In other words, it squishes itself to make the FOF a height of 0 before respawning at the original heights
<MonsterIestyn> And so the floor height only affects the final height when going down, and the ceiling height when going up
<MonsterIestyn> Then again, maybe this is not someone goofing up, but someone thinking the FOF should flatten itself completely before disappearing :V
<MonsterIestyn> Since the error is exactly flipped for backwards
(...)
<MonsterIestyn> Also, for those wishing to see where that line from SRB2's source came from, it's in the section for "EV_DoContinuousFall" in p_floor.c
How to reproduce it:
- Set up the FOF and its control sector as the wiki says.
- For example, respectively for FOF's ceiling and floor, the starting point will be 192 and 128, and the ending point, 64 and 0. Use any length for speed.
- Test. The FOF will fall down to 0 and -64.
Sample wad: download
Confirmed in SRB2Trunk r7222
Last edited by a moderator: