Commit graph

314 commits

Author SHA1 Message Date
toaster
830cfe76da Round Queue UI on Level Select
- Only works in Match Race and Online level selects
- Shows in-progress state on Pause and Cup Grid, but no direct influence available on those screens
- Z to queue current highlighted map
    - Pending until you press A, then sent to server
    - When done online, tries to send one at a time to avoid overloading connection
- C to clear
    - Removes one from pending first
    - If you're out of pending maps, prompts whether you want to clear server's queue
2025-06-01 00:25:20 +01: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
toaster
ecb4ffeeca Add bonus pickups in conditions you couldn't grab Spray Cans before
- If you've gotten every Spray Can, or you're on a custom course...
- Only one of these spawns per map
- Correctly save and load these
- Statistics menu counts base-game bonuses
- If there are gaps in the list, or new Spray Cans are added later, these base-game bonuses are converted into the new Spray Cans
- New graphics required so far:
    - SBONA0 to SBONP0 - 16-frame prerendered circling sprite animation
    - GOTBON - 8x8 representation of the SBON object
2025-05-20 20:27:06 +01:00
AJ Martinez
90c28dc2d9 Spindash button, Strict Fastfall profile option 2025-05-05 20:36:00 -04: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
Eidolon
22b20b5877 Add netgame voice chat
Implemented using libopus for the Opus codec, same as is used in Discord.
This adds the following cvars:

- `voice_chat` On/Off, triggers self-deafen state on server via weaponprefs
- `voice_mode` Activity/PTT
- `voice_selfmute` On/Off, triggers self-mute state on server via weaponprefs
- `voice_inputamp` -30 to 30, scales input by value in decibels
- `voice_activationthreshold` -30 to 0, if any peak in a frame is higher, activates voice
- `voice_loopback` On/Off, plays back local transcoded voice
- `voice_proximity` On/Off, enables proximity effects for server
- `voice_distanceattenuation_distance` distance in fracunits to scale voice volume over
- `voice_distanceattenuation_factor` distance in logarithmic factor to scale voice volume by distance to. e.g. 0.5 for "half as loud" at or above max distance
- `voice_stereopanning_factor` at 1.0, player voices are panned to left or right speaker, scaling to no effect at 0.0
- `voice_concurrentattenuation_factor` the logarithmic factor to attenuate player voices with concurrent speakers
- `voice_concurrentattenuation_min` the minimum concurrent speakers before global concurrent speaker attenuation
- `voice_concurrentattenuation_max` the maximum concurrent speakers for full global concurrent speaker attenuation
- `voice_servermute` whether voice chat is enabled on this server. visible from MS via bitflag
- `voicevolume` local volume of all voice playback

A Voice Options menu is added with a subset of these options, and Server Options has server mute.
2024-12-13 17:12:14 -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
80912b173c Descriptiveinput in profiles, various 6bt. modes 2024-09-27 03:28:40 -07:00
Sal
653766010d FRIENDCODE (aka, Teamplay) 2024-09-17 01:41:26 +00:00
toaster
3390cb5121 Move Challenges to second entry of Extras menu
Addons, Challenges, and Online Manual are the three primary visible entries now
2024-05-21 00:56:53 +01:00
AJ Martinez
2679e0eae0 Add Online Manual and I_OpenURL stuff 2024-05-18 21:09:00 -07:00
Ashnal
71cc9c0800 Auto-Ring Accessibility Option
Lacking animation at this commit
2024-05-05 01:18:22 -07:00
toaster
a2f57032ae Funny magician stat block rave for Engine Class drawer 2024-04-15 01:38:06 +01:00
Oni
81644692d0 Merge branch 'more-gameplay-option-restrictions' into 'master'
More gameplay option restrictions

See merge request KartKrew/Kart!2269
2024-04-12 03:40:29 +00:00
Sal
7ea0d5e314 Merge branch 'profile-naming-improvement' into 'master'
Improve profile naming

