Commit graph

6240 commits

Author SHA1 Message Date
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
toaster
8cbedf789a Copyright update. 2022-08-10 00:13:49 +01:00
toaster
2bc67a6151 Fix reversing/braking not being mapobjectscaled 2022-08-09 12:33:59 +01:00
toaster
0bcf934f03 One last touch to the credits. 2022-08-08 19:05:15 +01:00
toaster
aeeabbf991 Update maps.kart hash one more time for the road. (tee hee, racing pun) 2022-08-08 16:59:35 +01:00
Hannu Hanhi
3a672a01e7 Use SSE3 in 32-bit x86 binaries 2022-08-07 07:38:42 -07:00
SteelT
93ec7bd9e5 Don't compile with dynamic base 2022-08-07 05:43:41 -07:00
toaster
0a95af8e05 Final credits update 2022-08-06 15:14:40 +01:00
toaster
0e5f223666 Supporting variable refresh rate for minor menu timers
Notably implemented with a hack, but these have already or will be rewritten for Ring Racers, and backporting isn't viable or desirable, so functional is better than the alternative.
2022-08-06 14:26:56 +01:00
toaster
5aa56e6029 Minor compiler warnings 2022-08-04 17:03:16 +01:00
toaster
284ae5fab8 Fix an interpolation issue with the Signpost
Because its z was being set but its old z wasn't being overwritten, at high enough refresh rates you can see it appear above its starting position for a single frame.

Done by modifying old_z instead of using P_SetOrigin for consistency of avoiding CheckPosition.
2022-08-04 15:57:44 +01:00
toaster
9e3b89c54f R_DrawVisSprite adjustments
* Backport the fix to an interp-based crash caused by using a combination of interpolated and uninterpolated scale in renderer calculations.
* Between this and the last commit, I attempted a refactor of this and associated functions in order to find the cause of the above crash. Committed are the changes which resulted in increased performance.
2022-08-04 15:34:59 +01:00
toaster
a93f7ff7db New maps.kart hash for rearranged music lump names.
Revised the "last updated" instead of appending because we don't need to give internal-only changes too much spotlight.
2022-08-04 15:34:59 +01:00
toaster
d939be8530 Merge branch 'v14-cmake-improvements' into 'v14prep'
(v1.4) cmake improvements

See merge request KartKrew/Kart!634
2022-08-04 14:34:39 +00:00
James R
14e502fd3f SDL hint render driver to direct3d11
Windows bug; RPT files were not being generated for
toaster on Windows 11. Eventually it was narrowed to down
to direct3d driver specifically.
2022-08-03 11:10:12 -07:00
Eidolon
5dac920ea4 Remove win32 backend-specific files 2022-07-23 12:59:50 -05:00
Eidolon
7de827deb4 Fix mac crashes + signal handling 2022-07-19 17:23:03 -05:00
Eidolon
f945c369c7 cmake: readd discord rpc libraries to link 2022-07-19 17:23:03 -05:00
Eidolon
e87650f653 cmake: Set plist properties for macOS bundle
yay icon
2022-07-19 17:23:03 -05:00
Eidolon
0f675e93b2 cmake: Fix rpath issues in macOS bundle fixup 2022-07-19 17:23:03 -05:00
Eidolon
0ea3387b80 cmake: Adjust linkage for macOS
This properly links dylibs set during build instead of expecting
the libraries to be in the system path.

