Notes |
|
|
The offline behavior of 3.0 seems to be consistent with GZDoom 1.8.6. Can you confirm that? If so, is GZDoom 2.4.0 behaving differently? The new behavior of GZDoom 1.8.6, i.e. to error out, seems correct to me. |
|
|
|
Yes, it is consistent with GZDoom 1.8.6. And GZDoom 1.8.6 is the same as GZDoom 2.4.0. |
|
|
|
The server should now restart itself on map01/e1m1 when a mod instructs it to switch to a non-existing map. |
|
|
|
|
|
|
It works! But what if the iwad has neither MAP01 nor E1M1? From the code of the fix and CalcMapName it seems it would get stuck in the same endless loop of loading nonexistent MAP01 or E1M1. |
|
|
|
Yeah, that's right. Are there iwads that have neither? |
|
|
(0017495)
|
Korshun
|
2017-05-01 18:50
(edited on: 2017-05-01 18:51) |
|
I am not aware of any. But it's not too far-fetched to imagine an iwad that only uses maps like MYMOD01 or SOMENAME. Actually, a commercial game that uses GZDoom GPL does just that.
Even if there are no zandronum wads like that yet, they might appear. Going to the previous map is more reliable, as the map is guaranteed to exist.
|
|
|
|
i decided to check out 'https://zdoom.org/wiki/IWAD [^]' and it seems the adventures of square is the only iwad here that doesnt use map01 or e1m1, but instead e1a1, however zan 3.0 cant load it, but zan 4.0 can |
|
|
|
The problem is that by the time the server has errored out, it's not so clear anymore what the previous map was. Thus, I followed what the ZDoom code used in 3.0 does to initialize "startmap". A different possibility would be to use AllEpisodes[0].mEpisodeMap. |
|
|
|
SERVER_ErrorCleanup now more carefully looks for a valid map to restart the game and exits the server if no map can be found. I think this should be sufficiently robust now. |
|
|
|
|
|
|
Tested this with r170513 and the server successfully restarted to map01, e1m1 and e1a1 after pushing the switches in the testwad online. |
|