Commit graph

377 commits

Author SHA1 Message Date
Louis-Antoine
412ba38a81 Refactor player spawning code a little 2020-01-22 03:19:15 +01:00
Louis-Antoine
73d0549fa4 Ignore players towards exit count 30 seconds after their disconnection 2020-01-22 03:11:05 +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
MascaraSnake
a3549cc8f2 Merge branch 'datestuff' into 'master'
Date stuff

See merge request STJr/SRB2Internal!618
2019-12-06 16:10:36 -05:00
Jaime Passos
d7bfe7d652 Merge branch 'lt-extraneous-parameters' into 'master'
Remove unnecessary function parameters from title card code

See merge request STJr/SRB2Internal!603
2019-12-06 14:22:39 -05:00
Steel Titanium
d415cd5c6d
Update copyright date on source files 2019-12-06 13:49:42 -05:00
toaster
2b5957fd1c Fix #457 and another bug I just realised in one fell swoop.
That is to say, MV_PERFECT can be applied in singleplayer, but that doesn't update your best rings on the map in record attack, so the thing being yellow doesn't make sense if your rings are (none). Therefore, make it a two-flag, two-bit process.
2019-12-05 09:47:29 +00:00
Jaime Passos
c0cc742fb8 Remove unnecessary function parameters from title card code 2019-12-05 01:58:19 -03:00
toaster
cbc49882bc Fix screen buffer not being cleared if a map command is used during the intermission. 2019-11-29 15:25:55 +00:00
Louis-Antoine
ec69195fc9 Keep counting players as finished even after dying 2019-11-27 17:32:02 +01:00
toaster
f1387a07a1 Instead of making conditions which check for death individually check for special stages to prevent lives loss, just set G_GametypeUsesLives to false in a special stage. 2019-11-26 12:30:32 +00:00
MascaraSnake
bdc0075ee0 Merge branch 'speclook' into 'master'
Speclook (resolves #340).

Closes #340

See merge request STJr/SRB2Internal!529
2019-11-25 13:20:00 -05:00
LJ Sonic
9541137f5e Merge branch 'join-bug-fix' into 'master'
Fix for the join bug

Closes #302, #338, and #347

See merge request STJr/SRB2Internal!545
2019-11-25 12:58:48 -05:00
toaster
71e74ca363 Fix a bunch of shit with MP special stages!
* Prevent an infinite quantity of Emeralds being spawned when P_GiveEmerald is called while a MP Special Stage is in session (resolves #347).
* Fix FuriousFox's ridiculous timer on special stage spawn (mentioned in the comments of the previous issue) by correctly marking spectator players in special stages as finished, and preventing the underflow.
2019-11-25 14:33:15 +00:00
Louis-Antoine
74ae5819c4 Account for exiting but non-finished players in G_EnoughPlayersFinished 2019-11-24 23:40:40 +01:00
toaster
fcfbd403f0 Make mouselook follow the first-person option when a spectator, even when other variables assume you're in third person (resolves #340). 2019-11-24 13:30:49 +00:00
Jaime Passos
e850d42bc2 fix RA fade 2019-11-23 18:15:09 -03:00
Jaime Passos
faa305a2f2 Fix crossfades
Fixes NoReload using the wrong wipestyle.
Also fixes non-titlemap title screen wipes using the wrong wipestyle.
2019-11-22 17:44:42 -03:00
MascaraSnake
f7c4ec1965 Merge branch 'mapvisitedupdate' into 'master'
Intermission fixes/cleanup

See merge request STJr/SRB2Internal!509
2019-11-22 14:11:31 -05:00
MascaraSnake
18babe3268 Merge branch 'followghost' into 'master'
Followmobj Record Attack fix (resolves #322).

Closes #322

See merge request STJr/SRB2Internal!510
2019-11-22 14:10:59 -05:00
MascaraSnake
a3a7dc6bed Merge branch 'remove-unused-levelwipes' into 'master'
(Cleanup) Remove unused levelwipes

See merge request STJr/SRB2Internal!507
2019-11-22 09:21:17 -05:00
toaster
143d4aa053 Move all the visitation/emblems/record attack update stuff into a single function, and call that function in two different places depending on whether the tally screen is visited or not. 2019-11-21 23:38:33 +00:00
toaster
990d9ed40c Correct location of followmobj scale write to match read (resolves #322).
Requires deleting all of RC1's Record Attack replays with followmobj characters, but I think you'll agree that's a reasonable price to pay.
2019-11-21 22:50:04 +00:00
toaster
7ff616b26e Do a whole bunch of cleanup for mapvisited and intermission related things.
* Move the visitation flags, Record Attack/NiGHTS Attack data, and emblem checking to outside of Y_StartIntermission.
* Y_CleanupScreenBuffer never got called for maps which skip the intermission, leading to a small memory leak; this is now fixed by moving it to G_AfterIntermission.
* Y_FollowIntermission was just G_AfterIntermission with modeattacking specific behaviour, but this is desired for all places where G_AfterIntermission is called, so just merge this into G_AfterIntermission.

Notably, these changes are necessary because there are now three maps in the main SP campaign which do not end with traditional intermissions. As a result, this fixes an issue where Black Core's tracks are not available in the Sound Test (due to MV_BEATEN never being applied).

Also, since I was here: Remove "gotperfect" from recorddata_t. This is a duplicate of `mapvisited[gamemap-1] & MV_PERFECT` which uses more memory. I have kept the new spacing in the gamedata for compatibility with RC1 savedatas, but moved it across to the original method everywhere else.
2019-11-21 16:10:28 +00:00
Jaime Passos
248306ccb0 Remove D_ProcessEvents call in G_PreLevelTitleCard 2019-11-21 02:16:09 -03:00
Jaime Passos
1e4060af8c remove unused levelwipes 2019-11-18 19:22:46 -03:00
Jaime Passos
8a05afa1aa Merge remote-tracking branch 'origin/master' into f_wipes 2019-11-18 18:48:19 -03:00
Jaime Passos
aa659836ee Merge remote-tracking branch 'origin/master' into titlecards 2019-11-18 17:55:47 -03:00
MascaraSnake
233ff8bd27 Merge branch 'exit-move-lj' into 'master'
Post-exit movement

See merge request STJr/SRB2Internal!486
2019-11-18 15:10:15 -05:00
MascaraSnake
5649365c19 Merge branch 'titlecard-lowercase-support' into 'master'
Lowercase support in titlecards

See merge request STJr/SRB2Internal!481
2019-11-18 15:05:02 -05:00
Jaime Passos
6920d20a0f map header option 2019-11-18 14:08:47 -03:00
Jaime Passos
e40bf85a6f lua 2019-11-18 13:50:44 -03:00
Jaime Passos
4ea3513076 Organize 2019-11-18 12:56:41 -03:00
Jaime Passos
6c98dde736 stuff 2019-11-18 11:39:54 -03:00
Nev3r
5dc494da16
Mapname lowercase support (#146)
*  Moved levelname parsing to before where uppercase conversion occurs.
*  Extended titlecard font range.
*  Replaced misc. "ZONE" strings with "Zone" for titlecard purposes.
*  Don't convert to uppercase when rendering the titlecard name.


Signed-off-by: Nev3r <apophycens@gmail.com>
2019-11-16 20:36:25 -05:00
Louis-Antoine
29501a992b Merge branch 'master' into exit-move-lj 2019-11-15 19:35:47 +01:00
Louis-Antoine
ff62a0732a Let players move after completing the level
This only takes effect in co-op,
and can be disabled with "exitmove off"
2019-11-15 15:35:28 +01:00
toaster
d91d07da5b Fix Metal Sonic not correctly flipping with gravity. (Doesn't require a new Metal recording.) 2019-11-15 13:10:41 +00:00
MascaraSnake
031a352f72 Merge branch 'titleflash' into 'master'
Improved title screen flashes

See merge request STJr/SRB2Internal!462
2019-11-14 18:07:05 -05:00
MascaraSnake
8f6890025c Merge branch 'secretstuff' into 'master'
The letter

See merge request STJr/SRB2Internal!438
2019-11-14 17:49:23 -05:00
toaster
da1b4f2277 Disable menu input on the title screen for the first second (ie, before the flash), to guarantee people won't start the menu the very first tic after the fade and ruin the animation. (Console and gif/screenshot recording still works, for the impatient.) 2019-11-14 12:52:34 +00:00
MascaraSnake
510f36fbdf Merge branch 'map-by-name' into 'master'
New map command

See merge request STJr/SRB2Internal!424
2019-11-13 13:45:36 -05:00
toaster
5729ba3cd2 Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into metalrecording
# Conflicts:
#	src/p_user.c
2019-11-12 21:56:46 +00:00
MascaraSnake
66123b8165 Merge branch 'internal-md3-vanilla-c' into 'master'
Internal MD3 merge 2 good riddance glBegin

See merge request STJr/SRB2Internal!362
2019-11-12 15:44:20 -05:00
MascaraSnake
aa5a3a46e8 Merge branch 'gamedata-param' into 'master'
Custom gamedata parameter

See merge request STJr/SRB2Internal!423
2019-11-11 11:36:53 -05:00
Louis-Antoine
068c712824 Shut up 2019-11-09 17:24:10 +01:00
Louis-Antoine
aa20e304cf Fix silly typo :P 2019-11-09 15:46:34 +01:00
toaster
915e50a1e4 Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into internal-md3-vanilla-c
Merge seems fine, but won't compile for some reason.
2019-11-02 18:34:12 +00:00
toaster
fc22d1adc3 * Restart Metal recording from beginning if retry is used.
* Disable lives when Metal recording (and have a big flashing REC instead, because I'm a riot).
* Correct some minor directionchar issues (some introduced in this branch, some not).
2019-11-02 11:56:51 +00:00
toaster
67f5b2245f Secret stuff. (I intend to keep candid discussion of this outside of any commits; you'll see me write up a comment describing what's going on here soon.) 2019-11-01 15:48:50 +00:00