Shipwright/soh/soh
Malkierian aeb85c81aa
Item SaveContext Logic (#4237)
* 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.
2024-08-01 21:24:24 -07:00
..
config Incorporate LUS CMake CVar system (#4093) 2024-05-01 14:48:51 -04:00
Enhancements Item SaveContext Logic (#4237) 2024-08-01 21:24:24 -07:00
Extractor detangle zapdutils (#4096) 2024-05-01 22:47:40 -04:00
resource Incorporate LUS CMake CVar system (#4093) 2024-05-01 14:48:51 -04:00
ActorDB.cpp Better actor viewer (#3544) 2023-12-26 19:09:04 -05:00
ActorDB.h Better actor viewer (#3544) 2023-12-26 19:09:04 -05:00
CrashHandlerExp.h refactor: use LUS 1.0 RC 2023-01-17 00:33:56 -05:00
CrashHandlerExt.cpp Add scene table (#3131) 2023-09-01 11:46:19 -05:00
frame_interpolation.cpp Fix: Use correct fps value for frame interpolation with match refresh rate (#2694) 2023-04-11 18:54:10 -04:00
frame_interpolation.h Experimental interpolation (#309) 2022-05-13 18:43:55 -04:00
GbiWrap.cpp Support font as resource LUS changes (#3993) 2024-03-04 23:36:23 -05:00
gu_pc.c add support for clang compiler (#592) 2022-07-10 10:51:12 -04:00
mixer.c Moves SoH mixer to SoH from LUS. (#2361) 2023-01-17 22:03:55 -05:00
mixer.h Moves SoH mixer to SoH from LUS. (#2361) 2023-01-17 22:03:55 -05:00
mq_asset_hacks.h [OTR Archive] Move shared scenes out of nonmq/mq folders (#3191) 2023-11-06 16:44:49 -06:00
OTRAudio.h Import libultraship as a submodule (#1943) 2022-11-14 11:22:34 +01:00
OTRGlobals.cpp Rando: Shuffle Hyrule Loach (Rando V3) (#3805) 2024-07-23 08:56:44 -07:00
OTRGlobals.h Merge branch 'develop' of github.com:Malkierian/Shipwright into dev-to-rando-5-6 2024-05-06 18:37:56 -07:00
SaveManager.cpp Item SaveContext Logic (#4237) 2024-08-01 21:24:24 -07:00
SaveManager.h Merge branch 'develop' of github.com:Malkierian/Shipwright into dev-to-rando-5-6 2024-05-08 21:36:25 -07:00
SohGui.cpp Improved rando settings (#3980) 2024-07-16 20:25:28 -07:00
SohGui.hpp Merge remote-tracking branch 'origin/develop' into merge-macready-805 2024-02-28 23:49:06 -05:00
SohMenuBar.cpp Rando: Shuffle Hyrule Loach (Rando V3) (#3805) 2024-07-23 08:56:44 -07:00
SohMenuBar.h support lus renamespacing (#4075) 2024-04-28 21:36:44 -04:00
SohModals.cpp fetch imgui (#4094) 2024-04-30 22:49:54 -04:00
SohModals.h support lus renamespacing (#4075) 2024-04-28 21:36:44 -04:00
stubs.c get soh working with latest lus (#4132) 2024-05-08 00:13:47 -04:00
UIWidgets.cpp Rando: Keyring tristate (#3960) 2024-07-16 20:25:06 -07:00
UIWidgets.hpp Rando: Keyring tristate (#3960) 2024-07-16 20:25:06 -07:00
util.cpp Spoiler name removal (#3814) 2024-05-07 08:29:17 -05:00
util.h Spoiler name removal (#3814) 2024-05-07 08:29:17 -05:00
z_message_OTR.cpp Merge branch 'develop' of github.com:Malkierian/Shipwright into dev-to-rando-5-5 2024-05-05 22:05:10 -07:00
z_play_otr.cpp detangle zapdutils (#4096) 2024-05-01 22:47:40 -04:00
z_scene_otr.cpp detangle zapdutils (#4096) 2024-05-01 22:47:40 -04:00