Commit graph

1758 commits

Author SHA1 Message Date
Sryder13
6877930ed9 Go through and draw MD2s and sprites at the same time so they are sorted from each other (mostly) correctly 2017-09-08 00:57:21 +01:00
Monster Iestyn
017df6cd75 Merge branch 'SDL2_RelMouse' into 'master'
SDL2: Relative mouse mode

See merge request !206
2017-09-04 15:11:50 -04:00
Monster Iestyn
36977a5eda SDL_SetRelativeMouseMode(SDL_TRUE) already does what HalfWarpMouse does
Also, don't post an ev_mouse event_t if not in relative mouse mode, so the camera doesn't jerk when the mouse enters the window
2017-08-22 22:53:18 +01:00
Monster Iestyn
821a1810f7 Moved lrounding of mouse motion events to the actual point an event is made
Also did some cleanup and moving around, as well as adding comments
2017-08-21 21:38:29 +01:00
Monster Iestyn
10cbe2c82b Turns out the issue was with fullscreen! All I have to do is factor in the resolution/real window size ratio apparently (which was already done before)
Also changed movemousex/y to INT32
2017-08-19 22:54:30 +01:00
Monster Iestyn
758e9c4558 Merge all (relative) mouse motion events into one mouse event
This fixes SDL2_RelMouse's weaker sensitivity for me on Windows (but apparently not for others??)
2017-08-19 21:39:04 +01:00
Monster Iestyn
2d661fef18 Turns out we don't need to use SDL_SetWindowTitle on its own, since SDL_CreateWindow already deals with the window title anyway. So I've disabled everything related to Impl_SetWindowName for now
Also what were you thinking Fury?!? window shouldn't be NULL for SDL_SetWindowTitle, you backwards person you
2017-08-07 16:44:29 -04:00
Alam Ed Arias
35404be1e0 SDL: y input is flipped 2017-08-07 16:37:03 -04:00
Alam Ed Arias
c25b2eb37f Merge remote-tracking branch 'origin/master' into SDL2_RelMouse 2017-08-07 16:33:39 -04:00
Monster Iestyn
2ac566fa85 Fix whitespace goofup of mine 2017-07-09 15:08:17 +01:00
Monster Iestyn
fe3f4f4ed1 Merge branch 'pwease_no_kicky' into 'master'
Pwease no kicky

Don't kick Tails! Also, a movement for the WRITESINT8 to prevent modification to buf if the function bails early.

This can go into Master, right? It only matters for the host, and it's explicitly only having a major effect outside of netgames.

See merge request !201
2017-07-07 17:45:59 -04:00
Monster Iestyn
4752109233 Some more tweaks of my own:
*Add CONS_Printf messages for !netgame checks
*Arg count is checked first regardless of netgame status for both kick and ban, < 2 is checked instead of == 1 just in case these weren't called from console for some stupid reason?
*Moved Command_Kick's buffer vars to within the code that actually does kicking stuff
2017-07-07 22:40:00 +01:00
Monster Iestyn
b291390edf Merge branch 'sp-tally-non-green-res-hud-fix' into 'master'
Single Player/Coop tally screen fixes

