Commit graph

180 commits

Author SHA1 Message Date
toaster
4c412d931a Introducing Marathon Run. (I was going to call it Marathon Mode, but NiGHTS Mode being right next to it on the menu looked terrible.)
Basically a dedicated Record Attack-like experience for speedrunning the game as a continuous chunk rather than ILs. Has several quality of life features.

Benefits include:
* An unambiguous real-time bar across the bottom of the screen, always displaying the current time, ticking up until you reach the ending.
* Disable the console (pausing is still allowed, but the timer will still increment).
* Automatically skip intermissions as if you're holding down the spin button.
* Show centiseconds on HUD automatically, like record attack.
* "Live Event Backups" - a category of run fit for major events like GDQ, where recovery from crashes or chokes makes for better entertainment. Essentially a modified SP savefile, down to using the same basic functions, but has its own filename and tweaked internal layout.
* "spmarathon_start" MainCfg block parameter and "marathonnext" mapheader parameter, allowing for a customised flow (makes this fit for purpose for an eventual SUGOI port).
* Disabling inter-level custom cutscenes by default with a menu option to toggle this (won't show up if the mod doesn't *have* any custom cutscenes), although either way ending cutscenes (vanilla or custom) remain intact since is time is called before them.
* Won't show up if you have a mod that consists of only one level (determined by spmarathon_start's nextlevel; this won't trip if you manually set its marathonnext).
* Unconditional gratitude on the evaluation screen, instead of a negging "Try again..." if you didn't get all the emeralds (which you may not have been aiming for).
* Gorgeous new menu (no new assets required, unless you wanna give it a header later).

Changes which were required for the above but affect other areas of the game include:
* "useBlackRock" MainCFG block parameter, which can be used to disable the presence of the Black Rock or Egg Rock in both the Evaluation screen and the Marathon Run menu (for total conversions with different stories).
* Disabling Continues in NiGHTS mode, to match the most common singleplayer experience post 2.2.4's release (is reverted if useContinues is set to true).
* Hiding the exitmove "powerup" outside of multiplayer. (Okay, this isn't really related, I just saw this bug in action a lot while doing test runs and got annoyed enough to fix it here.)
* The ability to use V_DrawPromptBack (in hardcode only at the moment, but) to draw in terms of pixels rather than rows of text, by providing negative instead of positive inputs).
* A refactoring of redundant game saves smattered across the ending, credits, and evaluation - in addition to saving the game slightly earlier.
* Minor m_menu.c touchups and refactorings here and there.

Built using feedback from the official server's #speedruns channel, among other places.
2020-05-14 23:10:00 +01:00
MascaraSnake
2e9a6afa3e Merge branch 'udmf-next' into executordelay
# Conflicts:
#	src/p_spec.c
2020-05-13 09:55:25 +02:00
MascaraSnake
8c22834b46 Merge branch 'next' into udmf-next 2020-05-04 20:32:56 +02:00
MascaraSnake
5c0559a3d2 Adapt linedef executor delay to UDMF 2020-05-03 20:41:37 +02:00
MascaraSnake
2df5758ecf Allow map-wide gravity to be set via level header 2020-05-03 18:33:18 +02:00
MascaraSnake
9abfcacc3c Add level header options for setting special stage time and spheres requirements 2020-05-03 17:56:49 +02:00
Nev3r
9e79101ee3 Remove old taglist access from Lua. 2020-04-17 23:31:08 +02:00
Nev3r
95146cfdab Make the Lua interface return/set the first tags from the local taglists. 2020-04-17 22:30:16 +02:00
MascaraSnake
9b76d3af6f Merge branch 'next' into udmf-next
# Conflicts:
#	extras/conf/Includes/SRB222_linedefs.cfg
#	extras/conf/Includes/SRB222_misc.cfg
#	src/p_spec.c
2020-03-21 20:04:31 +01:00
Louis-Antoine
4e7605f0e2 Make SRB2 flat like Earth 2020-03-20 18:55:29 +01:00
Louis-Antoine
46df2b9551 Use HAVE_BLUA as fuel for my fireplace 2020-03-19 18:36:14 +01:00
Nev3r
63fb8f846b Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2/ into udmf-next 2020-03-11 09:31:31 +01:00
James R
2274129f57 Update copyright year to 2020 2020-02-19 14:08:45 -08:00
MascaraSnake
e22661e150 Implement linedef alpha field (replaces specials 900-908) 2020-01-26 12:24:52 +01:00
MascaraSnake
588a76efe4 Merge branch 'next' into udmf-next 2020-01-24 22:38:26 +01:00
James R
ab86ef936a Merge branch 'keywords-back-again' into 'next'
Level header keywords

See merge request STJr/SRB2!656
2020-01-16 20:05:24 -05:00
MascaraSnake
d0a3447f5c Merge branch 'udmf-next' into stringargs 2020-01-11 16:17:53 +01:00
MascaraSnake
4e3dcc70c3 Merge branch 'next' into udmf-next
# Conflicts:
#	src/p_slopes.c
2020-01-11 16:16:57 +01:00
James R
4f0acda87c Call it KEYWORDS 2020-01-08 14:41:38 -08:00
James R
d3da473d4c Revert "Oh right, the keywords..."
This reverts commit 7431794b5c.
2020-01-08 14:26:47 -08:00
MascaraSnake
16b515ba06 Implement linedef string arguments 2020-01-08 08:42:35 +01:00
MascaraSnake
64dc6659c5 Merge branch 'next' into linedef-args 2020-01-06 14:46:47 +01:00
Nev3r
d8b24fcfba Merge branch 'remove-vertex-z-mk2' into udmf-vslopes
# Conflicts:
#	src/lua_maplib.c
#	src/p_setup.c
#	src/r_defs.h
2020-01-04 22:59:42 +01:00
Nev3r
764a8ad43f Remove vertex_t's z variable. 2020-01-04 18:29:02 +01:00
Nev3r
1d5b435de1 Add Lua support for vertex heights. 2020-01-04 11:40:21 +01:00
MascaraSnake
85a94e1a58 Implement linedef args (unused and untested so far) 2020-01-02 12:23:14 +01:00
MascaraSnake
1fc2a4755a -Add linedef pointer to side_t, so sidedefs are able to tell if they're a front or back sidedef during setup
-Fix a broken condition during setup of texture fields for the change music linedef
2019-12-29 09:39:50 +01:00
James R
248e452d7d Merge branch 'titlecard2' into 'next'
More customisable title card

