MantisBT - Zandronum
View Issue Details
0000988Zandronum[All Projects] Bugpublic2012-08-25 01:342018-09-30 21:40
Empyre 
Torr Samaho 
normalminoralways
closedfixed 
MicrosoftWindowsXP/Vista/7
1.0 
2.22.2 
0000988: Zandronum sometimes skips a map.
Whenever a player exits on the corner of an exit pad, activating more than one exit line, the map will advance more than one map.
In 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.
This problem has been around at least since the last version of Skulltag, and maybe earlier.
No tags attached.
has duplicate 0002205closed  server skips 3 maps in map rotation. 
zip exittest.zip (9,947) 2012-08-25 01:34
https://zandronum.com/tracker/file_download.php?file_id=684&type=bug
zip exit_test2.wad.zip (818) 2012-10-26 21:27
https://zandronum.com/tracker/file_download.php?file_id=847&type=bug
diff double-exit.diff (656) 2013-09-27 10:32
https://zandronum.com/tracker/file_download.php?file_id=1073&type=bug
diff double-exit-new.diff (2,161) 2015-07-14 21:17
https://zandronum.com/tracker/file_download.php?file_id=1583&type=bug
Issue History
2012-08-25 01:34EmpyreNew Issue
2012-08-25 01:34EmpyreFile Added: exittest.zip
2012-08-25 10:33Edward-sanNote Added: 0004446
2012-08-25 14:07EmpyreNote Added: 0004447
2012-08-25 15:55DuskNote Added: 0004448
2012-08-25 15:55DuskStatusnew => feedback
2012-08-25 23:38EmpyreNote Added: 0004457
2012-08-25 23:38EmpyreStatusfeedback => new
2012-08-26 04:31EmpyreNote Edited: 0004457bug_revision_view_page.php?bugnote_id=4457#r2431
2012-10-09 22:02EmpyreNote Added: 0005064
2012-10-09 22:34unknownnaNote Added: 0005066
2012-10-10 20:17EmpyreNote Added: 0005075
2012-10-10 20:20EmpyreNote Edited: 0005075bug_revision_view_page.php?bugnote_id=5075#r2767
2012-10-10 21:56unknownnaNote Added: 0005077
2012-10-10 21:56unknownnaAssigned To => unknownna
2012-10-10 21:56unknownnaStatusnew => confirmed
2012-10-10 21:56unknownnaAssigned Tounknownna =>
2012-10-26 21:27DuskFile Added: exit_test2.wad.zip
2012-10-26 21:28DuskNote Added: 0005222
2012-10-26 21:29DuskAssigned To => Dusk
2012-10-26 21:29DuskReproducibilitysometimes => always
2012-10-26 21:29DuskStatusconfirmed => assigned
2012-10-26 21:30DuskNote Edited: 0005222bug_revision_view_page.php?bugnote_id=5222#r2851
2012-10-26 22:29DuskNote Edited: 0005222bug_revision_view_page.php?bugnote_id=5222#r2852
2012-10-26 22:29DuskStatusassigned => feedback
2012-10-27 10:26EmpyreNote Added: 0005229
2012-10-27 10:26EmpyreStatusfeedback => assigned
2013-07-19 06:17EmpyreNote Added: 0006708
2013-07-21 08:00Torr SamahoNote Added: 0006720
2013-07-22 02:53EmpyreNote Added: 0006746
2013-07-22 02:56EmpyreNote Edited: 0006746bug_revision_view_page.php?bugnote_id=6746#r3755
2013-07-22 17:28Edward-sanNote Added: 0006748
2013-07-22 22:29EmpyreNote Added: 0006760
2013-09-09 19:56ArcoNote Added: 0007155
2013-09-25 16:12ArcoNote Edited: 0007155bug_revision_view_page.php?bugnote_id=7155#r4077
2013-09-27 10:32DuskFile Added: double-exit.diff
2013-09-27 10:32DuskStatusassigned => needs review
2014-02-06 18:21FritsNote Added: 0008170
2014-02-06 18:23DuskNote Added: 0008171
2014-02-06 18:25FritsNote Edited: 0008170bug_revision_view_page.php?bugnote_id=8170#r4468
2014-02-06 18:26FritsNote Added: 0008172
2014-02-06 19:54DuskTarget Version => 1.3
2014-04-13 12:12Torr SamahoNote Added: 0008560
2014-04-13 12:13Torr SamahoStatusneeds review => feedback
2014-07-16 00:39ArcoNote Added: 0009978
2014-07-16 08:45FritsNote Added: 0009985
2015-04-21 17:59ArcoRelationship addedhas duplicate 0002205
2015-04-21 18:09arkoreNote Added: 0012152
2015-07-07 09:00EmpyreNote Added: 0012833
2015-07-07 09:00EmpyreStatusfeedback => assigned
2015-07-07 13:51UntitledNote Added: 0012835
2015-07-07 17:20DuskNote Added: 0012836
2015-07-14 21:17DuskFile Added: double-exit-new.diff
2015-07-14 21:19DuskNote Added: 0012940
2015-07-14 21:19DuskStatusassigned => needs review
2015-07-14 21:20DuskNote Edited: 0012940bug_revision_view_page.php?bugnote_id=12940#r7681
2015-07-14 22:05DuskNote Edited: 0012940bug_revision_view_page.php?bugnote_id=12940#r7682
2015-07-15 10:50DuskNote Added: 0012943
2015-07-15 10:50DuskAssigned ToDusk =>
2015-07-15 10:50DuskStatusneeds review => acknowledged
2015-07-15 10:50DuskResolutionopen => backport later
2015-07-18 17:07WaTaKiDNote Added: 0012967
2015-07-18 17:12WaTaKiDStatusacknowledged => needs testing
2015-07-18 22:47WaTaKiDNote Edited: 0012967bug_revision_view_page.php?bugnote_id=12967#r7737
2015-07-19 02:10WaTaKiDNote Added: 0012968
2015-11-28 19:57DuskStatusneeds testing => resolved
2015-11-28 19:57DuskFixed in Version => 3.0
2015-11-28 19:57DuskAssigned To => Torr Samaho
2015-11-28 21:20DuskStatusresolved => assigned
2015-11-28 21:20DuskResolutionbackport later => open
2015-11-28 21:20DuskFixed in Version3.0 =>
2015-11-28 21:24WaTaKiDNote Added: 0013896
2015-11-28 21:41EmpyreNote Added: 0013897
2016-01-28 20:06Edward-sanNote Added: 0014218
2016-01-28 20:07Edward-sanNote Edited: 0014218bug_revision_view_page.php?bugnote_id=14218#r8589
2016-01-30 14:11Torr SamahoNote Added: 0014243
2016-01-30 14:22cobaltStatusassigned => needs testing
2016-01-30 14:22cobaltSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=8603#r8603
2016-01-30 14:22cobaltNote Added: 0014248
2016-01-30 14:46WaTaKiDNote Added: 0014251
2016-01-30 14:49Torr SamahoNote Added: 0014252
2016-01-30 14:56cobaltNote Added: 0014253
2016-01-30 14:57DuskNote Deleted: 0014253
2016-01-30 14:57cobaltNote Added: 0014254
2016-01-31 23:23Ru5tK1ngTarget Version1.3 => 2.2
2016-01-31 23:23Ru5tK1ngSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=8614#r8614
2016-02-01 00:57Ru5tK1ngNote Added: 0014275
2016-02-03 16:31DuskStatusneeds testing => resolved
2016-02-03 16:31DuskFixed in Version => 2.2
2016-02-03 16:31DuskResolutionopen => fixed
2018-09-30 21:40Blzut3Statusresolved => closed

