diff --git a/soh/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c b/soh/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c index bbbcec63d..95bdf6e50 100644 --- a/soh/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c +++ b/soh/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c @@ -1540,7 +1540,34 @@ void DemoEffect_UpdateJewelAdult(DemoEffect* this, GlobalContext* globalCtx) { this->jewel.timer++; this->actor.shape.rot.y += 0x0400; DemoEffect_PlayJewelSfx(this, globalCtx); + + if (gSaveContext.n64ddFlag) { + switch (this->jewel.type) { + case DEMO_EFFECT_JEWEL_KOKIRI: + if (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD)) { + DemoEffect_SetJewelColor(this, 1.0f); + } else { + DemoEffect_SetJewelColor(this, 0.0f); + } + break; + case DEMO_EFFECT_JEWEL_GORON: + if (CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) { + DemoEffect_SetJewelColor(this, 1.0f); + } else { + DemoEffect_SetJewelColor(this, 0.0f); + } + break; + case DEMO_EFFECT_JEWEL_ZORA: + if (CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE)) { + DemoEffect_SetJewelColor(this, 1.0f); + } else { + DemoEffect_SetJewelColor(this, 0.0f); + } + break; + } + } else { DemoEffect_SetJewelColor(this, 1.0f); + } } /** @@ -1604,6 +1631,34 @@ void DemoEffect_UpdateJewelChild(DemoEffect* this, GlobalContext* globalCtx) { thisx->shape.rot.y += 0x0400; DemoEffect_PlayJewelSfx(this, globalCtx); this->effectFlags &= ~1; + + if (gSaveContext.n64ddFlag) { + switch (this->jewel.type) { + case DEMO_EFFECT_JEWEL_KOKIRI: + if (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD)) { + DemoEffect_SetJewelColor(this, 1.0f); + } else { + DemoEffect_SetJewelColor(this, 0.0f); + } + break; + case DEMO_EFFECT_JEWEL_GORON: + if (CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) { + DemoEffect_SetJewelColor(this, 1.0f); + } else { + DemoEffect_SetJewelColor(this, 0.0f); + } + break; + case DEMO_EFFECT_JEWEL_ZORA: + if (CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE)) { + DemoEffect_SetJewelColor(this, 1.0f); + } else { + DemoEffect_SetJewelColor(this, 0.0f); + } + break; + } + } else { + // Contrary to it's adult conterpart Authenthic doesn't use DemoEffect_SetJewelColor(this, 1.0f); here + } } /**