Commit graph

21446 commits

Author SHA1 Message Date
toaster
ff29d446eb forcecharacter: Rename to end the snickering. 2023-02-17 17:19:27 +00:00
toaster
c71d4cbeaa M_SpecificMenuRestore: Catch prevMenu corruption for mid-game Character Select 2023-02-17 17:11:14 +00:00
toaster
0474675109 Character Select menu: Forceskin is now reflected on the menu
Matches cvar updates in real time, so can't change what's written to setup_chargrid
2023-02-17 17:07:33 +00:00
toaster
4d607ccdec Tidy up conditions for forceskin to not include !K_CanChangeRules or Playing. 2023-02-17 16:36:38 +00:00
toaster
05ee3df2f4 d_netcmd.c: Tidy up conditions for changing skin/color.
- Got_NameAndColor: Incorporate check for cv_restrictskinchange and FREE PLAY
- CanChangeSkin: Boil away all the useless conditions, combine with CanChangeSkinWhilePlaying
2023-02-17 15:50:25 +00:00
toaster
7d2accb044 Got_TeamChange: only do mobj kill/PST_REBORN stuff in GS_LEVEL. 2023-02-17 14:41:47 +00:00
toaster
8fb1ffe5fe Got_NameAndColor: If the player's skin is changed by the packet, make them a spectator.
- Doesn't apply on join, intro camera spin turnaround, or outside of GS_LEVEL.
- Extract some of Got_TeamChange's behaviour into a new FinalisePlaystateChange function.
2023-02-17 14:40:44 +00:00
toaster
e6dd399deb Merge branch 'blender-repair' into 'master'
Blender repair

See merge request KartKrew/Kart!928
2023-02-17 13:59:10 +00:00
Oni
e9668598d2 Merge branch 'splitplayers-mapcommand' into 'master'
Splitplayers Fixes

Closes #408

See merge request KartKrew/Kart!927
2023-02-17 05:11:15 +00:00
Oni
a7a3a2c5d5 Merge branch 'special-out' into 'master'
Special Out

See merge request KartKrew/Kart!921
2023-02-17 05:04:34 +00:00
Oni
a1cd780a14 Merge branch 'matchrace-restore' into 'master'
Match Race menu restoring

See merge request KartKrew/Kart!913
2023-02-17 04:37:55 +00:00
Oni
474d3cd228 Merge branch 'always-quantize-slopes' into 'master'
Let no physics slopes slope launch

See merge request KartKrew/Kart!931
2023-02-17 04:03:14 +00:00
James R
c9122868ef Merge branch 'testers-preset' into 'master'
CMakePresets.json: add testers and host-testers presets

See merge request KartKrew/Kart!929
2023-02-17 03:51:47 +00:00
James R
f29e5d8270 Always quantize momentum on slopes, even if no physics
Lets no physics slopes launch. Travel time will be
affected by 3D surface area instead of just 2D surface.
2023-02-16 19:23:45 -08:00
James R
5b561815d7 Merge branch 'tester-rip' into 'master'
Tester build asset changes

See merge request KartKrew/Kart!930
2023-02-17 02:18:13 +00:00
toaster
c4b008e17e Merge branch 'fix-mobj-reference-counting' into 'master'
Fix negative mobj reference counts all over the place

See merge request KartKrew/Kart!926
2023-02-17 00:56:39 +00:00
James R
aaffc84242 Merge branch 'frozen-position-number' into 'master'
Update positiondelay during hitlag

See merge request KartKrew/Kart!922
2023-02-17 00:56:28 +00:00
toaster
baaec4c197 Merge branch 'fix-runtime-errors' into 'fix-asserts'
Fix errors revealed by PARANOIA

See merge request KartKrew/Kart!925
2023-02-17 00:44:03 +00:00
toaster
e4459933cb Merge branch 'fix-asserts' into 'master'
Fix PARANOIA compile

