Player start number not remembered in multiplayer on load

Is there something that doesn't work right in the latest GZDoom? Post about it here.

Moderator: GZDoom Developers

Forum rules
Please construct and post a simple demo whenever possible for all bug reports. Please provide links to everything.

If you can include a wad demonstrating the problem, please do so. Bug reports that include fully-constructed demos have a much better chance of being investigated in a timely manner than those that don't.

Please make a new topic for every bug. Don't combine multiple bugs into a single topic. Thanks!

Player start number not remembered in multiplayer on load

Postby Nash » Fri Mar 05, 2021 2:13 pm

In a hub map setup, and in multiplayer, the game doesn't remember which player start the level was entered from. You know how player starts can be given a number in the first arg to determine which "entrance" to place the player at when entering the level (a la Hexen)?

When you play in coop, save, quit and then load the game, the following can happen depending on how the level is setup:

Setup A) In maps that have no 0-arg player starts (the first arg == 0), player colours end up wrong, and when a player is killed and resurrected (by pressing +use), a VM abort occurs. My guess is that the game is always looking for the default 0-arg player starts, which is obviously missing in this setup.

Setup B) In maps that DO have 0-arg player starts, the game just doesn't remember them. When a player is killed and respawns, they will respawn at the 0-arg player start, instead of the numbered player start they actually entered the level from.

Note that in any case, what this affects is when a player dies and respawns. Simply loading the game, and then continuing to play, is fine (as long as no one dies in that level).

Changing levels after loading the save will "fix" the references, but only for that play session. When the game is quit and then loaded at a later time, the same problem happens all over again.

I've attached save files (for player 1 and player 2) to save you the time needed to reproduce this. Just load these saves (one for each player) in a Hexen coop session.

In this save, the players have freshly returned from the ice level and the game was immediately saved. Next, type 'kill' on one of the players and then press +use to respawn. Instead of respawning at the portal near the ice room, that player is brought back to the very start of the level, where Korax says "greetings mortal are you ready to die".

The game apparently forgot that the latest spawn point was from the ice level.
You do not have the required permissions to view the files attached to this post.
User avatar
Nash
Twitter/Facebook/Youtube: nashmuhandes
 
 
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia
Twitch ID: nashmuhandes
Github ID: nashmuhandes

Re: Player start number not remembered in multiplayer on loa

Postby Nash » Sat Mar 06, 2021 1:49 am

I don't suppose the problem is "just" that LevelLocals' 'AllPlayerStarts' and the 'playerstarts' array isn't being serialized in FLevelLocals::Serialize, is it... ? Or does the problem run deeper than that.
User avatar
Nash
Twitter/Facebook/Youtube: nashmuhandes
 
 
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia
Twitch ID: nashmuhandes
Github ID: nashmuhandes


Return to Bugs

Who is online

Users browsing this forum: No registered users and 0 guests