by Graf Zahl » Tue Jan 22, 2019 1:33 am
If you take a closer look at the level loading code this won't come as a surprise.
This was a mess in the original Doom code already, but when ZDoom got extended to use MAPINFO it was made ten times worse, because the new features got tacked on in the same bad style. The level name gets passed through several variables, some local, some global, some in external structs and if not all of the volatile assumptions being made here match up - boom...
If you take a closer look at the level loading code this won't come as a surprise.
This was a mess in the original Doom code already, but when ZDoom got extended to use MAPINFO it was made ten times worse, because the new features got tacked on in the same bad style. The level name gets passed through several variables, some local, some global, some in external structs and if not all of the volatile assumptions being made here match up - boom...