Commit graph

25186 commits

Author SHA1 Message Date
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
toaster
299e0c3b71 main-goner.cpp: convert from C sourcefile
Also fixes sleepily-commited compilation-breaking typo
2023-12-02 15:40:20 +00:00
toaster
df85b5d625 First pass horizontal menu for Goner Setup 2023-12-01 22:50:03 +00:00
toaster
30383ba82f Replace a whole bunch of copypasted boilerplate with direct call to Command_ExitGame_f
Fixes not going back to the Title Screen at the cusp of the game's true beginning.
Also generally cleaner code
2023-12-01 17:03:37 +00:00
toaster
d0117bc222 Bottom-mounted Dialogue
Makes the drawer more complicated, but the benefit for most circumstances is significant.
In non-splitscreen contexts, pushes V_SLIDEIN|V_SNAPTOBOTTOM HUD elements upwards when the Dialogue is open.
2023-12-01 16:44:11 +00:00
toaster
00fdae8b52 srb2::Draw::Chain: Make the button function name different between public and private contexts
The author of this commit's compiler was overzealous and kept on matching the wrong one
2023-12-01 15:56:08 +00:00
toaster
b2315484d4 Tutorial gametype: No sidebar or timer 2023-11-30 23:35:16 +00:00
toaster
f01e3bce9b CallFunc_DialogueSetCustomSpeaker: Support empty string 2023-11-30 17:54:51 +00:00
toaster
426e9001a5 Dualogue::Draw -- split into multiple segment patches
- Changes the length of dark colour underneath the speaker's name
- Optionally hides the speaker's face if no portrait is provided
- Frosted glass background when player has control
2023-11-30 17:53:26 +00:00
toaster
42f37e7ded Small improvements to Dialogue internals
- Guarantee not-visible dialogue on map transition/invalidation
- Don't grab a portrait for skins that don't have portraits
2023-11-30 15:03:48 +00:00
Oni
4588943352 Merge branch 'hardcode-lavender-shrine' into 'master'
Hardcode Lavender Shrine wall spears and classic lanterns; fix linked draw renderhitbox

See merge request KartKrew/Kart!1666
2023-11-30 05:47:50 +00:00
toaster
4c284680ff Without access to the full game, trying to back out of the Goner Setup/Tutorial will give you a quit prompt instead 2023-11-30 00:11:37 +00:00
Oni
675e4a17f4 Merge branch 'fix-mold-link' into 'master'
Fix debug symbol stripping if -fuse-ld=mold

See merge request KartKrew/Kart!1668
2023-11-29 22:39:15 +00:00
Oni
fcc773f660 Merge branch 'alt-music-reroll' into 'master'
Restart the level to cycle through alt music (no RNG)

See merge request KartKrew/Kart!1664
2023-11-29 22:38:23 +00:00
Oni
6abb335516 Merge branch 'resolution-performance-warning' into 'master'
Warn users about resolution performance impact

See merge request KartKrew/Kart!1669
2023-11-29 22:38:06 +00:00
AJ Martinez
3eab93bd50 Warn users about resolution performance impact 2023-11-29 15:37:14 -07:00
Sal
06d08617bc Merge branch 'lua-first-freeslot' into 'master'
Lua: add S_FIRSTFREESLOT, MT_FIRSTFREESLOT, SPR_FIRSTFREESLOT

See merge request KartKrew/Kart!1667
2023-11-29 20:07:54 +00:00
toaster
0f687be7b5 The Goner Setup
The simplest passable version of the first boot experience.
- The minimal set of options you will want are available right in front of you.
    - Quit
    - Password
    - Video Options
    - Sound Options
    - Profile Setup
    - Begin Tutorial
- Will not start any menujams while this is in progress.
2023-11-29 19:37:05 +00:00
toaster
fd0466a8df M_OptionsTick: Instant transmission
If a menu fade has occurred, perform the relevant offsetting imemdiately, no smooth animation.
2023-11-29 19:36:17 +00:00
James R
b7a118a1b7 Fix debug symbol stripping if -fuse-ld=mold 2023-11-29 11:26:02 -08:00
toaster
cff207e7aa Don't update menujam before game has truly started 2023-11-29 19:03:11 +00:00
toaster
ada8b362f1 M_LevelListFromGametype: Auto-select the first Tutorial Mode course if there's only one available 2023-11-29 18:58:33 +00:00
toaster
d41188ded3 Permit re-entering the Tutorial Challenge if the full game is accessible to you 2023-11-29 18:51:52 +00:00
James R
872d3b96e9 Lua: add S_FIRSTFREESLOT, MT_FIRSTFREESLOT, SPR_FIRSTFREESLOT
Helps Lua exporter
2023-11-28 21:57:19 -08:00
toaster
050bf43a87 New intro: Fix other aspect ratio border around STARTUP 2023-11-28 20:43:41 +00:00
James R
3386b1a37c Hardcode Lavender Shrine Classic spears 2023-11-28 07:18:37 -08:00
James R
4b085e3d7b Add Lavender Shrine Classic states
Spears and lanterns
2023-11-28 07:18:36 -08:00
James R
f43094f795 R_ProjectBoundingBox: do not use linkdraw for renderhitbox
Hitbox was not rendering for linkdraw sprites. Don't know
why, but removing this doesn't seem to introduce any
regressions!
2023-11-28 06:33:47 -08:00
James R
7f95e8f0da srb2::Mobj: add linkdraw methods 2023-11-28 06:32:52 -08:00
SteelT
ca2d64d769 Merge branch 'hardcode-crates' into 'master'
Hardcode SA2 Crates and Ice Cap Blocks (BIG performance: Mega Ice Cap, Frigid Cove)

See merge request KartKrew/Kart!1663
2023-11-28 05:24:08 +00:00
James R
ad5baa2636 Crates: update without changing Z
If crates are inside of each other, Z must remain
unchanged, else it causes a teleport (floorz).
2023-11-27 19:44:07 -08:00
toaster
3c19c80842 Intro changes
Multi-stage swagscreens.

Also fixes some issues with using playintro under New Menu conditions
2023-11-28 00:51:34 +00:00
toaster
fcb696d1ad First pass at the "Game Truly Starting" apparatus
- Unlock Ring Cup to get the real Title Screen, demos and all.
- Allows M_InterruptMenuWithChallenges.
2023-11-27 23:52:14 +00:00
AJ Martinez
5575a049b1 Don't do scale-to-scale collision checks vs static hazards 2023-11-27 12:41:45 -07:00
James R
5013144344 P_ResetLevelMusic: cycle through alt music (no RNG) if restarting the level 2023-11-27 06:28:29 -08:00