Notes
(0004446)
Edward-san   
2012-08-25 10:33   
Does it happen in ZDoom 2.6.1?
(0004447)
Empyre   
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.
(0004448)
Dusk   
2012-08-25 15:55   
Does this occurr in GZDoom r323?
(0004457)
Empyre   
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.

(0005064)
Empyre   
2012-10-09 22:02   
Would somebody else please test this in GZDoom, since I can't? Also, has anybody else experienced this?
(0005066)
unknownna   
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
(0005075)
Empyre   
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.

(0005077)
unknownna   
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.
(0005222)
Dusk   
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?

(0005229)
Empyre   
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.
(0006708)
Empyre   
2013-07-19 06:17   
I just tested this in Zandronum 1.1.1 and the bug is still there.
(0006720)
Torr Samaho   
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).
(0006746)
Empyre   
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.

(0006748)
Edward-san   
2013-07-22 17:28   
just to be sure, but you didn't manage to reproduce offline with multiplayer emulation enabled, did you?
(0006760)
Empyre   
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.
(0007155)
Arco   
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?

(0008170)
Frits   
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.

(0008171)
Dusk   
2014-02-06 18:23   
That's because the fix was never applied to 1.2. Notice that the status is still "needs review".
(0008172)
Frits   
2014-02-06 18:26   
Anything i can do to help? I can reproduce this 100% at all times.
(0008560)
Torr Samaho   
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.
(0009978)
Arco   
2014-07-16 00:39   
Works as intended. There's a minor issue where "x has exited the level" will appear twice, however.
(0009985)
Frits   
2014-07-16 08:45   
Konar6 fixed this in kpatch.
(0012152)
arkore   
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?
(0012833)
Empyre   
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.
(0012835)
Untitled   
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.
(0012836)
Dusk   
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.
(0012940)
Dusk   
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:'http://forum.zdoom.org/viewtopic.php?f=2&t=49045 [^]'

