Commit graph

380 commits

Author SHA1 Message Date
Jaime Passos
7911deebf8 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2 into pictureformats 2020-07-06 19:29:14 -03:00
Nev3r
fd5b05cafc Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2/ into udmf-next 2020-07-06 11:13:27 +02:00
LJ Sonic
6e7446dea3 Merge branch 'ff_horizontalflip' into 'next'
FF_HORIZONTALFLIP and mobj->mirrored (sprite enhancements)

See merge request STJr/SRB2!987
2020-07-03 16:56:32 -04:00
Nev3r
ff8759e507 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2/ into udmf-next
# Conflicts:
#	src/hardware/hw_main.c
2020-06-30 20:29:48 +02:00
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
kaysrishaq
cad1f57b1e FF_HORIZONTALFLIP and mobj->mirrored (sprite enhancements) 2020-06-19 11:11:18 -04: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
4a0206b38d Merge branch 'next' into udmf-next
# Conflicts:
#	src/p_mobj.c
#	src/p_polyobj.c
2020-06-09 09:38:01 +02:00
Lachlan Wright
191e2e094d Merge branch 'fix-spawn-desynch' into 'next'
Fix desynch when a player spawns

See merge request STJr/SRB2!977
2020-06-08 05:25:41 -04:00
Monster Iestyn
9e4ed738b7 Sync turnobjs for polyrotate_t thinkers in netgames 2020-06-04 21:31:26 +01:00
LJ Sonic
e2b860dc28 Merge branch 'next' into 'fix-spawn-desynch'
# Conflicts:
#   src/p_map.c
2020-06-01 08:15:02 -04:00
MascaraSnake
508160ed42 Use 0 instead of 0xffff as dummy mobjnum 2020-05-31 22:58:14 +02:00
MascaraSnake
3a4502fa87 Netsync waypoint sequences 2020-05-31 22:44:25 +02:00
Louis-Antoine
67eef5a37f Fix potential desynch when a player spawns 2020-05-28 11:03:35 +02:00
SwitchKaze
b37c73b008 Make colors UINT16, increase color freeslots to 1024 2020-05-23 19:35:36 -05:00
MascaraSnake
6f854f2de3 Merge branch 'more-polyobject-cleanup' into 'next'
Smooth polyobject movement and other cleanup

See merge request STJr/SRB2!947
2020-05-18 16:00:55 -04:00
MascaraSnake
a7c7f7afa9 Merge branch 'fof-cleanup' into 'next'
FOF cleanup

