diff --git a/soh/assets/custom/objects/object_kakariko_decor/CuccoBedding_32 b/soh/assets/custom/objects/object_kakariko_decor/CuccoBedding_32 new file mode 100644 index 000000000..68187fbf5 Binary files /dev/null and b/soh/assets/custom/objects/object_kakariko_decor/CuccoBedding_32 differ diff --git a/soh/assets/custom/objects/object_kakariko_decor/String_BYBY_32 b/soh/assets/custom/objects/object_kakariko_decor/String_BYBY_32 new file mode 100644 index 000000000..62efcb10a Binary files /dev/null and b/soh/assets/custom/objects/object_kakariko_decor/String_BYBY_32 differ diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL new file mode 100644 index 000000000..3451b3004 --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_0 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_0 new file mode 100644 index 000000000..450d4ad7b --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_0 @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_1 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_1 new file mode 100644 index 000000000..701018d7e --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_1 @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_2 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_2 new file mode 100644 index 000000000..a8f0d1205 --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_2 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_3 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_3 new file mode 100644 index 000000000..5e89bfd9c --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_3 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_4 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_4 new file mode 100644 index 000000000..e0d376897 --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_4 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_0 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_0 new file mode 100644 index 000000000..844aa0f3c --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_0 @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_1 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_1 new file mode 100644 index 000000000..3c1ca09b4 --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_1 @@ -0,0 +1,646 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_2 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_2 new file mode 100644 index 000000000..cd5e7a3d0 --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_2 @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_3 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_3 new file mode 100644 index 000000000..fb8c029cd --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_3 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_4 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_4 new file mode 100644 index 000000000..043452939 --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_4 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_cull b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_cull new file mode 100644 index 000000000..c096976aa --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_cull @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_CuccoBedding b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_CuccoBedding new file mode 100644 index 000000000..520258210 --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_CuccoBedding @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_SnowBuildup b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_SnowBuildup new file mode 100644 index 000000000..a79cca54f --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_SnowBuildup @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_StringBYBY b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_StringBYBY new file mode 100644 index 000000000..5c85eb88f --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_StringBYBY @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_StringGRGR b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_StringGRGR new file mode 100644 index 000000000..b8478fa90 --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_StringGRGR @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_material_004 b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_material_004 new file mode 100644 index 000000000..0a479d70a --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_material_004 @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_kakariko_decor/spot00_sceneTex_01AB98 b/soh/assets/custom/objects/object_kakariko_decor/spot00_sceneTex_01AB98 new file mode 100644 index 000000000..454876ed0 Binary files /dev/null and b/soh/assets/custom/objects/object_kakariko_decor/spot00_sceneTex_01AB98 differ diff --git a/soh/assets/custom/objects/object_kakariko_decor/spot00_sceneTex_01B398 b/soh/assets/custom/objects/object_kakariko_decor/spot00_sceneTex_01B398 new file mode 100644 index 000000000..9170dfd6b Binary files /dev/null and b/soh/assets/custom/objects/object_kakariko_decor/spot00_sceneTex_01B398 differ diff --git a/soh/assets/soh_assets.h b/soh/assets/soh_assets.h index b31e3f388..62ac078b4 100644 --- a/soh/assets/soh_assets.h +++ b/soh/assets/soh_assets.h @@ -95,6 +95,9 @@ static const ALIGN_ASSET(2) char gXmasStarDL[] = dgXmasStarDL; #define dgFrontGateDecorDL "__OTR__objects/object_kakariko_decor/gFrontGateDecorDL" static const ALIGN_ASSET(2) char gFrontGateDecorDL[] = dgFrontGateDecorDL; +#define dgKakarikoDecorDL "__OTR__objects/object_kakariko_decor/gKakarikoDecorDL" +static const ALIGN_ASSET(2) char gKakarikoDecorDL[] = dgKakarikoDecorDL; + // overlays #define dgOptionsDividerChangeLangVtx "__OTR__overlays/ovl_file_choose/gOptionsDividerChangeLangVtx" static const ALIGN_ASSET(2) char gOptionsDividerChangeLangVtx[] = dgOptionsDividerChangeLangVtx; diff --git a/soh/soh/ActorDB.cpp b/soh/soh/ActorDB.cpp index fe7d87a25..f143e1723 100644 --- a/soh/soh/ActorDB.cpp +++ b/soh/soh/ActorDB.cpp @@ -609,7 +609,7 @@ static ActorDBInit EnChristmasTreeInit = { "En_ChristmasTree", "Christmas Tree", ACTORCAT_PROP, - (ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_FRIENDLY), + (ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_DRAW_WHILE_CULLED), OBJECT_GAMEPLAY_KEEP, sizeof(EnChristmasTree), (ActorFunc)EnChristmasTree_Init, diff --git a/soh/soh/Enhancements/mods.cpp b/soh/soh/Enhancements/mods.cpp index 6234fbab6..237378f0d 100644 --- a/soh/soh/Enhancements/mods.cpp +++ b/soh/soh/Enhancements/mods.cpp @@ -1077,6 +1077,17 @@ void RegisterRandomizedEnemySizes() { }); } +void RegisterChristmas() { + GameInteractor::Instance->RegisterGameHook([]() { + Actor* player = &GET_PLAYER(gPlayState)->actor; + Actor* nearbyEndTitle = Actor_FindNearby(gPlayState, player, ACTOR_END_TITLE, ACTORCAT_ITEMACTION, 3000.0f); + + if (gSaveContext.inventory.dungeonItems[SCENE_GANONS_TOWER] > 0 && nearbyEndTitle) { + Camera_ChangeMode(Play_GetCamera(gPlayState, gPlayState->mainCamera.thisIdx), CAM_MODE_STILL); + } + }); +} + void InitMods() { RegisterTTS(); RegisterInfiniteMoney(); @@ -1107,4 +1118,5 @@ void InitMods() { RegisterRandomizerSheikSpawn(); RegisterRandomizedEnemySizes(); NameTag_RegisterHooks(); + RegisterChristmas(); } diff --git a/soh/src/overlays/actors/ovl_En_ChristmasDeco/z_en_christmasdeco.c b/soh/src/overlays/actors/ovl_En_ChristmasDeco/z_en_christmasdeco.c index 49059b6bc..976aa4a4b 100644 --- a/soh/src/overlays/actors/ovl_En_ChristmasDeco/z_en_christmasdeco.c +++ b/soh/src/overlays/actors/ovl_En_ChristmasDeco/z_en_christmasdeco.c @@ -13,7 +13,6 @@ void EnChristmasDeco_Update(Actor* thisx, PlayState* play); void EnChristmasDeco_Draw(Actor* thisx, PlayState* play); void EnChristmasDeco_Init(Actor* thisx, PlayState* play) { - } void EnChristmasDeco_Destroy(Actor* thisx, PlayState* play) { @@ -25,17 +24,19 @@ void EnChristmasDeco_Update(Actor* thisx, PlayState* play) { } void EnChristmasDeco_Draw(Actor* thisx, PlayState* play) { - float decoSize = 1000.0f; + float decoSize = 10.0f; OPEN_DISPS(play->state.gfxCtx); - Gfx_SetupDL_25Opa(play->state.gfxCtx); - + Matrix_Translate(0, 0, 0, MTXMODE_APPLY); + Matrix_RotateZYX(0, 0, 0, MTXMODE_APPLY); Matrix_Scale(decoSize, decoSize, decoSize, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__), G_MTX_MODELVIEW | G_MTX_LOAD); + + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); if (play->sceneNum == SCENE_KAKARIKO_VILLAGE) { - gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFrontGateDecorDL); + gSPDisplayList(POLY_OPA_DISP++, gFrontGateDecorDL); + gSPDisplayList(POLY_OPA_DISP++, gKakarikoDecorDL); //Assertion Halt in Debug mode, switch to Release when testing. } CLOSE_DISPS(play->state.gfxCtx); diff --git a/soh/src/overlays/actors/ovl_En_ChristmasTree/z_en_christmastree.c b/soh/src/overlays/actors/ovl_En_ChristmasTree/z_en_christmastree.c index 3ce1e1125..2687704e2 100644 --- a/soh/src/overlays/actors/ovl_En_ChristmasTree/z_en_christmastree.c +++ b/soh/src/overlays/actors/ovl_En_ChristmasTree/z_en_christmastree.c @@ -34,7 +34,7 @@ static ColliderCylinderInit sCylinderInit = { BUMP_NONE, OCELEM_ON, }, - { 50, 150, 0, { 0, 0, 0 } }, + { 100, 330, 0, { 0, 0, 0 } }, }; static CollisionCheckInfoInit2 sColChkInfoInit = { 0, 0, 0, 0, MASS_IMMOVABLE }; @@ -42,7 +42,7 @@ static CollisionCheckInfoInit2 sColChkInfoInit = { 0, 0, 0, 0, MASS_IMMOVABLE }; void EnChristmasTree_Init(Actor* thisx, PlayState* play) { EnChristmasTree* this = (EnChristmasTree*)thisx; - ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 90.0f); + ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 160.0f); Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &sColChkInfoInit); @@ -91,13 +91,6 @@ void EnChristmasTree_Talk(EnChristmasTree* this, PlayState* play) { void EnChristmasTree_SetupEndTitle(EnChristmasTree* this, PlayState* play) { Player* player = GET_PLAYER(play); - player->actor.world.pos.x = -929.336; - player->actor.world.pos.y = 0; - player->actor.world.pos.z = 446.178; - player->actor.shape.rot.x = 0; - player->actor.shape.rot.y = 17537; - player->actor.shape.rot.z = 0; - GameInteractor_SetNoUIActive(1); Actor_Spawn(&gPlayState->actorCtx, gPlayState, ACTOR_END_TITLE, 0, 0, 0, 0, 0, 0, 2, false); @@ -122,9 +115,11 @@ void EnChristmasTree_Update(Actor* thisx, PlayState* play) { } void EnChristmasTree_Draw(Actor* thisx, PlayState* play) { + EnChristmasTree* this = (EnChristmasTree*)thisx; + float percentageCompleted = (float)gSaveContext.triforcePiecesCollected / (float)Randomizer_GetSettingValue(RSK_TRIFORCE_HUNT_PIECES_REQUIRED); - float treeSize = 30.0f; + float treeSize = 55.0f; OPEN_DISPS(play->state.gfxCtx); @@ -166,6 +161,11 @@ void EnChristmasTree_Draw(Actor* thisx, PlayState* play) { gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor100DL); gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasStarDL); } + if (percentageCompleted >= 1.0f && this->spawnedRupee == 0) { + Actor_Spawn(&play->actorCtx, play, ACTOR_EN_WONDER_ITEM, this->actor.world.pos.x, this->actor.world.pos.y + 280, + this->actor.world.pos.z, 0, 0, LINK_IS_ADULT ? 1 : 4, 0x1ABF, false); + this->spawnedRupee = 1; + } CLOSE_DISPS(play->state.gfxCtx); } diff --git a/soh/src/overlays/actors/ovl_En_ChristmasTree/z_en_christmastree.h b/soh/src/overlays/actors/ovl_En_ChristmasTree/z_en_christmastree.h index 1dbed3396..fd580ac71 100644 --- a/soh/src/overlays/actors/ovl_En_ChristmasTree/z_en_christmastree.h +++ b/soh/src/overlays/actors/ovl_En_ChristmasTree/z_en_christmastree.h @@ -12,6 +12,7 @@ typedef struct EnChristmasTree { Actor actor; ColliderCylinder collider; EnChristmasTreeActionFunc actionFunc; + u8 spawnedRupee; } EnChristmasTree; #ifdef __cplusplus diff --git a/soh/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c b/soh/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c index e2f16a611..a8536e62f 100644 --- a/soh/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c +++ b/soh/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c @@ -66,7 +66,10 @@ void EnHs2_Init(Actor* thisx, PlayState* play) { this->unk_2A8 = 0; this->actor.targetMode = 6; - Actor_Kill(this); + this->actor.world.pos.x = 756.0; + this->actor.world.pos.y = 80.0; + this->actor.world.pos.z = 1378.0; + this->actor.shape.rot.y = 32534; } void EnHs2_Destroy(Actor* thisx, PlayState* play) { diff --git a/soh/src/overlays/actors/ovl_En_Hy/z_en_hy.c b/soh/src/overlays/actors/ovl_En_Hy/z_en_hy.c index b790351e4..ef2438acd 100644 --- a/soh/src/overlays/actors/ovl_En_Hy/z_en_hy.c +++ b/soh/src/overlays/actors/ovl_En_Hy/z_en_hy.c @@ -829,7 +829,7 @@ s32 EnHy_ShouldSpawn(EnHy* this, PlayState* play) { } else if ((this->actor.params & 0x7F) != ENHY_TYPE_BOJ_12 && IS_NIGHT) { return false; } else { - return false; + return true; } case SCENE_IMPAS_HOUSE: if ((this->actor.params & 0x7F) != ENHY_TYPE_BOJ_10) { @@ -898,6 +898,19 @@ void EnHy_Init(Actor* thisx, PlayState* play) { Actor_Kill(&this->actor); } + if (this->actor.params == 1929) { + this->actor.world.pos.x = 261.826; + this->actor.world.pos.y = 240.0; + this->actor.world.pos.z = 1669.660; + this->actor.shape.rot.y = 23784; + } + if (this->actor.params == 1930) { + this->actor.world.pos.x = 262.224; + this->actor.world.pos.y = 240.0; + this->actor.world.pos.z = 1594.390; + this->actor.shape.rot.y = 7728; + } + this->getItemEntry = (GetItemEntry)GET_ITEM_NONE; this->actionFunc = EnHy_InitImpl; } diff --git a/soh/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c b/soh/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c index 9f8af9c7b..5b743c7e1 100644 --- a/soh/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c +++ b/soh/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c @@ -267,11 +267,12 @@ void EnKusa_Init(Actor* thisx, PlayState* play) { } if (gPlayState->sceneNum == SCENE_KAKARIKO_VILLAGE && this->actor.world.pos.z < 600.0) { - Actor_Kill(this); - } else { - EnKusa_SetupWaitObject(this); + this->actor.world.pos.x += 1620.672; + this->actor.world.pos.y += 80; + this->actor.world.pos.z += 900.884; } - + + EnKusa_SetupWaitObject(this); } void EnKusa_Destroy(Actor* thisx, PlayState* play2) { diff --git a/soh/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c b/soh/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c index 929028fdd..9979c161a 100644 --- a/soh/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c +++ b/soh/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c @@ -105,7 +105,12 @@ void EnToryo_Init(Actor* thisx, PlayState* play) { break; case SCENE_KAKARIKO_VILLAGE: if ((LINK_AGE_IN_YEARS == YEARS_CHILD) && IS_DAY) { - Actor_Kill(this); + this->actor.world.pos.x = 756.0; + this->actor.world.pos.y = 80.0; + this->actor.world.pos.z = 1378.0; + this->actor.shape.rot.y = 32534; + + this->stateFlags |= 2; } break; case SCENE_KAKARIKO_CENTER_GUEST_HOUSE: diff --git a/soh/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c b/soh/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c index 13c1b3edf..e257a184d 100644 --- a/soh/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c +++ b/soh/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c @@ -173,16 +173,14 @@ void EnWood02_Init(Actor* thisx, PlayState* play2) { f32 floorY; s16 extraRot; - if (Randomizer_GetSettingValue(RSK_TRIFORCE_HUNT) == 1) { - if (gPlayState->sceneNum == SCENE_KAKARIKO_VILLAGE && this->actor.params <= WOOD_TREE_KAKARIKO_ADULT) { - Actor_Kill(this); - } + if (gPlayState->sceneNum == SCENE_KAKARIKO_VILLAGE && this->actor.params <= WOOD_TREE_KAKARIKO_ADULT) { + Actor_Kill(this); + } - if (gPlayState->sceneNum == SCENE_KAKARIKO_VILLAGE && this->actor.params >= 0) { - this->actor.world.pos.x = 754.051; - this->actor.world.pos.y = 80.0; - this->actor.world.pos.z = 1429.908; - } + if (gPlayState->sceneNum == SCENE_KAKARIKO_VILLAGE && this->actor.params >= 0) { + this->actor.world.pos.x = 754.051; + this->actor.world.pos.y = 80.0; + this->actor.world.pos.z = 1429.908; } // The tree in Kakariko's day scene does not have the same params to spawn the GS