Commit graph

21895 commits

Author SHA1 Message Date
AJ Martinez
3e2d7ff7e7 Correctly apply steering for easing purposes, fix sign on undershots 2023-02-25 04:52:22 -07:00
AJ Martinez
d9051b3dd1 Fix demo sync for Magicican UFO hits 2023-02-25 03:38:57 -07:00
AJ Martinez
17af9463ac Merge remote-tracking branch 'origin/master' into special-stage-magician 2023-02-25 03:23:14 -07:00
AJ Martinez
69d100ac53 We are no longer out of ziptics 2023-02-25 03:16:27 -07:00
AJ Martinez
a3831ccf48 Disable local driftend snap for testing 2023-02-25 00:55:25 -07:00
James R
afbea1ccc4 Merge branch 'clang-format-long-stuff' into 'master'
Adjustments to clang-format for long member initializer lists and long function prototypes

See merge request KartKrew/Kart!916
2023-02-25 07:46:06 +00:00
James R
67062bb920 Merge branch 'refactor-pointlimit' into 'master'
Refactor pointlimit to be delayed until next round, just like timelimit

See merge request KartKrew/Kart!966
2023-02-25 07:33:25 +00:00
James R
ea4890b4b3 Simplify bumper death code flow 2023-02-24 23:21:47 -08:00
James R
01227814b9 Refactor Battle points cap to use g_pointlimit
Fixes players leaving mid-game lowering the point limit
and instantly ending the match.

see 94c811b55
2023-02-24 23:21:47 -08:00
James R
368116bc59 Restrict HUD tracking on players
- Gametyperules include both GTR_BUMPERS and
  GTR_CLOSERPLAYERS.
- Break the Capsules or Boss modes must not be active.
2023-02-24 23:21:47 -08:00
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