# Conflicts:
#	src/sdl/CMakeLists.txt
2022-07-19 17:23:03 -05:00
toaster
8e398504f5 Avoid the every-time crash with interpolated firework trails.
Technically just removes one event that causes the crash instead of the actual crash, but I tried attacking it at the source and it's some nasty, nasty stuff...
2022-07-17 23:05:13 +01:00
toaster
a091420764 Actually update CMakeLists.txt for real.
And add a little extra to the comment for anti-footgun insurance.
2022-07-17 22:03:57 +01:00
toaster
1c961e60f3 Primary 1.4 prep.
* New version number.
* New MODVERSION.
* New asset hashes.
* Disable patch.kart requirement.
* Remove the request to modify CMakeLists.txt, because that got revamped and grabs the version number from elsewhere now.
2022-07-17 21:15:27 +01:00
toaster
b30e84b156 Prevent use after free of lump name in WAD compression-handling code.
Located by my new compiler! Also a nice, simple test commit for my new Git client...
2022-07-16 12:51:22 +01:00
toaster
cd3774932e Interpolate the Phantom Ruby floating animation.
Also, I fell for the copypasted code bait CLASSIC, so now all instances of the Ruby are decoupled from FPS cap.
2022-07-10 21:54:10 +01:00
toaster
9aeacf8887 Make the Phantom Ruby icon float at the same speed regardless of FPS cap. 2022-07-10 20:20:39 +01:00
toaster
51998ed105 Fix Software disabling FPS cap instead of the OpenGL submenu. 2022-07-10 20:17:56 +01:00
toaster
05a79f6a8b Forgot to delete the duplicate registration for cv_kicktime in an earlier commit in this branch. 2022-07-10 19:59:50 +01:00
toaster
cb5da4c3c3 Instead of reverting kartspeed on invalid set, prevent it from being set in the first place, just like Encore! Should resolve desync. 2022-07-10 19:59:29 +01:00
toaster
8c91b3650f Add MF_DONTENCOREMAP to each of the item monitors.
They were skipped because I didn't expect anyone to use them as they're simply leftover SRB2 assets, but Kart Airlines surprised me by using them as pushable track hazards.
2022-07-10 19:20:25 +01:00
toaster
e7ee1126b3 Change where cv_kicktime is registered, so that it's valid at config load time. 2022-07-10 16:10:42 +01:00
toaster
266c463007 Add a sound inexplicably freeslotted in patch.kart. 2022-07-10 16:07:28 +01:00
toaster
eea0df0ba2 Ping measured in frame delay instead of milliseconds
The part of HOSTMOD ministats that I wanted. Can go back to ms using the pingmeasurement cvar.

If Tyron wants to bring ministats fully in I think it'd be better to bring its ideas to replace the current HUD instead, ideally using the existing ping gfx, so they should bring it up with Oni

# Conflicts:
#	src/d_clisrv.c
#	src/d_netcmd.c
#	src/d_netcmd.h
#	src/doomstat.h
#	src/hu_stuff.c
#	src/m_menu.c
2022-07-10 16:06:50 +01:00
toaster
e1e48b71e2 Fix the Kart Krew intro so that it ends automatically again. 2022-07-09 23:08:52 +01:00
toaster
0845547f47 Only show the rules popup if rules have been recorded. 2022-07-09 21:12:13 +01:00
toaster
4f58842804 Merge branch 'next' into public_next
# Conflicts:
#	src/i_tcp.c
2022-07-09 20:31:49 +01:00
toaster
64474c35ae Merge branch 'http-ms-rules' into 'next'
Print rules in menu and in console

See merge request KartKrew/Kart-Public!286
2022-07-09 19:18:47 +00:00
Sal
b1deb35564 Merge branch 'better-bans' into 'next'
Better bans

See merge request KartKrew/Kart-Public!285
2022-07-07 11:11:31 +00:00
toaster
fbb613b2d6 Catch several ways ban.txt could be malformed by a well-meaning server host, and report it back via the log. 2022-07-04 14:00:12 +01:00
toaster
36e44f2f6f Free the banned struct on SOCK_ClearBans. 2022-07-03 22:01:51 +01:00
SteelT
baf7620e61 Fix MusicChange lua hook returning some values incorrectly 2022-07-03 15:51:51 -04:00
James R
a95907cb8c Print and display rules from the master server
Update HMS version to 2.2.

