Commit graph

21774 commits

Author SHA1 Message Date
toaster
0c75c40060 Rework how Bots handle their skin availabilities
Before we can add extra unlock features, we need to make sure we're not building on a house of sand.
- R_SkinUsable: Use Net Unlock system if playernum is -1
- R_BotDefaultSkin: Move to r_skins.c, cache skin search
- R_GetSkinAvailabilities: Use Net Unlock when called for bots (and always permit R_BotDefaultSkin)
- Got_AddBot: Call R_GetSkinAvailabilities for summoned bots to guarantee sync status of available skins
- K_UpdateMatchRaceBots: Tidy up to match grand prix bot skin selection system, hiding server-locked skins and defaulting to R_BotDefaultSkin if you don't have enough unlocked for the remaining player slots
2023-03-05 18:06:09 +00: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
toaster
22f9467e71 M_ClearConditionSet: fix memory leak 2023-03-04 17:33:56 +00:00
Sal
0fa1e99a82 Merge branch 'fix-twodee-dedicated' into 'master'
Fix dedicated server crashes + disable GP

See merge request KartKrew/Kart!1009
2023-03-04 02:59:03 +00:00
James R
17bf7d0935 Do not start dedicated server in GP if -warp is used 2023-03-03 18:56:07 -08:00
James R
5efce73680 Do not run ST_Ticker if dedicated 2023-03-03 18:56:07 -08:00
James R
546f8d88c3 Do not reset twodee context if dedicated server 2023-03-03 18:56:05 -08: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
James R
9f46c705f0 Merge branch 'fix-double-race-print' into 'master'
Fix the "player has finished the race" message being printed to log twice

See merge request KartKrew/Kart!1012
2023-03-03 20:01:24 +00:00
SteelT
386e32891f Fix the "player has finished the race" message being printed to log twice 2023-03-03 12:00:08 -08:00
James R
1cbc4944ba Merge branch 'improve-msdos-83-error' into 'master'
Add instructions to the 'Are you using MSDOS 8.3 filenames in Zone Builder?' error

See merge request KartKrew/Kart!1011
2023-03-03 19:58:35 +00:00
James R
64e6583a74 Merge branch 'connect-screen-reset-2d' into 'master'
Reset twodee contexts when drawing connect screen

Closes #461

See merge request KartKrew/Kart!1007
2023-03-03 19:54:33 +00:00
James R
e65c2ba7a8 Merge branch 'improve-misc-game-testing' into 'master'
Improvements for testing/debugging

See merge request KartKrew/Kart!1004
2023-03-03 19:54:16 +00:00
James R
833a51b384 Merge branch 'fix-fault-freespin' into 'master'
Fix chasecam desyncs during hitlag/death/FAULT

See merge request KartKrew/Kart!1002
2023-03-03 19:53:50 +00:00
toaster
74336efc74 UC_CRASH: Adjust condition string to handle newlines better 2023-03-03 16:38:01 +00:00
toaster
8603094664 M_PopulateChallengeGrid: Attempt to recover from one major tile too many for the amount of space left, which is relatively trivial only in the height == 4 case. 2023-03-03 16:37:35 +00:00
toaster
002de8c948 G_LoadGameData: Regenerate challengegrid from previous minor versions 2023-03-03 16:00:45 +00:00
toaster
4f8df12403 M_PopulateChallengeGrid: Remove bad challengegrid when I_Erroring to prevent corrupted save 2023-03-03 15:59:25 +00:00
toaster
06bde8b40e M_CheckCondition, conditiontype_t, etc: More fine-grained control over your condition string
- UCRP_PREFIX_ISMAP: a prefix version of UCRP_ISMAP
    - The condition string for UC_EMBLEM has been updated to match other relevant prefixes.
- UC_COMMA: a second string-relevance-only condition, for inserting a comma where only a human could find it natural
2023-03-03 15:40:10 +00:00
toaster
bd54a789a2 M_BuildConditionSetString, M_StartMessage: Fix occasionally spurious injected newlines 2023-03-03 15:31:36 +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
1f144c3106 M_UpdateUnlockablesAndExtraEmblems: Do not permit UCRP_REQUIRESPLAYING conditions in demo.playback 2023-03-03 13:46:42 +00:00
toaster
e1c25228b5 UCRP_REQUIRESPLAYING: Forbid some possible exiting states from happening in Free Play 2023-03-03 13:43:47 +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
James R
1e79075b79 Add instructions to the 'Are you using MSDOS 8.3 filenames in Zone Builder?' error 2023-03-03 03:55:59 -08:00
James R
175219341c Reset twodee contexts when drawing connect screen 2023-03-03 00:48:46 -08:00
Oni
9eefb2e0ae Merge branch 'better-local-camera' into 'master'
Better local camera handling

