Commit graph

121 commits

Author SHA1 Message Date
James R
f5477f0c4e Confirm FOV override when level is loaded 2024-04-01 19:09:17 -07:00
SteelT
75b7d4bc42 Don't draw OpenGL loading screen when resynching the gamestate 2024-04-01 18:04:19 -04:00
toaster
e9205e19d6 ACS_RunPlayerEnterScript: If betweenmaps, defer until P_PostLoadLevel
Guarantees that the ENTER script actually consistently runs, since previously it was happening before ACS scope invalidation
2024-03-30 15:56:44 +00:00
Gunla
20d6dcda88 Merge branch 'discord-rp-update' into 'master'
Update Discord Rich Presence for Ring Racers

See merge request KartKrew/Kart!2155
2024-03-29 20:30:20 +00:00
toaster
894870295a Spray Can spawning rule cleanup
- You can spawn in Tutorial Challenge, but only if a single can has been picked up already
- Don't print a (DEVELOP-only, but still annoying) error when it doesn't spawn in Tutorial Challenge
2024-03-26 16:41:44 +00:00
AJ Martinez
bca0b48f45 Merge branch 'challenge-final' into 'master'
Challenge Final

See merge request KartKrew/Kart!2140
2024-03-24 06:47:32 +00:00
James R
a4f2712d8a WIP - credits audio/wipe fixes, document this later 2024-03-23 16:21:03 -07:00
Sally Coolatta
af6340741e Add speed to gametype
Set a specific gamespeed per gametype. KARTSPEED_AUTO for it to be decided by game settings.

Wanted this for a while, but also it makes game speed display logic for DRP very straightforward.
2024-03-22 16:58:36 -04:00
toaster
03adb1c093 Don't print the "map has no Spray Cans" error in modeattacking 2024-03-19 19:30:17 +00:00
James R
92bc1c2a17 Sort staff replays
- This lets the 1st replay on the "Replay Staff" selector
  actually be the fastest one
2024-03-18 22:16:12 -07:00
James R
4281cd1283 Attract: fade out and timescale at end of demo
- Do not use a wipe so player can keep moving while fading
  out
- Timescale by half for a "slowdown" effect
2024-03-18 02:42:21 -07:00
James R
7abe285f84 Refactor: replace references to cv_timescale with I_GetTimeScale 2024-03-18 02:42:21 -07:00
James R
244d5e1063 Attract: play demo for 30 seconds, starts at random timestamp
- Starting timestamp is not truly "random"
  - Uses a lookup table because I didn't like the PRNG
    distribution
2024-03-18 02:42:21 -07:00
James R
326e560329 Attract: fix attract demos end handling
Fixes two bugs:

- Attract mode carrying over to gameplay if an attract
  demo is allowed to finish without interrupting it
- Credits ending after the first replay ends
2024-03-18 02:42:21 -07:00
AJ Martinez
bb7c00171c Merge branch 'continuous-music-option' into 'master'
Continous Attack Music option

See merge request KartKrew/Kart!2105
2024-03-16 04:02:24 +00:00
AJ Martinez
d8ae4d9550 Merge branch 'staff-ghost-fixes' into 'master'
Fix staff ghost bugs

See merge request KartKrew/Kart!2115
2024-03-16 04:02:19 +00:00
SteelT
e7f2afdcb2 Fix RNG sync when in attract mode
P_ResetLevelMusic is not called during attract mode to advance the MUSICSELECT RNG
Resulting a warning (although harmless) about playback sync
2024-03-15 03:14:50 -04:00
James R
630e02217d Free ghosts when level data is freed 2024-03-14 01:27:16 -07:00
James R
d3034bba54 Menus/Sound Options: add Continuous Attack Music option
- On by default (current behavior)
- Off
  - Restart music in Attack modes
  - Also plays POSITION music
2024-03-13 22:43:35 -07:00
AJ Martinez
a79b93d2eb Merge branch 'title-credit-attract' into 'master'
Show titlescreen music credit when a title demo is loaded

See merge request KartKrew/Kart!2083
2024-03-12 00:07:36 +00:00
SteelT
7286886265 Show titlescreen music credit when a title demo is loaded
Fixes missing titlescreen music credit when watching a title demo
2024-03-10 23:09:16 -04:00
toaster
6e46f97847 As promised, Encore (alt)music
- `EncoreMusic` on mapheader
    - Supports up to 3 alt musics, as with every other type
