Allow netplay with sideloaded WADs#1044
Allow netplay with sideloaded WADs#1044DankRank wants to merge 2 commits intofabiangreffrath:masterfrom
Conversation
NET_SV_ParseGameStart checks that episode and map are in the correct range. This prevented the episode 5 version of Sigil, as well as sideloaded NRFTL and Master Levels from working in netgames. This is fixed by changing the number of episodes in the valid_modes table. As a side effect, setup program will now allow warping to E5Mx for the Ultimate Doom IWAD. Outside of Heretic, the valid_modes table is only used for these two things (netgame validation and setup warp UI). Note that if you try to start a netgame with a non-existent map, the client will simply exit with a W_GetNumForName error.
|
Looks like there are open issues for this already: #455 and chocolate-doom#875. I don't think there's a way to prevent clients from erroring out when a map is missing without redesigning the protocol. The server doesn't know which maps players have nor does it know what will be the starting map, because that info only becomes available after the controlling client sends GAMESTART. At that point, every client has already received LAUNCH and closed the GUI. In any case, the MD5 check will give the user an early notice, so this isn't as big of a problem as it might first seem. Also, note that |
|
I'd prefer if people would explicitly load PWADs when attempting network games. Doesn't sound to me like that's asked too much. |
NET_SV_ParseGameStartchecks that episode and map are in the correct range. This prevented the episode 5 version of Sigil, as well as sideloaded NRFTL and Master Levels from working in netgames.This is fixed by changing the number of episodes in the
valid_modestable. As a side effect, setup program will now allow warping to E5Mx for the Ultimate Doom IWAD. Outside of Heretic, thevalid_modestable is only used for these two things (netgame validation and setup warp UI).Note that if you try to start a netgame with a non-existent map, the client will simply exit with a
W_GetNumForNameerror.