* The mother of all commits
* Removed `GI_SWORD_MASTER`;
"Master Sword" Items now actually give MS
* Removed dupe MS entries in item pool;
updated GIMESSAGE (should stop crashing on non-Windows);
re-added MS in item list
* Give Adult Link a freebie with shuffle MS on;
cihld -> adult no longer gives MS;
ToT Master Sword now gives correct item
* add master sword GI draw func based on ToT MS object
* Force `MasterSword` logic var to only update upon getting MS
* Dorf funny line now activates with LA and MS in inv
* Apply suggestions
* Updated RAND_INF;
Check Tracker changes;
Gave RAND_INF and ice trap logic to ToT MS check;
Fixed swordless behavior for HBA/fishing
* ToT MS Check now works in check tracker;
Visual bug where box hovers over non-existent MS gone;
Fixed RAND_INF check with ToT MS pedestal;
Ganon no longer gives free MS
* adult equips no longer reset in MS shuffle
* Apply (most) locacc review suggestions
Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com>
* Reorganized swordless check for interface to fit edge cases;
getting master sword no longer highlights box
* Edge case for BGS but no bow
* Fix implicit declaration error for GI hooks (#9)
* Adjusted `CanAdultAttack/Damage`; applied logic suggestions
* Fixed build errors (hopefully)
* Cleanup merge
* get shit working again
* Tidied up remaining uses of DD flag as rando indicator
* make master sword invisible and fix ms flag (#10)
* Add text to sheik if go mode is obtained but barrier is still up
* overhaul swordless behavior in `func_80083108`
* reworked ToT MS Check to have an actual GI
* suggestions
* Apply suggestions
* Better swordless handling with temp B (#11)
* better swordless handling with temp B
* prevent auto save in fishing pond
* prevent auto save during bombchu bowling
* enum fix
---------
Co-authored-by: Adam Bird <archez39@me.com>
Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com>
Co-authored-by: RaelCappra <rael.cappra@gmail.com>
Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
* Restore RBA Values
Matches all rba scenarios achievable in game to their original outcomes. This only ends up affecting certain trade items.
* tooltip rewrite
* rba cases generalised
* re-add to menu bar
* better byteswap and checks for endianness
* remove leftover defines
* Change most n64ddFlag checks to IS_RANDO checks
* Change most isMasterQuest checks to IS_MASTER_QUEST checks
* Change most isBossRush checks to IS_BOSS_RUSH checks
* Replace isMasterQuest & isBossRush with questId
* Replace n64ddFlag with questId
Also restore authentic n64ddFlag behavior except savefile saving/loading
* Move quest enum from file_choose.h to z64save.h
* Update macros to not take gSaveContext
* 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
* Change Granny's Shop collection type to RandomizerInf with proper scene and inf IDs so the tracker tracks it properly.
* Changed pendingSale code to be checked outside of decrementing if block.
* Add the flag and fix errors
* switch assert and skin matrix
* new LUS
* Use normal assert
* hopefully fix WiiU
Signed-off-by: Louis <louist103@pop-os.localdomain>
---------
Signed-off-by: Louis <louist103@pop-os.localdomain>
Co-authored-by: Louis <louist103@pop-os.localdomain>
Co-authored-by: Christopher Leggett <chris@leggett.dev>
* Mirrored world PoC
* invert culling for health meter and A button action
* A few more fixes
* Fix for item equip animations
* Fix for pause triforce
* Mirror scenes with static backgrounds
* mirror minimap for mirror world
* mirror dungeon maps and icons on the pause menu
* mirror overworld map and icons on the pause menu
* mirror debug world movement
* mirror shops cursor and movement
* use flip flag
* Reverse crouch stab x axis for mirror mode
* use invert culling command and clean up culling logic
* Move mirror mode handler to mods and support random modes
* Small cvar tweaks
* mirror billboard score numbers and fix gyro horse mirrored inputs
---------
Co-authored-by: Adam Bird <archez39@me.com>
* numbers aren't magic
* chest style matches contents
renamed everything except the cvar itself at this point
(waiting for versioned configs for that)
* tracker as part of names
* finish the tracker rename
---------
Co-authored-by: briaguya <briaguya@alice>
* Ganon(dorf) cutscene skips
* Remove leftover code
* Load into chamber of sages
* Fix loading into chamber without fast file select
* Boss warps in chamber done
* Change warps back to chamber
* Initial proof of concept done
* ganon(dorf) cutscene skips
* Code cleanup & auto age equipment
* Gameplay stats timer + tweaks
* Scuffed timer
* Better timer
* remove arena props + fix arena exits
* Fix blue warps
* Attempt to fix build
* Fix build again
* And again..
* Try no. 9001
* Handle dying and saving
* Child link face fire medallion
* Fix build
* Fix warps after reset/death
* Disable doors and move player spawns in boss rooms
* Fix boss rush logo rendering
* Start of ingame options menu
* File Select cleanup
* Fix build
* Render char text PoC
* Move functions to be more generic
* Fix build
* Fix other builds
* Initial text scaling/kerning
* Special characters prep
* All special characters work now
* Attempt to fix build
* Fix build question mark
* Finish all kerning
* Start of ingame options menu with vertical scrolling
* Barebones functional options menu
* More options menu progress
* More visual elements for options menu
* Options menu visual changes, implement all options, tons of cleanup
* Cleanup and comments
* Shorter enums
* More options
* Change default heart count
* Finish French translations
* Implement timer in cosmetics editor
* Uncomment timer requirement
* Variable name change
* German translation & small UI tweaks
* Animated up/down arrows in options UI
* Better arrows in options UI
* Cleaner timer + make it usable for general gameplay
* More cleanup + ganon & ganondorf boss option
* Implement never heal option
* Slight up arrow in options UI tweak
* Add BGS option
* Reintroduce ganondorf cutscene skip
* Change encoding to UTF on bossrush.cpp
* Fix build hopefully
* Fixed static variables leading to options not properly resetting
* Fix BR completed timestamp
* Change timer to render on top of everything
* Offset final BR time by 0.1 second from boss timestamps
* Add missing check for boss rush
* Implement soh_assets.h
* Revert merge mistake
* Fix special characters with UTF-8
* Fix build
* here's the fix you can merge from your phone
* Fix quest select crash with oot.otr only
* Use OoT's kerning
* Fix HD textures on options menu
* Fix special character kerning
* "Heal every boss" fixes
* Seperate headers + bunny hood option
* Remove GetUnixTimestamp() externing
* Clean up extern "C"'s
* Address review comments
* Fix build question mark
* Remove accidental styling change
---------
Co-authored-by: briaguya <briaguya@alice>
* Rough mockup of LUS XML loading
* Updated code for merge
* Loading from FS support and custom DList WIP implementation
* Added current directory support to F3D and impl most of the dlist cmds
* WIP Skeleton support
* Almost done
* Rebase fixes
* Submodule updates
* HD Texture Support
* Fixes
* bump lus
* fix exporter build, header update
* soh builds
* setMesh image path cleanup
* Update soh/src/overlays/actors/ovl_player_actor/z_player.c
* Update soh/src/overlays/actors/ovl_player_actor/z_player.c
* Update OTRExporter/OTRExporter/Main.cpp
* Update ZAPDTR/ZAPD/ZResource.h
* Update soh/src/code/z_skelanime.c
* Update OTRExporter/OTRExporter/Main.cpp
* Fixed jpeg backgrounds and decreased icon buffer size
* Bump lus
* Increased even more the buffer because it crashes on long texts
* Removed print because sometimes the if is not triggered when the image is already byteswapped
* fix non-windows build
* fix build
Co-authored-by: Kenix <kenixwhisperwind@gmail.com>
* add hd checkbox
* Various fixes for custom model support (#23)
* Some fixes
* Updated LUS Version
* Fixed issue with Link Skirt on pause menu
* Added CVar for custom link model changes
* Fixed headers
* Additional header fixes
* Tweaks
* Unload HD game assets on scene transition. (#16)
* Unload game assets on scene transition.
* Bump LUS
* Unloads all HD assets on scene transition.
* Only unload hd assets if hd assets are turned on.
* Fixes issues on toggling between HD and non HD assets.
---------
Co-authored-by: briaguya <briaguya@alice>
* fix: actually load hd debug font (#27)
* fix: actually load hd debug font
* toggle debug text correctly
---------
Co-authored-by: briaguya <briaguya>
* Yes. (#28)
* Merge branch 'develop' into dev-to-ghost
* HD Skeleton Swapping and Language Fixes (#32)
* Yes.
* HD Skeleton Swapping and Language Fixes
* Test
* Fixed issues with ganon cape (#34)
* Fixed Bongo Bongo Crash (#35)
* Added HD Assets Toggle (#37)
* Ivan the Fairy - Coop Mode (#36)
* wip
* hookshotable ivan
* added hookshot item
* new items & changes & fixes & restored navi
* farore, din and nayru's spells are done
* fixed slingshot & bow
* added more items supported
* done with all main items
* bug fixes & ready
* added imgui button
* wip
* hookshotable ivan
* added hookshot item
* new items & changes & fixes & restored navi
* farore, din and nayru's spells are done
* fixed slingshot & bow
* added more items supported
* fix own dungeon items on shuffled boss rooms (#2683)
* bump lus (#2692)
* fix: lowercase package names for vcpkg (#2693)
vcpkg was throwing an error `error: invalid character in package name (must be lowercase, digits, '-')`
this updates our calls to `vcpkg_install_packages` to use lowercase package names instead of uppercase
* fix death mountain cloud in rando (#2691)
* Fix: Switch Age No Longer Reloads Start Room (#2679)
* [Reduced Clutter] Disable Hot/Underwater Warning Text (#2684)
* Disable Warning Text
* Moved to Reduced Clutter
* done with all main items
* bug fixes & ready
* fix: process roms in consistent order (#2696)
* chore: move rando savefile setup and document flags (#2697)
* remove rando save init from sram
* move rando savefile init logic and set more flags
* document flags for rando save creation
* Fix: Use correct fps value for frame interpolation with match refresh rate (#2694)
* Fix: Kak GS placement on construction site (#2695)
* added imgui button
* addressed kenix's comments
* fixed useless null
* added rupee dash mode in extra modes
* changed menu position
---------
Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com>
Co-authored-by: Patrick12115 <115201185+Patrick12115@users.noreply.github.com>
* LUS Scancodes (#42)
* Added HD Assets Toggle
* Switched out SDL for LUS scancodes
* Ivan tweaks (#45)
* Magic consumption slowed down;
Bosses now affected by Ivan's Din spell
* Adjust magic timer
* clean up imgui
* model fixes/improvements (#50)
* replace `gUseCustomLinkModel` with custom resource check
* handle adult/child
* bump lus
* fix model switching with tab
* use lus main
* fix carpet man (#52)
Co-authored-by: Rozelette <Rozelette@users.noreply.github.com>
* get ship model and lus texture into soh.otr, use `gAuthenticLogo` to toggle between ship and authentic (#55)
* Use libultra features for CPU-modified textures (#40)
* Use libultra features for CPU-modified textures
* Comment
* bump lus on ghost (#58)
* fix: properly use `Interface_LoadActionLabel` to display start button text (#61)
* Changes hd -> alt for texture replacement. (#65)
* Changes hd -> alt for texture replacement.
* Renames variables in gfxprint for hd -> alt change.
* Update soh/soh/resource/type/Skeleton.cpp
---------
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Fixes kaleido dungeon maps (#67)
* skeleton stuff (#69)
* comment out wii u build (#70)
* bump lus (#71)
* Rework readme (#72)
* Update README.md
* docs
* put custom music docs somewhere
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* dark/light title image
* lus
* Update README.md
* Fixed vanilla minimap (#73)
* Fixed vanilla minimap
* Workaround for pulsing SD maps with non-broken HD maps.
---------
Co-authored-by: Christopher Leggett <chris@leggett.dev>
* Skeleton fix fixed (#75)
* WIP skelton patcher fix
* Fixes skeleton reference change.
* Adds const back to name in ResourceMgr_LoadSkeletonByName
---------
Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: Kenix <kenixwhisperwind@gmail.com>
* Fixes z_message_otr memory leak.
* Update soh/soh/z_message_OTR.cpp
* Update soh/src/code/game.c
* docs: add how to find otr files to switch instructions (#78)
* bump lus (#79)
* comment out RegisterBlendedTexture in king d (#80)
---------
Co-authored-by: Nicholas Estelami <NEstelami@users.noreply.github.com>
Co-authored-by: David Chavez <david@dcvz.io>
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
Co-authored-by: KiritoDv <kiritodev01@gmail.com>
Co-authored-by: briaguya <briaguya>
Co-authored-by: Ralphie Morell <stratomaster64@gmail.com>
Co-authored-by: MelonSpeedruns <melonspeedruns@outlook.com>
Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com>
Co-authored-by: Patrick12115 <115201185+Patrick12115@users.noreply.github.com>
Co-authored-by: Rozelette <Rozelette@users.noreply.github.com>
Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: Lywx <36680385+KiritoDv@users.noreply.github.com>
* specific scenarios for switch age button, non rando
* Working fix for vanilla swordless change age
* Fix now works for randomiser
* Fixed room load on change age transition
* Removed potentially unnecessary function call
Need to investigate this more, maybe wait for more room documentation.
* Suggested Edits
Moves setting cvar back into mods.cpp and makes clear the condition expected for the no sword flag
* Groundwork on scene/room timers; naming changes
* added to save manager; reworked storing timestamps
* actually saved stuff to savemanager;
accounted for null playstate
* finally fixed the fucking timers
* Added scene mapping
* Added CVar for room/scene level; fixed some displays
* reworked logic
* increase name spec for scene timestamps
* Actually save item timestamps when loading v3 save
* Cleanup
* fix merge artifact
* apply suggestions
Transitions final autosave location to `OnTransitionEnd`.
Adds functionality to autosave to set a delayed save flag if AutoSave is set to Major or All Items and one is obtained in a grotto, to avoid grotto autosaving but still provide for the autosave when location-based saving is off.
Fixes small bug with item lookup where sometimes an item's `modIndex` would sometimes be reported one way, but the way Randomizer does things it would be in a the other `modIndex`, and the lookup would fail.
Minor variable name clarification in ItemTableManager.
Modifies AutoSave to account for item ID overlap from `MOD_RANDOMIZER` table (all items in the randomizer table is considered major for AutoSave purposes except ice traps).
* When rupees are given as starting items, they still modify `gSaveContext.rupeeAccumulator`, which means that if you make a new file, start it, and reload without saving, or exit SoH before starting the new file, those rupees were lost. This adds a check for `gPlayState` being NULL, and if it is, adds those initial rupees to the rupee count directly.
* Update soh/src/code/z_parameter.c
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
---------
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Changed OnReceiveItem hook to pass GetItemEntry, which required the following changes:
Reworked the references to it in `z_parameter` to call a single function with the item return and hook call in it for ease of editing.
Modified the pendingSale functionality to set and pass a modIndex value as well, as mod items (like randomizer) in shops still use the vanilla sale path.
* Missed some files for the pendingSale changes.
Also added Randomizer_Item_Give to the OnReceiveItem system.
* Ice traps now trigger OnReceiveItem.
* All ice traps truly do work now.
As a side effect, item autosave doesn't work for shop/scrub/merchant transactions, requires new OnSaleEnded hook that can also call the autosave.
* Removed unnecessary calls to ItemTable_RetrieveEntry where GetItemEntry properties were being used to call it. General code cleanup.
* Added OnSaleEnd hook for when rupees are finished deducting after a sale.
Migrated AutoSave to its own function, registered AutoSave function to OnReceiveItem and OnSaleEnd hooks to help with autsaving after buying items.
Some futureproofing for AutoSave function with parameters for skipping autosave, for when transition end is migrated to AutoSave function (whether through direct call or through a hook).
* Renamed hook paramaters, and registered hook function parameters, to a more descriptive alternative.
* Missed a couple, fixed a typo.
* One more missed paramater name refactor.
Refactored all references to OnReceiveItem to OnItemReceive to mirror upcoming full hook refactor for name ordering conventions.
Up-to-date with develop.