mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-22 01:12:19 -05:00
Restore Vanilla Tracking (#4394)
* Re-enabled vanilla tracking in the check tracker. Utilized Rando::Context for check status. * Restore check tracker window custom background functionality.
This commit is contained in:
parent
d0905f365a
commit
65fbf2cc41
@ -911,7 +911,7 @@ void Rando::StaticData::InitLocationTable() { //
|
||||
7 5 1 3
|
||||
-------------------------------*/
|
||||
// Kokiri Forest
|
||||
locationTable[RC_KF_SHOP_ITEM_1] = Location::Base(RC_KF_SHOP_ITEM_1, RCQUEST_BOTH, RCTYPE_SHOP, ACTOR_EN_GIRLA, SCENE_KOKIRI_SHOP, 0x00, "Shop Item 1", RHT_KF_SHOP_ITEM_1, RG_BUY_DEKU_SHIELD, SpoilerCollectionCheck(), false, 40);
|
||||
locationTable[RC_KF_SHOP_ITEM_1] = Location::Base(RC_KF_SHOP_ITEM_1, RCQUEST_BOTH, RCTYPE_SHOP, ACTOR_EN_GIRLA, SCENE_KOKIRI_SHOP, 0x00, "Shop Item 1", RHT_KF_SHOP_ITEM_1, RG_BUY_DEKU_SHIELD, SpoilerCollectionCheck(), true, 40);
|
||||
locationTable[RC_KF_SHOP_ITEM_2] = Location::Base(RC_KF_SHOP_ITEM_2, RCQUEST_BOTH, RCTYPE_SHOP, ACTOR_EN_GIRLA, SCENE_KOKIRI_SHOP, 0x01, "Shop Item 2", RHT_KF_SHOP_ITEM_2, RG_BUY_DEKU_NUTS_5, SpoilerCollectionCheck(), false, 15);
|
||||
locationTable[RC_KF_SHOP_ITEM_3] = Location::Base(RC_KF_SHOP_ITEM_3, RCQUEST_BOTH, RCTYPE_SHOP, ACTOR_EN_GIRLA, SCENE_KOKIRI_SHOP, 0x02, "Shop Item 3", RHT_KF_SHOP_ITEM_3, RG_BUY_DEKU_NUTS_10, SpoilerCollectionCheck(), false, 30);
|
||||
locationTable[RC_KF_SHOP_ITEM_4] = Location::Base(RC_KF_SHOP_ITEM_4, RCQUEST_BOTH, RCTYPE_SHOP, ACTOR_EN_GIRLA, SCENE_KOKIRI_SHOP, 0x03, "Shop Item 4", RHT_KF_SHOP_ITEM_4, RG_BUY_DEKU_STICK_1, SpoilerCollectionCheck(), false, 10);
|
||||
|
@ -647,6 +647,10 @@ void CheckTrackerItemReceive(GetItemEntry giEntry) {
|
||||
}
|
||||
|
||||
void CheckTrackerSceneFlagSet(int16_t sceneNum, int16_t flagType, int32_t flag) {
|
||||
if (IS_RANDO) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (flagType != FLAG_SCENE_TREASURE && flagType != FLAG_SCENE_COLLECTIBLE) {
|
||||
return;
|
||||
}
|
||||
@ -668,6 +672,10 @@ void CheckTrackerSceneFlagSet(int16_t sceneNum, int16_t flagType, int32_t flag)
|
||||
}
|
||||
|
||||
void CheckTrackerFlagSet(int16_t flagType, int32_t flag) {
|
||||
if (IS_RANDO) {
|
||||
return;
|
||||
}
|
||||
|
||||
SpoilerCollectionCheckType checkMatchType = SpoilerCollectionCheckType::SPOILER_CHK_NONE;
|
||||
switch (flagType) {
|
||||
case FLAG_GS_TOKEN:
|
||||
@ -1289,8 +1297,12 @@ bool IsCheckShuffled(RandomizerCheck rc) {
|
||||
|
||||
bool IsVisibleInCheckTracker(RandomizerCheck rc) {
|
||||
auto loc = Rando::StaticData::GetLocation(rc);
|
||||
return IsCheckShuffled(rc) || (loc->GetRCType() == RCTYPE_SKULL_TOKEN && alwaysShowGS) ||
|
||||
(loc->GetRCType() == RCTYPE_SHOP && (showShops && (!hideShopRightChecks)));
|
||||
if (IS_RANDO) {
|
||||
return IsCheckShuffled(rc) || (loc->GetRCType() == RCTYPE_SKULL_TOKEN && alwaysShowGS) ||
|
||||
(loc->GetRCType() == RCTYPE_SHOP && (showShops && (!hideShopRightChecks)));
|
||||
} else {
|
||||
return loc->IsVanillaCompletion() && (!loc->IsDungeon() || (loc->IsDungeon() && loc->GetQuest() == gSaveContext.questId));
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateInventoryChecks() {
|
||||
@ -1639,6 +1651,15 @@ void ImGuiDrawTwoColorPickerSection(const char* text, const char* cvarMainName,
|
||||
}
|
||||
}
|
||||
|
||||
void CheckTrackerWindow::Draw() {
|
||||
if (!IsVisible()) {
|
||||
return;
|
||||
}
|
||||
DrawElement();
|
||||
// Sync up the IsVisible flag if it was changed by ImGui
|
||||
SyncVisibilityConsoleVariable();
|
||||
}
|
||||
|
||||
static const char* windowType[] = { "Floating", "Window" };
|
||||
static const char* displayType[] = { "Always", "Combo Button Hold" };
|
||||
static const char* buttonStrings[] = { "A Button", "B Button", "C-Up", "C-Down", "C-Left", "C-Right", "L Button",
|
||||
@ -1716,12 +1737,12 @@ void CheckTrackerWindow::InitElement() {
|
||||
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnExitGame>([](uint32_t fileNum) {
|
||||
Teardown();
|
||||
});
|
||||
// GameInteractor::Instance->RegisterGameHook<GameInteractor::OnItemReceive>(CheckTrackerItemReceive);
|
||||
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnItemReceive>(CheckTrackerItemReceive);
|
||||
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnGameFrameUpdate>(CheckTrackerFrame);
|
||||
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnTransitionEnd>(CheckTrackerTransition);
|
||||
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnShopSlotChange>(CheckTrackerShopSlotChange);
|
||||
// GameInteractor::Instance->RegisterGameHook<GameInteractor::OnSceneFlagSet>(CheckTrackerSceneFlagSet);
|
||||
// GameInteractor::Instance->RegisterGameHook<GameInteractor::OnFlagSet>(CheckTrackerFlagSet);
|
||||
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnSceneFlagSet>(CheckTrackerSceneFlagSet);
|
||||
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnFlagSet>(CheckTrackerFlagSet);
|
||||
}
|
||||
|
||||
void CheckTrackerWindow::UpdateElement() {
|
||||
|
@ -21,6 +21,7 @@ class CheckTrackerSettingsWindow : public Ship::GuiWindow {
|
||||
class CheckTrackerWindow : public Ship::GuiWindow {
|
||||
public:
|
||||
using GuiWindow::GuiWindow;
|
||||
void Draw() override;
|
||||
~CheckTrackerWindow() {};
|
||||
|
||||
protected:
|
||||
|
@ -2841,11 +2841,12 @@ extern "C" void Save_SaveGlobal(void) {
|
||||
}
|
||||
|
||||
extern "C" void Save_LoadFile(void) {
|
||||
// Handle vanilla context reset
|
||||
OTRGlobals::Instance->gRandoContext.reset();
|
||||
OTRGlobals::Instance->gRandoContext = Rando::Context::CreateInstance();
|
||||
OTRGlobals::Instance->gRandoContext->GetLogic()->SetSaveContext(&gSaveContext);
|
||||
|
||||
if (SaveManager::Instance->fileMetaInfo[gSaveContext.fileNum].randoSave) {
|
||||
// Reset rando context for rando saves.
|
||||
OTRGlobals::Instance->gRandoContext.reset();
|
||||
OTRGlobals::Instance->gRandoContext = Rando::Context::CreateInstance();
|
||||
OTRGlobals::Instance->gRandoContext->GetLogic()->SetSaveContext(&gSaveContext);
|
||||
OTRGlobals::Instance->gRandoContext->AddExcludedOptions();
|
||||
OTRGlobals::Instance->gRandoContext->GetSettings()->CreateOptions();
|
||||
}
|
||||
|
@ -963,7 +963,7 @@ void DrawSeedHashSprites(FileChooseContext* this) {
|
||||
if (this->configMode == CM_MAIN_MENU &&
|
||||
(this->selectMode != SM_CONFIRM_FILE || Save_GetSaveMetaInfo(this->selectedFileIndex)->randoSave == 1)) {
|
||||
|
||||
if (this->fileInfoAlpha[this->selectedFileIndex] > 0) {
|
||||
if (this->fileInfoAlpha[this->selectedFileIndex] > 0 && Save_GetSaveMetaInfo(this->selectedFileIndex)->randoSave) {
|
||||
// Use file info alpha to match fading
|
||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 0xFF, 0xFF, 0xFF, this->fileInfoAlpha[this->selectedFileIndex]);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user