Commit graph

6343 commits

Author SHA1 Message Date
toaster
33e35b7e13 Fix ping measurement off-by-one that slightly underestimates ping measurements 2022-10-26 13:50:35 +01:00
toaster
289de329eb Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart-Public into kpubnext 2022-10-26 13:23:56 +01:00
Eidolon
e7c16a13b7 Merge branch 'splitscreen-hudhook-fix' into 'next'
Clear and draw all game hud hook calls to 1 list

See merge request KartKrew/Kart-Public!318

(cherry picked from commit 7e17eb8591)

2cffc9b4 Clear and draw all game hud hook calls to 1 list
2022-10-25 23:04:58 -04:00
Eidolon
2cffc9b488 Clear and draw all game hud hook calls to 1 list
Fixes splitscreen issues with lua hud hooks
2022-10-25 20:36:27 -05:00
Eidolon
2473c7d7cc Merge branch 'mobj-jitter' into 'next'
Ensure view interpolates between T-1 to T

See merge request KartKrew/Kart-Public!317
2022-10-25 20:00:49 -05:00
Eidolon
806252320e Ensure view interpolates between T-1 to T 2022-10-25 19:32:28 -05:00
Sal
a69b3b0260 Merge branch 'netunarchive-fixes' into 'master'
Fix use after free bug

See merge request KartKrew/Kart-Public!315
2022-10-19 06:19:28 +00:00
Eidolon
978f784ff7 win32: Add dpi aware manifest config 2022-10-18 17:53:29 -05:00
Ashnal
bd4150b90e Fixes an issue where mobjs with shadows would never get freed,
due to their reference count getting reset after
having their shadows spawned, resulting in a reference count of -1
and the mobj never being freed, or a use-after-free during the shadow's thinker.
Also adds some P_SetTargets to P_BlockThingsIterator to fix an inconsistency I noticed while investigating this.
2022-10-03 02:07:36 -04:00
Ashnal
78ad817cf1 Forgot to remove my debug prints 2022-09-29 19:26:42 -04:00
Ashnal
f8d71450e5 Unlink non-mobj and non-precip thinkers when loading and freeing
Move globalweather to before P_SpawnSpecials so that specials can properly change weather and have it communicated in savegames
2022-09-29 19:22:53 -04:00
Ashnal
c24a0d0a47 Remove usage of currentthinker from direct removal
It's designed to be referenced from P_RunTHinkers, whjich we aren't doing
2022-09-29 15:43:50 -04:00
Ashnal
3d311eeae3 Fix compiler warning 2022-09-10 13:30:24 -04:00
Ashnal
59fb3ed900 Attempt to fix use after free bug
with precipitation mobjs on netgame load
2022-09-10 13:29:18 -04:00
Sal
c4ecddb9f3 Merge branch 'server-browser-improvements' into 'next'
Server browser technical and aesthetic improvements

See merge request KartKrew/Kart-Public!313
2022-09-09 19:14:58 +00:00
James R
435e65e63a Merge remote-tracking branch 'origin/master' into next 2022-09-07 02:49:15 -07:00
Sal
a9acd6a8e9 Merge branch 'split-netfil-loading' into 'next'
Speed up file loading on server join by splitting P_AddWadFile into stages

See merge request KartKrew/Kart-Public!295
2022-09-05 15:04:49 +00:00
X.organic
6fb59f87b7 Speed up file loading on server join by splitting P_AddWadFile into stages 2022-09-05 15:04:49 +00:00
James R
07452bc8fb Server browser: always display the number of servers found so far 2022-09-04 22:45:39 -07:00
James R
def84a2cc0 Slide server browser pages left and right 2022-09-04 22:28:59 -07:00
James R
41d82d9baf Merge "No servers found" with server browser status line 2022-09-04 22:26:23 -07:00
James R
00c9abd652 Clear the server list when entering or refreshing the server browser 2022-09-04 22:20:24 -07:00
James R
ca71fb02f3 Merge blue "checking for updates" pop up with server browser status line 2022-09-04 22:16:05 -07:00
James R
53ee6524b4 Display the current status of server querying in the server browser
While trying to contact servers: display how many servers
are left. Once done: display the total number of servers
available in game.
2022-09-04 22:08:36 -07:00
James R
ed9d520b4e Retry contacting servers in the server browser every second until nettimeout 2022-09-04 19:52:45 -07:00
Sal
b2eff44dc4 Merge branch 'mobj-after-free' into 'master'
Fix use-after-frees around mobjs

