Commit graph

22835 commits

Author SHA1 Message Date
toaster
43b1686abf Controller rumble if Stairjank is affecting your momentum directioning
Uses the same strength as offroad because of how it's functionally equivalent in Sealed Star stages
2023-04-12 23:08:50 +01:00
SteelT
bdfccb4478 Change static buffer size to 2048, fixes the "directive output may be truncated writing up to" error 2023-04-12 14:31:50 -04:00
SteelT
8311ba8acb m_perfstats.c: Fix directive output may be truncated warning/error
Lets the game build on my end with ERRORMODE enabled
2023-04-12 14:11:23 -04:00
toaster
fa48fa421b Guarantee initialisation of event.data2 to 0 for controller button event 2023-04-12 18:49:23 +01:00
toaster
3210b7b80c Revert "Revert "Ignore OS key repeats for game controls""
This reverts commit b6b5175bbee451579dc7d364cb40787e29b25a83.
2023-04-12 18:42:16 +01:00
toaster
74247d8100 Permit compiling with LOGMESSAGES disabled (and accomodate a crash early enough in the startup before the log is made, too) 2023-04-12 15:08:17 +01:00
toaster
adc2adb5c8 I_ShowErrorMessageBox for SDL interface
Handles showing the error message box on quit.
- Polite communication that the game fell over and that you (probably) didn't do anything wrong
- Accomodates pointing you to UNIXBACKTRACE and _WIN32 exchndl crash logs if relevant
- Points you to the specific dated and timed log file that contains the error
- Tells you that the vague and often confusing error message (like I_Error) is for a programmer, server host, or add-on creator
- Hee Ho!
2023-04-12 14:59:12 +01:00
toaster
6f9f3a733e Merge branch 'collision-crashes' into 'master'
More collision use after delete fixes

See merge request KartKrew/Kart!1161
2023-04-12 10:28:36 +00:00
toaster
ffd59c3d9b Merge branch 'fix-fof-spring-terrain' into 'master'
K_ProcessTerrainEffect: fix spring crash on top of FOF

See merge request KartKrew/Kart!1162
2023-04-12 10:09:21 +00:00
AJ Martinez
4f2dccbf72 Use UINT32 time_t 2023-04-12 02:51:48 -07:00
AJ Martinez
e3ea9df683 Fix sliptide death-spirals on input boundary cross 2023-04-12 01:26:33 -07:00
AJ Martinez
d870bf0416 Fix min/max allowing for theoretical handling breakage in camera-sliptide logic 2023-04-12 00:47:00 -07:00
AJ Martinez
01813c91ba Merge remote-tracking branch 'origin/master' into online-handling 2023-04-11 23:42:58 -07:00
AJ Martinez
2b8f71bec5 It's probably bad to allocate exponential memory 2023-04-11 23:11:23 -07:00
AJ Martinez
2426170e0b Hash pubkeys for early out during stat retrieval 2023-04-11 23:09:40 -07:00
AJ Martinez
515e0baa01 Do serverstats file I/O entry by entry 2023-04-11 22:55:13 -07:00
AJ Martinez
44848717df Credit in k_serverstats.h 2023-04-11 22:27:13 -07:00
AJ Martinez
2961629332 Allow and warn about duplicate pubkeys in DEVELOP 2023-04-11 22:24:12 -07:00
AJ Martinez
f0658910af Credit in k_serverstats.c 2023-04-11 22:15:55 -07:00
James R
1a2121b3ca K_ProcessTerrainEffect: fix spring crash on top of FOF 2023-04-11 20:32:55 -07:00
toaster
df38d6fcde Comment fix 2023-04-11 20:07:45 +01:00
toaster
86fe3e266b allZero doesn't need to be memset 2023-04-11 20:05:53 +01:00
toaster
d85779c12b Newlines at end of k_profiles and k_serverstats 2023-04-11 20:05:43 +01:00
toaster
d61d822231 Compilation fixes: Unused variable warnings 2023-04-11 20:02:39 +01:00
toaster
a97373cb7a Increment PROFILEVER due to merge conflict resolution 2023-04-11 19:49:08 +01:00
AJ Martinez
0aabb6ddcd Return full stats struct, dynamically allocate trackedList 2023-04-11 19:38:02 +01:00
AJ Martinez
4f569641fc Store total wins in profiles 2023-04-11 19:38:02 +01:00
AJ Martinez
c7c9f145ca Really get rid of XD_POWERLEVEL 2023-04-11 19:38:02 +01:00
AJ Martinez
3012839138 Serverside PWR: Completely rip out profile PWR, add PWR to XD_ADDPLAYER 2023-04-11 19:38:02 +01:00
AJ Martinez
10fb496689 Version field for srvstats.dat 2023-04-11 19:38:01 +01:00
AJ Martinez
7eb5755963 Disallow duplicate non-GUEST pubkeys 2023-04-11 19:38:01 +01:00
AJ Martinez
d89d06be31 Instantly update stats when players leave 2023-04-11 19:38:01 +01:00
AJ Martinez
134a5ef9c0 WIP 2023-04-11 19:38:01 +01:00
toaster
c7e510a3ec k_collide.cpp: Guard against dereferencing possibly invalid t2 2023-04-11 17:41:41 +01:00
toaster
b9133530e2 Obj_OrbinautJawzCollide: Guard for removed objects 2023-04-11 17:39:53 +01:00
toaster
d4de130fe0 More sanity checks for skipping restricted queue entries
- GTR_FORBIDMP in netgames
- mapheader doesn't exist
2023-04-11 17:18:30 +01:00
toaster
f1ca263c40 Promote gametypes in XD_MAP, XD_MAPQUEUE and XD_REQMAPQUEUE to UINT16
Since new-voting repermitted custom gametypes to go beyond the bounds of a UINT8, here's some extra anti-footgun protection.
2023-04-11 17:18:30 +01:00
toaster
4f271aec24 Handle_MapQueueSend
All XD_MAPQUEUE/XD_REQMAPQUEUE packets are now handled in one function, to guarantee requests are made consistently.
2023-04-11 17:18:30 +01:00
toaster
47ecc6370b K_UsingPowerLevels: Clean up significantly
- Comment each restriction/enablement
- Fix the roundqueue PWR disabling to only occour when the roundqueue is in action, as opposed to when it has any entries at all
2023-04-11 17:18:29 +01:00
toaster
7d1e1a578e (Will merge conflict with new intermission) Do not show advancemap string if roundqueue (or nextmapoverride) will have effect next round 2023-04-11 17:18:29 +01:00
toaster
6bca2a7003 Console command queuemap
- Full valid format: queuemap [name/num] -gametype [name] -encore -force
- Server is fully authoriative about the order of maps in the round-queue
    - Server sends XD_MAPQUEUE (which contains gametype, encore, and ordering)
    - Admin clients have to send XD_REQMAPQUEUE (which contains gametype, encore, and mapnum)
        - Servers spit out a processed XD_MAPQUEUE on reciept
    - Done this way just in case an XD_MAPQUEUE is not recieved and has to be resent, guarantees ordering
