From a75c8113dd81b8fa6cc40432cc030b529124d8fc Mon Sep 17 00:00:00 2001 From: 7hrone Date: Tue, 4 Aug 2026 10:09:34 -0700 Subject: [PATCH] Progressive Deku Nut Bag and Stick Bag models (#7015) --- .../custom/objects/object_nutbag/BagString | Bin 0 -> 1116 bytes .../custom/objects/object_nutbag/DekuNut | Bin 0 -> 4188 bytes .../custom/objects/object_nutbag/Gradient | Bin 0 -> 1116 bytes .../custom/objects/object_nutbag/gGiNutBagDL | 19 +++ .../objects/object_nutbag/gGiNutBagDL_tri_0 | 98 +++++++++++++++ .../objects/object_nutbag/gGiNutBagDL_tri_1 | 42 +++++++ .../objects/object_nutbag/gGiNutBagDL_tri_2 | 13 ++ .../objects/object_nutbag/gGiNutBagDL_tri_3 | 87 +++++++++++++ .../objects/object_nutbag/gGiNutBagDL_tri_4 | 25 ++++ .../objects/object_nutbag/gGiNutBagDL_tri_5 | 9 ++ .../objects/object_nutbag/gGiNutBagDL_tri_6 | 33 +++++ .../objects/object_nutbag/gGiNutBagDL_vtx_0 | 114 ++++++++++++++++++ .../objects/object_nutbag/gGiNutBagDL_vtx_1 | 46 +++++++ .../objects/object_nutbag/gGiNutBagDL_vtx_2 | 11 ++ .../objects/object_nutbag/gGiNutBagDL_vtx_3 | 77 ++++++++++++ .../objects/object_nutbag/gGiNutBagDL_vtx_4 | 32 +++++ .../objects/object_nutbag/gGiNutBagDL_vtx_5 | 8 ++ .../objects/object_nutbag/gGiNutBagDL_vtx_6 | 34 ++++++ .../mat_gGiNutBagDL_Inside_layerOpaque | 20 +++ .../mat_gGiNutBagDL_NutTx_layerOpaque | 20 +++ .../mat_gGiNutBagDL_Nuts_layerOpaque | 21 ++++ .../mat_gGiNutBagDL_Pouch_layerOpaque | 20 +++ .../mat_gGiNutBagDL_String_layerOpaque | 20 +++ .../mat_gGiNutBagDL_UpgradeColor_layerOpaque | 20 +++ .../mat_gGiNutBagDL_nutgold_layerOpaque | 22 ++++ .../custom/objects/object_stickbag/DekuStick | Bin 0 -> 4188 bytes .../custom/objects/object_stickbag/Gradient | Bin 0 -> 1116 bytes .../objects/object_stickbag/gGiStickBagDL | 17 +++ .../object_stickbag/gGiStickBagDL_tri_0 | 108 +++++++++++++++++ .../object_stickbag/gGiStickBagDL_tri_1 | 17 +++ .../object_stickbag/gGiStickBagDL_tri_2 | 23 ++++ .../object_stickbag/gGiStickBagDL_tri_3 | 48 ++++++++ .../object_stickbag/gGiStickBagDL_tri_4 | 42 +++++++ .../object_stickbag/gGiStickBagDL_tri_5 | 9 ++ .../object_stickbag/gGiStickBagDL_vtx_0 | 105 ++++++++++++++++ .../object_stickbag/gGiStickBagDL_vtx_1 | 16 +++ .../object_stickbag/gGiStickBagDL_vtx_2 | 22 ++++ .../object_stickbag/gGiStickBagDL_vtx_3 | 52 ++++++++ .../object_stickbag/gGiStickBagDL_vtx_4 | 44 +++++++ .../object_stickbag/gGiStickBagDL_vtx_5 | 8 ++ .../mat_gGiStickBagDL_Inside_layerOpaque | 20 +++ .../mat_gGiStickBagDL_Leaf_layerOpaque | 21 ++++ .../mat_gGiStickBagDL_StickTX_layerOpaque | 20 +++ .../mat_gGiStickBagDL_Stick_layerOpaque | 21 ++++ ...mat_gGiStickBagDL_UpgradeColor_layerOpaque | 20 +++ .../mat_gGiStickBagDL_Wrap_layerOpaque | 20 +++ soh/assets/soh_assets.h | 6 + soh/soh/Enhancements/randomizer/draw.cpp | 28 +++++ soh/soh/Enhancements/randomizer/draw.h | 2 + soh/soh/Enhancements/randomizer/item_list.cpp | 5 +- 50 files changed, 1464 insertions(+), 1 deletion(-) create mode 100644 soh/assets/custom/objects/object_nutbag/BagString create mode 100644 soh/assets/custom/objects/object_nutbag/DekuNut create mode 100644 soh/assets/custom/objects/object_nutbag/Gradient create mode 100644 soh/assets/custom/objects/object_nutbag/gGiNutBagDL create mode 100644 soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_0 create mode 100644 soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_1 create mode 100644 soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_2 create mode 100644 soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_3 create mode 100644 soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_4 create mode 100644 soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_5 create mode 100644 soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_6 create mode 100644 soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_1 create mode 100644 soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_2 create mode 100644 soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_3 create mode 100644 soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_4 create mode 100644 soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_5 create mode 100644 soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_6 create mode 100644 soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Inside_layerOpaque create mode 100644 soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_NutTx_layerOpaque create mode 100644 soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Nuts_layerOpaque create mode 100644 soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Pouch_layerOpaque create mode 100644 soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_String_layerOpaque create mode 100644 soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_UpgradeColor_layerOpaque create mode 100644 soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_nutgold_layerOpaque create mode 100644 soh/assets/custom/objects/object_stickbag/DekuStick create mode 100644 soh/assets/custom/objects/object_stickbag/Gradient create mode 100644 soh/assets/custom/objects/object_stickbag/gGiStickBagDL create mode 100644 soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_0 create mode 100644 soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_1 create mode 100644 soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_2 create mode 100644 soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_3 create mode 100644 soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_4 create mode 100644 soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_5 create mode 100644 soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_0 create mode 100644 soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_1 create mode 100644 soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_2 create mode 100644 soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_3 create mode 100644 soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_4 create mode 100644 soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_5 create mode 100644 soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Inside_layerOpaque create mode 100644 soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Leaf_layerOpaque create mode 100644 soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_StickTX_layerOpaque create mode 100644 soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Stick_layerOpaque create mode 100644 soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_UpgradeColor_layerOpaque create mode 100644 soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Wrap_layerOpaque diff --git a/soh/assets/custom/objects/object_nutbag/BagString b/soh/assets/custom/objects/object_nutbag/BagString new file mode 100644 index 0000000000000000000000000000000000000000..268bfd24ce19c0142b2ded5cf7920efa5d83cb69 GIT binary patch literal 1116 zcmZQzU|@)F4e@6L((m`Jy$8ZTCeeTms8RunA(|TO85n?=1;V44eEZ=oJ~Q5Z{P^)5 z9t9u2eEIwdkNoGaU%!0DBmd>=w^8}g@WB}ZG*2JjzJ2|I({=`iuiw6X!zcgo+xKrD R@#tsx^bKG3z^9X-8~|%0iy#01 literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_nutbag/DekuNut b/soh/assets/custom/objects/object_nutbag/DekuNut new file mode 100644 index 0000000000000000000000000000000000000000..05f3a8afc3b272afa36813abbf5c9f31b80a9f12 GIT binary patch literal 4188 zcmeHKv2DXJ5M&zH-bDl0gE9zYoo`C`htXFo5}h zDC+eGJx@nI>6~*PyZ8N@+`m7sUwTP*v8^O>`+FJaxN%OdwLSfx_RuD4IIZU9Kd^h) zZ~J6{Uxu5%W%saO8sCKAeGrp$v;2cUg^QOzH*bCn@8@wbqT)yRe~>>_93W9tFNV+b z`{4L1KF&tD>w>U=zl}E=T|XA!qf}M9&+uOwAIGmObVQ%)#4)+@b8zh!VLk-M?ROg+(HA0j@r1Xa ziMHbV{;&L()=%m0Pv{Txk7ib;#2Ninybv_bpH?@InJ&i%F`N;s7UJLos=?nG@6k|w nM36}bExtnQWx`Vst)HdwHvTj;8b6%KpZ5mprSWG{d>zLRK!SjL literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_nutbag/Gradient b/soh/assets/custom/objects/object_nutbag/Gradient new file mode 100644 index 0000000000000000000000000000000000000000..82a5b9f05efd489f41066f35613252397c2dfe42 GIT binary patch literal 1116 zcmZQzU|@)F4e@6L((m`Jy$8ZTCeeTms8RunA(|TO85n?=g@NJ!|9^jeetq}s?&agV j)-RhorMtPRFe4${&)vb&P+LtwW>kJOd`8p9@Xa3p8%|U> literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL new file mode 100644 index 0000000000..0aa166dae8 --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_0 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_0 new file mode 100644 index 0000000000..e45d8bfefc --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_0 @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_1 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_1 new file mode 100644 index 0000000000..2f7afe4533 --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_1 @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_2 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_2 new file mode 100644 index 0000000000..565820b82e --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_2 @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_3 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_3 new file mode 100644 index 0000000000..e9b1a0e893 --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_3 @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_4 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_4 new file mode 100644 index 0000000000..5490a11439 --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_4 @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_5 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_5 new file mode 100644 index 0000000000..182d778f3d --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_5 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_6 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_6 new file mode 100644 index 0000000000..a213d8f3ef --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_6 @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_0 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_0 new file mode 100644 index 0000000000..9f4156821a --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_0 @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_1 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_1 new file mode 100644 index 0000000000..10c9ac156e --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_1 @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_2 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_2 new file mode 100644 index 0000000000..e5f2a0a4ba --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_2 @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_3 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_3 new file mode 100644 index 0000000000..ef7510f90f --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_3 @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_4 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_4 new file mode 100644 index 0000000000..36f4bfec85 --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_4 @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_5 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_5 new file mode 100644 index 0000000000..11bc189b53 --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_5 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_6 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_6 new file mode 100644 index 0000000000..fe32ddd972 --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_6 @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Inside_layerOpaque b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Inside_layerOpaque new file mode 100644 index 0000000000..75a806ac37 --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Inside_layerOpaque @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_NutTx_layerOpaque b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_NutTx_layerOpaque new file mode 100644 index 0000000000..d74e985807 --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_NutTx_layerOpaque @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Nuts_layerOpaque b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Nuts_layerOpaque new file mode 100644 index 0000000000..63d0611ea2 --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Nuts_layerOpaque @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Pouch_layerOpaque b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Pouch_layerOpaque new file mode 100644 index 0000000000..30812d81c3 --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Pouch_layerOpaque @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_String_layerOpaque b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_String_layerOpaque new file mode 100644 index 0000000000..ad9a88fc1b --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_String_layerOpaque @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_UpgradeColor_layerOpaque b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_UpgradeColor_layerOpaque new file mode 100644 index 0000000000..2a2464b863 --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_UpgradeColor_layerOpaque @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_nutgold_layerOpaque b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_nutgold_layerOpaque new file mode 100644 index 0000000000..b40cfdef13 --- /dev/null +++ b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_nutgold_layerOpaque @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/DekuStick b/soh/assets/custom/objects/object_stickbag/DekuStick new file mode 100644 index 0000000000000000000000000000000000000000..f2738a9bfb3dcb61c73fc935cb70c648a19e0390 GIT binary patch literal 4188 zcmZQzU|@)F4e@6L((m`Jy$8ZTCeeTmsL}z7A(|TO85n?A0KywQWPu9;7$ZB&7%pCb zER4=}`Huj*ktKJ-#a)nv(b)s7-+1@#^77q40CX;f`*)Xj>|Rw4j5)%f9Gm`f!unt; zM)hL}e-gtFl;XfzV2Nsk>BmUFB>I0;KP)!_X;6VcMEKd4LjczDg9!bwqzX#AxcOt6bflb!N-sW6u?{ZBP$+dkLVBpwKd?iEOLtk)CPe|;0_{`yo#J7K)H&DOgQ-T z12fOe-MeR!?S5!jjp`>e{)rDikJOd`8p9@Xa3p8%|U> literal 0 HcmV?d00001 diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL new file mode 100644 index 0000000000..f63323866b --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_0 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_0 new file mode 100644 index 0000000000..8d2e0cc424 --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_0 @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_1 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_1 new file mode 100644 index 0000000000..3ff075362d --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_1 @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_2 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_2 new file mode 100644 index 0000000000..1d4edceb29 --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_2 @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_3 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_3 new file mode 100644 index 0000000000..df6150612f --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_3 @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_4 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_4 new file mode 100644 index 0000000000..fdbedbdebd --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_4 @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_5 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_5 new file mode 100644 index 0000000000..07cf4d7abd --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_5 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_0 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_0 new file mode 100644 index 0000000000..483a83fc6c --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_0 @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_1 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_1 new file mode 100644 index 0000000000..804c829564 --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_1 @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_2 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_2 new file mode 100644 index 0000000000..065d753da5 --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_2 @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_3 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_3 new file mode 100644 index 0000000000..53363b4d07 --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_3 @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_4 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_4 new file mode 100644 index 0000000000..81d80bea33 --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_4 @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_5 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_5 new file mode 100644 index 0000000000..ef546688a1 --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_5 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Inside_layerOpaque b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Inside_layerOpaque new file mode 100644 index 0000000000..75a806ac37 --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Inside_layerOpaque @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Leaf_layerOpaque b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Leaf_layerOpaque new file mode 100644 index 0000000000..c07c78d316 --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Leaf_layerOpaque @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_StickTX_layerOpaque b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_StickTX_layerOpaque new file mode 100644 index 0000000000..f01801307c --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_StickTX_layerOpaque @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Stick_layerOpaque b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Stick_layerOpaque new file mode 100644 index 0000000000..375ce23b87 --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Stick_layerOpaque @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_UpgradeColor_layerOpaque b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_UpgradeColor_layerOpaque new file mode 100644 index 0000000000..2a2464b863 --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_UpgradeColor_layerOpaque @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Wrap_layerOpaque b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Wrap_layerOpaque new file mode 100644 index 0000000000..c58f069070 --- /dev/null +++ b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Wrap_layerOpaque @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/soh_assets.h b/soh/assets/soh_assets.h index a384f19537..8a27617fe7 100644 --- a/soh/assets/soh_assets.h +++ b/soh/assets/soh_assets.h @@ -215,6 +215,12 @@ static const ALIGN_ASSET(2) char gBombchuBagBodyDL[] = dgBombchuBagBodyDL; #define dgBombchuBagMaskDL "__OTR__objects/object_bombchubag/gBombchuBagMaskDL" static const ALIGN_ASSET(2) char gBombchuBagMaskDL[] = dgBombchuBagMaskDL; +#define dgGiNutBagDL "__OTR__objects/object_nutbag/gGiNutBagDL" +static const ALIGN_ASSET(2) char gGiNutBagDL[] = dgGiNutBagDL; + +#define dgGiStickBagDL "__OTR__objects/object_stickbag/gGiStickBagDL" +static const ALIGN_ASSET(2) char gGiStickBagDL[] = dgGiStickBagDL; + #define dgLargeMajorCrateDL "__OTR__objects/object_kibako2/gLargeMajorCrateDL" static const ALIGN_ASSET(2) char gLargeMajorCrateDL[] = dgLargeMajorCrateDL; diff --git a/soh/soh/Enhancements/randomizer/draw.cpp b/soh/soh/Enhancements/randomizer/draw.cpp index e9ce2b5614..50678184c4 100644 --- a/soh/soh/Enhancements/randomizer/draw.cpp +++ b/soh/soh/Enhancements/randomizer/draw.cpp @@ -1299,3 +1299,31 @@ extern "C" void Randomizer_DrawOverworldKey(PlayState* play, GetItemEntry* getIt CLOSE_DISPS(play->state.gfxCtx); } + +extern "C" void Randomizer_DrawNutBag(PlayState* play, GetItemEntry* getItemEntry) { + OPEN_DISPS(play->state.gfxCtx); + + Gfx_SetupDL_26Opa(play->state.gfxCtx); + gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__), + G_MTX_MODELVIEW | G_MTX_LOAD); + gSPSegment(POLY_OPA_DISP++, 0x08, + (uintptr_t)Gfx_TwoTexScrollEx(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, 6, 6, 6, 6)); + + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gGiNutBagDL); + + CLOSE_DISPS(play->state.gfxCtx); +} + +extern "C" void Randomizer_DrawStickBag(PlayState* play, GetItemEntry* getItemEntry) { + OPEN_DISPS(play->state.gfxCtx); + + Gfx_SetupDL_26Opa(play->state.gfxCtx); + gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__), + G_MTX_MODELVIEW | G_MTX_LOAD); + + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gGiStickBagDL); + + CLOSE_DISPS(play->state.gfxCtx); +} \ No newline at end of file diff --git a/soh/soh/Enhancements/randomizer/draw.h b/soh/soh/Enhancements/randomizer/draw.h index dcb3080515..8c27526e8a 100644 --- a/soh/soh/Enhancements/randomizer/draw.h +++ b/soh/soh/Enhancements/randomizer/draw.h @@ -33,6 +33,8 @@ void Randomizer_DrawMysteryItem(PlayState* play, GetItemEntry* getItemEntry); void Randomizer_DrawBombchuBag(PlayState* play, GetItemEntry* getItemEntry); void Randomizer_DrawOverworldKey(PlayState* play, GetItemEntry* getItemEntry); void Randomizer_DrawRocsFeather(PlayState* play, GetItemEntry* getItemEntry); +void Randomizer_DrawNutBag(PlayState* play, GetItemEntry* getItemEntry); +void Randomizer_DrawStickBag(PlayState* play, GetItemEntry* getItemEntry); #define GET_ITEM_MYSTERY \ { \ diff --git a/soh/soh/Enhancements/randomizer/item_list.cpp b/soh/soh/Enhancements/randomizer/item_list.cpp index 3208c77cbe..3f8ab70871 100644 --- a/soh/soh/Enhancements/randomizer/item_list.cpp +++ b/soh/soh/Enhancements/randomizer/item_list.cpp @@ -408,7 +408,9 @@ void Rando::StaticData::InitItemTable() { itemTable[RG_BOMB_BAG_INF] = Item(RG_BOMB_BAG_INF, Text{ "Infinite Bomb Bag", "Sac de Bombes Infini", "Unendliche Bombentasche" }, ITEMTYPE_ITEM, RG_BOMB_BAG_INF, true, LOGIC_PROGRESSIVE_BOMB_BAG, RHT_BOMB_BAG_INF, RG_BOMB_BAG_INF, OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_40, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, {"the ", "le ", "die "}).CustomIcon(gItemIconBombBag40Tex); itemTable[RG_BULLET_BAG_INF] = Item(RG_BULLET_BAG_INF, Text{ "Infinite Bullet Bag", "Sac de Graines Infinis", "Unendliche Samentasche" }, ITEMTYPE_ITEM, RG_BULLET_BAG_INF, true, LOGIC_PROGRESSIVE_BULLET_BAG, RHT_BULLET_BAG_INF, RG_BULLET_BAG_INF, OBJECT_GI_DEKUPOUCH, GID_BULLET_BAG, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, {"the ", "le ", "die "}).CustomIcon(gItemIconBulletBag50Tex); itemTable[RG_STICK_UPGRADE_INF] = Item(RG_STICK_UPGRADE_INF, Text{ "Infinite Stick Capacity", "Bâtons Mojo Infinis", "Unendliche Stab-Kapazität" }, ITEMTYPE_ITEM, RG_STICK_UPGRADE_INF, true, LOGIC_PROGRESSIVE_STICK_BAG, RHT_STICK_UPGRADE_INF, RG_STICK_UPGRADE_INF, OBJECT_GI_STICK, GID_STICK, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, {"the ", "les ", "die "}).CustomIcon(gItemIconDekuStickTex); + itemTable[RG_STICK_UPGRADE_INF].SetCustomDrawFunc(Randomizer_DrawStickBag); itemTable[RG_NUT_UPGRADE_INF] = Item(RG_NUT_UPGRADE_INF, Text{ "Infinite Nut Capacity", "Noix Mojo Infinies", "Unendliche Nuß-Kapazität" }, ITEMTYPE_ITEM, RG_NUT_UPGRADE_INF, true, LOGIC_PROGRESSIVE_NUT_BAG, RHT_NUT_UPGRADE_INF, RG_NUT_UPGRADE_INF, OBJECT_GI_NUTS, GID_NUTS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, {"the ", "les ", "die "}).CustomIcon(gItemIconDekuNutTex); + itemTable[RG_NUT_UPGRADE_INF].SetCustomDrawFunc(Randomizer_DrawNutBag); itemTable[RG_MAGIC_INF] = Item(RG_MAGIC_INF, Text{ "Infinite Magic Meter", "Magie Infinie", "Unendliches Magisches Maß" }, ITEMTYPE_ITEM, RG_MAGIC_INF, true, LOGIC_PROGRESSIVE_MAGIC, RHT_MAGIC_INF, RG_MAGIC_INF, OBJECT_GI_MAGICPOT, GID_MAGIC_LARGE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, {"the ", "la ", "die "}).CustomIcon(gQuestIconMagicJarBigTex, ICON_SIZE_24); itemTable[RG_BOMBCHU_INF] = Item(RG_BOMBCHU_INF, Text{ "Infinite Bombchus", "Missiles Teigneux Infinis", "Unendliche Krabbelminen" }, ITEMTYPE_ITEM, RG_BOMBCHU_INF, true, LOGIC_BOMBCHUS, RHT_BOMBCHU_INF, RG_BOMBCHU_INF, OBJECT_GI_BOMB_2, GID_BOMBCHU, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, {"the ", "les ", "den "}).CustomIcon(gItemIconBombchuTex); itemTable[RG_BOMBCHU_INF].SetCustomDrawFunc(Randomizer_DrawBombchuBag); @@ -418,8 +420,9 @@ void Rando::StaticData::InitItemTable() { itemTable[RG_SKELETON_KEY].SetCustomDrawFunc(Randomizer_DrawSkeletonKey); itemTable[RG_DEKU_STICK_BAG] = Item(RG_DEKU_STICK_BAG, Text{ "Deku Stick Bag", "Sac de Bâton Mojo", "Deku-Stab-Tasche" }, ITEMTYPE_ITEM, GI_STICK_UPGRADE_30, true, LOGIC_PROGRESSIVE_STICK_BAG, RHT_NONE, RG_DEKU_STICK_BAG, OBJECT_GI_STICK, GID_STICK, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, {"a ", "un ", "eine "}).CustomIcon(gItemIconDekuStickTex); - + itemTable[RG_DEKU_STICK_BAG].SetCustomDrawFunc(Randomizer_DrawStickBag); itemTable[RG_DEKU_NUT_BAG] = Item(RG_DEKU_NUT_BAG, Text{ "Deku Nut Bag", "Sac de Noix Mojo", "Deku-Nuß-Tasche" }, ITEMTYPE_ITEM, GI_NUT_UPGRADE_30, true, LOGIC_PROGRESSIVE_NUT_BAG, RHT_NONE, RG_DEKU_NUT_BAG, OBJECT_GI_NUTS, GID_NUTS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, {"a ", "un ", "eine "}).CustomIcon(gItemIconDekuNutTex); + itemTable[RG_DEKU_NUT_BAG].SetCustomDrawFunc(Randomizer_DrawNutBag); itemTable[RG_TRIFORCE] = Item(RG_TRIFORCE, Text{ "Triforce", "Triforce", "Triforce" }, ITEMTYPE_ITEM, RG_TRIFORCE, true, LOGIC_NONE, RHT_NONE, RG_TRIFORCE, OBJECT_GI_BOMB_2, GID_TRIFORCE_PIECE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, {"the ", "la ", "die "}).CustomIcon(gTriforcePieceTex);; itemTable[RG_HINT] = Item(RG_HINT, Text{ "Hint", "Indice", "Hinweis" }, ITEMTYPE_EVENT, RG_HINT, false, LOGIC_NONE, RHT_NONE, ITEM_CATEGORY_LESSER);