Commit graph

25420 commits

Author SHA1 Message Date
toaster
91682c3250 Fix transitions for Level Select -> Time Attack
Previous version was too specific
2023-12-07 16:36:04 +00:00
Oni
940ce281ae Merge branch 'fix-hazard-scale-comparisons' into 'master'
Don't do scale-to-scale collision checks vs static hazards (resolves #491, #781)

Closes #781 and #491

See merge request KartKrew/Kart!1665
2023-12-07 05:22:12 +00:00
Oni
6639db90f3 Merge branch 'trick-prisons' into 'master'
Trick prisons

Closes #784

See merge request KartKrew/Kart!1673
2023-12-07 05:21:57 +00:00
James R
4931f32bb8 SpawnerList::random_id: avoid division by zero in PRNG function 2023-12-06 04:06:00 -08:00
James R
b6c7a42a97 Pause menu: changing gametype goes to vote screen
- If you change it during the vote screen, voting
  restarts.
2023-12-06 00:00:54 -08:00
Eidolon
c5db728606 Immediately load 0-length sfx lumps as nullopt 2023-12-05 19:19:01 -06:00
Eidolon
98ba6c0590 Fix behavior of SpanStream/VecStream seek-from-end 2023-12-05 19:18:42 -06:00
toaster
6d0f90216c Fix bug with default background when transitioning between gametype select and Special Mode 2023-12-05 21:38:06 +00:00
toaster
60e6445fd2 Special Mode Time Attack swag to unwind
- Play O_SSTAR3
- Special darkened background
- Imagery to replace the minimap, since Special Mode maps generally don't have them as a rule
    - Sealed Stars:
        - Star Within The Seal, from the standard Evaluation
    - Versus:
        - The DeviantArt SignatuRes
- Fix messed-up transitions between Time Attack main menu and Replay, Guests, and Ghosts submenus
    - Special Mode specifically:
        - Forced unexpected wipes
    - All modes:
        - Don't slide away the minimap (or replacement imagery) when going between these menus
        - Fix music not being correctly attached
- Correctly center minimaps in Time Attack view
2023-12-05 21:23:58 +00:00
James R
8546643b0c level_nosync only temporarily resists batch operations
It's supposed to resist Music_StopAll so it doesn't get
reset when the level changes. But only do this for one
turn, so level music does not have the potential to leak
into other contexts.
2023-12-05 04:18:27 -08:00
James R
806067f48f Add Music_BatchExempt, temporarily exemplify a tune from batch operations 2023-12-05 04:15:21 -08:00
James R
4746f877c3 Tricking players tumble other players, in all gametypes 2023-12-04 20:57:11 -08:00
James R
d97fece311 S_ShowMusicCredit: use at most 3/4 screen width 2023-12-04 20:40:18 -08:00
James R
e51fa390c1 Obj_BeginEmeraldOrbit: set emerald punt_ref to orbit target 2023-12-04 20:26:17 -08:00
James R
2277b2017e K_UpdateTripwire: set Tripwire Blaster punt_ref to player 2023-12-04 20:25:47 -08:00
James R
d80689f0d1 K_HandleFollower: set follower punt_ref to player 2023-12-04 20:25:30 -08:00
James R
7aa5b47851 P_RunOverlays: copy punted state from target 2023-12-04 20:24:25 -08:00
James R
1a78e55f4c P_DoPlayerExit: abuse K_MakeObjectReappear to vanish player if they win a Sealed Star 2023-12-04 20:22:41 -08:00
James R
be8d8178bb Add level_nosync tune, played if GTR_NOPOSITION
- Does not reset if level music does not change between
  levels