See merge request STJr/SRB2!910
2020-05-17 02:30:16 -04:00
MascaraSnake
3680b246c9 T_PolyObjWaypoint: We can find waypoints in constant time now, so no need to store the waypoint mobj in the thinker anymore 2020-05-16 09:03:02 +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
7413da918b Store PolyObject waypoint return behavior in an enum 2020-05-13 16:21:47 +02:00
MascaraSnake
b561ee7921 Remove diffx/y/z from polywaypoint_t, since they're always 0 anyway 2020-05-13 14:40:07 +02:00
MascaraSnake
d3ec12c842 Merge branch 'udmf-next' into executordelay
# Conflicts:
#	src/p_spec.c
2020-05-13 09:55:25 +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
485a4e5035 Remove POLYOBJECTS and POLYOBJECTS_PLANES defines 2020-05-02 12:08:31 +02:00
MascaraSnake
2a39265156 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
5c8b50ca8b 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
7922306113 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
790affd13b Merge branch 'next' into elevator-cleanup
# Conflicts:
#	src/p_saveg.c
2020-05-01 11:42:05 +02:00
MascaraSnake
be0959fa90 Remove bogus comments from p_saveg.c 2020-05-01 11:25:32 +02:00
Monster Iestyn
0d3876abf3 Merge branch 'next' into netarchive-cleanup 2020-04-29 15:27:07 +01:00
Monster Iestyn
2f0bf3860f Don't discard const, added missing & 2020-04-29 15:24:28 +01:00
Monster Iestyn
d89d2505bb Whoops the third 2020-04-29 14:45:52 +01:00
MascaraSnake
4f3d837835 Store "no bosses" setting for lasers in thinker instead of checking sourceline. 2020-04-27 13:09:57 +02:00
MascaraSnake
556c2a8c18 Store tag instead of sourceline in raise thinker 2020-04-27 12:54:08 +02:00
MascaraSnake
c026b707ce Make new thinker loading functions set floordata/ceilingdata where necessary 2020-04-26 18:54:03 +02:00
MascaraSnake
82bf72f5e1 Remove obsolete stuff from elevator_t 2020-04-26 18:38:45 +02:00
MascaraSnake
f4282718dc Accidentally changed the wrong SaveElevatorThinker call to SaveCrumbleThinker 2020-04-26 18:31:39 +02:00
MascaraSnake
554de0e0f5 T_StartCrumble refactoring, part 1 2020-04-26 16:51:14 +02:00
MascaraSnake
295ed303af Make T_StartCrumble use its own thinker data structure 2020-04-26 11:55:10 +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
Monster Iestyn
7dda5f6b94 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
e406a7bef5 no diff3 needed for line archiving 2020-04-24 20:58:38 +01:00
Monster Iestyn
1e61229cb7 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
c1d2b8301b split sector/lines archiving-related code into their own functions too 2020-04-24 20:40:50 +01:00
Monster Iestyn
2d45decbb0 remove statsec and statline as they appear to be entirely unused 2020-04-24 20:28:01 +01:00
Monster Iestyn
08a7fcbe8d Split off FOF archiving-related code into their own functions 2020-04-24 20:26:57 +01: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
9df5d6e1e0 These are flags! Serves me right for just rushing this out 2020-04-24 16:53:54 +01:00
Monster Iestyn
2419b65f79 Sync crumblestate in netgames 2020-04-24 16:40:09 +01: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
ca10b38b9c Add textmap pitch and roll parsing, and mobj pitch and roll variables. 2020-04-19 14:51:55 +02:00
Nev3r
ffc161e2aa Merge branch 'udmf-next' into udmf-multitag
# Conflicts:
#	src/p_spec.c
2020-04-18 14:04:15 +02:00
MascaraSnake
2a300bcea4 Fix NULL pointer crash involving stringargs 2020-04-18 12:23:01 +02:00
Nev3r
b7c4ed9c6b Implement dynamic global taggroups/lists functionality. 2020-04-18 11:35:56 +02:00
MascaraSnake
54cbd66999 Eradicate levelspecthink_t 2020-04-18 11:05:58 +02:00
MascaraSnake
ab17267363 Make T_BounceCheese use its own thinker struct 2020-04-18 10:45:21 +02:00
MascaraSnake
08f1e03e79 Refactor T_ThwompSector 2020-04-18 10:26:03 +02:00
MascaraSnake
29d33f0a93 Refactor T_NoEnemiesSector 2020-04-18 09:21:04 +02:00
MascaraSnake
0038605979 Make T_MarioBlock use its own thinker data structure 2020-04-18 02:05:23 +02:00
MascaraSnake
7e2f95c3f5 Refactor T_ContinuousFalling 2020-04-18 01:42:13 +02:00
MascaraSnake
cc0f686c95 Refactor T_FloatSector 2020-04-18 00:26:49 +02:00
Nev3r
7c11091c40 Remove old tag list netgame packing/unpacking. 2020-04-17 23:30:47 +02:00
Nev3r
e2a98a1591 Double fuck. 2020-04-17 23:05:41 +02:00
MascaraSnake
9b27d004e3 Remove the spike thinker, which hasn't been necessary for a while now 2020-04-17 22:54:35 +02:00
Nev3r
0c2fb80ec9 Fuck. 2020-04-17 22:41:04 +02:00
Nev3r
ae07b7c96c Netsynch the sector local taglists. 2020-04-17 22:29:26 +02:00
MascaraSnake
89539512f6 Make T_EachTimeThinker use its own struct 2020-04-17 14:00:48 +02:00
MascaraSnake
63a901b714 -Remove superfluous variables from raise_t
-Cleanup signatures of P_AddRaiseThinker and P_AddAirbob
2020-04-17 11:11:36 +02:00
MascaraSnake
d0c473c9ae Make T_RaiseSector use its own thinker struct instead of levelspecthink_t 2020-04-17 09:58:53 +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
778ef86fee Remove the bridge thinker code. 2020-04-14 10:31:07 +02: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
Louis-Antoine
e3cbdf8fab Use HAVE_BLUA as fuel for my fireplace 2020-03-19 18:36:14 +01:00
Monster Iestyn
3f43dd22f9 Merge branch 'skins-refactor' into 'master'
Skins refactor

