Zandronum Chat on our Discord Server Get the latest version: 3.1
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000988Zandronum[All Projects] Bugpublic2012-08-25 01:342018-09-30 21:40
Assigned ToTorr Samaho 
PlatformMicrosoftOSWindowsOS VersionXP/Vista/7
Product Version1.0 
Target Version2.2Fixed in Version2.2 
Summary0000988: Zandronum sometimes skips a map.
DescriptionWhenever a player exits on the corner of an exit pad, activating more than one exit line, the map will advance more than one map.
Steps To ReproduceIn the attached exittest.wad, exit the map in the corner to activate two lines, and it will skip the next map. It doesn't always happen because you don't always activate two lines, even when you try to. If you exit in the middle of a side, it will advance only one map.
Unlike before, it now seems to happen only in client-server mode. This might be a clue.
Additional InformationThis problem has been around at least since the last version of Skulltag, and maybe earlier.
Attached Fileszip file icon [^] (9,947 bytes) 2012-08-25 01:34
zip file icon [^] (818 bytes) 2012-10-26 21:27
diff file icon double-exit.diff [^] (656 bytes) 2013-09-27 10:32 [Show Content]
diff file icon double-exit-new.diff [^] (2,161 bytes) 2015-07-14 21:17 [Show Content]

- Relationships
has duplicate 0002205closed server skips 3 maps in map rotation. 

-  Notes
User avatar (0004446)
Edward-san (developer)
2012-08-25 10:33

Does it happen in ZDoom 2.6.1?
User avatar (0004447)
Empyre (reporter)
2012-08-25 14:07

The version of ZDoom I have is 2.5.0 (R2508), and it doesn't happen there. One of these days, I'll upgrade my ZDoom, but I rarely play it.
User avatar (0004448)
Dusk (developer)
2012-08-25 15:55

Does this occurr in GZDoom r323?
User avatar (0004457)
Empyre (reporter)
2012-08-25 23:38
edited on: 2012-08-26 04:31

I downloaded GZDoom, but it fails to run. It appears to be trying to write to a memory address it shouldn't.

User avatar (0005064)
Empyre (reporter)
2012-10-09 22:02

Would somebody else please test this in GZDoom, since I can't? Also, has anybody else experienced this?
User avatar (0005066)
unknownna (updater)
2012-10-09 22:34

Quote from Empyre
Also, has anybody else experienced this?

With your example WAD I notice that the server console sometimes prints "Player exited the level." twice. But it doesn't skip a map on my end.

Quote from Server Console
*** MAP03: the gantlet ***

compatflags changed to: 0
Player exited the level.

*** MAP04: the focus ***

compatflags changed to: 0
Player exited the level.
Player exited the level.

*** MAP05: the waste tunnels ***

compatflags changed to: 0
User avatar (0005075)
Empyre (reporter)
2012-10-10 20:17
edited on: 2012-10-10 20:20

Aha! I have figured out another step that is needed to reproduce the problem. There must be a map list. It doesn't happen if there is no map list. For the test wad, the maps list would be maps 1 - 8.

User avatar (0005077)
unknownna (updater)
2012-10-10 21:56

Quote from Empyre
I have figured out another step that is needed to reproduce the problem. There must be a map list.

Well done.
User avatar (0005222)
Dusk (developer)
2012-10-26 21:28
edited on: 2012-10-26 22:29

Managed to find a way to reproduce this reliably. If a player is flung at a speed fast enough through two exit linedefs, he triggers them both. Only happens online.
Attached a new test WAD..

EDIT: Should I mitigate the map rotation only, or double exits in general?

User avatar (0005229)
Empyre (reporter)
2012-10-27 10:26

I am probably not the one you are asking the question, but it seems to me that you would need to make it ignore all exit line activations after the first one, because sometimes there are more than two activated. Or, make it always advance exactly one map, no matter what.
User avatar (0006708)
Empyre (reporter)
2013-07-19 06:17

I just tested this in Zandronum 1.1.1 and the bug is still there.
User avatar (0006720)
Torr Samaho (administrator)
2013-07-21 08:00

Quote from Dusk

EDIT: Should I mitigate the map rotation only, or double exits in general?

You said this only happens offline. So I'd say just change it in such a way that the online behavior is the same as the offline behavior (which should be the ZDoom behavior).
User avatar (0006746)
Empyre (reporter)
2013-07-22 02:53
edited on: 2013-07-22 02:56

No, it only happens ONline, when there is a map list. It behaves the way it should offline.

Edit: Wait, what Torr said to do should work, then.

User avatar (0006748)
Edward-san (developer)
2013-07-22 17:28

