Commit graph

26031 commits

Author SHA1 Message Date
James R
93ff380730 Clear g_dc each frame
I was running into a memcpy of overlapping memory regions
in R_RenderMaskedSegRange.

- This is because of the reallocation of lightlists, which
  uses Z_Frame_Alloc.
- The memory pool that Z_Frame_Alloc draws from is cleared
  each frame.
- g_dc was not cleared though, so when the lightlists were
  reallocated, it'd try to copy from invalidated pointers.
- Access to invalid pointers within the memory pool does
  not cause a segfault directly (because the memory pool
  is allocated once). However, a memcpy involving such an
  invalid pointer leads to overlap, which may cause memory
  corruption.
2024-02-05 19:04:23 -08:00
James R
924d46d102 K_DrawDraftCombiring: clamp inputs 2024-02-05 19:04:23 -08:00
AJ Martinez
a2bcee60c0 Validate PvPTouchDamage (crash fix) 2024-02-05 19:04:22 -08:00
Eidolon
0e1f688139 Merge branch 'allow-battle-capsule-in-tutorial' into 'master'
Allow MT_BATTLECAPSULE to spawn in tutorials

Closes #949

See merge request KartKrew/Kart!1890
2024-02-06 01:45:18 +00:00
Eidolon
92339d36a9 Merge branch 'fix-ghost-fast-forward' into 'master'
Time Attack ghosts: sync with level timer instead of when the player crosses the finish line

Closes #829

See merge request KartKrew/Kart!1895
2024-02-06 01:12:35 +00:00
Eidolon
1f3c070706 Merge branch 'fix-replay-wrong-button' into 'master'
Menus/Replay: fix "Backup Frame" button appearing when paused

See merge request KartKrew/Kart!1898
2024-02-06 01:11:55 +00:00
Eidolon
2c19e6dfb5 Merge branch 'special-normal' into 'master'
Fix "Save replay" text not appearing at end of map

Closes #946

See merge request KartKrew/Kart!1907
2024-02-06 01:02:25 +00:00
Eidolon
e993117f23 Merge branch 'fix-one-time-each-time-floor-activators' into 'master'
Activate sector each time / once actions every time mobj lands on the ground

Closes #990

See merge request KartKrew/Kart!1904
2024-02-06 01:01:44 +00:00
Eidolon
5d33c19974 Merge branch 'mandatory-udmf' into 'master'
Make UDMF mandatory for play

See merge request KartKrew/Kart!1889
2024-02-06 01:00:27 +00:00
Oni
39b5a8ac2f Merge branch 'fix-whip-clash' into 'master'
Let Insta-Whip clashing ignore flashing tics

Closes #978

See merge request KartKrew/Kart!1870
2024-02-03 19:43:11 +00:00
Oni
d755d83778 Merge branch 'fix-intermission-parties' into 'master'
Fix Party management breaking during Intermission and Vote

Closes #499

See merge request KartKrew/Kart!1903
2024-02-03 19:41:57 +00:00
Oni
4ea946067a Merge branch 'srb2-tidy' into 'master'
Clear out unused SRB2/Kart stuff from info tables

See merge request KartKrew/Kart!1811
2024-02-03 19:40:52 +00:00
Eidolon
cf5f81746d Merge branch 'large-address-aware' into 'master'
Add large-address-aware flag on 32 bit mingw

See merge request KartKrew/Kart!1909
2024-02-03 19:38:35 +00:00
Eidolon
ce42730b3c Add large-address-aware flag on 32 bit mingw 2024-02-02 20:43:42 -06:00
James R
e35bf8339f Let Save replay text appear when anyone in the party finishes
Instead of only when local P1 finishes
2024-02-02 05:19:32 -08:00
James R
6e6b2b704a Fix "Save replay" text not appearing at end of map
- Remove V_HUDTRANS (Tally makes it fully transparent)
- Embed button codes instead of drawing them separately (fixes minor alignment issues)
- Fade in over 1 second (visual flair)
2024-02-02 05:16:07 -08:00
James R
c0fff1a0c4 Activate sector each time / once actions when mobj touches the ground
Before

