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.
- Some of the ceilings in the monster closets weren't high enough to allow the cyberdemons to pass, making 100% kills impossible. This is caused by the floors not going down far enough and stopping at a certain height above the next closest floor.
Default: off (false)
When this option is enabled (true), then exiting the game from
main menu and by menu_quit command doesn't require confirmation
and doesn't play sound.
# Conflicts:
# wadsrc/static/menudef.txt
Steps to reproduce:
1. Load game.
2. Press any key to bring up the main menu.
3. Move the mouse anywhere out of the menu entries.
4. Press Down arrow.
Expected result: the menu cursor sound is played, the first menu element is selected.
Actual result: the menu cursor sound is played, no menu element is selected.
Repeated Down arrow pressing doesn't give any result, either.
If on step 4 Up arrow is pressed, the last element in the menu is selected.
This was always used with 'consoleplayer' which really is the only thing making sense here. But this is a part of the global state which should be avoided in play code.
In particular, this makes no real sense in case of secondary maps where it should always return false.
# Conflicts:
# src/fragglescript/t_func.cpp
# src/g_inventory/a_keys.cpp
# src/p_acs.cpp
# src/p_mobj.cpp
# src/p_user.cpp
# src/r_data/r_interpolate.cpp
# src/r_data/r_interpolate.h
They are attached and actived explicitly during usual actor initialization sequence
Postponed processing applicable to so called user dynamic lights must be skipped for them
RECREATELIGHTS flag handling for dynamic light actors had the opposite effect of deactivating them
https://forum.zdoom.org/viewtopic.php?t=65683
Rationale:
When a mod adds a custom option menu, it adds a space before it, like this:
```
AddOptionMenu OptionsMenu
{
StaticText ""
Submenu "$MYTITLE", MyOptions
}
```
to prevent custom option menu being in the same block as the last entries in the
standard options list. It's okay.
But when more than one such mod is loaded, each one of them adds a space before
their option menu entry, and Options Menu becomes unnecessary bloated.
This simple edit allows mods to not add a space, still be separated from
standard options.
With `crosshairhealth 2`, the crosshair will now
go from white to yellow, then yellow to red as the player's health
decreases. As the player's health increases up to 200, the crosshair
will also go from white to green to indicate overheal.
This is similar to the implementation in games like Xonotic.
The old behavior (`crosshairhealth 1`) is still the default.
- e5m2: floating skulls disappear on lower skill levels
- e5m4: the platform with the baron of hell that led to the invulnerability secret had a missing texture
This was one of that annoying old design mistakes where Doom and Heretic features were poorly merged together. The Heretic Gargoyle uses very similar coding but performs a subtly different action when actually hitting another actor. This different action was made the default, even for the Lost Soul.
It has now been changed that both monsters use their original action, being distinguished by an actor flag. For compatibility with custom definitions Heretic's behavior, which has been the default in ZDoom will be the preferred one. The one of the Lost Soul can be reactivated by a flag.
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