just to be sure, but you didn't manage to reproduce offline with multiplayer emulation enabled, did you?
User avatar (0006760)
Empyre (reporter)
2013-07-22 22:29

I have played a lot of single-player mode with multiplayer emulation, but I have only seen this bug happen in client-server mode with a maplist.
User avatar (0007155)
Arco (updater)
2013-09-09 19:56
edited on: 2013-09-25 16:12

Servers usually don't have playlists enabled on their end, so they would probably assume that the map that was exited twice was a fluke, and will just go to the next map regardless of how many times someone attempts to exit.

EDIT: Could there be a possibility to mend this issue prior to v1.3's release?

User avatar (0008170)
Frits (reporter)
2014-02-06 18:21
edited on: 2014-02-06 18:25

Want to point out this is still in zandronum 1.2 and it's very disruptive to survival games.
Yesterday we had to reverse maps over a dozen times. Which is okay as long als someone with rcon is around but if there isn't you're at the mercy of the callvote cooldown.

User avatar (0008171)
Dusk (developer)
2014-02-06 18:23

That's because the fix was never applied to 1.2. Notice that the status is still "needs review".
User avatar (0008172)
Frits (reporter)
2014-02-06 18:26

Anything i can do to help? I can reproduce this 100% at all times.
User avatar (0008560)
Torr Samaho (administrator)
2014-04-13 12:12

Although the patch is most likely more a band-aid than a fix for underlying cause, it should work. There is just one thing missing: g_lastLevelExit needs to be initialized when a new map is entered. Otherwise exiting a map could be blocked if a player tries to exit it at the same time the last level was exited. Surely that's highly unlikely, but it should still be taken care of.
User avatar (0009978)
Arco (updater)
2014-07-16 00:39

Works as intended. There's a minor issue where "x has exited the level" will appear twice, however.
User avatar (0009985)
Frits (reporter)
2014-07-16 08:45

Konar6 fixed this in kpatch.
User avatar (0012152)
arkore (reporter)
2015-04-21 18:09

I'd like to help, but, it isn't clear where we stand on this issue. Who are we waiting on feedback from? Anyone in particular? Or just anyone? What's the next step, if not to test the solution, if Frits is saying that this is already fixed?
User avatar (0012833)
Empyre (reporter)
2015-07-07 09:00

I have been unable to log into the tracker for a long time, until just now. I'm not griping at you, just explaining why I haven't said anything in the tracker for a while.
This bug is still present in Zandronum 2.1. As a workaround, I am revising my maps to have exactly one exit line each, but surely my maps aren't the only ones with this problem.
User avatar (0012835)
Untitled (reporter)
2015-07-07 13:51

It happened to me, too, though admittedly it seems rarer with Zandronum 2.1. Might be just me, though.
Here's the rundown:
-Only happens ONLINE.
-Occurs whenever someone manages to cross multiple exit linedefs at once.
-Behavior: Goes forward a map for every linedef crossed - if you exit 5 exit linedefs at once, it WILL go 5 maps ahead (instead of 1, as it should be). This happened on the Community Chest 4 + Demonsteele SNS, where we skipped from MAP19 to MAP24 - which was kind of lame.
User avatar (0012836)
Dusk (developer)
2015-07-07 17:20

Thinking about this fix a bit more, this issue is map rotation-specific and needs to be fixed there. I'll think about this a bit more.
User avatar (0012940)
Dusk (developer)
2015-07-14 21:19
edited on: 2015-07-14 22:05

New tentative patch "double-exit-new.diff" attached. I still find this pretty ugly, but I don't think we can have a clean fix for this since the circumstances are pretty ugly in the first place. I'll try file a bug report to ZDoom so that we can remove this hack when it's no longer needed...

The idea of the fix now is that after the map rotation has been advanced, a level flag is set so that it won't get advanced again until the next map has started (which resets level.flags and level.flags2).

EDIT: Reported to ZDoom now: [^]

User avatar (0012943)
Dusk (developer)
2015-07-15 10:50

ZDoom fixed this: [^]

We should probably backport this fix instead of applying my hacks to work around it.
User avatar (0012967)
WaTaKiD (updater)
2015-07-18 17:07
edited on: 2015-07-18 22:47

the above commit has been backported to sandbox-stable: [^]

and here is a build in which to test it: [^]

User avatar (0012968)
WaTaKiD (updater)
2015-07-19 02:10

ive given the above build some testing, including combinations of sv_maprotation 0/1, sv_randommaprotation 0/1, and random uses of addmap/delmap/insertmap and rcon/callvote map/changemap

