diff --git a/soh/assets/.gitignore b/soh/assets/.gitignore index dce395e6f..d75078bf1 100644 --- a/soh/assets/.gitignore +++ b/soh/assets/.gitignore @@ -4,4 +4,4 @@ *.cfg *.vtx.inc *.dlist.inc -*.txt \ No newline at end of file +!*.png diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/PotBaseNoise_8 b/soh/assets/custom/objects/gameplay_dangeon_keep/PotBaseNoise_8 new file mode 100644 index 000000000..a278fcdff Binary files /dev/null and b/soh/assets/custom/objects/gameplay_dangeon_keep/PotBaseNoise_8 differ diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/PotFaceNoise_16 b/soh/assets/custom/objects/gameplay_dangeon_keep/PotFaceNoise_16 new file mode 100644 index 000000000..302172ec0 Binary files /dev/null and b/soh/assets/custom/objects/gameplay_dangeon_keep/PotFaceNoise_16 differ diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL new file mode 100644 index 000000000..f1e794a96 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_0 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_0 new file mode 100644 index 000000000..e3d576ab5 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_0 @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_1 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_1 new file mode 100644 index 000000000..9e3577c30 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_1 @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_2 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_2 new file mode 100644 index 000000000..957020e99 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_2 @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_3 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_3 new file mode 100644 index 000000000..7b2e00037 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_3 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_4 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_4 new file mode 100644 index 000000000..554a34e4b --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_4 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_0 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_0 new file mode 100644 index 000000000..88f1059c3 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_0 @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_1 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_1 new file mode 100644 index 000000000..2de2afee7 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_1 @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_2 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_2 new file mode 100644 index 000000000..6683ff1d2 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_2 @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_3 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_3 new file mode 100644 index 000000000..4394fa228 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_3 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_4 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_4 new file mode 100644 index 000000000..2ef56105a --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_4 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potbase b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potbase new file mode 100644 index 000000000..6c4a0fdee --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potbase @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potbottom b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potbottom new file mode 100644 index 000000000..e69179046 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potbottom @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potface b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potface new file mode 100644 index 000000000..a1a6346ee --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potface @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potrim b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potrim new file mode 100644 index 000000000..3c56bbc96 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potrim @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potvoid b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potvoid new file mode 100644 index 000000000..d39d1af92 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potvoid @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/soh_assets.h b/soh/assets/soh_assets.h index 16a2f5cd0..340383147 100644 --- a/soh/assets/soh_assets.h +++ b/soh/assets/soh_assets.h @@ -59,6 +59,9 @@ static const ALIGN_ASSET(2) char gTriforcePieceCompletedDL[] = dgTriforcePieceCo #define dgBossSoulSkullDL "__OTR__objects/object_boss_soul/gGIBossSoulSkullDL" static const ALIGN_ASSET(2) char gBossSoulSkullDL[] = dgBossSoulSkullDL; +#define dgRandoPotDL "__OTR__objects/gameplay_dangeon_keep/gRandoPotDL" +static const ALIGN_ASSET(2) char gRandoPotDL[] = dgRandoPotDL; + // overlays #define dgOptionsDividerChangeLangVtx "__OTR__overlays/ovl_file_choose/gOptionsDividerChangeLangVtx" static const ALIGN_ASSET(2) char gOptionsDividerChangeLangVtx[] = dgOptionsDividerChangeLangVtx; diff --git a/soh/assets/sources/potshuffle/MysteryPot.blend b/soh/assets/sources/potshuffle/MysteryPot.blend new file mode 100644 index 000000000..a84fe623e Binary files /dev/null and b/soh/assets/sources/potshuffle/MysteryPot.blend differ diff --git a/soh/assets/sources/potshuffle/PotBaseNoise_8.png b/soh/assets/sources/potshuffle/PotBaseNoise_8.png new file mode 100644 index 000000000..db1d6e91e Binary files /dev/null and b/soh/assets/sources/potshuffle/PotBaseNoise_8.png differ diff --git a/soh/assets/sources/potshuffle/PotFaceNoise_16.png b/soh/assets/sources/potshuffle/PotFaceNoise_16.png new file mode 100644 index 000000000..57834bb55 Binary files /dev/null and b/soh/assets/sources/potshuffle/PotFaceNoise_16.png differ diff --git a/soh/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c b/soh/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c index f32021910..9bd463e43 100644 --- a/soh/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c +++ b/soh/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c @@ -8,6 +8,7 @@ #include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h" #include "objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h" #include "objects/object_tsubo/object_tsubo.h" +#include "soh_assets.h" #define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_ALWAYS_THROWN) @@ -167,15 +168,9 @@ void ObjTsubo_Init(Actor* thisx, PlayState* play) { ObjTsubo_SetupWaitForObject(this); osSyncPrintf("(dungeon keep 壷)(arg_data 0x%04x)\n", this->actor.params); } - if (IS_RANDO) { + if (IS_RANDO && Randomizer_GetSettingValue(RSK_SHUFFLE_POTS)) { this->potIdentity = Randomizer_IdentifyPot(play->sceneNum, (s16)this->actor.world.pos.x, (s16)this->actor.world.pos.y, (s16)this->actor.world.pos.z); - - if (ObjTsubo_HoldsRandomizedItem(this, play)) { - this->actor.scale.x = 0.1f; - this->actor.scale.y = 0.1f; - this->actor.scale.z = 0.1f; - } } } @@ -374,5 +369,20 @@ void ObjTsubo_Update(Actor* thisx, PlayState* play) { } void ObjTsubo_Draw(Actor* thisx, PlayState* play) { - Gfx_DrawDListOpa(play, D_80BA1B84[(thisx->params >> 8) & 1]); + ObjTsubo* this = (ObjTsubo*)thisx; + + if (IS_RANDO && ObjTsubo_HoldsRandomizedItem(this, play)) { + float potSize = 1.0f; + + OPEN_DISPS(play->state.gfxCtx); + Gfx_SetupDL_25Opa(play->state.gfxCtx); + Matrix_Scale(potSize, potSize, potSize, 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*)gRandoPotDL); + CLOSE_DISPS(play->state.gfxCtx); + } else { + Gfx_DrawDListOpa(play, D_80BA1B84[(thisx->params >> 8) & 1]); + } }