diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index f55f1d35d6..81c903eca6 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -1339,9 +1339,13 @@ inline u8 dComIfGs_getSelectEquipShield() { return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getSelectEquip(COLLECT_SHIELD); } +#if TARGET_PC +u8 dComIfGs_getCollectSmell(); +#else inline u8 dComIfGs_getCollectSmell() { return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getSelectEquip(COLLECT_SMELL); } +#endif inline void dComIfGs_setCollectSmell(u8 smell) { g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setSelectEquip(COLLECT_SMELL, smell); diff --git a/src/d/d_com_inf_game.cpp b/src/d/d_com_inf_game.cpp index 983643907e..85c9133574 100644 --- a/src/d/d_com_inf_game.cpp +++ b/src/d/d_com_inf_game.cpp @@ -2946,6 +2946,15 @@ void dComIfGs_setupRandomizerSave() { DuskLog.debug("Created Rando Save"); randoData.mCreatingSave = false; } + +u8 dComIfGs_getCollectSmell() { + // In randomizer, always return the reekfish scent if the player is in Snowpeak and has gotten the + // smell before. + if (randomizer_IsActive() && getStageID() == Snowpeak && dComIfGs_isEventBit(GOT_REEKFISH_SCENT)) { + return dItemNo_SMELL_FISH_e; + } + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getSelectEquip(COLLECT_SMELL); +} #endif void dComIfGs_gameStart() {