Commit graph

34 commits

Author SHA1 Message Date
toaster
931c34da83 Don't fade for dialogue in Boss contexts
This was a tactical normie countermeasure for Tutorials, modded bosses are cool and for people deep in the paint
2025-09-12 17:38:34 +01:00
toaster
2143fc6662 Dialogue UI: Tactical Normie Countermeasure
Fade and overlay with Genesis font depending on context
2025-08-13 15:40:16 +01:00
Eidolon
892a6b8620 Merge public master 2025-08-12 16:49:14 -05:00
Eidolon
255570cfca Dynamically allocate skins
This avoids an issue where the skins array takes up a fixed, but large
amount of memory at runtime. On x86_64 linux, that array is roughly 80
megabytes in memory, most of which is unused when the game is unmodded.
Instead, we treat `skins` as a dynamically resizing array, and it is an
array-of-pointers into separate allocated `skin_t`.

This is based on Lactozilla's skin limit MR for SRB2, but I've rewritten
it because RR has diverged quite a bit.

This was verified to check every access of `skins` by using clangd's
find-all-references function. However, I have only tested plain skins,
not Lua addons, so that could afford some extra checking.
2025-08-12 15:33:00 -05:00
Eidolon
bd7646346b Use new containers and json 2025-03-16 18:45:11 -05:00
Eidolon
cb7f437e60 Merge public master 2025-02-13 15:48:11 -06:00
Eidolon
a4d304a1f5 Update copyright years to 2025 2025-02-13 15:32:26 -06:00
Antonio Martinez
89036e07eb big ol fucking fuck 2024-09-27 03:29:07 -07:00
Antonio Martinez
88bd460cde Fix midvote wrong coords (resolves mystery keyboard patch in tutorial) 2024-09-27 03:28:39 -07:00
Antonio Martinez
7573c7dac9 idk 2024-09-27 03:28:38 -07:00
Antonio Martinez
1d7aa0ee18 Inline dialogue advance prompt 2024-09-27 03:28:38 -07:00
Antonio Martinez
9a669ff864 scratchass big buttons 2024-09-27 03:28:38 -07:00
bitten2up
cfacbd91be Fix implicit casts of int expecting 4-byte width
This fixes the issue with certain compilers that have int set to
different sizes by either explicitly casting or setting templates
manually
2024-05-03 17:53:53 +00:00
Sally Coolatta
7dfa597c7d SRB2 -> DRRR copyright in src, acs, android folder
Be consistent with toaster's recent changes to copyright
2024-04-05 02:08:23 -04:00
James R
3931c00cd7 Dialogue: cache common patches instead of doing name lookup every frame 2024-04-03 05:27:17 -07:00
toaster
5d8a86ca55 Dialogue dark mode: Speaker highlight update 2024-03-17 16:47:02 +00:00
toaster
97dfe7a010 Fix speakernamewidthoffset hack to avoid over-spacing Tails' name in menu font 2024-03-17 16:47:02 +00:00
toaster
f89124d7e1 Dialogue box: Dark mode
Legitimately curious if light mode will become an exe mod, AND if whoever does that treats it like a joke or seriously
2024-03-17 16:47:02 +00:00
toaster
969611753e Dialogue update (code side)
- Use menu font for speaker's name
- Make the Z input in the top left of the box animate if the dialogue can be closed/go to the next page
- Exempt certain sigils from punctuation delay that look awkward ( + and " )
2024-03-17 16:47:02 +00:00
James R
ae04a9be27 srb2::Dialogue::NewText: use string parsing 2024-01-16 06:34:58 -08:00
James R
cef3b6d841 srb2::Dialogue::NewText: free word-wrapped string 2024-01-16 06:31:56 -08:00
toaster
cdb2b44aa6 ACS-Dialogue interface: New threads with dialogue auto-skip previous threads with dialogue
If some dialogue needs to be never-missable, that's the mapper's responsibility - but now they won't get randomly interleaved if multiple are activated just by regular free driving, which was the worst kind of default
2023-12-10 16:10:45 +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
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
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
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
toaster
8326a2d588 Dialogue::WriteText improvements
- Only have a long delay between symbols if the current character is std::ispunct() and the NEXT character is std::isspace
- Add native color code support
    - Requires string concatenation to actually use it, though, which I don't know how to do in ACS
2023-09-13 17:53:07 +01:00
Sally Coolatta
e30ff926d8 Default voice to sfx_ktalk
Someone just needs to put an actual sound for it in sounds.pk3
2023-08-25 13:15:50 -04:00
Sally Coolatta
71e068a8b6 Display Z button 2023-08-25 08:16:16 -04:00
Sally Coolatta
764010b3ab Implement talk sounds
We're in Undertale
2023-08-25 07:53:09 -04:00
Sally Coolatta
3009f1c106 Small dialogue polish
- Slide in from top
- Fix chaining multiple dialogues with the same speaker not working
- Unset when changing level
- Sped up punctuation pause a bit
2023-08-25 06:50:12 -04:00
Sally Coolatta
16e6aa423e Dialogue 2 2023-08-24 17:28:53 -04:00