- Will create a UI for this post-launch, this is primarily for testing but may be useful for user-ran tournaments
2023-04-11 17:18:29 +01:00
toaster
a1065d9036 G_MapIntoRoundQueue: Seperate into a general append function *and* a specific placement function. A surprise tool that will help us later 2023-04-11 17:18:29 +01:00
toaster
371c52d457 XD_MAP: Clean up associated functions and typings
- Free `mapname` at successful completion of Command_Map_f
- Maps are UINT16, not INT16 or INT32
- Remove [MAP]code component of help message as it hasn't been relevant since long map markers
2023-04-11 17:18:29 +01:00
toaster
85897190e0 GetGametypeParm
Both Command_Mapf and Command_RandomMap take gametype information, so let's seperate it into one generic function
2023-04-11 17:18:29 +01:00
toaster
b8c858e00b Don't halt the server over malformed roundqueue data 2023-04-11 17:18:28 +01:00
toaster
48665e5ee3 [pink dog voice] THAT'S not archive block Parties!! 2023-04-11 17:18:28 +01:00
toaster
487ec6db74 K_UsingPowerLevels: Disable PWR if a roundqueue is in action 2023-04-11 17:18:28 +01:00
toaster
5751ecdcd1 Special stage access-related fixes
- Fix GPEVENT_SPECIAL forcing via rank restriction in round queue
- Re-implements gamedata->everseenspecial
2023-04-11 17:18:28 +01:00
toaster
a08683e819 Improved round-queue state net communication
- Only send from the server when an update to roundqueue state is relevant
- Perform sanity checking on reciept
- Initialise when map command is sent with roundqueue size greater than the client's
- Correct gametype/encore state on reciept
- Only permit from the server, forbid admin clients from providing it on penalty of kick
2023-04-11 17:18:28 +01:00
toaster
19ef96351a roundqueue
A general purpose system that permits cacheing of GP progression in one place, but which permits future expansion and brings Online GP a little closer to reality.
- Stores a bunch of levels, gametypes, encore state, and restricted-by-rank-ness in sequence.
    - Initialised on GP cup select.
    - FUTURE WORK: Open to being initialised by other methods
- Digests its way through that sequence as maps are completed.
- Stores round number instead of `grandprixinfo`.
- Map commands as sent over the wire have been adjusted.
    - Sends round number and size of/position in roundqueue.
    - Now figures out GP Event Type from gametype.
        - Can be swung in the direction of a Special Stage with a hint flag.
        - This hint flag replaces "fromlevelselect", which was functionally vestigal.
2023-04-11 17:18:27 +01:00