Commit graph

21485 commits

Author SHA1 Message Date
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
AJ Martinez
32ea795639 Fault rework cleanup for merge 2023-02-13 15:31:39 -07:00
toaster
98c333e313 Per discussion, always use short, FINISHless exit for special stage failure. 2023-02-13 18:18:54 +00:00
toaster
0d8ada50bf Merge branch 'fix-setlinetexture' into 'master'
Fix off-by-one in CallFunc_SetLineTexture

See merge request KartKrew/Kart!919
2023-02-13 18:05:13 +00:00
toaster
c2b0cca735 K_HandleLapIncrement: Do not spawn Finish Sign if player who crosses finish line is PF_NOCONTESTing. 2023-02-13 18:04:44 +00:00
toaster
8b14d10506 Special Stages: Distinguish between failures with and without lives.
- With lives remaining: No FINISH text, 1 second before restart
- With no lives remaining: Yes FINISH text, 2 and a half seconds before return to menu(/emeraldless podium when implemented)
2023-02-13 18:03:56 +00:00
toaster
61de5367d7 P_KillPlayer: In special stages, falling off the stage means immediate no contest and life loss. 2023-02-13 18:00:02 +00:00
Sal
95434e91b2 Merge branch '404-not-found' into 'master'
Repair Linedef types 403 and 404 (Resolves #429)

Closes #429

See merge request KartKrew/Kart!920
2023-02-13 17:41:50 +00:00
toaster
24ae5ff65a Repair Linedef types 403 and 404
- P_ProcessSpecial: Correct likely copypaste error in desired plane height and texture
    - Was using sector floor's height and texture instead of ceiling's.
- P_ConvertBinaryLinedefTypes:  assign affected plane in a saner way
- Resolves issue #429
2023-02-13 15:12:53 +00:00
Sally Coolatta
8932ab4e91 Fix off-by-one in CallFunc_SetLineTexture 2023-02-12 17:04:51 -05:00
James R
437944927e Merge branch 'fix-png-get-trns' into 'master'
Fix potential crash in PNG_Read

See merge request KartKrew/Kart!917
2023-02-12 14:22:24 +00:00
Oni
c050e1c340 Merge branch 'unhelpful-super-ring' into 'master'
Use Super Ring 'assistance' only in 1st (fixes #433)

Closes #433

See merge request KartKrew/Kart!918
2023-02-12 03:13:21 +00:00