From bb497e31250f360d1ff00a5bd50e88b5e8f74dce Mon Sep 17 00:00:00 2001 From: Malkierian Date: Thu, 30 Oct 2025 18:59:19 -0700 Subject: [PATCH] Initial re-application of let-it-snow. --- .../objects/object_festivehats/antlers_64 | Bin 0 -> 8284 bytes .../object_festivehats/gCuccoLadyHatDL | 11 + .../object_festivehats/gCuccoLadyHatDL_tri_0 | 31 + .../object_festivehats/gCuccoLadyHatDL_vtx_0 | 43 + .../object_festivehats/gEponaRudolphHatDL | 13 + .../gEponaRudolphHatDL_tri_0 | 47 + .../gEponaRudolphHatDL_tri_1 | 22 + .../gEponaRudolphHatDL_vtx_0 | 50 + .../gEponaRudolphHatDL_vtx_1 | 23 + .../object_festivehats/gHorseAntlersDL | 11 + .../object_festivehats/gHorseAntlersDL_tri_0 | 22 + .../object_festivehats/gHorseAntlersDL_vtx_0 | 23 + .../object_festivehats/gLinkAdultHatTrimDL | 11 + .../gLinkAdultHatTrimDL_tri_0 | 44 + .../gLinkAdultHatTrimDL_vtx_0 | 54 + .../object_festivehats/gLinkAdultPompomDL | 11 + .../gLinkAdultPompomDL_tri_0 | 30 + .../gLinkAdultPompomDL_vtx_0 | 31 + .../object_festivehats/gLinkChildHatTrimDL | 11 + .../gLinkChildHatTrimDL_tri_0 | 50 + .../gLinkChildHatTrimDL_vtx_0 | 59 + .../object_festivehats/gLinkChildPompomDL | 11 + .../gLinkChildPompomDL_tri_0 | 30 + .../gLinkChildPompomDL_vtx_0 | 31 + .../object_festivehats/gPaperCrownGenericDL | 11 + .../gPaperCrownGenericDL_tri_0 | 31 + .../gPaperCrownGenericDL_vtx_0 | 42 + .../object_festivehats/gSantaHatGenericDL | 13 + .../gSantaHatGenericDL_tri_0 | 62 + .../gSantaHatGenericDL_tri_1 | 37 + .../gSantaHatGenericDL_vtx_0 | 63 + .../gSantaHatGenericDL_vtx_1 | 40 + .../objects/object_festivehats/hilite_nose | Bin 0 -> 2140 bytes .../mat_gCuccoLadyHatDL_f3dlite_hatcolour | 12 + .../mat_gEponaRudolphHatDL_f3dlite_antlers | 21 + .../mat_gEponaRudolphHatDL_f3dlite_rednose | 21 + .../mat_gHorseAntlersDL_f3dlite_antlers | 21 + ...gLinkAdultHatTrimDL_f3dlite_santahat_white | 12 + ..._gLinkAdultPompomDL_f3dlite_santahat_white | 12 + ...gLinkChildHatTrimDL_f3dlite_santahat_white | 12 + ..._gLinkChildPompomDL_f3dlite_santahat_white | 12 + .../mat_gPaperCrownGenericDL_f3dlite_crown | 11 + ...mat_gSantaHatGenericDL_f3dlite_santahatred | 12 + ...t_gSantaHatGenericDL_f3dlite_santahatwhite | 12 + .../object_kakariko_decor/CuccoBedding_32 | Bin 0 -> 2140 bytes .../object_kakariko_decor/SnowBlanket_32 | Bin 0 -> 2140 bytes .../object_kakariko_decor/SnowBuildup_32 | Bin 0 -> 2140 bytes .../object_kakariko_decor/SnowDissolve_32 | Bin 0 -> 2140 bytes .../object_kakariko_decor/String_BYBY_32 | Bin 0 -> 2140 bytes .../object_kakariko_decor/String_GRGR_32 | Bin 0 -> 2140 bytes .../objects/object_kakariko_decor/UsagiLeaf_8 | Bin 0 -> 220 bytes .../object_kakariko_decor/YukiUsagi_16 | Bin 0 -> 604 bytes .../gKakarikoAdultDecorDL | 16 + .../gKakarikoAdultDecorDL_tri_0 | 7 + .../gKakarikoAdultDecorDL_tri_1 | 9 + .../gKakarikoAdultDecorDL_vtx_0 | 10 + .../gKakarikoAdultDecorDL_vtx_1 | 18 + .../gKakarikoAdultDecorDL_vtx_cull | 10 + .../gKakarikoChildDecorDL | 18 + .../gKakarikoChildDecorDL_tri_0 | 37 + .../gKakarikoChildDecorDL_tri_1 | 73 + .../gKakarikoChildDecorDL_tri_2 | 14 + .../gKakarikoChildDecorDL_vtx_0 | 106 + .../gKakarikoChildDecorDL_vtx_1 | 111 + .../gKakarikoChildDecorDL_vtx_2 | 50 + .../gKakarikoChildDecorDL_vtx_cull | 10 + .../object_kakariko_decor/gKakarikoDecorDL | 28 + .../gKakarikoDecorDL_tri_0 | 34 + .../gKakarikoDecorDL_tri_1 | 221 + .../gKakarikoDecorDL_tri_2 | 27 + .../gKakarikoDecorDL_tri_3 | 25 + .../gKakarikoDecorDL_tri_4 | 6 + .../gKakarikoDecorDL_tri_5 | 6 + .../gKakarikoDecorDL_tri_6 | 330 ++ .../gKakarikoDecorDL_tri_7 | 50 + .../gKakarikoDecorDL_vtx_0 | 106 + .../gKakarikoDecorDL_vtx_1 | 770 +++ .../gKakarikoDecorDL_vtx_2 | 82 + .../gKakarikoDecorDL_vtx_3 | 74 + .../gKakarikoDecorDL_vtx_4 | 6 + .../gKakarikoDecorDL_vtx_5 | 6 + .../gKakarikoDecorDL_vtx_6 | 497 ++ .../gKakarikoDecorDL_vtx_7 | 230 + .../gKakarikoDecorDL_vtx_cull | 10 + ...t_gKakarikoAdultDecorDL_f3dlite_StringGRGR | 21 + ...at_gKakarikoAdultDecorDL_f3dlite_snowlayer | 21 + ..._gKakarikoChildDecorDL_f3dlite_SnowBuildup | 21 + ...at_gKakarikoChildDecorDL_f3dlite_UsagiLeaf | 21 + ...KakarikoChildDecorDL_f3dlite_YukiUsagiBody | 21 + .../mat_gKakarikoDecorDL_f3dlite_CuccoBedding | 21 + .../mat_gKakarikoDecorDL_f3dlite_SnowBuildup | 21 + .../mat_gKakarikoDecorDL_f3dlite_StringBYBY | 21 + .../mat_gKakarikoDecorDL_f3dlite_StringGRGR | 21 + .../mat_gKakarikoDecorDL_f3dlite_UsagiLeaf | 21 + ...mat_gKakarikoDecorDL_f3dlite_YukiUsagiBody | 21 + .../mat_gKakarikoDecorDL_f3dlite_snowdissolve | 21 + .../mat_gKakarikoDecorDL_f3dlite_snowlayer | 21 + .../object_penguin/mat_object_penguin_DL_beak | 12 + .../object_penguin/mat_object_penguin_DL_eye | 21 + .../object_penguin/mat_object_penguin_DL_skin | 21 + .../objects/object_penguin/object_penguin_DL | 15 + .../object_penguin/object_penguin_DL_tri_0 | 862 ++++ .../object_penguin/object_penguin_DL_tri_1 | 210 + .../object_penguin/object_penguin_DL_tri_2 | 9 + .../object_penguin/object_penguin_DL_vtx_0 | 922 ++++ .../object_penguin/object_penguin_DL_vtx_1 | 215 + .../object_penguin/object_penguin_DL_vtx_2 | 10 + .../custom/objects/object_penguin/ping_eye | Bin 0 -> 8284 bytes .../custom/objects/object_penguin/ping_tex | Bin 0 -> 8284 bytes .../SnowBlanket_32 | Bin 0 -> 2140 bytes .../SnowBuildup_32 | Bin 0 -> 2140 bytes .../String_BYBY_32 | Bin 0 -> 2140 bytes .../String_GRGR_32 | Bin 0 -> 2140 bytes .../gTempleOfTimeDecorDL | 30 + .../gTempleOfTimeDecorDL_tri_0 | 2222 ++++++++ .../gTempleOfTimeDecorDL_tri_1 | 7 + .../gTempleOfTimeDecorDL_tri_2 | 30 + .../gTempleOfTimeDecorDL_tri_3 | 55 + .../gTempleOfTimeDecorDL_tri_4 | 69 + .../gTempleOfTimeDecorDL_tri_5 | 87 + .../gTempleOfTimeDecorDL_tri_6 | 87 + .../gTempleOfTimeDecorDL_tri_7 | 22 + .../gTempleOfTimeDecorDL_tri_8 | 7 + .../gTempleOfTimeDecorDL_vtx_0 | 4468 +++++++++++++++++ .../gTempleOfTimeDecorDL_vtx_1 | 8 + .../gTempleOfTimeDecorDL_vtx_2 | 74 + .../gTempleOfTimeDecorDL_vtx_3 | 119 + .../gTempleOfTimeDecorDL_vtx_4 | 224 + .../gTempleOfTimeDecorDL_vtx_5 | 284 ++ .../gTempleOfTimeDecorDL_vtx_6 | 278 + .../gTempleOfTimeDecorDL_vtx_7 | 66 + .../gTempleOfTimeDecorDL_vtx_8 | 10 + .../gTempleOfTimeDecorDL_vtx_cull | 10 + .../objects/object_temple_of_time_decor/ice | Bin 0 -> 2140 bytes ...t_gTempleOfTimeDecorDL_f3dlite_SnowBuildup | 21 + ...at_gTempleOfTimeDecorDL_f3dlite_StringBYBY | 21 + ...at_gTempleOfTimeDecorDL_f3dlite_StringGRGR | 21 + ...TimeDecorDL_f3dlite_gift_col_blue_material | 12 + ...imeDecorDL_f3dlite_gift_col_green_material | 12 + ...fTimeDecorDL_f3dlite_gift_col_red_material | 12 + ...meDecorDL_f3dlite_gift_col_yellow_material | 12 + ..._gTempleOfTimeDecorDL_f3dlite_ice_material | 21 + ...mat_gTempleOfTimeDecorDL_f3dlite_snowlayer | 21 + .../object_triforce_completed/GlowAlpha_64 | Bin 0 -> 4188 bytes .../gTriforcePieceCompletedDL | 4 +- .../gTriforcePieceCompletedDL_tri_0 | 53 +- .../gTriforcePieceCompletedDL_tri_1 | 385 +- .../gTriforcePieceCompletedDL_vtx_0 | 56 +- .../gTriforcePieceCompletedDL_vtx_1 | 351 +- .../object_triforce_completed/hilite_melon | Bin 0 -> 2140 bytes ...mat_gTriforcePieceCompletedDL_f3dlite_Glow | 21 + ...forcePieceCompletedDL_f3dlite_OrnamentGold | 21 + .../object_triforce_piece_0/gTriforcePiece0DL | 6 +- .../gTriforcePiece0DL_tri_0 | 62 +- .../gTriforcePiece0DL_tri_1 | 95 +- .../gTriforcePiece0DL_vtx_0 | 86 +- .../gTriforcePiece0DL_vtx_1 | 125 +- .../objects/object_triforce_piece_0/image | Bin 0 -> 1116 bytes .../mat_gTriforcePiece0DL_ball | 21 + .../mat_gTriforcePiece0DL_silver | 21 + .../object_triforce_piece_1/gTriforcePiece1DL | 4 +- .../gTriforcePiece1DL_tri_0 | 71 +- .../gTriforcePiece1DL_tri_1 | 97 +- .../gTriforcePiece1DL_vtx_0 | 91 +- .../gTriforcePiece1DL_vtx_1 | 126 +- .../objects/object_triforce_piece_1/image | Bin 0 -> 1116 bytes .../object_triforce_piece_1/image_copy | Bin 0 -> 1116 bytes .../mat_gTriforcePiece1DL_blue_mat | 21 + .../mat_gTriforcePiece1DL_silver_002 | 21 + .../object_triforce_piece_2/gTriforcePiece2DL | 6 +- .../gTriforcePiece2DL_tri_0 | 80 +- .../gTriforcePiece2DL_tri_1 | 373 +- .../gTriforcePiece2DL_vtx_0 | 104 +- .../gTriforcePiece2DL_vtx_1 | 418 +- .../objects/object_triforce_piece_2/image | Bin 0 -> 1116 bytes .../object_triforce_piece_2/image_copy | Bin 0 -> 1116 bytes .../mat_gTriforcePiece2DL_Green_mat | 21 + .../mat_gTriforcePiece2DL_silver_001 | 21 + .../custom/objects/object_xmas_tree/Bark_64 | Bin 0 -> 8284 bytes .../objects/object_xmas_tree/Bauble1Tex_B_32 | Bin 0 -> 2140 bytes .../objects/object_xmas_tree/Bauble1Tex_G_32 | Bin 0 -> 2140 bytes .../objects/object_xmas_tree/Bauble1Tex_R_32 | Bin 0 -> 2140 bytes .../objects/object_xmas_tree/Bauble2Tex_B_32 | Bin 0 -> 2140 bytes .../objects/object_xmas_tree/Bauble2Tex_G_32 | Bin 0 -> 2140 bytes .../objects/object_xmas_tree/Bauble2Tex_R_32 | Bin 0 -> 2140 bytes .../objects/object_xmas_tree/Bauble3Tex_B_32 | Bin 0 -> 2140 bytes .../objects/object_xmas_tree/Bauble3Tex_G_32 | Bin 0 -> 2140 bytes .../objects/object_xmas_tree/Bauble3Tex_R_32 | Bin 0 -> 2140 bytes .../objects/object_xmas_tree/GlowAlpha_64 | Bin 0 -> 4188 bytes .../objects/object_xmas_tree/LeavesAlpha_64 | Bin 0 -> 8284 bytes .../object_xmas_tree/LeavesAlpha_shaded_64 | Bin 0 -> 8284 bytes .../objects/object_xmas_tree/Wrapping_B_32 | Bin 0 -> 2140 bytes .../objects/object_xmas_tree/Wrapping_B_64 | Bin 0 -> 8284 bytes .../objects/object_xmas_tree/Wrapping_G_32 | Bin 0 -> 2140 bytes .../objects/object_xmas_tree/Wrapping_G_64 | Bin 0 -> 8284 bytes .../objects/object_xmas_tree/Wrapping_R_32 | Bin 0 -> 2140 bytes .../objects/object_xmas_tree/Wrapping_R_64 | Bin 0 -> 8284 bytes .../objects/object_xmas_tree/gXmasDecor100DL | 17 + .../object_xmas_tree/gXmasDecor100DL_tri_0 | 106 + .../object_xmas_tree/gXmasDecor100DL_tri_1 | 170 + .../object_xmas_tree/gXmasDecor100DL_tri_2 | 68 + .../object_xmas_tree/gXmasDecor100DL_tri_3 | 68 + .../object_xmas_tree/gXmasDecor100DL_vtx_0 | 124 + .../object_xmas_tree/gXmasDecor100DL_vtx_1 | 220 + .../object_xmas_tree/gXmasDecor100DL_vtx_2 | 94 + .../object_xmas_tree/gXmasDecor100DL_vtx_3 | 94 + .../objects/object_xmas_tree/gXmasDecor10DL | 25 + .../object_xmas_tree/gXmasDecor10DL_tri_0 | 9 + .../object_xmas_tree/gXmasDecor10DL_tri_1 | 7 + .../object_xmas_tree/gXmasDecor10DL_tri_2 | 7 + .../object_xmas_tree/gXmasDecor10DL_tri_3 | 7 + .../object_xmas_tree/gXmasDecor10DL_tri_4 | 7 + .../object_xmas_tree/gXmasDecor10DL_tri_5 | 7 + .../object_xmas_tree/gXmasDecor10DL_tri_6 | 9 + .../object_xmas_tree/gXmasDecor10DL_tri_7 | 9 + .../object_xmas_tree/gXmasDecor10DL_vtx_0 | 10 + .../object_xmas_tree/gXmasDecor10DL_vtx_1 | 6 + .../object_xmas_tree/gXmasDecor10DL_vtx_2 | 6 + .../object_xmas_tree/gXmasDecor10DL_vtx_3 | 6 + .../object_xmas_tree/gXmasDecor10DL_vtx_4 | 6 + .../object_xmas_tree/gXmasDecor10DL_vtx_5 | 6 + .../object_xmas_tree/gXmasDecor10DL_vtx_6 | 10 + .../object_xmas_tree/gXmasDecor10DL_vtx_7 | 10 + .../objects/object_xmas_tree/gXmasDecor20DL | 29 + .../object_xmas_tree/gXmasDecor20DL_tri_0 | 106 + .../object_xmas_tree/gXmasDecor20DL_tri_1 | 68 + .../object_xmas_tree/gXmasDecor20DL_tri_2 | 197 + .../object_xmas_tree/gXmasDecor20DL_tri_3 | 9 + .../object_xmas_tree/gXmasDecor20DL_tri_4 | 9 + .../object_xmas_tree/gXmasDecor20DL_tri_5 | 9 + .../object_xmas_tree/gXmasDecor20DL_tri_6 | 9 + .../object_xmas_tree/gXmasDecor20DL_tri_7 | 7 + .../object_xmas_tree/gXmasDecor20DL_tri_8 | 7 + .../object_xmas_tree/gXmasDecor20DL_tri_9 | 7 + .../object_xmas_tree/gXmasDecor20DL_vtx_0 | 124 + .../object_xmas_tree/gXmasDecor20DL_vtx_1 | 94 + .../object_xmas_tree/gXmasDecor20DL_vtx_2 | 300 ++ .../object_xmas_tree/gXmasDecor20DL_vtx_3 | 10 + .../object_xmas_tree/gXmasDecor20DL_vtx_4 | 10 + .../object_xmas_tree/gXmasDecor20DL_vtx_5 | 10 + .../object_xmas_tree/gXmasDecor20DL_vtx_6 | 10 + .../object_xmas_tree/gXmasDecor20DL_vtx_7 | 6 + .../object_xmas_tree/gXmasDecor20DL_vtx_8 | 6 + .../object_xmas_tree/gXmasDecor20DL_vtx_9 | 6 + .../objects/object_xmas_tree/gXmasDecor30DL | 23 + .../object_xmas_tree/gXmasDecor30DL_tri_0 | 7 + .../object_xmas_tree/gXmasDecor30DL_tri_1 | 11 + .../object_xmas_tree/gXmasDecor30DL_tri_2 | 11 + .../object_xmas_tree/gXmasDecor30DL_tri_3 | 7 + .../object_xmas_tree/gXmasDecor30DL_tri_4 | 7 + .../object_xmas_tree/gXmasDecor30DL_tri_5 | 7 + .../object_xmas_tree/gXmasDecor30DL_tri_6 | 7 + .../object_xmas_tree/gXmasDecor30DL_vtx_0 | 6 + .../object_xmas_tree/gXmasDecor30DL_vtx_1 | 14 + .../object_xmas_tree/gXmasDecor30DL_vtx_2 | 14 + .../object_xmas_tree/gXmasDecor30DL_vtx_3 | 6 + .../object_xmas_tree/gXmasDecor30DL_vtx_4 | 6 + .../object_xmas_tree/gXmasDecor30DL_vtx_5 | 6 + .../object_xmas_tree/gXmasDecor30DL_vtx_6 | 6 + .../objects/object_xmas_tree/gXmasDecor40DL | 35 + .../object_xmas_tree/gXmasDecor40DL_tri_0 | 68 + .../object_xmas_tree/gXmasDecor40DL_tri_1 | 68 + .../object_xmas_tree/gXmasDecor40DL_tri_10 | 9 + .../object_xmas_tree/gXmasDecor40DL_tri_11 | 7 + .../object_xmas_tree/gXmasDecor40DL_tri_12 | 7 + .../object_xmas_tree/gXmasDecor40DL_tri_2 | 68 + .../object_xmas_tree/gXmasDecor40DL_tri_3 | 68 + .../object_xmas_tree/gXmasDecor40DL_tri_4 | 68 + .../object_xmas_tree/gXmasDecor40DL_tri_5 | 7 + .../object_xmas_tree/gXmasDecor40DL_tri_6 | 11 + .../object_xmas_tree/gXmasDecor40DL_tri_7 | 7 + .../object_xmas_tree/gXmasDecor40DL_tri_8 | 7 + .../object_xmas_tree/gXmasDecor40DL_tri_9 | 7 + .../object_xmas_tree/gXmasDecor40DL_vtx_0 | 94 + .../object_xmas_tree/gXmasDecor40DL_vtx_1 | 94 + .../object_xmas_tree/gXmasDecor40DL_vtx_10 | 10 + .../object_xmas_tree/gXmasDecor40DL_vtx_11 | 6 + .../object_xmas_tree/gXmasDecor40DL_vtx_12 | 6 + .../object_xmas_tree/gXmasDecor40DL_vtx_2 | 94 + .../object_xmas_tree/gXmasDecor40DL_vtx_3 | 94 + .../object_xmas_tree/gXmasDecor40DL_vtx_4 | 94 + .../object_xmas_tree/gXmasDecor40DL_vtx_5 | 6 + .../object_xmas_tree/gXmasDecor40DL_vtx_6 | 14 + .../object_xmas_tree/gXmasDecor40DL_vtx_7 | 6 + .../object_xmas_tree/gXmasDecor40DL_vtx_8 | 6 + .../object_xmas_tree/gXmasDecor40DL_vtx_9 | 6 + .../objects/object_xmas_tree/gXmasDecor50DL | 21 + .../object_xmas_tree/gXmasDecor50DL_tri_0 | 9 + .../object_xmas_tree/gXmasDecor50DL_tri_1 | 9 + .../object_xmas_tree/gXmasDecor50DL_tri_2 | 11 + .../object_xmas_tree/gXmasDecor50DL_tri_3 | 7 + .../object_xmas_tree/gXmasDecor50DL_tri_4 | 7 + .../object_xmas_tree/gXmasDecor50DL_tri_5 | 9 + .../object_xmas_tree/gXmasDecor50DL_vtx_0 | 10 + .../object_xmas_tree/gXmasDecor50DL_vtx_1 | 10 + .../object_xmas_tree/gXmasDecor50DL_vtx_2 | 14 + .../object_xmas_tree/gXmasDecor50DL_vtx_3 | 6 + .../object_xmas_tree/gXmasDecor50DL_vtx_4 | 6 + .../object_xmas_tree/gXmasDecor50DL_vtx_5 | 10 + .../objects/object_xmas_tree/gXmasDecor60DL | 29 + .../object_xmas_tree/gXmasDecor60DL_tri_0 | 68 + .../object_xmas_tree/gXmasDecor60DL_tri_1 | 106 + .../object_xmas_tree/gXmasDecor60DL_tri_2 | 68 + .../object_xmas_tree/gXmasDecor60DL_tri_3 | 133 + .../object_xmas_tree/gXmasDecor60DL_tri_4 | 9 + .../object_xmas_tree/gXmasDecor60DL_tri_5 | 9 + .../object_xmas_tree/gXmasDecor60DL_tri_6 | 9 + .../object_xmas_tree/gXmasDecor60DL_tri_7 | 7 + .../object_xmas_tree/gXmasDecor60DL_tri_8 | 11 + .../object_xmas_tree/gXmasDecor60DL_tri_9 | 7 + .../object_xmas_tree/gXmasDecor60DL_vtx_0 | 94 + .../object_xmas_tree/gXmasDecor60DL_vtx_1 | 124 + .../object_xmas_tree/gXmasDecor60DL_vtx_2 | 94 + .../object_xmas_tree/gXmasDecor60DL_vtx_3 | 202 + .../object_xmas_tree/gXmasDecor60DL_vtx_4 | 10 + .../object_xmas_tree/gXmasDecor60DL_vtx_5 | 10 + .../object_xmas_tree/gXmasDecor60DL_vtx_6 | 10 + .../object_xmas_tree/gXmasDecor60DL_vtx_7 | 6 + .../object_xmas_tree/gXmasDecor60DL_vtx_8 | 14 + .../object_xmas_tree/gXmasDecor60DL_vtx_9 | 6 + .../objects/object_xmas_tree/gXmasDecor70DL | 23 + .../object_xmas_tree/gXmasDecor70DL_tri_0 | 9 + .../object_xmas_tree/gXmasDecor70DL_tri_1 | 11 + .../object_xmas_tree/gXmasDecor70DL_tri_2 | 7 + .../object_xmas_tree/gXmasDecor70DL_tri_3 | 7 + .../object_xmas_tree/gXmasDecor70DL_tri_4 | 7 + .../object_xmas_tree/gXmasDecor70DL_tri_5 | 9 + .../object_xmas_tree/gXmasDecor70DL_tri_6 | 7 + .../object_xmas_tree/gXmasDecor70DL_vtx_0 | 10 + .../object_xmas_tree/gXmasDecor70DL_vtx_1 | 14 + .../object_xmas_tree/gXmasDecor70DL_vtx_2 | 6 + .../object_xmas_tree/gXmasDecor70DL_vtx_3 | 6 + .../object_xmas_tree/gXmasDecor70DL_vtx_4 | 6 + .../object_xmas_tree/gXmasDecor70DL_vtx_5 | 10 + .../object_xmas_tree/gXmasDecor70DL_vtx_6 | 6 + .../objects/object_xmas_tree/gXmasDecor80DL | 27 + .../object_xmas_tree/gXmasDecor80DL_tri_0 | 133 + .../object_xmas_tree/gXmasDecor80DL_tri_1 | 68 + .../object_xmas_tree/gXmasDecor80DL_tri_2 | 133 + .../object_xmas_tree/gXmasDecor80DL_tri_3 | 11 + .../object_xmas_tree/gXmasDecor80DL_tri_4 | 9 + .../object_xmas_tree/gXmasDecor80DL_tri_5 | 9 + .../object_xmas_tree/gXmasDecor80DL_tri_6 | 7 + .../object_xmas_tree/gXmasDecor80DL_tri_7 | 7 + .../object_xmas_tree/gXmasDecor80DL_tri_8 | 9 + .../object_xmas_tree/gXmasDecor80DL_vtx_0 | 202 + .../object_xmas_tree/gXmasDecor80DL_vtx_1 | 94 + .../object_xmas_tree/gXmasDecor80DL_vtx_2 | 202 + .../object_xmas_tree/gXmasDecor80DL_vtx_3 | 14 + .../object_xmas_tree/gXmasDecor80DL_vtx_4 | 10 + .../object_xmas_tree/gXmasDecor80DL_vtx_5 | 10 + .../object_xmas_tree/gXmasDecor80DL_vtx_6 | 6 + .../object_xmas_tree/gXmasDecor80DL_vtx_7 | 6 + .../object_xmas_tree/gXmasDecor80DL_vtx_8 | 10 + .../objects/object_xmas_tree/gXmasDecor90DL | 25 + .../object_xmas_tree/gXmasDecor90DL_tri_0 | 9 + .../object_xmas_tree/gXmasDecor90DL_tri_1 | 9 + .../object_xmas_tree/gXmasDecor90DL_tri_2 | 7 + .../object_xmas_tree/gXmasDecor90DL_tri_3 | 7 + .../object_xmas_tree/gXmasDecor90DL_tri_4 | 9 + .../object_xmas_tree/gXmasDecor90DL_tri_5 | 7 + .../object_xmas_tree/gXmasDecor90DL_tri_6 | 7 + .../object_xmas_tree/gXmasDecor90DL_tri_7 | 7 + .../object_xmas_tree/gXmasDecor90DL_vtx_0 | 10 + .../object_xmas_tree/gXmasDecor90DL_vtx_1 | 10 + .../object_xmas_tree/gXmasDecor90DL_vtx_2 | 6 + .../object_xmas_tree/gXmasDecor90DL_vtx_3 | 6 + .../object_xmas_tree/gXmasDecor90DL_vtx_4 | 10 + .../object_xmas_tree/gXmasDecor90DL_vtx_5 | 6 + .../object_xmas_tree/gXmasDecor90DL_vtx_6 | 6 + .../object_xmas_tree/gXmasDecor90DL_vtx_7 | 6 + .../objects/object_xmas_tree/gXmasStarDL | 13 + .../object_xmas_tree/gXmasStarDL_tri_0 | 7 + .../object_xmas_tree/gXmasStarDL_tri_1 | 390 ++ .../object_xmas_tree/gXmasStarDL_vtx_0 | 6 + .../object_xmas_tree/gXmasStarDL_vtx_1 | 347 ++ .../objects/object_xmas_tree/gXmasTreeDL | 15 + .../object_xmas_tree/gXmasTreeDL_tri_0 | 40 + .../object_xmas_tree/gXmasTreeDL_tri_1 | 133 + .../object_xmas_tree/gXmasTreeDL_tri_2 | 16 + .../object_xmas_tree/gXmasTreeDL_vtx_0 | 66 + .../object_xmas_tree/gXmasTreeDL_vtx_1 | 146 + .../object_xmas_tree/gXmasTreeDL_vtx_2 | 29 + .../objects/object_xmas_tree/hilite_melon | Bin 0 -> 2140 bytes .../mat_gXmasDecor100DL_f3dlite_Wrapping_B_64 | 21 + .../mat_gXmasDecor100DL_f3dlite_Wrapping_G_32 | 21 + .../mat_gXmasDecor100DL_f3dlite_Wrapping_R_32 | 21 + .../mat_gXmasDecor100DL_f3dlite_Wrapping_R_64 | 21 + .../mat_gXmasDecor10DL_f3dlite_Bauble1_B | 21 + .../mat_gXmasDecor10DL_f3dlite_Bauble1_G | 21 + .../mat_gXmasDecor10DL_f3dlite_Bauble1_R | 21 + .../mat_gXmasDecor10DL_f3dlite_Bauble2_B | 21 + .../mat_gXmasDecor10DL_f3dlite_Bauble2_G | 21 + .../mat_gXmasDecor10DL_f3dlite_Bauble2_R | 21 + .../mat_gXmasDecor10DL_f3dlite_Bauble3_G | 21 + .../mat_gXmasDecor10DL_f3dlite_Bauble3_R | 21 + .../mat_gXmasDecor20DL_f3dlite_Bauble1_B | 21 + .../mat_gXmasDecor20DL_f3dlite_Bauble1_R | 21 + .../mat_gXmasDecor20DL_f3dlite_Bauble2_B | 21 + .../mat_gXmasDecor20DL_f3dlite_Bauble2_G | 21 + .../mat_gXmasDecor20DL_f3dlite_Bauble2_R | 21 + .../mat_gXmasDecor20DL_f3dlite_Bauble3_B | 21 + .../mat_gXmasDecor20DL_f3dlite_Bauble3_G | 21 + .../mat_gXmasDecor20DL_f3dlite_Wrapping_B_32 | 21 + .../mat_gXmasDecor20DL_f3dlite_Wrapping_G_64 | 21 + .../mat_gXmasDecor20DL_f3dlite_Wrapping_R_32 | 21 + .../mat_gXmasDecor30DL_f3dlite_Bauble1_B | 21 + .../mat_gXmasDecor30DL_f3dlite_Bauble1_G | 21 + .../mat_gXmasDecor30DL_f3dlite_Bauble1_R | 21 + .../mat_gXmasDecor30DL_f3dlite_Bauble2_B | 21 + .../mat_gXmasDecor30DL_f3dlite_Bauble2_G | 21 + .../mat_gXmasDecor30DL_f3dlite_Bauble3_B | 21 + .../mat_gXmasDecor30DL_f3dlite_Bauble3_R | 21 + .../mat_gXmasDecor40DL_f3dlite_Bauble1_B | 21 + .../mat_gXmasDecor40DL_f3dlite_Bauble1_R | 21 + .../mat_gXmasDecor40DL_f3dlite_Bauble2_B | 21 + .../mat_gXmasDecor40DL_f3dlite_Bauble2_G | 21 + .../mat_gXmasDecor40DL_f3dlite_Bauble2_R | 21 + .../mat_gXmasDecor40DL_f3dlite_Bauble3_B | 21 + .../mat_gXmasDecor40DL_f3dlite_Bauble3_G | 21 + .../mat_gXmasDecor40DL_f3dlite_Bauble3_R | 21 + .../mat_gXmasDecor40DL_f3dlite_Wrapping_B_32 | 21 + .../mat_gXmasDecor40DL_f3dlite_Wrapping_G_32 | 21 + .../mat_gXmasDecor40DL_f3dlite_Wrapping_G_64 | 21 + .../mat_gXmasDecor40DL_f3dlite_Wrapping_R_32 | 21 + .../mat_gXmasDecor40DL_f3dlite_Wrapping_R_64 | 21 + .../mat_gXmasDecor50DL_f3dlite_Bauble1_B | 21 + .../mat_gXmasDecor50DL_f3dlite_Bauble1_G | 21 + .../mat_gXmasDecor50DL_f3dlite_Bauble2_G | 21 + .../mat_gXmasDecor50DL_f3dlite_Bauble2_R | 21 + .../mat_gXmasDecor50DL_f3dlite_Bauble3_B | 21 + .../mat_gXmasDecor50DL_f3dlite_Bauble3_R | 21 + .../mat_gXmasDecor60DL_f3dlite_Bauble1_B | 21 + .../mat_gXmasDecor60DL_f3dlite_Bauble1_G | 21 + .../mat_gXmasDecor60DL_f3dlite_Bauble1_R | 21 + .../mat_gXmasDecor60DL_f3dlite_Bauble2_G | 21 + .../mat_gXmasDecor60DL_f3dlite_Bauble2_R | 21 + .../mat_gXmasDecor60DL_f3dlite_Bauble3_G | 21 + .../mat_gXmasDecor60DL_f3dlite_Wrapping_B_64 | 21 + .../mat_gXmasDecor60DL_f3dlite_Wrapping_G_32 | 21 + .../mat_gXmasDecor60DL_f3dlite_Wrapping_R_32 | 21 + .../mat_gXmasDecor60DL_f3dlite_Wrapping_R_64 | 21 + .../mat_gXmasDecor70DL_f3dlite_Bauble1_G | 21 + .../mat_gXmasDecor70DL_f3dlite_Bauble1_R | 21 + .../mat_gXmasDecor70DL_f3dlite_Bauble2_G | 21 + .../mat_gXmasDecor70DL_f3dlite_Bauble2_R | 21 + .../mat_gXmasDecor70DL_f3dlite_Bauble3_B | 21 + .../mat_gXmasDecor70DL_f3dlite_Bauble3_G | 21 + .../mat_gXmasDecor70DL_f3dlite_Bauble3_R | 21 + .../mat_gXmasDecor80DL_f3dlite_Bauble1_B | 21 + .../mat_gXmasDecor80DL_f3dlite_Bauble1_R | 21 + .../mat_gXmasDecor80DL_f3dlite_Bauble2_G | 21 + .../mat_gXmasDecor80DL_f3dlite_Bauble3_B | 21 + .../mat_gXmasDecor80DL_f3dlite_Bauble3_G | 21 + .../mat_gXmasDecor80DL_f3dlite_Bauble3_R | 21 + .../mat_gXmasDecor80DL_f3dlite_Wrapping_B_32 | 21 + .../mat_gXmasDecor80DL_f3dlite_Wrapping_G_32 | 21 + .../mat_gXmasDecor80DL_f3dlite_Wrapping_R_32 | 21 + .../mat_gXmasDecor90DL_f3dlite_Bauble1_B | 21 + .../mat_gXmasDecor90DL_f3dlite_Bauble1_G | 21 + .../mat_gXmasDecor90DL_f3dlite_Bauble1_R | 21 + .../mat_gXmasDecor90DL_f3dlite_Bauble2_B | 21 + .../mat_gXmasDecor90DL_f3dlite_Bauble2_R | 21 + .../mat_gXmasDecor90DL_f3dlite_Bauble3_B | 21 + .../mat_gXmasDecor90DL_f3dlite_Bauble3_G | 21 + .../mat_gXmasDecor90DL_f3dlite_Bauble3_R | 21 + .../mat_gXmasStarDL_f3dlite_Glow | 21 + .../mat_gXmasStarDL_f3dlite_OrnamentGold | 21 + .../mat_gXmasTreeDL_f3dlite_TreeBrown | 21 + .../mat_gXmasTreeDL_f3dlite_TreeGreen | 21 + .../mat_gXmasTreeDL_f3dlite_TreeTip | 21 + .../gTriforcePiece.rgba32.png | Bin 1761 -> 984 bytes soh/assets/soh_assets.h | 69 + soh/soh/ActorDB.cpp | 53 + .../cosmetics/CosmeticsEditor.cpp | 34 +- .../game-interactor/GameInteractor.h | 1 + .../game-interactor/GameInteractor_State.cpp | 4 + soh/soh/Enhancements/mods.cpp | 83 + soh/soh/Enhancements/randomizer/item_list.cpp | 2 +- .../Enhancements/randomizer/randomizer.cpp | 70 +- soh/soh/Enhancements/randomizer/randomizer.h | 2 + .../randomizer/randomizer_item_tracker.cpp | 10 +- soh/soh/OTRGlobals.cpp | 26 +- soh/src/code/z_kankyo.c | 16 +- soh/src/code/z_parameter.c | 4 +- soh/src/code/z_play.c | 9 + soh/src/code/z_player_lib.c | 64 +- .../z_bg_spot08_iceblock.c | 8 +- .../actors/ovl_Boss_Dodongo/z_boss_dodongo.c | 16 + .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 16 + .../actors/ovl_Boss_Ganon2/z_boss_ganon2.c | 28 + .../ovl_Boss_Ganondrof/z_boss_ganondrof.c | 16 + soh/src/overlays/actors/ovl_En_Am/z_en_am.c | 16 + soh/src/overlays/actors/ovl_En_Ani/z_en_ani.c | 16 + soh/src/overlays/actors/ovl_En_Bb/z_en_bb.c | 15 + .../actors/ovl_En_Bom_Chu/z_en_bom_chu.c | 11 + .../ovl_En_ChristmasDeco/z_en_christmasdeco.c | 61 + .../ovl_En_ChristmasDeco/z_en_christmasdeco.h | 27 + .../ovl_En_ChristmasTree/z_en_christmastree.c | 213 + .../ovl_En_ChristmasTree/z_en_christmastree.h | 29 + soh/src/overlays/actors/ovl_En_Cs/z_en_cs.c | 16 + .../z_en_daiku_kakariko.c | 50 + .../actors/ovl_En_Dekubaba/z_en_dekubaba.c | 15 + soh/src/overlays/actors/ovl_En_Dns/z_en_dns.c | 21 +- .../actors/ovl_En_Dodongo/z_en_dodongo.c | 16 + soh/src/overlays/actors/ovl_En_Dog/z_en_dog.c | 14 + soh/src/overlays/actors/ovl_En_Ds/z_en_ds.c | 16 + soh/src/overlays/actors/ovl_En_Du/z_en_du.c | 15 + soh/src/overlays/actors/ovl_En_Elf/z_en_elf.c | 21 + soh/src/overlays/actors/ovl_En_Fu/z_en_fu.c | 15 + .../actors/ovl_En_Heishi4/z_en_heishi4.c | 23 +- soh/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c | 23 + soh/src/overlays/actors/ovl_En_Hy/z_en_hy.c | 121 + soh/src/overlays/actors/ovl_En_Ik/z_en_ik.c | 41 + soh/src/overlays/actors/ovl_En_In/z_en_in.c | 13 + soh/src/overlays/actors/ovl_En_Jj/z_en_jj.c | 23 +- soh/src/overlays/actors/ovl_En_Ko/z_en_ko.c | 6 + .../overlays/actors/ovl_En_Kusa/z_en_kusa.c | 7 + soh/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c | 16 + soh/src/overlays/actors/ovl_En_Niw/z_en_niw.c | 23 +- .../actors/ovl_En_Niw_Girl/z_en_niw_girl.c | 24 +- .../actors/ovl_En_Niw_Lady/z_en_niw_lady.c | 24 +- .../actors/ovl_En_Nutsball/z_en_nutsball.c | 42 +- .../overlays/actors/ovl_En_Okuta/z_en_okuta.c | 39 +- .../overlays/actors/ovl_En_Ossan/z_en_ossan.c | 89 +- .../actors/ovl_En_Po_Relay/z_en_po_relay.c | 13 + .../actors/ovl_En_Shopnuts/z_en_shopnuts.c | 13 + soh/src/overlays/actors/ovl_En_Skb/z_en_skb.c | 14 + .../actors/ovl_En_Snowball/z_en_snowball.c | 229 + .../actors/ovl_En_Snowball/z_en_snowball.h | 31 + soh/src/overlays/actors/ovl_En_Sth/z_en_sth.c | 14 + .../ovl_En_Syateki_Man/z_en_syateki_man.c | 22 +- soh/src/overlays/actors/ovl_En_Ta/z_en_ta.c | 13 + .../overlays/actors/ovl_En_Test/z_en_test.c | 13 + soh/src/overlays/actors/ovl_En_Tg/z_en_tg.c | 24 + soh/src/overlays/actors/ovl_En_Tk/z_en_tk.c | 13 + .../overlays/actors/ovl_En_Toryo/z_en_toryo.c | 19 + soh/src/overlays/actors/ovl_En_Vm/z_en_vm.c | 13 + .../ovl_En_Weather_Tag/z_en_weather_tag.c | 5 + soh/src/overlays/actors/ovl_En_Wf/z_en_wf.c | 14 + .../actors/ovl_En_Wood02/z_en_wood02.c | 30 +- .../actors/ovl_End_Title/z_end_title.c | 88 +- .../ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c | 23 +- 543 files changed, 28226 insertions(+), 449 deletions(-) create mode 100644 soh/assets/custom/objects/object_festivehats/antlers_64 create mode 100644 soh/assets/custom/objects/object_festivehats/gCuccoLadyHatDL create mode 100644 soh/assets/custom/objects/object_festivehats/gCuccoLadyHatDL_tri_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gCuccoLadyHatDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL create mode 100644 soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL_tri_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL_tri_1 create mode 100644 soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL_vtx_1 create mode 100644 soh/assets/custom/objects/object_festivehats/gHorseAntlersDL create mode 100644 soh/assets/custom/objects/object_festivehats/gHorseAntlersDL_tri_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gHorseAntlersDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gLinkAdultHatTrimDL create mode 100644 soh/assets/custom/objects/object_festivehats/gLinkAdultHatTrimDL_tri_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gLinkAdultHatTrimDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gLinkAdultPompomDL create mode 100644 soh/assets/custom/objects/object_festivehats/gLinkAdultPompomDL_tri_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gLinkAdultPompomDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gLinkChildHatTrimDL create mode 100644 soh/assets/custom/objects/object_festivehats/gLinkChildHatTrimDL_tri_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gLinkChildHatTrimDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gLinkChildPompomDL create mode 100644 soh/assets/custom/objects/object_festivehats/gLinkChildPompomDL_tri_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gLinkChildPompomDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gPaperCrownGenericDL create mode 100644 soh/assets/custom/objects/object_festivehats/gPaperCrownGenericDL_tri_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gPaperCrownGenericDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL create mode 100644 soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL_tri_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL_tri_1 create mode 100644 soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL_vtx_1 create mode 100644 soh/assets/custom/objects/object_festivehats/hilite_nose create mode 100644 soh/assets/custom/objects/object_festivehats/mat_gCuccoLadyHatDL_f3dlite_hatcolour create mode 100644 soh/assets/custom/objects/object_festivehats/mat_gEponaRudolphHatDL_f3dlite_antlers create mode 100644 soh/assets/custom/objects/object_festivehats/mat_gEponaRudolphHatDL_f3dlite_rednose create mode 100644 soh/assets/custom/objects/object_festivehats/mat_gHorseAntlersDL_f3dlite_antlers create mode 100644 soh/assets/custom/objects/object_festivehats/mat_gLinkAdultHatTrimDL_f3dlite_santahat_white create mode 100644 soh/assets/custom/objects/object_festivehats/mat_gLinkAdultPompomDL_f3dlite_santahat_white create mode 100644 soh/assets/custom/objects/object_festivehats/mat_gLinkChildHatTrimDL_f3dlite_santahat_white create mode 100644 soh/assets/custom/objects/object_festivehats/mat_gLinkChildPompomDL_f3dlite_santahat_white create mode 100644 soh/assets/custom/objects/object_festivehats/mat_gPaperCrownGenericDL_f3dlite_crown create mode 100644 soh/assets/custom/objects/object_festivehats/mat_gSantaHatGenericDL_f3dlite_santahatred create mode 100644 soh/assets/custom/objects/object_festivehats/mat_gSantaHatGenericDL_f3dlite_santahatwhite create mode 100644 soh/assets/custom/objects/object_kakariko_decor/CuccoBedding_32 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/SnowBlanket_32 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/SnowBuildup_32 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/SnowDissolve_32 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/String_BYBY_32 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/String_GRGR_32 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/UsagiLeaf_8 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/YukiUsagi_16 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_tri_0 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_tri_1 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_vtx_1 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_vtx_cull create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_tri_0 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_tri_1 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_tri_2 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_vtx_1 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_vtx_2 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoChildDecorDL_vtx_cull create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_0 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_1 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_2 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_3 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_4 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_5 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_6 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_7 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_1 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_2 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_3 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_4 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_5 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_6 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_7 create mode 100644 soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_cull create mode 100644 soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoAdultDecorDL_f3dlite_StringGRGR create mode 100644 soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoAdultDecorDL_f3dlite_snowlayer create mode 100644 soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoChildDecorDL_f3dlite_SnowBuildup create mode 100644 soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoChildDecorDL_f3dlite_UsagiLeaf create mode 100644 soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoChildDecorDL_f3dlite_YukiUsagiBody create mode 100644 soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_CuccoBedding create mode 100644 soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_SnowBuildup create mode 100644 soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_StringBYBY create mode 100644 soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_StringGRGR create mode 100644 soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_UsagiLeaf create mode 100644 soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_YukiUsagiBody create mode 100644 soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_snowdissolve create mode 100644 soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoDecorDL_f3dlite_snowlayer create mode 100644 soh/assets/custom/objects/object_penguin/mat_object_penguin_DL_beak create mode 100644 soh/assets/custom/objects/object_penguin/mat_object_penguin_DL_eye create mode 100644 soh/assets/custom/objects/object_penguin/mat_object_penguin_DL_skin create mode 100644 soh/assets/custom/objects/object_penguin/object_penguin_DL create mode 100644 soh/assets/custom/objects/object_penguin/object_penguin_DL_tri_0 create mode 100644 soh/assets/custom/objects/object_penguin/object_penguin_DL_tri_1 create mode 100644 soh/assets/custom/objects/object_penguin/object_penguin_DL_tri_2 create mode 100644 soh/assets/custom/objects/object_penguin/object_penguin_DL_vtx_0 create mode 100644 soh/assets/custom/objects/object_penguin/object_penguin_DL_vtx_1 create mode 100644 soh/assets/custom/objects/object_penguin/object_penguin_DL_vtx_2 create mode 100644 soh/assets/custom/objects/object_penguin/ping_eye create mode 100644 soh/assets/custom/objects/object_penguin/ping_tex create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/SnowBlanket_32 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/SnowBuildup_32 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/String_BYBY_32 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/String_GRGR_32 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_0 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_1 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_2 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_3 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_4 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_5 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_6 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_7 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_8 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_1 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_2 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_3 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_4 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_5 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_6 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_7 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_8 create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_cull create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/ice create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_SnowBuildup create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_StringBYBY create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_StringGRGR create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_gift_col_blue_material create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_gift_col_green_material create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_gift_col_red_material create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_gift_col_yellow_material create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_ice_material create mode 100644 soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_snowlayer create mode 100644 soh/assets/custom/objects/object_triforce_completed/GlowAlpha_64 create mode 100644 soh/assets/custom/objects/object_triforce_completed/hilite_melon create mode 100644 soh/assets/custom/objects/object_triforce_completed/mat_gTriforcePieceCompletedDL_f3dlite_Glow create mode 100644 soh/assets/custom/objects/object_triforce_completed/mat_gTriforcePieceCompletedDL_f3dlite_OrnamentGold create mode 100644 soh/assets/custom/objects/object_triforce_piece_0/image create mode 100644 soh/assets/custom/objects/object_triforce_piece_0/mat_gTriforcePiece0DL_ball create mode 100644 soh/assets/custom/objects/object_triforce_piece_0/mat_gTriforcePiece0DL_silver create mode 100644 soh/assets/custom/objects/object_triforce_piece_1/image create mode 100644 soh/assets/custom/objects/object_triforce_piece_1/image_copy create mode 100644 soh/assets/custom/objects/object_triforce_piece_1/mat_gTriforcePiece1DL_blue_mat create mode 100644 soh/assets/custom/objects/object_triforce_piece_1/mat_gTriforcePiece1DL_silver_002 create mode 100644 soh/assets/custom/objects/object_triforce_piece_2/image create mode 100644 soh/assets/custom/objects/object_triforce_piece_2/image_copy create mode 100644 soh/assets/custom/objects/object_triforce_piece_2/mat_gTriforcePiece2DL_Green_mat create mode 100644 soh/assets/custom/objects/object_triforce_piece_2/mat_gTriforcePiece2DL_silver_001 create mode 100644 soh/assets/custom/objects/object_xmas_tree/Bark_64 create mode 100644 soh/assets/custom/objects/object_xmas_tree/Bauble1Tex_B_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/Bauble1Tex_G_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/Bauble1Tex_R_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/Bauble2Tex_B_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/Bauble2Tex_G_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/Bauble2Tex_R_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/Bauble3Tex_B_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/Bauble3Tex_G_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/Bauble3Tex_R_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/GlowAlpha_64 create mode 100644 soh/assets/custom/objects/object_xmas_tree/LeavesAlpha_64 create mode 100644 soh/assets/custom/objects/object_xmas_tree/LeavesAlpha_shaded_64 create mode 100644 soh/assets/custom/objects/object_xmas_tree/Wrapping_B_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/Wrapping_B_64 create mode 100644 soh/assets/custom/objects/object_xmas_tree/Wrapping_G_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/Wrapping_G_64 create mode 100644 soh/assets/custom/objects/object_xmas_tree/Wrapping_R_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/Wrapping_R_64 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_tri_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_tri_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_tri_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_tri_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_vtx_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_vtx_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_vtx_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_vtx_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_6 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_7 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_6 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_7 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_6 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_7 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_8 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_9 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_6 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_7 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_8 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_9 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_6 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_6 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_10 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_11 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_12 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_6 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_7 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_8 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_9 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_10 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_11 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_12 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_6 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_7 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_8 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_9 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_6 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_7 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_8 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_9 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_6 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_7 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_8 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_9 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_6 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_6 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_6 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_7 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_8 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_6 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_7 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_8 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_6 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_7 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_3 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_4 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_5 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_6 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_7 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasStarDL create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasStarDL_tri_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasStarDL_tri_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasStarDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasStarDL_vtx_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_tri_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_tri_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_tri_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_vtx_1 create mode 100644 soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_vtx_2 create mode 100644 soh/assets/custom/objects/object_xmas_tree/hilite_melon create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor100DL_f3dlite_Wrapping_B_64 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor100DL_f3dlite_Wrapping_G_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor100DL_f3dlite_Wrapping_R_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor100DL_f3dlite_Wrapping_R_64 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble1_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble1_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble1_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble2_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble2_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble2_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble3_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble3_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble1_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble1_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble2_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble2_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble2_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble3_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble3_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Wrapping_B_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Wrapping_G_64 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Wrapping_R_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble1_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble1_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble1_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble2_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble2_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble3_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble3_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble1_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble1_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble2_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble2_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble2_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble3_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble3_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble3_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_B_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_G_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_G_64 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_R_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_R_64 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble1_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble1_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble2_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble2_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble3_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble3_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble1_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble1_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble1_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble2_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble2_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble3_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Wrapping_B_64 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Wrapping_G_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Wrapping_R_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Wrapping_R_64 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble1_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble1_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble2_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble2_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble3_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble3_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble3_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble1_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble1_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble2_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble3_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble3_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble3_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Wrapping_B_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Wrapping_G_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Wrapping_R_32 create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble1_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble1_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble1_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble2_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble2_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble3_B create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble3_G create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble3_R create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasStarDL_f3dlite_Glow create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasStarDL_f3dlite_OrnamentGold create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasTreeDL_f3dlite_TreeBrown create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasTreeDL_f3dlite_TreeGreen create mode 100644 soh/assets/custom/objects/object_xmas_tree/mat_gXmasTreeDL_f3dlite_TreeTip create mode 100644 soh/src/overlays/actors/ovl_En_ChristmasDeco/z_en_christmasdeco.c create mode 100644 soh/src/overlays/actors/ovl_En_ChristmasDeco/z_en_christmasdeco.h create mode 100644 soh/src/overlays/actors/ovl_En_ChristmasTree/z_en_christmastree.c create mode 100644 soh/src/overlays/actors/ovl_En_ChristmasTree/z_en_christmastree.h create mode 100644 soh/src/overlays/actors/ovl_En_Snowball/z_en_snowball.c create mode 100644 soh/src/overlays/actors/ovl_En_Snowball/z_en_snowball.h diff --git a/soh/assets/custom/objects/object_festivehats/antlers_64 b/soh/assets/custom/objects/object_festivehats/antlers_64 new file mode 100644 index 0000000000000000000000000000000000000000..74fe9e819778ed087b2349a2f182207604661271 GIT binary patch literal 8284 zcmeHMJ!{)Q7?vuMsDy$bi${&h=4|RzU0j3GB5IWudZWi=)Tk+!5JJdc3jG`X3xy+u zlBE!`_b>D>^nG+bTZ$w*N}Y3uNH~&CclW&ayq~97mSueze)?e3_0Ny*zwx8n2Olq} zXEgn(LC0?_i+;X(dj9*&z%v8S4E&!AxP!fobeP()41|RcXz+0N+2zSy_MSVj>@kDD z1(g3Yzs;ofop1; zv4LQ=c7+;CoGIbE1{Ba^#Q2Q+SVl5nF8Q5n(drHO-$<6xLji1a$DDiEeJstQTUK0J zJ$DXovLs8=3wPfP13jj>uUshtnX&w6wt9HmNQS~^9t#Al&;$c>%OA=9{cQ8(cIeI6 z$I4Btw~FCU@l!jJu2X$y;z{|Q%62X`Ert&j^|5-N8HO(4LIJNE$w-*Va`)F5N{w$i z>M2PSK74&W>sR_Ge2O~vxiRsq{15u4N_QOx#av~7>xe#BFtQ)~&rGzhQ>-l@mi2cg zT3q6vQ{Azy2&6PX7PyxD1BT%P$N-dq?8S`ti>hGto(daW#(-<_bK02|{<3OYRZ##@ zs67hsi#$;k5L4zm6R*y4S=Crw4}yhKM#3C~ zAIYPaUDks+3;Y2e)@5sM(Htl}=vV{)puOQ0c<Uq;4#+)`0I7Fv&kU(CN7-bYo>h*rA)>aQxl z0|{{nR;f?a(&`K9>QT!xhC=0c%8Vis6qyOtbErbw51+z(-8(Qk8W@S=2uy hKZxZ#+Ar$+6z>pc$ik + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gCuccoLadyHatDL_tri_0 b/soh/assets/custom/objects/object_festivehats/gCuccoLadyHatDL_tri_0 new file mode 100644 index 000000000..980452845 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gCuccoLadyHatDL_tri_0 @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gCuccoLadyHatDL_vtx_0 b/soh/assets/custom/objects/object_festivehats/gCuccoLadyHatDL_vtx_0 new file mode 100644 index 000000000..8a64cdf18 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gCuccoLadyHatDL_vtx_0 @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL b/soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL new file mode 100644 index 000000000..6d059179f --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL_tri_0 b/soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL_tri_0 new file mode 100644 index 000000000..3e0ab2ad8 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL_tri_0 @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL_tri_1 b/soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL_tri_1 new file mode 100644 index 000000000..99f0a799d --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL_tri_1 @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL_vtx_0 b/soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL_vtx_0 new file mode 100644 index 000000000..ebb2b0eea --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL_vtx_0 @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL_vtx_1 b/soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL_vtx_1 new file mode 100644 index 000000000..d7263bc94 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gEponaRudolphHatDL_vtx_1 @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gHorseAntlersDL b/soh/assets/custom/objects/object_festivehats/gHorseAntlersDL new file mode 100644 index 000000000..2b2ee6c3e --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gHorseAntlersDL @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gHorseAntlersDL_tri_0 b/soh/assets/custom/objects/object_festivehats/gHorseAntlersDL_tri_0 new file mode 100644 index 000000000..543e90c1f --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gHorseAntlersDL_tri_0 @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gHorseAntlersDL_vtx_0 b/soh/assets/custom/objects/object_festivehats/gHorseAntlersDL_vtx_0 new file mode 100644 index 000000000..d7263bc94 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gHorseAntlersDL_vtx_0 @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gLinkAdultHatTrimDL b/soh/assets/custom/objects/object_festivehats/gLinkAdultHatTrimDL new file mode 100644 index 000000000..27bdd9211 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gLinkAdultHatTrimDL @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gLinkAdultHatTrimDL_tri_0 b/soh/assets/custom/objects/object_festivehats/gLinkAdultHatTrimDL_tri_0 new file mode 100644 index 000000000..313f489de --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gLinkAdultHatTrimDL_tri_0 @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gLinkAdultHatTrimDL_vtx_0 b/soh/assets/custom/objects/object_festivehats/gLinkAdultHatTrimDL_vtx_0 new file mode 100644 index 000000000..eb7d042ff --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gLinkAdultHatTrimDL_vtx_0 @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gLinkAdultPompomDL b/soh/assets/custom/objects/object_festivehats/gLinkAdultPompomDL new file mode 100644 index 000000000..6f7262451 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gLinkAdultPompomDL @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gLinkAdultPompomDL_tri_0 b/soh/assets/custom/objects/object_festivehats/gLinkAdultPompomDL_tri_0 new file mode 100644 index 000000000..83cf6d929 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gLinkAdultPompomDL_tri_0 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gLinkAdultPompomDL_vtx_0 b/soh/assets/custom/objects/object_festivehats/gLinkAdultPompomDL_vtx_0 new file mode 100644 index 000000000..b937dad3e --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gLinkAdultPompomDL_vtx_0 @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gLinkChildHatTrimDL b/soh/assets/custom/objects/object_festivehats/gLinkChildHatTrimDL new file mode 100644 index 000000000..769a41928 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gLinkChildHatTrimDL @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gLinkChildHatTrimDL_tri_0 b/soh/assets/custom/objects/object_festivehats/gLinkChildHatTrimDL_tri_0 new file mode 100644 index 000000000..776fb4da9 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gLinkChildHatTrimDL_tri_0 @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gLinkChildHatTrimDL_vtx_0 b/soh/assets/custom/objects/object_festivehats/gLinkChildHatTrimDL_vtx_0 new file mode 100644 index 000000000..847f1ae81 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gLinkChildHatTrimDL_vtx_0 @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gLinkChildPompomDL b/soh/assets/custom/objects/object_festivehats/gLinkChildPompomDL new file mode 100644 index 000000000..4093e1aa3 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gLinkChildPompomDL @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gLinkChildPompomDL_tri_0 b/soh/assets/custom/objects/object_festivehats/gLinkChildPompomDL_tri_0 new file mode 100644 index 000000000..4f18af8bf --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gLinkChildPompomDL_tri_0 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gLinkChildPompomDL_vtx_0 b/soh/assets/custom/objects/object_festivehats/gLinkChildPompomDL_vtx_0 new file mode 100644 index 000000000..b0c371f13 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gLinkChildPompomDL_vtx_0 @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gPaperCrownGenericDL b/soh/assets/custom/objects/object_festivehats/gPaperCrownGenericDL new file mode 100644 index 000000000..ec6ccada7 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gPaperCrownGenericDL @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gPaperCrownGenericDL_tri_0 b/soh/assets/custom/objects/object_festivehats/gPaperCrownGenericDL_tri_0 new file mode 100644 index 000000000..672602bc1 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gPaperCrownGenericDL_tri_0 @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gPaperCrownGenericDL_vtx_0 b/soh/assets/custom/objects/object_festivehats/gPaperCrownGenericDL_vtx_0 new file mode 100644 index 000000000..c7a513a67 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gPaperCrownGenericDL_vtx_0 @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL b/soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL new file mode 100644 index 000000000..0f4573976 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL_tri_0 b/soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL_tri_0 new file mode 100644 index 000000000..5396ff4d8 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL_tri_0 @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL_tri_1 b/soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL_tri_1 new file mode 100644 index 000000000..bdf895c49 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL_tri_1 @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL_vtx_0 b/soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL_vtx_0 new file mode 100644 index 000000000..145ca70f4 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL_vtx_0 @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL_vtx_1 b/soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL_vtx_1 new file mode 100644 index 000000000..7f90daac7 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/gSantaHatGenericDL_vtx_1 @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/hilite_nose b/soh/assets/custom/objects/object_festivehats/hilite_nose new file mode 100644 index 0000000000000000000000000000000000000000..b2d4623c9c75b53b1e47287bb401e9a548bf9b42 GIT binary patch literal 2140 zcma)+A(P`c5QVdc_Ai8OV4$JVqQh4;bzo}(4Gj%N76cl4m;(g`1-;NP(8FvfC@7fC zS8r8HX2`nBW!cv2e*L=DyWMX0zF{dKqV z&O6t-cCg*0J(+C`Q@nPIzjkw_Kivx7YXA_hw(LyNu!5g*w!8 z)i>>_yUbNIebYCCb?xFqy?F1;*6jIbHsZIZf@ftmSVXfXSoF=B21~|x1${o?%^tH2 zmOPq0Tx8AOyHKYo)b?n$!FqS?qQN7~UF+Qxv(42My&D5ePyjv2j(FL_;?u->@t_M* zno|cVwD@S!bh}?^VkbJV>Knd>IvVc^ey%cl@l~Qw6aHn@v5i z_=44n3X8$*hMy@?!Hg$9MmF@u6ve%GiROGjH*zO?bk6v!0Z$Zz*~biSH*}2#_Gy|c z>NW-x77ESO+4hLFkgAP}4nPPyasm4gDjeI%*7| zF4?mRwb|%j)svp1`qE5U4^}7Wd>HItKV}f>?viW3e{wIXtJAs*J>OmU?;UEDYfYR$ zI_KJD{B!)i$#~`VSc5cq_xcW=4y8_*Do1QoH=E`}cTonMQ6|8e=4uR_aZ~}%bm8R7 zi_kebrX;1!$N!9YCts!0Y) z-e8dV=lE;N@r9QMPCS3agUIrL2E=|uXMD~82Et`L8a(2~{+YkLfD{T13ZCro@W>wy znU}naF|qmnj8`3`9vxMt7+$iU96O_xhrFwkayRA)C>90(82gbwKGXpjp|~ZscF2>s eKjIZHcfjY|#V)J%j4!CdK6epM`Bs(%snu`&vxx5i literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_festivehats/mat_gCuccoLadyHatDL_f3dlite_hatcolour b/soh/assets/custom/objects/object_festivehats/mat_gCuccoLadyHatDL_f3dlite_hatcolour new file mode 100644 index 000000000..d1d036f89 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/mat_gCuccoLadyHatDL_f3dlite_hatcolour @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/mat_gEponaRudolphHatDL_f3dlite_antlers b/soh/assets/custom/objects/object_festivehats/mat_gEponaRudolphHatDL_f3dlite_antlers new file mode 100644 index 000000000..3717c72b2 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/mat_gEponaRudolphHatDL_f3dlite_antlers @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/mat_gEponaRudolphHatDL_f3dlite_rednose b/soh/assets/custom/objects/object_festivehats/mat_gEponaRudolphHatDL_f3dlite_rednose new file mode 100644 index 000000000..758d8698b --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/mat_gEponaRudolphHatDL_f3dlite_rednose @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/mat_gHorseAntlersDL_f3dlite_antlers b/soh/assets/custom/objects/object_festivehats/mat_gHorseAntlersDL_f3dlite_antlers new file mode 100644 index 000000000..3717c72b2 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/mat_gHorseAntlersDL_f3dlite_antlers @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/mat_gLinkAdultHatTrimDL_f3dlite_santahat_white b/soh/assets/custom/objects/object_festivehats/mat_gLinkAdultHatTrimDL_f3dlite_santahat_white new file mode 100644 index 000000000..2f72783f7 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/mat_gLinkAdultHatTrimDL_f3dlite_santahat_white @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/mat_gLinkAdultPompomDL_f3dlite_santahat_white b/soh/assets/custom/objects/object_festivehats/mat_gLinkAdultPompomDL_f3dlite_santahat_white new file mode 100644 index 000000000..2f72783f7 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/mat_gLinkAdultPompomDL_f3dlite_santahat_white @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/mat_gLinkChildHatTrimDL_f3dlite_santahat_white b/soh/assets/custom/objects/object_festivehats/mat_gLinkChildHatTrimDL_f3dlite_santahat_white new file mode 100644 index 000000000..2f72783f7 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/mat_gLinkChildHatTrimDL_f3dlite_santahat_white @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/mat_gLinkChildPompomDL_f3dlite_santahat_white b/soh/assets/custom/objects/object_festivehats/mat_gLinkChildPompomDL_f3dlite_santahat_white new file mode 100644 index 000000000..2f72783f7 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/mat_gLinkChildPompomDL_f3dlite_santahat_white @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/mat_gPaperCrownGenericDL_f3dlite_crown b/soh/assets/custom/objects/object_festivehats/mat_gPaperCrownGenericDL_f3dlite_crown new file mode 100644 index 000000000..4fb4e2029 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/mat_gPaperCrownGenericDL_f3dlite_crown @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/mat_gSantaHatGenericDL_f3dlite_santahatred b/soh/assets/custom/objects/object_festivehats/mat_gSantaHatGenericDL_f3dlite_santahatred new file mode 100644 index 000000000..b42644ae8 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/mat_gSantaHatGenericDL_f3dlite_santahatred @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_festivehats/mat_gSantaHatGenericDL_f3dlite_santahatwhite b/soh/assets/custom/objects/object_festivehats/mat_gSantaHatGenericDL_f3dlite_santahatwhite new file mode 100644 index 000000000..2f72783f7 --- /dev/null +++ b/soh/assets/custom/objects/object_festivehats/mat_gSantaHatGenericDL_f3dlite_santahatwhite @@ -0,0 +1,12 @@ + + + + + + + + + + + + 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 0000000000000000000000000000000000000000..68187fbf5f4ebad4d955b9855ee047253e07957e GIT binary patch literal 2140 zcma)7QD`Dd7R~P04nr7%NLECgAQHk5!h9?tUrQb=kLe*u+7;Ipk#quZ72u9)j3GBprez5{4j;5afM4dav`|{%=clOIOvs zx6e8E)XdDx%-{a<*VymiIsOlGrvv`}-`DS9<;&m3ubY1O^UMs4Kg`Tb1g-LIy>xa{ zDAJHwGpi(H1W-cnv#_XJwZbJ%poAO~*+N(E)2h9%_t6}g7pLye4tMrPtLGzYsQ2|U z37A(_!+wQJMo^k1TeMc_i2x6pCH)x3&C+=v`FO-$K}nKP4@kgXp>^>v5sr3#&v*5K zvu8DVPPA}p?Zf(k+QVgfV~s?Xrq1t;K>o{l1s{=2XW0n7{;>WTC7nGIBxz6F{bW|1 z6>$oCbF_w2`oIXz6d+?D8=3MU3%DD~!?WFbq5E$~z8-hMUtgv&U= zqBINDgm{>y**)@^o)5FhYUATOnUBlqRv1UnvaA4 z(XgsWCEI3E(F6=@o@Wllsd6~guQZDi zM!?xa2~h4=Bj{-QWub31<(SiU+PJKC)eBnV+mHj40c%6_#PeWoPw$I+7C{M=q{F*M zsC$UZ)<``tPe@uH=vPLTMN!fm8iDU-kzX&-Ym!xurd)WQy~iTr)Py%|hh*Khy(}Nn zTi#${*ncBER}PJ^c}oE+9M}7WfqH=w&PVZ}9H~9cKYk}#dMSU7i}Z@5`EDbs7S-Np zRWzWQ1S;WUQX|{?mGYJZCiWXn6qi5IBtlo3~r4L4{M!2!44*&tsAL!>=IRp+ijS$Jun%cd40!1fS zEqm_U!Z?auQ1Fk56% zec(R1PvWZ-6JMP@dR^#4zEgR_NPC|9#G;LexaUo05626A&A0x~_0Q1d^|c?hr29B! zRP#GOStDFVzHjlJ$aVa&UabZCP=k5=s! zTrqEG1s@whnzkCWqL(@=EC&b-J+BdEQCxZ-G_nx8Tjoc;vB|QUAd!b&)ZxK{6RkIOPinMM{e?ub+ z3Te?gNkN1geIS8)jezIzZ8A^NXG4-jo491JnAdN9T>GFFSyc0@#XP8$Y@yU0pvS^| z8@zDKj@Xg&A*}s)HUR!I`la5J-$F;8Y6(1`NzE@8l_PU#JwWdqBR_977I{vN8S^A* zgaCsw&#-S=Qx2!~qfL6!2!ms1rkduvJV&c)7nchIvL%DA%xe_4UkShs#nm1-=(XN0 z^vp6%;v>(ab+zbzv==oW^w9-Mf!p5W5_of;E#fkCWd!>3+Z+4u)=1uf2noHn?FYpi zYIB}lqr`Pk0+9|G0VexS^1+Gjbv{rrMx}A zzTCmDpC4cRF#YqmN91Gs1bTle1>Zv{mu_s`%8Tu?!Zz61IN!~YL=yksLHsEDh%@4i z&Kz+%!gHTdtlZVFdvNC3H%}((Wq}35Sr5b&Cz%`g`5Q)#yq{C`cy-!)%pdrSin(L^ zdR;g3FUTMI0;yTX8>POncG>v$5jn#^#SG@6H<$b|tJlJxsS6F`-t9Hd*9G==qr=#3aDANYkmhV|#He&y}9JC*|O(dr$* z^W6AjmlVSaX{xazCacwInaHqRzE=ccwn7aizjbd)7*pybff{+S`lF zP;(0tXwH~DW5n3U{I(+Abt~?6{v4q$928IyzR|Eo`@??_daQ^nJrgl}nc&d{&9cek!ADPO65L31lj+IQLkd0n^8zBBwh zX2e$1Ou6bx)l&5rrdQ{S!s?{trV4x%)RmD}(gl0!Rvx$d;m4e@cR{uTs?Yx8F^i4w=W7XHbCe?Mzt5W*D?%nx# z&oP$ni+m`09@;CaGMm`s?+8V$FTHIX^uyl)V+>QXh%73b7sTW*+x4e5$MFZhfahxN<%vMpdYI(P5Ewa6>V3E8Fs@9Z1?F{rn9HStle zwn}$$NNy-mO^OpKErOpmEgYQ;{@(uqrrzaXPC1|5vnO|$QI2s$&Ji#7n$=lGcpfK= z(Q?XS&kvP)>_K^Qal`qJhf?C>jL~B~mH@(Plg&Q)aF6G~YN(9Z$FcsnCphck68AA?6ZQZ?<`=fWq2XlioO@=*S+6+p2b_cVk zKr8aBxbq(TqYKA?ph(r-U1oDX OKUUq8@~*UhQuqRir{)a+ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..62efcb10a3693916401a5af6c089a01f95faf024 GIT binary patch literal 2140 zcmbtUO=uHQ5T3V-?WR3R5gVjn2%#)hG#iS&@wc()R#x3IKJh(Xh7~$BkoG)9cf+^Wg?c-Rc$T+FSNY za(*NK9(nY|z^YkxbeF{5i1punGN_q`5DPxEm-}a+R|)^%$^YCz-Q=b=zq3sC#X^ey z@Qn-)=5JM_j75(=q`;(_i+><{0F~!g; z&mh8;xEDYIK9@sR_qYk-=ua)D<-`<3_yK;9n*tJFFSA=P`ByGNFb)wx6;z0T1km&l z)2om7=Qgl293LGjD+JddjAI-oT2}l3Ky=qw6u%C=Oa%_^FcvM{xpe}r;JAu-jNTF| zQ#tF;ilZgi8TQd%9Xv=FHv~7@Xv8YzwQ8`kXB`-e=s_9rxg1z7+|i12(MlCMZ7+?|Ir60{KwZ9X)SuyCbakf-86fI+>PoV)KGfS*T5_K=0#wzFdpY`XQ zvBz9|*u*Mt3YFP+YMnZ+w_#jR6ZQL(ZjZRORH^KBjUPiK8=fl1Dt*-@Ucw#=Vx5m6 z{zR}&l=AAyvC~FE9P6@>H+y;^OQ_Nb=Fzb(^Yj?gSldag5|2%fTPo{?M4?B}DRU}Y K+oxXiargsgG<&B2 literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_kakariko_decor/String_GRGR_32 b/soh/assets/custom/objects/object_kakariko_decor/String_GRGR_32 new file mode 100644 index 0000000000000000000000000000000000000000..b905f21a9a682561bf5a4998f178fdc0e8a7e852 GIT binary patch literal 2140 zcmbtUO-NKx6h8O;T>ofVNYE^bL=4;*Zi;D9@A5DgmW4@4f&@btxRhw&#s@`&N(v1s zXa*vLl$lQ3i|PIJzGEr%*R;dUX_S;%D$?;c z?O}iSWcVZUD2suaG;Lpu=LzKx>u8>-QbObiUDTJJG7mA@o zDD&tZoieHcWFzQPiTm-+Nt}#KjKZCz7&4=T5+$OtoR>@ie6e6(`w8#+Zqbto|ZdL5%{6N67@i z6X={Q5eM&Nz`Bawup||hfdTP*L&57~-QN%AA0=Uv!lK)>=qnZ*CQ>Ga1+nc}&^M7i5Tm+T5XH0m0g2z~? V!kCjR944?&PVzd=&XL1uleEA0!9jG511bAv~tj5Lpn9=`=GCLu8dbVKN{-kjDw4VE_Q? CR36;` literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2034627ff95af74e080c6e61a6fb128d95cd7f91 GIT binary patch literal 604 zcma)(F%rTc5JkZg$ce11Z7jS=N-T33YddLEa{x*yDJj?eyJ04A3x(ML`~LsQ5a*n` zov#M-hxZdHs)kPo&N&b*e)hd!Pi5+O8)ZJsiF_0e&Ub- literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL new file mode 100644 index 000000000..13d9447f7 --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + 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/gKakarikoAdultDecorDL_tri_1 b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_tri_1 new file mode 100644 index 000000000..2aff9496e --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoAdultDecorDL_tri_1 @@ -0,0 +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 new file mode 100644 index 000000000..f0363d242 --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..5ee2633e5 --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_0 @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..2b52e5ef3 --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_1 @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..d6f5dbafe --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_2 @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..f66ba5914 --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_tri_3 @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + 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_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 new file mode 100644 index 000000000..c0a07802c --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_0 @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..c7615dd3b --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_1 @@ -0,0 +1,770 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..3ff9d2e43 --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_2 @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..b0e49797a --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/gKakarikoDecorDL_vtx_3 @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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_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 new file mode 100644 index 000000000..a183da293 --- /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_gKakarikoAdultDecorDL_f3dlite_StringGRGR b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoAdultDecorDL_f3dlite_StringGRGR new file mode 100644 index 000000000..b8478fa90 --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoAdultDecorDL_f3dlite_StringGRGR @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + 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_gKakarikoChildDecorDL_f3dlite_SnowBuildup b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoChildDecorDL_f3dlite_SnowBuildup new file mode 100644 index 000000000..a79cca54f --- /dev/null +++ b/soh/assets/custom/objects/object_kakariko_decor/mat_gKakarikoChildDecorDL_f3dlite_SnowBuildup @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + 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_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_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_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_penguin/mat_object_penguin_DL_beak b/soh/assets/custom/objects/object_penguin/mat_object_penguin_DL_beak new file mode 100644 index 000000000..f83feec12 --- /dev/null +++ b/soh/assets/custom/objects/object_penguin/mat_object_penguin_DL_beak @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_penguin/mat_object_penguin_DL_eye b/soh/assets/custom/objects/object_penguin/mat_object_penguin_DL_eye new file mode 100644 index 000000000..c24abe2ab --- /dev/null +++ b/soh/assets/custom/objects/object_penguin/mat_object_penguin_DL_eye @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_penguin/mat_object_penguin_DL_skin b/soh/assets/custom/objects/object_penguin/mat_object_penguin_DL_skin new file mode 100644 index 000000000..6c57863e3 --- /dev/null +++ b/soh/assets/custom/objects/object_penguin/mat_object_penguin_DL_skin @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_penguin/object_penguin_DL b/soh/assets/custom/objects/object_penguin/object_penguin_DL new file mode 100644 index 000000000..393bbc438 --- /dev/null +++ b/soh/assets/custom/objects/object_penguin/object_penguin_DL @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_penguin/object_penguin_DL_tri_0 b/soh/assets/custom/objects/object_penguin/object_penguin_DL_tri_0 new file mode 100644 index 000000000..9039650d4 --- /dev/null +++ b/soh/assets/custom/objects/object_penguin/object_penguin_DL_tri_0 @@ -0,0 +1,862 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_penguin/object_penguin_DL_tri_1 b/soh/assets/custom/objects/object_penguin/object_penguin_DL_tri_1 new file mode 100644 index 000000000..efb326ace --- /dev/null +++ b/soh/assets/custom/objects/object_penguin/object_penguin_DL_tri_1 @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_penguin/object_penguin_DL_tri_2 b/soh/assets/custom/objects/object_penguin/object_penguin_DL_tri_2 new file mode 100644 index 000000000..96c7933ec --- /dev/null +++ b/soh/assets/custom/objects/object_penguin/object_penguin_DL_tri_2 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_penguin/object_penguin_DL_vtx_0 b/soh/assets/custom/objects/object_penguin/object_penguin_DL_vtx_0 new file mode 100644 index 000000000..f1a650d47 --- /dev/null +++ b/soh/assets/custom/objects/object_penguin/object_penguin_DL_vtx_0 @@ -0,0 +1,922 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_penguin/object_penguin_DL_vtx_1 b/soh/assets/custom/objects/object_penguin/object_penguin_DL_vtx_1 new file mode 100644 index 000000000..5cd519f95 --- /dev/null +++ b/soh/assets/custom/objects/object_penguin/object_penguin_DL_vtx_1 @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_penguin/object_penguin_DL_vtx_2 b/soh/assets/custom/objects/object_penguin/object_penguin_DL_vtx_2 new file mode 100644 index 000000000..97f03bf0f --- /dev/null +++ b/soh/assets/custom/objects/object_penguin/object_penguin_DL_vtx_2 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_penguin/ping_eye b/soh/assets/custom/objects/object_penguin/ping_eye new file mode 100644 index 0000000000000000000000000000000000000000..32eb2e7e10e39ade1bea8a3473726669ab88169f GIT binary patch literal 8284 zcmb`MJ80ub7{{fnQU(^|Y?scMR4Gi@>Q)?AB+bFH#ggDAtx1*2xLG5D3CndU4Q5G7 z8MB2dGY2kQgb;-#;L@F~(nT<;9Njk~X*_z(LzaZ2hh_c#-+#V&M$=^t9Gz^9k@dNCP#u$fdYNwjaTjEdOmWFrVDhB2C&~x z7tYaqv|O*+-Z)bQSAlf71KVxPu7KOLtJbUaVm&?d9(vXjoW0sr)SND6S8gLi11A$@ z>4e=v10cTu)r7sv?D)E8y?~0rtVJ}$3nN#7l=quedp?@p+ZBj7&Sf>=bJKdVE7SY= zXw^=XL}nSt&^_dyI4%1E;=W-bPLj9RH{ipC({fKBC)q7SftU~UhEoIA9|e(b`PhX= zyXw@S99RV@z6^c2p1R=styJWU2J05e!CkI-3WR*@e9f*rDAS2rPyimB_*)NR4hZS~ zs_h(s^Tp`k1$a<(jvy1a8>2wP_r|jkWZk2x^X&7G2N$yuvzRF9k#p-A4VG^-3xFT=2cqb~`}**MLe4X}7t?7DKR9)!45auTn!lmuZr(>KtVh(G z#~jc!k^4A$>$QaFu`8za$~ZtuK;S-FuFHxZyMP^7u4z4t6r__byaSnkWmijzo;YAv zXIHcq2>Gk_bOEh>UPcwTZ@o+xGzUfejoUy?=wl0Ta(~l9O}7#Dhyp(3{xAEZWM3z% z@y7l*{}r|ZB0ettN{OY9HJWyXW`L0I)U4lS^R3@bEzCdxpJbn6yW2PV#vR%5SymQU z&ol#teDqVL05N|coBe&moV4^a{ZqHDA9VMP z12}%_p6M;!Ols(%LD~Gi(Sewcjs32sv-^Jc818rCC85HX@*mUB^ux(sj2-CMgZpPX zt3btnX#FJe&jgKmiXY@mQ zA7T50qfeGQ%f{#X@J#5yw*4X5AC3SrdqA1?w{KkQ$3~KuzCMQMNL}2vzre@yZ_Wrn zqW|d|=iNh2*+)taC+A(l-}XN&Kc@u5{qG&rFOmB}34DQ85k??U{~Nl`cR)P;P~@9* z{1Haa=ljC(m!ki-bo|Bec{v~&e=6nQUv&H#qx1OU@wY<#gXqKYcY@DTAew(jw?Dbj z^K(Ev|B`Hf|E2SU?6thDrkON3|Sytf5{nt-428G7d-dp(y=2v1v2YTiSeiT zfLA_hu=*oK7b+;a{w7VQ3bHd%as3gI^+%ZP2+AE(*)4cJb5P(HSbtTdV02U<=|rt{Pp)On^)sl*VE^r3wau_3Y78xhhUwN#9f>nsi7M3RU{K7B=647 d(7;zg$>p&#H832;A9^?XP5H+x8hcNb_&;wVkmUdX literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_penguin/ping_tex b/soh/assets/custom/objects/object_penguin/ping_tex new file mode 100644 index 0000000000000000000000000000000000000000..9913decc7ddb183063709735b48aea252603001b GIT binary patch literal 8284 zcmc(jA#mbA7=^Mm^MS2FYoEe7d;2tbSuEZ2;eE5;8;tK}qt)0wUy?WdeBN(-*L?I`@qWGf zJ8{d8djHn?IJo3X?uR>i|GwV0UGh=+u=o46KXu1fJqNjm_x|*-amAO)qvtG}8z0^u zHm>;5$|Lvi{;)Y7UFZj0RbF|23=S83&|CA{Cw9EI7QCl=7ktvuZ&l@mUOZn?kK8@) zQF-Pb-s33Nf2JNY?euf8T(2uAQlmqv!8GdL7nRojUss##~(P#DRSMXQyq= zJ9RkE5wGac%JT{Gkxs zW#jB}|H+1OWDcDcBaW#NW0YBj&09p-PvU@&Y3smIud76b(I0T`pa52+~b%xd*yrv z8@|lzr~RF}?UdW|kvz;V>~dVu$=sHOZC8J(J=M#a%D&>N_O^V!H{x1e*0Z*Gi_&ez zzuLuNA9cEu(eG?_ZkoTa`)W0Rsd{t$l6|<(brp9~W-61fGSx35Usjc}n@GO1**9i< zabN9bPIq!K*I!`}0;VboF_tRFjIwkqsj8FCGJjg!ZUge?QB>$qG zZ%|}U!TBaxm+3d>^|R|^M+NoazH7=zyY3uc)*IMO>ifC0`lqr`Pk0+9|G0VexS^1+Gjbv{rrMx}A zzTCmDpC4cRF#YqmN91Gs1bTle1>Zv{mu_s`%8Tu?!Zz61IN!~YL=yksLHsEDh%@4i z&Kz+%!gHTdtlZVFdvNC3H%}((Wq}35Sr5b&Cz%`g`5Q)#yq{C`cy-!)%pdrSin(L^ zdR;g3FUTMI0;yTX8>POncG>v$5jn#^#SG@6H<$b|tJlJxsS6F`-t9Hd*9G==qr=#3aDANYkmhV|#He&y}9JC*|O(dr$* z^W6AjmlVSaX{xazCacwInaHqRzE=ccwn7aizjbd)7*pybff{+S`lF zP;(0tXwH~DW5n3U{I(+Abt~?6{v4q$928IyzR|Eo`@??_daQ^nJrgl}nc&d{&9cek!ADPO65L31lj+IQLkd0n^8zBBwh zX2e$1Ou6bx)l&5rrdQ{S!s?{trV4x%)RmD}(gl0!Rvx$&@wc()R#x3IKJh(Xh7~$BkoG)9cf+^Wg?c-Rc$T+FSNY za(*NK9(nY|z^YkxbeF{5i1punGN_q`5DPxEm-}a+R|)^%$^YCz-Q=b=zq3sC#X^ey z@Qn-)=5JM_j75(=q`;(_i+><{0F~!g; z&mh8;xEDYIK9@sR_qYk-=ua)D<-`<3_yK;9n*tJFFSA=P`ByGNFb)wx6;z0T1km&l z)2om7=Qgl293LGjD+JddjAI-oT2}l3Ky=qw6u%C=Oa%_^FcvM{xpe}r;JAu-jNTF| zQ#tF;ilZgi8TQd%9Xv=FHv~7@Xv8YzwQ8`kXB`-e=s_9rxg1z7+|i12(MlCMZ7+?|Ir60{KwZ9X)SuyCbakf-86fI+>PoV)KGfS*T5_K=0#wzFdpY`XQ zvBz9|*u*Mt3YFP+YMnZ+w_#jR6ZQL(ZjZRORH^KBjUPiK8=fl1Dt*-@Ucw#=Vx5m6 z{zR}&l=AAyvC~FE9P6@>H+y;^OQ_Nb=Fzb(^Yj?gSldag5|2%fTPo{?M4?B}DRU}Y K+oxXiargsgG<&B2 literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/String_GRGR_32 b/soh/assets/custom/objects/object_temple_of_time_decor/String_GRGR_32 new file mode 100644 index 0000000000000000000000000000000000000000..b905f21a9a682561bf5a4998f178fdc0e8a7e852 GIT binary patch literal 2140 zcmbtUO-NKx6h8O;T>ofVNYE^bL=4;*Zi;D9@A5DgmW4@4f&@btxRhw&#s@`&N(v1s zXa*vLl$lQ3i|PIJzGEr%*R;dUX_S;%D$?;c z?O}iSWcVZUD2suaG;Lpu=LzKx>u8>-QbObiUDTJJG7mA@o zDD&tZoieHcWFzQPiTm-+Nt}#KjKZCz7&4=T5+$OtoR>@ie6e6(`w8#+Zqbto|ZdL5%{6N67@i z6X={Q5eM&Nz`Bawup||hfdTP*L&57~-QN%AA0=Uv!lK)>=qnZ*CQ>Ga1+nc}&^M7i5Tm+T5XH0m0g2z~? V!kCjR944?&PVzd=&XL1u + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_0 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_0 new file mode 100644 index 000000000..75fc6598b --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_0 @@ -0,0 +1,2222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_1 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_1 new file mode 100644 index 000000000..bf36e26c4 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_1 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_2 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_2 new file mode 100644 index 000000000..4020ff3d1 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_2 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_3 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_3 new file mode 100644 index 000000000..eb072a5ef --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_3 @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_4 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_4 new file mode 100644 index 000000000..34fbdd806 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_4 @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_5 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_5 new file mode 100644 index 000000000..e360d5739 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_5 @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_6 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_6 new file mode 100644 index 000000000..8dcd07878 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_6 @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_7 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_7 new file mode 100644 index 000000000..a276056ed --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_7 @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_8 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_8 new file mode 100644 index 000000000..b7f90b048 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_tri_8 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_0 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_0 new file mode 100644 index 000000000..772a7955d --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_0 @@ -0,0 +1,4468 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_1 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_1 new file mode 100644 index 000000000..f62970ec9 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_1 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_2 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_2 new file mode 100644 index 000000000..30da04c9f --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_2 @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_3 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_3 new file mode 100644 index 000000000..834efd769 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_3 @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_4 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_4 new file mode 100644 index 000000000..acfe49fc6 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_4 @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_5 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_5 new file mode 100644 index 000000000..13fd6d48a --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_5 @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_6 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_6 new file mode 100644 index 000000000..e8e4e4a52 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_6 @@ -0,0 +1,278 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_7 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_7 new file mode 100644 index 000000000..359d48716 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_7 @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_8 b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_8 new file mode 100644 index 000000000..2cb6bf701 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_8 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_cull b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_cull new file mode 100644 index 000000000..6dd5d78cb --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/gTempleOfTimeDecorDL_vtx_cull @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/ice b/soh/assets/custom/objects/object_temple_of_time_decor/ice new file mode 100644 index 0000000000000000000000000000000000000000..ff27a02466a8507d45f039bfdd37500312c70538 GIT binary patch literal 2140 zcma)-EsyI)6o%8H{)|RJu2HgJwOLSL6&Vz`pwhsxwZLOg*$b)~6d2w>L+c{TTHpp$ zN!k4=jV_9;3#_2f`#$3>?~ZKG&YX|;yyqjU)oS(YPrv;9jlT1z@n0To|M%awlKlSt zS(N_#akbL(-D+i~WH48~`?yaARvMTovO2rE-0ECwFq4_;V^<<;wNHATNP>lqzIu`& z&f?4rlJFLrISt}W_dR#b+?}{j!>aH$2BVv5L>e!$fc_@V?Bv1^w`Q)!TDNH^Uqavt zmnTCtR-<;I3%y^R#};(L^dgxs4U>%bcpvX+=yESl91FIqypJwVgH$s5dOPUB1HN2= zBsRS7APwpn1hDYFdRL%b70rCuO8!lpfhJ2{kU*O#i8UEOYKF>Ntw-qv=2{h%c3|_C zhZwDwsyJ*x_s-~q7533uXoGsJp`&lPQX*jD3T zPtB|o;gAi*;d$!e0qJP-ypFVD8(S;xlcAp5QeKaThqmlbT`hWVn3++U%WLd~Q-0EXJw!bMxdP>tFQod@{82q|DdHrQ_)=mQ~&z-2c6F z54A#06VWwY1o}$*}TCx z6)!nZsN#r4nAJNjr>gv^zem>PowBPbSdxRbT(T@JNx)!LxPsb8OK9ZH_mlW{$}`pP z^8UnBGS}vIep1fFj}?#gQBxt1eoidl5rYLWuwdY@g;&slgxUciF)#h@t&ECNQyMO* zv-2aph!r7_G`fmO-S<9su%dak)E-sikqHZRe11GXHaFQF!LOPXHsaB*Oz(dk)Fa|c z^T{um>{WHjy5gWSPt=0^&Xw$nA7v2@GV$NESazV$i84&R&?~~B9d?$uRSn(?a}kcY zS0sL>)2R(JDfbx%k!nBbv7$;=t+@bMSQK*UMVn?;Jmg39y~Kp1P80*yRVm(r@}^%v z7(){Mg?;80tRYP-UP9H$34X~F=s^T>Z^QfcmL_sUrAVJBV9p~X7QB0#-Y4k5$hR7o LN$u}tb@BWaIxgO3 literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_SnowBuildup b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_SnowBuildup new file mode 100644 index 000000000..46d52d40d --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_SnowBuildup @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_StringBYBY b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_StringBYBY new file mode 100644 index 000000000..16c505a28 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_StringBYBY @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_StringGRGR b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_StringGRGR new file mode 100644 index 000000000..5663994ee --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_StringGRGR @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_gift_col_blue_material b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_gift_col_blue_material new file mode 100644 index 000000000..c0c1a4ac9 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_gift_col_blue_material @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_gift_col_green_material b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_gift_col_green_material new file mode 100644 index 000000000..6fcf6e1d8 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_gift_col_green_material @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_gift_col_red_material b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_gift_col_red_material new file mode 100644 index 000000000..a73985478 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_gift_col_red_material @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_gift_col_yellow_material b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_gift_col_yellow_material new file mode 100644 index 000000000..9f11354bd --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_gift_col_yellow_material @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_ice_material b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_ice_material new file mode 100644 index 000000000..2a71c2cc9 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_ice_material @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_snowlayer b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_snowlayer new file mode 100644 index 000000000..e15d18af1 --- /dev/null +++ b/soh/assets/custom/objects/object_temple_of_time_decor/mat_gTempleOfTimeDecorDL_f3dlite_snowlayer @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_completed/GlowAlpha_64 b/soh/assets/custom/objects/object_triforce_completed/GlowAlpha_64 new file mode 100644 index 0000000000000000000000000000000000000000..1682d9e6f2f415e5fe43b2d7c3e3894a476f2ee1 GIT binary patch literal 4188 zcmd5;OP16y3=BJ#+z2+T*|6X^T!<@h6t2LxXPNsc{CZ!4-fL>b#=XWhV~>C@JNj2OaWsZGLBcsV zv8U51ZW{xq%?Juy5J0P8hs`}E1YFqPG~KNTRs!t4d6#ct^K?E-f|8(B0HO=9 zd*zPar5wnIG>f1F5-0^#fZ+;0;eq}`Ba0Y1f!81fjPB`Oz6JJ442)qa0Qktg+!y#? zT4-P*TLe`=b+6#*9Uy^y!V_blfV+|b2Qavo`Ud|;3k@JB5tPrM;Njlt>^Mco{w2!zq!M%cT-z2671%K;Tt*kdNpS4m1r6po0QuAO!$NJT6E-YY+Y@-|p?a z5GVo)D0mVGZoI=!ys(ctQ$WLe1zG}Ucm)sSBMnzYz$J77Si^gGE&eVZB@h+R7GUK+ z(x=p~{5yfS@ef!%r*ETw?mzS2@>lUppcimA{taFN2(&qU`}s>e*1y%yZ2dR&lLgf4 zM|c$=2w1*Zz}pW1iSPBhEg;oDNnkGDarwCqt??Ovzkp=$2b>Kc%eUft0)`J*%Rsb? zcWgj#Z~yfRkN|!{P|zDtwx8YrTlFyl5aBt#z*qtikOJ6%NBdI$TH^--wxE!ZXf^P? z{#^uQ4{`@*=eMc(M)%dn*RmG@Q~}z6Ab}cayjAP;9-RAEWUpqxO-M~#K@bV!4odNT z_ZZw~4?_w?pe?ZP-bPD&_I|>P`w0PJ&@L>`+Iv$x|AE%Pt5F2rCO<4dM)NIloz zrdOO}hE5@{d|!iy0!au41DkK7cf3=B6qul?09u-G^6OALzj#WcNMr+Fac;sO@c(Fo nx6!%RVYJQN-VF1uJZzB|xiWw9YDF=babSpEpXv7iYn}20J+4Pf literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL b/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL index 966bef206..b7c7d8af0 100644 --- a/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL +++ b/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL @@ -1,7 +1,7 @@ - + - + diff --git a/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL_tri_0 b/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL_tri_0 index dea47708c..f9d6420cc 100644 --- a/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL_tri_0 +++ b/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL_tri_0 @@ -1,56 +1,5 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL_tri_1 b/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL_tri_1 index 36be4333f..b67adf06e 100644 --- a/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL_tri_1 +++ b/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL_tri_1 @@ -1,7 +1,390 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL_vtx_0 b/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL_vtx_0 index 6ca96db30..ca11ab1b3 100644 --- a/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL_vtx_0 +++ b/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL_vtx_0 @@ -1,54 +1,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + diff --git a/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL_vtx_1 b/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL_vtx_1 index 3a653966d..cc747f74a 100644 --- a/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL_vtx_1 +++ b/soh/assets/custom/objects/object_triforce_completed/gTriforcePieceCompletedDL_vtx_1 @@ -1,8 +1,347 @@ - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_completed/hilite_melon b/soh/assets/custom/objects/object_triforce_completed/hilite_melon new file mode 100644 index 0000000000000000000000000000000000000000..df1d605b38e65151f7f23aa1a0bbcba40252a1c8 GIT binary patch literal 2140 zcma)+EsWzx5QTG#js}LUp`oGCN|BCaz)H!1lMM|UHZ(b4m|+RCp{`L{*-!Hq} z`{&QyZhnroT#ozG1v}r%rHwn+ubpe-TPt%$Z)#sI*@TyEt_5ecpPxfw8}MK|HzY&S z##LnUY&zd%*<|u6Qe0=Ms5lgdashuW9-TAi`{`nGXGS|(XUgS#Kkhe6-;&q(C3!tv z(AKX*f{)3|rHZO(NK6j%kdR63vnhQOHhsg;l}%_lUDCH~s(rtXwqLJ>ZA@-*+nn#H z5E?EFWq4)2p{`(BtSe?*5cy!l-iHl$2m*c)Ts7~;+X^wjoobT!-HNe7# zVmcmO8?zm-Y`V3)>feP+usm)ZpU z2ZG%MUiXS9qvcHVqZoYSCp`Xmfr59Nf2jy~vQXn;328y7{;~mtCpWM+wjE|;w@>MnIobY;rPzE7Fz{pEjHV-EKV%NDCLxfNb zd4wJZG*9IpG$?B+pwhfoEO^QJN7F7;1*KH^2GyaaQb&xBCM6phufVPdR1(h6qb-iG WoJf;Se#T3`d_vWDf(%%_7svl_`n}`; literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_triforce_completed/mat_gTriforcePieceCompletedDL_f3dlite_Glow b/soh/assets/custom/objects/object_triforce_completed/mat_gTriforcePieceCompletedDL_f3dlite_Glow new file mode 100644 index 000000000..6bed4d274 --- /dev/null +++ b/soh/assets/custom/objects/object_triforce_completed/mat_gTriforcePieceCompletedDL_f3dlite_Glow @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_completed/mat_gTriforcePieceCompletedDL_f3dlite_OrnamentGold b/soh/assets/custom/objects/object_triforce_completed/mat_gTriforcePieceCompletedDL_f3dlite_OrnamentGold new file mode 100644 index 000000000..65dfd4f56 --- /dev/null +++ b/soh/assets/custom/objects/object_triforce_completed/mat_gTriforcePieceCompletedDL_f3dlite_OrnamentGold @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL b/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL index 70d08c31d..0beb02144 100644 --- a/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL +++ b/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL @@ -1,10 +1,8 @@ - + - + - - diff --git a/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL_tri_0 b/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL_tri_0 index 09e44f1b7..286a54384 100644 --- a/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL_tri_0 +++ b/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL_tri_0 @@ -1,17 +1,67 @@ - - - + + + - - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL_tri_1 b/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL_tri_1 index 48001e3c3..a3c013e4a 100644 --- a/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL_tri_1 +++ b/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL_tri_1 @@ -1,18 +1,91 @@ - - - - - - - - - - + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL_vtx_0 b/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL_vtx_0 index a86fa98bf..4f60b10fe 100644 --- a/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL_vtx_0 +++ b/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL_vtx_0 @@ -1,18 +1,72 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL_vtx_1 b/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL_vtx_1 index 230fbb7f8..80931181f 100644 --- a/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL_vtx_1 +++ b/soh/assets/custom/objects/object_triforce_piece_0/gTriforcePiece0DL_vtx_1 @@ -1,22 +1,107 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_0/image b/soh/assets/custom/objects/object_triforce_piece_0/image new file mode 100644 index 0000000000000000000000000000000000000000..2a8a62348be3a83a33bc2ab4c4905ddac5a53351 GIT binary patch literal 1116 zcma))ds7-`6vpXHr=O$$_A<4$ndzj}s2Oj)Oi{;V)HdxHbtX}o)Cdx>#w)c^sTePK zM=pZgFAB?o!Y(YkEXytnq8K3}YE2+9;5X& z+&Q=5=t|7r*%UzC7#o6ZQIubjX%`! z{uWD?6Ige76}xW}_pXm{n(FK7>zg=2IS3hrZO#2t;>iO;UG+U}gf#cnmX(&2m6TjB z{IuZP9yN^VdOP|C2fXby{a7L>Z741+y;1b_H&t~FO}DCxep>K^J)%dPhuycIMpNWM z@fX*={ObD6#*Uuh(Xp}N#~rQnaFmn{aeo%l$I-R#cw)&ohkd7CvaV69l``p~s9T2a z9XggCxK4MsI^p!I%=sZSy8`SuZKe&STp^$8c7=}5;i=R<#t*#B<@1-h*T|d^1VNig zw=R>;a3zQIn-p}qJF3d&8T%refki8Nv(;j@=++h|1-;>9>PaT~7n$sla&Stj z)@^8YI+bMN2}gDszj%2#xWM2Hoy`yfe@sZEN`+jhQZ9&|aCqU=Kk38Yptt$Ud^Vds z({g%*qPeBz)m5o4jXN;HOlW*u$mehbkrVnUJCw`kuF{)${N@_=oz9`@RmHkS`D~cq1*Jl~ z3g5*g<7Zwha39^eSz5ytEh*F*y=H!t-|0RLaSNBz`CKNG!G+w8+Tt5OwhxJ!0Ih0v znA>HKlf9o;2#f?l?1=f?yERqil?~jHXDjk``O@Nw9B}W6KD+kuM`f)e;}fI2rtiy& zN^9>u9-U$Ss07`B!yQ+BQczIXC;?pNHDPO09sBlu!Jkv}i;_hZ1UYOwanFNae!Vl| zj2}IxAcJacRVvqLbt=V*-0byk+o5>SkCU(yIXF2>C-x&Gj(`?}MyE5GoLpvYc#qoCyZilr$0=i)P5qFK7XA(OYB7mj7e(JtJFr1AIAXL zM@ErAc<(ToIz2m19z-buM?8RDDzhPYzzzCQIz)L0IuhHD@5T0FG)bT^Xi~4q>?n=^ z2oj7^6z(A?GDHM%977QgXfx|IN`(nUojw#JcBA1i;tEiq0OEz+F2H6no6J_@h7opn z0|7i3i$GwJFI|@>1daxDT=0;_PoF*gBjF%qtyjDtQNh- IyzTe@3v^4aT>t<8 literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_triforce_piece_0/mat_gTriforcePiece0DL_ball b/soh/assets/custom/objects/object_triforce_piece_0/mat_gTriforcePiece0DL_ball new file mode 100644 index 000000000..214ad3df6 --- /dev/null +++ b/soh/assets/custom/objects/object_triforce_piece_0/mat_gTriforcePiece0DL_ball @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_0/mat_gTriforcePiece0DL_silver b/soh/assets/custom/objects/object_triforce_piece_0/mat_gTriforcePiece0DL_silver new file mode 100644 index 000000000..d56781ad2 --- /dev/null +++ b/soh/assets/custom/objects/object_triforce_piece_0/mat_gTriforcePiece0DL_silver @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL b/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL index 50a9264c6..4ffea5cf8 100644 --- a/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL +++ b/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL @@ -1,7 +1,7 @@ - + - + diff --git a/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL_tri_0 b/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL_tri_0 index 5f33f7347..c9e63a8d9 100644 --- a/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL_tri_0 +++ b/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL_tri_0 @@ -1,20 +1,67 @@ - - - - - - + + + + + + + + - - - - - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL_tri_1 b/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL_tri_1 index 43df6492b..67f0ba8eb 100644 --- a/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL_tri_1 +++ b/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL_tri_1 @@ -1,25 +1,88 @@ - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL_vtx_0 b/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL_vtx_0 index e078b8246..366463fd9 100644 --- a/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL_vtx_0 +++ b/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL_vtx_0 @@ -1,23 +1,72 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL_vtx_1 b/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL_vtx_1 index e0460194d..8085ae95a 100644 --- a/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL_vtx_1 +++ b/soh/assets/custom/objects/object_triforce_piece_1/gTriforcePiece1DL_vtx_1 @@ -1,34 +1,96 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_1/image b/soh/assets/custom/objects/object_triforce_piece_1/image new file mode 100644 index 0000000000000000000000000000000000000000..2a8a62348be3a83a33bc2ab4c4905ddac5a53351 GIT binary patch literal 1116 zcma))ds7-`6vpXHr=O$$_A<4$ndzj}s2Oj)Oi{;V)HdxHbtX}o)Cdx>#w)c^sTePK zM=pZgFAB?o!Y(YkEXytnq8K3}YE2+9;5X& z+&Q=5=t|7r*%UzC7#o6ZQIubjX%`! z{uWD?6Ige76}xW}_pXm{n(FK7>zg=2IS3hrZO#2t;>iO;UG+U}gf#cnmX(&2m6TjB z{IuZP9yN^VdOP|C2fXby{a7L>Z741+y;1b_H&t~FO}DCxep>K^J)%dPhuycIMpNWM z@fX*={ObD6#*Uuh(Xp}N#~rQnaFmn{aeo%l$I-R#cw)&ohkd7CvaV69l``p~s9T2a z9XggCxK4MsI^p!I%=sZSy8`SuZKe&STp^$8c7=}5;i=R<#t*#B<@1-h*T|d^1VNig zw=R>;a3zQIn-p}qJF3d&8T%refki8Nv(;j@=++h|1-;>9>PaT~7n$sla&Stj z)@^8YI+bMN2}gDszj%2#xWM2Hoy`yfe@sZEN`+jhQZ9&|aCqU=Kk38Yptt$Ud^Vds z({g%*qPeBz)m5o4jXN;HOlW*u$mehbkrVnUJCw`kuF{)${N@_=oz9`@RmHkS`D~cq1*Jl~ z3g5*g<7Zwha39^eSz5ytEh*F*y=H!t-|0RLaSNBz`CKNG!G+w8+Tt5OwhxJ!0Ih0v znA>HKlf9o;2#f?l?1=f?yERqil?~jHXDjk``O@Nw9B}W6KD+kuM`f)e;}fI2rtiy& zN^9>u9-U$Ss07`B!yQ+BQczIXC;?pNHDPO09sBlu!Jkv}i;_hZ1UYOwanFNae!Vl| zj2}IxAcJacRVvqLbt=V*-0byk+o5>SkCU(yIXF2>C-x&Gj(`?}MyE5GoLpvYc#qoCyZilr$0=i)P5qFK7XA(OYB7mj7e(JtJFr1AIAXL zM@ErAc<(ToIz2m19z-buM?8RDDzhPYzzzCQIz)L0IuhHD@5T0FG)bT^Xi~4q>?n=^ z2oj7^6z(A?GDHM%977QgXfx|IN`(nUojw#JcBA1i;tEiq0OEz+F2H6no6J_@h7opn z0|7i3i$GwJFI|@>1daxDT=0;_PoF*gBjF%qtyjDtQNh- IyzTe@3v^4aT>t<8 literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_triforce_piece_1/image_copy b/soh/assets/custom/objects/object_triforce_piece_1/image_copy new file mode 100644 index 0000000000000000000000000000000000000000..2a8a62348be3a83a33bc2ab4c4905ddac5a53351 GIT binary patch literal 1116 zcma))ds7-`6vpXHr=O$$_A<4$ndzj}s2Oj)Oi{;V)HdxHbtX}o)Cdx>#w)c^sTePK zM=pZgFAB?o!Y(YkEXytnq8K3}YE2+9;5X& z+&Q=5=t|7r*%UzC7#o6ZQIubjX%`! z{uWD?6Ige76}xW}_pXm{n(FK7>zg=2IS3hrZO#2t;>iO;UG+U}gf#cnmX(&2m6TjB z{IuZP9yN^VdOP|C2fXby{a7L>Z741+y;1b_H&t~FO}DCxep>K^J)%dPhuycIMpNWM z@fX*={ObD6#*Uuh(Xp}N#~rQnaFmn{aeo%l$I-R#cw)&ohkd7CvaV69l``p~s9T2a z9XggCxK4MsI^p!I%=sZSy8`SuZKe&STp^$8c7=}5;i=R<#t*#B<@1-h*T|d^1VNig zw=R>;a3zQIn-p}qJF3d&8T%refki8Nv(;j@=++h|1-;>9>PaT~7n$sla&Stj z)@^8YI+bMN2}gDszj%2#xWM2Hoy`yfe@sZEN`+jhQZ9&|aCqU=Kk38Yptt$Ud^Vds z({g%*qPeBz)m5o4jXN;HOlW*u$mehbkrVnUJCw`kuF{)${N@_=oz9`@RmHkS`D~cq1*Jl~ z3g5*g<7Zwha39^eSz5ytEh*F*y=H!t-|0RLaSNBz`CKNG!G+w8+Tt5OwhxJ!0Ih0v znA>HKlf9o;2#f?l?1=f?yERqil?~jHXDjk``O@Nw9B}W6KD+kuM`f)e;}fI2rtiy& zN^9>u9-U$Ss07`B!yQ+BQczIXC;?pNHDPO09sBlu!Jkv}i;_hZ1UYOwanFNae!Vl| zj2}IxAcJacRVvqLbt=V*-0byk+o5>SkCU(yIXF2>C-x&Gj(`?}MyE5GoLpvYc#qoCyZilr$0=i)P5qFK7XA(OYB7mj7e(JtJFr1AIAXL zM@ErAc<(ToIz2m19z-buM?8RDDzhPYzzzCQIz)L0IuhHD@5T0FG)bT^Xi~4q>?n=^ z2oj7^6z(A?GDHM%977QgXfx|IN`(nUojw#JcBA1i;tEiq0OEz+F2H6no6J_@h7opn z0|7i3i$GwJFI|@>1daxDT=0;_PoF*gBjF%qtyjDtQNh- IyzTe@3v^4aT>t<8 literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_triforce_piece_1/mat_gTriforcePiece1DL_blue_mat b/soh/assets/custom/objects/object_triforce_piece_1/mat_gTriforcePiece1DL_blue_mat new file mode 100644 index 000000000..6ba4d88f9 --- /dev/null +++ b/soh/assets/custom/objects/object_triforce_piece_1/mat_gTriforcePiece1DL_blue_mat @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_1/mat_gTriforcePiece1DL_silver_002 b/soh/assets/custom/objects/object_triforce_piece_1/mat_gTriforcePiece1DL_silver_002 new file mode 100644 index 000000000..26f9a0b70 --- /dev/null +++ b/soh/assets/custom/objects/object_triforce_piece_1/mat_gTriforcePiece1DL_silver_002 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL b/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL index 5213cd53c..7318e9b1c 100644 --- a/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL +++ b/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL @@ -1,10 +1,8 @@ - + - + - - diff --git a/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL_tri_0 b/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL_tri_0 index b54e182d5..59d81883f 100644 --- a/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL_tri_0 +++ b/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL_tri_0 @@ -1,29 +1,67 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL_tri_1 b/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL_tri_1 index 00a32bfd8..a15c641d7 100644 --- a/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL_tri_1 +++ b/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL_tri_1 @@ -1,11 +1,378 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL_vtx_0 b/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL_vtx_0 index bf7dfcac6..90dc38784 100644 --- a/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL_vtx_0 +++ b/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL_vtx_0 @@ -1,36 +1,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL_vtx_1 b/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL_vtx_1 index e3237ab21..ef4ea40e4 100644 --- a/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL_vtx_1 +++ b/soh/assets/custom/objects/object_triforce_piece_2/gTriforcePiece2DL_vtx_1 @@ -1,12 +1,410 @@ - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_2/image b/soh/assets/custom/objects/object_triforce_piece_2/image new file mode 100644 index 0000000000000000000000000000000000000000..2a8a62348be3a83a33bc2ab4c4905ddac5a53351 GIT binary patch literal 1116 zcma))ds7-`6vpXHr=O$$_A<4$ndzj}s2Oj)Oi{;V)HdxHbtX}o)Cdx>#w)c^sTePK zM=pZgFAB?o!Y(YkEXytnq8K3}YE2+9;5X& z+&Q=5=t|7r*%UzC7#o6ZQIubjX%`! z{uWD?6Ige76}xW}_pXm{n(FK7>zg=2IS3hrZO#2t;>iO;UG+U}gf#cnmX(&2m6TjB z{IuZP9yN^VdOP|C2fXby{a7L>Z741+y;1b_H&t~FO}DCxep>K^J)%dPhuycIMpNWM z@fX*={ObD6#*Uuh(Xp}N#~rQnaFmn{aeo%l$I-R#cw)&ohkd7CvaV69l``p~s9T2a z9XggCxK4MsI^p!I%=sZSy8`SuZKe&STp^$8c7=}5;i=R<#t*#B<@1-h*T|d^1VNig zw=R>;a3zQIn-p}qJF3d&8T%refki8Nv(;j@=++h|1-;>9>PaT~7n$sla&Stj z)@^8YI+bMN2}gDszj%2#xWM2Hoy`yfe@sZEN`+jhQZ9&|aCqU=Kk38Yptt$Ud^Vds z({g%*qPeBz)m5o4jXN;HOlW*u$mehbkrVnUJCw`kuF{)${N@_=oz9`@RmHkS`D~cq1*Jl~ z3g5*g<7Zwha39^eSz5ytEh*F*y=H!t-|0RLaSNBz`CKNG!G+w8+Tt5OwhxJ!0Ih0v znA>HKlf9o;2#f?l?1=f?yERqil?~jHXDjk``O@Nw9B}W6KD+kuM`f)e;}fI2rtiy& zN^9>u9-U$Ss07`B!yQ+BQczIXC;?pNHDPO09sBlu!Jkv}i;_hZ1UYOwanFNae!Vl| zj2}IxAcJacRVvqLbt=V*-0byk+o5>SkCU(yIXF2>C-x&Gj(`?}MyE5GoLpvYc#qoCyZilr$0=i)P5qFK7XA(OYB7mj7e(JtJFr1AIAXL zM@ErAc<(ToIz2m19z-buM?8RDDzhPYzzzCQIz)L0IuhHD@5T0FG)bT^Xi~4q>?n=^ z2oj7^6z(A?GDHM%977QgXfx|IN`(nUojw#JcBA1i;tEiq0OEz+F2H6no6J_@h7opn z0|7i3i$GwJFI|@>1daxDT=0;_PoF*gBjF%qtyjDtQNh- IyzTe@3v^4aT>t<8 literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_triforce_piece_2/image_copy b/soh/assets/custom/objects/object_triforce_piece_2/image_copy new file mode 100644 index 0000000000000000000000000000000000000000..2a8a62348be3a83a33bc2ab4c4905ddac5a53351 GIT binary patch literal 1116 zcma))ds7-`6vpXHr=O$$_A<4$ndzj}s2Oj)Oi{;V)HdxHbtX}o)Cdx>#w)c^sTePK zM=pZgFAB?o!Y(YkEXytnq8K3}YE2+9;5X& z+&Q=5=t|7r*%UzC7#o6ZQIubjX%`! z{uWD?6Ige76}xW}_pXm{n(FK7>zg=2IS3hrZO#2t;>iO;UG+U}gf#cnmX(&2m6TjB z{IuZP9yN^VdOP|C2fXby{a7L>Z741+y;1b_H&t~FO}DCxep>K^J)%dPhuycIMpNWM z@fX*={ObD6#*Uuh(Xp}N#~rQnaFmn{aeo%l$I-R#cw)&ohkd7CvaV69l``p~s9T2a z9XggCxK4MsI^p!I%=sZSy8`SuZKe&STp^$8c7=}5;i=R<#t*#B<@1-h*T|d^1VNig zw=R>;a3zQIn-p}qJF3d&8T%refki8Nv(;j@=++h|1-;>9>PaT~7n$sla&Stj z)@^8YI+bMN2}gDszj%2#xWM2Hoy`yfe@sZEN`+jhQZ9&|aCqU=Kk38Yptt$Ud^Vds z({g%*qPeBz)m5o4jXN;HOlW*u$mehbkrVnUJCw`kuF{)${N@_=oz9`@RmHkS`D~cq1*Jl~ z3g5*g<7Zwha39^eSz5ytEh*F*y=H!t-|0RLaSNBz`CKNG!G+w8+Tt5OwhxJ!0Ih0v znA>HKlf9o;2#f?l?1=f?yERqil?~jHXDjk``O@Nw9B}W6KD+kuM`f)e;}fI2rtiy& zN^9>u9-U$Ss07`B!yQ+BQczIXC;?pNHDPO09sBlu!Jkv}i;_hZ1UYOwanFNae!Vl| zj2}IxAcJacRVvqLbt=V*-0byk+o5>SkCU(yIXF2>C-x&Gj(`?}MyE5GoLpvYc#qoCyZilr$0=i)P5qFK7XA(OYB7mj7e(JtJFr1AIAXL zM@ErAc<(ToIz2m19z-buM?8RDDzhPYzzzCQIz)L0IuhHD@5T0FG)bT^Xi~4q>?n=^ z2oj7^6z(A?GDHM%977QgXfx|IN`(nUojw#JcBA1i;tEiq0OEz+F2H6no6J_@h7opn z0|7i3i$GwJFI|@>1daxDT=0;_PoF*gBjF%qtyjDtQNh- IyzTe@3v^4aT>t<8 literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_triforce_piece_2/mat_gTriforcePiece2DL_Green_mat b/soh/assets/custom/objects/object_triforce_piece_2/mat_gTriforcePiece2DL_Green_mat new file mode 100644 index 000000000..94418f24f --- /dev/null +++ b/soh/assets/custom/objects/object_triforce_piece_2/mat_gTriforcePiece2DL_Green_mat @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_triforce_piece_2/mat_gTriforcePiece2DL_silver_001 b/soh/assets/custom/objects/object_triforce_piece_2/mat_gTriforcePiece2DL_silver_001 new file mode 100644 index 000000000..6a9be7bec --- /dev/null +++ b/soh/assets/custom/objects/object_triforce_piece_2/mat_gTriforcePiece2DL_silver_001 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/Bark_64 b/soh/assets/custom/objects/object_xmas_tree/Bark_64 new file mode 100644 index 0000000000000000000000000000000000000000..8f1b837cd265e5d70a29607777d2086fecc17f6c GIT binary patch literal 8284 zcma)>J#r(-5rru^2pAI#++fV1H#A{MFxIGPL(v==B21n{uA-x@J%_F!cMJxCH`pua z3i`g6RcK%}#-am6cm3qceECyV&4-7FhkyL?_rLv#-~ayS-@p0g_78vl%*em?Z%z8= zUmhO#etvkEFKs!s)4slKnJ=~++w=Z3@w-3nTbq}8Y3($f59h}=of>Ux`>^lpkJJ9R zYkroOL%ST2bKE`ezWnfd-uc`vF9-UN@OpXsRhdt_r(IiKFJ9sm_HlRGx2dfg{(Qxc zj?>HI%cFO}2kRO9(vW!zeQWS(e~u2=ApZLDIDe@3e0iIhZ~wk51xtGy8lboM=(C)_ z)qd{4LW0)&{K3V2@WFcCe+fP##6Jvtb&>;QAeY%6?Naz>csRAfr`_vad%3^|3w)o# zKfI&s4hcx<`1W$o-{3!sq=r+woM+qA_cWa*HOT!f{(}D&`>>$U@of2^P2kHw+K*GD z%EN{ae`*(9z!14EA_Q*E-`iS!{Hooq+mBDHr~L%qIEdWf54}1*J}Vo#+zXN>n9xRg z2EGj8<#3Ay+&5xMZZhAfViwk6LF{KX+}a8|qSG$EawkT>zxT}Z*H-ygZrJbmAk-!P zOq9VpBlQI_9hSw9ROags=HnYNj4koeWHqk9cci^?D=xZKYkGV};~opqYA{eX6aO7w zdEzU5%(#W{fe|HAx)F+$}y*j$zL{5g!e}CpWP|{D%F=-|+E%<(E2C z&JBE{qVmE@bz%k_%D>{P z$9FRa4L;6?d4=i)*?I-fbpeos3C5kT}M&cq39y`#XGWHwTc7bagEMm;HJfykZ`l;EN}Eyx!vhd?UWC9UpH} zGZ!=CNW>ZyNa}X<)kyo}`^rJBv&BfnoBDsBC<}hH6W{pPOXLx&(F{}GQ!fVoafv-0 zpZ4ik_=#jaUHEteja+|zf`2d<(8n0=`1(@ZleJLqwbzfgU#S_i7CzN-InP!;P=@^j zA11r^SUHU|q_x6Vrx5|#KQC`H(L+TO(Fh51dU1ix)JF4()$n^UOAq!V151MsM<+&G z7pa94d=@@>v)b!Dt?BsarN;8lo%KZgSMW>Y)CX|kWQFBL&K+&EzZ||H8(qaGmgELK z8hV04J9A*gst`<9W?=kueB-?|5c_KX{HkZ^iTy;lF`o4i9>56Jc|OnVO&(( zL)b!ASYLt<1NIv+NFh5#)>dmBGmLr}NOZ<7?1zD@2FOw>GvS?Gz_7pY-4}_EU!tec zWJa2k;u9Aue#ehm!UueQZQFaf%c1p(UtWO!$2V=#lESB+bbO#hy9H>Dtt4nF7UNJ_^@K`YAeXd z@NfLh9iD>K4ZrNAx3hPHU-^Ppy|On&Yvcb8->Bewk8eC&@x3eW^UIoqTq-m6ySuu> zPc+2-N&ah=&oJ_lo%3p2Sd@R)TJd9JMKBx~6-KW1v;G(f#V^sQ=i#58;D2R*Yt)+u z(FgvKi?v3dQCSs$UuM7>E#j+N@bNuJv}L7@2b39{o3alI0+h$`;0{3Hdwl>0YcKId2U9e}@mYtWVuq z;yZZgR4v-I;o}uqUP~Xf(2}wx<9N1KCf}?-;O9(({Yn{ey4g?MuIw-~P7he)i2yBu zQzdu&J)E!X9c;D6Wklf@_v8<)M%&l!f3scts~RY$v5ILi_}%~DXFo?9Eyi%ix60z1 zVU@Cxjx3S0(nQ0wBe{ACf5ad7?;Sro0khqTYE&X6+?joqyTM0h;VaQN_ZMWitGY^7 z6~0kR?Nw6m@eav)TLwIP&+jvgB?Hkw{K}ooQfecnIk|hzy2aP(D}E5V2JRPvFKZot zXvS~HGTQMs_>mj@YFWr4cm_YSkmX7fd_C^BVyEiO#($qN@Z0(Ee5fiONuY%%Bo8!W zjQyD2j!ZN{cQE)WZP@t2eyCT)tN!#+@0{x>B-ChI8KeKoetVHQq9l?#etHtu*z4N} zv!ai;Z*m;6-RTgMrDynyr^0h|mzC(ltl&rY4d1-b9@%&PuwUu4fc`uDpnHxrB2Md> zou+zn#WE!*16;kw>>K>_$%eH^3FPX;D3S8bY?!VHz$fA}>fU}@sgu!gefiE>3%b0< zH?1<3XI4M6q^v5v%2M&!|0BT_JowRUjNv!&2EUWu>ouXr2pX}9b^N@W;W<2MEod#i z;Z9Ee4?ivLLVR1r+amF4yJE-7KFQ9&?|fiOt_^?s#y+36TYP86dtt;moAkXJAsvll zKhdfES9I>sm}}s>gXlSBU*VI7YR5BcP4cMP!%%d;!ynQ!1KGoxL@+g_`iGxn%==Uv z`EO&q{)nGDey!%5qrg>fACCGgcE4AgXJMZj)Tfdc8@QcWYpvtL>^d8@9^EZ1V6H@ zpZUZV@62NuCo*b{$5;3f?YP93XT2!ruDl(;SJCo{8FhZlE)4d$&|}y?-ixZ6((=I; zp0)B8KM_a^45p7!jtD*+JE!nngP5;gTEKP1M|aPX;@`45_MDD&bnv-TcKFx+!rxm3 z$R6|%rN5_({Tse3ZpXKpwBn!f*ngD2NG|F6AMM|rQCY-zZ5jCJFfJ+|t4HByOqW#r zqkH_10nFdi^PT{Aj|T z4Ij^y&ej@6R7HyYB2P-p{C}xQ)sWI9I$%F6;(v58mWdDBYmR@F3L9one(_}REB-2O zx}=Pj*{(0oWl=qwqg^}SRj3zZttOor>gcFon;wOa9c9gmw#w!0lDp1CE|Lm05~Cgx z9gjub{)uL?EBLI*dE-KVq(_hR$O1fSfjy&=A&2=|^qUHT(7K^ z{Hi}3B(r(%$GqS>juW=Equ5uj`1ya5{3J84_{JxnNYk3wZwy%fS+lVI?bH0;`>`48 zVLtj?@%_J$JKbs}Ha#s|*E^*DQGDMitf?l{DwrsIcD@}STdLATfAFiab$qRmJ7&sb zjVbG_nxB6>>GAkKefT8rmck};V}HlT=U4nsybCLD!+y?zu9K3r2y>o@ir z0fk@l>aV%F;o}D?jk~<^vG_<2|2OzVL-E`t!8zmMpV34^{8w5eW~?aXE%9Bq>dD#S zyE9A%g-d)(9gaj=;g*cn|F7@e<2aQ+kgpo#y)KE{6D(UWcHi`Po)s!CN&qu;w4 zmNo7f?(x$OZ=Q}gC*y~zjJ9`teuw>z%i9+4{oku~w(wyu?_3;fd$EuImEG|Z+2Fea zQu^>iaFBdHyv+4ZiuoB4{*h?@iN}~vu^{h%ia9jGeo*-TlXl7uOtk!hjt11&;<;*J z{b&3RpBSL(_(sf%sQ!hoFVwT+d5W!d;xqYxKD=x5T@xQ`Z}6=WR!#9ir_K79r?55b JSEuLw{{SzE$8!Jx literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_xmas_tree/Bauble1Tex_B_32 b/soh/assets/custom/objects/object_xmas_tree/Bauble1Tex_B_32 new file mode 100644 index 0000000000000000000000000000000000000000..5e28d8e82036997f03c59e2b86ea03e7ed9eed97 GIT binary patch literal 2140 zcmcIjF>BjE6n^cbQNa{R2$LMb1R;cx6%#^-LZFM6Lg-N3p->Szm=cPex<*R}jT$p1 zW44-*xNZm~9s4tyt))|F-I8YO_fD1@ONvM-)uB7xyZ62CyZ4@mh#uX4_}~`S^AE#M z{NnS*&uw@vP2U9c`W_KpCD~m!M@u{Vk%*sOcV2D}^xZFk9_Vqf`?=h+__WiG1fN8r z(=PTXw+2RdHta+qFvf4nJ&R8RBN89IIOy)3o)>$RTRV@#vwy)e|LJ)gK>tBGQ})#E zsYm2vcvL5s9L&CY)P0xrE8YWrNH#4~O%96|$;4}W>h6% zO9d`&;xc~YxYb`zG|Ah^k z>9on93UcVEBX2yd3G+K-VwZW4y$Y1c{K&bE`Wv(W4HkOgkKKb^(|=~*q`Uy0JBK~d zDYAP^;1{6F#LkAzkzH+)R>0o{n+Ct6?=7%e=qASVFy%h6npDl-pBl(D-*$dzz*gqa z7MaTC+K;S$;GF`zg{bopE!_T__cn(o)QA65M(|uT40*O#pdR7S|L92~rBI|;@X!UJgnB7>@n8odYK#p+ z!HYeXUMikSPZow?|A8Q4e|c+9#ebpi?PO!JyDllsu$i4V@B6;@YYoFNo>U$`B(Pt7 zKKh9dypH{&;5pNOH0ad>!+__OKHc=+oO$!EnQK40=|0)+WeoB`<{FFf9?4d3YVGo<(ad>MA3r2}#@~8V&D@uJZSUpVldE`-WNYK;+U5V?QUBzs z?Lqv1l9j@@g_b>M30Q)Q<>6Vf++?MC&j(>>3GDo)hfC3 zsST!)(iEoT1R_ve0iST^JNcEb*WTebtK`%`4ZI<8{yt{46+uh}h<%@c+-t+Y( zgB;wQ_s^Hk(H2C&WxW@Tz@B5|&II}eT3k_S60WNI+KQaGpd%{U$;nfyCQpYwxugms zuq)b{DfjWhgerzJnB1h2%ffDPZxAP8gklYaT`BJAp7{ELL65?Cs2)V76?`vcO28AU zfI(i{En-TloUJfE!>I5lM}RMZ-boX508gldEF@%&9Yt0_p{fyl8PwpmKlcJ=S1{@0 zfdd!@3%&-(GmN)NCc$h+7gfLjaSU6TNNwDI9mR7I#RHBEWAPobpD4D&c*Dq)@jFF? z|39LsIT*n^rlQd!o4bt@>?>f!B1?CZ37bcw*U=POsV;tj46~NQQ9vc3mcUBV-9jrG zdtmVy6fg+C@`B+ENvcoMl<96<<^dXa$fAtOeFhSAkV;c!%1PP*OQGe|(i<=BjE6xQoxkJ+Lv9y|6IG$0Db85(d0ku0XS2)r1&7_wxLz=H!C8px1@9Cn(krWYH9XjdWz3+S9d-o*6FbwlHk=9&Qafd}|oETYB}}>~4KNcRSOM&+Rwc#pda6u_-pE;`CRuXZ`MQ&+YJz z+ZpcFdo){xd9a)h-HtH7erfis-xa3YxqLGfpUy7s>phyS!~KKh|KK_P#r;$W^J3l{ zsl2Ot(v>7BrielcFk|JWr)9tTwd%#*j84eU$Are@;GU5>x?9#G9<9>2YWvpcFV+Vx zMEnSR6S`_=B5gQJX~@MGu_7oB!7;%b=b=Z8OynXvzk9a#ui7JER9m$f!4YFdh`Xiq z3J$fCoj>Ybe^adqlxLmQFu9criD(=@-CxZ!k@O1&NvWCDei4yn)Axws^!zzO3lG~<0sU6=Js zBdEboQ0s!Lc-j;%)U=E@3~BLq$_Sq8#vtDt*QjSU)#46j99OK0*Qe=F>{ZokHL7=l zFNpsbT=jJoBdocK=toQSs@e++GcZn{To)ZM0I~}#Gy06K$-F@GQ?-IM2FB^Ji<6a& yu?rUbJr|+HUCx^M{J1LklXy+a3$%VRhx8(_1V#5=KJ|FX3jf1=yu|lkef|JixQYh= literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_xmas_tree/Bauble2Tex_B_32 b/soh/assets/custom/objects/object_xmas_tree/Bauble2Tex_B_32 new file mode 100644 index 0000000000000000000000000000000000000000..2596d826432cb465ff133bceae51584e261e8db0 GIT binary patch literal 2140 zcmbu9&x_MQ6vv;Qa@!PW06e&R|K1h+o_(5p z6&0HsKUXnwH>ol7>J9)_Ew=LB;qLe-B+-++{$f8j4og0x_5r~xfE0_`E=!ZsELO{^B&%va0yL_;>$o+C$Lr!yce zY`NfUp26tSTXhCfw;Bw*6}FmSYcH}oc{aZt?YD(0gIX}?E+p?5Kl9?V{_bM@fz4yS z)Auj*sThGxvvF!W8hWcBo;B+0$NmNF3!e6)p_)j0d+$gq(R6Va?CwJ5($uHp_vuKr z)xKq%ujedwp0tc}xdP2-UrnUFWDi(EP^jY0W9}vSHDiH^=g&=e7J6wVwT1dsNw~;f z$2LuP+yAX5(q80Ed1`MUe+@^lWCjjUHcLmUEy-7r6-C^@I*vfG+WK2Hk@gzDFy}4U zk-WHrM7HWBZh(bUO;RNJid@{ZPJxBzF42rJ0Q$)-;O=lhq8TlVJn7bBevFVsu? z!*He7tCr+}t6Ju1=&y0-*JErOKSq~jZ~!*bkMQp)&QHZSZSR$%MYOjxzH5)QN5uIT MI@a@+-m+Nv4?(kzsQ>@~ literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_xmas_tree/Bauble2Tex_G_32 b/soh/assets/custom/objects/object_xmas_tree/Bauble2Tex_G_32 new file mode 100644 index 0000000000000000000000000000000000000000..e6889fee4b0dc473476bb8331d2285d6af55db6c GIT binary patch literal 2140 zcmbtUL2DC17~R?38HJXfY)GJ8x~a`E;AM|%#x|RS7%vi~g@7)23FIPp>7fp;w6WW) zqR>k{dNao!6^5c-g%XQI>`f0M{R@7xn?T6UEQw~Ao!R%j_q~~XGplKucCUKpHiGfu zL+^*^FrE6R19N5A6Va3Fng;!H@}_zQE3e-McKARQ&&K`y(Jw#m=R^PKXEswFZEXg& zhy-?PQ_jdn{lfNnuNByS;rLxPQy%pTf&J-P=s$Y%{zA^kMq69k=l`SMx*OQXe}emd zq4zu6Nfs?XpI=8@G##0gRAd}A=7jSnI!d&d8XTk9GL&zEhU?G>B9tJL5w%$=5*3|; z1%ptG3|c=ebzsIZn|=j5mK)Vig|ETd12=*h#dP6D%18k`{1&ZxFJnD#4;uYg&#X%d zdJ1mz57(T7L|=c^Jj+!@2Ip3aCW^^N|POT~QkileP1sL);p@g1- zgdX-yMHBZAM$kg1xs4QA0$85G5I17IxPvB2a!r2&OraOP)I`G(=9o*&q>wmwiRajp z5hNu`KvIGIg5!9@Gkk+U&&IVdXHb!f#7Y6>Hb(#2D39eSs8X0z7OOfN<BjE6vyv%vbS`zx9B5u>sC_{2=&l_JD6k%xh2$#p^G7l2N^ubprHm2E_i4_ zLk;dw(Bh)Wx-2p0p#~X}A)+1g75d)Eu84aQQmf;nyLa#R{_jqA5@U=tkKVlnd_I1k z-ciM7?&}$P9&T$4bzd=twG{W#?$+VQYs;`N(#EsxyfXg9E4*U!@y~2e{b=jdGHApy zTBmxCY%8x`-A`MV!K>fCWP9pIdDSu&FKqtd)BI8Ik!@|AUETi=|9)*5^Qn#b&s*6_ zx>5P2Z@vU7HRyxTxn$U+Ju+)s)`bpC3P!l8cff-t79Rvw2mB1R{h{bW4t!If>Lr8? zSr!;;Rv?3iJGl%Sq}ztgnOq9Y!3FVpUni}_PMmlNwC=-PwM%3 zj9~3nZ8rn4$StojaC;|zR=x?d;GxhTmoaHOy_(uTH5dh}gCgp&ue^1Gj@dT9mj8v` K#gMnz%D(~0i3^MX literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_xmas_tree/Bauble3Tex_B_32 b/soh/assets/custom/objects/object_xmas_tree/Bauble3Tex_B_32 new file mode 100644 index 0000000000000000000000000000000000000000..8f9c96cb13bd12340b6314f69edb775f905f18d5 GIT binary patch literal 2140 zcmbtUziZn-6n^cb%?id?#+c+V#t31|Sye$pDHytRDTEHi-KwdGV2G2LUl}xiT5Jaz_9dk zFM-HV9{3U!-RbG0rb9NQ23BTB$>Ps%_fp$Jv>C)+X3^SB$GA{SM&a~+-Bbb@)q!O0S&?K48&S>bc+Zu@31U#SM9tb% z?eF{DTecj5c?&IpuBz@zJ2$>8cqyX>aYl6@d8!I(u5#E}=nP*r zEc2*b^*U3|rUGmpz2F(Dq2|Z^{iY+wz*x|WC^o>|DXf_{kGqULDy{jdnmh^2fXQKo zXcFRXa=mc*dtj)N9k@@sa;y*CY18@krgeo=?l*UDkwmlTcbVCpM*NGc=k)pz)rx1i z(YjiI<*LQ;&ftZES&h-01mTOnh-@X|W?U6{v+xv~>P+=O+mhoM-wMr(92pm=8`~#~ zV$%nx(a|+%e$y~_^+WU~8IL%Y|3%~o-%MUj*lm`I)<%wVS#Hqqd(Hj+13N6}AC+UBn{+{I0v`w0xn3v>z^E}V*_k1R~TrPL3aq|Yle)Mkp zJKZ==d?~P;8Q&r3(Y0I-_oeXdyk~pn>5F!yclSJfw%nWA`sq!1Q$26%N490Uwzbr* zkfvQ}Eu~vzOTFo}!|hhP;!VGKnQfV_^`_gE4_ABM{pUMJ=@!}2*6p>!|G|_0oul?0 z#Q!VXQ&Q^;N~6nlMJNnQXsk4{dqyp3mo6#0I@h?unWRM=D$lQ1Hz#ALKGB3K2@jmm zq|SAwN|o!Px|#0pq|_N`k0!N@zcuhy2Eml z@L-T3gVj0dFFvpATU}i$Vw|-M7=*zHNlz?>T)5d-{1T(0ll#eR=mHhzD%TjIr>7`x zAb$Y{uF0Shl31+nYAM2nyWK0)b*@UCjXlAN?BCui)Q=@RhyhGghlf|+@$OcSSlouQKpm)&`gmueX7s}YW~%qb%%Dp+|)Uy zV;mdd9Us=jD^=_`OHJm3YSJVS1NEI4!bym_N%bQ9%D&^nH-B8Y{@L!E4aawfA73x; zAs2>zi#VsmsYZA(91yePN0XMY<4K9xh-cZTE$^jcgQ^|ZC1$B^THUz+6oWHBWkir0 zL)@q~>L7x}kv}6{z=ki`?#I3f8(wy=+|1X5u5olOxdOK025K}PVNUNx&FU84qc=%x zC=nO`MeJU21D%v993sDqD%DQ=Oujij7&!h~9ABf1qtWFgXv|~H?w3ZpC%UC68WgE2yDvQYmQG_e>pbH41FjY1u3ZgS621e5N60b_6tF#rGn literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_xmas_tree/Bauble3Tex_R_32 b/soh/assets/custom/objects/object_xmas_tree/Bauble3Tex_R_32 new file mode 100644 index 0000000000000000000000000000000000000000..40394698fcdffd8b3eb32a625ad5f8e425de3deb GIT binary patch literal 2140 zcmbtUF>BjU5Z3DyZ_Q?J@lVLsttO&i?4gEsFwRn{CE&%7rI5vg1RiAYkbs65yc9Il zprxS2#gp~2*gP)<8|uNPor<@NZNGcZils(UT&hFT)4lt?JKcSfrfFLJ)!Ww$_wASA zH#)IA_;`lMlijI6?U$N{^GH3VUCop0k7m(+pSGXvH}bbXjJ%Pzjoa_pk;%KwhFPQ? zv)F7TM`U}A!qsZnG>b;z^QY{{>! z*$`D9-BNE&6?A|YOC()6)-H@&i|Yt%w_H5umIrhhRkwkpD=M}eRLy~MWG8&dBC6|t zoB`9(U36(6^Qm0axt~L>tK8&MMvNl2UhO*}Dn5|J9knrhcR6lFeYB=d($2cC7@!s1 zVH;z49*-TP;z5j&I^e-e)9ryl^?{!`nAQAd*@r?N;$1{^(1Y-ed>~zT-br26uyPp> zs0$pCb#%^ocz1f69FF+Ubv9=PzgceN2-%m$LT4(<++veUAgqy%Ch z7ZJ8+)uqDz=IG&TMwj9#6Q0D(v&xuy8JZ%cgglt{ z0chw^6J0+D{{!?dx_|~sc{CZ!4-fL>b#=XWhV~>C@JNj2OaWsZGLBcsV zv8U51ZW{xq%?Juy5J0P8hs`}E1YFqPG~KNTRs!t4d6#ct^K?E-f|8(B0HO=9 zd*zPar5wnIG>f1F5-0^#fZ+;0;eq}`Ba0Y1f!81fjPB`Oz6JJ442)qa0Qktg+!y#? zT4-P*TLe`=b+6#*9Uy^y!V_blfV+|b2Qavo`Ud|;3k@JB5tPrM;Njlt>^Mco{w2!zq!M%cT-z2671%K;Tt*kdNpS4m1r6po0QuAO!$NJT6E-YY+Y@-|p?a z5GVo)D0mVGZoI=!ys(ctQ$WLe1zG}Ucm)sSBMnzYz$J77Si^gGE&eVZB@h+R7GUK+ z(x=p~{5yfS@ef!%r*ETw?mzS2@>lUppcimA{taFN2(&qU`}s>e*1y%yZ2dR&lLgf4 zM|c$=2w1*Zz}pW1iSPBhEg;oDNnkGDarwCqt??Ovzkp=$2b>Kc%eUft0)`J*%Rsb? zcWgj#Z~yfRkN|!{P|zDtwx8YrTlFyl5aBt#z*qtikOJ6%NBdI$TH^--wxE!ZXf^P? z{#^uQ4{`@*=eMc(M)%dn*RmG@Q~}z6Ab}cayjAP;9-RAEWUpqxO-M~#K@bV!4odNT z_ZZw~4?_w?pe?ZP-bPD&_I|>P`w0PJ&@L>`+Iv$x|AE%Pt5F2rCO<4dM)NIloz zrdOO}hE5@{d|!iy0!au41DkK7cf3=B6qul?09u-G^6OALzj#WcNMr+Fac;sO@c(Fo nx6!%RVYJQN-VF1uJZzB|xiWw9YDF=babSpEpXv7iYn}20J+4Pf literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_xmas_tree/LeavesAlpha_64 b/soh/assets/custom/objects/object_xmas_tree/LeavesAlpha_64 new file mode 100644 index 0000000000000000000000000000000000000000..e33491d5af58d9b450ea8450096b392f2cdcba37 GIT binary patch literal 8284 zcmc(kJCfT*6h&!{NveoU%#6fU2pNtttI7@}q7*rC;N>{b3~CnREjStyrA>GX-h%IW zw;O+QGzx5?Nc_6{ynEm42B=xBR;%AX{`Tv4+W+&{pMUew;aC4#tK~20<4%A4yjtn= z<7#!cV>{GUQ`YNt-TItwojt5St{)EdyWO!Z>ta{z%DQY0+863k(Bgd1wK!@I^*;J* ze_lWA&wR6A$A0}FirR|P6uZ6pRn4(2f(~Ef)@pek^7n~<-yRuVBL=@d#CEq6cgWw} z}gtT;gIT!lFhopbNmx>rA z^VjM-=PTOHTWJoyT*t{^@6cb?=69J$eC{cZbFsml@Si+B;H>rAJw~W%>%Yb?H$R*Y zn^JkI%zwbQ!zSDt@S|2He6^YIT{Y51%@j^KqS=@SXY8FXNz}Doy%b ze`*=}bw6(tKJCxL84!Hc>3yrH@gMz)D!#>6f4TfReqyT^85rqL{5}Hm?|Cxhb4{E3 z&-jI|dtNT-=Wc85ku zeZ&>~H1g$~9j(YkEG8xYm08{W9b*Sy?*OU_*U(tM zYlxoFmk9NFN&j_zcpLr6Rjgr(U~Rq_L>GiK|2>z?r|$w^S?oH{ zYUTLH{9M1Pt-5~IN9ErMJ)Uy0w+g8P|IZ!(puFX>mz!H;{aj9Q&L zK0VkxKg^G3chA@QHQ=|bkU=Jz#Ai*2`l|84M{3h;_MO;{3;cL)DE1t~HNG8)ry9x= zf8TN)K5Kr|YmC&>(NEr4Sr|L?H@Jpw-aPyclKAP}g{$Fi((m<`J|q1t?(wEJ;8O{@ zmbQlxUv&7@)9d*uS6&;Xp2~1kQ+~vRF3*91e%|GS-z@OuhH6myd3O(gRbBh@TaBYT z+>I7lziZ7}$NKRV_on=q8#wU9d$g-=;D3y+8WEp&Wk%o`9(*aKI@t#NPtNN&{~kH< zaiG(m_%RFB%A*ly8zb-dUgYC-{0<=o_{@0eAM&LuxfZQEKBK4lGhbt9v>1`mdcN3f zRm4;7BV}5w` zqJEwZM6W!($j@t6)tK*dDuAqbqkf%H_|>QC6KW#=6aVF_HnCsDk5S{-192-Ca(j_4 zy7*7xtKF1OtVk4j7Wbu7vYe363xWuQNL z#j2sZ`0r@p<0X7o_H{lvxWeDT>-5j~tRTE6vo5d}X1?lPv&U~o#qM7E`QMnieq7fq z`!wTgw(*NZoB8_A>y`ZP^ao!f^n6_Ola#3N8~v>8^5e`?lQFr+Jn>BNQ_23v`qora zesi5~_p*LQxo?%pjrkCRFM7vUOg&%q5l_W2pC?e(FGY$d>(}@L{Wxg#_J7Q0HHOc+ zHsoh|R7m2havI0XoVvmnZNLxzs54dqDu~J+>W9A<-M@=^{d0cI`xzf~R38dLzs|>e zxZIiX)iNl$$I~NP<@_)B51;uL`4=OG$$aK>nty4%B%1u3bOb$LBjZntk{LhZMNjZWp!bkZ{+S=nm+DV*IPn!j*3T>t z^@?Z6Cszynmby%_sD1D?D!;zQeC9G&54GyM3H`xm7U02vPhZ>&M|1uQ;+pI4`O%u$ zkLD|U-3flX%*P#KS>jWfx)bj)1OLTOxyXFzBR=aNUN|!N_g~=03Q()JsH~o8{@mpA zf3UnqpwkrwKm9Is1$BJx6H9)6QIoW0y+R>xF`mnu#ls>M~5B-^sQv*Kw zM*7hTE%>n~7GL4Fg86d5qbB_wf1@Ml59`a2&!~QnX5Ag}FCAZP(3NS9lnmr6SNO`1 z`RQGJ%-_nFrZ};RFh66ot$JJv-O=dgUt*3-`87Vw_|N-i=|6?5=r=!}3ZVrDJ}3Q` zJM*{2wtA!oBi?OAo$^maqnH%w-8T8Z#NVzzi~k&a^(j#h8V+KJ{2UqhynZ$%@lSW# z@>D$@v@f>#PRup>%8i5hC-HSZ@lT;&k#_li6hrjldqyiC#XkjK)ZmM&?Xx!c&!O^E zKFWXb%NV;*4Bck`#V^PFZPbEVigzI*IYR~?6CX7f@ik`R%MsmM=7%Z~f*ks~2-G{G zG+!=g6h~KxDfgrz@wdmvHa^?7D{L``H)BcG6iJ=JO(w@xo`LO;# z3;%<^T1neLzwdPXXU^fXAM)wd`G2~Pe-)=z70p2 zKfXFYqdN1|p?VNUjHu`w_^Ig`L|-bb?;xe CP!#QH}5rrwrBwNMRkUQ4K5SLtPc5c81++@KkZ@lnv40Kb(9L87hMk*3>317ii z@b}_nR26@u9(fGA6J+I2M11igGfNVBG#ZWmy8X+a?|A;}AAkR+K6HQazcH47C?7lh z?f0V*pWlu~cdc4AS!@>*_Xpo!@BVoAwVFKcSNp}}0lNiu6?WA`-^Ft>j(!yuT4Vm} zLyP@aJvE}e1VtPoJYcohuIP19Zt-8_8GKfIzUa=vF_WLML=Haw4{(D|9`Z8Zy>ou% z;wbulczGc2YO;z<#m8SUB92CmIpmL7!}lfl%0qnV2=CzI?|P zBG1Sk$}PUu6rtlg-WfktcrTrq;`U_s78CKcPht5Xe#wJToc}|s8_)i~!_Sj*uD_f=@<+{g`NKMh)c+=5*~u%jID49}3dH(<#xDxF zMYr_7#rN&fu9IEiOHr@inGO}7_fvnI{KbjzakMAnq(%+qlLDl;#GJEYq>hJloGhaHD!!7-?|8@L) zSE6$(3S87jYxPd-_t6T6`RDt|6;l0uru6N%Qi;g;x>>8^pXu-T-aqSCe!2ht&0~-` zSvtER-*xrOHQjHitX}Ym5jnkBeV(j12i#1*ofSzL_3wu~A!N6`=HDWF&bIb;9+%Y; zSv8e5w|xJ)cFv^V|5f2DzVg$$pZa-lnMv~fyIJn#(8_$`7rGQ`UHWa8yO%bOX}bAo zn;scI^O82LnV9&fU{^$oH8IE1f|&uK$0R zpH;oC|66>YZJ&UOzd>&5r;d3)O8wCrl?nS^zg6W~OZ~DP@CWtx`BNpl8;Y5AcHfjM zKGlttt^Kn87kskLXlMNJ_RqA?PZW7NVtSZQd{$RmetYF~sCoYtFV;A>{mErcVgVra)>q;Yhrb@N^8SdOD`Ir~ZAD*AmcidwTiwp^i=O)? zDbLkDBC{6J!@KuL3RbQ8ihhfaf6!OWs)0{D`25A|o>mtzCr+`9JR>qznzdDDr*%GR zveLZ9%0t#(iTdqDD^U-tL*e7KYO7ca&%G?Ng&(6;yQT)79W!3+;XpErakF4`AwH3? zKVWS>mJn!K!FONLdptd!P!es`uH+T{O1WU8_@OI$g-@2sKrvXC$HaZc2aTy@t7qZ! zG))RwY14jjTF)L&g~{4_Qu^4d7DOiwifGbRZP$~{ww^?6&nlWSkVVVqv^b6FITBG$ zp<^2nU>CmZ@vLX-W<5)OJ*#ICZLbLRq{6zMNC~^bM{V6~4)9x#$&SWqiAT&+W&YMS zimAMbfn_~WTeY&EPnMHSj5Keye_kJ^4+cn&Ee_fEHzrROQKY) zj@ycU#TtCP*AYo$X2_c?SvS8Hqn*#h*c>{3Fz2)JNv&?kg($Jk%J>AIwmEDL%bAE8 z!6yp##8brTwEmMK;E5GEMI2=we0Vi_>jrylmh>Di{A0%a`><4$%}GjvPi3nUh2)`zE`rAOJzdfD7d%_;bYCAPtvlz9}c;X}ke z`Sy@k@PAT1aPhvM1t0suCl?|f)`v6xPr)z#rr$?x#D9W^e&+>qeW;0NzIJdq`wkzP z`BE2rV%+B6D;9OoQ??zSQBYW`54HNC-~2h&%KBVCS!3t=7yV7tU;3LNpZzWVZ}Q2c zOF63Q&R|&oxy{Twe<|r|AhX+fBIQ` zp8&j}`o34>rBi-Ozxm5%bNZ1Tlup-N{CUGpUGcT9T$Wm;=}gLc!y8M4O7B}}&LI4C z273Np@5J2ybG|Ay;6pm+YZpWdems-U`|9BLRa79Vn)rvx<1TTje@^y_*rtvpOV*MzEk$PpP^=o$8pXI)inPYcjS`as18^9U#nM6 zz)q(s^qU_)6+(+L_*V2E@6Dgir|V~VDB}GT>Lq`tY{-dB@292yxA@cXH~6o?$ETKp z(6EF7`86u=ZTxCV;qUIJ^=|#V@{x0;BsZRv^{|p2A{5OhL zKf~VzA8PR7(!SBee+`wp`kDH}uOs%H9J=QE!>`Zz(>M!Q!aFJ>Dx)2IE_|su!Y5|o zQxVo~^FtMcAcwv#1H2gvCHI({aG&Y$dlqz3lT z2(DV;YbO7l^Q}79RORd^Ut?$HmG1oQes}!*sV7Q*Kay?o?U&!WDe6mq&gJu$@STnB z&*x8HKBcGYe;LvGdmHtVe?EIX(&^0Ep?=Nj{^i4$74L zCO+8o6ACYMc~tjqieS^boRN2P;THdd;u~Ea)&GR!8=?XclGN2tIKJ__AK@-yS*Y$ORu@7Y GLO%coLU&#O literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_xmas_tree/Wrapping_B_64 b/soh/assets/custom/objects/object_xmas_tree/Wrapping_B_64 new file mode 100644 index 0000000000000000000000000000000000000000..071e01a2d14759edd9b2290fc5ce341e56b3c9a5 GIT binary patch literal 8284 zcmeH~F%H5o3`GMh?HRhTatc6*r3(uKci<9q?pfIAio`{@0#~4wsUkbn0>y4Ugs5r~ zH-56?p9triJME8$S^Iw7ug~sjyFdTt?U$R+1B)(e=h|oK+<7rYTkXz^+hYncFg^eF zn4*<4EAeM_*vc)m&;m0O_CEf+_|}@LslLtkbFubv%kz7V);p^cAM~%4Vcsvze{4Pd zyB_nq)tm=;yDffRaM5==DQ(B`^R=R3O?=zupLD&^8shICdA(zPQ`zRr>mA3R7kvEm zYx!}~zb*Z1>z(??`>(HeAox1A#n;z6pMRg1v3fZFV^KXP@%i(I){D;^^kVJ&{R3(p z{s$ayx6Ri-5BT`$Zp)98{&@Y#XB>N^`H$7}zw0qSUeDkG$LL3)e_MQgz0>`{@%v1T z)k}O^`ltI&>qXkm-#?*VF+bjJo3DQ!@bTkpYmAcqZRuZI@6z&X4P~P4L zCO+8o6ACYMc~tjqieS^bo0YD0KSj+VgLXD literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_xmas_tree/Wrapping_G_64 b/soh/assets/custom/objects/object_xmas_tree/Wrapping_G_64 new file mode 100644 index 0000000000000000000000000000000000000000..6c128dbee7b80402095db1a064c2a6bcfe23a453 GIT binary patch literal 8284 zcmeHLF>b>!43xSB{zS+Aq5%pcaF=H2kSF9B{ZO~e1+w`S{X)M`8>~wll`;)P${G|w zFeO^N@WhhaK#UFV;9DPaK#UG5L&&rFrF>cRg81UTf4 literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_xmas_tree/Wrapping_R_32 b/soh/assets/custom/objects/object_xmas_tree/Wrapping_R_32 new file mode 100644 index 0000000000000000000000000000000000000000..a61f3d3867bab61b04878af87a02267c5d98332a GIT binary patch literal 2140 zcmZQzU|@)F4e@6L((m`Jy$8ZTCeeTis8RunA(|TO85n?=gMoqDlN`wD%I&%3AUQfA zdJy`z93%&NF;dI^07gv6=?a0EG7u4vEX@8BjMyN^m)OK%VubX=)ZwB7;Qq&@0>AiR z(@!Y8(B)Cx4@pzFLmX3{y82H5V*|JCpqN0HN3|b+Tw#+P?)uTg3q1_*=O4`YM%B;l zNn8Dx@r`Q#2}b<(qpQZ`54ZRy6yNCbsQxD$-w+juaHOt&!tssY{Rnpv%R+TOvAPiI G5c&a;t;;_E literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_xmas_tree/Wrapping_R_64 b/soh/assets/custom/objects/object_xmas_tree/Wrapping_R_64 new file mode 100644 index 0000000000000000000000000000000000000000..d884c2ca670c5d54467393482e1501c5c1691ee1 GIT binary patch literal 8284 zcmeH|F>(VT3`N;=9$z9iNt!L3CN5IsIKEIi*O_tWQ{)P{LSPgEUw9xMAyx%ub{1BP zp7kZM&N=tKzP&E~{{8v!6)r#h_wT{K`TTp)rqh#i{(5w7f7oK|*8Smp*@8^W#6MrQ z7%z*J_>W6Db}Nn2LQi_wWBk|U)(Ba;^*lb4+Ef0c$FcY0U;f8(BW?1r{-pJE?|#%j z?5=s}Z@0z2`fkweckUnKk6khDKKa;x{5? zTKe;P!QJwDt$%;Yenr0AZksRHx0Szo{HV6Zs#Sj)%-rYX^NU*6B;A-Rg)AI6_+HD*5f*neYGPn4Gayk62ynn~^T?@!sU$d}t~^Yzbzdi + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_tri_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_tri_0 new file mode 100644 index 000000000..bc1589a65 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_tri_0 @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_tri_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_tri_1 new file mode 100644 index 000000000..ff14442dc --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_tri_1 @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_tri_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_tri_2 new file mode 100644 index 000000000..ea5e79a96 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_tri_2 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_tri_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_tri_3 new file mode 100644 index 000000000..4280e17a5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_tri_3 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_vtx_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_vtx_0 new file mode 100644 index 000000000..2d2b533a4 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_vtx_0 @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_vtx_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_vtx_1 new file mode 100644 index 000000000..2199d0779 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_vtx_1 @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_vtx_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_vtx_2 new file mode 100644 index 000000000..e0403545a --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_vtx_2 @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_vtx_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_vtx_3 new file mode 100644 index 000000000..ae1fba294 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor100DL_vtx_3 @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL new file mode 100644 index 000000000..80f8fc81b --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_0 new file mode 100644 index 000000000..2a2601403 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_0 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_1 new file mode 100644 index 000000000..87dc5c7ca --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_1 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_2 new file mode 100644 index 000000000..d9d225ee1 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_2 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_3 new file mode 100644 index 000000000..010dfe669 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_3 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_4 new file mode 100644 index 000000000..34de1a10f --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_4 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_5 new file mode 100644 index 000000000..dbaef4a37 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_5 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_6 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_6 new file mode 100644 index 000000000..4b4aaa742 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_6 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_7 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_7 new file mode 100644 index 000000000..a3aa6c672 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_tri_7 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_0 new file mode 100644 index 000000000..189a72f78 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_0 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_1 new file mode 100644 index 000000000..491afaa21 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_1 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_2 new file mode 100644 index 000000000..1c86dfb20 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_2 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_3 new file mode 100644 index 000000000..fef6070e2 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_3 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_4 new file mode 100644 index 000000000..74ff37e83 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_4 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_5 new file mode 100644 index 000000000..e5347a692 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_5 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_6 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_6 new file mode 100644 index 000000000..57b0c83f5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_6 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_7 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_7 new file mode 100644 index 000000000..4eea9d31d --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor10DL_vtx_7 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL new file mode 100644 index 000000000..cd83c25f8 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_0 new file mode 100644 index 000000000..7410becef --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_0 @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_1 new file mode 100644 index 000000000..782f5f9e1 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_1 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_2 new file mode 100644 index 000000000..46d90cfee --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_2 @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_3 new file mode 100644 index 000000000..fcae1cb60 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_3 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_4 new file mode 100644 index 000000000..cea2d4b01 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_4 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_5 new file mode 100644 index 000000000..8e6c88ddf --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_5 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_6 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_6 new file mode 100644 index 000000000..0c0928683 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_6 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_7 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_7 new file mode 100644 index 000000000..f56472810 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_7 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_8 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_8 new file mode 100644 index 000000000..8464121eb --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_8 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_9 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_9 new file mode 100644 index 000000000..a22341bdf --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_tri_9 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_0 new file mode 100644 index 000000000..c8a3028f5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_0 @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_1 new file mode 100644 index 000000000..d7bf03045 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_1 @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_2 new file mode 100644 index 000000000..768baea65 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_2 @@ -0,0 +1,300 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_3 new file mode 100644 index 000000000..87d0b1315 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_3 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_4 new file mode 100644 index 000000000..8fb018224 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_4 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_5 new file mode 100644 index 000000000..76d9b788a --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_5 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_6 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_6 new file mode 100644 index 000000000..60cef595c --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_6 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_7 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_7 new file mode 100644 index 000000000..e590fd848 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_7 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_8 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_8 new file mode 100644 index 000000000..505f171b0 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_8 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_9 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_9 new file mode 100644 index 000000000..50c131f9c --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor20DL_vtx_9 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL new file mode 100644 index 000000000..4e4fd95aa --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_0 new file mode 100644 index 000000000..1ee54492c --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_0 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_1 new file mode 100644 index 000000000..0efacf68a --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_1 @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_2 new file mode 100644 index 000000000..e05cc11fb --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_2 @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_3 new file mode 100644 index 000000000..19917bd2e --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_3 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_4 new file mode 100644 index 000000000..f5f256b23 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_4 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_5 new file mode 100644 index 000000000..536d06f7a --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_5 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_6 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_6 new file mode 100644 index 000000000..45568173a --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_tri_6 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_0 new file mode 100644 index 000000000..509ed6529 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_0 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_1 new file mode 100644 index 000000000..49c0a080a --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_1 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_2 new file mode 100644 index 000000000..c109c19f5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_2 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_3 new file mode 100644 index 000000000..c7c1e10a6 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_3 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_4 new file mode 100644 index 000000000..a26e55df1 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_4 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_5 new file mode 100644 index 000000000..d1177d633 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_5 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_6 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_6 new file mode 100644 index 000000000..d947223ad --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor30DL_vtx_6 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL new file mode 100644 index 000000000..9da99431f --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_0 new file mode 100644 index 000000000..f94c732e4 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_0 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_1 new file mode 100644 index 000000000..348919286 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_1 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_10 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_10 new file mode 100644 index 000000000..959b692d4 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_10 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_11 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_11 new file mode 100644 index 000000000..41fb8d2b9 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_11 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_12 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_12 new file mode 100644 index 000000000..8062b5a56 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_12 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_2 new file mode 100644 index 000000000..7c52dae86 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_2 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_3 new file mode 100644 index 000000000..af7892786 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_3 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_4 new file mode 100644 index 000000000..e662f6ed6 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_4 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_5 new file mode 100644 index 000000000..22b809b3f --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_5 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_6 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_6 new file mode 100644 index 000000000..1d845ad8a --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_6 @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_7 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_7 new file mode 100644 index 000000000..12c90c209 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_7 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_8 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_8 new file mode 100644 index 000000000..bbd9078ce --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_8 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_9 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_9 new file mode 100644 index 000000000..11e6780ea --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_tri_9 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_0 new file mode 100644 index 000000000..8579d6fee --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_0 @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_1 new file mode 100644 index 000000000..b0dcceeec --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_1 @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_10 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_10 new file mode 100644 index 000000000..7d59969b3 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_10 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_11 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_11 new file mode 100644 index 000000000..ab7d95f64 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_11 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_12 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_12 new file mode 100644 index 000000000..514f00f38 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_12 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_2 new file mode 100644 index 000000000..7135901b7 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_2 @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_3 new file mode 100644 index 000000000..874e86e45 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_3 @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_4 new file mode 100644 index 000000000..8dcece79b --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_4 @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_5 new file mode 100644 index 000000000..030415bf5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_5 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_6 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_6 new file mode 100644 index 000000000..5758decfe --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_6 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_7 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_7 new file mode 100644 index 000000000..7e171bd29 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_7 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_8 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_8 new file mode 100644 index 000000000..26f056a5f --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_8 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_9 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_9 new file mode 100644 index 000000000..878f90b20 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor40DL_vtx_9 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL new file mode 100644 index 000000000..537d98d5f --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_0 new file mode 100644 index 000000000..41e8cb3c9 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_0 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_1 new file mode 100644 index 000000000..0beb4cd5f --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_1 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_2 new file mode 100644 index 000000000..a33dc9689 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_2 @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_3 new file mode 100644 index 000000000..8cd67cdeb --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_3 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_4 new file mode 100644 index 000000000..f3cb40c18 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_4 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_5 new file mode 100644 index 000000000..28c1fa004 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_tri_5 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_0 new file mode 100644 index 000000000..4bbea8de4 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_0 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_1 new file mode 100644 index 000000000..c331cabed --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_1 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_2 new file mode 100644 index 000000000..62bb3dc53 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_2 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_3 new file mode 100644 index 000000000..135764c05 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_3 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_4 new file mode 100644 index 000000000..1066194fb --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_4 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_5 new file mode 100644 index 000000000..afec2ee78 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor50DL_vtx_5 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL new file mode 100644 index 000000000..fe51b9f6b --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_0 new file mode 100644 index 000000000..1d746dde9 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_0 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_1 new file mode 100644 index 000000000..095e5d8f1 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_1 @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_2 new file mode 100644 index 000000000..b1f3c81fc --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_2 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_3 new file mode 100644 index 000000000..e88a5cffe --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_3 @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_4 new file mode 100644 index 000000000..cbc9ce14a --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_4 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_5 new file mode 100644 index 000000000..6646786c1 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_5 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_6 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_6 new file mode 100644 index 000000000..a2a881763 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_6 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_7 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_7 new file mode 100644 index 000000000..2a5440b86 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_7 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_8 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_8 new file mode 100644 index 000000000..245daae2b --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_8 @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_9 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_9 new file mode 100644 index 000000000..34a3d0b55 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_tri_9 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_0 new file mode 100644 index 000000000..b33405eec --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_0 @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_1 new file mode 100644 index 000000000..ff671566d --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_1 @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_2 new file mode 100644 index 000000000..21358026e --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_2 @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_3 new file mode 100644 index 000000000..831547972 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_3 @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_4 new file mode 100644 index 000000000..c591133b8 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_4 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_5 new file mode 100644 index 000000000..d111addad --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_5 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_6 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_6 new file mode 100644 index 000000000..2684a5759 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_6 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_7 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_7 new file mode 100644 index 000000000..a2ab6b20a --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_7 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_8 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_8 new file mode 100644 index 000000000..fed438e57 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_8 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_9 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_9 new file mode 100644 index 000000000..9f8e178ed --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor60DL_vtx_9 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL new file mode 100644 index 000000000..9d7a0b749 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_0 new file mode 100644 index 000000000..540a5e3e3 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_0 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_1 new file mode 100644 index 000000000..3b27e35d2 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_1 @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_2 new file mode 100644 index 000000000..29326efac --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_2 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_3 new file mode 100644 index 000000000..83850278e --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_3 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_4 new file mode 100644 index 000000000..38401ac4f --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_4 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_5 new file mode 100644 index 000000000..ef0b4397d --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_5 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_6 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_6 new file mode 100644 index 000000000..0df608625 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_tri_6 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_0 new file mode 100644 index 000000000..6e115c0bb --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_0 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_1 new file mode 100644 index 000000000..ce6941dc9 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_1 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_2 new file mode 100644 index 000000000..56624ffb0 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_2 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_3 new file mode 100644 index 000000000..ec758ec91 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_3 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_4 new file mode 100644 index 000000000..3e9cc0ff4 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_4 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_5 new file mode 100644 index 000000000..ac28e8fb0 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_5 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_6 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_6 new file mode 100644 index 000000000..0cf3101e0 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor70DL_vtx_6 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL new file mode 100644 index 000000000..ba14f553d --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_0 new file mode 100644 index 000000000..233c5e5b7 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_0 @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_1 new file mode 100644 index 000000000..160f85e33 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_1 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_2 new file mode 100644 index 000000000..712db2ead --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_2 @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_3 new file mode 100644 index 000000000..567f9bbfa --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_3 @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_4 new file mode 100644 index 000000000..ed60abbb9 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_4 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_5 new file mode 100644 index 000000000..9d0125976 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_5 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_6 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_6 new file mode 100644 index 000000000..011391daa --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_6 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_7 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_7 new file mode 100644 index 000000000..ae4be6ebd --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_7 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_8 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_8 new file mode 100644 index 000000000..b7a34eb1d --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_tri_8 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_0 new file mode 100644 index 000000000..4e538463f --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_0 @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_1 new file mode 100644 index 000000000..1c7a6b49c --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_1 @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_2 new file mode 100644 index 000000000..2717d84f0 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_2 @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_3 new file mode 100644 index 000000000..e5f479fc4 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_3 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_4 new file mode 100644 index 000000000..5e1500678 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_4 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_5 new file mode 100644 index 000000000..e00362088 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_5 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_6 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_6 new file mode 100644 index 000000000..e67313e14 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_6 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_7 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_7 new file mode 100644 index 000000000..7acc51f2a --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_7 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_8 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_8 new file mode 100644 index 000000000..c3ac2ef36 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor80DL_vtx_8 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL new file mode 100644 index 000000000..f96deccc4 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_0 new file mode 100644 index 000000000..aaf575f3e --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_0 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_1 new file mode 100644 index 000000000..17e2bbb14 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_1 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_2 new file mode 100644 index 000000000..45f70fca8 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_2 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_3 new file mode 100644 index 000000000..501540e99 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_3 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_4 new file mode 100644 index 000000000..6aa20edeb --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_4 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_5 new file mode 100644 index 000000000..9f5515c3b --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_5 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_6 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_6 new file mode 100644 index 000000000..e8b2ebe15 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_6 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_7 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_7 new file mode 100644 index 000000000..e8686cfeb --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_tri_7 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_0 new file mode 100644 index 000000000..4bf94f75a --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_0 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_1 new file mode 100644 index 000000000..a3e163984 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_1 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_2 new file mode 100644 index 000000000..5075a9732 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_2 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_3 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_3 new file mode 100644 index 000000000..7b0fce1b2 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_3 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_4 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_4 new file mode 100644 index 000000000..240d7afe2 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_4 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_5 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_5 new file mode 100644 index 000000000..adf5dfa9b --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_5 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_6 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_6 new file mode 100644 index 000000000..5e02e04d8 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_6 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_7 b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_7 new file mode 100644 index 000000000..f92e3d98d --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasDecor90DL_vtx_7 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasStarDL b/soh/assets/custom/objects/object_xmas_tree/gXmasStarDL new file mode 100644 index 000000000..2bad08d2d --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasStarDL @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasStarDL_tri_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasStarDL_tri_0 new file mode 100644 index 000000000..79b9903f8 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasStarDL_tri_0 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasStarDL_tri_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasStarDL_tri_1 new file mode 100644 index 000000000..0f82cf893 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasStarDL_tri_1 @@ -0,0 +1,390 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasStarDL_vtx_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasStarDL_vtx_0 new file mode 100644 index 000000000..a990fc5af --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasStarDL_vtx_0 @@ -0,0 +1,6 @@ + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasStarDL_vtx_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasStarDL_vtx_1 new file mode 100644 index 000000000..746770594 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasStarDL_vtx_1 @@ -0,0 +1,347 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL b/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL new file mode 100644 index 000000000..c343cfe2a --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_tri_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_tri_0 new file mode 100644 index 000000000..38cdbe014 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_tri_0 @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_tri_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_tri_1 new file mode 100644 index 000000000..ff4e066a5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_tri_1 @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_tri_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_tri_2 new file mode 100644 index 000000000..561d3ac5e --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_tri_2 @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_vtx_0 b/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_vtx_0 new file mode 100644 index 000000000..94e5e1fef --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_vtx_0 @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_vtx_1 b/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_vtx_1 new file mode 100644 index 000000000..01ed88a14 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_vtx_1 @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_vtx_2 b/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_vtx_2 new file mode 100644 index 000000000..fd03778f8 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/gXmasTreeDL_vtx_2 @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/hilite_melon b/soh/assets/custom/objects/object_xmas_tree/hilite_melon new file mode 100644 index 0000000000000000000000000000000000000000..df1d605b38e65151f7f23aa1a0bbcba40252a1c8 GIT binary patch literal 2140 zcma)+EsWzx5QTG#js}LUp`oGCN|BCaz)H!1lMM|UHZ(b4m|+RCp{`L{*-!Hq} z`{&QyZhnroT#ozG1v}r%rHwn+ubpe-TPt%$Z)#sI*@TyEt_5ecpPxfw8}MK|HzY&S z##LnUY&zd%*<|u6Qe0=Ms5lgdashuW9-TAi`{`nGXGS|(XUgS#Kkhe6-;&q(C3!tv z(AKX*f{)3|rHZO(NK6j%kdR63vnhQOHhsg;l}%_lUDCH~s(rtXwqLJ>ZA@-*+nn#H z5E?EFWq4)2p{`(BtSe?*5cy!l-iHl$2m*c)Ts7~;+X^wjoobT!-HNe7# zVmcmO8?zm-Y`V3)>feP+usm)ZpU z2ZG%MUiXS9qvcHVqZoYSCp`Xmfr59Nf2jy~vQXn;328y7{;~mtCpWM+wjE|;w@>MnIobY;rPzE7Fz{pEjHV-EKV%NDCLxfNb zd4wJZG*9IpG$?B+pwhfoEO^QJN7F7;1*KH^2GyaaQb&xBCM6phufVPdR1(h6qb-iG WoJf;Se#T3`d_vWDf(%%_7svl_`n}`; literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor100DL_f3dlite_Wrapping_B_64 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor100DL_f3dlite_Wrapping_B_64 new file mode 100644 index 000000000..e2cb1c6af --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor100DL_f3dlite_Wrapping_B_64 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor100DL_f3dlite_Wrapping_G_32 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor100DL_f3dlite_Wrapping_G_32 new file mode 100644 index 000000000..5f67d4de1 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor100DL_f3dlite_Wrapping_G_32 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor100DL_f3dlite_Wrapping_R_32 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor100DL_f3dlite_Wrapping_R_32 new file mode 100644 index 000000000..f330997c2 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor100DL_f3dlite_Wrapping_R_32 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor100DL_f3dlite_Wrapping_R_64 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor100DL_f3dlite_Wrapping_R_64 new file mode 100644 index 000000000..ddba85e48 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor100DL_f3dlite_Wrapping_R_64 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble1_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble1_B new file mode 100644 index 000000000..0562ad514 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble1_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble1_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble1_G new file mode 100644 index 000000000..424720964 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble1_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble1_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble1_R new file mode 100644 index 000000000..ed8997bac --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble1_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble2_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble2_B new file mode 100644 index 000000000..a2fb86662 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble2_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble2_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble2_G new file mode 100644 index 000000000..a3ebffce5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble2_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble2_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble2_R new file mode 100644 index 000000000..780bee1c5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble2_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble3_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble3_G new file mode 100644 index 000000000..5ec29067d --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble3_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble3_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble3_R new file mode 100644 index 000000000..6bfad5f53 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor10DL_f3dlite_Bauble3_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble1_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble1_B new file mode 100644 index 000000000..0562ad514 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble1_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble1_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble1_R new file mode 100644 index 000000000..ed8997bac --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble1_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble2_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble2_B new file mode 100644 index 000000000..a2fb86662 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble2_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble2_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble2_G new file mode 100644 index 000000000..a3ebffce5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble2_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble2_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble2_R new file mode 100644 index 000000000..780bee1c5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble2_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble3_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble3_B new file mode 100644 index 000000000..7af3c0fdf --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble3_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble3_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble3_G new file mode 100644 index 000000000..5ec29067d --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Bauble3_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Wrapping_B_32 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Wrapping_B_32 new file mode 100644 index 000000000..1425245e0 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Wrapping_B_32 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Wrapping_G_64 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Wrapping_G_64 new file mode 100644 index 000000000..c3a973f39 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Wrapping_G_64 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Wrapping_R_32 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Wrapping_R_32 new file mode 100644 index 000000000..f330997c2 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor20DL_f3dlite_Wrapping_R_32 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble1_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble1_B new file mode 100644 index 000000000..0562ad514 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble1_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble1_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble1_G new file mode 100644 index 000000000..424720964 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble1_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble1_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble1_R new file mode 100644 index 000000000..ed8997bac --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble1_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble2_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble2_B new file mode 100644 index 000000000..a2fb86662 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble2_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble2_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble2_G new file mode 100644 index 000000000..a3ebffce5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble2_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble3_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble3_B new file mode 100644 index 000000000..7af3c0fdf --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble3_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble3_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble3_R new file mode 100644 index 000000000..6bfad5f53 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor30DL_f3dlite_Bauble3_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble1_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble1_B new file mode 100644 index 000000000..0562ad514 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble1_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble1_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble1_R new file mode 100644 index 000000000..ed8997bac --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble1_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble2_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble2_B new file mode 100644 index 000000000..a2fb86662 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble2_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble2_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble2_G new file mode 100644 index 000000000..a3ebffce5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble2_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble2_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble2_R new file mode 100644 index 000000000..780bee1c5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble2_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble3_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble3_B new file mode 100644 index 000000000..7af3c0fdf --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble3_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble3_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble3_G new file mode 100644 index 000000000..5ec29067d --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble3_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble3_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble3_R new file mode 100644 index 000000000..6bfad5f53 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Bauble3_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_B_32 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_B_32 new file mode 100644 index 000000000..1425245e0 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_B_32 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_G_32 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_G_32 new file mode 100644 index 000000000..5f67d4de1 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_G_32 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_G_64 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_G_64 new file mode 100644 index 000000000..c3a973f39 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_G_64 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_R_32 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_R_32 new file mode 100644 index 000000000..f330997c2 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_R_32 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_R_64 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_R_64 new file mode 100644 index 000000000..ddba85e48 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor40DL_f3dlite_Wrapping_R_64 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble1_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble1_B new file mode 100644 index 000000000..0562ad514 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble1_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble1_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble1_G new file mode 100644 index 000000000..424720964 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble1_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble2_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble2_G new file mode 100644 index 000000000..a3ebffce5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble2_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble2_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble2_R new file mode 100644 index 000000000..780bee1c5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble2_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble3_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble3_B new file mode 100644 index 000000000..7af3c0fdf --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble3_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble3_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble3_R new file mode 100644 index 000000000..6bfad5f53 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor50DL_f3dlite_Bauble3_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble1_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble1_B new file mode 100644 index 000000000..0562ad514 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble1_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble1_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble1_G new file mode 100644 index 000000000..424720964 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble1_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble1_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble1_R new file mode 100644 index 000000000..ed8997bac --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble1_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble2_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble2_G new file mode 100644 index 000000000..a3ebffce5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble2_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble2_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble2_R new file mode 100644 index 000000000..780bee1c5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble2_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble3_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble3_G new file mode 100644 index 000000000..5ec29067d --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Bauble3_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Wrapping_B_64 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Wrapping_B_64 new file mode 100644 index 000000000..e2cb1c6af --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Wrapping_B_64 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Wrapping_G_32 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Wrapping_G_32 new file mode 100644 index 000000000..5f67d4de1 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Wrapping_G_32 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Wrapping_R_32 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Wrapping_R_32 new file mode 100644 index 000000000..f330997c2 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Wrapping_R_32 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Wrapping_R_64 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Wrapping_R_64 new file mode 100644 index 000000000..ddba85e48 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor60DL_f3dlite_Wrapping_R_64 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble1_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble1_G new file mode 100644 index 000000000..424720964 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble1_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble1_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble1_R new file mode 100644 index 000000000..ed8997bac --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble1_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble2_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble2_G new file mode 100644 index 000000000..a3ebffce5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble2_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble2_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble2_R new file mode 100644 index 000000000..780bee1c5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble2_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble3_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble3_B new file mode 100644 index 000000000..7af3c0fdf --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble3_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble3_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble3_G new file mode 100644 index 000000000..5ec29067d --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble3_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble3_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble3_R new file mode 100644 index 000000000..6bfad5f53 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor70DL_f3dlite_Bauble3_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble1_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble1_B new file mode 100644 index 000000000..0562ad514 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble1_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble1_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble1_R new file mode 100644 index 000000000..ed8997bac --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble1_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble2_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble2_G new file mode 100644 index 000000000..a3ebffce5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble2_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble3_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble3_B new file mode 100644 index 000000000..7af3c0fdf --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble3_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble3_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble3_G new file mode 100644 index 000000000..5ec29067d --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble3_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble3_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble3_R new file mode 100644 index 000000000..6bfad5f53 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Bauble3_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Wrapping_B_32 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Wrapping_B_32 new file mode 100644 index 000000000..1425245e0 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Wrapping_B_32 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Wrapping_G_32 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Wrapping_G_32 new file mode 100644 index 000000000..5f67d4de1 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Wrapping_G_32 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Wrapping_R_32 b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Wrapping_R_32 new file mode 100644 index 000000000..f330997c2 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor80DL_f3dlite_Wrapping_R_32 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble1_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble1_B new file mode 100644 index 000000000..0562ad514 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble1_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble1_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble1_G new file mode 100644 index 000000000..424720964 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble1_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble1_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble1_R new file mode 100644 index 000000000..ed8997bac --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble1_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble2_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble2_B new file mode 100644 index 000000000..a2fb86662 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble2_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble2_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble2_R new file mode 100644 index 000000000..780bee1c5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble2_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble3_B b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble3_B new file mode 100644 index 000000000..7af3c0fdf --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble3_B @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble3_G b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble3_G new file mode 100644 index 000000000..5ec29067d --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble3_G @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble3_R b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble3_R new file mode 100644 index 000000000..6bfad5f53 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasDecor90DL_f3dlite_Bauble3_R @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasStarDL_f3dlite_Glow b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasStarDL_f3dlite_Glow new file mode 100644 index 000000000..381668c5c --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasStarDL_f3dlite_Glow @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasStarDL_f3dlite_OrnamentGold b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasStarDL_f3dlite_OrnamentGold new file mode 100644 index 000000000..b657da8a7 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasStarDL_f3dlite_OrnamentGold @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasTreeDL_f3dlite_TreeBrown b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasTreeDL_f3dlite_TreeBrown new file mode 100644 index 000000000..37fdb10d2 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasTreeDL_f3dlite_TreeBrown @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasTreeDL_f3dlite_TreeGreen b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasTreeDL_f3dlite_TreeGreen new file mode 100644 index 000000000..119341c70 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasTreeDL_f3dlite_TreeGreen @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_xmas_tree/mat_gXmasTreeDL_f3dlite_TreeTip b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasTreeDL_f3dlite_TreeTip new file mode 100644 index 000000000..9baaadbf5 --- /dev/null +++ b/soh/assets/custom/objects/object_xmas_tree/mat_gXmasTreeDL_f3dlite_TreeTip @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/textures/parameter_static/gTriforcePiece.rgba32.png b/soh/assets/custom/textures/parameter_static/gTriforcePiece.rgba32.png index cc67b6a133d237ccada031e4efa53358a9f77415..eace659af2937bf5145a4ea2101f3d15fb42d749 100644 GIT binary patch delta 963 zcmV;!13diU4cG^eBYy**Nkl-erC(%@_z_GV`-X3Hk(Zt(;EBz{(lisj}hp)&ZEnAyY+{| zL7a24SS$oq_#Xmnv;y1^z!3`^drW8lLV)13z+bdSU2sN%nII1mx|_hhETu!>0nH=& zgmCO7y5$1Q)gm7L$O>dh`SJ001PI{SpR(nB0AXt5Wi$h(o>-Ei;xJsbr zkG1|Af#zUhJAVSs(T((0$aUVK?~synkag>|@0`oZE7@_8KmbRv`Eo9dpB1E45K-V_ zw69Wf%npGY%xdLfjSSZK9RX^-g%E1^Y;Bn8blk|v0w5{o?TxV^4K-zHmOd^RGcD$d z>RCJF2TxMRSfy`akFjDfGOKI$=Fs3l0kpaAiEhkt@p%x2Qobs!;1knm`o+68KV_M*A>i+gcT+PI&9>zGN%v)K7#8wSD~RZ*q|YSk8Sv_ zWF3f>Rev?H!h`@8`{3JAWuq^T?*kH!+QG*;t#B05p6%sYI>;c7#%*eW*jaR_9ZkyT zKxnH%32ynsH;Wj^nJpK}aUkaVO{$yuF)%J_*g7 zkA)@*I;#OXrg@#53RCn%=lp2#%BTHUa5PSzi$rTdez2z0Mo0Q!%aYi2){44Yn4G;}IJzF+O${MjSwYrAdFIdu{P*ta$dhs}}PyEX>4Tx04R}tkvm8OK@>$#q7o55g(*ZV zwooh6_`@m6%w^@cVnWE-Gto)8%x1fu<+CPD{QQ_wXhWg!4HV7jg_K}$oeJ; zB#3cfn8Tg9kN56?|1e`(ZhaUmJMY9MB3e8#uLWKR;0K0i)qhPlHyVvjQFDFX;Zx^r zNY$$S?$6bdTy{zbZ}_Sv5`2 znT?GJ2ZgnC6&qD-t~i$Ppm2B6vZcO1UgD(Ub;VYuV3zw-6E-i~b2Cbp-NgixOcO=J zpuj2_@`U8HMSpRL$$g}Tzq9C%ipvn!DyBHb$zq`w{ir|qovoW1=r2`jjzGh+=e_qp zU>m--Jn!qs^S+Ov?g=jKia&b@BOjt~RkZE{Xxo7EtBPjqz{MtXJmz#qFG_W?{izhZ zoys>Qp#27#7D~C5?>V`LS;=bZ8us>~H!ZanYs}qPoqyZEZ_4@o09fvFoKE6Ny8r+H z24YJ`L;(K){{a7>y{D4^000SaNLh0L04^f{04^f|c%?sf00007bV*G`2j>R@05~11 zB}F3u000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000D`Nkl*CyLqk)>Ht*d-+;Lbhgp6~blzwbN- zR_q>Z^quU}_d17I?uTC<&OICW)o&{maWz654S#~-XKx*wZ2T_(pB`A1u&vUM(omZk zb*RoS$y@^-*`u(Q>To)`0X3Ma46IeFna?tg`4?v3c*!VtY!+irdF;pmK zvfU%D3yuq(2d1fIpPPksTXZcrcAN^Ol0pO*PQN$k-4}pNwlANTk4u9fzTgw$p}2Ro8)I z!~DE%rU^m>+g^Ak`PhN+dXY%nBDPl0ViE)VP0>oh3^ zME({cPTduNZ8uL#q0Cf%!AJ#!8bS!IfVm(Yoeos18mPYj1I3;SAVmA+6GPsPB>{Xj z>b({Q{*!%!+7VIg*oUYKkq?p5eSc=Gf@y(iKzT}oNC^XjkW4Owm>(T|H}%*Z0nQ#N z3`WX7oXP5{jzaBFbs&ga=xcd}h#fD0kP;^UikG6&E2rMjP@OIbqSpE2Z`(=YtS&Og znHzT9Af3uU7(f(h`Y4V9VpX`EhA09f)Xz%krCF`$&FRJsXm>ywP_IHZqkr6TB^$!@ zVt{kQ+2<{5?xl2AZ!S@!9Y>MQLht;J;vW%uVj1bkWqe2h%*<%OsS>Oz!dwl~DKHGq z92lQ&FH&G^Um@YSv&T~zJy96mu6Tr=xEFa8=_cZLQs^{LM|4Czr=7O$yLnTO zHO<>fxQ_TCP{u2}js?H`JLR_&@Djmx*Hea+I?9$S3J4)kYI%|>~q+0NyVhT$}J9`5|QaQx-7#m$a0d#POV*I&6p&G*4`aqA6g>6B~& z+jozs?;psm_*UWWUrU|8b}cA0TcwF~$`hd)2tOG6L#_O2S+Nycs{IYasqc-%MFide o000hUSV?A0O#mtY000O800000007cclK=n!07*qoM6N<$f*W2pwEzGB diff --git a/soh/assets/soh_assets.h b/soh/assets/soh_assets.h index aa50cb4a3..5912aaa30 100644 --- a/soh/assets/soh_assets.h +++ b/soh/assets/soh_assets.h @@ -8,6 +8,27 @@ // On Mac, not using aligned resource names was causing crashes in release builds // objects +#define dgLinkAdultHatTrimDL "__OTR__objects/object_festivehats/gLinkAdultHatTrimDL" +static const ALIGN_ASSET(2) char gLinkAdultHatTrimDL[] = dgLinkAdultHatTrimDL; + +#define dgLinkAdultPompomDL "__OTR__objects/object_festivehats/gLinkAdultPompomDL" +static const ALIGN_ASSET(2) char gLinkAdultPompomDL[] = dgLinkAdultPompomDL; + +#define dgLinkChildHatTrimDL "__OTR__objects/object_festivehats/gLinkChildHatTrimDL" +static const ALIGN_ASSET(2) char gLinkChildHatTrimDL[] = dgLinkChildHatTrimDL; + +#define dgPaperCrownGenericDL "__OTR__objects/object_festivehats/gPaperCrownGenericDL" +static const ALIGN_ASSET(2) char gPaperCrownGenericDL[] = dgPaperCrownGenericDL; + +#define dgSantaHatGenericDL "__OTR__objects/object_festivehats/gSantaHatGenericDL" +static const ALIGN_ASSET(2) char gSantaHatGenericDL[] = dgSantaHatGenericDL; + +#define dgHorseAntlersDL "__OTR__objects/object_festivehats/gHorseAntlersDL" +static const ALIGN_ASSET(2) char gHorseAntlersDL[] = dgHorseAntlersDL; + +#define dgEponaRudolphHatDL "__OTR__objects/object_festivehats/gEponaRudolphHatDL" +static const ALIGN_ASSET(2) char gEponaRudolphHatDL[] = dgEponaRudolphHatDL; + #define dgChristmasGreenTreasureChestFrontTex "__OTR__objects/object_box/gChristmasGreenTreasureChestFrontTex" static const ALIGN_ASSET(2) char gChristmasGreenTreasureChestFrontTex[] = dgChristmasGreenTreasureChestFrontTex; @@ -146,6 +167,54 @@ static const ALIGN_ASSET(2) char gFishingPoleGiDL[] = dgFishingPoleGiDL; #define dgMysteryItemDL "__OTR__objects/object_mystery_item/gMysteryItemDL" static const ALIGN_ASSET(2) char gMysteryItemDL[] = dgMysteryItemDL; +#define dgXmasTreeDL "__OTR__objects/object_xmas_tree/gXmasTreeDL" +static const ALIGN_ASSET(2) char gXmasTreeDL[] = dgXmasTreeDL; + +#define dgXmasDecor10DL "__OTR__objects/object_xmas_tree/gXmasDecor10DL" +static const ALIGN_ASSET(2) char gXmasDecor10DL[] = dgXmasDecor10DL; + +#define dgXmasDecor20DL "__OTR__objects/object_xmas_tree/gXmasDecor20DL" +static const ALIGN_ASSET(2) char gXmasDecor20DL[] = dgXmasDecor20DL; + +#define dgXmasDecor30DL "__OTR__objects/object_xmas_tree/gXmasDecor30DL" +static const ALIGN_ASSET(2) char gXmasDecor30DL[] = dgXmasDecor30DL; + +#define dgXmasDecor40DL "__OTR__objects/object_xmas_tree/gXmasDecor40DL" +static const ALIGN_ASSET(2) char gXmasDecor40DL[] = dgXmasDecor40DL; + +#define dgXmasDecor50DL "__OTR__objects/object_xmas_tree/gXmasDecor50DL" +static const ALIGN_ASSET(2) char gXmasDecor50DL[] = dgXmasDecor50DL; + +#define dgXmasDecor60DL "__OTR__objects/object_xmas_tree/gXmasDecor60DL" +static const ALIGN_ASSET(2) char gXmasDecor60DL[] = dgXmasDecor60DL; + +#define dgXmasDecor70DL "__OTR__objects/object_xmas_tree/gXmasDecor70DL" +static const ALIGN_ASSET(2) char gXmasDecor70DL[] = dgXmasDecor70DL; + +#define dgXmasDecor80DL "__OTR__objects/object_xmas_tree/gXmasDecor80DL" +static const ALIGN_ASSET(2) char gXmasDecor80DL[] = dgXmasDecor80DL; + +#define dgXmasDecor90DL "__OTR__objects/object_xmas_tree/gXmasDecor90DL" +static const ALIGN_ASSET(2) char gXmasDecor90DL[] = dgXmasDecor90DL; + +#define dgXmasDecor100DL "__OTR__objects/object_xmas_tree/gXmasDecor100DL" +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 dgKakarikoDecorDL "__OTR__objects/object_kakariko_decor/gKakarikoDecorDL" +static const ALIGN_ASSET(2) char gKakarikoDecorDL[] = dgKakarikoDecorDL; + +#define dgTempleOfTimeDecorDL "__OTR__objects/object_temple_of_time_decor/gTempleOfTimeDecorDL" +static const ALIGN_ASSET(2) char gTempleOfTimeDecorDL[] = dgTempleOfTimeDecorDL; + +#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; + #define dgBombchuBagBodyDL "__OTR__objects/object_bombchubag/gBombchuBagBodyDL" static const ALIGN_ASSET(2) char gBombchuBagBodyDL[] = dgBombchuBagBodyDL; diff --git a/soh/soh/ActorDB.cpp b/soh/soh/ActorDB.cpp index 70ea29675..3c0df4db3 100644 --- a/soh/soh/ActorDB.cpp +++ b/soh/soh/ActorDB.cpp @@ -612,8 +612,61 @@ static ActorDBInit EnPartnerInit = { }; extern "C" s16 gEnPartnerId; +#include "src/overlays/actors/ovl_En_Snowball/z_en_snowball.h" +static ActorDBInit EnSnowballInit = { + "En_Snowball", + "Snowball", + ACTORCAT_ITEMACTION, + (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR | + ACTOR_FLAG_CAN_PRESS_SWITCHES), + OBJECT_GAMEPLAY_KEEP, + sizeof(EnSnowball), + (ActorFunc)EnSnowball_Init, + (ActorFunc)EnSnowball_Destroy, + (ActorFunc)EnSnowball_Update, + (ActorFunc)EnSnowball_Draw, + nullptr, +}; +extern "C" s16 gEnSnowballId; + +#include "src/overlays/actors/ovl_En_ChristmasTree/z_en_christmastree.h" +static ActorDBInit EnChristmasTreeInit = { + "En_ChristmasTree", + "Christmas Tree", + ACTORCAT_PROP, + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED | + ACTOR_FLAG_DRAW_CULLING_DISABLED), + OBJECT_GAMEPLAY_KEEP, + sizeof(EnChristmasTree), + (ActorFunc)EnChristmasTree_Init, + (ActorFunc)EnChristmasTree_Destroy, + (ActorFunc)EnChristmasTree_Update, + (ActorFunc)EnChristmasTree_Draw, + nullptr, +}; +extern "C" s16 gEnChristmasTreeId; + +#include "src/overlays/actors/ovl_En_ChristmasDeco/z_en_christmasdeco.h" +static ActorDBInit EnChristmasDecoInit = { + "En_ChristmasDeco", + "Christmas Decos", + ACTORCAT_PROP, + (ACTOR_FLAG_DRAW_CULLING_DISABLED), + OBJECT_GAMEPLAY_KEEP, + sizeof(EnChristmasDeco), + (ActorFunc)EnChristmasDeco_Init, + (ActorFunc)EnChristmasDeco_Destroy, + (ActorFunc)EnChristmasDeco_Update, + (ActorFunc)EnChristmasDeco_Draw, + nullptr, +}; +extern "C" s16 gEnChristmasDecoId; + void ActorDB::AddBuiltInCustomActors() { gEnPartnerId = ActorDB::Instance->AddEntry(EnPartnerInit).entry.id; + gEnSnowballId = ActorDB::Instance->AddEntry(EnSnowballInit).entry.id; + gEnChristmasTreeId = ActorDB::Instance->AddEntry(EnChristmasTreeInit).entry.id; + gEnChristmasDecoId = ActorDB::Instance->AddEntry(EnChristmasDecoInit).entry.id; } extern "C" ActorDBEntry* ActorDB_Retrieve(const int id) { diff --git a/soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp b/soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp index 314b92b40..926799bb6 100644 --- a/soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp +++ b/soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp @@ -48,6 +48,13 @@ extern "C" { #include "textures/nintendo_rogo_static/nintendo_rogo_static.h" #include "objects/object_gi_rabit_mask/object_gi_rabit_mask.h" #include "overlays/ovl_Magic_Wind/ovl_Magic_Wind.h" +#include "objects/object_wood02/object_wood02.h" +#include "scenes/overworld/spot00/spot00_room_0.h" +#include "scenes/overworld/spot04/spot04_room_0.h" +#include "scenes/overworld/spot04/spot04_room_1.h" +#include "scenes/overworld/spot20/spot20_room_0.h" +#include "scenes/overworld/spot03/spot03_room_0.h" +#include "scenes/overworld/spot15/spot15_room_0.h" extern PlayState* gPlayState; void ResourceMgr_PatchGfxByName(const char* path, const char* patchName, int index, Gfx instruction); @@ -198,9 +205,9 @@ Color_RGBA8 ColorRGBA8(uint8_t r, uint8_t g, uint8_t b, uint8_t a) { colors were darker than the gDPSetPrimColor. You will see many more examples of this below in the `ApplyOrResetCustomGfxPatches` method */ static std::map cosmeticOptions = { - COSMETIC_OPTION("Link.KokiriTunic", "Kokiri Tunic", COSMETICS_GROUP_LINK, ColorRGBA8( 30, 105, 27, 255), false, true, false), - COSMETIC_OPTION("Link.GoronTunic", "Goron Tunic", COSMETICS_GROUP_LINK, ColorRGBA8(100, 20, 0, 255), false, true, false), - COSMETIC_OPTION("Link.ZoraTunic", "Zora Tunic", COSMETICS_GROUP_LINK, ColorRGBA8( 0, 60, 100, 255), false, true, false), + COSMETIC_OPTION("Link.KokiriTunic", "Kokiri Tunic", COSMETICS_GROUP_LINK, ColorRGBA8(255, 0, 0, 255), false, true, false), + COSMETIC_OPTION("Link.GoronTunic", "Goron Tunic", COSMETICS_GROUP_LINK, ColorRGBA8(255, 0, 0, 255), false, true, false), + COSMETIC_OPTION("Link.ZoraTunic", "Zora Tunic", COSMETICS_GROUP_LINK, ColorRGBA8(255, 0, 0, 255), false, true, false), COSMETIC_OPTION("Link.Hair", "Hair", COSMETICS_GROUP_LINK, ColorRGBA8(255, 173, 27, 255), false, true, true), COSMETIC_OPTION("Link.Linen", "Linen", COSMETICS_GROUP_LINK, ColorRGBA8(255, 255, 255, 255), false, true, true), COSMETIC_OPTION("Link.Boots", "Boots", COSMETICS_GROUP_LINK, ColorRGBA8( 93, 44, 18, 255), false, true, true), @@ -251,7 +258,7 @@ static std::map cosmeticOptions = { COSMETIC_OPTION("Consumable.DDHeartBorder", "DD Heart Border", COSMETICS_GROUP_CONSUMABLE, ColorRGBA8(255, 255, 255, 255), false, true, true), COSMETIC_OPTION("Consumable.Magic", "Magic", COSMETICS_GROUP_CONSUMABLE, ColorRGBA8( 0, 200, 0, 255), false, true, false), COSMETIC_OPTION("Consumable.MagicActive", "Magic Active", COSMETICS_GROUP_CONSUMABLE, ColorRGBA8(250, 250, 0, 255), false, true, true), - COSMETIC_OPTION("Consumable_MagicInfinite", "Infinite Magic", COSMETICS_GROUP_CONSUMABLE, ColorRGBA8( 0, 0, 200, 255), false, true, true), + COSMETIC_OPTION("Consumable.MagicInfinite", "Infinite Magic", COSMETICS_GROUP_CONSUMABLE, ColorRGBA8( 0, 0, 200, 255), false, true, true), COSMETIC_OPTION("Consumable.MagicBorder", "Magic Border", COSMETICS_GROUP_CONSUMABLE, ColorRGBA8(255, 255, 255, 255), false, true, true), COSMETIC_OPTION("Consumable.MagicBorderActive", "Magic Border Active", COSMETICS_GROUP_CONSUMABLE, ColorRGBA8(255, 255, 255, 255), false, true, true), COSMETIC_OPTION("Consumable.GreenRupee", "Green Rupee", COSMETICS_GROUP_CONSUMABLE, ColorRGBA8( 50, 255, 50, 255), false, true, true), @@ -439,7 +446,7 @@ static std::map cosmeticOptions = { COSMETIC_OPTION("NPC.Dog1", "Dog 1", COSMETICS_GROUP_NPC, ColorRGBA8(255, 255, 200, 255), false, true, true), COSMETIC_OPTION("NPC.Dog2", "Dog 2", COSMETICS_GROUP_NPC, ColorRGBA8(150, 100, 50, 255), false, true, true), COSMETIC_OPTION("NPC.GoldenSkulltula", "Golden Skulltula", COSMETICS_GROUP_NPC, ColorRGBA8(255, 255, 255, 255), false, true, false), - COSMETIC_OPTION("NPC.Kokiri", "Kokiri", COSMETICS_GROUP_NPC, ColorRGBA8( 0, 130, 70, 255), false, true, false), + COSMETIC_OPTION("NPC.Kokiri", "Kokiri", COSMETICS_GROUP_NPC, ColorRGBA8(255, 0, 0, 255), false, true, false), COSMETIC_OPTION("NPC.Gerudo", "Gerudo", COSMETICS_GROUP_NPC, ColorRGBA8( 90, 0, 140, 255), false, true, false), COSMETIC_OPTION("NPC.MetalTrap", "Metal Trap", COSMETICS_GROUP_NPC, ColorRGBA8(255, 255, 255, 255), false, true, true), COSMETIC_OPTION("NPC.IronKnuckles", "Iron Knuckles", COSMETICS_GROUP_NPC, ColorRGBA8(245, 255, 205, 255), false, true, false), @@ -566,6 +573,23 @@ void CosmeticsUpdateTick() { 5. GFX Command: The GFX command you want to insert */ void ApplyOrResetCustomGfxPatches(bool manualChange) { + if (manualChange) { + PATCH_GFX(object_wood02_DL_007968, "Tree1", "gLetItSnow", 17, gsDPSetPrimColor(0, 0, 255, 255, 255, 255)); + PATCH_GFX(object_wood02_DL_000090, "Tree2", "gLetItSnow", 17, gsDPSetPrimColor(0, 0, 200, 255, 255, 255)); + PATCH_GFX(object_wood02_DL_000340, "Tree3", "gLetItSnow", 17, gsDPSetPrimColor(0, 0, 255, 255, 255, 255)); + PATCH_GFX(object_wood02_DL_000340, "Tree4", "gLetItSnow", 24, gsDPSetPrimColor(0, 0, 255, 255, 255, 255)); + PATCH_GFX(spot00_room_0DL_0139A8, "Path1", "gLetItSnow", 23, gsDPSetPrimColor(0, 0, 100, 150, 255, 60)); + PATCH_GFX(spot00_room_0DL_013250, "Path2", "gLetItSnow", 23, gsDPSetPrimColor(0, 0, 100, 150, 255, 60)); + PATCH_GFX(spot00_room_0DL_0143C8, "Path3", "gLetItSnow", 23, gsDPSetPrimColor(0, 0, 100, 150, 255, 60)); + PATCH_GFX(spot04_room_0DL_018048, "Path4", "gLetItSnow", 24, gsDPSetPrimColor(0, 0, 100, 150, 255, 60)); + PATCH_GFX(spot04_room_1DL_007810, "Path5", "gLetItSnow", 24, gsDPSetPrimColor(0, 0, 100, 150, 255, 60)); + PATCH_GFX(spot20_room_0DL_0062D0, "Path6", "gLetItSnow", 23, gsDPSetPrimColor(0, 0, 200, 230, 255, 30)); + PATCH_GFX(spot20_room_0DL_004460, "Path8", "gLetItSnow", 31, gsDPSetPrimColor(0, 0, 200, 230, 255, 30)); + PATCH_GFX(spot20_room_0DL_004460, "Path9", "gLetItSnow", 118, gsDPSetPrimColor(0, 0, 200, 230, 255, 30)); + PATCH_GFX(spot20_room_0DL_0065E8, "Path10", "gLetItSnow", 24, gsDPSetPrimColor(0, 0, 200, 230, 255, 30)); + PATCH_GFX(spot03_room_0DL_00C4B0, "Path11", "gLetItSnow", 23, gsDPSetPrimColor(0, 0, 200, 230, 255, 30)); + PATCH_GFX(spot15_room_0DL_00C748, "Path12", "gLetItSnow", 23, gsDPSetPrimColor(0, 0, 200, 230, 255, 30)); + } static CosmeticOption& magicFaroresPrimary = cosmeticOptions.at("Magic.FaroresPrimary"); if (manualChange || CVarGetInteger(magicFaroresPrimary.rainbowCvar, 0)) { Color_RGBA8 color = CVarGetColor(magicFaroresPrimary.valuesCvar, magicFaroresPrimary.defaultColor); diff --git a/soh/soh/Enhancements/game-interactor/GameInteractor.h b/soh/soh/Enhancements/game-interactor/GameInteractor.h index 8ac2d9dda..7d43d79ed 100644 --- a/soh/soh/Enhancements/game-interactor/GameInteractor.h +++ b/soh/soh/Enhancements/game-interactor/GameInteractor.h @@ -68,6 +68,7 @@ typedef enum { extern "C" { #endif uint8_t GameInteractor_NoUIActive(); +void GameInteractor_SetNoUIActive(uint8_t state); GILinkSize GameInteractor_GetLinkSize(); void GameInteractor_SetLinkSize(GILinkSize size); uint8_t GameInteractor_InvisibleLinkActive(); diff --git a/soh/soh/Enhancements/game-interactor/GameInteractor_State.cpp b/soh/soh/Enhancements/game-interactor/GameInteractor_State.cpp index bdcb4f37a..c6d751395 100644 --- a/soh/soh/Enhancements/game-interactor/GameInteractor_State.cpp +++ b/soh/soh/Enhancements/game-interactor/GameInteractor_State.cpp @@ -36,6 +36,10 @@ uint8_t GameInteractor_NoUIActive() { return GameInteractor::State::NoUIActive; } +void GameInteractor_SetNoUIActive(uint8_t state) { + GameInteractor::State::NoUIActive = state; +} + // MARK: - GameInteractor::State::LinkSize GILinkSize GameInteractor_GetLinkSize() { return GameInteractor::State::LinkSize; diff --git a/soh/soh/Enhancements/mods.cpp b/soh/soh/Enhancements/mods.cpp index 93b4ce79e..383878489 100644 --- a/soh/soh/Enhancements/mods.cpp +++ b/soh/soh/Enhancements/mods.cpp @@ -40,6 +40,7 @@ extern "C" { extern SaveContext gSaveContext; extern PlayState* gPlayState; +extern s16 gEnSnowballId; } /// Switches Link's age and respawns him at the last entrance he entered. @@ -562,6 +563,87 @@ void RegisterRandomizedEnemySizes() { }); } +static CollisionPoly snowballPoly; +static Vec3f snowballPos; +static f32 raycastResult; + +static u32 iceBlockParams[] = { + 0x214, 0x1, 0x11, 0x10, 0x20, +}; + +void RegisterSnowballs() { + GameInteractor::Instance->RegisterGameHook([]() { + if (gPlayState->sceneNum != SCENE_HYRULE_FIELD && gPlayState->sceneNum != SCENE_KAKARIKO_VILLAGE) { + return; + } + + int actorsSpawned = 0; + + while (actorsSpawned < 30) { + snowballPos.x = (float)(Random((gPlayState->sceneNum == SCENE_HYRULE_FIELD ? -10000 : -2700) + 10000, + (gPlayState->sceneNum == SCENE_HYRULE_FIELD ? 5000 : 2000) + 10000) - + (float)10000.0f); + snowballPos.y = 5000; + snowballPos.z = (float)(Random((gPlayState->sceneNum == SCENE_HYRULE_FIELD ? -1000 : -2000) + 10000, + (gPlayState->sceneNum == SCENE_HYRULE_FIELD ? 15000 : 2000) + 10000) - + (float)10000.0f); + + raycastResult = BgCheck_AnyRaycastFloor1(&gPlayState->colCtx, &snowballPoly, &snowballPos); + + if (raycastResult > BGCHECK_Y_MIN) { + Actor_Spawn(&gPlayState->actorCtx, gPlayState, gEnSnowballId, snowballPos.x, raycastResult, + snowballPos.z, 0, 0, 0, gPlayState->sceneNum == SCENE_HYRULE_FIELD, 0); + actorsSpawned++; + } + } + }); + + GameInteractor::Instance->RegisterGameHook([]() { + if (gPlayState->sceneNum != SCENE_LAKE_HYLIA) { + return; + } + + int actorsSpawned = 0; + + Vec3f spawnedIceBlockPos[15]; + + while (actorsSpawned < 15) { + Vec3f iceBlockPos; + iceBlockPos.x = (float)(Random((-4200) + 10000, (3000) + 10000) - (float)10000.0f); + iceBlockPos.y = -1713.0f; + iceBlockPos.z = (float)(Random((2600) + 10000, (9000) + 10000) - (float)10000.0f); + + raycastResult = BgCheck_AnyRaycastFloor1(&gPlayState->colCtx, &snowballPoly, &iceBlockPos); + + if (raycastResult > BGCHECK_Y_MIN) { + + bool overlaps = false; + for (int i = 0; i < actorsSpawned; i++) { + if (Math_Vec3f_DistXZ(&spawnedIceBlockPos[i], &iceBlockPos) < 500.0f) { + overlaps = true; + break; + } + } + + if (overlaps) { + continue; + } + + if (LINK_IS_ADULT && !Flags_GetEventChkInf(EVENTCHKINF_RAISED_LAKE_HYLIA_WATER)) { + iceBlockPos.y = raycastResult; + } else { + iceBlockPos.y = -1310.0f; + } + + Actor_Spawn(&gPlayState->actorCtx, gPlayState, ACTOR_BG_SPOT08_ICEBLOCK, iceBlockPos.x, iceBlockPos.y, + iceBlockPos.z, 0, (s16)Random(0, 0xFFFF), 0, RandomElement(iceBlockParams), 0); + spawnedIceBlockPos[actorsSpawned] = iceBlockPos; + actorsSpawned++; + } + } + }); +} + void InitMods() { RandomizerRegisterHooks(); TimeSaverRegisterHooks(); @@ -574,4 +656,5 @@ void InitMods() { RegisterPatchHandHandler(); RegisterHurtContainerModeHandler(); RandoKaleido_RegisterHooks(); + RegisterSnowballs(); } diff --git a/soh/soh/Enhancements/randomizer/item_list.cpp b/soh/soh/Enhancements/randomizer/item_list.cpp index c08b6a1e4..8f4bd656c 100644 --- a/soh/soh/Enhancements/randomizer/item_list.cpp +++ b/soh/soh/Enhancements/randomizer/item_list.cpp @@ -403,7 +403,7 @@ void Rando::StaticData::InitItemTable() { itemTable[RG_DEKU_STICK_CAPACITY_30] = Item(RG_DEKU_STICK_CAPACITY_30, Text{ "Deku Stick Capacity (30)", "Capacité de Bâtons Mojo (30)", "Deku-Stab-Kapazität (30)" }, ITEMTYPE_ITEM, GI_STICK_UPGRADE_30, true, LOGIC_PROGRESSIVE_STICK_BAG, RHT_DEKU_STICK_CAPACITY_30, ITEM_STICK_UPGRADE_30, OBJECT_GI_STICK, GID_STICK, 0x91, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_NONE); itemTable[RG_MAGIC_SINGLE] = Item(RG_MAGIC_SINGLE, Text{ "Magic Meter", "Jauge de Magie", "Magische Kraft" }, ITEMTYPE_ITEM, 0x8A, true, LOGIC_PROGRESSIVE_MAGIC, RHT_MAGIC_SINGLE, RG_MAGIC_SINGLE, OBJECT_GI_MAGICPOT, GID_MAGIC_SMALL, 0xE4, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER); itemTable[RG_MAGIC_DOUBLE] = Item(RG_MAGIC_DOUBLE, Text{ "Enhanced Magic Meter", "Jauge de Magie améliorée", "Verb. Magische Kraft" }, ITEMTYPE_ITEM, 0x8A, true, LOGIC_PROGRESSIVE_MAGIC, RHT_MAGIC_DOUBLE, RG_MAGIC_DOUBLE, OBJECT_GI_MAGICPOT, GID_MAGIC_LARGE, 0xE8, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER); - itemTable[RG_TRIFORCE_PIECE] = Item(RG_TRIFORCE_PIECE, Text{ "Triforce Piece", "Triforce Piece", "Triforce-Splitter" }, ITEMTYPE_ITEM, 0xDF, true, LOGIC_TRIFORCE_PIECES, RHT_TRIFORCE_PIECE, RG_TRIFORCE_PIECE, OBJECT_GI_BOMB_2, GID_TRIFORCE_PIECE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER); + itemTable[RG_TRIFORCE_PIECE] = Item(RG_TRIFORCE_PIECE, Text{ "Christmas Ornament", "Christmas Ornament", "Christmas Ornament" }, ITEMTYPE_ITEM, 0xDF, true, LOGIC_TRIFORCE_PIECES, RHT_TRIFORCE_PIECE, RG_TRIFORCE_PIECE, OBJECT_GI_BOMB_2, GID_TRIFORCE_PIECE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER); // Archipelago itemTable[RG_ARCHIPELAGO_ITEM_USEFUL] = Item(RG_ARCHIPELAGO_ITEM_USEFUL, Text{"Useful AP Item", "Useful AP Item", "Useful AP Item"}, ITEMTYPE_EVENT, GI_RUPEE_GREEN, false, LOGIC_NONE, RHT_NONE, RG_ARCHIPELAGO_ITEM_USEFUL, OBJECT_GI_LETTER, GID_LETTER_ZELDA, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_SHORT, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER); diff --git a/soh/soh/Enhancements/randomizer/randomizer.cpp b/soh/soh/Enhancements/randomizer/randomizer.cpp index 52c2d7ae7..c06cb4ca8 100644 --- a/soh/soh/Enhancements/randomizer/randomizer.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer.cpp @@ -67,6 +67,7 @@ const std::string Randomizer::NaviRandoMessageTableID = "RandomizerNavi"; const std::string Randomizer::IceTrapRandoMessageTableID = "RandomizerIceTrap"; const std::string Randomizer::randoMiscHintsTableID = "RandomizerMiscHints"; const std::string Randomizer::archipelagoItemsTableID = "ÁrchipelagoItems"; +const std::string Randomizer::christmasTreeMessageTableID = "RandomizerChristmasTree"; static const char* englishRupeeNames[188] = { "[P]", @@ -4822,33 +4823,33 @@ CustomMessage Randomizer::GetRupeeMessage(u16 rupeeTextId) { void CreateTriforcePieceMessages() { CustomMessage TriforcePieceMessages[NUM_TRIFORCE_PIECE_MESSAGES] = { - { "You found a %yTriforce Piece%w!&%g[[current]]%w down, %c[[remaining]]%w to go. It's a start!", - "Ein %yTriforce-Splitter%w! Du hast&%g[[current]]%w von %c[[required]]%w gefunden. Es ist ein&Anfang!", - "Vous trouvez un %yFragment de la&Triforce%w! Vous en avez %g[[current]]%w, il en&reste %c[[remaining]]%w à " + { "You found a %yChristmas Ornament%w!&%g[[current]]%w down, %c[[remaining]]%w to go. It's a start!", + "Ein %yChristmas Ornament%w! Du hast&%g[[current]]%w von %c[[required]]%w gefunden. Es ist ein&Anfang!", + "Vous trouvez un %yChristmas Ornament%w! Vous en avez %g[[current]]%w, il en&reste %c[[remaining]]%w à " "trouver. C'est un début!" }, - { "You found a %yTriforce Piece%w!&%g[[current]]%w down, %c[[remaining]]%w to go. Progress!", - "Ein %yTriforce-Splitter%w! Du hast&%g[[current]]%w von %c[[required]]%w gefunden. Es geht voran!", - "Vous trouvez un %yFragment de la&Triforce%w! Vous en avez %g[[current]]%w, il en&reste %c[[remaining]]%w à " + { "You found a %yChristmas Ornament%w!&%g[[current]]%w down, %c[[remaining]]%w to go. Progress!", + "Ein %yChristmas Ornament%w! Du hast&%g[[current]]%w von %c[[required]]%w gefunden. Es geht voran!", + "Vous trouvez un %yChristmas Ornament%w! Vous en avez %g[[current]]%w, il en&reste %c[[remaining]]%w à " "trouver. Ça avance!" }, - { "You found a %yTriforce Piece%w!&%g[[current]]%w down, %c[[remaining]]%w to go. Over half-way&there!", - "Ein %yTriforce-Splitter%w! Du hast&schon %g[[current]]%w von %c[[required]]%w gefunden. Schon&über die " + { "You found a %yChristmas Ornament%w!&%g[[current]]%w down, %c[[remaining]]%w to go. Over half-way&there!", + "Ein %yChristmas Ornament%w! Du hast&schon %g[[current]]%w von %c[[required]]%w gefunden. Schon&über die " "Hälfte!", - "Vous trouvez un %yFragment de la&Triforce%w! Vous en avez %g[[current]]%w, il en&reste %c[[remaining]]%w à " + "Vous trouvez un %yChristmas Ornament%w! Vous en avez %g[[current]]%w, il en&reste %c[[remaining]]%w à " "trouver. Il en reste un&peu moins que la moitié!" }, - { "You found a %yTriforce Piece%w!&%g[[current]]%w down, %c[[remaining]]%w to go. Almost done!", - "Ein %yTriforce-Splitter%w! Du hast&schon %g[[current]]%w von %c[[required]]%w gefunden. Fast&geschafft!", - "Vous trouvez un %yFragment de la&Triforce%w! Vous en avez %g[[current]]%w, il en&reste %c[[remaining]]%w à " + { "You found a %yChristmas Ornament%w!&%g[[current]]%w down, %c[[remaining]]%w to go. Almost done!", + "Ein %yChristmas Ornament%w! Du hast&schon %g[[current]]%w von %c[[required]]%w gefunden. Fast&geschafft!", + "Vous trouvez un %yChristmas Ornament%w! Vous en avez %g[[current]]%w, il en&reste %c[[remaining]]%w à " "trouver. C'est presque&terminé!" }, - { "You completed the %yTriforce of&Courage%w! %gGG%w!", + { "You found all of the %yChristmas&Ornaments%w! Visit the %gChristmas&tree%w in Kakariko Village!", "Das %yTriforce des Mutes%w! Du hast&alle Splitter gefunden. %gGut gemacht%w!", "Vous avez complété la %yTriforce&du Courage%w! %gFélicitations%w!" }, - { "You found a spare %yTriforce Piece%w!&You only needed %c[[required]]%w, but you have %g[[current]]%w!", - "Noch ein %yTriforce-Splitter%w! Du&brauchtest nur %c[[required]]%w, hast jetzt aber %g[[current]]%w!", + { "You found a spare %yChristmas Ornament%w!&You only needed %c[[required]]%w, but you have %g[[current]]%w!", + "Noch ein %yChristmas Ornament%w! Du&brauchtest nur %c[[required]]%w, hast jetzt aber %g[[current]]%w!", "Vous avez trouvé un %yFragment de&Triforce%w en plus! Vous n'aviez besoin&que de %c[[required]]%w, mais " "vous en avez %g[[current]]%w en&tout!" }, }; @@ -4890,6 +4891,44 @@ CustomMessage Randomizer::GetTriforcePieceMessage() { return messageEntry; } +void CreateChristmasTreeMessages() { + CustomMessage ChristmasTreeMessages[2] = { + + { "The %yChristmas tree%w seems to be&missing some of %gits magic%w... Find all&ornaments to save " + "%rChristmas%w!", + "The %yChristmas tree%w seems to be&missing some of %gits magic%w... Find all&ornaments to save " + "%rChristmas%w!", + "The %yChristmas tree%w seems to be&missing some of %gits magic%w... Find all&ornaments to save " + "%rChristmas%w!" }, + + { "The tree's magic has been fully&restored. %gMerry %rChristmas%w!", + "The tree's magic has been fully&restored. %gMerry %rChristmas%w!", + "The tree's magic has been fully&restored. %gMerry %rChristmas%w!" } + }; + CustomMessageManager* customMessageManager = CustomMessageManager::Instance; + customMessageManager->AddCustomMessageTable(Randomizer::christmasTreeMessageTableID); + for (unsigned int i = 0; i <= 1; i++) { + customMessageManager->CreateMessage(Randomizer::christmasTreeMessageTableID, i, ChristmasTreeMessages[i]); + } +} + +CustomMessage Randomizer::GetChristmasTreeMessage() { + // Item is only given after the textbox, so reflect that inside the textbox. + uint8_t current = gSaveContext.ship.quest.data.randomizer.triforcePiecesCollected; + uint8_t required = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_TRIFORCE_HUNT_PIECES_REQUIRED); + uint8_t messageIndex; + + if (current < required) { + messageIndex = 0; + } else { + messageIndex = 1; + } + + CustomMessage messageEntry = + CustomMessageManager::Instance->RetrieveMessage(Randomizer::christmasTreeMessageTableID, messageIndex); + return messageEntry; +} + void CreateNaviRandoMessages() { CustomMessage NaviMessages[NUM_NAVI_MESSAGES] = { @@ -5900,6 +5939,7 @@ void Randomizer::CreateCustomMessages() { CreateGetItemMessages(getItemMessages); CreateRupeeMessages(); CreateTriforcePieceMessages(); + CreateChristmasTreeMessages(); CreateNaviRandoMessages(); CreateFireTempleGoronMessages(); CreateArchipelagoItemMessage(); diff --git a/soh/soh/Enhancements/randomizer/randomizer.h b/soh/soh/Enhancements/randomizer/randomizer.h index 30cf85c66..636a806fb 100644 --- a/soh/soh/Enhancements/randomizer/randomizer.h +++ b/soh/soh/Enhancements/randomizer/randomizer.h @@ -35,6 +35,7 @@ class Randomizer { static const std::string merchantMessageTableID; static const std::string rupeeMessageTableID; static const std::string triforcePieceMessageTableID; + static const std::string christmasTreeMessageTableID; static const std::string NaviRandoMessageTableID; static const std::string IceTrapRandoMessageTableID; static const std::string randoMiscHintsTableID; @@ -77,6 +78,7 @@ class Randomizer { static CustomMessage GetIceTrapMessage(); static CustomMessage GetTriforcePieceMessage(); static CustomMessage GetArchipelagoItemMessage(int16_t randomizerGet, uint32_t randomizerCheck); + static CustomMessage GetChristmasTreeMessage(); }; #ifdef __cplusplus diff --git a/soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp b/soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp index cd32cc4b1..342497348 100644 --- a/soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp @@ -807,7 +807,7 @@ void DrawItem(ItemTrackerItem item) { case RG_TRIFORCE_PIECE: actualItemId = item.id; hasItem = IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_TRIFORCE_HUNT); - itemName = "Triforce Piece"; + itemName = "Christmas Ornament"; break; case RG_GOHMA_SOUL: actualItemId = item.id; @@ -1669,7 +1669,7 @@ void ItemTrackerWindow::DrawElement() { if (CVarGetInteger(CVAR_TRACKER_ITEM("DisplayType.TriforcePieces"), SECTION_DISPLAY_HIDDEN) == SECTION_DISPLAY_SEPARATE) { - BeginFloatingWindows("Triforce Piece Tracker"); + BeginFloatingWindows("Christmas Ornament Tracker"); DrawItemsInRows(triforcePieces); EndFloatingWindows(); } @@ -1992,7 +1992,7 @@ void RegisterItemTrackerWidgets() { .Tooltip("Customize what numbers are shown for key tracking.")); SohGui::mSohMenu->AddSearchWidget({ keyTracking, "Randomizer", "Item Tracker", "General Settings" }); - triforcePieceTracking = { .name = "Triforce Pieces", .type = WidgetType::WIDGET_CVAR_COMBOBOX }; + triforcePieceTracking = { .name = "Christmas Ornaments", .type = WidgetType::WIDGET_CVAR_COMBOBOX }; triforcePieceTracking.CVar(CVAR_TRACKER_ITEM("DisplayType.TriforcePieces")) .Options(ComboboxOptions() .DefaultIndex(SECTION_DISPLAY_HIDDEN) @@ -2040,7 +2040,7 @@ void RegisterItemTrackerWidgets() { ; SohGui::mSohMenu->AddSearchWidget({ bossSoulsTracking, "Randomizer", "Item Tracker", "General Settings", "icon" }); - triforcePieceCount = { .name = "Triforce Piece Count Tracking", .type = WidgetType::WIDGET_CVAR_COMBOBOX }; + triforcePieceCount = { .name = "Christmas Ornament Count Tracking", .type = WidgetType::WIDGET_CVAR_COMBOBOX }; triforcePieceCount.CVar(CVAR_TRACKER_ITEM("TriforcePieceCounts")) .Options(ComboboxOptions() .DefaultIndex(TRIFORCE_PIECE_COLLECTED_REQUIRED_MAX) @@ -2048,7 +2048,7 @@ void RegisterItemTrackerWidgets() { .LabelPosition(LabelPositions::Far) .Color(THEME_COLOR) .ComboMap(itemTrackerTriforcePieceTrackOptions) - .Tooltip("Customize what numbers are shown for triforce piece tracking.")); + .Tooltip("Customize what numbers are shown for Christmas ornament tracking.")); SohGui::mSohMenu->AddSearchWidget({ triforcePieceCount, "Randomizer", "Item Tracker", "General Settings" }); ocarinaButtonTracking = { .name = "Ocarina Buttons", .type = WidgetType::WIDGET_CVAR_COMBOBOX }; diff --git a/soh/soh/OTRGlobals.cpp b/soh/soh/OTRGlobals.cpp index 7598cd637..6a20e893a 100644 --- a/soh/soh/OTRGlobals.cpp +++ b/soh/soh/OTRGlobals.cpp @@ -1313,11 +1313,23 @@ extern "C" void InitOTR(int argc, char* argv[]) { time_t now = time(NULL); tm* tm_now = localtime(&now); - if (tm_now->tm_mon == 11 && tm_now->tm_mday >= 24 && tm_now->tm_mday <= 25) { - CVarRegisterInteger(CVAR_GENERAL("LetItSnow"), 1); - } else { - CVarClear(CVAR_GENERAL("LetItSnow")); - } + //if (tm_now->tm_mon == 11 && tm_now->tm_mday >= 24 && tm_now->tm_mday <= 25) { + // CVarRegisterInteger(CVAR_GENERAL("LetItSnow"), 1); + //} else { + // CVarClear(CVAR_GENERAL("LetItSnow")); + //} + + CVarRegisterInteger(CVAR_GENERAL("LetItSnow"), 1); + CVarRegisterInteger(CVAR_COSMETIC("Hud.AButton.Changed"), 1); + CVarRegisterColor(CVAR_COSMETIC("Hud.AButton.Value"), Color_RGBA8{ 255, 255, 255, 255 }); + CVarRegisterInteger(CVAR_COSMETIC("Hud.BButton.Changed"), 1); + CVarRegisterColor(CVAR_COSMETIC("Hud.BButton.Value"), Color_RGBA8{ 255, 255, 255, 255 }); + CVarRegisterInteger(CVAR_COSMETIC("Hud.CButtons.Changed"), 1); + CVarRegisterColor(CVAR_COSMETIC("Hud.CButtons.Value"), Color_RGBA8{ 255, 255, 255, 255 }); + CVarRegisterInteger(CVAR_COSMETIC("Consumable.Hearts.Changed"), 1); + CVarRegisterColor(CVAR_COSMETIC("Consumable.Hearts.Value"), Color_RGBA8{ 255, 158, 0, 255 }); + CVarRegisterInteger(CVAR_COSMETIC("Consumable.Magic.Changed"), 1); + CVarRegisterColor(CVAR_COSMETIC("Consumable.Magic.Value"), Color_RGBA8{ 255, 0, 0, 255 }); srand(now); #ifdef ENABLE_REMOTE_CONTROL @@ -2427,7 +2439,9 @@ extern "C" int CustomMessage_RetrieveIfExists(PlayState* play) { bool nonBeanMerchants = ctx->GetOption(RSK_SHUFFLE_MERCHANTS).Is(RO_SHUFFLE_MERCHANTS_ALL_BUT_BEANS) || ctx->GetOption(RSK_SHUFFLE_MERCHANTS).Is(RO_SHUFFLE_MERCHANTS_ALL); Player* player = GET_PLAYER(play); - if (textId == TEXT_RANDOMIZER_CUSTOM_ITEM) { + if (textId == 0x406B && play->sceneNum == SCENE_KAKARIKO_VILLAGE) { + messageEntry = Randomizer::GetChristmasTreeMessage(); + } else if (textId == TEXT_RANDOMIZER_CUSTOM_ITEM) { if (player->getItemEntry.getItemId == RG_ICE_TRAP) { messageEntry = Randomizer::GetIceTrapMessage(); } else if (player->getItemEntry.getItemId == RG_TRIFORCE_PIECE) { diff --git a/soh/src/code/z_kankyo.c b/soh/src/code/z_kankyo.c index d78a93c6c..a99cc5b43 100644 --- a/soh/src/code/z_kankyo.c +++ b/soh/src/code/z_kankyo.c @@ -2275,17 +2275,17 @@ void Environment_FillScreen(GraphicsContext* gfxCtx, u8 red, u8 green, u8 blue, } Color_RGB8 sSandstormPrimColors[] = { - { 210, 156, 85 }, - { 255, 200, 100 }, - { 225, 160, 50 }, - { 105, 90, 40 }, + { 210, 210, 210 }, + { 255, 255, 255 }, + { 225, 225, 225 }, + { 105, 105, 105 }, }; Color_RGB8 sSandstormEnvColors[] = { - { 155, 106, 35 }, - { 200, 150, 50 }, - { 170, 110, 0 }, - { 50, 40, 0 }, + { 155, 155, 155 }, + { 200, 200, 200 }, + { 170, 170, 170 }, + { 50, 50, 50 }, }; u16 previousPatchedSandstormScreenSize = 0; diff --git a/soh/src/code/z_parameter.c b/soh/src/code/z_parameter.c index cab1d3cff..e1097c90a 100644 --- a/soh/src/code/z_parameter.c +++ b/soh/src/code/z_parameter.c @@ -3485,8 +3485,8 @@ void Interface_DrawMagicBar(PlayState* play) { if (CVarGetInteger(CVAR_COSMETIC("Consumable.Magic.Changed"), 0)) { magicbar_green = CVarGetColor24(CVAR_COSMETIC("Consumable.Magic.Value"), magicbar_green); } - if (CVarGetInteger("gCosmetics.Consumable_MagicInfinite.Changed", 0)) { - magicbar_blue = CVarGetColor24("gCosmetics.Consumable_MagicInfinite.Value", magicbar_blue); + if (CVarGetInteger(CVAR_COSMETIC("Consumable.MagicInfinite.Changed"), 0)) { + magicbar_blue = CVarGetColor24(CVAR_COSMETIC("Consumable.MagicInfinite.Value"), magicbar_blue); } OPEN_DISPS(play->state.gfxCtx); diff --git a/soh/src/code/z_play.c b/soh/src/code/z_play.c index b1a714dcb..eb999d72d 100644 --- a/soh/src/code/z_play.c +++ b/soh/src/code/z_play.c @@ -38,6 +38,9 @@ Input* D_8012D1F8 = NULL; PlayState* gPlayState; s16 firstInit = 0; s16 gEnPartnerId; +s16 gEnSnowballId; +s16 gEnChristmasTreeId; +s16 gEnChristmasDecoId; void Play_SpawnScene(PlayState* play, s32 sceneId, s32 spawn); @@ -687,6 +690,12 @@ void Play_Init(GameState* thisx) { GET_PLAYER(play)->actor.world.pos.y + Player_GetHeight(GET_PLAYER(play)) + 5.0f, GET_PLAYER(play)->actor.world.pos.z, 0, 0, 0, 1, true); } + + if (play->sceneNum == SCENE_KAKARIKO_VILLAGE) { + Actor_Spawn(&play->actorCtx, play, gEnChristmasTreeId, -734, 0, 420, 0, 0, 0, 0, true); + } + + Actor_Spawn(&play->actorCtx, play, gEnChristmasDecoId, 0, 0, 0, 0, 0, 0, 0, true); } void Play_Update(PlayState* play) { diff --git a/soh/src/code/z_player_lib.c b/soh/src/code/z_player_lib.c index 58829aee8..05060b464 100644 --- a/soh/src/code/z_player_lib.c +++ b/soh/src/code/z_player_lib.c @@ -11,6 +11,7 @@ #include "soh/ResourceManagerHelpers.h" #include +#include "soh_assets.h" typedef struct { /* 0x00 */ u8 flag; @@ -1014,10 +1015,18 @@ void* sMouthTextures[] = { }; #endif +// Original colors +// Color_RGB8 sTunicColors[] = { +// { 30, 105, 27 }, +// { 100, 20, 0 }, +// { 0, 60, 100 }, +//}; + +// Overwrite to red tunic as default for Holidays in Hyrule build Color_RGB8 sTunicColors[] = { - { 30, 105, 27 }, - { 100, 20, 0 }, - { 0, 60, 100 }, + { 255, 0, 0 }, + { 255, 0, 0 }, + { 255, 0, 0 }, }; Color_RGB8 sGauntletColors[] = { @@ -1788,6 +1797,55 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve Matrix_MultVec3f(&sZeroVec, D_80160000); } + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0) && !(this->stateFlags1 & PLAYER_STATE1_FIRST_PERSON) && + !(this->stateFlags2 & PLAYER_STATE2_CRAWLING)) { + if (limbIndex == PLAYER_LIMB_HEAD) { + OPEN_DISPS(play->state.gfxCtx); + + Matrix_Push(); + if (LINK_IS_ADULT) { + Matrix_RotateZYX(24000, -16000, -7000, MTXMODE_APPLY); + Matrix_Translate(32.0f, 0.0f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gLinkAdultHatTrimDL); + } else { + Matrix_RotateZYX(24000, -16000, -7000, MTXMODE_APPLY); + Matrix_Translate(32.0f, 0.0f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gLinkChildHatTrimDL); + } + + Matrix_Pop(); + + CLOSE_DISPS(play->state.gfxCtx); + } + + if (limbIndex == PLAYER_LIMB_HAT) { + OPEN_DISPS(play->state.gfxCtx); + + Matrix_Push(); + if (LINK_IS_ADULT) { + Matrix_RotateZYX(0, 0, 17500, MTXMODE_APPLY); + Matrix_Translate(-195.0f, 1500.0f, -95.0f, MTXMODE_APPLY); + Matrix_Scale(2.0f, 2.0f, 2.0f, MTXMODE_APPLY); + } else { + Matrix_RotateZYX(0, 0, 27000, MTXMODE_APPLY); + Matrix_Translate(-950.0f, 2600.0f, -75.0f, MTXMODE_APPLY); + Matrix_Scale(2.0f, 2.0f, 2.0f, MTXMODE_APPLY); + } + + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gLinkAdultPompomDL); + Matrix_Pop(); + + CLOSE_DISPS(play->state.gfxCtx); + } + } + if (limbIndex == PLAYER_LIMB_L_HAND) { MtxF sp14C; Actor* hookedActor; diff --git a/soh/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.c b/soh/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.c index a85ec4f51..1c97aa17c 100644 --- a/soh/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.c +++ b/soh/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.c @@ -307,7 +307,7 @@ void BgSpot08Iceblock_Init(Actor* thisx, PlayState* play) { break; } - if (LINK_AGE_IN_YEARS == YEARS_CHILD) { + if (LINK_AGE_IN_YEARS == YEARS_CHILD && play->sceneNum == SCENE_ZORAS_FOUNTAIN) { Actor_Kill(&this->dyna.actor); return; } @@ -331,6 +331,12 @@ void BgSpot08Iceblock_Init(Actor* thisx, PlayState* play) { this->surfaceNormal.y = 1.0f; this->rotationAxis.x = 1.0f; + if (LINK_IS_ADULT && !Flags_GetEventChkInf(EVENTCHKINF_RAISED_LAKE_HYLIA_WATER) && + play->sceneNum == SCENE_LAKE_HYLIA) { + BgSpot08Iceblock_SetupNoAction(this); + return; + } + switch (this->dyna.actor.params & 0xF) { case 0: case 1: diff --git a/soh/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c b/soh/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c index acba457ab..daffc865e 100644 --- a/soh/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c +++ b/soh/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c @@ -6,6 +6,7 @@ #include "soh/frame_interpolation.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #include "soh/OTRGlobals.h" +#include "soh_assets.h" #include "soh/ResourceManagerHelpers.h" #include // malloc @@ -1357,6 +1358,21 @@ void BossDodongo_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s Matrix_MultVec3f(&D_808CA48C, &this->unk_404); } Collider_UpdateSpheres(limbIndex, &this->collider); + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 7) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(-6643, 1771, -14834, MTXMODE_APPLY); + Matrix_Translate(2000.0f, 5000.0f, 4000.0f, MTXMODE_APPLY); + Matrix_Scale(6.114f, 6.114f, 6.114f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 0, 0, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } } void BossDodongo_Draw(Actor* thisx, PlayState* play) { diff --git a/soh/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c b/soh/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c index f845f323a..8de2833aa 100644 --- a/soh/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/soh/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -9,6 +9,7 @@ #include "assets/objects/object_ganon_anime1/object_ganon_anime1.h" #include "assets/objects/object_ganon_anime2/object_ganon_anime2.h" #include "assets/scenes/dungeons/ganon_boss/ganon_boss_scene.h" +#include "soh_assets.h" #include "soh/frame_interpolation.h" #include "soh/OTRGlobals.h" @@ -3378,6 +3379,21 @@ void BossGanon_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* Matrix_MultVec3f(&sp1C, &this->unk_214); } + + if (limbIndex == 14) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(7749, 0, -11956, MTXMODE_APPLY); + Matrix_Translate(675.676f, -229.730f, 148.649f, MTXMODE_APPLY); + Matrix_Scale(1.014f, 1.014f, 1.014f, MTXMODE_APPLY); + + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + Color_RGBA8 color = { 255, 0, 0, 255 }; + gDPSetEnvColor(POLY_OPA_DISP++, color.r, color.g, color.b, color.a); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } } void BossGanon_InitRand(s32 seedInit0, s32 seedInit1, s32 seedInit2) { diff --git a/soh/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/soh/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c index 1799dafd0..01fb2b855 100644 --- a/soh/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c +++ b/soh/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c @@ -10,6 +10,7 @@ #include "soh/OTRGlobals.h" #include "soh/ResourceManagerHelpers.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" +#include "soh_assets.h" #include @@ -2649,6 +2650,18 @@ void BossGanon2_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* } } + if (CVarGetInteger("gLetItSnow", 0)) { + if (limbIndex == 16) { + Matrix_Push(); + Matrix_RotateZYX(5977, 4649, 18154, MTXMODE_APPLY); + Matrix_Translate(364.865f, 67.568f, 378.378f, MTXMODE_APPLY); + Matrix_Scale(4.595f, 4.595f, 4.595f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + } + } + CLOSE_DISPS(play->state.gfxCtx); } @@ -2768,6 +2781,21 @@ void BossGanon2_PostLimbDraw2(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s } else if (limbIndex == 10) { Matrix_MultVec3f(&D_80907164, &this->unk_1B8); } + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 11) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(0, 0, -15056, MTXMODE_APPLY); + Matrix_Translate(824.324f, 472.973f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(0.845f, 0.845f, 0.845f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 100, 100, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } } void func_80905674(BossGanon2* this, PlayState* play) { diff --git a/soh/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c b/soh/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c index 8f74d05a8..ba63a3ae5 100644 --- a/soh/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c +++ b/soh/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c @@ -12,6 +12,7 @@ #include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h" #include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h" #include "soh/OTRGlobals.h" +#include "soh_assets.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #define FLAGS \ @@ -1427,6 +1428,21 @@ void BossGanondrof_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec if (((this->flyMode != GND_FLY_PAINTING) || (this->actionFunc == BossGanondrof_Intro)) && (limbIndex <= 25)) { Matrix_MultVec3f(&zeroVec, &this->bodyPartsPos[limbIndex - 1]); } + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0) && this->deathState == NOT_DEAD) { + if (limbIndex == 15) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(11955, 0, -15499, MTXMODE_APPLY); + Matrix_Translate(459.460f, 256.757f, -567.568f, MTXMODE_APPLY); + Matrix_Scale(0.877f, 0.877f, 0.877f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 100, 100, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } } Gfx* BossGanondrof_GetClearPixelDList(GraphicsContext* gfxCtx) { diff --git a/soh/src/overlays/actors/ovl_En_Am/z_en_am.c b/soh/src/overlays/actors/ovl_En_Am/z_en_am.c index 272d5df0c..494e4cb14 100644 --- a/soh/src/overlays/actors/ovl_En_Am/z_en_am.c +++ b/soh/src/overlays/actors/ovl_En_Am/z_en_am.c @@ -9,6 +9,7 @@ #include "overlays/actors/ovl_En_Bom/z_en_bom.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \ @@ -952,6 +953,21 @@ void EnAm_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, if ((limbIndex == 1) && (this->unk_264 != 0)) { EnAm_TransformSwordHitbox(&this->dyna.actor, play); } + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 4) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(0, 0, -2657, MTXMODE_APPLY); + Matrix_Translate(4000.0f, 1148.649f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(1.655f, 1.655f, 1.655f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 255, 0, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } } static Vec3f sIcePosOffsets[] = { diff --git a/soh/src/overlays/actors/ovl_En_Ani/z_en_ani.c b/soh/src/overlays/actors/ovl_En_Ani/z_en_ani.c index 7897ef761..98efae143 100644 --- a/soh/src/overlays/actors/ovl_En_Ani/z_en_ani.c +++ b/soh/src/overlays/actors/ovl_En_Ani/z_en_ani.c @@ -9,6 +9,7 @@ #include "soh/OTRGlobals.h" #include "soh/ResourceManagerHelpers.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) @@ -318,6 +319,21 @@ void EnAni_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, if (limbIndex == 15) { Matrix_MultVec3f(&sMultVec, &this->actor.focus.pos); } + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 15) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(1992, 0, 2656, MTXMODE_APPLY); + Matrix_Translate(972.973f, 40.541f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(0.965f, 0.965f, 0.965f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 0, 255, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } } void EnAni_Draw(Actor* thisx, PlayState* play) { diff --git a/soh/src/overlays/actors/ovl_En_Bb/z_en_bb.c b/soh/src/overlays/actors/ovl_En_Bb/z_en_bb.c index 424f94a1c..1f764de70 100644 --- a/soh/src/overlays/actors/ovl_En_Bb/z_en_bb.c +++ b/soh/src/overlays/actors/ovl_En_Bb/z_en_bb.c @@ -9,6 +9,7 @@ #include "objects/object_Bb/object_Bb.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \ @@ -1272,6 +1273,20 @@ void EnBb_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, EnBb* this = (EnBb*)thisx; BodyBreak_SetInfo(&this->bodyBreak, limbIndex, 4, 15, 15, dList, BODYBREAK_OBJECT_DEFAULT); + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 15) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(-13063, 0, -27454, MTXMODE_APPLY); + Matrix_Translate(418.919f, -81.081f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(1.757f, 1.757f, 1.757f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } } static Vec3f sFireIceOffsets[] = { diff --git a/soh/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c b/soh/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c index 409865907..99487e337 100644 --- a/soh/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c +++ b/soh/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c @@ -1,6 +1,7 @@ #include "z_en_bom_chu.h" #include "overlays/actors/ovl_En_Bom/z_en_bom.h" #include "objects/gameplay_keep/gameplay_keep.h" +#include "soh_assets.h" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED @@ -527,5 +528,15 @@ void EnBomChu_Draw(Actor* thisx, PlayState* play) { gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, gBombchuDL); + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + Matrix_Push(); + Matrix_RotateZYX(0, -3100, 17047, MTXMODE_APPLY); + Matrix_Translate(445.946f, -27.027f, 608.108f, MTXMODE_APPLY); + Matrix_Scale(0.541f, 0.541f, 0.541f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + } + CLOSE_DISPS(play->state.gfxCtx); } 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 new file mode 100644 index 000000000..2a4e02be9 --- /dev/null +++ b/soh/src/overlays/actors/ovl_En_ChristmasDeco/z_en_christmasdeco.c @@ -0,0 +1,61 @@ +/* + * File: z_en_christmasdeco.c + * Overlay: ovl_En_ChristmasDeco + * Description: Custom Christmas Decorations + */ + +#include "z_en_christmasdeco.h" +#include "soh_assets.h" + +void EnChristmasDeco_Init(Actor* thisx, PlayState* play); +void EnChristmasDeco_Destroy(Actor* thisx, PlayState* play); +void EnChristmasDeco_Update(Actor* thisx, PlayState* play); +void EnChristmasDeco_Draw(Actor* thisx, PlayState* play); + +void EnChristmasDeco_Init(Actor* thisx, PlayState* play) { + if (play->sceneNum == SCENE_TEMPLE_OF_TIME) { + EnChristmasDeco* this = (EnChristmasDeco*)thisx; + this->actor.room = -1; + } +} + +void EnChristmasDeco_Destroy(Actor* thisx, PlayState* play) { + +} + +void EnChristmasDeco_Update(Actor* thisx, PlayState* play) { + +} + +void EnChristmasDeco_Draw(Actor* thisx, PlayState* play) { + float decoSize = 10.0f; + + OPEN_DISPS(play->state.gfxCtx); + + Gfx_SetupDL_25Opa(play->state.gfxCtx); + + 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); + + // Assertion Halt in Debug mode, switch to Release when testing. + if (play->sceneNum == SCENE_KAKARIKO_VILLAGE) { + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gKakarikoDecorDL); + if (LINK_IS_CHILD) { + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gKakarikoChildDecorDL); + } else { + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gKakarikoAdultDecorDL); + } + } + + if (play->sceneNum == SCENE_TEMPLE_OF_TIME) { + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gTempleOfTimeDecorDL); + if (LINK_IS_CHILD) { + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gTempleOfTimeDecorDL); + } else { + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gTempleOfTimeDecorDL); + } + } + + CLOSE_DISPS(play->state.gfxCtx); +} diff --git a/soh/src/overlays/actors/ovl_En_ChristmasDeco/z_en_christmasdeco.h b/soh/src/overlays/actors/ovl_En_ChristmasDeco/z_en_christmasdeco.h new file mode 100644 index 000000000..f2a317648 --- /dev/null +++ b/soh/src/overlays/actors/ovl_En_ChristmasDeco/z_en_christmasdeco.h @@ -0,0 +1,27 @@ +#ifndef Z_EN_CHRISTMASDECO_H +#define Z_EN_CHRISTMASDECO_H + +#include +#include "global.h" + +struct EnChristmasDeco; + +typedef void (*EnChristmasDecoActionFunc)(struct EnChristmasDeco*, PlayState*); + +typedef struct EnChristmasDeco { + Actor actor; + EnChristmasDecoActionFunc actionFunc; +} EnChristmasDeco; + +#ifdef __cplusplus +extern "C" { +#endif +void EnChristmasDeco_Init(Actor* thisx, PlayState* play); +void EnChristmasDeco_Destroy(Actor* thisx, PlayState* play); +void EnChristmasDeco_Update(Actor* thisx, PlayState* play); +void EnChristmasDeco_Draw(Actor* thisx, PlayState* play); +#ifdef __cplusplus +} +#endif + +#endif 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 new file mode 100644 index 000000000..467bc6d31 --- /dev/null +++ b/soh/src/overlays/actors/ovl_En_ChristmasTree/z_en_christmastree.c @@ -0,0 +1,213 @@ +/* + * File: z_en_christmastree.c + * Overlay: ovl_En_ChristmasTree + * Description: Custom Christmas Tree for Ornament Hunt + */ + +#include "z_en_christmastree.h" +#include "soh_assets.h" +#include "soh/Enhancements/game-interactor/GameInteractor.h" +#include "soh/OTRGlobals.h" + +void EnChristmasTree_Init(Actor* thisx, PlayState* play); +void EnChristmasTree_Destroy(Actor* thisx, PlayState* play); +void EnChristmasTree_Update(Actor* thisx, PlayState* play); +void EnChristmasTree_Draw(Actor* thisx, PlayState* play); + +void EnChristmasTree_Wait(EnChristmasTree* this, PlayState* play); +void EnChristmasTree_Talk(EnChristmasTree* this, PlayState* play); +void EnChristmasTree_SetupEndTitle(EnChristmasTree* this, PlayState* play); +void EnChristmasTree_HandleEndTitle(EnChristmasTree* this, PlayState* play); + +static ColliderCylinderInit sCylinderInit = { + { + COLTYPE_NONE, + AT_NONE, + AC_NONE, + OC1_ON | OC1_TYPE_ALL, + OC2_TYPE_2, + COLSHAPE_CYLINDER, + }, + { + ELEMTYPE_UNK0, + { 0x00000000, 0x00, 0x00 }, + { 0x00000000, 0x00, 0x00 }, + TOUCH_NONE, + BUMP_NONE, + OCELEM_ON, + }, + { 100, 330, 0, { 0, 0, 0 } }, +}; + +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, 160.0f); + Collider_InitCylinder(play, &this->collider); + Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); + CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &sColChkInfoInit); + Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, 4); + + this->actor.targetMode = 1; + this->actor.textId = 0x406B; // Hijacking bean seller text ID so I'm sure it doesn't clash + + this->actor.shape.rot.y = -14784; + + this->actionFunc = EnChristmasTree_Wait; +} + +void EnChristmasTree_Destroy(Actor* thisx, PlayState* play) { + EnChristmasTree* this = (EnChristmasTree*)thisx; + + Collider_DestroyCylinder(play, &this->collider); +} + +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) && Randomizer_GetSettingValue(RSK_TRIFORCE_HUNT)) { // talk range + func_8002F2CC(&this->actor, play, 170.0f); + } +} + +void EnChristmasTree_Talk(EnChristmasTree* this, PlayState* play) { + u8 dialogState = Message_GetState(&play->msgCtx); + if (dialogState != TEXT_STATE_CHOICE) { + if ((dialogState == TEXT_STATE_DONE) && Message_ShouldAdvance(play)) { // advanced final textbox + // Teleport to credits when goal is reached. + if (gSaveContext.triforcePiecesCollected >= Randomizer_GetSettingValue(RSK_TRIFORCE_HUNT_PIECES_REQUIRED)) { + gSaveContext.sohStats.itemTimestamp[TIMESTAMP_TRIFORCE_COMPLETED] = GAMEPLAYSTAT_TOTAL_TIME; + gSaveContext.sohStats.gameComplete = 1; + Play_PerformSave(play); + GameInteractor_SetTriforceHuntCreditsWarpActive(true); + this->actionFunc = EnChristmasTree_SetupEndTitle; + } else { + this->actionFunc = EnChristmasTree_Wait; + } + } + } +} + +void EnChristmasTree_SetupEndTitle(EnChristmasTree* this, PlayState* play) { + Player* player = GET_PLAYER(play); + + 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); + + this->actionFunc = EnChristmasTree_HandleEndTitle; +} + +void EnChristmasTree_HandleEndTitle(EnChristmasTree* this, PlayState* play) { + Camera* camera = Play_GetCamera(play, play->mainCamera.thisIdx); + Player* player = GET_PLAYER(play); + Vec3f camAt; + Vec3f camEye; + + // Not forcing camera mode makes the camera jitter for a bit after setting position. + // Also forces letterbox bars. + Camera_ChangeMode(camera, CAM_MODE_STILL); + + // Christmas Tree's position + camAt.x = -734.0f; + camAt.y = 130.0f; + camAt.z = 420.0f; + + // Camera's position + camEye.x = -1237.0f; + camEye.y = 218.0f; + camEye.z = 408.0f; + + // Not setting fov manually makes camera zoom in after setting the above for a little bit. + camera->fov = 60.0f; + + // Set camera + Play_CameraSetAtEye(play, play->mainCamera.thisIdx, &camAt, &camEye); + + // Hide player so he's not visible in the final screen. Also move him so target arrow on tree dissapears. + player->actor.scale.x = player->actor.scale.y = player->actor.scale.z = 0.00001f; + player->actor.world.pos.z = 500.0f; + + // Hide HUD + Interface_ChangeAlpha(1); +} + +void EnChristmasTree_Update(Actor* thisx, PlayState* play) { + EnChristmasTree* this = (EnChristmasTree*)thisx; + ColliderCylinder* collider = &this->collider; + + Collider_UpdateCylinder(thisx, collider); + CollisionCheck_SetOC(play, &play->colChkCtx, (Collider*)collider); + + 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); + + OPEN_DISPS(play->state.gfxCtx); + + Gfx_SetupDL_25Opa(play->state.gfxCtx); + + Matrix_Scale(treeSize, treeSize, treeSize, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__), G_MTX_MODELVIEW | G_MTX_LOAD); + + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasTreeDL); + + if (percentageCompleted >= 0.1f || !triforceHuntActive) { + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor10DL); + } + if (percentageCompleted >= 0.2f || !triforceHuntActive) { + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor20DL); + } + if (percentageCompleted >= 0.3f || !triforceHuntActive) { + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor30DL); + } + if (percentageCompleted >= 0.4f || !triforceHuntActive) { + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor40DL); + } + if (percentageCompleted >= 0.5f || !triforceHuntActive) { + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor50DL); + } + if (percentageCompleted >= 0.6f || !triforceHuntActive) { + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor60DL); + } + if (percentageCompleted >= 0.7f || !triforceHuntActive) { + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor70DL); + } + if (percentageCompleted >= 0.8f || !triforceHuntActive) { + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor80DL); + } + if (percentageCompleted >= 0.9f || !triforceHuntActive) { + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor90DL); + } + if (percentageCompleted >= 1.0f || !triforceHuntActive) { + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasDecor100DL); + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gXmasStarDL); + } + + 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 new file mode 100644 index 000000000..fd580ac71 --- /dev/null +++ b/soh/src/overlays/actors/ovl_En_ChristmasTree/z_en_christmastree.h @@ -0,0 +1,29 @@ +#ifndef Z_EN_CHRISTMASTREE_H +#define Z_EN_CHRISTMASTREE_H + +#include +#include "global.h" + +struct EnChristmasTree; + +typedef void (*EnChristmasTreeActionFunc)(struct EnChristmasTree*, PlayState*); + +typedef struct EnChristmasTree { + Actor actor; + ColliderCylinder collider; + EnChristmasTreeActionFunc actionFunc; + u8 spawnedRupee; +} EnChristmasTree; + +#ifdef __cplusplus +extern "C" { +#endif +void EnChristmasTree_Init(Actor* thisx, PlayState* play); +void EnChristmasTree_Destroy(Actor* thisx, PlayState* play); +void EnChristmasTree_Update(Actor* thisx, PlayState* play); +void EnChristmasTree_Draw(Actor* thisx, PlayState* play); +#ifdef __cplusplus +} +#endif + +#endif diff --git a/soh/src/overlays/actors/ovl_En_Cs/z_en_cs.c b/soh/src/overlays/actors/ovl_En_Cs/z_en_cs.c index 0c8c8e59e..86fa46e42 100644 --- a/soh/src/overlays/actors/ovl_En_Cs/z_en_cs.c +++ b/soh/src/overlays/actors/ovl_En_Cs/z_en_cs.c @@ -2,6 +2,7 @@ #include "objects/object_cs/object_cs.h" #include "objects/object_link_child/object_link_child.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) @@ -522,4 +523,19 @@ void EnCs_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Matrix_RotateZ(5.0 * M_PI / 9.0, MTXMODE_APPLY); Matrix_Get(&this->spookyMaskMtx); } + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 15) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(8191, -5757, -24133, MTXMODE_APPLY); + Matrix_Translate(270.27f, 297.297f, -513.514f, MTXMODE_APPLY); + Matrix_Scale(1.135f, 1.135f, 1.135f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 0, 0, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } } diff --git a/soh/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c b/soh/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c index 9852620e0..dfc217053 100644 --- a/soh/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c +++ b/soh/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c @@ -7,6 +7,7 @@ #include "z_en_daiku_kakariko.h" #include "objects/object_daiku/object_daiku.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED) @@ -538,6 +539,55 @@ void EnDaikuKakariko_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, V gSPDisplayList(POLY_OPA_DISP++, carpenterHeadDLists[this->actor.params & 3]); } + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 15) { + Matrix_Push(); + switch (this->actor.params) { + case 259: { + Matrix_RotateZYX(4649, 0, -3543, MTXMODE_APPLY); + Matrix_Translate(824.324f, 324.324f, -175.676f, MTXMODE_APPLY); + Matrix_Scale(0.966f, 0.966f, 0.966f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 0, 255, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + break; + } + case 513: { + Matrix_RotateZYX(0, 0, -6200, MTXMODE_APPLY); + Matrix_Translate(770.27f, 567.568f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(0.899f, 0.899f, 0.899f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 0, 255, 255, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + break; + } + case 2: { + Matrix_RotateZYX(0, 0, 7970, MTXMODE_APPLY); + Matrix_Translate(1270.27f, -878.378f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 0, 255, 0, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + break; + } + case -256: + default: { + Matrix_RotateZYX(0, 0, -8635, MTXMODE_APPLY); + Matrix_Translate(675.676f, 716.216f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(0.899f, 0.899f, 0.899f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 0, 0, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + } + } + Matrix_Pop(); + } + } + CLOSE_DISPS(play->state.gfxCtx); } diff --git a/soh/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c b/soh/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c index b84103a4a..1c354c59c 100644 --- a/soh/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c +++ b/soh/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c @@ -4,6 +4,7 @@ #include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) @@ -1276,6 +1277,20 @@ void EnDekubaba_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* if (limbIndex == 1) { Collider_UpdateSpheres(limbIndex, &this->collider); } + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 4) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(16485, -1425, -20964, MTXMODE_APPLY); + Matrix_Translate(-149.0f, 92.0f, -587.0f, MTXMODE_APPLY); + Matrix_Scale(1.534f, 1.534f, 1.534f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } } void EnDekubaba_Draw(Actor* thisx, PlayState* play) { diff --git a/soh/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/soh/src/overlays/actors/ovl_En_Dns/z_en_dns.c index 4ba3520b1..b3d80414d 100644 --- a/soh/src/overlays/actors/ovl_En_Dns/z_en_dns.c +++ b/soh/src/overlays/actors/ovl_En_Dns/z_en_dns.c @@ -10,6 +10,7 @@ #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #include "soh/OTRGlobals.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) @@ -490,9 +491,27 @@ void EnDns_Update(Actor* thisx, PlayState* play) { } } +void EnDns_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { + EnDns* this = (EnDns*)thisx; + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 17) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(0, 0, 17490, MTXMODE_APPLY); + Matrix_Translate(4200.0f, -472.973f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(4.932f, 4.932f, 4.932f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } +} + void EnDns_Draw(Actor* thisx, PlayState* play) { EnDns* this = (EnDns*)thisx; Gfx_SetupDL_25Opa(play->state.gfxCtx); - SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, NULL, NULL, &this->actor); + SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, NULL, EnDns_PostLimbDraw, &this->actor); } diff --git a/soh/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c b/soh/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c index 07a244cd3..3efe190fd 100644 --- a/soh/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c +++ b/soh/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c @@ -4,6 +4,7 @@ #include "objects/object_dodongo/object_dodongo.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED) @@ -914,6 +915,21 @@ void EnDodongo_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* Matrix_MultVec3f(&baseOffset, &this->icePos[i]); } } + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 7) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(0, 0, -13063, MTXMODE_APPLY); + Matrix_Translate(864.865f, 756.757f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(0.662f, 0.662f, 0.662f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 0, 0, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } } void EnDodongo_Draw(Actor* thisx, PlayState* play2) { diff --git a/soh/src/overlays/actors/ovl_En_Dog/z_en_dog.c b/soh/src/overlays/actors/ovl_En_Dog/z_en_dog.c index c8cb4bd97..5cc221f09 100644 --- a/soh/src/overlays/actors/ovl_En_Dog/z_en_dog.c +++ b/soh/src/overlays/actors/ovl_En_Dog/z_en_dog.c @@ -7,6 +7,7 @@ #include "z_en_dog.h" #include "objects/object_dog/object_dog.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS 0 @@ -496,6 +497,19 @@ s32 EnDog_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p } void EnDog_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 4) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(20811, -32768, 3985, MTXMODE_APPLY); + Matrix_Translate(0.0f, 0.0f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(1.25f, 1.25f, 1.25f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } } void EnDog_Draw(Actor* thisx, PlayState* play) { diff --git a/soh/src/overlays/actors/ovl_En_Ds/z_en_ds.c b/soh/src/overlays/actors/ovl_En_Ds/z_en_ds.c index 1c5566d54..6374a1b88 100644 --- a/soh/src/overlays/actors/ovl_En_Ds/z_en_ds.c +++ b/soh/src/overlays/actors/ovl_En_Ds/z_en_ds.c @@ -9,6 +9,7 @@ #include "soh/OTRGlobals.h" #include "soh/ResourceManagerHelpers.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) @@ -289,6 +290,21 @@ void EnDs_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, if (limbIndex == 5) { Matrix_MultVec3f(&sMultVec, &this->actor.focus.pos); } + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 5) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(-1329, -3100, 0, MTXMODE_APPLY); + Matrix_Translate(1270.27f, 351.351f, -310.811f, MTXMODE_APPLY); + Matrix_Scale(0.797f, 0.797f, 0.797f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 0, 255, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } } void EnDs_Draw(Actor* thisx, PlayState* play) { diff --git a/soh/src/overlays/actors/ovl_En_Du/z_en_du.c b/soh/src/overlays/actors/ovl_En_Du/z_en_du.c index 299d70869..d5e638881 100644 --- a/soh/src/overlays/actors/ovl_En_Du/z_en_du.c +++ b/soh/src/overlays/actors/ovl_En_Du/z_en_du.c @@ -3,6 +3,7 @@ #include "scenes/overworld/spot18/spot18_scene.h" #include "soh/OTRGlobals.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_DURING_OCARINA) @@ -655,6 +656,20 @@ void EnDu_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, if (limbIndex == 16) { Matrix_MultVec3f(&D_809FF40C, &this->actor.focus.pos); } + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 17) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(13062, -1329, -15499, MTXMODE_APPLY); + Matrix_Translate(945.946f, -297.297f, 608.108f, MTXMODE_APPLY); + Matrix_Scale(1.217f, 1.217f, 1.217f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } } void EnDu_Draw(Actor* thisx, PlayState* play) { diff --git a/soh/src/overlays/actors/ovl_En_Elf/z_en_elf.c b/soh/src/overlays/actors/ovl_En_Elf/z_en_elf.c index 96a9297b9..3d3985b48 100644 --- a/soh/src/overlays/actors/ovl_En_Elf/z_en_elf.c +++ b/soh/src/overlays/actors/ovl_En_Elf/z_en_elf.c @@ -9,6 +9,7 @@ #include #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA) @@ -1497,6 +1498,26 @@ s32 EnElf_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p return false; } +s32 EnElf_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { + EnElf* this = (EnElf*)thisx; + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 2) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(0, 0, 17047, MTXMODE_APPLY); + Matrix_Translate(202.0f, 0.0f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(0.595f, 0.595f, 0.595f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } + + return false; +} + void EnElf_Draw(Actor* thisx, PlayState* play) { s32 pad; f32 alphaScale; diff --git a/soh/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/soh/src/overlays/actors/ovl_En_Fu/z_en_fu.c index 24c6ff5de..005313f4e 100644 --- a/soh/src/overlays/actors/ovl_En_Fu/z_en_fu.c +++ b/soh/src/overlays/actors/ovl_En_Fu/z_en_fu.c @@ -9,6 +9,7 @@ #include "scenes/indoors/hakasitarelay/hakasitarelay_scene.h" #include "soh/OTRGlobals.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \ @@ -294,6 +295,20 @@ void EnFu_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, if (limbIndex == FU_LIMB_HEAD) { Matrix_MultVec3f(&sMtxSrc, &this->actor.focus.pos); } + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 14) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(-27454, 0, 1992, MTXMODE_APPLY); + Matrix_Translate(878.378f, -108.108f, 67.568f, MTXMODE_APPLY); + Matrix_Scale(1.135f, 1.135f, 1.135f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } } void EnFu_Draw(Actor* thisx, PlayState* play) { diff --git a/soh/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c b/soh/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c index 0bc173059..faf2bb20c 100644 --- a/soh/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c +++ b/soh/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c @@ -3,6 +3,7 @@ #include "vt.h" #include "soh/OTRGlobals.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) @@ -417,9 +418,29 @@ s32 EnHeishi_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f return false; } +s32 EnHeishi4_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { + EnHeishi4* this = (EnHeishi4*)thisx; + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 16) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(0, 0, 442, MTXMODE_APPLY); + Matrix_Translate(256.757f, 121.621f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(1.337f, 1.337f, 1.337f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } + + return false; +} + void EnHeishi4_Draw(Actor* thisx, PlayState* play) { EnHeishi4* this = (EnHeishi4*)thisx; Gfx_SetupDL_25Opa(play->state.gfxCtx); - SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, EnHeishi_OverrideLimbDraw, NULL, this); + SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, EnHeishi_OverrideLimbDraw, EnHeishi4_PostLimbDraw, this); } 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 8b7456350..7f272093e 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 @@ -8,6 +8,7 @@ #include "vt.h" #include "objects/object_hs/object_hs.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) @@ -66,6 +67,13 @@ void EnHs2_Init(Actor* thisx, PlayState* play) { this->actionFunc = func_80A6F1A4; this->unk_2A8 = 0; this->actor.targetMode = 6; + + if (play->sceneNum == SCENE_KAKARIKO_VILLAGE && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + 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) { @@ -161,6 +169,21 @@ void EnHs2_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, if (limbIndex == 9) { Matrix_MultVec3f(&D_80A6F4CC, &this->actor.focus.pos); } + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 9) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(0, 0, -6421, MTXMODE_APPLY); + Matrix_Translate(621.622f, 378.378f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(0.763f, 0.763f, 0.763f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 0, 255, 255, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } } void EnHs2_Draw(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 209137b0d..2f1525466 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 @@ -17,6 +17,7 @@ #include "soh/OTRGlobals.h" #include "soh/ResourceManagerHelpers.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED) @@ -907,6 +908,21 @@ void EnHy_Init(Actor* thisx, PlayState* play) { Actor_Kill(&this->actor); } + if (play->sceneNum == SCENE_KAKARIKO_VILLAGE && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + 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; } @@ -1188,6 +1204,111 @@ void EnHy_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Matrix_MultVec3f(&sp3C, &this->actor.focus.pos); } + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 15) { + Matrix_Push(); + switch (this->actor.params) { + case 1938: { + Matrix_RotateZYX(5313, 0, -1550, MTXMODE_APPLY); + Matrix_Translate(1108.108f, 54.054f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + break; + } + case 135: + case 7: { + Matrix_RotateZYX(1328, 0, 885, MTXMODE_APPLY); + Matrix_Translate(864.865f, 229.73f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(1.25f, 1.25f, 1.25f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + break; + } + case 1922: { + Matrix_RotateZYX(4206, 221, -3543, MTXMODE_APPLY); + Matrix_Translate(662.162f, 162.162f, -27.027f, MTXMODE_APPLY); + Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + break; + } + case 1925: { + Matrix_RotateZYX(-9521, 442, -5536, MTXMODE_APPLY); + Matrix_Translate(351.351f, 256.757f, 283.784f, MTXMODE_APPLY); + Matrix_Scale(1.217f, 1.217f, 1.217f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + break; + } + case 1920: { + Matrix_RotateZYX(0, 0, 3321, MTXMODE_APPLY); + Matrix_Translate(1148.649f, 0.0f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(0.73f, 0.73f, 0.73f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 0, 255, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + break; + } + case 1930: { + Matrix_RotateZYX(3542, 0, 0, MTXMODE_APPLY); + Matrix_Translate(972.973f, -13.514f, 54.054f, MTXMODE_APPLY); + Matrix_Scale(0.831f, 0.831f, 0.831f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 0, 0, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + break; + } + case 1929: { + Matrix_RotateZYX(3542, 0, 0, MTXMODE_APPLY); + Matrix_Translate(972.973f, -13.514f, 54.054f, MTXMODE_APPLY); + Matrix_Scale(0.831f, 0.831f, 0.831f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 255, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + break; + } + case 1921: { + Matrix_RotateZYX(0, 0, 664, MTXMODE_APPLY); + Matrix_Translate(1256.757f, -297.297f, -40.541f, MTXMODE_APPLY); + Matrix_Scale(1.135f, 1.135f, 1.135f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 0, 255, 0, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + break; + } + case 1939: { + Matrix_RotateZYX(2656, 1328, 1992, MTXMODE_APPLY); + Matrix_Translate(1094.594f, 94.594f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(1.351f, 1.351f, 1.351f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + break; + } + default: { + Matrix_RotateZYX(0, 0, 664, MTXMODE_APPLY); + Matrix_Translate(783.784f, 94.594f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(0.662f, 0.662f, 0.662f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 255, 0, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + break; + } + } + Matrix_Pop(); + } + } + CLOSE_DISPS(play->state.gfxCtx); } diff --git a/soh/src/overlays/actors/ovl_En_Ik/z_en_ik.c b/soh/src/overlays/actors/ovl_En_Ik/z_en_ik.c index c4dbe3f3a..63388cf08 100644 --- a/soh/src/overlays/actors/ovl_En_Ik/z_en_ik.c +++ b/soh/src/overlays/actors/ovl_En_Ik/z_en_ik.c @@ -10,6 +10,7 @@ #include "vt.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED @@ -947,6 +948,19 @@ void EnIk_PostLimbDraw3(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, break; } + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 11) { + Matrix_Push(); + Matrix_RotateZYX(0, 0, -15056, MTXMODE_APPLY); + Matrix_Translate(824.324f, 472.973f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(0.845f, 0.845f, 0.845f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 100, 100, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + } + } + CLOSE_DISPS(play->state.gfxCtx); } @@ -1223,6 +1237,20 @@ void EnIk_PostLimbDraw2(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, } } break; } + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 11) { + Matrix_Push(); + Matrix_RotateZYX(0, 0, -15056, MTXMODE_APPLY); + Matrix_Translate(824.324f, 472.973f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(0.845f, 0.845f, 0.845f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 100, 100, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + } + } + CLOSE_DISPS(gfxCtx); } @@ -1368,6 +1396,19 @@ void EnIk_PostLimbDraw1(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, break; } + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 11) { + Matrix_Push(); + Matrix_RotateZYX(0, 0, -15056, MTXMODE_APPLY); + Matrix_Translate(824.324f, 472.973f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(0.845f, 0.845f, 0.845f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 100, 100, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + } + } + CLOSE_DISPS(gfxCtx); } diff --git a/soh/src/overlays/actors/ovl_En_In/z_en_in.c b/soh/src/overlays/actors/ovl_En_In/z_en_in.c index 18903bfbb..8678cf2c8 100644 --- a/soh/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/soh/src/overlays/actors/ovl_En_In/z_en_in.c @@ -2,6 +2,7 @@ #include "overlays/actors/ovl_En_Horse/z_en_horse.h" #include "objects/object_in/object_in.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED) @@ -992,6 +993,18 @@ void EnIn_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, gSPDisplayList(POLY_OPA_DISP++, gIngoChildEraPitchForkDL); } + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 16) { + Matrix_Push(); + Matrix_RotateZYX(-8192, -222, -11513, MTXMODE_APPLY); + Matrix_Translate(770.0f, 837.0f, 878.0f, MTXMODE_APPLY); + Matrix_Scale(1.068f, 1.068f, 1.068f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + } + } + CLOSE_DISPS(play->state.gfxCtx); } diff --git a/soh/src/overlays/actors/ovl_En_Jj/z_en_jj.c b/soh/src/overlays/actors/ovl_En_Jj/z_en_jj.c index 9c485f501..386bf816b 100644 --- a/soh/src/overlays/actors/ovl_En_Jj/z_en_jj.c +++ b/soh/src/overlays/actors/ovl_En_Jj/z_en_jj.c @@ -8,6 +8,7 @@ #include "objects/object_jj/object_jj.h" #include "overlays/actors/ovl_Eff_Dust/z_eff_dust.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED) @@ -307,6 +308,26 @@ void EnJj_Update(Actor* thisx, PlayState* play) { this->skelAnime.jointTable[10].z = this->mouthOpenAngle; } +s32 EnJj_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { + EnJj* this = (EnJj*)thisx; + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 13) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(4649, -8635, 15276, MTXMODE_APPLY); + Matrix_Translate(27.027f, 135.135f, -81.081f, MTXMODE_APPLY); + Matrix_Scale(0.304f, 0.304f, 0.304f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } + + return false; +} + void EnJj_Draw(Actor* thisx, PlayState* play2) { static void* eyeTextures[] = { gJabuJabuEyeOpenTex, gJabuJabuEyeHalfTex, gJabuJabuEyeClosedTex }; PlayState* play = play2; @@ -318,7 +339,7 @@ void EnJj_Draw(Actor* thisx, PlayState* play2) { Matrix_Translate(0.0f, (cosf(this->skelAnime.curFrame * (M_PI / 41.0f)) * 10.0f) - 10.0f, 0.0f, MTXMODE_APPLY); Matrix_Scale(10.0f, 10.0f, 10.0f, MTXMODE_APPLY); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(eyeTextures[this->eyeIndex])); - SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, NULL, NULL, this); + SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, NULL, EnJj_PostLimbDraw, this); CLOSE_DISPS(play->state.gfxCtx); } diff --git a/soh/src/overlays/actors/ovl_En_Ko/z_en_ko.c b/soh/src/overlays/actors/ovl_En_Ko/z_en_ko.c index 70ca84c0e..4f7ac342b 100644 --- a/soh/src/overlays/actors/ovl_En_Ko/z_en_ko.c +++ b/soh/src/overlays/actors/ovl_En_Ko/z_en_ko.c @@ -1351,6 +1351,12 @@ Gfx* EnKo_SetEnvColor(GraphicsContext* gfxCtx, u8 r, u8 g, u8 b, u8 a) { void EnKo_Draw(Actor* thisx, PlayState* play) { EnKo* this = (EnKo*)thisx; Color_RGBA8 tunicColor = sModelInfo[ENKO_TYPE].tunicColor; + + // Overwrite to red tunic as default for Holidays in Hyrule build + tunicColor.r = 255; + tunicColor.g = 0; + tunicColor.b = 0; + Color_RGBA8 bootsColor = sModelInfo[ENKO_TYPE].bootsColor; if (CVarGetInteger(CVAR_COSMETIC("NPC.Kokiri.Changed"), 0)) { 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 23146f376..9cf15e3f6 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 @@ -270,6 +270,13 @@ void EnKusa_Init(Actor* thisx, PlayState* play) { return; } + if (gPlayState->sceneNum == SCENE_KAKARIKO_VILLAGE && this->actor.world.pos.z < 600.0 && + CVAR_GENERAL("LetItSnow")) { + this->actor.world.pos.x += 1620.672; + this->actor.world.pos.y += 80; + this->actor.world.pos.z += 900.884; + } + EnKusa_SetupWaitObject(this); } diff --git a/soh/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c b/soh/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c index b75aa749f..9d8f2689b 100644 --- a/soh/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c +++ b/soh/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c @@ -8,6 +8,7 @@ #include "objects/object_ma1/object_ma1.h" #include "soh/OTRGlobals.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" +#include "soh_assets.h" #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \ @@ -467,6 +468,21 @@ void EnMa1_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, if (limbIndex == 15) { Matrix_MultVec3f(&vec, &this->actor.focus.pos); } + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 15) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(0, 0, 0, MTXMODE_APPLY); + Matrix_Translate(756.757f, 0.0f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(0.73f, 0.73f, 0.73f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 255, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } } void EnMa1_Draw(Actor* thisx, PlayState* play) { diff --git a/soh/src/overlays/actors/ovl_En_Niw/z_en_niw.c b/soh/src/overlays/actors/ovl_En_Niw/z_en_niw.c index c258182d5..c15ba5323 100644 --- a/soh/src/overlays/actors/ovl_En_Niw/z_en_niw.c +++ b/soh/src/overlays/actors/ovl_En_Niw/z_en_niw.c @@ -10,6 +10,7 @@ #include "vt.h" #include "soh/frame_interpolation.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_THROW_ONLY) @@ -1133,13 +1134,33 @@ s32 EnNiw_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p return false; } +s32 EnNiw_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { + EnNiw* this = (EnNiw*)thisx; + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 15) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(0, 0, -19705, MTXMODE_APPLY); + Matrix_Translate(297.297f, -81.082f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } + + return false; +} + void EnNiw_Draw(Actor* thisx, PlayState* play) { EnNiw* this = (EnNiw*)thisx; Vec3f scale = { 0.15f, 0.15f, 0.15f }; GraphicsContext* gfxCtx = play->state.gfxCtx; Gfx_SetupDL_25Opa(play->state.gfxCtx); - SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, EnNiw_OverrideLimbDraw, NULL, this); + SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, EnNiw_OverrideLimbDraw, EnNiw_PostLimbDraw, this); if (this->actionFunc == func_80AB6450) { func_80033C30(&this->actor.world.pos, &scale, 255, play); diff --git a/soh/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c b/soh/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c index 84da935d6..f95de6a6f 100644 --- a/soh/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c +++ b/soh/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c @@ -8,6 +8,7 @@ #include "objects/object_gr/object_gr.h" #include "vt.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED) @@ -247,6 +248,27 @@ s32 EnNiwGirlOverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f static Vec3f sConstVec3f = { 0.2f, 0.2f, 0.2f }; +s32 EnNiwGirl_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { + EnNiwGirl* this = (EnNiwGirl*)thisx; + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 4) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(0, 0, 0, MTXMODE_APPLY); + Matrix_Translate(945.945f, 0.0f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(0.676f, 0.676f, 0.676f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 0, 255, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } + + return false; +} + void EnNiwGirl_Draw(Actor* thisx, PlayState* play) { static void* eyeTextures[] = { gNiwGirlEyeOpenTex, gNiwGirlEyeHalfTex, gNiwGirlEyeClosedTex }; EnNiwGirl* this = (EnNiwGirl*)thisx; @@ -257,7 +279,7 @@ void EnNiwGirl_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(eyeTextures[this->eyeIndex])); - SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, EnNiwGirlOverrideLimbDraw, NULL, this); + SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, EnNiwGirlOverrideLimbDraw, EnNiwGirl_PostLimbDraw, this); func_80033C30(&this->actor.world.pos, &sp4C, 255, play); CLOSE_DISPS(play->state.gfxCtx); diff --git a/soh/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c b/soh/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c index 69cc15aed..b21f783e5 100644 --- a/soh/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c +++ b/soh/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c @@ -6,6 +6,7 @@ #include "soh/OTRGlobals.h" #include "soh/ResourceManagerHelpers.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED) @@ -586,6 +587,27 @@ s32 EnNiwLady_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3 return false; } +s32 EnNiwLady_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { + EnNiwLady* this = (EnNiwLady*)thisx; + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 15) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(-886, -3322, -5093, MTXMODE_APPLY); + Matrix_Translate(824.324f, 283.782f, -202.703f, MTXMODE_APPLY); + Matrix_Scale(0.762f, 0.762f, 0.762f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 255, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } + + return false; +} + void EnNiwLady_Draw(Actor* thisx, PlayState* play) { static void* sEyeTextures[] = { gCuccoLadyEyeOpenTex, gCuccoLadyEyeHalfTex, gCuccoLadyEyeClosedTex }; EnNiwLady* this = (EnNiwLady*)thisx; @@ -597,7 +619,7 @@ void EnNiwLady_Draw(Actor* thisx, PlayState* play) { gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sEyeTextures[this->faceState])); gSPSegment(POLY_OPA_DISP++, 0x0C, func_80ABB0A0(play->state.gfxCtx)); - SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, EnNiwLady_OverrideLimbDraw, NULL, this); + SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, EnNiwLady_OverrideLimbDraw, EnNiwLady_PostLimbDraw, this); } CLOSE_DISPS(play->state.gfxCtx); } diff --git a/soh/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c b/soh/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c index cf70efe9f..172fe70cf 100644 --- a/soh/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c +++ b/soh/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c @@ -12,6 +12,7 @@ #include "objects/object_shopnuts/object_shopnuts.h" #include "objects/object_dns/object_dns.h" #include "objects/object_dnk/object_dnk.h" +#include "assets/objects/gameplay_keep/gameplay_keep.h" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED @@ -47,7 +48,7 @@ static ColliderCylinderInit sCylinderInit = { }, { ELEMTYPE_UNK0, - { 0xFFCFFFFF, 0x00, 0x08 }, + { 0xFFCFFFFF, 0x02, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, TOUCH_ON | TOUCH_SFX_WOOD, BUMP_ON, @@ -72,6 +73,8 @@ void EnNutsball_Init(Actor* thisx, PlayState* play) { EnNutsball* this = (EnNutsball*)thisx; s32 pad; + this->collider.info.toucher.effect = 2; + ActorShape_Init(&this->actor.shape, 400.0f, ActorShadow_DrawCircle, 13.0f); Collider_InitCylinder(play, &this->collider); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); @@ -141,8 +144,10 @@ void func_80ABBBA8(EnNutsball* this, PlayState* play) { sp40.y = this->actor.world.pos.y + 4; sp40.z = this->actor.world.pos.z; - EffectSsHahen_SpawnBurst(play, &sp40, 6.0f, 0, 7, 3, 15, HAHEN_OBJECT_DEFAULT, 10, NULL); - SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 20, NA_SE_EN_OCTAROCK_ROCK); + /*EffectSsHahen_SpawnBurst(play, &sp40, 6.0f, 0, 7, 3, 15, HAHEN_OBJECT_DEFAULT, 10, NULL); + SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 20, NA_SE_EN_OCTAROCK_ROCK);*/ + EffectSsIcePiece_SpawnBurst(play, &this->actor.world.pos, this->actor.scale.x / 10); + SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 20, NA_SE_PL_ICE_BROKEN); Actor_Kill(&this->actor); } else { if (this->timer == -300) { @@ -178,15 +183,34 @@ void EnNutsball_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx); - if (CVarGetInteger(CVAR_ENHANCEMENT("NewDrops"), 0) != 0) { + //if ((CVarGetInteger(CVAR_ENHANCEMENT("NewDrops"), 0) != 0) || CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + // Gfx_SetupDL_25Opa(play->state.gfxCtx); + // f32 scale = 12.0f; + + // gSPSegment(POLY_OPA_DISP++, 0x08, + // Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (0 - 1) % 128, 32, 32, 1, 0, (1 * -2) % 128, 32, 32)); + + // Matrix_RotateX(thisx->home.rot.z * 9.58738e-05f, MTXMODE_APPLY); + // Matrix_Translate(0.0f, -445.946f, 0.0f, MTXMODE_APPLY); + // Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); + + // gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + // gDPSetEnvColor(POLY_OPA_DISP++, 0, 50, 100, 255); + // gSPDisplayList(POLY_OPA_DISP++, gEffIceFragment3DL); + if ((CVarGetInteger(CVAR_ENHANCEMENT("NewDrops"), 0) != 0) || CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { Gfx_SetupDL_25Opa(play->state.gfxCtx); + f32 scale = 12.0f; + gSPSegment(POLY_OPA_DISP++, 0x08, - Gfx_TwoTexScroll(play->state.gfxCtx, 0, 1 * (play->state.frames * 6), 1 * (play->state.frames * 6), - 32, 32, 1, 1 * (play->state.frames * 6), 1 * (play->state.frames * 6), 32, 32)); - Matrix_Scale(25.0f, 25.0f, 25.0f, MTXMODE_APPLY); + Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (0 - 1) % 128, 32, 32, 1, 0, (1 * -2) % 128, 32, 32)); + Matrix_RotateX(thisx->home.rot.z * 9.58738e-05f, MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_MODELVIEW | G_MTX_LOAD); - gSPDisplayList(POLY_OPA_DISP++, sDListsNew[thisx->params]); + Matrix_Translate(0.0f, -445.946f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); + + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gDPSetEnvColor(POLY_OPA_DISP++, 0, 50, 100, 255); + gSPDisplayList(POLY_OPA_DISP++, gEffIceFragment3DL); } else { Gfx_SetupDL_25Opa(play->state.gfxCtx); Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY); diff --git a/soh/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c b/soh/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c index 279bc6834..2da3efb1f 100644 --- a/soh/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c +++ b/soh/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c @@ -3,6 +3,7 @@ #include "objects/gameplay_field_keep/gameplay_field_keep.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #include "soh/ResourceManagerHelpers.h" +#include "assets/objects/gameplay_keep/gameplay_keep.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) @@ -520,7 +521,7 @@ void EnOkuta_ProjectileFly(EnOkuta* this, PlayState* play) { f32 temp_f20; f32 temp_f22; s32 i; - for (s16 i = 0; i < ARRAY_COUNT(sEffectScales); i++) { + /*for (s16 i = 0; i < ARRAY_COUNT(sEffectScales); i++) { phi_s0 += 10000; temp_f20 = Rand_ZeroOne() * 5.0f; @@ -547,12 +548,14 @@ void EnOkuta_ProjectileFly(EnOkuta* this, PlayState* play) { EffectSsKakera_Spawn(play, &pos, &velocity, &this->actor.world.pos, gravity, phi_v0, 30, 5, 0, sEffectScales[i] / 5, 3, 0, 70, 1, OBJECT_GAMEPLAY_FIELD_KEEP, gSilverRockFragmentsDL); - } + }*/ + EffectSsIcePiece_SpawnBurst(play, &this->actor.world.pos, this->actor.scale.x / 10); } else { EffectSsHahen_SpawnBurst(play, &pos, 6.0f, 0, 1, 2, 15, 7, 10, gOctorokProjectileDL); } - SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 20, NA_SE_EN_OCTAROCK_ROCK); + //SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 20, NA_SE_EN_OCTAROCK_ROCK); + SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 20, NA_SE_PL_ICE_BROKEN); Actor_Kill(&this->actor); } } else if (this->timer == -300) { @@ -764,16 +767,30 @@ void EnOkuta_Draw(Actor* thisx, PlayState* play) { } else { OPEN_DISPS(play->state.gfxCtx); - if (CVarGetInteger(CVAR_ENHANCEMENT("NewDrops"), 0) != 0) { + //if (CVarGetInteger(CVAR_ENHANCEMENT("NewDrops"), 0) != 0) { + // Gfx_SetupDL_25Opa(play->state.gfxCtx); + // gSPSegment(POLY_OPA_DISP++, 0x08, + // Gfx_TwoTexScroll(play->state.gfxCtx, 0, 1 * (play->state.frames * 6), + // 1 * (play->state.frames * 6), 32, 32, 1, 1 * (play->state.frames * 6), + // 1 * (play->state.frames * 6), 32, 32)); + // Matrix_Scale(7.0f, 7.0f, 7.0f, MTXMODE_APPLY); + // Matrix_RotateX(thisx->home.rot.z * (M_PI / 0x8000), MTXMODE_APPLY); + // gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_MODELVIEW | G_MTX_LOAD); + // gSPDisplayList(POLY_OPA_DISP++, gSilverRockDL); + if ((CVarGetInteger(CVAR_ENHANCEMENT("NewDrops"), 0) != 0) || CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { Gfx_SetupDL_25Opa(play->state.gfxCtx); + f32 scale = 12.0f; + gSPSegment(POLY_OPA_DISP++, 0x08, - Gfx_TwoTexScroll(play->state.gfxCtx, 0, 1 * (play->state.frames * 6), - 1 * (play->state.frames * 6), 32, 32, 1, 1 * (play->state.frames * 6), - 1 * (play->state.frames * 6), 32, 32)); - Matrix_Scale(7.0f, 7.0f, 7.0f, MTXMODE_APPLY); - Matrix_RotateX(thisx->home.rot.z * (M_PI / 0x8000), MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_MODELVIEW | G_MTX_LOAD); - gSPDisplayList(POLY_OPA_DISP++, gSilverRockDL); + Gfx_TwoTexScroll(play->state.gfxCtx, 0, 0, (0 - 1) % 128, 32, 32, 1, 0, (1 * -2) % 128, 32, 32)); + + Matrix_RotateX(thisx->home.rot.z * 9.58738e-05f, MTXMODE_APPLY); + Matrix_Translate(0.0f, -445.946f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); + + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gDPSetEnvColor(POLY_OPA_DISP++, 0, 50, 100, 255); + gSPDisplayList(POLY_OPA_DISP++, gEffIceFragment3DL); } else { Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY); Matrix_RotateZ(this->actor.home.rot.z * (M_PI / 0x8000), MTXMODE_APPLY); diff --git a/soh/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/soh/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index d78daafe4..31cc9a633 100644 --- a/soh/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/soh/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -18,6 +18,7 @@ #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #include #include "soh/OTRGlobals.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED) @@ -2425,6 +2426,73 @@ void EnOssan_DrawStickDirectionPrompts(PlayState* play, EnOssan* this) { CLOSE_DISPS(play->state.gfxCtx); } +s32 EnOssan_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { + EnOssan* this = (EnOssan*)thisx; + + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + if (limbIndex == 8) { + switch (this->actor.params) { + case 4: { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(-11071, -443, -3986, MTXMODE_APPLY); + Matrix_Translate(878.378f, 351.351f, 540.541f, MTXMODE_APPLY); + Matrix_Scale(1.352f, 1.352f, 1.352f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + break; + } + case 1: + case 3: { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(-6643, 1992, -1772, MTXMODE_APPLY); + Matrix_Translate(918.919f, 121.622f, 256.757f, MTXMODE_APPLY); + Matrix_Scale(0.73f, 0.73f, 0.73f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 0, 255, 0, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + break; + } + case 2: { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(-16163, 0, 2878, MTXMODE_APPLY); + Matrix_Translate(905.406f, 0.0f, -27.027f, MTXMODE_APPLY); + Matrix_Scale(1.318f, 1.318f, 1.318f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + break; + } + default: { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(-11071, -443, -3986, MTXMODE_APPLY); + Matrix_Translate(878.378f, 351.351f, 540.541f, MTXMODE_APPLY); + Matrix_Scale(1.352f, 1.352f, 1.352f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + break; + } + } + } + } + + return false; +} + void EnOssan_DrawBazaarShopkeeper(Actor* thisx, PlayState* play) { static void* sBazaarShopkeeperEyeTextures[] = { gOssanEyeOpenTex, gOssanEyeHalfTex, gOssanEyeClosedTex }; EnOssan* this = (EnOssan*)thisx; @@ -2434,7 +2502,8 @@ void EnOssan_DrawBazaarShopkeeper(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sBazaarShopkeeperEyeTextures[this->eyeTextureIdx])); - SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, EnOssan_OverrideLimbDrawDefaultShopkeeper, NULL, this); + SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, EnOssan_OverrideLimbDrawDefaultShopkeeper, EnOssan_PostLimbDraw, + this); EnOssan_DrawCursor(play, this, this->cursorX, this->cursorY, this->cursorZ, this->drawCursor); EnOssan_DrawStickDirectionPrompts(play, this); @@ -2460,6 +2529,16 @@ s32 EnOssan_OverrideLimbDrawKokiriShopkeeper(PlayState* play, s32 limbIndex, Gfx gSPSegment(POLY_OPA_DISP++, 0x0A, SEGMENTED_TO_VIRTUAL(sKokiriShopkeeperEyeTextures[this->eyeTextureIdx])); } + if (limbIndex == 15 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + Matrix_Push(); + Matrix_RotateZYX(14169, -2215, 0, MTXMODE_APPLY); + Matrix_Translate(1810.811f, -351.351f, -94.595f, MTXMODE_APPLY); + Matrix_Scale(1.068f, 1.068f, 1.068f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + } + CLOSE_DISPS(play->state.gfxCtx); return 0; @@ -2488,8 +2567,8 @@ void EnOssan_DrawKokiriShopkeeper(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255); - gSPSegment(POLY_OPA_DISP++, 0x08, EnOssan_SetEnvColor(play->state.gfxCtx, 0, 130, 70, 255)); - gSPSegment(POLY_OPA_DISP++, 0x09, EnOssan_SetEnvColor(play->state.gfxCtx, 110, 170, 20, 255)); + gSPSegment(POLY_OPA_DISP++, 0x08, EnOssan_SetEnvColor(play->state.gfxCtx, 255, 0, 0, 255)); + gSPSegment(POLY_OPA_DISP++, 0x09, EnOssan_SetEnvColor(play->state.gfxCtx, 255, 0, 0, 255)); gSPSegment(POLY_OPA_DISP++, 0x0C, EnOssan_EndDList(play->state.gfxCtx)); SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, EnOssan_OverrideLimbDrawKokiriShopkeeper, NULL, this); @@ -2564,7 +2643,7 @@ void EnOssan_DrawPotionShopkeeper(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sPotionShopkeeperEyeTextures[this->eyeTextureIdx])); - SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, NULL, NULL, this); + SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, NULL, EnOssan_PostLimbDraw, this); EnOssan_DrawCursor(play, this, this->cursorX, this->cursorY, this->cursorZ, this->drawCursor); EnOssan_DrawStickDirectionPrompts(play, this); @@ -2600,7 +2679,7 @@ void EnOssan_DrawBombchuShopkeeper(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sBombchuShopkeeperEyeTextures[this->eyeTextureIdx])); - SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, NULL, NULL, this); + SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, NULL, EnOssan_PostLimbDraw, this); EnOssan_DrawCursor(play, this, this->cursorX, this->cursorY, this->cursorZ, this->drawCursor); EnOssan_DrawStickDirectionPrompts(play, this); diff --git a/soh/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c b/soh/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c index c62db2dd8..5b64a4355 100644 --- a/soh/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c +++ b/soh/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c @@ -10,6 +10,7 @@ #include "soh/ResourceManagerHelpers.h" #include "soh/Enhancements/game-interactor/GameInteractor.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" +#include "soh_assets.h" #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \ @@ -431,6 +432,18 @@ void EnPoRelay_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* gSPDisplayList(POLY_OPA_DISP++, gDampeHaloDL); CLOSE_DISPS(play->state.gfxCtx); } + + if (limbIndex == 16 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(10627, 3321, -13727, MTXMODE_APPLY); + Matrix_Translate(418.919f, 40.54f, -256.757f, MTXMODE_APPLY); + Matrix_Scale(1.068f, 1.068f, 1.068f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } } void EnPoRelay_Draw(Actor* thisx, PlayState* play) { diff --git a/soh/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c b/soh/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c index 5ac3c7e8d..fdbe2fd9a 100644 --- a/soh/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c +++ b/soh/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c @@ -4,6 +4,7 @@ #include "soh/OTRGlobals.h" #include "soh/ResourceManagerHelpers.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) @@ -306,6 +307,18 @@ void EnShopnuts_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* gSPDisplayList(POLY_OPA_DISP++, gBusinessScrubNoseDL); CLOSE_DISPS(play->state.gfxCtx); } + + if (limbIndex == 17 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(0, 0, 17490, MTXMODE_APPLY); + Matrix_Translate(4200.0f, -472.973f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(4.932f, 4.932f, 4.932f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } } void EnShopnuts_Draw(Actor* thisx, PlayState* play) { diff --git a/soh/src/overlays/actors/ovl_En_Skb/z_en_skb.c b/soh/src/overlays/actors/ovl_En_Skb/z_en_skb.c index b7612dd91..9bc10c242 100644 --- a/soh/src/overlays/actors/ovl_En_Skb/z_en_skb.c +++ b/soh/src/overlays/actors/ovl_En_Skb/z_en_skb.c @@ -3,6 +3,7 @@ #include "objects/object_skb/object_skb.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED) @@ -554,6 +555,19 @@ void EnSkb_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, } else if ((this->unk_283 ^ (this->unk_283 | 4)) == 0) { BodyBreak_SetInfo(&this->bodyBreak, limbIndex, 0, 18, 18, dList, BODYBREAK_OBJECT_DEFAULT); } + + if (limbIndex == 11 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(0, 0, -2215, MTXMODE_APPLY); + Matrix_Translate(1324.324f, 662.162f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 0, 0, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } } void EnSkb_Draw(Actor* thisx, PlayState* play) { diff --git a/soh/src/overlays/actors/ovl_En_Snowball/z_en_snowball.c b/soh/src/overlays/actors/ovl_En_Snowball/z_en_snowball.c new file mode 100644 index 000000000..1a2b9841e --- /dev/null +++ b/soh/src/overlays/actors/ovl_En_Snowball/z_en_snowball.c @@ -0,0 +1,229 @@ +/* + * File: z_en_snowball.c + * Overlay: ovl_En_Snowball + * Description: Rollable Snowball + */ + +#include "z_en_snowball.h" +#include "objects/gameplay_keep/gameplay_keep.h" +#include "objects/object_goroiwa/object_goroiwa.h" +#include "soh_assets.h" + +#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED + +void EnSnowball_Init(Actor* thisx, PlayState* play); +void EnSnowball_Destroy(Actor* thisx, PlayState* play); +void EnSnowball_Update(Actor* thisx, PlayState* play); +void EnSnowball_Draw(Actor* thisx, PlayState* play); + +static ColliderJntSphElementInit sJntSphElementsInit[] = { + { + { + ELEMTYPE_UNK0, + { 0x20000000, 0x00, 0x04 }, + { 0x00000000, 0x00, 0x00 }, + TOUCH_ON | TOUCH_SFX_NORMAL, + BUMP_NONE, + OCELEM_ON, + }, + { 0, { { 0, 0, 0 }, 14 }, 100 }, + }, +}; + +static ColliderJntSphInit sJntSphInit = { + { + COLTYPE_NONE, + AT_ON | AT_TYPE_ENEMY, + AC_NONE, + OC1_ON | OC1_TYPE_ALL, + OC2_TYPE_2, + COLSHAPE_JNTSPH, + }, + 1, + sJntSphElementsInit, +}; + +static CollisionCheckInfoInit sColChkInfoInit = { 0, 3, 15, MASS_HEAVY }; + +void EnSnowball_UpdateCollider(EnSnowball* this) { + Sphere16* worldSphere = &this->collider.elements[0].dim.worldSphere; + + worldSphere->center.x = this->actor.world.pos.x; + worldSphere->center.y = this->actor.world.pos.y + (this->actor.scale.x * 500.0f); + worldSphere->center.z = this->actor.world.pos.z; + worldSphere->radius = (this->actor.scale.x * 500.0f); +} + +void EnSnowball_InitCollider(EnSnowball* this, PlayState* play) { + Collider_InitJntSph(play, &this->collider); + Collider_SetJntSph(play, &this->collider, &this->actor, &sJntSphInit, this->colliderItems); + EnSnowball_UpdateCollider(this); + this->collider.elements[0].dim.worldSphere.radius = (this->actor.scale.x * 500.0f); +} + +static InitChainEntry sInitChain[] = { + ICHAIN_F32_DIV1000(gravity, -860, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(minVelocityY, -15000, ICHAIN_CONTINUE), + ICHAIN_VEC3F_DIV1000(scale, 5, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneForward, 1500, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneScale, 150, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneDownward, 1500, ICHAIN_STOP), +}; + +void EnSnowball_Init(Actor* thisx, PlayState* play) { + EnSnowball* this = (EnSnowball*)thisx; + + Actor_ProcessInitChain(&this->actor, sInitChain); + EnSnowball_InitCollider(this, play); + CollisionCheck_SetInfo(&this->actor.colChkInfo, NULL, &sColChkInfoInit); + ActorShape_Init(&this->actor.shape, 595.0f, ActorShadow_DrawCircle, 9.4f); + this->actor.shape.shadowAlpha = 200; + + if (thisx->params == 1) { + this->actor.speedXZ += 5.0f; + this->actor.world.rot.y = Rand_ZeroFloat(65536.0f); + } +} + +void EnSnowball_Destroy(Actor* thisx, PlayState* play) { + EnSnowball* this = (EnSnowball*)thisx; + + Collider_DestroyJntSph(play, &this->collider); +} + +void EnSnowball_Update(Actor* thisx, PlayState* play) { + EnSnowball* this = (EnSnowball*)thisx; + Actor* player = GET_PLAYER(play); + + // Kill the actor if it falls too far + if (thisx->world.pos.y < -10000.0f) { + Actor_Kill(thisx); + return; + } + + u8 meanBoulder = thisx->params == 1 && this->actor.scale.x > 0.1f; + + // Check if the player is close enough to start rolling + if (this->actor.xzDistToPlayer < MAX(20.0f, this->actor.scale.x * 600.0f) && !meanBoulder) { + /// Flip the actor's rotation away from the player + thisx->world.rot.y = thisx->yawTowardsPlayer + 0x8000; + this->actor.speedXZ = MAX(5.0f, this->actor.speedXZ); + } + + if (this->collider.base.atFlags & AT_HIT) { + this->collider.base.atFlags &= ~AT_HIT; + // Flip the actor's rotation away from the player + thisx->world.rot.y = thisx->yawTowardsPlayer + 0x8000; + + func_8002F6D4(play, &this->actor, 2.0f, this->actor.yawTowardsPlayer, 0.0f, 0); + Player_PlaySfx(&GET_PLAYER(play)->actor, NA_SE_PL_BODY_HIT); + } + + // Slow down the actor and increase it's scale + if (this->actor.speedXZ > 0.0f) { + CollisionPoly snowballPoly; + u8 goingUp = this->actor.world.pos.y - this->prevY > 0.001f; + u8 goingDown = this->actor.world.pos.y - this->prevY < -0.001f; + + // friction + if (thisx->params != 1) { + this->actor.speedXZ -= 0.1f; + } + + if (goingDown) { + // Increase the speed if going down hill + f32 speed = (this->prevY - this->actor.world.pos.y) * 0.15f; + this->actor.speedXZ += MIN(speed, 0.5f); + } else if (goingUp) { + // Reduce the speed if going up hill + this->actor.speedXZ -= (this->actor.world.pos.y - this->prevY) * 0.1f; + } + + if (goingUp || goingDown) { + // Check if going straight, one degree right, or one degree left will result in steeper slope + // Check straight + Vec3f snowballPos = this->actor.world.pos; + snowballPos.y += 100.0f; + snowballPos.x += Math_SinS(this->actor.world.rot.y) * 1.0f; + snowballPos.z += Math_CosS(this->actor.world.rot.y) * 1.0f; + float straightSlope = BgCheck_AnyRaycastFloor1(&gPlayState->colCtx, &snowballPoly, &snowballPos); + + // Check one degree right + snowballPos = this->actor.world.pos; + snowballPos.y += 100.0f; + snowballPos.x += Math_SinS(this->actor.world.rot.y + 0x100) * 1.0f; + snowballPos.z += Math_CosS(this->actor.world.rot.y + 0x100) * 1.0f; + float rightSlope = BgCheck_AnyRaycastFloor1(&gPlayState->colCtx, &snowballPoly, &snowballPos); + + // Check one degree left + snowballPos = this->actor.world.pos; + snowballPos.y += 100.0f; + snowballPos.x += Math_SinS(this->actor.world.rot.y - 0x100) * 1.0f; + snowballPos.z += Math_CosS(this->actor.world.rot.y - 0x100) * 1.0f; + float leftSlope = BgCheck_AnyRaycastFloor1(&gPlayState->colCtx, &snowballPoly, &snowballPos); + + if (straightSlope > rightSlope || straightSlope > leftSlope) { + if (rightSlope < leftSlope) { + this->actor.world.rot.y += 0x100; + } else { + this->actor.world.rot.y -= 0x100; + } + } + } + + // Check if the actor is colliding with a wall and bounce off + if (thisx->bgCheckFlags & 8) { + if (ABS((s16)(thisx->wallYaw - thisx->world.rot.y)) > 0x4000) { + thisx->world.rot.y = ((thisx->wallYaw - thisx->world.rot.y) + thisx->wallYaw) - 0x8000; + } + if (thisx->params != 1) { + thisx->speedXZ *= 0.7f; + } + thisx->bgCheckFlags &= ~8; + if (this->actor.speedXZ > 5.0f) { + Audio_PlayActorSound2(thisx, NA_SE_EV_BOMB_BOUND); + } + } + + Actor_SetScale(&this->actor, MIN(0.15f, this->actor.scale.x + (this->actor.speedXZ * 0.00001f))); + } + + if (this->actor.speedXZ < 0.0f) { + this->actor.speedXZ = 0.0f; + } + + // Based on speed and scale, rotate the snowball + // The larger the snowball, the slower it rotates + this->sRot += (this->actor.speedXZ * 15.0f) / this->actor.scale.x; + + // record the actor's position + this->prevY = this->actor.world.pos.y; + + // Process movement (moves foward based on speed and rotation) + Actor_MoveXZGravity(thisx); + + // Prevent actor from going through the ground or walls + Actor_UpdateBgCheckInfo(play, &this->actor, MAX(10.0f, this->actor.scale.x * 250.0f), MAX(10.0f, this->actor.scale.x * 500.0f), 0.0f, 0xFF); + + EnSnowball_UpdateCollider(this); + // Add collision checks if the actor is a mean boulder + if (meanBoulder) { + CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base); + CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base); + } +} + +void EnSnowball_Draw(Actor* thisx, PlayState* play) { + EnSnowball* this = (EnSnowball*)thisx; + + OPEN_DISPS(play->state.gfxCtx); + + Gfx_SetupDL_25Opa(play->state.gfxCtx); + + Matrix_RotateZYX(this->sRot, thisx->world.rot.y, 0, MTXMODE_APPLY); + + Matrix_Translate(0.0f, 5.0f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(0.5f, 0.5f, 0.5f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + + gSPDisplayList(POLY_OPA_DISP++, gSnowballDL); + + CLOSE_DISPS(play->state.gfxCtx); +} diff --git a/soh/src/overlays/actors/ovl_En_Snowball/z_en_snowball.h b/soh/src/overlays/actors/ovl_En_Snowball/z_en_snowball.h new file mode 100644 index 000000000..fa8c0779c --- /dev/null +++ b/soh/src/overlays/actors/ovl_En_Snowball/z_en_snowball.h @@ -0,0 +1,31 @@ +#ifndef Z_EN_SNOWBALL_H +#define Z_EN_SNOWBALL_H + +#include +#include "global.h" + +struct EnSnowball; + +typedef void (*EnSnowballActionFunc)(struct EnSnowball*, PlayState*); + +typedef struct EnSnowball { + Actor actor; + + ColliderJntSph collider; + ColliderJntSphElement colliderItems[1]; + s16 sRot; + f32 prevY; +} EnSnowball; + +#ifdef __cplusplus +extern "C" { +#endif +void EnSnowball_Init(Actor* thisx, PlayState* play); +void EnSnowball_Destroy(Actor* thisx, PlayState* play); +void EnSnowball_Update(Actor* thisx, PlayState* play); +void EnSnowball_Draw(Actor* thisx, PlayState* play); +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/soh/src/overlays/actors/ovl_En_Sth/z_en_sth.c b/soh/src/overlays/actors/ovl_En_Sth/z_en_sth.c index 1cbc8c5ef..3d80eb38e 100644 --- a/soh/src/overlays/actors/ovl_En_Sth/z_en_sth.c +++ b/soh/src/overlays/actors/ovl_En_Sth/z_en_sth.c @@ -12,6 +12,7 @@ #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #include "soh/OTRGlobals.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED) @@ -398,6 +399,19 @@ void EnSth_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, CLOSE_DISPS(play->state.gfxCtx); } } + + if (limbIndex == 15 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(-4207, -665, -4650, MTXMODE_APPLY); + Matrix_Translate(932.432f, 162.163f, 81.082f, MTXMODE_APPLY); + Matrix_Scale(0.73f, 0.73f, 0.73f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 255, 0, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } } Gfx* EnSth_AllocColorDList(GraphicsContext* play, u8 envR, u8 envG, u8 envB, u8 envA) { diff --git a/soh/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c b/soh/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c index 01052b9bb..5f4515ff8 100644 --- a/soh/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c +++ b/soh/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c @@ -7,6 +7,7 @@ #include "soh/OTRGlobals.h" #include "soh/ResourceManagerHelpers.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" +#include "soh_assets.h" #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \ @@ -521,12 +522,31 @@ s32 EnSyatekiMan_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, V return 0; } +s32 EnSyatekiMan_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { + EnSyatekiMan* this = (EnSyatekiMan*)thisx; + + if (limbIndex == 8 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(2214, 3985, -7750, MTXMODE_APPLY); + Matrix_Translate(1094.594f, 1162.162f, -40.541f, MTXMODE_APPLY); + Matrix_Scale(0.864f, 0.864f, 0.864f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 0, 255, 0, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + + return false; +} + void EnSyatekiMan_Draw(Actor* thisx, PlayState* play) { s32 pad; EnSyatekiMan* this = (EnSyatekiMan*)thisx; Gfx_SetupDL_25Opa(play->state.gfxCtx); - SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, EnSyatekiMan_OverrideLimbDraw, NULL, this); + SkelAnime_DrawSkeletonOpa(play, &this->skelAnime, EnSyatekiMan_OverrideLimbDraw, EnSyatekiMan_PostLimbDraw, this); } void EnSyatekiMan_SetBgm(void) { diff --git a/soh/src/overlays/actors/ovl_En_Ta/z_en_ta.c b/soh/src/overlays/actors/ovl_En_Ta/z_en_ta.c index a01d18f98..fc1e48dfe 100644 --- a/soh/src/overlays/actors/ovl_En_Ta/z_en_ta.c +++ b/soh/src/overlays/actors/ovl_En_Ta/z_en_ta.c @@ -10,6 +10,7 @@ #include "soh/OTRGlobals.h" #include "soh/ResourceManagerHelpers.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) @@ -1215,6 +1216,18 @@ void EnTa_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, if (limbIndex == 15) { Matrix_MultVec3f(&D_80B16E7C, &this->actor.focus.pos); } + + if (limbIndex == 15 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(11955, -1993, 221, MTXMODE_APPLY); + Matrix_Translate(1081.081f, -108.108f, -270.270f, MTXMODE_APPLY); + Matrix_Scale(1.554f, 1.554f, 1.554f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } } void EnTa_Draw(Actor* thisx, PlayState* play) { diff --git a/soh/src/overlays/actors/ovl_En_Test/z_en_test.c b/soh/src/overlays/actors/ovl_En_Test/z_en_test.c index 0bcf45a8b..ed6f7431f 100644 --- a/soh/src/overlays/actors/ovl_En_Test/z_en_test.c +++ b/soh/src/overlays/actors/ovl_En_Test/z_en_test.c @@ -8,6 +8,7 @@ #include "objects/object_sk2/object_sk2.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED) @@ -1950,6 +1951,18 @@ void EnTest_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot this->bodyPartsPos[bodyPart].z = sp50.z; } } + + if (limbIndex == 11 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(-10849, 0, -5314, MTXMODE_APPLY); + Matrix_Translate(513.514f, 283.784f, 554.054f, MTXMODE_APPLY); + Matrix_Scale(1.203f, 1.203f, 1.203f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } } void EnTest_Draw(Actor* thisx, PlayState* play) { diff --git a/soh/src/overlays/actors/ovl_En_Tg/z_en_tg.c b/soh/src/overlays/actors/ovl_En_Tg/z_en_tg.c index 40015812a..6421ea571 100644 --- a/soh/src/overlays/actors/ovl_En_Tg/z_en_tg.c +++ b/soh/src/overlays/actors/ovl_En_Tg/z_en_tg.c @@ -6,6 +6,7 @@ #include "z_en_tg.h" #include "objects/object_mu/object_mu.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) @@ -167,6 +168,29 @@ void EnTg_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, if (limbIndex == 9) { // Place the target point at the guy's head instead of the center of the actor Matrix_MultVec3f(&targetOffset, &this->actor.focus.pos); + if (CVAR_GENERAL("LetItSnow")) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(-3100, 1992, 2435, MTXMODE_APPLY); + Matrix_Translate(864.865f, -121.622f, 175.676f, MTXMODE_APPLY); + Matrix_Scale(0.865f, 0.865f, 0.865f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 0, 255, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } + } else if (limbIndex == 20 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(-2657, -1550, 1549, MTXMODE_APPLY); + Matrix_Translate(594.594f, -135.135f, -54.054f, MTXMODE_APPLY); + Matrix_Scale(0.966f, 0.966f, 0.966f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 255, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); } } diff --git a/soh/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/soh/src/overlays/actors/ovl_En_Tk/z_en_tk.c index 96ce945e4..5492cb866 100644 --- a/soh/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/soh/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -10,6 +10,7 @@ #include "soh/frame_interpolation.h" #include "soh/ResourceManagerHelpers.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) @@ -728,6 +729,18 @@ void EnTk_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Matrix_MultVec3f(&sp28, &this->v3f_304); func_80B1D200(play); } + + if (limbIndex == 16 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(10627, 3321, -13727, MTXMODE_APPLY); + Matrix_Translate(418.919f, 40.54f, -256.757f, MTXMODE_APPLY); + Matrix_Scale(1.068f, 1.068f, 1.068f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } } void EnTk_Draw(Actor* thisx, PlayState* play) { 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 e67277d22..9f21fa36a 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 @@ -9,6 +9,7 @@ #include "soh/OTRGlobals.h" #include "soh/ResourceManagerHelpers.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY) @@ -107,6 +108,12 @@ void EnToryo_Init(Actor* thisx, PlayState* play) { break; case SCENE_KAKARIKO_VILLAGE: if ((LINK_AGE_IN_YEARS == YEARS_CHILD) && IS_DAY) { + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + 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; @@ -415,4 +422,16 @@ void EnToryo_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro Matrix_MultVec3f(&sMultVec, &this->actor.focus.pos); break; } + + if (limbIndex == 15 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(-23691, 664, -2879, MTXMODE_APPLY); + Matrix_Translate(810.811f, -243.243f, 270.27f, MTXMODE_APPLY); + Matrix_Scale(1.216f, 1.216f, 1.216f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } } diff --git a/soh/src/overlays/actors/ovl_En_Vm/z_en_vm.c b/soh/src/overlays/actors/ovl_En_Vm/z_en_vm.c index a26e3eab9..4ad0e07c6 100644 --- a/soh/src/overlays/actors/ovl_En_Vm/z_en_vm.c +++ b/soh/src/overlays/actors/ovl_En_Vm/z_en_vm.c @@ -10,6 +10,7 @@ #include "objects/gameplay_keep/gameplay_keep.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_UPDATE_CULLING_DISABLED) @@ -519,6 +520,18 @@ void EnVm_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, &this->colliderQuad2.dim.quad[1], &this->colliderQuad2.dim.quad[2], &this->colliderQuad2.dim.quad[3]); } + + if (limbIndex == 6 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(19704, -1329, 11734, MTXMODE_APPLY); + Matrix_Translate(310.811f, -108.108f, -81.081f, MTXMODE_APPLY); + Matrix_Scale(2.297f, 2.297f, 2.297f, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gSantaHatGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } } void EnVm_Draw(Actor* thisx, PlayState* play2) { diff --git a/soh/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c b/soh/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c index 084334a6b..ad635316c 100644 --- a/soh/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c +++ b/soh/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c @@ -136,6 +136,11 @@ u8 WeatherTag_CheckEnableWeatherEffect(EnWeatherTag* this, PlayState* play, u8 a u8 ret = false; Player* player = GET_PLAYER(play); + if (LINK_IS_ADULT && gPlayState != NULL && gPlayState->sceneNum == SCENE_KAKARIKO_VILLAGE && + CVAR_GENERAL("LetItSnow")) { + return ret; + } + if (Actor_WorldDistXZToActor(&player->actor, &this->actor) < WEATHER_TAG_RANGE100(this->actor.params)) { if ((play->envCtx.indoors != 0) || !gSkyboxBlendingEnabled || (play->skyboxId != SKYBOX_NORMAL_SKY && play->envCtx.unk_1F == play->envCtx.unk_20)) { diff --git a/soh/src/overlays/actors/ovl_En_Wf/z_en_wf.c b/soh/src/overlays/actors/ovl_En_Wf/z_en_wf.c index 48f17149e..1502ec510 100644 --- a/soh/src/overlays/actors/ovl_En_Wf/z_en_wf.c +++ b/soh/src/overlays/actors/ovl_En_Wf/z_en_wf.c @@ -10,6 +10,7 @@ #include "objects/object_wf/object_wf.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #include "soh/ResourceManagerHelpers.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED) @@ -1428,6 +1429,19 @@ void EnWf_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, this->bodyPartsPos[bodyPartIndex].z = bodyPartPos.z; } } + + if (limbIndex == 17 && CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + OPEN_DISPS(play->state.gfxCtx); + Matrix_Push(); + Matrix_RotateZYX(0, 0, -18377, MTXMODE_APPLY); + Matrix_Translate(729.73f, 1243.243f, 0.0f, MTXMODE_APPLY); + Matrix_Scale(0.743f, 0.743f, 0.743f, MTXMODE_APPLY); + gDPSetEnvColor(POLY_OPA_DISP++, 255, 0, 0, 255); + gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gPaperCrownGenericDL); + Matrix_Pop(); + CLOSE_DISPS(play->state.gfxCtx); + } } static void* sWolfosNormalEyeTextures[] = { gWolfosNormalEyeOpenTex, gWolfosNormalEyeHalfTex, gWolfosNormalEyeNarrowTex, 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 1fe96d38c..6c839b0cf 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 @@ -179,6 +179,18 @@ void EnWood02_Init(Actor* thisx, PlayState* play2) { f32 floorY; s16 extraRot; + if (CVarGetInteger(CVAR_GENERAL("LetItSnow"), 0)) { + 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; + } + } + // The tree in Kakariko's day scene does not have the same params to spawn the GS // as the night scene, For the always spawn GS enhancement we apply the needed // params to have the GS drop when bonking @@ -446,14 +458,20 @@ void EnWood02_Draw(Actor* thisx, PlayState* play) { if ((type == WOOD_TREE_OVAL_GREEN_SPAWNER) || (type == WOOD_TREE_OVAL_GREEN_SPAWNED) || (type == WOOD_TREE_OVAL_GREEN) || (type == WOOD_LEAF_GREEN)) { - red = 50; - green = 170; - blue = 70; + //red = 50; + //green = 170; + //blue = 70; + red = 255; + green = 255; + blue = 255; } else if ((type == WOOD_TREE_OVAL_YELLOW_SPAWNER) || (type == WOOD_TREE_OVAL_YELLOW_SPAWNED) || (type == WOOD_LEAF_YELLOW)) { - red = 180; - green = 155; - blue = 0; + //red = 180; + //green = 155; + //blue = 0; + red = 255; + green = 255; + blue = 255; } else { red = green = blue = 255; } diff --git a/soh/src/overlays/actors/ovl_End_Title/z_end_title.c b/soh/src/overlays/actors/ovl_End_Title/z_end_title.c index b87e127ce..17a17360f 100644 --- a/soh/src/overlays/actors/ovl_End_Title/z_end_title.c +++ b/soh/src/overlays/actors/ovl_End_Title/z_end_title.c @@ -72,41 +72,75 @@ void EndTitle_DrawFull(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx); + uint8_t isKak = play->sceneNum == SCENE_KAKARIKO_VILLAGE; + // Draw title cards on the screen - if ((frameCount > 890) && (this->endAlpha < 200)) { + if ((frameCount > 890 || isKak) && (this->endAlpha < 200)) { this->endAlpha += 7; } - if ((frameCount > 810) && (this->tlozAlpha < 200)) { + if ((frameCount > 810 || isKak) && (this->tlozAlpha < 200)) { this->tlozAlpha += 15; } - if ((frameCount > 850) && (this->ootAlpha < 200)) { + if ((frameCount > 850 || isKak) && (this->ootAlpha < 200)) { this->ootAlpha += 15; } - + OVERLAY_DISP = Gfx_SetupDL_64(OVERLAY_DISP); - gDPSetTextureLUT(OVERLAY_DISP++, G_TT_NONE); - gDPSetEnvColor(OVERLAY_DISP++, 255, 120, 30, 0); - gDPSetRenderMode(OVERLAY_DISP++, G_RM_PASS, G_RM_XLU_SURF2); - gSPClearGeometryMode(OVERLAY_DISP++, - G_TEXTURE_ENABLE | G_CULL_BACK | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR); - gDPSetCombineLERP(OVERLAY_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, - COMBINED, 0, 0, 0, COMBINED); - gDPSetPrimColor(OVERLAY_DISP++, 0x00, 0x80, 0, 0, 0, this->endAlpha); - gDPLoadTextureTile(OVERLAY_DISP++, sTheEndTex, G_IM_FMT_IA, G_IM_SIZ_8b, 80, 24, 0, 0, 80 - 1, 24 - 1, 0, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 0, 0, 0, 0); - gSPTextureRectangle(OVERLAY_DISP++, 120 << 2, 90 << 2, 200 << 2, 113 << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); - gDPPipeSync(OVERLAY_DISP++); - gDPSetPrimColor(OVERLAY_DISP++, 0x00, 0x80, 0, 0, 0, this->tlozAlpha); - gDPLoadTextureTile(OVERLAY_DISP++, sTheLegendOfZeldaTex, G_IM_FMT_IA, G_IM_SIZ_8b, 120, 24, 0, 0, 120 - 1, 24 - 1, - 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 0, 0, 0, 0); - gSPTextureRectangle(OVERLAY_DISP++, 100 << 2, 160 << 2, 220 << 2, 183 << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, - 1 << 10); - gDPPipeSync(OVERLAY_DISP++); - gDPSetPrimColor(OVERLAY_DISP++, 0x00, 0x80, 0, 0, 0, this->ootAlpha); - gDPLoadTextureTile(OVERLAY_DISP++, sOcarinaOfTimeTex, G_IM_FMT_IA, G_IM_SIZ_8b, 112, 16, 0, 0, 112 - 1, 16 - 1, 0, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 0, 0, 0, 0); - gSPTextureRectangle(OVERLAY_DISP++, 104 << 2, 177 << 2, 216 << 2, 192 << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, - 1 << 10); + + if (this->actor.params == 2) { + gSPGrayscale(OVERLAY_DISP++, false); + gDPSetTextureLUT(OVERLAY_DISP++, G_TT_NONE); + gDPSetEnvColor(OVERLAY_DISP++, 0, 255, 0, 0); + gDPSetRenderMode(OVERLAY_DISP++, G_RM_PASS, G_RM_XLU_SURF2); + gSPClearGeometryMode(OVERLAY_DISP++, G_TEXTURE_ENABLE | G_CULL_BACK | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR); + gDPSetCombineLERP(OVERLAY_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED); + gDPSetPrimColor(OVERLAY_DISP++, 0x00, 0x80, 0, 0, 0, this->endAlpha); + gDPLoadTextureTile(OVERLAY_DISP++, sTheEndTex, G_IM_FMT_IA, G_IM_SIZ_8b, 80, 24, 0, 0, 80 - 1, 24 - 1, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 0, 0, 0, 0); + gSPTextureRectangle(OVERLAY_DISP++, 120 << 2, 90 << 2, 200 << 2, 113 << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + gDPPipeSync(OVERLAY_DISP++); + gDPSetPrimColor(OVERLAY_DISP++, 0x00, 0x80, 0, 0, 0, this->tlozAlpha); + gDPLoadTextureTile(OVERLAY_DISP++, sTheLegendOfZeldaTex, G_IM_FMT_IA, G_IM_SIZ_8b, 120, 24, 0, 0, 120 - 1, 24 - 1, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 0, 0, 0, 0); + gSPTextureRectangle(OVERLAY_DISP++, 100 << 2, 160 << 2, 220 << 2, 183 << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + gDPPipeSync(OVERLAY_DISP++); + gDPSetPrimColor(OVERLAY_DISP++, 0x00, 0x80, 0, 0, 0, this->ootAlpha); + gDPLoadTextureTile(OVERLAY_DISP++, sOcarinaOfTimeTex, G_IM_FMT_IA, G_IM_SIZ_8b, 112, 16, 0, 0, 112 - 1, 16 - 1, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 0, 0, 0, 0); + gSPTextureRectangle(OVERLAY_DISP++, 104 << 2, 177 << 2, 216 << 2, 192 << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + + gVisMonoColor.a = 0; + //D_801614B0.r = 205; + //D_801614B0.g = 168; + //D_801614B0.b = 130; + + //gSPGrayscale(OVERLAY_DISP++, true); + } else if (gVisMonoColor.a > 0) { + gSPGrayscale(OVERLAY_DISP++, false); + gDPSetTextureLUT(OVERLAY_DISP++, G_TT_NONE); + gDPSetEnvColor(OVERLAY_DISP++, 255, 120, 30, 0); + gDPSetRenderMode(OVERLAY_DISP++, G_RM_PASS, G_RM_XLU_SURF2); + gSPClearGeometryMode(OVERLAY_DISP++, G_TEXTURE_ENABLE | G_CULL_BACK | G_FOG | G_LIGHTING | G_TEXTURE_GEN | + G_TEXTURE_GEN_LINEAR); + gDPSetCombineLERP(OVERLAY_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, + COMBINED, 0, 0, 0, COMBINED); + gDPSetPrimColor(OVERLAY_DISP++, 0x00, 0x80, 0, 0, 0, this->endAlpha); + gDPLoadTextureTile(OVERLAY_DISP++, sTheEndTex, G_IM_FMT_IA, G_IM_SIZ_8b, 80, 24, 0, 0, 80 - 1, 24 - 1, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 0, 0, 0, 0); + gSPTextureRectangle(OVERLAY_DISP++, 120 << 2, 90 << 2, 200 << 2, 113 << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, + 1 << 10); + gDPPipeSync(OVERLAY_DISP++); + gDPSetPrimColor(OVERLAY_DISP++, 0x00, 0x80, 0, 0, 0, this->tlozAlpha); + gDPLoadTextureTile(OVERLAY_DISP++, sTheLegendOfZeldaTex, G_IM_FMT_IA, G_IM_SIZ_8b, 120, 24, 0, 0, 120 - 1, + 24 - 1, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 0, 0, 0, 0); + gSPTextureRectangle(OVERLAY_DISP++, 100 << 2, 160 << 2, 220 << 2, 183 << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, + 1 << 10); + gDPPipeSync(OVERLAY_DISP++); + gDPSetPrimColor(OVERLAY_DISP++, 0x00, 0x80, 0, 0, 0, this->ootAlpha); + gDPLoadTextureTile(OVERLAY_DISP++, sOcarinaOfTimeTex, G_IM_FMT_IA, G_IM_SIZ_8b, 112, 16, 0, 0, 112 - 1, 16 - 1, + 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 0, 0, 0, 0); + gSPTextureRectangle(OVERLAY_DISP++, 104 << 2, 177 << 2, 216 << 2, 192 << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, + 1 << 10); + if (gVisMonoColor.a > 0) + gSPGrayscale(OVERLAY_DISP++, true); + } CLOSE_DISPS(play->state.gfxCtx); } diff --git a/soh/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c b/soh/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c index 12d5c38cc..689082306 100644 --- a/soh/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c +++ b/soh/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c @@ -178,19 +178,18 @@ void EffectSsBomb2_Update(PlayState* play, u32 index, EffectSs* this) { divisor = this->life - 13; this->rPrimColorR = func_80027DD4(this->rPrimColorR, 255, divisor); this->rPrimColorG = func_80027DD4(this->rPrimColorG, 255, divisor); - this->rPrimColorB = func_80027DD4(this->rPrimColorB, 150, divisor); + this->rPrimColorB = func_80027DD4(this->rPrimColorB, 255, divisor); this->rPrimColorA = func_80027DD4(this->rPrimColorA, 255, divisor); - this->rEnvColorR = func_80027DD4(this->rEnvColorR, 150, divisor); - this->rEnvColorG = func_80027DD4(this->rEnvColorG, 0, divisor); - this->rEnvColorB = func_80027DD4(this->rEnvColorB, 0, divisor); + this->rEnvColorR = func_80027DD4(this->rEnvColorR, 255, divisor); + this->rEnvColorG = func_80027DD4(this->rEnvColorG, 255, divisor); + this->rEnvColorB = func_80027DD4(this->rEnvColorB, 255, divisor); } else if ((this->life < 14) && (this->life > -1)) { divisor = this->life + 1; - this->rPrimColorR = func_80027DD4(this->rPrimColorR, 50, divisor); - this->rPrimColorG = func_80027DD4(this->rPrimColorG, 50, divisor); - this->rPrimColorB = func_80027DD4(this->rPrimColorB, 50, divisor); - this->rPrimColorA = func_80027DD4(this->rPrimColorA, 150, divisor); - this->rEnvColorR = func_80027DD4(this->rEnvColorR, 10, divisor); - this->rEnvColorG = func_80027DD4(this->rEnvColorG, 10, divisor); - this->rEnvColorB = func_80027DD4(this->rEnvColorB, 10, divisor); + this->rPrimColorR = func_80027DD4(this->rPrimColorR, 255, divisor); + this->rPrimColorG = func_80027DD4(this->rPrimColorG, 255, divisor); + this->rPrimColorB = func_80027DD4(this->rPrimColorB, 255, divisor); + this->rPrimColorA = func_80027DD4(this->rPrimColorA, 255, divisor); + this->rEnvColorR = func_80027DD4(this->rEnvColorR, 255, divisor); + this->rEnvColorG = func_80027DD4(this->rEnvColorG, 255, divisor); + this->rEnvColorB = func_80027DD4(this->rEnvColorB, 255, divisor); } -}