Commit graph

21469 commits

Author SHA1 Message Date
toaster
e507a8b0ad P_EndingMusic: Play "EMRLD" in Emerald contexts
- gametype has GTR_POWERSTONES and any one player has all 7 emeralds
- gametyperules & GTR_SPECIALSTART and any one player isn't losing
- GP after completing a GPEVENT_SPECIAL and any one player isn't losing
    - Catches custom gametypes in place of Sealed Star at the end of a GP
2023-06-25 23:49:18 +01:00
toaster
78404af6fe Arrows for cupgrid page indication
My biggest bugbear for a while and we are literally almost out of time, can polish gfx later
2023-06-25 23:44:39 +01:00
toaster
a016a54e52 Rework how GP Backups are accessed
- Now actually from the relevant GP difficulty's Cupgrid, instead of the top-level Play choice
    - Permits a much cleaner M_StartCup, combining two of the previously four copypasted, slightly modified level startup regions (which could be further combined for sanity's sake, but would take a LITTLE more work right now than I have in me)
- Shows a funny exclamation mark from Sonic Rush on the relevant cup on the grid
- Selected by default when loading the menu, if appropriate
2023-06-25 23:44:39 +01:00
toaster
e9df563826 Rearrange contents of GP Backups for future purposes
Also increments minor version for backups
2023-06-25 23:44:39 +01:00
toaster
b1b23da51b Prevent the other half of tape's exploit
Save one less life than you actually have, so you're discouraged from constantly reloading from backup.
2023-06-25 23:44:39 +01:00
toaster
87c26f0fe9 Skip Bonus Rounds when loading up Live Event Backups
Prevents the exploit Tape discussed from being used for Battle.
Also attempts to recover to Podium if relevant.
2023-06-25 23:44:39 +01:00
toaster
3474fd6e83 Grand Prix Backup: Store lumpnamehashes of all maps in queue for extra confirmation that the cup's contents are the same between gameboots. 2023-06-25 23:44:39 +01:00
toaster
8199437e0d Coming back to the branch, closing menu messages felt annoyingly unresponsive. Let's disable the flashing animation for now and just retain the slideaway. 2023-06-25 23:44:39 +01:00
toaster
d6a3e1446f Improve handling of M_StartMessage strings
The author of this commit ran into an issue while testing previous changes where a Menu Message had MM_NOTHING but a Yes and No string, leading to misleading appearances. This prevents that footgun from happening again.
2023-06-25 23:44:38 +01:00
toaster
3e6a5fda21 Change the rules of when GP Backup occours/is deleted
- Re-saved every time you lose a life, to prevent scumming
- Force-deletion of your backup has changed
    - Don't when saying NO to the GP Backup load prompt
    - Don't when returning to titlescreen under non-DEVELOP
    - DO when starting a new Grand Prix session of any cup
2023-06-25 23:44:38 +01:00
toaster
6b1fadd9d2 Make the Server Connection Ticker use the MenuCMD system
- Permits the use of the existing K_HandleMenuMessage MM_YESNO system, instead of the faked previous implementation
    - Removes the "cl_requestmode" hack
    - The only area of the game that fakes handling Menu Messages is the title screen, now, due to the lack of guarantees for menu inputs.
- *Also* permits Screenshots and video/lossless Recordings to be started/ended on this menu.
2023-06-25 23:44:38 +01:00
toaster
3391b0e9a5 Flash button prompt before closing Menu Message, for improved conveyance
Needs a sound, we can do that later
2023-06-25 23:44:38 +01:00
toaster
d450faeaaf General Menu Message input cleanup
- M_StopMessage is now in charge of setting the answer to a given prompt.
- Menu Messages can now be dismissed on the title screen, instead of carried into the top-level menu transition.
2023-06-25 23:44:38 +01:00
toaster
17f23e8974 Tournament Mode cheat: Improve handling
- Have special message if cheats are enabled (it previously falsely said you could still save)
- Cleaner internal handling
- Always take you back to the title screen
2023-06-25 23:44:38 +01:00
toaster
45bff5f0d8 Further polish
- Set a restoreMenu for M_GPBackup
- Improved newlines on associated message
2023-06-25 23:44:38 +01:00
toaster
281002f2ee Improve wording for A/B options for GP Backup prompt 2023-06-25 23:44:38 +01:00
toaster
0d827ab05e Improve GP Backup handling to be more flexible
Since it's a user-facing feature and not a speedrunner's assistant...
- If an issue is discovered, make a CONS_Alert instead of a complete failure and let the user know
    - Replaces the unhelpful error of "Savegame %s corrupted"
- Store skins and cups as strings, not IDs
    - Permits playing with differing mod loadouts if everything important is still loaded
    - Won't error for bots having not-loaded skins - those are converted into Eggrobos.
- Instead of storing full roundqueue data, rebuild from the cup and check if the important details match
    - Prevents having to include map name strings
- Add minor version to GP backups
    - Permits more flexibility in future
2023-06-25 23:44:38 +01:00
toaster
2eef39e079 Fix valid followerskin range on GP Backup load 2023-06-25 23:44:38 +01:00
toaster
e9f9cfd051 Menu Messages: Call the routine after it closes, not the moment you press the button
Slicker, prevents the issue where a transition after pressing accept on a prompt would be instant.
Also guarantees M_StopMessage is called even for MM_NOTHING, even with a custom routine.
2023-06-25 23:44:37 +01:00
toaster
3b272ddb97 M_StringHeight: Handle correct height more cleanly 2023-06-25 23:44:37 +01:00
toaster
12ff436877 Make a first-class feature instead of a passworded secret
- Now called "Grand Prix Backup"
- Filename is now `gpringsav.bkp`
- Since available in standard contexts, do a little extra guarding against unsporting behaviour:
    - In non-DEVELOP builds, delete Grand Prix Backup when returning to the titlescreen/menus.
- "undo your extra work and make it more generic" - Tyron
2023-06-25 23:44:37 +01:00
toaster
304bd383de Do not call G_HandleSaveLevel between maps 2023-06-25 23:44:37 +01:00
toaster
e372d348cd Live Event Backup
Associated menu stuff is rough and unpolished, but it's 1am for the author of this commit.
- Activated for this session by either of the following Passwords.
    - `savetheframes`
    - `savetheanimals`
    - The idea is that if Ring Racers were ever ran at a GDQ, runners would swear their alliegance to a particular Metroid routing at the startup stage, because I think it's funny and cute.
- A live event backup is created/overwritten on non-cheated grandprix level change.
- It's wiped on reaching the podium.
- When hitting PLAY on the main menu, if a live event backup exists, make a Menu Message.
    - If you hit A, turn live event backups on for this session, and load the backup.
    - If you hit B/X, delete the backup and proceed to character select.
        - Done this way to avoid cheating a different character to the end of GP.
- Unlike the (maybe a little over-)engineering of ringdata.dat, liveringbak.bkp is streamlined as all hells and has very little recovery for differing file lists.
2023-06-25 23:44:37 +01:00
toaster
3cbbcfd253 M_StringHeight: Guarantee that there will be enough vertical space in a Menu Message for the relevant lines 2023-06-25 23:44:37 +01:00
toaster
a9361020bf Re-add missing bobspeed/focusplayer initialisation 2023-06-20 21:52:50 +01:00
toaster
164f72a6cb "Bored" follower audience toggle (for Chaclon)
- If follower audience member has a certain flag, the bob/jump height is forced to zero
    - UDMF: args[2] & 2
    - Binary: The "Extra" flag
- If a follower audience member (or MT_EMBLEM with GE_FOLLOWER) has a bob/jump height of 0, use the idlestate instead of the movement state
2023-06-20 12:41:42 +01:00
Lach
6dc7e96e95 Add Lost Colony symbol object 2023-06-19 23:12:55 +10:00
Oni
8b2b3aaee8 Merge branch 'training-mode' into 'master'
Add bot styles & bot spawn ACS function

Closes #564

See merge request KartKrew/Kart!1288
2023-06-19 03:16:30 +00:00
James R
bebf9ebed7 A_PlaySound: var2 lower 16 bits == 2, play from actor if actor target is NULL 2023-06-18 01:57:03 -07:00
James R
aa82d8da77 Instawhip Recharge VFX
- 3 splats spawn before the instawhip cooldown runs out
- Splats angle steeply outward in a triangle formation
- VFX is animated, animation runs out right when instawhip
  cooldown completely runs out
2023-06-18 01:57:03 -07:00
James R
96a3221dd3 Add Instawhip Recharge states 2023-06-18 01:53:33 -07:00
James R
f98319a98c Add R_SplatSlope, function to set slope of splat during rendering
Slope set by R_SplatSlope is only effective if
floorspriteslope or standingslope is not already being
used.
2023-06-18 00:46:57 -07:00
James R
f20a7e4db2 A_PlaySound: var2 lower 16 bits == 2, play from actor target 2023-06-18 00:46:57 -07:00
Sally Coolatta
7842032eee Split ringbox stuff from itembox stuff 2023-06-16 05:55:33 -04:00
Oni
abd6e183e9 Merge branch 'mt-reorder' into 'master'
Reorder stuff in P_SpawnMobjFromMapThing

See merge request KartKrew/Kart!1293
2023-06-16 05:39:38 +00:00
Oni
8105fbeea6 Merge branch 'eggmark' into 'master'
Make name of the item "Eggmark"

See merge request KartKrew/Kart!1295
2023-06-15 20:23:00 +00:00
Oni
d0bee29f1a Merge branch 'servant-hand' into 'master'
Servant Hand

See merge request KartKrew/Kart!1294
2023-06-15 20:19:32 +00:00
toaster
f72bd7ff32 Make name of the item "Eggmark"
Cvar was previously "eggmanmonitor" inherited from a completely different implementation of the item
Menu was previously "Eggman Mark", which was good inspiration but too unwieldy
Has been blended together per Gardentop and VC discussion
2023-06-15 21:10:06 +01:00
toaster
fa10ff629f servant-hand.c 2023-06-15 19:39:55 +01:00
Sal
55cd73e25c Merge branch 'milk-terrain' into 'master'
Milky Way terrain

See merge request KartKrew/Kart!1289
2023-06-15 18:00:45 +00:00
toaster
1fee9f65fb Servant Hand
- Points in the direction of the best waypoint to take
- Vwoops in and out like a drop target squash-n-stretch
- Shows WRONG WAY only on debugwaypoints
- Flexible enough to be used for custom purposes and other gametypes, the only caveat being if those gametypes use GTR_CIRCUIT conflicting with the other purpose of PF_WRONGWAY
2023-06-15 18:46:44 +01:00
Sally Coolatta
d63c1d8ab4 Reorder stuff in P_SpawnMobjFromMapThing
Fixes the loops issue Tyron ran into. Way, way too much stuff was being initialized after P_SetupSpawnedMapThing instead of before.

Also get rid of weird doangle pointer crap, I don't understand why it did it that way to begin with? The only thing that I didn't write that needed to set it was P_SetupMace, which just seemed to be a weird hack to get around the weird ordering, instead of just changing the ordering? A lot of objects even double-calculate the angle just because it hasn't been set yet...
2023-06-15 12:44:19 -04:00
Sally Coolatta
a8467a22ce Fix speedometer in outrun mode 2023-06-15 12:12:41 -04:00
Sal
8622429e07 Merge branch 'bird-slope-sector' into 'master'
Small bird slope improvements

Closes #565

See merge request KartKrew/Kart!1287
2023-06-15 16:08:43 +00:00
Sally Coolatta
54e6efc798 K_AddBot is direct
No longer sends a packet from the server, now all clients do it. Old method is kept just in case.
2023-06-15 12:06:21 -04:00
AJ Martinez
a18f84255b Ring Box items aren't real items 2023-06-14 23:59:45 -07:00
AJ Martinez
28a65043f9 Autofire Ring Box items 2023-06-14 23:45:20 -07:00
AJ Martinez
41540ed9e5 WIP: Ring Box 2023-06-14 23:32:31 -07:00
Sal
7d82d8cd0c Merge branch 'spb-shrink' into 'master'
Make SPB respond to player physics scale (resolves #560)

Closes #560

See merge request KartKrew/Kart!1276
2023-06-15 05:59:38 +00:00
Sal
9f576ef2ad Merge branch 'sprite-directional-lighting' into 'master'
Sprite directional lighting, add SpriteBacklight option to level header

See merge request KartKrew/Kart!1291
2023-06-15 05:59:13 +00:00