Commit graph

2852 commits

Author SHA1 Message Date
Monster Iestyn
cefd92fc8e Merge branch 'master' into opengl-improvements 2017-05-31 15:18:42 +01:00
Monster Iestyn
3f9bebd05e Merge branch 'public_next'
# Conflicts:
#	src/doomdef.h
#	src/lua_thinkerlib.c
2017-05-31 15:18:05 +01:00
Monster Iestyn
5264f4ce08 Merge branch 'next' into public_next 2017-05-31 15:09:37 +01:00
Alam Arias
315611927b Merge pull request #191 from Yukitty/hotfix_thinkers.iterate
Hotfix: Lua thinkers.iterate
2017-05-28 19:38:12 -04:00
Yukita Mayako
9f3fda37b0 Merge branch 'next' into hotfix_thinkers.iterate 2017-05-28 15:07:20 -05:00
Alam Ed Arias
2223283208 Merge branch 'next' 2017-05-28 11:37:16 -04:00
Monster Iestyn
0536e1d862 Merge branch 'update-to-v2.1.19' into 'master'
Update to v2.1.19

It should says what on the tin.

See merge request !190
2017-05-27 20:24:45 -04:00
Yukita Mayako
e192c5be4d Merge branch 'next' into hotfix_thinkers.iterate 2017-05-27 15:45:13 -05:00
Monster Iestyn
806b101984 Merge branch 'master' into next 2017-05-27 20:10:48 +01:00
Monster Iestyn
7294e15ec6 Merge branch 'ignore-askinfoviams' into 'master'
Ignore askinfoviams

Turns out PT_ASKINFOVIAMS is an obsolete packet type anyway, the MS doesn't send it at all. So let's just ignore it in the netcode then. (the online page just acts like a client and sends PT_ASKINFO, and is not part of the MS itself)

See merge request !191
2017-05-27 15:09:14 -04:00
Yukita Mayako
c44a935b04 Rewrote thinkers.iterate to handle invalid pointers elegantly. 2017-05-27 14:03:27 -05:00
Monster Iestyn
d20efa5a74 Entirely ignore PT_ASKINFOVIAMS packets, since it turns out it's not even sent by the MS anyway 2017-05-27 19:06:46 +01:00
Monster Iestyn
c7957ef91e Merge branch 'disable_gettext' into 'master'
Disable gettext

Disable Gettext support for Mingw32 builds

See merge request !154
2017-05-27 12:56:16 -04:00
Alam Ed Arias
877e9510f7 Update version number to v2.1.19 2017-05-26 21:38:49 -04:00
Alam Ed Arias
86a76a9766 Makefile: disable GETTEXT by default 2017-05-26 18:10:53 -04:00
Alam Ed Arias
0e0769d11a Merge branch 'master' into disable_gettext 2017-05-26 18:06:57 -04:00
Monster Iestyn
11d57fba1b Merge branch 'master' into next 2017-05-26 23:02:06 +01:00
Monster Iestyn
3928b75b7a Merge branch 'netcode-hotfix' into 'master'
Netcode hotfix

Various netcode fixes are included in this branch. Most important of all of course is a fix for the Net_CloseConnection invalid node -32769 detected message thing, or rather what actually caused that to occur.

It's a merge to master since everything here should be compatible with 2.1.18: the only main changes are related to recieving packets (whether you're the host of a netgame or a client), which AFAIK shouldn't cause desyncs if you played with these fixes on a 2.1.18-hosted netgame (or hosted a netgame with the fixes and 2.1.18-using players join you).

See merge request !185
2017-05-26 18:00:43 -04:00
Monster Iestyn
0bb4e76e73 Merge branch 'too_many_wads_in_netgames' into 'next'
A bunch of bugfixes about too many wads in netgames

Fixes:
* Having bunch of music WADs added and then breaching the file limit(s) through joining a server with important files added. http://mb.srb2.org/showthread.php?t=42662
* Having a bunch of music WADs added, joining a server, and then breaching the file limit(s) when the server adds a file. https://mb.srb2.org/showthread.php?t=34664
* Informing the adminplayer whenever they try to send a request addfile net command but the file limit(s) are reached.

Done into next because I might as well be 100% safe, even though this could probably work on master as well.

See merge request !187
2017-05-26 17:58:53 -04:00
Monster Iestyn
1699d8a05f Merge branch 'missiles_n_slopes' into 'next'
Missiles 'n slopes

Fixed that thing where missiles like sliding up slopes for some reason.

