Commit graph

25186 commits

Author SHA1 Message Date
James R
49c7618741 I_ReportSignal: fix -Wformat-overflow 2023-11-21 20:27:48 -08:00
toaster
9989543346 UC_ALLCUPRECORDS
New condition for tracking multiple cups' windata.
`Condition1 = AllCupRecords RR_Egg Bronze`
- All cups up to Egg Cup must be completed at Bronze or better
`Condition1 = AllCupRecords`
- All cups in the game must be completed
`Condition1 = AllCupRecords All Any Master`
- All cups in the game must be completed on Master mode`
2023-11-22 00:34:39 +00:00
toaster
21f152989d Clear separation between basegame and mods
- Always force a page seperation between the last core files cup and the first modded cup
- Lost and Found sits exactly between them
    - If any cup on the last page of basegame is unlocked, place LnF on the last core page
    - Else, LnF is the first "cup" on the first Modded page
    - It's done this way so no Core material is spoiled if you haven't unlocked it yet. We want people to believe RR contains only 7 cups unless they go above and beyond

Also address Volt's bug report: Prevent the first page of cups from being overridden if everything is locked
2023-11-21 22:59:12 +00:00
toaster
b46b61e7a1 Fixes for Cups with incomplete map list
- Don't check alt-Podium maps as possible Cup stages
- Guarantee the cupcache is initialised to NEXTMAP_INVALID properly
2023-11-21 22:13:11 +00:00
Oni
d307bd2c97 Merge branch 'fix-gp-results-reload' into 'master'
Podium Results/Round Queue fixes

Closes #772 and #742

See merge request KartKrew/Kart!1647
2023-11-21 15:43:20 +00:00
James R
0c57902463 Hardcode Gust Planet "Trees" 2023-11-21 01:07:24 -08:00
James R
4b3ea7460b Hardcode Gust Planet seasaws
- Add states
  - MT_GPZ_SEASAW_SPAWN
  - MT_GPZ_SEASAW_HITBOX
  - SPR_GPPS
  - SPR_GPZS

- Add objects API
  - Obj_GPZSeasawSpawn
  - Obj_GPZSeasawThink
  - Obj_GPZSeasawCollide

- objects/gpzseasaw.c
  - Gust Planet seasaw behavior
2023-11-21 01:07:17 -08:00
James R
8961eef681 Carbon copy objects/dlzseasaw.c -> objects/gpzseasaw.c 2023-11-21 01:07:14 -08:00
James R
920c6c0311 Obj_DLZSeasawUpdate: fix eflags typo 2023-11-21 01:06:06 -08:00
James R
ff3826466b Rename MT_DLZ_SEASAW_VISUAL to MT_SEASAW_VISUAL, reorganize seasaw states
In preparation for Gust Planet seasaws, I'm grouping these
separately from the rest of Dead Line states.

Because the visual object does no think for itself, rather
by proxy of the main seasaw object: I removed the DLZ tag,
since this object will be reused for Gust Planet.
2023-11-20 23:35:40 -08:00
toaster
382119b8fb Second row of cups is invisible if none of them are unlocked
- Controlled by M_CupSecondRowLocked
    - Looks for any Cup with associated unlockable that's on the second row
    - Cached on load for both relevant menus - Cupgrid and Challenges
- Custom cups will be stretched out onto more pages
    - Side incentive of unlocking more material: Less annoying interactions with custom material
- Pages with nothing unlocked are completely skipped over

Also moves a bunch of minor things which previously used magic numbers to the CUPMENU_COLUMNS/CUPMENU_ROWS defines, for sanity
2023-11-20 21:09:33 +00:00
AJ Martinez
b8c18ce39f Merge branch 'nerf-rank' into 'master'
Nerf per-level rank requirements

See merge request KartKrew/Kart!1648
2023-11-20 06:47:33 +00:00
AJ Martinez
af6b4c503a Merge branch 'lap-anim-annoying' into 'master'
Lap animation polish

See merge request KartKrew/Kart!1651
2023-11-19 23:40:49 +00:00
AJ Martinez
c02bb11a6e Merge branch 'remove-malloc-in-signal-handler' into 'master'
Remove malloc from I_ReportSignal

See merge request KartKrew/Kart!1650
2023-11-19 23:40:18 +00:00
toaster
eb50c05a6d Lap animation polish
- Only play when your latestlap increases, since the thumbs up/down is what affects your Grade
- If knocked back over the line, stay on your latest lap value instead of going back down
2023-11-19 23:21:00 +00:00
toaster
1967eb46e1 I HATE ONE-INDEXED MAP NUMBERS 2023-11-19 22:40:51 +00:00
toaster
ddf34433dd P_ArchiveMisc, P_UnArchiveSPGame: Support overridden roundqueue entries
Will error for overridden material from the future (how did it get overridden?), but accomodates everything before the roundqueue's head.
2023-11-19 22:40:19 +00:00
toaster
6f32a3097c P_UnArchiveSPGame: Rank cleanup
- Instead of iterating over all levels, iterate over all entries in round queue
    - Accomodates hash collisions
    - Accomodates levels in queue that simply haven't been ranked
- Prevent more levels being ranked than the size of the Queue
- Improve error messages to provide more information about the state of the queue
2023-11-19 21:23:54 +00:00
toaster
0dd4fa52e3 Increment SAV_VERSIONMINOR 2023-11-19 19:14:47 +00:00
toaster
c752990720 Y_Ticker, roundqueue contexts: Fix for leaking existence of rank-restricted entries
The player pin jumping "clack" sound was improperly guarded from happening when reaching the end of a GP without accomplishing a Sealed Star.
2023-11-19 18:48:49 +00:00
toaster
bf0d0f39bc Podium: Fix Y_DrawIntermissionButton slidein 2023-11-19 18:28:47 +00:00
toaster
b09a9b40c4 Account for Hidden Palace-like replacement levels in the round queue and ranking systems
- When a nextmapoverride is in play, do not insert the just-played map into the GP Rank
- Put all the behaviour that determines which Round icon to show in exactly one places

Also, fix a bug where it would show the skin realname for a spectating player's tally instead of the ROUND text.
2023-11-19 18:01:02 +00:00
Eidolon
2c50b6a41a Partial revert "sdl/i_system.cpp: fix compiler errors"
This reverts commit bca2c8cb19.

The changes to I_ReportSignal introduced implicit calls to malloc.
malloc is not signal-safe.
2023-11-19 10:38:19 -06:00
toaster
66844457cd gpRank_t: Prevent overflow in stored rank
Resolves most of #772.
- Match maximum size of levels array to ROUNDQUEUE_MAX, to prevent edge cases
- Explicitly check that numLevels does not equal/exceed array size before writing
2023-11-19 16:33:16 +00:00
Sally Coolatta
10488ecbb2 Use g_localplayers for GP rank 2023-11-19 02:58:14 -05:00
Sally Coolatta
11a719ced6 Nerf per-level rank requirements
- Use ease-out sine curve for lap points. This means that the difference between 0 and 1 lap points is more drastic for your score than the difference between 5 and 6. (If this isn't strong enough, then a different curve can be used.)
- Final position is weighted less heavily.
- You now get 0 points at the best losing position, instead of 0 points at the worst winning position. This means less negative points.
- Fix Battle ranking being wildly skewed when point limit is disabled.
2023-11-19 02:57:57 -05:00
Sally Coolatta
68d057c4b3 Resolve !742 2023-11-19 02:13:24 -05:00
Oni
6c678bf347 Merge branch 'bubble-b-gone' into 'master'
Define out WPZ turbine bubbles until we actually know why they false-positive

See merge request KartKrew/Kart!1646
2023-11-19 05:38:24 +00:00
AJ Martinez
e7e2cb93c4 Define out WPZ turbine bubbles until we actually know why they false-positive 2023-11-18 22:33:22 -07:00
Oni
fa7b2f2076 Merge branch 'fix-sourceless-capsule-kills' into 'master'
Capsule followers use target flags if no source (fixes crash)

See merge request KartKrew/Kart!1645
2023-11-19 05:14:54 +00:00
Oni
47a01d0699 Merge branch 'other-progression' into 'master'
Other Progression

Closes #561

See merge request KartKrew/Kart!1606
2023-11-19 05:14:39 +00:00
AJ Martinez
263b73be38 Capsule followrs use target flags if no source (fixes crash) 2023-11-18 21:56:32 -07:00
toaster
46f7b3a519 Ring Award/Drain special: For negative rings, nonzero args[2] makes the minimum value -20 instead of 0
Requested in VC for Drifting Tutorial
2023-11-18 23:11:28 +00:00
toaster
146666fad4 Use K_IsPlayerLosing for failure of Tutorial Challenge instead of recreated conditions, to reduce the number of moving parts 2023-11-18 20:01:38 +00:00
toaster
f365ef9417 In Tutorial, always use Ring/Sneaker roulette at the Time Attack speed
Also cleans up the conditions for battleprisons and versus mode
2023-11-18 18:44:56 +00: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
toaster
b80547edab Merge branch 'restore-vid-wait' into 'master'
Restore vid_wait, make it apply immediately

See merge request KartKrew/Kart!1617
2023-11-18 13:11:03 +00:00
toaster
b4ec390f16 Forgot to commit, I hate gamemap one-indexing 2023-11-18 12:37:48 +00:00
toaster
362ca56346 SV_SendServerInfo: Don't use prevmap when checking nozone
Vaguely related tiny bug
2023-11-18 12:16:21 +00:00
toaster
55c6602473 Review: Don't award map visitation when the tutorial challenge is queued up, either 2023-11-18 12:15:36 +00:00
toaster
1ef427631e Review: Fix incorrect levelsearch apparatus
- M_LevelListFromGametype: Correctly wipe tutorial status when changing from tutorial to gametype with cups
- G_GetFirstMapOfGametype: Fix tutorial handling, gametype's datatype
- M_InitExtras: to prevent duplicated code, use G_GetFirstMapOfGametype
2023-11-18 11:49:17 +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
2922779769 Merge branch 'semibright-spikes' into 'master'
Semi-bright increase, semi-bright spikes, no encore remap on spikes

See merge request KartKrew/Kart!1643
2023-11-18 07:05:12 +00:00
VelocitOni
0081c5427f semi-bright increase & semi-bright spikes, no encore remap on spikes
Semi-bright is 192 instead of 128 now, an average of half-to-max brightness. We don't make really dark maps in RR, this makes sense
2023-11-17 22:27:39 -05:00
James R
55fddd2132 objects/mega-barrier.cpp: fix undefined behavior
Calling a class method from a nullptr this is undefined
behavior.
2023-11-17 18:51:21 -08:00
Oni
db36fc516f Merge branch 'basic-replay-cheats' into 'master'
Basic replay/spectator "cheats"

See merge request KartKrew/Kart!1613
2023-11-18 00:57:46 +00:00
Gunla
706c639c70 Merge branch 'fix-splitscreen-director-toggle' into 'master'
Fix director not switching on when a party member enters

See merge request KartKrew/Kart!1639
2023-11-18 00:15:32 +00:00
toaster
dc4e14d9d9 G_DoCompleted: Use gamedata->deferredsave to reduce the number of intermediate gamedata saves 2023-11-17 16:58:38 +00:00
toaster
ce085c3f66 failedtutorialchallenge -> enteredtutorialchallenge
Track ENTERING the challenge, instead of when you fail it
Allows for system-level ironclad prevention against multiple tutorial challenge runs on the same gamedata
2023-11-17 16:54:33 +00:00
toaster
224d584203 Cleanup of P_Ticker gamedata material
- Don't do updates in titlemap
- totalplaytime is leveltime-based
2023-11-17 16:45:03 +00:00