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
[4.2.0] DAEDALUS.WAD MAP19 colors broken
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.
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.
Re: [4.2.0] DAEDALUS.WAD MAP19 colors broken
It began with this commit. Need to think how we can fix that script.
- Graf Zahl
- 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
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
I didn't fix it myself because the problem seems to be a bit wider. Consider the following script.
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.
Also, changing this code like the following fixes the problem.
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");
}
Is this a know issue or limitation?
BTW the output is a bit weird too.
Code: Select all
Script 42
Script 44
Script 43Code: 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
- Graf Zahl
- 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
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.
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.