Commit graph

509 commits

Author SHA1 Message Date
James R
7b6675178e Merge branch 'oldguards' into 'next'
Kill remaining HAVE_BLUA and SEENAMES

See merge request STJr/SRB2!1319
2020-12-12 17:34:04 -05:00
James R
93e4f43e4b Hooklib macros names -> uppercase + documentation 2020-12-12 03:16:30 -08:00
James R
9ddeb5f589 Resolve GameQuit hook conflicts 2020-12-12 02:05:21 -08:00
James R
2778cc3ce9 Merge remote-tracking branch 'origin/next' into hooklib-refactor 2020-12-12 02:02:38 -08:00
James R
9ea969b62d Merge branch 'gamequit-argument' into 'next'
Send a `quitting` argument to the GameQuit Lua hook.

See merge request STJr/SRB2!1276
2020-12-10 15:25:52 -05:00
James R
a5d228773d Merge branch 'reload-bans' into 'next'
Fix reloadbans clearing ban.txt and clearbans not actually saving the changes

See merge request STJr/SRB2!1215
2020-12-10 14:28:13 -05:00
James R
e0a307da15 Merge branch 'next' into hooklib-refactor 2020-12-10 03:09:24 -08:00
James R
2ab71571aa Merge branch 'high-resolution-timer-2' into next 2020-12-10 02:55:02 -08:00
James R
8d382e49fb Big Large Lua Hooklib Refactor
* Hooks are no longer a mess of lua boiler plate. Helper functions reduce hooks
  to, at the most basic level, only two calls.
* Lua tables (the array part) are used to index hooks. Such tables contain only
  hooks of the same type.
* Hook types are defined in one place so you no longer need to sync up the enum
  and name array.
2020-12-10 00:36:41 -08:00
James R
e7883f3f8e That moment when you see HAVE_BLUA crawl back from the grave
This would mean MapChange hasn't been firing for demos ...since 2.2.5.
2020-12-10 00:36:14 -08:00
GoldenTails
119d2e9e37 Remove the rest of the Playing() checks for GameQuit hook 2020-11-29 16:53:29 -06:00
GoldenTails
59d2646593 Send a quitting argument to the GameQuit Lua hook 2020-11-29 08:30:50 -06:00
GoldenTails
fae4709f4b Fix stupid divide-by-zero error 2020-11-08 23:28:20 -06:00
James R
b72789b0c9 Huge perfstats refactor
I needed to update it to make it functional with the precise timer. But I also
got sick of looking at the mess of sprintf followed by draw call.
2020-11-07 01:32:59 -08:00
Louis-Antoine
e178966367 Remove useless condition 2020-10-27 20:28:54 +01:00
Louis-Antoine
395d1f1b8f Do not pause the client while redownloading the gamestate 2020-10-27 20:23:32 +01:00
Louis-Antoine
5c48b92b2c Fix camera going wild after reloading the gamestate 2020-10-27 20:21:56 +01:00
Louis-Antoine
499bb56436 Only resend the gamestate to one client at a time 2020-10-27 01:22:31 +01:00
Louis-Antoine
7ae53364f2 Add a 15 seconds cooldown between successive gamestate resends 2020-10-27 01:20:05 +01:00
Louis-Antoine
9f5686ef48 Fix underflow in consistancy checking code 2020-10-26 23:15:22 +01:00
James R
9278f04fbf Delete ban.txt if no bans to save 2020-10-24 15:59:11 -07:00
James R
288ffebea7 Do not save cleared ban list when reloading bans 2020-10-24 15:52:02 -07:00
Louis-Antoine
50d2c95470 Merge branch 'next' of https://git.do.srb2.org/STJr/SRB2.git into resend-gamestate 2020-10-24 16:21:44 +02:00
Louis-Antoine
5091c19abf Kick clients that fail to catch up with server gamelogic 2020-10-21 20:25:29 +02:00
James R
d279489753 Merge branch 'perfstats' into 'next'
Performance stats