* The TIME/SCORE part of the HUD now doesn't move from the position it was before the tally screen started in non-green resolutions. The example screenshots of this bug and the fix for it below are all taken in 640x480:

  How it should be:

  ![](https://dl.dropboxusercontent.com/s/4h86gnm0tvkwjxh/srb20293.png)

  How it displays in 2.1.19:

  ![](https://dl.dropboxusercontent.com/s/awyfupn5wgo40rv/srb20294.png)

  How it displays in an exe with the fix:

  ![](https://dl.dropboxusercontent.com/s/gbstznautbl5f38/srb20295.png)

* The time display at the tally screen no longer limits the minute number to between 0 and 59.

  How a time > 60 mins displays normally just before finishing the level:

  ![](https://dl.dropboxusercontent.com/s/lclonkwfd656t55/srb20296.png)

  How it displays afterwards (it's supposed to be 61:19 but it's wrapped to 1:19 instead):

  ![](https://dl.dropboxusercontent.com/s/obv3fq2qeto9uo3/srb20297.png)

See merge request !202
2017-07-07 15:23:51 -04:00
Monster Iestyn
e8df99c632 They didn't use V_HUDTRANS before and they probably shouldn't, my fault here 2017-07-05 22:30:18 +01:00
Monster Iestyn
815d10e15d Display minutes in full, so 60:00 for instance displays as 60:00 and not 0:00
The normal HUD display while playing a level doesn't do this, only the tally screen does it for some reason
2017-07-05 19:25:11 +01:00
Monster Iestyn
aca7a574f8 Copy+paste st_stuff.c functions and macros to accurately draw SCORE/TIME on the tally screen like they are when actually playing the level 2017-07-05 17:05:39 +01:00
toasterbabe
9a1e1180ff Also account for bans, pff. 2017-07-05 16:29:21 +01:00
toasterbabe
60e21381ab Don't kick Tails!
Also, a movement for the WRITESINT8 to prevent modification to buf if the function bails early.
2017-07-05 16:20:23 +01:00
Monster Iestyn
b37d09df5f Merge branch 'opengl-slope-FOF-lighting-fix' into 'master'
OpenGL slope FOF lighting fix

This fixes some issues with sloped FOFs that affect lighting in OpenGL (as in, those that cast a shadow or have a colormap). Particularly, they can do strange things to any wall textures adjacent to them, as we've noticed ourselves in levels for 2.2. =P

See merge request !194
2017-06-22 19:49:42 -04:00
Monster Iestyn
6a0329857d Merge branch 'polyobject-seg-render-fix' into 'master'
Polyobject seg render fix

This fixes both Software and OpenGL renderers so that polyobject segs aren't drawn if the game is drawing the actual subsectors they're from (outside the main level, where the polyobject walls were pre-spawn). They should only appear as part of the polyobject itself in-level.

This means a few glitches with polyobjects are probably fixed: for instance in Software mode, polyobject walls sometimes appear through level boundaries (and make everything above/below vanish, turning into HOM or skybox), if the BSP rendering code happens to find one of the subsectors said segs came from outside the level. I don't think anything similar happens in OpenGL, though I'm sure some unwanted typecasting is happening as a result of attempting to draw the segs. (And it fixes a crash in 2.2 anyway.)

See merge request !195
2017-06-22 17:29:01 -04:00
Alam Ed Arias
2bd11120b5 Appvenyor: disable OBJDUMP 2017-06-19 14:17:58 -04:00
Monster Iestyn
32e6bfeaab Merge branch 'opengl-screenshot-fix' into 'master'
Fix for screenshots taken in OpenGL with resolution 1366x768

Fix for this bug: https://mb.srb2.org/showthread.php?t=39882 (also reported here: https://mb.srb2.org/showthread.php?p=793077#10)

This is basically porting GZDoom's own fix for the same issue (I stumbled on a Zandronum thread about the same issue from google images, and one user mentioned GZDoom had fixed it): d31a0b77fd

See merge request !192
2017-06-04 17:20:40 -04:00
Monster Iestyn
c3c85bb4d2 Do not draw segs that belong to polyobjects, if you're drawing subsectors adjacent to them
Polyobject segs should ONLY be drawn if the polyobject itself is in the polylist of a subsector being rendered. That way you won't sometimes see polyobject walls through level boundaries, if you happen to be close enough to their pre-spawn locations outside the level (or in them, if you decided to go on a noclip journey).
2017-06-03 17:47:46 +01:00
Monster Iestyn
3658b22a7f wallVerts[].y is actually the map z coord, so use wallVerts[].z instead (which is actually the map y coord)
Don't worry I'm not going mad, this is actually how it's supposed to be
2017-06-03 14:46:03 +01:00
Alam Ed Arias
6847a89bc2 OpenGL: check for 1.3+ or 2.0+, not just 1.3/2.X to 4.X 2017-05-29 23:04:03 -04:00
Alam Ed Arias
6be7693ecb OpenGL: Load the GLU and OpenGL 1.3 multitexturing functions during runtime 2017-05-29 22:52:51 -04:00
Monster Iestyn
f96844b262 Fix screenshots taken in OpenGL with 1366x768 being messed up
This is based on GZDoom's own fix for the same issue, had to add support for glPixelStorei first though
2017-05-29 21:28:36 +01: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
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
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