Commit graph

24246 commits

Author SHA1 Message Date
NepDisk
dcdbd049e7 Split votescreen stuff into its own file 2026-03-28 02:18:11 -04:00
NepDisk
dad79270d1 Split vote finalize into its own func 2026-03-28 01:52:58 -04:00
NepDisk
5ae78d1d7e Update credits 2026-03-28 01:28:17 -04:00
JugadorXEI
040cb9d298 Clamp justPlayed to the upper limit (prevents SOC Hidden level weirdness) 2026-03-28 01:18:10 -04:00
JugadorXEI
1723ba407b Add guard so justPlayed does not get set/decrease for maps in player-less dedicated servers
Works in tandem with the previous commits so that justPlayed stays at 0 for all levels until someone joins.
2026-03-28 01:17:02 -04:00
JugadorXEI
b08f2ca388 Clear justPlayed and anger records from map headers when all players leave a dedicated server 2026-03-28 01:16:53 -04:00
JugadorXEI
6892abcb8c Fix off-by-one error when setting justPlayed on a map header (plus debug code)
This is because although the map value per gametype is decreased by 4 (VOTE_NUM_LEVELS) to account for 4 vote selections, it doesn't account for the prevmap being one of those four levels, so we decrease by one to account for that also.
2026-03-28 01:15:51 -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
NepDisk
ec2d406222 Fix titlecard round count 2026-03-27 23:42:14 -04:00
NepDisk
c1bf171a3a Raise roundqueue maximum to 20
most events do 12-20 maps so this makes sense.
2026-03-27 23:40:31 -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
Skirlez
4c5ed80162 don't allocate 2 extra bytes in DoSayPacketFromCommand 2026-03-27 23:29:24 -04:00
NepDisk
06245c7ecc Update credits 2026-03-27 23:27:55 -04:00
Skirlez
4b03990167 Fix a crash on some setups when using the say or csay commands 2026-03-27 23:25:45 -04:00
JugadorXEI
0e53d5dfd7 Lua: Hook PlayerMsg to code, remove vestigial mute variable from it¨ 2026-03-27 23:19:51 -04:00
NepDisk
90026bc683 Port PT_SAY from RR
Based on the various commits by tyron
2026-03-27 23:18:00 -04:00
NepDisk
2166bfa7c2 Fix random icon not displaying 2026-03-27 22:22:00 -04:00
NepDisk
fddcf9c2af Merge branch 'next' into roundqueue 2026-03-27 22:16:42 -04:00
NepDisk
857af5beec Fix EFX crashing with mines 2026-03-27 22:14:55 -04:00
NepDisk
ca57b6dcfa Cast this 2026-03-27 21:18:47 -04:00
NepDisk
f7f1a10a7b Cast this 2026-03-27 21:17:12 -04:00
NepDisk
50bbd3c561 Merge branch 'next' into roundqueue 2026-03-27 21:01:47 -04:00
NepDisk
5d38c24f41 Fix copy paste mistake in file header 2026-03-27 21:00:59 -04:00
minenice55
48785600cd make gamepad gravity calc works a bit better with timescale
ideally this runs at the rate we pump inputs instead of at the game tick rate but I'll save that for if/when we get a better input events system
2026-03-27 19:13:26 -04:00
minenice55
9f79cdef49 fix seeking reticule with jawz
this flag needs a proper setter/getter
2026-03-27 15:22:20 -04:00
NepDisk
045e6170c1 Create and use mapnum enumtype 2026-03-27 13:37:36 -04:00
minenice55
c8a4e99dd2 attraction shield attack timer
and tweak visuals
2026-03-27 12:22:53 -04:00
minenice55
204cbc8190 hashes for new assets 2026-03-27 11:51:29 -04:00
minenice55
471bd9e269 only use hi power boost if locked on to a target and fully charged 2026-03-26 17:54:59 -04:00
minenice55
45e6fc6aef add cvars for boost values, small aim assist, contact damage 2026-03-26 17:49:18 -04:00
NepDisk
a2f1b430a7 Make mapbuffer use UINT16 2026-03-26 16:51:14 -04:00
NepDisk
a6006e0980 Go to vote instead of returning to menu 2026-03-26 16:45:11 -04:00
NepDisk
3ebe925669 `Raise extbuffer 2026-03-26 16:42:50 -04:00
NepDisk
4bde2e7452 Fix some missed INT16 cases and update G_GetNextMap 2026-03-26 15:46:41 -04:00
NepDisk
820db79d18 Raise most map numbers to UINT16
I've probably missed a few...
2026-03-26 14:55:20 -04:00
yamamama
ca8b66dd80 Fix compatibility issues with ShouldDamage
- Death-based damage types (DMG_DEATHMASK) only accept "should damage" responses from the ShouldDamage hook
  - SRB2K never had a "damage value" system for spinouts, squishes, and explosions to begin with
- In Lua compatibility mode, death-based damage types force the damage value to be 10000 when a player is being killed
2026-03-26 11:56:26 -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
yamamama
266453f15a Minor affine fixes
* Remove the "pivot offset difference" system; this
  really only ever becomes a concern for pre-scaled affines,
  and caused janky visuals (especially for flipovers)
* Make OGL offsetting actually respect horizontal flips
2026-03-25 12:46:33 -04:00
James R
57b8e683ad Console: use CTRL_+ and CTRL_- to change font size 2026-03-25 01:52:28 -04:00
minenice55
91d92b8142 change mechanics of attraction shield's tackle
instead of a direct homing attack (prone to very strange velocity changing), now is a boost that gets stronger if you're driving in the direction of your target
this boost shouldn't bypass offroad

todo:
hi-power mode should deal damage on contact
new targeting logic that has a LoS check
slight aim assist?
expose to cvars
2026-03-25 00:53:51 -04:00
NepDisk
b3347d785a Alias GT_MATCH as GT_BATTLE in compatmode
Fixes some v1 mods such as Achii Titlecards
2026-03-24 23:25:41 -04:00