See merge request STJr/SRB2!1186
2020-10-18 15:33:20 -04:00
Hannu Hanhi
4f20a20165 Performance stats 2020-10-10 22:12:34 +03:00
James R
f5e4d076b9 Add CV_NETVAR to server affecting cvars
showjoinaddress
maxplayers
joindelay
rejointimeout
resynchattempts
blamecfail
maxsend
noticedownload
downloadspeed
jointimeout
maxping
pingtimeout
servername
2020-10-09 15:23:16 -07:00
James R
aa102dcea0 Add CV_SAVE to netvars
dumpconsistency
allowjoin
joinnextround
restrictskinchange
allowteamchange
startinglives
respawndelay
competitionboxes
allowseenames
matchboxes
specialrings
powerstones
countdowntime
touchtag
hidetime
autobalance
teamscramble
scrambleonchange
friendlyfire
overtime
pointlimit
timelimit
basenumlaps
allowexitlevel
inttime
coopstarposts
cooplives
advancemap
playersforexit
exitmove
pausepermission
respawnitemtime
respawnitem
flagtime

tv_recycler
tv_teleporter
tv_superring
tv_supersneaker
tv_invincibility
tv_jumpshield
tv_watershield
tv_ringshield
tv_forceshield
tv_bombshield
tv_1up
tv_eggmanbox
2020-10-09 15:06:09 -07:00
James R
b3d8ed7d43 Revert netvars after leaving a netgame 2020-10-06 23:32:11 -07:00
James R
dbd79a29a4 Replace C90's junk with a modest macro 2020-10-06 23:04:23 -07:00
Lachlan Wright
92b61aacd8 Merge branch 'name-change-spam' into 'next'
Don't let players change their name more than five times per minute

See merge request STJr/SRB2!1155
2020-09-25 09:36:39 -04:00
Lachlan Wright
86b7957b61 Merge branch 'clarity' into 'next'
Add-on clarity from Kart

See merge request STJr/SRB2!1153
2020-09-25 09:33:04 -04:00
Lachlan Wright
c42f247ce5 Merge branch 'snake-fixes' into 'next'
Fix bonus items sometimes overriding apples in Snake minigame

See merge request STJr/SRB2!1134
2020-09-25 09:23:33 -04:00
Lachlan Wright
982435cf86 Merge branch 'more-stats' into 'next'
Add tic and UI times to render stats

See merge request STJr/SRB2!1125
2020-09-25 08:54:01 -04:00
James R
b655fa496e Don't let players change their name more than five times per minute
(ported 17f75903b029bbf01217153dc98009d305137c8f and 11ddcfa9a1f2311ec67377b76ed1160ef14b7f60)
2020-09-22 12:04:28 -07:00
Zippy_Zolton
62f379ec41 Add-on clarity from Kart 2020-09-20 13:07:28 -05:00
James R
679bfa21ed Fix stupid NONET 2020-08-29 17:51:59 -07:00
James R
a6e59cbb24 Do not do master server things when NOCURL
(cherry picked from commit 7a05a8acf73ac0f012135339447c9a935e3b7939)
2020-08-29 17:45:28 -07:00
Louis-Antoine
cb06d05692 Fix bonus items sometimes overriding apples in Snake minigame 2020-08-24 00:34:44 +02:00
Hannu Hanhi
dd7d1e40b1 Add tic and ui times to render stats 2020-08-23 20:09:55 +03:00
James R
405639bc78 Disable showjoinaddress by default 2020-08-14 21:05:23 -07:00
Louis-Antoine
9dd5c11322 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2.git into resend-gamestate
# Conflicts:
#	src/d_clisrv.c
#	src/d_clisrv.h
#	src/d_net.c
#	src/p_saveg.c
#	src/p_saveg.h
2020-08-13 13:53:10 +02:00
James R
54e446199d Merge remote-tracking branch 'origin/next' into http-mserv 2020-08-08 15:05:03 -07:00
Steel Titanium
e9a03401cb Port netticbuffer from Kart 2020-07-19 15:24:27 -04:00
James R
479bbeacbe Merge remote-tracking branch 'origin/next' into http-mserv 2020-07-11 17:41:46 -07:00
James R
99e0c48f7b Fix a lot of stuff related to the version automation 2020-07-10 22:39:46 -07:00
Louis-Antoine
f8aefc2fd3 Revert "Fix computation of very high pings"
This reverts commit 82dbe95e22.
2020-07-11 01:55:40 +02:00
Louis-Antoine
78f8a44c25 Fix timeout 2020-07-07 02:06:26 +02:00
James R
e56fc08757 Merge branch 'delete-connection-screen-and-midgame-joins' into 'next'
Delete connection screen and midgame joins

