This commit is contained in:
Glought 2025-04-21 14:44:18 -07:00 committed by GitHub
commit c33e987f60
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 38 additions and 0 deletions

View file

@ -459,8 +459,17 @@ void AudioEditorRegisterOnSceneInitHook() {
});
}
void AudioEditorRegisterOnRandomizerGenerationHook() {
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnRandomizerGeneration>([]() {
if (CVarGetInteger(CVAR_AUDIO("RandomizeAllOnRandoGen"), 0)) {
AudioEditor_RandomizeAll();
}
});
}
void AudioEditor::InitElement() {
AudioEditorRegisterOnSceneInitHook();
AudioEditorRegisterOnRandomizerGenerationHook();
}
void AudioEditor::DrawElement() {
@ -564,6 +573,12 @@ void AudioEditor::DrawElement() {
.Color(THEME_COLOR)
.Tooltip(
"Enables randomizing all unlocked music and sound effects when you enter a new scene."));
UIWidgets::CVarCheckbox("Randomize All Music and Sound Effects on Randomizer Generation",
CVAR_AUDIO("RandomizeAllOnRandoGen"),
UIWidgets::CheckboxOptions()
.Color(THEME_COLOR)
.Tooltip("Enables randomizing all unlocked music and sound effects when "
"you generate a new randomizer."));
UIWidgets::CVarCheckbox(
"Lower Octaves of Unplayable High Notes", CVAR_AUDIO("ExperimentalOctaveDrop"),
UIWidgets::CheckboxOptions()

View file

@ -2382,6 +2382,11 @@ void CosmeticsEditorWindow::DrawElement() {
.Color(THEME_COLOR)
.Tooltip("Enables randomizing all unlocked cosmetics when you enter a new scene."));
ImGui::EndDisabled();
UIWidgets::CVarCheckbox(
"Randomize All on Randomizer Generation", CVAR_COSMETIC("RandomizeAllOnRandoGen"),
UIWidgets::CheckboxOptions()
.Color(THEME_COLOR)
.Tooltip("Enables randomizing all unlocked cosmetics when you generate a new randomizer."));
UIWidgets::CVarCheckbox(
"Advanced Mode", CVAR_COSMETIC("AdvancedMode"),
UIWidgets::CheckboxOptions()
@ -2589,6 +2594,14 @@ void Cosmetics_RegisterOnSceneInitHook() {
});
}
void CosmeticsEditorRegisterOnRandomizerGenerationHook() {
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnRandomizerGeneration>([]() {
if (CVarGetInteger(CVAR_COSMETIC("RandomizeAllOnRandoGen"), 0)) {
CosmeticsEditor_RandomizeAll();
}
});
}
void CosmeticsEditorWindow::InitElement() {
// Convert the `current color` into the format that the ImGui color picker expects
for (auto& [id, cosmeticOption] : cosmeticOptions) {
@ -2608,6 +2621,7 @@ void CosmeticsEditorWindow::InitElement() {
RegisterOnLoadGameHook();
RegisterOnGameFrameUpdateHook();
Cosmetics_RegisterOnSceneInitHook();
CosmeticsEditorRegisterOnRandomizerGenerationHook();
}
void CosmeticsEditor_RandomizeAll() {

View file

@ -63,6 +63,7 @@ DEFINE_HOOK(OnUpdateFileLanguageSelection, (uint8_t optionIndex));
DEFINE_HOOK(OnUpdateFileQuestSelection, (uint8_t questIndex));
DEFINE_HOOK(OnUpdateFileBossRushOptionSelection, (uint8_t optionIndex, uint8_t optionValue));
DEFINE_HOOK(OnUpdateFileNameSelection, (int16_t charCode));
DEFINE_HOOK(OnRandomizerGeneration, ());
DEFINE_HOOK(OnSetGameLanguage, ());
DEFINE_HOOK(OnFileDropped, (std::string filePath));

View file

@ -280,6 +280,10 @@ void GameInteractor_ExecuteOnUpdateFileNameSelection(int16_t charCode) {
GameInteractor::Instance->ExecuteHooks<GameInteractor::OnUpdateFileNameSelection>(charCode);
}
void GameInteractor_ExecuteOnRandomizerGeneration() {
GameInteractor::Instance->ExecuteHooks<GameInteractor::OnRandomizerGeneration>();
}
// MARK: - Game
void GameInteractor_ExecuteOnSetGameLanguage() {

View file

@ -70,6 +70,7 @@ void GameInteractor_ExecuteOnUpdateFileLanguageSelection(uint8_t optionIndex);
void GameInteractor_ExecuteOnUpdateFileQuestSelection(uint8_t questIndex);
void GameInteractor_ExecuteOnUpdateFileBossRushOptionSelection(uint8_t optionIndex, uint8_t optionValue);
void GameInteractor_ExecuteOnUpdateFileNameSelection(int16_t charCode);
void GameInteractor_ExecuteOnRandomizerGeneration();
// MARK: - Game
void GameInteractor_ExecuteOnSetGameLanguage();

View file

@ -3626,6 +3626,9 @@ bool GenerateRandomizer(std::string seed /*= ""*/) {
}
if (CVarGetInteger(CVAR_GENERAL("RandoGenerating"), 0) == 0) {
randoThread = std::thread(&GenerateRandomizerImgui, seed);
GameInteractor_ExecuteOnRandomizerGeneration();
return true;
}
return false;