This failed to read the demos in the game directory.
For those who find demos annoying there's now a demo_playloop CVAR.
Currently this is only active in Blood because the other games have demos disabled because they are non-functional.
The code needs to be refactored anyway to allow better crosshair control but this also seemed to affect global render state, considering how poorly it was all implemented.
- Way better AI for Custom Dude when attacking the target
- Minor warning fixes and other updates
# Conflicts:
# source/blood/src/actor.cpp
# source/blood/src/aiunicult.cpp
# source/blood/src/aiunicult.h
# source/blood/src/asound.cpp
# source/blood/src/gameutil.cpp
# source/blood/src/gameutil.h
# source/blood/src/player.h
# source/blood/src/triggers.h
* removed temporary placeholder content from string init function. All this gets properly read from definition files now.
* preinitialize a few quotes that are used for status display purposes and are needed in all games
* only use the global episode name table in Blood to avoid redundancy
* let SW's swcustom parser write to the global tables instead of local ones.
This was some meticulously preserved relic of bad old DOS times used to block OS facilities to close an app.
Since this has been worked around at a lower level already the variable was essentially without function but some quite bad code depended on it.
- Player Control updates
- Minor modern types updates
- There was removed GDX prefix for all modern stuff
# Conflicts:
# source/blood/src/aiunicult.cpp
# source/blood/src/aiunicult.h
# source/blood/src/mapedit.cpp
# source/blood/src/player.h
# source/blood/src/sfx.h
Conmsidering how hard it is in Duke Nukem based games to modify the level music, there is now a setting for this in mussetting.txt to make the job easier and even allow setting level music in Redneck Rampage without replacing game data.
* moved the binding commands to osd.cpp. They were in the global namespace already and this way everything to be tossed out is in the same place when the time comes.
* removed support for the OSDs native CVARs. The only ones left were some internal ones I won't need until this code can be replaced.
* same for the custpmization code the games added. Duke Nukem was the only one anyway to have a decent font for it.
It's still not active but now should produce correct results when working inside the file system.
What it is missing is a file scanner that picks the data it needs to process.
- consolidated the 3 identical S_OpenAudio implementations. The replacement code is disabled for the time being because it needs a rewrite. The replacement logic is uses is a bit too volatile.
- removed the old GRP scan code.
* reroute several error conditions to I_Error.
* removed some soon-to-be obsolete GRP loading code.
* explicitly trigger the SetDefaults script events which depended on side effects from the config implementation.
* removed the nonsensical file system switch. All this does is create instabilities because it is non-obvious from where data is loaded. If a resource is mounted, it should be checked for content no matter what. While this may affect the stray weird mod out there it is a necessity if we want to allow transparent project repackaging.
The Steam/GOG path getters were taken out of the frontends.
This also switches the Windows directory reader touse the wide string version to get Unicode file names.
Some paths were added to the config file instead of hard coding them.
Some part are not done yet, and the file system data is currently ignored - there's no way to properly set this up with the file system code Build came with.
This removes all unused parts of the implementation and moves the rest to the InputState class for easier replacement later. All MACT is doing now here is to call the UpdateStatus function, the internal workings are no longer relevant.
- write the console log to the folder returned by M_GetDocumentsPath and not to the root game directory.
- removed G_ExtPreInit because it has become redundant. The search path setup will have to be redone anyway.
- Added QAV scene player (playing user animation instead of weapon)
- Added trigger event intiator for sprites (WIP and experimental)
# Conflicts:
# source/blood/src/actor.h
# source/blood/src/player.h
Also removed the entire cruft related to this - the pointless offsetting value and the precalculation of the timer value (as if we could not afford a single division for something that WAITS!
Unfortunately this required removal of the menu option for the time being.
Blood was fine, albeit with an inverted scale, but the EDuke implementation was something very special - and not in a good way, using 4 CVARs to store the scaling state instead of one.
This is a lot of changes in a lot of code because nothing here was abstracted into the sound system. :(
Hopefully most of the affected code here can be tossed out soon, it's not pretty.
- AI: there is printing error message in conosole added (instead of dassert)
- Updates for Player Control modern type
# Conflicts:
# source/blood/src/actor.cpp
# source/blood/src/actor.h
# source/blood/src/globals.cpp
# source/blood/src/globals.h
# source/blood/src/player.h
# source/blood/src/sound.cpp
# source/blood/src/triggers.cpp
# source/blood/src/triggers.h
# source/blood/src/view.cpp
# source/blood/src/weapon.cpp
# source/blood/src/weapon.h
- consolidated Polymost precaching and removed precaching for static tiles because they now are always loaded.
- removed cache configurability. On modern systems this is relatively pointless - allocating 50 or 100 MB is a non-issue - and the cache is due for replacement anyway.
- Some ThrowError() calls was replaced my viewSetSystemMessage()
- New modern type playQAV (WIP)
# Conflicts:
# source/blood/src/actor.cpp
# source/blood/src/weapon.h
- Added names for sprite, wall and sector types
- Added gModernMap protection for using new features only on different version of map
# Conflicts:
# source/blood/src/actor.cpp
# source/blood/src/callback.cpp
# source/blood/src/callback.h
# source/blood/src/triggers.h
Sorry, but having a globally writable pointer to every texture is just insane and makes any functional management impossible.
This is merely a preparation for adding a real texture manager. That cannot be done if any code can write over the data at will. For that, it now has to make the texture writable first or create a writable empty texture.
- Added names for system RX/TX channels
- Detect if map requires new features to work properly via special TX and command
- Effect Gen update
# Conflicts:
# source/blood/src/actor.cpp
# source/blood/src/eventq.h
# source/blood/src/triggers.cpp
# source/blood/src/triggers.h
Renamed all elements still referring to zdoom.
removed the frontend specific resource data.
fixed startup dialog to accept ANSI date despite building as Unicode. This needed a bit of hackery because the macros in windowsx.h are not character set sensitive.