Commit graph

2114 commits

Author SHA1 Message Date
Oni
4de4c9e57d Merge branch 'pre-podium-music' into 'master'
Add pre-Podium intermission music

Closes #1084

See merge request KartKrew/Kart!2075
2024-03-10 21:08:11 +00:00
Gunla
20ecc22ccf Merge branch 'blend-end' into 'master'
Blend End

See merge request KartKrew/Kart!2039
2024-03-10 20:30:38 +00:00
Sally Coolatta
9b93f56111 Add pre-Podium intermission music 2024-03-10 14:08:59 -04:00
toaster
a96e39b22f G_UpdateVisited, G_DoCompleted: Clean up tutorialchallenge behaviour
- Permit saving "this map has been beaten" for the Tutorial Challenge map if you conquered it
    - This was previously short circuited because it wasn't a dedicated course
- Only trigger an extra UpdateUnlockablesAndExtraEmblems check if you haven't yet completed it
2024-03-09 20:33:24 +00:00
toaster
4aa13105c4 Fix problems exposed by a Round Star potentially being the first entry in a Cup
- Don't assume that the first Round in a Cup defines the default gametype for it
    - Now consistently uses GT_RACE
    - It was written this way to try and permit non-Race cups in future...
    - But there are much more solid ways to approach this down the line, instead of overloading this pre-existing data.
- cup-select.c: Don't assume `roundqueue.position == 1` means starting a fresh Cup from scratch
- G_HandleSaveLevel: Allow saving GP backups for overridden Courses at the front of the roundqueue
2024-03-09 20:33:24 +00:00
toaster
161b46f3aa Store gametype string in gpringsav.bkp for overridden Rounds, too 2024-03-09 20:33:24 +00:00
toaster
e5964f862a Rejigger Grand Prix rank-related oversight exacerbated by MapWarp
If a stage is taken out of the running for Grand Prix mode and replaced with another, the rank data wasn't corrected. We were merely getting lucky that the one Round Star regularly accessible had the same number of laps as the course it replaced.
Now, Laps, Rings, and Prisons can be adjusted up or down depending on the number of each element you're expected to have with a perfect GP tally.

Related: To make it more friendly to call in multiple places, RankCapsules_CountFromMap has now been adjusted to take a course ID instead of a virtres_t.
2024-03-09 20:33:24 +00:00
toaster
c1fadac0a5 Permit gametype to be changed by MapWarp
- Simplest possible solution for the time remaining: If the current gametype doesn't overlap with the nextmapoverride's TOL, do G_GuessGametypeByTOL.
    - Future work: Allow an optional extra parameter to MapWarp to specify a specific Gametype by name.
- Fixes for tutorialchallenge
    - NEXTMAP_TUTORIALCHALLENGE is integrated into the above, to reduce duplicate code
    - Call D_GametypeChanged, which was previously missing
2024-03-09 20:33:24 +00:00
James R
717dcf0209 restartlevel: preserve last map's gametype
- gametype can be changed without changing gamemap,
  through the pause menu option
2024-03-09 05:20:49 -08:00
James R
0707c9e5ec Add g_musicfade, generic system to fade out the level music for a brief period 2024-03-08 17:53:07 -08:00
James R
c09f55059b GP Prisons: use regular player starts, not Battle starts 2024-03-07 03:06:38 -08:00
James R.
359b63fd6d Merge branch 'continues-gp-backup' into 'master'
Store scores in Grand Prix backup

