Commit Graph

19 Commits

Author SHA1 Message Date
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
Malkierian
b3d51441eb
Rando Enhancement: Mysterious Shuffled Items (#3227)
* 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).
2024-05-06 19:17:08 -05:00
briaguya
99194a75f1
docs: update func_800FADF8 to Audio_ResetActiveSequences (#3471) 2023-12-26 13:30:49 -05:00
inspectredc
80ef399c52
Entrance Docs (#3332)
* transition variables renamed

* transition circle

* transition wipe

* sand storm

* remaining sceneloadflag rename

* transition trigger macros

* transition mode enum

* transition type enum

* tc set params

* creg debug transitions

* introduce entrance table + return entrance indices + entrance info macros

* randomizer entrance pass through

* cleanup some missing scene enums

* randomizer entrance tracker pass through

* randomizer grotto pass through

* gSaveContext.entranceIndex

* misc lists

* z_select pass through

* respawn entrance index

* nextEntranceIndex

* add missing include
2023-11-19 14:29:56 -05:00
Adam Bird
7e9efeeadb
[OTR Archive] Store soh version in OTR files and verify on launch/ask to regenerate (#3218)
* parse sohver arg and store version file in otr

* parse args for soh.otr gen only

* pass soh version from built in extractor

* update launch scripts, cmake and extract steps to pass soh version

* check otr versions and error or ask to regenerate

* add wiiu core header for osfatal

* review feedback

* remove soh dummy version for lus change instead

* only configure linux script for linux

* change lus commit

* rename soh version to port version

* fix submodules

* bump OTRExporter

* clean up error messages for switch/wiiu

* strings not char array

* typo

* init wiiu before otr detection

* Add message for mac/linux extraction

* remove unneeded exits

* change version number types to u16 to fix 32bit devices

* bump otrexporter
2023-11-05 12:34:39 -05:00
inspectredc
a6de59e09f
model docs (#3281) 2023-10-26 19:38:43 -05:00
aMannus
bae6cf4203
Randomizer feature: Triforce Hunt (#3062)
* Initial work to make triforce pieces their own rando item

* Disable triforce greyscaling

* Better triforce model, finish adding triforce pieces to logic

* Triforce model is now a shard

* Credits warp + start of item tracker

* Initial item tracker stuff

* Completed triangle on triforce completion

* Completed triforce model on GI done

* Multiple triforce piece models

* Triforce pieces in save editor & fix build

* Finish item tracker

* Gameplaystats timestamp

* Revert parts of logic

* More reverting

* Start of making Triforce Hunt the win condition

* Bit of cleanup

* Triforce pieces can show up as icetraps

* Grant GBK to player after hunt is completed

* Better text boxes

* Disable GBK option in ImGui with Triforce Hunt on

* Clean-up

* Forced save on completion improvements

* Update Item Tracker Settings initial size

* Small ImGui adjustments

* French translation and update defaults

* Finish translations

* Fix timer completion & 50+ triforce pieces

* Remove GI_ and ITEM_ enum usage, add french ice trap names

* Fix build & small fixes

* Review comments

* Comment clarification
2023-09-26 08:45:37 -05:00
Garrett Cox
c11a6a17e9
Some documentation changes for zplayer (#3172)
* Documentation changes for zplayer

* Update soh/include/z64player.h

Co-authored-by: Adam Bird <Archez@users.noreply.github.com>

---------

Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
2023-09-15 18:39:46 +00:00
Rozelette
fdf9086b2a
Dynamic Actor IDs (#1729)
* Add dynamic actor IDs

* Convert Ivan to use new actor system

* attempt to fix linux build

* attempt to fix linux build

* merge

* Cleanup

* Fix missing math functions on Windows.

* Removes a stubbed function to fix non-windows builds.

* Update soh/soh/ActorDB.cpp

Co-authored-by: Adam Bird <Archez@users.noreply.github.com>

---------

Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
2023-06-01 21:39:50 -04:00
Malkierian
cf711d9164
Initialize gSlotAgeReqs[SLOT_TRADE_CHILD] and gItemAgeReqs[ITEM_MASK_BUNNY] on load initialization according to gMMBunnyHood and gTimelessEquipment to prevent bunny hood from being unequipped from adult equips on first load. (#2904)
Move the code to change those values based on the child trade slot item to the selecting mask loop to not be setting them every frame just because you're in the inventory.
2023-05-21 12:13:38 -04:00
Adam Bird
1fc6a2f08f
Rando version warning on different builds (#2420)
* save build version to savefile

* adjust rando hash icons to use fade in/out

* add dialog message support on the file select screen and display rando version warning

* remove duplicated message functions and use stubbed play state instead for rando warning

* add major/minor/patch version saving to file and compare against

* use strncpy and memset for build version

* don't show rando warning one copy/erase screens

* review feedback

* Add german and french translations for rando warning

Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>

---------

Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
2023-02-28 20:46:55 -05:00
aMannus
a1a6c07549
Rando - Fix ice traps & get item logic (#2210)
* Fix ice traps & get item logic

* Fix shop keepers & more draw logic cleanup
2022-12-20 23:32:01 -05:00
Garrett Cox
99260acaf1
Use PlayState instead of GlobalContext (#1927)
* Use PlayState instead of GlobalContext
- GlobalContext -> PlayState
- globalCtx -> play
- GlobalCtx -> PlayState
- globalContext -> playState

* Find and replace Gameplay_ with Play_

* Correct some misnamed argument cases
2022-11-06 09:24:34 +01:00
Josh Bodner
4fb78f9caa
Add toggle option for walk speed modifiers (#1783)
* Add toggle option for walk speed modifiers

* Preserve toggle status between scene transitions

* Apply suggestions from code review

renaming from `gSpeedToggle` to `gWalkSpeedToggle`

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2022-10-20 23:55:15 -04:00
David Chavez
6b0338a37d
[zret] Port some documentation changes (#1164)
* zret: Documentation pass on scene/room commands #1226

* Update OTR scene

* zret: Document the lens system #1079

* zret: Misc. doc/cleanup 4 #1093

* zret: Fix misc 8 #1150

* zret: Document Distortions from z_camera and z_view #1102
2022-08-16 21:53:28 -04:00
Nicholas Estelami
3aa93b9855
Removed legacy audio mode and fixed ganon sound bug (#657) 2022-07-11 22:37:39 -04:00
KiritoDev
1f3a6b928f
Moved grayscale effect to the gpu and replaced some texture loads (#221) 2022-04-25 22:19:00 +02:00
GaryOderNichts
9a7c63c46c Allocate aligned heaps 2022-04-11 15:44:01 -04:00
M4xw
39cc86c260 git subrepo clone https://github.com/HarbourMasters/soh.git
subrepo:
  subdir:   "soh"
  merged:   "ba904bbd0"
upstream:
  origin:   "https://github.com/HarbourMasters/soh.git"
  branch:   "master"
  commit:   "ba904bbd0"
git-subrepo:
  version:  "0.4.1"
  origin:   "???"
  commit:   "???"
2022-03-22 02:51:23 +01:00