See merge request KartKrew/Kart!999
2023-03-03 07:08:19 +00:00
James R
971d686437 LUA_EvalMath: load math lib 2023-03-02 22:56:55 -08:00
James R
ceab0399de Add eval command, calls LUA_EvalMath 2023-03-02 22:56:32 -08:00
James R
a2493bb9db Purge control characters from COM_Args 2023-03-02 22:56:09 -08:00
James R
58f07987f9 Add setscore cheat, sets player's point count 2023-03-02 22:08:30 -08:00
James R
b2fb1b4ccd Make timelimit cvar seconds based
Easier for activating Overtime Barrier. Previously would
have to wait a minute at minimum :sandevastated:
2023-03-02 22:07:11 -08:00
VelocitOni
d7cd6fba5a Merge remote-tracking branch 'origin/try-fix-draw-sprite-crash' into better-local-camera 2023-03-03 00:01:02 -05:00
VelocitOni
5b01ee5805 Merge remote-tracking branch 'origin/master' into better-local-camera 2023-03-02 23:01:40 -05:00
toaster
b4217e1afd UCRP_FINISHTIMELEFT: Flip incorrect less-than to greater-than in condition handling 2023-03-02 23:11:18 +00:00
toaster
5b11179213 A start on in-level empheral conditions
- M_UpdateUnlockablesAndExtraEmblems: If Playing() and GS_LEVEL, call a bunch of funny conditions for every non-spectator splitscreen player.
    - Called every tick in P_Ticker. May be foolish. May duplicate effort. Worth extra attention later.
- Add a bunch of stacking-together UCRP_REQUIRESPLAYING condition types.
    - A collection of PREFIXes
        - Grand Prix
        - Bonus Round
        - Time Attack
        - Break The Capsules
        - Sealed Star
    - A collection of specific prerequisites
        - Current map is [map value]
        - Character is [character string that gets parsed after skin load]
            - M_UpdateConditionSetsPending(), because SOC is bad and loaded before skins
    - A collection of win conditions (TODO: these still work in FREE PLAY)
        - Finish in good standing
        - Break all the capsules
        - No Contest
        - Finish at least [place]
        - Finish at [place] exactly
        - Finish at [time, tics]
        - Finish at [time, tics] exactly
        - Finish with at least [time, tics] left (GTR_TIMELIMIT only)
    - An AND to concatenate them together (literally just for text adjustment)
2023-03-02 23:02:42 +00:00
toaster
e07802d3bf M_SetupGametypeMenu: Fix a bug with RestoreMenu corrupting menu state. 2023-03-02 21:04:23 +00:00
AJ Martinez
3c69739e0a Fix chasecam desyncs during hitlag/death/FAULT 2023-03-02 12:57:04 -07:00
toaster
92285b90fa Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading 2023-03-02 14:38:56 +00:00
toaster
884f03c043 Merge branch 'fix-grow-music' into 'master'
Fix powerup music inconsistencies (resolves #460)

Closes #460

See merge request KartKrew/Kart!1001
2023-03-02 14:37:21 +00:00
toaster
693562c0b4 Merge branch 'orbi-deletion-crash' into 'master'
Obj_OrbinautJawzMoveHeld: Make loop iteration less fragile

See merge request KartKrew/Kart!998
2023-03-02 13:34:50 +00:00
toaster
e11738b481 Merge branch 'droptarget-collide-plus' into 'master'
More fun with Drop Target punting

See merge request KartKrew/Kart!995
2023-03-02 13:34:02 +00:00
AJ Martinez
746171a8ad Fix powerup music inconsistencies 2023-03-02 02:47:29 -07:00
AJ Martinez
b777759744 Use postfix for P_FindClosestTurningForAngle iterations 2023-03-01 22:27:00 -07:00
AJ Martinez
7cffbef1a2 Merge remote-tracking branch 'origin/master' into better-local-camera 2023-03-01 22:25:46 -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
Eidolon
5d54d53a4b Hide movie_showfps option when webm is disabled 2023-03-01 19:02:20 -06:00