2023-12-04 20:19:55 -08:00
James R
95a0fcabd5 Music_Init: refactor some code for less duplication 2023-12-04 20:18:14 -08:00
James R
97a66a1856 srb2::music::TuneManager::insert: add optional field, to duplicate an existing tune's configuration 2023-12-04 20:17:17 -08:00
James R
f7eddffdb4 Give GTR_NOPOSITION to GT_SPECIAL 2023-12-04 20:14:00 -08:00
toaster
9d24a4cb6d Fix some oversights caused by the Goner Setup's access to various Options menus 2023-12-04 21:03:51 +00:00
toaster
94a341b629 Cheat updates
- The devmode cheat returns to title screen
- The warp cheat unlocks all hidden levels
2023-12-04 20:36:58 +00:00
toaster
85d8cfdf85 menu_t: Add bgroutine
All backgrounds are now handled by a seperate routine.
This will allow more fine handling without a ton of special cases everywhere.
Creates an absolutely nasty diff because all menu_t have been updated in one blast 🥹
For the things that DO need to draw outside of GS_MENU (M_DrawOptionsCogs, the Wrongwarp), the behaviourflag MBF_DRAWBGWHILEPLAYING has also been added.
2023-12-04 20:10:03 +00:00
toaster
792fcf2ad8 Profile edit character select: Get transition to work 2023-12-04 13:44:15 +00:00
toaster
17c0ceba23 Profile edit polish
- Rename the Name fields to "Profile ID" and "Player Tag" respectively, for clarity
- Re-order and re-align, so the given area on the Profile Card is lined up for readability
- Use the smaller version of the gamemode font, to have the screen less crammed full
2023-12-04 13:27:47 +00:00
toaster
36c3dbfc0e Goner setup polish
- Checkpoint sound for reaching a new option
- Fix header text for Video and Sound menus
- Reset password field access when menu is reset by gamedata wipe
2023-12-04 13:06:55 +00:00
James R
e1f2ed11c7 S_ShowMusicCredit: subtract indentation amount from available screen space 2023-12-03 17:06:01 -08:00
James R
eea1d76871 Lightning/Bubble/Flame Shield: add MF_NOCLIPHEIGHT 2023-12-03 16:45:17 -08:00
James R
7d998d0d91 Let player punt if tricking 2023-12-03 16:28:56 -08:00
James R
38d9875d4c Let player kill shootable objects if player can punt 2023-12-03 16:28:56 -08:00
James R
6a94d8cfa2 Do not punt Prison 2023-12-03 16:10:19 -08:00
James R
df9b4fbe12 Do not let Super Flicky target spectators 2023-12-03 15:35:41 -08:00
toaster
e91115a8fa Goner Setup: Cook 2
- More dialogue
- Restrict access to your choices based on your progress through the Goner Setup.
- Save progress through the setup to gamedata
    - Resets to beginning when Challenges is cleared
- Passwords
    - Only permit the password entry in like the first two seconds
        - Preemptively disarms potentially annoying people in stream chats
    - Make wrongwarp also quit the game on exit instead of returning to the title screen
    - Add GDQ cheats
        - `savetheanimals`
        - `savetheframes`
        - Both do practically the same thing, with slightly modified dialogue.
            - Skips all of the normal dialogue.
            - Performing a social experiment on anyone who might stream this game at a charity event. :)
2023-12-03 22:34:06 +00:00
toaster
f5566ff8c4 Typewriter::WriteText: If dialogue ends with a hyphen, cut down the time to textDone massively 2023-12-03 21:56:09 +00:00
toaster
7fba9321d1 M_HandleProfileEdit: Tidy 2023-12-03 21:51:49 +00:00
James R
5329afd23c srb2::MobjListView: call P_MobjWasRemoved directly
Avoid calling an overridden method
2023-12-03 11:47:05 -08:00
James R
02bacc9a6f Battle UFOs, Checkpoints: use srb2::MobjList instead of standard containers
- Net synced; new mechanism in p_link.cpp to automatically
  manage mobj pointers at the global scope
2023-12-03 10:44:11 -08:00
James R
43d090f699 p_saveg.c: consolidate P_RelinkPointers copy-pasted code 2023-12-03 10:44:11 -08:00
James R
39486a56d6 p_saveg.c: initialize "special" fields of mobj, if spawned from mapthing, in default state 2023-12-03 10:44:11 -08:00
James R
ca1bbfd53f objects/battle-ufo.cpp: refactor to make some use of srb2::Mobj 2023-12-03 10:44:11 -08:00
James R
ada9263374 Obj_BattleUFOThink: fix exponential scaling 2023-12-03 10:44:11 -08:00
James R
b5809b6ed2 Add srb2::MobjList, similar to std::forward_list 2023-12-03 10:44:11 -08:00
James R
aba94d205b srb2::MobjListView: support copy assignment 2023-12-03 09:53:35 -08:00
James R
a211ae73fe srb2::MobjListView: fix arrow operator 2023-12-03 09:53:08 -08:00
James R
df5d1e5fb5 srb2::MobjListView: relax constraint so basic mobj_t is allowed 2023-12-03 09:51:26 -08:00
toaster
40566274d9 Jart DM assistance
- anonymous namespace for filescope variables, funcs
- Step away from std::optional, use anonymous initialiser instead
2023-12-03 13:01:33 +00:00
toaster
ffb34204f5 Goner setup: cook
- Build list of incoming text
    - First pass of very first section of dialogue
- Use srb2::Dialogue::Typewriter class to handle ticking through dialogue
- Store history log as incoming text is processed (possible todo: scrolling?)
2023-12-02 23:40:02 +00:00
toaster
1cf14f29dc k_dialogue: Seperate srb2::Dialogue::Typewriter out from srb2::Dialogue
This is the minimal subset of properties useful for various non-popup Dialoglogs, such as the impending Goner Setup.
2023-12-02 16:50:42 +00:00