Commit graph

1999 commits

Author SHA1 Message Date
Sally Coolatta
23a00b1d00 Move GP ranking data to grandprixinfo 2023-03-06 18:26:08 -05:00
Sally Coolatta
96477caa88 Move K_ResetCeremony
Properly carry over GP ranking data to the ceremony
2023-03-06 18:26:07 -05:00
Sally Coolatta
cf20e2e831 SS requirement is now getting A rank 2023-03-06 18:26:07 -05:00
Sally Coolatta
d5d0647ae6 Remove difficulty as a ranking requirement
Was a cute idea, but removing it since it's not something you can 100% guarantee every time, which was the same reasoning for getting rid of times getting damaged / dealing damage from the requirements.
2023-03-06 18:26:06 -05:00
Sally Coolatta
3c07641938 Add final position as a ranking requirement
1st is a large bonus, 2nd is a medium bonus, 3rd place is no bonus, and everything below is a penalty. This will help make Loser Valley grades never be above a C at most.
2023-03-06 18:26:06 -05:00
Sally Coolatta
c61e017c38 GP rank cleanup
- Move ranking to its own file.
- gpRank (the variable) -> g_gpRank
- gpRank (the struct) -> gpRank_t
- Functions that worked on the global directly now take a pointer to a struct
- Fixed total ring increment
- Fixed final lap's lapPoints being discarded
- Capsules are now added when exiting with the rest of the stuff
2023-03-06 18:25:14 -05:00
Sally Coolatta
55de982fa3 GP ranking
Needs balancing + intermission, but mostly functional
2023-03-06 18:25:14 -05:00
Sally Coolatta
20dedb6602 Try to fix the podium bot spawning (again)
- Podium waypoint initialize is done always directly after spawning the player, instead of trying to detect it in K_UpdatePodiumWaypoints.
- Position is manually calculated for K_InitializePodiumWaypoint, instead of needing K_UpdateAllPlayerPositions to be called.
- Instead of calling K_UpdateAllPlayerPositions every time a player spawns, do it at the end of the spawning loops.
- Prioritize spawning bots in further away spots instead of 1st available, as spots 1st to 3rd spots are more important.
2023-03-06 18:24:51 -05:00
toaster
baeb48ca1f roundconditions_t - State tracking for events which occour mid-match and don't stay that way
- Exists on every player struct to simplify writes, but A) not netsynced and B) only checked for local players
- Updated in the relevant locations - no centralised ticking at the moment
- Has a number of new associated conditions that require playing (UCRP's).
    - The following require [True/False] as supplementary information.
        - FallOff
        - TouchOffroad
        - TouchSneakerPanel
        - RingDebt
    - The following have no supplementary information because they're universally a specific achievement.
        - TripwireHyuu
        - SPBNeuter
        - LandmineDunk
        - HitMidair
    - The following has specific requirements that can be set.
        - WetPlayer [name of fluid]
             - Append "Strict" to forbid even skimming the surface of the map's fluid.
2023-03-06 22:31:35 +00:00
James R
d79e53a0e3 G_SaveGameData: check for NULL
This fixes I_Error if used before M_NewDataStruct is
called.
2023-03-06 02:39:49 -07:00
Sally Coolatta
1dccf5dfea Remove spectator crap again
welp...
2023-03-06 01:21:32 -05:00
toaster
0f715454fa Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading 2023-03-05 19:51:48 +00:00
Sally Coolatta
34112be38e Move bot updates before P_InitPlayers 2023-03-05 14:12:03 -05:00
James R
2ebf8ebb8c Don't skip spectators when searching for Podium starts
There shouldn't be any spectators in Podium anyway. But
there are if you come here from a Sealed Star because bots
get spectated in those. The bots are still spectators
until they spawn (after G_FindPodiumStart).
2023-03-05 00:41:20 -08:00
toaster
1ae5df651d UC_ADDON
- If you add a file (and you've unlocked Addons on non-DEVELOP builds) this gets achieved
- Also, Custom # of Rounds Played conditions will show "Custom" only if Addons are loaded
2023-03-04 21:36:58 +00:00
toaster
f7617e7530 Clear records, stats, and secrets on new in-SOC gamedata creation
- Pre-emptive sanity check to some impending work
- Move M_UpdateUnlockablesAndExtraEmblems out of M_ClearSecrets
2023-03-04 21:11:13 +00:00
toaster
5296ab1397 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading 2023-03-04 20:09:48 +00:00
toaster
e994b920c6 gamedata->roundsplayed: Split into multiple roughly-gametype-aligned categories
- Race, Capsule, Battle, Special, Custom
- All categories can now be used for Rounds Played condition
- UCRP_SEALEDSTAR now hides if you haven't beaten a single Sealed Star yet
In addition, introduce M_ClearStats
- As more statistics get added, clearing them manually in G_LoadGameData and M_EraseDataResponse is just going to get annoying
- Change around the options on the Erase Data screen to
    - Make it clear that erasing all game data won't clear your Profiles
    - Add an option to clear stats by themselves, rather than only permitting via complete gamedata wipe
    - Move to the "Challenges" terminology over SRB2's "Secrets" terminology
- Move some entries that were previously handled in M_ClearSecrets into M_ClearStats
2023-03-04 20:09:29 +00:00
AJ Martinez
320685cf97 SPB Attack: review fixup omnibus 2023-03-04 06:41:44 -07:00
Sally Coolatta
04525f2fb5 G_FindPodiumStart
Since G_FindRaceStart doesn't use regular position stuff, it needs to do this. Seems to fix the weird bug people were running into in the VC, but it also seemed kinda wishy-washy
2023-03-04 01:30:49 -05:00
Sally Coolatta
839650968d Make podium end use G_EndGame 2023-03-03 22:29:20 -05:00
toaster
eeb6e40909 Add totalrings to gamedata
- Added to Statistics screen
- Caps at "999,999,999+".
- Controls UC_TOTALRINGS condition
- Improve description for UC_MATCHESPLAYED condition
    - Says "Rounds" now
- Improve Statistics text for playtime
    - Dynamically changes visible units of time (seconds, minutes, hours, days.......)
2023-03-03 22:35:28 +00:00
Sally Coolatta
c4525a61a2 Add results screen 2023-03-03 17:30:35 -05:00
Sally Coolatta
35d0cb8eaa Move podium code to its own file 2023-03-03 16:10:05 -05:00
Sally Coolatta
a1976aa43d Fixes for podium bots loading
- Handle bot spectator on spawn purely in P_SpawnPlayer from now on
- Don't give podium players flashing tics
- Don't call P_MovePlayerToStarpost during podium. (Needs further fixing in another branch, since this also apparently affects bot spawning in all maps.)
- Update mobj_t pointers in CL_ClearPlayer if G_GamestateUsesLevel()
- Forcefully set initial podium waypoint if jointime <= 1
- Use G_SpawnPlayer consistently in P_InitPlayers for podium
2023-03-03 16:10:05 -05:00
Sally Coolatta
2806f1c085 Fix bots not being able to spawn for podium
(This might break titlemaps but maybe titlemaps should do something more explicit to hide all players)
2023-03-03 16:09:58 -05:00
Sally Coolatta
2d84837e5b Use ceremony gamestate when warping to podium on startup
Doesn't spawn the bots for some reason still, but I need this for quicker prototyping
2023-03-03 16:09:57 -05:00
Sally Coolatta
04eefa1acc Go to podium when game over on special stage 2023-03-03 16:09:56 -05:00
Sally Coolatta
9501b57296 Extend cut-away view functionality
- arg2: TID of an object to make the camera's angle/pitch follow.
- arg3: Zoom tube waypoint sequence to start following.

- Ceremony uses one-screen, regardless of previous splitscreen-ed-ness
2023-03-03 16:09:55 -05:00
Sally Coolatta
82313de499 Awayview cleanup
- Moved variables to awayview_t
- Arbritrary +20 is no longer added to z pos, it will use the thing position as the camera position directly.
2023-03-03 16:09:54 -05:00
Sally Coolatta
f78b3f7794 Fixes for CEREMONY gamestate
- Made titlemap + ceremony code more straight-forward by being able to set gamestate in G_DoLoadLevel directly
- Demos are only recorded on GS_LEVEL (fixes crash for ceremony + titlemaps)
- Added G_GamestateUsesLevel to encapsulate all checks for using level rendering
- Added GS_CEREMONY to wipedefs
- K_PodiumSequence just checks for GS_CEREMONY now (optimization)

The game can now properly go to the podium after GP
2023-03-03 16:09:51 -05:00
Sally Coolatta
7760d6688b Ceremony gamestate
Doesn't work
2023-03-03 16:09:50 -05:00
Sally Coolatta
4a8dd02320 Podium cutscene basics
- Bots follow a slightly more strict path via waypoints
- Bots decide their starting waypoint path depending on their position. (The 1st place winner will start by chasing waypoint ID 1, etc)
- The map used for podium sequence can be decided via `PodiumMap = x` in MainCfg.

TODO:
- Camera work
- Add Lose / Win animation states when stopping at final waypoint
- Adjust physics so that the bots can follow the path more strictly in this mode
- Actually go to it after GP
2023-03-03 16:09:49 -05:00
AJ Martinez
211206ba6f Fix menus, fix failure condition 2023-03-03 12:17:10 -08:00
AJ Martinez
f3f4ac16de SPB Attack: medals, emblems, and fixes 2023-03-03 12:15:00 -08:00
AJ Martinez
6173ca47aa SPB Attack: emblems/medals preliminary 2023-03-03 12:15:00 -08:00
toaster
002de8c948 G_LoadGameData: Regenerate challengegrid from previous minor versions 2023-03-03 16:00:45 +00:00
toaster
db52c22a83 More NULL handling for gamedata
Partial duplicate of MR 1010, but 1) wanted to guarantee no merge conflicts before I forgot and 2) I added things in previous commits which needed stronger guarding
2023-03-03 13:59:59 +00:00
toaster
53ce2e4287 Gamedata-related changes + Crash tracking
- Combine multiple adjacent saves
    - Generally could happen during game ticking, combined via gamedata->deferredstate
    - DEFINITELY happened in splitscreen PWR handling, adjust those loops directly
