Commit graph

578 commits

Author SHA1 Message Date
SteelT
dbd5198ac2 Merge branch 'marathonmode' into 'next'
MARATHON RUN

See merge request STJr/SRB2!941
2020-06-17 19:36:10 -04:00
Lachlan Wright
5263b8cf63 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
LJ Sonic
aeeb6e1b02 Merge branch 'next' into 'fix-spawn-desynch'
# Conflicts:
#   src/p_map.c
2020-06-01 08:15:02 -04:00
lachwright
48f167d75c Merge branch 'next' into dashmode-fixes 2020-05-30 18:13:21 +08:00
Monster Iestyn
239b758cd1 Merge branch 'master' into next 2020-05-28 16:34:06 +01:00
Louis-Antoine
d886e35576 Fix potential desynch when a player spawns 2020-05-28 11:03:35 +02:00
mazmazz
0294f8d26a Fix NOWIPE bugs with colormap fade and title card 2020-05-25 00:20:23 -04:00
SwitchKaze
58cac1fd73 Make colors UINT16, increase color freeslots to 1024 2020-05-23 19:35:36 -05:00
toaster
76da8262e6 Correctly reset map/timer for retries where the first map in Marathon Run is LF_NORELOAD (by forcing a reload when the retry option is used). 2020-05-15 21:17:57 +01:00
toaster
5495ea16aa * In-game timer option! Doesn't tick in intermission or in lag, only when a frame is actually run. Realtime option remains default.
* Tweak retry behaviour to restart timer and not subtract life if you're on the first level and haven't hit a checkpoint yet.
2020-05-15 16:33:20 +01:00
toaster
7c97218284 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2.git into marathonmode
# Conflicts:
#	src/doomdef.h
2020-05-15 13:23:37 +01: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
sphere
4d9d125a99 Fix some errors and add some comments. Also, actnum is not an INT32. 2020-05-12 17:20:28 +02:00
lachwright
1568114d13 Dashmode fixes:
- Don't force the player's default normalspeed and jumpfactor while not in dashmode
- Properly trim the fuse for followmobj ghosts spawned during dashmode
- Add deliberate dashmode ghosts for Metal's jet fume
2020-05-01 08:26:23 +08:00
toaster
0f591967ff Disable continues outside of no-save/Ultimate by default, but allow SOC to re-enable them globally.
Please look at the merge request description for a full explanation, since I know the vanilla team has been hashing this out and I don't want to add fuel to the fire without at least presenting a solid case.
2020-03-26 20:16:44 +00:00
Monster Iestyn
ffb2674a6e Merge branch 'next' into demos-refactor
# Conflicts:
#	src/g_game.c

(also update g_demo.c)
2020-03-20 17:48:31 +00:00
Monster Iestyn
690ccb49d8 Create G_FreeGhosts, for the benefit of G_DeferedInitNew (assuming it actually needs to do ghosts = NULL; at all) 2020-03-19 20:42:51 +00:00
Monster Iestyn
ac7a71f85b Created g_demo.c/.h, for the demo recording and playback code that formerly lived in g_game.c 2020-03-19 20:09:55 +00:00
Louis-Antoine
46df2b9551 Use HAVE_BLUA as fuel for my fireplace 2020-03-19 18:36:14 +01:00
Steel Titanium
98be23e3c2 Merge branch 'master' into next 2020-03-18 15:42:02 -04:00
SteelT
f3a275930b Merge branch 'deadzone-sigfpe-fix' into 'master'
Fix division-by-0 crash from 100% gamepad deadzones, and lack of input from 0% deadzones

See merge request STJr/SRB2!838
2020-03-18 15:39:04 -04:00
SteelT
2e25a5b56d Merge branch 'viewpointswitch-fix' into 'next'
Fix incorrect newdisplayplayer in forced ViewpointSwitch

