Commit graph

582 commits

Author SHA1 Message Date
Jaime Passos
c69a4f9ced Merge remote-tracking branch 'origin/next' into pictureformats 2020-05-15 01:34:54 -03:00
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
Sally Coolatta
47c2c875d5 Increase bot difficulty every match based on placement, implement rival tag
Rival tag does not have an in-game indicator, but it is there & it gives the bot better odds
2020-05-14 02:18:32 -04:00
MascaraSnake
93b6615e61 Store PolyObject waypoint return behavior in an enum 2020-05-13 16:21:47 +02:00
MascaraSnake
ea0176fada Remove diffx/y/z from polywaypoint_t, since they're always 0 anyway 2020-05-13 14:40:07 +02:00
MascaraSnake
2e9a6afa3e Merge branch 'udmf-next' into executordelay
# Conflicts:
#	src/p_spec.c
2020-05-13 09:55:25 +02:00
Sally Coolatta
fa5fccffc5 Implement lives system
Lose a life & restart the current race if you place below the top half. Lose all of your lives, and you get kicked to the title screen.
2020-05-13 02:14:39 -04:00
Sally Coolatta
1788d29263 Merge branch 'master' into pet-robo 2020-05-12 22:38:23 -04:00
Sally Coolatta
15d18640de Merge remote-tracking branch 'public/master' into merge-12 2020-05-12 03:16:14 -04:00
MascaraSnake
8c22834b46 Merge branch 'next' into udmf-next 2020-05-04 20:32:56 +02:00
Latapostrophe
766f7f035f Let followers change colour separatly from players 2020-05-04 18:08:41 +02:00
Latapostrophe
63485c3dbe Merge branch 'v2-master' into followme-internal 2020-05-03 22:37:26 +02:00
MascaraSnake
5c0559a3d2 Adapt linedef executor delay to UDMF 2020-05-03 20:41:37 +02:00
MascaraSnake
8efec04051 Remove POLYOBJECTS and POLYOBJECTS_PLANES defines 2020-05-02 12:08:31 +02:00
MascaraSnake
58508e199d Make the laser thinker find the FOF itself instead of storing it in the thinker struct 2020-05-02 10:03:16 +02:00
MascaraSnake
7f74258951 Merge branch 'next' into udmf-next
# Conflicts:
#	src/p_saveg.c
#	src/p_slopes.c
#	src/p_spec.c
2020-05-01 12:44:39 +02:00
MascaraSnake
e967c32a10 Merge branch 'more-thinker-refactor' into 'next'
More thinker refactoring

See merge request STJr/SRB2!900
2020-05-01 05:47:14 -04:00
MascaraSnake
5cf3fd0074 Merge branch 'next' into elevator-cleanup
# Conflicts:
#	src/p_saveg.c
2020-05-01 11:42:05 +02:00
MascaraSnake
2973b79715 Remove bogus comments from p_saveg.c 2020-05-01 11:25:32 +02:00
Monster Iestyn
edfbd799db Merge branch 'next' into netarchive-cleanup 2020-04-29 15:27:07 +01:00
Monster Iestyn
0ab7d0b4b5 Don't discard const, added missing & 2020-04-29 15:24:28 +01:00
Monster Iestyn
5f3a827609 Whoops the third 2020-04-29 14:45:52 +01:00
MascaraSnake
398ee65646 Store "no bosses" setting for lasers in thinker instead of checking sourceline. 2020-04-27 13:09:57 +02:00
MascaraSnake
40d0fb714d Store tag instead of sourceline in raise thinker 2020-04-27 12:54:08 +02:00
MascaraSnake
2d860cd362 Make new thinker loading functions set floordata/ceilingdata where necessary 2020-04-26 18:54:03 +02:00
MascaraSnake
bd40d8df9e Remove obsolete stuff from elevator_t 2020-04-26 18:38:45 +02:00
MascaraSnake
5a3883648d Accidentally changed the wrong SaveElevatorThinker call to SaveCrumbleThinker 2020-04-26 18:31:39 +02:00
MascaraSnake
38a3be00d0 T_StartCrumble refactoring, part 1 2020-04-26 16:51:14 +02:00
MascaraSnake
62ab099b6f Make T_StartCrumble use its own thinker data structure 2020-04-26 11:55:10 +02:00
Nev3r
dbf2b9c0f0 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2/ into udmf-multitag
# Conflicts:
#	src/p_floor.c
#	src/p_mobj.c
#	src/p_spec.c
#	src/r_segs.c
2020-04-25 10:47:45 +02:00
Monster Iestyn
d06d55e2ae created P_GetFFloorID to get an "ID" of an FOF in its target sector (an opposite to P_GetFFloorByID you could say!), rewrote floor/ceiling rover archiving code to use both P_GetFFloorID and P_GetFFloorByID 2020-04-24 22:29:41 +01:00
Monster Iestyn
cc7185ef30 no diff3 needed for line archiving 2020-04-24 20:58:38 +01:00
Monster Iestyn
c06b4913eb we don't actually need put/get pointers at all (plus with everything put into functions they wouldn't work properly anyway) 2020-04-24 20:57:48 +01:00
Monster Iestyn
ff944f5f94 split sector/lines archiving-related code into their own functions too 2020-04-24 20:40:50 +01:00
Monster Iestyn
d255d29942 remove statsec and statline as they appear to be entirely unused 2020-04-24 20:28:01 +01:00
Monster Iestyn
0916ca3642 Split off FOF archiving-related code into their own functions 2020-04-24 20:26:57 +01:00
MascaraSnake
d2e21afaf1 Merge branch 'next' into udmf-next
# Conflicts:
#	src/p_mobj.c
#	src/r_segs.c
2020-04-24 21:15:53 +02:00
Monster Iestyn
f26e8f3df7 Merge branch 'thinker-cleanup' into 'next'
Plane movement thinker cleanup

See merge request STJr/SRB2!880
2020-04-24 14:30:52 -04:00
Monster Iestyn
db9c14702d These are flags! Serves me right for just rushing this out 2020-04-24 16:53:54 +01:00
Monster Iestyn
d1e49fa926 Sync crumblestate in netgames 2020-04-24 16:40:09 +01:00
Nev3r
3c6ad3a9a8 Merge branch 'udmf-next' into udmf-multitag
# Conflicts:
#	src/doomdata.h
#	src/p_setup.c
2020-04-22 09:11:17 +02:00
James R
ccf1bdcb29 Put botvars in savegame 2020-04-20 22:09:49 -07:00
Nev3r
da165d2d22 Add textmap pitch and roll parsing, and mobj pitch and roll variables. 2020-04-19 14:51:55 +02:00
Nev3r
c6cc863a3a Merge branch 'udmf-next' into udmf-multitag
# Conflicts:
#	src/p_spec.c
2020-04-18 14:04:15 +02:00
MascaraSnake
059fded08c Fix NULL pointer crash involving stringargs 2020-04-18 12:23:01 +02:00
Nev3r
e7d68601cf Implement dynamic global taggroups/lists functionality. 2020-04-18 11:35:56 +02:00
MascaraSnake
0d21e4ad87 Eradicate levelspecthink_t 2020-04-18 11:05:58 +02:00
MascaraSnake
1d35442e16 Make T_BounceCheese use its own thinker struct 2020-04-18 10:45:21 +02:00
MascaraSnake
54de7584d1 Refactor T_ThwompSector 2020-04-18 10:26:03 +02:00
MascaraSnake
71f9fe167b Refactor T_NoEnemiesSector 2020-04-18 09:21:04 +02:00