Fetch the rules when master server cvar set. Print rules
in console when server register. Display the rules in the
menu when entering the server hosting menu or when
changing the advertise cvar.
2022-07-02 22:49:25 -07:00
toaster
7c92a7efbb Complete BANFORMAT header implementation.
* Warn the user when an incompatible ban.txt is being loaded, and stop early.
* Don't inexplicably assign as a boolean, you bafooligan!
2022-06-15 22:34:05 +01:00
toaster
3ff5e3f8cd Fix an issue where if the last line of an M_StartMessage was the longest, the box width wouldn't account for it. 2022-06-15 17:00:09 +01:00
toaster
3498f1cff1 First commit with actual human testing involved.
* Fix some bugs.
    * Reset bannode information properly, fixing being unable to join your own server.
    * Write to the buffer before saving the kick/ban reason, rather than after.
* Improve the print output for the `showbanlist` command.
    * Includes username.
    * Includes remaining time as seen by a kicked joiner.
    * Hides expired bans.
* Improve the messages for ban/kick related refused joins.
    * Replace the Reason with the actual admin-provided reason for refused connection.
    * Replace the "Server refuses connection" header with "You have been [banned/temporarily kicked] from the server", the previous given Reason.
    * Fudge the time reported for temporary kicks so that a user is encouraged to return slightly after their tempkick ends, rather than before.
* Add an extra newline to the M_StartMessage for being kicked/banned with a reason provided.
2022-06-15 16:56:38 +01:00
toaster
40f7be7676 Static for compilation warning. 2022-06-15 13:36:32 +01:00
toaster
7bc59abc30 Create a single struct for bannednode and bannednodetimelft, and use the matching ban ID inside that struct.
While this commit does not increase the visibility of ban reasons, it makes this possible later.
2022-06-14 22:09:27 +01:00
toaster
cd6b1b2cd9 Enforce MAX_REASONLENGTH when reading ban.txt. 2022-06-14 21:42:41 +01:00
toaster
8addea0d45 Core 1.4 specific changes.
* Ensure it can compile.
    * Removing vanilla 2.2 properties that slipped in to previous commits.
    * Rearranging i_tcp.c to avoid implicit declaration.
    * Complete rename of `IsNameGood` to `EnsurePlayerNameIsGood`.
* Add "BANFORMAT" header, for versioning support.
* Add conversion from 1.3-and-earlier format to new system.
* Don't ban the entire internet - convert zero-masks to the most specific ones.
2022-06-14 21:15:35 +01:00
toaster
55be74396f Ban improvements
- Save a note of the username, not just the reason.
- Allow setting a mask with the `banip` command.
- Make ban.txt's formatting a lot more sane. Username and reason are stored in quotes. The mask uses the same formatting as actual CDIR.
- Keep track of if we tried to load ban.txt. If it wasn't, then don't save over it with a blank file.
- Disallow quotes in player names, as it makes player name detection in console more annoying, and saving username in files scary.

# Conflicts:
#	src/d_clisrv.c
#	src/d_netcmd.c
#	src/i_tcp.c
2022-06-14 17:25:40 +01:00
toaster
8d05bf669b Kicks are now temp bans
Length is determined by the "kicktime" cvar, in minutes. By default, this is set to 10, but I'm willing to adjust this. Only applies to manual kicks (in the future, maybe also name filter kicks).

The timestamp for the unban time is even saved in ban.txt, so long-term temporary bans are completely possible. (I checked, you can attempt to ban someone for up to 1902 years if you really want to.)

# Conflicts:
#	src/d_clisrv.c
#	src/d_clisrv.h
#	src/i_tcp.c
2022-06-14 17:15:28 +01:00
toaster
24181ae738 - Attach ban reasons to banned_t
- Properly call D_SaveBan after remote bans. Bans are no longer saved in the ban command and instead wait for the actual kick to process, since before they were split between the two, which is what caused the discrepancy.

# Conflicts:
#	src/d_clisrv.c
#	src/i_tcp.c
2022-06-14 16:58:07 +01:00
toaster
2f0e1521d0 Combine banned & bannedmask into banned_t
Better code cleanliness, also makes it easier to add more data to bans later (such as a timestamp for temporary bans)

# Conflicts:
#	src/i_tcp.c
2022-06-14 16:48:29 +01:00
toaster
77e67d86bc Remove MAXBANS
Needs proper stress testing but seems to work.

