Commit graph

24356 commits

Author SHA1 Message Date
toaster
d386800c1e Ancient Shrine: Code the rest of the owl
- If a follower with the specific Mystic Melody sound effect (DSMELODY) is used on the Shrine by a local player...
- Activates the shrine after two seconds!
    - This is clientside only.
- Stores on the mapheaderinfo's mapvisited record
2023-10-06 22:24:40 +01:00
toaster
fe62e76a39 readfollower: Default horn to sfx_horn00 if an invalid enum is provided 2023-10-06 22:19:02 +01:00
toaster
6533e7e69f Consistancy(void): Use TypeIsNetSynced instead of MT_OVERLAY-specific check
In addition, don't use frame - I'm pretty sure this was something we've already violated to no ill effect.
2023-10-06 22:18:08 +01:00
toaster
66c415ea41 Emblem system, Spray Cans: prevent Exiting players from grabbing them
Fixes an issue that as far as the author of this commit is aware was only reported on Discord
2023-10-06 19:16:31 +01:00
toaster
14b6c0f275 M_GetConditionString: Do not add a suffix for UC_MAPENCORE - that condition already has a guaranteed prefix saying the same thing. 2023-10-06 18:50:20 +01:00
toaster
8f1bea71de G_UpdateRecords: Do not destroy existing record data if you experience other types of modeattacking on the same map
Should not have been possible to trigger with current menu setup, but was a hypothetical danger
2023-10-06 18:47:55 +01:00
toaster
e96bae393c Ancient Shrine implementation beginning
- Players will glance at Ancient Shrines near/behind them.
- Look back at these Shrines to activate your follower's horn!
    - Currently, this even works if horns are turned off, as a sort of tutorial.
    - TODO: A special horn will be able to activate them...
2023-10-05 23:07:46 +01:00
toaster
0b1be76442 K_FollowerHornTaunt: fix mistaken port priority on horns
Incorrect behaviour sometimes prevented you from hearing somebody else's horn based on player slot order
2023-10-05 23:00:32 +01:00
toaster
21a4e7ae43 Remove last vestiges of Emerald Hunt behaviour from vanilla SRB2
Was in places the author of this commit needed to look
2023-10-05 22:57:39 +01:00
toaster
8bb41b787b Fix SECRET_SKIN locks preventing Rivals from showing up
Previously, there was a permanent exception for Eggrobo (the default bot skin).
Now that exception is generalised for the specific skin the bot is being assigned, which we assume is intentful and correct.

In addition, the randomclass PR_BOTS now controls K_RetireBots as well, matching the other two random calls done for bot skins.
2023-10-05 18:12:32 +01:00
toaster
b937b1a7bc Add UCRP_MAKERETIRE
- `Condition1 = MakeRetire Eggrobo`
- Fires when:
    - Not a cooperative context
    - You've finished in good standing
    - Another player has both
        - PF_NOCONTEST
        - The skin specified in the condition
Also makes rivalname-handling for K_InitGrandPrixBots `const char *`, since the author of this commit had to reference that code.
2023-10-05 14:36:00 +01:00
toaster
764141946d M_GetConditionString cleanup
- Remove pointless "BUILDCONDITIONTITLE" macro for M_BuildConditionTitle
- Replace simple R_SkinUsable checks with M_GetConditionCharacter
    - Supports knowing a character's name via them being the Rival for a currently unlocked character, if that Challenge doesn't require them unlocked to interact
2023-10-05 14:23:46 +01:00
toaster
caa8d66035 G_DoCompleted: Refactor in anticipation of new Challenge conditions
- Stop sounds first, as before.
- Do most player updates before M_UpdateUnlockablesAndExtraEmblems is called
    - Allows us to make Challenges dependent on end-of-round Standings
- Then Challenges and gamedata...
- Then, group all important game state updates together.
- THEN, finally assign PF_NOCONTEST when exitlevel occours.
    - Prevents No Contest-based Challenges from firing cheesily
