I had originally been under the impression that only one DeHackEd patch could be loaded at one time, and loading one would prevent any loaded afterwards from working at all. But, to be fair, I could be thinking of an older instance, and things could've certainly changed when I wasn't looking. I don't know the technical aspects well enough to investigate it on my own.
I was mainly concerned because Fraggle said some things that supported my fear that only one DeHackEd would work at once in ZDoom.
Now, if my concerns are incorrect or outdated, then the issue can be put to rest right now. The long and short of it all is: if something in ZDoom isn't working how it 'should' work, then I feel it's at least worthy of investigate. But if everything's in order, then I'm good.Fraggle wrote:You're correct that it breaks some mods. That's actually down to bugs in source ports rather than Freedoom. For example, some source ports load dehacked patches in the wrong order, so that the IWAD DEHACKED lump is applied after patches specified on the command line, or in PWADs. Loading of patches needs to be carefully ordered in order to make sense: I described the required ordering back when we added the patch.
As a workaround, you could use a WAD editing tool to remove the lump from your copy of the IWAD. I know that's a pretty shitty workaround but it's a solution at least. Other than that, file a bug / complain to the authors of your preferred source port, to try to get them to fix their dehacked behavior.
For example, this should do the sensible thing:
code:
doom -iwad (freedoom iwad) -file batman.wad -deh batman.deh
In this scenario, the order should be:
IWAD is loaded
DEHACKED lump inside IWAD is loaded
External dehacked patches are loaded (-deh on command line)
External PWAD(s) are loaded
DEHACKED lumps inside PWADs are loaded
With the current setup in PrBoom+, the ordering is:
IWAD is loaded
External dehacked patches are loaded (-deh on command line)
External PWAD(s) are loaded
DEHACKED lump is loaded, either from PWAD or IWAD (only a single lump is supported)
The Batman Doom example therefore doesn't work because the DEHACKED lump is loaded last, overriding the patch specified on the command line.