* 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
* add getters for frame poses
* fix missing joint in GetJointPose
* clean up models_iqm.cpp
* clean up usage of I_GetTimeFrac, split out matrix calculation into its own function
* clean up SetModelBoneRotationInternal
* clean up a few float <-> double and unsigned <-> signed warnings
* fix more warnings
* further clean up warnings
* split mode ObjectToWorldMatrix stuff
* initial work on bone getters, matrix hell
(the matrix/vec3 multiplications are probably wrong af, just gotta add more stuff 'till i can test it)
* clean up matrix math
* GetBone/TransformByBone
* fix GetBoneFramePose
* fix ObjectToWorldMatrix
* fix missing array resize
* raw matrix getters (for use with gutamatics/etc)
* reverse matrix mult order
* replace GetBoneLength/GetBoneDir with GetBoneBaseTRS
* fix GetBonePosition, remove GetBoneWorldMatrix as it's useless
* GetBonePosition
* deduplicate code
* rename GetBonePosition to GetBoneBasePosition to avoid confusion
* GetBoneBaseRotation
* GetBonePosition helper function
* forgot include_offsets
* split off the Doom specific lookup with short 8 character names into its own class and cleaned up the interface a bit.
* get rid of all short name aliasing 'optimization' - modern compilers are capable of optimizing memcmp and memcpy to use equally efficient code so none of these hacks are needed anymore.
* added reader for Descent 3's HOG2 format - yet another of these endless uncompressed formats with just a different directory structure...
The previous situation is unfortunately not sustainable; header pollution
isn't consistent across all non-Windows platforms. As a result, some of
the earlier includes may pull functions/types into the global namespace too
soon, and the later includes will have no visibility of them because they're
in a different namespace. Re-including the necessary one doesn't work
because include guards will prevent their re-inclusion, and it's not a good
idea to try and #undefine include guards now that we're in a new namespace.
This fixes the build on FreeBSD, and likely some other systems as well.
commit ad25b50089b6e01b8e4291e34cfe3a008af9128d
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 12:12:46 2024 -0500
Revert "Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom."
This reverts commit d2c2c93cf1.
commit 8537f0d8db804f0076b90daa66b750e44dccf44c
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 12:12:41 2024 -0500
Revert "Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars."
This reverts commit dc897eacc0.
commit d45f6ebf11f31d246f2de4f3bbd11f7970783125
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 12:10:21 2024 -0500
Revert "Restored r_orthographic behavior."
This reverts commit 26908f5bc5.
commit be0836feef9b95f12828eeed4319c726ef13780d
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 12:09:15 2024 -0500
Revert "Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom."
This reverts commit 08b03e6b19.
commit 688288a9199b912203022cb4db37503f6270e0c3
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 12:09:06 2024 -0500
Revert "Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars."
This reverts commit d3405837ce.
commit 72b7df9fa1841d665c2846dd31a89c6f48123e55
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 12:08:59 2024 -0500
Revert "Restored r_orthographic behavior."
This reverts commit e171f4eb6a.
commit aa954132bf29f2f8a51bf09dae127e5ffe2c5670
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 12:08:48 2024 -0500
Revert "Merged with latest master and made small change (zcenter -> center.Z) to hw_sprites.cpp. Now compiles and works."
This reverts commit c8a7507e8e.
commit 3ce90e87a3a9956b615995b57b90619e89bbcff4
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 12:00:46 2024 -0500
Revert "Cleaning up implementation of isometric camera with optional orthographic projection."
This reverts commit 25f1407228.
commit 3aafd363e40c8d1d2ebbe3c61aeb2b80a74e565a
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 11:59:25 2024 -0500
Revert "Small change to SpectatorCamera actor."
This reverts commit 2b555d7556.
commit a41911f8907731c098de71ca3e14261ac432ec8c
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 11:59:16 2024 -0500
Revert "SpectatorCamera can now follow the 'tracer' actor. Also added a 'lagdistance' property for lazy follow."
This reverts commit 7fbb4cd06c.
commit 19398edd065b7b483b8c7be42cb16026695e241a
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Feb 9 11:59:05 2024 -0500
Revert "Minor addition toe SpectatorCamera. Added three chase modes to lazy follow. 0: Catch up until tracer is centered again. 1: Same but don't move if tracer isn't moving (camera moving when character is not is jarring). 2: Stop chasing if tracer is closer than lagdistance. Game modes benefit from a 'center camera' button but that doesn't have to be hard-baked into the engine."
This reverts commit c3ca564cfc.
Revert "Restored r_orthographic behavior."
This reverts commit 26908f5bc5.
Revert "Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars."
This reverts commit dc897eacc0.
Revert "Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom."
This reverts commit d2c2c93cf1.
This used the normalized file name for access which only works on case insensitive file systems and only as long as no character gets mangled by Unicode normalization.
* we do not need to make a second allocation for the systemFilePath
* as systemFilePath is never null, there is no need to check for that case.
* moved systemFilePath into a separate array to save memory on other file types.