See merge request STJr/SRB2!1021
2020-06-28 18:41:07 -04:00
SteelT
22459df1f1 Merge branch 'increase-input-buffer-more' into 'next'
Increase the length of the player input buffer even more

See merge request STJr/SRB2!951
2020-06-27 13:32:19 -04:00
Louis-Antoine
c96e07b61c Delete CLIENT_CONNECTIONSCREEN and JOININGAME defines 2020-06-27 02:01:16 +02:00
Louis-Antoine
82dbe95e22 Fix computation of very high pings 2020-06-26 15:34:26 +02:00
Zachary McAlpin
08e9efee76 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2 into gamequit-hook 2020-06-11 15:02:31 -05:00
LJ Sonic
7ffee074d8 Merge branch 'next' into 'better-download'
# Conflicts:
#   src/d_clisrv.c
2020-06-10 07:57:49 -04:00
LJ Sonic
bc2edb2ae4 Merge branch 'snake' into 'next'
Add a Snake minigame to the file transfer screen

See merge request STJr/SRB2!903
2020-06-10 07:38:37 -04:00
Zachary McAlpin
291479e3e8 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2 into gamequit-hook 2020-06-09 19:54:47 -05:00
Louis-Antoine
e6ffedbce8 Fix food occasionally spawning inside the snake 2020-06-01 15:21:16 +02:00
LJ Sonic
715cb857f5 Merge branch 'next' into 'better-download'
# Conflicts:
#   src/sdl/i_system.c
#   src/win32/win_sys.c
2020-06-01 08:16:53 -04:00
LJ Sonic
e2b860dc28 Merge branch 'next' into 'fix-spawn-desynch'
# Conflicts:
#   src/p_map.c
2020-06-01 08:15:02 -04:00
Zachary McAlpin
7bdea21435 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2 into gamequit-hook 2020-05-29 15:32:59 -05:00
LJ Sonic
aab6339e66 Merge branch 'possibly-fix-dedi-crash' into 'next'
Possible fix for dedicated server crashes (aka the msvcrt.dll!_mbscat crash)

See merge request STJr/SRB2!963
2020-05-28 11:29:00 -04:00
SteelT
1c42102ddb Merge branch 'fix-input-buffer' into 'next'
Allow input buffer to hold more than 64 tics

See merge request STJr/SRB2!950
2020-05-28 11:27:39 -04:00
Louis-Antoine
67eef5a37f Fix potential desynch when a player spawns 2020-05-28 11:03:35 +02:00
Louis-Antoine
bb1e3fdf13 Add a few missing calls to GameQuit hook 2020-05-27 14:58:10 +02:00
Monster Iestyn
40566e6926 Got_AddPlayer: check that I_GetNodeAddress(node) is non-NULL before using strcpy to copy it to the playeraddress array 2020-05-25 21:27:48 +01:00
SwitchKaze
b37c73b008 Make colors UINT16, increase color freeslots to 1024 2020-05-23 19:35:36 -05:00
Louis-Antoine
c8948909d3 Fix I_Error when queuing multiple Lua files 2020-05-19 23:50:37 +02:00
Louis-Antoine
f620b52672 Fix sending Lua files in text mode 2020-05-19 21:36:21 +02:00
Louis-Antoine
56cc5190e5 Allow input buffer to hold more than 64 tics 2020-05-18 11:34:09 +02:00
Louis-Antoine
e49d3d0bb9 Use per-node reference tics in ExpandTics 2020-05-17 20:23:07 +02:00
Louis-Antoine
fc07db26c0 Store starttic as a raw value in PT_SERVERTICS packets
This avoids some desynch issues and is simpler to handle.
Those packets are always big anyway, so the difference is irrelevant.
2020-05-17 20:09:11 +02:00
Louis-Antoine
66ecfb741a Show total size when downloading gamestate 2020-05-16 22:49:20 +02:00
Louis-Antoine
3c7c758d17 Rewrite file transfer code
This code uses a custom packet acknowledgement system,
which is more suited for file transfer and does not suffer from
the small sender window used by the default acknowledgement system
2020-05-16 22:09:00 +02:00
James R
7ebde22b77 Make mod update, room list and server list multithreaded
This took fucking ages and it still fails sometimes in edge cases, but I
don't give a FUCK right now.
2020-05-13 17:24:27 -07:00
James R
1584b7394b WHY THE FUCK DID I DO THIS 2020-05-13 17:21:18 -07:00
James R
197cffb7f5 Compiler errors: won't stop, can't stop 2020-05-13 17:21:18 -07:00
James R
4fd707984b Kill the old mserv, long live HMS! 2020-05-13 17:20:59 -07:00
James R
06da1425b3 The big bad HTTP master server
Cvars:

