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
With extended fonts much of the old code did not work anymore, this needed more precise checks for the sources of the printed texts.
Without the adjustments, just added GetMaxAscender for compatibility. (drfrag)
# Conflicts:
# src/gamedata/fonts/font.cpp
# src/scripting/vmthunks.cpp
# wadsrc/static/zscript/ui/statscreen/statscreen.zs
Duration of sound playback and subtitles display will be synchronized if sound id is specified
For existing Strife messages this works out of the box
https://forum.zdoom.org/viewtopic.php?t=65379
- Note: Because sound channels are not in zscript, there's no way to modify a sound made by S_Sound.
# Conflicts:
# src/s_sound.cpp
# wadsrc/static/zscript/base.zs
* sprite offset definitions, which are IWAD dependent
* Freedoom's decal overrides
* conversation ID definitions for the Strife teasers
* the fallback BigFont now can also be loaded by IWADs which declare themselves as GAME_Heretic or GAME_Hexen.
# Conflicts:
# src/gamedata/fonts/v_font.cpp
This was done for two reasons:
1. It forces loading of zd_extra.pk3 for the stock IWADs, eliminating a certain kind of user error.
2. It removes the stock IWAD definitions for custom games that distribute the engine along with their data, so that it doesn't pick up on Steam and GOG installations and shows an inappropriate IWAD picker.
This is both for consistency and better localizability. The old code is retained to ensure that mods inheriting from the old menu continue to work.
# Conflicts:
# src/menu/menudef.cpp
# src/namedef.h
# wadsrc/static/zscript/ui/menu/optionmenu.zs
This was done because the backdrop as implemented was the only texture in the entire game that had to be deleted and recreated each frame.
However, with Vulkan this would have necessitated quite a bit of synchronization with the render pipeline which wasn't really feasible just for this one single texture.
Now the texture manager can assume that once a texture was created it will be immutable and never has to change.
# Conflicts:
# src/CMakeLists.txt
# src/textures/backdroptexture.cpp
# src/v_2ddrawer.cpp
Add 'useowncoloradd_{top,mid,bottom}' sidedef properties to the UDMF
spec
Only use side's additive colors if 'useowncoloradd_(top|mid|bottom)' is
set.
Rename UseOwnColors flag to UseOwnSpecialColors
Add UseOwnAdditiveColor flag to side_t::part
Add EnableAdditiveColor to side_t
Add Side.EnableAdditiveColor to ZScript API
Sector.SetAdditiveColor actually called Sector.SetSpecialColor
Add use boolean property, used to determine whether or not to override the sector's additive wall colour with the side's additive colour.
The new specification is more flexible, and allows assigning additive
colors to individual parts of a sector (walls, sprites, flats) and even
individual parts of a side (top, middle, bottom)
Add AdditiveColors arrays to sector_t and side_t::part
Initialize AdditiveColors arrays to 0
Export AdditiveColors to ZScript
Save AdditiveColors in saved game files
Use colors from AdditiveColors arrays when setting the additive color
for the render state
Add code to parse the new UDMF additive color properties
Remove additive color slot from sector color/part enum
Add SetAdditiveColor to sector_t and side_t
Add GetAdditiveColor to side_t
Export new methods and additive color arrays to ZScript
# Conflicts:
# src/hwrenderer/scene/hw_sprites.cpp
# src/hwrenderer/scene/hw_walls.cpp
# src/hwrenderer/scene/hw_weapon.cpp
# Conflicts:
# src/gl/scene/gl_walls_draw.cpp
# src/gl/scene/gl_weapon.cpp
# src/hwrenderer/scene/hw_flats.cpp
# src/r_defs.h
Rename ColorAdd to AddColor
Add AddColor to FRenderState
Tweak SpecialColors array in ZScript to include the additive color
Add uAddColor to the shader compiler
Add uAddColor to the texel
# Conflicts:
# src/gl/shaders/gl_shader.cpp
# src/hwrenderer/scene/hw_flats.cpp
# src/hwrenderer/scene/hw_renderstate.h
# src/hwrenderer/utility/hw_draw2d.cpp
# Conflicts:
# src/gl/scene/gl_flats.cpp
# src/hwrenderer/scene/hw_flats.cpp
Exit_Normal and Exit_Secret specials imply addition conditions to make a decision about proceeding to the next map
A few scriptified actors require a bypass of these conditions in order to work properly
To make things easier, DBIGFONT, SBIGFONT and HBIGFONT will now be renamed in the lump directory to make things a bit easier to handle.
Another change is to make font folders atomic units to prevent cross-pollution between incompatible fonts. The only exception to this are the def* folders because they need to piece together their fonts from both zd_extra.pk3 and the IWADs.
* - Added support for monospacing alignment modes to HUDFont / BaseStatusBar.DrawString
* - added underlying type declaration for EMonospacing
* - replaced "#include v_video.h" with a declaration of EMonospacing
This deprecated CharAt and CharCodeAt for being unsuitable for text processing and in the case of CharCodeAt also for being buggy.
A new replacement, ByteAt has been added that reads a string byte by byte, as well as CodePointCount, which counts the amount of Unicode code points in a string and GetNextCodePoint which reads the string code point by code point.
Note that while this woll work as intended with the currently supported languages as a means to read single characters, there is no guarantee that this will remain so if Unicode support gets extended to things which break the "one code point == one character" assumption.
1. Top-level menu names are now properly handled.
2. Changing "Any or All terms" option now immediately updates the results.
3. Reformatted menu.zs to have tabs instead of spaces.
* entering a savegame description did not work anymore
* the length check was too restrictive and always underestimated the available space
* use the console font for entering a savegame description. This has more characters and better contrast for this content.
* the interface to the text enterer used bad measurements.
# Conflicts:
# wadsrc/static/zscript/ui/menu/optionmenuitems.zs
This was broken by several small unicode-incompatible code fragments.
This commit also removes the input limit for the player name and the savegame description. With multibyte encoding, limiting them to a fixed length did not work right.
Currently these will just overflow the fields if the text becomes too long, this needs some additional work.
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.
# Conflicts:
# src/version.h
Without this the class cannot be properly subclassed.
# Conflicts:
# wadsrc/static/zscript/ui/menu/optionmenuitems.zs
# Conflicts:
# wadsrc/static/zscript/ui/menu/optionmenuitems.zs
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
There are two options here - one only disables the vertical thrust and the other goes back fully to the original non-z-aware code.
Both options are settable through MAPINFO.
For the compatibility presets, the normal ones only disable the vertical thrust, the strict ones force use of the old code entirely.
# Conflicts:
# wadsrc/static/language.csv
The recent localization work has made it apparent that on many images the menu was extremely hard to read because its colors often clash with the background.
The choice of a bright overlay color with extremely low opacity is simply not enough to make the menus comfortable to navigate. Chex Quest was particularly bad but the problem existed in many Doom mods as well.
This also changes the CQ dim color to something a bit more green to better fit with the theme.