Commit graph

349 commits

Author SHA1 Message Date
colette
ce29129f3a Fix resyncs never recovering if node and player mismatch 2020-03-08 13:09:39 -04:00
LJ Sonic
2cace6e147 Merge branch 'lua-io' into 'next'
Support for Lua's I/O library

See merge request STJr/SRB2!727
2020-03-01 11:12:45 -05:00
Jaime Passos
0362f53e9b Fix incorrect newdisplayplayer in forced ViewpointSwitch 2020-02-23 12:14:52 -03:00
Louis-Antoine
d19fe295e0 Fix buffer overrun with nodeless players 2020-02-22 15:08:17 +01:00
James R
f6df71ba54 Fix NOMD5 compiling 2020-02-21 21:06:04 -08:00
Louis-Antoine
778715f611 Cleanup code a little 2020-02-22 02:21:27 +01:00
Louis-Antoine
af9164f336 Improve join refusal handling 2020-02-22 02:17:21 +01:00
James R
2df4717f18 Fix NO_LUA compiling 2020-02-20 17:20:50 -08:00
James R
7060083db5 Update copyright year to 2020 2020-02-19 14:08:45 -08:00
Louis-Antoine
12959ff4a9 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2.git into lua-io 2020-02-19 22:40:54 +01:00
Louis-Antoine
20d054a679 Minor code cleanup 2020-02-19 22:37:30 +01:00
Louis-Antoine
7b13f0a2de Fix dedicated servers not running gamelogic
Note to future testers:
Remember to test dedicated servers before merging.
And splitscreen also.
2020-02-15 23:47:11 +01:00
James R
7805828c4a Merge remote-tracking branch 'origin/master' into next 2020-02-04 14:31:21 -08:00
James R
bf3b7fc5b0 Clean player name before joining!!! 2020-02-01 18:20:35 -08:00
Louis-Antoine
7dd0f2b808 Fix splitscreen player being unable to move 2020-02-01 20:19:39 +01:00
LJ Sonic
53e2cfbde2 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
MascaraSnake
7ac1b9298f Merge branch 'master' into next 2020-01-24 22:37:25 +01:00
Louis-Antoine
8bd897a269 Be silent when "kicking" a disconnected player
This lets the host manually remove a body if they want,
without polluting the chat with redundant messages.
2020-01-24 19:56:57 +01:00
Louis-Antoine
e8760fe5dd Update Lua I/O support to 2.2 2020-01-22 23:08:57 +01:00
Louis-Antoine
cfec8609f9 Fix missing declaration 2020-01-22 04:01:06 +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
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
Confusion
ad505a6fe7 Fix title screen broken when leaving during resynch 2020-01-19 17:55:22 +03:00
Alam Ed Arias
709489cab8 Merge branch 'master' into next 2020-01-16 12:08:36 -05:00
James R
223edd8ee0 Merge branch 'disable-titlemap-in-netgames' into 'master'
Disable title map when entering a netgame

See merge request STJr/SRB2!683
2020-01-13 16:47:17 -05:00
James R
2b95ea0135 Merge remote-tracking branch 'origin/master' into next 2020-01-12 14:17:52 -08:00
LJ Sonic
6eba68bc3b Merge branch 'fix-node-player-mixups' into 'master'
Fix node player mixups

See merge request STJr/SRB2!684
2020-01-12 15:57:20 -05:00
LJ Sonic
34f73ec083 Merge branch 'fix-node-player-mixups' into 'master'
Fix node numbers being used in place of player numbers

See merge request STJr/SRB2!681
2020-01-12 15:40:25 -05:00
Louis-Antoine
f6244ec9a4 Disable title map when entering a netgame 2020-01-12 20:08:41 +01:00
Louis-Antoine
e9108de365 Replace all instances of XD_KICK with a SendKick function 2020-01-12 19:43:04 +01:00
Louis-Antoine
5b34923352 Fix node numbers being used in place of player numbers 2020-01-12 18:34:08 +01:00
fickleheart
f8a3e3b898 Merge remote-tracking branch 'origin/next' into next-newcontrols 2020-01-04 09:57:09 -06:00
fickleheart
f0e6a56b6b Merge branch 'newcontrols' into next-newcontrols 2020-01-04 09:56:24 -06:00
fickleheart
794d74c4d7 Merge remote-tracking branch 'origin/master' into newcontrols 2020-01-04 09:35:12 -06:00
Alam Ed Arias
a26c5f5428 Merge branch 'master' into next 2020-01-03 14:56:37 -05:00
Louis-Antoine
1845266bc8 Do not save netgame-synced console variables
This is a bad thing to do, because if you join a server,
your game will save the host's settings.
2020-01-03 00:40:49 +01:00
fickleheart
b22de48c03 Merge branch 'next' into next-newcontrols
# Conflicts:
#	src/g_game.c
#	src/p_setup.c
2019-12-31 12:58:36 -06:00
James R
281f30c4fd Replace gametype with gametypename in SERVERINFO
PACKETVERSION 1
2019-12-30 22:18:55 -08:00
James R
80bb6fe7a0 Merge branch 'modid' into 'next'
Put a mod name in SERVERINFO