(0012943)
Dusk   
2015-07-15 10:50   
ZDoom fixed this:'https://github.com/rheit/zdoom/commit/19d15d7fc8c9b0aef52db971a24e421aebfd8e31 [^]'

We should probably backport this fix instead of applying my hacks to work around it.
(0012967)
WaTaKiD   
2015-07-18 17:07   
(edited on: 2015-07-18 22:47)
the above commit has been backported to sandbox-stable:'https://bitbucket.org/crimsondusk/zandronum-sandbox-stable/commits/c608a653f5c764db36624b34942291d58af97c46 [^]'

and here is a build in which to test it:'https://www.dropbox.com/s/brcz2jzj3k0rq6n/zandronum-2.1.2-r150718-1632-c608a65-windows.zip?dl=0 [^]'

(0012968)
WaTaKiD   
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
(0013896)
WaTaKiD   
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:'http://forum.zdoom.org/viewtopic.php?f=2&t=50007 [^]'
(0013897)
Empyre   
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.
(0014218)
Edward-san   
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:http://forum.zdoom.org/viewtopic.php?f=2&t=50007


Fixed.

(0014243)
Torr Samaho   
2016-01-30 14:11   
I backported the ZDoom fix for the "player exited the level" printing issue.
(0014248)
cobalt   
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(-)

(0014251)
WaTaKiD   
2016-01-30 14:46   
would it be possible to also backport the fix to the map skipping issue?

this is the commit:'https://github.com/rheit/zdoom/commit/19d15d7fc8c9b0aef52db971a24e421aebfd8e31 [^]'

and if it helps, this is the same commit from the zdoom-sync repo:'https://bitbucket.org/Torr_Samaho/zandronum-zdoom-sync/commits/fa210dbbf906b3a7d750387ece6b49c97f96a249 [^]'
(0014252)
Torr Samaho   
2016-01-30 14:49   
Ok, I also backported that one.
(0014254)
cobalt   
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(-)

(0014275)
Ru5tK1ng   
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.