gamemodes tested: mostly coop with a bit of survival

iwads tested: mostly doom2, but a little udoom, heretic, and hexen too

map packs tested: tartaru5.wad, iu-part5.wad (tartarus for map numbers as tatxx instead of mapxx and iu for maps with secret exits on non map15/31), and chillax-v9.7.3.wad (for maps exceeding map32)

so far it seems to work just fine, the only "issue" is that "player exited the level" messages can still be displayed multiple times, but thats no biggie
User avatar (0013896)
WaTaKiD (updater)
2015-11-28 21:24

the "player exited the level" issue (as insignificant as it is) mentioned in my above note also happens in zdoom, and as such is reported here: [^]
User avatar (0013897)
Empyre (reporter)
2015-11-28 21:41

I wouldn't worry about it saying "player exited the level" as many times as the exit lines that were activated as long as the server only advances one map like it should.
User avatar (0014218)
Edward-san (developer)
2016-01-28 20:06
edited on: 2016-01-28 20:07

Quote from "WaTaKiD"
the "player exited the level" issue (as insignificant as it is) mentioned in my above note also happens in zdoom, and as such is reported here:


User avatar (0014243)
Torr Samaho (administrator)
2016-01-30 14:11

I backported the ZDoom fix for the "player exited the level" printing issue.
User avatar (0014248)
cobalt (updater)
2016-01-30 14:22

Issue addressed by commit 19fdc9425b11: Don't show "exited the level" messages after the level has exited
Committed by Randy Heit on Wednesday 31 December 1969 23:59:57

Changes in files:

 src/p_spec.cpp | 4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

User avatar (0014251)
WaTaKiD (updater)
2016-01-30 14:46

would it be possible to also backport the fix to the map skipping issue?

this is the commit: [^]

and if it helps, this is the same commit from the zdoom-sync repo: [^]
User avatar (0014252)
Torr Samaho (administrator)
2016-01-30 14:49

Ok, I also backported that one.
User avatar (0014254)
cobalt (updater)
2016-01-30 14:57

Issue addressed by commit 4094854c8ffe: - fixed: Levels could be exited multiple times, triggering special exit actions for each one.
Committed by Christoph Oelckers on Wednesday 31 December 1969 23:59:57

Changes in files:

 src/g_level.cpp | 4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

User avatar (0014275)
Ru5tK1ng (updater)
2016-02-01 00:57

I did some testing with 160131-2023 using the both test wads.

I wasn't able to advance more than 1 map upon exit and I didn't get any multiple player exit lines in the console.

Issue Community Support
This issue is already marked as resolved.
If you feel that is not the case, please reopen it and explain why.
Supporters: Combinebobnt WaTaKiD DevilHunter Vicious Pariah arkore Monsterovich unknownna Daedalus FascistCat cruduxy -Jes-
Opponents: No one explicitly opposes this issue yet.

