Commit graph

249 commits

Author SHA1 Message Date
AJ Martinez
0c6820b350 "mental sonic" cheat 2024-01-23 00:28:08 -07:00
James R
ecdd17faaa DEVELOP: add Skip Goner password 2024-01-11 18:48:03 -08:00
toaster
8a2445820e General clearup relating to Goner Setup
- Clean up handling of goner_levelworking to retry current dialogue if something changes gamedata->gonerlevel
- Create wrapper func for resetting ALL text
- Gamedata-modifying cheats will set to GDGONER_DONE
2023-12-07 23:11:05 +00:00
toaster
94a341b629 Cheat updates
- The devmode cheat returns to title screen
- The warp cheat unlocks all hidden levels
2023-12-04 20:36:58 +00:00
toaster
e91115a8fa Goner Setup: Cook 2
- More dialogue
- Restrict access to your choices based on your progress through the Goner Setup.
- Save progress through the setup to gamedata
    - Resets to beginning when Challenges is cleared
- Passwords
    - Only permit the password entry in like the first two seconds
        - Preemptively disarms potentially annoying people in stream chats
    - Make wrongwarp also quit the game on exit instead of returning to the title screen
    - Add GDQ cheats
        - `savetheanimals`
        - `savetheframes`
        - Both do practically the same thing, with slightly modified dialogue.
            - Skips all of the normal dialogue.
            - Performing a social experiment on anyone who might stream this game at a charity event. :)
2023-12-03 22:34:06 +00:00
Oni
db36fc516f Merge branch 'basic-replay-cheats' into 'master'
Basic replay/spectator "cheats"

See merge request KartKrew/Kart!1613
2023-11-18 00:57:46 +00:00
James R
7d7110ead7 Let devmode work in replays, let teleport commands work in replay freecam 2023-11-16 18:45:04 -08:00
AJ Martinez
c4e1a98e6b Fix tournament mode cheat saving 2023-11-16 13:58:06 -07:00
toaster
909eb7b6ef The Tournament Mode cheat is now "chaos zero 64". Thanks to the OG!
In addition, make it case insensitive
2023-10-20 16:56:25 +01:00
Sally Coolatta
c9291b0f61 Mobj thinker freeze condition rework
- There's a freeze cheat bool to freeze everything except for players.
- There's a level freeze bool to freeze literally everything.
- There's a frozen bool on mobj_t to explicitly control freeze status on an object.
2023-09-18 03:24:58 -04:00
James R.
29017d24d6 devmode password: unlock all maps 2023-09-11 04:39:51 -07:00
James R.
ddb0c65455 Add goto_skybox command, teleport to skybox viewpoint 2023-09-09 20:44:24 -07:00
James R
6c0b042eed Refactor cvar definitions completely, move everything to cvars.cpp
- No need to call CV_RegisterVar
- Cvar definitions live in only one file, easier to locate
- Organized into sections -- netvars, cheats, etc.
- Use builder pattern to initialize cvars
- Still need to extern if you want to read the cvar value
2023-08-25 17:22:40 -07:00
Sally Coolatta
f02e6dbe3c Final thing args code cleanup
- Fix the last few bugs I could find with thing args
- Move version update code
- Rename internal variables to `thing_[string]args` to make older code merge issues more obvious
2023-08-22 02:14:09 -04:00
Sally Coolatta
9d940ed654 Separate script args from mapthing args
SRB2 uses a LOT of mapthing args compared to Hexen (which has none) and ZDoom (which only has them on objects that will never ever activate scripts). So we really badly needed to separate the two if we want attaching scripts to things to be useful.
2023-08-21 03:33:04 -04:00
James R
39f46a0f20 Replace music handling
(This commit does not compile. Sound test and tunes
command code needs to be ported after this.)

This is a big one. Here's the rundown:

The old music system was very direct, much of the time
just a proxy to the real sound API in i_sound.h.

You could change the music on command, but there wasn't
a consistent way to prevent some music from playing over
others. P_RestoreMusic is one example of needing to
address this problem. The jingles system was intended as
another solution. Furthermore, sound test (Stereo) has its
own needs.

I am removing all of that. Music handling in general is
now a very deliberate system, kind of similar to jingles.

In the new system, "tunes" are registered. The tune stores
info such as whether it should loop or fade out. Most of
the configuration is intended to be initialized only ONCE.
Tunes can be mapped to an actual music lump. They can be
remapped at any time too.

Tunes are also configured with a priority number. This
determines which tune is heard, if multiple are supposed
to be playing at a time. You can even tell a tune how long
it should play, so it's unnecessary to track this with
bespoke timers.
2023-08-06 17:31:45 -07:00
AJ Martinez
d1c954fd86 DEVELOP devmode cheat: save gamedata instantly 2023-07-01 16:17:37 -07:00
AJ Martinez
304ed85941 DEVELOP devmode cheat: allow saving 2023-07-01 16:14:42 -07:00
James R
427ab44471 Add setspheres command 2023-06-29 21:01:13 -07:00
toaster
45f8f1c89f Remove a bunch of unused emerald stuff inherited from SRB2
All superseded by M_CheckCupEmeralds + GTR_POWERSTONES stuff
2023-06-25 23:49:20 +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
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
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
6c6306889a M_StartMessage revamp
Immense 25-file diff, so spun off into its own branch.
- Improved appearance
    - Not just a big block of text on a blue background
    - Well, OK, the main part is, but some stuff has been spun out into its own fields
        - Title text
        - Text and button prompt for Yes/No or OK
    - Slides with pow on and off the screen