- Do not vape/nightcoreify if provided
- To avoid complicating the Alt Music logic too much, uses "side B" of the same Prison Egg CD
    - That is to say, if there are 2 encore tracks and 3 normal tracks, the second Encore track will only play if you've gotten the CD associated with the second normal track

I haven't actually tested it *with* any Encore music, but I've triplechecked literally everywhere to make sure it didn't break standard play
2024-03-10 21:18:15 +00:00
toaster
7db5094577 Alt music: Don't destroy cache_muslock data when replacing the music in the mapheader 2024-03-10 21:17:20 +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
toaster
8180033ae1 Since Versus intros have special behaviour in time attack, also allow them to avoid the white fade/warp sound of MapWarp 2024-03-09 20:33:24 +00:00
James R
556035687c Versus: always reset music, even in Time Attack 2024-03-09 06:35:53 -08:00
James R
9e99efc08c Refactor level music playing code
- Use one function so we don't duplicate the checks for
  music that isn't supposed to be interrupted by a restart
2024-03-09 06:32:37 -08:00
AJ Martinez
279d802959 Faster TA tally, new TA music 2024-03-06 20:19:51 -07:00
SteelT
e97de3d6f3 Merge branch 'master' into reloadmap-fix 2024-03-06 16:03:11 -05:00
toaster
abc48d7546 Invert behaviour in modeattacking 2024-03-06 20:09:34 +00:00
toaster
7f0df71558 R_SkinAvailableEX
- Most R_SkinAvailable calls should be returning index into demo.skinlist (same numerical value as when demo was recorded), for demo sync
- A handful of general things permit exception for this
- Expose `replaynumskins` (calculated as `(demo.playback ? demo.numskins : numskins)`) to Lua
    - There's *always* more that can be done for this, but this is the minimum spec that can at least be somewhat stable
2024-03-05 13:21:38 -08:00
toaster
24b850a492 LoadRecordGhosts: Use local unlock state, not consoleplayer availabilities (which might not be set yet) to determine whether a ghost should be visible 2024-03-05 13:21:38 -08:00
James R
9f982a574e Add LapsPerSection property to map headers, fixes finish line distance in hybrid section-circuit maps
- It is possible to have a circuit map separated into
  sections, where there are multiple "laps" before making
  a full loop
- Normally the lap count is used to multiply the finish
  line distance, but it fails for these maps
- The LapsPerSection property fixes the calculation by
  specifying how many laps make up a full loop
  - Default = 1 lap (most maps)
2024-03-03 03:06:52 -08:00
Oni
19555bcdc9 Merge branch 'fix-waypoint-errors-titlemap' into 'master'
Don't initialize waypoints in GS_TITLESCREEN

See merge request KartKrew/Kart!1983
2024-03-03 01:57:36 +00:00
Eidolon
915d997b79 Don't initialize waypoints in GS_TITLESCREEN
Fixes error logs when titlemap loads
2024-03-01 18:43:00 -06:00
Eidolon
20cb01fb94 (demo v9) Demo save unlocks and mapmusrng
Fixes KartKrew/Kart#1093
2024-03-01 17:27:41 -06:00
toaster
d1ebd9a2d1 Make Special Mode time attack match Normal GP behaviour, as requested for practice 2024-02-26 20:25:08 +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
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
217f19158f Play and don't reset nonsynced level music in TA
Fixes KartKrew/Kart#1064
2024-02-24 18:07:57 -06:00
Eidolon
3c63b84299 Skip titlecard for modeattacking except VERSUS
Fixes KartKrew/Kart#1062
2024-02-24 17:38:28 -06: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
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
James R
d7e0a4d01a Add S_LoadSongCredit/S_UnloadSongCredit, refactor cursongcredit
- cursongcredit behaves the same as before
- Always compose song credit string
- g_realsongcredit always stores the song credit for the
  current music, even if no song credit is displayed on
  the HUD
2024-02-09 18:13:35 -08:00
James R.
6b831a0fa2 Merge branch 'fix-show-character-ghosts' into 'master'
Time Attacking: fix "Show Character" option for ghosts

Closes #1013

See merge request KartKrew/Kart!1896
2024-02-09 23:47:50 +00:00
James R
56e710266c M_TokenizerOpen: pass size in as argument instead of calling strlen implicitly
This function is used for parsing TEXTMAP and the data is
not NUL-terminated.
2024-02-08 18:16:41 -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
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
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
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