See merge request KartKrew/Kart-Public!309
2022-09-03 02:58:47 +00:00
X.organic
f009b3d8c9 Fix use-after-frees around mobjs 2022-09-03 02:58:47 +00:00
Sally Coolatta
bf96c7ade8 Merge branch 'master' into next 2022-09-02 10:19:35 -04:00
Sally Coolatta
e59521f14f Fix mixed declarations 2022-09-02 10:18:20 -04:00
X.organic
70128776ac Miscellaneous memory bug fixes to make AddressSanitizer happy 2022-09-02 13:20:31 +00:00
Ashnal
97f79a8866 Should fix the dedicated server player node takeover
that completely destroys servers
2022-08-29 16:58:33 -04:00
toaster
e9fa66a3b3 Merge branch 'spec-hud-snap' into 'master'
Make spectator HUD snap to bottom left of viewport

See merge request KartKrew/Kart-Public!306
2022-08-28 14:30:51 +00:00
Sal
78cf02c221 Merge branch 'sdl-gamepads' into 'next'
Use SDL Game Controllers API

See merge request KartKrew/Kart-Public!298
2022-08-28 09:24:36 +00:00
Sal
d9f4bd6111 Merge branch 'futurepk3' into 'next'
Backport SRB2 2.2's PK3 loader code fixes

See merge request KartKrew/Kart-Public!289
2022-08-28 09:23:16 +00:00
toaster
233c5b1f7a Make spectator HUD snap to bottom left of viewport 2022-08-27 15:09:36 +01:00
toaster
bbfaa0e99e Revert continuous hold attempt
- Does not function with controllers that don't produce continuous joystick events on hold, as testing unfortunately made clear.
- The entire thing would need to be rewritten to make up for that, and I don't have the time to invest that kind of energy into version 1.
- An unreliable feature is worse than no feature at all.
2022-08-27 11:10:28 +01:00
Sal
5a8784169b Merge branch 'gametype-always' into 'next'
Adjust voting rule changes again

See merge request KartKrew/Kart-Public!301
2022-08-26 22:45:44 +00:00
Sal
df101848d1 Merge branch 'ping-catchup' into 'next'
Ping Catchup

See merge request KartKrew/Kart-Public!302
2022-08-26 22:44:47 +00:00
Sal
886bda775b Merge branch 'hole-punch-less-getaddrinfo' into 'next'
Call getaddrinfo less frequently when hole punching

See merge request KartKrew/Kart-Public!303
2022-08-26 22:44:25 +00:00
Sally Coolatta
2b75147eac Drawseg clipping optimized, from prboom-plus
Ported and flattened from Sal's work on the internal repository
2022-08-26 23:01:54 +01:00
toaster
f7fc5c684e Positive sign only 2022-08-26 21:26:03 +01:00
toaster
de97c41532 Revert "Remove game deadzone for Accel/Brake"
This reverts commit 44eeb3a0f3.

# Conflicts:
#	src/m_menu.c
2022-08-26 21:18:27 +01:00
toaster
b10c21c504 Only use positive component of accel axis for menu KEY_ENTER behaviour 2022-08-26 21:00:39 +01:00
toaster
9e194dab2d Add cv_lookbackaxis (and p2-4 equivalents)
* Rename `Look Up/Down` to `Spec. Look Up/Down` to disambiguate from `Look Backward`
* Make it support multiplayer replay recording save request too
2022-08-26 20:50:57 +01:00
toaster
44eeb3a0f3 Remove game deadzone for Accel/Brake
- They're binary inputs as processed by the game.
- A mechanism for binary inputs with no deadzone is already used for item and drift.
- Generally bound to triggers, not the stick.
- SDL still has a minimum deadzone, so won't fire endlessly.
2022-08-26 20:50:57 +01:00
toaster
3ef3789f58 Gamepad improvements for menus
* For left stick up/down/left/right input, allow holding a direction down to move continuously in a direction at a rate of 7 steps per second per axis
* Now supports accel axis being used for the Enter key/"accept" in menus, to mirror how an accel BUTTON bind will be used as an Enter event.
2022-08-26 20:50:57 +01:00
toaster
f167895865 Fix compilation warnings and non-codebase-standard types
Also, make the I_GetJoystickEvents functions match each other
2022-08-25 20:28:13 -05:00
Eidolon
08a218a3a1 Bump execversion to 10, remap xbox controls to SDL 2022-08-25 20:28:13 -05:00
Eidolon
5412be76e8 Use SDL Game Controllers API 2022-08-25 20:28:13 -05:00
James R
7b019571aa Merge remote-tracking branch 'origin/master' into next 2022-08-25 10:40:46 -07:00
toaster
d86081cb8a If the client has caught up to the server -- say, during a wipe -- make GetLag return a ping of zero
Should fix the momentarily large ping bug.
2022-08-25 18:00:19 +01:00
toaster
1fb84fbfa9 Adjust voting rule changes again
* If `kartvoterulechanges` is set to `Always`, the third option is always the opposite gametype, even if Encore is unlocked - that will now be present on the second option instead.
    * This is both for consistancy with having Encore inaccessible on your gamedata, and a response to community feedback.
