Commit graph

21785 commits

Author SHA1 Message Date
James R
ec8e81ddb6 Always HUD track players in Duel mode 2023-02-24 23:21:47 -08:00
James R
e6da831e36 HUD target player with most points
- Replace battlewanted global with g_hiscore, keeps track
  of the current highest number of points.
- Adds HUD tracking for player(s) with the hiscore.
- Should target both players in a tie.
2023-02-24 23:21:47 -08:00
James R
9147a17bf3 Battle: change rankings priority
Highest to lowest:

1. points
2. emeralds
3. bumpers
2023-02-24 23:21:47 -08:00
James R
deac3a373f Battle: replace Karma Bomb with death
- Lose 2 points when you die.
- Respawn with 3 bumpers.
2023-02-24 23:21:47 -08:00
James R
87a6743c0f Battle: replace bumper elimination win condition with points cap
- Points cap is 3 * player count. E.g. for 3 players, the
  cap is 9 points.
- Once a player gets enough points, they win!
2023-02-24 23:21:47 -08:00
James R
8ba2155d89 Refactor timelimit and pointlimit to use "Default" option
- "Default" automatically updates the time/point limit
  according to the rules of the gametype.
- This fixes the bug where if you set timelimit at all,
  the default 2 minute limit will never be set again for
  Battle mode.
2023-02-24 23:19:07 -08:00
Oni
dba41a6de8 Merge branch 'avrecorder' into 'master'
WebM Encoder

See merge request KartKrew/Kart!908
2023-02-25 05:59:52 +00:00
Oni
8db6c02950 Merge branch 'avrecorder-libs' into 'master'
Add libwebm, libvpx, libyuv, libvorbis dependencies

See merge request KartKrew/Kart!906
2023-02-25 05:58:24 +00:00
AJ Martinez
e2cc6abacc Merge remote-tracking branch 'origin/master' into local-camera-fudge 2023-02-24 22:36:06 -07:00
Oni
e1fd7bce99 Merge branch 'challenges-continued' into 'master'
Updated Challenges Menu

See merge request KartKrew/Kart!971
2023-02-25 04:37:02 +00:00
AJ Martinez
c17f5c22ff Suspend local camera during DRIFTEND kickout 2023-02-24 21:16:53 -07:00
AJ Martinez
e3e567f303 Don't use localangle aim for bots 2023-02-24 20:38:36 -07:00
James R
cea8a10007 media: fix incorrect usage of SRB2_ASSERT on functions with side effects 2023-02-24 19:21:01 -08:00
James R
bf8d90af8c Don't use C++20 designated initializer (since we target C++17)
growl
2023-02-24 19:21:01 -08:00
James R
aefc12e40e media/options: refactor cvar factory completely, ensure correct MIN/MAX order 2023-02-24 19:21:01 -08:00
James R
02fe7ec744 media: fix undefined behavior with options initialization order
Cvar vector was not guaranteed to initialize before
options for each encoder, potentially leading to no
encoder cvars being registered.
2023-02-24 19:21:01 -08:00
James R
860693936f media/avrecorder: bias size limit by 1% to account for muxing overhead 2023-02-24 19:21:01 -08:00
James R
304e57cbf0 Add user feedback for AVRecorder
- real time monitoring of duration and esimated file size
- estimated frame rate of final video (encoder speed)
- print brief details of audio and video tracks upon
  starting recording
- print exact file size and duration once recording is
  finished
2023-02-24 19:21:01 -08:00
James R
840c11577e Implement Software mode paletted screen conversion for AVRecorder
This is only necessary since HWR2's framebuffer is window
size (monitor resolution in fullscreen mode).

