Allows the SavegameManager to destroy all saves related to the current UUID session so hardcore mods can enforce this safely instead of needing to go nuclear.
Allows specify optional files from the commandline (note: this currently isn't hooked up to the filesystem proper for marking, this is purely for the file parsing until then).
* Add STL-standard type traits and functions to TMap to enable for loop iteration
* add third-party range-map library
I have e-mailed the author for clarifcation on the license, will update this when they respond
* vcpkg: Add cppdap and eventpp libraries, update baseline
* DAP implementation
* Add `FileSystem::FileHash()` to get the CRC32 hash
* add `starting_offset` param to `VMDisasm()` for debugger disassembly view
Defaults to `0`, should not change output if it's not set
* Add `VMFrameStack::HasFrames()` to prevent assertions when inspecting in the debugger
* Add `PC` field to VMFrame, ensure that it is updated whenever vm increments/decrements the pc
Does not change alignment, the offsets used in VMFrame still work
We need this for the debugger because we otherwise have no way to get the pc; it was a local in `ExecScriptFunc()`
* `ZCCCompiler::CreateClassTypes()`: ensure SourceLumpName is set for classes derived from non-native classes
* start debug server in d_main, add `vm_debug` cvars and `-debug` CLI arg
* Add documentation for `vm_debug` cvars
* vm_exec: Add debugger hooks for instruction execution events
* c_console: Add debugger hooks for logging events in `PrintString`
* add `.cache/` to gitignore
* vendor cppdap on main @ 6464cd7
Patches:
removed .gitmodules (submodules were thirdparty/json, thirdparty/googletest)
removed thirdparty/googletest, not needed
removed thirdparty/json/docs, thirdparty/json/test, thirdparty/json/benchmarks to prevent massive bloat
* vendor eventpp on master @ 1224dd6
* build: use internal cppdap and eventpp by default
* dap: fix Binary::GetFunctionLineRange()
* fix bug in range_map::find_ranges
* make Binary dap::Source dynamic
* cache source code upon retrieval
* refactor Binary into a class, cleanup PexCache
* fix ending session gracefully
* d_main: Stop debug server in D_Cleanup()
* Fix connecting to debugger when session already started
* cleanup unused stuff in ZScriptDebugger
* always send TerminateEvents on disconnect if initialized
* tweak color display
* Don't cache disassembly lines when scanning scripts
* Cache nodes when getting runtime state
* WIP display locals
* Fix display of static arrays
* Ensure names display in proper order
* dap: Fix struct locals display, add args display
* Support `start` parameter
* Support `filter` parameter
* remove struct unbound native data display
Practically useless for debugging zscript and didn't work properly anyway
* d_main: fix vm_jit and vm_jit not being disabled soon enough
* support breaking on abort exceptions
* dap: refactor game event emitter functions into seperate header
* dap: show native functions on stack
* dap: Remove "Native" from exception handling, simplify exception event emit
* dap: add instruction breakpoints
* dap: fix display of locals not in scope yet
* dap: Make disassembly view display invalid instructions for non-code addresses
* dap: remove dot initializers
* dap: fix local structs in scope
* dap: don't parse the non-used options in the launch/attach requests
* dap: fix local struct view
* dap: Fix displaying objects that aren't their actual types
* dap: Fix action and state handling
* dap: stack display view
* dap: fix object display view
* d_dehacked: set qualified name in addition to the printable name
* dap: fix displaying breakpoint errors when script isn't loaded
* dap: remove debug print
* dap: Display parameter names
* dap: Turn down verbosity of logging
* dap: fix disassembly view
* dap: fix performance problems with arrays
* c_console: emit event only if not PRINT_NODAPEVENT
* dap: improve logging
* dap: update upstream cppdap library to fix deadlocks on no bind
* dap: Fix ending session on client socket closed
* dap: prevent DebugServer.h from pulling in `dap` and `ZScriptDebugger.h`
* dap: fix pause event not being emitted on pause
* dap: remove eventpp emitters, way too slow
* Remove eventpp dependency
* dap: Display correct register names
* dap: Show special inits in registers
* dap: Add stack offset to VMLocalVariable
* dap: fix display of static arrays and local variables on stack vs. registers
* dap: fix displaying function pointers
* dap: tweak color display
* dap: fix scalar display < 4
* dap: add Globals display to debugger
* dap: unify methods to get vmvalue
* dap: rename free method to freeValue to avoid running afoul of macro defs
* fix windows builds
* fix compile on linux
* cleanup
* Fix display of function breakpoints
* dap: Don't send back binary files
* dap: include sbarinfo in script types (no debug support for anything but zscript yet, this is just for returning source info)
* dap: don't show ending session message unless initialized
* fix erroneous commit
* dap: handle evaluate requests
* Fix getting bitfield values
* Add CVars Scope and evaluation
* add running console commands from repl
* dap: disable commands via repl for now
* fix loading functions DECORATE scripts
* Add source information to Dehacked VM functions, add debugging support
* dap: cleanup
* fix resolving archive paths
* don't send source back on native stack frames
* handle `modules` request
* cleanup
* allow evaluating cvars on hover
* fix oob bpinfos
* fix restarting the game blowing out the debug server
* dap: process input events while paused to prevent deadlocks
* fix getting local state
* dap: fix LocalState alignment
* dap: fix DumpStateHelper
* update cppdap protocol version to 1.68.0
* remove cppdap from vcpkg deps
We can't use the upstream version anyway because the maintainers are not merging our patches
* dap: make named variable nodes derive from the same class
* dap: make cvar scope available in native stack frames
* handle local variables with conflicting names
* add I_GetWindowEvent() to win32 to only process window events when debugging is paused
* dap: fix evaluate
* dap: fix display of `out` variables
These shouldn't be left as they'll now point towards potentially invalid memory and also cause errors with serializing. Arrays and maps holding them are cleared. Also unlinks and relinks inventory items correctly from the hashmap on traveling.
Adds a multiplayer tab to allow hosting and joining games from within the GZDoom launcher rather than needed to use the command line. This has its own set of defaults independent from the main play page which necessitated rewriting how this information is passed and stored in the backend. A startup info struct is now passed back which has its defaults set from the cvars and then propagates any changes to it back to the defaults after selection is complete, making it much simpler to interface with the engine defaults.
* Cleanup: Alignment, long lines, Replace 0 with SDLK_UNKNOWN
* Gamecontroller api analogue input
* Added some button handling
* Added mapping for other buttons
* Added trigger events
* Added force_joystick flag
* Removed force_joystick flag
Rationale:
1. It was actually broken lol
2. I cannot think of a case where enabling this would be a useful thing for
gzdoom. If the user is using a gamecontroller, it is pointless. If they are
not using a gamecontroller, it will just default to using the joystick api.
If they are not using a gamecontroller, but SDL thinks they are, it is an
SDL bug, and will be reported and fixed
* Modified default mapping
* Added analogue to digital threshold
* Added analogue response curve
* Per axis settings
* Fixed controller reconnect
* Added threshold and curve to IJoystickConfig
Enabled saving of settings
* Added stubs
* Cleanup
Constants are no longer defines.
Constants are mostly shared between backends.
Moved some logic to m_joy
* Implemented xinput stubs
* Implemented dinput stubs
* Implemented ps2 stubs (untested)
* Fixed inclusive check
* Implemented osx stubs (untested)
* Fixed curve implementation
No longer savable, I screwed the curve function up.
I though it needed 2 control points, but it needs 4.
Need to re-do controller settings :(
* Now using CubicBezier struct
* Fixed SetDefaultConfig to match xinput behavior
* Expanded gamepad CCMD
* Rename enum JoyResponseCurve to EJoyCurve
* Initial menu implementation
* Fixed SDL controller setting saving
* SDL gamepads can now actually be disabled
* Fixed initial controller connect of some versions of SDL
* Spelling error
* Enable gamepad by default
* Fixed segfault on some versions of SDL
* Only block keydown
Attempts to balance periods of rough traffic by putting in an artificial delay, smoothing playback but further increasing input delay. This can be disabled with net_ticbalance.