See merge request KartKrew/Kart!924
2023-02-17 00:39:02 +00:00
toaster
61a745b4e3 Tester build asset changes
We are now using base assets for tester builds
2023-02-17 00:23:45 +00:00
James R
3d9187203a CMakePresets.json: add testers and host-testers presets 2023-02-16 16:13:47 -08:00
toaster
a8ae2f035e K_drawKartTimestamp: Draw in splitscreen if gametype has timelimit.
- 2p: In 1p position (slides from right)
- 3p/4p: In top-middle of screen (slides from top)
- Uses time from the display with the highest time, which covers exiting, no contest, etc
- Exposes V_ flags in the function signature
2023-02-16 18:23:10 +00:00
toaster
d2aed2d49e V_AdjustXYWithSnap: Support top/bottom slides if not V_SPLITSCREEN, V_SNAPTORIGHT, or V_SNAPTOLEFT, but do have V_SLIDEIN 2023-02-16 18:14:31 +00:00
toaster
ae30a24a71 K_MoveExitBeam: PF_NOCONTEST and P_DoPlayerExit to match other special stage failures.
Not a currently accessible codepath, but in-advance fix.: P_DoTimeOver sets exitcountdown effectively unconditionally, which means it can only be used in situations where *every* remaining player is about to explode.
2023-02-16 17:09:13 +00:00
toaster
472d7bf25c Match old behaviour of GTR_BOSS: DMG_TIMEOVER a player that has lost all their bumpers 2023-02-16 17:04:59 +00:00
toaster
d046b2cb30 p_enemy.c: All object gravity arc calculations now collaborate with mapobjectscale again. 2023-02-16 16:52:55 +00:00
toaster
fa3b361e2f K_drawStartCountdown: Only show "DUEL" text if you're actually inDuel. 2023-02-16 16:36:32 +00:00
toaster
1b2be7b6c9 K_CheckBumpers, K_HandleBumperChanges: Make 2P behaviour in battle capsules mode function
- Only exit Capsules/Versus round if number of players with no bumpers is equal to number of players in game.
- Apply Eliminated flags in relevant context, to prevent griefing.
2023-02-16 16:35:52 +00:00
toaster
e3eb3ed9f8 Command_Map_f: Guess gametype of map in offline GP, as well as from titlescreen/menu 2023-02-16 15:31:25 +00:00
toaster
97c8d201eb Command_Map_f: Respect value of splitplayers cvar
Permits testing multiple players in GP by your lonesome without having to manipulate multiple controllers at once.
2023-02-16 15:28:31 +00:00
James R
6480aced64 S_SetSfxVolume/S_SetMusicVolume: update static copy of volume
blame c9ad926e7
2023-02-14 04:56:42 -08:00
James R
701324fb42 k_kart.c: reference count HOLD bubble 2023-02-14 04:17:04 -08:00
James R
fdddbcfd82 g_demo.c: ensure demobuf is always freed before use 2023-02-14 04:17:04 -08:00
James R
e8ab92fa64 p_mobj.c: guard some cases where a mobj could be removed 2023-02-14 04:17:04 -08:00
James R
c9ad926e76 Do not set cvars with S_SetSfxVolume or S_SetMusicVolume
Don't do this because in sdl/i_video.cpp,
S_InitMusicVolume is called to unmute music when the
window is refocused. Because I_StartupGraphics is called
before those cvars are added and it is an error to try to
set a cvar before it is added.
2023-02-14 04:17:04 -08:00
James R
33145ab2ae p_mobj.c: reference count kitemcap and overlaycap
With the old code, if the object at the head of the list
was removed, it would leave the reference behind,
extending the lifetime of the thinker until P_RunKartItems
or P_RunOverlays was run.
2023-02-14 04:17:04 -08:00
James R
9b08730281 Fix R_CacheSpriteBrightMap trying to cache out of range lump 2023-02-14 04:17:04 -08:00
James R
b8a41fa509 Fix negative reference counting in P_RestoreTMStruct
This fixes some thinkers never being removed due to having
negative reference counts.

And here's a breakdown of why the old code could produce
negative reference counts:

Consider P_CheckPosition. This function calls P_SetTarget
on tm.thing but does not call P_RestoreTMStruct. This
means that tm.thing will not be NULL the next P_SetTarget
is called on it. What are the implications of this?
Consider the following series of events:

- P_CheckPosition is called, tm.thing != NULL afterward
- Another function saves the tm struct and sets tm.thing to a different mobj
- - the old tm.thing will have its references decremented
- - the new tm.thing will have its references incremented
- This function calls P_RestoreTMStruct

What should happen when P_RestoreTMStruct is called? The
*new* tm.thing should have its references *decremented*
and the *old* tm.thing should its references
*incremented*, of course, for symmetry with P_SetTarget.

The old code correctly decremented new tm.thing's
references but did not increment old tm.thing's
references.
2023-02-14 04:17:04 -08:00
James R
badb87697c Add missing skincolors to dehacked table 2023-02-14 04:17:04 -08:00
James R
2e3ed95338 Add assert command to test whether assertions are enabled at runtime 2023-02-14 04:16:57 -08:00
James R
a77234233b doomdef.h: enable most debugging ifndef NDEBUG 2023-02-14 04:16:57 -08:00
James R
1d688c3417 sdl/i_system.c: add -nofork option to disable forking signal handler 2023-02-14 04:16:57 -08:00
James R
98a4a90129 PARANOIA: do mobj scramble last 2023-02-14 04:16:57 -08:00
James R
0b2273b848 p_saveg.c: replace unknown thinker error with assert
It is undefined behavior to cast function pointer to
void*.
2023-02-14 04:16:56 -08:00
James R
f05f040cea Fix faulty assertions 2023-02-14 00:46:54 -08:00
toaster
b2bd5ecccd Merge branch 'blackhole-fault' into 'master'
Fault rework

See merge request KartKrew/Kart!910
2023-02-13 23:23:07 +00:00
AJ Martinez
9c3bcd44c7 Update positiondelay during hitlag 2023-02-13 16:01:19 -07:00
AJ Martinez
14fedef403 Revert line fault punish duration (Oni) 2023-02-13 15:54:35 -07:00
AJ Martinez
6996f06ceb Fix line faults doing pflag nonsense 2023-02-13 15:50:00 -07:00
AJ Martinez
c7374c6a91 Increase line fault penalty for similar punishment to old method 2023-02-13 15:32:27 -07:00