EDuke32-CSRefactor merge requestshttps://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/merge_requests2022-08-22T15:59:39-07:00https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/merge_requests/3NetDuke32: Fix USE_OPENGL=0 build of game.cpp2022-08-22T15:59:39-07:00NY00123NetDuke32: Fix USE_OPENGL=0 build of game.cppI originally spotted this after getting related feedback from aabluedragon.I originally spotted this after getting related feedback from aabluedragon.https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/merge_requests/2NetDuke32: Apply more changes from mainline to oldmp/src/sounds.cpp.2022-06-10T13:30:51-07:00NY00123NetDuke32: Apply more changes from mainline to oldmp/src/sounds.cpp.Let's hope there's no mistake here.
The original purpose was replacing the asserts as done in 1e5674ecede59291a1c7ace8d02aa7f5d692809e.Let's hope there's no mistake here.
The original purpose was replacing the asserts as done in 1e5674ecede59291a1c7ace8d02aa7f5d692809e.https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/merge_requests/1Port updated startgtk.game.cpp into OldMP2020-06-03T19:25:35-07:00NY00123Port updated startgtk.game.cpp into OldMPThis might still need some touch-ups, like the CRC value and the Polymer toggle.This might still need some touch-ups, like the CRC value and the Polymer toggle.https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/merge_requests/14Fix playback volumes of "Duke-Tag!" announcement sounds2024-03-28T13:58:23-07:00NY00123Fix playback volumes of "Duke-Tag!" announcement soundsThis backport from EDuke32, also applied to Rednukem, should fix the following bug: https://voidpoint.io/terminx/eduke32/-/issues/263This backport from EDuke32, also applied to Rednukem, should fix the following bug: https://voidpoint.io/terminx/eduke32/-/issues/263https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/merge_requests/13Backport v1.3d-related fixes from EDuke322024-03-28T13:56:25-07:00NY00123Backport v1.3d-related fixes from EDuke32These should improve compatibility with CON code made for v1.3d. Technically speaking, the last commit (fixing floating FIRE/FIRE2) wasn't originally made for v1.3d (at least not only), but also improved compatibility with that version.These should improve compatibility with CON code made for v1.3d. Technically speaking, the last commit (fixing floating FIRE/FIRE2) wasn't originally made for v1.3d (at least not only), but also improved compatibility with that version.https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/merge_requests/12Added build task and debug settings for VS Code2024-01-03T05:38:57-08:00Martijn van AntwerpenAdded build task and debug settings for VS CodeWith this merge, the NetDuke32 project can be build and debugged from within Visual Studio Code for Windows.With this merge, the NetDuke32 project can be build and debugged from within Visual Studio Code for Windows.https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/merge_requests/11Menu fixes2023-11-24T03:27:29-08:00NY00123Menu fixesThis is a variation of https://voidpoint.io/terminx/eduke32/-/merge_requests/74, aiming to take care of mods defining a part of the skill names as empty strings. It is not a 100% identical set of changes, but the ones present should make...This is a variation of https://voidpoint.io/terminx/eduke32/-/merge_requests/74, aiming to take care of mods defining a part of the skill names as empty strings. It is not a 100% identical set of changes, but the ones present should make the code closer to what's currently in EDuke32.
As in the case of the EDuke32 MR, the Suburbs TC referenced there is also a good test case here.
For NetDuke32, I originally reproduced this in Speedtrax Racing. Since it was made to be run as a standalone game (requiring just executable files for DOS), I suggest to unpack into a separate directory and run NetDuke32 from there with the switch `-usecwd`. The game was designed for use without jumping or crouching, thus explaining the inclusion of a CFG file. I didn't see the same stated about strafing; Technically speaking, the included CFG lets you strafe with a mouse button.
https://dukeworld.com/classic%20dukeworld/tc/speedtrax/https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/merge_requests/10Prevent second call to Net_SendQuit from app_crashhandler if crash happens wi...2023-08-09T08:49:12-07:00Martijn van AntwerpenPrevent second call to Net_SendQuit from app_crashhandler if crash happens within Net_SendQuitThis will fix a endless loop if the crash is occurring within Net_SendQuitThis will fix a endless loop if the crash is occurring within Net_SendQuithttps://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/merge_requests/9engine: fix crash on old GPUs that don't support GL sampler objects2023-08-12T04:32:41-07:00Martijn van Antwerpenengine: fix crash on old GPUs that don't support GL sampler objectsAdd fix for older and incompatible GPUs. With this fix, NetDuke32 will run on those computers as well.Add fix for older and incompatible GPUs. With this fix, NetDuke32 will run on those computers as well.https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/merge_requests/8NetDuke3D: Adapt EDuke32 commit 7b83289542d69f28addd781196d3764e94f5919c2023-06-02T04:54:41-07:00NY00123NetDuke3D: Adapt EDuke32 commit 7b83289542d69f28addd781196d3764e94f5919cNote that commit 7b83289542d69f28addd781196d3764e94f5919c itself is currently not in netduke32_main; This requires a separate merge from mainline EDuke32.Note that commit 7b83289542d69f28addd781196d3764e94f5919c itself is currently not in netduke32_main; This requires a separate merge from mainline EDuke32.https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/merge_requests/7NetDuke32: Add valid_sprite check before dereferencing PN(spriteNum)2023-03-03T06:42:04-08:00NY00123NetDuke32: Add valid_sprite check before dereferencing PN(spriteNum)This leaded to program abort while using a sanitizer-enabled debug build, not more than 15-20 seconds into E1L1.
As far as I can tell, a deliberate call to this function with sprite number -1 is unique to NetDuke32, and was introduced i...This leaded to program abort while using a sanitizer-enabled debug build, not more than 15-20 seconds into E1L1.
As far as I can tell, a deliberate call to this function with sprite number -1 is unique to NetDuke32, and was introduced in 12dadfd5d4f41e96eb4685353b6992849fe6a7e6. The `valid_sprite` check does not exist in EDuke32.
I used a gcc build based on 9.4.0, and made a RELEASE=0 build. I applied these local changes to Common.mak in order to take advantage of sanitizers:
```
diff --git a/Common.mak b/Common.mak
index 4e7896edf..d1c43be74 100644
--- a/Common.mak
+++ b/Common.mak
@@ -623,7 +623,8 @@ endif
# for a list of possible ASan and UBsan options.
ASAN_FLAGS := -fsanitize=address -fsanitize=bounds,enum,float-cast-overflow
-ASAN_FLAGS := $(ASAN_FLAGS),signed-integer-overflow,unsigned-integer-overflow
+ASAN_FLAGS := $(ASAN_FLAGS),signed-integer-overflow
+#ASAN_FLAGS := $(ASAN_FLAGS),signed-integer-overflow,unsigned-integer-overflow
ASAN_FLAGS := $(ASAN_FLAGS),undefined,return,null,pointer-overflow,float-divide-by-zero
#ASAN_FLAGS := $(ASAN_FLAGS) -fsanitize-undefined-trap-on-error
@@ -634,10 +635,11 @@ else
ifneq (0,$(CLANG))
COMMONFLAGS += $(ASAN_FLAGS)
- else ifneq (,$(filter 1 2 3 4 5 6,$(GCC_MAJOR)))
- ifneq (,$(filter 0 1,$(GCC_MINOR)))
+ else
+# else ifneq (,$(filter 1 2 3 4 5 6,$(GCC_MAJOR)))
+# ifneq (,$(filter 0 1,$(GCC_MINOR)))
COMMONFLAGS += $(ASAN_FLAGS)
- endif
+# endif
endif
endif
```https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/merge_requests/6Fix HUD frags count refresh with the software renderer if self-frags count ch...2023-03-02T12:12:35-08:00NY00123Fix HUD frags count refresh with the software renderer if self-frags count changesThe classic frag bar always showed the difference `ps->frag - ps->fraggedself`, while the status bar showed `max(ps->frag - ps->fraggedself, 0)`.
What was wrong was that the refreshes specific to software rendering were done based on th...The classic frag bar always showed the difference `ps->frag - ps->fraggedself`, while the status bar showed `max(ps->frag - ps->fraggedself, 0)`.
What was wrong was that the refreshes specific to software rendering were done based on the `ps->frag` value alone.
Another option is to always refresh the values (as done for the new frag list). Conditional refresh was obviously more important for 90s-era PCs.https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/merge_requests/5Widen StrikerDM styled fraglist a bit2023-02-26T22:33:27-08:00NY00123Widen StrikerDM styled fraglist a bitA use-case for this has been found in TeamDUKE's Flag-Tag mode. Each player's score is initially set to a positive value, and the goal is to be the first player to reach the score of 0. This can be done by carrying the flag.
By default,...A use-case for this has been found in TeamDUKE's Flag-Tag mode. Each player's score is initially set to a positive value, and the goal is to be the first player to reach the score of 0. This can be done by carrying the flag.
By default, the initial score is 150. If a nickname is 10 characters long then it'll overflow in the compat fragbar, but not in the classic one. Since the mod was originally made for EDuke 2.0, I think this fix is good in idea.
Classic frag bar:
![duke0001](/uploads/51f33952675ecd4f6719eb059c70ae6c/duke0001.png)
Compat frag list in its current state:
![duke0002](/uploads/4cd7bc4914a9060d4f061901ab819b10/duke0002.png)
Compat frag list after patching:
![duke0003](/uploads/a7de9afcc51de18a5f39197ea666d8a3/duke0003.png)https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/merge_requests/4NetDuke32: 3rd person view camera reset fix for resetplayer command2023-02-24T07:01:07-08:00NY00123NetDuke32: 3rd person view camera reset fix for resetplayer commandRight now, as in DOS v1.5, if you use 3rd person view while another player respawns, the g_cameraDistance and g_cameraClock variables will mistakenly be reset for your view.
The fix was backported from EDuke32 and is also in Rednukem's ...Right now, as in DOS v1.5, if you use 3rd person view while another player respawns, the g_cameraDistance and g_cameraClock variables will mistakenly be reset for your view.
The fix was backported from EDuke32 and is also in Rednukem's sources. I wasn't sure if it's better to compare to `screenpeek` instead, but 3rd person view doesn't seem to work in coop view, either way.