diff --git a/soh/assets/custom/objects/object_kakariko_decor/SnowBlanket_32 b/soh/assets/custom/objects/object_kakariko_decor/SnowBlanket_32
new file mode 100644
index 000000000..733b30757
Binary files /dev/null and b/soh/assets/custom/objects/object_kakariko_decor/SnowBlanket_32 differ
diff --git a/soh/assets/custom/objects/object_kakariko_decor/SnowDissolve_32 b/soh/assets/custom/objects/object_kakariko_decor/SnowDissolve_32
new file mode 100644
index 000000000..e7c7aa142
Binary files /dev/null and b/soh/assets/custom/objects/object_kakariko_decor/SnowDissolve_32 differ
diff --git a/soh/assets/custom/objects/object_kakariko_decor/UsagiLeaf_8 b/soh/assets/custom/objects/object_kakariko_decor/UsagiLeaf_8
new file mode 100644
index 000000000..fc4d3ff5b
Binary files /dev/null and b/soh/assets/custom/objects/object_kakariko_decor/UsagiLeaf_8 differ
diff --git a/soh/assets/custom/objects/object_kakariko_decor/YukiUsagi_16 b/soh/assets/custom/objects/object_kakariko_decor/YukiUsagi_16
new file mode 100644
index 000000000..2034627ff
Binary files /dev/null and b/soh/assets/custom/objects/object_kakariko_decor/YukiUsagi_16 differ
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL_tri_1 b/soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL_tri_1
deleted file mode 100644
index ac9146850..000000000
--- a/soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL_tri_1
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL_vtx_0 b/soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL_vtx_0
deleted file mode 100644
index 3b2a2a21c..000000000
--- a/soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL_vtx_0
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL_vtx_1 b/soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL_vtx_1
deleted file mode 100644
index a5aeeaa53..000000000
--- a/soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL_vtx_1
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL_vtx_cull b/soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL_vtx_cull
deleted file mode 100644
index 6e79464b2..000000000
--- a/soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL_vtx_cull
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL
similarity index 53%
rename from soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL
rename to soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL
index 5b0d3694f..13d9447f7 100644
--- a/soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL
@@ -1,11 +1,11 @@
-
+
-
-
-
-
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_tri_0 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_tri_0
new file mode 100644
index 000000000..1263127aa
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_tri_0
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL_tri_0 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_tri_1
similarity index 64%
rename from soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL_tri_0
rename to soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_tri_1
index bce87b152..2aff9496e 100644
--- a/soh/assets/custom/objects/object_kakariko_decor/gFrontGateDecorDL_tri_0
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_tri_1
@@ -1,10 +1,9 @@
-
+
-
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_vtx_0 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_vtx_0
new file mode 100644
index 000000000..9f3683fed
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_vtx_0
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_vtx_1 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_vtx_1
new file mode 100644
index 000000000..e438e71cf
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_vtx_1
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_vtx_cull b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_vtx_cull
new file mode 100644
index 000000000..c3ecddb8a
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_vtx_cull
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL
new file mode 100644
index 000000000..a3972ce7a
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_tri_0 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_tri_0
new file mode 100644
index 000000000..eb7e92fdf
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_tri_0
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_tri_1 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_tri_1
new file mode 100644
index 000000000..77468a738
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_tri_1
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_tri_2 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_tri_2
new file mode 100644
index 000000000..97634bb7b
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_tri_2
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_vtx_0 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_vtx_0
new file mode 100644
index 000000000..24e3e3d6e
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_vtx_0
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_vtx_1 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_vtx_1
new file mode 100644
index 000000000..0b12310ec
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_vtx_1
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_vtx_2 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_vtx_2
new file mode 100644
index 000000000..f2a81069d
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_vtx_2
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_vtx_cull b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_vtx_cull
new file mode 100644
index 000000000..b2e233783
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_vtx_cull
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL
index 3451b3004..f0363d242 100644
--- a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL
@@ -8,10 +8,16 @@
-
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_0 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_0
index 450d4ad7b..5ee2633e5 100644
--- a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_0
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_0
@@ -17,11 +17,18 @@
-
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_1 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_1
index 701018d7e..2b52e5ef3 100644
--- a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_1
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_1
@@ -1,5 +1,13 @@
-
+
+
+
+
+
+
+
+
+
@@ -8,7 +16,7 @@
-
+
@@ -17,7 +25,16 @@
-
+
+
+
+
+
+
+
+
+
+
@@ -26,7 +43,7 @@
-
+
@@ -35,7 +52,7 @@
-
+
@@ -44,7 +61,7 @@
-
+
@@ -53,7 +70,7 @@
-
+
@@ -62,7 +79,7 @@
-
+
@@ -71,7 +88,7 @@
-
+
@@ -80,7 +97,7 @@
-
+
@@ -89,7 +106,7 @@
-
+
@@ -98,7 +115,7 @@
-
+
@@ -107,7 +124,7 @@
-
+
@@ -116,7 +133,7 @@
-
+
@@ -125,7 +142,7 @@
-
+
@@ -134,7 +151,7 @@
-
+
@@ -143,7 +160,7 @@
-
+
@@ -152,7 +169,7 @@
-
+
@@ -161,7 +178,7 @@
-
+
@@ -170,7 +187,7 @@
-
+
@@ -179,7 +196,25 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_2 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_2
index a8f0d1205..d6f5dbafe 100644
--- a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_2
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_2
@@ -8,12 +8,20 @@
-
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_3 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_3
index 5e89bfd9c..f66ba5914 100644
--- a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_3
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_3
@@ -1,8 +1,25 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_5 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_5
new file mode 100644
index 000000000..ca52719c9
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_5
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_6 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_6
new file mode 100644
index 000000000..75be056f5
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_6
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_7 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_7
new file mode 100644
index 000000000..eeedcf1ee
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_7
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_0 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_0
index 844aa0f3c..c0a07802c 100644
--- a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_0
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_0
@@ -27,10 +27,10 @@
-
-
-
-
+
+
+
+
@@ -39,10 +39,10 @@
-
-
-
-
+
+
+
+
@@ -51,10 +51,10 @@
-
-
-
-
+
+
+
+
@@ -63,14 +63,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -79,4 +79,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_1 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_1
index 3c1ca09b4..c7615dd3b 100644
--- a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_1
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_1
@@ -1,12 +1,18 @@
+
+
+
+
+
+
-
-
-
-
+
+
+
+
@@ -31,14 +37,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -59,22 +65,22 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
@@ -83,14 +89,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -107,230 +113,228 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
@@ -339,18 +343,18 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -359,42 +363,42 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -403,10 +407,10 @@
-
-
-
-
+
+
+
+
@@ -419,34 +423,34 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -455,10 +459,10 @@
-
-
-
-
+
+
+
+
@@ -471,10 +475,10 @@
-
-
-
-
+
+
+
+
@@ -487,10 +491,10 @@
-
-
-
-
+
+
+
+
@@ -499,58 +503,58 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -559,38 +563,38 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -607,40 +611,160 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_2 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_2
index cd5e7a3d0..3ff9d2e43 100644
--- a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_2
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_2
@@ -7,10 +7,10 @@
-
-
-
-
+
+
+
+
@@ -19,10 +19,10 @@
-
-
-
-
+
+
+
+
@@ -31,24 +31,52 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_3 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_3
index fb8c029cd..b0e49797a 100644
--- a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_3
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_3
@@ -1,8 +1,8 @@
-
-
-
-
+
+
+
+
@@ -11,4 +11,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_5 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_5
new file mode 100644
index 000000000..46c6ac9a1
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_5
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_6 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_6
new file mode 100644
index 000000000..0e5970505
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_6
@@ -0,0 +1,497 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_7 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_7
new file mode 100644
index 000000000..1929d460e
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_7
@@ -0,0 +1,230 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_cull b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_cull
index c096976aa..a183da293 100644
--- a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_cull
+++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_cull
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/mat_gFrontGateDecorDL_f3dlite_StringGRGR b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoAdultDecorDL_f3dlite_StringGRGR
similarity index 100%
rename from soh/assets/custom/objects/object_kakariko_decor/mat_gFrontGateDecorDL_f3dlite_StringGRGR
rename to soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoAdultDecorDL_f3dlite_StringGRGR
diff --git a/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoAdultDecorDL_f3dlite_snowlayer b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoAdultDecorDL_f3dlite_snowlayer
new file mode 100644
index 000000000..5456b3893
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoAdultDecorDL_f3dlite_snowlayer
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/mat_gFrontGateDecorDL_f3dlite_SnowBuildup b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoChildDecorDL_f3dlite_SnowBuildup
similarity index 100%
rename from soh/assets/custom/objects/object_kakariko_decor/mat_gFrontGateDecorDL_f3dlite_SnowBuildup
rename to soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoChildDecorDL_f3dlite_SnowBuildup
diff --git a/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoChildDecorDL_f3dlite_UsagiLeaf b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoChildDecorDL_f3dlite_UsagiLeaf
new file mode 100644
index 000000000..be29498ef
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoChildDecorDL_f3dlite_UsagiLeaf
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoChildDecorDL_f3dlite_YukiUsagiBody b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoChildDecorDL_f3dlite_YukiUsagiBody
new file mode 100644
index 000000000..3a2d2c889
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoChildDecorDL_f3dlite_YukiUsagiBody
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_UsagiLeaf b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_UsagiLeaf
new file mode 100644
index 000000000..be29498ef
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_UsagiLeaf
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_YukiUsagiBody b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_YukiUsagiBody
new file mode 100644
index 000000000..3a2d2c889
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_YukiUsagiBody
@@ -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
deleted file mode 100644
index 0a479d70a..000000000
--- a/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_material_004
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_snowdissolve b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_snowdissolve
new file mode 100644
index 000000000..e86142f29
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_snowdissolve
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_snowlayer b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_snowlayer
new file mode 100644
index 000000000..5456b3893
--- /dev/null
+++ b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_snowlayer
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_kakariko_decor/spot00_sceneTex_01AB98 b/soh/assets/custom/objects/object_kakariko_decor/spot00_sceneTex_01AB98
deleted file mode 100644
index 454876ed0..000000000
Binary files a/soh/assets/custom/objects/object_kakariko_decor/spot00_sceneTex_01AB98 and /dev/null 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
deleted file mode 100644
index 9170dfd6b..000000000
Binary files a/soh/assets/custom/objects/object_kakariko_decor/spot00_sceneTex_01B398 and /dev/null differ
diff --git a/soh/assets/soh_assets.h b/soh/assets/soh_assets.h
index 62ac078b4..2a5695b6b 100644
--- a/soh/assets/soh_assets.h
+++ b/soh/assets/soh_assets.h
@@ -92,12 +92,15 @@ static const ALIGN_ASSET(2) char gXmasDecor100DL[] = dgXmasDecor100DL;
#define dgXmasStarDL "__OTR__objects/object_xmas_tree/gXmasStarDL"
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;
+#define dgKakarikoChildDecorDL "__OTR__objects/object_kakariko_decor/gKakarikoChildDecorDL"
+static const ALIGN_ASSET(2) char gKakarikoChildDecorDL[] = dgKakarikoChildDecorDL;
+
+#define dgKakarikoAdultDecorDL "__OTR__objects/object_kakariko_decor/gKakarikoAdultDecorDL"
+static const ALIGN_ASSET(2) char gKakarikoAdultDecorDL[] = dgKakarikoAdultDecorDL;
+
// overlays
#define dgOptionsDividerChangeLangVtx "__OTR__overlays/ovl_file_choose/gOptionsDividerChangeLangVtx"
static const ALIGN_ASSET(2) char gOptionsDividerChangeLangVtx[] = dgOptionsDividerChangeLangVtx;
diff --git a/soh/soh/Enhancements/mods.cpp b/soh/soh/Enhancements/mods.cpp
index 0fef052b7..338cbfc40 100644
--- a/soh/soh/Enhancements/mods.cpp
+++ b/soh/soh/Enhancements/mods.cpp
@@ -655,7 +655,9 @@ void RegisterGrantGanonsBossKey() {
Player* player = GET_PLAYER(gPlayState);
// Triforce Hunt needs the check if the player isn't being teleported to the credits scene.
if (!GameInteractor::IsGameplayPaused() && Flags_GetRandomizerInf(RAND_INF_GRANT_GANONS_BOSSKEY) &&
- gPlayState->sceneLoadFlag != 0x14 && (1 << 0 & gSaveContext.inventory.dungeonItems[SCENE_GANONS_TOWER]) == 0) {
+ gPlayState->sceneLoadFlag != 0x14 &&
+ (1 << 0 & gSaveContext.inventory.dungeonItems[SCENE_GANONS_TOWER]) == 0 && player->stateFlags1 !=
+ PLAYER_STATE1_INPUT_DISABLED) {
GetItemEntry getItemEntry =
ItemTableManager::Instance->RetrieveItemEntry(MOD_RANDOMIZER, RG_GANONS_CASTLE_BOSS_KEY);
GiveItemEntryWithoutActor(gPlayState, getItemEntry);
@@ -1057,17 +1059,6 @@ 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();
@@ -1098,5 +1089,4 @@ void InitMods() {
RegisterRandomizerSheikSpawn();
RegisterRandomizedEnemySizes();
NameTag_RegisterHooks();
- RegisterChristmas();
}
diff --git a/soh/src/code/z_play.c b/soh/src/code/z_play.c
index f14948dd9..7cdb5f8dd 100644
--- a/soh/src/code/z_play.c
+++ b/soh/src/code/z_play.c
@@ -769,7 +769,7 @@ void Play_Init(GameState* thisx) {
GET_PLAYER(play)->actor.world.pos.z, 0, 0, 0, 1, true);
}
- if (play->sceneNum == SCENE_KAKARIKO_VILLAGE && Randomizer_GetSettingValue(RSK_TRIFORCE_HUNT)) {
+ if (play->sceneNum == SCENE_KAKARIKO_VILLAGE) {
Actor_Spawn(&play->actorCtx, play, gEnChristmasTreeId, -734, 0, 420, 0, 0, 0, 0, true);
}
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 976aa4a4b..0b880b71b 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,6 +13,7 @@ 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) {
@@ -28,15 +29,20 @@ void EnChristmasDeco_Draw(Actor* thisx, PlayState* play) {
OPEN_DISPS(play->state.gfxCtx);
- Matrix_Translate(0, 0, 0, MTXMODE_APPLY);
- Matrix_RotateZYX(0, 0, 0, MTXMODE_APPLY);
+ Gfx_SetupDL_25Opa(play->state.gfxCtx);
+
Matrix_Scale(decoSize, decoSize, decoSize, MTXMODE_APPLY);
- gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__), G_MTX_MODELVIEW | G_MTX_LOAD);
+ // Assertion Halt in Debug mode, switch to Release when testing.
if (play->sceneNum == SCENE_KAKARIKO_VILLAGE) {
- gSPDisplayList(POLY_OPA_DISP++, gFrontGateDecorDL);
- gSPDisplayList(POLY_OPA_DISP++, gKakarikoDecorDL); //Assertion Halt in Debug mode, switch to Release when testing.
+ gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gKakarikoDecorDL);
+ if (LINK_IS_CHILD) {
+ gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gKakarikoChildDecorDL);
+ } else {
+ gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gKakarikoAdultDecorDL);
+ }
}
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 2687704e2..c18e2e098 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
@@ -65,7 +65,7 @@ void EnChristmasTree_Destroy(Actor* thisx, PlayState* play) {
void EnChristmasTree_Wait(EnChristmasTree* this, PlayState* play) {
if (Actor_ProcessTalkRequest(&this->actor, play)) { // if talk is initiated
this->actionFunc = EnChristmasTree_Talk;
- } else if ((this->actor.xzDistToPlayer < 170.0f)) { // talk range
+ } else if ((this->actor.xzDistToPlayer < 170.0f) && Randomizer_GetSettingValue(RSK_TRIFORCE_HUNT)) { // talk range
func_8002F2CC(&this->actor, play, 170.0f);
}
}
@@ -93,12 +93,16 @@ void EnChristmasTree_SetupEndTitle(EnChristmasTree* this, PlayState* play) {
GameInteractor_SetNoUIActive(1);
- Actor_Spawn(&gPlayState->actorCtx, gPlayState, ACTOR_END_TITLE, 0, 0, 0, 0, 0, 0, 2, false);
+ Actor_Spawn(&play->actorCtx, play, ACTOR_END_TITLE, 0, 0, 0, 0, 0, 0, 2, false);
player->stateFlags1 = PLAYER_STATE1_INPUT_DISABLED;
Flags_SetRandomizerInf(RAND_INF_GRANT_GANONS_BOSSKEY);
+ Play_PerformSave(play);
+
+ Camera_ChangeMode(Play_GetCamera(play, play->mainCamera.thisIdx), CAM_MODE_STILL);
+
this->actionFunc = EnChristmasTree_Wait;
}
@@ -111,15 +115,26 @@ void EnChristmasTree_Update(Actor* thisx, PlayState* play) {
Actor_SetFocus(&this->actor, 80.0f);
+ uint8_t triforceHuntActive = Randomizer_GetSettingValue(RSK_TRIFORCE_HUNT);
+ float percentageCompleted = (float)gSaveContext.triforcePiecesCollected /
+ (float)Randomizer_GetSettingValue(RSK_TRIFORCE_HUNT_PIECES_REQUIRED);
+
+ if ((percentageCompleted >= 1.0f || !triforceHuntActive) && !this->spawnedRupee) {
+ 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;
+ }
+
this->actionFunc(this, play);
}
void EnChristmasTree_Draw(Actor* thisx, PlayState* play) {
EnChristmasTree* this = (EnChristmasTree*)thisx;
-
+
+ float treeSize = 55.0f;
+ uint8_t triforceHuntActive = Randomizer_GetSettingValue(RSK_TRIFORCE_HUNT);
float percentageCompleted = (float)gSaveContext.triforcePiecesCollected /
(float)Randomizer_GetSettingValue(RSK_TRIFORCE_HUNT_PIECES_REQUIRED);
- float treeSize = 55.0f;
OPEN_DISPS(play->state.gfxCtx);
@@ -130,42 +145,37 @@ void EnChristmasTree_Draw(Actor* thisx, PlayState* play) {
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasTreeDL);
- if (percentageCompleted >= 0.1f) {
+ if (percentageCompleted >= 0.1f || !triforceHuntActive) {
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor10DL);
}
- if (percentageCompleted >= 0.2f) {
+ if (percentageCompleted >= 0.2f || !triforceHuntActive) {
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor20DL);
}
- if (percentageCompleted >= 0.3f) {
+ if (percentageCompleted >= 0.3f || !triforceHuntActive) {
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor30DL);
}
- if (percentageCompleted >= 0.4f) {
+ if (percentageCompleted >= 0.4f || !triforceHuntActive) {
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor40DL);
}
- if (percentageCompleted >= 0.5f) {
+ if (percentageCompleted >= 0.5f || !triforceHuntActive) {
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor50DL);
}
- if (percentageCompleted >= 0.6f) {
+ if (percentageCompleted >= 0.6f || !triforceHuntActive) {
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor60DL);
}
- if (percentageCompleted >= 0.7f) {
+ if (percentageCompleted >= 0.7f || !triforceHuntActive) {
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor70DL);
}
- if (percentageCompleted >= 0.8f) {
+ if (percentageCompleted >= 0.8f || !triforceHuntActive) {
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor80DL);
}
- if (percentageCompleted >= 0.9f) {
+ if (percentageCompleted >= 0.9f || !triforceHuntActive) {
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor90DL);
}
- if (percentageCompleted >= 1.0f) {
+ if (percentageCompleted >= 1.0f || !triforceHuntActive) {
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_Hs2/z_en_hs2.c b/soh/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c
index a8536e62f..deeeee1b9 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,10 +66,13 @@ void EnHs2_Init(Actor* thisx, PlayState* play) {
this->unk_2A8 = 0;
this->actor.targetMode = 6;
- 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;
+ if (play->sceneNum == SCENE_KAKARIKO_VILLAGE) {
+ 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 ef2438acd..d51c7dd92 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
@@ -898,17 +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;
+ if (play->sceneNum == SCENE_KAKARIKO_VILLAGE) {
+ 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;