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
0000717Zandronum[All Projects] Bugpublic2012-03-25 18:532017-05-01 18:22
ReporterTIHan 
Assigned ToTorr Samaho 
PrioritynormalSeverityminorReproducibilityalways
StatusassignedResolutionopen 
PlatformOSOS Version
Product Version1.0 
Target VersionFixed in Version 
Summary0000717: Beating e3m8 in a coop game results in clients getting stuck in end game text and disconnecting.
Description'http://www.skulltag.com/forum/viewtopic.php?f=33&t=22431 [^]'
Attached Files

- Relationships
has duplicate 0002592closed Server goes haywire when completing map E3M8 in doom.wad 

-  Notes
User avatar (0002914)
TIHan (reporter)
2012-03-27 03:12

This is not quite a trivial matter. In FMapInfoParser::ParseNextMap, the line that says "If we're in a multiplayer game, don't do the finale, just go back to the
            // beginning." does not account for e3m8, as its nextmap is "endbunny" and not one of the "endgame"'s. Since it's "endbunny", it will start a sequence - which is something we do not want. We could mitigate the issue by telling the server to go to the beginning of episode 3 on "endbunny", but I'm not sure if we actually want to do that. This needs more discussion.

This issue does not occur when you have maps in rotation.
User avatar (0002930)
unknownna (updater)
2012-03-27 20:08

> We could mitigate the issue by telling the server to go to the beginning of episode 3 on "endbunny", but I'm not sure if we actually want to do that.

Sounds alright to me. But there's also a separate issue.

> It *freezes* when you try to chat during the text/end screens. After trying to chat, you can't open the console/menu. All clients will also time out from the server during the screens. This also happens offline, but not in GZDoom 323. I could only reproduce this in Skulltag and ZDoom 1.22.
User avatar (0002931)
TIHan (reporter)
2012-03-27 20:40

> > It *freezes* when you try to chat during the text/end screens. After trying to chat, you can't open the console/menu. All clients will also time out from the server during the screens. This also happens offline, but not in GZDoom 323. I could only reproduce this in Skulltag and ZDoom 1.22.

I haven't looked into this too deeply, but I'm sure it has to do with what gamestate we are in. In this case, GS_FINALE.

There are loads of checks asking the client and server to do different things depending on what gamestate they are in, which the two most common ones are GS_LEVEL and GS_INTERMISSION.

I'm taking a guess here: Because the client and server are not in GS_LEVEL or GS_INTERMISSION, all communications between them get halted. Perhaps we could handle GS_FINALE in client/server - but that is more of a feature than a fix.
User avatar (0002942)
Torr Samaho (administrator)
2012-03-28 01:46

I think the whole final should be skipped entirely in multiplayer. IMHO it's not worth to spent time trying to handle GS_FINALE online.
User avatar (0002950)
unknownna (updater)
2012-03-28 02:32

I noticed that the clients aren't sent to the intermission screen in Ultimate Doom after completing an episode.
User avatar (0002953)
TIHan (reporter)
2012-03-28 05:57

Fixed.
'https://bitbucket.org/TIHan/tst/changeset/f97d122ae130 [^]'
User avatar (0003056)
Torr Samaho (administrator)
2012-03-31 15:33

That's certainly much better than freezing :). I'd say it would be nicer though if the intermission is displayed before e3m1 is loaded. IMHO it's pretty confusing to find yourself in e3m1 without any intermission.
User avatar (0003100)
TIHan (reporter)
2012-04-01 22:24

Unfortunately, getting intermissions to occur after the endgames are very difficult and would require nasty hacks. This is all thanks to how mapinfo and its parser works.

Torr mentioned we could have a "You Won" message after you defeated a boss fight and let the player know we are entering a new level. There is also an issue with this as well, as an endgame is treated as a nextmap and could easily be triggered when you hit the exit switch.
User avatar (0003102)
unknownna (updater)
2012-04-01 22:39

In ZDaemon (1.08.08c), the players are sent directly to the intermission screen after killing the spider mastermind. After the intermission, the players are sent to E4M1.
User avatar (0003103)
TIHan (reporter)
2012-04-01 22:41
edited on: 2012-04-02 04:10

> In ZDaemon (1.08.08c), the players are sent directly to the intermission screen after killing the spider mastermind. After the intermission, the players are sent to E4M1.

