Commit graph

1575 commits

Author SHA1 Message Date
toaster
8ce9681bd8 Got_TeamChange: Successfully remove PF_WANTSTOJOIN if you use changeteam spectator to cancel your join 2026-03-29 06:22:45 -04:00
NepDisk
8273c91adf Port various RR related spectating fixes 2026-03-29 06:04:52 -04:00
NepDisk
dcdbd049e7 Split votescreen stuff into its own file 2026-03-28 02:18:11 -04:00
Sally Coolatta
1f521d21da Rewrite random map buffer
Each map now just has a countdown for when they'll reappear (stored in mapheader), which gets decremented each time a new map is played. This means it's now compatible across gametype switches, is a lot less complex, and is easy to retrieve the value for a specific map without needing to iterate constantly.

Lots of the old unused code surrounding this function was also removed. Lastly, added a PARANOIA check for callAgainSoon being mishandled.

NEP: I've added back map hell and gametype switching here since it was not in RR
2026-03-28 01:09:00 -04:00
NepDisk
31d8e671cb Comment out cases of "comparison is always true" 2026-03-27 23:54:58 -04:00
NepDisk
3014d6b46b Use NEXTMAP_INVALID instead of -1 2026-03-27 23:44:52 -04:00
toaster
5557aa312d Add roundqueue -show
Reveals the next Round in the queue via server shout message.
Can be used manually, or with automate commands for tournament rulesets that permit foreknowledge of the next Round without requiring the host to work off memory or document.
2026-03-27 23:39:36 -04:00
toaster
ec5b8fcf04 XD_REQMAPQUEUE --> PT_REQMAPQUEUE
It was technically possible for custom clients to spoil future rounds of a tournament queued while they are connected to a server.
Making it a PT direct packet to the servernode both solves this problem AND reduces irrelevant NetXCmd traffic for clients.
2026-03-27 23:37:08 -04:00
NepDisk
50bbd3c561 Merge branch 'next' into roundqueue 2026-03-27 21:01:47 -04:00
NepDisk
045e6170c1 Create and use mapnum enumtype 2026-03-27 13:37:36 -04:00
minenice55
45e6fc6aef add cvars for boost values, small aim assist, contact damage 2026-03-26 17:49:18 -04:00
NepDisk
3ebe925669 `Raise extbuffer 2026-03-26 16:42:50 -04:00
NepDisk
820db79d18 Raise most map numbers to UINT16
I've probably missed a few...
2026-03-26 14:55:20 -04:00
toaster
cf2eb1dc70 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.
2026-03-25 23:38:12 -04:00
toaster
c877362772 queuemap: Add -clear parameter
- Can be used to clear all entries in the round queue
- Stores the special state in the gametype field
- Returns a message if the queue is already empty
2026-03-25 23:32:57 -04:00
toaster
1d4e3b50b0 Handle_MapQueueSend
All XD_MAPQUEUE/XD_REQMAPQUEUE packets are now handled in one function, to guarantee requests are made consistently.
2026-03-25 23:20:19 -04:00
toaster
b30dd43ec6 Got_MapQueuecmd: Add a success message for adding a map to the round queue (visible only to admins) 2026-03-25 23:05:21 -04:00
toaster
9a1212f32e Command_Map_f, Command_QueueMap_f: Prevent memory leak on cheat-limited early-return 2026-03-25 23:02:28 -04:00
toaster
04697e94f3 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
2026-03-25 23:01:42 -04:00
NepDisk
24373da780 Port basics of roundqueue 2026-03-25 22:52:54 -04:00
NepDisk
9061274cdc Add per map global EFX via mapheader 2026-03-22 20:27:47 -04:00
NepDisk
24604a0298 Add small and text only nametags
I really hate HUD code....
2026-03-18 10:45:10 -04:00
NepDisk
19038018f0 Give flameshield a numbers buff
Max speed goes from 78 on sonic to 81 and its accel matches what a sneaker is
2026-03-14 19:43:08 -04:00
yamamama
f082cb1439 Player-tracking roulette box visibility 2026-03-14 19:21:15 -04:00
yamamama
387ea9a559 Experiment: attempt to make Arrow Bullet more reliable by lowering the minimum threshold
This is an Alt Shrink buff
2026-03-14 18:55:10 -04:00
NepDisk
2c6605440d Merge pull request '[FEAT] Tilt Steering, GamepadMotion Sensor Access' (#222) from accelerometer into next
Reviewed-on: https://codeberg.org/NepDisk/blankart/pulls/222
2026-03-11 02:40:24 +01:00
SteelT
c6dbc2aea4 Don't show gametype was changed message if the same gametype 2026-03-10 21:17:27 -04:00
NepDisk
cd2d07b190 Change all gametyperules uses to gametypes[gametype]->rules 2026-03-10 21:14:23 -04:00
toaster
4932bde9b0 gametype_t
- New array of pointers to structures in memory (currently mixing static for base-game and Callocated for custom)
- Centralises a metric-ton of previously seperately handled properties into one struct
    - Gametype_Names[]
    - Gametype_ConstantNames[]
    - gametypetol[]
    - timelimits[]
    - pointlimits[]
    - gametypedefaultrules[]
    - gametypecolor[] - Nep: This one was blan exclusive but I added it regardless.
- Don't attempt to guess custom gametype in Replay Hut (requires more work to make custom gametypes behave across the entire experience)
- I_Error if invalid gametype set
- gametyperules is deprecated since it will never be modified seperately from gametype (temporarily a #define, don't wanna bloat this commit too much)
2026-03-10 20:56:36 -04:00
toaster
926f29dfb8 Pre-emptive fixes for custom gametypes
- Handle mismatched gametypes for client and server on voting screen
- I_Error when running out of gametypes
- Reduce gametype freeslots slightly to avoid colliding with VOTEMODIFIER_ENCORE
2026-03-10 19:36:20 -04:00
toaster
2f495b6de7 We don't have *one* Single Player mode - we have as many gametypes as there are, now. 2026-03-10 19:28:59 -04:00
minenice55
0abcd8eef8 Merge branch 'next' into accelerometer 2026-03-06 15:32:23 -05:00
yamamama
ad1642ecfa Make Hard the default gamespeed, tweak Auto gamespeed to match
It's 2026, and the only time since Super Mario Kart where 150cc is made unlockable is a god-damned arcade game

Plus, it literally makes more sense for Expert (200cc) to be the unlockable speed now
2026-03-04 06:35:59 -05:00
minenice55
6825f64203 Merge branch 'next' into accelerometer 2026-03-03 22:02:59 -05:00
NepDisk
5a3b2157db Port listplayers from saturn 2026-03-03 12:03:29 -05:00
minenice55
e87a135315 holy math 2026-02-25 19:01:31 -05:00
NepDisk
298849b70c Update comment 2026-02-22 21:17:28 -05:00
NepDisk
77d9f53724 I completely forgot about changing this back 2026-02-22 21:14:47 -05:00
minenice55
3db54b9e64 disable attract screen demos for now 2026-02-22 18:01:36 -05:00
GenericHeroGuy
c317aaa18e genius? 2026-02-22 11:26:54 +01:00
GenericHeroGuy
990e21c446 Fix restat in replays, and increment demoversion for the new changes 2026-02-22 11:12:10 +01:00
minenice55
eca1a1452b get this to synch correctly again 2026-02-21 21:20:17 -05:00
minenice55
e22a39d212 register the dummy cvars too 2026-02-21 20:38:12 -05:00
minenice55
3b2ec88e1d is this a good idea 2026-02-21 20:24:06 -05:00
NepDisk
10e11ba5ce Default waterskip bricks on 2026-02-21 09:23:39 -05:00
yamamama
388e359821 Decrease S-Monitor force threshold
17000 is a ridiculous overcorrection; 12000 felt nicer in testing
2026-02-18 23:36:37 -05:00
yamamama
7817062ead Append Saturn's color profile system, rename gamma to brightness 2026-02-18 06:09:53 -05:00
yamamama
4bc810207e Add a customizable decay timer to the S-Monitor 2026-02-16 20:45:58 -05:00
yamamama
e036028948 Invincibility damage toggle, bring back S-Monitor's distance check 2026-02-16 19:59:35 -05:00
yamamama
d5ca5516de Split Classic and Alt. Invincibility
- It's what the people want, why bother to complain?
- Alt is now its own separate item titled the S-Monitor
- Several variables, macros, functions, and comments have been renamed to fit this change
2026-02-16 18:40:48 -05:00