Commit graph

727 commits

Author SHA1 Message Date
toaster
4502604007 Special saves!
All this refactoring, just to resolve #162. Specifically, it engages savegame events not at level load (except for savefile start) but on level completion, just after you've gotten all the intermission bonuses but before the intermission actually starts.

Also fixes a never-before-discovered bug where if the titlemap has LF_SAVEGAME, your save file will be overwritten upon returning to the title screen. This game is a mess of hacks, I swear...

One unintended side effect: It may actually be faster in some speedrun circumstances in mods with cutscenes to complete the map, exit back to the title screen, and reload the file. It's a common feature of optimal runs in games with cutscenes, though, and Marathon Run has a toggle for cutscenes, so I'm not particularly bothered.
2020-06-22 19:00:47 +01:00
SteelT
bff6b19056 Merge branch 'marathonmode' into 'next'
MARATHON RUN

See merge request STJr/SRB2!941
2020-06-17 19:36:10 -04:00
MascaraSnake
d07c376f6d Adapt POF_SPLAT to UDMF setup 2020-06-09 09:44:49 +02:00
MascaraSnake
4a0206b38d Merge branch 'next' into udmf-next
# Conflicts:
#	src/p_mobj.c
#	src/p_polyobj.c
2020-06-09 09:38:01 +02:00
MascaraSnake
11493e61d2 Merge branch 'executordelay' into 'udmf-next'
UDMF linedef executor delay

See merge request STJr/SRB2!918
2020-06-01 07:57:23 -04:00
MascaraSnake
371a1851e3 Polyobject waypoint movement: Prevent infinite loop if all waypoints are in the same location 2020-05-16 10:24:06 +02:00
Jaime Passos
1a79f6246d Merge remote-tracking branch 'origin/next' into pictureformats 2020-05-15 01:34:54 -03:00
toaster
d593e2e1bb 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
d3ec12c842 Merge branch 'udmf-next' into executordelay
# Conflicts:
#	src/p_spec.c
2020-05-13 09:55:25 +02:00
MascaraSnake
d708789c3a Store waypoints (for zoom tubes, rope hangs, polyobjects) explicitly 2020-05-12 23:50:30 +02:00
Jaime Passos
39c5ab4e17 Merge remote-tracking branch 'origin/next' into gtr-fixes 2020-05-09 17:12:52 -03:00
MascaraSnake
df3ca712d8 Move polyobject crush option to the first line args 2020-05-04 23:27:26 +02:00
MascaraSnake
8c36b9efa5 Adapt basic PolyObject setup to UDMF 2020-05-04 22:40:49 +02:00
MascaraSnake
6e7373a475 Merge branch 'next' into udmf-next 2020-05-04 20:32:56 +02:00
MascaraSnake
f26648e6f2 Adapt linedef executor delay to UDMF 2020-05-03 20:41:37 +02:00
MascaraSnake
7fec1211fd Bugfix in XGL3 ZNODES parsing 2020-05-03 19:28:52 +02:00
MascaraSnake
700b340827 Allow map-wide gravity to be set via level header 2020-05-03 18:33:18 +02:00
MascaraSnake
4b87bee759 Add level header options for setting special stage time and spheres requirements 2020-05-03 17:56:49 +02:00
MascaraSnake
485a4e5035 Remove POLYOBJECTS and POLYOBJECTS_PLANES defines 2020-05-02 12:08:31 +02:00
Nev3r
9ebb4071ee 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
MascaraSnake
3170f2b8c3 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
d1d006a1a7 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
4ef8093e92 Merge branch 'emeraldspawnfix' into 'next'
Fix emerald hunt not working properly, part 2

See merge request STJr/SRB2!887
2020-04-23 15:41:27 -04:00
sphere
f85bfc87f5 Move variable declarations outside of for loops. 2020-04-22 23:17:18 +02:00
sphere
e26788d014 Fix variable-length array definition, just in case. 2020-04-22 23:10:43 +02:00
sphere
01a1297631 Make P_SpawnEmeraldHunt even more concise, using Fisher-Yates shuffle. 2020-04-22 22:46:12 +02:00
sphere
b254cb186b Fix a mistake with P_SpawnEmeraldHunt and make it more concise. 2020-04-22 20:38:58 +02:00
sphere
25affe6948 Make emerald hunt shards spawn at correct heights, and add Float option. 2020-04-22 18:58:40 +02:00
Nev3r
ab7690346d Merge branch 'udmf-thingargs' into udmf-multitag
# Conflicts:
#	src/doomdata.h
#	src/lua_mobjlib.c
#	src/p_setup.c
2020-04-22 10:54:27 +02:00
Nev3r
de3ad9bc43 Merge branch 'udmf-next' into udmf-multitag
# Conflicts:
#	src/doomdata.h
#	src/p_setup.c
2020-04-22 09:11:17 +02:00
Nev3r
1afb0eb79f Initialize pitch and roll on textmap mapthings too. 2020-04-22 09:00:29 +02:00
Nev3r
188ad67c58 Merge branch 'udmf-next' into udmf-thingargs
# Conflicts:
#	src/p_setup.c
2020-04-22 08:58:40 +02:00
Nev3r
3d9d9d74f6 Merge branch 'udmf-pitch-and-roll' into 'udmf-next'
Add textmap pitch and roll parsing, and mobj pitch and roll variables.

