Commit graph

22584 commits

Author SHA1 Message Date
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
4ff0a8358f Rework exitlevel conditions
- Uses K_CanChangeRules instead of checking for multiplayer, to catch all of the restricted singleplayer scenarios
- Checks for server admin first before cheats
2023-03-03 16:09:53 -05:00
Sally Coolatta
6f0b09fecd CON_GamestateDrawHudLines 2023-03-03 16:09:52 -05:00
Sally Coolatta
4011c8b2fa M_GamestateCanOpenMenu 2023-03-03 16:09:52 -05:00
Sally Coolatta
4d19b127c3 Got_ExitLevelcmd sets GP round won 2023-03-03 16:09:52 -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
e47f46d3bc Give podium bots more traction 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
c1baff583c Don't abort SPB Attack on postrace death, idiot 2023-03-03 12:17:11 -08:00
AJ Martinez
8739d3076a Use more fitting name for SPB Attack menu patch 2023-03-03 12:17:11 -08: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
AJ Martinez
79d8e4e109 WIP: SPB Attack - temp menu draws OOB, no unlocks 2023-03-03 12:14:58 -08: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
James R
8d25820c91 Move screenshot pass out of basic_rendering, into normal_rendering
This fixes a bug with avrecorder capturing a mostly white
frame at the beginning of a wipe. This was because
wipe_capture_start_rendering depends on basic_rendering
and a wipe could occur before any 2d elements are batched
for the current frame, thus producing a white frame when
basic_rendering is passed. It only lasted for one frame
because the PREVIOUS frame is used for the wipe itself.
This is also why the white frame was not visible
on screen.
2023-03-03 11:24:57 -08: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
James R
fec24381df Fix FAULT crash if no finish line waypoint 2023-03-02 23:40:54 -08:00
James R
45fb60d247 Only toggle director when you yourself spawn or when the first player in the level spawns 2023-03-02 23:34:41 -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
James R
5cb54f29fe Sync player mobj health to bumper count
Fixes players killed twice if P_DamageMobj is called with
DMG_TIMEOVER and gametyperules GTR_BUMPERS.

Moves death condition out of K_HandleBumperChanges and
lets losing last bumper organically kill the player by
decreasing their health.
2023-03-02 22:05:30 -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