Commit graph

2329 commits

Author SHA1 Message Date
Eidolon
fb3beef84c Only do replay save btn for machine-local players 2024-03-05 14:49:51 -06:00
Eidolon
3386c70f9c Record skin wins only for machine local players 2024-03-05 14:49:18 -06:00
toaster
e8523b69f0 Sealed Star re-ordering (resolves #606)
- If emerald not yet collected on that cup, pick the first uncollected emerald, then get the cup's CUPCACHE_SPECIAL with that ID to pick the stage
- Already collected emeralds retain their swappage across gamedata saves
- Returns to normal order if you get all 7 OR Special Mode is unlocked (chao key? debug? password in modded games? sky's the limit)
- Pops up a Message from the Stars telling you the gems have been returned to their natural place
- Add-ons will always use their dedicated sealed star, since it's unordered material

If it weren't so last minute I could have a better solution for GP Backups, but right now what I've gone for is it always trusts whatever G_GPCupIntoRoundQueue does AS LONG AS THE COURSE ISN'T THE ONE YOU'RE RELOADING INTO. If it IS, then it checks to see if it's exactly what's been saved, and complains (with the generic error message, unfortunately) if it isn't.
2024-03-03 00:24:31 +00:00
AJ Martinez
a1fd0f5353 Merge remote-tracking branch 'origin/master' into move-your-car 2024-03-02 01:25:47 -07:00
toaster
2ac891abe8 Fix player->lappoints for ending last lap
- Previous order:
    - K_HandleLapIncrement
        - K_UpdateAllPlayerPositions
            - Sets player->position
            - !! Relies on player->exiting
        - Set lap points
            - !! Based on player->position
        - Set latestlap
        - P_DoPlayerExit
            - Set player->exiting
            - K_UpdateAllPlayerPositions
                - Sets player->position
                - Relies on player->exiting
            - Overwrites latestlap if not set
            - K_InitPlayerTally
                - Based on lap points
- New order:
    - K_HandleLapIncrement
        - Set latestlap
        - If ending last lap, P_DoPlayerExit
            - Set player->exiting
            - K_UpdateAllPlayerPositions
                - Sets player->position
                - Relies on player->exiting
            - Overwrites latestlap if not set
            - [NO LONGER INITS TALLY]
        - OTHERWISE, K_UpdateAllPlayerPositions
            - Sets player->position
            - Relies on player->exiting
        - Set lap points
            - Based on player->position
    - P_PlayerAfterThink
        - If player is exiting and no tally, K_InitPlayerTally

Hopefully you can see the magnitude of the gordian knot I had to untangle to fix this
2024-02-29 20:50:04 +00:00
AJ Martinez
0052d15fc8 Improve analog handling and input display 2024-02-28 20:08:25 -07:00
AJ Martinez
64dd306138 Revert "Make ticcmd throwdir -1, 0, or 1, add deadzone"
This reverts commit 9028668104.
2024-02-28 18:33:07 -07:00
Eidolon
d3783dec11 Lose player life before P_CheckRacers on exit
Fixes KartKrew/Kart#1022 by ensuring the player has 0 lives by the time
P_CheckRacers indirectly calls G_BeginLevelExit.
2024-02-17 15:12:04 -06:00
AJ Martinez
92bbd82c73 Add "Move Your Car" for antigrief 2024-02-05 20:09:04 -07: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
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
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
Oni
a126a0c9a3 Merge branch 'new-credits' into 'master'
New Credits

See merge request KartKrew/Kart!1747
2024-01-28 23:31:30 +00:00
Sal
3958c15dfe New Credits 2024-01-28 23:31:30 +00:00
toaster
106553f89d Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into srb2-tidy
# Conflicts:
#	src/p_mobj.c
2024-01-27 17:04:00 +00:00
James R
04ab02476f Battle: "K.O. READY!" appears on your screen when you reach the point limit 2024-01-26 17:54:27 -08:00
James R
235d107f50 P_AddPlayerScore: negative values remove points 2024-01-26 14:30:55 -08:00
toaster
6fdec66dc3 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into srb2-tidy 2024-01-26 00:29:06 +00:00
Oni
c898e5550f Merge branch 'pwr-fixes' into 'master'
PWR.LV fixes

Closes #915

See merge request KartKrew/Kart!1849
2024-01-25 14:42:09 +00:00
Sally Coolatta
de3d9a29c8 Make PWRLV work in Battle
Additionally, add DBG_PWRLV for devmode so the debug prints can be accessed without needing to edit the code any.
2024-01-23 00:00:26 -05:00
James R
3cfd50ef2b Battle: don't let players respawn after round ends 2024-01-22 16:42:29 -08:00
James R
7d6239e06c Add round end camera system
- Spins and zooms around a center point
- Freezes the level while spinning
- Pans over to follow and object after spinning ends
- Timing and speed completely customizable
2024-01-22 16:42:29 -08:00
Sally Coolatta
3b755b7153 Reorganize P_DoPlayerExit
I tried to fix the GP ending weirdness a long time ago by recalculating all player positions at time of exit... and then K_IsPlayerLosing gets to a variable before the recalculation and a bunch of crap uses it and completely undoes anything this might've fixed. DON'T DO THAT!
2024-01-16 20:08:37 -05:00
toaster
1d13cb64c0 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into srb2-tidy
# Conflicts:
#	src/p_mobj.c
2024-01-13 22:08:44 +00:00
Oni
1aaac393c1 Merge branch 'battle-fixes-friday' into 'master'
Battle Fixes Friday

Closes #901, #890, #865, #891, #883, #887, #885, and #888

See merge request KartKrew/Kart!1829
2024-01-13 02:21:19 +00:00
James R
49f0b31db7 Battle: do not decrease flashing tics in the air 2024-01-11 22:03:10 -08:00
toaster
325079a39a Delete everything major flagged up by listunusedsprites
Notable deletions:
- Metal Sonic Race
    - Includes all the specialised recording/playback apparatus which made g_demo.c harder to read
- A bunch of hyperspecialised code inside several A_ actions
- EXCEPTION: intentfully left in the spriteless SMK stuff for Sal's add-on down the line.
2024-01-11 01:21:43 +00:00
Eidolon
9028668104 Make ticcmd throwdir -1, 0, or 1, add deadzone 2024-01-09 19:13:03 -06:00
AJ Martinez
c854a3262b What the fuck are turbines 2024-01-05 17:45:37 -07:00
toaster
57724baf9f Merge branch 'fix-downward-camera' into 'master'
Fix slope camera in Software mode

Closes #626

See merge request KartKrew/Kart!1714
2023-12-28 14:56:40 +00:00
James R
20d9c781c8 P_DemoCameraMovement: limit vertical camera aiming if software shearing 2023-12-23 09:05:08 -08:00
Sally Coolatta
abde576c58 Enforce const in bot ticcmds
There were a few remaining cases of bot ticcmd generation editing player structures directly. Fix all of this and make as much of it pass const player pointers so this physically can't be allowed to happen ever again. Appears to improve bot sync in netgames & demos bot support, but I have not tested extensively.
2023-12-22 23:28:08 -05:00
Sally Coolatta
22a2323148 Air drag for bots on dash pads is not stronger 2023-12-19 11:28:10 -05:00
James R
1a78e55f4c P_DoPlayerExit: abuse K_MakeObjectReappear to vanish player if they win a Sealed Star 2023-12-04 20:22:41 -08:00
James R
764a692a5e P_IsLocalPlayer, P_IsMachineLocalPlayer, P_IsDisplayPlayer: let player pointer be const 2023-11-25 04:51:13 -08:00
James R
ea697d2048 Physics changes for players in ice cube state
- Cancel offroad
- Inputs do not work
  - Cannot accelerate
  - Drift/Brake does not work (side-effect of P_PlayerInPain)
- Sprite shakes if icecube.shaketimer
- Sprite is colorized Cyan
- Max friction (slippery)
- Player is considered to be in a pain state
- Sprite slowly turns clockwise
- Sprite tilting is disabled
2023-11-22 19:04:30 -08:00
toaster
a55803b690 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into other-progression 2023-11-18 18:00:05 +00:00
Oni
94a593487b Merge branch 'fix-reducevfx' into 'master'
Fix `reducevfx` mkaing some VFX visible, when they shouldn't be

See merge request KartKrew/Kart!1622
2023-11-18 07:11:25 +00:00
Oni
b8a5f49b1d Merge branch 'fix-powerup-music-after-race-finish' into 'master'
P_DoPlayerExit, P_DoTimeOver: replace Music_StopAll with silent track

Closes #759

See merge request KartKrew/Kart!1642
2023-11-17 09:32:33 +00:00
James R
46c8b47236 P_DoPlayerExit, P_DoTimeOver: replace Music_StopAll with silent track
- Silent track has priority over level music and
  invinc/grow themes
2023-11-17 01:12:09 -08:00
Oni
c24f10a7e7 Merge branch 'fix-bungee-softlock' into 'master'
Add Obj_EndBungee, end bungee state when P_ResetPlayer and when player is damaged in any way

Closes #760

See merge request KartKrew/Kart!1641
2023-11-17 09:06:06 +00:00
James R
686f2e2e9d Add Obj_EndBungee, end bungee state when P_ResetPlayer and when player is damaged in any way 2023-11-17 00:49:26 -08:00
James R
254df6bf7e powerupvars_t: add barrier member 2023-11-16 21:08:29 -08:00
toaster
97996d1a22 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into other-progression 2023-11-16 13:46:59 +00:00
AJ Martinez
d54d2f6d04 Merge remote-tracking branch 'origin/master' into catholic-vfx 2023-11-14 21:47:51 -07:00
James R
ee7f3d7108 Replace K_ReduceVFX with K_ReduceVFXForEveryone, replace owner cases with RF_REDUCEVFX 2023-11-13 23:49:33 -08:00
James R
61cad641bb Invincible player punts hazardous/solid things, unless MF_ELEMENTAL
If player is in one of these states:

- Invincibility
- Grow (K_IsBigger)
- Flame Shield dash
- Over 200% speed

And the other object:

- Does not have MF_DONTPUNT

Then, touching a solid object:

- Punts the object, unless the object has MF_ELEMENTAL
- Fizzles the object, if the object has MF_ELEMENTAL

Or, when an object damages the player:

- That object is punted, unless it has MF_ELEMENTAL
- The object fizzles, if it has MF_ELEMENTAL

Punting means:

- A copy of the object is made
- Both the player and copy receive 5 tics of hitlag
- The copy is thrust away from the player at a minimum of
  60 FU, or 2x either the player's or object's momentum,
  whichever is ultimately greater
- The copy despawns after 2 seconds
- The copy flickers constantly, while thrust away

Fizzling means:

- The object disappears completely
- A puff of smoke is spawned in place of the object
- No hitlag is applied to the player

Both punting and fizzling:

- Hide the original object (intangible and invisible)
- The original object reppears after 30 seconds
- For 2 seconds before reappearing, the object flickers
  back in, but is still intangible
2023-11-13 22:18:35 -08:00
James R
39a7c3b3ad Remove MF_MONITOR 2023-11-13 19:23:54 -08:00
AJ Martinez
aad6795ba7 Trickpanels: I don't even know who I am anymore 2023-11-13 16:41:09 -07:00
toaster
83cf97bdad Fix Tutorial's automatic death-to-retry pipeline
Also makes PF_ELIMINATED work in non-bumpers gametypes... it wasn't gametyperule-dependent previously so Elimination could use it one day, and it doesn't break Sealed Stars to do it this way
2023-11-13 16:27:04 +00:00