See merge request STJr/SRB2!882
2020-04-21 12:27:26 -04:00
Louis-Antoine
f6e2c7063f Rename lumpinfo_t.name2 to lumpinfo_t.fullname 2020-04-20 23:40:41 +02:00
Nev3r
5c605a8a39 Merge branch 'udmf-next' into udmf-multitag 2020-04-20 09:05:55 +02:00
Nev3r
7cf08e1a08 Add mapthing scale support; fields scale, scalex and scaley set the only mapthing scale field alike. 2020-04-19 15:18:36 +02:00
Nev3r
ca10b38b9c Add textmap pitch and roll parsing, and mobj pitch and roll variables. 2020-04-19 14:51:55 +02:00
MascaraSnake
09506112d7 Add enums to encapsulate the textmap colormap settings 2020-04-18 17:15:25 +02:00
MascaraSnake
f0c63ce76a Merge branch 'udmf-next' into udmf-argenums 2020-04-18 16:56:21 +02:00
MascaraSnake
111da04b07 Add enums to encapsulate the textmap slope settings 2020-04-18 16:55:56 +02:00
Nev3r
ffc161e2aa Merge branch 'udmf-next' into udmf-multitag
# Conflicts:
#	src/p_spec.c
2020-04-18 14:04:15 +02:00
Nev3r
2b2a18fdf1 Merge branch 'udmf-colormaps' into 'udmf-next'
UDMF colormaps

See merge request STJr/SRB2!855
2020-04-18 07:42:24 -04:00
Nev3r
aa0d76f8fa Delete tags. 2020-04-18 00:23:24 +02:00
Nev3r
e87ad0fb38 Delete old taglists. 2020-04-18 00:05:55 +02:00
MascaraSnake
fd598f315e Add an enum for crumblestate 2020-04-17 23:54:37 +02:00
Nev3r
ae07b7c96c Netsynch the sector local taglists. 2020-04-17 22:29:26 +02:00
Nev3r
b5eaad42fc Carry over a considerable case regarding accessing the old tag vars. 2020-04-17 18:15:25 +02:00
Nev3r
209b8e7678 Map loading should consider tag 0 as a valid tag and add its respective entries just like the rest of tags. 2020-04-17 11:21:40 +02:00
Nev3r
dd46b1ab44 P_ConvertBinaryMap() line conversion now uses the first tag from taglists. 2020-04-17 11:16:01 +02:00
Nev3r
b9decb2837 Polyobject spawning now use the taglist. 2020-04-17 10:30:38 +02:00
Nev3r
4fc07473fd Skybox spawning now uses the taglists. 2020-04-17 10:05:50 +02:00
Nev3r
81be6b4067 Thing-based slope vertexes use taglists now. 2020-04-17 10:04:11 +02:00
Nev3r
35f539e398 Merge branch 'udmf-next' into udmf-multitag 2020-04-14 22:21:32 +02:00
Nev3r
d40713d08b Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2/ into udmf-next 2020-04-14 22:20:54 +02:00
Nev3r
74bd23c275 Actually remove the entire code block in T_MovePlane(), and remove line_t.tagline as it served no other purpose. 2020-04-13 15:17:53 +02:00
Nev3r
a7e99ab5cf Added static multitag read and storage on mapload. 2020-04-12 11:56:36 +02:00
Nev3r
ca694c8c43 Merge branch 'udmf-next' into udmf-thingargs 2020-04-12 10:02:12 +02:00
Nev3r
4128f826b7 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2/ into udmf-next
# Conflicts:
#	src/lua_hooklib.c
2020-04-12 09:57:19 +02:00
Nev3r
21de33bd08 Add mapthing arg support. 2020-04-11 12:54:34 +02:00
James R
b8d40a5783 Merge branch 'dye' into 'next'
Expose colorization to mappers and SOC