What happens if E4M1 doesn't exist for some reason?


Edit:
I'm putting this here, purely for documentation'http://pastebin.com/dMES4eV5 [^]' . This was a solution I had that determines which episode to go to after finishing a game. This actually makes it where you kill the mastermind you (edit):only go to E4M1 without an intermission. BUT, the problem is that in Doom 2, ST has custom episodes that go to the mortal conflict and invasion which make it so that when you finish doom 2, you start on the mortal conflict.... We surely do not want this.

Edit2:
The current way for the server admin to solve all of this is to make a maplist. Doesn't mean we shouldn't fix endbunny because it crashes the client.

User avatar (0003106)
Torr Samaho (administrator)
2012-04-01 22:49

> Doesn't mean we shouldn't fix endbunny because it crashes the client.

I agree that the crash / freeze caused by this on the clients definitely should be fixed somehow.
User avatar (0003107)
TIHan (reporter)
2012-04-01 22:52

> I agree that the crash / freeze caused by this on the clients definitely should be fixed somehow.

Then that changeset will absolutely fix that problem.

I say, go ahead and apply the fix for endbunny just so we will never crash the client for this reason. If the admin wants to go to E4M1 along with an intermission, he needs to make a maplist.
User avatar (0003110)
TIHan (reporter)
2012-04-02 04:30

I've made another crack at this.
'https://bitbucket.org/TIHan/tst/changeset/e40d4426271a [^]'

With this, any end game on a map will get its next map set to the one its currently on.

Now, don't freak out about this behavior as I have noticed something. If I set Doom 2's MAP01 nextlevel to be say "EndGame2", with the current implementation(without my changes) it will try to set map "e2m1" which doesn't exist, so the nextlevel will be MAP01 again.. So with the changeset, this will make the behavior consistent across any type of end game that could occur in any WAD. Does this make sense?
User avatar (0010847)
Torr Samaho (administrator)
2014-11-09 20:07

For the record, here is a new link to TIHan's changeset:

'https://bitbucket.org/Torr_Samaho/zandronum-misc/commits/e40d4426271a410a1519ef8e86e0d2c40dbd3760 [^]'
User avatar (0010848)
Torr Samaho (administrator)
2014-11-09 21:54

After looking at the fix I realized that it still doesn't solve the problem with the intermission.

This should work better, although I'm not happy yet with how the next map is selected technically.
User avatar (0012629)
unknownna (updater)
2015-06-10 09:30
edited on: 2015-06-11 07:10

This seems to work very well for vanilla Doom. I tested it with 2 clients + 2 bots on a local server with an emulated ping of 201.

Edit:

Quote from Torr Samaho
After looking at the fix I realized that it still doesn't solve the problem with the intermission.

I noticed that the intermission is skipped if a "changemap" map change is called, but this also happens in 2.0. And "nextmap" doesn't seem to work either in the build.

User avatar (0013215)
WaTaKiD (updater)
2015-08-11 23:25

this pastebin contains the results of my tests of which map the "end" maps go to next:'http://pastebin.com/7r490h8p [^]'

ZandroDev1.4-EndGameFixTest does produce better results, however for example exiting hexen map40 will just go back to map40 again,
can i suggest it go back to map01 instead? or if hexdd is also loaded go to map41?

as this ticket is most likely to simply deal with the maps hanging and disconnecting players, if necessary i will make a new ticket for such suggestions
User avatar (0013839)
WaTaKiD (updater)
2015-11-17 21:01
edited on: 2015-11-17 21:01

i have edited the pastebin in my above note ('http://pastebin.com/7r490h8p [^]' ) to include my results of testing zan 3.0, build used here:'https://www.dropbox.com/s/ldcbfpuxvhjn78o/zandronum-3.0-r151114-1838-9150926-windows.zip?dl=0 [^]'

unfortunately the results are slightly worse than zan 1.3/2.0, as twice as many maps can hang

User avatar (0015875)
WaTaKiD (updater)
2016-10-10 01:32

ive found this commit to be responsible for causing hexen map40 and hexdd map60 to hang in zan 3.0: 'https://bitbucket.org/Torr_Samaho/zandronum/commits/b95c281656214a6a268875e28b58e5fec3f64f4c [^]'

