Spider Mastermind
Register | User Profile | Member List | F.A.Q | Privacy Policy | New Blog | Search Forums | Forums Home
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Special Interest > Eternity > Double raising stairs in Boom
 
Author
All times are GMT. The time now is 19:31. Post New Thread    Post A Reply
Xtroose
Junior Member


Posts: 248
Registered: 12-09


Copied from a ZDoom bug report.


TimeOfDeath said:
Apparently, double-raising stairs (like in eternall map25) behave differently between vanilla and boom. For example, if you use the "stairs raise by 8" action in vanilla, most steps will raise by 8 going in one direction, but most steps will raise by 16 when going the other direction. In boom, all stairs will raise by 8 when going in either direction. In ZDoom, double-raising stairs always seem to behave like they do in vanilla, even if the map is in boom format and regardless of what "stair building" compatibility option ZDoom uses. So, if you make a map for boom with those kind of stairs, the map won't behave properly in ZDoom.

Here's an example: stairsthing.zip



I can confirm this bug in Eternity R984. The map works in Boom 2.02, but it is broken in MBF 2.03. Interestingly, it works in PrBoom+ 2.5.0.6.

EDIT:
It also works in regular PrBoom 2.5.0.

I did some additional research. Could this be related to this:


Compatibility bug in EV_BuildStairs:
Affects: Boom, MBF

Description: There are three different ways this function has, during its history, stepped through all the stairs to be triggered by a single switch:

  • original Doom used a linear P_FindSectorFromLineTag, but failed to preserve the index of the previous sector found, so instead it would restart its linear search from the last sector of the previous staircase
  • MBF/PrBoom with comp_stairs fail to emulate this, because their P_FindSectorFromLineTag is a chained hash table implementation. Instead they start following the hash chain from the last sector of the previous staircase, which will (probably) have the wrong tag, so they miss any further stairs
  • Boom fixed the bug, and MBF/PrBoom without comp_stairs work right

Fixing MBF's comp_stairs requires an elaborate fix, and remaining compatible with the buggy behavior of old MBF demos is tricky too. See PrBoom's p_floor.c:EV_BuildStairs for my fix.

Last edited by Xtroose on 02-12-10 at 18:45

Old Post 02-12-10 17:47 #
Xtroose is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
Quasar
Moderator


Posts: 6130
Registered: 08-00



Xtroose said:
Copied from a ZDoom bug report.



I can confirm this bug in Eternity R984. The map works in Boom 2.02, but it is broken in MBF 2.03. Interestingly, it works in PrBoom+ 2.5.0.6.

EDIT:
It also works in regular PrBoom 2.5.0.

I did some additional research. Could this be related to this:



Ugh. I don't know why they ever had to screw around with this stuff.

Old Post 02-12-10 20:02 #
Quasar is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit || Quote
Graf Zahl
Why don't I have a custom title by now?!


Posts: 7788
Registered: 01-03


I'm still not certain if this should even be changed. How many Boom compatible maps are there which rely on this behavior?

Isn't vanilla compatibility more important in this case?

And of course:



I don't know why they ever had to screw around with this stuff.

Old Post 02-12-10 21:10 #
Graf Zahl is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
Xtroose
Junior Member


Posts: 248
Registered: 12-09


To my knowledge, the only Boom compatible map relying on this behavior is TimeOfDeath's example map, which is MAP05 from his released project Time Of Maps - Part 1. There could be others, but I have not played that many wads.

Old Post 02-12-10 21:56 #
Xtroose is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
Graf Zahl
Why don't I have a custom title by now?!


Posts: 7788
Registered: 01-03


The funny thing is, Eternity has the fix in the stairbuilding code. Now why doesn't it work then?


Here's the relevant code:

code:
/* jff 6/19/98 prevent double stepsize * killough 10/98: intentionally left this way [MBF comment] * cph 2001/02/06: stair bug fix should be controlled by comp_stairs, * except if we're emulating MBF which perversly reverted the fix */ if(comp[comp_stairs] || demo_version == 203) height += stairsize; // jff 6/28/98 change demo compatibility // if sector's floor already moving, look for another if(P_SectorActive(floor_special,tsec)) //jff 2/22/98 continue; /* cph - see comment above - do this iff we didn't do so above */ if(!comp[comp_stairs] && demo_version != 203) height += stairsize;



And the comment also explains why this does not work in MBF.


EDIT: Just checking with the compatibility option switched off and the stairs are built Boom's way. Seems for the original test the option was on.

Last edited by Graf Zahl on 02-13-10 at 08:36

Old Post 02-13-10 08:18 #
Graf Zahl is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
Quasar
Moderator


Posts: 6130
Registered: 08-00


Well now see I knew about having applied that fix. I thought this issue was a *new* problem with stairs so I didn't make the connection ._.

Old Post 02-13-10 09:10 #
Quasar is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit || Quote
andrewj
Senior Member


Posts: 1641
Registered: 04-02



Quasar said:
Ugh. I don't know why they ever had to screw around with this stuff.

They saw a bug and fixed it. I don't think in 1998 there was the same level of consciousness of compatibility issues as there is today, plus everybody is a lot wiser now so judging something done over a decade ago is a bit rich.

Old Post 02-13-10 09:53 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit || Quote
Graf Zahl
Why don't I have a custom title by now?!


Posts: 7788
Registered: 01-03


Boom's code:

code:
if (compatibility) // jff 6/19/98 prevent double stepsize height += stairsize; // jff 6/28/98 change demo compatibility // if sector's floor already moving, look for another if (P_SectorActive(floor_special,tsec)) //jff 2/22/98 continue; if (!compatibility) // jff 6/19/98 increase height AFTER continue height += stairsize; // jff 6/28/98 change demo compatibility


They were definitely aware of the compatibility issues involved here.

Old Post 02-13-10 10:01 #
Graf Zahl is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
All times are GMT. The time now is 19:31. Post New Thread    Post A Reply
 
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Special Interest > Eternity > Double raising stairs in Boom

Show Printable Version | Email this Page | Subscribe to this Thread

 

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are OFF
[IMG] code is ON
 

< Contact Us - Doomworld >

Powered by: vBulletin Version 2.2.5
Copyright ©2000, 2001, Jelsoft Enterprises Limited.