Since extra traps are based off GI model ID and Scene ID and the GI model is always a gold rupee in Multiworld Archi, it would always be the same trap per scene.
* Use game over textures instead of save textures
* Improves custom kaleido menu.
Specifically:
1. Changes textures to the Game Over screen textures, which look
the same but doesn't have "SAVE" at the top.
2. Adds a cursor on the left, doesn't currently do anything
other than make it slightly clearer that you can move up and down
and scroll, but opens the door for more menu-ing/toggling capabilities
later.
* Add fishing rod to kaleido menu
* Adds skeleton key to kaleido menu with placeholder icon
* More condensing of kaleido menu + add overworld keys
* clang-format
- Returned support for custom tunic colors
- Ocarina playback now audible
- Fixed movement translation issue when climbing or going through crawlspaces
- Fixed issue preventing some items from being visible in Dummy hands (namely ocarina)
- Fixed stick length not correctly syncing
* A bit of cleanup on BGS hook
* Cleanup on a few more hooks, fix itemId ref
* Use direct pointer to params
* Revert item receive ID hook setup
* Remove callbacks from menu GUI
* Add comments explaining conditions of permanent loss methods
* Move custom skeletons hook to subfolder
* Clang format
* Shorten comment
* Remove unnecessary re-register function call
* Modularize equipment hand hooks
* Remove unnecessary include
* More efficient hammer hand hook
* More efficient equipment visible hook
* Add declarations of patching/resetting functions up front
* Remove forward declarations
* Make mod file self-contained
* Modularize Hurt Container mode hook
* Hook condition was wrong - fixed it
* Change type of hurtEnabled for clarity
* Change type back to bool
* Add VB hook
* Don't duplicate health capacity modifier calculation
* Add constants, replace magic numbers
* Clang format
* Publicize more health unit macros
* Make mod file self-contained
* Added new trick
Skip Dodongo Cavern by using Bombchus to light the eyes
* Update soh/soh/Enhancements/randomizer/location_access/dungeons/dodongos_cavern.cpp
Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
* Update soh/soh/Enhancements/randomizer/location_access/dungeons/dodongos_cavern.cpp
Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
---------
Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
* Fix: ground jump for haunted wasteland GS is hard, & can't be done with hammer
Pulled this logic from zootr where sword is assumed, was not able to execute myself
* Pepper0ni took a stab at this, wasn't able to do it, but didn't feel it wasn't doable
* AGreenSpoon figured it out with BGS/hammer
* refactor shadow logic
* ground jump / hookshot extension
* with groundjump invisible spikes room can be cleared, collecting silver rupees with backwalked backflips with hover boots
* nb
* Autosave disabled when Ocarina of Time obtained but not Song of Time
* Add explanation comment
Added a condition to prevent autosaving between obtaining the Ocarina of Time and the Song of Time.
* Modularize colourized ToT Medallions hook
* Add overlooked reset of Forest Medallion colour
* Move asset variables to hook file
* Fix includes
* Remove forward declarations
* Use data structures to reduceboilerplate code
* Simplify data structures, reduce boilerplate even more
* Correct patchName2 checks
* Clang format
* Add brackets on if statements
* Modularize Pause Warp hook
* Make RegisterPauseMenuHooks static
* Merge pausewarp.c into hook module
* Use brackets with if statements
* Fix timer bug with spoiling items
* Fix mod order retention.
Remove mods in the CVar that no longer exist.
* Rework mod list init for enabled-by-default with extension changing to disable.
* Rework entire system for default enabled.
Disabled mods are renamed for sake of saving a CVar.
Menu now has an edit mode, cancel button, and apply & close.
Move Enable Alternate Assets to be Enable Mods in the mod menu.
Couple small fixes in the item tracker.
* Try to fix Mac.
* Remove disabling for Enable Mods while editing.
Add info about load order in relation to the list.
* Fix archives being added multiple times across multiple init passes.
* Add full-row drag and drop.
Swap columns.
Add information about dragging to header.
* Remove enable/disable flow, and setup the menu to only handle load order.
Change AltAssets to default on.
Move menu to Settings tab.
Move tab hotkey widget to mod menu.
Fix alt assets migrator value.
* Reverse list order for priority on top.
* Remove ExtensionType.
* Split Fairysanity into groups
* Split fairy registration per type
* fix song fairy shuffle locations
* Change "Song Fairies" to "Fairy Spots"
* Update preset settings
* clang format
* simplify `shouldRegister` logic
amazingly the code already handles the flag being cleared to raise the water level,
so only need to setup hooks for ocarina spot to toggle
In MQ it's a diamond switch, so only need to turn it into a toggleable diamond switch
* Cheat: Disable Sandstorm
Can also be considered an A11y feature,
tho it'll always be hard with the muted colors,
even if we added option to reduce fog
* extern C?
* Add function to be able to feed specific path into to process programmatically, and setup drag and drop functionality.
* Encapsulate dropped file functionality from Switch and Wii U.
* Fix dropped file detection, and fix ShowYesNowBox return checking.
* Bump LUS to include FileDropMgr's new registration system and initial cursor visibility changes.
* New LUS ref.
* Remove default on for cursor always visible.
Add option to camera controls next to enable mouse input for autocapture.
Set autocapture on startup.
* next LUS
* clang again
* Add "EnableMouse" CVar check to startup SetAutoCaptureMouse.
* Back to LUS main.
* lus version with fixes we need
* very wip
* get it building
* soh otr
* bump lus before fixing soh side stuff
* build
* still builds
* mac error
* bump otrexporter
* bump to lus main
* upstream otrexporter
---------
Co-authored-by: Malkierian <malkierian@gmail.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Adds ability for Notifiations to not make a noise
This is probably the only feature that will use it, the noise makes sense for most things we want to use notifications for, but it playing on every scene transition was a bit distracting.
* Adds a hook for OnSeqPlayerInit
* Uses new hook and displays notification instead of overlay text
* Changes names to prevent collisions
Will be registering other types of hooks that will need different ShipInitFuncs in this same file later.
* Change Icon
* Change CVarName and remove now-unused duration slider
* Update ConfigMigrator for CVar changes.
* clang-format
* fix
* bring back duration control
* config v4
* fix v4 migration
---------
Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* rando: fix reentry of jabu blue warp
entrance randomizer uses VB_PLAY_BLUE_WARP_CS to set a flag,
which was not called when entering jabu blue warp without ruto
* alternative
* treesanity
co-authored-by: turbofist
* market tree at night
* NL Trees
* remove LUSLOG
* feedback
* format
* golden skulltula tree qol
* post-rebase
* trust -129
* remove tree graphic, crate csmc
* format
* feedback
* ObjectExtension
* Hard removal 2D ones for now
* override some scene values for prerender tests (#46)
* Adult Link Cloudy
* Fix: Child Link Night ToT Exterior
* Fix for real now
* Tweak: Skybox castle courtyard
* WIP - adjusting for patterns
* Hooked all code, needs testing
* Hookified
* Clean up
* Update Fog Control
* clang
* Fix skybox override to only affect 3D pre-rendered scenes
Prevent the 3D scene renderer from overriding skyboxes on all scenes
Previously, the function was applying skybox changes to every scene, overriding the intended skyboxes throughout the game (Example: Kokiri Forest with a blue sky instead of it's original "greyish" one)
Now it only applies custom skybox settings to scenes in the skyboxControlList, preserving original skyboxes for other scenes
* Remove commentary and forgot to add Zelda's courtyard skybox
* Move code to shipInit.
* Early return for VB_SHOULD.
* clang
* Fix missing !
* Feedback fixes.
* clang
* Fix CVAR
* Modify Skybox for scenes with multiple viewpoints.
* setting position change to blend in the "modder stuff can do"
* Adressed review
* tooltip space missing, oops
* InitFunc
---------
Co-authored-by: Archez <Archez@users.noreply.github.com>
Co-authored-by: Caladius <clatini88@gmail.com>
* Bump LUS to include FileDropMgr's new registration system and initial cursor visibility changes.
* New LUS ref.
* Remove default on for cursor always visible.
Add option to camera controls next to enable mouse input for autocapture.
Set autocapture on startup.
* next LUS
* clang again
* Add "EnableMouse" CVar check to startup SetAutoCaptureMouse.
* Back to LUS main.
* Final LUS ref bump.
* RT_SHADOW_UMBRELLA_CLIP
This is technically a glitch, but offers a novice trick & less requirements
Particularly important in doorsanity for child access
* feedback, move location to upper since it has multiple paths of access
* Move logic bools to LogicVal enum
Tired of seeing logic reset bugs
This opens up moving bools to bitset
This opens up tracking logic dependencies so events doesn't reevaluate everything
This opens up various events reusing logic vals (already done for LOGIC_BLUE_FIRE_ACCESS)
* ammo comments, fix magic regression
* Fix Multi-Window not checked by default
Last time i tested with a new config file this was actually on, despite it showing off. So now it shows ON by default :)
* clang
* Rando: option for Mido to hint location of Kokiri Sword
also fix bug where Mido blocks path to Deku Tree when Closed Forest off but Zelda's Letter not skipped
* french
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
---------
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
* build: add -Wformat-security
On some distros format-security is turned on to detect possible issues
with non-string literals as format strings
Let's explicitly turn it on and fix the ImgUi text formatting to avoid
compile issues on those platforms
Signed-off-by: William Casarin <jb55@jb55.com>
* save-editor: add flag table bit index labels
Signed-off-by: William Casarin <jb55@jb55.com>
---------
Signed-off-by: William Casarin <jb55@jb55.com>
* Implement widget search exclusion.
Exclude all external windows from the search.
* Add second column to search results for non-widget results.
* Implement extra search index.
Add various controls, audio editor, and tracker options to the extra search index.
Fix capitalization on a few options.
Add click-to-view functionality to extra search column.
* Add extraSearchWidgets for searching through non-menu widgets.
Convert Controls extraSearches to widgets. Used to display in-window, as well as provide reference to extraSearchWidgets.
* Swap Audio search to menu widget search system.
* Fix missing static on a ShipInit instance.
* Implement SearchWidgets in popout windows.
Remove remaining vestiges of custom search.
* Add SearchWidget for randomizing audio on seed gen.
* Remove comments on color picker entries in WidgetType.
* Put all search results in middle column for width management.
Change combobox alignment and label position in search results to unify them all to left and above for better organization.
Add "Search Results" text to header of results page for clarification.
* clang
* entrance shuffle: sign hints
* update entrance tracker with hint
* show sign hints when any entrances shuffled
* only hint when entrance shuffled
* avoid crash when loading rando file
* fix kf exit
* correct hint from sign outside kokiri forest
* 3 signs on DMT
* improve naming
* Fixes for the German translation in util.cpp
* Fixes for the German translation in item_list.cpp
* Fixes for the German translation in item_list.cpp
* Fixes for the German translation in util.cpp
* Revert the fixes for the German translation in item_list.cpp
* Fixes for the German translation in util.cpp
* Fixes for the German translation in util.cpp
* Fixes for the German translation in util.cpp
* Fixes for the German translation in util.cpp
* Fixes for the German translation in util.cpp
* Fixes for the German translation in kaleidoscope_ger.json
* Revert the fixes for the German translation in kaleidoscope_ger.json
* Fixes for the German translation in util.cpp
* Localization support
* stick/nuts updrage french wording
* forgot german questItem and function adaptation for these
* names
* clang
* name + clang
* should be the last one :derp:
* German typo
On some distros format-security is turned on to detect possible issues
with non-string literals as format strings
Let's explicitly turn it on and fix the ImgUi text formatting to avoid
compile issues on those platforms
Signed-off-by: William Casarin <jb55@jb55.com>
* Add "Randomize on Randomizer Generation" options to Audio and Cosmetics Editors
* Added "Randomize All Music and Sound Effects on Randomizer Generation" to the Audio Editor.
* Added "Randomize All on Randomizer Generation" to the Cosmetics Editor.
When enabled, these options randomize audio and/or cosmetics during a new randomizer generation.
* Added "OnRandomizerGeneration" Hook.
* It is executed on Randomizer Generation.
* Changed AudioEditor and CosmeticsEditor "Randomize all on Randomizer Generation" options to use the "OnRandomizerGeneration" Hook.
* Renamed "OnRandomizerGeneration" to "OnGenerationCompletion.
Renamed "GameInteractor_ExecuteOnRandomizerGeneration" to "GameInteractor_ExecuteOnGenerationCompletion"
Moved "GameInteractor_ExecuteOnGenerationCompletion" from "GenerateRandomizer" to the end of "GenerateRandomizerImgui".
* Removed "GameInteractor_ExecuteOnGenerationCompletion()" from "GameInteractor_Hooks.h" and "GameInteractor_Hooks.cpp"
The "OnGenerationCompletion" hook is now called directly at the end of "GenerateRandomizerImgui" in "randomizer.cpp"
---------
Co-authored-by: Glought <663343+Glought@users.noreply.github.com>
* Fix crash on selling big poe
Easiest steps to reproduce: set poe's to 0, put big poe in inventory, trigger text using big poe bottle
I overlooked selling poes with using bottle instead of talking to collector
* disable hint when count zero
* Adapt to changes to LUS regarding including MPQ support.
* CMake compile definitions are stupid.
* Don't manually close O2RArchive.
* Finish LUS bump, including SoH-side fix for font free crash.
* Adds Sulu/Spock rando block check (data not empty, but all sub-entries null), and put that and data being empty to the old file flow.
Also moves the `SaveFile` call to after everything else is loaded to preserve sohStats block.
* Add check for blank buildVersion in sohStats block for determining old saves.
* clang
1. skip cutscene delay for sun on floor & sun on block
2. persist sun on floor temp flag
3. persist big mirror being solved before platform lowered
2 removes need for weird bomb key logic
3 needed for shuffle doors
* reduce logical implications of closed forest
closed forest should only be about kokiri blocking the way,
no need to try plug alternate forest escapes out
* revert adult deku being unlocked in forest without showing mido sword/shield
* Add enhancement to speed up pause menu animation
* Rename CVar to FasterPauseMenu
* Rename kaleido to pause menu
* Rename register func to InitFasterPauseMenu
* Bring over changes from 2ship
# Conflicts:
# .github/workflows/apt-deps.txt
# soh/CMakeLists.txt
# soh/soh/resource/importer/AudioSampleFactory.h
# soh/soh/resource/importer/AudioSequenceFactory.cpp
# soh/soh/resource/importer/AudioSequenceFactory.h
# soh/soh/resource/importer/AudioSoundFontFactory.h
* Update xml format
* Format and fix mixer for Windows
* Fixes for new LUS
* Good ole clang-format
* Separate HBA range
* Separate 4 rooftop regions
* Rest of rooftops
* Small cleanup
* Whoops
* Create `thieves_hideout.cpp` & move `gerudo_fortress.cpp`
* Ground and some inside
* More outside cleanup and more inside
* Kitchen
* Final tweaks
* Use `TH_` prefix for Thieves' Hideout locations
* Add clarifying images (+ `.xcf` source)
* Thieves' Hideout is overworld
* Fix `RC_GF_GS_TOP_FLOOR` & blue -> violet entrance
* Address review
* Update gerudo_fortress.cpp
* Address review
* Split "CarpenterRescue"
* Rename events
* Update logic.cpp
* Move from function to event
* Rename most of the regions
* Address review
* Add new conections
* update logic, get it working
* apply clang format
* undo clang format in logic files
* final reordering
* remove additions to .gitIgnore
* Fix some jump trick logic
* clean up ShufflePots
* fix submodules
* update for review and talk to jail and always gate PRs
* change thieves hideout to scene handling
* final fixes and update enum names and hint text
---------
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* more tricks
1. big poe without epona
2. king dodongo with chu
3. morpha without hookshot
4. open underwater chests (ignore water temple usage for now because water logic is weird)
5. DC MQ stairs without stick, also bring over vanilla alternatives for stairs
rename RT_DC_STAIRCASE to RT_DC_STAIRS_WITH_BOW
* consistency
* Bump ZAPDTR & OTRExporter.
Changes to use o2r by default
Changes to the new player animation format
# Conflicts:
# OTRExporter
# ZAPDTR
# soh/soh/OTRGlobals.cpp
# soh/src/code/z_skelanime.c
* Fix actions
* Format
* Cherry pick ZAPDTR
* Update exporter
* Move configs to port
* Remove copy
* Remove more XML copies
* Remove extractor directory from actions builds.
* Fix OTRExporter for linux
* FIx ZAPD volatile
* Format
* Fix extractor?
* Fix linux
* Fix
* Remove appimage stuff
* Screnity now
* Remove ZAPD from install paths
* Remove soh.sh.in
* Fix linux
* Cleanups and use a thread for message box
* German translation cleanup
- German ice trap names and code for it to show up. Changed the order of translations to english/french/german to make it consistent with item_list.cpp.
- German shops as those are now complete.
- German translation for ingame fileselect rando menu.
- Added function to mark an item as plural. This is necessary to have proper grammar in most german sentences. If an item has a € at the end of it and the sentence it get's inserted into has |singular|plural| forms defined, the singular part get's removed.
- Added the plural markers & |singular|plural| parts to the entire german script where it was necessary.
- Fixed grammar, typos, inconsistencies and now everything uses official Zelda-game names.
- Fixed vanilla/master quest map text
* ice trap fix
accidentally commented out french twice instead of spanish. fixed.
* German Randomizer
Some fix for Schicksal
* Fix number 2
Fix number 2 for Schicksal
* Update soh/soh/Enhancements/custom-message/CustomMessageManager.cpp
Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
* clang format
---------
Co-authored-by: amafresh <arminamayeh@gmail.com>
Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
* Japanese translation for Better Debug Warp Screen
* Incorporate fixes by balloondude2 (except Shield/Treasure Chest Grave inconsistencies which I'm unsure how to handle that)
* Localize "Scene Selection" header for each language
* Added/Restored the ability to render Hiragana characters using GFXP_HIRAGANA macro
* Added/Restored the option to automatically boot into Debug Warp Screen
* clang-formated
* Added a new hook and moved Boot To Debug Warp Screen to it
* clang
* Added DebugEnabled to initFunc's CVar list. This should prevent Debug Warp from being triggered when Boot to Debug Warp option is enabled but Debug Mode option is disabled.
* No longer hijacks CustomLogoTitle
* Disable "Boot Sequence" dropdown when Boot to Debug Warp Screen is enabled
* rando: always spawn guard behind gate (also fix gaurd typos)
someone had seed where they had card so couldn't be caught to pass gate in reverse wasteland
* move guard spawn logic to hook
* Change region scene from string to sceneid
* Deduce `timePass` from scene
* Deduce `areas` from scene where possible
No possible for `RR_CASTLE_GROUNDS` & "link's pocket" areas
* Update zoras_fountain.cpp
* Applied clang format
* Address review
* Address review
* Clang format
* Fix pseudo regions
* Format
* Address review
* Address review
* Difficulty: FireTimerMultiplier
Introduces slider to adjust timer on fire walls resetting switches
* rename, add more timers
* also shadow trial, dampe race, deku water
* avoid decrementing timer to 0, which with BgMizu can cause timer to go below 0 & break
* gtg eye statue
* also scale torches
* tooltip
* Limit difficulty: torches stop at -3 & shadow temple torch puzzle stops at -4
* put timer condition as should when convenient
* New options that affect feeding Jabu-Jabu
* Add hints for what Jabu-Jabu wants
* Roll back "key" settings to just closed/open, finish rando logic
* Revert "Add hints for what Jabu-Jabu wants"
This reverts commit 2a1974a669.
* Fix vanilla enhancement disabler
* Update docs/MODDING.md change example to reflect current codebase
* Changes to MODDING.md (#5558): fixes slight typo
* Changes to MODDING.md (#5558): fix typo and remove uneeded explanation that minimum and maximum are floats
* tts: only announce timer at 30s
1. reading out every second doesn't have enough time to even say more than a number
2. tts is hard to hear the rest of the game over while it's counting non stop
* under a minute announce every 10s
* Add version control for Rachael saves and old rando saves.
* Change spoiler drop success sound to puzzle success chime.
Add spoiler drop fail sound (sys_error).
Improve path sanitizer operation.
Add check for a spoiler having a version and it equaling running version. Deletes spoiler CVar if spoiler becomes unusuable while running, and prevents loading dropped spoilers that don't match.
* clang
* Remove backslash escaping from Sanitize.
Remove duplicate Sanitize from Context and make it use SohUtils.
Fix typo.
* ShuffleSongs.cpp
* Address review and fix build
* Update soh/soh/Enhancements/randomizer/settings.cpp
Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
* Change back to "Off"
---------
Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
* EntranceShuffler ApplyEntranceOverrides.
* Updated ApplyEntranceOverrides.
* Updated ApplyEntranceOverrides.
* Initial Entrance Discovery.
* Added Randomizer_EntranceDiscovered.
* Updated Randomizer_DiscoverRegion to discover unshuffled connected regions.
* Removed extra semi-colon.
* Update to latest entranceShuffleTable.
* Format fixes.
* Updated EntranceDiscovered to account for entrances not in the entranceShuffleTable.
* Rediscover regions when loading a game.
* Rediscover entrances when enabling Available Checks.
* Added Rando::Context::ParseTricksJson.
* Updated ApplyEntranceOverrides to skip default (unset) overrides.
* Fix clang-format failed check.
* Set mLACSCondition when loading a Randomizer game.
* Updated rediscover loop to use MAX_ENTRANCE_RANDO_USED_INDEX.
* Move entrance discovered into ProcessExits.
* Discover spawns when pulling/placing the master sword.
* Discover adult/child spawn when using Song of Time to switch age.
* Reset logic and ApplyOrStoreItems without applying the item effects to the save when calculating available checks.
* Removed !itemLoc->IsAddedToPool() from the check tracker.
* Remove region discovery as its not needed anymore.
* Cleanup changed files for PR.
* Added Available Checks - Process Undiscovered Exits DebugConsole command.
* Added initial Available Checks - Recalculate DebugConsole command.
* ACPUE, recalculate only if save loaded. ACR, set age and times for the starting region.
* add navi dive bottom of the well
* add kokiri sword logic for botw
* Optimisation Logic
* Add Navi Dive Lost Wood
* Update Logic
* Move IsChild in logic trick
* Add brackets
* Clang-Format
* Tweak Text
Tweak Text
* Final Push ?
* It's really the last push
* Add presets sidebar, proof of concept row-based listing.
* Complete and unify section check/x drawing.
* Add error state to InputString, and corresponding members and builders to InputOptions.
Implement saving and loading of preset files.
* Implement `Config::SetBlock()`.
Implement Apply.
Implement Delete.
Some json structure changes.
* Apply `CVarClear()` calls in CVar-prefixed widget functions.
* Comment out satellite preset pickers for now.
* clang
* Fix ButtonOptions initializer list.
* I hate clang...
* Loop new preset checkbox creation.
Restore auto-resizing to new preset popup.
Remove errant BeginDisabled in randomizer (merge artifact?).
* Add BlockInfo struct to make array with all info for each block.
Setup loops for all other same-ish situations (applying presets, setting up columns, etc) based on blockInfo.
* Save tracker windows info for later restoration.
Lay the groundwork for said restoration.
* Complete tracker window restoration on preset application.
* Fix RadioButtonsOptions builder parameter type.
Add race lockout to new and apply buttons.
* Revert application of CVarClear on UIWidgets widgets (need to preserve manually-set default states).
* Remove enhancements satellite picker.
Swap randomizer satellite picker to use the manager presets, only displays presets with randomizer section included.
Move built-in presets to the asset archive, and remove delete button on them.
Remove PresetEntries.cpp.
* Fix locations and tricks tabs not updating live when applying preset with new system.
* Apply RandoGenerating lockout to rando preset Apply button.
* Fix new presets not being properly filtered in satellite selectors.
* Fix currently selected presets getting deleted still being selected in satellite selectors.
* Change BigPoeTargetCount in preset files to 1.
* use size_t instead of uint8_t for hint ids
* va_arg int instead of s16
warning: second argument to 'va_arg' is of promotable type 's16' (aka 'short'); this va_arg has undefined behavior because arguments will be promoted to 'int' [-Wvarargs]
* more issues like #5443
* Implement Log Level selector setting.
* run clang
* Enum for default value.
* PR feedback: use CVAR_DEVELOPER_TOOLS in CVar builder.
* Slight change to try to force a PR update.
* screw you clang
* setting to skip bottling big poes
empty bottle still required to collect
avoids logic needing to work around player soft locking by filling bottles without poe collector access
* No option, zero option
* TEXT_BIG_POE_COLLECTED_RANDO
* update preset
* fix talking to poe collector after receiving item
* Improved the item location price availability.
* Moved the available checks price logic into location_access.cpp.
* Fixed typo and clarified check status identified.
* Handle virtually all warnings in `soh/Enhancements/randomizer`.
Handle order of operations warning in FasterHeavyBlockLift.
* Missed a few.
* Add float-specific versions of some M_PI and M_SQRT defines, and swap them in for the static casts in draw.cpp.
* Swap a static cast for M_PIf in check tracker code.
* Fix truncation warning in `entrance.h`.
* Fix type warning in fishsanity.cpp
* Fix implicit conversion warnings in BossRush, Mouse, and UIWidgets.hpp.
* Add Random_Float and use it in GameInteractor_RawAction.cpp.
Make non-specified seed init a separate function.
* clang after type change
* Fix truncation and conversion warnings in ExtraTraps.cpp.
* Resolve type conversion warnings in InputViewer.cpp.
* Resolve some type conversion warnings in hook_handlers.cpp.
* Remove `Random_Float`, and apply `RandomDouble` where it was being used instead.
Add proper range notation to `RandomDouble` to denote the lack of inclusivity for the max part of the range.
* Convert c-style casts to static_cast.
* replace MT RNG with PCG
* replace boost hashing with FNV-1a
removes boost as a dependency
* remove boost dependency references
* format
* post rebase fix
---------
Co-authored-by: Demur Rumed <junkmute@hotmail.com>
* add menu option
* VBify + add conditions
* oops wrong func
* clean up includes + casting
* move z_player externed functions
* better name
* correct menu text
* one last name final final
* maintain glitch-aiding selection
Was getting infamous c++ style warnings:
```
In file included from /home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:8:
In file included from /home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.hpp:12:
In file included from /home/erpre/s/ShipWright/soh/soh/SohGui/SohMenuBar.h:3:
In file included from /home/erpre/s/ShipWright/soh/../libultraship/include/libultraship/libultraship.h:5:
In file included from /home/erpre/s/ShipWright/soh/../libultraship/include/libultraship/bridge.h:4:
In file included from /home/erpre/s/ShipWright/soh/../libultraship/src/public/bridge/resourcebridge.h:9:
In file included from /home/erpre/s/ShipWright/soh/../libultraship/src/resource/type/Texture.h:3:
In file included from /home/erpre/s/ShipWright/soh/../libultraship/src/resource/Resource.h:3:
In file included from /home/erpre/s/ShipWright/soh/../libultraship/src/resource/File.h:3:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/string:42:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/char_traits.h:57:
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'SohGui::SohMenu' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<SohGui::SohMenu>' requested here
149 | std::destroy_at(__pointer);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<SohGui::SohMenu>' requested here
720 | { std::_Destroy(__p); }
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<SohGui::SohMenu>' requested here
616 | allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<SohGui::SohMenu, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
602 | _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<SohGui::SohMenu, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[18], const char (&)[10]>' requested here
970 | _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<SohGui::SohMenu, std::allocator<void>, const char (&)[18], const char (&)[10]>' requested here
1713 | : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<SohGui::SohMenu>::__shared_ptr<std::allocator<void>, const char (&)[18], const char (&)[10]>' requested here
463 | : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<SohGui::SohMenu>::shared_ptr<std::allocator<void>, const char (&)[18], const char (&)[10]>' requested here
1007 | return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
| ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:121:21: note: in instantiation of function template specialization 'std::make_shared<SohGui::SohMenu, const char (&)[18], const char (&)[10]>' requested here
121 | mSohMenu = std::make_shared<SohMenu>(CVAR_WINDOW("Menu"), "Port Menu");
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'SohConsoleWindow' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<SohConsoleWindow>' requested here
149 | std::destroy_at(__pointer);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<SohConsoleWindow>' requested here
720 | { std::_Destroy(__p); }
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<SohConsoleWindow>' requested here
616 | allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<SohConsoleWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
602 | _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<SohConsoleWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[24], const char (&)[13], ImVec2>' requested here
970 | _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<SohConsoleWindow, std::allocator<void>, const char (&)[24], const char (&)[13], ImVec2>' requested here
1713 | : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<SohConsoleWindow>::__shared_ptr<std::allocator<void>, const char (&)[24], const char (&)[13], ImVec2>' requested here
463 | : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<SohConsoleWindow>::shared_ptr<std::allocator<void>, const char (&)[24], const char (&)[13], ImVec2>' requested here
1007 | return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
| ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:124:27: note: in instantiation of function template specialization 'std::make_shared<SohConsoleWindow, const char (&)[24], const char (&)[13], ImVec2>' requested here
124 | mConsoleWindow = std::make_shared<SohConsoleWindow>(CVAR_WINDOW("SohConsole"), "Console##SoH", ImVec2(820, 630));
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'SohGfxDebuggerWindow' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<SohGfxDebuggerWindow>' requested here
149 | std::destroy_at(__pointer);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<SohGfxDebuggerWindow>' requested here
720 | { std::_Destroy(__p); }
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<SohGfxDebuggerWindow>' requested here
616 | allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<SohGfxDebuggerWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
602 | _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<SohGfxDebuggerWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[28], const char (&)[17], ImVec2>' requested here
970 | _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<SohGfxDebuggerWindow, std::allocator<void>, const char (&)[28], const char (&)[17], ImVec2>' requested here
1713 | : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<SohGfxDebuggerWindow>::__shared_ptr<std::allocator<void>, const char (&)[28], const char (&)[17], ImVec2>' requested here
463 | : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<SohGfxDebuggerWindow>::shared_ptr<std::allocator<void>, const char (&)[28], const char (&)[17], ImVec2>' requested here
1007 | return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
| ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:128:14: note: in instantiation of function template specialization 'std::make_shared<SohGfxDebuggerWindow, const char (&)[28], const char (&)[17], ImVec2>' requested here
128 | std::make_shared<SohGfxDebuggerWindow>(CVAR_WINDOW("SohGfxDebugger"), "GfxDebugger##SoH", ImVec2(820, 630));
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'SohStatsWindow' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<SohStatsWindow>' requested here
149 | std::destroy_at(__pointer);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<SohStatsWindow>' requested here
720 | { std::_Destroy(__p); }
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<SohStatsWindow>' requested here
616 | allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<SohStatsWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
602 | _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<SohStatsWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[22], const char (&)[11], ImVec2>' requested here
970 | _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<SohStatsWindow, std::allocator<void>, const char (&)[22], const char (&)[11], ImVec2>' requested here
1713 | : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<SohStatsWindow>::__shared_ptr<std::allocator<void>, const char (&)[22], const char (&)[11], ImVec2>' requested here
463 | : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<SohStatsWindow>::shared_ptr<std::allocator<void>, const char (&)[22], const char (&)[11], ImVec2>' requested here
1007 | return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
| ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:131:25: note: in instantiation of function template specialization 'std::make_shared<SohStatsWindow, const char (&)[22], const char (&)[11], ImVec2>' requested here
131 | mStatsWindow = std::make_shared<SohStatsWindow>(CVAR_WINDOW("SohStats"), "Stats##Soh", ImVec2(400, 100));
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'AudioEditor' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<AudioEditor>' requested here
149 | std::destroy_at(__pointer);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<AudioEditor>' requested here
720 | { std::_Destroy(__p); }
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<AudioEditor>' requested here
616 | allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<AudioEditor, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
602 | _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<AudioEditor, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[25], const char (&)[13], ImVec2>' requested here
970 | _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<AudioEditor, std::allocator<void>, const char (&)[25], const char (&)[13], ImVec2>' requested here
1713 | : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<AudioEditor>::__shared_ptr<std::allocator<void>, const char (&)[25], const char (&)[13], ImVec2>' requested here
463 | : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<AudioEditor>::shared_ptr<std::allocator<void>, const char (&)[25], const char (&)[13], ImVec2>' requested here
1007 | return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
| ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:139:31: note: in instantiation of function template specialization 'std::make_shared<AudioEditor, const char (&)[25], const char (&)[13], ImVec2>' requested here
139 | mAudioEditorWindow = std::make_shared<AudioEditor>(CVAR_WINDOW("AudioEditor"), "Audio Editor", ImVec2(820, 630));
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'InputViewer' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<InputViewer>' requested here
149 | std::destroy_at(__pointer);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<InputViewer>' requested here
720 | { std::_Destroy(__p); }
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<InputViewer>' requested here
616 | allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<InputViewer, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
602 | _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<InputViewer, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[25], const char (&)[13]>' requested here
970 | _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<InputViewer, std::allocator<void>, const char (&)[25], const char (&)[13]>' requested here
1713 | : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<InputViewer>::__shared_ptr<std::allocator<void>, const char (&)[25], const char (&)[13]>' requested here
463 | : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<InputViewer>::shared_ptr<std::allocator<void>, const char (&)[25], const char (&)[13]>' requested here
1007 | return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
| ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:141:25: note: in instantiation of function template specialization 'std::make_shared<InputViewer, const char (&)[25], const char (&)[13]>' requested here
141 | mInputViewer = std::make_shared<InputViewer>(CVAR_WINDOW("InputViewer"), "Input Viewer");
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'InputViewerSettingsWindow' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<InputViewerSettingsWindow>' requested here
149 | std::destroy_at(__pointer);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<InputViewerSettingsWindow>' requested here
720 | { std::_Destroy(__p); }
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<InputViewerSettingsWindow>' requested here
616 | allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<InputViewerSettingsWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
602 | _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<InputViewerSettingsWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[33], const char (&)[22], ImVec2>' requested here
970 | _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<InputViewerSettingsWindow, std::allocator<void>, const char (&)[33], const char (&)[22], ImVec2>' requested here
1713 | : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<InputViewerSettingsWindow>::__shared_ptr<std::allocator<void>, const char (&)[33], const char (&)[22], ImVec2>' requested here
463 | : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<InputViewerSettingsWindow>::shared_ptr<std::allocator<void>, const char (&)[33], const char (&)[22], ImVec2>' requested here
1007 | return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
| ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:143:33: note: in instantiation of function template specialization 'std::make_shared<InputViewerSettingsWindow, const char (&)[33], const char (&)[22], ImVec2>' requested here
143 | mInputViewerSettings = std::make_shared<InputViewerSettingsWindow>(CVAR_WINDOW("InputViewerSettings"),
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'CosmeticsEditorWindow' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<CosmeticsEditorWindow>' requested here
149 | std::destroy_at(__pointer);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<CosmeticsEditorWindow>' requested here
720 | { std::_Destroy(__p); }
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<CosmeticsEditorWindow>' requested here
616 | allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<CosmeticsEditorWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
602 | _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<CosmeticsEditorWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[29], const char (&)[17], ImVec2>' requested here
970 | _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<CosmeticsEditorWindow, std::allocator<void>, const char (&)[29], const char (&)[17], ImVec2>' requested here
1713 | : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<CosmeticsEditorWindow>::__shared_ptr<std::allocator<void>, const char (&)[29], const char (&)[17], ImVec2>' requested here
463 | : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<CosmeticsEditorWindow>::shared_ptr<std::allocator<void>, const char (&)[29], const char (&)[17], ImVec2>' requested here
1007 | return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
| ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:147:14: note: in instantiation of function template specialization 'std::make_shared<CosmeticsEditorWindow, const char (&)[29], const char (&)[17], ImVec2>' requested here
147 | std::make_shared<CosmeticsEditorWindow>(CVAR_WINDOW("CosmeticsEditor"), "Cosmetics Editor", ImVec2(550, 520));
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'ActorViewerWindow' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<ActorViewerWindow>' requested here
149 | std::destroy_at(__pointer);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<ActorViewerWindow>' requested here
720 | { std::_Destroy(__p); }
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<ActorViewerWindow>' requested here
616 | allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<ActorViewerWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
602 | _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<ActorViewerWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[25], const char (&)[13], ImVec2>' requested here
970 | _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<ActorViewerWindow, std::allocator<void>, const char (&)[25], const char (&)[13], ImVec2>' requested here
1713 | : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<ActorViewerWindow>::__shared_ptr<std::allocator<void>, const char (&)[25], const char (&)[13], ImVec2>' requested here
463 | : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<ActorViewerWindow>::shared_ptr<std::allocator<void>, const char (&)[25], const char (&)[13], ImVec2>' requested here
1007 | return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
| ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:150:14: note: in instantiation of function template specialization 'std::make_shared<ActorViewerWindow, const char (&)[25], const char (&)[13], ImVec2>' requested here
150 | std::make_shared<ActorViewerWindow>(CVAR_WINDOW("ActorViewer"), "Actor Viewer", ImVec2(520, 600));
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'ColViewerWindow' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<ColViewerWindow>' requested here
149 | std::destroy_at(__pointer);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<ColViewerWindow>' requested here
720 | { std::_Destroy(__p); }
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<ColViewerWindow>' requested here
616 | allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<ColViewerWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
602 | _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<ColViewerWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[29], const char (&)[17], ImVec2>' requested here
970 | _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<ColViewerWindow, std::allocator<void>, const char (&)[29], const char (&)[17], ImVec2>' requested here
1713 | : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<ColViewerWindow>::__shared_ptr<std::allocator<void>, const char (&)[29], const char (&)[17], ImVec2>' requested here
463 | : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<ColViewerWindow>::shared_ptr<std::allocator<void>, const char (&)[29], const char (&)[17], ImVec2>' requested here
1007 | return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
| ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:153:14: note: in instantiation of function template specialization 'std::make_shared<ColViewerWindow, const char (&)[29], const char (&)[17], ImVec2>' requested here
153 | std::make_shared<ColViewerWindow>(CVAR_WINDOW("CollisionViewer"), "Collision Viewer", ImVec2(520, 600));
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'SaveEditorWindow' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
88 | __location->~_Tp();
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<SaveEditorWindow>' requested here
149 | std::destroy_at(__pointer);
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<SaveEditorWindow>' requested here
720 | { std::_Destroy(__p); }
| ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<SaveEditorWindow>' requested here
616 | allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
| ^
...
```
* Modify the flow for applying opacity to docked tracker windows only when they are docked to the "Main - Deck" dockspace.
* Add opacity clamping for check tracker.
* Rearrangement of the currencies in randomizer.cpp
* Rearrangement of the currencies in randomizer.cpp
* Rearrangement of the currencies in randomizer.cpp
* Rearrangement of the currencies in randomizer.cpp
* Rearrangement of the currencies in randomizer.cpp
* Rearrangement of the currencies in randomizer.cpp
* Rearrangement of the currencies in randomizer.cpp
* Rearrangement of the currencies in randomizer.cpp
* Rearrangement of the currencies in randomizer.cpp
* Rearrangement of the currencies in randomizer.cpp
* Rearrangement of the currencies in randomizer.cpp
* Rearrangement of the currencies in randomizer.cpp
* Additions for the German translation in hint_list_exclude_dungeon.cpp
* Additions for the German translation in hint_list_exclude_overworld.cpp
* Additions for the German translation in hint_list_exclude_overworld.cpp
* Rename a few more entrances to better match interior contents, and a lot of check names to match their grotto names.
* Undo debug commit. Now it's just text changes.
* Fix issue where random and clear seed buttons overlap text input.
* Fix issue where item scale is incorrectly disabled.
On fresh json, there was a mismatch on the defaults where SGIA_JUNK was default for the actual
combobx but SGIA_DISABLED, was used as the default when the CVar was checked in the scale slider's
PreFunc.
* Calculate accessible checks and show them in the check tracker.
* Added added DoorUnlocked checks to the Fire Temple doors.
This is needed when calculating Accessible checks while playing and using small keys. Otherwise checks will appear unaccessible because Keys have been used.
* Changed RecalculateAccessibleChecks to use the logic ReachabilitySearch.
* Reverted DoorUnlocked changes.
* Added recalculate_accessible_checks debug console command.
* Skip CanBuy check when calculating accessible checks, it spoils that some items can't be bought with the current wallet.
* Set RAND_INF_ZELDAS_LETTER.
* Don't add locations to the pool when calculating accessible checks.
* Save and Load randomizer trick options.
* Get the number of used small keys.
* Added check if bean was planted.
* Show number of Accessible checks in each Area.
* Accounted for missing RG_POCKET_CUCCO in logic HasItem and ApplyItemEffect.
* Show accessible checks via an icon.
* Check shop price against current wallet.
* Recalculate Accessible Checks in CheckTrackerLoadGame instead of LoadFile.
* RecalculateAccessibleChecks on save.
* Don't unset Zelda's Letter.
* Added Only Show Available Checks checkbox.
* Rename Accessible Checks to Available Checks.
* Added option to Enable Available Checks.
* Remove debug console to recalculate available checks, this can now be done by toggling Enable Available Checks in the settings.
* Remove extra requiredTrial.
* Default "Hide unshuffled shop item checks" unchecked.
* Updated GetSmallKeyCount to return int8_t.
* Default AmmoDrop to true until the setting is implemented.
* Fixed Sleeping Waterfall timesaver.
* Updated Only Show Available Checks to let Show Hidden Items reveal hidden available checks.
* Revert "Don't unset Zelda's Letter."
This reverts commit 4b5903940f.
* Set RAND_INF_ZELDAS_LETTER.
* Revert "Fixed Sleeping Waterfall timesaver."
This reverts commit 9b62fd5297.
* Added isMagicAcquired to Logic::HasItem.
* GetDungeonSmallKeyDoors return static emptyVector.
* Comment out AmmoCanDrop in ResetLogic.
* Added location_access CanBuy todo.
* Reverted Get and Set SmallKeyCount to use uint8_t and handled -1 keys.
* Added todo for MQ Water GetUsedSmallKeyCount.
* copy n64 pal 10
doing this so i can check diffs i make
* transfer german->jp icon item
* overlays, message data, icon item jpn, audio, code
todo: title_static, gameplay keep
* add kanji and fix title cards
* title static
* spell folder correctly
* boss title cards, do action, icon item, item name, map name
* headers for jpn stuff
* gameplay_keep
* Scenes, audio, jp text extraction, rom support, overlay fixes, sheik & darunia
todo: test & disable darunia fix cvar for ntsc
* msgptr init fix
* icon item offsets
* comment out title cards until zapd can fix itself (we extract these in a different file anyway)
* compile and font implemented to get past title screen
* file select
* message, kaleido and everything else but rando
* uintptr_t
* rando and custom messages working!
* ntsc-j 1.0 support
* n64 logo?
* copy ntsc 10 to 11
* ntsc 11 extraction
* change title version names
* copy ntsc 11 to 12
* ntsc 12 extraction
* clean up some todos
* re checkout submodules post merge
* fix US filename
* support cross-version filenames
* add new versions to non-mq list
* use correct message table init
* Fix ntsc nes message table overriding pal nes message table
* actual fix, allows extraction
* fix file name using wrong font of file being hovered over
* Fix barinade crash
* re-add pal
* better jabu fix and revert LUS
* fix gerudo title cards
* better better owl select
* more owl fixes
* build
* fix some name decode issues
* Switch Language Mid Text
* Fix PAL displaying for JP filenames
* Fix AskToEquip Crash
* Disable Credits Timing Fix on NTSC
* Fix JP Text positioning
* basic language switching (BIG todo: file select, title screen)
* Title Screen Hopefully working
* add ntsc to linux appimage stuff, TODO: add .v64/.n64 support
* Update OTRExporter
* Fix pause to decide offset
* Fix bomb item name crash
* fix fire arrows and PoH
* builds
* update asset changes and fix menu language changing
* fix name decode
* Fix crashes and add rando/boss rush select stuff
* Revive debug feature by setting language cvar too
* Fix ocarina text speed softlock, and update jp text speed changes
* Merge remote-tracking branch 'upstream/develop' into NTSC
* Fix options menu and let pal use japanese fully
* Resolve some suggestions
* match up gTextSpeed changes to english (still broken!)
* Fix text speed crash
* Set default filename language on save init funcs
* copy n64 ntsc 1.2 to gc nmq ntsc and add rom info
* extractor working for ntsc gc u
* Extraction Works
* bump otrexporter
* Display same correct info for n64 ntsc-j and ntsc-u
* ovl asset fixes
* final font diff
* change the correct ovl file choose xml
* copy asset files for jp
* JP Working
* Copy jp and us xmls to mq
* MQ Working
* quicktext more closely aligned with decomp
* add versions to mq switch
* linux appimage v64/n64 checksums
* bump zapd
* Credits Fix Tooltip Adjusted
* update supported hashes json
* update shasums to include JP n64
* add shasum hashes
* Bump submodules back to upstream
* copy n64 pal 10
doing this so i can check diffs i make
* transfer german->jp icon item
* overlays, message data, icon item jpn, audio, code
todo: title_static, gameplay keep
* add kanji and fix title cards
* title static
* spell folder correctly
* boss title cards, do action, icon item, item name, map name
* headers for jpn stuff
* gameplay_keep
* Scenes, audio, jp text extraction, rom support, overlay fixes, sheik & darunia
todo: test & disable darunia fix cvar for ntsc
* msgptr init fix
* icon item offsets
* comment out title cards until zapd can fix itself (we extract these in a different file anyway)
* compile and font implemented to get past title screen
* file select
* message, kaleido and everything else but rando
* uintptr_t
* rando and custom messages working!
* ntsc-j 1.0 support
* n64 logo?
* copy ntsc 10 to 11
* ntsc 11 extraction
* change title version names
* copy ntsc 11 to 12
* ntsc 12 extraction
* clean up some todos
* re checkout submodules post merge
* fix US filename
* support cross-version filenames
* add new versions to non-mq list
* use correct message table init
* Fix ntsc nes message table overriding pal nes message table
* actual fix, allows extraction
* fix file name using wrong font of file being hovered over
* Fix barinade crash
* re-add pal
* better jabu fix and revert LUS
* fix gerudo title cards
* better better owl select
* more owl fixes
* build
* fix some name decode issues
* Switch Language Mid Text
* Fix PAL displaying for JP filenames
* Fix AskToEquip Crash
* Disable Credits Timing Fix on NTSC
* Fix JP Text positioning
* basic language switching (BIG todo: file select, title screen)
* Title Screen Hopefully working
* add ntsc to linux appimage stuff, TODO: add .v64/.n64 support
* Update OTRExporter
* Fix pause to decide offset
* Fix bomb item name crash
* fix fire arrows and PoH
* builds
* update asset changes and fix menu language changing
* fix name decode
* Fix crashes and add rando/boss rush select stuff
* Revive debug feature by setting language cvar too
* Fix ocarina text speed softlock, and update jp text speed changes
* Merge remote-tracking branch 'upstream/develop' into NTSC
* Fix options menu and let pal use japanese fully
* Resolve some suggestions
* match up gTextSpeed changes to english (still broken!)
* Fix text speed crash
* Set default filename language on save init funcs
* bump otrexporter
* Display same correct info for n64 ntsc-j and ntsc-u
* quicktext more closely aligned with decomp
* linux appimage v64/n64 checksums
* bump zapd
* Credits Fix Tooltip Adjusted
* update supported hashes json
* update shasums to include JP n64
* Re-Run ship init funcs on json drop and preset apply
* Prevent registering rando locations from running more than once
* Moves registered=true right after early return
* Move ShipInit call into applyPreset
* RBA and BA
* move rba to shipinit
* make the vanilla condition actually a vanilla condition
* update should docs
* move ba to shipinit
* don't pass things
* try a different readability strategy
* remove option/preset entries
---------
Co-authored-by: rozlette <Rozelette@users.noreply.github.com>
* * fixes softlock when talking to Mido without Kokiri Emerald after killing Gohma
* * moved scene check to hook
* moved vanilla conditioon into GameInteractor_Should
* * corrected hook condition
* removed 'this'
* * reverted GameInteractor and hook_handlers
* changed actor to use existing hook
* * updated kokiri emerald conditions
* * missed parentheses
* * Overworld pretty much done.
* Known issue with Market Night + 2 bushes in KF
* Known issue with Adult bush in ZR
* * fixed locations post-merge
* * renamed option and types to 'GRASSANITY'
* changed grassnity to be a combobox option
* added first 5 deku tree locations
* * color is a sickly green when containing a check
* added ZR 14 (adult only bush on the platform, not the same?)
* * forgot to rename the files to grassanity
* updated draw method to fix regrowing grass
* Removed old WIP locacc files
* * removed comments in bush actor
* added rest of Deku Tree plus MQ
* Added DC + MQ
* Fixed DC incorrect pos value on 1 loc
* JJB done minus after big octo
* Added BotW + MQ locs
* WIP grottos
* Grottos done
* Workaround to allow market grass during night
* Seperated the 2 KF bushes into 4 checks
* Hints and additional formatting
* Slightly less ghastly color
* Corrected the 2 JJB locs
* * Renaming and removal of some locs.
* Restructure in z_en_kusa.c to leave vanilla code alone.
* Formatting.
* * see previous (forgot to stage woops)
* * Clear grassIdentity on item drop
* Added check for RC on RandoDraw function
Results in no extra dupe drops, and instantly correct the color of the grass when cut instead of on collecting the item.
* * fixed dupe location spoiler names which caused occasional crash when writing spoiler log
* * reverse should
* * fixed faulty locations
* * corrected KAK location names and some formatting
* * Fixed market bushes by tree not working at night
* * merged ZR near PoH grass into a single loc
* * Changed to ShipInit (might be missing something?)
* Corrected Should in z_en_kusa.c to use original draw func when setting is Off
* * Renaming to Shuffle Grass
* * minor fix
* * keyboard fail lol
* * suggestions
* * removed unused function
* * move grass locations into ShuffleGrass
* move grass GameInteractor into GIVanillaBehavior
* minor fixes
* * pre-removed locs from dungeon.cpp
* * pre-remove from context.cpp
* * re-added Grass to context
* * added Dana's amazing custom bush models
* using CSMC to display flowers based on "contents"
* * added Dana's grass models
* refactor to lessen the clutter in the switch
* * removed fairy case
* Added back missing Deku Tree locations
* formatting
* Update soh/soh/Enhancements/randomizer/location_access/overworld/zoras_river.cpp
Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
* re-added suggestion from previous
* removed wrong line >.>
---------
Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
Also avoid putting random junk into the pool to begin with
When smaller, add junk from pending junk items
When larger, remove junk from the item pool
This avoids issue where shuffles which add items to pool (souls, overworld keys, triforce pieces) would hit assert about item pool size exceeding location pool size
* Additions and fixes for the German translation in item_list.cpp
* Additions and fixes for the German translation in hint_list_exclude_dungeon.cpp
* Additions and fixes for the German translation in hint_list_exclude_overworld.cpp
* Additions and fixes for the German translation in hint_list_item.cpp
* Additions and fixes for the German translation in randomizer.cpp
* Additions and fixes for the German translation in randomizer.cpp
* Fix for the French translation in item_list.cpp
* Additions and fixes for the German translation in hint_list_exclude_dungeon.cpp
* Fixes for the English text in settings.cpp
* Fixes for the English text in SohMenuEnhancements.cpp
* Fixes for the English text in SohMenuDevTools.cpp
* Fixes for the English text in SohMenuRandomizer.cpp
* Fixes for the English text in ResolutionEditor.cpp
* Fixes for the English text in enemyrandomizer.cpp
* Fixes for the English text in gameplaystats.cpp
* Fixes for the English text in savefile.cpp
* Fixes for the English text in enemyrandomizer.cpp
* Fix for the English text in SohMenuEnhancements.cpp
Co-authored-by: aMannus <mannusmenting@gmail.com>
---------
Co-authored-by: aMannus <mannusmenting@gmail.com>
* temp fix for chest skulltulas
* Implement way to load a vanilla message into a CustomMessage
* dynamically inserts autodismiss text code to skulltula text.
* pushing what i have so i can try to figure out HW_REG errors
* HW_REG (fix? workaround? either way it builds now)
* factory fixes and shaders
* bump again
* bump again
* copy shaders for `ExtractAssets` too (instead of just in `GenerateSohOtr`)
* Fix SFM logic
SFM mixed child wolfos / adult moblin logic, making both incorrect
In particular, Din's Fire is ineffective on Moblins, & slashing your way through them should not be in logic
Adds trick for getting through SFM as adult without killing moblins
Includes small cleanup elsewhere in logic
* moblins not required
* don't throw items when using assigned tunics/boots
* didn't actually need that
* simplify logic so we don't need to check for holding items
* just use a vb should
* fix comment
* Prevent spoiling dungeons in check and item trackers if MQ is set to Selection, but selection for specific dungeon is Random.
* Account for other options using "Set Dungeon Quests".
* fix mismatch on default value for notification position
* Fix checkbox vertical offset for multiline
* Moooore changeees too theee menuuuuuu
* capitalization again
* Fix controller config & remove test var
Where we were previously checking it, just check the separate triforce hunt option instead.
The option under GBK settings was always kind of a dummy option that wasn't meant to actually be selected, and it was set automatically when Triforce Hunt was on.
This PR just cuts out the middle man, so to speak.
* First pass cheats, extra modes, minigames, difficulty, fixes, graphics
* More progress. One tab left
* Enhancements & cheats done and fix for item tracker font
* Adds ability to set InputString fields as "secret"
Meaning it shows the text as dots like a password field. Currently nothing that is merged into the main branch uses this but Anchor will need it.
* Adds an `addedFlags` field to InputOptions.
* FPS and refresh rate logic changes
Changes FPS behavior on all renderer (despite the actual set FPS):
- Clamp FPS to refresh rate when V-Sync on (or can't be disabled)
- Stick to refresh rate when "MatchRefreshRate" is toggled on
* Max 360 FPS for slider on all renderers
* "Match Refresh Rate" unification
Checkbox for all renderer. Was a button for DirectX.
* Fix wrong CVAR for Match Refresh Rate
* More descriptive V-Sync tooltip
* Fix wrong CVar for DISABLE_FOR_DEBUG_MODE_OFF
* Move close menu button to right side, farthest right, and move Quit SoH to the left of the Reset button.
Also remove last reference to 2ship in tooltips.
* Change Resolution Editor's use of CVarGet to `GetInterpolationFPS()` in OTRGlobals.
* Multiple Rando Text related stuff
- Mostly french rework / completion of missing lines
- Removal of a duplicate entry for Richard's house overworld key
- Correct naming for the English pond
- Addition of missing text in English and french
* Txeak uncessary spaces
* Add menu files, hook menu up to window system.
Temporarily rename new menu's UIWidgets to UIWidgets2 to allow both menu systems to coexist temporarily.
* Finish implementing new menu.
Rename 2ship UIWidgets to UIWidgets2 to complete facilitation of both menus working for now.
* More preliminary setup
* More prepwork, begin on settings options
* Finish settings, add enhancements windows
* Fix search function not looking past first columns.
* Add dev tool windows
* Finish dev tools
* Add about window
* Fully replace about window
* Remove moved menu items from menubar, add more windows to new menu
* Implement WindowButtonOptions.
Add ability to not embed popout windows when not popped out.
Add ability to hide the button for WindowButtons.
Fix Entrance Tracker from showing when not enabled.
* Fix entrance tracker settings embedded display.
Fix entrance tracker settings window original size declaration.
* Initial implementation of themed radio button widget.
* Move "About" section to second column of general.
Fix sidebar sections starting in second column.
* Restore Entrance Tracker `Draw()` to allow for custom styling.
* Fix combobox positioning formatting.
Fix color picker end spacing.
Convert everything in check tracker settings to UIWidgets2 (except color pickers and section headers).
Make all tracker windows not embed.
* Minor cleanup
* Fix main volume defaults & mirror jitter fix removal on dev
* Improve color picker with RGB/RGBA options. Not finished.
* Finish creating CVarColorPicker and implement for Check Tracker background color.
Fix tracker and network prefixes.
* Finish check tracker settings and convert check tracker.
* Port all Cheats menu except for Beta Quest
* Port over Beta Quest to new menu
* Remove old cheats menu
* Port cutscene skips to modern menu
* Port Timesaver Enhancements to new menu
* Port the Items and Item Count Messages submenu
* Port Difficulty Options to new Menu
* Removes options that have been ported thus far.
* Port "Reduced Clutter" options to new menu
* Add forgotten callbacks to Hyper Enemies/Bosses
* Copy StateButton to UIWidgets2, and implement custom padding for them in the tracker.
* Ports some pause menu related settinga
* Change tracker window active title color.
Make state buttons smaller in tracker to get more info on screen.
* Convert window title active theming to all windows.
* Port the rest of Enhancements->Gameplay to new menu
* Port the "Graphics" Enhancements to new menu
* Ports Fixes over to the Modern Menu
* Ported Restorations to Modern Menu
* Ported Extra Modes to new menu
* Port Autosave and Boot Sequence to modern menu
* Cleans up some leftover data for ported buttons
* Ports Enhancement Presets to new menu
* Port Additional timers to new menu. Removes Enhancements from old menu
* Cleans up some unused stuff
* Ports Randomizer Enhancements to modern menu
* Convert Item Tracker Settings. Something's wrong with the comboboxes in a second column of a table.
* Fix combobox alignment and label position calculations.
* Convert Entrance Tracker window.
* Save Editor Info tab finished.
Added `PushStyleInput` and `PushStyleTabs` for Info tab.
Fixed some indentation in entrance tracker source.
Added font push to tracker windows.
* Increase size of all icons in save editor.
* Convert flag groups to child windows for automatic sizing and border drawing.
* Flags tab completed.
Finished inventory tab.
* Convert save editor help hover to UIWidgets2.
* Various fixes and corrections
* Start cosmetics editor, fix theme colors not updating
* Cosmetics editor conversion progress
* Remove Mac internal resolution restrictions.
* Copy over advanced resolution partial and enable most options as a custom widget.
* Add size to float sliders, more cosmetics editor progress
* Fix incorrect cvar for notifications
* Radio button & header color options, more cosmetics editor progress
* Finish cosmetics editor conversion
* Create and apply THEME_COLOR macro. Resides in SohGui for easy access to mSohMenu.
* Move ResolutionEditor to SohGui directory.
* Add labels to build info.
Fix slider width calculations.
* Fix some advanced resolution widget hiding.
* Fully implement Advanced Resolution options.
Fix graphics settings formatting.
Improve slider label position calculations.
Implement Clamp options on sliders.
* Finish save editor.
Convert save editor code to `using namespace UIWidgets2`.
Fix search crashing on time splits window.
Remove `SetLastItemHoverText` from `UIWidgets2`.
* Unify cvar sectioning in time splits.
* Add InputString and InputInt widgets, and corresponding CVar Widgets
* Adds Widget Type for Inputs, not currently used.
* Convert Sail to modern menu
* Add Combobox that takes a vector of std::strings
* Convert checkbox and combobx to new widgets
* Add Tristate checkbox
* Convert sliders and tristate checkboxes
* Convert top half of Rando window
* remove/replace remainder of UIWidgets usage in option.cpp
* Converts tricks, locations, and removes old UIWidgets refs
* Fix windows build errors
* Remove Tri-State checkboxes
* Use PushStyleInput instead of PushStyleSlider
lol oops didn't realize it was a thing in Ship.
* Rebase and address review comments
* Convert Crowd Control to modern menu.
* Fix build error
* Audio editor progress
* Re-add CVar SaveOnNextFrame calls to Resolution Editor.
Remove old Resolution Editor files.
* Convert TimeSplits to new menu.
Fix a few enum warnings.
* Decrease padding on Arrow Buttons
* Audio editor + gameplay stats done
* Give Randomizer Menu more screen real-estate
* Port plandomizer menu
* Fix slider width calculation and allow combobox LabelPosition::None
* Fix None labelPos and slider width for inline labels
* Fix all slider value label insertions.
Convert Collision Viewer.
* Minor Collision Viewer enum change.
Convert Actor Viewer.
* Theme/convert Message Viewer.
* Add font to Message Viewer.
Theme Value Viewer.
* DL Viewer and SohModals themed.
* Convert Input Viewer.
* Missed some color settings in Input Viewer.
Removed UIWidgets references from Controller Config, and restored SoH version.
* Remove UIWidgets.hpp include from multiple files.
* Completely remove old UIWidgets.
Rename UIWidgets2 to UIWidgets.
Move Accessibility and Language options to new menu.
* Fix Gfx Debugger not showing up.
Remove menubar registration.
* Fix clearCvars references.
* Fix passing std::string to const char* argument.
* enum name spacing
---------
Co-authored-by: aMannus <mannusmenting@gmail.com>
Co-authored-by: Christopher Leggett <chris@leggett.dev>
* Fix more location pool exclusion misses
* Add assert to ensure item pool isn't too large.
This will catch any issues where too many items are getting
added to the pool in Debug mode. It only checks to make sure the item
pool is smaller than the location pool, as the code actually handles
that just fine by placing Junk if the pool runs out. The Item Pool being
larger than the location pool though could easily result in items not
being placed. Logic should prevent a seed like that actually being
generated, but No Logic does no such checks.
* Add TODO comment for Item Pool, should be same size as Location Pool.
* Prevent Completed Triforce from ending up in Location List
* Fix Gerudo Valley entrance logic
Logic assumed cucco could be used as child to get around lacking bronze scale,
but this assumption fails if you enter grotto ledge from grotto or initial spawn
* fix lower/upper mixup
* fix: you can walk to lake hylia
* adult can jump across
* presets: clear blocks
this avoids needing to list every new cvar in presets.h
* avoid resetting selected preset
* no cvar lists, clear less blocks on drop
* logic: allow finding big poe in bottle for reward logic
only applies when big poe count is set to 1
* Allow multiple big poe bottles for when big poe requirement > 1
Assertion failed in CreateChildAltarHints because all 3 stones were placed on fairies/beehives while those were disabled
Fix: consolidate on Context building settings dependant location lists. Overworld vs Dungeon should not operate so differently
* Use VB hook to fix Deku Nut upgrade bug
* Use constexpr, remove unused extern
* Separate IS_RANDO out of value macro
* Restore mask check in hook
* Call VB hook in SkipMiscInteractions hook
* Mask of Truth hook not registered in rando
* Autosave interval based
* Move to save on soft reset, remove adjustable interval
* Use new BeforeExitGame hook to prevent non-existent data problems
* Fix check tracker crash, remove BeforeExitGame hook
* update comment
* Cleanup of unshuffled locations from pool/spoiler
* Removes unshuffled scrubs from the location pool
* Fix some instances of weird spacing
* Actually remove placement of vanilla freestandings
* Cleans up some now unnecessary code.
* Minor Optimization of PlaceItemsForType
* Fixes some grammer and spelling
* Another grammar fix
* Initial Commit
* Added full functionality for both Hylian and Mirror
* Included Format
* Removed Format
* Pedestal Cutscene
* Much Less OnGameUpdating
* Fix function call
* use enums
* move animation skip to vb should
* move taking out master sword to put in pedestal check into vb should
* move the rest of it over
* extra newline was bugging me
* update on `"IS_RANDO"` and use `COND`s
* make new "uncategorized" section for VB enum
* move shoulds to new file
* move vb rsk checks into conds
---------
Co-authored-by: Patrick12115 <Patrick12115@hotmail.com>
Co-authored-by: Malkierian <malkierian@gmail.com>
in https://github.com/HarbourMasters/Shipwright/pull/3280 both `0x00400000` and `0x04000000` were replaced with `PLAYER_STATE1_SHIELDING`.
`0x00400000` is `PLAYER_STATE1_SHIELDING`, but `0x04000000` is `PLAYER_STATE1_DAMAGED`
this fixes the spots in `z_en_torch2` where we had `PLAYER_STATE1_SHIELDING` where it should have been `PLAYER_STATE1_DAMAGED`
* Move fairy checks to separate file
* Moves pot locations to ShipInit function
* Move Freestanding locations to a ShipInit function
* Remove some extra newlines that were pasted in
* Move fish locations to ShipInit function
* Remove ON_BOOT, as it's not really necessary
* Fix weird spacing
* don't put away items when equipping tunics/boots
* vb
* don't need that return
* ok i guess i'm going down the rabbit hole
* more rabbit hole
* shipinit and more hooks
* clean up
* use fewer params, add a missing condition
* make the loops make sense
* rando: vanilla dungeon rewards
* gift from rauru is dungeon location, not pocket
* missing apostrophe in preset description
* neither pocket nor gift should be listed in dungeonRewardLocations
* Add "Blue Warp" to the boss sides of the blue warp pairs to differentiate from the bosses on the other sides of boss doors.
Fix some names that weren't the same in both pairs of entrances.
Renamed a few other entrances for clarification.
* Add function to check entrance name consistency.
Fix remaining non-matching names.
* Document CheckEntranceNames.
Remove declaration of it from the header.
* skip z_title with button press
* use `RegisterShipInitFunc`
* rip out a bunch of custom ztitle code
* ok now it's almost fully back to vanilla
* titles are back for a limited time
enjoy #Skipping
* move old customizations into new custom draw
* finally getting the hang of this shipinit thing
* vb should let it snow
* boot sequence logic
* clean up logic to better handle changing boot sequence settings
* remove fast file select stuff
* remove authentic logo screen setting
* about window - not super pretty but not ugly imo
* maybe this fixes windows
* maybe alloca? idk why it's working in other files
* just pulling in every include hoping something works
* Revert
This reverts commit c1d02c9a40.
* try some macro fixing magic
* fix another c vs cpp thing
* do it without an extra var
* make `GitCommitHashTruncated` a private member on `AboutWindow` instead of truncating on draw
* move logo asset defs to `soh_assets.h`
* Apply suggestions from code review
Co-authored-by: Archez <Archez@users.noreply.github.com>
* VB_SHOULDN'T
---------
Co-authored-by: Archez <Archez@users.noreply.github.com>
* start moving towards just using `ShipDeviceIndex::SDLGamepad`
* rename `ShipDeviceIndex` to `ShipDeviceType`
* all sdl mappings are always `ShipDeviceType::SDLGamepad`
* create new `physicaldevice` directory where the new stuff can live
* `ConnectedPhysicalDeviceManager`
* start to not need index mapping manager
* somes fixes and stuff
* remove more shipdeviceindex stuff
* more removing and what not
* axis thresholds
* rename some stuff and remove device icons
* back to all stuff visible
* show connected device names
* bring in mouse color from lus input editor window
* lus
* remove
* more stuff
* more lus
* basic filtering
* update lus
* upstream LUS
* make `Controller_ShouldRumble` make sense
It initialized an array with a size, which pre-filled
it all with nullptrs, and then used push_back on top of that.
So it was a bunch of nullptrs followed by the actual
option pointers. Fixed by calling reserve instead of
constructing with a size, so it reserves the memory it needs
without actually filling the vector with nullptrs, so push_back
properly starts from the beginning.
* Make spoiler entrancesMap use the same names and display scheme as the entrance tracker.
* Use `Entry` in place of grotto `Exit` and interior `Outside`.
* initial implementation of new models
* fix typo
* Add smaller skeleton key model and try to fix windows build
* stupid windows, you made me look bad!
* make DrawBombchuBag function work
* small cleanups
* OOGGA BOOGA BOO
* fix post merge leftovers
* post merge fix
* Added Big Key Lighting override to show vanilla lighting when unchanged
* rename CustomdLists into customIconDLs
* post merge fixes
* fix some tooltip issues
* post merge cleanup and some small menu changes
* post merge fix
* post merge fix
* add new boss soul model, colours broken
* update boss soul model for env support
* Add dungeon customise buttons to cosmetic editor
* fix mac build?
* keys don't support alpha
* fix submodules
* ring now draws
* fix keyring colours
* Add bombchu Bag RG, fix boss soul skull colour
* address reviews
* Basic restructure
* Undo most randomizerInf changes for now
* Small fixes
* Fix linux & mac builds?
* Fix remnants of randomizerInf changes
* Post-merge fix
* Post-merge fix
* Move/Rename locacc files
* Format locacc files
* Split hyrule field file into HF, LH & LLR files
* Split castle town file into MK, TOT & HC/OGC files
* Split kakariko file into KAK & GY files
* Split death mountain file into DMT, GC & DMC
* Split lost woods file into KF, LW & SFM files
* Split gerudo valley file into GV, GF, HW & COLO files
* Move most files into the overworld/dungeons folder
Gerudo fortress needs to be split into gerudo fortress & thieves hideout, the former into overworld and the latter into dungeons
* Remove the optional second condition function
We won't need it as we're doing glitches differently from 3ds rando
* Post-merge fixes
* Split zora's domain file into ZR, ZD & ZF files
* Post-merge fixes
* Forgot to save the file
* Remove the optional second condition function from entrances & events
* Update bottom_of_the_well.cpp
* Add clarifying comment in `gerudo_fortress.cpp`
* Post-merge fixes
* Post-merge fixes
* Remove `s` from `RegionTable_Init_GerudoTrainingGrounds`
* Post-merge fixes
* * fixes softlock when talking to Mido without Kokiri Emerald after killing Gohma
* * moved scene check to hook
* moved vanilla conditioon into GameInteractor_Should
* * corrected hook condition
* removed 'this'
* * reverted GameInteractor and hook_handlers
* changed actor to use existing hook
* * updated kokiri emerald conditions
* * missed parentheses
* Most of french rando message
* Should be all
* Plural
* Better wording
* forgot one
* Update soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_dungeon.cpp
Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
* Update soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_dungeon.cpp
Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
* Missing ones
---------
Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
* Fix logic thinking naked adult can clear wolfos grotto
Use CanKillEnemy more
* GERUDO_WARRIOR. Can defeat with a lot more than swords
* one more flare dancer
* Put defeating Gerudo Warrior with slingshot/bombchu behind trick
* remove taking settings from a loaded spoiler instead of the imGUI settings
* actually fix most SpoilerLoad issues
* fix vanilla saves making future generations have so settings
* remove extra comment
* Initial mockup
* Rip out part of plando mode, implement rando settings menu
* MVP new randomizer flow
* Translation support and code cleanup
* Fixes and more cleanup
* Fix whoopsie
* Fix whoopsie 2
* Define VB for fairy group spawning
* Add skeleton of new files for fairy shuffle
* Add option to enable/disable fairy shuffle
* Add field to fairy entities to hold randomizer data
* Expose the current grotto id, or find it if not shuffled
This is necessary since, unlike chest or scrub grottos,
fairy fountains, lacking any elements that would normally
differ between grottos, often have identical respawn data.
This change enables fairy shuffle to correctly identify
which fairy fountain was entered so it could load the right
checks.
* Initialise fairy groups if detected
* Randomize first set of fairies
* Make randomized fairies collectible
* VBify fairy healing customization
* Add remaining grotto fairies
* Add remaining fairy group spawns
* Override bean sprouts spawning fairies
* Define bean sprout fairy checks
* Add HasItem and CanUse entries for magic beans.
* Define logic for bean sprout fairies
* Enabling looking up fairies by z coordinate
* Add Temple of Time Gossip Stones
Logic might look a little weird. While the Gossip Stones
respond to Sun's Song, the scene transition takes priority,
so the fairies aren't actually obtainable. Adult does not have
day and night versions and is fully capable of acquiring the
fairies with Sun's Song.
Song of Time is similar, but rather than being dependant on
age, it's dependant on the timesaver to switch ages anywhere
with Song of Time. In this case, the fairies still spawn,
but the age transition deletes them before giving the chance
to collect them. While I could've chosen to ignore this and
simply require the player to disable the enhancement before
playing if it's their only option, I instead decided to
accomodate the enhancement and require one of the other songs
in order for the check to be in logic.
* Disable quick age change around gossip stones to simplify logic
* Add remaining gossip stone fairies
* Finish gossip stone fairies
* Add Desert Colossus Oasis
* Restrict fairy type
Somehow, it was previously possible for Navi to get detected
as a randomized fairy and rendered as an item. I was not
able to reproduce the behavior, but this should prevent it
from happening again.
* Add overworld special fairy spots
* Add mini-dungeon fairy song spots
* Add remaining dungeons except Shadow
* Add Shadow Temple fairies
* Add fairy check flags to the save editor
* Filter fairy checks from check tracker
* Add hints for fairy checks
* get fairysanity as far as I can for now
* fix a few obvious issues
* now builds
* try to convert FairyOnVanillaBehaviorHandler to vardic args
* convert RegisterFairyCustomization to REGISTER_VB_SHOULD
* fix some generation issues
* remove the list of fairy locations
* fix up logic
* more logic changes for gossip stones
* try silly thing for windows
* more stupid
* more dumb testing
* more testing
* small fixes
* implement inside fence storms fairy
* add inside fence storms fairy to logic
* remove duplicate hints (stupid conflicts)
* oops
* Rewrite game interfacing code of fairy shuffle
* Better function names
---------
Co-authored-by: Angel Bulfone <mbulfone@gmail.com>
Co-authored-by: aMannus <mannusmenting@gmail.com>
* Quick cleanup
* Re-add experimental tag
* Cleanup and small explanations
* Implement RT_DAMAGE_BOOST_SIMPLE & RT_HOVER_BOOST_SIMPLE
* Update tricks.cpp
* Move glitch status to a tag
* Fully remove the unused LENS & BKSKIP tags
* Enable some disabled tricks
* Add RT_ZF_GREAT_FAIRY_WITHOUT_EXPLOSIVES
* fix potsanity looking at deku tree MQness when dealing with pots between dungeons
also don't need a loop for a range check
* share logic between placing freestanding & pots
* fix settings typo
* fix all freestanding items still being shuffled
this reinstates original freestanding method of filling in unused locations,
but also extend logic so that when only dungeons have freestanding shuffled
we don't render overworld freestanding as 3d versions until collected
* lift optimization check
* Fixes for the German translation in hint_list.cpp
* Additions for two translations in hint_list.cpp
* Fixes for two translations in hint_list.cpp
* Fixes for two translations in hint_list.cpp
* Enable freestanding items other than heart pieces and keys
* Add option to disable freestanding rupee & heart shuffle
* Add items to pool
* Actually add shuffle setting
* Define overworld locations
* Add logic for overworld freestanding checks
* Add freestanding items for child dungeons.
* Add checks for Ice Cavern and Bottom of the Well
* Add checks for Forest Temple and Gerudo Training Grounds
* Add checks for Fire Temple and Water Temple
* Add Shadow Temple checks
This does not include the spinning pots rupees, even though
they're included with freestanding rupees in the N64 randomizer
as they would require dedicated overrides for the code for
the pots in question.
* Define Spirit Temple and Ganon's Castle hearts
* Add remaining checks to dungeon definitions
* Fix missing logic
* Add freestanding checks to Save Flags Editor
* Fix flags for Zora Fountain underwater rupees
* Add option to enable freestanding shuffle for either dungeons or overworld
* Add missing MQ checks and fix mac & windows compile error
* Improve description and add hint text
* Update logic for Bombchu fixes
* Add missing Spirit Temple MQ hearts
* Add missing settings entries
* Actually add Forest Temple trick to the tricks menu.
* Re-add Ice Cavern lobby rupee
* go over MQ logic
* review logic on non-MQ checks
* convert all freestandings to location based
* add option enum and fix jabu exit logic
* fix mislocated freestandings
* fix mislocted freestandings
* Fix some mislocationed checks
---------
Co-authored-by: Angel Bulfone <mbulfone@gmail.com>
* Make new `SpoilAreaFromCheck` function to spoil areas when getting maps or a first check in a dungeon that isn't spoiled by entrance.
* Add scummed check dungeon spoiling on load.
* Fix quest menu cursor "moving" in the background in the save game prompt.
Fix misc item tracker also being able to select R and L/Z in save prompt.
Include MigrationAction entry removal from item count fix PR.
* Fix formatting.
* Change copy assets procedure to use "if different" variants of the copy commands.
Bump minimum cmake to 3.26 to accommodate those variants.
* Change MSVC_CMD asset copy command to VS_COPY_ASSETS_CMD, change setting it to only be on Visual Studio build chain.
* Potsanity proof of concept
* Hide pot item cutscenes for very frequent items
* Add 1 new pot to the item pool
* V1 custom pot model
* V2 pot model
* Pushing for help. lol
* Format clean up on added hint_list entries.
Removal of WriteIngameSpoilerLog call that was unneeded.
* THREE_ACTOR_PARAMS -> TWO_ACTOR_PARAMS and hints in a loop
* Lost woods pots logic
* Realign Pot Checklist in Location_list.cpp
* Correcting some values and adding Master Quest pots.
* Remove vanilla placements
* Re-order enums + start hints per region
* Fix build
* Break up shuffle pot options to dungeon/overworld/all
* Fixes
* Prepare default pot contents, fix/add dungeons
* Fix dungeon/overworld only settings
* Updates to Parameters and RHT information
* Remove unused hints
* Add proper check tracker entry exclusion
* Tweak items to skip cutscenes for
* Vanilla Drop List
* Update magic to blue rupees
* After merge fixes
* Fix Ganondorf's Lair pots
* Fix check tracker + minor stuff
* Unlock early GBK door
* Minor fixes
* More minor stuff and start of logic entries
* Fix TWO_ACTOR_PARAMS overlap between pots
* De-dupe defines
* Add missing water trial pot
* Update to develop-rando
* VBify pots progress
* Cleanup and fixes
* Overworld logic done
* Cleanup and fix item00 queues
* Implement skipping cutscenes for common items
* Revert "Implement skipping cutscenes for common items"
This reverts commit fe44916588.
* Ganons tower pot not spawning item fix + cleanup
* Fix ganon's tower, barinade, water temple pots
* VBify ganons key door
* Lizalfos Pot addition (example)
* Separate MQ pots in randomizerTypes.h
* Fix build
* Fix linux build (?)
* DC/Jabu/Botw/ start of Forest Pots (NMQ)
* Remaining Dungeon Non MQ Pot Location Logic
* After merge fixes round 1
* Post merge fixes round 2
* Apply MQ pot logic
* Re-align some stuff
* Cleanup, more work on locationlist
* Start of handling dungeon pots in item pool
* Finish dungeon pots in item pool
* GTG MQ Pots
* Review comments round 1 & code cleanup
* Fix ganon's lair pots being behind GBK in logic
* Update soh/include/z64actor.h
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Update soh/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Address review comment
* Fix logic for pots in Fire Temple
* Fix GtG MQ pots, fix water temple pot logic
* Review Comments
* Logic review part 1
* Logic comments part 2
---------
Co-authored-by: Caladius <Caladius@users.noreply.github.com>
Co-authored-by: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com>
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Fixes for the English text in option_descriptions.cpp
* Fixes for the English text in static_data.cpp
* Fixes for the English text in option_descriptions.cpp
* Fixes for the English text in option_descriptions.cpp
* Fixes for the English text in settings.cpp
* Fixes for the German translation in hint_list.cpp
* Zora's River waterfall always open, take two
* Remove improper, redundant checks in hook
* Move all checks into update hook
* Add Randomizer setting for keeping Sleeping Waterfall open
* Change header exports to extern exports
* Remove "closed as child" option for rando setting
* Oops, missed a spot
* A bit more cleanup: simplify a redundant condition
* Unify hook handlers
* Oopsie, fix build error
* Add "play only once" option
* Force Sleeping Waterfall enhancement in rando mode
* Force enhancement only if waterfall is Open in rando
* Restore forced-open waterfall in rando
* Fix rando condition in hook
* Fix? rando entrance logic for OI
* Fix build errors
* Separate option values into context and menu indexes.
* Fix option index reference in `CleanCheckConditionString`.
* Update soh/soh/Enhancements/randomizer/3drando/location_access.cpp
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Restore `const` classification to functions returning `string&`.
* Restore `const` classification to getter functions.
* Restore a couple more `const`s; cleanup header.
* Final consts; rename `SetCVar` to `SaveCVar`.
* Convert defaultColor from ImVec4 to Color_RGBA8.
Convert defaultColor's ints to floats when being applied to currentColor in the macro.
* Address previous cleanup comments.
Surround `Message` tab in an advanced check.
* Resolve warnings and cleanup whitespace/formatting.
* Make Color_RGBA8 constructing function because... platform differences...
* Function name clarification.
* Remove default color conversion, reference default colors directly in CosmeticOption initialization.
* Add check for Randomizer folder existing, and creating it if not, to plando window.
* Changed seed list population to just bail if the Randomizer folder doesn't exist.
Added button disabling to prevent crashes loading or saving empty structures.
* Remove unused headers
* Move all "ResourceMgr_" functions to a new file
* Don't transitively include SaveManager
* Move cvar prefixes to a new header
* Add missing includes
* Update OTRGlobals.cpp
* Fix build
* Address review
* Fix some of the errors
* Update gameplaystats.h
* Update z_en_in.c
* Hopefully fix the linux issues
* Fix Linux issues for real this time, I checked
* Update ResourceManagerHelpers.cpp
* Update z_obj_mure2.c
* Post-merge fixes
* Fix build (hopefully)
* Post-merge fixes
* Update z_file_nameset_PAL.c
* cleanup some unnecessary headers (#7)
---------
Co-authored-by: Archez <Archez@users.noreply.github.com>
* Fix skipping Adult Ruto one-point cutscene
* Kill Ruto's actor instead of leaving her to swim up
* Change to Story cutscene
* Change to extern function
* Rename entrance enums for clearer location by name.
Change entrance name strings to be clearer for single-entrance tracking.
* Rename grotto macros to remove "RANDO", and move them to `randomizerTypes.h` for use elsewhere.
* Add entrance enums to rando's entrance.cpp.
Rename a couple RandomizerRegions for consistency.
* Swap entrance ids to enum values in rando's entrance.cpp.
Few more renames for clarity and consistency.
* Adapt entrance tracker to utilize new names and only display original source and substituted destination.
Few more renames for consistency.
* Missed a space in the tracker output.
* Restore pre-digit names of some enums, name great fairies more consistently.
* Disable all warnings, even in release, on the `src` directory.
Resolve math macro duplication warnings.
* Suppress LUS warnings.
* Modify it to utilize a variable that defaults on but can be specified in command line to disable it.
Prevet total compile option overwrite for LUS.
* Remove unnecessary unset and cache parameters.
* Document warnings flag in BUILDING.md
* Change CMake process to copy assets necessary for OTR creation to VS run directory.
Remove reference to ExtractAssets target from Windows build instructions.
* Unify build instructions where appropriate across PC platforms.
Clarify commented parts of some commands.
* PR feedback.
* Adds 2 new Hooks, OnTimeStamp and OnPlayerHealthChange.
* Re-add Timesplit code
* Committing custom Assets
* Commit Asset definitions
* Adding Windows
* Fix Modal Window and others
* Time Splits v2 new Hooks etc.
* Fixing Time Displays
* Adding Big Poe split
* Update Options Tab
* List Preview and Removing Split Entries
* Allow Split Table to resize
* Fix Window Color and Adding Non Items to Split List
* Correct Song Image Skew
* Add freeze timer hook for Gold Skulltula collection
* Remove unused player references
* Replace magic number text IDs
* Separate hook for freezing player on token collection
* Revert one unintended change
* VBify poe collector giving for rando.
* Forgot an include.
* Further refinement so all the action happens in the handler. Virtual full restoration of vanilla code flow.
* Restored 1000 point messages before rando item give.
* Cleanup redundant GI Should call.
* Fixes Mirror Shield and MS sheath
* Added Hookshot Tip&Chain and more edge cases
* Update presets.h
* Revert "Update presets.h"
This reverts commit 95d952ba23.
* More fixes
Bow showing up for slingshot gallery minigame is now fixed, as well as a rouge instance shrinking links hand when I didn't mean for it to
* CVar stuffs
* Fixes
* Fix more sheath stuff and bgs hand
* Add the P
* Add logic to turn off lens effect when replacing it on a button with another item, but not swapping.
* Swap to real fix for dpad equips bug, c/o Rozelette.
* Add names to start of typedefs
* Idle stuff
* 2 functions
* Player state flags
* Name functions + misc
* ActionChange => ActionHandler
* Some player unks
* More player unks
* Header misc
* Misc
* More misc
* Player Actions
* Missed comments
* Move ship specific stuff
* Fix build
* CsCmdActorAction to CsCmdActorCue
* Fix build
* Config migrator to handle CVar macros/sections, as well as a few other changes since MacReady.
* One more round of cleanup.
* Move config migrators above SetupGuiElements to allow for migrated window variables to register before windows use them to determine visibility.
* One more.
* Adapt DpadEquips, NavOnL, and PauseAnyCursor CVars to accommodate Pablo moving them to enhancements.
* Segregate count-injected item get messages by type
* Move item count messages submenu up next to Items submenu
* Rectify presets
* Oops - deleted a comma by mistake
* More Mweep
Adjusted the "King Zora Speed" timesaver enhancement to allow for slowing the animation down.
* [Fixed] Crashing when applying preset settings
Adjusted presets.h to expect a float instead of an integer for the "MweepSpeed" timesaver enhancement setting.
* Cleaning some things up
Deleted an unnecessary line, and switched the "King Zora Speed" option back to multiplier display instead of a percentage.
* Update SohMenuBar.cpp
Switched back to multiplier display
---------
Co-authored-by: Malkierian <malkierian@gmail.com>
* Correct behaviour of text speed enhancement
The text speed enhancement increases the size of the text crawl in the number of characters displayed in each step. This messes up certain parts of dialogue that were meant to be displayed in a certain way (like Ganondorf's "Heh heh heh..."), and in places where the text crawl is meant to be slower than normal, it just looks clunky. The text crawl speed enhancement is a wonderful feature, but smoothing out should be easily doable, and is a more correct implementation.
* Fix text speed for normal text
* Flatten if statements
* Improve check tracker performance.
* Fix vanilla saves getting randomizer quest assignment.
Fix trying to load blank data blocks from save file.
Prevent writing randomizer block, even if empty, when save type isn't rando.
* bring over framebuffer effects methods
* Implement framebuffer capture and drawing for pause menu
* revert hookshot and title cards to draw using original buffers
* remove old game over crash fix
* Adjust mirror mode handling for kaleido
* Avoid flashing the hud when pausing
* Added Project Overview to README
This is a couple additional lines of text clarifying the high-level structure of the project, mostly for the benefit of anyone new joining the project.
* Added "Further Reading" section
Points out and lists the contents of the "docs" directory for ease of access to the documentation therein.
* Allow for User Selected Enemies for Enemizer
* Updated CVar Entry List
* ImGui Cvar Updates
* GetSelectedEnemies Cvar Update
* Populate List if empty and if menu selection changes for Enemy Randomizer/Enemy List
* for loop for Menu Bar cvars, added enemyNameList table to get actor names
* Update variable for macOS/Linux
* Alphabetical Order you say?
* Add support for multiple areas in regions and locations and remove impa's house shuffle limits
* Spelling corrections
---------
Co-authored-by: Malkierian <malkierian@gmail.com>
Co-authored-by: Malkierian <malkierian@live.com>
* preparatory clean ups
* structure done, but failes to generate
* fix the bugs, but triple seed gen time on the benchmark
* fix massive generation time increases
* Remove sphereing when not needed as an optimisation
* post merge fixes
* reset the current sphere when toggling an event to cover another cause of jank
* address reviews
* Convert ocarina buttons & skip scarecrow song to VB
* Move most of boss rush & rupee/key counters to VB
* Move BossRush_HandleCompleteBoss to VB
* Convert boss timestamps to VB
* Move being able to open doors to VB
* Convert Entrance_OverrideWeatherState to VB
* Move boss souls to hook_handlers.cpp
* Update hook_handlers.cpp
* Move infinite upgrades to hook_handlers.cpp
* Move skeleton key to hook_handlers.cpp
* Move swim and child wallet to hook_handlers.cpp
* Move ganons boss key to hook_handlers.cpp
* Move triforce hunt to hook_handlers.cpp
* Move randomizer sheik spawn to hook_handlers.cpp
* Update BossRush.h
* Convert spoiling items to VB
* Move load game stuff to hook_handlers.cpp
* Move warp song handling to hook_handlers.cpp
* Convert being able to play bowling to VB
* Move shooting gallery man handling to hook_handlers.cpp
* Move spirit temple silver block removal to hook_handlers.cpp
* Fix build
* Move last beehive stuff to hook_handlers.cpp
* Fix build
* Add VB_CLOSE_PAUSE_MENU
* Add VB_BE_ABLE_TO_SAVE
* Add VB_RENDER_YES_ON_CONTINUE_PROMPT
* Add VB_SPAWN_BLUE_WARP
* Add VB_BLUE_WARP_ADULT_WARP_OUT
* Add VB_BG_BREAKWALL_BREAK
* Convert Saria stuff to VB
* Remove now unused check
* Add VB_GANON_HEAL_BEFORE_FIGHT
* Update hook_handlers.cpp
* Fix blue warp offsets
* Fixes from review
* Improve documentation
* Update BossRush.cpp
* Fix my stupidity
* Fix#4327
* Update hook_handlers.cpp
* Fix blue warps
* Use ultralib types & clean header
* Replace options amount macro with BR_OPTIONS_MAX
* Remove unused includes
* Remove accidental line doubling
* Tweaks to boss rush (#6)
* Update GameInteractor_HookTable.h
---------
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* Adds in-game display of certain rando collectibles.
Before, these were only available through the Item Tracker ImGui Window. With this commit, they can be accessed via holding C-Up on the Map Screen. Currently I've added Greg and Triforce Pieces (when applicable) to this menu. Boss Souls, Ocarina Buttons, and eventually Silver Rupees will be added later.
* Adds ocarina buttons to in-game display
* Initial pass on rendering the text on a black background.
* Starting to render boss soul icons
* Better alignment and rendering of Boss Soul icons.
* Adds icons prefixing the list entries.
* Switches boss souls to 32x32 icon.
* Partially working Matrix/Vtx implementation
Currently hardcoded Greg text, replacing map screen completely.
* Now rendering properly thanks to Archez!
* Better implementation of accessing the new page.
- now attached to Quest status instead of Map
- now triggered by a toggle instead of holding a button
- now has its own background (temporarily save screen but will be replaced with something custom later)
* Make KaleidoEntry's reactive to game state
Adds Greg proper and Triforce Hunt to the Misc. Collectibles Page.
* Conditionally render Triforce Hunt
* Documentation/Cleanup
* WIP Ocarina Buttons rendering
* Working ocarina buttons display
* Renders buttons as Gray instead of using Grayscale
This may seem inconsistent, but with Grayscale they technically render as different shades of gray, especially with custom cosmetics. With this they now render as the same shade of gray.
* Makes Ocarina Icon gray when no buttons have been collected.
* Adds Boss Souls.
Currently they run off the menu, need to implement scrolling.
* Implement Scrolling for the menu.
Need to figure out how to throttle the stick inputs still.
* Moves input handling to draw function.
I hate it but that's how Kaleido does it and there's some input throttling logic in there, so in order to make this feel like a kaleido menu I have to also handle input in the draw function.
* Removes custom cosmetic handling of Ocarina Buttons.
I've chosen not to respect the cosmetics for the sake of accessibility
and color contrast, but the code is still present and commented out in
case we want to reverse that decision.
* Hopefully fixes mac build errors.
* Implements update function via Hook.
* Another mac fix hopefully
* Cleans up unused code from the rectangle based attempt.
* Clean up more unused code
* Commit Boss Soul icon
* Fix typo
* Remove commented code
* Improve toggle functionality
* Re-introduce cosmetic matching for ocarina buttons
* Revert some unnecessary formatting changes
* Fix cursor/page turning issue
More improvements to come here (drawing arrows, custom text at the bottom, etc.)
* Fix some more formatting changes
* One last batch of formatting reverts
* actor breaking
* should be VB fishing
* attempt to VB fisherman
* commit fishing hell for review of VB viability, untested
* fix rando, vanilla still broken. close enough
* wait i forgot to remove that
* small fix
* Doodongs Cavern
* rewrite MQ DC Logic
* forgot some cleanup
* remove an unused region
* post-merge cleanups
* change CanUse for HasITem on gorons braclet
* git ate half the rewrite
* more small error fixes
---------
Co-authored-by: aMannus <mannusmenting@gmail.com>
* Fix crash in fishsanity's flag set handler.
Code format cleanup.
Fix typedef warnings in fishsanity.h.
* Actually fix the crash now.
* Relocate RCTYPE check for broader application.
* Format shops.cpp
* Add 5, 6 & 7 item shopsanity
* Guarantee a bombchu refill
* Fish first shop item index
* Clean up NonShopItems
* Split count options
* Improve item ordering
Ensure potions, blue fire and fairy on shopsanity 6 and less.
There are no hearts in the first 28 items (the ones from n64 rando).
* Post-merge fixes
the previous all loaches logic required modifying every `isLoach` check
throughout the file. this had the benefit of allowing live-toggling all fish
to be loaches or not, but added a lot of complexity.
this changes the logic to just set `isLoach` on each fish instead, and updates the tooltip to note an area reload is required
* Move Fishsanity hooks out of mods.cpp
* Assign fish check flags.
* Clean up location_list for fish
* Prevent fishing from giving double items.
* Remove no-longer-used mPendingFish
* Override draw function for fishing
This allows the draw functions in the source
overlay to match the decomp.
* Override draw function for EnFish
* Overwrite grotto fish params based on respawn data
This allows the randomizer to identify them
automatically without any special logic.
The catch (pun not intended) is that grotto fish don't respawn,
and they were previously identified for such by a params value of 1,
so the logic to take care of that needed to be duplicated.
Thankfully it wasn't very much.
* Add a VB for catching actors in bottles.
* Clean up remaining code after conversion to VB
This breaks fast FastDrops for bottle pickups, though
readding it shouldn't be too hard with the VB hook.
* Remove fishsanityParams from Fishing
It was previously used to track exactly which fish would be
released after a catch, but since both candidate fish
would've been caught, they both wouldn't give checks
anyways.
* Update soh/soh/Enhancements/randomizer/hook_handlers.cpp
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Re-add FastDrops for bottle pickups.
While this does diverge from the vanilla decomp, I'm uncertain of
the order that hooks are run, so I put it back into z_player.c
just to be safe. A future commit can do a more proper implementation
using VB hooks.
* Move initialisation of fishsanity hooks into hook_handlers
* Change location constructor to take RandomizerInf instead of uint8_t
This shouldn't have an effect as-is, but other changes can add
additional randomizer flags that can end up pushing fishsanity check
flags out of the range of a uint8_t, causing the cast to overflow
and not be stored correctly. With this change, it could still overflow
when writing to the flag field of Location, but said field is unused
and the parameter is really only for setting the flag for the
SpoilerCollectionCheck.
* Render uncaught overworld fish as randomized item
* Fix windows build by zeroing unused field
* Fix scene parameter type
This resolves a build error on Mac and Windows, but Linux
instead buries it in the sea of warnings, meaning I can't
see it until it fails CI.
---------
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Remove categories
* Remove SpoilerCollectionCheckGroup
* Remove unused Location constructors
* Remove LocationType
* Remove unused SpoilerCollectionCheckTypes
* Remove hints' isVanillaCompletion, it's always false
* Remove SpoilerCollectionCheck::None
Same effect as default constructor
* Fix mistake
* Update location.h
* Deduce RC Area by scene when possible
* Remove useless constructors
* Remove flag in most situations
* Format improvements
* Replace overworldLocations with a function
* Replace shopLocationLists with a function
* Replace gossipStoneLocations with a function
Also add a new RCType for static hints
* Replace scrubLocations with a function
* Replace staticHintLocations with a function
* Replace overworldFishLocations with a function
* Replace pondFishLocations with a function
* Remove RC_TRIFORCE_COMPLETED from GetOverworldLocations
* Update fill.cpp
Re-add filter for dungeonLocations for song shuffle dungeon rewards (and fix erroneous check for song locations there).
Modify songLocations filter for dungeon rewards to check for RCTYPE_BOSS_HEART_OR_OTHER_REWARD and then the two song locations added for it.
* Update fill.cpp
Fix bracketing.
* Apply Pepper0ni's patch
---------
Co-authored-by: Malkierian <malkierian@live.com>
* Change tristate off graphic to none instead of X to avoid confusion.
Modify Combobox and Slider Options to clamp directly to options.size() - 1 instead of just decrementing if current value is higher than max.
* Restore RenderCross line, but commented out.
100 GS Reward was missing from RSK_GANONS_BOSS_KEY causing indexing issues. Notably, Triforce Hunt was setting Ganon's Boss Key to "Vanilla" rather than "Triforce Hunt."
* Move all `SaveContext` operations to `Logic` to prepare for encapsulation.
* Rename `Area` to `Region`, `areaTable` to `regionTable`, and all local variables named variants of area to region that were of the `RandomizerRegion` or `Region` types.
* Fix mistaken renames.
* Rename PT_AREA_RESET to PT_REGION_RESET after rebasing on performance timer commit.
Change include path for the timer to absolute rather than relative.
* messy first implementation, pushing for verification
* push to test other platforms, add benchmark preset
* more other compiler fixes
* Finish implementing benchmarks
* forgot to reset the timers each run
* do it better
* move timers to thier own file
* forgot to add files
* Update check status in the check tracker to the new system. Status and Skipped are now stored in ItemLocation, though still saved separately in the trackerData section.
* Fix shop checks not showing prices when identified.
* Patch fix for check status bleed.
Some cleanup of unused code.
* Small tracker optimizations.
* Fix check hiding.
* Bit more cleanup.
* Unhide the filter and make it work again...
* Fix area totals tracking.
Fix skipped status saving.
* Merge conflict cleanup.
* saving for branch change
* V0 doesn't work
* crashing in random places halp
* push to rebase
* commit for branch change
* more branch switching
* First apparent working
* fix entrence validation
* comment cleanups
* post merge fixes
* Fix entrences not validating when spawns/owl drops are on but other entrences are not
* remove bombchusFound from the struct too
* Fix issue causing improper bombchu filtering on the playthrough
* text fixes
* submodules pls
* submodules pls pt 2
* Restore Deku Tree open as adult with dungeon shuffle.
* Add Mido spawn VB to allow for preventing Mido moving in rando when starting with Zelda's letter and closed deku or forest.
* Use RAND_GET_OPTION instead of OTRGlobals rando context, get rid of IS_RANDO in deku mouth VB handler.
* Removed all CVarLoad uses from code to prevent thread concurrency issues.
* Add mutext locks to save and load functions to prevent concurrent operations between those two.
* Converted all GuiWindows to the new separate Begin/End format in current LUS except InputViewer, CheckTracker, ItemTracker and Modals.
* Setup Check, Entrance, Item trackers and Input Viewer to override `Draw()` to bypass the ImGui Begin and End, as they're not intended to go in the modern menu.
* Cleanup.
* Add git info to title screen & gameplay stats
* Change the branch criteria to starting with `develop`
* Update z_title.c
* Change the branch criteria to not having a tag
* Always show both when not a release build
* Only show build version in tagged releases
* Additions for the German currencies in randomizer.cpp
* Additions for the German translation in hint_list_exclude_dungeon.cpp
* Fixes for the German translation in z_select.c
* Fixes for the German translation in z_select.c
* Additions for the German translation in hint_list_exclude_overworld.cpp
* Initial Bombchu rework implementation
* Finish bombchus in logic overhaul
* address reviews
* Post resolution fixes
* fix git being dumb
* Readd Child Wallet To Bombchu Bowling Logic
* post merge fixes
* fix some oversights in bombchu shopping logic
* doesn't work, linker errors
* cleanup old reviews
* Make it build, likely broken by VB
* attempt to fix carpet man second purchse text
* commit to change branch
* mostly have carpet guy working
* badly fix carpet salesman
* fix better bombchu shopping
* fix bombchu drops
* remember you need bombchus in inventory to get drops
* Address reviews
* post-SCL clean up and redo the bombchu ammo logic to apply better to the spirit edge case
* fix oversight which could have allowed for bombchus to logical exist when they shouldn't
* Remove special bombchu playthrough checks which are causing bugs and no longer needed
* fix Slingshot logic reset
* Convert helpers I touched into CanUse and HasItem
* last cleanups
* Additions for the German translation in hint_list_exclude_dungeon.cpp
* Fixes for the German translation in z_select.c
* Fixes for the German translation in z_select.c
* Additions for the German translation in hint_list_exclude_overworld.cpp
* Additions for the German translation in hint_list_exclude_dungeon.cpp
* Additions for the German translation in hint_list_exclude_overworld.cpp
* Fix tricks not getting disabled by button click.
* Fix area trees not collapsing on enabled side of tricks list.
* Fix difficulty tag button order for Linux.
* Fix Collapse All, Open All, and Disable All.
Prevent Disable All from disabling all despite areas being collapsed.
* Fixes for the German translation in randomizer.cpp
* Fixes for the German translation in hint_list.cpp
* Fixes for the German translation in item_list.cpp
* Fixes for the German translation in z_message_OTR.cpp
* Fixes for the German translation in randomizer.cpp
* Fixes for the German translation in randomizer.cpp
* Additions for the German translation in hint_list_item.cpp
* Fixes for the German translation in item_list.cpp
* Additions for the German translation in hint_list_item.cpp
* Additions for the German translation in hint_list_item.cpp
* Fixes for the German translation in item_list.cpp
* Additions for the German translation in hint_list_item.cpp
* Fixes for the German translation in item_list.cpp
* Fixes for the German translation in item_list.cpp
* Fixes for the German translation in item_list.cpp
* Fixes for the German translation in hint_list_item.cpp
* Fixes for the German translation in hint_list_item.cpp
* Fixes for the German translation in hint_list_item.cpp
* Fixes for the German translation in item_list.cpp
* Fixes for the German translation in item_list.cpp
* Fixes for the German translation in hint_list_item.cpp
* Fixes for the German translation in item_list.cpp
* Fixes for the German translation in randomizer.cpp
* Fixes for the German translation in item_list.cpp
* Fixes for the German translation in hint_list_item.cpp
* Fixes for the German translation in item_list.cpp
* Fixes for the German translation in z_message_OTR.cpp
* Fixes for the German translation in z_message_OTR.cpp
* Additions for the German translation in item_list.cpp
* Fixes for the German translation in item_list.cpp
* Fixes for the German translation in hint_list.cpp
* Fixes for the German translation in hint_list.cpp
* Fixes for the German translation in randomizer.cpp
* Fixes for the German translation in hint_list_item.cpp
* Fixes for the German translation in hint_list_item.cpp
* Fixes for the German translation in item_list.cpp
* Fixes for the German translation in item_list.cpp
* Fixes for the German translation in randomizer.cpp
* Fixes for the German translation in randomizer.cpp
* Fixes for the German translation in randomizer.cpp
* 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).
* p
* Missed the prefix renames.
* More missed ones.
* Mostly finished cleanup.
Removed a few CVars and some related functionality.
* Bit more (prepping non-existent title card color editing).
* Resolve gCrowdControl.
* Final cleanup.
* Universal constant, not acceleration...
* Preset CVars.
* Incorporate LUS CMake CVar system.
Customize all LUS CMake CVars to align with plans for preset system.
Swap "gOverlayFont" usage back to LUS CVar macro.
* Change CMake sets to use the cache to allow for including LUS's file for the add_compile_defines and remove the duplication on SoH's side.
* Move SoH CMake CVars to `soh-cvars.cmake` for clarity.
* Hint text refactor WIP DOES NOT BUILD
* Update to show people DOES NOT BUILD
* stuck on wierd errors
* forgot to add
* expression error does not name a type
* commit in case anyone looks
* static assertion failed: T must be an integral type or an enum.
* fail without error, complaining about unrefernced things
* fix some issues, still linker bs
* restructure some trials, conditionalAlwaysHints and hint_list stuff
* builds and does not crash, but there's text issues
* fix text issues
* commit to push, halfway through trimming down log
* finish trimming spoiler logging
* post merge clean up
* plando mode seems to work, looking into song text wierdness
* push for debugging crash on HBA sign
* fix num and anju issues
* fix the damn sign
* Fix Windows build
Renames GetMessage to GetHintMessage (a different name could be chosen, but GetMessage conflicts with a macro in winuser.h)
Changes uint to size_t, uint does not seem to exist on Windows.
* fix biggoron
* remove some manual formatting that autoformat doesn't like
* fix some altar text
* fix more altar text
* last cleanup
---------
Co-authored-by: Christopher Leggett <chris@leggett.dev>
* Fix hint generation bugs on develop-rando
1. Fixed Ganon Non-hint text from loading as Saria's Magic Hint.
2. Fixed Ganon Non-hint text from not getting saved correctly.
3. Fixed gossip stone hint generation from not generating any non-always hints on No Logic.
For #3, the hint distribution and placement algorithm was bailing out too early when it wasn't able
to place a hint. For No Logic, what it was doing was failing to place WOTH hints (since No Logic seeds
don't calculate WOTH candidacy), returning the amount of hints it failed to place, and then it called
the function to redistribute the hints, but did not call the function to attempt to place the remaining hints.
Additionally, it was not accounting for the fact that we shouldn't redistribute the hints into the categories we failed to
place a hint in, so it would redistribute hints right back into those categories. I changed it so that when DistributeHints
gets called after PlaceHints fails to place the hint, it checks if the distribution settings copies attribute was set to 0.
In this case, it breaks while looping for the type distribution settings, and moves on to the next category. Also, it now repeatedly
attempts to distribute and place hints until PlaceHints returns 0 (meaning it placed all of its hints successfully).
* Fixes some further seed-bleed type issues with hint generation.
* Standardized CVar macros to have `CVAR_` at the front instead of the end.
Removed excluded and replaced sequence macros.
* Missed a few developer CVars outside of `SohMenuBar.cpp`
* 1 more.
* Add all macros.
Replace all randomizer seed setting CVars with appropriate macro.
Cleaned up non-gameplay-critical things that are part of Spock Race rando presets (like RTA timing, displaying timer, displaying the glitch lineup tick, or Fast File Select).
* Wrong slash...
* Fix DEVELOPER_CVAR macro.
Add GENERAL_CVAR macro.
* Change Item Tracker CVars, including open window CVar.
* Swapped open window CVars.
* Swapped Entrance Tracker CVars.
* Swapped Check Tracker CVars.
Changed Item Tracker "HudEditMode" to "Draggable".
* Renamed `RANDOMIZER_CVAR` to `RANDO_ENHANCEMENT_CVAR`.
Swapped rando enhancement CVars.
* Mirroring last commit from part 1 in randomizer.cpp
* Another mirror from pt 1
* Add console commands for randomizing sfx and cosmetic groups
* Update naming and use constexpr
* Update soh/soh/Enhancements/debugconsole.cpp
---------
Co-authored-by: Archez <Archez@users.noreply.github.com>
* Add all macros.
Replace all randomizer seed setting CVars with appropriate macro.
Cleaned up non-gameplay-critical things that are part of Spock Race rando presets (like RTA timing, displaying timer, displaying the glitch lineup tick, or Fast File Select).
* Wrong slash...
* Forgot "gManualSeedEntry".
* Renamed CVars from "Mq..." to "MQ...".
vb treasure chest game added new RCs for the treasure chest game (now there are RCs for each of the 5 keys and each of the 5 non key chests), but the location area table only had the keys, this adds the items
* Clean up grayed out items in file select.
Tie personal notes saving to `OnExitGame()` to account for save scum resets.
Hide text input box (but not window) for personal notes when a save isn't loaded to prevent saving over a save's notes while in file select.
* Allow check tracker window to be visible and show the "Waiting for file load..." text in file select (ease of positioning).
* Fix key label text placement.
* Persist `areasSpoiled`, change trigger to `OnSceneTransition`.
Add `IsAreaSpoiled` for tie-in to Item Tracker.
Add `SetAreaSpoiled` to unify bitmagic.
* Add proper spoiling evaluation based on specific entrance IDs, or first check collection.
Add light yellow color for vanilla dungeon abbreviations to match the purple for MQ.
* Initialize `areasSpoiled` to 0, so 0 gets saved on file create.
* All new conditional statements around `GameInteractor::IsSaveLoaded()` were inverted. Fixed that.
* Change some c-style casts to `static_cast`.
* Few more cleanups, plus clarifying comment.
* vb bombchu bowling
* don't need it
* it's drawing the right thing but it's tiny
* scale
* no need to should, don't rescale every draw
* slightly safer
Due to a typo a few months ago, it was accidentally being ignored and
treated as Anywhere. Own Dungeon may have also been doing weird things,
but I'm not entirely sure.
* Add `SohModalWindow` and `SohModal`. Runs as window, always "visible", but not drawing if no popups are registered.
Adds error catching for save file corruption (malformed json) that renames the file in question to prevent future loading issues and uses `SohModalWindow` to inform the user of the error.
* Apply suggestions from code review
---------
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* we crash if we try to SPDLOG in the destructors
* rip em out
* newline
* add to destroy
* Revert "rip em out"
This reverts commit 738a9b80f3.
* Revert "we crash if we try to SPDLOG in the destructors"
This reverts commit 327d305e00.
* animation
* playeranimation
* stop putting things in the LUS namespace from SoH
* get all the factories out of the namespace
* LUS::
* start on scene command stuff
* i think that's the rest of scene
* reduce copypasta
* collision header
* skeleton
* skeletonlimb
* fix
* path
* cutscene
* text
* audio sample
* sound font
* audiosequence
* background
* Revert "stop putting things in the LUS namespace from SoH"
This reverts commit 0ead6056e6.
* namespace shanans
* wrap all factories in namespace soh
* it's trying to link now
* lus
* scene command override etc
* fix audio loading
* slightly less logspam
* get past the cutscene problem
* in game!
* exporter cleanup
* more exporter cleanup
* clang formatted lus
* msvc
* itny lus change
* variant
* formatty
* fix of some sort i guess?
* use latest lus main
* fix name to enum/factory mapping
* otrexporter
* Moves personal notes to the save file under a new itemTracker save section.
* Update soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp
---------
Co-authored-by: Archez <Archez@users.noreply.github.com>
* Adds the Keese and Guay don't target you cheat
that makes keese and guay ignore you as if
you are wearing the skull mask
* changed instances of CVar_GetS32 to CVarGetInteger
added the cvar to presets.h
---------
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* start on arch
* noconfirm
* git
* noconfirm
* just skip cache
* cmake
* ninja
* gcc
* lsb
* sdl2
* png
* sdl net
* boost
* imagemagick and add opensuse
* non interactive
* git
* cmake
* add a bunch
* things
* more
* try to matrix
* soh otr i guess
* needs
* trying to figure out how matrix include works
* make the matrix?
* matrix debug
* install?
* echo?
* yuck
* cannot locate package false
* parens for good measure
* lsb
* libsdl2
* suse
* i forgot opensuse uses gcc-c++ instead of g++ for the package name
* png
* sdl
* more
* suse packages....
* fedora cmake
* 2?
* png
* handle old sdl2 net
* apt
* not sure if this is a problem for both clang and gcc on opensuse or just clang
* devel
* cmake min version
* def don't want this here but it's here for now
* does this do anything
* mantic because cmake version
* libopengl?
* fedora ninja
* fedora g++
* lsb
* fedora sdl
* libpng
* do a build
* clang fix
* give early returns values
* ImageMagick
* Update BUILDING.md
* something
* plain boost instead of devel?
* not packing so we don't need this part
* base?
* don't have it can't need it
* just use boost download on opensuse i guess
* move workflow
* bring back the file
* lus main?
* detach
* Add a link to ship.equipment to the CRC error message box during extraction
* Improve message and add to ShowCrcErrorBox
* Change 'known good roms' to 'known compatible roms'
* Fix resetting button icon colours in message boxes.
* Fix type/math error for custom color in textbox icon pulsing.
* Fix type error for custom color in ocarina icon pulsing.
* Make custom env colour math more closely match vanilla equivalents.
* Make comments presentable.
* Move input viewer into SoH
* Remove unnecessary comments
* Update button outline mode to match default viewer
* Fix ambiguous call
* CVar name changes and minor fixes
* Two more cvars
* Separate C-buttons into individual toggles
* Account for text height regardless of scale
* A few extra comments
* Use new LoadTextureFromRawImage to load layer textures
* Adds a MessageViewer window to Developer Tools.
* Properly destroys message viewer window.
* Adds missing ImGui::End()
* Fixes an oopsie crashing non-windows builds after first run.
* Adds C ABI for displaying a custom message
* Fixes a crash and an issue with messages with SFX.
* Remove some osSyncPrintf's that aren't very useful for this case.
* Make rando final eban cost 99 and clean up Text IDs
* Remove Text ID changes
* Add french translation, All credit to Purple hato
Co-authored-by: Purple Hato <linkvssangoku.jr@gmail.com>
---------
Co-authored-by: Purple Hato <linkvssangoku.jr@gmail.com>
* initial support for mixing boss entrances in the mixed pool
* support decouple for boss entrances
* missed decouple change
* add blue warp exits to boss rooms in location access
* add entrance get helper methods
* fix assumed targets not using root in entrance name
* add dedicated blue warp entrances and handle blue warp changes during generation
* change bluewarp handling in game to use unique blue warp entrances
* handle blue warps in entrance tracker
* fix overriding all jabu and water temple rooms
* fix grotto returns when exiting boss rooms/dungeons
* fix blue warp logic by tracking original connected region key
* use entrance enums
* remove unneeded entrance values
* fix decouple generation crash
* fix jabu mq backwards logic
* Pause Warp Enhancement
This commit introduces the PauseWarp mod, a feature that allows players to warp to different locations in the game directly from the pause menu.
- Add PauseWarpState structure to manage flags and cooldowns for the pause warp feature.
- Implement IsStateValid function for state validation.
- Implement ResetStateFlags function to reset all state flags to default values.
- Add InitiateWarp function to handle the initiation of warp sequences.
- Implement HandleWarpConfirmation function to confirm and execute warp actions.
- Implement HandleCooldowns function to manage various cooldown timers.
- Add PauseWarp_Main function as the main logic, called every frame to handle pause warp functionality.
- Map warp song messages to in-game text messages.
* Warp Song Check
-Now if you do not have a warp song you won't be able to select the empty slot and still teleport.
* Added Audio Fanfares and Changed stateFlag1 to PLAYER_STATE1_IN_CUTSCENE
-When selecting a warp song the audio for the applicable warp song will now play for a extra vanilla feel.
-Changed the stateFlag1 because previously it just disabled input allowing enemies to harm you. Now that won't happen because the game is put into a cutscene state.
* Feedback Update
-A new hook was created 'OnPauseMenu' so now PauseWarp_Main is only called when the pause menu is open
-Moved pauswarp.c to the Enhancements folder
-Removed from graph.c
PR Change:
Changing to the main branch instead of sulu
* Feedback Update #2
-Introduced new function 'PauseWarp_Idle' now that 'PauseWarp_Main' is no longer called every frame
-Added C wrapper to access 'GameInteractor::IsSaveLoaded' and scrapped the 'IsStateValid' function
-Added 'PauseWarp_Idle' to the the 'RegisterPauseWarp' function
-Refactored the code some
* Linux Compile Issue
-Added a missing header that was causing a compile issue for linux
-Hopefully, it won't crash
* Minor Bug Fix
-Now link won't get soft locked when warping to the same location twice
* Update libultraship
* Revert "Update libultraship"
This reverts commit 746fc23479.
* Bug Fix
-Added more checks to ensure vanilla behavior when a Ocarina is not in the players inventory.
* WIP
* Done unless I'm missing headers
* now we done
* clean up, these arn't needed anymore
* Rename OnPauseMenu to OnKaleidoUpdate
* cache vcpkg on windows ci
* try sccache as variant
* missed a spot
* see if we're checking here
* does this do it?
* trying to make minimal changes and have this work
* hopefully these z7s do something
* we were almost at the max already bump to double
* Apply suggestions from code review
* sc
* latest from soh-macready branch of otrexporter
* Hookshot, Hammer, & Boomerang
* Added the remainder of equipment and DL Patching for hands
* Removed Mirror Shield Patch
Messed with the front texture of shield
* Child Hylian Shield Cheat
Adds a cheat that allows Child Link to hold Hylian Shield as adult. Added to this since it uses the same way to render the shield
* Debugging
* Adds Scaling to Child Link with Adult Equipment
* Fix Merge Conflict Blunders
* More cleanup
* Added Scaling checkbox and some clean up
* Added an || ITEM_NONE
* More cleanup and simplification
* Accidently added spacer
* Replace B_BTN_ITEM
* Spacing
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Added most sheath functionality
* Updated tooltips
* removed child hylian shield and tweaked bow/slingshot
Made child hylian shield cheat into a separate branch and hooked into existing bow/slingshot enhancement for drawing those
* Prefixes
* ()
---------
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* First commit
* Reverted MODDING.md
Reverted a correction to MODDING.md (case-sensitive broken link?) as this is not a change related to this PR
* Delete CMakeSettings.json
Deleted CMakeSettings.json as this is not a change related to this PR.
* checks for cosmetic changes ONCE for both body and sparles
Please review carefully. I made these changes blindly as I figure out why I can't compile it in my machine anymore. Sorry!
* correctly updates OUTER color when it's changed in Cosmetics Editor
* Update soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp
* Update soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp
* Update soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp
* Update soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp
* Update soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp
* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c
* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c
* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c
---------
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* H & L
Adds an H and L for Hookshot and Longshot to be able to tell more clearly which one you have.
* Added Toggle and Refined
Adds a toggle if players don't want it on. Also scales the letter to stay constant with the icons, both size and position. Also now hides the letter if you don't have a hookshot yet.
* Clean up some of the comments
* prefix
* Each Heart Container or full Heart Piece reduces Links hearts by 1
* Based on Briaguya's suggested Code but modified slightly as some parts were missing.
* Static Bool
* The episode without Captain Hook's Hook
---------
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* Menu options, note speed, unlimited playback time
* Instant win
* Add custom ocarina game cvar to all options and presets
* Extra spaces
* Add starting note count, ending note count by round, more presets
* Block out vanilla code + comments
* finish blocking out vanilla code
* new documentation formatting
* add starting notes to randomizer preset
* CVar, presets, custom message, fishing actor
* Add placeholder translations for French/German
* Fix for MS Shuffle change
* Rename function to match
* Missing comma in presets
* Change description, CVar name, add'l function name, edit custom message
* Actual whitespace fix
* re-order custom message
* Fix message formatting
* Add enhancement comments
* yeet if (play) {} from enhancement
* new documentation format
* Add CVars for swimming, apply to swim speed calc
* Prevent modifer from working underwater
* Re-enable swim speed mod when underwater, use new (orig) function for y-velocity while diving
* Add to presets list
* Fix spacing
* block out vanilla + comments
* re-org vanilla code block in a sane way
* new documentation format
* rename Surface function + comment for usage
* handle merge conflicts, but like an adult this time
* Adds `FormatLocations` and `PRESET_ENTRY_TYPE_CPP_STRING` to allow for feeding `RandomizerCheck` values directly in presets instead of a string with magic numbers.
* Switch to concatenation with `std::to_string`.
* Forgot to remove <format> include XD
* add map palettes per pulse to leverage shader caching
* use unregister blended with kaleido maps
* use Gfx_TextureCacheDelete for KD lava
* bump lus
* add miss tex clears for KD
* Add Collision Header XML parser
* Update CollisionHeaderFactory.cpp
* Remove "Num" attributes
* Fix crashes
Prevent crash when the camera setting is negative
Change some IntAttributes to UnsignedAttributes
* Add custom text message loading
* Use "override" folder for text mods
* Replace only existing messages
* Use std::find_if to check for existing messages
* Rearrange menus for better layout on smaller screens.
* Automatically calculate +/- increments for float sliders
* Add needed header
* Use stringstream instead of format since apparently most platforms don't actually support all of c++20 yet boooooo
* Add header that only Mac complained about for some reason
* Theoretical performance improvement
* Actual performance improvement
* Update z_fishing documentation from decomp
* undo sCameraAt/Eye rename
* forgot to include these defines Heehee
* adding enums, settings
* adding more stuff back in
* more work
* we're literally typing words into computer
* include unordered map
maybe this fixes mac build idk
* wahoo
* hmm
* add make sure disabled flag gets popped
* poggers in the chat?
* doing some refactoring
* fixing build
* documentation, moving fishsanity instance to rando
* move FS back to context, fixing build, mod progress
since FS is needed during rando generation & provides perpetual info abt. fishsanity in the seed, seems to make more sense if it lives on the context
* moving some stuff around
* it's starting to get real in here
* ELIMINATE FISHSANITYMETA
* IT WROKS
* Update trackers, fix pond fish flagging
* ZD fish shuffle initial checkpoint
* ZD fish "working"
aside from the crashing
* wrapping up
* fix for partial pond shuffle
* remove misc. unrelated debugconsole modification
* updating GI model
* get build working
* add a todo for this
* removeoopsie
* Rework hints a bit
* update hint loc
* Use visual indicator instead of despawning caught fish
---------
Co-authored-by: jordanpg <jordanpg@users.noreply.github.com>
* WIP biggoron and big poes hint
* commit v0 of biggoron and big poes hints
* adjust for settings update
* Add more hints
* Finish extra Basic Static Hints
* remove vestigial code
* Forgot to remove this
* try to fix windows build
* fix build post conflcit res
* remove StaticHintData as redundent
* last cleanup
* reimplement 3drando's hashtag color replacement system.
Also generates merchant text at seed gen time instead of runtime.
By merchants, I mean Bean Salesman, Medigoron, Granny, and Wasteland
Bombchu guy. Scrubs and shops are still dynamic at runtime.
* Improved auto-formatting and fixed altar text.
* Gets hint text for spoiler direct from context.
* Removal of now unused code.
* Change warp song hint generation/retrieval
Generates full warp location text instead of just location names and stores all six in the custom message tables for later retrieval as opposed to dynamically swapping in the location names every time the text is rendered.
* Change Frog Ocarina Game Hint generation/retrieval
Similar to previous changes, removes the on-the-fly generation aspect of it and just generates the full hint text once during seed generation.
* Update soh/soh/Enhancements/randomizer/3drando/text.hpp
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Fix submodules appearing as changed files.
* Fix WOTH/Foolish colors to match develop-macready.
* Fixes backwards colors for area and item in some hints.
---------
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Add right-stick aiming to third-person aim
* Add Z-aiming CVar and inversion to Z-aiming
* Create calculation for rel.right_stick and apply it in Z-aiming
* Move option to First-Person section to match shield
* Fix max/min aiming heights
* Expand min/max + comment
* block out vanilla + comments
* block vanilla code better
* Remove extra space
* new documentation formatting
* rewrite ==0 and !=0
* Convert `Rando::Logic` to a class.
* Readd `LogicReset` as `Logic::Reset` for resetting logic mid-generation-cycle to allow seed generation to actually work.
* Change `IsChild` and `IsAdult` to `CanBe` variants.
* Make it buildable.
* First LogicVar class.
* Revert CanBe changes to Is (adult & child) as I'm no longer sure that it's a good one.
* Update soh/soh/OTRGlobals.cpp
Use existing gRandoContext reference.
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Conflict resolution cleanup (plus removing SaveContext references).
---------
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Adds TrickOption subclass and fills in extra info.
Fills in the extra info from randomizer_tricks.cpp that other Options don't have (hence the subclass for Tricks specifically).
* Uses new definitions of tricks in ImGui menu.
* Removes randomizer_tricks.cpp/h
* Adds new tricks.cpp/h to hold some static data and functions.
* Refactors Tricks namespace into a class with only static memebers and functions.
* Fixes bug with Trick Tag system.
* Fix Fire Temple Boss Door Logic
* Update soh/soh/Enhancements/randomizer/3drando/location_access/locacc_fire_temple.cpp
Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
---------
Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
* Fix the calculation of `areaChecksGotten` to account for flags functionality setting invisible checks.
Change `areaChecksTotal` to dynamic calculation based on tracker visibility, now that all checks are being added to `checksByArea`.
Both are updated in realtime when either "Show all GS locations" or "Hide right side shop items" are toggled.
Reformat all remaining unencapsulated if statements.
* Changed helper variable change and call to `RecalculateAreaTotals()` to when the options are toggled instead of checking every frame.
Removed redundant if...else.
Clarified areaChecksGotten increment/decrement functionality based on current status and incoming status change.
* Removed unused code.
* Should fix seed bleed between multiple saves and loaded spoilers by resetting the Rando::Context before loading a save.
* Only reset for rando saves.
* Add Architecture Priority to Info.plist
This allows the app bundle to be launched natively on Arm without the need for Rosetta.
* Remove arch shenanigans in soh-macos.sh.in
Shouldn't be necessary now...
* Add back launching the binary in soh-macos.sh.in
Accidentally removed launching the binary from the script.
* First dirty testing process
* Forgot a 2 for the second Dlist patching of Shadow
* TWEAK: GI integration
* DEL: Unucessary includes + whitespace
* TWEAK: No stones refactor for now, sorry I'm kinda lazy right now, don't hate me, please! T_T
* Stone removal part 2, sometime I forget to save the changes :derp:
* Tiny last tweaks, hopefully
* Add to rando preset
* Tweak: typo
* TWEAK: Trigger on toggling on/off
* TWEAK: adressed reviews 💯
* Please mate, excuse my British typing
* Simplify item cycling
* Simplify selection variables
* Fix adult bunny hood and gray appropriate items
* Don't go into cycling mode when there's no items to cycle to
* Restore updating c buttons
This was previously done with `Inventory_ReplaceItem` but that led to problems when another slot had the same item as the one that's being cycled.
* Address review
* Update soh.sh.in
Added support for symlinked rom files in linux/appimage script.
* Update scripts/linux/appimage/soh.sh.in
Updated to be less confusing as per Archez
Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
---------
Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
* Fix various randomiser setting bugs
* Fix shuffle entrences metasetting getting locked on per savefile after an entrance rando seed is generated once
* Fixes pressing B on name entry after randomizer quest.
* Reverts to auto parsing previous spoiler file.
Also includes an option to press L to automatically gen a fresh seed. It still does regenerate the old spoiler to regen the hints in the user's current language, but it will now automatically do this instead of requiring dragging and dropping the spoiler every time.
* Fixes bug causing rando settings to come from CVars instead of a spoiler file when a spoiler is dropped/imported on boot.
* Pressing Generate Randomizer in ImGui doesn't use loaded spoilerfile.
* Adds tooltip to Generate Randomizer ImGui Button.
* Advanced Resolution Settings
first working version with most features implemented
* Update advancedResolutionEditor.cpp
Added auto-resizing logic for Pixel Perfect Mode.
Minor fixes.
* Tweaks and tidying up.
Disable integer scale slider if automatic sizing is overriding it.
Don't offer these UI options on Apple.
Removed unused code.
Updated LUS.
* Update libultraship
* Filenames and style fixes
Filenames and folders now more closely match rest of project.
Tidied newlines/comments.
(SohMenuBar.cpp) Label of button changed to fit menu.
(ResolutionEditor.cpp) Default window size improved.
* Update libultraship
(However, I still need to make the GUI controls acknowledge the new constraints.)
* Update libultraship
(and changed the name of some cvars)
* Added constraints to the inputs. Added a fps drop warning.
* Tweaks based on feedback
* Update libultraship
* Enabled on Apple - For currently ongoing Retina DPI troubleshooting.
(Also removed the duplicated N64 Mode toggle.)
* Update libultraship
* Update LUS, update CVar names, small tweaks
And one significant fix: Enhancement checkboxes in ResolutionEditor now default to off.
* Add Additional Settings and the accursed horizontal resolution field.
There's still a few bugs with it that I haven't squashed, but I need to stop for now and just commit what I've got.
(This is honestly causing more problems than it solves, but i'm tired of getting questions about it.)
* Resolved many of the lingering bugs with the previous commit
* Horizontal Resolution field now properly acknowledges resolution bounds.
* Don't show "Horiz. pixel count" field if not enforcing aspect ratio.
Additionally:
* Don't change settings if selecting "Custom" from preset dropdowns.
* Added a missing horizontal pixel count clamp check.
* Tidied up redundant behaviour.
* Additional comments, and a checkbox to disable aspect correction on consoles.
* Change how frame rate threshold is calculated.
* More minor UI tweaks.
* Added missing CVarSave() calls where needed.
Added a short update countdown for the numerical CVars. This is intended to prevent CVarSave() from being called too often.
* Added a helpful button to cover a potential support issue.
* "Fit Automatically" has been moved to LUS and is now smarter.
This will require another PR in LUS to be opened by me.
* Swap to new branch for libultraship
* Even more clever integer scaling behavior.
"IntegerScale" is itself now a CVar group.
* Tidy up comments.
* Fix a typo that prevented `IsDroppingFrames()` from working
(Maybe more than a mere typo, but a typo was involved.)
* Remove unused and unnecessary variables.
* Group "Integer Scaling" under its own collapsing header
* Changed label for the Enabled advanced settings checkbox.
* Update libultraship + Formatting pass on ResolutionEditor.cpp
* Add `(Select "Off" to disable.)` help text for the aspect ratio setting and hide UI elements accordingly.
Only show the fields if user chooses Custom.
Padding has been shifted accordingly too.
Also fixed a long standing error with the Y field disappearing when modifying X.
* Well I suppose that's no-longer necessary.
* Update libultraship with commits from main branch (up to e5df3a9)
* Tweak comments.
* Save current ImGui Combo items as a console variable
to improve user experience.
* Change language of NeverExceedBounds checkbox description
to be more affirmative, so it makes more sense.
Add tooltip for NeverExceedBounds checkbox.
Tweak some comments related to additional settings.
* Add list of colours to use with TextColored elements.
* Move some UI elements around.
Add an extra MSAA slider to the editor window.
* Integer Scaling header is DefaultOpen if player has Pixel Perfect Mode active upon window creation.
+ Amend tooltips.
* Fix a minor oversight with default configuration.
Fixes an issue where default aspect ratio settings on a fresh SoH configuration weren't matching the defaults assigned in libultraship.
The default values are now 16:9, matching LUS.
Additionally, the combo box now defaults specifically to the 16:9 preset instead of "Custom".
(Fixing the defaults in LUS to be 4:3 isn't worth a LUS bump, so this slight workaround will do for the sake of this PR.)
* Make resolution slider `disabled` condition a variable, for readability.
* Small tweak to combo item saving
* Use `SCREEN_HEIGHT` and `SCREEN_WIDTH` for constraints
* Simplify "Show a horizontal resolution field" logic
by using pixel dimensions as the aspect ratio directly, since now this view hides the aspect ratio setting from the user anyway.
* Correct aspect ratio visualiser to be un-inverted
+ actually display it as a ratio.
* Remove update flags from combo boxes + remove update countdown
+ remove non-functioning 'IsBoolArrayTrue' function.
(The countdown was an okay idea but I didn't implement it correctly. It's better to just keep it simple.)
* Code review suggestion: disable UI elements conditionally
(+ tweaks to code style)
* Invisible tweaks to the Integer Scaling-related Additional Settings
This looks like a lot but it's mostly just re-arranging a cluttered area of the code for clarity.
Actual changes to functionality are:
* Help text now "disabled" along with the checkbox.
* The NeverExceedBounds checkbox will now reset the unused ExceedBoundsBy cvar if it's been changed.
* Assorted small tweaks to comments and variable declarations.
* Code review suggestion: tweak "Window exceeded" warning condition
* Missed a thingy.
* Fixes off by one errors for a few settings.
* Removes disable of shuffle options when starting with corresponding items.
* Junks checks when shuffle is off and start with is on.
* Add player state dead check to Player_UseTunicBoots
* Update soh/src/overlays/actors/ovl_player_actor/z_player.c
---------
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* Removes cvarSettings map.
Options now link with CVar names directly. So instead of passing the
cvarSettings map, the Option class can check a corresponding CVar
if a cvarName was provided during construction. Of note, it does not
automatically sync the Option selected index with the CVar value, as
we would not want this to happen in all cases, for example when dragging
a spoiler file, we don't want to overwrite all the CVars with the Options
from the spoiler file. Currently all Options are set to the value of the CVar
they are linked to right before generating a new seed, unless a spoiler file
has been dropped in which case those settings are used instead.
* Early version of ImGui Render function
Currently only the slider variant. Will allow for auto rendering of options
in ImGui, with tooltips and automatic display of the values in each Option's
options array while keeping the CVars at the selected index, preventing
Off By One Errors.
* Implementation of Checkbox and Combobox rendering.
Currently only in use for a couple of items, future commit will implement for all
options.
* Auto-render entire first tab of Randomizer Settings
* Switch remaining tabs to auto-render
* Implements disabling options
* Cleanup/Documentation
* Auto-render entire table columns
* Implement OptionGroup rendering for "Sections"
* Automates the rendering of tables in the Settings window.
With the exception of the Locations and Tricks tabs, those are special
and will need a lot more work.
* Adds ability for option groups to have descriptions,
These descriptions will automatically display as tooltips in ImGui,
if the widget container type accounts for it.
* Fix as many IDE warnings as possible in option.h/cpp
Trying out CLion Nova, and it highlighted some things I decided to fix, some from CLion itself and some from CLang-Tidy. Oddly, it didn't like a conversion from size_t to int whether I left it implicit or added a static_cast, so I guess that warning is staying.
* Fixes some simple bugs
* fix another small oopsie
* Fixes parsing some of the option changes
Specifically we went from storing the actual value in the CVar to storing an index, meaning sliders that started with 1 now have the index offset by 1. This is currently only Big Poe Count, Triforce Hunt total/required, and starting hearts. Everything else either already started at 0, or in the case of LACS/Bridge counts, we were starting the sliders at 1 but they would have always worked at 0 according to the 3drando logic.
* Fix bug with status of skip child stealth
* Renames the Settings::Setting function to GetOption
* Add `Settings` pointer as a member of `RandomizerSettingsWindow`.
* Replaces ctx->GetOption with direct access to mOptions
This is equivalent, the access through ctx in this case was completely unnecessary and a muscle-memory mistake on my part.
* Implements a few IDE/Linter suggestions
* Initial wothCandidates change, pushed early foreseeing conflicts
* Implement better barren handling, waiting on #3205
* pls save next time VS code
* Finish implementation of barren and randomizer area refactor
* Apply function changes to develop merge
* Fix double default decleration issue
* change some var types for uniformity
* Fix post merge differences to the point of building and generating randos
* Address reviews
* address more reviews
* Fixes some IDE warnings/linter-suggestions in context.*
Most of these come from CLion Nova. Some of these may be controversial, such as the if-init-statement related ones. Most of them should not be controversial though, like replacing C-style casts with static casts.
* Fixes IDE warnings/Linter suggestions in option.*
* Fixes some IDE warnings/linter suggestions.
Left a few about "Template Arguments can be deduced", and a "Redundant static_cast" for the sake of clarity.
* Fixes some IDE warnings/linter suggestions in item.*
* Fixes some IDE warnings/linter suggestions in location.*
* Fixes some IDE warnings/linter suggestions in item_location.*
* Fixes some IDE warnings/linter suggestions in item_override.*
* Fixes some IDE warnings/linter suggestions in dungeon.*
* Fixes some IDE warnings/linter suggestions in trial.*
* Use std::ranges::generate rather than manually looping.
* Fixes a typo
* Changes a TODO comment with more info.
Previously this TODO statement was a question of whether or not we ever want to not output a spoiler log. Eventually we may want different amounts or types of data to be output when generating a seed according to certain settings. For instance, maybe we want a human-readable spoiler log, that has item locations and hint content without the formatting info. Maybe we want a "Plandomizer File", which is that but the hint strings include formatting info so that the formatting/colors can be changed, and eventually we may want to let cosmetic info be specified in there as well. Or maybe we just want a Race/Patch file that just has the seed and settings, for Race files we could also specify non-rando settings that should be locked to certain values. Or maybe want one of each. All of that is stuff that should at least start being handled at the location of this TODO statement.
* Fixes a scope issue Windows didn't catch
* Removes std::ranges::generate as apparently AppleClang can't do it.
* Removes std::ranges::any_of as apparently AppleClang can't do it.
* Re-adds what I thought was an unused include.
* An attempt to fix the macos construct_at error
* Hook into flagset hooks for processing check tracking. Has some manual workarounds (some breaks still need to be found).
Remove areaChecks and looping functionality as redundant.
* Additional vanilla handling.
* Fix tracker not showing MQ checks in MQ non-rando.
Fix tracker marking non-MQ variants of dungeon checks (e.g. map chest, etc) when collecting in MQ.
* Set all areas to spoiled if not rando.
* Revert attempt to spoil in randomizer based on MQ dungeon count as I don't know how that works at the moment.
* Restore and update spoiling based on MQ dungeon settings (none, selection, or count of 12).
Fix Anju As Adult check.
* Remove Anchor-specific code :baguette:
* Use `ClearAreaTotals()` in `Teardown()` instead of the duplicate code there.
* Update to `ClearAreaChecksAndTotals()` with `vec.clear()` added.
* Fix type spoiling again. Now spoils on 0 MQ dungeons, not rando, if the option is enabled in check tracker settings, selection, or set number of 12.
Fix vanilla checks being marked collected in MQ dungeons.
* Fix 100 GS check.
* ACTUALLY fix 100 GS: change flag type to `RandomizerInf()` in `item_location.cpp`, add RC to RandoInf for it to the table. Also don't send GI for flag if father, falsely triggers ZR frogs minigame.
* Fix gravedigging tour tracking.
* Fix membership card check tracking.
Change scene and flag values to any existing enums.
Clarifying formatting for the checking loop vOrMQ conditions.
* Fix Gravedigging Tour tracking.
Simplify Always Win Gravedigging Tour and Fix Gravedigging Tour Glitch applications.
Modified all necessary paths to use vanilla GDT PoH collection flag instead of randomizer variant.
* Fix Kak Potion Shop being "seen" when entering as child.
* Document static variables
* Document enums and structs
* Document some functions
* Document more functions
* actionParam to itemAction and fix build
* Document some local variables and a define
* General cleanup
* Use PlayerMeleeWeaponAnimation enum when appropiate
* Document some function parameters and local variables
* Document some of player struct
* fix alt backgrounds not always loading
* include gfx lookup with the original unload
* Add hook for alt toggle
* handle cpu modified texture for kd lava
* malloc array instead of illegal initialize
* lay some groundwork
* use custom window (which is currently identical to the LUS window)
* start making it shippy
* start moving stuff out of gamecontroleditor
* clean up shouldrumble
* include the other way
* wii u
* latest lus main
* notch snap angle buttons
* buttons on all the sliders
* just use a hidden id
* handle debug for port 2 and rename tabs so everything fits
* button line buttons look better
* padding fixed
* clang format
* bump to latest LUS main
* big buttons
* just default the analog stick options to open for now
* fix wii u build
* bonus: make it all scale-aware
* clang format
* fix horizontal scrolling
* fix all +/- buttons
* keyboard set defaults
* axis threshold helper text
* bonus: test rumble button
* clang format
* fix otrexporter submodule
* bump to latest lus main
I had an Off By One Bug in a previous commit, and saves made on that commit ended up crashing on boot due to attempting to access a negative index of an array. Added a bounds check to prevent attempting to load that data.
* Move threadpool initialization and `OnExitGame` registration from `SaveManager::Init` to SM's constructor.
Comment on `Init` to mention it's not an initializer for `SaveManager`.
Added check for `SaveManager::SaveSection` to prevent firing a save worker if the game is already exited from a reset.
* Removed `IsSaveLoaded` check in favor of another `ThreadPoolWait()` at the start of `SaveManager::Init()`.
* Removes delayed save functionality, making autosave work everywhere except Ganon and Chamber of Sages scenes.
* Change AutoSave comment to remove the scenarios we no longer block autosave in.
* handle temp B on saving outside of kaleido
---------
Co-authored-by: Adam Bird <archez39@me.com>
* Extends `Assignable Boots and Tunics` functionality to check for and remove Goron and Zora tunics from item buttons when like likes steal them.
* Comment documentation.
* ADD: No HUD Heart Animation
I've seen this requested multiple times for modding purposes for the case of using "lifebars" instead of hearts
* TWEAK: Move it under the the mods
* REM: Whitespace
* REM: Whitespace2
* Tweak: Cvar Oppsie
* Initial StaticData and RandoItem class definitions
* Initial implementation of RandoItem class.
* Rerranges RandoItem Constructor parameters
The parameters were rearranged for easy copy-paste from the GET_ITEM macro calls later on.
* Switches static data from map to static array.
Array is all that is needed, since the item list will be contiguous and indexed by the RandomizerGet Enum values.
* Defines part of the randomizer item list.
* Adds more item class instances to item_list.cpp
Up through bottles, many more items still to go.
* Adds song items
* Adds Maps and Compasses to the item_list
* Added Key Items to item_list
* Added Key Rings to item_list
* Added Dungeon Rewards to item_list
* Adds generic items and refills to item_list
* Adds shop items, triforce, and hints
Also added constructors that put the GET_ITEM_NONE data in for these items, since there is no corresponding GetItemEntry for them.
* Adds in the stages of progressive items
These are present for GetItemEntry purposes, and aren't really meant to be used in seed generation (unless we find a need for it later on.)
* Remove GetItemEntry data from progressive items
* Moves/adds function definitions to item/item_list
* Refactors GetItemEntry data
It's now a pointer to memory instantiated on the heap in the constructor. These are shared pointers so the memory is freed if any of the item instances get deconstructed (which they shouldn't but just in case.)
* Adds item class member for if item is progressive
* Removes unneeded stuff from initializer list macro
* Replaces relevant `uint32_t`s w/ `RandomizerGet`s
Also replaces calls to the ItemTable method with StaticData::RetrieveItem
* Switches our runtime code to use the new itemList.
* Changes just enough hint gen code to compile
* Initial Definition of Location Class
* Initial Implementation of Location
* Fixes some names and definitions.
* Extracts ActorID and SceneID enums to separate files.
This allows importing them without causing weird conflicts in cpp files when importing the z64scene.h and z64actor.h files directly. Now you can just import z64scene_enum.h and z64actor_enum.h instead. The two old files also import these new files so that existing setups still work as expected.
* Replaces the forward definitions with the new imports.
* Adds missing data for RandomizerCheckObjects.
* Definition and first entry of locationTable
* Added Mido's House Locations
* Added locations up through lost woods.
* Adds in Hyrule Field locations.
* Adds Lake Hylia locations
* Adds location name comments
* Adds Gerudo Valley Locations
* Adds Gerudo Fortress locations.
* Adds the Wasteland and Collosus locations
* Adds Market locations
* Adds Hyrule Castle locations.
* Adds Kakariko and Graveyard locations.
* Adds Death Mountain checks.
* Adds Goron City locations
* Adds Death Mountain Crater locations
* Adds Zora's River locations
* Added Zora's Domain Locations.
* Added Zora's Fountain locations
* Adds Lon Lon Ranch locations.
* Adds Deku Tree locations
* Adds Dodongo's Cavern Locations.
* Adds Jabu Jabu's Belly Locations
* Adds Forest Temple Locations
* Adds Fire Temple Locations
* Adds Water Temple Locations
* Added Spirit Temple Locations
* Some of shadow temple locations.
* Adds remaining Shadow Temple locations
* Fixes a leftover merge conflict
* Adds Bottom of the Well locations.
* Adds Ice Cavern locations
* Adds GTG locations.
* Adds Ganon's Castle and Tower locations
* Adds dungeon Gold Skulltula locations.
* Adds Overworld Gold Skulltula locations
* Adds dungeon reward locations
* Adds Heart Container Locations
* Adds Cutscene and Song locations
* Adds Cow locations
* Adds Shop locations.
* Adds hint locations
* Adds function for retrieving the Location data.
* Initial definition of ItemLocation structure for tracking runtime data
* First push on converting code to use new location definitions
* Changes hints to use the new tables
* Further conversion of hints to new definitions.
* Adds new Hint and Location IDs to area tables
* Moves areaTable to use new RandomizerRegion keys
* Removal of 3drando/item_location files.
* Uses new RandomizerRegion keys in entrance.cpp
* Final push for removal of massive keys.hpp enum
* Uses new SceneID Enum Values
* Remove RandomizerCheckObject structs in favor of new location list.
* Fix a few stragglers to successfully build
* Rename of RandoItem to just Item, but in the Rando namespace
* Adds static hints (Light Arrows, Altar text, etc) to the new Hint table.
* More hint related fixes/edits
* small fix for #include path
* Fix various miscellaneous issues related to seed gen and spoiler parsing.
* Handle progressive items correctly.
* Fixes some hint generation logic
* Fix a few GetItemEntry niche bugs.
* Adds missing shop GI Entries
* Formatting fixes
* small formatting fix
* Namespace StaticData under Rando
* Added a note about a potential use-after-free.
I confirmed the actual pointer in question isn't currently being used, but I added the note as a reminder to fix it later and/or as a warning to anyone who changes how the return value is used.
* Fixes missing location table entries
* Fixes LUS submodule and removes now-unused code
* Resolves weird duplicate definition issue
* Fix missing include
It was missed because not being included wasn't an issue on Windows.
* Fixes error present on Linux builds
* Fixes some issues with excluding locations
* Updates the Resolve Exclusion conflicts function
not sure if actually used, will look into that more later
* Removes some duplicate RGs
* More fixes of duplicate RG values.
* Fix a few duplication issues in the check tracker.
* Fix progressive bombchus.
* Minor typo fix, shouldn't really be affecting anything though
* Should fix some of the remaining check tracker issues.
* oops wrong boolean operator
* Fix skulltulas in the check tracker.
* oops, missing comma
* re-formatting of HintStone locations
* Fixes issue when picking up second Progressive Bullet Bag
* Hide bombchu bowling bombchus
* Fixes missed skullScene in location_list
* Reformats shop items
* Re-formats cow checks
* reformat song locations
* reformat "cutscene" checks
* reformat heart container locaitons
* reformat Boss/Dungeon reward checks
* Hide Triforce Completed if not playing Triforce Hunt
* Fixes incorrect chest param
* reformat GS Tokens locations and cuts down on duplicate data
* reformat Ganons Castle checks
* reformat GTG check locations
* Prevents Gift from Raoru from appearing in the check tracker
* more reformatting (botw, ice cavern, shadow temple)
* Should fix a couple more check tracker checks
* reformat spirit temple checks
* reformat water and fire temple checks
* fix RC_ZR_GS_ABOVE_BRIDGE flag typo
* reformat Forest Temple checks
* Fix RC_LW_TRADE_ODD_POTION in check tracker
* reformat child dungeon locations
* reformat overworld locations
* reformat item entries
* New Item Override system
* use new ItemOverrides and use ItemLocations table for getting items
* Saves/Loads directly from/to new ItemLocation table with overrides for traps
* Removes gSaveContext.itemLocations
* Don't load spoiler file on boot automatically.
Currently this means the old spoiler will have to be manually dropped or a new one generated in order to make a new rando file. Next I want to make it so that:
1. The Randomizer Quest button on the file select menu is always unlocked, even if a spoiler is not loaded.
2. If it's selected and a spoiler is not loaded, a menu will appear that asks if you want to generate a new seed or re-generate the previous one (if a spoiler file is present).
3. On choosing to generate a new one, you may also get an in-game menu to quickly apply a preset before generating (not sure if I'm going that far just yet).
4. After that, a seed is generated and you are taken back to the file select screen with the new file present.
5. If a seed is generated via the menu ahead of time, the CVar for loading the spoiler file will be set, but the spoiler file will not be parsed. All the data needed to actually play the randomizer at that point is
already in memory and in the save file (or at least I'll make it so that it is if it isn't already).
6. If a spoiler file is dropped over the window, the spoiler file is loaded, but it will only be parsed to get the seed and the settings, then the playthrough will be generated from scratch with that data. Thus allowing
for hints to be in the user's language of choice no matter what language the spoiler file was generated in.
7. Additionally, there will be a plandomizer mode that, if enabled, causes dragging and dropping a spoiler file to read the entire spoiler file instead of just the seed, and making a new file will use the data from there
instead of generating a new seed. This in particular may be expanded to have a "plando file" that contains more info than a spoiler file would normally have, such as cosmetic data and a more fleshed out
custom message syntax for various types of custom hints and whatnot. But that will be probably much later.
* Auto-gen rando seed when making a new rando file.
Also adds new logic for displaying the seed hash icons. Now, it is displayed in the following situations:
1. On the confirmation page when loading a rando save, the hash icons for *that save* are displayed.
2. On the name select screen after generating a seed, the hash icons for the seed that was just generated will be shown.
3. If you have dragged a spoiler log onto the window, the hash icons for that seed will be displayed while randomizer is selected on the quest select screen.
Currently the spoiler is just ignored, as the logic for pulling the settings from the spoiler file and regenerating the same seed has not been coded yet.
* Fix a few typos/bugs
* Partial conversion to new Settings/Option class
* Further conversion to new settings/options classes
* New settings struct (not fully working, need to wire it up to SaveManager)
* Move save files to new settings struct. Also fixes MQ options to match 3drando
* Fixes some spoilerfile related issues
* Cleans up now unused arrays
* Fixes some unhandled entries in parse settings switch case
* Reimplements parsing of settings on file drop to re-generate seeds
* Move merchantPrices into ItemLocation tables.
* Move hints to new struct
* Fixes a few seed gen bugs surrounding hints
* Fix treasure chest game.
* Relocate Entrance Shuffle code into ctx
* Move entrances to new context at runtime
* Remove now unused code from SaveContext and randomizer.cpp/.h
* Fix non-windows builds?
* Moves Dungeon Quests to new context
* Move trials into new context
* Whoops, forgot to construct the Trials in the context.
* Fixes accidental nullptr reference
* Fixes bug with saving MQ dungeons
* Implements plando mode and removes now unused code.
Largely untested, expect some bugfixes.
* prevent a multiple definition bug
* another attempt to fix the gSeedTextures multiple def error
* Fixes some minor hint issues from conflict resolution
* Some additional glue needed for merge
* Fixes another couple of miscellaneous issues/inconsistencies.
* A few french corrections
* Makes CVar gRandomizeWarpSongText match the checkbox default value.
* share common scenes between mq and nonmq
* move shared scenes under shared folder and bring back thieves hideout mq handling
* update headers for shared scenes
* bump submodules
* remove mq handling for mirror world song patch
* only have unique dungeons be nomq/mq variants
* bump submodules
* 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
* Add a `CVarClear` inside the check for a sequence's lock to get rid of old data.
* Rework all replacement and lock `CVarSetInteger` calls to call a function which checks for previous format with `CVarGet` to know if it needs clearing before setting either the lock or the sequence
* Swapped everything over to a migrator where it loops through the `sequenceMap` and just clears everything from there in "gAudioEditor.ReplacedSequences"
* Change initialization of `areasSpoiled` to improve utilization and fix crash during max debug file creation.
* Renamed `RCAreaFromSceneID` to `DungeonRCAreasBySceneID` for clarification.
* Initial implementation of no-duplicates of special hints
* stupid fixes
* Impa's song will no longer be hinted when you skip child zelda
* fix building
* Fix Loading spoiler logs causing corrupt hints, remove disabled warp song shuffle text from spoiler logs
* Remove Sheik and Saria hints from the spoiler log when are not enabled
* Prevent Magic hinted by Saria and Light Arrows hinted by Sheik from being hinted elsewhere unless they are locked by that item.
* Prevent the Final Frogs gossip stone hint from spawning when the special final frogs hint is enabled.
* Fix building after rebasing in deduplication
* redelete keys.hpp
* Remove Sheik and Saria hints from the spoiler log when are not enabled
* Prevent the Final Frogs gossip stone hint from spawning when the special final frogs hint is enabled.
* First part of copies implementation
* Refactor hint system (broken)
* fix building
* fix obvious errors
* fix fixed hints doubling after failing to place a hint
* Fix bugs with hint distrabution
* Split PlaceRandomHint and fix hint bugs
* Merge special hint functions, move special hint text to the HintTable, expand LightArrow hint category into OtherHint category.
* Fix remaining hint distribution errors
* Forgot to stage dampe diary update
* Restore building after conflict resolution
* fix SetAllInRegionAsHinted
* Add a (not yet functional) "Navi" option.
* It works!
* Slightly better name for this menu option.
* Revert accidental commit of comments in z_en_elf.c
* Renaming and tweaks.
* Temporary fix(?) for compile error on non-Windows platforms.
* … Just pretend this particular commit doesn't exist. :OHYEAH:
* A more suitable fix. + Partial suggestions from review.
In-progress implementation of Cosmetics Navi colours.
* Convert relevant code to use Color_RGB8 sans alpha, matching the controller LED.
Defaults are now labeled for clarity.
* Revert back to Color_RGBA8. + Implement Cosmetics Navi colours.
Add Color conversion functions.
* Tidy comments.
* Changed mind yet a third time. Uses Color_RGB8 sans alpha again.
Uses CVarGetColor24 instead of CVarGetColor to drop alpha from cosmetics editor values, like how Tunic Colors does it.
This of course does require me to go with the prior idea of storing the Navi colours without alpha channels.
* Color type conversion functions removed
as they're no longer needed.
* Tidy up commented out code once more.
* Fix a typo
* Suggestion from code review. (Yeah nah you're totally right though.)
* Correct indentation.
* A minor goof in the comments was bothering me.
* add safe string copy method
* use string copy for save manager
* use string copy in spoiler log hint parsing
* remove intermediate string vars
* more string copy use in randomizer methods
* use string copy in gameplay stats
* add load char array method to remove string intermediate var
* try string.h import instead
* Add `IsAdult` to Fewer Tunic Requirements check for `FireTimer` in rando logic to preven placing items in lower maze expecting child to get them.
* After discussion, decided to change it to lock access only to lower maze so child access with dungeon shuffle remains intact.
Also changed the tooltip for Fewer Tunic Requirements to reflect the current status of what the trick enables.
* Further update to tooltip.
* Fix two missing changes after ms GI enum was changed
* Remove unnecessary line break from hint, and fix infinite loop within AutoFormatHintTextString
* Update soh/soh/Enhancements/randomizer/3drando/hints.cpp
* Initial implementation of no-duplicates of special hints
* stupid fixes
* fix always hints being suppressed by special hints
* Impa's song will no longer be hinted when you skip child zelda
* fix building
* Remove disabled special hints from the spoiler log
* Fix Loading spoiler logs causing corrupt hints, remove disabled warp song shuffle text from spoiler logs
* Fix not detecting text size correctly and badly named greg hint
* Remove disabled special hints from the spoiler log
* Fix Loading spoiler logs causing corrupt hints, remove disabled warp song shuffle text from spoiler logs
* Remove Sheik and Saria hints from the spoiler log when are not enabled
* Prevent Magic hinted by Saria and Light Arrows hinted by Sheik from being hinted elsewhere unless they are locked by that item.
* Prevent the Final Frogs gossip stone hint from spawning when the special final frogs hint is enabled.
* Fix building after rebasing in deduplication
* redelete keys.hpp
* 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>
* Initial StaticData and RandoItem class definitions
* Initial implementation of RandoItem class.
* Rerranges RandoItem Constructor parameters
The parameters were rearranged for easy copy-paste from the GET_ITEM macro calls later on.
* Switches static data from map to static array.
Array is all that is needed, since the item list will be contiguous and indexed by the RandomizerGet Enum values.
* Defines part of the randomizer item list.
* Adds more item class instances to item_list.cpp
Up through bottles, many more items still to go.
* Adds song items
* Adds Maps and Compasses to the item_list
* Added Key Items to item_list
* Added Key Rings to item_list
* Added Dungeon Rewards to item_list
* Adds generic items and refills to item_list
* Adds shop items, triforce, and hints
Also added constructors that put the GET_ITEM_NONE data in for these items, since there is no corresponding GetItemEntry for them.
* Adds in the stages of progressive items
These are present for GetItemEntry purposes, and aren't really meant to be used in seed generation (unless we find a need for it later on.)
* Remove GetItemEntry data from progressive items
* Moves/adds function definitions to item/item_list
* Refactors GetItemEntry data
It's now a pointer to memory instantiated on the heap in the constructor. These are shared pointers so the memory is freed if any of the item instances get deconstructed (which they shouldn't but just in case.)
* Adds item class member for if item is progressive
* Removes unneeded stuff from initializer list macro
* Replaces relevant `uint32_t`s w/ `RandomizerGet`s
Also replaces calls to the ItemTable method with StaticData::RetrieveItem
* Switches our runtime code to use the new itemList.
* Changes just enough hint gen code to compile
* Initial Definition of Location Class
* Initial Implementation of Location
* Fixes some names and definitions.
* Extracts ActorID and SceneID enums to separate files.
This allows importing them without causing weird conflicts in cpp files when importing the z64scene.h and z64actor.h files directly. Now you can just import z64scene_enum.h and z64actor_enum.h instead. The two old files also import these new files so that existing setups still work as expected.
* Replaces the forward definitions with the new imports.
* Adds missing data for RandomizerCheckObjects.
* Definition and first entry of locationTable
* Added Mido's House Locations
* Added locations up through lost woods.
* Adds in Hyrule Field locations.
* Adds Lake Hylia locations
* Adds location name comments
* Adds Gerudo Valley Locations
* Adds Gerudo Fortress locations.
* Adds the Wasteland and Collosus locations
* Adds Market locations
* Adds Hyrule Castle locations.
* Adds Kakariko and Graveyard locations.
* Adds Death Mountain checks.
* Adds Goron City locations
* Adds Death Mountain Crater locations
* Adds Zora's River locations
* Added Zora's Domain Locations.
* Added Zora's Fountain locations
* Adds Lon Lon Ranch locations.
* Adds Deku Tree locations
* Adds Dodongo's Cavern Locations.
* Adds Jabu Jabu's Belly Locations
* Adds Forest Temple Locations
* Adds Fire Temple Locations
* Adds Water Temple Locations
* Added Spirit Temple Locations
* Some of shadow temple locations.
* Adds remaining Shadow Temple locations
* Fixes a leftover merge conflict
* Adds Bottom of the Well locations.
* Adds Ice Cavern locations
* Adds GTG locations.
* Adds Ganon's Castle and Tower locations
* Adds dungeon Gold Skulltula locations.
* Adds Overworld Gold Skulltula locations
* Adds dungeon reward locations
* Adds Heart Container Locations
* Adds Cutscene and Song locations
* Adds Cow locations
* Adds Shop locations.
* Adds hint locations
* Adds function for retrieving the Location data.
* Initial definition of ItemLocation structure for tracking runtime data
* First push on converting code to use new location definitions
* Changes hints to use the new tables
* Further conversion of hints to new definitions.
* Adds new Hint and Location IDs to area tables
* Moves areaTable to use new RandomizerRegion keys
* Removal of 3drando/item_location files.
* Uses new RandomizerRegion keys in entrance.cpp
* Final push for removal of massive keys.hpp enum
* Uses new SceneID Enum Values
* Remove RandomizerCheckObject structs in favor of new location list.
* Fix a few stragglers to successfully build
* Rename of RandoItem to just Item, but in the Rando namespace
* Adds static hints (Light Arrows, Altar text, etc) to the new Hint table.
* More hint related fixes/edits
* small fix for #include path
* Fix various miscellaneous issues related to seed gen and spoiler parsing.
* Handle progressive items correctly.
* Fixes some hint generation logic
* Fix a few GetItemEntry niche bugs.
* Adds missing shop GI Entries
* Formatting fixes
* small formatting fix
* Namespace StaticData under Rando
* Added a note about a potential use-after-free.
I confirmed the actual pointer in question isn't currently being used, but I added the note as a reminder to fix it later and/or as a warning to anyone who changes how the return value is used.
* Fixes missing location table entries
* Fixes LUS submodule and removes now-unused code
* Resolves weird duplicate definition issue
* Fix missing include
It was missed because not being included wasn't an issue on Windows.
* Fixes error present on Linux builds
* Fixes some issues with excluding locations
* Updates the Resolve Exclusion conflicts function
not sure if actually used, will look into that more later
* Removes some duplicate RGs
* More fixes of duplicate RG values.
* Fix a few duplication issues in the check tracker.
* Fix progressive bombchus.
* Minor typo fix, shouldn't really be affecting anything though
* Should fix some of the remaining check tracker issues.
* oops wrong boolean operator
* Fix skulltulas in the check tracker.
* oops, missing comma
* re-formatting of HintStone locations
* Fixes issue when picking up second Progressive Bullet Bag
* Hide bombchu bowling bombchus
* Fixes missed skullScene in location_list
* Reformats shop items
* Re-formats cow checks
* reformat song locations
* reformat "cutscene" checks
* reformat heart container locaitons
* reformat Boss/Dungeon reward checks
* Hide Triforce Completed if not playing Triforce Hunt
* Fixes incorrect chest param
* reformat GS Tokens locations and cuts down on duplicate data
* reformat Ganons Castle checks
* reformat GTG check locations
* Prevents Gift from Raoru from appearing in the check tracker
* more reformatting (botw, ice cavern, shadow temple)
* Should fix a couple more check tracker checks
* reformat spirit temple checks
* reformat water and fire temple checks
* fix RC_ZR_GS_ABOVE_BRIDGE flag typo
* reformat Forest Temple checks
* Fix RC_LW_TRADE_ODD_POTION in check tracker
* reformat child dungeon locations
* reformat overworld locations
* reformat item entries
* 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
* initial n64 pal 1.0 support - hashes and rominfo
* initial xml copy pal 1.0
* initial offset fixes
* update title copyright to be platform based
* bump lus for clearMtx
* add scripted xml definitions
* offset fixes and xml fixups
* rename and sort pal mq definition
* more offset fixes
* Initial commit. What works so far:
Data file loads, saves, deletes, and is created properly.
- Need to run `HasItemBeenCollected` when creating in case of mid-seed regen.
Organized checks into maps set by area.
Areas show in tracker.
- Checks pulled from checkObjectsByArea are not currently listed.
- Areas are being assumed completed and hidden at the start.
* Checks now populate. Still not counting area totals properly.
* Don't track RC_LINKS_POCKET in the data file, and instead manually add it in every time a save is load. rcObjects doesn't contain Link's Pocket location (duh).
* Moved ItemReceive hook to randomizer_check_tracker.cpp.
Skipped items are properly sorted and formatted.
Saved items contribute to an area's gotten/skipped checks on load.
Changed skipped items default main color to gray.
General code cleanup.
* Skipped checks now contribute to area totals for area completion logic.
* Mid-menu rework transfer.
* Started check lookup on item receive.
Tried to enable scum checking on save.
* Fixed scum check on save.
* More code cleanup, which revealed some issues with loading and saving. Loading now works 100%, but entries in checkTrackerData are disappearing in code somewhere, causing issues with later checks.
Scummed color now displays properly.
Collected but unsaved displays properly.
Unchecked, Skipped, Seen and Scummed checks all have arrows for skipping/unskipping.
Counts a little messed up, probably double adding skips.
* Fixed item counts being off across resets. Restarts were fine.
* Beginning of rework for individual check updates. Adds `Actor lastCheck` to PlayState to allow assigning of last actor to give an item. This allows precise tracking of GS, freestanding PoH, etc. Works for chests too. Currently does not work for shops, unknown for normal NPC gives. Doesn't track last gives for non-checks, like drops from grass, pots, crates, etc.
* Actor-based checks fully fleshed out, but can't help with sale-based checks. Implemented `pendingSaleCheck` to back out of an RC check cycle if `gSaveContext->pendingSale` is not NONE when `OnItemReceive` is called, processed through `OnSaleEnd`. This should be the final change necessary to streamline the checks.
* Temporary hook to message box close to tie in trackers for non-gs/chest actors that aren't added to `GetCheckFromActor`. This triggers a 2-frame countdown to check with `HasItemBeenCollected` since half of the methods in there aren't updated until after a text box closes.
Added scene tracking to get last scene so that checks in scenes that span several overworld areas could be tied to their areas properly.
Modified tracker data creation to apply Link's Pocket and Song from Impa conditionally based on randomizer settings instead of just being assumed to be done. May need modification for checking click and drag spoiler loading.
Removed the scene equivalence check from CheckChecks so that an entire area is checked each time to avoid issues with, e.g., leaving a shop before a pending sale finishes.
* Changed check data creation to use RSKs from gRandomizer to account for settings loaded from drag and drop spoilers.
* Beginning of tracker code organization.
Changed check color defaults.
* Reverted moving tracker colors to header.
Some individual check fixes.
* Missed something from previous merge?
* Removed last remnant of removed performance mode.
* Better handle checking when skullsanity is off.
* Song checks sceneIDs don't match the scenes they're actually in for some reason. Removed that check.
* SaleEnd checks don't need the GetItemEntry parameter. Also set a flag that should prevent the check tracker from running during vanilla saves should that not be resolved by the time it's merged.
* Attempting to have only the relevant checks added to the tracker data, as well as showing vanilla checks for non-rando saves. Not working yet (everything is displayed in vanilla).
* Added vanilla check tracker population via `vanillaCheck` bool in `RandomizerCheckObject`. This is also added to `IsVisibleInImGui` to handle file loading and saving to eliminate checks that aren't part of vanilla or the rando seed.
Implemented deleted tracker data file recreation.
Added some extra item name text checks. Songs are still... tricky, so they stay blank.
Utilize local copies of the randomizer check objects that are applicable for performance purposes.
Fixed vanilla item-giving cutscene crashes when triggered mid-transition.
* Apparently not all toolchains can handle macro instantiation without all parameters, like VS can.
* Fixed scummed detail color not showing properly on tracker.
* Fixed dungeon area totals and GS checks not functioning properly.
* Major revamp of checking code. Doesn't rely on `GetCheckFromActor` at all anymore, but instead simply sets a flag to evaluate a number of checks in an area every frame until the check that was gotten is identified. With the new setup, it's much less hardware intensive, and at 60fps 6 checks per frame shows no noticeable effect on framerate. I can envision needing to add a collectedCount in order to account for times when two checks are gotten one right after the other.
Changed area scroll to happen from `OnTransitionEnd`, and allow for scrolling in bazaar (was disabled previously because it would jump back and forth between Kak and Market while you were in one).
Also setup area check order updating by area instead of all at the same time.
* Fixed shooting gallery not reporting proper area.
Prevent checks from actually happening if area is RCAREA_INVALID, now that all areas are reporting something if they have checks.
Fixed `GetCheckArea()` not updating checks for standard scenes.
Lots of vanilla tracking updates, mainly manual checks for gems, medallions and songs, since the often don't have proper scenes in the data.
Prevent vanilla from triggering check loops if junk items are collected.
Fixed sorting based on saved vs collected.
Prevent item name display for vanilla runs.
Change coloring of checks so the check name reflects status in vanilla runs.
* Fixed "Recheck Area" button erroneously adding to an area's check totals?
* Fix DMC vanilla checks.
* Fix check tracker data recreation on data file loss.
Removed redundant file exists check from SaveTrackerDataHook, as it doesn't matter if it exists or not at that point.
Limited check loops to 3 to avoid infinite check loops on non-check/junk item pickup.
Added more checks to disable tracker operations if a save is not running.
Changed check ordering to put boss reward and heart container checks at the end of whatever RCSHOW group they belong to.
* Fixed IsRunning calculation.
Further improving vanilla checking.
Starting framework for checking medallions, stones, and songs on data file recreation.
Fixed medallion check collection.
Added GIFT_FROM_SAGES to check list for vanilla file for tracking light medallion.
Added check loop limitation to prevent infinite checking after picking up junk item from the ground.
* Finished vanilla file recreation and recheck (songs and dungeon rewards all check properly now). This includes deku shield with KF shop item 3.
Finished Gift from Raoru light medallion tracking for vanilla.
Commented all CheckByScene functionality for now.
* Fixed new save data file creation.
Disabled entrance area calculation for now, as it only tracks the previous entrance for some reason.
Fixed area detection for ToT checks.
* GetCheckArea() now utilizes EntranceData almost exclusively, via either `gSaveContext.entranceIndex` or the entrance tracker's `currentGrottoId` in the case of grottos.
This also means that EVERYTHING CAN AUTOSCROLL NOW. Entrance shuffles are now much easier to track.
Autoscroll is now also triggered on save, just in case someone isn't autosaving and has a lot of checks that get converted to saved.
* Fixed missing GS check in LW.
* Added area scroll on toggling Show Hidden Items. May configure differently later.
Fixed area detection for entrances in Gerudo Fortress/Valley and Collossus. Haunted wasteland doesn't autoscroll due to a bug in `OnTransitionEnd` hook, but checks still evaluate properly there.
Rely on scene-based area detection if scene is a main overworld or dungeon scene.
* Fixed grotto detection when shuffle is off.
* Small code cleanup.
Fixed Colossus hand chest checks.
* Missing lus bump from merge conflict resolution
* Fixed Colossus Grotto making `GetCheckArea` return Wasteland.
* Improved OnItemReceive processing for non-token GS checks, since they can sometimes take long enough for the checking process to time out before the item is registered as received.
* First attempt at thread safety for tracker data file writing. Seems to work, but might need more testing.
* Fixed Recheck Area not unskipping items that register as saved.
Improved delayed saving with autosaving, as the autosave triggered quite often before the tracker data save, making things not properly register as saved.
* merge cleanup
* Converted check tracker data to the sectional saves, adding `CheckTrackerData` to `SaveContext`.
Implemented section ID returning and fullSave boolean passing to section functions from my PR temporarily for it to work properly.
Moved `RandomizerCheckTrackerData` enum to `randomizerTypes.h` to accommodate that.
Changed `Randomizer_SaveInit` to a `SaveManager::InitFunc` to allow for other randomizer-dependent sections to be initialized after that. Required a little refactoring to maintain intro cutscene skip when starting a randomizer file.
* Revert section index return and randomizer init changes. Will need to wait on yet more changes to main.
* Fixed check tracker initialization (shouldn't be tied to window initialization), restored saving/loading functionality.
* Removed `CheckTracker::Init` and put SaveManager calls in `CheckTrackerWindow::InitElement`. Also a bit of cleanup from transition back to save file use.
* Fixed tracker displaying check categories while file not loaded.
* Fix Darunia's Joy check not marking in vanilla.
* Fix autosave not triggering change from collected to saved in tracker data.
* Changed default colors for scummed and collected display.
* Merge upgrade code cleanup.
* Add `OnTransitionEnd` calls to sandstorm transitions both to and from Wasteland. Also improved `gSaveContext.lastScene` assignment for both transition types. Allowed a bit of cleanup in `GetCheckArea`.
* Added `StateButton`, a button like `ArrowButton` but that allows text instead of arrow icons. Apparently the changes from ArrowButton to StateButton happened in a previous commit...
* Changed section name to `trackerDataCheck` to force SoH to load it after the randomizer section, as it required some randoSettings to be loaded first, and nothing else I tried to make the randomizer section load before it worked. This hacks a solution to checks not displaying on fast file load to a specific slot.
F*** you, SaveManager, and f*** you too, JSON.
* Forgot to change the section string for loading with the name change.
* Fix check ordering for checks that trigger the autosave.
* Adds option to remove right-side shop items (slots 1-4) from the tracker list. Enabled by default.
* Fix default state of Hide Shop Right Checks checkbox.
* Fixes grotto and great fairy scrolling and checks.
Fixes array overflow from `checkTrackerData` which was creating the issue trying to load the base and randomizer sections first, among other things.
That also fixed the massive file loads that were being exhibited in debug mode.
* Fix shooting galleries being set as collected again when being played a second time after getting the checks.
* Fix Bazaar autoscroll.
* Add Saria's Song to `GetCheckFromActor` and removed some limitations from the messageCloseCheck function to make that check track properly.
* Fix Song from Impa check.
Implemented prevention for multiple "collections" of great fairies, just in case getting the health refill would trigger it with the previous setup.
* Fix ice traps on GS tokens not triggering OnItemReceive.
* Complete fix for ice trap collection from GS.
Add autoscroll when clicking "Expand All".
* Add `OnShopSlotChange` with cursorSlot and basePrice parameters.
* Fixed include in en_ossan for shop slot hook.
Added registration for `OnShopSlotChange` in the tracker, storing the price in a new `price` field in `CheckTrackerData`.
Added "seen" functionality to shop checks. Displays the model item name upon first entering a shop, adding the price and switching to trickName (if it's an ice trap) upon navigating to the slot in buy mode, triggered by an invisible "identified" status that mirrors "seen" in every other way.
Added tooltips to most options for check tracker color picking to describe what each status actually means.
* `std::format` pls
* So apparently std::format just decided to break with the latest merge from develop, but fmt::format exists and works?
* Removed the last vestiges of `locationsSkipped`. Other general code and formatting cleanups.
Moved `IsGameRunning` to `OTRGlobals` so the item tracker could also access it.
Used preceding to "fix" item and bottle display in the item tracker on startup.
* Some more code cleanup.
Removed "Recheck Area" button and relevant code.
Backported changes to Anchor branch applicable for single-player, including making a checkAreas vector and structuring the frame by frame checks around that. Also includes fix for Silver Gauntlets and Mirror Shield check collection crash associated with those changes.
Fixed Kakariko Bazaar "seen" updates.
Fixed tracker window not showing on initial load like it should.
* Forgot 1 formatting fix.
* Removed conditions for showing Song from Impa (isn't junk under certain conditions, so should show all the time).
* Fix vanilla checks, add Zelda's Letter and Malon's Egg to manual check collection.
Fix autoscroll while in child stealth section.
* Fix crash in Happy Mask Shop in OnSlotChange (referenced non-existent shop id in a tracker-specific enum).
* General code cleanup.
* Missed one reversion.
* One more.
* Fix column alignment in `randomizer_check_objects`.
* Fix file encoding on `randomizer_check_tracker`. Again.
* Fix indentation for `actualItemtrackerItemMap`. Also removed unnecessary parts of the map.
* Rename `HasEqItem` to `HasEquipment`.
* Slightly better indentation for `actualItemTrackerItemMap`.
* Add magic bean salesman to vanilla check tracking, and genericized deku shield to trigger KF shop item 3 wherever you get the shield.
Renamed `vanillaCheck` to `vanillaHundoCheck` to (supposedly) clarify the meaning of the usage.
* One more rename to `vanillaCompletion` to avoid possible confusion with 100% speedrun conditions.
* give me a break XD
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Changes suggested by briaguya (rename `RandomizerCheckShow` to `Status`, unused code, newline formatting)
* Remove unused `itemNames` table.
* Remove `IsGameRunning` in favor of `GameInteractor::IsSaveLoaded`.
* Restore anti-spoiler functionality for dungeons with dungeon maps.
* Review cleanup.
* Fix prices not showing for Kak bazaar items.
---------
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Add "Open App Files Folder" menu item to Ship menu on desktop platforms to open the folder where mods, logs, etc, are found.
* Change to `GetAppDirectoryPath` to get config location instead of executable/bundle path.
Also unified the absolute path creation across all platforms by using `std::filesystem::absolute`. It manages to even expand the "." returned for portable Windows mode.
* Removed unnecessary platform define check.
* Adds Ultra Deku Stick Cheat
Author: Vexus <vdfk94@gmail.com>
* implement the stuff
* move enum to a resonable spot
* Apply suggestions from code review
* Update soh/src/overlays/actors/ovl_player_actor/z_player.c
* i thought i could do everything through the gh web ui but fine i'll fix it locally
---------
Co-authored-by: Vexus <vdfk94@gmail.com>
* 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
* initial pal mq retail support
* more mq pal support
* pal mq support in the launch scripts
* more offset fixes
* match tluts with mq debug
* update support hashes doc
* target lus commit for playtesting
* more offset fixes
* add hashes for other formats
* decomp name sync
* add scripted texture definitions
* fix up from other xml changes
* update name
* commit constipation
* fix inconsistencies between 3d and soh settings
* Add RSK check for Saria; Sheik now tells you other reqs for ganon
* Translations (thanks Purple and Timmy_GamerNepgear);
Retain Saria's "face-to-face" text in rando if you're too close
* fix scene renames for sheik
* whoops
* Undo LA hint setting erasure from conflict
* Clarified Sheik text IDs; Clarified final frogs hint
* Fixed Sheik text ID assignment; Fixed Saria's messages in `OTRGlobals`
* Added hint locs for sheik and saria
* Set up hook for Sheik spawn;
Sheik no longer cheats with room transitions;
Enforced text IDs on saria msg function
* Set up hook for Sheik spawn;
Sheik no longer cheats with room transitions;
Enforced text IDs on saria msg function
* Update soh/soh/SaveManager.cpp
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* nice.gif
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* got ahead of myself
* Conquered and divided; simplified stuff
* nitpicking
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* the little things i stg
---------
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Add `vanillaCheck` to `RandomizerCheckObjects` and update the `RCObjects` table and macro.
Update `ogItemId` for many checks.
* Rename `vanillaCheck` to `vanillaHundoCheck`.
* baguette
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* Bean Salesman should be true for `vanillaHundoCheck`
* One more rename to `vanillaCompletion` to avoid possible confusion with 100% speedrun conditions.
---------
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* Changed Audio Editor buttons to use FontAwesome icons instead of words.
Added the locked/unlocked button.
* Added functionality to lock button. "Randomize All" respects the lock, individual shuffle buttons bypass and the lock and unlock the sound.
Added tooltips to all the FA buttons.
Shrunk right side of Audio Editor window to match width of new buttons.
Unified all references to the randomized value and lock to two functions that automatically applied prefix and suffix.
Changed "Reset All" to clear the cvars instead of changing them to default.
* Fixed bug where individual randomize button didn't change the BGM if randomizing current sequence.
* Added check for unchanged BGM in Reset All and Randomize All to account for lock button blocking changes.
* Remove 3drando setting descriptions
* Remove 3drando cosmetics
* Remove part of 3drando's menu
* Remove 3drando's music & sfx randomizers
* Remove 3drando's patch system
* Remove 3drando's citra logging
* Remove some of 3drando's custom messages
Some can't be removed (like the ganon la hint) as they are used
* Remove useless params in item_location.cpp
These types of SpoilerCollectionCheck just checked the rand inf corresponding to check and ignored the scene & flags params.
* Remove 3drando's unused check categories
* Remove some of 3drando's menu system
* Remove 3drando's preset system
* Remove some unused settings code
* Remove some unused settings
* Remove some unused ItemLocation params
* Remove SpoilerCollectionCheck::Fishing param
* Added Shield Aim Invert Y Axis Option
Adds an option in the menu that allows players to invert the shield aiming across the Y Axis. Defaults as checked to replicate original behavior.
* Shield Aiming Improvements
Added an option to invert X Axis Shield Aiming and corrected the default value for Y Axis Shield Aiming.
* Add toggle option for save states, off by default, with significant warning about what they actually do before enabling (double checkbox confirmation).
Add overlay text notification when attempting to use any of the state hotkeys if save states aren't enabled. Stays up for 6 seconds.
* Added coloration (yellow and orange) to the warning header.
* A little more clarification in the warning.
* Work on Voice rando
Todo: rename rest of entries and reorganize it into a new tab
* Finish going through voices for audio editor
Also make it, it's own tab. Added the option.
* Fixed adult link voices and recounted sound effects/voices
* Remove option
* Update soh/soh/Enhancements/audio/AudioCollection.h
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* Remove commented out voices from sfx section
* fix spacing
---------
Co-authored-by: LuigiXHero <LuigiXHero@gmail.com>
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* Initial attempt
* Fix rendering for most items
* Fixed icon sizes and reorganized icons
* Fix equipment, quest & upgrade icons
* Add colors to the song icons
* Remove box, clean up code & move seed hash icons to top
* Start with counters, fix copy & erase and show spoiler log hash icons
* Add icons for upgrades
* Draw icons for counters
* Initial counter work
* Fix counter digits positioning
* Prevent crashes when over 999 deaths (save editor)
* Add greg to tracker when in a rando save
* Fix color for counter digits using the wrong buffer
* Add double defense icon
* Addressed code review
* Remove unneeded checks against 0
* implement for install method packagers
* use std::filesystem::temp_directory_path
* absolutely impeccable
* include libultraship proof
* fix windows compilation
* rename "Installation" back to "Bundle"
---------
Co-authored-by: Alto1772 <56553686+Alto1772@users.noreply.github.com>
* fix rando gen crash when not enough remaining items to place
* fix rando gen crash due to missing granny shop hint
* add error sound if rando gen fails
* rewrite the logic to check for CRC32 at runtime
* fix include for windows
* fix pragmas
* more clang fixes
* MORE
* Please apple
* I hate this
* MAC AGAIN
* Clarify the ifdefs
* ARM64 fixes
* Reduce length of overflow prone item names
* Overhaul Trick Names and change Desert Waterfall to Valley waterfall
* Readd some old Trick names, Change Trick name table to a vector, improve french translations.
* Resolve#2682
* Add check for animation count to prevent continuing final saw textbox while putaway is happening.
* Added Fix toggle for it. Enabling Skip Text forces the behavior, regardless of previous selection for the Fix toggle itself (so it works if you have the Fix toggle enabled, or if you have Skip Text enabled).
* Clarified the comment in `z_en_toryo`.
* 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.
* fix pal11 ganondorf falling platform offsets
* fix pal11 dins fire offsets
* add game region and platform methods
* fix pal11 file menu options
* move
* mirror fishing rod
* mirror ivan fairy controls
* add mirror dungeons only option
* mirror sold out GI texture
* update dungeons mirror mode for more options
* maybe don't include that
* Modified `SaveManager::AddSaveFunction` to return the section index assigned to the section name for ease of remembering it on the other end. Also added a clarifying comment.
* Modified SaveFunc to accept a boolean for whether the section is being saved individually or as part of a game save (fullSave == true means game save, so all sections registered for game save sync).
* Tweaks to extra modes menu
* Update soh/soh/config/ConfigUpdaters.cpp
Co-authored-by: Christopher Leggett <chris@leggett.dev>
---------
Co-authored-by: Christopher Leggett <chris@leggett.dev>
* hide menu bar from menu bar
* show `-` on switch/wii u
* actually show `-`
* actually put the thing in a place where it works
* spacers
* reorder and use `[-]` instead of `-`
---------
Co-authored-by: briaguya <briaguya@alice>
* linux local debug working
* built in extraction working on linux
* try a thing
* one more thing to try
* try using dir
* does this get the subdirectories?
* component before pattern
* loop i guess
* maybe component was the issue?
* zapd stuff i guess
* maybe this
* this feels promising
* g != q
* appimage is working, try fixing glfw issue on windows
* don't copy zapd.exe
* hopefully this gets the things we need in the assets dir
* is that where those went?
* try another thing
* another thing to try
* grasping at straws
* cmake makes no sense sometimes
* really just trying anything here now
* this is what i was expecting to work
* ls
* try doing it without the cmake again
* i think this might do the trick
* try with a slash
* one more thing to try
* pal_oot.txt
* maybe this makes things work on mac
---------
Co-authored-by: briaguya <briaguya@alice>
* 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>
* WIP adding new config version.
* Implements a ConfigVersionUpdater
* Updates to account for new LUS-side changes.
* Change `ConfigVersionUpdater` to store `toVersion`
* fix typo
* only green the greg bridge not everything else
* another option
* do it the branch way
* tabs spaces blarg
* new dir
* use latest lus main
* latest lus main
---------
Co-authored-by: briaguya <briaguya@alice>
* use correct minimaps in randomizer
* fix minimap dungeon entrance placement
* rework topLeft0 check to be more readable
* who needs topLeft0 anyways
* move minimap hidden checks up higher
* 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>
* Initial PAL 1.1 support
* 1.1 Asset Fixes
* Fixed issue where N64 builds were being flagged as MQ
* Misc fixes
* Updated LUS submodule
* Fixed up logo strings
* Updated readme and linux/mac scripts with new hash
* reimplement stuff from 2879
* header include to fix build hopefully
* another header
* fix error
* remove header includes we don't have
* more error things
* a
* b
* c
* d
* e
* f
* g
* h
* use latest lus
---------
Co-authored-by: briaguya <briaguya@alice>
* Bump LUS
* Ship -> LUS namespace change
* z_scene_otr Ship -> LUS namespace
* Starting to get SoH to build with LUS imgui changes.
* start stuff
* gamecontroleditor build issues resolved maybe
* cosmetics editor and what not
* console
* actor viewer
* more stuff
* more stuff
* on to errors that make sense
* putting this down for a bit
* no idea what these errors mean now
* some kind of progress maybe
* latest lus main
* more
* back to linker errors and being lost
* Fixes command function signature.
* More fixes
* Even more fixes
* Bump LUS
* More Fixes.
* Fixes even more errors.
* lus bump
* input editor as var
* audio editor working
* it builds with this
* bump lus
* it opens
* bump lus to latest main again
* make sure to do all the command registering in debugconsole
* lus and what not
* switch type stuff plz
* undo
* do the thing that fixes the thing
* fix mac?
* correctly show/hide menubar on boot
* bump lus
* input blocking updates
* bump lus
* Bump LUS
* Press F1 to open enhancement menus moved to SoH
* lus and rendering backend stuff
* audio backend and lus
* Bump LUS
* Fixes WindowBackend dropdown
* Bump LUS
* misc -> utils and moves binarytools to utils.
* Window refactor
* bump lus
* make it work
* Fixes for moved files again
* Bump LUS
* Mercury -> Config
* Bump LUS
* Reacts to removed LUS hooks and bump LUS
* Remove Hook: GfxInit
* Removes debug audio_setgamevolume to 1
* use non-crashing branch of lus
* fix: make audio init work without hooks
* game icon stuff
* multifix bmp
* use input viewer class branch for now
* just "Ship" it's cleaner
* Bump LUS
* Removed ExitGame hook.
* Bump LUS
* Hook system removed from LUS.
* More LUS updates
* Changes to make window position saving.
* Bump LUS
* Bump LUS (for real)
* LUS resources now return a specialized pointer.
* Bump LUS
* Fixes issue in SetPathways::GetPointerSize
* Bump LUS to 1.0.0
* builds but crashes
* fix crash
* better macro names in debug console
* remove commeted out line
* remove redundant check tracker settings window logic
* remove commented out line
* move the *
* remove extra seqplayers enum def
* this sneaky little guy was hiding behind a wii u ifdef
* remove extra check tracker header
---------
Co-authored-by: Kenix <kenixwhisperwind@gmail.com>
Co-authored-by: briaguya <briaguya@alice>
* Trick and Glitch Rando UI implemented
* initial temp connection between ui and backend trick logic
Hacky way to connect the logic for testing. Ran into 1 crash but cannot reproduce
* UI overhaul to look more like AudioEditor tag section
* Mapped 3d tricks to enums and save cvar bug fixes
* Trick Logic Complete
Testing on whether the logic works as expected needs to be done
* Releasable trick version, tricks match text fixes also
* Remove 3D glitch logic location access
Easier to clean it up now than get confused
* Variable typo fix & initial trick enum reorganisation
* Removal of oot3d glitches
* bongo logic fix
* UI includes difficulty tags + cleanup and removal of glitched logic interface
* Bug fixes
* added enabled tricks to spoiler log
* comment clean up
* completed once over through logic
* merge fix
* update sohimgui to LUS
* Remove redundant 3d rando trick options
* Comment clean up
* Central GS Irons Logic Fix
* Farores wind central logic fix
---------
Co-authored-by: Christopher Leggett <chris@leggett.dev>
* First attempt at tracking hinted locations. Not looking promising for more than a hint tracker.
* Spoiler log now generates with human-readable hinted area, type, and item for gossip stone hints.
* Hints now only output location if their hint text specifically states the check. Any overworld or dungeon region hint no longer does.
* Expanded gossip stone hints to include item, hinted location and area, and `RandomizerGet` names. Currently only English names.
Part of this required changing `HintType` into a `typedef enum` instead of an `enum class` to allow usage in a .c filespace, and consolidating types from `randomizer_check_objects.h` to `randomizerTypes.h`.
* Beginning of alter rewards information.
* Step 2 of altar reward info.
* Altar reward info (location and area) now writes to and reads from the spoiler log. Added a few entries to `SpoilerfileAreaNameToEnum` to accommodate area name variants from region hint names.
* Streamlined altar data (only needed location name for `RandomizerCheck` translation. `RandomizerCheck` provides access to `RandomizerCheckArea` via `RandomizerCheckObject`).
Added Light Arrows, Greg, and Dampe's Hookshot hint locations to write and read of the spoiler.
* Fix attempts to lookup values in `hintTypeNames` as array, now uses map's `find()`.
* 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>
* 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>
* Some reason not working
* Fixes and formatting
Moved the LACS Stones to be before the Medallions in all instances to line up with the Bridge requirements and because it just makes sense
* Removed unnecessary space
* Missed one
* Add Checkbox in Extra Modes
Spawn Code in mods.cpp
Category Change for Clear Room Exclusion
Kill Actor if Mode is Disabled
* Fix non door scene changes and adds a delay to avoid misfiring or not firing on quick room changes like falling to B1 in Tree and Lost Woods loading triggers.
* Requested Updates
* Add brightness control and on/off toggle for tunic LED colors.
* Removed toggle, mentioned brightness of 0% for turning off LEDs.
* Set up grabbing tunic color values from Cosmetics Editor for cosmetics sync.
* Why these stupid differences between Windows and Linux compilers?
* Fix Mac build errors? Also try to move the color fetching back into the switch statements to lessen potential computational load.
* Real fix?
* Move "Customize Game Controls" button under "Controller Configuration" button under Settings -> Controller. Renamed "Controller Configuration" to "Configure Controller" and "Customize Game Controls" to "Customize In-game Controls"
* Added LEDColor and LEDColorSource enums for code clarity.
Moved controller LED brightness to new LED Colors group in "Customize In-game Controls" menu.
Added combobox to choose between vanilla tunics, cosmetics tunics, health, and custom as color sources.
Added critical health override checkbox to allow display of red when health is low even when other sources are selected.
Port color pickers have not been implemented yet, default color is white.
* Moved LED control to OTRControllerCallback and wrapped it in a check to `CanSetLed()`.
* Move settings to Port 1 tab in Customize In-game Controls and limited application of colors in `OTRControllerCallback` to port 1.
* UI clarity updates.
* Removed unnecessary LED color enum.
Added custom color picker to port 1 color settings.
* Changed Critical Health Override default to true.
* Modified logic to not do color fetching and instead default to {0,0,0,0} when brightness is off.
* Fix bad cvar string for custom color.
* Cleaning up some post-merge artifacts.
* Update soh/soh/Enhancements/controls/GameControlEditor.h
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Some name changes.
* idea for cleaning up controller callback stuff
* Rearranged color source checks to make sure criticalOverride is applied regardless of other settings.
---------
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
Co-authored-by: briaguya <briaguya@alice>
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.
* Adds const specifiers to some appropriate functions.
* Implements move semantics for ReplaceStringInMessage.
Should result in much fewer allocations when rendering custom messages during a Randomizer playthrough.
* Implements some more move semantics.
* First pass on improved Custom Messages API.
This should allow for fewer allocations during randomizer seed generation and runtime, plus a couple of other enhancements that utilize custom messages. It does this by taking advantage of move semantics to prevent extraneous allocations when string literals are passed in. It also takes advantage of OOP to hopefully end up with a cleaner API.
* Additional API/allocation related improvements.
* Removes an unnecessary destructor and constructor.
* Updates documentation
* Adds a bit more documentation.
* Fixes switch build problem and minor syntax error
* Renames slightly unclear operator parameter
* Replaces magic numbers with LANGUAGE_MAX
Implemented subsectional saving (handled in the section's save function, and passed to the save function by & pointer). Default of "all" passed in from SaveFile for game saves.
Implemented subsectional saving for sohStats and entrances/scenes discovered.
Fixed check for game save registry by putting the check against the registry in the "all" section save code.
Fixed loading and saving of blank sceneTimestamps due to default construction of data structures during JSON loading making all "empty" entries have scene and room of 0.
Moved SoH stats initialization to `gameplaystats.cpp` via `SaveManager::AddInitFunction`.
Improved save file efficiency by adding code to not write any "empty" entries in `sceneTimestamps` (as determined by room and scene being 254) when saving, and initializing them to 254 if not loaded from the save file.
* RANDO: Fix logic with OGC and mixed entrance pools
Adds a `GANONS_CASTLE_LEDGE` area and a `BuiltRainbowBridge` logic var. Added an event to `GANONS_CASTLE_GROUNDS` that sets `BuiltRainbowBridge` to true. Adds Entrances for `GANONS_CASTLE_LEDGE` to `GANONS_CASTLE_GROUNDS` when `IsAdult` and `BuiltRainbowBridge` (or the glitched logic that lets you skip the rainbow bridge) are true, `HYRULE_CASTLE_GROUNDS` when `IsChild` is true, and `GANONS_CASTLE_ENTRYWAY` When IsAdult is true (if child enters `GANONS_CASTLE_LEDGE` in game they are in `HYRULE_CASTLE_GROUNDS` and thus cannot go back into GANONS_CASTLE_ENTRYWAY). Adds Entrance for `GANONS_CASTLE_GROUNDS` to `GANONS_CASTLE_LEDGE` when `BuiltRainbowBridge` is true, or when the glitched logic that lets you skip the Rainbow Bridge is true.
* Adds intermediate area for age-gating
* Fixes the logic for actually killing the skulltula
* Adds hammer crouch stab as a way to kill OGC_GS
* hacky fix for deku tree entrance
* lonlon windows
* only hack in one place instead of everywhere
* dehack deku
* goron city entrance
* gerudo cell, zd entrance
* kak windows
* fix pot house
* back to the hacks
* back back
* space
* globals
* just hack it together to fix em all
---------
Co-authored-by: briaguya <briaguya@alice>
* Refactor `Vec2f`, `Vec3f`, `Vec3s` in `z64math` to avoid reserved identifiers.
* Include `z64save` in SaveManager, which requires encapsulating `#include gameplaystats.h` and `InitStatTracker` in the cpp to fix compile issues.
Adds SaveContext reference parameters to SaveFunc and existing implementations in preparation for threaded saves.
* Threaded saves fully implemented.
Platform-specific save code removed.
Thread safety added. Will wait for thread pool tasks to finish before resetting or closing.
* Converted gSaveContext copy for save threads to the heap with `new`, deleted at the end of the threaded function to prevent possible issues with the stack.
* Turns out leaving the call to `ThreadPoolWait` in a `GameInteractor::OnExitGame` hook seems to be just fine.
* Removed unnecessary references to `SaveManager::ThreadPoolWait()`, game hooks are the only places it's called now.
* Re-added WiiU/Switch performance save code.
* Added call to `SaveManager::ThreadPoolWait` in `Sram_InitSave` to prevent trying to load a newly "created" save before the save file was actually written.
---------
Co-authored-by: Christopher Leggett <chris@leggett.dev>
* Changes for LUS renames in ResourceManager and Archive.
* Moves WriteSaveFile and ReadSaveFile to SaveManager.
* Removes ImGui namespace.
* Bump LUS
* Updates gitignore for intellij projects.
* Controller usage is now up to date with newest LUS.
* Adapters for removal of Controller.WriteToSource from LUS.
* Uses correct capitalization on Controller.GetProfile()
* Bump LUS
---------
Co-authored-by: Christopher Leggett <chris@leggett.dev>
for some reason we were getting garbage data in cvarNameMargins when doing things the `const char *` way. i wasn't able to figure out why that was getting garbage but this makes it so we don't get garbage in there
Co-authored-by: briaguya <briaguya@alice>
* TWEAK: Rupee dash duplication
Rupee dash was duplicated while being moved over the EXTRA MODES, so this fixes the duplication and put it only there
* Update soh/soh/GameMenuBar.cpp
---------
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* hack that makes it so custom models still work on scene transition
* Update soh/soh/OTRGlobals.cpp
Co-authored-by: Nicholas Estelami <NEstelami@users.noreply.github.com>
* naming/formatting
---------
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: Nicholas Estelami <NEstelami@users.noreply.github.com>
* 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>
* add version info and other details to windows exe properties
* configure properties file directly to src dir
* move version name in properties and change to Title Case
* add granny shuffle to 3ds code
* add granny shuffle to soh randomizer
* make granny hand out merchant check
* have medigoron set pending sale mod
* capitalize granny shop item
Heart Pieces and Heart Containers normally refill Links health when the text box with their respective textID is closed.
However, with shops and shopsanity, after receiving the heart piece, the textbox isn't actually closed. The shop keeper keeps it open to prompt the player if they want to continue shopping. This prevents the health refill logic from running.
This PR adds a check for these items in the BuyEvent for randomizer items and manually refills Links health.
The logic for showing/hiding Vanilla/MQ dungeon locations in the exclusion tab was not accounting for the case if MQ dungeons is set to "Random".
This rewrites the logic check to account for all 3 cases, and only looks at the count value when set to "Set Number".
Also the CVar get for MQ count needs to default to 12 instead 0, to match the declared default behavior everywhere else.
* update
* Update generate-builds.yml
* Update generate-builds.yml
* sohotr in CI?
* paths
* gitignore soh.otr
* Fix
* no COMMAND maybe?
* try generating otr as it's own step
* deps
* f
* g
* h
* a
* cc
* ccc
* m
* blarg
* try uploading
* try
* s
* copy things
* wii u?
* wiiu
* don't fail
* windows without cpack?
* wut
* whoops
* see all the things plz
* b
* v
* zip working maybe
* ok but this tho
* pdb and switch
* mac lus
* soh.otr in appimage
* down first
* mac
* bundle soh otr into mac app and read it from the bundle
* appimage fix
* try just downloading for mac?
* i like to mv it mv it
* mv to the right place
* no more otrgui
* bring back otrgui and assets
* echo blarg
* echo
* zapd.exe
* clean and remove
* a
* space
---------
Co-authored-by: louis <louist103@gmail.com>
Co-authored-by: louist103 <35883445+louist103@users.noreply.github.com>
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: Adam Bird <archez39@me.com>
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
* 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
* Link voice pitch v0
* Using a new variable instead
* Move voice pitch slider to Options tab
* fallback to original behavior if freqMultiplier is set to 1
* Move reset button to Options tab with its slider
* Fix voice pitch slider width in Options tab
* [Review] Always use freqMultiplier
* fix link the gorons text ids in rando
* document goron link flags
* check for fire temple clear instead of medallion for link goron
* stop goron link from shivering after opening doors and have big rolling goron resume rolling after giving check
* remove unneeded rando check
* add comments
* 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
* Nighttime GS Always Spawn
* add hook onSceneSpawnActors
* implement onSceneSpawnActors hook to spawn GS in various day scenes
* handle the kak tree skull during the day
* Update mods.cpp
* Add the &
* Fixes
* Update soh/soh/Enhancements/mods.cpp
Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
---------
Co-authored-by: Adam Bird <archez39@me.com>
Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
* ADD: Time Saver --> Time Travel with the Song of Time
Co-Authored-By: aMannus <4244591+aMannus@users.noreply.github.com>
Co-Authored-By: David Chavez <david@dcvz.io>
* TWEAK: one liner for the gPlayState check
* ADD: Time Saver --> Time Travel with the Song of Time
Co-Authored-By: aMannus <4244591+aMannus@users.noreply.github.com>
Co-Authored-By: David Chavez <david@dcvz.io>
* TWEAK: one liner for the gPlayState check
* Timetravel stuff
* tweazk oopsies
* Fixes timeline
* tweak frog dist
* ADD: Time Saver --> Time Travel with the Song of Time
Co-Authored-By: aMannus <4244591+aMannus@users.noreply.github.com>
Co-Authored-By: David Chavez <david@dcvz.io>
* TWEAK: one liner for the gPlayState check
* Timetravel stuff
* tweazk oopsies
* Fixes timeline
* tweak frog dist
* oppsie²
* del dupe
* del dupe
* tweak tooltip
---------
Co-authored-by: aMannus <4244591+aMannus@users.noreply.github.com>
Co-authored-by: David Chavez <david@dcvz.io>
* Update README.md
Changed some murky language with respect to the "mods" folder location.
* Update README.md
* Update README.md
Readme overhaul for more consistent language and some updated instruction. Truncated certain sections, removed archaic instructions, elaborated where needed.
* Update README.md
* Update README.md
Does version info belong in additional setup info? Changing that.
* Update README.md
Making suggested changes.
* Update README.md
Made recommended changes.
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).
* Change sliders to have +/- buttons by default
* Remove unnecessary margin setting
* Add +/- buttons to remaining sliders and fix some broken UI
* Update EnhancementComboBox to not need array size
* Remove redundant widgets from randomizer
* Miscellaneous fixes
* Fix Switch build break
* Consolidate disabled styling in widgets
* Simplify widget logic
* Merge with most recent PRs
* Fix audio fanfare and sound effect sliders mixup
* Fix sliders being one button too wide
* Fix sliders being too long
* Fix sliders being too long on console
* Modifies custom sequence loading to bypass other sounds being loaded in AudioCollection to fix missing custom sequences on load.
* Modified `audio_load`'s sequenceMap allocation to utilize `AudioCollection`'s sequenceMap size to account for all audio assets already loaded into that sequenceMap. This gives a non-arbitrary number in addition to the vanilla sequence count to allocate with for `audio_load`'s sequenceMap.
Added `HasSequenceNum` to `AudioCollection` as well to streamline the check against `AudioCollection`'s sequenceMap to skip the non-sequence assets in there.
Added clarification comment for seqNum and MAX_AUTHENTIC_SEQID section.
* Clarified comment about AudioCollection seqNum and MAX_AUTHENTIC_SEQID.
* A bit more on comment from the last commit.
* 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>
* Modified Affordable logic to select randomly from 10, 105, 205, and 505 depending on the selected wallet tier. Updated the tooltip to reflect.
* Clarified logic in comments and variable names.
* Streamlined affordable check for starter wallet.
One more function comment.
* More streamlining of affordable price generation, comment clarification.
* 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.
This leaves the default of 10.15, but allows a user to change it in the
cache. When using Homebrew libraries on newer macOS version, the linker
emits warnings:
```
ld: warning: dylib (/opt/homebrew/lib/libSDL2.dylib) was built
for newer macOS version (13.0) than being linked (11.0)
```
I use PyEnv and rebuilding after recent commits was giving me a cmake error about not being able to find the Python3 executable. Advising other users who might run into this problem on how to fix it.
* 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>
* Restored vanilla pause buffering and input behavior broken by 'easy frame advance' cheat
Currently, holding A and repeatedly pausing and unpausing will cause that A input to be repeated, resulting in Link rolling without additional A inputs. Similarly, holding Z and unpausing in front of a candidate actor will cause Link to switch Z-targeting to that actor.
As a side effect, this also does not allow inputs to be buffered before the Subscreen has finished its closing animation, which is how vanilla also works. This is slightly unfortunate because the "freeze" before the game resumes is considerably shorter in Shipwright, but it'd be better to implement a fake delay there if we want to make it more forgiving.
* Fixed writing past end of the buffer when loading personal item tracker notes longer than 8 characters
* Revert "Fixed writing past end of the buffer when loading personal item tracker notes longer than 8 characters"
This reverts commit 721c18d488.
* ss2
* Remove Comments and Rupees when dead.
* Rupees removal for real
* Updated Inline formatting as well as changed Mode Idenitifier from Super Sonic to Rupee Dash.
* Add OnPlayerUpdate hook
* Move rupee dash to hooks
* Update comment for DashInterval
* ss2
* Remove Comments and Rupees when dead.
* Rupees removal for real
* Updated Inline formatting as well as changed Mode Idenitifier from Super Sonic to Rupee Dash.
* Add OnPlayerUpdate hook
* Move rupee dash to hooks
* Update comment for DashInterval
* Update Health to not crash on less than 16 units.
* lus
* fix build, use `Health_ChangeBy`
---------
Co-authored-by: Caladius <Caladius@users.noreply.github.com>
Co-authored-by: David Chavez <david@dcvz.io>
* add loadgame/exitgame GI hooks
* implement loadgame/exitgame hooks in game code
* move entrance tracker data lifecycle to hooks
* update cosmetic editor to update onloadgame hook
* Restore greg stuff
* Cleanup
* Actually check for Greg when creating Greg hint
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* whoops
* Update soh/soh/Enhancements/randomizer/3drando/hints.cpp
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* fix greg hint crash, clean up hint generation (clear out hints when setting is off)
* update vanillafill too
* fix text id, parse json, expand array to fit hint
* actually parse/use greg hint RSK
* specify "after buying a key" in hover text hint
---------
Co-authored-by: David Chavez <david@dcvz.io>
Co-authored-by: Ralphie Morell <stratomaster64@gmail.com>
* make greg bridge more greg
* use green rupee color from cosmetics editor
* use hooks to not patch/unpatch every frame
* use gi hook
---------
Co-authored-by: briaguya <briaguya@alice>
* Adds price range select box for shopsanity when shopsanity is 1 or more items.
Default option is the original functionality, now under "Random" select option.
Other options include Affordable, which makes each item 10 rupees, and one option for each level of wallet available with shopsanity, where each wallet's max capacity is the upper limit on the price randomization. These still go in 5 rupee increments, like Random.
Also keeps track of and saves/loads settings appropriately on game start.
* Changed "Random" default shopsanity price selection to "Balanced" to be more properly descriptive.
Refactored GetRandomShopPrice to try to keep Balanced as the default, with a sane fallback price of 150 should the weighted randomizer somehow fail.
* Missed one change from Random to Balanced.
* Changed wallet range to minimum of 5, and removed the multiple of 5 requirement (full rando within range).
* Modified the system to add a checkbox for affordability which then adds a price cap that is just above the max value of the previous wallet tier. Effectively this keeps the wallet lock in place, but prevents anything from getting more expensive than 5 past the previous tier.
* Fixed hover help text and tooltip formatting.
* Changed wallet ranges to generate multiples of 5. May need weighted generation after playtesting.
* update writealllocations to always write trickname and start seeing where things break
* handle simple vs complex items
* always grab a trick name
---------
Co-authored-by: briaguya <briaguya@alice>
* Hide return transitions for dungeon, grotto and interior entrances when "Decouple entrances" is off.
* "Highlight last entrance" now highlights the override reverseIndex entry in the list if "Decouple entrances" is off, to correspond with not displaying return directions for the same setting (without this, nothing gets highlighted with the return transitions hidden with "Decouple entrances" off).
* Removed unnecessary printf
* Moved redundancy check to filtering loop instead of display loop.
Introduced setting to optionally force showing redundant entrances when decoupled is off.
Formatting changes suggested by Archez.
* Changed "show redundant" to "hide reverse" where applicable, and change
Added option disabling based on Decouple Entrances.
* Finished descriptive comment.
* Moved "Hide reverse" to left column of tracker settings.
Changed to PaddedEnhancementCheckbox, changed checkbox padding accordingly, and set default to true.
* Restore tooltip to Hide Reverse option, fix default value.
Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
* Restored padding underneath last option in entrance tracker List Items section.
---------
Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
* Rename "SFX Editor" to "Audio Editor"
* Move some functionality out into a new class `AudioCollection`
* Add a tab to exclude sfx/sequences from shuffle pool
---------
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: briaguya <briaguya>
Co-authored-by: David Chavez <david@dcvz.io>
* Update z_camera.c
* Update GameControlEditor.cpp
* Update GameControlEditor.cpp
* Update GameControlEditor.cpp
Adding Sliders for first person X and Y axis
* Update z_player.c
Modified variables to allowed separate sensitivity settings for x and y axis
* Update z_camera.c
* Revert "Update z_camera.c"
* Update GameMenuBar.cpp
Added tickbox for NoFPChus
* Update z_player.c
Added check for Disable First Person Bomchus enhancement
* Update z_player.c
Removed comment as statement is clear on its own
* Update GameMenuBar.cpp
* Allows strings to be used for rando seed hashes;
updated conversion method from `stoi` to `stoul`
* apply suggestions
* Allow spaces + autoselect on input field focus
* Added new text filter; applied suggestions
* leaving 3d rando logic alone
* Apply more suggestions
* Revert buffer size to 1024
* Projectile ammo matches ItemAction instead of age
extracted logic from months-old PR
* Added cvar under "Enhancements -> Gameplay -> Items" for bow/slingshot ammo
* Update GameMenuBar.cpp
* fix entrance init and entrance tracker not working properly when no spoiler log is loaded
* fix rando adult trade spoilable items reverting when no spoiler log loaded
* fix market night escape to work with entrance rando; adjust HF bridge spawn to not have link fall in water at night
* use scene enums for ER logic instead of magic nums
* fix sun song loading are with wrong link position with grotto shuffle on
* Update soh/soh/Enhancements/randomizer/randomizer_entrance.c
* TWEAK: Controller Navigation rename + tooltip
* TWEAK: add back FW
* TWEAK: Button size + name
* TWEAK: Tooltip and text position
* TWEAK: added a PaddedSeparator
* TWEAK: Removed the padding from aMannus Request
* Moves SoH mixer to SoH from LUS.
* Debug camera now works in SoH, but mempak saving does not (yet).
* Debug camera is now enabled/disabled based on the gDebugEnabled cvar.
* Updates OTRGlobals comments
* Updates OTRGlobals comments
* Increases the actual block pushing speed.
Previously this enhancement only decreased the delay between pushes in any noticeable way because the top speed of the blocks was clamped. The enhancement now increases the top speed of the blocks according to the slider's value.
* Applies previous changes to milk crates.
* Applies same fix to fire temple stone blocks
(I believe these are the ones with the faces on them)
* Applies fixes to Poe painting blocks (forest temple)
* Begin GameInteractor
* Basic skeleton of PoC
* WIP
* First 2 CC effects transitioned to GameInteractor
* Prepare GameInteractor classes for CrowdControl
* More effects & replace chaosEffects with GameInteractor
* CC connection fixes & all CC effects (enemy spawns still borked)
* First couple of build error fixes
* Fix build
* Proper enemy spawning
* Clean up old CC code
* Extract link size/invisibility into GameInteractor
* Small fix/cleanup
* Suggestions for PR
* Address PR comment
* Addressed more comments & small adjustments
* Fix crash when spawning enemies
* Remove Remove()
* Move checks into Apply() and move CC and some console commands to it
* Use inheritance to abstract check on application
* Rename prefix Actions with RawAction
* Make Remove return a Result
* Fix issue with compilation
* debugconsole -> GameInteractionEffects progress
* Add State in GI
* Unify some Effects
* Port more debug console items
* Remove state modifyiers from raw actions
* Port over last raw action / state in console
* Adjust some types
* Consolidate link size modifier effect
* Adjust more types
* Define category strings in CC
* Clean up remaining non defined strings
* Fix bug in timed effects
* Rename old pack
* CC fixes
* Translate GI enum function
* Console cleanup/fixes/consistency
Co-authored-by: David Chavez <david@dcvz.io>
* fix: add missing comma to fix oob
* bring back some old rupee names, remove some that don't render properly
Co-authored-by: briaguya <briaguya@alice>
* Add enhancement for dog following you everywhere
* Persist dogParams to save file
* Make doggo float in water
* Wrap change in cvar condition and update cvar usage
* Finish translations for Map Select
* First Pass
* TWEAK: Add back Japanese as default to conserve vanilla
* TWEAK: replace some array with structs + some translations
* TWEAK: loading messages [TODO: proper translations]
* TWEAK: forgot to push z64.h for loading messages + translated scene type
* TWEAK: spacing
* TWEAK: comment
* TWEAK: Small german OPT position
* TWEAK: german typo
* TWEAK: translation to cutsceneLabels
* TWEAK: Nabooru's name + Lairs
* TWEAK: Updated Cvar to new way to call them
* ADD: German
* Debug localization
* TWEAK: Age
They are noted as a flag thingy and not a literal age
* Tweak: Frogot the Great Fairy
* TWEAK: adressed comment
Co-authored-by: Amaro Martínez <xoas@airmail.cc>
* audio & rendering backend option greyed out if theres only one
* add audio fallback code
* InitializeAudioPlayer/WindowManager add param
* string -> string_view
* Revert "audio & rendering backend option greyed out if theres only one"
This reverts commit e94a7fff50.
* revert lus changes
* moved fallback function to LUS
* use audioplayerbridge
* full health spawn
Co-authored-by: MoriyaFaith <46070717+MoriyaFaith@users.noreply.github.com>
* add enahancement to gamemenubar, update to use new cvar method names, simplify save loading logic so loading a save with less than 3 hearts spawns with full hearts with enhancement enabled instead of spawing with 3
* formatting
Co-authored-by: MoriyaFaith <46070717+MoriyaFaith@users.noreply.github.com>
when pulling in documentation i missed a couple returns
this was causing mido to never stop blocking the path to the deku tree
after searchign the codebase, i found two instances of this mistake
this pr fixes them
Co-authored-by: briaguya <briaguya@alice>
* Update BUILDING.md
Adds a note to be sure to pull in libultraship when building for Windows
* Fix syntax for consistency
* Maybe this is better?
I'm doing great. XD
* New function: overlay text duration in seconds.
`Overlay_DisplayText` took a float as an argument, with no clear indication of what that float represented. That float also evaluates to different durations given different frame rates. However, since we know what the frame rate should be at any given time (since it's stored in a CVar) we can calculate what this duration should be based on the number of seconds we want the overlay to be displayed. That's what `Overlay_DisplayText_Seconds` does.
* Adds Slider for Overlay Sequence Name Durations
* sync 3ds upstream logic changes for boss rooms
* add boss shuffle settings and handling to 3ds code
* add boss shuffle handling to game code
* repair authentically bugged entrances for boss shuffle
* add boss entrances to the entrance tracker
* unset hint area for boss rooms to fix altar hint
* update boss reward hints to not mention dungeons
* one more boss heart container hint fix
* reorder entrance rando funcs
* support closed forest with boss shuffle and simple boss room entrance pairs in shuffle table
* fix death warp in boss rooms without saving; fix KD boss room in tracker
* remove boss shuffle check from dungeon open checks and some cleanups
* add boss shuffle to preset clear
* remove dungeon entry exit connection from boss rooms
* another no hint fix for boss shuffle
* undo change for exact location hints
* clarify comments
* Added too much
* Added 3d settings and brought over to soh
* fixed conditionals for replacing LA hint
* whoops
* Finshed making settings consistent; minor text edit
* fix leftovers from adding warp hints
* more fixes from merge
* fix skull hint messages
* Added fire temple goron junk hints; menu stuff
* Address feedback
* Added optional scrub text
* whoops
* Add hint cvars to clear preset func
* whoops again
* whoops the third
* ADD: French Pass
* FIXED: Dampe + Skull Reward
* TWEAK: German skulltula hint
* TWEAK: French oopsie
* Address feedback
* whoops
* remove "staticness" from altar/ganon text funcs
* ADD: German
* actually add warp song hints to things;
always generate ganon hint and let OTRGlobals handle showing it
* Fix CVar Getters
* whoops
* for real this time
* Actually implemented scrub text in 3d rando
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
* Adds option to add higher pitches to silver rupee jingle.
Some rooms in Master Quest had 10 silver rupees, but the game was programmed to only play the jingle 5 times and then just went silent for the rest. This option adds 5 more transposition values to the array, and an option to play them (so that authentic behavior is preserved by default).
* Adds the new option to Vanilla Plus preset and up
Also adds it to the list to be reset back to 0 when applying the default preset.
* Changes display name of checkbox.
* Change CVar_GetS32 to CVarGetInteger
* Adds option for showing sequence names on the overlay
Allows sequences to appear on the overlay in the bottom right corner for a few seconds whenever a new one is loaded into the primary sequence player. This means it does not apply to fanfares or enemy bgm. Fanfares I chose not to display because it would cause a lot of text to display back to back in some areas, and enemy bgm would have some technical challenges with this due to the way it loads. Mainly because the Lost Woods music would load in Goron City the same way (as well as the opposite).
* Fixes crash when a sequence without a name is attempted to be displayed.
* Removes accidentally committed CMakeSettings.json
* Updates CVar_GetS32 to CVarGetInteger
* Adds lock/unlock all buttons to Cosmetics Editor.
Adds Lock All and Unlock All, which locks all visible cosmetics options (i.e. does not lock the advanced options if Advanced isn't checked, just like the existing randomize all buttons), and a Lock All Advanced and Unlock All Advanced button that is only visible while the Advanced Options are enabled.
* Updates latest develop and CVar API Changes.
* Revert "Fix Ganondorf boss battle ending (MQ only) (#2072)"
This reverts commit 52b896271c.
* yolo this should work
* finish comment
* see if this doesn't lag switches!
* formatting
* formatting
Co-authored-by: briaguya <briaguya@alice>
* Fixes randomization of individual sound effects.
* Re-adds the mistakenly removed const specifier.
* Implements new randomization syntax that actually fixes the crash.
* Increases default width of sfx editor menu.
The default width was cutting off a lot of the text in the dropdowns due to the added Randomize button.
* TWEAK: Some Rando Text
French and German tweaks (German made by Timmy_GamerNepgear on Discord)
Tweak: water control level style to fits Navi's style textboxes
* TWEAK: %c instead of %w
* Fixes receiving the wrong item when picking up ammo drops near a chest.
Still shows the wrong model above links head but does give the right
item and shows the right text.
* Fixes get item model during first time pickup anim near chest.
* Revert json key changes in save v1 and v2
* Introduce save v3
* Add workaround for breaking save compatibility in 5.1.0
* Handle scarecrow long song a bit differently since the array is never empty
* fix: set color picker alpha on reset
Fixes a bug where the colour picker enhancement widget without alpha uses a garbage value for alpha on reset
Co-authored-by: sonoftunk <sonoftunk@gmail.com>
* formatting
Co-authored-by: sonoftunk <sonoftunk@gmail.com>
Co-authored-by: briaguya <briaguya@alice>
* Initial camera distance slider
* works with freecam
* improving the settings configurability, adding distance slider and transition speed for the free camera
adding seperate sensitivity and invert settings for aiming/first person camera
* spelling
* tooltip msg on camera invvert
* typos
* removing the original free camera checkbox in experimental menu
* adding name change to new presets file
Co-authored-by: RaelCappra <rael.cappra@gmail.com>
* added fix option to fix camera swing; Fixes camera getting stuck on collision when standing still, also fixes slight shift back in camera when stop moving
* add option to fix hang off ledge swing rate; Fixes camera swing rate when player falls of a ledge and camera swings around
* adding camera fixes to preset list
* Removes problematic sequences from the list.
These sequences were part of the ending and credits and thus didn't loop correctly.
* Readds problematic sequences as `SEQ_NOSHUFFLE`
* add lake hylia water control system
* fix actor spawn params
* remove non-working switch details
* adjust french translation
* fix object spawn
* use flag funcs
* use renamed eventchk flag for raise lh water
* Initial Auto-Location Tracking
* Updates styling for checked items in Check Tracker
* Fixes crashing issues with Check Tracker rendering
* Auto scroll Check Tracker windows to current area
* Checks Tracker only shows checked locations once in game
* Fixes issue where Check Tracker would auto-scroll to wrong location when entering a grotto
* Fixes gerudo fortress checks showing in tracker when settings have them removed
* InfTable Check Location Fixes: Lost Dog Richard, Rolling Gorons, HBA 1000, Thawed Zora
* Fixes most Event Chk Inf Checks on Check Tracker, and Frogs
* Check Tracker - Song from Malon now works
* Check Tracker
- Fixes Claim Check check not tracking
- Fixes spoiler for Claim Check check when getting Biggoron's Sword
- Fixes LACS being spoiled and not tracking
* Check Tracker - Fixes#2 for Skull Mask and Mask of Truth checks
* Check Tracker
- Adds support for merchants
- Fixes#7 for Bomchu Salesman
- Fixes#12 for Medigoron
* Check Tracker - Fixes#8 for Song from Saria
* Check Tracker - Fixes#9 for Adult Shooting Gallery
* Check Tracker - Fixes#10 for Composer Grave
* Check Tracker - Fixes#14 for Song from Ocarina of Time
* Check Tracker - Fixes#16 for Shooting the Sun
* Check Tracker - Fixes#19 for Darunia's Joy
* Save Editor - Adds missing label for Treasure Chest Game
* Check Tracker - Fixes Great Faries checks
* Check Tracker - Fixes Sheik at Temple
* Check Tracker - Fixes Great Fairy auto-scroll to wrong location
* Check Tracker - Updates blue warp checks
- Fixes Bongo Bongo and Twinrova checks
* Check Tracker - Fixes Dampe's Gravedigging Tour
* Check Tracker - Fixes Prescription to King Zora
* Check Tracker - Fixes Bazaar showing under wrong area on tracker between adult/child
* Check Tracker - Fixes scroll for Hyrule Market and Bazaar
* Check Tracker - Fixes giving Adult Trade Items shown on tracker: Broken Sword, Saw, Cojiro, Eyeball Froge, and Eyedrops
* Cleans up item_location
* Check Tracker - Item List
- Fixes item list not updating when changing seeds/options
- Separates item exclusion list from item check list
- Clean up comments
* Check Tracker - Adds Skip functionality to buttons
* Check Tracker - Refactors adult trade items to RandomizerInf
* Check Tracker - Fixes an issue where any time an item is removed the tracker would cause an application crash
* Check Tracker - Item names are now dependent on file language
* Check Tracker - Fixes Gerudo Card check not showing in Fast setting
* Reorders headers to (hopefully) avoid CI build conflicts on linux/consoles
* Explicitly defines vector header in randomizer.h to fix compile errors
* Complete Refactor of Check Tracker ImGui
* Adds missing check tracker files to CMakeLists
* Reverts the Item_location whitespace cleanup from ad10807c
* Check Tracker - Loading Fixes
- Fixes a bug where loading a save file a second time would add all the checks again
- Fixes a bug where the check tracker would not render at all until in a save file
* Check Tracker - Fixes a bug where checks would sometimes fail to load
* Check Tracker - Fixes duplicated checks when using Only on Pause or Only on Combo
* Check Tracker - Works around issue where single characters don't show in EnhancementCombobox, and fixes a label for combo buttons held option
* Check Tracker - Applies all Check Tracker changes to Item Location
* Check Tracker - Updated Check List
- Adds Link's pocket, either in KF or HM depending on starting age
- Supports Scrubs and Merchants
- Uses enums instead of magic numbers
- Updates DC Scrub Short Names for MQ
* Check Tracker - Adds a performance mode option
* Check Tracker - List Fixes (requires new rando generation)
- Fixes Frogs Rupees always visible
- Fixes Kokiri Sword Chest not showing
- Fixes Weird Egg not showing
* Check Tracker - MQ List basic support
* Check Tracker - MQ/Vanilla anti-spoilers
* Check Tracker - Collecting a compass now spoils the area
* Check Tracker - Basic Vanilla Support and fixes
- Vanilla items show in check tracker, even if many won't auto check
- Fixes an issue with Gerudo Fortress Keys
- Refactors IsVisibleInCheckTracker to randomizer_check_tracjer
* Check Tracker - Fixes merge conflict from 08a487f35e
* Check Tracker - Fixes tracker loading as Floating when default value is set to Windowed
* Randomizer Location Exclusion List
- Adds Scrubs, Merchants, Shops. Adult Trade items, MQ Dungeons, and Bean Salesman
- Fixes Kokiri Sword Chest, Weird Egg, and Frog Song Rupees from misbehaving
- Updates Gerudo Fortress logic to be dependent on Open/Fast/Normal Fortress
- Removes Invalid Check
- Adds RO Enum for MQ settings
- Updates magic values to RO enum
* Location Exclusion List - Scrubs that are always randomized now always show on the list
* For now, removes some extra code only needed for a Check Tracker.
* Randomizer Location Exclusion List - Fixes Eyeball Frog from showing up when Adult Trade Items was off
* Location Tracker - Updates Eyedrops to use RandomizerInf instead of Chest
* Check Tracker - Fixes a bug where Link's Pocket item wasn't acting as checked for area item count
* Check Tracker - Fixes a bug where Locations would incorrectly say Vanilla due to the first check in the area being a non-MQ check
* Check Tracker - Fixes a crash when Check Tracker is docked but not visible
* Check Tracker - Fixes areas being spoiled when loading different save files
* Check Tracker - Only reset variables if they are initialized
* Check Tracker - Cleans up old comments, unused variables, methods, and macros, adds language TODOs,
* Check Tracker - Readds rainbow UI elements after Cosmetics Editor refactor
* Check Tracker - Removal of flag lookup that was refactored, no longer needed header, and some trivial whitespace fixes.
* Check Tracker - Refactors Index to Bitmask code to a macro
* Check Tracker - Changes ordering from alphabetical to RandomizerCheck ordering
* Check Tracker - Wraps everything in a namespace to avoid global variable usage
* Check Tracker - Explicitly defines for-loop scope
* Check Tracker - refactors dungeon lookup from static array to function
* Fixes a bug when using EnhancementColor with alpha
* Check Tracker - Refactors all colour to use direct conversions
* Check Tracker - refactors settings loading and check visibility for readability
* Check Tracker - Fixes a bug where the wrong label showed on the Check Tracker BG Color
* UIWidgets - Adds Alpha bar to EnhancementColor when using alpha parameter
* Randomizer Location Exclusion List
- Adds Scrubs, Merchants, Shops. Adult Trade items, MQ Dungeons, and Bean Salesman
- Fixes Kokiri Sword Chest, Weird Egg, and Frog Song Rupees from misbehaving
- Updates Gerudo Fortress logic to be dependent on Open/Fast/Normal Fortress
- Removes Invalid Check
- Adds RO Enum for MQ settings
- Updates magic values to RO enum
* Location Exclusion List - Scrubs that are always randomized now always show on the list
* For now, removes some extra code only needed for a Check Tracker.
* Randomizer Location Exclusion List - Fixes Eyeball Frog from showing up when Adult Trade Items was off
* Apply suggestions from code review
Location Exclusion List - Applies suggested dungeon item defaults
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Cosmetic Editor v3
* Workaround for cvar_clear not working correctly
* Nest RGBA values under Value key
* Implement arrow cosmetics
* Implement keese cosmetics
* Tweaks to life meter
* Implement file choose color
* Remove old title fire colors
* A few more silly things
* Fix from upstream pulls
* Fix hilts and sword during ganon cutscene
* Add slingshot
* Add metal trap and red ice
* Add iron knuckles cosmetics
* Add navi cosmetics
* Attempt to fix linux error
* adjust some comments and alignment
* Implement trails cosmetics
* Implement charged sword spins
* Comment out options that haven't been implemented
* Fix exploded rupee color in shooting gallery
* Add two silly options
* Add comments and minor changes from feedback
* Adjust comment about boomerang gem
* Gracefully handle chest textures missing
* Allows OTRExporter to parse pairs of .seq and .meta files
* Gets added sequences available to SfxEditor and playing in game.
* Some cleanup of the names appearing in the SfxEditor.
* Moves sequence swap lower in the audio command stack.
* Increases temp cache memory available on title/file-select screen.
Certain sequences wouldn't play on the file select and title screen
because they were too large to be cached.
* Introduces workaround for 255 sequence limit.
* Bug fixes and cleanup.
* Fixes bug where fanfares would sometimes disable the sequence player.
* Fixes bug causing certain areas to discard caches when loading enemy music.
* Fixes potential config-related crash by replacing invalid characters.
* Allows custom bgm to play in all BGM categories.
* Properly randomizes the custom tracks.
* Moves custom sequences to a patch OTR.
* If custom music was not loaded, fall back to default values.
* Prevents OOB crash on Synthwave array and adds octave drop feature.
Added octave drop to experimental features, which drops the octave of
a note that is too high for the audio engine to actually play. Without
this, some custom sequences have notes which cap at a specific value
and sound terrible. At least with this they will still harmonize with
the other notes. Experimental tab added to the SfxEditor to house
the checkbox for the octave drop feature.
* Adds more pool memory for a few tracks that couldn't fit.
* Some cleanup on the generated music archive process.
* Fixes missed memory boost from earlier.
* Adds ability to remove enemy proximity music.
* Applies correct cache policy to fanfares to prevent unloading sequences.
* Removes case-sensitiveness of the sequence type.
* Fixes not reverting to sequence after miniboss.
* Fixes transition to/from miniboss (again) and ocarina bug.
To be clear, fixes the more rampant portable ocarina bug present in my earlier builds, not the authentic one.
* Finally properly fixes transitions between sequences
For miniboss fights and SfxEditor previews.
* Removes unneeded boolean expression.
* Adds randomize button to individual SFX Editor entries.
* Fixes lost woods music overwriting goron city music.
* Plays swapped Hyrule Field music when transitioning to daytime.
* Fixes swapping Gerudo Valley music when transitioning from daytime.
* Updates custom sequence OTRPath to match SequenceOTRizer.
* Reverts changes to OTRExporter in favor of external tool
* Fixes formatting issues.
* Attempts to fix formatting issue in git diff.
* Should actually fix formatting issues.
* Should fix mac/linux exclusive build error.
* Fixes segfault on macos.
* sort custom seqs
* Fixes audioseq crash when under 255 seqs
* Removes magic numbers.
* Removes commented out code.
* fixes formatting in SfxEditor.h
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Cleans up the one hardcoded QueueSeqCmd call.
* Fixes unneeded erroneous memory boost applied earlier.
* Applies additional formatting/cleanliness suggestions from review
* Fixes small logic bug
Co-authored-by: RaelCappra <rael.cappra@gmail.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
This was causing an issue where hints were not being properly parsed,
because ParseHintLocationsFile was erroring out when trying to read
from a part of the json that didn't exist. Since that method is using
pokemon exception handling, it was failing silently.
This just makes it so the key in the spoiler log matches the key we're trying
to read (and brings it in line with the rest of the warp text names)
Co-authored-by: briaguya <briaguya>
* Extract MQ roms to oot-mq.otr as the game expects
* correctly export mq otrs and handle outside soh folder properly
* support mq export on old export method
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* initial pass for entrance tracker
* add search meta tags to entrance tracker data; clear entrance tracker on title screen
* rename to use playstate/play
* fix lus imports
* move discovered entrance info to SohStats struct
* Add scene info and highlighting to entrance tracker
* hide undiscovered text when searching
* add comments for entrance tracker
* fix merge conflict error
* account for zora river -> hyrule field water entrance in tracker
* fix assignement error
* remove unneeded defaults from debug file init
* adjust entrance tracker settings and add more search tags
* convert magic numbers to defines; add more comments to entrance tracker; clarify variable names
* add reverse index to entrance tracker data to compare with instead of using strings
* rename variables
* ADD: Rando German Custom Messages
Thanks to Timmy_GamerNepgear on Discord for the translation, I basically just formatted the text
* TWEAK: Forgot a small breakline
* use trial enum instead of magic numbers
* simplify trial count/random trial logic
* set default to set number
Co-authored-by: briaguya <briaguya@alice>
* Keeps default compiler flags.
* Updates github actions to use ninja and ccache for windows builds.
* Fixes ghactions to use MSVC.
* Removes commented out CMake code.
* First round of upstream updates and commenting patternss
* Renames from z64player
* Renames from z64save
* Undo changes to legacy save struct
* Add missing reference from entrance rando
* Fixes from stat tracker
* More tweaks
* Added git submodule to building instructions
* Fixed git submodule build instruction order
* Removed --recursive flag from git submodule building instructions
* Removed windows git submodule instruction
* fix int sliders to fill the window like float sliders
* add a spacer to make it consistent with float slider
* add a spacer to make it consistent with float slider
* adding pop width further constancy with float slider
* First test of gathering some gameplay stats
* timer changes and other stuff
* Move code to new files + rename
* Name change - gamePlayStats
* Finish rename, remove n64ddFlag checks
* Improve item get times
* Better time tracking, more stats,
* Put button under Enhancements
* Fix merge conflict
* Add pauseCount, fix bug with rando items
* Adjust inits/declarations
* step counter
* Name change: "itemGetTime" to "timestamp"
* Tidying + CI test
* Set up array for stat counts
* Macro
#define GAMEPLAYSTAT_TOTAL_TIME (gSaveContext.gameplayStats.playTimer / 2 + gSaveContext.gameplayStats.pauseTimer / 3)
* Add boss defeat timestamps
* Add sword swings, pots broken, bushes cut
* fix int type
* Add counts for enemies defeated
Broken down by enemy, with a total
* Add ammo used
* Hide breakdowns until count > 0
* Forgot Big Octo
* Count chests opened
* Update after LUS submodule
* Enemy count spacing
* Comments
* Count 3 mini Floormasters as 1 Floormaster
+ some cleanup
* Comments
* Colour coding for timestamps on quest items
i.e. medallions/stones/songs
* Move stat into the sohStats struct
+ rearrange the counts enum for easier addition of future counts
* Some documentation + count button presses
* Stop counting button presses when Ganon defeated
* Couple bugfixes
Add count for Gerudo Thief, fix step counter counting in some situations where it shouldn't
* Fix comment
* added rando option enum; added options to load from spoiler file
* whoops
* Moved to `randomizerTypes` header; fixed ammo drop enum
* Actually populated options with new enums
* Added add'l enums for ganon boss key
* Added difficulty settings menu for shooting gallery
* Reverted linux assert fix for PR
* Added difficulty option to not randomize rupee order as adult
* Changed checkbox wording due to text overflow
* Reverted incorrect change from merge
* Update soh/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* Added Checkbox to turn on and off all customizations in shooting gallery behavior
* Added disable-switch for sliders, shooting gallery difficulty options are now disabled when customize behavior is turned off instead of hidden
Co-authored-by: Ralphie Morell <rafael.morell@techfield.us>
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* Added button to switch age
* Added logic to switch link's age
Reloads link from last entrance he went through once his age is switched.
* Link now respawns where he last was
* Update game.c
* move setting to GameMenuBar.cpp, fix build issues
Co-authored-by: Jake Edvenson <77412657+JakeEdvenson@users.noreply.github.com>
Co-authored-by: briaguya <briaguya@alice>
The implicit declaration was causing issues on Linux when building in release mode. The call was getting optimized out which was preventing the "equip now?" message box from functioning as intended. Adding the `Message_ShouldAdvanceSilent` declaration to `functions.h`resolves the issue.
* First pass on SFX Editor
* Fix crash at night in Colossus (and probably other undocumented issues)
The SFX editor was swapping out the bytes corresponding to the sequence
to be played regardless of the audio command being issued. This fix
ensures the swap will only happen on commands which actually treat those
bytes as a sequence identifier.
* enabling a few more songs/fanfares
* Removing a few broken bgms, fixing the preview button returning to the wrong bgm
* Fixes restoration from miniboss music to previous one
* add timed minigame into the sounds pool
* A few small tweaks
* More cleanup and add instruments
* adjust usage of getReverseReplacementSeq
* Changes from feedback and prefix external methods with SfxEditor
Co-authored-by: RaelCappra <rael.cappra@gmail.com>
* Implement hint for dungeon type on Map get item messages
* Color dungeon name in item tracker when MQ and map is found
* No hint when all dungeons are MQ or non MQ
* TWEAK: French hint
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
* Adds most visuals and interactions for quest select menu.
* "Scrolling" menu, adds remaining sub/title textures, language support
* Tweak: ENG, FRA, GER title to match the original style
* ADD: Randomizer tex
* TWEAK: Randomizer ZAPD extension format
* Adds control stick prompts to the "scrolling" menu.
* Adds third entry for Randomizer.
* Bold text on randomizer subtitle.
* Ensures the game won't allow selecting an unsupported quest.
* Makes save files be created from the quest menu selection.
* Removes the master quest and randomizer checkboxes (no longer needed).
* Removes lock on MQ-only rando.
* Skips quest select if only one quest is playable.
* Adds ability to back out of quest select menu
* Show seed icons while Randomizer is selected on Quest Select Menu.
* Fixes custom hud colors and d-pad navigation.
* Implements backing up from name entry to quest select.
Also implements backwards rotations on the file select screen.
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
* fix lacs hint text coloring and new lines
* missed a new line
* fix wrong control code
* TWEAK: French LACS + Vanilla
* more french hint fixes
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
* Fixes saving `isMasterQuest` and fixes default values for rando sliders.
* Changed slider default values
* Fixes default dropdown values for Ganon Trials and MQ Dungeons.
* Ensure's consistent default values are used for all `CVar_GetS32`'s
* Refactor GetCheckFromActor, WIP currently broken
* Fixes build errors via forward declarations and emplace vs insert.
* Removes some unnecessary code.
* Fixes non-windows build errors.
* Fixes Deku Scrubs outside of grottos.
* Fixes DMC Deku Scrub Grotto Center
* Fixes Ruto Blue Warp
* Fix issue identifying blue warp rando checks
* Move identifyCow to randomizer.cpp
* Various updates to vanilla check objects
* Identify MQ checks in check object table
* Adjustments to how multimap is used and initialized
* Convert u16 in check object table to s16
* Fix a few issues with MQ checks
* Fix issue with TWO_ACTOR_PARAMS macro
* Fixes some scrubs and cows appearing as identical.
* Fixes known gossip stone issues (ToT, DC)
* Fixes Dampe's Gravedigging tour rcObject
* Fix crash on locations tab
* Enable master quest dungeons in rando
Co-authored-by: Christopher Leggett <chris@leggett.dev>
* Add command for giving item as if it was given from an actor
* Add modID argument to give item command and add give from skull command
* Adjustment and remove skull option since this isn't pointed at rando-next
* Fix string compare
* Add Cheat for disabling age check on equipment
* Add Cheat for disabling age check on equipment... pt 2
* cleanup some logic with macros
* Keep adult strength as child & prevent equipment greyout
* Timeless Equipment cleanup
* 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>
* Updated starting age restrictions;
patched specific circumstances in 3d rando
* cleanup some testing stuff
* whoops
* become Sherlock Holmes; tooltip cleanup
* Explicit logic for forcing child age
* Apply bria's suggestion
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Implement most of chest size and texture matches contents, just need an item table
* Add GetItemCategory to getItem tables
* Revert changes that tie chest size and texture to randomizer
* Support chest size & texture as an enhancement that works on outside of rando
* Add gChestSizeAndTextureMatchesContents to rando preset
* Prevent gChestSizeAndTextureMatchesContents in chest minigame
* Fix for forest temple boss key chest
* Add options for texture or size only
* Fixes a few bugs I introduced for MQ file select screen.
- MQ Saves could not be loaded while only an mq otr is present, because `requiresOriginal` was true when `gSaveContext.mqDungeonCount` was less than 12. That value only ever gets set for rando saves, so I added a check for the rando flag to that conditional.
- The rando tag was not getting grayed out with the rest of the save file.
- Some necessary meta info wasn't getting loaded when the randomizer CVar was off. Removed that check so that the rando save data always gets loaded during InitMeta. That way the amount of mq dungeons can be checked for validity with the loaded set of OTRs even if randomizer isn't enabled.
* i not 1
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Re-enables OTR patches from mods folder.
* Don't error if an OTR doesn't include a version file
Just info log and continue. If the patch fails to apply then we can error, and SoH can do it's own validation later.
* Fixes small error on my side
* Support for patching DLists outside of OTR, mostly for cosmetics and bug fixes
* Store original dlist instruction for unpatching
* Rename sandstorm patch variable
* Use unordered map for originalGfx;
* Add mirror shield option to the cosmetics menu
* Include GI model for mirror shield
* Changes from feedback
* Changes OTR Extraction to have specific mq and nonmq paths.
Also updates the game to load resources according to whether or not
Master Quest or Vanilla is loaded.
* Removes unneeded code from the last commit.
* Fixes some weird formatting in ZRom.c
* Loads oot-mq.otr and patches oot.otr on top, if both are present.
If only one or the other are present, it becomes the only and main OTR.
* Adds ImGui Logic for whether or an MQ Checkbox.
Checkbox checked only specifies whether new saves should be MQ or not.
Checkbox is disabled or force-enabled according to which OTRs are loaded.
Also as a necessity includes tracking what game versions have been loaded
from the OTRs.
* Adds MQ settings logic for Randomizer's ImGui menu.
* Writes Master Quest dungeons to the spoiler log
* Loads MQ Dungeons from spoiler, persists in save, and loads when appropriate.
* Adds logic to prevent loading or creating incompatible rando saves.
* Fixdes some linux build issues and new rando save issues
* Makes appimage create both vanilla and mq otrs
If either rom is present, it makes the corresponding OTR. If both are present,
it will make both. If one OTR is present but both roms are present, it will
create the missing OTR.
* Makes it so a randomized save file will not be marked as MQ.
* Refactors to load all OTRs from MainPath or a specific list.
Also adds the ability to take a std::unordered_set of hashes to
validate each OTR's version file against.
* Fixes a syntax error
* Makes ExtractAssets output Vanilla and MQ OTRs if both roms are present
* Fixes asset generation bug.
* Partially working fix for dual OTR extract_assets
Currently the cmake ExtractAssets target will return with a 1 if you
only end up exporting one type of OTR isntead of both. Haven't found
a great way to only attempt to copy a file if it exists from within
cmake. It does actually correctly copy the OTR that is generated,
despite the error from copying the other one.
Pushing as is for now but will keep investigating.
* Adds oot-mq.otr to the gitignore.
* Makes ExtractAssets not fail on only one rom/OTR.
* Removes PatchesPath from the constructors requiring OTRFiles vector.
* Renames OOT_UNKNOWN to just UNKNOWN to remove OOT specific reference.
* Removes randomizing MQ Dungeons and re-disables MQ rando.
Doing this so the PR can get merged quicker with just the Dual OTR
support and won't need to wait on rando logic to be updated. That
will happen in another PR directly after the merge.
* Update mac startup script for dual otr
* Update soh/macosx/soh-macos.sh
* Update soh/macosx/soh-macos.sh
* Update soh/macosx/soh-macos.sh
* Implements new BinaryReader to fix Linux build issue.
BinaryReader itself comes from https://github.com/Moneyl/BinaryTools
I added a wrapper to adapt it to the ABI from ZAPD's Binary Reader and
add Endianness checking. I also had to copy a handful of other bits and
pieces from ZAPD to make it all function as expected.
* A few edits to the updatream BinaryReader to compile it on Linux.
* Adds the Endianness to the first byte of the version file.
* Fixes Jenkins
* Addresses some of Kenix's comments
* Renames `ReadNullTerminatedString` to `ReadCString`
* Refactors Archive::LoadFile into a private method with more arguments.
* Removes BitConverter and extends existing endianness.h instead.
* Fixes an endianness issue with the version file.
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* Support for patching DLists outside of OTR, mostly for cosmetics and bug fixes
* Store original dlist instruction for unpatching
* Rename sandstorm patch variable
* Use unordered map for originalGfx;
* Add golden gauntlets to Cosmetics Editor
* Removed extra space
* Fixed comment
* Changed comment again (helps if you save the file before committing)
* Add: Randomized Ice Trap Messages
* Add text to freestanding items, other tweaks/fixes
* More messages
* ADD: French Translation + 1 Extra
* %w is not %UwU%
* TWEAK: One msall breakline
* Add German & small text tweak
* Minor code optimization
* Updated French
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
* Start effects
* Disable input to game when typing in console
* Add gravity support
* noUI placeholder
* Add rest of effects to console
* Remove z_play code
* Add rupee modification
* Add OneHit KO (#27)
* few fix and paper Link
* Better method and now use the reset flag
* Revert "Better method and now use the reset flag"
This reverts commit 2aafcc1df2.
* Revert "few fix and paper Link"
This reverts commit 65e76dcfee.
* Paper Link & few fixes (#28)
* Implement pacifist mode (#30)
* Implement cucco storm (#31)
* Add no UI functionality (#32)
* Enable CrowdControl on windows (#33)
* Use std::format and implement wallmaster
* Implement defense modifier
* Implement no_z and clean up
* Implement reverse controls
* Some fixes while testing CC connection
* Implement speed modifier and fix defese modifier
* Fail magic effects if magic is not acquired
* Fix queue system
* Implement rainstorm
* Some cleanup
* Use IS_ZERO to handle very low near zero values
* Split some effects
* Fix emptying magic
* Don’t run cucco on pre-rendered backgrounds
* Use correct method for updating ruppees
* Fix decreasing speed
* Remove old SDL stuff
* Remove old fixes
* Enable Crowd Control for both debug and release
* Add missing returns
* Cleanup event firing
* Further clean up on event firing
* Fix some bugs
* CC fixes and enemy spawning (#35)
* Fix icetraps
* Fix title screen
* Fix pause screen
* Fix death screen timer & Code cleanup
* Fix timer during textboxes
* Code cleanup
* Add: Multiple enemy spawning
* More enemies + more code cleanup (#36)
* Enums for returning effect states
* Add more enemies
* Update CrowdControl.cpp
* Remove enums from enemies
* Fix up flow for events (#37)
# Conflicts:
# soh/soh/Enhancements/crowd-control/CrowdControl.cpp
* Fix spawn position of likelike
* CC temp enemy fixes (#38)
* Check for pause in pacifist and allow button presses (#39)
* Fix Pacifist mode (#41)
* First attempt pacifier fix
* Real fix for pacifist mode
* Comment
* Remove cutscene and long delay from cucco_storm (#40)
* Some PR Fixes
* Use standard types
* Handle JSON parsing error and free memory
* Add CC configuration file
* Add: Giving deku shield option. Fix: Giant Lonk (#42)
* Small stalfos fix (#43)
* Syntax Improvements (#44)
* Revert bools to uint32_t
* Add comment about bools
* Fix cucco storm, fix empty heart (#45)
* Protect commands vector with mutex
* prefix effects with chaosEffect (#46)
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: Baoulettes <perlouzerie@hotmail.fr>
Co-authored-by: aMannus <mannusmenting@gmail.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
Co-authored-by: briaguya <briaguya@alice>
This was caused by the trail duration not being init properly until we change the duration manually.
cf this video: https://streamable.com/a9u4fm
- Also changed Lengh to Duration for clarity
* FIX: Set back default comportment of some Views
- Renamed Auto-Center First Person View to Disable Auto-Centering in First Person View and make it necessary to be checked to take effect and not being active by default
- Disable gInvertYAxis being enabled by default (which it not vanilla)
* Tweak: small whoopsie
* WiiU: fix more scaling issues
* Wii U: batch depth reads
* Wii U: remove file buffering
Doesn't seem to to do much anymore
* Remove "missing_gcc_functions.c" to avoid conflicts
* Wii U: Fix random_device usage
random_device will always be seeded with a constant seed and will return the same number sequence every time
* Wii U: Improve software keyboard
* Wii U: Fix console input text width
* Fix X11 being searched for on macOS
* Add ability to switch audio backends
* Fix issues with c arrays of std dynamic size items
* Fix old uses of sizeof()
* Remove current selected option from list
* Don’t show items if we only have one option
* Disable game input when typing into a textfield
* Only block keyboard input when typing in textfield
* Address PR comments
* Fix spacing
* Generalize check on input device
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* Revert changes to GetItemFromGet
* Fixes Ganon's Boss Key shuffled while regular boss Keys aren't.
* Enum + combo box
* Add obtainability checks correctly
* combobox title rename + no number tracking
* Fix repeatable purchases and bottles rendering incorrectly
* Move shopsanity option in GUI
* Struct instead of ImVec + basic comportment for all case
* Attempt to fix odd build issue
* Cast randoGet for ganons boss key
* Remove redundancy in KD room
* Update logic Cvar names
* Fix Ganons Trials coming from old save files. Fixes#1365
* Fixes crash when entering Ganon's Castle lobby on linux.
* Makes `Item_Give` safe to use with a NULL globalCtx.
This should allow it's use for giving items to Link's Pocket
during rando save initialization.
* Converts Song from Impa to use `Item_Give`
* Adds more options for Link's starting item.
* Removes unneeded `GiveLinkItem` functions.
* and make it build
* bring back new rando dropdown
* gSaveContext access in GameMenuBar.cpp
* Implement Skip Scarecrow's Song
* Reimplement progressive Bombchus
* Rando-next: Deku Nut and Seed ammo gives a blue rupee
Fixes#1390
* Fixes Link starting with BGS
* Persist item tracker notes
* Adjust Hooks include
* Use SohImGui::RequestCvarSaveOnNextTick
* Fix issues from LUS refactor
* Fix for overriding deku scrub messages
* Fix mistake from merge
oops
* Restore checkboxes to enhancements menu
These got lost in the merge
* Update location access logic
Including MQ locations in Spirit and GC now
* Implement rando bombchu drops
* Missing break
* Simplify mudwall collision check
There was no need to have a second collider specifically for Ice Arrow hits
* Update settings.cpp
* Simplify mudwall collision check
* Restore checkboxes in menu
Accidentally lost these during merge
* Clean up bool
* Update logic Cvar name
* Fixed capacity on ammmo tracking
* Fix for beans obtainability
* Hook into file delete and clear notes
* Incorporate magic arrows in rando settings
* Update tooltip
To inform the player that they might have to reload the room if they're enabling this for the first time.
* Update tooltip
* Add line break in tooltip
* Tooltip wording + line break
* tweak on main logic
* All color logic for all types
* Fix: changes to please new LUS
* Ensure itemTrackerNotes vector is not fully empty
* Implement's Tycoon Wallet.
* Refactor DrawItemCount and Use EnhancementCombobox for tracker capacity options
* small tweaks and rename
* always display XX/YY when in ammo/capacity mode
* Move all merchant messages to be generated on file load
* added hovertext for the number display
* Swap german and french translations for shop messages
* Set key colors to be on by default
* Add another flag to skip mask shop
* Fix Sold Out bug
* Fix gerudo keys, add disabled checkbox
* tooltip line break
* Add trials required and merchant prices to save file instead of loading from active spoiler log
* Remove trialsRequired persisting in save manager
* Adds slotIndex to girla (shop item actor) and uses that for IdentifyShopItem.
* Fix issue when merchantPrices is empty
* Fix for a single zeroed merchantPrice entry
* Fix#1417
* Implements items selling out and fixes issues with purchasing some items.
* Fixes order of operations so Rupees will be spent.
* Fixes sold out items not getting overwritten by the randomized info.
* Clarify var names and comments
Also preserve chain platform cutscene in spirit based on Link's position
* Remove !=0 from cvar check
* Clarify var names and comments
* Rename randomizerMerchantPrices to merchantPrices
* Handle shop items in SaveManager
* Fix merge mistake
* Base whats in the bazaar shop on entranceIndex instead of age
* Tidy up chain platform cutscene check
* Fix merge error
Didn't mean to have Zhora changes in here yet
* Use 3drando item table for parsing spoiler names
* Use another nested method instead of one at the top level to fetch the table
* Add missing newline
* Remove log
* Respect custom draw functions
* Fix issues with rendering songs
* Fix localized item names for shopsanity
* Implements a larger array of Sprites for the Icon Hash.
* Uses the hash instead of seed for spoilerfile name and icons.
* Removes some unused functions and variables in `spoiler_log.cpp`
* Prevents leading 0s added to hash from being in file name
* Changes filename format to icon indexes separated by dashes
* Hopefully makes Jenkins happy
* Hopefully makes Jenkins happy
* [Rando] Child Gerudo Fortress 37th Heartpiece randomized
Fixes#1071
* Add descriptions to save editor flags editor, and added randomizer flags (#1386)
* Add descriptions to save editor flags editor, and added randomizer flags
* Hide randomizer flags when not on a randomizer save
* Move flag descriptions to header file
* Update soh/soh/Enhancements/debugger/debugSaveEditor.h
* Update soh/soh/Enhancements/debugger/debugSaveEditor.h
* Fix merge error
* crash on pause menu on linux (only in appimage)
Fixes#1437
* Applies fix to Song from Impa as well.
* Allow buying tunics as child when shopsanity is on
* Fix for custom draw methods overriding sold out sign
* Simplify logic around shopsanity and fix some issues
* Fix dungeon reward stone rotation and add particles
* Fix some issues with ice traps
* Fix adult wallet having its own max capacity
* Fix amount of keys given for BotW
* format
* Use EnGirlAShopItem enum instead of raw hex values
* [#1434] Renders non-warp songs more consistently with warp songs
* A few changes around merchant messages
* Various changes from PR feedback
* Rando: Junk Hint missing french translation
* Typo
* Fix free scrub being at 0 instead of TEXT_SCRUB_RANDOM
* Replace magic numbers in message handler
* Update soh/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Update soh/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Fix BGS softlock for shopsanity
* Support tycoon wallet on tracker
* Revert "Fix BGS softlock for shopsanity"
This reverts commit 5fdb961ea4.
* [#1053] Resolves an issue with shop items and bombchu bowling where BGS would display two message boxes
* Implements some necessary plumbing and resolves several Ice Trap Softlocks.
Adds a way for an item entry to tell what type of check it came from (NPC vs Chest vs Freestanding, etc.)
Sets this value from chests and item00 actors.
Relocates pendingIceTraps to save context so it can persist through cutscenes and get stored on save init for Link's Pocket and Song from Impa.
Restructures pendingIceTraps into a counter rather than a true or false, so that we can be frozen multiple times in a row if applicable (atm that should only be at the start of a run if Link's Pocket and Song from Impa were both Ice Traps).
Adds a textbox for Ice Traps and a special case of holding up nothing in the get item process. This fixes all the cases where Ice Traps would softlock due to the actor giving the item expecting a closing textbox. After holding the item above his head Link increments the pendingIceTraps counter by one and sets whatever flag he has pending.
None of the above plumbing applies to Ice Traps from chests, those work exactly the same as before, as do freestanding item00 ice traps (thanks to the additional check for ITEM_FROM_FREESTANDING.
OoT and Ruto's Letter count as NPC's, so they get the FOWL text box and set a pending ice trap rather than immediately freezing, since Link weill be in the water. Link will get frozen the next time he touches land, which in the case of OoT is after the fade to white and right before the Song of Time check.
Fixes all the other softlocks I'm aware of, including Fishing, Bombchu Bowling, Skull Kid, and losing the second Gerudo Archery check.
* fix bgs check in player
* move bgs logic for tokensanity into MOD_NONE check
* set bgs flag before `Item_Give`ing
* move bgs flag into `MOD_NONE` check in girla
* use existing check in `z_player`
* Adds comment explaining the decision to default ITEM_FROM_NPC.
* Rename pendingIceTraps to pendingIceTrapCount
* Adds some RANDOTODO comments about cleaning up a couple things.
* Merge branch 'develop-zhora' into ztornn
* manually restore changes to `z_player.c`
* Fix after some ice trap prepwork from earlier
* Actual fix
* Woops
* More rupee names
* Actually fix it
* Add back comment
* Fix Skip Scarecrow Song
* Fix ruto's letter and LH sun stick rendering
* Also fixes it for treasure chest game
* Tweak: Rando French Wallet
* ADD: French Tycoon
* Hide dungeon items/notes by default
* [#1301] Fix issue with UI not restoring after getting an item from biggoron
* Update soh/src/overlays/actors/ovl_En_Go2/z_en_go2.c
* Update soh/src/overlays/actors/ovl_En_Go2/z_en_go2.c
* Fix random crash that only affected one person for some reason
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
Co-authored-by: Sarge-117 <adam_branston@outlook.com>
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: aMannus <mannusmenting@gmail.com>
Co-authored-by: lil David <1337lilDavid@gmail.com>
Co-authored-by: Sarge-117 <108380086+Sarge-117@users.noreply.github.com>
Co-authored-by: louist103 <35883445+louist103@users.noreply.github.com>
* Add cheat for easy pause buffering
* Add pause input buffering
* Fix pause input buffering
* Changes from feedback
* Convert frame to bool
* Handle when pad is nullptr
* Add newline
* Split input buffering into it's own CVAR
* Split SetShouldBlockGameInput up into to methods
* Fix Trails, add more Trail Customization
* 3d Bombs; Bombchu now glow custom trail colors
* 3D Seed/Nut Model, Separate Sword Slash Colors
* Removed 3D Seeds/Nuts; Don't work properly
* restored previous removal of sword blur code
* Remove things not related to Trails
* Remove fix to random color code
* Added creation of version file to OTRExporter
* Removed creation of version file from other places
* Made path to version file portable
* Changed spaces to tabs in OTRExporter/Main.cpp
* Fixes crash handler for jenkins builds.
We must include the pdb in redistributables.
* Properly selects PDB file path for inclusion
Co-authored-by: Christopher Leggett <chris@leggett.dev>
* Add magic arrow enhancements, non-rando
Changes to red ice actor, sun switch actor, and mudwall actor to adjust their collision
* Update tooltip
* Simplify mudwall collision check
* Restore checkboxes in menu
Accidentally lost these during merge
* Update tooltip
* Add line break in tooltip
* Clarify var names and comments
Also preserve chain platform cutscene in spirit based on Link's position
* Remove !=0 from cvar check
* Missed a couple
* Clean up chain platform cutscene check
* Reorders switch statement to prevent some code that shouldn't execute.
* Potentially fixes bottleable entities crash
* Solves lack of ItemEntry for GI_MAX
* Adds comment clarifying new GetItemEntry
* Added Skip Scarecrow Song
Added in the option for if the user has the time saver for Scarecrow song enabled and has their Ocarina pulled out in range of Pierre.
Added Skip Scarecrow Song
New enhancement under time-savers that allows the user to only pull out their ocarina to summon Pierre.
* Added Default for Scarecrow summon
The scarecrow summon option now defaults to 0 and can be turned on individually. I haven't included it in any other presets so people don't feel like they're cheating.
* Checks if scarecrow song is in possession
* Fixed positional Scarecrow logic
* Fixed style
* Adds inversion options
* Fixes compilation
* Adds options to new detailed control editor
* Fixes inversion on C-Up view
* Fixes right stick aiming
* Fixes right stick aiming again
* Adds tooltip function + tooltips to gamecontroleditor.cpp
* Fixes tooltip for X axis
* Uses LUS tooltip function instead of new one
* Adds padding to camera control editor
To fit more in line with other enhancement checkboxes
* Adds ItemTableManager class.
* Implements new getItem table in game.
* Adds rando item table and way to differentiate tables in GetItemEntry.
* Adds rough ability to differentiate between rando and vanilla items.merge stashed changes from before develop-zhora merge
* Change ItemTableID to be uint16_t so we can use ModIndex for it.
* Should fix switch build
* Should fix switch build pt 2
* Adds new files to CMakeLists.
* Implements fixes for competing getItem calls.
* Correctly renders freestanding items
Particle effects are probably broken, need to fix them still, I pretty
much know how I would do that.
* Fixed Particle effects in the new getItem system.
* Fixes item fanfares
* Partially fixes Ice Traps
Obtaining a freestanding Ice Trap causes link to slide forward
and receiving one from an NPC plays the sound effect and damage
animation but doesn't freeze link.
* Some more partial ice trap fixing that wasn't pushed earlier
* Removes unused function override
* Replaces ::find with ::at and adds exception handling
* Removes some commented out code.
* Refactors rando's GetItemEntry array into two arrays.
One array is for the vanilla items that don't have GetItemEntries in
vanilla, the other is for rando exclusive items. They are stored in
separate arrays before getting added to the table so that we can apply
different modIndexes. The items in the first table have are handled
by the vanilla Item_Give, and the second table needed a custom
`Randomizer_Item_Give` function.
* Renames, relocates, and implements ModIndex enum.
* Removes now unused ItemIDs and GetItemIDs
Also makes all the necessary changes to other code that was still
using them indirectly through the GI to GID map that was removed.
There's quite a lot of changes here and I haven't had time to test them
yet.
* Re-implements GIMESSAGE_UNTRANSLATED as macro
* Removes commented out function.
* Throws exception if an invalid itemID is used
Addresses https://github.com/HarbourMasters/Shipwright/pull/1050#discussion_r943694857
* Removes ARRAY_SIZE in favor of ARRAY_COUNT
ARRAY_COUNT already exists in `macros.h`, I just didn't find it before.
Addresses https://github.com/HarbourMasters/Shipwright/pull/1050#discussion_r943153833
* Inverts CheckContainsRandoItem to CheckContainsVanillaItem.
Addresses https://github.com/HarbourMasters/Shipwright/pull/1050#discussion_r940895135
* Cleanup, bugfixes, removing the `- 1`s from `z_player.c`
* Fixes some funky formatting that got committed earlier.
* Adds else if to added fanfare sound cases.
Addresses https://github.com/HarbourMasters/Shipwright/pull/1050#discussion_r940112924 and https://github.com/HarbourMasters/Shipwright/pull/1050#discussion_r940113492
* Extends GetItemEntry to include getItemId
Also adapts some existing calls for both the entry and the id to only
get the entry.
* Extends GetItemEntry to include GID.
This allows for using it later when drawing freestanding items.
Addresses https://github.com/HarbourMasters/Shipwright/pull/1050#discussion_r943168136
* Rando-specific items use new textId again.
This got lost when merging develop-zhora in because I didn't have custom
messages merged when I started this.
* Sets global modIndex to MOD_NONE on scene load
Fixes a crash when buying items in shops due to them
not triggering the rando code that normally sets these items.
May have also been crashing vanilla playthroughs.
* Realized I had the bgm conditions wrong.
* Fixes "static drops" (i.e. sticks from withered babas)
* Fixes LACS/Prelude situation... again.
* Fixes too many arguments error.
Not sure why this didn't fail to build on Windows before.
* Fixes Link's Pocket items.
* Simplifies sram init for rando-specific items
* Fixes issues with approaching bottleable items.
* Fixes Ruto's Letter.
It was accidentally getting classified as a rando item.
* Should re-fix freestanding ice traps
* Makes freestanding items set player->getItemEntry.
This prevents freestanding items from setting the global modIndex.
This is part of a larger transition that needs to happen to switch
to setting getItemEntries for all of the rando items. This prevents
some things that set getItemId of GI_MAX from granting a Fire Medallion
when the global modIndex is MOD_RANDOMIZER.
* Makes sure we aren't using getItemEntry when not randoed.
* Replace Randomizer_GetRandomizedItemId with Randomizer_GetRandomizedItem and Randomizer_GetItemIdFromKnownCheck with Randomizer_GetItemFromKnownCheck
* Introduce some new methods and migrate most actors to them
* Fixes ocarina game skull kids to set player->getItemEntry
* Sets `z_en_box.c` to set `player->getItemEntry`
* Fix logical errors and migrate most of the rest of the rando checks to GiveItemEntryFromActor
* Use GiveItemEntryFromActorWithFixedRange in item00
* Fixes Anju to set player->getItemEntry.
* Add a few missing cases
* Additional fix for Skull Kid
* Fixes vanilla ice traps and randomized ice smoke
* Fixes rendering of treasure chest game items.
* Removes unused `Randomizer_GetItemIdFromGetItemId`.
* Cleans up an if statement for item00.
* Cleans up another if statement in item00
* This should fix a bug with the Gerudo Archery minigame.
I wasn't able to get the bug to happen after making this change.
* Documents our new GiveItemEntry fuctions.
* Uses more descriptive type name for ItemIDs for creating custom messages.
* Fixes potential issue with if statement.
* Fixes missed type change.
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* Merges GlobalCtx2 and Window classes.
* Includes condition variable in File.
* add mac specific include
* sstream to get past "implicit instantiation of undefined template" error
* switch/wiiu includes
* that file doesn't exist
* more wii u globalctx2 stuff
Co-authored-by: briaguya <briaguya@alice>
* Fixes SDL axis handling.
* Removes sensitivities from LUS
Should be a game specific feature.
* Updates Wii U Controllers to remove sensitivity
Also loads legacy controller profiles.
* Fixes memory leak in gfx_dxgi_get_key_name
Also fixes issue where wchars would be returned in dxgi when getting a key name.
* supply ZAPD.out path as an argument to extract_assets.py rather than regenerating the script
Generating an entirely new script file to change a string is excessive.
Instead, extract_assets.py takes in one optional positional argument that
contains the path to ZAPD.out, the original purpose for the string
replacement.
This also removes the need for the file(CHMOD ...) command, which bumps
the minimum cmake version all the way up to 3.19.
Additionally, there was an extra script being generated in
OTRExporter/CMakeLists.txt that used the same CHMOD logic, but did not
accurately declare its minimum version to 3.19, this removes that unused
logic.
* OTRExporter: accept a rom path as an argument to extract_assets.py
Renames VirtualController to DummyController.
Makes controller axis treated the same as buttons.
Made Controller class members private or protected
Made Controller class treat deadzones, sensitivities, and press thresholds consistently.
Properly routes SPDLog to the console.
Creates an API to be able to send command responses back to the console.
Cleans up the console UI, hiding options when not needed.
Removes stdout console sink for Windows.
* First pass of UX changes
* More padding/styling/layout
* More styling
* Moar styling
* Some more styling
* Implemented padding helpers
* More styling, added closing buttons to windows
* Fixed merge conflict mistake
* Fixed new enhancements
* Hopefully fix jenkins errors
* Changed button behaviour, more styling
* Tiny code cleanup
* Change buttons from close/open to > when open
* Small button spacing fix
* Small styling changes after merge
* Small fix after merge mistake
* Changed input disable to only be forced on switch
* Inverted if
* Finally fixed validation
* Removed enhancement if its a switch build
* Input now only gets blocked when the device is not a keyboard or its on switch
* Input gets blocked when the controller view is opened
* gControlNav is enabled by default on switch
* Fixed compilation issues
* Proof of concept
* Finished default preset
* Added v1 presets
* Overhauled implementation
Function has been moved out of ImGuilmpl.cpp, and all presets have been put in their own functions so they can be applied in a cascading manner.
Also did some slight changes to the presets themselves.
* Fixed link animation settings
* Deleted unneccesary change
* Fixed missing newlines
* Moved functions back to ImGuilmpl.cpp
* Removed Ironman preset
* Skip Jabu Jabu's fishy feeding time if rando is enabled Issue #757
Also skip the ganon tower fall cutscene if you died to ganon during the ganon fight for issue #773
* Immediately give control back to player when talon running cutscene starts.
* Fix case of not skipping Gannon
* Automatically save after every scene transition
* Refactor and don't save in grottos
* Don't save in cutscenes
* Save after getting items as well
* Fix paren
This fix being unable to select both entry of controller that has same ID and Name (for example Mayflash mf103 in my tests got two port both ports has same name and ID.
* This should fix (all?) 60fps interpolation issues left.
Resolves#631#917
* Update z_fishing.c
* Re-adds Emil's interpolation in certain places.
* move open/close disps out of if statments checking timer based vars, revert fishing to use recordopen/closed child
* move disps out of ifs for morpha
* use recordopen/recordclose for volv
* recordopen/recordclose for ganondorf
* switch back to recordopen/recordclose for ganondorf floor
* Frame interpolation now uses a 64bit parameter rather than 32.
* More 60fps fixes
* Fix close child typo
* add todo calls to recordopen/recordclose
* fix build
* revert long long frame interpolation
* add some epochs
* add more epochs
* bongo epochs
* the rest of the epochs
* fix the typo fix the build
* interpolation fixes pr cleanup
* init/cleanup bongo epochs
* bongo hand trails
* Fixes niw feathers
* Fixes bongo bongo hands, and replaces epoch * i with epoch + i
* don't update epochs
Co-authored-by: briaguya <briaguya@alice>
* added Cheat Sync Time
This syncs the ingame time with the real world time.
I wasnt quite sure where to put the code so im sorry if this is bad i just wanted to contribute to this project.
* Update soh/src/code/z_play.c
Co-authored-by: Christopher Leggett <chris@leggett.dev>
* Update z_play.c
added suggestions from leggettc18
* Update z_play.c
Co-authored-by: Christopher Leggett <chris@leggett.dev>
* Fixes Goron Wakeup animations
* Cleanup of some unneeded code.
* Fixes comment spacing
* Revert goron's back to spinny behavior with smooth transitions.
* Speed up lifting silver rocks and obelisks by 3x
* Increase rock lifting speed to 5x
* Fix bug that sped up picking up small rocks, grass, bombflowers
* Add enhancement checkbox for faster block lifting and reduced speed to 3x
* Allows Skull Kid to accept Mask after receiving an ice trap.
* Extracts obscure rando check into a clearly named function.
* Fixes missing semicolon...
* Prevents LACS flag from getting set when it shouldn't be.
* Fixes Prelude and LACS checks so they apply immediately if missed.
* Refactors the scene-flag-setting code into its own function.
* Renames new enums and props to be clearer and not specific to scene flags.
* Refactors pendingFlag data into a separate struct.
* Remove manual newlines from the middle of sentences in tooltips and automatically break long lines instead
* Move split functionality into header so randomizer tooltips can use it
* Rewrite logic to be O(n)
* Found another typo
* Move helper function to libultraship to (hopefully) get Jenkins happy
* Fix typo I made when fixing the typo before
* Remove unneeded header
* Parameterize line length in case variable line length is desired in the future
* FIX: Increased the maximum actor limit for draw distance
Fix issue #529
* TWEAK: added 360hz support
Has been asked by an user who have a fancy 360hz laptop refresh rate
https://www.androidauthority.com/asus-rog-ces-2021-1191928/
* TWEAK: Forgot one value
* Allow Equipment Toggle
Allow player to toggle equipment on/off on the equipment subscreen. For tunics and boots, this will revert them to Kokiri Tunic/Kokiri Boots. For shields, it will un-equip the shield entirely. For swords, only BGS/Giant's Knife is affected, and it will revert to Master Sword.
* Set up Cvar and check for MS
Set up the cvar/imgui and add a check that we own the Master Sword (in case we're in the Ganon fight)
* Use tex sizes from texture rather than hardcoded values
* Dynamic do action tex sizes
* Remove unused minimap texture keys
* Restore MESSAGE_STATIC_TEX_SIZE
* Use dynamic offsets
* MACRO it up
* Enable SPDLOG in Xcode
* Handle non-existent texture
* ADD: Try to use Spiritual Stone alpha on altar
Not super advanced but it kinda work, n eeds to figure out why the gSaveContext.inventory.questItems doesn't seems to care
* TWEAK: Full working + added on child link side
* TWEAK: added else with comment
* frogot a }
* Moved gfx effects to the gpu and removed loadtexbyname on some textures
* Readded empty if
* Added nintendo switch support
* Fixed compilation errors and window closing issue on linux
* Fixed kaleido on 64 bit
* Fixed audio on nintendo switch
* Implemented performance mode switcher
* Added suggestions from pr review
* Fixed ftruncate errors
* Fixed compilation errors
* Added missing include rule
* Fixed libstorm path
* Removed ftruncate extern to use a correct posix version
* Merge branch 'develop' from HarbourMasters into znx (#3)
* Add Support for macOS (#441)
* Fixed soh filters
* add more makefile changes
* almost ready
* more updates
* update
* update
* Update Makefiles to handle both platforms
* Allow for overriding the CXX and CC executables
* Restore original structure while supporting custom CXX flags
* Remove some platform specific libs
* Dynamic target name
* Make X11 paths package-agnostic
* Remove changes to `gfx_opengl.cpp`
* Use OpenGL2 on MacOS instead of OpenGL3
* make it actually render something
* render at least the first texture, still need to figure out the second
one
* Let’s use OpenGL 3 again
* maybe this works to get the right texture? link's eyes still look off a bit
* did this work?
* set the platform to macos
* actual numbers are right, but logic is ugly XXX/TODO, i know
* add zlib to ldflags for ZAPDUtils
* A bit of cleanup
* Revert unneeded changes
* Remove GL_CHECK
* Fix issues with z64 branch
* use an std::map instead of a giant array
* three point filter fix (#2)
* Fix mac compilation
* fix audio for 64 bit
* revert audio heap size, keep bigger pools
* Add more Apple specific checks to our modifications
* Add building instructions for macOS
* Remove unecessary step from building instructions
* Add missing SDL2 & GLEW to Linux LDLIBS
* Update BUILDING.md
Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com>
* Update soh/.gitignore to include other arch binaries
Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com>
* Use right platform name for debugging window
Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com>
* Fix stormlib on macos (arm64)
* Simplify some of the ifdef checks
* Revert an older no longer necessary fix
* Remove remaining unecessary deviations
* Update building instructions after StormLib changes
* Feature: Use OpenGL 4.1 (#1)
* Further tweak the BUILDING
* Tidy up
* reword -j message
* Add Jenkins CI Support (#2)
* Fix type issues
* add target <appbundle> and <filledappbundle>
add makefile targets to create an .app
`filledappbundle` creates the target with the .otr included
this should perhaps be moved to Application Support though
* pull gcc's rpath from otool output
* move make target to the end so it's not default
* Add Jenkins and make exe in par with other platforms
* Actually save build artefacts
* Fix artefact path
* Remove x11 mentions and linking (not used)
* Update building instructions for generating app
* use appsupport directory
* Add new app icon
* Update target to match macOS types
* Update more audio types
* fix null deref in Audio_PlayFanfare
* Remove old import from z64
* address final nit with apple ifdefs
Co-authored-by: KiritoDev <36680385+KiritoDv@users.noreply.github.com>
Co-authored-by: Jeffrey Crowell <github@crowell.biz>
Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com>
* Move macOS to parallel stage
* fix linux crash
* Ignore all named saves
Necessary after new save format
* DPad items
* Move UI location arrays from static to global to accomodate customizable UI
* FIX: Increased the maximum actor limit for draw distance
Fix issue #529
* FIX: Remove duplicates of gNewDrops from the enhancements menu
* Get rid of erroneous int casts
* casts jya_cobra's shadowTexture pointer to uintptr_t instead of s32.
* Fix ability to assign equipment you don't own
* Fix title cards for market potion shop and bombchu shop
* Invalidate message item icon texture before drawing
* Add margins for dpad
* Fixed some instances where the original OOT save is erroneously preserved or recreated, leading to another conversion next time you launched the game
* Headphones setting in game should now work.
Resolves#13
* Map Select name fixes
* Change Power to Upgrades
* Rename Soh* files
* Update names
* Add more files
* Add more files
* Add toggles for disabling heart drops and random drops (#507)
* Adds toggles for disabling random drops and fixed heart drops
* Changed the "No Fixed Heart Drops" toggle to the more useful "No Random Heart Drops" toggle
* Adds an explanation that the no heart drops option is similar to Hero Mode
* Moved difficulty options into their own sub-menu
Moved time saver options into their own sub-menu
Moved clutter reducing options into their own sub-menu
* fixed the tag name of mweep speed
* Moved Skip Text to Experimental
* Fix testing masks of DPad
* Fix audio, boot commands, and save staes.
* add menu from https://github.com/PurpleHato/Shipwright/tree/ResetMenu
* implement reset
* Update README.md
* command on mac
* special char doesn't work with default imgui font
* change name based on PR comment
* missed a couple spots
* change sunset in save editor so dampe is out
* Update to latest `docking` imgui (#582)
* Update to latest `docking` imgui
commit: 67410d53f739b6a0df138e2252f0e5136b42062f
* Fix modified import for SDL
* Update imgui_impl_sdl.cpp
* Add Imgui include path for better imports
* Controller Navigation Fix-Up (#544)
* Controller Navigation Fix-Up
* [MISC] Fix typo
* Use Macro for __FILE__ & __LINE__ when possible (#559)
* First batch some overlay
* Almost all overlay
* effect & gamestate
* kaleido stuffs
* more overlay
* more left over from code folder
* remaining hardcoded line and file
* Open & Close _DISP __FILE__ & __LINE__ clean up
* Some if (1) {} remove
* LOG_xxxx __FILE__ , __LINE__ cleaned
* ASSERT macro __FILE__ __LINE__
* mtx without line/file in functions
* " if (1) {} " & "if (0) {}" and tab/white place
* LogUtils as macro
* GameState_, GameAlloc_, SystemArena_ & ZeldaArena_
* Revert "GameState_, GameAlloc_, SystemArena_ & ZeldaArena_"
This reverts commit 0d85caaf7e.
* Like last commit but as macro
* Fix matrix not using macros
* use function not macro
* DebugArena_* functions
GameAlloc_MallocDebug
BgCheck_PosErrorCheck as macros
removed issues with ; in macro file
* MM Bunny Hood enhancements: no age restrictions & wear across entrances (#560)
* Remove age restriction on MM Bunny Hood
* Handle mask slot changing; init Link wearing mask
* Reset mask state after selling
* Use unordered maps in some hot paths (#566)
* Use unordered maps in some hot paths
* Address PR comments
* Cheat: Infinite Epona Boost (#577)
* Cheat: Infinite Epona Boost
* Edit for readability
* update pulseaudio for 44.1khz audio (#587)
* use pulseaudio defaults
* spaces/tabs
* pulseaudio values tuned for n64 audio at 44.1khz
* update tlength
* remove one hardcoded samplerate
Co-authored-by: briaguya <briaguya@alice>
* Restoration Item Sliders (#595)
* Allows players to set custom restoration values for potions and milk
* Fixed a dumb oversight
* implemented fairy sliders
* use ini window resolution (#410)
* use ini window resolution
* use arguments for directx window size
* default 640x480 not 320x240
* kick off a build
* and revert
* default config 640x480 not 320x240
* add todo
Co-authored-by: briaguya <briaguya@alice>
* 3D Drops & Projectiles update (#548)
* Fix remaining rupee and keys
* fix tabs -> spaces
* more fix about tabs -> spaces
* Better up <-> down mouvement for hearts
* remove useless comment
* Cosmetics menu rework (#589)
* -
* DPad/some margin fix(left side)
* various ImGui stuff and fixes
* disabled kaleido menu (non working)
* fix win being dumb
* same for C btn this time
* Fix windows build
* Beating hearts fix
* Default win size and some placement fix
* Fix Dpad Ammo & C notes, Kaleido, white dog
* some texts fix and tab move
* Add stone of agony, some fixes and build correctly
* precise item place with Dpad
* Gamecube -> GameCube
Co-authored-by: Baoulettes <iMacWin10>
* [CI] Create an Appimage for 64bit builds (#570)
* [CI] Create AppImage file
* [CI] Updated Jenkinsfile
* [MISC] fix indentation
* [MISC] Fix indentation
* [MISC] Fix indentation
* [CI] 7z appimage and readme
* [CI] AppImage icon file (#597)
* [CI] Add patchelf
* [BUILD] Include Hi-Res icon
* Fix portability use of std::clamp (#596)
* Add N64 weird frames and OOB Bombchus cvars (#602)
* Add gN64WeirdFrames and gBombchuOOB cvars
* Rename gBombchuOOB to gBombchusOOB
* Fix pipeline
* [BUILD] Do not strip ZAPD (#598)
* [BUILD] Do not strip ZAPD
* [BUILD] Reuse Icon Asset
* [APPIMAGE] Handle paths with spaces
* [macos] Distribute optimized builds (#599)
* Cosmetics texts fixes (#604)
* branch init + few fixes
* Reset button
* Several texts fixes and default color to GameCube
* space issues
* some more extra space that was not needed.
* space yes last time ...
* Arrows being able to be rainbow some more texts fixes
* more texts fixes
* c-buttons some plurial fix
* Fixes bug in demo effect due to removed display list set.
* King dodongo room crash (#613)
* first attempt
* force camera setting to be at least 0 (dirty!)
* -
* reverted something to just include fix
* Invalidate text box icon before drawing (#607)
* [APPIMAGE] Set lib path for ZAPD (#611)
* New drop runtime fix (#614)
* inital rework
* fixed default rotation for 2D sprites
* fix tab/space issues
* Fix Ganon's Castle title cards (#606)
* Checkered room crash workaround (#615)
* Increase poly and vertex count for dyna actors
* Add TODO
* Only apply fix in Forest Temple
* Enable globally
* Match case of 'Shipwright' in Linux build (#619)
* Fix 0xabababab crash (#617)
* Unconditionally setup the normal skybox
* Only call Skybox_Setup once ever
* Equipment upgrade text fix and any pause slot enhancement fix (#620)
* Fix upgrade name text not rendering
* Use cvar and don't render equip help for empty item slots
* Fix rendering logic
* Fix incorrect item name rendered for one frame
* Reorder comparison
* Remove extra indent
* Remove accidental changes
* ImGui grammer, consistency, and clarity fixes (#625)
* ImGui grammer, consistency, and clarity fixes
Co-Authored-By: Stormghetti <56653191+Stormghetti@users.noreply.github.com>
* Adds more new lines for users on smaller displays
Co-Authored-By: Stormghetti <56653191+Stormghetti@users.noreply.github.com>
Co-authored-by: Stormghetti <56653191+Stormghetti@users.noreply.github.com>
* New drops shadows & rotation fixes (#627)
* fixes
* forgot to add heart pieces in rotation logic
* Dodongo's Cavern blue warp crash fix (#622)
* Doodong's Cavern blue warp crash fix
* >= not >
* Don't waste a line of space
* add support for clang compiler (#592)
* hacks to align strings for clang... wow just wow
* start work to getting built with clang
* fix issues with struct constructors, all builds, doesn't link still
* fix some narrowing issues that clang complains about
* fix compliation of zapd
* fix null deref in VersionInfo
* builds with clang
* make stringbuilding use StringHelper instead of addition
* fix linking
* add CLANG SHIP overlay on clang built versions
* doesn't need to be volatile
* mark unknown strings as extern
* rename some stuff
* can't align extern
* hopefully fix compilation for everythign
* expandtab
* allow setting LD
* Revert "allow setting LD"
This reverts commit 711aba6db2.
maybe to use lld it should be a LDFLAG?
* -Wno-deprecated-declarations is required for newer versions of clang
on macOS 13 beta sdk, the version of apple clang requires this
* Add jenkins support for clang
* Forward CXX flags to stormlib compilation
* Move GCC only flags to check
* use exports to set multiarch setup
* Fix Jenkins forever
* use make instead of cmake --build
add some flags to build with clang-11 as well
* address review coments
- rework extraction to allow multi thread
- misc readability cleanup
* update makefile to add WARN on linux+clang
Co-authored-by: David Chavez <david@dcvz.io>
* Fix develop
* Fixes grey screen issue + tooltip for 2 handed shield
* Don't close controller after SDL has quit (#642)
* Don't close controller after SDL has quit
* Don't check if controller can rumble if null
* Fixes Barinade's set whenever boss fight is reloaded (#639)
* Reimplements unused Barinade reset function.
* Removes the Jellyfish from Barinade's body on reset.
* add the ability to pull graves during the day (#637)
* change max internal res multiplier to 3x, use float and % instead of int (#638)
* change max internal res multiplier to 3x, use float and % instead of int
* Update libultraship/libultraship/ImGuiImpl.cpp
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
* Fixes crash on Biggoron trade failure screen wipe
Resolves#621
* fixes center docking (#652)
* testing out item replacement (#416)
* skip learning song of storms
* don't set flag when getting goron tunic as child
* Initiates prelude check when master sword unloads.
Not quite how N64 rando does it but so far it's the only way I've found to make it trigger without also triggering the time travel again.
* Stops Shadow Temple lore prompts from appearing in rando.
* Skips cutscene of royal tomb explosion in rando.
Explosion sound doesn't play correctly and I think the debris appears in the wrong place, but the functionality is here.
* Improves visual of exploding gravestone.
* Adds some comments explaining the rando differences
* Skip ruto text box in jabu blue warp
For rando
* skip intro cutscene in dodongo's cavern
* load spoiler files on boot, fix spoilerfile existing check when making new saves
* name entry dropped spoiler logic
* make sure to actually init the cvar
* no chime on load
* uncomment
* Skip ganondrof cutscene
Skip to scream part of the death animation, skipping the text boxes etc. For rando
* Update z_boss_ganondrof.c
* skip owl flight cutscenes in rando
* Fixes skipped text so it only applies to shadow temple.
Earlier fix inadvertently applied to some other text as well, changed logic so that only specified sceneNums and textIds can have this enabled, and text skipped by sceneNum can have the skip overriden by textId if needed. Currently there are no overrides so the textId section of the logic is commented out to avoid compilation errors.
* Adds a default to the switch case statements that leaves the randoSkipText variable unchanged, just in case.
* TEST: Text for item
* Adding ganon flavor text
* ADD: AMMO Count
* format ganon text/hint text
* Autoskip the tower cutscene if settings call for tower collapse.
* ganon hint text logic
* Improved prelude after time travel fix
* swapped the sizes between ganon hint text and ganon text, as they were set to the wrong things.
* this is all i did
* not the cleanest code ever but it's working
* ADD: GS Count
* ADD: Wallter (crash for now)
* TWEAK: Wallet check
* FIX: Use DrawItem instread of DrawUpgrade... b-baka!
* Fixes some vanilla bugs introduced by rando code.
* Added cutscene skip for zelda escaping
Using the debug cutscene skipping function. Also added a conditional so the bridge doesn't spawn closed when cutscene is ready to trigger
* ADD: X Spacing + Placeholders for song
* ADD: default case for items
* TWEAK: Spacing
* FIX: Light Arrow
* ADD: Ammo Option
* use groups instead
* ADD: More spacing logic
* songs and names
* TWEAK: Color on wallet
* colors
* Added flags cutscene before nabooru fight
* ADD: ChromaKey text
* First attempt skip cs after nabooru defeat
* Better implementation for specific rando cutscene skips
* use pulseaudio defaults
* spaces/tabs
* move color push/pop to stop crash
* make the colors work again
* the real bottle fix
* pulseaudio values tuned for n64 audio at 44.1khz
* update tlength
* remove one hardcoded samplerate
* Cleaned up and fixed zelda escape skip
The if statement is a freaking monster, but unless we want to skip more cutscenes in the same way later, this is the most compact way of doing it that I know of.
* Revert one line to match original
nothing functional
* another hint line that breaks autonewline logic
* don't autospawn epona if we don't have the song/ocarina
* Trying to use iron knuckle death effects
not working yet
* Streamlined OoT cutscene skip for future additions
Also cleaned up if statement in general
* Made if statement more readable
Also added clarity for what cutscene was skipped
* Fixed typo in comment
* Janky nabooru defeat cs skip
* altar text formatting (gonna need help shortening some of the french ones)
* more altar text formatting
* english altar text formatting complete
* make gtg blocking guard check for card not bridge
* FIX: Typo!
* FIX: Uppercases
* FIX: Typo
* TWEAK: Alter + some names
* TWEAK: More caps!
* ADD: Missing string
TWEAK more uppercases and namefixe
s
* Hide nabooru death by covering her in flames
* bandaid fix for death crash issue
* Twinrova defeat cs skip
Skips the animation and manually calls the function to show the "beam" around the sisters
* fix crash
* fix caps to match
* fix great fairy reward mashing/shielding issue
* TWEAK : Typo clé to Clé
* TWEAK: Some Altar hints
TWEAK: Some capitals
* TWEAK: Unmatching text + some cap again
* TWEAK: More tweaks
* fix build
* remove extra json.hpp, add hint
* Update randomizer_item_tracker.cpp
* TWEAK: Double Defense with RedParticles instead of white
* make sure we don't optimize out the check to ensure a spoilerfile exists
* vanilla ganon boss key hint formatting
* TWEAK: FR- better way of the hero text
* fix
* and again
* Initializes dungeonsDone items in gSaveContext to 0.
* Replaces sizeof calculation with a NUM_DUNGEONS constant.
* Fixes Saria's Gift on the LW Bridge from getting killed when holding shield.
* More airtight fix for Saria's Gift on the Bridge.
* Lifts one of the conditions in the if statement a little higher to prevent unnecessary lookups of getItemId.
* Invalidate text box icon before drawing
* Fixes the case where Saria's gift is an Ice Trap.
We still get the Ice Trap once, but never again. This does mean you can now hold R while walking in to avoid the ice trap, but everything else seems to work fine.
* Initial commit
Might need changing when we change the settings in the future
* Fixes Door of Time opening cutscene after warping with prelude.
* Initial waterfall skip
Very rudimentary way of doing things but it seems to work so 🤷
* inital rework
* fixed default rotation for 2D sprites
* fix tab/space issues
* 3d drops rando merge fix again
* Allows Impa to appear in the Lullaby check post drawbridge escape.
* Changes Ganon's Trials Count setting to a checkbox
The checkbox is whether or not to skip all of them. Leaving the box unchecked will mean doing all of them. Eventually this will be switched back to a slider once we implement the logic for which trials start out completed.
* Sets all Ganon's Trials to incomplete in new saves.
Fixes https://github.com/briaguya-ai/rando-issue-tracker/issues/131
* fix castle guards when oot throw cutscene has already played in rando
* Properly removes the beams when trials are cleared.
* Removes Question Mark from Skip Ganon's Trials UI.
* Adds a todo comment about when to change back to slider.
* make deku seeds check for bullet bag
* Various tweaks
TWEAK: Altar Text
TWEAK: Hint names
TWEAK: Replace more problematic œ to oe
* upgrade ocarina on both child and adult equips
* FIX: Jabu Item
* update equipped hookshot/longshot when obtained as other age
* add hint
* don't give the bgs check without the claim check
* Skips Darunia Cutscene in Fire Temple
* Added a TODO note about not skipping the cutscene.
There is a setting we will want to have eventually that will require this cutscene to not be skipped since it is used during a glitch.
* remove todo
* restore fast ocarina option in imgui that was lost in merge
* Fixes grey screen issue + tooltip for 2 handed shield
* update to use dg instead of g for textures in item tracker
* TWEAK: Default color for cosmetic RAND button was not the corect one
* fix texture crash, remove unused item tracker code
* don't open mask shop until we get zelda's letter
* Update README.md
* Prevents "correct" chime under incorrect conditions.
* Fixes typo in conditional and adds "bonk" sound effect.
"Bonk" sound is NA_SE_SY_OCARINA_ERROR and it plays when conditions for the Door of Time have not been met after playing Song of Time. This is only possible in rando's "Intended" Door of Time option, in which the Ocarina of Time and all 3 spritual stones are required to open the door, instead of the vanilla requirements of just having the song of time.
* remove modify dpad equips toggle, replace with checks for dpad menu
* remove extra check
* add ability to hold c-up to assign to dpad when dpad menuing is enabled
* disable d-pad navigation on item menu when holding c-up to equip
* dpad+c-up stuff for equipment menu
* ADD: Checbox for songs colors
* TWEAK: RandoColors for normal songs
* kind of quick and dirty but it works
* TWEAK: Clarity of the tooltip
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: aMannus <mannusmenting@gmail.com>
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
Co-authored-by: Dog <5172592+Dog@users.noreply.github.com>
Co-authored-by: Vague Rant <vaguerant@users.noreply.github.com>
Co-authored-by: Baoulettes <perlouzerie@hotmail.fr>
Co-authored-by: Ada <60364512+GreatArgorath@users.noreply.github.com>
* Cosmetics hotfixes (#640)
* Initial branch creation
* Revert Main Game so it do not conflict later
* should fix window build, made namespace for Cosmetics
* forgot to edit one title
* Ability to add hidden window (usefull for Rainbow)
Fix building issues
* Line break, unused bool remove
* add descriptive todo for death crash bandaid (#655)
Co-authored-by: briaguya <briaguya@alice>
* Removed legacy audio mode and fixed ganon sound bug (#657)
* Free Camera (#337)
* wip free cam
* Almost done, needs collision still
* Added free cam behind cvar
* added WIP collision
* Fixed & implemented "Manual mode" from WW & TP
* Fixed camera not rotating when Link is moving
* fixed initialized camera rotation
* Fixed camera getting stuck + made it smoother
* reduced deadzone
* fixed epona camera height + added WW z-target free camera
* Adjusted player camera height & fixed fov
* Fixed camera roll
* fixed fov when moving the camera while in z-target
* Camera resets to Auto when going through doors or changing maps
* Fixed building
* touch
* more touch work
* Added WIP mouse support to the free cam
* gui stuff
* fixed building
* fixed building error
* ok fixed building for real this time
* oops
* Fix compilation issues
* removed mouse stuff that magically appeared in this branch
* smoothed out stick values & removed remains of mouse support
* re-added manual camera when pressing Z
* reduced minimum Y position of camera
* Addressed dcsv's nitpicks
* part 2
* oops
Co-authored-by: David Chavez <david@dcvz.io>
* Rando: Allows Malon's Item Check to be obtained by pulling out the Ocarina. [FIXED PR] (#672)
* Fixes using the Ocarina to get the check from Malon.
Still some cleanup to do here. For some reason the player can shield before receiving the check. It doesn't set the flag if the player does that so they can still try again, but would prefer a different solution if possible.
* Prevents Shielding from blocking the Item_Give from happening.
* Code Cleanup and comments explaining the new rando flow.
* Removes inventory check when pulling out Ocarina
This allows OI to properly give the check, which is important for Glitched logic later down the line. Talking to Malon still requires the Ocarina in your inventory.
* Prevents non-malon textboxes from triggering the check.
Also adds a comment explaining the condtional for getting the check from talking to Malon since it got pretty long.
* Actually fixes checking for text boxes.
* Relocates a comment for improved clarity.
* Fix Rando Water Temple Softlock (#665)
We use 3DS logic to generate item placement, but didn't have this specific door in Water Temple unlocked from the beginning like 3DS does.
This meant that if people took specific paths through the temple, they could softlock themselves by missing a key.
* Rando: GtG and carpenter prompts skip (#663)
* Skip gtg and carpenter prompt
For rando. Tested and just works.
* Fixed missing break
* Hide debug overlay behind gDebugEnabled (#660)
* Introduce App Directory Path (#572)
* Introduce app directory path concept
* macos: Remove hacky way of using applicaiton directory
* Update the new SaveManager
* Address stack user after return
* Remove unecessary property
* Use std::string for filepath
* Improve clang specific detections
* Use new path system for imgui files
* Improve helper for getting relative paths
* fix hidden wnd (#744)
* Split damage multiplication into its own PR (#656)
* Split damage multiplication into its own PR
* Found a more elegant implementation of the powers char*[]
* Fixes Maps, Compasses, and Boss Keys in Vanilla. (#751)
* .xiF slebaL
* Update Keese labels
* Fixed soundfont issues
* Skip warp song cutscenes in rando (#664)
Does it by skipping to the last part of the cutscene data. Tested on all songs, both adult and child.
* don't spawn blocking mido after we've already shown him the sword/shield (#675)
Co-authored-by: briaguya <briaguya@alice>
* Controller Configuration UI and JSON Config (#760)
* Initial controller hud ui
* Reverted fbdemo changes
* Moved config to json and implemented controller config
* fix build on linux, gitignore new config file
* fix build
* Fix compilation and file directory paths
* Call save on cvar save
* Fixed cvar loading and added deck slots to the config
* Changed control deck port 0 to use a physical device by default
* Added gyro and rumble & fixed loading errors
* Save config on toggle menubar
* fix linux build
* Fixed drift calculation
* Controller config now saves when pressing F1
* Removed ExitGame hook from ImGuiImpl
* Moved mappings to a map
* Added GetKeyName
* untranslate scancodes
* Fixed hud layout on keyboard device
* Fixed keyboard read on hud
* Fixed crash when reloading controllers
* Removed ConfigFile and changed file extension
* Changed Dummy to Disconnected and fixed filters
* Removed function leftover
* Changed ControllerHud to InputEditor
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: David Chavez <david@dcvz.io>
* Enough! My ship sails in the morning.
* Fixed menubar items position (#763)
* Fixed menubar items position
* Reverted tooltip tab position
* Fixes macOS randomizer functionality with App Directory (#761)
* Fixes macOS randomizer functionality with App Directory
* Fix windows build
* Update soh/soh/Enhancements/randomizer/3drando/rando_main.cpp
* Update soh/soh/Enhancements/randomizer/3drando/spoiler_log.cpp
* Revert band-aid fix
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
* Fix migration cvar deletion path (#765)
* Various controller fixes (#771)
* Fix controller
* Also fix rumble strength being a bool
* Remove ControllerHud.cpp
* Downgrade platform toolset back to previous version
* Fix gyro
* Fix bug that makes binding axes difficult and clear buttons before reading
* Exaggerate gyro display and adjust stick binding threshold
* Initialize drift thresholds
* git subrepo push soh
subrepo:
subdir: "soh"
merged: "75ccbade8"
upstream:
origin: "https://github.com/HarbourMasters/soh.git"
branch: "master"
commit: "75ccbade8"
git-subrepo:
version: "0.4.1"
origin: "???"
commit: "???"
* One more change from PR review
* Fix some paths
* Fix merge conflict messup
* More merge conflict fixes
* And another conflict fix
* And another fix
* Remove reference to removed build files
* Add full path to switch cmake
Co-authored-by: David Chavez <david@dcvz.io>
Co-authored-by: KiritoDev <36680385+KiritoDv@users.noreply.github.com>
Co-authored-by: Jeffrey Crowell <github@crowell.biz>
Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com>
Co-authored-by: sholdee <102821812+sholdee@users.noreply.github.com>
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: rozlette <Rozelette@users.noreply.github.com>
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
Co-authored-by: vaguerant <vaguerant@users.noreply.github.com>
Co-authored-by: earthcrafterman <banddstudios@gmail.com>
Co-authored-by: louist103 <35883445+louist103@users.noreply.github.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
Co-authored-by: qurious-pixel <62252937+qurious-pixel@users.noreply.github.com>
Co-authored-by: Baoulettes <perlouzerie@hotmail.fr>
Co-authored-by: Sirius902 <10891979+Sirius902@users.noreply.github.com>
Co-authored-by: modestposer <modestposer@gmail.com>
Co-authored-by: Ada <60364512+GreatArgorath@users.noreply.github.com>
Co-authored-by: Stormghetti <56653191+Stormghetti@users.noreply.github.com>
Co-authored-by: Sirius902 <3645979-Sirius902@users.noreply.gitlab.com>
Co-authored-by: MelonSpeedruns <melonspeedruns@outlook.com>
Co-authored-by: aMannus <mannusmenting@gmail.com>
Co-authored-by: Dog <5172592+Dog@users.noreply.github.com>
Co-authored-by: Nicholas Estelami <NEstelami@users.noreply.github.com>
Co-authored-by: ChristopherJTrent <ChristopherJTrent@outlook.com>
Co-authored-by: agamache <aaroncgamache@gmail.com>
Co-authored-by: M4xw <m4x@m4xw.net>
* Fixed switch compilation
* Fixed responsive on switch imgui
* Remove config save hook
* Added physical slots into controller name
* Add `ifdef` for switch specific code
* Add `ifdef` for switch specific code
* Added applet mode detection
* Replaced homebrew icon
* Fixed randomness on applet mode view
* Fixed clkrst initialization
* Switch profiles cleanup
* Cleaned code based on dcvz comments
* Remove unused hooks in Mercury
* Fixed compilation
* Use IMGUI_IMPL_OPENGL_LOADER_CUSTOM
* Fix up StormLib modifications
* Handle touch events at ImGui/SDL level
* Enable opening menu with -
* Load Nintendo Switch font
* Updates to window initiation
* Handle virtual keyboard via SDL
* Print OTR missing message to screen
* Rename makefile for Switch
* Some more additional fixes
* Branch creation plus edit
Changed ItemWidth & made label invisible (else issues)
Added a submit button next to the text field
* Removed set_texture_filter on imgui draw
* Readded nintendo switch font
* Fixed randomizer crash
* Fix issue with strdup windows
* [SWITCH] Update Jenkins file (#9)
* [SWITCH] Update Jenkins file
* [SWITCH] Dockerfile.switch
Can be combined with other Dockerfile
* [SWITCH] Add entrypoint file
* Update Jenkinsfile
* [SWITCH] Dockerfile mtab link
link `/proc/self/mounts /etc/mtab`
Co-authored-by: David Chavez <david@dcvz.io>
* Cleaned code based on PR comments
* Fixed switch compilation
* Cleaned full texture cache instead of doing it per char
* Randomizer only saves when its not a vanilla save
* Disabled input when menubar is opened
* Removed return from SetupFont
* Cleaned code based on comments
* Cleaned up random texts on switch error screen
* Killed
* Removed debug and changed compilation flags
Co-authored-by: KiritoDv <nohomoboi01@gmail.com>
Co-authored-by: Felipe Guaycuru <guaycuru@gmail.com>
Co-authored-by: David Chavez <david@dcvz.io>
Co-authored-by: Jeffrey Crowell <github@crowell.biz>
Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com>
Co-authored-by: sholdee <102821812+sholdee@users.noreply.github.com>
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: rozlette <Rozelette@users.noreply.github.com>
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
Co-authored-by: vaguerant <vaguerant@users.noreply.github.com>
Co-authored-by: earthcrafterman <banddstudios@gmail.com>
Co-authored-by: louist103 <35883445+louist103@users.noreply.github.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
Co-authored-by: qurious-pixel <62252937+qurious-pixel@users.noreply.github.com>
Co-authored-by: Baoulettes <perlouzerie@hotmail.fr>
Co-authored-by: Sirius902 <10891979+Sirius902@users.noreply.github.com>
Co-authored-by: modestposer <modestposer@gmail.com>
Co-authored-by: Ada <60364512+GreatArgorath@users.noreply.github.com>
Co-authored-by: Stormghetti <56653191+Stormghetti@users.noreply.github.com>
Co-authored-by: Sirius902 <3645979-Sirius902@users.noreply.gitlab.com>
Co-authored-by: MelonSpeedruns <melonspeedruns@outlook.com>
Co-authored-by: aMannus <mannusmenting@gmail.com>
Co-authored-by: Dog <5172592+Dog@users.noreply.github.com>
Co-authored-by: Nicholas Estelami <NEstelami@users.noreply.github.com>
Co-authored-by: ChristopherJTrent <ChristopherJTrent@outlook.com>
Co-authored-by: agamache <aaroncgamache@gmail.com>
Co-authored-by: M4xw <m4x@m4xw.net>
* add pkgconfig to the list of dependencies for mac
lots of people are trying to build and they don't have pkg-config in
their paths. hopefully this removes some confusion.
* add cmake to mac deps
Just trying to prevent people asking what version and where to get the game. I got 2 other copies before finding the right one & I agree with the attitude of some of the people on discord it's not that much effort it didn't take me all that long to do I still think that this will save the world and people helping the project some times not to mention bans.
* All features are for the equipment menu:
Added ability to use the right stick for rotate Link enhancement.
Added ability to have analog control on rotating Link.
Added ability to zoom into Link with right stick.
Added ability to have Link do random animations Idle only.
* Added RotationSpeed as a multiplier rather than a hardcoded 2.5
-Allows for more custom control
-Also gives purpose for the slider to still be present w/ RStick
* Specifically for the RStick, divided RotationSpeed by 150
-Even at RotationSpeed 1 it was way too fast
* Added logic to play animations based on what Link has equipped & his age
- If has sword and shield, all animations
- Unless he's a kid with the Hylian shield equipped
- If has sword no shield, all anims but shield anim
- If has shield no sword, all anims but sword anim
- Unless he's a kid with the Hylian shield equipped
- If he has no sword or shield equipped no sword or shield anims
* Casted RotationSpeed to float for RStick and divded by 600.0f
- Did this instead of dividing by 150, as at RotationSpeed of 20
the rotation was so fast it was almost nauseating.
I noticed at RotationSpeed of 5, it was still very quick.
Logically, another division of 4 was necessary.
* Changed the spacing
* Add the ability to play the ocarina really fast like in MM3D
* Clean up CVar condition
* Rename Unlimited Ocarina Speed to Prevent Dropped Ocarina Inputs
* Added a time saver option to allow players to instantly put items away
Expanded the range of damage multiplication to 80 (20 hearts of damage for each quarter heart) so players can play a sudden death challenge
* The damage sliders are now comboboxes
Damage multiplication is now exponential instead of incremental
The FPS slider is now a text input
* Splitting into solely being a quick putaway PR
* Removed some leftover code from the split
using subprocess instead of os.system() is a little safer, and allows
for roms with spaces to be extraced.
i've noticed this is somewhat common in people reporting issues on
discord.
* add pkgconfig to the list of dependencies for mac
lots of people are trying to build and they don't have pkg-config in
their paths. hopefully this removes some confusion.
* add cmake to mac deps
Just trying to prevent people asking what version and where to get the game. I got 2 other copies before finding the right one & I agree with the attitude of some of the people on discord it's not that much effort it didn't take me all that long to do I still think that this will save the world and people helping the project some times not to mention bans.
* All features are for the equipment menu:
Added ability to use the right stick for rotate Link enhancement.
Added ability to have analog control on rotating Link.
Added ability to zoom into Link with right stick.
Added ability to have Link do random animations Idle only.
* Added RotationSpeed as a multiplier rather than a hardcoded 2.5
-Allows for more custom control
-Also gives purpose for the slider to still be present w/ RStick
* Specifically for the RStick, divided RotationSpeed by 150
-Even at RotationSpeed 1 it was way too fast
* Added logic to play animations based on what Link has equipped & his age
- If has sword and shield, all animations
- Unless he's a kid with the Hylian shield equipped
- If has sword no shield, all anims but shield anim
- If has shield no sword, all anims but sword anim
- Unless he's a kid with the Hylian shield equipped
- If he has no sword or shield equipped no sword or shield anims
* Casted RotationSpeed to float for RStick and divded by 600.0f
- Did this instead of dividing by 150, as at RotationSpeed of 20
the rotation was so fast it was almost nauseating.
I noticed at RotationSpeed of 5, it was still very quick.
Logically, another division of 4 was necessary.
* Changed the spacing
* Add the ability to play the ocarina really fast like in MM3D
* Clean up CVar condition
* Rename Unlimited Ocarina Speed to Prevent Dropped Ocarina Inputs
* Added a time saver option to allow players to instantly put items away
Expanded the range of damage multiplication to 80 (20 hearts of damage for each quarter heart) so players can play a sudden death challenge
* The damage sliders are now comboboxes
Damage multiplication is now exponential instead of incremental
The FPS slider is now a text input
* Splitting into solely being a quick putaway PR
* Removed some leftover code from the split
using subprocess instead of os.system() is a little safer, and allows
for roms with spaces to be extraced.
i've noticed this is somewhat common in people reporting issues on
discord.
* Giant's Knife Behaviour Fixes
Fixes a case where Giant's Knife (specifically, breaking and re-buying it) can behave unexpectedly if you don't have a Kokiri Sword in your inventory. Also fixes the broken icon not showing up in inventory after you break it.
* less whitespace
* fix 0xE check
Accidentally committed with the wrong check
* Move the grayscale code up
Moved the grayscaling portion up higher in the function and renamed "bool not_acquired" to "bool age_restricted". Thanks to @vaguerant for the suggestion!
reported on discord, i don't have the ability to reproduce this, but it
appears to be a benign fix, as the only time that the tent2 is checked
down later is guarded by a null check.
Haven't removed where rando stores the hints for itself and the ganon and altar hints are still pulled from the randomizer class' local storage, but gossip stone hints are pulled from the custom message table now.
* prefix randomizer methods with Randomizer_
* make filename a local var
* remove unused file, update malon to use new names
* move randomizertypes to randomizer directory
* rename to Randomizer_GetSettingValue
Co-authored-by: briaguya <briaguya@alice>
Also auto-dissmisses the textbox when gSkulltulaFreeze is on. When gInjectSkulltulaCount is off, text is not auto-dismissed just like before, since that is base game text still.
Basically, some external code can choos a unique id and create a message table for itself. The idea is that modders can hook into this as well so they can get their own message table and don't have to worry about conflicting with the base game's textIDs. I have also implemented this setup for Randomizer so that the pre-filled bottles (which didn't exist in the original outside of Ruto's letter) have unique text as compared to the text for the item they are filled with.
`CustomMessage_RetrieveIfExists` is placed at the very beginning of the z_message_PAL.c `Message_OpenText` if statement after any special changes to textIds are made. This function will either return either true or false and if true it will populate the necessary values of font and msgCtx to display said message. It's placement at the beginning also allows for overriding existing textIds to have new information, which will come in handy later.
Pulls the Custom Message related code out into it's own class, which has an initialization phase where other enhancements / future features can create messages during an initialization phase to be stored and retrieved later. Along with this refactoring, the 4 bottle messages from the previous rando-specific system are now created and stored during intialization and retrieved by their getItemId.
Now that it isn't rando specific, the goal is to move anything text changes that are hard-coded into z_message_PAL.c and refactor it so that future text additions/overrides can be done without modifying that file.
* Fix controller
* Also fix rumble strength being a bool
* Remove ControllerHud.cpp
* Downgrade platform toolset back to previous version
* Fix gyro
* Fix bug that makes binding axes difficult and clear buttons before reading
* Exaggerate gyro display and adjust stick binding threshold
* Initialize drift thresholds
* Initial controller hud ui
* Reverted fbdemo changes
* Moved config to json and implemented controller config
* fix build on linux, gitignore new config file
* fix build
* Fix compilation and file directory paths
* Call save on cvar save
* Fixed cvar loading and added deck slots to the config
* Changed control deck port 0 to use a physical device by default
* Added gyro and rumble & fixed loading errors
* Save config on toggle menubar
* fix linux build
* Fixed drift calculation
* Controller config now saves when pressing F1
* Removed ExitGame hook from ImGuiImpl
* Moved mappings to a map
* Added GetKeyName
* untranslate scancodes
* Fixed hud layout on keyboard device
* Fixed keyboard read on hud
* Fixed crash when reloading controllers
* Removed ConfigFile and changed file extension
* Changed Dummy to Disconnected and fixed filters
* Removed function leftover
* Changed ControllerHud to InputEditor
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: David Chavez <david@dcvz.io>
* Introduce app directory path concept
* macos: Remove hacky way of using applicaiton directory
* Update the new SaveManager
* Address stack user after return
* Remove unecessary property
* Use std::string for filepath
* Improve clang specific detections
* Use new path system for imgui files
* Improve helper for getting relative paths
We use 3DS logic to generate item placement, but didn't have this specific door in Water Temple unlocked from the beginning like 3DS does.
This meant that if people took specific paths through the temple, they could softlock themselves by missing a key.
* Fixes using the Ocarina to get the check from Malon.
Still some cleanup to do here. For some reason the player can shield before receiving the check. It doesn't set the flag if the player does that so they can still try again, but would prefer a different solution if possible.
* Prevents Shielding from blocking the Item_Give from happening.
* Code Cleanup and comments explaining the new rando flow.
* Removes inventory check when pulling out Ocarina
This allows OI to properly give the check, which is important for Glitched logic later down the line. Talking to Malon still requires the Ocarina in your inventory.
* Prevents non-malon textboxes from triggering the check.
Also adds a comment explaining the condtional for getting the check from talking to Malon since it got pretty long.
* Actually fixes checking for text boxes.
* Relocates a comment for improved clarity.
* wip free cam
* Almost done, needs collision still
* Added free cam behind cvar
* added WIP collision
* Fixed & implemented "Manual mode" from WW & TP
* Fixed camera not rotating when Link is moving
* fixed initialized camera rotation
* Fixed camera getting stuck + made it smoother
* reduced deadzone
* fixed epona camera height + added WW z-target free camera
* Adjusted player camera height & fixed fov
* Fixed camera roll
* fixed fov when moving the camera while in z-target
* Camera resets to Auto when going through doors or changing maps
* Fixed building
* touch
* more touch work
* Added WIP mouse support to the free cam
* gui stuff
* fixed building
* fixed building error
* ok fixed building for real this time
* oops
* Fix compilation issues
* removed mouse stuff that magically appeared in this branch
* smoothed out stick values & removed remains of mouse support
* re-added manual camera when pressing Z
* reduced minimum Y position of camera
* Addressed dcsv's nitpicks
* part 2
* oops
Co-authored-by: David Chavez <david@dcvz.io>
* Initial branch creation
* Revert Main Game so it do not conflict later
* should fix window build, made namespace for Cosmetics
* forgot to edit one title
* Ability to add hidden window (usefull for Rainbow)
Fix building issues
* Line break, unused bool remove
* skip learning song of storms
* don't set flag when getting goron tunic as child
* Initiates prelude check when master sword unloads.
Not quite how N64 rando does it but so far it's the only way I've found to make it trigger without also triggering the time travel again.
* Stops Shadow Temple lore prompts from appearing in rando.
* Skips cutscene of royal tomb explosion in rando.
Explosion sound doesn't play correctly and I think the debris appears in the wrong place, but the functionality is here.
* Improves visual of exploding gravestone.
* Adds some comments explaining the rando differences
* Skip ruto text box in jabu blue warp
For rando
* skip intro cutscene in dodongo's cavern
* load spoiler files on boot, fix spoilerfile existing check when making new saves
* name entry dropped spoiler logic
* make sure to actually init the cvar
* no chime on load
* uncomment
* Skip ganondrof cutscene
Skip to scream part of the death animation, skipping the text boxes etc. For rando
* Update z_boss_ganondrof.c
* skip owl flight cutscenes in rando
* Fixes skipped text so it only applies to shadow temple.
Earlier fix inadvertently applied to some other text as well, changed logic so that only specified sceneNums and textIds can have this enabled, and text skipped by sceneNum can have the skip overriden by textId if needed. Currently there are no overrides so the textId section of the logic is commented out to avoid compilation errors.
* Adds a default to the switch case statements that leaves the randoSkipText variable unchanged, just in case.
* TEST: Text for item
* Adding ganon flavor text
* ADD: AMMO Count
* format ganon text/hint text
* Autoskip the tower cutscene if settings call for tower collapse.
* ganon hint text logic
* Improved prelude after time travel fix
* swapped the sizes between ganon hint text and ganon text, as they were set to the wrong things.
* this is all i did
* not the cleanest code ever but it's working
* ADD: GS Count
* ADD: Wallter (crash for now)
* TWEAK: Wallet check
* FIX: Use DrawItem instread of DrawUpgrade... b-baka!
* Fixes some vanilla bugs introduced by rando code.
* Added cutscene skip for zelda escaping
Using the debug cutscene skipping function. Also added a conditional so the bridge doesn't spawn closed when cutscene is ready to trigger
* ADD: X Spacing + Placeholders for song
* ADD: default case for items
* TWEAK: Spacing
* FIX: Light Arrow
* ADD: Ammo Option
* use groups instead
* ADD: More spacing logic
* songs and names
* TWEAK: Color on wallet
* colors
* Added flags cutscene before nabooru fight
* ADD: ChromaKey text
* First attempt skip cs after nabooru defeat
* Better implementation for specific rando cutscene skips
* use pulseaudio defaults
* spaces/tabs
* move color push/pop to stop crash
* make the colors work again
* the real bottle fix
* pulseaudio values tuned for n64 audio at 44.1khz
* update tlength
* remove one hardcoded samplerate
* Cleaned up and fixed zelda escape skip
The if statement is a freaking monster, but unless we want to skip more cutscenes in the same way later, this is the most compact way of doing it that I know of.
* Revert one line to match original
nothing functional
* another hint line that breaks autonewline logic
* don't autospawn epona if we don't have the song/ocarina
* Trying to use iron knuckle death effects
not working yet
* Streamlined OoT cutscene skip for future additions
Also cleaned up if statement in general
* Made if statement more readable
Also added clarity for what cutscene was skipped
* Fixed typo in comment
* Janky nabooru defeat cs skip
* altar text formatting (gonna need help shortening some of the french ones)
* more altar text formatting
* english altar text formatting complete
* make gtg blocking guard check for card not bridge
* FIX: Typo!
* FIX: Uppercases
* FIX: Typo
* TWEAK: Alter + some names
* TWEAK: More caps!
* ADD: Missing string
TWEAK more uppercases and namefixe
s
* Hide nabooru death by covering her in flames
* bandaid fix for death crash issue
* Twinrova defeat cs skip
Skips the animation and manually calls the function to show the "beam" around the sisters
* fix crash
* fix caps to match
* fix great fairy reward mashing/shielding issue
* TWEAK : Typo clé to Clé
* TWEAK: Some Altar hints
TWEAK: Some capitals
* TWEAK: Unmatching text + some cap again
* TWEAK: More tweaks
* fix build
* remove extra json.hpp, add hint
* Update randomizer_item_tracker.cpp
* TWEAK: Double Defense with RedParticles instead of white
* make sure we don't optimize out the check to ensure a spoilerfile exists
* vanilla ganon boss key hint formatting
* TWEAK: FR- better way of the hero text
* fix
* and again
* Initializes dungeonsDone items in gSaveContext to 0.
* Replaces sizeof calculation with a NUM_DUNGEONS constant.
* Fixes Saria's Gift on the LW Bridge from getting killed when holding shield.
* More airtight fix for Saria's Gift on the Bridge.
* Lifts one of the conditions in the if statement a little higher to prevent unnecessary lookups of getItemId.
* Invalidate text box icon before drawing
* Fixes the case where Saria's gift is an Ice Trap.
We still get the Ice Trap once, but never again. This does mean you can now hold R while walking in to avoid the ice trap, but everything else seems to work fine.
* Initial commit
Might need changing when we change the settings in the future
* Fixes Door of Time opening cutscene after warping with prelude.
* Initial waterfall skip
Very rudimentary way of doing things but it seems to work so 🤷
* inital rework
* fixed default rotation for 2D sprites
* fix tab/space issues
* 3d drops rando merge fix again
* Allows Impa to appear in the Lullaby check post drawbridge escape.
* Changes Ganon's Trials Count setting to a checkbox
The checkbox is whether or not to skip all of them. Leaving the box unchecked will mean doing all of them. Eventually this will be switched back to a slider once we implement the logic for which trials start out completed.
* Sets all Ganon's Trials to incomplete in new saves.
Fixes https://github.com/briaguya-ai/rando-issue-tracker/issues/131
* fix castle guards when oot throw cutscene has already played in rando
* Properly removes the beams when trials are cleared.
* Removes Question Mark from Skip Ganon's Trials UI.
* Adds a todo comment about when to change back to slider.
* make deku seeds check for bullet bag
* Various tweaks
TWEAK: Altar Text
TWEAK: Hint names
TWEAK: Replace more problematic œ to oe
* upgrade ocarina on both child and adult equips
* FIX: Jabu Item
* update equipped hookshot/longshot when obtained as other age
* add hint
* don't give the bgs check without the claim check
* Skips Darunia Cutscene in Fire Temple
* Added a TODO note about not skipping the cutscene.
There is a setting we will want to have eventually that will require this cutscene to not be skipped since it is used during a glitch.
* remove todo
* restore fast ocarina option in imgui that was lost in merge
* Fixes grey screen issue + tooltip for 2 handed shield
* update to use dg instead of g for textures in item tracker
* TWEAK: Default color for cosmetic RAND button was not the corect one
* fix texture crash, remove unused item tracker code
* don't open mask shop until we get zelda's letter
* Update README.md
* Prevents "correct" chime under incorrect conditions.
* Fixes typo in conditional and adds "bonk" sound effect.
"Bonk" sound is NA_SE_SY_OCARINA_ERROR and it plays when conditions for the Door of Time have not been met after playing Song of Time. This is only possible in rando's "Intended" Door of Time option, in which the Ocarina of Time and all 3 spritual stones are required to open the door, instead of the vanilla requirements of just having the song of time.
* remove modify dpad equips toggle, replace with checks for dpad menu
* remove extra check
* add ability to hold c-up to assign to dpad when dpad menuing is enabled
* disable d-pad navigation on item menu when holding c-up to equip
* dpad+c-up stuff for equipment menu
* ADD: Checbox for songs colors
* TWEAK: RandoColors for normal songs
* kind of quick and dirty but it works
* TWEAK: Clarity of the tooltip
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: aMannus <mannusmenting@gmail.com>
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
Co-authored-by: Dog <5172592+Dog@users.noreply.github.com>
Co-authored-by: Vague Rant <vaguerant@users.noreply.github.com>
Co-authored-by: Baoulettes <perlouzerie@hotmail.fr>
Co-authored-by: Ada <60364512+GreatArgorath@users.noreply.github.com>
* change max internal res multiplier to 3x, use float and % instead of int
* Update libultraship/libultraship/ImGuiImpl.cpp
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
* hacks to align strings for clang... wow just wow
* start work to getting built with clang
* fix issues with struct constructors, all builds, doesn't link still
* fix some narrowing issues that clang complains about
* fix compliation of zapd
* fix null deref in VersionInfo
* builds with clang
* make stringbuilding use StringHelper instead of addition
* fix linking
* add CLANG SHIP overlay on clang built versions
* doesn't need to be volatile
* mark unknown strings as extern
* rename some stuff
* can't align extern
* hopefully fix compilation for everythign
* expandtab
* allow setting LD
* Revert "allow setting LD"
This reverts commit 711aba6db2.
maybe to use lld it should be a LDFLAG?
* -Wno-deprecated-declarations is required for newer versions of clang
on macOS 13 beta sdk, the version of apple clang requires this
* Add jenkins support for clang
* Forward CXX flags to stormlib compilation
* Move GCC only flags to check
* use exports to set multiarch setup
* Fix Jenkins forever
* use make instead of cmake --build
add some flags to build with clang-11 as well
* address review coments
- rework extraction to allow multi thread
- misc readability cleanup
* update makefile to add WARN on linux+clang
Co-authored-by: David Chavez <david@dcvz.io>
* Fix upgrade name text not rendering
* Use cvar and don't render equip help for empty item slots
* Fix rendering logic
* Fix incorrect item name rendered for one frame
* Reorder comparison
* Remove extra indent
* Remove accidental changes
* branch init + few fixes
* Reset button
* Several texts fixes and default color to GameCube
* space issues
* some more extra space that was not needed.
* space yes last time ...
* Arrows being able to be rainbow some more texts fixes
* more texts fixes
* c-buttons some plurial fix
* -
* DPad/some margin fix(left side)
* various ImGui stuff and fixes
* disabled kaleido menu (non working)
* fix win being dumb
* same for C btn this time
* Fix windows build
* Beating hearts fix
* Default win size and some placement fix
* Fix Dpad Ammo & C notes, Kaleido, white dog
* some texts fix and tab move
* Add stone of agony, some fixes and build correctly
* precise item place with Dpad
* Gamecube -> GameCube
Co-authored-by: Baoulettes <iMacWin10>
* use ini window resolution
* use arguments for directx window size
* default 640x480 not 320x240
* kick off a build
* and revert
* default config 640x480 not 320x240
* add todo
Co-authored-by: briaguya <briaguya@alice>
* First batch some overlay
* Almost all overlay
* effect & gamestate
* kaleido stuffs
* more overlay
* more left over from code folder
* remaining hardcoded line and file
* Open & Close _DISP __FILE__ & __LINE__ clean up
* Some if (1) {} remove
* LOG_xxxx __FILE__ , __LINE__ cleaned
* ASSERT macro __FILE__ __LINE__
* mtx without line/file in functions
* " if (1) {} " & "if (0) {}" and tab/white place
* LogUtils as macro
* GameState_, GameAlloc_, SystemArena_ & ZeldaArena_
* Revert "GameState_, GameAlloc_, SystemArena_ & ZeldaArena_"
This reverts commit 0d85caaf7e.
* Like last commit but as macro
* Fix matrix not using macros
* use function not macro
* DebugArena_* functions
GameAlloc_MallocDebug
BgCheck_PosErrorCheck as macros
removed issues with ; in macro file
* Adds toggles for disabling random drops and fixed heart drops
* Changed the "No Fixed Heart Drops" toggle to the more useful "No Random Heart Drops" toggle
* Adds an explanation that the no heart drops option is similar to Hero Mode
* Moved difficulty options into their own sub-menu
Moved time saver options into their own sub-menu
Moved clutter reducing options into their own sub-menu
* fixed the tag name of mweep speed
* Moved Skip Text to Experimental
* Fixed soh filters
* add more makefile changes
* almost ready
* more updates
* update
* update
* Update Makefiles to handle both platforms
* Allow for overriding the CXX and CC executables
* Restore original structure while supporting custom CXX flags
* Remove some platform specific libs
* Dynamic target name
* Make X11 paths package-agnostic
* Remove changes to `gfx_opengl.cpp`
* Use OpenGL2 on MacOS instead of OpenGL3
* make it actually render something
* render at least the first texture, still need to figure out the second
one
* Let’s use OpenGL 3 again
* maybe this works to get the right texture? link's eyes still look off a bit
* did this work?
* set the platform to macos
* actual numbers are right, but logic is ugly XXX/TODO, i know
* add zlib to ldflags for ZAPDUtils
* A bit of cleanup
* Revert unneeded changes
* Remove GL_CHECK
* Fix issues with z64 branch
* use an std::map instead of a giant array
* three point filter fix (#2)
* Fix mac compilation
* fix audio for 64 bit
* revert audio heap size, keep bigger pools
* Add more Apple specific checks to our modifications
* Add building instructions for macOS
* Remove unecessary step from building instructions
* Add missing SDL2 & GLEW to Linux LDLIBS
* Update BUILDING.md
Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com>
* Update soh/.gitignore to include other arch binaries
Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com>
* Use right platform name for debugging window
Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com>
* Fix stormlib on macos (arm64)
* Simplify some of the ifdef checks
* Revert an older no longer necessary fix
* Remove remaining unecessary deviations
* Update building instructions after StormLib changes
* Feature: Use OpenGL 4.1 (#1)
* Further tweak the BUILDING
* Tidy up
* reword -j message
* Add Jenkins CI Support (#2)
* Fix type issues
* add target <appbundle> and <filledappbundle>
add makefile targets to create an .app
`filledappbundle` creates the target with the .otr included
this should perhaps be moved to Application Support though
* pull gcc's rpath from otool output
* move make target to the end so it's not default
* Add Jenkins and make exe in par with other platforms
* Actually save build artefacts
* Fix artefact path
* Remove x11 mentions and linking (not used)
* Update building instructions for generating app
* use appsupport directory
* Add new app icon
* Update target to match macOS types
* Update more audio types
* fix null deref in Audio_PlayFanfare
* Remove old import from z64
* address final nit with apple ifdefs
Co-authored-by: KiritoDev <36680385+KiritoDv@users.noreply.github.com>
Co-authored-by: Jeffrey Crowell <github@crowell.biz>
Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com>
* Added save filename and path to config file
Closes#110
* Moved FileIO to libultraship
* Moved OOT Specific Code to OTRGlobals and made libultraship for general file IO. Combined config options.
* Moved filesystem include into GlobalCtx2.h
* Added three sliders for multiplying damage:
1) Generic Slider, includes everything not multiplied by other sliders
2) Fall Damage Slider, includes all fall damage
3) Void Damage Slider, includes all void out damage
* Included tooltips
* Modified func_80837B18 to handle the modified flag the same as Player_InflictDamage does
* hotfix of a dumb oversight
* Fixed an oversight that led to compile failure on Linux and probably more things that weren't noticeable in unit testing
* I keep missing dumb mistakes.
I keep missing dumb mistakes.
Is this the last dumb mistake I've missed?
* Oh crud it's because I declared func_80837B18_modified after func_80837B18 isn't it? I am the ultimate dumbus.
* Show new Actor description, fix window opening
* Play error sound when spawning invalid actor
* Add reset button, don't reset actor when changing scene
* Extract StormLib building from soh to ZAPDTR
ZAPDTR is currently where we have everything… though this might not make the most sense.
* Do not import storm as a relative
* Add checkbox to make holding the D-pad act like holding the joystick on the file and pause screens. Also fix unguarded debug camera action.
* Removed new cvar from UI, made it enabled by default and control the D-pad hold behavior with the existing cvar instead, changed cvar for debug check too
* Fix: SohImGui behavior and cleanup
- FIX: Once Save Editor / Collision Viewer are closed, set their values back to 0 so they don't automatically open once we click on Developer Tools
- FIX: Same kind of fixes for every cosmetics editor
- FIX: Typo "gCosmticsEditor" to "gCosmeticEditor"
- TWEAK: Cleanup of useless stylizing options on Cosmetics
* TWEAK: Reset a pointer that I edited for some testing
* FIX: Typo from Assignable tunic / boots tooltip
* move cvar.h includes out of extern c block
* remove extra line
Co-authored-by: briaguya <briaguya@alice>
* Add Controller Navigation
- Apply Rainbow patch
- Add Controller Navigation
- Controller "Back" button opens F1 Menu
- Controller Rumble/Gyro settings at the bottom of the controller menu
* Restore changes from PR #306
Add back update from https://github.com/HarbourMasters/Shipwright/pull/306
* Add Tooltip of new functionality
Tooltip:
Allows controller navigation of the menu bar
D-pad to move between items, A to select, and X to grab focus on the menu bar
* set & save check
* Fixes for switch port
* Add fishing pole as sword in save editor
Adds fishing pole as a sword to the save editor under current equipment.
* Improve Collision Viewer
Made all the values of the collision viewer persistent.
Switched all color pickers to the EnhancementColor picker.
Added a checkbox to enable/disable collision viewer.
* Update SohImGuiImpl.cpp
Probably fixed linux build error
* Update colViewer.cpp
Hopefully fixed it this time. Lets wait for jenkins.
* Fixed colors
Some color values were wrong
* Update SohImGuiImpl.cpp & SohImGuiImpl.h
* Fixes the Gravedigging Tour heartpiece bug.
Basically just causes Dampe's Gravedigging Tour Heart Piece to set a Collect flag on the Graveyard Scene when collected instead of a GetItemInf flag when it's spawned. I did this by simply the result of Item_DropCollectible to a variable called reward and running reward->collectibleFlag = 0x19 if the reward was a heartpiece.
There may be a better way to do this. This is unlike most of the other dropped items with collectible flags in the game, which have some binary operations performed on the item to be dropped before passing it into Item_DropCollectible. See z_en_geldb.c and z_bg_haka_tubo.c for examples of this. I tried to find some way to do something more like that here but I was unable to wrap my head around the binary operations being performed. I may revisit this in the future.
* Reimplements vanilla bug, adds cvar and checkbox for the fix.
* Adds some newlines to the Tooltip
* Shortens ImGui tooltip.
* Removes the hardcoded Purple Rupee/Heart Piece reward.
* Sets collectibleFlag whether cvar is on or not to prevent duping.
* Sets Gravedigging Tour Fix to enabled by default
* Simplifies logic for whether or not to spawn heart piece
* Adds TempClear flag set and check for heart piece.
This originally introduced a bug where the player could spawn multiple
heart pieces by simply not collecting the one that spawns and continuing
to dig up spots. This fixes that by checking a temp clear flag before
spawning the heart piece and setting it when the heart piece spawns.
Since this is a temp clear flag it will not stay set if the player
exits the scene, so this still does fix the bug of locking the
player out of the heart piece when spawning it and leaving without
picking it up.
As far as I can tell this temp clear flag isn't used anywhere else
in this scene. The only one used in this scene I could find is that
killing the first Poe in this scene sets flag 0x02 (or maybe it's
0x01, not sure if the flags start at 1 or 0).
* Replaces magic numbers with constants defined in z_en_tk.h
* Updates comment explaining changed code.
* Replaces another magic number I forgot to replace last commit.
* Replaces TempClear flag with local variable
* Removes TempClearFlag const and moves others out of .h to .c (felt like they made more sense there)
* ADDED: Draw Distance toggle under Experimental enhancement
* FIXED: Dark Link Apparition + Kokiri NPC spawn
* Added a Toggle for Kokiri NPC since they are mystics
* TWKEA: Desciription got the Kokiri draw distance
* FIXED: Horses behavior
Fixed Epona shout on title screen + Epona call from songFixed Zelda and Ganon horses that could still be seen on camera pan on the castle escape cinematic
* Tweak: Draw Distance: Kokiris menu behavior
Force the Kokiri Draw Distance to be set to 0 if the Draw Distance is disabled
* Added actor view
* Update buttons; cleanup
* Refactored; added windowing from save editor; added options to pull actors from targeting/holding/interaction
* Add description for all actors
* Update actor list when changing scene
* Remove whitespace
* Type conversion; added checks against global context being null; removed kill button (for now)
Co-authored-by: ajanhallinta <4janhallinta@gmail.com>
* #243 Add option to disable black bars letterboxes
* #243 Add option to disable black bars letterboxes
* Update libultraship/libultraship/SohImGuiImpl.cpp
* Update libultraship/libultraship/SohImGuiImpl.cpp
* Update libultraship/libultraship/SohImGuiImpl.cpp
Co-authored-by: Ada <60364512+GreatArgorath@users.noreply.github.com>
* Add new line
Co-authored-by: Ada <60364512+GreatArgorath@users.noreply.github.com>
* Added slider to increase vine/ladder climbing speed
* moved to cheats menu and made steps more granular
* Fix granularity math
* back to the enhancements menu!
* Update README.md
* Added some default keyboard controls
Still need triggers though
* Update README.md
* Update README.md
* Update README.md
* Changed first table to a horizontal orientation
* Made wording changes
also fixed a grammatical error
* Update README.md
* ADDED: Draw Distance toggle under Experimental enhancement
* FIXED: Dark Link Apparition + Kokiri NPC spawn
* Added a Toggle for Kokiri NPC since they are mystics
* TWKEA: Desciription got the Kokiri draw distance
* FIXED: Horses behavior
Fixed Epona shout on title screen + Epona call from songFixed Zelda and Ganon horses that could still be seen on camera pan on the castle escape cinematic
if users don't have ssh keys set up "git clone git@github.com:HarbourMasters/ShipWright.git" fails. this makes it so copy/pasting the instructions should work for more users.
* Enhancement: More options for Kaleido Link
ADDED: 14 animations to use
ADDED: 2 random mode
ADDED: Link rotation on the menu with DPAD-Left and Right
ADDED: Reset position with DPAD-Up and Down
* ADDED/ Choice to use C-Button or D-pad
* HUD Logic fix and cleaning
* array revert it was just fo rme to read it better
* Fix tunic logic seem like my cleaning was not good
* I had declared default in CPP
It resulted to overwrite what user would make oof.
Also a ! was missing.
* There, Default here is better.
* magic bar and used bar what switched
while updating EnhancementColor
* hud mod update
* Update SohImGuiImpl.h
* should fix build
These flags are known to fix one known issue exclusive to Linux: the Volvagia boss battle sequence. The softlock that occurs points towards a possible floating point precision error, possibly tied to the camera/Volvagia movement. This does not occur for the Windows build. It's possible that there are more issues that gets fixed by these flags. These flags will ensure that the compiler follows the IEEE 754 standard, which so happens to be the same behaviour that Windows uses. For more details, read this informative stackoverflow post: https://stackoverflow.com/a/16395650
* Players can now spam their way through Kaepora Gaebora dialogue
* Turned the Owl Text Inversion into a toggle
Instead of replacing the Kokiri Owl Text at boot, a new Text Entry is added for it
* Attempt to make it compile on Linux
* Added multilingual support
* Commented the code to clear up confusion
* Update SohImGuiImpl.cpp
* Add int variant of CVar_ Get/Set/Register
* Add variant of CVar_ Get/Set/Register
* Add LoadHUDColors()
* Added temporary menu for custom colors
* vars added
* added section load
* variables save/load
* register boolean for colors radiobox
* Minimap recolor
* Hearts (top left) color, incl. DD variant
* Add A/B/C/Start btn colors and rupee
* A & C button icon and save prompt cursor.
* A & C notes and cursor
* Some notes I forgot tbh was open since hours.
* Shops cursor color with included pulse
* Wrong section was added
* Fixed some logic there and removed an unused if
* Moved a condition to make it better.
* That what happen when you left it open for hours
* Update z_message_PAL.c
* Added color array for A button
* Get/Set/Register Int not needed anymore
* Update Cvar.h
* Update Cvar.cpp
* Removed HUDCOLOR_SECTION moved it to cosmetics
Updated Tunics and navi mod too.
* changed categorie name and updated
* Updated Cosmetics menu and add colors there
* Update GameSettings.cpp
* Update GameSettings.h
* A more generic name
* Update SohImGuiImpl.cpp
* Update bootcommands.c
* update var name
* var name update
* var name update (creative name I know...)
* Updated variables names to match gHudColors
* to lazy to name this one
* gHudColors renaming stuff there too
* guess what, variable renaming.
* Update Tunic/Navi mods with new variable name.
* Updated Links tunic variable names
* Fix condition for Right C button
* Add condition to check if the button is on
* Added system to check if color tunics is turned on.
* Added empty C button colors
* Add ability to move Hearts
* Ability to move minimap (incl. dgn one)
Add Dungeon icon fix requirement. once merged I will fix conflict with this one.
* Compass icon move with the minimap
* Added several button move function
* stone of agony folly the interface too.
* fix minimap alpha
* Fixes notes env color (was showing incorrectly)
* PR repo mass update, cleaning incoming
* Clean_PR stuff
* useless there ...
* Properly load the function.
Imagine creating a pseudo function to load load of colour and you actually forgot to add it, could not be me right , RIGHT ?
* fix conflict and useless edit
* Fix default color for A/B and C btns
* Fix Rupee default color in ImGUI
* Reworked Tunics handling, much better this way
* Fix minimap default color
* C button default color fix
* better behavior and default color fix
* Fixed every default color to match gamecube style
* Fix dungeon entrance icon n.2
it was not using margin and always show icon system
* This need a scene else it show everywhere oof
* add python version requirement to BUILDING.md
extract_assets uses match statements which were added in python version 3.10
* update wording/version on python requirement
https://github.com/HarbourMasters/Shipwright/pull/251 removes the 3.10 specific match statements, dropping the python version requirement to 3.6.
* Update BUILDING.md
* Update BUILDING.md
* Update BUILDING.md
* Update BUILDING.md
* switch python link to download page
* Fixed SHA-1 for retail ROM
* Added discord link
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
Co-authored-by: InfoManiac742 <ryanjgabel@gmail.com>
* Removes the code that plays the low health alarm sound effect, by removing that instead of making HealthMeter_IsCritical always return false, Link will still play the tired animation when low on health.
* Made the low health alarm an enhancement toggle
* Adds tooltip function and tooltips to various ImGui menu items
* Update SohImGuiImpl.cpp
* Adds more tooltips and changes input scale tooltip
Adds for anti-aliasing settings, cheats, and debug settings
Changes tooltip for input scale to be more clear
* Fixes typos, makes N64 mode more clear, and americanizes it
* Update SohImGuiImpl.cpp
* Standardises D-pad spelling
* Update SohImGuiImpl.cpp
* Fixes typo, changes dungeon entrances tooltip, and fixes tabs
* Clearer wording
* Removes full stop
* Removes spaces from new line
* Removes space after \n
* Makes Linux compile
* Fixes wording
The OTRExporter exports an `oot.otr` archive file which Ship of Harkinian requires to play.
Use the `extract_assets.py` script file to run the exporter using any of the following methods:
1. Double click on the script after placing one or more roms in the directory.
2. Drag & Drop a rom onto the script.
3. In a terminal run `python3 extract_assets.py` after placing one or more roms in the directory.
4. In a terminal run `python3 extract_assets.py <path_to_rom>`
If the script finds multiple roms the user is prompted which to use. Selection is done using the number keys and then pressing the carriage return key.
set(VCPKG_FALLBACK_ROOT${CMAKE_CURRENT_BINARY_DIR}/vcpkgCACHESTRING"vcpkg configuration directory to use if vcpkg was not installed on the system before")
else()
set(VCPKG_FALLBACK_ROOT${CMAKE_CURRENT_BINARY_DIR}/.vcpkgCACHESTRING"vcpkg configuration directory to use if vcpkg was not installed on the system before")
endif()
# On Windows, Vcpkg defaults to x86, even on x64 systems. If we're
# doing a 64-bit build, we need to fix that.
if(WIN32)
# Since the compiler checks haven't run yet, we need to figure
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.