- Write "dirty" state via gamedata->crashflags on everything except safe, intentful unloads
    - Add UC_CRASH, which unlocks dependent on the above "dirty" state being present at gamedata load
    - We can use this for something more useful and less funny later.
- Play "O_LOSERC" on the menu, starting with the Challenges screen, if a UC_CRASH condition has been met.
2023-03-03 13:38:31 +00:00
AJ Martinez
3c69739e0a Fix chasecam desyncs during hitlag/death/FAULT 2023-03-02 12:57:04 -07:00
Oni
e79d419d25 Merge branch 'hwr2-twodee' into 'master'
hwr2: Add hardware 2D rendering

See merge request KartKrew/Kart!914
2023-03-02 01:42:26 +00:00
James R
e4885aab47 Add a short help instruction to "Game data is from the future!" error
Game data is from the future! (expected 69, got 420)
Rename or delete developringdata.dat (maybe in the Ring Racers folder) and try again.
2023-03-01 10:19:09 -08:00
toaster
35ae8f01f4 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into hwr2-twodee 2023-03-01 18:10:44 +00:00
James R
eab22f645c Merge branch 'titlecard-cecho' into 'master'
Titlecard CEcho

See merge request KartKrew/Kart!952
2023-03-01 17:21:13 +00:00
toaster
739d81f403 G_BuildTiccmd: Fix not being able to use item button to toggle PF_WANTSTOJOIN 2023-03-01 15:00:35 +00:00
toaster
40271cd128 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into hwr2-twodee 2023-03-01 12:30:58 +00:00
Oni
85f3d66f2c Merge branch 'spectator-rework' into 'master'
Rework spectator mode

See merge request KartKrew/Kart!980
2023-02-28 05:08:50 +00:00
Eidolon
98ce714614 hwr2: integrate avrecorder with RHI and legacy GL 2023-02-27 19:49:45 -06:00
toaster
95a1cb7108 Merge branch 'viewpoint-and-director-fixes' into 'master'
Fixes for F12 and Director Cam

See merge request KartKrew/Kart!979
2023-02-27 11:45:06 +00:00
James R
a19b476d3d hwr2: do GIF recording in screenshot pass 2023-02-26 20:28:05 -06:00