- Each time / once only activates when the mobj's sector
  changes
- The activation may depend on the mobj touching the floor
- If the mobj is in the air when the sector changes, the
  action will never be activated

After

- Each time / once actions that require floor touching
  also activate every time the mobj lands on the ground
  from the air (regardless of whether the sector changed)
2024-02-01 18:57:06 -08:00
James R
da2150ee7a Party::rebuild_displayplayers: let displayplayers be reconfigured outside of level context
- This lets party changes take effect during
  GS_INTERMISSION or GS_VOTING
- displayplayers must always be updated, in order for
  splitscreen viewports to appear when the level starts
- Only G_FixCamera is not called, because it may rely on
  player_t.mo and I'm scared of that
2024-02-01 03:01:25 -08:00
James R
6f27714011 invite, leaveparty commands: use party API to check party size
Use G_PartySize/G_LocalSplitscreenPartySize instead of
r_splitscreen/splitscreen. This should be less
error-prone in case r_splitscreen fails to be updated
somehow.
2024-02-01 02:50:25 -08:00
Oni
ebbe8203a2 Merge branch 'bubble-gamespeed' into 'master'
Use player max speed for bubblebounce min speed (resolves #969)

Closes #969

See merge request KartKrew/Kart!1868
2024-02-01 03:00:43 +00:00
Oni
8aeeae24c3 Merge branch 'fix-demo-ghost-buffer-overrun' into 'master'
Large replay crash mitigation, replay buffer size option, debug command

Closes #656

See merge request KartKrew/Kart!1885
2024-02-01 03:00:26 +00:00
SteelT
f98ddf9a8f Delete some libgme files that was missed 2024-01-31 21:33:25 -05:00
Eidolon
f3b2b24556 Merge branch 'papersprite-papercuts' into 'master'
Mitigations for software papersprite light eval crashes

See merge request KartKrew/Kart!1893
2024-01-31 14:36:25 +00:00
Eidolon
2514a12810 Merge branch 'remove-gme' into 'master'
Remove GME VGM music emulation

Closes #1002

See merge request KartKrew/Kart!1886
2024-01-31 14:33:27 +00:00
James R
3eb31010c4 Menus/Replay: fix "Backup Frame" button appearing when paused
It's just a visual bug; this button still restarts the
replay.
2024-01-30 21:50:28 -08:00
Oni
dfd80de4c0 Merge branch 'spikes-justbumped-exception' into 'master'
Add justbumped exception to wall spikes

See merge request KartKrew/Kart!1897
2024-01-31 03:48:50 +00:00
SteelT
317d1e7e06 Add justbumped exception to wall spikes 2024-01-30 22:45:52 -05:00
James R.
f2df82e58c Merge branch 'parallel-drawing-cvar' into 'master'
Add parallelsoftware cvar

See merge request KartKrew/Kart!1891
2024-01-31 01:51:46 +00:00
James R.
af14e43926 Merge branch 'match-race-menu-sounds' into 'master'
Menus/Match Race: sounds for Z/Y buttons

Closes #987

See merge request KartKrew/Kart!1888
2024-01-31 01:49:36 +00:00
James R.
0f5d84d8c6 Merge branch 'fix-connectedservername' into 'master'
Fix a crash that may occur when joining a server with a maximum length server name or contact field

See merge request KartKrew/Kart!1894
2024-01-31 01:47:18 +00:00
James R
6123ac3c39 Time Attack ghosts: sync with level timer instead of when the player crosses the finish line 2024-01-30 17:27:34 -08:00
James R
2a2149ad60 Use strlcpy for connectedservername/connectedservercontact
Fixes these buffers not being null-terminated at max
length.
2024-01-30 16:39:04 -08:00
Eidolon
f4b4c664c4 Clamp lindex during vissprite light calculation
Mitigates against negative or very large xscale values causing lindex
to evaluate < 0, preventing a potential colormap indexing-related crash.
2024-01-30 17:02:17 -06:00
Eidolon
23b565cec5 Drop papersprite draws that are too wide
This prevents an arithmetic overflow when evaluating xscale, resulting
in a negative xscale.
2024-01-30 17:01:09 -06:00
SteelT
32dec2b6ef LICENSE-3RD-PARTY.txt: Delete libgme 2024-01-30 02:10:19 -05:00
James R
bd62fe4e90 TuneManager: remove GME related code 2024-01-29 23:07:57 -08:00
James R.
3d10278bf2 Merge branch 'fix-replay-party-crash' into 'master'
Fix replays crashing whenever a player leaves

Closes #500

See merge request KartKrew/Kart!1884
2024-01-30 06:43:40 +00:00
Eidolon
007fbc52da Make UDMF mandatory for play
As per many previous conversations, we need to enforce the UDMF
requirement now if we want to introduce a new hardware renderer in the
future. Requiring UDMF ensures that maps are always built with extended
nodes, which both solves vertex imprecision issues and ensures all
subsectors are closed, making writing a hardware renderer significantly
easier and less prone to subsector bugs.
2024-01-29 19:38:26 -06:00
Eidolon
591af1ab95 Add parallelsoftware cvar
In the rare case where kernel thread scheduling causes hitching issues
(SteamOS?), there should be an option to dynamically toggle multithread
dispatch of plane drawing.
2024-01-29 19:26:04 -06:00
Eidolon
f975df6d6d Allow MT_BATTLECAPSULE to spawn in tutorials
Fixes KartKrew/Kart#949
2024-01-29 18:48:49 -06:00
SteelT
d40097426e Merge branch 'fix-ms-debuglog-option' into 'master'
Fix MS debug log menu option changing wrong cvar

See merge request KartKrew/Kart!1887
2024-01-30 00:16:00 +00:00
James R
abbaf78ff1 Menus/Match Race: sounds for Z/Y buttons 2024-01-29 15:57:11 -08:00
SteelT
e057a5234f Fix MS debug log menu option changing wrong cvar 2024-01-29 18:42:55 -05:00
Eidolon
9e26697e11 Fix apple clang compilation with byteptr.h again
Annoyingly missed these pointer conversions
2024-01-29 15:55:31 -06:00
Eidolon
640ad6bc1e Remove GME VGM music emulation
We cannot comply with the terms of the GPL in using and distributing
libgme due to MAME license incompatibility, so the feature needs to
be removed.
2024-01-29 15:54:20 -06:00
James R
eba9df570d Replays: raise default buffer size from 4 to 6 MB 2024-01-29 02:31:57 -08:00
James R
1769b418df Replays: reserve 1 KB of space at end of buffer as a safeguard
This should avoid buffer overruns in the middle of
recording. There is already code that checks for buffer
size around ticcmd and ghost data write. Demo header is
still unsafe with many WAD filenames written, for example.

Ghost data and ticcmd should not come close to reaching
into this extra space. At the time of writing, ghost data
can write up to 102 bytes and ticcmd 20 bytes, per player.
2024-01-29 02:26:15 -08:00
James R
5a86041302 G_WriteAllGhostTics: check buffer size after each player's ghost data
Instead of checking it after ALL player ghost data. This
is less likely to write past the end of the demo buffer.
2024-01-29 02:24:57 -08:00
James R
a879975e83 devmode DEMO: replay buffer usage displayed in real-time on the HUD
- Buffer usage in megabytes, bytes and percentage
- Approximate usage per second
- Estimated time until buffer runs out and replay is stopped
2024-01-29 02:20:26 -08:00
James R
09b90c3cf1 Replays: add netdemo_size cvar, add to Data Options
Controls size of replay buffer when recording
2024-01-29 02:18:46 -08:00