* The `kartencore` cvar being turned on will now be reflected in gametype rule changes from Battle to Race. This plugs one last hole in its area of effect for Race tracks.
2022-08-24 18:52:09 +01:00
toaster
77164096dd Don't even attempt to advertise a non-netgame server.
This appears to be a long-time bug that exists upstream too, but nobody even knew about it before the MS rules alert made it clear this was actually happening!
2022-08-24 15:04:09 +01:00
Eidolon
a728a4bb06 Don't use localaim/angle in skybox in demos 2022-08-23 20:11:24 -05:00
X.organic
a4690a44fe
Restore "SONIC ROBO BLAST 2" header in w_wad.c
I don't know either why it disappeared in the first place.
2022-08-23 18:33:44 +02:00
Eidolon
95358ba4fe cmake: add exchndl link on mingw32 2022-08-22 20:59:56 -05:00
X.organic
002c75e9e2
Merge branch 'uint8-wads-and-skins' into futurepk3
Worth doing now that that's been merged into next. Also pulls in a
little bit of master.
2022-08-23 03:19:28 +02:00
Eidolon
72120025e6 cmake: remove win32 subdirectory 2022-08-22 19:43:59 -05:00
Sal
9160c6bef4 Merge branch 'uint8-wads-and-skins' into 'next'
Increase maximum WAD and skin counts

See merge request KartKrew/Kart-Public!291
2022-08-22 23:47:05 +00:00
Lonsfor
75efde143b
Separate deadzones for menus 2022-08-22 15:52:22 -04:00
Lonsfor
c9a6f9f9a3
Change minimum deadzone for menus from 3/4 to 1/2 2022-08-22 15:52:22 -04:00
Lonsfor
8724b01ae4
Set minimum deadzone for menus and prevent setting deadzone to 0 (c Ashnal) 2022-08-22 15:52:22 -04:00
Lonsfor
080a4f080a
Menu options for deadzones 2022-08-22 15:52:22 -04:00
Lonsfor
0e1a91c655
Separate deadzones for players 2 3 and 4 2022-08-22 15:52:20 -04:00
Lonsfor
2dd21de302
Add separate x/y deadzones 2022-08-22 15:50:27 -04:00
X.organic
f92c5b96ac
Fix a performance regression in query functions
This commit brings back the old code for W_CheckNumForNamePwad, using memcmp
instead of strncmp, which is readily inlined by modern C compilers and has
more acceptable performance in P_AddWadFile. Also removes some redundant
strlens, saving the result of one call instead.

