If you define a variable with type auto and initialize it
with the result of a builder chain -- e.g.
auto var = Draw().x(0)
-- the resulting variable will be an instance of
srb2::Draw::Chain, and calling builder methods on it will
modify the instance itself, instead of creating a
temporary, like an instance of srb2::Draw would.
Hiding the copy assignment can make this a little more
obvious by emitting an error if you try to reassign the
variable later. E.g.
var = var.x(0)
That's the best I can do to mitigate this.
Replaced all mentions of starpostnum and Starpost w/ cheatchecknum and CheatCheck (so Ivo can stop asking why we still need it when its going to save our asses on release patches)
- Fixed followers.pk3 asset hash checking.
- Moved asset hashes from config.h to d_main.c directly.
- Changes to config.h.in require building the game twice
and having it in d_main.c is just more contained.
- Removed old reset on holepunchserver if it was set to
the wrong address. This was only relevant for a short
period of time during development.
- Fixed cv_kartencoremap being used outside of DEVELOP.
- Fixed unused variable warning in GotOurIP.
- Store a netsynced SINT8 `hudrings` on the player struct which stores the last rings the player has during play
- So this doesn't get updated after you finish the level
- Fixes the issue where the bot ghost that inhabits your body after finishing will use your rings, muddying how many you took into the total
- Fixed order of operations that prevented lives earned with GP rings from being given
- Also uses hudrings for consistency
- Make the life-give context in P_DoPlayerExit cleaner
- GPEVENT_NONE
- no GTR_SPHERES
Based on VC discussions
- When you've unlocked add-ons, show "Core Servers" or "Modded Servers" in lieu of "Server Browser
- Adjust the vertical height of the Room Select graphics to not be visually overlapped
Reduces the toxicity of "userlist-bumping", the phenomena where you pick a name that begins as early in ASCII as possible for clout.
Now that only continues to apply to the sort that is already just a little toxic.
Instead of putting you on the room select but forbidding changing the room...
- You haven't unlocked add-ons (formerly forced to CORE)
- Skips the Room Select and takes you directly to the CORE mode Server Browser
- Game has add-ons loaded (formerly forced to MODDED)
- Forbid accessing the Server Browser with a helpful message.
- Reduces tech support burden.
- Parity with the previous entry in the series.
- Let players know if their cv_masterserver was changed, and give them the opportunity to change it back
- A limited number of nag attempts, so if people are using a legitimate custom Server Browser they won't be annoyed for the rest of the game's lifespan
- Show the Server Browser at the bottom of all online menus
- KNOWN BUG: currently overlaps with the Join IP
- we're redoing this menu before launch because it's buggy so this is just another bug on that pile
Ported from KartKrew/Kart-Public!286
Unlike the previous entry in the series, this actually defers outbound rules checks for either selecting "Host Game" on the menu, or starting a server via the console/command line parameters. Only attempting to host a non-advertised game via the menu will have sent out an unnecessary rules request to the MS!
This is done in a different location in the previous entry in the series, but the author of this commit couldn't find it.
Since we're using the 2.2 codebase, it's been put where they have it instead.
- No longer reimplement base functionality in confusing overlapping situations, only add on top of it where necessary
- Fix the case where no servers were found to not allow scrolling past the bottom
- KartKrew/Kart-Public!313 has finally been integrated with the changed menu code
- Attempts multiple times to get every public server, up to nettimeout
- Clear the server list when entering/exiting and refrehing
- Show visible servers and potential servers opposite the Refresh input
- I would have done this in another commit, but the system was too broken to repair without just putting the working solution in wholesale
- Improved visual scrolling behaviour
- Pressing A actually joins the server
- CORE vs MODDED is handled in SL_InsertServer, not a seperate function to drop/memcpy things around
Also, abstract out the little "PLEASE WAIT..." message popup during potential IO block into M_PleaseWait (only used on connect process via Menu)