Commit graph

502 commits

Author SHA1 Message Date
VelocitOni
2eef398381 Merge branch 'master' into dialogue-2 2023-08-25 22:46:14 -04:00
toaster
92bd71496e VC review
- Continue showing up on main in-game pause menu
- Flip to top half of screen, to avoid conflict with Round Queue
- Show over most UI, including menu
2023-08-25 21:41:15 +01:00
Sally Coolatta
c2c46aca58 Add note about MOTDICON 2023-08-25 14:56:50 -04:00
Sally Coolatta
819ebc4c26 Highlight contact with shoutcolor 2023-08-25 14:51:21 -04:00
Sally Coolatta
019546e846 Add server join splash
Just wanted to give literally any possibility of seeing the server contact as a client
2023-08-25 14:42:01 -04:00
Sally Coolatta
16e6aa423e Dialogue 2 2023-08-24 17:28:53 -04:00
James R
5a40f554d4 ST_overlayDrawer: hide VIEWPOINT text when using demo freecam 2023-08-19 05:01:40 -07:00
James R
39f46a0f20 Replace music handling
(This commit does not compile. Sound test and tunes
command code needs to be ported after this.)

This is a big one. Here's the rundown:

The old music system was very direct, much of the time
just a proxy to the real sound API in i_sound.h.

You could change the music on command, but there wasn't
a consistent way to prevent some music from playing over
others. P_RestoreMusic is one example of needing to
address this problem. The jingles system was intended as
another solution. Furthermore, sound test (Stereo) has its
own needs.

I am removing all of that. Music handling in general is
now a very deliberate system, kind of similar to jingles.

In the new system, "tunes" are registered. The tune stores
info such as whether it should loop or fade out. Most of
the configuration is intended to be initialized only ONCE.
Tunes can be mapped to an actual music lump. They can be
remapped at any time too.

Tunes are also configured with a priority number. This
determines which tune is heard, if multiple are supposed
to be playing at a time. You can even tell a tune how long
it should play, so it's unnecessary to track this with
bespoke timers.
2023-08-06 17:31:45 -07:00
toaster
c5dc430b50 V_6WIDTHSPACE no longer a pitfall for using V_DrawThinString
The bunched text behaviour is now the primary mode of operation for TINY_FONT.
2023-07-12 09:00:29 +01:00
toaster
a536f884ce V_ALLOWLOWERCASE --> V_FORCEUPPERCASE
Content of commit was originally written by Sal, but as a monolithic commit. The author of this commit is chunking it up for easier review.

Simple inversion on the face of things, but with a long tail of consequences, including 19 changed files.

Forced uppercase has been applied in a handful of locations where it was aesthetically imperative. Most menus will follow in another commit, so that that may be reverted if we change the default menu font.
2023-07-12 09:00:29 +01:00
Sally Coolatta
996ca9adad Z Voting 2023-04-20 15:55:38 -04:00
toaster
c48283bd24 Fix showing ROUND with invalid number for queueing a map during voting 2023-04-18 09:56:14 +01:00
toaster
19ef96351a roundqueue
A general purpose system that permits cacheing of GP progression in one place, but which permits future expansion and brings Online GP a little closer to reality.
- Stores a bunch of levels, gametypes, encore state, and restricted-by-rank-ness in sequence.
    - Initialised on GP cup select.
    - FUTURE WORK: Open to being initialised by other methods
- Digests its way through that sequence as maps are completed.
- Stores round number instead of `grandprixinfo`.
- Map commands as sent over the wire have been adjusted.
    - Sends round number and size of/position in roundqueue.
    - Now figures out GP Event Type from gametype.
        - Can be swung in the direction of a Special Stage with a hint flag.
        - This hint flag replaces "fromlevelselect", which was functionally vestigal.
2023-04-11 17:18:27 +01:00
James R
39ea73a4ad devmode render: display skybox portal, visplane and drawseg counts on HUD
- Skybox portal count moved from console print to HUD
- Displays visplane count and drawseg count
2023-04-08 00:40:37 -07:00
James R
21a31c7a51 devmode: offset with showfps and showping 2023-04-08 00:37:12 -07:00
James R
f087d6d865 ST_drawDebugInfo: fix displayplayers access out of bounds on startup
On startup, the cvar is not registered yet so the value
went negative subtracting from zero.
2023-04-04 22:10:44 -07:00
James R
8bd6c9cffb Add musicdef->debug_volume, add musicdef console command
musicdef -volume <volume> changes the volume of the
currently playing song. The change persists through song
changes and is visible with devmode music.

musicdef -show prints all changed musicdef volumes.

