* Fix an issue with a stray Rando::Context shared_ptr hanging around.
* Fixes accidental leftover from when I found this bug on another branch
* Properly reset randoContext on every save load, not just after save creation
* Port initial framework up to latest dev-rando. Includes about 15 items using the SCL structure for tracking.
* Most other item variables ported to SaveContext in UpdateHelpers.
* Removed individual Context retrievals in favor of single local variable in Logic to reference.
* start of some diagnostics.
caught some reverse logic with ApplyItemEffect.
* more diagnostics
* Resolve major logic issue with SetInventory flow in ApplyItemEffect.
Other small logic issues in ApplyItemEffect.
* Added a bit of logging.
Add Double Defense to item effects.
* revert hint gen bypass
* item_list *actually* divorced from logicVar pointers.
Several missed options for ApplyItemEffect, HasItem, and UpdateHelpers added in.
Changed HasItem to a switch block for more performance.
Seeds generate within 10-20 seconds in release mode. Further optimization is assumed possible.
* Some formatting
* Bit more formatting.
* Couple review changes.
* Incorporate progressive upgrades and skeleton key into SCL.
Bit of cleanup.
* Change `inLogic` to static array.
* Fix bug in `BottleCount()` preventing Jabu Jabu from ever being in logic.
* Fix bomb bag HasItem check.
* Fix Gerudo Fortress and Ganon's Castle SmallKeys checks.
* Change all logic use of `bool remove` to be `bool state` and work on the affirmative assumption.
* Forgot the `Set(x)` uses in `Logic::Reset()`.
* Fix fishing pole effect application.
* fishing pole tweak
* Add `RG_BOMB_BAG`, `RG_NUTS` and `RG_STICKS` to `HasItem()`.
Fix silver and gold gauntlet checks in `HasItem()`.
Change Nuts and Sticks helpers to use non-progressive RGs in `UpdateHelpers()`.
* Change mSaveContext to simple pointer.
Set `mSaveContext` to `&gSaveContext` when loading a save file.
Modify `Item::GetGIEntry()` to use rando context's SaveContext pointer instead of the gSaveContext macros.
Utilize `Item::GetGIEntry()` to get real RG of infinite upgrades and set rando infs accordingly, skipping upgrade level incrementing (which was causing overflow of wallets for some reason).
* Rename all remaining references of LogicVar to variants of LogicVal.
* Change final references to song LogicVars to CanUse calls, and remove them.
* Separate equip and rand inf flag maps.
Add Zelda's Letter and Weird Egg rand infs to map.
Consolidate `HasItem` rand inf lookups using rand inf map and equips using equip flag map.
Maps are static, so can be referenced with `Context::` instead of ctx pointer.
* Main implementation
* Fix sticks & nuts from shops & checks
* Change the models to normal stick & nut
Worth noting that before you have the bags, the refills are blue rupees so there will not be model collision
* Update hook_handlers.cpp
* Don't play the intro cutscene on child spawn even if location is shuffled.
* Fix condition to not always skip cutscene when IS_RANDO is true.
* Fix typo
* add OoT hint, sheik is crashing without hint due to an unrelated bug
* Fix Sheik crashes, add new textbox to autoFormat, trim OoTHint text
* save pls
* fix receive typos
* git pls
* nice conflict fix
* Fix issues with areas not being applied to the region itself, and Link's Pocket Propogating through randomised warps
* Address reviews
* address reviews again
* fix mac issues
* git pls
Stop passing checksByArea to functions in the same namespace.
Only get value of `HideFilteredAreas` once per frame.
Gate area and check evaluations behind checks being visible and search filter size greater than 0.
Proper function capitalization.
* Add rando enhancement "Mysterious Shuffled Items", which obfuscates shuffled freestanding/drawn-in-world items (PoH, tokens, shop items) with a custom question mark model (thanks Hato), and uses the "mysterious item" functionality of `GetMerchantMessage` for everything that supports it, regardless of hint status on generation.
* Reverted back to rando enhancement, but added condition for Mysterious Shuffle not being on for the gem rotation fix to apply.
* First attempt at changing to fake GetItemEntry instead of directly calling the mystery draw function. Needs more work.
* Updated CVar to reflect CVar rework values.
Added `IsCheckShuffled` as preliminary function for checking *only* if a check is shuffled, not necessarily if it is just visible on the tracker. This accounts for the difference between tokensanity and "Always Show GS On Tracker", where you don't want to obfuscate the latter.
* Bit of cleanup.
* Cross-platform building edits. If anyone has a better idea of how to handle this fake GIE, I'm all ears.
* Update to CVar macros.
* Fix freestanding item gives.
Fix mysterious item model colors.
* Fix bombchu bowling mystery.
* Remove bowling bomchus check obfuscation (unused, removed in v3).