* numbers aren't magic
* chest style matches contents
renamed everything except the cvar itself at this point
(waiting for versioned configs for that)
* tracker as part of names
* finish the tracker rename
---------
Co-authored-by: briaguya <briaguya@alice>
* Bump LUS
* Ship -> LUS namespace change
* z_scene_otr Ship -> LUS namespace
* Starting to get SoH to build with LUS imgui changes.
* start stuff
* gamecontroleditor build issues resolved maybe
* cosmetics editor and what not
* console
* actor viewer
* more stuff
* more stuff
* on to errors that make sense
* putting this down for a bit
* no idea what these errors mean now
* some kind of progress maybe
* latest lus main
* more
* back to linker errors and being lost
* Fixes command function signature.
* More fixes
* Even more fixes
* Bump LUS
* More Fixes.
* Fixes even more errors.
* lus bump
* input editor as var
* audio editor working
* it builds with this
* bump lus
* it opens
* bump lus to latest main again
* make sure to do all the command registering in debugconsole
* lus and what not
* switch type stuff plz
* undo
* do the thing that fixes the thing
* fix mac?
* correctly show/hide menubar on boot
* bump lus
* input blocking updates
* bump lus
* Bump LUS
* Press F1 to open enhancement menus moved to SoH
* lus and rendering backend stuff
* audio backend and lus
* Bump LUS
* Fixes WindowBackend dropdown
* Bump LUS
* misc -> utils and moves binarytools to utils.
* Window refactor
* bump lus
* make it work
* Fixes for moved files again
* Bump LUS
* Mercury -> Config
* Bump LUS
* Reacts to removed LUS hooks and bump LUS
* Remove Hook: GfxInit
* Removes debug audio_setgamevolume to 1
* use non-crashing branch of lus
* fix: make audio init work without hooks
* game icon stuff
* multifix bmp
* use input viewer class branch for now
* just "Ship" it's cleaner
* Bump LUS
* Removed ExitGame hook.
* Bump LUS
* Hook system removed from LUS.
* More LUS updates
* Changes to make window position saving.
* Bump LUS
* Bump LUS (for real)
* LUS resources now return a specialized pointer.
* Bump LUS
* Fixes issue in SetPathways::GetPointerSize
* Bump LUS to 1.0.0
* builds but crashes
* fix crash
* better macro names in debug console
* remove commeted out line
* remove redundant check tracker settings window logic
* remove commented out line
* move the *
* remove extra seqplayers enum def
* this sneaky little guy was hiding behind a wii u ifdef
* remove extra check tracker header
---------
Co-authored-by: Kenix <kenixwhisperwind@gmail.com>
Co-authored-by: briaguya <briaguya@alice>
* Ganon(dorf) cutscene skips
* Remove leftover code
* Load into chamber of sages
* Fix loading into chamber without fast file select
* Boss warps in chamber done
* Change warps back to chamber
* Initial proof of concept done
* ganon(dorf) cutscene skips
* Code cleanup & auto age equipment
* Gameplay stats timer + tweaks
* Scuffed timer
* Better timer
* remove arena props + fix arena exits
* Fix blue warps
* Attempt to fix build
* Fix build again
* And again..
* Try no. 9001
* Handle dying and saving
* Child link face fire medallion
* Fix build
* Fix warps after reset/death
* Disable doors and move player spawns in boss rooms
* Fix boss rush logo rendering
* Start of ingame options menu
* File Select cleanup
* Fix build
* Render char text PoC
* Move functions to be more generic
* Fix build
* Fix other builds
* Initial text scaling/kerning
* Special characters prep
* All special characters work now
* Attempt to fix build
* Fix build question mark
* Finish all kerning
* Start of ingame options menu with vertical scrolling
* Barebones functional options menu
* More options menu progress
* More visual elements for options menu
* Options menu visual changes, implement all options, tons of cleanup
* Cleanup and comments
* Shorter enums
* More options
* Change default heart count
* Finish French translations
* Implement timer in cosmetics editor
* Uncomment timer requirement
* Variable name change
* German translation & small UI tweaks
* Animated up/down arrows in options UI
* Better arrows in options UI
* Cleaner timer + make it usable for general gameplay
* More cleanup + ganon & ganondorf boss option
* Implement never heal option
* Slight up arrow in options UI tweak
* Add BGS option
* Reintroduce ganondorf cutscene skip
* Change encoding to UTF on bossrush.cpp
* Fix build hopefully
* Fixed static variables leading to options not properly resetting
* Fix BR completed timestamp
* Change timer to render on top of everything
* Offset final BR time by 0.1 second from boss timestamps
* Add missing check for boss rush
* Implement soh_assets.h
* Revert merge mistake
* Fix special characters with UTF-8
* Fix build
* here's the fix you can merge from your phone
* Fix quest select crash with oot.otr only
* Use OoT's kerning
* Fix HD textures on options menu
* Fix special character kerning
* "Heal every boss" fixes
* Seperate headers + bunny hood option
* Remove GetUnixTimestamp() externing
* Clean up extern "C"'s
* Address review comments
* Fix build question mark
* Remove accidental styling change
---------
Co-authored-by: briaguya <briaguya@alice>
Implemented subsectional saving (handled in the section's save function, and passed to the save function by & pointer). Default of "all" passed in from SaveFile for game saves.
Implemented subsectional saving for sohStats and entrances/scenes discovered.
Fixed check for game save registry by putting the check against the registry in the "all" section save code.
Fixed loading and saving of blank sceneTimestamps due to default construction of data structures during JSON loading making all "empty" entries have scene and room of 0.
Moved SoH stats initialization to `gameplaystats.cpp` via `SaveManager::AddInitFunction`.
Improved save file efficiency by adding code to not write any "empty" entries in `sceneTimestamps` (as determined by room and scene being 254) when saving, and initializing them to 254 if not loaded from the save file.
* Refactor `Vec2f`, `Vec3f`, `Vec3s` in `z64math` to avoid reserved identifiers.
* Include `z64save` in SaveManager, which requires encapsulating `#include gameplaystats.h` and `InitStatTracker` in the cpp to fix compile issues.
Adds SaveContext reference parameters to SaveFunc and existing implementations in preparation for threaded saves.
* Threaded saves fully implemented.
Platform-specific save code removed.
Thread safety added. Will wait for thread pool tasks to finish before resetting or closing.
* Converted gSaveContext copy for save threads to the heap with `new`, deleted at the end of the threaded function to prevent possible issues with the stack.
* Turns out leaving the call to `ThreadPoolWait` in a `GameInteractor::OnExitGame` hook seems to be just fine.
* Removed unnecessary references to `SaveManager::ThreadPoolWait()`, game hooks are the only places it's called now.
* Re-added WiiU/Switch performance save code.
* Added call to `SaveManager::ThreadPoolWait` in `Sram_InitSave` to prevent trying to load a newly "created" save before the save file was actually written.
---------
Co-authored-by: Christopher Leggett <chris@leggett.dev>
* Groundwork on scene/room timers; naming changes
* added to save manager; reworked storing timestamps
* actually saved stuff to savemanager;
accounted for null playstate
* finally fixed the fucking timers
* Added scene mapping
* Added CVar for room/scene level; fixed some displays
* reworked logic
* increase name spec for scene timestamps
* Actually save item timestamps when loading v3 save
* Cleanup
* fix merge artifact
* apply suggestions
* Change sliders to have +/- buttons by default
* Remove unnecessary margin setting
* Add +/- buttons to remaining sliders and fix some broken UI
* Update EnhancementComboBox to not need array size
* Remove redundant widgets from randomizer
* Miscellaneous fixes
* Fix Switch build break
* Consolidate disabled styling in widgets
* Simplify widget logic
* Merge with most recent PRs
* Fix audio fanfare and sound effect sliders mixup
* Fix sliders being one button too wide
* Fix sliders being too long
* Fix sliders being too long on console
* First test of gathering some gameplay stats
* timer changes and other stuff
* Move code to new files + rename
* Name change - gamePlayStats
* Finish rename, remove n64ddFlag checks
* Improve item get times
* Better time tracking, more stats,
* Put button under Enhancements
* Fix merge conflict
* Add pauseCount, fix bug with rando items
* Adjust inits/declarations
* step counter
* Name change: "itemGetTime" to "timestamp"
* Tidying + CI test
* Set up array for stat counts
* Macro
#define GAMEPLAYSTAT_TOTAL_TIME (gSaveContext.gameplayStats.playTimer / 2 + gSaveContext.gameplayStats.pauseTimer / 3)
* Add boss defeat timestamps
* Add sword swings, pots broken, bushes cut
* fix int type
* Add counts for enemies defeated
Broken down by enemy, with a total
* Add ammo used
* Hide breakdowns until count > 0
* Forgot Big Octo
* Count chests opened
* Update after LUS submodule
* Enemy count spacing
* Comments
* Count 3 mini Floormasters as 1 Floormaster
+ some cleanup
* Comments
* Colour coding for timestamps on quest items
i.e. medallions/stones/songs
* Move stat into the sohStats struct
+ rearrange the counts enum for easier addition of future counts
* Some documentation + count button presses
* Stop counting button presses when Ganon defeated
* Couple bugfixes
Add count for Gerudo Thief, fix step counter counting in some situations where it shouldn't
* Fix comment