The intention of this command is to allow editing music
volumes quickly in game, without having to quit, edit
music.pk3, and reopen the game.
2023-03-29 01:22:40 -07:00
James R
b65eaf1a51 devmode music: reorder volume to the top and add empty space for readability 2023-03-29 00:37:45 -07:00
James R
411b960e1c devmode music: use half size font 2023-03-29 00:33:28 -07:00
James R
31ee3577fd devmode: draw over literally everything else
Draws over ping and FPS counters.
2023-03-29 00:11:01 -07:00
James R
78df6ec488 devmode: add devmode_screen cvar, select which splitscreen to display info for
Old behavior was just use the last splitscreen.

This does not the position devmode draws on the screen.
2023-03-29 00:09:50 -07:00
toaster
62a573090b musicdef_t: Permit multiple tracks (music lumps) associated with the same entry
- Now supports "Lump MENU2,MENU3".
- Automagically appends (A) and (B) instead of having to user-specify them as part of the track name.
2023-03-23 20:08:44 +00:00
SteelT
65e8315bd9 Update thin strings to use V_6WIDTHSPACE 2023-03-04 01:02:21 -05:00
SteelT
e8d6d7f632 Fix missing draw call for DSM_NOTSAVING 2023-03-03 23:43:06 -05:00
SteelT
31e2c1567e Update replay save prompts to use the new button graphics
- A K_drawButtonAnim function is also provided for convince, since I figured it would have more future uses
- This also makes all of the button patches global, in addition
2023-03-03 23:19:46 -05:00
James R
5efce73680 Do not run ST_Ticker if dedicated 2023-03-03 18:56:07 -08:00
James R
5f1e64d6d9 Add spectator HUD for A, X, R buttons
Old spectator HUD is preserved for empty game, "flying
around" mode.
2023-02-26 05:55:45 -08:00
toaster
b6be0ef6e8 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into music-debug
# Conflicts:
#	src/audio/xmp.cpp
#	src/audio/xmp_player.cpp
#	src/sdl/new_sound.cpp
2023-01-22 15:20:14 +00:00
toaster
e6e1d6b042 Re-implement spectator vertical look
- Hold lookback to pivot the spectator's vertical aiming angle
    - Forward/backwards item throw/trick input aims up/down
    - Overrides forwards/backwards movement while lookback is held
    - Changes the spectator text to indicate that it's in aiming mode
2023-01-21 23:46:14 +00:00
James R
4e51ad6c78 Add devmode music
Song: <NOTHING>

        Song:    DEMOZ
      Format:      OGG
      Volume:   50/100
      Loop A: 00:00.65
      Loop B: 01:06.00
     Elapsed: 01:09.00
2023-01-12 03:29:43 -08:00
toaster
84b066245e Demo savemode text is consistent colour now 2022-12-31 23:14:43 +00:00
toaster
03c8fd543f More fun rules for Special Stages
- GTR_ROLLINGSTART
    * Initial instathrust, as before
    * Forced MAXPLMOVE forward
    * Disable finish line beam
    * "Super transformation" sound
        - Reference to the previous entry in the series' Perfect Startboost mechanic
- GTR_SPECIALSTART
    * Instant white fade
    * No titlecard (overridden by Boss intro)
    * Starting warp sound
- Match slidein time with no traditional titlecard to the end of the playsim intro fade
- Remove G_IsSpecialStage
2022-12-27 17:58:35 +00:00
toaster
17dd15b998 "Special Mode" (Sealed Stars) and "Versus Mode" (bosses) are now gametypes
* The existing structs are now exclusively for handling extra data.
    * `specialStage` has been renamed to `specialstageinfo`, to reflect that it is not the sole arbiter.
    * `specialstageinfo.valid` and `bossinfo.valid` are what must be checked before grabbing data from either struct.
        * These are turned on when the gametype extra data is successfully initialised, not on map start.
            * `K_InitBossHealthBar(...)` for `bossinfo.valid`
            * `K_InitSpecialStage(void)` for `specialstageinfo.valid`
        * `K_CanChangeRules(...)` no longer checks these
    * No longer uses duplicate encore information.
* The map command (and -warp) now guesses gametype using a general `G_GuessGametypeByTOL(UINT32)` function
    * Grabs the first gametype with an overlap between the requested TOL and the gametype's TOL.
* The cool Versus-specific intro is now checked via `K_CheckBossIntro()`.
2022-12-26 23:06:24 +00:00
Sally Coolatta
492c068cdd Try some things to reduce rng biases
- Don't clamp all RNG calls to [0, FRACUNIT-1]. Only does this for P_RandomFixed now.
- Use rejection sampling for any clamped RNG calls, to remove modulo bias.
- Because of this, P_RandomRange ranges >= FRACUNIT are no longer undefined behavior.
- Added P_Random/M_Random to grab RNG output directly.
- Shuffle M_Random's RNG as well, since OS rand can be [0,INT32_MAX] instead of [0,UINT32_MAX].
2022-11-12 09:48:59 -05:00
Oni
95096fbc9a Merge branch 'special-stages' into 'master'
[Special stage prep] GP Bonus Stages + timelimit rework + Hitlag ticking fixes

