This reverts commit 2b51e8d5dd.
# Conflicts:
# src/g_hub.cpp
# src/g_level.cpp
# src/p_setup.cpp
# src/wi_stuff.cpp
# src/wi_stuff.h
# wadsrc/static/zscript/ui/statscreen/types.zs
Revert "- fixed: The wbstartstruct that gets passed to the level summary screen needs to be static"
This reverts commit 4a563f449d.
# Conflicts:
# src/g_level.cpp
Revert "- Fixed compilation."
This reverts commit 149a294a49.
# Conflicts:
# src/g_level.cpp
Revert "- Fixed game finales not being shown after the intermission."
This reverts commit 55af0b11c6.
All this didn't make sense without localization and caused problems with intermissions and endings, it was incompatible with the old code without the level refactor.
For now only with font-printed map names. Allowing this with titlepatches will require more work and an option to disable.
# Conflicts:
# src/g_level.cpp
# src/gamedata/g_mapinfo.h
# src/gi.cpp
# wadsrc/static/zscript/ui/statscreen/statscreen.zs
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.
# Conflicts:
# src/g_hub.cpp
# src/g_level.cpp
# src/gamedata/g_mapinfo.h
# src/gi.h
# src/p_setup.cpp
# src/stringtable.cpp
# src/stringtable.h
# wadsrc/static/zscript/ui/statscreen/statscreen.zs
# wadsrc_extra/static/iwadinfo.txt
# Conflicts:
# src/gi.h
# wadsrc_extra/static/iwadinfo.txt
The side effects here broke other maps and this is really too glitchy to be turned on unless really necesasary.
# Conflicts:
# src/gamedata/g_mapinfo.h
# src/gamedata/stringtable.cpp
# src/maploader/maploader.cpp
# src/p_map.cpp
# src/p_udmf.cpp
As IWAD content this is in zd_extra.pk3.
# Conflicts:
# src/gamedata/g_mapinfo.h
# src/intermission/intermission_parse.cpp
# Conflicts:
# src/intermission/intermission_parse.cpp
Since unfortunately this cannot be set as a general default, let's at least make it as easy as possible to disable that panning+scaling madness without having to edit the texture data.
# Conflicts:
# src/swrenderer/textures/r_swtexture.h
# src/textures/texture.cpp
# Conflicts:
# src/textures/texture.cpp
This setup has been a constant source of problems so now I reviewed all uses of FName to make sure that everything that needs to be initialized is done manually.
This also merges the player_t constructor into the class definition as default values.
This is mainly to support UMAPINFO which does not have clusters but has been extended to define separate exit texts for each target map that can be reached from a given map.
Special names 'normal' and 'secret' can be used to define texts specific to the default exits.
New MAPINFO properties:
* exittext = mapname, "text"...
* textmusic = mapname, "musicname", order
* textflat = mapname, flatname
* textpic = mapname, picname
textflat and textpic are like 'flat' and 'pic' for clusters, one defines a tiled background, the other a fullscreen image.
Setting an empty exittext will disable a cluster-based text screen that may apply to the given map.
Since the true color software renderer also handles them there is no point keeping them on the GL side.
This also optimized how they are stored, because we no longer need to be aware of a base engine which doesn't have them.
- disabled the Build map loader after finding out that it has been completely broken and nonfunctional for a long time. Since this has no real value it will probably removed entirely in an upcoming commit.
- added support for global variables to the code generator - not the compiler, though. For the handful of entries this is needed for it may just as well be done manually. So far FLevelLocals level is the only one being exported.
- fixed: The VM disassembler truncated 64 bit pointers to 15 digits because the output buffer was too small.
- resolve entire FxSequences instead of aborting on the first failed entry. This allows to output all errors at once.
- added sanity checks to prevent a savegame from being loaded with an incompatible map
- refactored a few things to simplify serialization.
- started work on main level serializer function.
- some reorganization of texture precaching so that the renderer can decide what to do with actors.
Just marking the sprite textures loses too much info if more is needed than just loading the images into memory.