- Issue History
Date Modified Username Field Change
2012-08-25 01:34 Empyre New Issue
2012-08-25 01:34 Empyre File Added:
2012-08-25 10:33 Edward-san Note Added: 0004446
2012-08-25 14:07 Empyre Note Added: 0004447
2012-08-25 15:55 Dusk Note Added: 0004448
2012-08-25 15:55 Dusk Status new => feedback
2012-08-25 23:38 Empyre Note Added: 0004457
2012-08-25 23:38 Empyre Status feedback => new
2012-08-26 04:31 Empyre Note Edited: 0004457 View Revisions
2012-10-09 22:02 Empyre Note Added: 0005064
2012-10-09 22:34 unknownna Note Added: 0005066
2012-10-10 20:17 Empyre Note Added: 0005075
2012-10-10 20:20 Empyre Note Edited: 0005075 View Revisions
2012-10-10 21:56 unknownna Note Added: 0005077
2012-10-10 21:56 unknownna Assigned To => unknownna
2012-10-10 21:56 unknownna Status new => confirmed
2012-10-10 21:56 unknownna Assigned To unknownna =>
2012-10-26 21:27 Dusk File Added:
2012-10-26 21:28 Dusk Note Added: 0005222
2012-10-26 21:29 Dusk Assigned To => Dusk
2012-10-26 21:29 Dusk Reproducibility sometimes => always
2012-10-26 21:29 Dusk Status confirmed => assigned
2012-10-26 21:30 Dusk Note Edited: 0005222 View Revisions
2012-10-26 22:29 Dusk Note Edited: 0005222 View Revisions
2012-10-26 22:29 Dusk Status assigned => feedback
2012-10-27 10:26 Empyre Note Added: 0005229
2012-10-27 10:26 Empyre Status feedback => assigned
2013-07-19 06:17 Empyre Note Added: 0006708
2013-07-21 08:00 Torr Samaho Note Added: 0006720
2013-07-22 02:53 Empyre Note Added: 0006746
2013-07-22 02:56 Empyre Note Edited: 0006746 View Revisions
2013-07-22 17:28 Edward-san Note Added: 0006748
2013-07-22 22:29 Empyre Note Added: 0006760
2013-09-09 19:56 Arco Note Added: 0007155
2013-09-25 16:12 Arco Note Edited: 0007155 View Revisions
2013-09-27 10:32 Dusk File Added: double-exit.diff
2013-09-27 10:32 Dusk Status assigned => needs review
2014-02-06 18:21 Frits Note Added: 0008170
2014-02-06 18:23 Dusk Note Added: 0008171
2014-02-06 18:25 Frits Note Edited: 0008170 View Revisions
2014-02-06 18:26 Frits Note Added: 0008172
2014-02-06 19:54 Dusk Target Version => 1.3
2014-04-13 12:12 Torr Samaho Note Added: 0008560
2014-04-13 12:13 Torr Samaho Status needs review => feedback
2014-07-16 00:39 Arco Note Added: 0009978
2014-07-16 08:45 Frits Note Added: 0009985
2015-04-21 17:59 Arco Relationship added has duplicate 0002205
2015-04-21 18:09 arkore Note Added: 0012152
2015-07-07 09:00 Empyre Note Added: 0012833
2015-07-07 09:00 Empyre Status feedback => assigned
2015-07-07 13:51 Untitled Note Added: 0012835
2015-07-07 17:20 Dusk Note Added: 0012836
2015-07-14 21:17 Dusk File Added: double-exit-new.diff
2015-07-14 21:19 Dusk Note Added: 0012940
2015-07-14 21:19 Dusk Status assigned => needs review
2015-07-14 21:20 Dusk Note Edited: 0012940 View Revisions
2015-07-14 22:05 Dusk Note Edited: 0012940 View Revisions
2015-07-15 10:50 Dusk Note Added: 0012943
2015-07-15 10:50 Dusk Assigned To Dusk =>
2015-07-15 10:50 Dusk Status needs review => acknowledged
2015-07-15 10:50 Dusk Resolution open => backport later
2015-07-18 17:07 WaTaKiD Note Added: 0012967
2015-07-18 17:12 WaTaKiD Status acknowledged => needs testing
2015-07-18 22:47 WaTaKiD Note Edited: 0012967 View Revisions
2015-07-19 02:10 WaTaKiD Note Added: 0012968
2015-11-28 19:57 Dusk Status needs testing => resolved
2015-11-28 19:57 Dusk Fixed in Version => 3.0
2015-11-28 19:57 Dusk Assigned To => Torr Samaho
2015-11-28 21:20 Dusk Status resolved => assigned
2015-11-28 21:20 Dusk Resolution backport later => open
2015-11-28 21:20 Dusk Fixed in Version 3.0 =>
2015-11-28 21:24 WaTaKiD Note Added: 0013896
2015-11-28 21:41 Empyre Note Added: 0013897
2016-01-28 20:06 Edward-san Note Added: 0014218
2016-01-28 20:07 Edward-san Note Edited: 0014218 View Revisions
2016-01-30 14:11 Torr Samaho Note Added: 0014243
2016-01-30 14:22 cobalt Status assigned => needs testing
2016-01-30 14:22 cobalt Steps to Reproduce Updated View Revisions
2016-01-30 14:22 cobalt Note Added: 0014248
2016-01-30 14:46 WaTaKiD Note Added: 0014251
2016-01-30 14:49 Torr Samaho Note Added: 0014252
2016-01-30 14:56 cobalt Note Added: 0014253
2016-01-30 14:57 Dusk Note Deleted: 0014253
2016-01-30 14:57 cobalt Note Added: 0014254
2016-01-31 23:23 Ru5tK1ng Target Version 1.3 => 2.2
2016-01-31 23:23 Ru5tK1ng Steps to Reproduce Updated View Revisions
2016-02-01 00:57 Ru5tK1ng Note Added: 0014275
2016-02-03 16:31 Dusk Status needs testing => resolved
2016-02-03 16:31 Dusk Fixed in Version => 2.2
2016-02-03 16:31 Dusk Resolution open => fixed
2018-09-30 21:40 Blzut3 Status resolved => closed

Questions or other issues? Contact Us.


Copyright © 2000 - 2022 MantisBT Team
Powered by Mantis Bugtracker