Closes #236

See merge request KartKrew/Kart!739
2022-10-27 03:10:37 +00:00
Eidolon
cd3da06a92 Clear and draw all game hud hook calls to 1 list
Fixes splitscreen issues with lua hud hooks
2022-10-25 20:40:37 -05:00
toaster
6ed9ddc069 Add comment to Titlecard code for future changes if we add other bonusgames for GP 2022-10-16 13:23:53 +01:00
toaster
f281f47c6f Support alternate gameplay events during GP
- Implementation details:
    - grandprixinfo.eventmode is the reference point
    - All bots have spectator applied and removed at map start depending on eventmode, and I've done my best to guard against side effects of not removing them entirely
    - You shouldn't turn off grandprixinfo.gp when turning on things like specialStage.active or bossinfo.boss when pursuing eventmode behaviour
    - Probably needs to be integrated into XD_MAP for any future netplay support, is currently disabled.
    - You technically don't have to assign a Capsules map to be the bonus and a Special Stage to be the special. A Capsules map can be assigned to a Special Stage too, and a Boss can be assigned to either of them.
    - Special Stages are still just as incomplete as they were before.
- Break the Capsules has special behaviour.
   - Timelimit starts at 20 seconds.
   - Earn 10 seconds (plus a little extra cheaty time) every capsule you destroy.
   - WIN + extra life if you bust all the capsules, COOL if you get some but run out of time, LOSE if you lose your bumper or run out of time without breaking a single capsule.
   - Supposed to also give you rings, but ran into a LOT of difficulty with this and didn't want to commit half-baked stuff, so it'll be a later project.
Also:
- Fix a long standing bug where totalring was reset between maps, preventing the sum from adding up across GP rounds and depriving you of extra lives you were owed.
- Fix an issue where Break the Capsules record attack was KARTSPEED_HARD.
- Send timelimitintics in savegames, since it's handled seperately now.
2022-10-14 18:34:43 +01:00
Sally Coolatta
80d9637dda devmode cheat online 2022-09-29 12:19:45 -04:00
Sally Coolatta
a60d4a13a1 RNG classes, take 2
Redone version of my old branch
2022-09-19 00:04:57 -04:00
toaster
3064b2cb7a Fixes for the replay post-game save interface (NOT THE ACTUAL REPLAYS OR HUT, THAT'LL BE LATER)
- `(B) or (X)` for replay saving instead of Press Lookback (HUD) or `(Y)` (input)
- Don't activate while closing pause menu if either of those buttons is shared for menu open/close
2022-09-12 16:01:37 +01:00
Sal
94d7c497b0 Merge branch 'hooklib-port' into 'master'
Hooklib refactor ported and (mostly) squashed

See merge request KartKrew/Kart!662
2022-09-11 06:30:07 +00:00
toaster
975ed1f136 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into new-menus
# Conflicts:
#	src/d_main.c
2022-09-07 21:39:34 +01:00
James R
37c3a55dda Fix conflicts 522467a88 2022-09-05 11:56:30 -07:00
Sally Coolatta
e8b179f7a1 Switch around maxplayers and ingamecap
- ingamecap is now the new maxplayers
- The old maxplayers is now called maxconnections, but can mostly be left alone
- Insert into match race menu
2022-08-29 04:35:14 -04:00
Hannu Hanhi
f7389e74d3 Fix unnecessary texture reloads on respawn in opengl by removing unneeded V_SetPalette calls 2022-08-28 16:31:03 +01:00
Sally Coolatta
107622968e Merge branch 'master' into new-menus 2022-08-27 22:36:58 -04:00
James R
401a10ee04 Snap spectator hud to bottom left
Fixes non-green resolutions.
2022-06-07 01:26:12 -07:00
toaster
d963dea4f9 Merge branch 'master' into new-menus
# Conflicts:
#	src/Sourcefile
#	src/deh_soc.c
#	src/m_menu.c
#	src/p_user.c
#	src/r_data.h
#	src/r_skins.h
2022-05-25 15:12:51 +01:00
toaster
54b9f3b7cc Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart.git into new-menus
# Conflicts:
#	src/Sourcefile
#	src/f_finale.c
#	src/m_menu.c
#	src/y_inter.c
2022-05-22 17:22:49 +01:00