See merge request KartKrew/Kart!2019
2024-03-07 02:16:16 +00:00
AJ Martinez
c590a42e6d Hard GP continue delevel 2 -> 1 2024-03-05 20:02:11 -07:00
toaster
ad6118f7a7 Store scores in Grand Prix backup 2024-03-05 20:09:23 +00:00
James R
1155acebad Let buffer inputs between maps
- Do not clear inputs when a map loads
2024-03-03 17:48:11 -08:00
James R
38e1ae1c53 Replays: let name be changed any time until the file is saved 2024-03-03 06:30:54 -08:00
James R.
b136df4d41 Merge branch 'seal-a-carte' into 'master'
Sealed Star re-ordering (resolves #606)

Closes #606

See merge request KartKrew/Kart!1980
2024-03-03 05:18:26 +00:00
SteelT
cc99ead23b Merge branch 'bugfix-roundup' into 'master'
Misc bug fixes

Closes #1097 and #1096

See merge request KartKrew/Kart!1992
2024-03-03 01:45:35 +00: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
Eidolon
a19f0139af Reset demo.attract in title attract responder
Fixes KartKrew/Kart#1097
2024-03-02 11:17:07 -06:00
James R
e00b676dd8 Replays: fix camera reset when promoting splits
- Off-by-one error
2024-03-01 16:56:44 -08:00
James R
adebfb000c Replays: keep party in sync with current viewpoints
- More and more parts of the game rely on parties
- Parties are assumed to match the displayplayers
- This fixes A/B/C/D nametags
2024-03-01 06:09:07 -08:00
James R
3179183df7 Replays: do not initialize displayplayers to INT32_MAX
- Only demo playback does this and it's a mystery why
2024-03-01 06:04:20 -08:00
James R
9ea986a751 G_PlayerReborn: always clear nocontrol
Fault behavior relies on nocontrol. If you were able to
spectate and rejoin after faulting, you would be caught in
a state of nocontrol == UINT16_MAX with no way out.
2024-02-26 22:38:14 -08:00
toaster
7af6fd4911 G_DoCompleted: Set legitimateexit *after* it's been used, not before
Was preventing successful tutorial challenge completion from registering, even under the old extremely hard rules
2024-02-26 20:07:29 +00:00
Oni
74bfac57e4 Merge branch 'time-attack-annoyances' into 'master'
Time attack annoyances

Closes #1062 and #1064

See merge request KartKrew/Kart!1947
2024-02-25 07:23:49 +00:00
Oni
0a9b143053 Merge branch 'input-display' into 'master'
Input Display

See merge request KartKrew/Kart!1951
2024-02-25 07:19:36 +00:00
James R
b452232974 Add PF_ANALOGSTICK, tells if this player has bound analog stick to d-pad 2024-02-24 21:29:19 -08:00
James R
a2d22c730f Remove PF_LITESTEER
It doesn't do anything
2024-02-24 21:03:49 -08:00
Eidolon
f4f7c5b1eb Add fault start mapthing 36 and prefer it for TA
Fixes KartKrew/Kart#1063
2024-02-24 19:15:00 -06:00
Eidolon
3c63b84299 Skip titlecard for modeattacking except VERSUS
Fixes KartKrew/Kart#1062
2024-02-24 17:38:28 -06:00
Oni
9491c54e9d Merge branch 'separate-spb-attack-records' into 'master'
Separate/Encoreize SPB Attack records from normal Time Attack records

Closes #836

See merge request KartKrew/Kart!1875
2024-02-23 06:44:38 +00:00
toaster
7e217b74f5 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into separate-spb-attack-records
# Conflicts:
#	src/g_game.c
2024-02-23 00:57:40 +00:00
AJ Martinez
a10cea56dc Require analog magnitude for menu inputs 2024-02-22 02:40:40 -08:00
Eidolon
f998d1a929 Merge branch 'json-gamedata' into 'master'
Rewrite gamedata format

See merge request KartKrew/Kart!1931
2024-02-22 02:46:41 +00:00
Eidolon
6dc6bb63a7 Play TIMENT for mode attack intermission 2024-02-21 19:13:14 -06:00
Eidolon
b0348526cd Rewrite gamedata format 2024-02-18 21:10:36 -06:00
toaster
d87fba3f57 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into separate-spb-attack-records 2024-02-17 23:13:06 +00:00
toaster
b70e59755f Tie SPB Attack and Encore together
- A method to access Encore in Time Attack
    - so we have SOME Encore singleplayer content on launch
- Also available for Versus mode (in Special Attack)
    - Finally, Encore rematches have a way to access them!
    - Obviously will not spawn a chasing SPB, it's just a signal for "hard mode"
- Relevant gametype + unlock checks have been abstracted into M_EncoreAttackTogglePermitted
2024-02-17 23:11:58 +00:00
AJ Martinez
c0598610e9 Credit players for deathpits that result from their hits 2024-02-11 21:40:53 -07:00
toaster
3f78c9d2e6 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into separate-spb-attack-records
# Conflicts:
#	src/menus/play-local-race-time-attack.c
#	src/p_setup.cpp
2024-02-11 23:27:33 +00: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
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
AJ Martinez
97dcc33f0d Reset cheatchecks when respawns would decrease lap 2024-02-01 23:34:29 -07:00
James R
6c2736bd1d Move party construction to G_AddPlayer
- Fixes crash when a player leaves when viewing a replay
- Slightly refactors player joining code (including bots)
2024-01-28 23:02:57 -08:00
Eidolon
742c895228 Merge branch 'xtralives-cheaters-in-tears' into 'master'
Don't affect GP status if retrying

Closes #997

See merge request KartKrew/Kart!1882
2024-01-29 00:27:21 +00:00
Sal
3958c15dfe New Credits 2024-01-28 23:31:30 +00:00
Eidolon
9fb0efae3c Don't affect GP status if retrying
Fixes KartKrew/Kart#997, and then some. The bot difficulty was also
being affected by retrying after completing a race, so that's prevented
too.
2024-01-28 17:06:47 -06:00
James R
378fb8ed07 Save SPB Attack replays with "spb-" in the file name
- Files
  - spb-time-best
  - spb-time-lap
  - spb-last
- Menu
  - Toggling SPB Attack refreshes the menu (to show/hide
    certain replay options)
2024-01-27 04:30:38 -08:00
James R
ff07b92f18 Gamedata: save SPB Attack times separately from normal Time Attack
Bumps gamedata version! Gamedata version 10 -> 11
2024-01-27 04:23:44 -08:00