Commit graph

24689 commits

Author SHA1 Message Date
James R
b5c28eeea8 draw_bbox_col: draw to software buffer 2023-10-11 18:23:23 -07:00
toaster
71a95b3096 M_BuildConditionTitle: Support menuttl
Example for menuttl "Controls":
- For Tutorial levels, show "The Controls Tutorial"
- Otherwise, show "CONTROLS" (allcaps)
2023-10-11 17:24:50 +01:00
toaster
2cc796a042 M_AssignSprayCans: Don't handle the prepended cans in reverse order
Was messing around with part-duplicating this code for Prison Egg CDs, and realised a corruption/overwriting bug if you had more freebie Spray Cans than the standard ones.
2023-10-11 16:11:14 +01:00
James R
1f3a9a4758 Splitscreen Director HUD; replace freecam HUD 2023-10-09 18:53:55 -07:00
James R
9fa2e3da5f srb2::Draw: add button and small_button methods 2023-10-09 18:52:02 -07:00
James R
dadb150b25 Freecam: use Y button to focus player 2023-10-09 18:52:02 -07:00
James R
29feceda88 P_DemoCameraMovement: cancel out up/down movement 2023-10-09 18:52:02 -07:00
toaster
46dcfe0000 Experiment for Challenges menu: The completion percentage only counts unlocks, but the Chao Medal meter fill subtracts major unlock skips
Should communicate the fact you're short of True Completion a little better.
2023-10-09 13:02:27 +01:00
toaster
bddb1d576d Challenges Menu: Fix copypaste error with Chao Medal fill drawer 2023-10-09 12:54:02 +01:00
toaster
3fe7a76c5e Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into break-through-them-all 2023-10-09 12:28:52 +01:00
toaster
52706b4f6f S_SoundTestDefLocked: Actually restrict tracks that should be restricted
- POSITION!! music and the standard course track is always visible.
- Alt Music is hidden behind the relevant SECRET_ALTMUSIC.
- Associated music requires you to beat the level to listen.
2023-10-09 12:20:00 +01:00
James R
fa89576f34 Move freecam state to camera_t, lets splitscreen players use freecam independently of each other 2023-10-08 14:26:21 -07:00
James R
49898abfeb Let Director operate on separate splitscreens 2023-10-08 14:26:21 -07:00
James R
412b37a8de Convert k_director.c to k_director.cpp 2023-10-08 14:26:21 -07:00
James R
17b7a2f16d k_director.h: remove directorinfo extern, add K_DirectorIsEnabled 2023-10-08 14:26:21 -07:00
Oni
c72a2cf94a Merge branch 'rideroid-hardcode' into 'master'
Lat Hardcode

See merge request KartKrew/Kart!1515
2023-10-08 21:22:18 +00:00
toaster
d784f6ad4a SECRET_ALTMUSIC
Restricts a map's alt music, in order of music definition.
Supports out-of-order discoveries!
2023-10-08 21:22:58 +01:00
toaster
8fd809f8b1 M_PrecacheLevelLocks(void): Implement a SECOND level of cacheing for Map and Cup unlocks
Determining whether a map or cup is unlocked or not is now linear-time.
- Attempted to cache SECRET_SKIN et al as well, but skins are loaded after unlocks... oh well.
- Was staring down the barrel of a triple-nested loop for implementing SECRET_ALTMUSIC, so did this first to set good precedent.
2023-10-08 18:25:20 +01:00
toaster
2368ee89e6 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into break-through-them-all 2023-10-08 13:20:21 +01:00
Oni
3e9c3526d3 Merge branch 'debug-death-pit' into 'master'
debugfinishline: highlight deathpits and instakill planes

See merge request KartKrew/Kart!1543
2023-10-08 07:49:39 +00:00
Oni
26f2a38451 Merge branch 'gitch-acs' into 'master'
ACS_Execute, ACS_ExecuteAlways: support map stringargs

See merge request KartKrew/Kart!1545
2023-10-08 07:49:24 +00:00
James R
91ce31c11d MT_SUNBEAMPALM_STEM: adjust radius for new sprite 2023-10-07 21:37:24 -07:00
James R
adb3eb7463 ACS_Execute, ACS_ExecuteAlways: handle map stringargs 2023-10-07 20:40:39 -07:00
Sally Coolatta
6bd14c83ba Bots don't spindash in weak offroad
Intended to improve Sunsplashed
2023-10-07 23:20:06 -04:00
toaster
756f42bc26 Fix DLZ Ring Sucker effect
- Fix infinite loop caused by not actually using the intended object type
- Fix integer multiply of two fixed-scale numbers causing overflow
2023-10-07 23:43:42 +01:00
toaster
dbcb39d7ed Fix Leaf Storm Eggball
- Map object num was incorrectly copypasted onto the Dead Line Ring Vaccuum as well
- Was getting destroyed instantly because its first spawnpoint is a deathpit. Now it only kills itself when it lands on a deathpit, not if it started on one
- Use destscale instead of scaling every frame
- Reduce duplicate P_IsObjectOnGround calls
- Now has its own state
2023-10-07 23:15:27 +01:00
toaster
b2bbde290b Add shadow to MT_KURAGEN
Hazard conveyance
2023-10-07 22:06:49 +01:00
toaster
8c734d3646 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into break-through-them-all 2023-10-07 12:42:07 +01:00
Lat
baa668895a Move transfer line dismount hack to linedef type 2005 2023-10-07 12:22:53 +02:00
Lat
dc6bb1bfa9 solve conflicts and update to master 2023-10-07 11:15:47 +02:00
Lat
bb3d666852 Whitespaces 2023-10-07 10:24:14 +02:00
Lat
085c3c650c Fix DLZ seasaws snapping to floors/ceilings 2023-10-07 10:21:18 +02:00
Lat
1e86d661a5 Change turbine fast speed criteria from 133 to 200% 2023-10-07 09:56:19 +02:00
toaster
ce3b6e304b Add UC_MAPMYSTICMELODY
If you activate an Ancient Shrine on that level, the condition triggers and the Challenge is achieved.
2023-10-06 22:32:43 +01:00
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
James R
5415674034 debugfinishline: highlight deathpits and instakill planes 2023-10-04 20:17:31 -07:00
James R
e4fde7735e Revert "HUD: slide in position numbers if race starts immediately"
This reverts commit a8d0bad4b0.
2023-10-04 00:06:21 -07:00
Oni
985f93d95f Merge branch 'fix-splitscreen-hud-tracking-bleed' into 'master'
K_drawKartNameTags: crop HUD tracking to splitscreen viewports

See merge request KartKrew/Kart!1542
2023-10-04 05:28:45 +00:00