This isn't a 1:1 fix compared to non-slopes - missiles still like stepping up over the borders of sloped sectors and will continue going as long as they never touch that ground again, whereas they can never step up on flat ones - but this fixes the most egregrious issue.

See merge request !181
2017-05-26 12:25:31 -04:00
toasterbabe
db2f8a50ba Make sure that the number of files you're trying to add is properly considered! 2017-05-26 16:16:10 +01:00
Monster Iestyn
4d1af86431 Cleanup part 2, make ye old 2.1.18 warning a debugfile only message, and make the node == -1 have its own debugfile only message too
Also get rid of a stray newline
2017-05-26 15:30:26 +01:00
Monster Iestyn
ab5835cd3b Remove cruft from my initial days of fumbling with this branch
textcmd[0] for PT_NODETIMEOUT can't hold anything < 0 anyway, and you'd probably have to really try to get >= MAXNETNODES
2017-05-26 15:26:00 +01:00
Monster Iestyn
e09270276e Display node's IP when printing the "sending file to node n" message, if noticedownload is turned on 2017-05-26 14:38:59 +01:00
Monster Iestyn
569af9f4c1 I am dumb, SV_AbortSendFiles already does what SV_RemoveFileSendList was made to do 2017-05-26 14:19:18 +01:00
Monster Iestyn
7979f84e25 whoops 2017-05-26 13:58:34 +01:00
Monster Iestyn
aecc97ded3 PT_REQUESTFILE checking:
* if you sent it to a client rather than the server, game over, your connection is closed
* if files that don't exist or are too large are requested are listed, game over, your connection is closed (they should have been checked on YOUR side beforehand, silly)
* if the server has downloading disabled anyway, ...yeah, you get the idea

Don't worry, I made sure Got_RequestFilePak cleaned up the full file request list for the node in case of failure
2017-05-26 13:39:54 +01:00
Monster Iestyn
9027858214 Merge branch 'nights-capsule-color-fix' into 'next'
NiGHTS capsule color fix

This fixes the Egg/Ideya capsule from NiGHTS stages being given SKINCOLOR_RED as a color. Not really relevant for vanilla SRB2 (since it doesn't use green in the sprite), but it may be relevant for custom mods using a custom NiGHTS capsule sprite that happens to use green.

See merge request !189
2017-05-25 20:23:30 -04:00
Monster Iestyn
db7d217199 Merge branch 'exit-your-server-desync-fix' into 'master'
Exit your server desync fix

This branch fixes this bug: https://mb.srb2.org/showthread.php?t=41811

Here's an explanation of how this bug is actually happening:
* Pressing Enter with "Start" selected calls `D_MapChange` to make a map change command. (Note that part of it is actually delayed because it's called from a menu, but this isn't relevant to the bug)
* `D_MapChange` itself calls `SV_StartServer` to start up the server, if you're supposed to be the server player.
* Pressing Esc while starting up a server like shown in the gif causes the server to be cancelled, and go back to the title screen.
* HOWEVER, since we're still in `D_MapChange`, the map change command is made anyway.
* Since we're not in a netgame as expected, no random seed is added, and the map change command has a total size of 9 bytes (1 for the id + 8 for the actual data). This is then stored in the net command buffer. The random seed would add another 4 bytes if it WAS added, note.
* Next time you start a server, and let it work as normal, two more net commands are added: an "add player" command (size 3), and a map change command (size 13, including random seed this time). Your net command buffer now has a total size of **25** (9 + 3 + 13).
* This net command buffer is then sent as a `PT_TEXTCMD` packet to yourself.
* SRB2 recieves the `PT_TEXTCMD` you sent to yourself, and some time later, tries to run the net commands stored in it.
* The first map command is read as if it's size 13 rather than size 9 (it isn't), mistakeningly thinking a 4-byte random seed is stored (since you ARE in a netgame now). This means your buffer reads what it thinks is the next net command starting from position **[14]** in the buffer.
* Bad luck, it gets an id of **0**, which doesn't correspond with any net command!
* This message is then printed in the console:

> WARNING: Got unknown net command [14]=0 (max 25)

* The game subsequently kicks you out the server with a "desynch" message.

tl;dr The game doesn't correctly cancel the map change when you cancel the server with Esc like that. This is not a good thing.

