[4.2.0] DAEDALUS.WAD MAP19 colors broken

Bugs that have been investigated and resolved somehow.

Moderator: GZDoom Developers

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 Reply
BFeely
Posts: 48
Joined: Thu Mar 11, 2004 3:58 pm
Graphics Processor: nVidia with Vulkan support
Contact:

[4.2.0] DAEDALUS.WAD MAP19 colors broken

Post by BFeely »

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
_mental_
 
 
Posts: 3820
Joined: Sun Aug 07, 2011 4:32 am

Re: [4.2.0] DAEDALUS.WAD MAP19 colors broken

Post by _mental_ »

It began with this commit. Need to think how we can fix that script.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49252
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: [4.2.0] DAEDALUS.WAD MAP19 colors broken

Post by Graf Zahl »

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.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49252
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: [4.2.0] DAEDALUS.WAD MAP19 colors broken

Post by Graf Zahl »

Fixed.
_mental_
 
 
Posts: 3820
Joined: Sun Aug 07, 2011 4:32 am

Re: [4.2.0] DAEDALUS.WAD MAP19 colors broken

Post by _mental_ »

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
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49252
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: [4.2.0] DAEDALUS.WAD MAP19 colors broken

Post by Graf Zahl »

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.
Post Reply

Return to “Closed Bugs [GZDoom]”