Once the framebuffer is changed to be native game
resolution, this commit should be reverted and a new
interface should be implemented to directly copy the
framebuffer's pixels into video frames.
2023-02-24 19:21:01 -08:00
James R
fa0071e785 sdl/new_sound.cpp: record audio with AVRecorder 2023-02-24 19:21:01 -08:00
James R
c65f4ff893 Add AVRecorder movie mode 2023-02-24 19:21:01 -08:00
James R
79b1a8fd63 Add C game interface to construct and destroy global AVRecorder instance 2023-02-24 19:21:00 -08:00
James R
82251f6fb6 media: add core AVRecorder
Generic interface to audio and video encoders.
2023-02-24 19:21:00 -08:00
James R
654f97fa72 media: add WebM Vorbis and VP8 encoders 2023-02-24 19:21:00 -08:00
James R
60899133c1 media: add libwebm container 2023-02-24 19:21:00 -08:00
James R
b8015b4ad2 media: add libvpx VP8 encoder 2023-02-24 19:21:00 -08:00
James R
1415254131 media: add YUV420p module
Converts RGBA image to YUV420p, useful for most video
codecs.
2023-02-24 19:21:00 -08:00
James R
650264ea86 media: add libvorbis encoder 2023-02-24 19:21:00 -08:00
James R
e9f5a75d4a media: add "options" cvar abstraction 2023-02-24 19:21:00 -08:00
James R
3b5245f974 Add basic multimedia container and encoder interfaces
Adds the media subdirectory.
2023-02-24 19:21:00 -08:00
James R
8ee785bb7e cpm-ogg.cmake: fix libvorbis cross-build
Vorbis couldn't find ogg so tell it explicitly where it
is.
2023-02-24 19:20:43 -08:00
James R
61198a46e7 Add libvorbis (and ogg) dependency 2023-02-24 19:20:43 -08:00
James R
3741ab1c91 Add libwebm, libvpx, libyuv dependencies
Libvpx is built with configure script and make.
Unfortunate but the configure script is very dense and I'm
not sure if it's worth translating into CMake, since it
apparently does CPU detection for optimizations.
2023-02-24 19:20:43 -08:00
AJ Martinez
432be46a2f Please god just fucking work 2023-02-24 20:04:36 -07:00
toaster
182768aa32 Unlockable sounds updated
- Use sfx_achiev when any Challenge is completed
- If picking up MT_EMBLEM *doesn't* immediately complete a challenge, use sfx_ncitem as before
    - Bugfix: this sound is played even when online, which it wasn't previously doing (because the object couldn't be destroyed and play its sound)
2023-02-25 00:33:56 +00:00
toaster
9779d6066c Challenge Grid: Introduce flipping tiles
- When a tile is selected, flips from category side to specific icon side
- Flips back when unselected
- Hold R (drift) to flip all tiles to visible side
2023-02-25 00:21:28 +00:00
AJ Martinez
7c08634f7e WIP: Turn towards local camera (midgame join broken right now) 2023-02-24 16:59:22 -07:00
toaster
339617a54e extras-challenges.c, M_UpdateChallengeGridExtraData: Be less lazy about reallocation
- Z_Calloc once, on menu load, instead of every time data changes
- Free once, on menu exit, instead of every time data changes
2023-02-24 19:10:44 +00:00
toaster
8dc4971c2a M_DrawChallengeTile: Don't draw the ? stuff if not yet unlocked 2023-02-24 19:06:45 +00:00
toaster
e65bb87ec5 M_DrawChallengeTile: Change the appearance of locked tiles
- Question mark
- If next to an unlocked tile (ie, hint mode)
    - Have ring around when highlighted, per hint ring
    - ELSE, make blink-colormapped + subtractive
2023-02-24 18:15:38 +00:00
toaster
4380876959 Challenges Grid: create dedicated struct for menu extradata
- challengegridextradata_t
- Existing UINT8 data per entry has been converted to "flags" property
- This is a tool that will help us later.
2023-02-24 17:38:08 +00:00
James R
d76a10f2fa Merge branch 'block-tripwire-abuse' into 'master'
Tripwire anti-cheese

See merge request KartKrew/Kart!968
2023-02-24 08:48:54 +00:00
AJ Martinez
63c8c1bdab Rerandomize SF_IRONMAN on UFO hit 2023-02-24 01:21:46 -07:00
Oni
4309df414c Merge branch 'desperation-spindash' into 'master'
Desperation spindash

See merge request KartKrew/Kart!967
2023-02-24 07:31:00 +00:00
AJ Martinez
9b5bd70cae Briefly lock out TRIPWIRE_BLASTER after failing a tripwire 2023-02-24 00:30:21 -07:00
AJ Martinez
2cc02f43fd Double-speed spindash at 0 rings, remove Battle spindash buffs 2023-02-23 23:49:24 -07:00
James R
917acfd16b Refactor pointlimit to be delayed until next round, like timelimit 2023-02-23 18:37:30 -08:00
toaster
9cb176de36 M_DrawCharSelectExplosions: Fix alignment of explosions for Challenges Grid 2023-02-24 00:16:39 +00:00
toaster
2164121ce6 M_DrawChallengeTile: Have different appearance for hovered over tile (current behaviour) and category information 2023-02-24 00:08:58 +00:00
Oni
ffb0596581 Merge branch 'fix-acs-includes' into 'master'
Fix ACS includes

See merge request KartKrew/Kart!963
2023-02-23 23:26:57 +00:00