This commit increases this branch's distance from SRB2 2.2, per Ashnal
and SteelT's note that I shouldn't worry too much about it, especially
when there's performance on the line.
2022-08-22 13:25:24 +02:00
X.organic
3305303ea7
Merge branch 'master' (1.5) into futurepk3 2022-08-21 22:10:12 +02:00
James R
08f49671ef Send ASKINFO packet after hole punching
Time spent in I_NetRequestHolePunch no longer counts
toward ping measurement in the server list.
2022-08-21 04:15:59 -07:00
James R
1551e4572d Do not query DNS for holepunchserver more than once per tic 2022-08-21 03:45:55 -07:00
X.organic
b4ebbbad89
Remove the last SINT8 handling skin indices
Thanks to Callmore's insistence on me sweeping through functions that
return -1 on error.
2022-08-21 11:50:02 +02:00
Eidolon
f008e63037 Don't sleep w/ fpscap 0 and vsync enabled 2022-08-20 15:55:17 -05:00
X.organic
477c848615
Bring the maximum WAD file count up to 255
Per @TehRealSalt's recommendation.
2022-08-20 21:45:22 +02:00
Eidolon
ca5884cf5e reset cam interpolation on P_ResetCamera 2022-08-20 13:42:34 -05:00
Eidolon
a3bc32f7a0 fix portal interp view positioning 2022-08-20 13:00:37 -05:00
Eidolon
593cbbea65 Don't popup MS rules in dedicated mode 2022-08-20 12:20:09 -05:00
Eidolon
af3df72c29 cmake: build sdl target with threads support 2022-08-20 12:13:48 -05:00
Eidolon
b426602b24 cmake: remove patch.dta from assets script 2022-08-20 12:05:53 -05:00
X.organic
d820b8e0c7
Increase maximum skin count to 255
This time without spare slots, because I don't see shenanigans like
WAD_MUSIC happening with skin indices. Verified to work by saving a
replay with 139 skins as the 133th skin and playing it back a few times.
Shouldn't cause issues with netcode either because there are no SINT8s
handling skin indices.
2022-08-20 14:08:14 +02:00
X.organic
09ae350603
Increase maximum WAD count to 250
Can be increased up to 255 safely, just not 256. 5 slots left for
shenanigans like Moe Mansion's WAD_MUSIC.
2022-08-20 14:05:32 +02:00
James R
993b3c96ac Update version to 1.5 2022-08-19 21:19:42 -07:00
James R
2edc840037 Draw PINGD before delay number 2022-08-19 21:13:05 -07:00
James R
54b5955a74 Ping counter: change patch name PINGF to PINGD
Update gfx.kart hash
2022-08-19 20:45:16 -07:00
James R
be3dfa45d0 Rename rendezvousserver to holepunchserver 2022-08-19 20:19:45 -07:00
James R
f2534f8cb5 Master server: use I_OutputMsg during startup
CONS_Printf calls CON_Drawer during startup, thread
collision stuff.
2022-08-19 20:05:05 -07:00
James R
2137a096e6 Reset remotenode when discarding STUN/hole punch packet
Fixes some wild behavior when a lot of hole punching
requests are coming in.
2022-08-19 19:55:08 -07:00
X.organic
8cd9b64716
Merge branch 'master' (1.4) into futurepk3
Now that 1.4 is out, maybe this will come in handy in 1.5, should 1.5 be
released. If not, I guess Ring Racers will make this branch redundant
once that comes out.
2022-08-20 03:10:32 +02:00
toaster
c5e131460e Finalise credits for real. 2022-08-19 22:30:23 +01:00
James R
c6e3f780e7 Revert "Merge branch 'consoleplayer-dedicated' into 'next'"
This reverts commit 5ec44ba3fa, reversing
changes made to 4c5d69b714.
2022-08-18 18:14:23 -07:00
toaster
f2017fd31a Only display master server rules popup once per game boot.
Doesn't prevent it from happening later if the rules weren't successfully fetched, though.
2022-08-17 13:52:31 +01:00
X.organic
b3dd979762
Finish SRB2 2.2 PK3 loading backport
Implements W_VerifyPK3, thus allowing music PK3s - even those created
with an archiver, thanks to the preceding commit - to be loaded as
"unimportant" files, like music WADs can be.
2022-08-16 21:54:04 +02:00
toaster
5812d7343d maps.kart hash finalised. 2022-08-16 20:39:48 +01:00
toaster
426b089d1d Fix VHS effect speeding up with interpolation. 2022-08-16 20:37:19 +01:00
toaster
2733571d27 Fix the interp-related Ancient Tomb FOF flickering.
Notably caused by a difference in behaviour between Software and GL that was already resynchronised in the 2.2 codebase.
2022-08-16 20:08:52 +01:00
X.organic
0a12b025ff
Start of SRB2 2.2 PK3 loading backport
Backports the fixed ResGetLumpsZip code, registration of longname
fields and support for PK3s without trailing directory entries.
2022-08-16 20:36:51 +02:00
toaster
9e3fdfeeb7 Update maps.kart hash one more time... 2022-08-13 12:07:30 +01:00
toaster
c09f5c0425 Fix a regression in non-ramp sector (no step down) functionality.
Seems to be a regression in internal too. Requires more analysis on behaviour in the 2.2 engine, but essential for maintaining compatibility in 2.1 (such as with Opulence wobbly carpet).
2022-08-12 22:13:45 +01:00
toaster
cf882f4a30 Utilise execversion to one-time reset two cvars on upgrade to v1.4.
- `cv_masterserver` - Replaces a hack checking for the original SRB2 MS addres every time, and additionally catches those who tested an early version of the http MS.
- `cv_usegamma` - This was previously WAY too easy to accidentially change. This way, a user who has had this accidentially happen will automatically return to baseline.
2022-08-11 23:46:41 +01:00
toaster
a60052b35d Fix changing gamespeed from the menu, for real
I originally wrote a ridiculous attempt at reimplementing the existing value rollaround. For one reason or another, that sidesteps net transmission. Let's just avoid all those hacks and limit our influence to changing the maximum allowed range.
2022-08-11 23:18:48 +01:00
toaster
c657a47d56 Don't force a NEW CHALLENGER!! map reset if spectators enter during the introtime.
Doesn't affect the conditions that allow entry -- just avoids pointlessly resetting the map if it occurs during the period where literally nothing can happen.
2022-08-11 22:45:32 +01:00
toaster
66ac4bc309 Fix interp-related skybox freak for splitscreen p1. 2022-08-11 22:37:25 +01:00