and this one causes heretic e2m8 to hang: 'https://bitbucket.org/Torr_Samaho/zandronum/commits/bbea75bb1e160bb4b911f664ca2e220ef2d48d5f [^]'
User avatar (0017489)
WaTaKiD (updater)
2017-05-01 18:22

'https://bitbucket.org/Torr_Samaho/zandronum/commits/1eff8d47422f7648de0b43f91c33380fc4a89471 [^]' which is for ticket 3110 is an improvement for this ticket as well

unfortunately hexen map40 and hexdd map60 still hang

however chex e3m5, doom e3m8, heretic e2m8, and heretic e3m8 actually change to e1m1 while kicking the clients, so they can atleast reconnect and continue playing on the server

Issue Community Support
Only registered users can voice their support. Click here to register, or here to log in.
Supporters: WaTaKiD unknownna FascistCat Daedalus cruduxy Korshun
Opponents: No one explicitly opposes this issue yet.

- Issue History
Date Modified Username Field Change
2012-03-25 18:53 TIHan New Issue
2012-03-27 00:47 TIHan Assigned To => TIHan
2012-03-27 00:47 TIHan Status new => assigned
2012-03-27 03:12 TIHan Note Added: 0002914
2012-03-27 03:12 TIHan Status assigned => feedback
2012-03-27 20:08 unknownna Note Added: 0002930
2012-03-27 20:40 TIHan Note Added: 0002931
2012-03-27 20:40 TIHan Status feedback => assigned
2012-03-27 20:40 TIHan Status assigned => feedback
2012-03-28 01:46 Torr Samaho Note Added: 0002942
2012-03-28 02:32 unknownna Note Added: 0002950
2012-03-28 05:57 TIHan Note Added: 0002953
2012-03-28 05:57 TIHan Status feedback => assigned
2012-03-28 05:57 TIHan Status assigned => feedback
2012-03-31 15:33 Torr Samaho Note Added: 0003056
2012-04-01 22:24 TIHan Note Added: 0003100
2012-04-01 22:24 TIHan Status feedback => assigned
2012-04-01 22:24 TIHan Status assigned => feedback
2012-04-01 22:39 unknownna Note Added: 0003102
2012-04-01 22:41 TIHan Note Added: 0003103
2012-04-01 22:41 TIHan Status feedback => assigned
2012-04-01 22:43 TIHan Note Edited: 0003103 View Revisions
2012-04-01 22:44 TIHan Note Edited: 0003103 View Revisions
2012-04-01 22:46 TIHan Note Edited: 0003103 View Revisions
2012-04-01 22:49 Torr Samaho Note Added: 0003106
2012-04-01 22:52 TIHan Note Added: 0003107
2012-04-01 22:53 TIHan Status assigned => feedback
2012-04-02 04:10 TIHan Note Edited: 0003103 View Revisions
2012-04-02 04:30 TIHan Note Added: 0003110
2012-04-02 04:30 TIHan Status feedback => assigned
2012-04-02 04:30 TIHan Status assigned => feedback
2012-06-09 13:22 Torr Samaho Category General => Bug
2014-11-09 20:07 Torr Samaho Note Added: 0010847
2014-11-09 21:54 Torr Samaho Note Added: 0010848
2014-11-09 22:04 Torr Samaho Assigned To TIHan => Torr Samaho
2014-11-09 22:04 Torr Samaho Status feedback => needs testing
2015-06-10 09:30 unknownna Note Added: 0012629
2015-06-11 07:07 unknownna Note Edited: 0012629 View Revisions
2015-06-11 07:10 unknownna Note Edited: 0012629 View Revisions
2015-08-11 23:25 WaTaKiD Note Added: 0013215
2015-11-17 21:01 WaTaKiD Note Added: 0013839
2015-11-17 21:01 WaTaKiD Note Edited: 0013839 View Revisions
2015-11-28 19:59 Dusk Status needs testing => assigned
2016-01-24 18:22 Dusk Relationship added has duplicate 0002592
2016-10-10 01:32 WaTaKiD Note Added: 0015875
2017-05-01 18:22 WaTaKiD Note Added: 0017489






Questions or other issues? Contact Us.

Links


Copyright © 2000 - 2024 MantisBT Team
Powered by Mantis Bugtracker