- Finally, Intermission-related material (also as before).
2023-10-05 14:19:46 +01:00
toaster
c26b4036b7 Challenges Menu: Subtle glowverlay on the Chao Key in the top left if you're able to skip the currently selected tile 2023-09-29 11:01:20 +01:00
toaster
f1241d692f Improved tutorial messaging
They're now called Big Challenges, because Chrome used it for space reasons and it's funny to be reminded of the Sanrio character
2023-09-29 10:03:53 +01:00
toaster
5ac1854b1b The conversion rate for Rounds to Keys is now 32:1 per popular consensus 2023-09-29 10:03:05 +01:00
toaster
911588a5fe Challenges Tutorial messages
Currently exists for:
- Generating a Chao Key
- Attempting to use a Chao Key on a Major Challenge
    - Only shows after Generating a Chao Key just so it doesn't fire before you know what's going on
Text is preliminary
2023-09-29 00:25:51 +01:00
toaster
07afe6cb06 Challenge Grid is 5 tiles high now again
I'm sorry, it was just TOO SWAG.
Gamedata minor version increment
2023-09-28 22:30:26 +01:00
toaster
20f47a69dd Challenges Menu: Cooler winged counters for Chao Keys and Completion Percentage
Moves rounds-to-key metyr back to being horizontal and under the counter again, but integrated into the wing
2023-09-28 21:54:42 +01:00
toaster
aca676a7b6 M_DrawChallengePreview: Fix inverted presence of Alt-character stats dot on Character Select preview 2023-09-28 21:40:24 +01:00
toaster
54ddf72466 Challenges Menu: Do not show any conditiontext underlay for empty tile spots 2023-09-28 12:29:44 +01:00
toaster
cf1367fb8d Challenges Menu: Chao Medal icon in the top right
Fills up as you complete challenges.
Unlock all Challenges without using Chao Keys on a major tile to get the Beginner Chao Medal.
Do so without using any Chao Keys at all and you get 101%, with the Challenge Chao Medal!
(This can retroactively apply if you complete the relevant tasks legitimately at a later date.)

Also makes CC_s into an enum (now prefixed with CMC_, since CC_MAX exists in a header file already).
2023-09-28 12:28:14 +01:00
toaster
bd7be2dd6f M_DrawChallengeKeys: Grey out the last Chao Key on the stack if you're either out of them, or going to be out of them after the animation is over 2023-09-28 12:22:17 +01:00
toaster
6bf364545e Seperate our M_DrawChallengeKeys from the already pretty big M_DrawChallenges 2023-09-28 09:57:32 +01:00
toaster
1a91f41dbb Update Challenge Menu UI
- Percentage for Challenges completion
- Smaller footprint in either top corner
    - Uses mini rank numbers
    - Rounds to new Key meter is now vertical
2023-09-27 21:19:39 +01:00
toaster
f29430f29c Longer delay for using a Chao Key on a Major Challenge Tile
Also tidies up a lot of the code and constants related to the Key usage timing
2023-09-27 20:54:32 +01:00
toaster
3e901b312c Catch all unconditional cv_playercolor[] visuals
Resolves #704
Now converts to skin prefcolor in:
- Player menu party
- Challenges menu
    - Why it's done on this branch - want to avoid merge conflicts
- Gamepad indicator
    - Actually fixes a bug at the same time for skins with nonstandard startcolors
2023-09-27 16:02:29 +01:00
toaster
1ce41bdfb4 Large Challenge Tiles can now be Key'd.
- Must have every challenge surrounding it unlocked. (CHE_ALLCLEAR, see previous commits)
- Takes 10 Chao Keys.
- Has a swag animation.