See merge request STJr/SRB2!814
2020-03-18 15:34:18 -04:00
Monster Iestyn
f3bfa2b1db Merge branch 'master' into next 2020-03-15 20:32:43 +00:00
Monster Iestyn
f186def0bf 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
Zwip-Zwap Zapony
160b5b9b8e More gamepad deadzone tweakage 2020-03-04 21:44:57 +01:00
Zwip-Zwap Zapony
c2a7f0c98e Hotfix for 100% deadzone returning 0 input
It makes more sense for 100% deadzone to just make it so that
you have to push the axis all the way to trigger it,
rather than 100% deadzone resulting in no axis input
ever happening... So, let's make it be the former way instead
2020-03-04 21:11:55 +01:00
Zwip-Zwap Zapony
04921ab484 Fix division-by-0 crash with gamepad deadzones
Fix division-by-0 crash with gamepad deadzones
The problem was that it checked if A was more than B,
then lowered A to a max value, then subtracted B from A,
then divided something by that, without checking if A minus B was 0,
allowing division by 0 if B was the same as that max value

This fixes that by making sure that A is less than the max value
2020-03-04 17:31:52 +01:00
Jaime Passos
84f977ff7a Fix G_TOLFlag returning the wrong type 2020-03-02 00:20:53 -03:00
Jaime Passos
745a6bb0f0 Fix incorrect newdisplayplayer in forced ViewpointSwitch 2020-02-23 12:14:52 -03:00
Steel Titanium
fc042e90f0 Merge branch 'master' into next 2020-02-21 21:01:29 -05:00
James R
2274129f57 Update copyright year to 2020 2020-02-19 14:08:45 -08:00
James R
b329536bd1 Merge branch 'titlecard-options' into 'next'
Allow more options for when the titlecard shows up

See merge request STJr/SRB2!765
2020-02-18 21:52:03 -05:00
Monster Iestyn
41bdc91bf0 Merge branch 'master' into next 2020-02-18 17:38:05 +00:00
James R
c4003109b9 Merge branch 'tolfix' into 'master'
Don't freeslot TOL_ twice

See merge request STJr/SRB2!779
2020-02-16 23:52:45 -05:00
Jaime Passos
2a0495f11b Merge remote-tracking branch 'origin/next' into fix-overtime 2020-02-17 00:48:42 -03:00
fickleheart
427e99f222 Merge remote-tracking branch 'upstream/master' into titlecard-options 2020-02-16 21:32:27 -06:00
Jaime Passos
23f148f32d Fix overtime not working 2020-02-15 13:07:53 -03:00
Jaime Passos
83112c8248 Add MAXTOL 2020-02-12 13:41:30 -03:00
James R
0723383587 Remove extra tokens if we got all 7 emeroods 2020-02-11 19:36:09 -08:00
fickleheart
0de2068b88 More fixes for titlecard option stuff 2020-02-09 17:53:50 -06:00
Jaime Passos
c05b613724 Fix broken GT_ constants with custom gametypes 2020-02-08 21:40:30 -03:00
fickleheart
33c103c319 Allow more options for when the titlecard shows up 2020-02-08 11:13:40 -06:00
Jaime Passos
447ee1a04c Remove redundancy 2020-01-26 23:46:07 -03:00
LJ Sonic
0beae26e9d Merge branch 'keep-body' into 'next'
Let clients rejoin the server without losing their status

See merge request STJr/SRB2!722
2020-01-24 18:50:03 -05:00
Louis-Antoine
a997683d1c 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
7d615ed94b Refactor player spawning code a little 2020-01-22 03:19:15 +01:00
Louis-Antoine
bb74b090cb Ignore players towards exit count 30 seconds after their disconnection 2020-01-22 03:11:05 +01:00
Louis-Antoine
c2682ac1b6 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
Zwip-Zwap Zapony
d1c7b9a4a8 Separate "turnmultiplier"s for splitscreen players
This fixes player 2 using player 1's "cam_turnmultiplier"
instead of player 2's "cam2_turnmultiplier"
2020-01-21 14:53:05 +01:00
Alam Ed Arias
43a78e6821 Merge branch 'master' into next 2020-01-17 11:12:10 -05:00