Prints a full, ordered table of results, basically equivalent to intermission.
Much closer to the kind of logging one would want for tournament play, rather than the SRB2 leftover this command was holding previously.
The following funcs are now a suite with almost-identical argument lists.
- `map` is for immediately going to a map
- Add `-random`/`-r`
- `queuemap` is for interacting with the live Round Queue
- Add `-random`/`-r`
- Performed server-side
- `-clear` and `-show` now accept partial params `-c` and `-s`
- Fix minor error with 0-argument print's text
- `showmap` is for printing information
- Add arbitrary map name/ID input
- `showmap robo` prints the course `map robo` would resolve to
- Add `-gametype`/`-gt`/`-g`
- For compatibility testing
- Add `-random`/`-r`
- Combine with `-gametype` for extra guarantees
- `randommap` was deprecated
- Will only print replacement instructions of `map -random`, and nothing else
- Lost & Found courses are now part of the intended sequence of `advancemap next`
- Does not include Test Run, that's admin choice only
- Courses with too-small playerLimits will be skipped for both `advancemap random` and `advancemap next`
- ResolvesKartKrew/Kart#1411
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.
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.
- `setscore 0 50` will set the player in slot 0's score to 50 points
- `setscore 0 50 -add` will add 50 points to their score
- `setscore -clear` will clear all players' score, as per the old function
- Command will error if PWR is in use (no roundqueue/`usepwrlv 0`/cheats off in GP)
- The previous cheat `setscore` is renamed to `setroundscore`
- v_draw.hpp was simply missing the header entirely.
- r_debug_printer.cpp is the weird one -- unordered_set's definition uses unordered_map, but it seems like osx's standard library does not include it in their definition? wut?
- SOC cannot edit S_NULL. (It already does it this way for sfxinfo and mobjinfo.)
- Lua cannot get or set S_NULL & MT_NULL. (It already does it this way for sfxinfo.)
- Lua cannot set a custom mobjinfo field called "string". (There is already a getter called "string", so this would create weird behavior for someone who doesn't know about it.)
Resync can be triggered when server/clients differ in the
number of Overtime laser objects spawned. For example,
when one of the clients is in splitscreen.
- MT_OVERTIME_PARTICLE had a spawnstate of S_NULL
- P_SetupStateAnimation is always called on spawn,
regardless of if the spawnstate is S_NULL
- S_NULL inexplicably has FF_RANDOMANIM in its frame flags
- This is NOT intentional and the likely source of the
error is SOC/Lua
- Setting MT_OVERTIME_PARTICLE's spawnstate to S_INVISIBLE
solves the problem
The compiler is just not smart enough to see that program flow is completely under order, so make sure every variable is initialised
(also change some variable types here and there)