by Rachael » Thu Nov 02, 2017 4:49 am
I would've been willing to rewrite the IWAD detection mechanism but the problem is expressing my ideas on how to do it into actual C++ code is not that easy. I have absolutely zero experience with ZDoom's file manipulation systems, and I suspect that it's a spaghetti code mess where cleaning it out is going to take an effort pouring over multiple files just to remove the relevant bits out. I was all over the place across two files just implementing the zd_extra.pk3 loader, and that doesn't even count the shenanigans that occurred in the much wider codebase with some of the code making assumptions that the IWAD would never be past file #1.
(I did it the way I did because if an IWAD specifies its own resources it should never be overridden by zd_extra - that would cause its own issues)
I would've been willing to rewrite the IWAD detection mechanism but the problem is expressing my ideas on how to do it into actual C++ code is not that easy. I have absolutely zero experience with ZDoom's file manipulation systems, and I suspect that it's a spaghetti code mess where cleaning it out is going to take an effort pouring over multiple files just to remove the relevant bits out. I was all over the place across two files just implementing the zd_extra.pk3 loader, and that doesn't even count the shenanigans that occurred in the much wider codebase with some of the code making assumptions that the IWAD would never be past file #1.
(I did it the way I did because if an IWAD specifies its own resources it should never be overridden by zd_extra - that would cause its own issues)