See merge request STJr/SRB2!577
2019-12-30 15:41:08 -05:00
fickleheart
a9b80bf1f0 Merge branch 'master' into newcontrols
# Conflicts:
#	src/d_netcmd.c
#	src/g_game.c
#	src/g_game.h
#	src/m_menu.c
2019-12-30 10:47:09 -06:00
Jaime Passos
c0390f5186 Merge remote-tracking branch 'origin/next' into rotsprite2 2019-12-26 20:27:29 -03:00
James R
6bd383621e More fine tuned versioning
You get a PACKETVERSION, for when some packets change format.

You get SRB2APPLICATION, for when you have big fucking mod.
2019-12-25 20:52:02 -08:00
Jaime Passos
a657392d39 ViewpointSwitch improvements. 2019-12-23 20:22:57 -03:00
Jaime Passos
61b72203a8 Merge remote-tracking branch 'origin/master' into gametype-clownery 2019-12-23 18:21:13 -03:00
James R
f584b61c93 Use a random port when connecting 2019-12-18 15:34:55 -08:00
Jaime Passos
aa619e1b34 Rankings tweaks 2019-12-18 12:36:02 -03:00
Jaime Passos
7807424633 NUMGAMETYPES vs gametypecount 2019-12-18 12:30:01 -03:00
Jaime Passos
299f2bd8cd GTR_TEAMFLAGS 2019-12-18 11:43:50 -03:00
Jaime Passos
ea5e0d28ed More gametype rules yay!! 2019-12-18 01:54:45 -03:00
Jaime Passos
7bfdc2caa0 Gametype rules draft, mind the debug command 2019-12-18 01:25:57 -03:00
Jaime Passos
c6f36fc470 un-ROTSPRITE rollangle and spriteinfo 2019-12-17 13:09:25 -03:00
fickleheart
32c9c912ab Consolidate G_BuildTiccmd 2019-12-08 13:27:11 -06:00
James R
cadaecbfcf memset this or the stupid masterserver (used to) show garbage bytes
Also for security I guess...
2019-12-07 15:47:18 -08:00
Steel Titanium
d415cd5c6d
Update copyright date on source files 2019-12-06 13:49:42 -05:00
toaster
7f6c98f046 Fix clearing maps making the Tutorial option on the SP menu crash. 2019-12-05 13:42:08 +00:00
toaster
6398779983 Correct two instances where "Zone" is forced uppercase. 2019-11-25 16:04:03 +00:00
MascaraSnake
e9ca39d3bc Merge branch 'infopoke' into 'master'
MS Info packet tweaks (resolves #300)

Closes #300

See merge request STJr/SRB2Internal!499
2019-11-22 15:21:41 -05:00
Jaime Passos
248306ccb0 Remove D_ProcessEvents call in G_PreLevelTitleCard 2019-11-21 02:16:09 -03:00
toaster
7645d0417a Further cleanup. 2019-11-19 20:24:44 +00:00
toaster
f5885f84f0 lmao how did i forget a null terminator 2019-11-19 13:40:07 +00:00
toaster
ef1aeb2ff6 MS Info packet tweaks.
* Report a completely uppercase map title in SERVERINFO, as per the MS previously expected (resolves #300).
* Ignore colour codes in map titles in SERVERINFO, since those now function like with console font.
* Modulo the skin number provided in PLAYERINFO by 3 in DEVELOP builds, so it's safe to test with certain characters on the MS (AS LONG AS IT'S NOT A RELEASE BUILD).
2019-11-19 13:36:33 +00:00
MascaraSnake
3e7e749327 Merge branch 'reset-rollangle' into 'master'
Reset rollangle

See merge request STJr/SRB2Internal!494
2019-11-18 14:11:32 -05:00
Steel Titanium
2584241a44
Better ping implementation. 2019-11-17 20:22:47 -05:00
Louis-Antoine
8b3e4d122b Show player number instead of node when someone joins 2019-11-16 01:42:02 +01:00
Louis-Antoine
d95a1e2ff3 Make the "nodes" command clearer
Because literally anyone who isn't a dev has
no idea what those fucking numbers even mean...

Before:
$nodes
00 - Sonic - 01 - 666.66.420.42:5029
01 - Tales - 00 - self
02 - Nukes - 255
03 - Ammie - 255
04 - Fangs - 255
05 - Metal - 255

After:
$nodes
00 - Sonic - node 01 - 666.66.420.42:5029
01 - Tales - node 00 - self
02 - Nukes
03 - Ammie
04 - Fangs
05 - Metal
2019-11-15 17:50:40 +01:00
Jaime Passos
88fb22d688 Yeah, yeah... 2019-11-14 22:14:40 -03:00
MascaraSnake
3352f914d7 Merge branch 'rotsprite_i' into 'master'
Sprite rotation (resolves #183)

Closes #183

See merge request STJr/SRB2Internal!430
2019-11-14 14:58:13 -05:00
toaster
afe28b0a0a * Remove the 22(!!) NiGHTS sprite2s that no longer get used in ROTSPRITE builds (which should be our main builds going forward).
* Rename `SPR2_NGT0` to `SPR2_NFLY`, and `SPR2_DRL0` to `SPR2_NDRL` to account for this. (requires modifying player.dta)
2019-11-14 17:03:02 +00:00
James R
b38a1ec313 Save bans when cleared too
(Why doesn't it work for I_Quit?)
2019-11-13 17:37:53 -08: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
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
2d1a574e09 * Add a death animation for killing the Metal object, in case somebody wants to Lua up a Sonic CD style race finish for the Metal object, or in case of the following...
* Add an alternate DEMOMARKER for ending the Metal Recording on death, which kills the Metal object as well.
* Add some more relevant exceptions to the "most objects are removed when touching a deathpit" thing, primarily for the sake of ghosts and Metal playback.
2019-10-29 17:38:14 +00:00
MascaraSnake
7d69409cf7 Merge branch 'set-name-on-join' into 'master'
Set the player's name as soon as they enter the game

See merge request STJr/SRB2Internal!397
2019-10-25 15:38:21 -04:00
MascaraSnake
2a8e5b7bff Merge branch 'james-kart' into 'master'
My changes to Kart

See merge request STJr/SRB2Internal!406
2019-10-25 15:36:40 -04:00
MascaraSnake
ff061fb813 Merge branch 'kartport_namedvalues' into 'master'
Kart-port - Named cvar values + Improved "HELP" command (round 3)

See merge request STJr/SRB2Internal!388
2019-10-25 15:32:56 -04:00
James R
c970911ac2 The console sucks, so "Don't" becomes "No" :lancer: 2019-10-23 17:37:09 -07:00
James R
43ca2c1b30 Support splitscreen PLAYERINFO and don't expose clients' IP addresses 2019-10-22 20:14:01 -07:00
James R
29a5999a44 "NEWPING" might as well be the only ping 2019-10-22 19:39:26 -07:00
Louis-Antoine
88d239ac36 Set the player's name as soon as they enter the game 2019-10-19 17:09:18 +02:00
Monster Iestyn
246a6489e9 Fix missing & which I totally forgot about in writing this fix (yes this is the "compile error" everyone was talking about) 2019-10-18 13:37:42 +01:00
Monster Iestyn
07c02f075b Fix sprite-related console errors that occur in netgames whenever the game attempts to synch the player's state.
Turns out the code was using P_SetMobjStateNF to "fix" the player's state ...which got things all wrong, lol.
2019-10-17 18:22:06 +01:00
Louis-Antoine
92b92dd3eb Fix clients being resynched at the wrong gametic 2019-10-16 21:24:30 +02:00
toaster
910df54fb5 Added some examples of cvars that can use named values.
* Pandora's box now has infinite lives show up as "Infinite" instead of "-1".
* `pointlimit None`
* `timelimit None`
* Ported `basenumlaps` (with "Map default" value) from Kart to replace `usemaplaps`, for if Circuit ever gets shown any love ever again.
* `respawndelay Off`
* `resynchattempts Don't`
2019-10-15 11:49:37 +01:00
Jaime Passos
7746767735 Merge remote-tracking branch 'origin/master' into internal-md3-vanilla-c 2019-10-06 17:40:41 -03:00
Jaime Passos
db979845e0 Merge remote-tracking branch 'origin/master' into internal-md3-vanilla-c 2019-09-15 16:24:24 -03:00
toaster
2b0344a22f Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into deathstuff 2019-09-09 15:25:48 +01:00
Monster Iestyn
c696063260 Merge branch 'mprelated-tweaks' into 'master'
Various improvements and changes to multiplayer menu

See merge request STJr/SRB2Internal!300
2019-09-08 16:45:14 -04:00
toaster
d26ff197dc * Store gravflip (resolves #206) and destscale in starposts. (Using the same field, taking advantage of the fact that object scale will always be positive!)
* Update the function signature of P_MixUp to accomodate both it and drawangle instead of doing it outside of the function.
* If the player is spawning from the start of the stage and it's from the ceiling, be in fall frames as requested (resolves #191).
2019-09-07 22:12:47 +01:00
Jaime Passos
1e506ef180 Merge remote-tracking branch 'origin/master' into internal-md3-vanilla-b 2019-09-02 23:35:36 -03:00
Jaime Passos
d99026df3b Merge remote-tracking branch 'origin/master' into internal-md3-vanilla-b 2019-09-02 20:27:50 -03:00
toaster
f07309707d Lots of death stuff.
* Genesis-style love and attention to the death event.
	* Only visibly decrement lives/rings when you're respawning (or game over, see below).
	* Faster no-button-press respawn.
* Game Over specific love.
	* Animation of Level Title font coming in from the sides.
	* https://cdn.discordapp.com/attachments/428262628893261828/617692325438554132/srb20067.gif
	* Change gameovertics to 10 seconds instead of 15.
	* Make the minimum time before you can force going to the Continue screen longer.
* Accomodate death in MP special stages as a form of exit.
	* Don't have your rings or spheres reset when you die in a special stage, so that the stage isn't softlocked with the new harder limits.
* Fix a bug with CoopLives_OnChange where changing to infinite lives didn't force a game-overed player to respawn.

Also, two not-quite death things which nonetheless were relevant to change:

* Fix quitting a special stage having some of the shared spheres/rings disappear into the aether.
* Fix a warning during compilation for the Ring Penalty print.
2019-09-01 15:55:23 +01:00
Steel Titanium
1416312200
Move some cvars out of D_ClientServerInit and save them
Ported over from Kart
2019-08-26 20:38:32 -04:00
James R
89c4989987 Show a negative number to indicate ammo penalty 2019-08-26 16:07:17 -07:00
Monster Iestyn
f3484f7ded Merge branch 'public_next'
# Conflicts:
#	src/config.h.in
#	src/d_clisrv.c
#	src/d_netcmd.c
#	src/doomdef.h
#	src/p_map.c
#	src/p_maputl.c
#	src/sdl12/macosx/Srb2mac.xcodeproj/project.pbxproj
2019-08-20 13:54:48 +01:00
James R
c1ba72ead8 Remove a printf 2019-08-17 10:33:33 -07:00
James R
19dd9a3c14 Kart discrepancies 2019-08-17 10:33:14 -07:00
mazmazz
84c9633579 Merge remote-tracking branch 'origin/master' into internal-md3-vanilla-b 2019-08-04 21:33:13 -04:00
James R
91502f1499 Don't send login final hashes to everyone
Someone thought it was a good fucking idea to make logins NetXCmds. NetXCmds
are sent to everyone however. Thankfully logins are two passes. And the second
pass uses a salt based on the playernum. Therefore, in order to actually make
use of the final hash, you'd have to be the same playernum as who originally
sent it. Still a stupid exploit.

P.S. The netcode is LOL XD by VincyTM -Telos
2019-07-15 16:14:00 -07:00
Jonas Sauer
166f1fac66 Fixed the thinkerlist issues by removing THINK_LIMBO. Delay-removed thinkers now stay in their list.
Also includes toaster's assorted fixes and improvements from target_painted_on_your_ass.
2019-07-13 01:42:03 +02:00
MascaraSnake
e9978b2955 Merge branch 'master' into thinkerlists
# Conflicts:
#	src/f_finale.c
#	src/p_enemy.c
2019-07-02 23:08:37 +02:00