# Conflicts:
#	src/i_tcp.c
2022-06-14 16:46:12 +01:00
toaster
8b7aab97c6 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart-Public.git into next 2022-06-14 16:38:37 +01:00
toaster
9d568673f1 Merge branch 'turn-dampen-cap' into 'next'
Cap on turn dampening

See merge request KartKrew/Kart-Public!284
2022-06-14 15:35:36 +00:00
toaster
d49bd1474a Merge branch 'jug_nobumpcode' into 'next'
Fix bumpcode, fix magnet landing (better fix)

See merge request KartKrew/Kart-Public!281
2022-06-14 15:34:39 +00:00
Sally Coolatta
c3ce70299f Store K_GetKartSpeed result 2022-06-02 22:10:05 -04:00
Sally Coolatta
451ad75610 Cap on turn dampening
Fixes high speed bugs without removing the ability to turn at those speeds. Similar fix to what is in Ring Racers.
2022-06-02 21:36:16 -04:00
Sal
71de39bcbc Merge branch 'gametype-preference' into 'next'
Server Gametype Preference

See merge request KartKrew/Kart-Public!278
2022-06-02 03:03:43 +00:00
JugadorXEI
894c4cffc2 no more bumpcode, no more magnet landing (again) 2022-06-01 17:47:09 +02:00
toaster
8fa22d562f Merge branch 'hole-punch-backport' into 'public_next'
Hole punching backport

See merge request KartKrew/Kart!445
2022-05-31 15:48:00 +00:00
AJ Martinez
a4a1f32b41 Fix chat flood crashes (from STJr/SRB2!1698) 2022-05-30 21:41:39 -05:00
Sally Coolatta
fdefc15a4d Merge branch 'master' into next 2022-05-30 18:23:30 -04:00
Sally Coolatta
2861e7688a Use old behavior when dipping below 35 with interp 2022-05-30 18:22:46 -04:00
AJ Martinez
73aed4643b Use a temporary file instead of checking against config (from JugadorXEI) 2022-05-28 14:57:16 -05:00
AJ Martinez
7f46eb72bc Fail loudly when config isn't writable 2022-05-27 20:07:37 -05:00
toaster
77f2894bc3 Make a server report its preferred gametype on the MS listing, not its current one.
The intent is to stop servers from needing to dedicate their limited name/MOTD space to things like advertising `lessbattlevotes`, and to avoid "punishing" a server in visibility for allowing temporary gametype switches. However, this is possibly a controversial change, so I'm doing it in its own commit in case there's a clear consensus to revert.
2022-05-27 23:21:25 +01:00
toaster
7e7bd7dbb2 New kartgametypepreference cvar.
* A "canon" adaptation of the community-created server option `lessbattlevotes`.
* If set to "None", voting behaves as before.
* If set to "Race" or "Battle". that gametype is considered the preference.
    * The voting screen is always operated from the perspective of the preferred gametype.
    * If you're in an un-preferred gametype, the third vote option will always allow you to continue the gametype.
    * If the preferred gametype is Race and you've just exited a Battle map, Encore may now appear on the second vote option.
* A number of bugs with voting have been corrected.
    * If `kartencore` is on, the third vote option will now correctly have Encore applied.
    * If a custom EXE or malformed packet sends an Encore flag alongside a Battle gametype ID, actively strip it.
        * Just to note, clients do not enter Battle Encore with or without this change - this just prevents a promise the rest of the game couldn't fulfill.
2022-05-27 23:16:02 +01:00
toaster
7bf672a399 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart-Public.git into next 2022-05-27 17:51:11 +01:00
toaster
37986f9775 Merge branch 'port-vanilla-sight' into 'next'
backport P_CheckSight from vanilla

See merge request KartKrew/Kart-Public!273
2022-05-27 16:34:19 +00:00
toaster
f46568868a Merge branch '2.2backport-ceilslope-light' into 'next'
2.2 Backports - add ceil slope double step-up/down and fix sprite/models all black in sector with light level of 256

See merge request KartKrew/Kart-Public!274
2022-05-27 16:32:05 +00:00