Commit graph

21469 commits

Author SHA1 Message Date
toaster
4cd1f894a2 M_DrawCharacterSprite: Refactor for more fine-grained control of sprite2, angle, and animation frame 2023-06-08 00:56:46 +01:00
toaster
04ceb09fd4 Delay wrongwarp music credit until the kayfabe is dropped 2023-06-07 23:05:55 +01:00
toaster
8efd4788e7 enum gdmusic_t
Replaces existing musicflag system, which only had one flag, with a priority system that overrides menu music in general.
Also adds the CHAO KEY FREE DDL WORKING 2023 goofy music for matchesplayed Chao Key generation.
2023-06-07 23:05:19 +01:00
toaster
1957f74853 Improve handling for Tournament Mode
- Clearer user-facing messages
- Returns to title screen clearing menus in the normal case
2023-06-07 17:55:26 +01:00
toaster
7bda2f72cf Wrongwarp cheat
`banana` was the cheat for the previous entry in the series.
Visuals are incomplete but I have to go out in a little bit and the bulk of it is done

(The Tournament mode cheat's password is "placeholder" for now.)
2023-06-07 17:46:21 +01:00
toaster
c8f74aef2b menubehaviourflags_t: Add MBF_NOLOOPENTRIES
Abstracts one previously hardcoded exception to M_NextOpt/M_PrevOpt
2023-06-07 17:46:21 +01:00
toaster
e162fffecf UC_PASSWORD
Unlockable type that supports entering (case-insensitive) string
2023-06-07 17:46:21 +01:00
toaster
f106d14d69 M_SanitiseChallengeGrid
Attempts to recover Challenge Grids that aren't quite appropriate for the current suite of unlocks.
- If there's multiple small tiles pointing to the same unlock, turn the later ones empty.
- If there's a small tile that SHOULD present on the grid and an empty spot, put the needed tile in that spot.
- Otherwise, regenerate the entire grid.
This will permit us to change the number of unlockables without forcing people to run with the command line param `-resetchallengegrid` to see 'em.
2023-06-07 17:46:21 +01:00
toaster
7fd957c929 M_InitExtras: Call with parameter -1 in more circumstances, to prevent an incorrect Extras Menu after Addon load/Challenge unlock. 2023-06-07 17:46:21 +01:00
toaster
4ceeea0bbd M_GetConditionString: On second thoughts, to avoid misleading with ideas of a Battle win, prefix UC_ALLEMERALDS/UC_ALLCHAOS/UC_ALLSUPER with GRAND PRIX: 2023-06-07 17:46:20 +01:00
toaster
7d57be18c3 M_GetConditionString: Since completing a cup at any difficulty now downpopulates, remove all "or better" for GP difficulty related conditions
In addition, disable the "on Normal difficulty", as it's impossible to get Emeralds on Easy
2023-06-07 17:46:20 +01:00
toaster
2ab046fc30 M_GetConditionString: Hide Cup for UCRP_PODIUMCUP if not unlocked 2023-06-07 17:46:20 +01:00
toaster
98e866c393 M_LevelListFromGametype: Fix copypaste error causing empty Lost & Found to show up when restoring certain post-Time Attack cupgrids 2023-06-07 17:46:20 +01:00
toaster
ee8c0392ef Adjust Extras Tutorial tooltip 2023-06-07 17:46:20 +01:00
toaster
d8e2b4a906 Password entry on Extras menu
- Type in anything you want
- On closing the field, if a cheat sequence is matched *exactly*, activate it!
    - Directly hooked up to a modified form of the previously existing SCRAMBLE interpreter system in m_cheat.c
- The existing cht_Responder call in D_ProcessEvents is gone
    - Done this way because the new input paragadim is not very friendly to unqualified keyboard/controller input, and we still want text
- Plenty of opportunity to add fun future passwords in addition to the currently underbaked Tournament Mode
    - Got a debug M_StartMessage just so you can tell what's up without sound
2023-06-07 17:46:20 +01:00
toaster
823315667b Hold C to use a Chao Key
- Takes a second and a half.
- No accidential usage of your hard-earned Chao Keys.
- Does a full clockwise rotation around the unlocked spot, so there's an intuitive understanding of how long you have to bail out.
2023-06-07 17:46:20 +01:00
toaster
3aca89603b M_ChallengesInputs: Debugging code for temporarily re-locking existing opened challenges is now more important than resetting the grid, because the grid can be reset via -resetchallengegrid command line param 2023-06-07 17:46:20 +01:00
toaster
36191fa4db Y_PlayerStandingsDrawer: Add slide in from bottom of screen for Pause
In the process makes all y coordinates in the function relative to a base y, so it's less fragile to future maintenance.
2023-06-07 17:46:20 +01:00
toaster
6ae7f1f64f Y_PlayerStandingsDrawer: Fix showing invalid data increase text on tab rankings after an SP intermission 2023-06-07 17:46:20 +01:00
James R
f3e1a19c62 Quaketilt: fix jitter at certain momentum angles 2023-06-07 09:08:27 -07:00
James R
c37fa42d61 Fix quake tilt speed scaling varying by map scale 2023-06-07 09:08:27 -07:00
AJ Martinez
5030225666 Make ping-update packets more frequently 2023-06-07 01:12:43 -07:00
AJ Martinez
9be607e6e2 Make SPB respond to player physics scale 2023-06-07 00:51:06 -07:00
Oni
671919b6ec Merge branch 'sprite-lighting' into 'master'
Darken player sprite every other frame of instawhip cooldown

See merge request KartKrew/Kart!1272
2023-06-07 05:43:57 +00:00
AJ Martinez
07a7ee916f Only show instawhip cooldown when whip would be available 2023-06-06 22:41:41 -07:00
AJ Martinez
5be40749d4 Only do whip cooldown tether suppress if you could actually whip 2023-06-06 20:21:49 -07:00
AJ Martinez
5b39142661 Instawhip start of race cooldown 2023-06-06 20:18:01 -07:00
AJ Martinez
4f11fd783d Don't try bot ringshooter postrace 2023-06-06 19:54:48 -07:00
AJ Martinez
50eab03fc0 Instawhip nerfs galore 2023-06-06 19:28:08 -07:00
toaster
533433d41f play-char-select.c: We haven't had problems with devices for a while, so #define away all the device handling messages to reduce the spurious console noise. 2023-06-06 16:48:18 +01:00
toaster
2aa36b5d32 M_CharacterSelectInit: Fix a heaping of bugs
- Fix a softlock caused by commit 8d9b42e4 (!!)
- If your profile's skin was locked, fix a softlock where control was never restored
- If your profile's skin didn't exist, fix an invalid skin id set
- Just straight up flatten out the nested complexity of this function
2023-06-06 16:47:59 +01:00
James R
e6e8bf8c96 Darken player sprite every other frame of instawhip cooldown 2023-06-05 20:01:12 -07:00
James R
018f6f3410 Add lightlevel field to mobj_t
Adds r_spritefx.cpp

lightlevel should be -255 to 255, relative offset to
normal sector lightlevel.

If RF_ABSOLUTELIGHTLEVEL, mobj_t.lightlevel becomes an
absolute lightlevel in the range 0 to 255.
2023-06-05 20:00:35 -07:00
toaster
4f3751bf59 HWR_ProjectSprite: Invert spriterotangle for the sake of rotsprite in GL 2023-06-05 16:12:12 +01:00
toaster
4dfa74796a Merge branch 'podium-music' into 'master'
Podium Music + rank fixes

See merge request KartKrew/Kart!1270
2023-06-05 14:41:42 +00:00
Sal
2fc7e80915 Merge branch 'level-change' into 'master'
ACS: MapWarp

See merge request KartKrew/Kart!1268
2023-06-04 03:26:44 +00:00
toaster
a682c4a9ad Add sfx_endwrp
Dummy sound to be implemented later for the end of a skipstats warp, but the thok actually sounds kind of fun.
Requires skipstats (and nextmapoverride, for cleanliness) to be unset in P_PostLoadLevel instead of P_LoadLevel.
2023-06-03 20:55:00 +01:00
toaster
deca3cb911 Add mid-fade warp sound per suggestion 2023-06-03 20:40:01 +01:00
toaster
ce6737aa67 S_SoundTestPlay: Set MINIMUM looping of ~4 seconds, for the sake the extremely short votepick song. 2023-06-03 15:41:52 +01:00
toaster
1f48d0b4ec K_ResetCeremony: Adjust music set
- Qualified/alt 1 is used if there's not enough music for unique First
- Loser Club/alt 0 is used if position is invalid
2023-06-03 15:01:14 +01:00
toaster
ddde841194 K_GetPodiumPosition: For consistent results, don't skip over a spectator if it's a bot.
This is not ideal and I made an entire branch about avoiding making this change... but actually, this is necessary for consistent results in K_UpdateGPRank after both normal and GPEVENT rounds, and there's nothing we can do about it.
2023-06-03 14:27:33 +01:00
toaster
1d619d10f2 Add Podium level to Stereo Mode
- LF2_HIDEINMENU is considered equivalent to LF2_FINISHNEEDED for:
    - S_SoundTestDefLocked
        - So you don't see podium stuff without having beaten a GP
    - MV_FINISHNEEDED
        - So the status is saved to gamedata and persists between launches if custom
- G_UpdateVisited is now called in K_FinishCeremony, so level is marked as beaten
2023-06-03 14:24:46 +01:00
toaster
10c18fe3fa Podium Music
Uses the multiple alt music options of the podium map's level header in a specific sequence, so it can slot in to the Stereo Mode music list natively, and so custom Podiums don't have to replace existing tracks to function.
2023-06-03 14:20:48 +01:00
toaster
5a3ed5464e P_Ticker: Do not start position music or play noises if gametype has no time between intro and start 2023-06-03 14:18:01 +01:00
toaster
3c505e2676 K_UpdateGPRank
- The previous location for updating grandprixinfo.rank.position and grandprixinfo.rank.skin was too early.
    - K_GetPodiumPosition checks player->score
    - Y_StartIntermission calls Y_CalculateMatchData
    - Y_CalculateMatchData checks K_CalculateGPGrade... which uses invalid position info to determine grade!
    - Y_CalculateMatchData updates player score
- To this end, rearrange Y_CalculateMatchData to accomodate.
    - Calls K_UpdateGPRank.
    - Then, calls K_CalculateGPGrade.
- Also called after G_UpdateVisited if no intermission occours, for general consistency.
- In addition, adjust so earlier players have port priority for skin saved to gamedata.
2023-06-03 14:11:14 +01:00
toaster
117a45422a G_SaveGameData: Fix an issue where if you somehow saved a skin with no wins as the most recent skin on GP, it'd be assigned to the first skin with any wins on your gamedata on the next load, instead of the correct question mark. 2023-06-03 14:02:46 +01:00
toaster
a2902ab1ff Use to-white fade when entering a map via skipstats 2023-06-03 00:51:51 +01:00
James R
54b3aff09f R_ProjectSprite: fix overflow in sideways perspective clipping
Multiplications of perspective values can easily overflow
and flip sign bit at far distances. Instead, divide the
left operand.
2023-06-02 16:12:54 -07:00
toaster
f8dd63609a On second thoughts, tie the never-force-a-retry onto skipstats, which is for direct warps. We probably want to force retries for poor performance if intermission is relevant. 2023-06-02 21:07:55 +01:00
toaster
d75ebd5453 If a nextmapoverride is used in GP, do not take a life and restart the level when exiting without having properly won. It may be some sort of secret. 2023-06-02 20:56:49 +01:00