Commit graph

26116 commits

Author SHA1 Message Date
AJ Martinez
1dad6be6a4 Fix stale target in A_SSMineExplode (crash) 2024-02-07 15:05:49 -07:00
Oni
3d3d8bc06c Merge branch 'safecheatcheck-unfuck' into 'master'
Reset cheatchecks when respawns would decrease lap

Closes #972

See merge request KartKrew/Kart!1905
2024-02-06 13:21:29 +00:00
Oni
3a4506dae2 Merge branch 'fix-replay-splits' into 'master'
Fix splitscreen viewport and delay counter carrying over from replays into play contexts

Closes #464

See merge request KartKrew/Kart!1902
2024-02-06 13:21:13 +00:00
Oni
74eee5e718 Merge branch 'server-name-sanitize' into 'master'
Sanitize server name/contact, fully support caret codes

Closes #1008

See merge request KartKrew/Kart!1906
2024-02-06 13:20:08 +00:00
AJ Martinez
4efaed3690 Fix sound falloff calculation overflow 2024-02-06 06:02:17 -07:00
AJ Martinez
45f043a1c4 Don't attempt itemamount correction after orbitals self-destruct 2024-02-06 06:00:59 -07:00
AJ Martinez
6f616265c4 Don't try to orbit things that aren't there 2024-02-06 01:47:10 -07:00
James R
4a7d2504b0 srb2::hwr2::PaletteManager: disable lighttables upload
- This code uploads encoremap to the GPU as a texture.
- It assumes encoremap is 256 * 32 bytes, but in reality
  encoremap is only 256 bytes.
- The textures go completely unused, so I simply
  commented out the code altogether.
2024-02-05 19:04:23 -08:00
James R
f9b66ad969 R_RenderMaskedSegLoop, R_RenderThickSideRange: set dc.colormap above first FOF
How lightlists work:

- Each FOF casts a shadow beneath it.
- Draw the column above each FOF with colormap set from
  the previous FOF.
- Then set colormap from the current FOF, so the next FOF
  is bathed in the current FOF's shadow.

What broke:

- Colormap was not set when drawing the column above the
  first FOF.

This commit:

- Before iterating lightlists, set colormap to base sector
  lighting.
- De-duplicate some code by using lambdas.
2024-02-05 19:04:23 -08:00
James R
d2a22a6960 R_DrawMaskedColumn: do not draw zero length column
- Column would be zero length if there are no visible
  pixels in it.
- Trying to draw such a column results in a negative
  heightmask in R_DrawColumnTemplate and a probable read
  out of bounds.
2024-02-05 19:04:23 -08:00
James R
9bb6031a4e R_StoreWallRange: do not render textures with holes
- Holey textures are ones where the column height may not
  match the texture height.
- R_DrawColumn cannot cope with this directly and it may
  lead to a read out bounds.
- Transparency would not render for true wall textures
  anyway since these are not masked midtextures, so just
  don't render the texture in this case.
2024-02-05 19:04:23 -08:00
James R
057001a66f DirectorInfo::update_positions: fix player index out of bounds if all players are spectating 2024-02-05 19:04:23 -08:00
James R
efd0170856 R_DrawMaskedColumn: set texheight to column length
- In R_DrawColumnTemplate, texheight is used to switch
  between a non-PO2 rasterizer and a more efficient PO2
  rasterizer.
- There is bounds checking on the non-PO2 version (in the
  form of sourcelength) but not on the PO2 version.
- texheight was set to the sprite patch height, which may
  be taller than the column (sourcelength), leading to a
  read out of bounds.
2024-02-05 19:04:23 -08:00
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
3646850ff6 Menus: handle caret codes in text fields
- All text boxes render caret code colors
- On-screen keyboard updates colors in real time
2024-02-02 04:30:24 -08:00
James R
a5c4b3705f Parse caret codes for server splash (server name and contact on pause menu) 2024-02-02 04:30:24 -08:00
James R
1bdaa38c7a Replace CopyCaretColors with D_ParseCarets
- New function also sanitizes input
2024-02-02 04:30:24 -08:00
James R
8f2c904651 Sanitize server name and contact fields of non-ASCII characters except color codes
- Strip button codes and other control characters
- Preserve 0x80 - 0x8F color codes
2024-02-02 04:30:24 -08:00
AJ Martinez
97dcc33f0d Reset cheatchecks when respawns would decrease lap 2024-02-01 23:34:29 -07: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
James R
26aed51cd8 SV_ResetServer: clear player ping data
Fixes lag experienced from watching a replay then
affecting the delay icon when starting a server afterward.
2024-02-01 02:35:20 -08:00
James R
4c3bad0b12 G_StopDemo: use D_ClearState
- D_ClearState does the necessary cleanup and more
- Fix splitscreen viewcount not being reset when demo ends
2024-02-01 02:26:42 -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
fbd77ef6f7 SPB: fix endless combo on players in its path 2024-01-30 23:12:52 -08: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
b0538a5271 Time Attacking: fix "Show Character" option for ghosts
- player_t.skin is not set yet, so use cv_skin and
  R_SkinAvailable instead
- Refactor P_LoadRecordGhosts to de-duplicate some code
2024-01-30 19:18:51 -08: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