See merge request STJr/SRB2!552
2019-12-24 14:47:55 -05:00
Jaime Passos
607d066c01 More customisable title card
Add TitleCardZigZag, TitleCardZigZagText and TitleCardActDiamond fields to SOC.
Add the same fields to Lua under their internal names.
Turn map header level flags into an UINT16, so that NoTitleCard works. (NOBODY caught this, I'm actually disappointed.)
2019-12-18 00:28:58 -03:00
Monster Iestyn
b0a42140e6 Fix numoflines calculations in sectorlines_* functions by first typecasting seclines (the sector.lines address) to size_t before doing any math on it, then (after the math) typecast the result to size_t * and dereference it.
And yes, this time I tested it to make sure it works :)
2019-12-16 17:46:27 +00:00
Steel Titanium
a5cdb0a4b3 Update copyright date on source files 2019-12-06 13:49:42 -05:00
Monster Iestyn
59109b6ef4 Write a new hack for getting sector->linecount from sector->lines in Lua, to put my mind at rest about it at last.
1) In sector_get, actually push the memory address of the lines array within sector_t, rather than push the value of "lines" itself (essentially, we we want a pointer to a double pointer, or rather a TRIPLE pointer haha)
2) In the sectorlines_* functions, use offsetof to shift the memory address so we can obtain the value of linecount within the sector_t struct, and dereference the result to obtain the value of linecount itself
3) ??? profit

Untested and uncompiled atm, but I have some confidence this might work
2019-09-25 20:27:41 +01:00
TehRealSalt
47da526313 Use texture names instead of predesignated sky numbers 2019-09-18 19:29:28 -04:00
mazmazz
2c7eb91460 * Added FORCERESETMUSIC level header
* cv_resetmusicbyheader toggle to disable said override
* Never reset music during time attack
* Change cv_resetmusic default back to off
2019-08-04 20:02:38 -04:00
toaster
534b98251b Revert "Revert "Merge branch 'musicplus-aug2019-b' into 'master'""
This reverts commit a76668f55a.
2019-08-04 12:03:57 +01:00
toaster
a76668f55a Revert "Merge branch 'musicplus-aug2019-b' into 'master'"
This reverts commit 0f89fb123f, reversing
changes made to 8fb211d8cf.
2019-08-04 11:32:55 +01:00
mazmazz
8a637168f4 Merge branch 'musicplus-feature-postboss' into musicplus-aug2019-b 2019-08-04 03:22:36 -04:00
toaster
3b99335605 * Strip the word "function" from INLEVEL error messages, since they're now shared between access and function cases.
* Move it into lua_script.h, so it's available to everything that needs it.
2019-07-30 17:57:57 +01:00
toaster
c659e3f26b Fix lua scripts erroring on the title screen because they're run there but it's not counted as GS_LEVEL (aka #168). 2019-07-30 17:48:13 +01:00
MascaraSnake
9f666e125e Merge branch 'master' into thinkerlists
# Conflicts:
#	src/f_finale.c
#	src/p_enemy.c
2019-07-02 23:08:37 +02:00
Steel Titanium
c2a8c82b6a Forgot to do this. 2019-06-23 18:51:42 -04:00
wolfy852
2222738e1c Merge remote-tracking branch 'remotes/srb2pub/public_flatsprite' into next
# Conflicts:
#	src/d_netcmd.c
#	src/doomdef.h
#	src/doomstat.h
#	src/f_finale.c
#	src/g_game.c
#	src/hu_stuff.c
#	src/m_menu.c
#	src/p_spec.c
#	src/p_user.c
#	src/r_main.c
#	src/r_things.c
#	src/s_sound.c
#	src/v_video.c
#	src/y_inter.c
2019-05-06 22:40:12 -05:00
Nev3r
bb083f20b4 Dynamic slopes now use thinkers.
* Moved dynamic slope-related data into its own thinker.
* Vertex slopes no longer use the mapthings directly.

Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-19 14:14:43 +02:00
mazmazz
822b4d12bf Merge branch 'public_next' 2019-03-15 01:43:03 -04:00
mazmazz
1381343a2e Implement MUSICINTERFADEOUT level header 2019-03-15 01:05:52 -04:00
mazmazz
83e89ba62c Merge branch 'public_next' 2019-03-15 00:33:06 -04:00
mazmazz
2eb04ab17d Merge branch 'public_next' 2019-03-14 22:15:34 -04:00
Latapostrophe
62f1ac6ef6 Expose some more Kart functions, freeplay and rankings bumpers are now hud stuff you can toggle, + experimental playercmd hook 2019-01-13 14:40:48 +01:00
Monster Iestyn
74cb384be2 revert to LF_SAVEGAME system code, removing all traces of saveoverride
(I believe Sal wanted us to do this anyway, so...)
2019-01-08 17:14:21 +00:00
mazmazz
403565e92f Merge remote-tracking branch 'origin/musicplus-core' into musicplus-feature-postboss 2019-01-07 01:10:54 -05:00