Commit graph

23291 commits

Author SHA1 Message Date
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
Oni
d0ce442850 Merge branch 'chaclon' into 'master'
Chaclon

See merge request KartKrew/Kart!1299
2023-06-25 17:16:09 +00: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
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
Oni
c58b06e7c1 Merge branch 'instawhip-recharge' into 'master'
Instawhip Recharge VFX (and SFX!)

See merge request KartKrew/Kart!1297
2023-06-18 17:01:58 +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
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
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
Sal
4f6db19100 Merge branch 'fix-saveg-diff2-uninitialized' into 'master'
SaveMobjThinker: fix diff2 uninitialized

See merge request KartKrew/Kart!1290
2023-06-15 03:57:36 +00:00
James R
86be5f7354 SaveMobjThinker: fix diff2 uninitialized 2023-06-14 20:09:32 -07:00
James R
6b125ea575 Sprite directional lighting, add SpriteBacklight option to level header
- Sprites have directional lighting, like walls
- For normal sprites: contrast is much stronger than walls
- Papersprites look the same as walls

- SpriteBacklight option in level header weakens the contrast for sprites only
  - SpriteBacklight subtracts from LightContrast
  - E.g. SpriteBacklight = 0 would let it match LightContrast
  - E.g. SpriteBacklight = 60 would make the contrast much weaker
  - Negative values make the contrast stronger
2023-06-14 19:56:16 -07:00
Sally Coolatta
6d1a3de243 Add outrun to netsave 2023-06-14 10:37:05 -04:00
Sally Coolatta
d936c7aed9 Milky Way terrain
`OutRun 48.0` on Terrain block will make that texture add 48 units to driving top speed.
2023-06-14 10:29:19 -04:00
Sally Coolatta
80d0231e8a ACS AddBot: Push -1 on fail instead of MAXPLAYERS 2023-06-14 09:30:34 -04:00
Sally Coolatta
e6e7056aae Add bot styles & bot spawn ACS function 2023-06-14 09:16:38 -04:00
toaster
5eeb29d552 Merge branch 'stereo-tidy' into 'master'
Memory fixes for Stereo

See merge request KartKrew/Kart!1284
2023-06-14 12:53:37 +00:00
Sally Coolatta
ccad5bba12 Small bird slope improvements
- Bird slopes can be made from UDMF sectors
- Group is now argument 3 on the line/sector action and argument 1 on the anchor, instead of using tags.
- The terminology no longer swaps between "tag" and "paramater" -- it's just called "group" now.
2023-06-14 07:58:41 -04:00
Sal
37efa6782a Merge branch 'capsule-jank' into 'master'
Improve Item Capsule spawning

See merge request KartKrew/Kart!1281
2023-06-14 11:14:32 +00:00
Sally Coolatta
cd37542edf Improve Item Capsule spawning
- Spawn them after player count has been calculated properly.
- Move gametype spawning into its own argument. Now instead of 1 flag that said it inverted Time Attack spawning but ACTUALLY just made it spawn in all modes, there's flags for the two gametypes which can be combined. Not setting any will use the old default behavior (rings are in both modes, items are multiplayer-only).
2023-06-14 07:13:26 -04:00