See merge request KartKrew/Kart!2265
2024-04-11 21:57:23 +00:00
toaster
07b945be29 Fix desynced popt_e order 2024-04-11 21:10:14 +01:00
toaster
9cb6ae647c Numlaps is a cheat, remove from gameplay options per discussion 2024-04-11 20:29:45 +01:00
James R
88ac62241f Menus/Video/Advanced: hide Legacy GL options in Software mode 2024-04-10 05:52:29 -07:00
toaster
1034dd7ec9 Grand Prix course preview adjustment: Show Prison Break stages too, just like on Challenges Board preview
- All gametypes will be shown in the drawer, as opposed to just Race
- However, don't attempt to add the preview pic for CUPCACHE_SPECIAL (the Sealed Star)
2024-04-09 17:47:30 +01:00
toaster
1f6038be65 Add "Time Tracked" page to Statistics
Ugly but releasable
2024-04-06 22:19:51 +01:00
toaster
b8c67dcc9e Copyright update: Recieved notice of legal name change
(which is formal speak for I got back in contact with an old friend :D )
2024-04-03 20:44:19 +01:00
toaster
224deed01d More copyright updates
- TehRealSalt and Lat` are currently preoccupied, so handle their credits
- Correct some accidential copypastes of existing boilerplate into new files
- Add a handful more of mine
- Consistency for Kaito Sinclaire's online handle
2024-04-02 22:14:49 +01:00
toaster
31288a6f21 Introduce a variant of M_DrawEggaChannel aligned to center or left depending on parameter 2024-03-29 22:04:17 +00:00
toaster
a3776762ad DF_ENCORE: Warn about double #definition (aaah??)
This was right next to something I needed to modify and I don't want someone to be hurt by it later
2024-03-29 22:04:17 +00:00
toaster
5971b4af04 Follower Horn cvar on Sounds Options
- Visible if any Followers unlocked OR Online mode is unlocked
- Also, re-organise the menu to put the user preferences into another dropdownable box
2024-03-29 22:04:16 +00:00
toaster
6f67984e27 Add "Track 10" to the Message from the Stars
Stays with you after you leave the Challenges screen.

Also remove the duplicate-effort attempt-to-pre-optimise considersealedswapalert that only considered SECRET_SPECIALATTACK - it should also report here under other unlockable progressions, if relevant.
2024-03-26 21:41:55 +00:00
James R
d3034bba54 Menus/Sound Options: add Continuous Attack Music option
- On by default (current behavior)
- Off
  - Restart music in Attack modes
  - Also plays POSITION music
2024-03-13 22:43:35 -07:00
Oni
b943d8d088 Merge branch 'addon-settings' into 'master'
Addon Options from pause menu

Closes #1153

See merge request KartKrew/Kart!2096
2024-03-14 01:32:49 +00:00
AJ Martinez
ee72a4c7db WIP: Addon Options from pause menu 2024-03-11 20:59:14 -07:00
James R
92261733f4 Replays: add Director toggle
- Very basic, no feedback other than the viewpoint
  changing
- Uses Shutterbug unlock graphic
2024-03-11 07:10:34 -07:00
James R
1e578a1779 Menus/Options: reorganize and rename
- Tried to make verbiage consistent in tooltips
- Move advanced video options into submenu
- Remove console chat option
- Move some really technical options from Data to submenu
2024-03-07 16:11:11 -08:00
James R
bc9c778bb5 Menus/Video Options: fix "Set Resolution..." submenu not having the arrow 2024-03-07 15:26:59 -08:00
Oni
bf8e2a5443 Merge branch 'fix-virtual-keyboard-shift' into 'master'
Rewrite virtual keyboard gamepad-keyboard switching to be responsive

Closes #1115 and #1079

See merge request KartKrew/Kart!2023
2024-03-06 02:37:26 +00:00
James R
179597e70d Menus/Online: light redesign
- Mostly hijacks the gamemode menu format (Local Play)
- Host
  - Select gametype (Race, Battle)
  - Shortcuts to Gameplay Options and Server Options
  - Select map
- Browser
  - Unchanged
- Direct Join
  - Press A to enter an IP address
  - Press C to reconnect to the last joined server
  - Left/right cycles through the server history
2024-03-05 17:26:46 -08:00
James R
bea1cccdde Virtual Keyboard: rewrite keyboard-gamepad switching
- Input handling is done straight in G_MapEventsToControls
- If a keyboard event is received, switch off virtual
  keyboard
  - Removed the input lock while virtual keyboard is
    sliding away
- If a gamepad event is received, and it is a change of at
  least half the full range, switch on virtual keyboard
2024-03-05 17:03:05 -08:00
James R
df2e4f57fd Menus/Accessibility: add FOV option, 70 to 110
Adds FOV to profiles json
2024-03-04 22:11:35 -08:00
James R
8c76dee523 Virtual Keyboard: dynamically allocate cache; allow full size of replay title buffer 2024-03-03 06:31:06 -08:00
James R
7d01c3046b M_OpenVirtualKeyboard: add optional dummymenu argument
- Virtual Keyboard can switch to a temporary menu while
  typing
  - It will switch back to the previous menu after it's
    closed
- This functionality can be used even if the menu isn't
  already open
  - It will close the menu and return to gameplay when the
    Virtual Keyboard is closed
2024-03-03 06:30:52 -08:00
James R
f270ac5579 Virtual Keyboard: use callback function to get/set cvar string 2024-03-03 06:30:37 -08:00
toaster
e8523b69f0 Sealed Star re-ordering (resolves #606)
- If emerald not yet collected on that cup, pick the first uncollected emerald, then get the cup's CUPCACHE_SPECIAL with that ID to pick the stage
- Already collected emeralds retain their swappage across gamedata saves
- Returns to normal order if you get all 7 OR Special Mode is unlocked (chao key? debug? password in modded games? sky's the limit)
- Pops up a Message from the Stars telling you the gems have been returned to their natural place
- Add-ons will always use their dedicated sealed star, since it's unordered material

If it weren't so last minute I could have a better solution for GP Backups, but right now what I've gone for is it always trusts whatever G_GPCupIntoRoundQueue does AS LONG AS THE COURSE ISN'T THE ONE YOU'RE RELOADING INTO. If it IS, then it checks to see if it's exactly what's been saved, and complains (with the generic error message, unfortunately) if it isn't.
2024-03-03 00:24:31 +00:00
toaster
038016252a The pause menu Spectator toggle now supports splitscreen again (resolves #981) 2024-02-28 20:05:11 +00:00
Oni
9491c54e9d Merge branch 'separate-spb-attack-records' into 'master'
Separate/Encoreize SPB Attack records from normal Time Attack records

Closes #836

See merge request KartKrew/Kart!1875
2024-02-23 06:44:38 +00:00
James R
ae5a20756e Menus/Controls: overhaul multiple bindings input
- Replace the old method of adding each binding one at
  a time
- Hold up to 4 inputs at once, then release to bind those
  inputs to the control
- Changing the bindings overwrites the old bindings,
  instead of adding to them
2024-02-22 02:40:40 -08:00
James R
9523fd8652 Menus/Controls: add Bind Ben
- Hold right to scroll binding text into Bind Ben
  - Release right to cancel
  - When the text is done scrolling, Bind Ben begins
    chewing
    - Release right to have Bind Ben swallow
      - After Bind Ben swallows the binding text, he does
        a cute pose and the control is cleared
    - Press up or down to skip the swallow and pose
      animations and clear the control immediately
- Press C to have Bind Ben quickly eat the binding text
  and clear the control
2024-02-22 02:40:40 -08:00
James R
d2f48eda29 Menus/Controls: RESET TO DEFAULT and CLEAR ALL buttons 2024-02-22 02:40:40 -08:00
toaster
b70e59755f Tie SPB Attack and Encore together
- A method to access Encore in Time Attack
    - so we have SOME Encore singleplayer content on launch
- Also available for Versus mode (in Special Attack)
    - Finally, Encore rematches have a way to access them!
    - Obviously will not spawn a chasing SPB, it's just a signal for "hard mode"
- Relevant gametype + unlock checks have been abstracted into M_EncoreAttackTogglePermitted
2024-02-17 23:11:58 +00:00
James R
09b90c3cf1 Replays: add netdemo_size cvar, add to Data Options
Controls size of replay buffer when recording
2024-01-29 02:18:46 -08:00
James R
50781ded69 Menus/Replay: correctly adjust position of quit button in Time Attack 2024-01-28 17:56:35 -08:00