From 77a5d03019c59196587f656b7ee069ae0a033566 Mon Sep 17 00:00:00 2001 From: Garrett Cox Date: Sat, 3 Sep 2022 15:46:33 -0500 Subject: [PATCH] Hook into file delete and clear notes --- libultraship/libultraship/Hooks.h | 1 + soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp | 6 +++++- soh/soh/SaveManager.cpp | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/libultraship/libultraship/Hooks.h b/libultraship/libultraship/Hooks.h index f9cd8b4ba..fd6c049bc 100644 --- a/libultraship/libultraship/Hooks.h +++ b/libultraship/libultraship/Hooks.h @@ -32,4 +32,5 @@ namespace Ship { DEFINE_HOOK(GfxInit, void()); DEFINE_HOOK(ExitGame, void()); DEFINE_HOOK(LoadFile, void(uint32_t fileNum)); + DEFINE_HOOK(DeleteFile, void(uint32_t fileNum)); } diff --git a/soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp b/soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp index 36b5593ea..5b52047ab 100644 --- a/soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp @@ -930,7 +930,11 @@ void InitItemTracker() { buttonsPressed = cont_pad; }); Ship::RegisterHook([](uint32_t fileNum) { - const char* initialTrackerNotes = CVar_GetString(("gItemTrackerNotes" + std::to_string(gSaveContext.fileNum)).c_str(), ""); + const char* initialTrackerNotes = CVar_GetString(("gItemTrackerNotes" + std::to_string(fileNum)).c_str(), ""); strcpy(itemTrackerNotes.Data, initialTrackerNotes); }); + Ship::RegisterHook([](uint32_t fileNum) { + CVar_SetString(("gItemTrackerNotes" + std::to_string(fileNum)).c_str(), ""); + SohImGui::RequestCvarSaveOnNextTick(); + }); } diff --git a/soh/soh/SaveManager.cpp b/soh/soh/SaveManager.cpp index 8de0b0f18..3305f1d70 100644 --- a/soh/soh/SaveManager.cpp +++ b/soh/soh/SaveManager.cpp @@ -1592,6 +1592,7 @@ extern "C" void Save_CopyFile(int from, int to) { extern "C" void Save_DeleteFile(int fileNum) { SaveManager::Instance->DeleteZeldaFile(fileNum); + Ship::ExecuteHooks(fileNum); } extern "C" bool Save_Exist(int fileNum) {