[4.2.0] DAEDALUS.WAD MAP19 colors broken

Forum rules
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.

Post a reply

Smilies
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :geek: :ugeek: :!: :?: :idea: :arrow: :| :mrgreen: :3: :wub: >:( :blergh:
View more smilies

BBCode is OFF
Smilies are ON

Topic review
   

Expand view Topic review: [4.2.0] DAEDALUS.WAD MAP19 colors broken

Re: [4.2.0] DAEDALUS.WAD MAP19 colors broken

by Graf Zahl » Sat Sep 07, 2019 2:42 am

Please don't tell me that the semantics are garbage. I've been knowing that for many years, but what can you do? Change it and more things will break.
The problem here is that this isn't how scriptwait is supposed to work. If it is called without a running script it is supposed to wait until the script really starts and then terminates.

But this double waiting thing here doesn't play well with such a system. scriptwait also does not play well at all with waiting for non-waiting scripts to finish.

I made it a compatibility option accessible to MAPINFO, to address the different waiting semantics it could be extended to the non-const version of scriptwait as well.

Re: [4.2.0] DAEDALUS.WAD MAP19 colors broken

by _mental_ » Sat Sep 07, 2019 1:54 am

I didn't fix it myself because the problem seems to be a bit wider. Consider the following script.

Code: Select all

script 42 open
{
    Log(s:"Script 42");
    ACS_Execute(43, 0, 0, 0, 0);
    ACS_Execute(44, 0, 0, 0, 0);
    ScriptWait(43);
    ScriptWait(44);
    ACS_Execute(45, 0, 0, 0, 0);
}

script 43 (void)
{
    Log(s:"Script 43");
}

script 44 (void)
{
    Log(s:"Script 44");
}

script 45 (void)
{
    Log(s:"Script 45");
}
I assume that all messages should be printed. Although, scripts 43 and 44 were executed as expected, script 45 didn't run at all, and script 42 remains in pre-wait state indefinitely.
Is this a know issue or limitation?

BTW the output is a bit weird too.

Code: Select all

Script 42
Script 44
Script 43
Also, changing this code like the following fixes the problem.

Code: Select all

[code]script 42 open
{
    Log(s:"Script 42");
    ACS_Execute(43, 0, 0, 0, 0);
    ScriptWait(43);               // these lines...
    ACS_Execute(44, 0, 0, 0, 0);  // ... were swapped
    ScriptWait(44);
    ACS_Execute(45, 0, 0, 0, 0);
}
Attachments
acs_exec_wait.pk3
(1.04 KiB) Downloaded 22 times

Re: [4.2.0] DAEDALUS.WAD MAP19 colors broken

by Graf Zahl » Fri Sep 06, 2019 4:44 am

Add a compatibility option, it may even be a hidden one, I wouldn't put this into the menu, it's far too esoteric - as long as the flag is accessible to compatibility and MAPINFO.

Re: [4.2.0] DAEDALUS.WAD MAP19 colors broken

by _mental_ » Fri Sep 06, 2019 2:56 am

It began with this commit. Need to think how we can fix that script.

[4.2.0] DAEDALUS.WAD MAP19 colors broken

by BFeely » Thu Sep 05, 2019 6:29 pm

MAP19 (Disco) of Daedalus is supposed to cycle colors in the disco room, however the color cycling is stuck in GZDoom 4.2.0.

WAD file: https://www.doomworld.com/idgames/theme ... s/daedalus

Save file: https://drive.google.com/open?id=1Cj6LI ... Tl00zT-G1Z

Top