See merge request !188
2017-05-25 20:19:27 -04:00
Monster Iestyn
437780d503 Add missing break for MT_EGGCAPSULE's switch case in P_SpawnMobj (sorry!) 2017-05-25 18:40:48 +01:00
Monster Iestyn
a23e9bc32b Fix size_t printing 2017-05-25 18:10:20 +01:00
Monster Iestyn
58236af6f7 Tweak to D_MapChange: if you failed to start a server, DON'T send a map change command 2017-05-25 16:55:59 +01:00
toasterbabe
47e171250f * Prevent joining a server if you have too many files loaded to add the remainder.
* Made the check in Got_RequestAddfilecmd more comprehensive, since I might as well. Just something to tweak a little later in internal.
2017-05-25 16:06:39 +01:00
toasterbabe
5c302d7ffc Partial implementation of fix for Got_RequestAddfilecmd (the other half - the limitation on the size of the filesneeded section of the serverinfo packet - will be applied in internal.) 2017-05-25 15:34:21 +01:00
toasterbabe
2aa1215716 Fix a thing where the host adds a WAD and you have too many WADs loaded to add it. 2017-05-25 15:22:32 +01:00
Monster Iestyn
c92aaa74a4 I think PT_CLIENT2MIS was meant to do this too, probably 2017-05-23 18:46:34 +01:00
Monster Iestyn
7147e0fcaf Improve previous PT_TEXTCMD/PT_TEXTCMD2 check, add another one to ignore zero size textcmds! 2017-05-23 17:35:32 +01:00
Monster Iestyn
0b0b738a6f Don't allow non-servers to receive PT_RESYNCHGET 2017-05-23 16:34:56 +01:00
Monster Iestyn
ff1cc07a1d Implemented toaster's suggestion to make a macro here 2017-05-23 16:29:09 +01:00
Monster Iestyn
9e3bdc5ee2 Prevent bad PT_TEXTCMD/PT_TEXTCMD2 textcmd[0] sizes? 2017-05-23 16:13:42 +01:00
Monster Iestyn
fdfd6e1c0b Whoops don't do that for PT_REQUESTFILE 2017-05-22 22:20:08 +01:00
Monster Iestyn
c70839334e Added a bunch of missing checks to prevent non-server players from sending other non-server players stuff 2017-05-22 22:17:51 +01:00
Monster Iestyn
3784d765e4 Remove extra whitespace I added 2017-05-22 20:47:38 +01:00
Monster Iestyn
28444c12dd Some more things I overlooked in this fix 2017-05-22 16:54:39 +01:00
Monster Iestyn
247ed56e17 Don't allow nonsense PT_ASKINFOVIAMS packets, nor any at all if offline 2017-05-22 16:44:50 +01:00
Monster Iestyn
6062223eb5 Merge branch 'master' into next 2017-05-22 13:23:46 +01:00
Monster Iestyn
c23cf25f65 Merge branch 'dedicated-bonuses-fix' into 'master'
Dedicated bonuses fix

Fixes the issue reported here: https://mb.srb2.org/showthread.php?t=42530

What it turns out is going on is that making the game bail out in the middle of Y_StartIntermission if you're a dedicated server's host prevents the game from awarding the players bonuses in coop mode. Therefore it's not just special stage bonuses, but ANY kind of bonuses that can cause desyncs if someone loses all their lives.

This can be merged to master since it's a change only for dedicated server hosts, and should otherwise be compatible with 2.1.18.

See merge request !186
2017-05-22 07:15:50 -04:00
Monster Iestyn
5aeb4b5919 Revert "Loop through rebound packets until you found a good one or ran out of them"
On second thought, this was probably unnecessary anyway.

This reverts commit 1078a642df.
2017-05-20 21:29:05 +01:00
Monster Iestyn
448014097e Merge branch 'endgame-code-refactor' into 'master'
Endgame code refactor

This is mostly just some code cleanup and moving about:
* `Y_EndGame` was moved from from y_inter.c/h to g_game.c/h, and renamed to `G_EndGame`. Frankly the old place that function lived didn't make sense, since it has nothing to do with tally screens directly.
* Most of `Y_FollowIntermission`'s code was removed, because `G_AfterIntermission` does it all already.
* And lastly, `G_ExitLevel` uses `HU_ClearCEcho()` instead of `HU_CEcho("")` to clear CEchos from the screen.

The only visible changes in-game from the above should be just that log.txt stops adding empty new lines when you complete a level, and CEchos will always be cleared after tally screens when a level goes to credits/evaluation next.

See merge request !98
2017-05-20 16:23:21 -04:00
Monster Iestyn
284e539c66 Don't bail out in Y_StartIntermission in dedicated mode, this causes the game not to add on score bonuses for players from the server's view of things! 2017-05-19 16:31:23 +01:00