Commit graph

1,328 commits

Author SHA1 Message Date
Ricardo Luís Vaz Silva
403b722984 and another or 😭 2025-08-06 00:21:44 -03:00
Ricardo Luís Vaz Silva
35ee1a5806 forgot an or 😅 2025-08-06 00:10:29 -03:00
Ricardo Luís Vaz Silva
01e3ff0709 fix duplicated source file with zmusic static build 2025-08-06 00:00:21 -03:00
Ricardo Luís Vaz Silva
2f52f73b9b fix cmake 2025-08-04 04:10:11 -03:00
Rachael Alexanderson
34c2d4f917
Squashed commit of the following:
- add submodule update scripts
    - remove auto-setup scripts, they don't work anymore
    - copy zmusic.dll into build folder (this may need to be also done on Linux sometime)
    mirror changes from commit '194fb9e' at https://github.com/dpjudas/vkdoom
    - fix for case sensitive systems
2025-07-30 01:25:09 -04:00
Rachael Alexanderson
397976738f
- integrate zmusic into normal build process 2025-07-30 00:37:50 -04:00
Marcus Minhorst
3121214091 Added mime type associations and quick launch options 2025-07-19 11:40:02 -03:00
Marcus Minhorst
a1494e938a Correct path 2025-07-18 11:52:34 -04:00
Nikita
45ac7c1d9e
ZScript DAP Debug server (#3009)
* 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
2025-07-18 00:01:18 -03:00
Florian Piesche
38373500a5 Add and install FreeDesktop metadata for Linux 2025-07-17 23:32:21 -03:00
Boondorl
f513e3de99 Moved stream reading/writing protocol to common
Allow this to be used anywhere within the engine, especially for internal network handling.
2025-07-15 00:16:34 -03:00
Boondorl
9701bfaa5c Added multiplayer tab for launcher + backend improvements
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.
2025-07-05 18:12:21 -03:00
Ricardo Luís Vaz Silva
817a3778d8 split stb_include into .cpp and .h 2025-04-23 18:49:23 -03:00
Rachael Alexanderson
f3b0c3ac5e
- Roll back filesystem changes. These were causing instabilities in the master branch that were interfering with development. 2025-01-04 11:27:21 -05:00
Christoph Oelckers
a3475d3973 FileSystem cleanup.
* 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...
2024-11-24 17:59:16 +01:00
Rachael Alexanderson
0a9eb474cd
- fix isolated console mode (i.e. launching from explorer.exe) 2024-10-16 05:59:59 -04:00
Rachael Alexanderson
70eb4b974d
- enable console subsystem processing for Windows, enable runtime detection 2024-10-15 10:50:24 -04:00
Cacodemon345
ce24849adf Add support for fire textures in ANIMDEFS 2024-09-12 08:38:19 +02:00
Christoph Oelckers
5fa220219e Reverted use of tchar.h which should be considered deprecated.
GZDoom is Unicode only - as should be the norm for any Windows application - and will not work when compiled as ANSI so there's no good reason to use this wrapper.
2024-08-16 12:41:29 +02:00
Ritchie Swann
709d5dd742
Keep legacy_studio_definitions for non mingw64 toolchain 2024-08-15 02:43:47 -04:00
Ritchie Swann
8f7b0ef4eb
Fix libraries on mingw64
dxguid and dwmapi are required on mingw64 and give linker errors if missing
legacy_studio_definitions is not in the latest mingw64
2024-08-15 02:43:47 -04:00
Magnus Norddahl
140ad88003
Embed libwebp and remove it from vcpkg since the package broke over night (GGs package managers) 2024-04-11 13:59:59 -04:00
Rachael Alexanderson
47a2a534ec
- add in-built zmusic folder to default rpath 2024-01-31 19:19:36 -05:00
Magnus Norddahl
a0f52411d3 Add tabs to the launcher window 2024-01-10 17:09:50 +01:00
Christoph Oelckers
e7ac2fe741 moved launcher window out of common.
This needs to be different for Raze so it cannot be in shared code.
2024-01-04 20:44:27 +01:00
Magnus Norddahl
3f50136c8d Create initial error and netstart windows 2024-01-02 16:55:17 +01:00
Magnus Norddahl
787d18e12b Add launcher window 2024-01-02 16:55:17 +01:00
Christoph Oelckers
fd9b762106 moved animlib to thirdparty folder. 2023-12-25 08:45:47 +01:00
Christoph Oelckers
bae3adc89f moved writezip.cpp out of filesystem and eliminated uses of TArray. 2023-12-15 16:59:00 +01:00
Christoph Oelckers
f8d839d6eb move root folder detection out of file_zip.
added support for Descent Hog and Mvl files., mainly useful for playing Descent's music directly from the asset files.
2023-12-14 17:22:32 +01:00
Christoph Oelckers
728bbd6327 fix some stuff 2023-12-14 17:22:30 +01:00
Christoph Oelckers
4da196a416 UTF8 conversion stuff.
This is for dealing with Unicode file names which cannot be handled with an idealized Unicode approach as was present before.
utf8proc was included to handle normalization because with externally provided filenames we have no control over enforcing our pld rules.
2023-12-10 10:29:38 +01:00
Christoph Oelckers
ad778b0bcc added DSDA's thrust properties for UDMF 2023-10-29 23:18:06 +01:00
Cacodemon345
ba9ce0e83f Switch to miniz from zlib 2023-09-17 23:52:51 +02:00
Christoph Oelckers
4baabf98c4 - use stb-image for JPEG decoding.
the statically provided library did not provide any advantage over it whatsoever and even libjpeg-turbo's better performance cannot really play out here so ease of use and getting rid of a dependency wins.
2023-09-03 08:34:58 +02:00
alexey.lysiuk
af3afca658 - fixed game sources variable in CMake
CMake Error at src/CMakeLists.txt:1233 (add_executable): No SOURCES given to target: zdoom
2023-08-24 13:35:10 +03:00
Christoph Oelckers
e0b3bdaadc - fixed directory loader. 2023-08-23 22:09:58 +02:00
Christoph Oelckers
53d8a5bb2c - Reverted JPEG XL support because the project is not really usable on vcpkg. 2023-08-23 18:18:45 +02:00
Cacodemon345
145044ea34 Check if JPEG_XL is enabled instead of just relying on library existence alone 2023-08-22 23:11:00 +02:00
Cacodemon345
44a3bd719c JPEG XL implementation 2023-08-22 23:11:00 +02:00
Christoph Oelckers
ebb71cebf1 - put the entire filesystem code into a namespace and created some subdirectories. 2023-08-22 22:54:54 +02:00
Christoph Oelckers
acd5911cd4 - StringPool class added
This is a specialized stripped doen FMemArena.
2023-08-22 22:54:52 +02:00
Christoph Oelckers
219b3fb9f9 - uncoupled directory loader from the rest of the engine. 2023-08-22 21:49:54 +02:00
Christoph Oelckers
1dc47f91c2 - file system error management refactoring. 2023-08-22 21:49:54 +02:00
Cacodemon345
145450a044 WebP image support 2023-08-22 19:14:21 +02:00
Cacodemon345
22271d146a Switch to vcpkg for library dependencies 2023-08-21 21:12:00 +02:00
Cacodemon345
2261dde791 Fix for Clang compilers 2023-08-14 19:30:50 +02:00
Cacodemon345
ce8753c6e1 Replace cxx_thread_local check 2023-08-14 19:30:50 +02:00
Cacodemon345
14a3cf8fc2 CMakeLists upgrade to 3.16 and cleanup
* Remove precompiled header hack
* Fixes for compilation on VS2022 Debug configurations
2023-08-14 19:30:50 +02:00
Cacodemon345
c727e40e6c Add support for QOI image formats 2023-08-13 06:04:15 -04:00