http_masterserver is the url to the master server's API.
masterserver_token may be an authentication token.
2020-05-13 17:18:26 -07:00
Louis-Antoine
061fd4761a Rename some file transfer functions 2020-05-12 19:06:40 +02:00
sphere
0287c6956e Fix some errors and add some comments. Also, actnum is not an INT32. 2020-05-12 17:20:28 +02:00
Louis-Antoine
dc55ab9ae2 Use W_CachePatchLongName in Snake minigame 2020-05-10 11:02:45 +02:00
Louis-Antoine
614f45b380 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2.git into snake 2020-05-10 11:00:30 +02:00
Louis-Antoine
2d6c9a94f4 Fix compiler warning 2020-05-05 14:05:19 +02:00
Louis-Antoine
752b48de3a Update sound and closed captions in connection screen 2020-04-28 00:37:58 +02:00
Louis-Antoine
231a835bf6 Minor adjustements in Snake minigame 2020-04-27 23:15:18 +02:00
Louis-Antoine
dfdace22bb Add bonuses and maluses to Snake minigame 2020-04-27 23:10:13 +02:00
Louis-Antoine
a3dcc100c0 Add pause and retry to Snake minigame 2020-04-27 22:06:32 +02:00
Louis-Antoine
647d74bad5 Add a background to Snake minigame 2020-04-27 15:31:38 +02:00
Louis-Antoine
58c0383e88 Use sprites for snake and apple 2020-04-27 13:01:14 +02:00
Louis-Antoine
380e246be3 Lower the download progress bar 2020-04-26 21:57:17 +02:00
Louis-Antoine
7c9ce1faee Prevent edge warping in Snake minigame 2020-04-26 21:17:15 +02:00
Louis-Antoine
10fbaaf781 Fix compiler warnings 2020-04-24 22:19:05 +02:00
Louis-Antoine
d235d401bc Improve controls handling in connection screen minigame 2020-04-24 19:27:42 +02:00
Louis-Antoine
9ac3fd202f Add a Snake minigame to the downloading screen 2020-04-24 19:27:29 +02:00
Louis-Antoine
9ec4ba3824 Add a minimum delay between connections 2020-04-24 14:05:15 +02:00
Steel Titanium
9a242818a7 Merge branch 'master' into next 2020-03-31 20:46:54 -04:00
Louis-Antoine
ad12e29fda Fix allowjoin off affecting single player 2020-03-30 22:11:48 +02:00
Louis-Antoine
8130599a4f Fix disconnected players being kicked for high ping 2020-03-28 15:23:15 +01:00
Louis-Antoine
e3cbdf8fab Use HAVE_BLUA as fuel for my fireplace 2020-03-19 18:36:14 +01:00
SteelT
bd058ecc4b 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
LJ Sonic
0a54c40ff4 Merge branch 'fix-playernode-crash' into 'next'
Fix buffer overrun with players with no associated node

See merge request STJr/SRB2!810
2020-03-15 15:36:45 -04:00
Monster Iestyn
ddc0762ecc Merge branch 'master' into next 2020-03-09 19:53:08 +00:00
Louis-Antoine
b85ac65378 Fix missing break 2020-03-08 20:04:29 +01:00
colette
ce29129f3a Fix resyncs never recovering if node and player mismatch 2020-03-08 13:09:39 -04:00
LJ Sonic
60cd6fe986 Merge branch 'next' into 'resend-gamestate'
# Conflicts:
#   src/d_clisrv.c
2020-03-01 12:35:53 -05: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
Louis-Antoine
846560910d Obliterate resynch
Okay, more precisely this substitutes the old resynch with
the newly added gamestate resend code.
2020-03-01 03:22:47 +01: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
Louis-Antoine
4f7591a044 Rename packet 2020-02-29 13:40:15 +01:00
Louis-Antoine
a927d67259 Fix warning 2020-02-28 18:17:37 +01: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
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
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