See merge request STJr/SRB2!843
2020-03-15 15:31:49 -04: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
40e728fdb5 One line fix: don't assume 0 (aka SPR2_STND) is the default value for sprite2, but rather what the state sets for it
This fixes some issues with a custom character tested during netplay, which did not have SPR2_WAIT sprites and therefore fell back to SPR2_STND sprites. Unfortunately, the fact they used SPR2_STND instead meant the sprite2 was not synced at all!
2020-03-09 15:04:22 +00: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
Steel Titanium
76f26cda24 Merge branch 'master' into next 2020-02-21 21:01:29 -05:00
James R
7060083db5 Update copyright year to 2020 2020-02-19 14:08:45 -08:00
Jaime Passos
2893803c68 Merge remote-tracking branch 'origin/next' into pictureformats 2020-02-19 02:25:36 -03:00
MascaraSnake
cae99654be Merge branch 'next' into udmf-next 2020-02-18 18:39:11 +01:00
James R
d0b9027d0a Merge branch 'viewroll' into 'next'
Rolling

See merge request STJr/SRB2!690
2020-02-17 00:10:57 -05:00
James R
fb66691991 Merge branch 'colormap_flags_refactor' into 'next'
Clean up the mess that is extracolormap_t::fog

See merge request STJr/SRB2!790
2020-02-16 23:28:26 -05:00
fickleheart
c4b390bc76 Merge remote-tracking branch 'upstream/master' into viewroll 2020-02-16 21:32:57 -06:00
Steel Titanium
cb97aafd05
Fix object shadow not appearing for mid-joiners 2020-02-16 18:45:49 -05:00
MascaraSnake
512c6f24a9 Clean up the mess that is extracolormap_t::fog 2020-02-16 20:19:24 +01:00
Louis-Antoine
d02c4c0cc7 Add "resendgamestate" command 2020-01-31 15:57:04 +01:00
Louis-Antoine
014b93406e Store most data in gamestate instead of server config packet 2020-01-31 15:29:22 +01:00
fickleheart
bea7ad2185 Merge remote-tracking branch 'upstream/next' into viewroll 2020-01-26 18:01:58 -06: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
Louis-Antoine
d374bf4f9b Let clients rejoin the server without losing their status
This is accomplished by simply preserving
the player's body after disconnecting.

Bodies will despawn after the number of minutes
specified by the "rejointimeout" console variable (float).
A value of 0 disables the feature completely.

Clients rejoining are identified by their IP address,
and may rejoin even if the server is full or joins are disabled,
for as long as their body remains.

From a technical standpoint, when the user disconnects,
the player they were controlling does not leave,
the underlying player_t just keeps working normally,
except it does not receive any input anymore.
When the user reconnects, they are simply "relinked"
to their player_t.

Those "soulless" players can be identified through
their "quittime" field, which is the number of tics
elapsed since the user disconnected, or zero
if still connected. "quittime" is exposed to Lua.
2020-01-22 03:05:08 +01:00
fickleheart
7cf563eadd Un/archive viewrollangle in netsaves 2020-01-17 18:32:13 -06:00
MascaraSnake
2d7b43c244 Implement linedef string arguments 2020-01-08 08:42:35 +01:00
Jaime Passos
5a2ad5c2f3 Merge remote-tracking branch 'origin/next' into pictureformats 2020-01-07 16:10:25 -03:00