See merge request STJr/SRB2!679
2020-04-09 19:50:32 -04:00
MascaraSnake
2133bc89e6 Merge branch 'udmf-next' into udmf-colormaps 2020-03-22 08:05:05 +01:00
MascaraSnake
1580e14cbc 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
892a8dd6e7 Make SRB2 flat like Earth 2020-03-20 18:55:29 +01:00
MascaraSnake
0ecf8616ba Add sector flag that protects the colormap from being changed 2020-03-20 12:19:02 +01:00
MascaraSnake
7cf9ad2f2b Adapt setup of colormap linedefs 2020-03-20 11:19:30 +01:00
Louis-Antoine
e3cbdf8fab Use HAVE_BLUA as fuel for my fireplace 2020-03-19 18:36:14 +01:00
Monster Iestyn
31b1188a3e Merge branch 'master' into next 2020-03-15 20:32:43 +00:00
MascaraSnake
c2443b8e8c Merge branch 'udmf-formatcheck' into udmf-colormaps 2020-03-15 16:26:00 +01:00
MascaraSnake
f689bc88aa Add boolean variable that indicates if current map is in UDMF format 2020-03-15 16:23:15 +01:00
MascaraSnake
bc8a1350e4 Merge branch 'udmf-next' into udmf-colormaps 2020-03-15 09:58:39 +01:00
MascaraSnake
e545e5f9ba Add UDMF colormap fields 2020-03-15 09:55:57 +01:00
Nev3r
68f60f3c29 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2/ into udmf-next 2020-03-11 09:31:31 +01:00
Monster Iestyn
f4cb6e1f5e Include r_skins.h instead of r_things.h in many files where all they wanted from it was skins stuff
(oddly enough, this actually revealed some secret file dependencies previously included via r_things.h! I also needed to include d_player.h in r_skins.h itself it seems)
2020-03-09 13:54:56 +00:00
Jaime Passos
26e367eb9b Merge remote-tracking branch 'origin/next' into pictureformats 2020-03-07 20:43:16 -03:00
Louis-Antoine
29d8389461 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2.git into resend-gamestate 2020-02-29 13:43:47 +01:00
Jaime Passos
d3ed5ad44f Race is Competition without the lives 2020-02-28 23:47:38 -03:00
Jaime Passos
94738bfd2d Don't get chosen as the tagger if you're a spectator 2020-02-23 19:28:16 -03:00
SteelT
a1cf58cf7f Merge branch 'update-copyright-year' into 'master'
Update copyright year

See merge request STJr/SRB2!801
2020-02-21 20:59:56 -05:00
James R
fb0bedf02c Merge branch 'ogl-colorbug' into 'master'
Fix OpenGL "color bug"

See merge request STJr/SRB2!795
2020-02-20 19:32:34 -05:00
James R
7060083db5 Update copyright year to 2020 2020-02-19 14:08:45 -08:00
Tatsuru
3022e38d15 Merge branch 'next' of git@git.magicalgirl.moe:STJr/SRB2.git into Tatsuru/SRB2-dye
# Conflicts:
#	src/d_player.h
#	src/dehacked.c
2020-02-19 17:46:18 -03:00
Tatsuru
80edefa56e Merge branch 'next' of git@git.magicalgirl.moe:STJr/SRB2.git into dye 2020-02-19 17:32:43 -03:00
Jaime Passos
2893803c68 Merge remote-tracking branch 'origin/next' into pictureformats 2020-02-19 02:25:36 -03:00
James R
8054f341a1 Merge branch 'startup-file-not-found' into 'master'
Fix the issue !678 did, but just don't exit if the file was added twice

See merge request STJr/SRB2!753
2020-02-18 21:50:11 -05:00
MascaraSnake
cae99654be Merge branch 'next' into udmf-next 2020-02-18 18:39:11 +01:00
Sally Cochenour
07d71778dc FIX COLOR BUG 2020-02-17 01:19:28 -03:00
MascaraSnake
24de2968a3 Some fixes for the linedef alpha field 2020-02-10 20:26:29 +01:00
James R
57492347ed Don't I_Error on startup files only if a file was added twice 2020-02-01 19:32:08 -08:00
Louis-Antoine
d02c4c0cc7 Add "resendgamestate" command 2020-01-31 15:57:04 +01:00
Jaime Passos
cf7b4d826a Remove redundancy 2020-01-26 23:46:07 -03:00
Monster Iestyn
ef53672deb Merge branch 'master' into next
# Conflicts:
#	src/g_game.c
2020-01-26 19:23:05 +00:00
MascaraSnake
cedfc02f19 Implement linedef alpha field (replaces specials 900-908) 2020-01-26 12:24:52 +01:00
MascaraSnake
d947558576 Use tag instead of angle for skyboxes 2020-01-25 10:26:38 +01:00
MascaraSnake
5656d77c82 Use tag instead of angle for polyobject spawn points and anchors 2020-01-25 10:15:20 +01:00
MascaraSnake
37375972e2 Use tag field to setup vertex slopes 2020-01-25 10:01:01 +01:00
MascaraSnake
261f049f6c Add mapthing tag field (not used yet) 2020-01-25 09:52:13 +01:00
MascaraSnake
60cde39042 Rename some UDMF fields whose names have different meanings in other UDMF implementations 2020-01-24 23:02:42 +01:00
MascaraSnake
97c58957ee Merge branch 'next' into udmf-next 2020-01-24 22:38:26 +01:00
Louis-Antoine
b0b22b53d6 Ignore disconnected players in tag gametypes
Disconnected players do not become IT at round start.

If all non-ITs are disconnected, the round ends.

If all ITs are disconnected, one of the non-ITs
becomes IT, or the round ends if in Hide & Seek.
2020-01-23 19:58:13 +01:00
Louis-Antoine
f209721ded Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2.git into keep-body
# Conflicts:
#	src/g_game.c
#	src/p_setup.c
2020-01-22 03:57:22 +01:00