- Visible Collision added to more Skulls in Crates for consistency with similar situations
- Visible Collision added to chests in crates in MQ fire and for more ways to hit the switch in MQ fire Lizalfos maze
- Allow any jumpslash to break the pot in red ice in ice cavern with visible collision.
- Add Visible Collision as a way to get the gold skull token in the rubble in 4F Gibdo room in MQ shadow
- Turns out, while you take fall damage if you backflip onto a building from GF above jail, the floor is perfectly fine.
- Granny's shop forgot to check the price of the item being sold for wallets.
Introduces the basis for a language system to allow the UI to be translated to any language and/or have the text changed by mods.
A lot of things would require more work but, for a proof of concept, this PR makes all randomizer trick names & descriptions translatable (currently not re-loadable at runtime as that would require deeper changes and this is already merge conflict hell every time a trick is touched).
The system works by passing it a "translation path" which is resolved in the .json including object indentation. If the resulting json object is a list of strings, instead of a string, they get concatenated (purely for organization/QoL).
With the new imgui OTR generation flow, macOS would crash when Ship
was run for the first time unless com.shipofharkinian.soh had already been created.
Move the call to CheckAndCreateModFolder() earlier in execution to prevent crashing.
Looking into fixing warnings about commands already being bound,
LUS initializes a console window which we ignore,
but it registers global command handlers,
SohConsoleWindow does this again, but that's also where mInputBuffer/mFilterBuffer get set
Proper fix would be removing SohConsoleWindow, but it exists to have mono font
Before I had the change back to the placeholder actor id the Dummy
Player actors were spawned with, but since we grabbed the actorDB
entry before Actor_Destroy was called it didn't matter. Move it
and the requisite log statement to after Actor_Destroy.
Adds an enhancement that changes targeting behavior, allowing
Switching targets with the chosen button combo
(In Switch mode) Untargeting by just pressing Z
The sampleDataStartPad and aligned variables existed solely to satisfy
the N64 RSP DMA requirement that source addresses be 16-byte aligned.
On PC, aLoadBuffer is a plain memcpy with no such constraint.
The alignment dance caused aLoadBuffer to read up to 15 bytes before
sampleData and up to 8+ bytes past the end of the sample buffer. On
platforms with strict allocator guard pages (e.g. OpenBSD), this
triggers a SIGSEGV.
A second issue remains after removing the alignment dance: nFramesToDecode
is derived from sample counts (loopEnd), but size is not always a multiple
of frameSize. loopEnd and size are derived independently during encoding
and can disagree on the final partial frame, leaving nFramesToDecode *
frameSize exceeding the remaining bytes in the buffer.
Remove sampleDataStartPad and aligned entirely. Clamp the load to
min(nFramesToDecode * frameSize, audioFontSample->size - sampleDataOffset).
The ADPCM decoder operates on DMEM, so a partial last frame in DMEM
produces at most a negligible artifact at sound termination.
Personal Notes is awkward with Combo Button Hold, but should be allowed
This avoids disabling drop down when it could otherwise be changed to Main Window
Besides, some people might be able to type while holding button combos, long live artsey.io
PreFunc for map/compass coloring & jabber nut coloring doesn't work in file select menu,
could make them always enabled in file select, but this seems simpler
Also fix map colors & ice cavern compass color
Change Actor_SpawnEntry to use VB
Move adult zelda collapse stalfos to a explicit hook
Move dark link to a explicit hook
Some more canRandomize that were not needed
Move bg_haka & bg_haka_tubo to explicit hooks
Move en_vali to an explicit hook
Move bg_mori_bigst to an explicit hook
Fix door opening before the enemies are killed
Remove `canRandomize` parameter
Move bg_haka_huta to explicit hooks
Caused by spawning in Zora's River with entrance rando,
going downstream to different room, then swimvoid
Before the area by waterfall would not be loaded,
instead downstream still loaded
When entering a dungeon like well at night, defeating a boss that changes time to day, Kakariko Village would load with daylight but act like it's night
Skipping the blue warp cutscene meant dayTime and nightFlag weren't properly in sync. Clear `gSaveContext.nightFlag` when adjusting time of day
AutoFormat isn't suitable for text using escape codes, but unlike other texts this collection uses a mix of escape codes & our formatting codes. In such scenarios Format avoids mangling things
Refactors Death Mountain Crater logic to work in a more straightforward, if verbose, applies Tunicless navigation consistently, and paves over some small oversights.
As Child must be able to navigate DMC to some degree due to Child only checks, and logic should be consistent between Child and Adult, DMC no longer hard requires Tunic in any scenario. Instead checks and exits are split into regions, and each entrance has a "Fewer Tunic Requirements" heart count associated with it for each region which is then increased by 50% (rounding up) when FTR is off. This applies to both Child and Adult.
* Move some trap stuff to `Traps.cpp`
* Split `GetTrapTrickModel` into a function
* Split `ShouldJunkItemBeTrap` into a function
* Move `BuildIceTrapMessage` to `Traps.cpp`
* Allow ice trap messages to have the item name. Only for english for now due to article issues.
Added a case for the VB_MALON_RETURN_FROM_CASTLE vanilla behavior flag.
This lets Malon stay until you both get the egg and wake up Talon making the egg flag unmissable.
Rename deku tree grass on 2F, move logic accordingly
Include climb requirement in Dodongo's Armos Room without unintuitive jumps
Spirit typo had locked door before child climb linked to 2F instead of 1F
This commit makes some changes to the dockerfile to make it work again.
We install cmake from source in order to meet the minimum required
version specified in the CMakeLists.txt file. We build the same version
that is installed on the CI runner image.
We also build tinyxml2 from source because we need some cmake files
that are apparently not included in the apt package.
most speak checks conservatively only apply to Link initiating speech,
but didn't realize business scrubs speak unprompted & that would make deku jabber nut mostly useless
this doesn't apply to other scrubs (such as 123 scrubs), maybe in future we can block more, such as showing trade items
Fixes#1727. Specifically, it removes a lot of old situations in which the stone of agony icon would've been hidden, such as shield and z-targeting. It will still be hidden while talking to an NPC or in cutscenes.
This does also introduce a subtle change in behavior. It now behaves a bit more like the Shard of Agony from the 3ds version. Instead of always being visible after the stone of agony is obtained, it is now hidden until you get close to a secret spot, appearing at a slightly further range than when the rumble would start.
This calc ends up with 8 heart containers in the pool with the default 3 starting hearts, just like the 8 heart containers in the vanilla game. Changing starting hearts results in half of the remaining hearts being filled by heart containers and half of the remaining hearts being filled by heart pieces.
Add all window display options to Entrance Tracker.
Apply hidden label filtering to combobox labels.
Remove tracker prefixes from check and entrance tracker preset load functions.
Remove all references to the menu bar, and the menubar source and header files.
Shuffles 6 languages (Deku, Gerudo, Goron, Hylian, Kokiri, Zora) to learn before being able to use Speak command with actors of that type. Other actors can still always initiate speech
Owl speaks anything (relevant for owl flights)
Namely Swim, Crawl, Climb, Grab, Open Chests, and Bean Souls
Also added a page up and page down feature since the list is getting large. Assigned it to C-Left and C-Right. I'd like to put C-Down as "Jump to End" but the way things currently are I can't set C-Up as "Jump to Start" so I'll leave that one out for now.
fix goron messages in rando
also always include "IS_RANDO" in rando shipinit dependencies
don't use rando RNG, trying std::array
avoid sprintf, std::array not necessary
fix random rupee name crash
roll random traps: don't reuse rando rng
fix better bombchu typo
Allows the rebinding for Resetting the game, Debug Map Select, and Debug No-Clip.
Also allows for Speed Modifiers to use the new button combos, instead of only the modifier buttons.
This sets up the initialization process to allow for producing an ImGui window before ROM archives are made, so that ImGui can be used to prompt users along the O2R creation process instead of using the OS prompts, which aren't always usable even on some Linux devices, let alone other 2nd-party port platforms, as well as graphically report extraction progress.
Defines the hook for OnTextLoad. Intercepts message loading with hooks. Adds file to handle the CustomMessage creation for items.
Handles Ice Traps, Triforce Pieces, and Custom Items. Handle maps, compasses, and keys
Converts gossip stone hints to hook. Handle one-off merchant messages. Convert scrubs and shop text and remove now-unused code
Convert Sheik and Ganondorf hint text. Convert skulltula people messages. Convert more static hints
Specifically Dampe, Greg, Warp Songs, Frogs, Loach, Fishing Pole, and Saria
Convert Biggoron Hint. Convert Big Poes hint. Convert Anju hint dialogue. Convert Malon hint. Convert Horseback Archery hints. Convert Mask Shop SIgn hint
Convert Lake Hylia Switch related text. Convert Shooting Gallery bow reminder message
Convert random rupee names. Convert Rando-Relevant Navi Enhancement. Convert Random Goron messages
Convert Injecting Skull token counts. Add in a way to AutoFormat with an item icon.. Fix some errors with skull tokens and apply icon
Convert heart container item counts. Convert Inject Item Count for Heart Pieces. Port Better Bombchu Shopping. Convert Market Sneak
Port Quit Fishing At Door and clean up unused stuff. Reintroduce missing Mysterious warp song hint
Make ShipInitFuncs static
Adds and uses per-item articles for get item messages
Fix Entrance Hints and port toggle from dev-copper
Fix TimeSplit crash on empty name
Initialize OptionValue::mVal to fix undefined behavior
Fix undefined behavior in GraveHoleJumps surface type copy.
The memcpy was reading 33 SurfaceTypes regardless of the actual count,
causing a buffer overread since NTSC 1.0 only has 31 surface types and
later versions have 32. Now uses the actual surfaceTypesCount from the
collision header.
Fix undefined behavior in framebuffer OTR signature check.
Use calloc instead of malloc for framebuffer allocation to zero-initialize
the memory. This fixes Valgrind warnings about reading uninitialized values
when ResourceMgr_OTRSigCheck reads from framebuffer pointers to check for
the "__OTR__" signature.
Fix undefined behavior in fontLoadStatus initialization.
Use calloc instead of malloc when allocating fontLoadStatus array
to ensure zero-initialization. This fixes Valgrind warnings about
conditional jumps depending on uninitialized values in
AudioLoad_SetFontLoadStatus.
This adds Roc's as a fully implemented item into the randomizer pool. When both Roc's and Nayru's is found, you can swap between them on the pause menu
Many people have contributed to this over time, so huge shoutout to:
- kentonm, this item is directly inspired by their Roc's Feather from their romhack Indigo. Also provided me with their GI model, icon texture and animation to use.
- PurpleHato, for providing the images for the item name shown on the kaleidoscope.
- Dana The Elf, providing another custom animation for the item.
- Reppan, for helping to tweak the animation and exporting the GI model for me.
Refactor ShipUtils to optionally take a state pointer.
Also changed random.h/cpp to be a wrapper around ShipUtils RNG providing a pointer to the rando state variable.
Use ShipUtils RNG for UIWidgets GetRandomValue
Fix AudioEditor to use ShipUtils RNG and its own state. It seems like shuffling Audio at the right time could have potentially messed with rando seed generation before this, but that bug, if it existed, should also be fixed with this.
* Add modal to teach player about presets
* Change cvar to CVAR_GENERAL
* Update soh/soh/Enhancements/FileSelectEnhancements.cpp
Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
---------
Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
Refactors the item pool to fix numerous bugs, especially with Plentiful item pools, makes ship exclusive items affected by item pool, and changes ice trap settings to be more clear and consistent to the user.
Implements object_custom_equip objects that adds more support to have items modified by modders without having to export with hands or do xml edits to load hands. This is autonomous if exported as a object_custom_equip
Also adds non existing DisplayList for items that originally did not have a DisplayList. Longshot and Big Goron Sword Sheath is 2 examples
Add the ability to Randomize All Music and sfx based on file Rando seed.
Add the ability to Randomize All cosmetics based on file rando seed.
Add combobox for selection:
- Disabled: No music or sound effects are randomized.
- On New Scene: Randomizes when you enter a new scene.
- On Rando Gen Only: Randomizes only when you generate a new randomizer
- On File Load: Randomizes on File Load.
- On File Load (Seeded): Randomizes on file load based on the current randomizer seed/file.
Removed checkboxes.
- The "firstInput" stat is set on first input in game. Used for RTA
Timing.
- The "fileCreatedAt" stat is now set when then save file is created
(After the player is done entering the file name). Useful for seeding
non rando randomizers like Mirrorworld, Enemy Randomizer, extraTraps,
etc.
massively improves the "File Select More Info" enhancement:
- Moves it to a separate file
- Moves it to VB
- Adds triforce pieces & fishing pole
- General cleanup
Checked that logic past fire wall handles child logic
To get past without taking damage:
Z-target wall to left of fire wall. Turn left. 2 ESS turns right. Side hop
Also allow Giant's Knife to logically hit these switches
Ganon's Castle diamond switch can be hit with bomb by setting bomb down instead of shield dropping
Distinct from unintuitive jumps in that I'm unable to get it consistently even after trying a couple times,
even after trying to find some mix of ledge grabbing & ESS turning to try at least put it down to roll timing
* Removed LocationAccess::CanBuy and added GetCheckPrice.
* Made the Magic Bean Salesman a merchant.
* Replaced CanBuyAnother with GetWalletCapacity and inline comparison for easier readability.
Coming back from block room to hub, the clip is different, instead it's by wall that both ages can get past with pretty specific sidehop. This is pretty niche since generally logic isn't doing reverse ice cavern
split upper area into region rather than using logic val to manage access from below
2 fixes: adult can groundjump up the middle, child can make the trick with hammer
* refactor forest
* feedback
* more feedback
* MQ NE island logic
* no kids allowed
* split west corridor
* split up block puzzle room
* comment mapping poe sister colors
* generalize well swim, make novice
* hammer works
* upstream bug fix
* Replace corridor with hallway, rename east/west hallway regions to be based on their red/blue doormats
also change south hallway to overgrown hallway, & replace south/north sides with lower/upper sides
* Adds new Progressive Bombchu Bags option
Also changes existing code to account for Bombchu Bags becoming
a drop down with 3 values instead of a checkbox
* Handle the new lower capacities for ammo refills
* Handle what happens when receiving a bombchu bag
* Remove the trick name of Progressive Bombchu Bag
Since, you know, that's an actual thing now.
* Implements Bombchu Bag handling next to Progressive Bombchu Handling
* clang-formatting
* Add extra bag for plentiful items
* Address review comment
* Move bombchu upgrade level to gSaveContext and add save/load
* Use logic's saveContext for correct logic calculations
* Remove RG_PROGRESSIVE_BOMBCHU
* Fix Bombchu Refill obtainability
* Don't add normal chus to the pool if chu bags are on.
* cmake-format
* Properly reset bombchuUpgradeLevel on savefile init
* Fix error with va_arg on linux
* Fixes small error in the Bombchu Bag description
* Fix bug with bombchu obtainability
* clang-format
* Fix infinite bombchu text
* fix clang-format
* 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
* CrowdControl additions & improvements
* Update after dev merge
* clang format
* Revert "clang format"
This reverts commit 1be5ad18f5995792971fa0a1772109b0157817b4.
* clang format
* 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 2a1974a669a51f3ff0f33ce8ba251769614cfde5.
* 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.
* 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 4b5903940f18a20b69620f3741760fd19ac3876f.
* Set RAND_INF_ZELDAS_LETTER.
* Revert "Fixed Sleeping Waterfall timesaver."
This reverts commit 9b62fd5297cf5bf778ba26bd593c4728c9038be8.
* 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 c1d02c9a40a7b8c617a131cc5b0d7fd6f81fe1b4.
* 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.
@@ -34,16 +34,16 @@ You can verify you have dumped a supported copy of the game by using the compati
* You should see a notification saying `Processing OTR`, then, once the process is complete, you should get a notification saying `OTR Successfully Generated`, then the game should start.
#### Nintendo Switch
* Run one of the PC releases to generate an `oot.otr` and/or `oot-mq.otr` file. After launching the game on PC, you will be able to find these files in the same directory as `soh.exe` or `soh.appimage`. On macOS, these files can be found in `/Users/<username>/Library/Application Support/com.shipofharkinian.soh/`
* Run one of the PC releases to generate an `oot.o2r` and/or `oot-mq.o2r` file. After launching the game on PC, you will be able to find these files in the same directory as `soh.exe` or `soh.appimage`. On macOS, these files can be found in `/Users/<username>/Library/Application Support/com.shipofharkinian.soh/`
* Copy the files to your sd card
```
sdcard
└── switch
└── soh
├── oot-mq.otr
├── oot.otr
├── oot-mq.o2r
├── oot.o2r
├── soh.nro
└── soh.otr
└── soh.o2r
```
* Launch via Atmosphere's `Game+R` launcher method.
@@ -61,7 +61,8 @@ Congratulations, you are now sailing with the Ship of Harkinian! Have fun!
### Other shortcuts
| Keys | Action |
| - | - |
| F1 | Toggle menubar |
| ESC | Toggle menu |
| F2 | Toggle capture mouse input |
| F5 | Save state |
| F6 | Change state |
| F7 | Load state |
@@ -73,7 +74,7 @@ Congratulations, you are now sailing with the Ship of Harkinian! Have fun!
# Project Overview
Ship of Harkinian (SOH) is built atop a custom library dubbed libultraship (LUS). Back in the N64 days, there was an SDK distributed to developers named libultra; LUS is designed to mimic the functionality of libultra on modern hardware. In addition, we are dependant on the source code provided by the OOT decompilation project.
In order for the game to function, you will require a **legally acquired** ROM for Ocarina of Time. Click [here](https://ship.equipment/) to check the compatibility of your specific rom. Any copyrighted assets are extracted from the ROM and reformatted as a .otr archive file which the code uses.
In order for the game to function, you will require a **legally acquired** ROM for Ocarina of Time. Click [here](https://ship.equipment/) to check the compatibility of your specific rom. Any copyrighted assets are extracted from the ROM and reformatted as a .o2r archive file which the code uses.
### Graphics Backends
Currently, there are three rendering APIs supported: DirectX11 (Windows), OpenGL (all platforms), and Metal (MacOS). You can change which API to use in the `Settings` menu of the menubar, which requires a restart. If you're having an issue with crashing, you can change the API in the `shipofharkinian.json` file by finding the line `gfxbackend:""` and changing the value to `sdl` for OpenGL. DirectX 11 is the default on Windows.
* At least 8GB of RAM (machines with 4GB have seen complier failures)
* At least 8GB of RAM (machines with 4GB have seen compiler failures)
* Visual Studio 2022 Community Edition with the C++ feature set
* One of the Windows SDKs that comes with Visual Studio, for example the current Windows 10 version 10.0.19041.0
* The `MSVC v143 - VS 2022 C++ build tools` component of Visual Studio
@@ -22,7 +22,7 @@ It is recommended that you install Python and Git standalone, the install proces
_Note: Be sure to either clone with the ``--recursive`` flag or do ``git submodule update --init`` after cloning to pull in the libultraship submodule!_
2. After setup and initial build, use the built-in OTR extraction to make your oot.otr/oot-mq.otr files.
2. After setup and initial build, use the built-in OTR extraction to make your oot.o2r/oot-mq.o2r files.
_Note: Instructions assume using powershell_
```powershell
@@ -34,7 +34,7 @@ cd Shipwright
# Add `-DSUPPRESS_WARNINGS=0` to prevent suppression of warnings from LUS and decomp (src) files. set to 1 to re-enable suppression
&'C:\Program Files\CMake\bin\cmake'-S.-B"build/x64"-G"Visual Studio 17 2022"-Tv143-Ax64
@@ -58,7 +58,7 @@ To develop using Visual Studio you only need to use cmake to generate the soluti
To develop using Visual Studio Code or another editor you only need to open the repository in it.
To build you'll need to follow the instructions from the building section.
_Note: If you're using Visual Studio Code, the [cpack plugin](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) makes it very easy to just press run and debug._
_Note: If you're using Visual Studio Code, the [CMake Tools plugin](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) makes it very easy to just press run and debug._
_Experimental: You can also use another build system entirely rather than MSVC like [Ninja](https://ninja-build.org/) for possibly better performance._
You can use a `flake.nix` file to instantly setup a development environment using [Nix](https://nixos.org/). Write this `flake.nix` file in the root directory:
Now type `nix develop` and you will be dropped into a shell with all dependencies, ensuring that all build commands work.
### Build
_Note: If you're using Visual Studio Code, the [CMake Tools plugin](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) makes it very easy to just press run and debug._
@@ -138,7 +196,7 @@ git submodule update --init
# Add `-DPython3_EXECUTABLE=$(which python3)` if you are using non-standard Python installations such as PyEnv
**Important: For maximum performance make sure you have ninja build tools installed!**
_Note: If you're using Visual Studio Code, the [cpack plugin](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) makes it very easy to just press run and debug._
_Note: If you're using Visual Studio Code, the [CMake Tools plugin](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) makes it very easy to just press run and debug._
```bash
# Clone the repo
@@ -188,14 +246,14 @@ cd ShipWright
git submodule update --init
# Install development dependencies (assuming homebrew)
@@ -19,6 +19,6 @@ Once you have prepared your sequences folder:
(*NOTE:* SoH can handle 1024 custom sequence in total. This includes the original music. Keep that in mind!)
1. Click the "Finalize OTR" text in the green footer.
1. Click "Generate OTR" and, using the file selection screen, save the file to the `mods` folder of your SoH installation.
- This `mods` folder should be in the same folder as your `oot.otr` file.
- This `mods` folder should be in the same folder as your `oot.o2r` file.
Assuming you have done everything correctly, boot up SoH and select the SFX Editor from the enhancements dropdown menu. You should now be able to swap out any of the in game sequences/fanfares for the sequences added in your newly generated OTR file. If you have any trouble with this process, please reach out in the support section of the Discord.
The Ship of Harkinian utilizes a text file with SDL controller mappings for extended controller hardware support.
This file is pulled from https://github.com/gabomdq/SDL_GameControllerDB during the build process as [a part of CMakeLists.txt](https://github.com/HarbourMasters/Shipwright/blob/bb643661f62865dfc757c185d0daaebb32f2d53d/soh/CMakeLists.txt#L760).
This file is pulled from https://github.com/mdqinc/SDL_GameControllerDB during the build process as [a part of CMakeLists.txt](https://github.com/HarbourMasters/Shipwright/blob/bb643661f62865dfc757c185d0daaebb32f2d53d/soh/CMakeLists.txt#L760).
@@ -41,15 +41,28 @@ You can name your branch whatever you want, but it's recommended to name it some
The limit is your imagination. You can add new features, fix bugs, add new mods, or even change the way the game works. We will demonstrate this by creating a mod that changes the speed of the day/night cycle.
Let's being by finding where the time is updated. Thankfully in the save editor we have a slider already hooked up to the time of day so we can check there for reference. The save editor file is at `soh/soh/Enhancements/debugger/debugSaveEditor.cpp`, if we do a quick search within that file for time we will find the following at line 400:
Let's begin by finding where the time is updated. Thankfully in the save editor we have a slider already hooked up to the time of day so we can check there for reference. The save editor file is at `soh/soh/Enhancements/debugger/debugSaveEditor.cpp`, if we do a quick search within that file for time we will find the following at around line 217:
SliderInt("Time",(int32_t*)&gSaveContext.dayTime,intSliderOptionsBase.Min(0).Max(0xFFFF).Tooltip("Time of day"));
if(Button("Dawn",buttonOptionsBase)){
gSaveContext.dayTime=0x4000;
}
ImGui::SameLine();
if(Button("Noon",buttonOptionsBase)){
gSaveContext.dayTime=0x8000;
}
ImGui::SameLine();
if(Button("Sunset",buttonOptionsBase)){
gSaveContext.dayTime=0xC001;
}
ImGui::SameLine();
if(Button("Midnight",buttonOptionsBase)){
gSaveContext.dayTime=0;
}
```
So this tells us that `gSaveContext.dayTime` is what we're looking for. Let's now do a global search for this to see if we can find where it is updated. We find the following in `soh/src/code/z_kankyo.c` line 925:
So this tells us that `gSaveContext.dayTime` is what we're looking for. Let's now do a global search for this to see if we can find where it is updated. We find the following in `soh/src/code/z_kankyo.c` around line 925:
Rebuild the game and launch it, then load a save file. You should see that the time of day is now moving much faster. Terrific! While we could wrap this up and call it a day, we could make this user configurable by making a few more changes. I think a slider would be good for this, there's a slider in the cheat menu that we can use as a reference. Let's find it in `soh/soh/SohMenuBar.cpp` around line 1120:
Rebuild the game and launch it, then load a save file. You should see that the time of day is now moving much faster. Terrific! While we could wrap this up and call it a day, we could make this user configurable by making a few more changes. I think a slider would be good for this, there's a slider in the cheat menu that we can use as a reference. Let's find it in `soh/soh/SohGui/SohMenuEnhancements.cpp` around line 1565:
The float values being passed in here are `minimum`, `maximum`, and `default` respectively. We'll make our minimum 0.2 to allow it to move slower, and our maximum 5.0 to allow it to move up to 5x faster. We'll also set the default to 1.0 so that it doesn't change the behavior by default. Copy this line and paste it below, then make the relevant changes:
This adds a `Widget` which sets a CVar, which then sets the options of the slider. We'll make our minimum 0.2 to allow it to move slower, and our maximum 5.0 to allow it to move up to 5x faster. We'll also set the default to 1.0 so that it doesn't change the behavior by default. Copy this line and paste it below, then make the relevant changes:
The Ship of Harkinian's versioning system is a unique system, comprising of a three-numbered version (`x.y.z`) and a version codename. The main version number `x` signifies major feature updates that require a new `oot.otr` file. The version number `y` signifies major feature updates and bugfixes that do not require a new `oot.otr` file. The version number `z` signifies minor updates such as a collection of bugfixes.
The Ship of Harkinian's versioning system is a unique system, comprising of a three-numbered version (`x.y.z`) and a version codename. The main version number `x` signifies major feature updates that require a new `oot.o2r` file. The version number `y` signifies major feature updates and bugfixes that do not require a new `oot.o2r` file. The version number `z` signifies minor updates such as a collection of bugfixes.
The version codename consists of a sci-fi film character followed by a phonetic alphabet code word. The film character represents a major release version which increments with the major `x` or `y` version bumps. The code word represents a minor release version which increments with the minor `z` version bump.
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.