Unlike the other games this required a bit of patching of the IWAD's data with a new MAPINFO so it needs to be in a separate .pk3 file loaded after the IWAD.
Since this needs to be loaded after the IWAD it was also possible to add a small DECORATE lump which fixes a few errors inherited from the original Dehacked patch, like monster counting bugs and unintentionally shootable decorations.
There were two issues blocking this:
* the Doom BigUpper font was loaded for all Doom-based games. It is only valid for original idgames releases and nothing more.
* Hacx.wad defines its BigFont in FONTDEFS which blocks all custom fonts. Since the Hacx font and GZDoom's base BigFont are very similar, the FONTDEFS lump now gets deleted from the WAD directory.
The episode titles required a workaround because the CQ3 episodes do not contain names in text form: If this is the case, the patch name will be used as a string table identifier to get a matching text for localization.
This is for IWADs that contain content which clashes with the engine and must be removed. The primary reason are the unimplemented characters in Raven's BigFont.
It's "doom.id.doom1/2" instead of "doom.doom1/2" now.
The config file's content will be renamed and for lump filtering a fallback has been added - note that you cannot combine both naming schemes! The old one has to be considered deprecated now.
This also removes the duplicated content necessitated by the old naming scheme.
For the Doom IWADs the provided font looks almost identical to the characters used on the title patches. So, for any level name that got replaced in some language, it will now check if the retrieved name comes from the default table, and if not, ignore the title patch and print the name with the specified font.
This also required removing the 'en' label from the default table, because with this present, the text would always be picked from 'en' instead of 'default'. Since 'en' and 'default' had the same contents, in any English locale the 'default' table was never hit, so this won't make any difference for the texts being chosen.
Last but not least, wminfo has been made a local variable in G_DoCompleted. There were two places where this was accessed from outside the summary screen or its setup code, and both were incorrect.
The old code went through a list of predefined file names and looked each of them up in a list of predefined directories until it found a match. This made it nearly impossible to add custom IWAD support because the list of valid file names could not be extended.
This has now been switched around to run a scan for matching files on each given directory. With this approach it can look for *.iwad and *.ipk3 as IWAD extensions as well and read an IWADINFO out of these files that can be added to the internal list of IWADs, making it finally possible to define custom IWADs without having to add them to the internal list.
(This isn't fully tested yet so some errors may still occur.)
* all new things got either an sctor definition or are explicitly deleted through the 'doomednums' section in MAPINFO. CTC related actors are non-functional!
* added a 'noskillflags' option to 'doomednums' so that the lightmap definition things in the maps can be repurposed as dynamic lights.
* added the new dagger powerup.
* added MAPINFO entries for the added maps.
Both 'Adventures of Square' IWADs were missing an entry for base MAPINFO and as a result did not define the common editor numbers.
To prevent this, a new mindefaults MAPINFO was added to zdoom.pk3 which now gets loaded if IWADINFO does not specify a game-specific file.
This minimum setting sets all gamedefaults to a reasonable base value and defines all other things that are required to be defined.
* add new Autoname "HereticSR" for Heretic: Shadow of the Serpent Riders.
* add missing CreateSectionAtStart() calls for Chex1, HereticSR,
Freedoom2, DoomBFG and Doom2BFG.
* remove Autoname "HexenDemo" because shareware games do not allow
loading any custom content.
- Added freedoom2.wad as valid alias name (freedoom1.wad already
existed).
- Renamed titles to Freedoom: Phase 1 and Freedoom: Phase 2.
- Reordered to put Phase 1 above Phase 2 in the IWAD picker.
* Fixed possible crash when texture for menu item patch cannot be loaded. (From Alexey's Mac OS X port.)
* Fixed iwadinfo.txt definitions of Hexen and Freedoom demos (also from Alexey's port.)
* Added missing LOF_NOJUMP definition.
SVN r3284 (trunk)