* fix some global vars
* make sound support optional
* removes LOG_TRACE calls
* now compiles under msvc 4.2
* removes unused functions, adds ignored functions to report
* bump BRender dependency
* adds docker container for running msvc 4.2
---------
Co-authored-by: Jeff Harris <jeff@1amstudios.com>
* Start of supporting multiple platform drivers
* Remove dependency of null platform on SDL2
* cmake: support loading SDL2 dynamically
* Move CMake options to project root for SDL2::SDL2 access
* Don't link to OpenGL
* Move common dynamic loading to header
* Add SDL 1.2 platform
* Add SDL1 platform backend
* Remove accidental addition
* Try multiple platform drivers until we find a good one
* Fix sdl1 mouse
* Use my BRender fork FIXME FIXME FIXME REMOVEME REMOVEME REMOVEME
* Build dethrace supporting SDL1 on ci
* use dethrace-labs BRender fork
* Big endian fix for S3LoadSample and Win32SetPaletteEntries
* Add the missing BR_ENDIAN_BIG guard to S3LoadSample
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
* DRPixelmapDoubledCopy big endian fix
* big endian fix for the KEYBOARD.COK loading
* CalcLSChecksum big endian fix
* PrintScreenFile big endian fix
---------
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
* SendCarData, ReceivedStartRace
* fixes heap overflow during join
* fixes access on possibly-null pDetails
* DoNetScores
* Fix cast warning of comparefn of qsort
* DisplayUserMessage
* Pack tNet_contents on 4 byte boundary so 32-bit and 64-bit Intel cpu get same struct lay-out
* Add a few static assertions to verify net message offsets
* Add dethrace Wireshark dissector (WIP)
* add dissector installation instructions
* Set wireshark info column
* Fix various typo's
* 4-byte align tNet_message_join as well + more dethrace.lua
* Add more assertions
* Fix network car choose loop
* player scores
* tidy
* mechanics
* Implement SortNetHeadAscending for 'Terminal Tag'
* Update WireShark dissector
* start of tNet_message_pedestrian dissector
* network player cars can see each other move
* netmsgid tidy ups
* dissector: print HOST/CLIENT in info column
* Don't allow hosting a game when starting dethrace with --no-bind
* fix oldd copy
* time_step is integer, fixes client car out of sync
* wasted, recover, kick player out
* NetSendPointCrush
* crushpoint, declarewinner
* network race summary wip
* Start and finish a game of tag/fox
* network fixes
* Players can now send love letters to each other
* Rewrite if's a bit
* Use enum values for GetMiscString and DoFancyHeadup
* Fix fox effect
* Fix fox/it effect at start of race
* Use KEYMAP_ enum values
* Disable address sanitizer and dr_dprintf logging
---------
Co-authored-by: Dethrace Labs <78985374+dethrace-labs@users.noreply.github.com>
* Fix bugs exposed by Portuguese Carmageddon
* Fixes for warnings/errors found in rec2
* Macos says "no"
* Last argument of _partSet can be a pointer
* feof is a macro dereferencing f on some systems
* Allow longer program_name in addr2ine
* Fix casing issue with sounds
French Carmageddon provides DATA/SOUND/fyeah1.WAV where it expects DATA/SOUND/FYEAH1.WAV
* tools: add encode capability to decode script
* Replace font id integers with enum
* Result of BrFileGetLine is not used
* Document the StripControls fix
Co-authored-by: Dethrace Engineering Department <78985374+dethrace-labs@users.noreply.github.com>
---------
Co-authored-by: Dethrace Engineering Department <78985374+dethrace-labs@users.noreply.github.com>
* Basic networking functions implemented to get the lobby functional
* Apply suggestions from code review
* PDNetObtainSystemUserName gets local system name
---------
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
* misc: use appropriate types
* Fix buffer overflow read when the_angle == DR_PI_OVER_2
Yes, this happened on my system.
* piping: extra debug
* appropriate type
* piping: read number of chunks correctly
* Always enable replay
* Add HOOK_NORETURN to certain function declarations
This fixes the following warning:
warning: ‘noreturn’ function does return
* Fix -Wstrict-prototypes warnings
* Fix -Wstrict-prototypes warnings in S3
* harness: split null.h in null.h and null.c
* Move GLRenderer_ClearBuffers to previous location
* Whitespace fixes
If the sound has been muted (!gS3_enabled) during game data loading, it
is then possible to unmute it during gameplay and request a sound effect
which doesn't have a sample loaded (most prominent for pratcam sfx).
While logic in `S3StartSound` accommodates for such a case by loading
the missing sample, it first calls `S3CalculateRandomizedFields`, which
triggers a NULL pointer dereference on platforms with memory protection.
This bug is most likely an overlook from the DOS era.
Fix this by checking for NULL pointer before use.
Signed-off-by: Artur Rojek <contact@artur-rojek.eu>
* Remove 'SCRATCH' file
* cmake: move as much as variable assignments after project()
* Embed version in dethrace executable
* Allow installing DethRace + create binary archive
* Use ashutoshvarma/setup-ninja github action for getting ninja
* cmake: group user configurable options
* cmake: building in debug mode will add -g
* cmake: provide dethrace_werror interface target + DETHRACE_WERROR cmake option
* Update SDL2 to latest release
* Rename dethrace_werror target to compile_with_werror
* Also add -Werror to dethrace
* fix segfault, now hitting not implemented on ProcessPursueAndTwat
* opponents actually sort of driving
* remove cglm dependency
* opponents driving around generally working
* fully mapped out gEdit_funcs
* adds --i-am-cheating flag to allow skipping entering cheat code
* cleaned up ProcessFollowPath
* cleanup FollowCheatyPath, fixes crash in SmokeLine
Co-authored-by: Anonymous Maarten <anonymous.maarten@gmail.com>
* Detect CTRL/SHIFT/ALT + add demo menu's
* Fix cockpit + fancy headup roll-in
* Align on bytes (glPixelStori)
* Fix AddressSanitizer error when mousing around (+introduce pixelmap dispatch)
* Fix moving around groovidelics/funkotronics (Found with AddressSanitizer)
* Fix out-of-bounds write when entering map (thx AddressSanitizer)
* Fix out-of-bounds read in BrPixelmapPixelSet through DimRectangle (thx AddressSanitizer)
* Allow moving around the 3d scene in map mode
* Let BrPixelmapFill make use of the dispatch table
* Modify view port to fix rendering in map mode
* Fix AddressSanitizer error when loading demo (loading cop cars)
* Don't use magic values
* Fix offset'ed depth effects when rendering to an offset window
* Implement edit mode (not all functions are added yet)
* Implement cockpit Look(Left|Forward|Right)
* Fix AddressSanitizer error in DoInstruments
* Fix wheel in cockpit when switching position
* Implement special volume actor creation for edit functions
* Add all edit options for MSVC
* Implement first screen of race summary
* Use dispatch for BrPixelmapText
* Use dispatch for BrPixelmapAllocateSub
* Make BrPixelmapDirectLock and BrPixelmapDirectUnlock use the dispatch table
* Don't print LOG_TRACE for BrDevLastBeginQuery to avoid spamming the console
* Implement BrDevLastBeginQuery and BrDevLastBeginSet
* Fix end-of-race for demo's + fix splatpack
* Add controls panel
* Rewrite SmokeLine a bit (there is an AddressSanitizer error at the 'if (*depth_ptr > z)' check, which this change does not fix
* Dispose cop cars => Fix playing multiple levels with cop cars in the same session
* Implement easy memory pixelmap methods
* Fix 2 errors with splatpack
* Fix MainMenuDone1 and MainMenuDone2