In addition:
- Replace the DEVELOP-only Z button behaviour with "add a free key", since large tiles are no longer permalocked, only expensive.
2023-09-27 16:02:29 +01:00
toaster
33dfb697bf M_UpdateChallengeGridExtraData: Slight optimisation in initial setup 2023-09-27 16:02:28 +01:00
toaster
b33597e225 Beginnings of system for using Chao Keys on large tiles
- M_UpdateChallengeGridExtraData: Register whether major unlock tiles have had every surrounding Challenge cleared (CHE_ALLCLEAR)
- M_DrawChallengeTile: For locked tiles with CHE_ALLCLEAR, show a little dot (temporary drawer)
2023-09-27 16:02:28 +01:00
toaster
f522cae573 SV_GenContext: Guard #ifndef TESTERS
Fixes compiling TESTERS builds
2023-09-26 23:16:49 +01:00
toaster
50ae488934 Merge branch 'local-music-patch' into 'master'
ACS music functions: add optional bool to only affect player activator

See merge request KartKrew/Kart!1531
2023-09-26 22:08:14 +00:00
toaster
55bdd60519 Merge branch 'radio-shuffle' into 'master'
Stereo Mode: Add "Shf" (Shuffle) option

See merge request KartKrew/Kart!1517
2023-09-26 22:07:59 +00:00
toaster
25b4eb4f13 Merge branch 'linedef-80-respawn' into 'master'
Respawn things at Z position offset by linedef 80

Closes #542

See merge request KartKrew/Kart!1528
2023-09-26 22:07:46 +00:00
toaster
36f7c57ca5 Merge branch 'fix-shakes' into 'master'
Some quake improvements

See merge request KartKrew/Kart!1523
2023-09-26 20:36:04 +00:00
toaster
15a87a8a77 P_DoQuakeOffset: Prevent two calls to FixedDiv 2023-09-26 21:34:08 +01:00
Oni
9aa99db2e6 Merge branch 'damage-polish' into 'master'
Damage Polish

See merge request KartKrew/Kart!1524
2023-09-26 20:15:48 +00:00
Sal
0ae5071bbb Merge branch 'memory-tweaks' into 'master'
Hanicef allocator changes, simplified memcpy and fixed alignment

See merge request KartKrew/Kart!1530
2023-09-25 21:42:23 +00:00
Sal
0301e332d8 Merge branch 'move-hom-removal' into 'master'
Move HOM removal from R_RenderPlayerView to D_Display

See merge request KartKrew/Kart!1532
2023-09-25 21:41:32 +00:00
James R.
7ea0e2081e Move HOM removal from R_RenderPlayerView to D_Display
This lets duplicate displayplayers[0] render correctly,
since repeating occurrences of displayplayers[0] won't
clear the screen multiple times.
2023-09-25 03:07:02 -07:00
James R.
fa86512a4b ACS music functions: add optional bool to only affect player activator 2023-09-25 02:06:16 -07:00
Oni
9d54dbf9a9 Merge branch 'clamp-sprite-column' into 'master'
Always clamp texturecolumn in sprite draw

See merge request KartKrew/Kart!1527
2023-09-25 00:16:52 +00:00
Eidolon
2bad8126ac Delete outdated memcpy optimization
The libc memcpy is faster
2023-09-24 18:32:22 -05:00
Eidolon
b7715d9186 Ensure Z_Malloc provides same alignment as libc 2023-09-24 18:08:28 -05:00
James R.
bd9cadbe8d K_CalculateTrackComplexity: format using fmt::format, to account for differences in size_t platform type 2023-09-24 15:52:00 -07:00
James R.
c743af4d77 P_SpawnMapThing, P_RaiseTaggedThingsToFakeFloor: save raised Z position for respawning later
P_RespawnSpecials just calls P_SpawnMapThing again, so
this works.
2023-09-24 15:36:46 -07:00
Gustaf Alhäll
2fa73d45d7 Clean up and simplify zone memory allocation 2023-09-24 17:03:55 -05:00
Eidolon
0f3ede7fed Always clamp texturecolumn in sprite draw 2023-09-24 14:39:12 -05:00
Eidolon
1ffc7d7c82 r_things.c -> r_things.cpp 2023-09-24 14:30:41 -05:00
Sal
7dafacaf7d Merge branch 'just-sound-code-things' into 'master'
Consolidate sound/music volume functions; kill HW3SOUND off the face of the game code

See merge request KartKrew/Kart!1518
2023-09-24 19:00:14 +00:00