Commit graph

557 commits

Author SHA1 Message Date
Eidolon
0dc337c9a5 Fix lots of code for clang-cl compatibility 2025-09-17 17:24:32 -05:00
VelocitOni
25341b5be1 RC2 text
BETAVERSION RC1 -> RC2 & Text is slightly less opaque
2025-09-14 20:04:18 -04:00
Antonio Martinez
ffe55a267f Stamp RC versions during gameplay 2025-09-10 15:56:44 -04:00
toaster
73c381750a Instead of trying to carve out an exception for the brief window of time after winning but before director begins, just remove the <x> input for starting demo title entry 2025-08-28 19:30:48 +01:00
toaster
ae21a8266d Disable Demo title entry inputs in GS_LEVEL freecam
Also disables <x> input when Director is enabled
2025-08-28 15:51:25 +01:00
toaster
1c6ca63933 K_DrawGameControl: Use _FONT enums instead of fragile laundered magic numbers
Fixes the Genesis font breaking all Menu font'd control visuals
2025-08-13 18:05:23 +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
toaster
71e1179030 M_MenuToLevelPreamble: Seriously clean up the process of starting a course from the menu
A lot of messy, copypasted boilerplate has been bundled together into a single function.
Programmers can now fire up a Match Race, the most basic type of gameplay, from menu code in only four steps (other modes take a little more attention):
- **M_MenuToLevelPreamble(UINT8 - splitscreen players #, boolean - false to extend wipe/true for short wipe)**
- set restoremenu
- D_MapChange(...)
- M_ClearMenus(...)
Includes the following fixes:
- Encore no longer has over-long wipes when started from menu, only standard-length
- "Boss Intro" and Encore start-of-round sounds will always play, even if no Title Card is drawn
- No long wipe when restarting a Time Attack run
- Auto Encore and Auto Gamespeed are no longer accidentially forced if you've manually changed them to Off and Gear 2 before starting netgame
2025-06-01 00:05:45 +01:00
toaster
e4907227fc New simpler rewind code + re-enable in UI
- Built off g_fast_forward to utilise a lot of existing structure
- Only does steps of 5 seconds and therefore isn't precise, but that's better than having to rewatch/fastforward through the entire thing
- No single frame step back or general in-motion rewind preview, but that was all overkill
2025-06-01 00:02:19 +01: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
Oni
71588f490f Merge branch 'queue-skin' into 'master'
Queued skin/color changes

See merge request KartKrew/Kart!2452
2024-09-28 17:46:42 +00:00
Antonio Martinez
555e4eaa4c Final raw button literal fixups?! 2024-09-27 04:44:59 -07:00
Sal
653766010d FRIENDCODE (aka, Teamplay) 2024-09-17 01:41:26 +00:00
Sally Coolatta
b3dcfa248a Merge remote-tracking branch 'public-new/master' 2024-08-28 18:11:53 -04:00
Sally Coolatta
113146d208 Disallow palette flashes with reducevfx
Resolves #214
2024-08-09 22:46:40 -04:00
Sally Coolatta
75ab9d6e0a Display pitch in basic devmode when using freecam 2024-07-26 22:39:14 -04:00
toaster
7390ee5442 G_SaveDemo: Resolve memory errors that could result in crashes
- Empty `demo.titlename` case
    - Don't try to save demo of name `.lmp`
    - Doesn't fall back to anything, because emptying out the name field can be reasonably treated as not wanting to save
- `demo.titlename` consists only of invalid characters
    - Don't try to save demo of name `-.lmp`
    - Falls back to the default demo title, because the user clearly wanted to save and just happened to provide invalid text
2024-05-01 19:54:09 +01:00
toaster
db73636f5e Fix attract title logo slidein (resolves #1273)
- V_SLIDEIN: For (G_IsTitleCardAvailable == false)/(versus at map start == true) contexts, use timeinmap instead of leveltime
- Don't reset timeinmap when reloading gamestate, so it's more functionally equivalent to lt_ticker
These two changes also fix the hypothetical issue of titlecard-less custom gametypes having weird HUD state on late netgame join.

Timeinmap is exclusively used for HUD, as is st_fadein. timeinmap also doesn't increment under g_fastforward, therefore the best candidate to tie together
2024-04-14 20:59:50 +01:00
James R
bb5297c780 Fix wrong button on Save Replay prompt
- Y -> X
2024-04-08 23:24:15 -07:00
toaster
7f6de407f1 Copyright update: Add Kart Krew (2024) in general for high-traffic inherited sourcefiles 2024-04-02 17:42:38 +01:00
AJ Martinez
070525f711 Always show delay (remove cv_showping) 2024-03-22 19:11:04 -07:00
James R
2cb62c8663 devmode replay: show demo format version 2024-03-19 01:12:59 -07:00
James R
2945f41f13 Don't let Tab key hide player name in Time Attack replays 2024-03-17 04:56:21 -07:00
James R
0e7b4c0987 HUD: 4P viewpoint text in bottom corners 2024-03-14 06:26:16 -07:00
James R
a7ca3c1768 HUD: switch viewpoint text to thin font if it becomes too wide
- 200 px limit in Race (GTR_CIRCUIT)
- 100 px limit in Battle (GTR_BUMPERS)
2024-03-14 06:23:27 -07:00
James R
fa64052cb3 HUD: fix spacing on some button prompts 2024-03-11 23:32:12 -07:00
Sally Coolatta
9b93f56111 Add pre-Podium intermission music 2024-03-10 14:08:59 -04:00
James R
2d39617014 HUD: redesign VIEWPOINT text
- 1P
  - "-Watching-" in thin font
  - Player name in free play font
- 2P
  - Player name in free play font, transparent
- 4P
  - Unchanged (player name in thin font, transparent)
2024-03-07 11:24:01 -08:00
James R
38e1ae1c53 Replays: let name be changed any time until the file is saved 2024-03-03 06:30:54 -08:00
James R
983fb4c53c Replays: merge HUD and intermission drawing functions for "Save replay" prompt 2024-03-03 06:30:54 -08:00
James R
8fa01ee558 Replays: use Virtual Keyboard for title entry
- This shortens the maximum title length from 64 to 31
  characters
2024-03-03 06:30:54 -08:00
James R
fb9f4a68b9 Server splash: display server name in medium font 2024-02-09 18:13:35 -08:00
James R
6e6b2b704a Fix "Save replay" text not appearing at end of map
- Remove V_HUDTRANS (Tally makes it fully transparent)
- Embed button codes instead of drawing them separately (fixes minor alignment issues)
- Fade in over 1 second (visual flair)
2024-02-02 05:16:07 -08:00
James R
a879975e83 devmode DEMO: replay buffer usage displayed in real-time on the HUD
- Buffer usage in megabytes, bytes and percentage
- Approximate usage per second
- Estimated time until buffer runs out and replay is stopped
2024-01-29 02:20:26 -08:00
Sal
3958c15dfe New Credits 2024-01-28 23:31:30 +00:00
toaster
b09a9b40c4 Account for Hidden Palace-like replacement levels in the round queue and ranking systems
- When a nextmapoverride is in play, do not insert the just-played map into the GP Rank
- Put all the behaviour that determines which Round icon to show in exactly one places

Also, fix a bug where it would show the skin realname for a spectating player's tally instead of the ROUND text.
2023-11-19 18:01:02 +00:00
toaster
a55803b690 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into other-progression 2023-11-18 18:00:05 +00:00
James R
7d7110ead7 Let devmode work in replays, let teleport commands work in replay freecam 2023-11-16 18:45:04 -08:00
toaster
f6214fd8e9 Tutorial dialogue: Synergy wth titlecard
- Draw in front of the titlecard
- Don't tick while levelloading and not leveltime, so prevent instantly appearing
2023-11-13 21:34:26 +00:00
toaster
e060e9dadc More consistent handling of special event round icons
- Gametypes have "GPpic" and "GPpicMini" parameters
- These are shown in contexts where a Round Number would be shown in GP, but an eventmode is under way.
- Instead of having different rules to show up on the pause menu, titlecard, and tally/intermission...
    - Pause Menu Roundqueue, Tally, and Intermission have all been aligned to the same rules.
    - As long as the titlecard is standard, it will show the GP Pic per those rules. (GTR_SPECIALSTART and GTR_BOSS still have their unique behaviour here)
2023-10-25 20:34:40 +01:00
toaster
b87f57440c Versus warning: Revert usage of V_REVERSESUBTRACT to V_SUBTRACT 2023-10-25 11:24:51 +01:00
toaster
5f10f4de0f Versus Mode intro: Two different warning patches scrolling opposite directions
Also repairs capitalisation on the opponent's subtitle, and moves everything down very slightly.
2023-10-24 23:10:17 +01:00
James R
ecc324e4d8 HUD: fix server splash alignment in non-green resolutions 2023-10-17 19:18:00 -07:00
James R
1f3a9a4758 Splitscreen Director HUD; replace freecam HUD 2023-10-09 18:53:55 -07:00
James R
fa89576f34 Move freecam state to camera_t, lets splitscreen players use freecam independently of each other 2023-10-08 14:26:21 -07:00
James R.
454850d349 ST_CalculateFadeIn: do not interpolate at very beginning or end of fade 2023-10-03 21:28:34 -07:00
James R.
7b3010c93d Fix many instances of splitscreen view number if there are duplicate displayplayers
- Avoid iterating displayplayers to find view number and
  prefer R_GetViewNumber.
- Iterate over all matching displayplayers if necessary,
  instead of stopping at the first match.
2023-10-03 21:28:33 -07:00
James R.
3cdfa86b11 Make timing of level fade-in consistent, relative to title card 2023-09-12 05:19:27 -07:00