Page 1 of 1

Problem with Boom linetype 166

Posted: Tue Nov 09, 2010 9:26 pm
by hawkwind
Boom linetype 166 is S1 - Ceiling raise to highest ceiling. It is not a texture change type. ATM the affected sector is changing sector flat. See link for test wad. Note what happens to sector 2 when linedef 10 is activated.

http://www.speedyshare.com/files/25115089/test.zip

Re: Problem with Boom linetype 166

Posted: Wed Nov 10, 2010 1:14 am
by Graf Zahl
Oh god, what did the Boom guys do? That type is supposed to move both ceiling and floor but in Boom it only moves the floor if the ceiling is blocked. So in 99.9% of all cases it only moves the ceiling. The definition of this type clearly looks broken. Here's the relevant code from PrBoom:

Code: Select all

          case 166:
            // Raise ceiling, Lower floor
            // 166 S1 EV_DoCeiling(raiseToHighest), EV_DoFloor(lowerFloortoLowest)
            if (EV_DoCeiling(line, raiseToHighest) ||
                EV_DoFloor(line, lowerFloorToLowest))
              P_ChangeSwitchTexture(line,0);
            break;
This looks ok on first sight but if you think about it, the floor action only starts when the ceiling action fails...

ZDoom always moves both.

Re: Problem with Boom linetype 166

Posted: Wed Nov 10, 2010 5:27 am
by Graf Zahl
Fixed - or if we want to be precise - un-fixed.

ZDoom did what Boom wanted to implement but obviously in this case compatibility comes first so it's now as broken as Boom.

Re: Problem with Boom linetype 166

Posted: Thu Nov 11, 2010 6:14 pm
by hawkwind
From Boomref.txt ...

---------------------------------
Section 3.3 Ceiling linedef types
---------------------------------

Regular and Extended Ceiling Types
-------------------------------------------------------------------
# Class Trig Dir Spd *Chg *Mdl Mon Crsh Target

166 Ext S1 Up Slow None -- No No Highest Neighbor Ceiling

As all can see, flat texture does not change ... maybe prboom introduced the bug ?

Re: Problem with Boom linetype 166

Posted: Thu Nov 11, 2010 6:20 pm
by Graf Zahl
No, that code is precisely the same in Boom 2.02. And it doesn't really matter what Boomref.txt says. The important thing is what the code does.

And there was no texture change. The floor just moved below the surrounding sector so that it got covered by flat bleeding.