- Disabled MM_EVENTHANDLER, which has always been dog but got considerably worse after newmenus to the point nothing's using it anymore
    - Required in order to reduce the reliance on FUNCPTRCAST, which prevents Eidolon from compiling some stuff because it's not valid C++
2023-06-09 19:23:36 +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
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
0c7d66791b Expand datatype for Unlockables, emblems (Medals + nonmedals), and Conditions.
Made sure there is more than enough headroom for our current purposes.
It should be easy to double again if necessary now that the datatypes have been increased... but that would be obscene at this point
- 1024 Unlockables and 1024 Conditions (these were always tied together in slots)
- 2048 emblems (Medals + nonmedals). If we ship with ~250 maps this permits 8 Medals per map - which is higher than we intend right now but could easily fill out in patches
2023-05-30 21:08:29 +01:00
James R
94e3a6450b Add respawnat command, lightsnake to a specific waypoint 2023-04-24 15:04:14 -07:00
James R
05b0ecb5b6 Add angle command, set your angle precisely 2023-04-08 01:19:44 -07:00
James R
5b2d791cf6 Add goto command, teleport to a waypoint 2023-04-08 01:01:17 -07:00
James R
dc18fa745a Overhaul teleport command, let it work in netgames
Old syntax with -x, -y, -z, -ang, -aim parameters is
simply replaced with 3 argument syntax like rteleport.

Before - teleport -x 100 -y 50 -z 25
After  - teleport 100 50 25

The lost angle, aiming and star post features can be added
back in separate commands.
2023-04-08 00:47:34 -07:00
James R
78df6ec488 devmode: add devmode_screen cvar, select which splitscreen to display info for
Old behavior was just use the last splitscreen.

This does not the position devmode draws on the screen.
2023-03-29 00:09:50 -07:00
James R
58f07987f9 Add setscore cheat, sets player's point count 2023-03-02 22:08:30 -08:00
Oni
f57dd43e36 Merge branch 'minigen' into 'master'
minigen

See merge request KartKrew/Kart!900
2023-01-25 05:54:12 +00:00
toaster
a602a90a8c m_cheat.c: Permit singleplayer-only cheats in offline match race 2023-01-23 11:47:00 +00:00
James R
4e51ad6c78 Add devmode music
Song: <NOTHING>

        Song:    DEMOZ
      Format:      OGG
      Volume:   50/100
      Loop A: 00:00.65
      Loop B: 01:06.00
     Elapsed: 01:09.00
2023-01-12 03:29:43 -08:00
toaster
845fe12b52 Conversion to using gamedata_t
A small piece of (STJr/SRB2!1756).
Due to how RR currently handles time attack records and how it WILL handle unlocks, it's not currently feasible to split everything such that you can have two independent gamedata_t... but what's done so far is certainly more sane and less dependent on global variables
Other minor refactors:
- M_UpdateUnlockablesAndExtraEmblems and M_SilentUpdateUnlockablesAndEmblems are now one function with a boolean for loudness
- Unlock prints are currently living in the console, since the cecho stuff was a little broken
2022-11-30 13:19:21 +00:00
James R
7b2918ae63 Add grayscale command, toggles GRAYPAL palette override 2022-11-03 05:51:39 -07:00
Nev3r
5c9599f0a9 "UDMF: The whole thing" merged
See merge request STJr/SRB2!1714

Barely any RR features reimplemented
2022-10-09 01:13:37 -04:00
James R
1bfccebbe6 Merge remote-tracking branch 'origin/devmode-online' 2022-09-30 15:57:52 -07:00
James R
40b28d7d1a Merge branch 'rework-rteleport-command' into 'master'
relativeteleport cheat online

See merge request KartKrew/Kart!719
2022-09-30 22:52:23 +00:00
James R
f6b4b9213b Merge branch 'rework-savecheckpoint-command' into 'master'
savecheckpoint cheat online

See merge request KartKrew/Kart!718
2022-09-30 22:52:05 +00:00
James R
ee2302d6ee Merge branch 'noclip-online' into 'master'
Cheat/Debug Commands ...ONLINE

See merge request KartKrew/Kart!717
2022-09-30 22:51:42 +00:00
Sally Coolatta
80d9637dda devmode cheat online 2022-09-29 12:19:45 -04:00
James R
23408e7d3b Let savecheckpoint work online, work at all
Actually respawns you at this location! 😃

Uses object Z position instead of floor height.
2022-09-29 06:43:44 -07:00
James R
0024332f34 Let relativeteleport work online
Requires all x, y, z arguments. Floats supported.

Old: rteleport -x 1 -y 2 -z 3
New: rteleport 1.1 2.2 3.3
2022-09-29 06:10:53 -07:00
James R
63af088231 Let skynum work online
I see no reason why it shouldn't.
2022-09-29 05:54:58 -07:00
James R
db92d9068e Netsync setrings and setlives
- setrings no longer subtracts totalrings
- removed INFLIVES
2022-09-29 05:54:58 -07:00
James R
6426358377 Let some cheat commands work online
noclip
god
scale
gravflip
hurtme
2022-09-29 05:54:57 -07:00