diff --git a/assets/xml/objects/object_ani.xml b/assets/xml/objects/object_ani.xml
index f039e01140..3d8f7c3857 100644
--- a/assets/xml/objects/object_ani.xml
+++ b/assets/xml/objects/object_ani.xml
@@ -36,13 +36,13 @@
-
+
-
+
diff --git a/assets/xml/objects/object_bsmask.xml b/assets/xml/objects/object_bsmask.xml
index e776cde1ac..ea94aa89eb 100644
--- a/assets/xml/objects/object_bsmask.xml
+++ b/assets/xml/objects/object_bsmask.xml
@@ -1,28 +1,36 @@
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_arrow.xml b/assets/xml/objects/object_gi_arrow.xml
index ab3bcbde9f..5fcfeb6ebe 100644
--- a/assets/xml/objects/object_gi_arrow.xml
+++ b/assets/xml/objects/object_gi_arrow.xml
@@ -1,7 +1,13 @@
+
+
+
+
-
-
-
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_arrowcase.xml b/assets/xml/objects/object_gi_arrowcase.xml
index ae10b4faae..87d8c29fb3 100644
--- a/assets/xml/objects/object_gi_arrowcase.xml
+++ b/assets/xml/objects/object_gi_arrowcase.xml
@@ -1,12 +1,20 @@
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_bean.xml b/assets/xml/objects/object_gi_bean.xml
index e19b48d14b..ed9d2b7a63 100644
--- a/assets/xml/objects/object_gi_bean.xml
+++ b/assets/xml/objects/object_gi_bean.xml
@@ -1,5 +1,11 @@
+
+
+
+
-
+
+
+
diff --git a/assets/xml/objects/object_gi_bigbomb.xml b/assets/xml/objects/object_gi_bigbomb.xml
index 27d2a07416..042736edc1 100644
--- a/assets/xml/objects/object_gi_bigbomb.xml
+++ b/assets/xml/objects/object_gi_bigbomb.xml
@@ -1,10 +1,17 @@
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_bomb_1.xml b/assets/xml/objects/object_gi_bomb_1.xml
index 98af218735..174927ca62 100644
--- a/assets/xml/objects/object_gi_bomb_1.xml
+++ b/assets/xml/objects/object_gi_bomb_1.xml
@@ -1,5 +1,11 @@
+
+
+
+
-
+
+
+
diff --git a/assets/xml/objects/object_gi_bomb_2.xml b/assets/xml/objects/object_gi_bomb_2.xml
index ecd07c048f..f5b3af67f9 100644
--- a/assets/xml/objects/object_gi_bomb_2.xml
+++ b/assets/xml/objects/object_gi_bomb_2.xml
@@ -1,5 +1,11 @@
+
+
+
+
-
+
+
+
diff --git a/assets/xml/objects/object_gi_bombpouch.xml b/assets/xml/objects/object_gi_bombpouch.xml
index 06eff7cedb..2e9969cbd5 100644
--- a/assets/xml/objects/object_gi_bombpouch.xml
+++ b/assets/xml/objects/object_gi_bombpouch.xml
@@ -1,12 +1,20 @@
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_bosskey.xml b/assets/xml/objects/object_gi_bosskey.xml
index ae5ac2e750..5d4bda5c01 100644
--- a/assets/xml/objects/object_gi_bosskey.xml
+++ b/assets/xml/objects/object_gi_bosskey.xml
@@ -1,6 +1,12 @@
+
+
+
+
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_gi_bottle.xml b/assets/xml/objects/object_gi_bottle.xml
index 95a7b8bce4..e978697ab6 100644
--- a/assets/xml/objects/object_gi_bottle.xml
+++ b/assets/xml/objects/object_gi_bottle.xml
@@ -1,6 +1,12 @@
+
+
+
+
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_gi_bottle_04.xml b/assets/xml/objects/object_gi_bottle_04.xml
index f215d40599..ab90eb89d9 100644
--- a/assets/xml/objects/object_gi_bottle_04.xml
+++ b/assets/xml/objects/object_gi_bottle_04.xml
@@ -1,12 +1,21 @@
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_bottle_15.xml b/assets/xml/objects/object_gi_bottle_15.xml
index afea0f6ca2..486e042a93 100644
--- a/assets/xml/objects/object_gi_bottle_15.xml
+++ b/assets/xml/objects/object_gi_bottle_15.xml
@@ -1,10 +1,15 @@
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_bottle_16.xml b/assets/xml/objects/object_gi_bottle_16.xml
index 7ee7f36408..ab736f087f 100644
--- a/assets/xml/objects/object_gi_bottle_16.xml
+++ b/assets/xml/objects/object_gi_bottle_16.xml
@@ -1,8 +1,13 @@
+
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_bottle_21.xml b/assets/xml/objects/object_gi_bottle_21.xml
index 779b474cd0..32cbd8e757 100644
--- a/assets/xml/objects/object_gi_bottle_21.xml
+++ b/assets/xml/objects/object_gi_bottle_21.xml
@@ -1,9 +1,14 @@
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_bottle_22.xml b/assets/xml/objects/object_gi_bottle_22.xml
index d613970143..bbc2ea4525 100644
--- a/assets/xml/objects/object_gi_bottle_22.xml
+++ b/assets/xml/objects/object_gi_bottle_22.xml
@@ -1,10 +1,15 @@
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_bottle_red.xml b/assets/xml/objects/object_gi_bottle_red.xml
index c2f189dcef..b52781d8d3 100644
--- a/assets/xml/objects/object_gi_bottle_red.xml
+++ b/assets/xml/objects/object_gi_bottle_red.xml
@@ -1,8 +1,13 @@
+
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_bow.xml b/assets/xml/objects/object_gi_bow.xml
index b7d62e12d3..f5ba88dfa7 100644
--- a/assets/xml/objects/object_gi_bow.xml
+++ b/assets/xml/objects/object_gi_bow.xml
@@ -1,8 +1,13 @@
+
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_camera.xml b/assets/xml/objects/object_gi_camera.xml
index 81641ca309..5e94bf88bd 100644
--- a/assets/xml/objects/object_gi_camera.xml
+++ b/assets/xml/objects/object_gi_camera.xml
@@ -1,9 +1,14 @@
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_compass.xml b/assets/xml/objects/object_gi_compass.xml
index 49f7cf87e7..9c724fc59e 100644
--- a/assets/xml/objects/object_gi_compass.xml
+++ b/assets/xml/objects/object_gi_compass.xml
@@ -1,6 +1,12 @@
+
+
+
+
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_gi_fieldmap.xml b/assets/xml/objects/object_gi_fieldmap.xml
index bdb77ad0b1..f4d6369a9f 100644
--- a/assets/xml/objects/object_gi_fieldmap.xml
+++ b/assets/xml/objects/object_gi_fieldmap.xml
@@ -1,9 +1,14 @@
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_fish.xml b/assets/xml/objects/object_gi_fish.xml
index 339f2d1445..7c9f4be1fb 100644
--- a/assets/xml/objects/object_gi_fish.xml
+++ b/assets/xml/objects/object_gi_fish.xml
@@ -1,5 +1,11 @@
+
+
+
+
-
+
+
+
diff --git a/assets/xml/objects/object_gi_ghost.xml b/assets/xml/objects/object_gi_ghost.xml
index 813ba7d4ea..3ea6ca5828 100644
--- a/assets/xml/objects/object_gi_ghost.xml
+++ b/assets/xml/objects/object_gi_ghost.xml
@@ -1,11 +1,21 @@
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_glasses.xml b/assets/xml/objects/object_gi_glasses.xml
index 571f0ea6df..e089e2c8d4 100644
--- a/assets/xml/objects/object_gi_glasses.xml
+++ b/assets/xml/objects/object_gi_glasses.xml
@@ -1,6 +1,12 @@
+
+
+
+
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_gi_gold_dust.xml b/assets/xml/objects/object_gi_gold_dust.xml
index ed787b2b2e..523134bae8 100644
--- a/assets/xml/objects/object_gi_gold_dust.xml
+++ b/assets/xml/objects/object_gi_gold_dust.xml
@@ -1,8 +1,13 @@
+
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_golonmask.xml b/assets/xml/objects/object_gi_golonmask.xml
index c845fd0bdf..87e65396ed 100644
--- a/assets/xml/objects/object_gi_golonmask.xml
+++ b/assets/xml/objects/object_gi_golonmask.xml
@@ -1,9 +1,14 @@
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_heart.xml b/assets/xml/objects/object_gi_heart.xml
index 0917876aa7..1d9e72459e 100644
--- a/assets/xml/objects/object_gi_heart.xml
+++ b/assets/xml/objects/object_gi_heart.xml
@@ -1,5 +1,11 @@
+
+
+
+
-
+
+
+
diff --git a/assets/xml/objects/object_gi_hearts.xml b/assets/xml/objects/object_gi_hearts.xml
index 442ba21c73..0f5387caec 100644
--- a/assets/xml/objects/object_gi_hearts.xml
+++ b/assets/xml/objects/object_gi_hearts.xml
@@ -1,7 +1,13 @@
+
+
+
+
-
-
-
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_hookshot.xml b/assets/xml/objects/object_gi_hookshot.xml
index 37a0b46426..54dbcdd74a 100644
--- a/assets/xml/objects/object_gi_hookshot.xml
+++ b/assets/xml/objects/object_gi_hookshot.xml
@@ -1,8 +1,13 @@
+
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_insect.xml b/assets/xml/objects/object_gi_insect.xml
index a7c3107ea5..bba46991d2 100644
--- a/assets/xml/objects/object_gi_insect.xml
+++ b/assets/xml/objects/object_gi_insect.xml
@@ -1,6 +1,12 @@
+
+
+
+
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_gi_key.xml b/assets/xml/objects/object_gi_key.xml
index bf4cdb7271..2f4511f1d8 100644
--- a/assets/xml/objects/object_gi_key.xml
+++ b/assets/xml/objects/object_gi_key.xml
@@ -1,5 +1,11 @@
+
+
+
+
-
+
+
+
diff --git a/assets/xml/objects/object_gi_ki_tan_mask.xml b/assets/xml/objects/object_gi_ki_tan_mask.xml
index 3135766315..3898630daa 100644
--- a/assets/xml/objects/object_gi_ki_tan_mask.xml
+++ b/assets/xml/objects/object_gi_ki_tan_mask.xml
@@ -1,7 +1,15 @@
+
+
+
+
-
-
-
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_liquid.xml b/assets/xml/objects/object_gi_liquid.xml
index bec768cfe0..ed26c4267e 100644
--- a/assets/xml/objects/object_gi_liquid.xml
+++ b/assets/xml/objects/object_gi_liquid.xml
@@ -1,19 +1,29 @@
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_loach.xml b/assets/xml/objects/object_gi_loach.xml
index c9c81f0b9a..4ffcbfe737 100644
--- a/assets/xml/objects/object_gi_loach.xml
+++ b/assets/xml/objects/object_gi_loach.xml
@@ -1,10 +1,15 @@
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_longsword.xml b/assets/xml/objects/object_gi_longsword.xml
index 6be60d411d..5385b96399 100644
--- a/assets/xml/objects/object_gi_longsword.xml
+++ b/assets/xml/objects/object_gi_longsword.xml
@@ -1,5 +1,11 @@
+
+
+
+
-
+
+
+
diff --git a/assets/xml/objects/object_gi_m_arrow.xml b/assets/xml/objects/object_gi_m_arrow.xml
index 6351783b54..595ad25d63 100644
--- a/assets/xml/objects/object_gi_m_arrow.xml
+++ b/assets/xml/objects/object_gi_m_arrow.xml
@@ -1,9 +1,17 @@
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_magicmushroom.xml b/assets/xml/objects/object_gi_magicmushroom.xml
index ae6cbeb49c..1d26dfa630 100644
--- a/assets/xml/objects/object_gi_magicmushroom.xml
+++ b/assets/xml/objects/object_gi_magicmushroom.xml
@@ -1,9 +1,14 @@
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_magicpot.xml b/assets/xml/objects/object_gi_magicpot.xml
index 2abd48eeff..459f010f4e 100644
--- a/assets/xml/objects/object_gi_magicpot.xml
+++ b/assets/xml/objects/object_gi_magicpot.xml
@@ -1,6 +1,12 @@
+
+
+
+
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_gi_map.xml b/assets/xml/objects/object_gi_map.xml
index 250bb4613a..c0cb2e0700 100644
--- a/assets/xml/objects/object_gi_map.xml
+++ b/assets/xml/objects/object_gi_map.xml
@@ -1,7 +1,17 @@
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask03.xml b/assets/xml/objects/object_gi_mask03.xml
index 561ddef83a..3bc62ba8e1 100644
--- a/assets/xml/objects/object_gi_mask03.xml
+++ b/assets/xml/objects/object_gi_mask03.xml
@@ -1,13 +1,20 @@
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask05.xml b/assets/xml/objects/object_gi_mask05.xml
index 307a3b2f43..c6bf0baadb 100644
--- a/assets/xml/objects/object_gi_mask05.xml
+++ b/assets/xml/objects/object_gi_mask05.xml
@@ -1,11 +1,18 @@
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask06.xml b/assets/xml/objects/object_gi_mask06.xml
index 256d9a91eb..7d24b1d929 100644
--- a/assets/xml/objects/object_gi_mask06.xml
+++ b/assets/xml/objects/object_gi_mask06.xml
@@ -1,10 +1,17 @@
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask09.xml b/assets/xml/objects/object_gi_mask09.xml
index d6db047d57..76efc69225 100644
--- a/assets/xml/objects/object_gi_mask09.xml
+++ b/assets/xml/objects/object_gi_mask09.xml
@@ -1,12 +1,19 @@
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask10.xml b/assets/xml/objects/object_gi_mask10.xml
index adb3ee1d22..e7083f94b3 100644
--- a/assets/xml/objects/object_gi_mask10.xml
+++ b/assets/xml/objects/object_gi_mask10.xml
@@ -1,10 +1,15 @@
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask11.xml b/assets/xml/objects/object_gi_mask11.xml
index 46de5c2cdb..e7b175b4d2 100644
--- a/assets/xml/objects/object_gi_mask11.xml
+++ b/assets/xml/objects/object_gi_mask11.xml
@@ -1,14 +1,21 @@
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask12.xml b/assets/xml/objects/object_gi_mask12.xml
index dced8d8eb6..2f1508b9dc 100644
--- a/assets/xml/objects/object_gi_mask12.xml
+++ b/assets/xml/objects/object_gi_mask12.xml
@@ -1,8 +1,13 @@
+
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask13.xml b/assets/xml/objects/object_gi_mask13.xml
index b6d2c77336..8f5e7bf8f1 100644
--- a/assets/xml/objects/object_gi_mask13.xml
+++ b/assets/xml/objects/object_gi_mask13.xml
@@ -1,9 +1,14 @@
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask14.xml b/assets/xml/objects/object_gi_mask14.xml
index a3c96bb9d6..0b9b5be28f 100644
--- a/assets/xml/objects/object_gi_mask14.xml
+++ b/assets/xml/objects/object_gi_mask14.xml
@@ -1,10 +1,15 @@
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask15.xml b/assets/xml/objects/object_gi_mask15.xml
index bc612c0755..1f29f1befd 100644
--- a/assets/xml/objects/object_gi_mask15.xml
+++ b/assets/xml/objects/object_gi_mask15.xml
@@ -1,9 +1,14 @@
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask16.xml b/assets/xml/objects/object_gi_mask16.xml
index 57124d4d43..4a0650cdd6 100644
--- a/assets/xml/objects/object_gi_mask16.xml
+++ b/assets/xml/objects/object_gi_mask16.xml
@@ -1,11 +1,16 @@
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask17.xml b/assets/xml/objects/object_gi_mask17.xml
index a509ca27ed..a4df999860 100644
--- a/assets/xml/objects/object_gi_mask17.xml
+++ b/assets/xml/objects/object_gi_mask17.xml
@@ -1,13 +1,20 @@
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask18.xml b/assets/xml/objects/object_gi_mask18.xml
index 8e1c8ca547..ad03642903 100644
--- a/assets/xml/objects/object_gi_mask18.xml
+++ b/assets/xml/objects/object_gi_mask18.xml
@@ -1,12 +1,19 @@
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask20.xml b/assets/xml/objects/object_gi_mask20.xml
index 8b87c44fa0..f04bb157e8 100644
--- a/assets/xml/objects/object_gi_mask20.xml
+++ b/assets/xml/objects/object_gi_mask20.xml
@@ -1,11 +1,18 @@
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask21.xml b/assets/xml/objects/object_gi_mask21.xml
index 175d22b85f..4696963add 100644
--- a/assets/xml/objects/object_gi_mask21.xml
+++ b/assets/xml/objects/object_gi_mask21.xml
@@ -1,8 +1,13 @@
+
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask22.xml b/assets/xml/objects/object_gi_mask22.xml
index 7b3a49e537..54b0c55956 100644
--- a/assets/xml/objects/object_gi_mask22.xml
+++ b/assets/xml/objects/object_gi_mask22.xml
@@ -1,13 +1,20 @@
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mask23.xml b/assets/xml/objects/object_gi_mask23.xml
index 458b7c825a..6efa0147be 100644
--- a/assets/xml/objects/object_gi_mask23.xml
+++ b/assets/xml/objects/object_gi_mask23.xml
@@ -1,8 +1,13 @@
+
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_melody.xml b/assets/xml/objects/object_gi_melody.xml
index d7617e7a69..4d4696528f 100644
--- a/assets/xml/objects/object_gi_melody.xml
+++ b/assets/xml/objects/object_gi_melody.xml
@@ -1,11 +1,14 @@
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_milk.xml b/assets/xml/objects/object_gi_milk.xml
index 137dae7779..0e2c37efa3 100644
--- a/assets/xml/objects/object_gi_milk.xml
+++ b/assets/xml/objects/object_gi_milk.xml
@@ -1,7 +1,15 @@
+
+
+
+
-
-
-
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_mssa.xml b/assets/xml/objects/object_gi_mssa.xml
index 6b61b00f5f..ce1ae8c42a 100644
--- a/assets/xml/objects/object_gi_mssa.xml
+++ b/assets/xml/objects/object_gi_mssa.xml
@@ -1,10 +1,15 @@
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_nuts.xml b/assets/xml/objects/object_gi_nuts.xml
index 073e7db8f6..d142cc8bd0 100644
--- a/assets/xml/objects/object_gi_nuts.xml
+++ b/assets/xml/objects/object_gi_nuts.xml
@@ -1,6 +1,14 @@
+
+
+
+
-
-
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_nutsmask.xml b/assets/xml/objects/object_gi_nutsmask.xml
index e34a593f22..c6df5804a9 100644
--- a/assets/xml/objects/object_gi_nutsmask.xml
+++ b/assets/xml/objects/object_gi_nutsmask.xml
@@ -1,9 +1,14 @@
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_ocarina.xml b/assets/xml/objects/object_gi_ocarina.xml
index 7b968a4912..5856529e6c 100644
--- a/assets/xml/objects/object_gi_ocarina.xml
+++ b/assets/xml/objects/object_gi_ocarina.xml
@@ -1,7 +1,15 @@
+
+
+
+
-
-
-
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_purse.xml b/assets/xml/objects/object_gi_purse.xml
index 49cf9fd370..d24da1add4 100644
--- a/assets/xml/objects/object_gi_purse.xml
+++ b/assets/xml/objects/object_gi_purse.xml
@@ -1,17 +1,24 @@
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_rabit_mask.xml b/assets/xml/objects/object_gi_rabit_mask.xml
index 172c080f11..16f5369768 100644
--- a/assets/xml/objects/object_gi_rabit_mask.xml
+++ b/assets/xml/objects/object_gi_rabit_mask.xml
@@ -1,7 +1,15 @@
+
+
+
+
-
-
-
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_reserve00.xml b/assets/xml/objects/object_gi_reserve00.xml
index 1527a26303..3476ab7192 100644
--- a/assets/xml/objects/object_gi_reserve00.xml
+++ b/assets/xml/objects/object_gi_reserve00.xml
@@ -1,11 +1,20 @@
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_reserve01.xml b/assets/xml/objects/object_gi_reserve01.xml
index c31c76698f..5c6bb4d189 100644
--- a/assets/xml/objects/object_gi_reserve01.xml
+++ b/assets/xml/objects/object_gi_reserve01.xml
@@ -1,14 +1,21 @@
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_reserve_b_00.xml b/assets/xml/objects/object_gi_reserve_b_00.xml
index 1c1e543905..1e2c378211 100644
--- a/assets/xml/objects/object_gi_reserve_b_00.xml
+++ b/assets/xml/objects/object_gi_reserve_b_00.xml
@@ -1,8 +1,13 @@
+
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_reserve_b_01.xml b/assets/xml/objects/object_gi_reserve_b_01.xml
index 574763ee91..2bd1b2af21 100644
--- a/assets/xml/objects/object_gi_reserve_b_01.xml
+++ b/assets/xml/objects/object_gi_reserve_b_01.xml
@@ -1,10 +1,15 @@
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_reserve_c_00.xml b/assets/xml/objects/object_gi_reserve_c_00.xml
index 86c6b15fbd..f9cca9676c 100644
--- a/assets/xml/objects/object_gi_reserve_c_00.xml
+++ b/assets/xml/objects/object_gi_reserve_c_00.xml
@@ -1,9 +1,14 @@
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_reserve_c_01.xml b/assets/xml/objects/object_gi_reserve_c_01.xml
index da15309709..b88f74df5f 100644
--- a/assets/xml/objects/object_gi_reserve_c_01.xml
+++ b/assets/xml/objects/object_gi_reserve_c_01.xml
@@ -1,8 +1,13 @@
+
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_rupy.xml b/assets/xml/objects/object_gi_rupy.xml
index 69cd8bf5c8..98d5714d64 100644
--- a/assets/xml/objects/object_gi_rupy.xml
+++ b/assets/xml/objects/object_gi_rupy.xml
@@ -1,18 +1,26 @@
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_schedule.xml b/assets/xml/objects/object_gi_schedule.xml
index e5025a9938..9350bdcc3d 100644
--- a/assets/xml/objects/object_gi_schedule.xml
+++ b/assets/xml/objects/object_gi_schedule.xml
@@ -1,11 +1,16 @@
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_seahorse.xml b/assets/xml/objects/object_gi_seahorse.xml
index f35e2edc97..acc1e184de 100644
--- a/assets/xml/objects/object_gi_seahorse.xml
+++ b/assets/xml/objects/object_gi_seahorse.xml
@@ -1,12 +1,19 @@
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_shield_2.xml b/assets/xml/objects/object_gi_shield_2.xml
index eb9fec8d2f..e3b990bcf4 100644
--- a/assets/xml/objects/object_gi_shield_2.xml
+++ b/assets/xml/objects/object_gi_shield_2.xml
@@ -1,10 +1,15 @@
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_shield_3.xml b/assets/xml/objects/object_gi_shield_3.xml
index 8e011bb92a..19f23203bd 100644
--- a/assets/xml/objects/object_gi_shield_3.xml
+++ b/assets/xml/objects/object_gi_shield_3.xml
@@ -1,10 +1,15 @@
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_soldout.xml b/assets/xml/objects/object_gi_soldout.xml
index 8a733af02e..109a650721 100644
--- a/assets/xml/objects/object_gi_soldout.xml
+++ b/assets/xml/objects/object_gi_soldout.xml
@@ -1,6 +1,11 @@
+
-
-
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_soul.xml b/assets/xml/objects/object_gi_soul.xml
index 945670888b..942062535b 100644
--- a/assets/xml/objects/object_gi_soul.xml
+++ b/assets/xml/objects/object_gi_soul.xml
@@ -1,8 +1,16 @@
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_stick.xml b/assets/xml/objects/object_gi_stick.xml
index c038af3571..859e4f6415 100644
--- a/assets/xml/objects/object_gi_stick.xml
+++ b/assets/xml/objects/object_gi_stick.xml
@@ -1,5 +1,11 @@
+
+
+
+
-
+
+
+
diff --git a/assets/xml/objects/object_gi_stonemask.xml b/assets/xml/objects/object_gi_stonemask.xml
index 9d3b62b8c2..497ace2df3 100644
--- a/assets/xml/objects/object_gi_stonemask.xml
+++ b/assets/xml/objects/object_gi_stonemask.xml
@@ -1,8 +1,13 @@
+
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_sutaru.xml b/assets/xml/objects/object_gi_sutaru.xml
index 3b991123e8..1a425dd2a4 100644
--- a/assets/xml/objects/object_gi_sutaru.xml
+++ b/assets/xml/objects/object_gi_sutaru.xml
@@ -1,6 +1,12 @@
+
+
+
+
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_gi_sword_1.xml b/assets/xml/objects/object_gi_sword_1.xml
index a03de82d51..3f1bd41c0b 100644
--- a/assets/xml/objects/object_gi_sword_1.xml
+++ b/assets/xml/objects/object_gi_sword_1.xml
@@ -1,9 +1,14 @@
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_sword_2.xml b/assets/xml/objects/object_gi_sword_2.xml
index 045936ef2a..6a2bb445be 100644
--- a/assets/xml/objects/object_gi_sword_2.xml
+++ b/assets/xml/objects/object_gi_sword_2.xml
@@ -1,9 +1,14 @@
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_sword_3.xml b/assets/xml/objects/object_gi_sword_3.xml
index 79a2079916..b347c33cf7 100644
--- a/assets/xml/objects/object_gi_sword_3.xml
+++ b/assets/xml/objects/object_gi_sword_3.xml
@@ -1,9 +1,14 @@
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_sword_4.xml b/assets/xml/objects/object_gi_sword_4.xml
index b5c826dc36..7732259c66 100644
--- a/assets/xml/objects/object_gi_sword_4.xml
+++ b/assets/xml/objects/object_gi_sword_4.xml
@@ -1,9 +1,14 @@
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_truth_mask.xml b/assets/xml/objects/object_gi_truth_mask.xml
index 52fdaaf65a..cbc818cea4 100644
--- a/assets/xml/objects/object_gi_truth_mask.xml
+++ b/assets/xml/objects/object_gi_truth_mask.xml
@@ -1,8 +1,16 @@
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_zoramask.xml b/assets/xml/objects/object_gi_zoramask.xml
index c5ba218b41..7deefdf71b 100644
--- a/assets/xml/objects/object_gi_zoramask.xml
+++ b/assets/xml/objects/object_gi_zoramask.xml
@@ -1,11 +1,16 @@
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_st.xml b/assets/xml/objects/object_st.xml
index 2dabce2f83..b8b39f94f2 100644
--- a/assets/xml/objects/object_st.xml
+++ b/assets/xml/objects/object_st.xml
@@ -33,8 +33,8 @@
-
-
+
+
diff --git a/include/functions.h b/include/functions.h
index b4753d4ce2..4b36460cfe 100644
--- a/include/functions.h
+++ b/include/functions.h
@@ -1390,30 +1390,8 @@ s32 Cutscene_GetActorActionIndex(PlayState* play, u16 actorActionCmd);
s32 Cutscene_CheckActorAction(PlayState* play, u16 actorActionCmd);
u8 Cutscene_IsPlaying(PlayState* play);
-void GetItem_Draw(PlayState* play, s16 index);
-void func_800EE364(PlayState* play, s16 index);
-void func_800EE400(PlayState* play, s16 index);
-void func_800EE5FC(PlayState* play, s16 index);
-void func_800EE7D8(PlayState* play, s16 index);
-void func_800EE940(PlayState* play, s16 index);
-void func_800EEA48(PlayState* play, s16 index);
-void func_800EEC18(PlayState* play, s16 index);
-void func_800EED20(PlayState* play, s16 index);
-void func_800EEE34(PlayState* play, s16 index);
-void func_800EEF4C(PlayState* play, s16 index);
-void func_800EF054(PlayState* play, s16 index);
-void func_800EF0F0(PlayState* play, s16 index);
-void func_800EF1F4(PlayState* play, s16 index);
-void func_800EF2AC(PlayState* play, s16 index);
-void func_800EF364(PlayState* play, s16 index);
-void func_800EF4D4(PlayState* play, s16 index);
-void func_800EF65C(PlayState* play, s16 index);
-void func_800EF780(PlayState* play, s16 index);
-void func_800EF89C(PlayState* play, s16 index);
-void func_800EF984(PlayState* play, s16 index);
-void func_800EFAB8(PlayState* play, s16 index);
-void func_800EFBFC(PlayState* play, s16 index);
-void func_800EFD44(PlayState* play, s16 index);
+void GetItem_Draw(PlayState* play, s16 drawId);
+
void EffFootmark_Init(PlayState* play);
void EffFootmark_Add(PlayState* play, MtxF* displayMatrix, Actor* actor, u8 id, Vec3f* location, u16 size, u8 red, u8 green, u8 blue, u16 alpha, u16 alphaChange, u16 fadeoutDelay);
void EffFootmark_Update(PlayState* play);
diff --git a/include/variables.h b/include/variables.h
index db16664a11..c048750b8f 100644
--- a/include/variables.h
+++ b/include/variables.h
@@ -870,7 +870,6 @@ extern EffectShieldParticleInit shieldParticleInitWood;
extern u8 D_801BB12C;
-extern s801BB170 D_801BB170[118];
// extern UNK_TYPE1 D_801BC210;
extern Gfx D_801BC240[9];
extern Gfx D_801BC288[3];
diff --git a/include/z64.h b/include/z64.h
index 01b3cbb70e..841d70800d 100644
--- a/include/z64.h
+++ b/include/z64.h
@@ -901,22 +901,8 @@ typedef void (*ColChkApplyFunc)(PlayState*, CollisionCheckContext*, Collider*);
typedef void (*ColChkVsFunc)(PlayState*, CollisionCheckContext*, Collider*, Collider*);
typedef s32 (*ColChkLineFunc)(PlayState*, CollisionCheckContext*, Collider*, Vec3f*, Vec3f*);
-typedef void(*draw_func)(PlayState* play, s16 index);
-
typedef void(*room_draw_func)(PlayState* play, Room* room, u32 flags);
-typedef struct {
- /* 0x00 */ draw_func unk0;
- /* 0x04 */ u32 unk4;
- /* 0x08 */ u32 unk8;
- /* 0x0C */ u32 unkC;
- /* 0x10 */ u32 unk10;
- /* 0x14 */ u32 unk14;
- /* 0x18 */ u32 unk18;
- /* 0x1C */ u32 unk1C;
- /* 0x20 */ u32 unk20;
-} s801BB170; // size = 0x24
-
typedef struct {
/* 0x00 */ Vec3f atOffset;
/* 0x0C */ Vec3f eyeOffset;
diff --git a/include/z64actor.h b/include/z64actor.h
index 866b92dbb6..baec8e81a1 100644
--- a/include/z64actor.h
+++ b/include/z64actor.h
@@ -226,7 +226,7 @@ typedef enum {
/* 0x00 */ ITEM00_RUPEE_GREEN,
/* 0x01 */ ITEM00_RUPEE_BLUE,
/* 0x02 */ ITEM00_RUPEE_RED,
- /* 0x03 */ ITEM00_HEART,
+ /* 0x03 */ ITEM00_RECOVERY_HEART,
/* 0x04 */ ITEM00_BOMBS_A,
/* 0x05 */ ITEM00_ARROWS_10,
/* 0x06 */ ITEM00_HEART_PIECE,
@@ -268,7 +268,7 @@ typedef struct EnItem00 {
/* 0x000 */ Actor actor;
/* 0x144 */ EnItem00ActionFunc actionFunc;
/* 0x148 */ s16 collectibleFlag;
- /* 0x14A */ s16 unk14A;
+ /* 0x14A */ s16 getItemId;
/* 0x14C */ s16 unk14C;
/* 0x14E */ s16 unk14E;
/* 0x150 */ s16 unk150;
diff --git a/include/z64item.h b/include/z64item.h
index 14ea9fca4d..5e8e3a656f 100644
--- a/include/z64item.h
+++ b/include/z64item.h
@@ -154,7 +154,7 @@ typedef enum {
/* 0x21 */ ITEM_ZORA_EGG,
/* 0x22 */ ITEM_GOLD_DUST,
/* 0x23 */ ITEM_MUSHROOM,
- /* 0x24 */ ITEM_SEA_HORSE,
+ /* 0x24 */ ITEM_SEAHORSE,
/* 0x25 */ ITEM_CHATEAU,
/* 0x26 */ ITEM_HYLIAN_LOACH,
/* 0x27 */ ITEM_OBABA_DRINK,
@@ -166,7 +166,7 @@ typedef enum {
/* 0x2D */ ITEM_ROOM_KEY,
/* 0x2E */ ITEM_LETTER_MAMA,
/* 0x2F */ ITEM_LETTER_TO_KAFEI,
- /* 0x30 */ ITEM_PENDANT_MEMORIES,
+ /* 0x30 */ ITEM_PENDANT_OF_MEMORIES,
/* 0x31 */ ITEM_TINGLE_MAP,
/* 0x32 */ ITEM_MASK_DEKU,
/* 0x33 */ ITEM_MASK_GORON,
@@ -247,7 +247,7 @@ typedef enum {
/* 0x80 */ ITEM_INVALID_5,
/* 0x81 */ ITEM_INVALID_6,
/* 0x82 */ ITEM_INVALID_7,
- /* 0x83 */ ITEM_HEART,
+ /* 0x83 */ ITEM_RECOVERY_HEART,
/* 0x84 */ ITEM_RUPEE_GREEN,
/* 0x85 */ ITEM_RUPEE_BLUE,
/* 0x86 */ ITEM_RUPEE_10,
@@ -279,7 +279,7 @@ typedef enum {
/* 0xA0 */ ITEM_MILK,
/* 0xA1 */ ITEM_GOLD_DUST_2,
/* 0xA2 */ ITEM_HYLIAN_LOACH_2,
- /* 0xA3 */ ITEM_SEA_HORSE_CAUGHT,
+ /* 0xA3 */ ITEM_SEAHORSE_CAUGHT,
/* 0xF0 */ ITEM_F0 = 0xF0,
/* 0xF1 */ ITEM_F1,
/* 0xF2 */ ITEM_F2,
@@ -304,11 +304,15 @@ typedef enum {
/* 0x0A */ GI_RECOVERY_HEART,
/* 0x0C */ GI_HEART_PIECE = 0x0C,
/* 0x0D */ GI_HEART_CONTAINER,
+ /* 0x0E */ GI_MAGIC_SMALL,
+ /* 0x0F */ GI_MAGIC_LARGE,
/* 0x11 */ GI_STRAY_FAIRY = 0x11,
/* 0x14 */ GI_BOMBS_1 = 0x14,
/* 0x15 */ GI_BOMBS_5,
/* 0x16 */ GI_BOMBS_10,
- /* 0x19 */ GI_STICKS_1 = 0x19,
+ /* 0x17 */ GI_BOMBS_20,
+ /* 0x18 */ GI_BOMBS_30,
+ /* 0x19 */ GI_STICKS_1,
/* 0x1A */ GI_BOMBCHUS_10,
/* 0x1B */ GI_BOMB_BAG_20,
/* 0x1C */ GI_BOMB_BAG_30,
@@ -320,28 +324,58 @@ typedef enum {
/* 0x22 */ GI_QUIVER_30,
/* 0x23 */ GI_QUIVER_40,
/* 0x24 */ GI_QUIVER_50,
- /* 0x25 */ GI_25 = 0x25,
- /* 0x28 */ GI_NUTS_1 = 0x28,
- /* 0x2A */ GI_NUTS_10 = 0x2A,
+ /* 0x25 */ GI_ARROW_FIRE,
+ /* 0x26 */ GI_ARROW_ICE,
+ /* 0x27 */ GI_ARROW_LIGHT,
+ /* 0x28 */ GI_NUTS_1,
+ /* 0x29 */ GI_NUTS_5,
+ /* 0x2A */ GI_NUTS_10,
+ /* 0x2E */ GI_BOMBCHUS_20 = 0x2E,
/* 0x32 */ GI_SHIELD_HERO = 0x32,
/* 0x33 */ GI_SHIELD_MIRROR,
- /* 0x35 */ GI_MAGIC_BEANS = 0x35,
+ /* 0x34 */ GI_POWDER_KEG,
+ /* 0x35 */ GI_MAGIC_BEANS,
/* 0x36 */ GI_BOMBCHUS_1,
- /* 0x3A */ GI_BOMBCHUS_5 = 0x3A,
- /* 0x3C */ GI_KEY_SMALL = 0x3C,
+ /* 0x37 */ GI_SWORD_KOKIRI,
+ /* 0x38 */ GI_SWORD_RAZOR,
+ /* 0x39 */ GI_SWORD_GILDED,
+ /* 0x3A */ GI_BOMBCHUS_5,
+ /* 0x3B */ GI_SWORD_GREAT_FAIRY,
+ /* 0x3C */ GI_KEY_SMALL,
/* 0x3D */ GI_KEY_BOSS,
/* 0x3E */ GI_MAP,
/* 0x3F */ GI_COMPASS,
+ /* 0x41 */ GI_HOOKSHOT = 0x41,
+ /* 0x42 */ GI_LENS,
+ /* 0x43 */ GI_PICTO_BOX,
/* 0x4C */ GI_OCARINA = 0x4C,
- /* 0x50 */ GI_50 = 0x50,
- /* 0x52 */ GI_SCALE_GOLD = 0x52, // Assumed, used in En_Fishing
- /* 0x59 */ GI_BOTTLE_POTION_RED = 0x59,
+ /* 0x50 */ GI_BOMBERS_NOTEBOOK = 0x50,
+ /* 0x52 */ GI_SKULL_TOKEN = 0x52,
+ /* 0x55 */ GI_REMAINS_ODOLWA = 0x55,
+ /* 0x56 */ GI_REMAINS_GOHT,
+ /* 0x57 */ GI_REMAINS_GYORG,
+ /* 0x58 */ GI_REMAINS_TWINMOLD,
+ /* 0x59 */ GI_POTION_RED_BOTTLE, // ITEM_LONGSHOT
/* 0x5A */ GI_BOTTLE,
/* 0x5B */ GI_POTION_RED,
/* 0x5C */ GI_POTION_GREEN,
/* 0x5D */ GI_POTION_BLUE,
/* 0x5E */ GI_FAIRY,
- /* 0x60 */ GI_MILK_BOTTLE = 0x60,
+ /* 0x5F */ GI_DEKU_PRINCESS,
+ /* 0x60 */ GI_MILK_BOTTLE,
+ /* 0x61 */ GI_MILK_HALF,
+ /* 0x62 */ GI_FISH,
+ /* 0x63 */ GI_BUG,
+ /* 0x64 */ GI_BLUE_FIRE,
+ /* 0x65 */ GI_POE,
+ /* 0x66 */ GI_BIG_POE,
+ /* 0x67 */ GI_SPRING_WATER,
+ /* 0x68 */ GI_HOT_SPRING_WATER,
+ /* 0x69 */ GI_ZORA_EGG,
+ /* 0x6A */ GI_GOLD_DUST,
+ /* 0x6B */ GI_MUSHROOM,
+ /* 0x6E */ GI_SEAHORSE = 0x6E,
+ /* 0x6F */ GI_CHATEAU_BOTTLE,
/* 0x76 */ GI_ICE_TRAP = 0x76,
/* 0x78 */ GI_MASK_DEKU = 0x78,
/* 0x79 */ GI_MASK_GORON,
@@ -369,72 +403,153 @@ typedef enum {
/* 0x8F */ GI_MASK_KAFEIS_MASK,
/* 0x91 */ GI_CHATEAU = 0x91,
/* 0x92 */ GI_MILK,
- /* 0x93 */ GI_GOLD_DUST,
- /* 0x94 */ GI_EEL, // Unused bottled eel
- /* 0x95 */ GI_SEAHORSE,
+ /* 0x93 */ GI_GOLD_DUST_2,
+ /* 0x94 */ GI_HYLIAN_LOACH, // Unused bottled eel
+ /* 0x95 */ GI_SEAHORSE_CAUGHT,
/* 0x96 */ GI_MOON_TEAR,
/* 0x97 */ GI_DEED_LAND,
/* 0x98 */ GI_DEED_SWAMP,
/* 0x99 */ GI_DEED_MOUNTAIN,
/* 0x9A */ GI_DEED_OCEAN,
- /* 0x9B */ GI_SWORD_GREAT_FAIRY,
- /* 0x9C */ GI_SWORD_KOKIRI,
- /* 0x9D */ GI_SWORD_RAZOR,
- /* 0x9E */ GI_SWORD_GILDED,
- /* 0x9F */ GI_SHIELD_HERO_2, // Code that treats this as hero's shield is unused, so take with a grain of salt
- /* 0xA1 */ GI_LETTER_TO_MAMA = 0xA1,
+ /* 0x9B */ GI_SWORD_GREAT_FAIRY_STOLEN,
+ /* 0x9C */ GI_SWORD_KOKIRI_STOLEN,
+ /* 0x9D */ GI_SWORD_RAZOR_STOLEN,
+ /* 0x9E */ GI_SWORD_GILDED_STOLEN,
+ /* 0x9F */ GI_SHIELD_HERO_STOLEN, // Code that treats this as hero's shield is unused, implied as intended to be stolen
+ /* 0xA0 */ GI_ROOM_KEY,
+ /* 0xA1 */ GI_LETTER_TO_MAMA,
/* 0xA9 */ GI_BOTTLE_STOLEN = 0xA9, // buy back stolen bottle
/* 0xAA */ GI_LETTER_TO_KAFEI,
/* 0xAB */ GI_PENDANT_OF_MEMORIES,
- /* 0xBA */ GI_MAX = 0xBA
+ /* 0xB4 */ GI_TINGLE_MAP_CLOCK_TOWN = 0xB4,
+ /* 0xB5 */ GI_TINGLE_MAP_WOODFALL,
+ /* 0xB6 */ GI_TINGLE_MAP_SNOWHEAD,
+ /* 0xB7 */ GI_TINGLE_MAP_ROMANI_RANCH,
+ /* 0xB8 */ GI_TINGLE_MAP_GREAT_BAY,
+ /* 0xB9 */ GI_TINGLE_MAP_STONE_TOWER,
+ /* 0xBA */ GI_MAX
} GetItemID;
typedef enum {
/* 0x00 */ GID_BOTTLE,
- /* 0x01 */ GID_01,
- /* 0x02 */ GID_02,
- /* 0x03 */ GID_03,
- /* 0x0A */ GID_COMPASS = 0x0A,
- /* 0x0E */ GID_0E = 0x0E,
- /* 0x0F */ GID_0F,
- /* 0x10 */ GID_MASK_ALL_NIGHT = 0x10,
+ /* 0x01 */ GID_KEY_SMALL,
+ /* 0x02 */ GID_MASK_KAMARO,
+ /* 0x03 */ GID_MASK_COUPLE,
+ /* 0x04 */ GID_04,
+ /* 0x05 */ GID_05,
+ /* 0x06 */ GID_06,
+ /* 0x07 */ GID_07,
+ /* 0x08 */ GID_RECOVERY_HEART,
+ /* 0x09 */ GID_KEY_BOSS,
+ /* 0x0A */ GID_COMPASS,
+ /* 0x0B */ GID_BOMBERS_NOTEBOOK,
+ /* 0x0C */ GID_MASK_STONE,
+ /* 0x0D */ GID_MASK_KAFEIS_MASK,
+ /* 0x0E */ GID_MASK_CIRCUS_LEADER,
+ /* 0x0F */ GID_MASK_BREMEN,
+ /* 0x10 */ GID_MASK_ALL_NIGHT,
/* 0x11 */ GID_NUTS,
- /* 0x13 */ GID_13 = 0x13,
- /* 0x17 */ GID_BOMB_BAG_20 = 0x17,
+ /* 0x12 */ GID_HEART_CONTAINER,
+ /* 0x13 */ GID_HEART_PIECE,
+ /* 0x14 */ GID_QUIVER_30,
+ /* 0x15 */ GID_QUIVER_40,
+ /* 0x16 */ GID_QUIVER_50,
+ /* 0x17 */ GID_BOMB_BAG_20,
/* 0x18 */ GID_BOMB_BAG_30,
/* 0x19 */ GID_BOMB_BAG_40,
- /* 0x1A */ GID_STICK = 0x1A,
+ /* 0x1A */ GID_STICK,
/* 0x1B */ GID_DUNGEON_MAP,
- /* 0x1E */ GID_BOMB = 0x1E,
- /* 0x23 */ GID_ARROWS_SMALL = 0x23,
+ /* 0x1C */ GID_MAGIC_SMALL,
+ /* 0x1D */ GID_MAGIC_LARGE,
+ /* 0x1E */ GID_BOMB,
+ /* 0x1F */ GID_STONE_OF_AGONY,
+ /* 0x20 */ GID_WALLET_ADULT,
+ /* 0x21 */ GID_WALLET_GIANT,
+ /* 0x22 */ GID_MASK_DON_GERO,
+ /* 0x23 */ GID_ARROWS_SMALL,
/* 0x24 */ GID_ARROWS_MEDIUM,
/* 0x25 */ GID_ARROWS_LARGE,
/* 0x26 */ GID_BOMBCHU,
/* 0x27 */ GID_SHIELD_HERO,
- /* 0x30 */ GID_POTION_GREEN = 0x30,
+ /* 0x28 */ GID_HOOKSHOT,
+ /* 0x29 */ GID_29,
+ /* 0x2A */ GID_OCARINA,
+ /* 0x2B */ GID_MILK,
+ /* 0x2C */ GID_MASK_KEATON,
+ /* 0x2D */ GID_TINGLE_MAP,
+ /* 0x2E */ GID_BOW,
+ /* 0x2F */ GID_LENS,
+ /* 0x30 */ GID_POTION_GREEN,
/* 0x31 */ GID_POTION_RED,
/* 0x32 */ GID_POTION_BLUE,
/* 0x33 */ GID_SHIELD_MIRROR,
- /* 0x39 */ GID_39 = 0x39,
- /* 0x3A */ GID_3A,
+ /* 0x34 */ GID_MAGIC_BEANS,
+ /* 0x35 */ GID_FISH,
+ /* 0x36 */ GID_LETTER_MAMA,
+ /* 0x37 */ GID_37,
+ /* 0x38 */ GID_SWORD_BGS,
+ /* 0x39 */ GID_MASK_SUN,
+ /* 0x3A */ GID_MASK_BLAST,
/* 0x3B */ GID_FAIRY,
- /* 0x3E */ GID_3E = 0x3E,
- /* 0x44 */ GID_44 = 0x44,
- /* 0x45 */ GID_45,
- /* 0x47 */ GID_47 = 0x47,
- /* 0x4F */ GID_4F = 0x4F,
- /* 0x50 */ GID_50,
- /* 0x51 */ GID_51,
- /* 0x53 */ GID_53 = 0x53,
- /* 0x55 */ GID_SWORD_KOKIRI = 0x55,
- /* 0x5B */ GID_MASK_DEKU = 0x5B,
- /* 0x66 */ GID_SWORD_RAZOR = 0x66,
+ /* 0x3C */ GID_MASK_SCENTS,
+ /* 0x3D */ GID_MASK_CAPTAIN,
+ /* 0x3E */ GID_MASK_BUNNY,
+ /* 0x3F */ GID_MASK_TRUTH,
+ /* 0x40 */ GID_DEED_SWAMP,
+ /* 0x41 */ GID_DEED_MOUNTAIN,
+ /* 0x42 */ GID_RUPEE_HUGE,
+ /* 0x43 */ GID_DEED_OCEAN,
+ /* 0x44 */ GID_MASK_GORON,
+ /* 0x45 */ GID_MASK_ZORA,
+ /* 0x46 */ GID_46,
+ /* 0x47 */ GID_ARROW_FIRE,
+ /* 0x48 */ GID_ARROW_ICE,
+ /* 0x49 */ GID_ARROW_LIGHT,
+ /* 0x4A */ GID_SKULL_TOKEN,
+ /* 0x4B */ GID_BUG,
+ /* 0x4C */ GID_4C,
+ /* 0x4D */ GID_POE,
+ /* 0x4E */ GID_FAIRY_2,
+ /* 0x4F */ GID_RUPEE_GREEN,
+ /* 0x50 */ GID_RUPEE_BLUE,
+ /* 0x51 */ GID_RUPEE_RED,
+ /* 0x52 */ GID_BIG_POE,
+ /* 0x53 */ GID_RUPEE_PURPLE,
+ /* 0x54 */ GID_RUPEE_SILVER,
+ /* 0x55 */ GID_SWORD_KOKIRI,
+ /* 0x56 */ GID_SKULL_TOKEN_2,
+ /* 0x57 */ GID_57,
+ /* 0x58 */ GID_ZORA_EGG,
+ /* 0x59 */ GID_MOON_TEAR,
+ /* 0x5A */ GID_DEED_LAND,
+ /* 0x5B */ GID_MASK_DEKU,
+ /* 0x5C */ GID_REMAINS_ODOLWA,
+ /* 0x5D */ GID_POWDER_KEG,
+ /* 0x5E */ GID_GOLD_DUST,
+ /* 0x5F */ GID_SEAHORSE,
+ /* 0x60 */ GID_60,
+ /* 0x61 */ GID_HYLIAN_LOACH,
+ /* 0x62 */ GID_SEAHORSE_CAUGHT,
+ /* 0x63 */ GID_REMAINS_GOHT,
+ /* 0x64 */ GID_REMAINS_GYORG,
+ /* 0x65 */ GID_REMAINS_TWINMOLD,
+ /* 0x66 */ GID_SWORD_RAZOR,
/* 0x67 */ GID_SWORD_GILDED,
/* 0x68 */ GID_SWORD_GREAT_FAIRY,
- /* 0x6A */ GID_MASK_GREAT_FAIRY = 0x6A,
- /* 0x6B */ GID_6B,
- /* 0x70 */ GID_70 = 0x70,
- /* 0x71 */ GID_71
+ /* 0x69 */ GID_MASK_GARO,
+ /* 0x6A */ GID_MASK_GREAT_FAIRY,
+ /* 0x6B */ GID_MASK_GIBDO,
+ /* 0x6C */ GID_ROOM_KEY,
+ /* 0x6D */ GID_LETTER_TO_KAFEI,
+ /* 0x6E */ GID_PENDANT_OF_MEMORIES,
+ /* 0x6F */ GID_MUSHROOM,
+ /* 0x70 */ GID_MASK_ROMANI,
+ /* 0x71 */ GID_MASK_POSTMAN,
+ /* 0x72 */ GID_MASK_GIANT,
+ /* 0x73 */ GID_CHATEAU,
+ /* 0x74 */ GID_PICTO_BOX,
+ /* 0x75 */ GID_MASK_FIERCE_DEITY,
+ /* 0x76 */ GID_MAX
} GetItemDrawID;
// This enum may not be real, and actionparam is just used directly.
diff --git a/include/z64object.h b/include/z64object.h
index 34035306b4..3b221088ac 100644
--- a/include/z64object.h
+++ b/include/z64object.h
@@ -207,7 +207,7 @@ typedef enum {
/* 0x0C3 */ OBJECT_GI_SHIELD_3,
/* 0x0C4 */ OBJECT_UNSET_C4,
/* 0x0C5 */ OBJECT_UNSET_C5,
- /* 0x0C6 */ OBJECT_GI_MAGIC_BEANS,
+ /* 0x0C6 */ OBJECT_GI_BEAN,
/* 0x0C7 */ OBJECT_GI_FISH,
/* 0x0C8 */ OBJECT_UNSET_C8,
/* 0x0C9 */ OBJECT_UNSET_C9,
diff --git a/include/z64player.h b/include/z64player.h
index 86adaea1e0..0f74f5a6ce 100644
--- a/include/z64player.h
+++ b/include/z64player.h
@@ -98,7 +98,7 @@ typedef enum {
/* 0x19 */ PLAYER_AP_BOTTLE_ZORA_EGG,
/* 0x1A */ PLAYER_AP_BOTTLE_DEKU_PRINCESS,
/* 0x1B */ PLAYER_AP_BOTTLE_GOLD_DUST,
- /* 0x1D */ PLAYER_AP_BOTTLE_SEA_HORSE = 0x1D,
+ /* 0x1D */ PLAYER_AP_BOTTLE_SEAHORSE = 0x1D,
/* 0x1E */ PLAYER_AP_BOTTLE_MUSHROOM,
/* 0x1F */ PLAYER_AP_BOTTLE_HYLIAN_LOACH,
/* 0x20 */ PLAYER_AP_BOTTLE_BUG,
@@ -120,7 +120,7 @@ typedef enum {
/* 0x30 */ PLAYER_AP_DEED_MOUNTAIN,
/* 0x31 */ PLAYER_AP_DEED_OCEAN,
/* 0x33 */ PLAYER_AP_LETTER_MAMA = 0x33,
- /* 0x36 */ PLAYER_AP_PENDANT_MEMORIES = 0x36,
+ /* 0x36 */ PLAYER_AP_PENDANT_OF_MEMORIES = 0x36,
/* 0x3A */ PLAYER_AP_MASK_TRUTH = 0x3A,
/* 0x3B */ PLAYER_AP_MASK_KAFEIS_MASK,
/* 0x3C */ PLAYER_AP_MASK_ALL_NIGHT,
diff --git a/spec b/spec
index 97597b7449..26341612cf 100644
--- a/spec
+++ b/spec
@@ -461,7 +461,6 @@ beginseg
include "build/data/code/z_debug_mode.bss.o"
include "build/src/code/z_demo.o"
include "build/src/code/z_draw.o"
- include "build/data/code/z_draw.data.o"
include "build/src/code/z_eff_footmark.o"
include "build/data/code/z_eff_footmark.data.o"
include "build/src/code/z_sound_source.o"
diff --git a/src/code/code_8012EC80.c b/src/code/code_8012EC80.c
index 07cb436cfa..5649ae80c1 100644
--- a/src/code/code_8012EC80.c
+++ b/src/code/code_8012EC80.c
@@ -133,7 +133,7 @@ void* gItemIcons[] = {
0x08021000, // ITEM_ZORA_EGG
0x08022000, // ITEM_GOLD_DUST
0x08023000, // ITEM_MUSHROOM
- 0x08024000, // ITEM_SEA_HORSE
+ 0x08024000, // ITEM_SEAHORSE
0x08025000, // ITEM_CHATEAU
0x08026000, // ITEM_HYLIAN_LOACH
0x08027000, // ITEM_OBABA_DRINK
@@ -145,7 +145,7 @@ void* gItemIcons[] = {
0x0802D000, // ITEM_ROOM_KEY
0x0802E000, // ITEM_LETTER_MAMA
0x0802F000, // ITEM_LETTER_TO_KAFEI
- 0x08030000, // ITEM_PENDANT_MEMORIES
+ 0x08030000, // ITEM_PENDANT_OF_MEMORIES
0x08031000, // ITEM_TINGLE_MAP
0x08032000, // ITEM_MASK_DEKU
0x08033000, // ITEM_MASK_GORON
@@ -268,7 +268,7 @@ u8 gItemSlots[] = {
SLOT_BOTTLE_1, // ITEM_ZORA_EGG
SLOT_BOTTLE_1, // ITEM_GOLD_DUST
SLOT_BOTTLE_1, // ITEM_MUSHROOM
- SLOT_BOTTLE_1, // ITEM_SEA_HORSE
+ SLOT_BOTTLE_1, // ITEM_SEAHORSE
SLOT_BOTTLE_1, // ITEM_CHATEAU
SLOT_BOTTLE_1, // ITEM_HYLIAN_LOACH
SLOT_BOTTLE_1, // ITEM_OBABA_DRINK
@@ -280,7 +280,7 @@ u8 gItemSlots[] = {
SLOT_TRADE_KEY_MAMA, // ITEM_ROOM_KEY
SLOT_TRADE_KEY_MAMA, // ITEM_LETTER_MAMA
SLOT_TRADE_COUPLE, // ITEM_LETTER_TO_KAFEI
- SLOT_TRADE_COUPLE, // ITEM_PENDANT_MEMORIES
+ SLOT_TRADE_COUPLE, // ITEM_PENDANT_OF_MEMORIES
SLOT_TRADE_COUPLE, // ITEM_TINGLE_MAP
SLOT_MASK_DEKU, // ITEM_MASK_DEKU
SLOT_MASK_GORON, // ITEM_MASK_GORON
@@ -348,7 +348,7 @@ s16 gItemPrices[] = {
20, // ITEM_ZORA_EGG
200, // ITEM_GOLD_DUST
5, // ITEM_MUSHROOM
- 0, // ITEM_SEA_HORSE
+ 0, // ITEM_SEAHORSE
200, // ITEM_CHATEAU
20, // ITEM_HYLIAN_LOACH
0, // ITEM_OBABA_DRINK
@@ -360,7 +360,7 @@ s16 gItemPrices[] = {
0, // ITEM_ROOM_KEY
0, // ITEM_LETTER_MAMA
0, // ITEM_LETTER_KAFEI
- 0, // ITEM_PENDANT_MEMORIES
+ 0, // ITEM_PENDANT_OF_MEMORIES
0, // ITEM_TINGLE_MAP
};
diff --git a/src/code/z_draw.c b/src/code/z_draw.c
index b31f796b7f..4167b4cea4 100644
--- a/src/code/z_draw.c
+++ b/src/code/z_draw.c
@@ -1,49 +1,843 @@
+/**
+ * @file z_draw.c
+ * @brief Draw get-item models
+ */
#include "global.h"
+#include "assets/objects/object_gi_arrow/object_gi_arrow.h"
+#include "assets/objects/object_gi_arrowcase/object_gi_arrowcase.h"
+#include "assets/objects/object_gi_bean/object_gi_bean.h"
+#include "assets/objects/object_gi_bigbomb/object_gi_bigbomb.h"
+#include "assets/objects/object_gi_bomb_1/object_gi_bomb_1.h"
+#include "assets/objects/object_gi_bomb_2/object_gi_bomb_2.h"
+#include "assets/objects/object_gi_bombpouch/object_gi_bombpouch.h"
+#include "assets/objects/object_gi_bosskey/object_gi_bosskey.h"
+#include "assets/objects/object_gi_bottle_04/object_gi_bottle_04.h"
+#include "assets/objects/object_gi_bottle_15/object_gi_bottle_15.h"
+#include "assets/objects/object_gi_bottle_16/object_gi_bottle_16.h"
+#include "assets/objects/object_gi_bottle_21/object_gi_bottle_21.h"
+#include "assets/objects/object_gi_bottle_22/object_gi_bottle_22.h"
+#include "assets/objects/object_gi_bottle_red/object_gi_bottle_red.h"
+#include "assets/objects/object_gi_bottle/object_gi_bottle.h"
+#include "assets/objects/object_gi_bow/object_gi_bow.h"
+#include "assets/objects/object_gi_camera/object_gi_camera.h"
+#include "assets/objects/object_gi_compass/object_gi_compass.h"
+#include "assets/objects/object_gi_fieldmap/object_gi_fieldmap.h"
+#include "assets/objects/object_gi_fish/object_gi_fish.h"
+#include "assets/objects/object_gi_ghost/object_gi_ghost.h"
+#include "assets/objects/object_gi_glasses/object_gi_glasses.h"
+#include "assets/objects/object_gi_gold_dust/object_gi_gold_dust.h"
+#include "assets/objects/object_gi_golonmask/object_gi_golonmask.h"
+#include "assets/objects/object_gi_heart/object_gi_heart.h"
+#include "assets/objects/object_gi_hearts/object_gi_hearts.h"
+#include "assets/objects/object_gi_hookshot/object_gi_hookshot.h"
+#include "assets/objects/object_gi_insect/object_gi_insect.h"
+#include "assets/objects/object_gi_key/object_gi_key.h"
+#include "assets/objects/object_gi_ki_tan_mask/object_gi_ki_tan_mask.h"
+#include "assets/objects/object_gi_liquid/object_gi_liquid.h"
+#include "assets/objects/object_gi_loach/object_gi_loach.h"
+#include "assets/objects/object_gi_longsword/object_gi_longsword.h"
+#include "assets/objects/object_gi_m_arrow/object_gi_m_arrow.h"
+#include "assets/objects/object_gi_magicmushroom/object_gi_magicmushroom.h"
+#include "assets/objects/object_gi_magicpot/object_gi_magicpot.h"
+#include "assets/objects/object_gi_map/object_gi_map.h"
+#include "assets/objects/object_gi_mask03/object_gi_mask03.h"
+#include "assets/objects/object_gi_mask05/object_gi_mask05.h"
+#include "assets/objects/object_gi_mask06/object_gi_mask06.h"
+#include "assets/objects/object_gi_mask09/object_gi_mask09.h"
+#include "assets/objects/object_gi_mask10/object_gi_mask10.h"
+#include "assets/objects/object_gi_mask11/object_gi_mask11.h"
+#include "assets/objects/object_gi_mask12/object_gi_mask12.h"
+#include "assets/objects/object_gi_mask13/object_gi_mask13.h"
+#include "assets/objects/object_gi_mask14/object_gi_mask14.h"
+#include "assets/objects/object_gi_mask15/object_gi_mask15.h"
+#include "assets/objects/object_gi_mask16/object_gi_mask16.h"
+#include "assets/objects/object_gi_mask17/object_gi_mask17.h"
+#include "assets/objects/object_gi_mask18/object_gi_mask18.h"
+#include "assets/objects/object_gi_mask20/object_gi_mask20.h"
+#include "assets/objects/object_gi_mask21/object_gi_mask21.h"
+#include "assets/objects/object_gi_mask22/object_gi_mask22.h"
+#include "assets/objects/object_gi_mask23/object_gi_mask23.h"
+#include "assets/objects/object_gi_melody/object_gi_melody.h"
+#include "assets/objects/object_gi_milk/object_gi_milk.h"
+#include "assets/objects/object_gi_mssa/object_gi_mssa.h"
+#include "assets/objects/object_gi_nuts/object_gi_nuts.h"
+#include "assets/objects/object_gi_nutsmask/object_gi_nutsmask.h"
+#include "assets/objects/object_gi_ocarina/object_gi_ocarina.h"
+#include "assets/objects/object_gi_purse/object_gi_purse.h"
+#include "assets/objects/object_gi_rabit_mask/object_gi_rabit_mask.h"
+#include "assets/objects/object_gi_reserve_b_00/object_gi_reserve_b_00.h"
+#include "assets/objects/object_gi_reserve_b_01/object_gi_reserve_b_01.h"
+#include "assets/objects/object_gi_reserve_c_00/object_gi_reserve_c_00.h"
+#include "assets/objects/object_gi_reserve_c_01/object_gi_reserve_c_01.h"
+#include "assets/objects/object_gi_reserve00/object_gi_reserve00.h"
+#include "assets/objects/object_gi_reserve01/object_gi_reserve01.h"
+#include "assets/objects/object_gi_rupy/object_gi_rupy.h"
+#include "assets/objects/object_gi_schedule/object_gi_schedule.h"
+#include "assets/objects/object_gi_seahorse/object_gi_seahorse.h"
+#include "assets/objects/object_gi_shield_2/object_gi_shield_2.h"
+#include "assets/objects/object_gi_shield_3/object_gi_shield_3.h"
+#include "assets/objects/object_gi_soldout/object_gi_soldout.h"
+#include "assets/objects/object_gi_soul/object_gi_soul.h"
+#include "assets/objects/object_gi_stick/object_gi_stick.h"
+#include "assets/objects/object_gi_stonemask/object_gi_stonemask.h"
+#include "assets/objects/object_gi_sutaru/object_gi_sutaru.h"
+#include "assets/objects/object_gi_sword_1/object_gi_sword_1.h"
+#include "assets/objects/object_gi_sword_2/object_gi_sword_2.h"
+#include "assets/objects/object_gi_sword_3/object_gi_sword_3.h"
+#include "assets/objects/object_gi_sword_4/object_gi_sword_4.h"
+#include "assets/objects/object_gi_truth_mask/object_gi_truth_mask.h"
+#include "assets/objects/object_gi_zoramask/object_gi_zoramask.h"
+#include "assets/objects/object_bsmask/object_bsmask.h"
+#include "assets/objects/object_st/object_st.h"
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/GetItem_Draw.s")
+void GetItem_DrawBombchu(PlayState* play, s16 drawId);
+void GetItem_DrawPoes(PlayState* play, s16 drawId);
+void GetItem_DrawFairyBottle(PlayState* play, s16 drawId);
+void GetItem_DrawSkullToken(PlayState* play, s16 drawId);
+void GetItem_DrawCompass(PlayState* play, s16 drawId);
+void GetItem_DrawPotion(PlayState* play, s16 drawId);
+void GetItem_DrawGoronSword(PlayState* play, s16 drawId);
+void GetItem_DrawDekuNuts(PlayState* play, s16 drawId);
+void GetItem_DrawRecoveryHeart(PlayState* play, s16 drawId);
+void GetItem_DrawFish(PlayState* play, s16 drawId);
+void GetItem_DrawOpa0(PlayState* play, s16 drawId);
+void GetItem_DrawOpa0Xlu1(PlayState* play, s16 drawId);
+void GetItem_DrawOpa01(PlayState* play, s16 drawId);
+void GetItem_DrawXlu01(PlayState* play, s16 drawId);
+void GetItem_DrawSeahorse(PlayState* play, s16 drawId);
+void GetItem_DrawFairyContainer(PlayState* play, s16 drawId);
+void GetItem_DrawMoonsTear(PlayState* play, s16 drawId);
+void GetItem_DrawMagicArrow(PlayState* play, s16 drawId);
+void GetItem_DrawUpgrades(PlayState* play, s16 drawId);
+void GetItem_DrawRupee(PlayState* play, s16 drawId);
+void GetItem_DrawSmallRupee(PlayState* play, s16 drawId);
+void GetItem_DrawWallet(PlayState* play, s16 drawId);
+void GetItem_DrawRemains(PlayState* play, s16 drawId);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EE364.s")
+typedef struct {
+ /* 0x00 */ void (*drawFunc)(PlayState*, s16);
+ /* 0x04 */ void* drawResources[8]; // Either display lists (Gfx*) or matrices (Mtx*)
+} DrawItemTableEntry; // size = 0x24
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EE400.s")
+static DrawItemTableEntry sDrawItemTable[] = {
+ // GID_BOTTLE, OBJECT_GI_BOTTLE
+ { GetItem_DrawOpa0Xlu1, { gGiEmptyBottleCorkDL, gGiEmptyBottleGlassDL } },
+ // GID_KEY_SMALL, OBJECT_GI_KEY
+ { GetItem_DrawOpa0, { gGiSmallKeyDL } },
+ // GID_MASK_KAMARO, OBJECT_GI_MASK17
+ { GetItem_DrawOpa01, { gGiKamaroMaskDL, gGiKamaroMaskEmptyDL } },
+ // GID_MASK_COUPLE, OBJECT_GI_MASK13
+ { GetItem_DrawOpa0Xlu1, { gGiCouplesMaskFullDL, gGiCouplesMaskHalfDL } },
+ // GID_04, OBJECT_GI_MELODY
+ { GetItem_DrawXlu01, { gGiSerenadeColorDL, gGiSongNoteDL } },
+ // GID_05, OBJECT_GI_MELODY
+ { GetItem_DrawXlu01, { gGiRequiemColorDL, gGiSongNoteDL } },
+ // GID_06, OBJECT_GI_MELODY
+ { GetItem_DrawXlu01, { gGiNocturneColorDL, gGiSongNoteDL } },
+ // GID_07, OBJECT_GI_MELODY
+ { GetItem_DrawXlu01, { gGiPreludeColorDL, gGiSongNoteDL } },
+ // GID_RECOVERY_HEART, OBJECT_GI_HEART
+ { GetItem_DrawRecoveryHeart, { gGiRecoveryHeartDL } },
+ // GID_KEY_BOSS, OBJECT_GI_KEY_BOSS
+ { GetItem_DrawOpa0Xlu1, { gGiBossKeyDL, gGiBossKeyGemDL } },
+ // GID_COMPASS, OBJECT_GI_COMPASS
+ { GetItem_DrawCompass, { gGiCompassDL, gGiCompassGlassDL } },
+ // GID_BOMBERS_NOTEBOOK, OBJECT_GI_SCHEDULE
+ { GetItem_DrawOpa0Xlu1, { gGiBombersNotebookEmptyDL, gGiBombersNotebookDL } },
+ // GID_MASK_STONE, OBJECT_GI_STONEMASK
+ { GetItem_DrawOpa0Xlu1, { gGiStoneMaskEmptyDL, gGiStoneMaskDL } },
+ // GID_MASK_KAFEIS_MASK, OBJECT_GI_MASK05
+ { GetItem_DrawOpa01, { gGiKafeiMaskDL, gGiKafeiMaskEmptyDL } },
+ // GID_MASK_CIRCUS_LEADER, OBJECT_GI_MASK11
+ { GetItem_DrawOpa0Xlu1, { gGiCircusLeaderMaskFaceDL, gGiCircusLeaderMaskEyebrowsDL } },
+ // GID_MASK_BREMEN, OBJECT_GI_MASK20
+ { GetItem_DrawOpa01, { gGiBremenMaskDL, gGiBremenMaskEmptyDL } },
+ // GID_MASK_ALL_NIGHT, OBJECT_GI_MASK06
+ { GetItem_DrawOpa0Xlu1, { gGiAllNightMaskEyesDL, gGiAllNightMaskFaceDL } },
+ // GID_NUTS, OBJECT_GI_NUTS
+ { GetItem_DrawDekuNuts, { gGiNutDL } },
+ // GID_HEART_CONTAINER, OBJECT_GI_HEARTS
+ { GetItem_DrawXlu01, { gGiHeartBorderDL, gGiHeartContainerDL } },
+ // GID_HEART_PIECE, OBJECT_GI_HEARTS
+ { GetItem_DrawXlu01, { gGiHeartBorderDL, gGiHeartPieceDL } },
+ // GID_QUIVER_30, OBJECT_GI_ARROWCASE
+ { GetItem_DrawUpgrades, { gGiQuiverInnerDL, gGiQuiver30InnerColorDL, gGiQuiver30OuterColorDL, gGiQuiverOuterDL } },
+ // GID_QUIVER_40, OBJECT_GI_ARROWCASE
+ { GetItem_DrawUpgrades, { gGiQuiverInnerDL, gGiQuiver40InnerColorDL, gGiQuiver40OuterColorDL, gGiQuiverOuterDL } },
+ // GID_QUIVER_50, OBJECT_GI_ARROWCASE
+ { GetItem_DrawUpgrades, { gGiQuiverInnerDL, gGiQuiver50InnerColorDL, gGiQuiver50OuterColorDL, gGiQuiverOuterDL } },
+ // GID_BOMB_BAG_20, OBJECT_GI_BOMBPOUCH
+ { GetItem_DrawUpgrades, { gGiBombBagDL, gGiBombBag20BagColorDL, gGiBombBag20RingColorDL, gGiBombBagRingDL } },
+ // GID_BOMB_BAG_30, OBJECT_GI_BOMBPOUCH
+ { GetItem_DrawUpgrades, { gGiBombBagDL, gGiBombBag30BagColorDL, gGiBombBag30RingColorDL, gGiBombBagRingDL } },
+ // GID_BOMB_BAG_40, OBJECT_GI_BOMBPOUCH
+ { GetItem_DrawUpgrades, { gGiBombBagDL, gGiBombBag40BagColorDL, gGiBombBag40RingColorDL, gGiBombBagRingDL } },
+ // GID_STICK, OBJECT_GI_STICK
+ { GetItem_DrawOpa0, { gGiStickDL } },
+ // GID_DUNGEON_MAP, OBJECT_GI_MAP
+ { GetItem_DrawOpa0, { gGiDungeonMapDL } },
+ // GID_MAGIC_SMALL, OBJECT_GI_MAGICPOT
+ { GetItem_DrawOpa0, { gGiMagicJarSmallDL } },
+ // GID_MAGIC_LARGE, OBJECT_GI_MAGICPOT
+ { GetItem_DrawOpa0, { gGiMagicJarLargeDL } },
+ // GID_BOMB, OBJECT_GI_BOMB_1
+ { GetItem_DrawOpa0, { gGiBombDL } },
+ // GID_STONE_OF_AGONY, OBJECT_GI_MAP
+ { GetItem_DrawOpa0, { gGiStoneOfAgonyDL } },
+ // GID_WALLET_ADULT, OBJECT_GI_PURSE
+ { GetItem_DrawWallet,
+ { gGiWalletDL, gGiAdultWalletColorDL, gGiAdultWalletRupeeOuterColorDL, gGiWalletRupeeOuterDL,
+ gGiAdultWalletStringColorDL, gGiWalletStringDL, gGiAdultWalletRupeeInnerColorDL, gGiWalletRupeeInnerDL } },
+ // GID_WALLET_GIANT, OBJECT_GI_PURSE
+ { GetItem_DrawWallet,
+ { gGiWalletDL, gGiGiantsWalletColorDL, gGiGiantsWalletRupeeOuterColorDL, gGiWalletRupeeOuterDL,
+ gGiGiantsWalletStringColorDL, gGiWalletStringDL, gGiGiantsWalletRupeeInnerColorDL, gGiWalletRupeeInnerDL } },
+ // GID_MASK_DON_GERO, OBJECT_GI_MASK16
+ { GetItem_DrawOpa0Xlu1, { gGiDonGeroMaskFaceDL, gGiDonGeroMaskBodyDL } },
+ // GID_ARROWS_SMALL, OBJECT_GI_ARROW
+ { GetItem_DrawOpa0, { gGiArrowSmallDL } },
+ // GID_ARROWS_MEDIUM, OBJECT_GI_ARROW
+ { GetItem_DrawOpa0, { gGiArrowMediumDL } },
+ // GID_ARROWS_LARGE, OBJECT_GI_ARROW
+ { GetItem_DrawOpa0, { gGiArrowLargeDL } },
+ // GID_BOMBCHU, OBJECT_GI_BOMB_2
+ { GetItem_DrawBombchu, { gGiBombchuDL } },
+ // GID_SHIELD_HERO, OBJECT_GI_SHIELD_2
+ { GetItem_DrawOpa0Xlu1, { gGiHerosShieldEmblemDL, gGiHerosShieldDL } },
+ // GID_HOOKSHOT, OBJECT_GI_HOOKSHOT
+ { GetItem_DrawOpa01, { gGiHookshotEmptyDL, gGiHookshotDL } },
+ // GID_29, OBJECT_GI_HOOKSHOT
+ { GetItem_DrawOpa01, { gGiHookshotEmptyDL, gGiHookshotDL } },
+ // GID_OCARINA, OBJECT_GI_OCARINA
+ { GetItem_DrawOpa0Xlu1, { gGiOcarinaOfTimeDL, gGiOcarinaOfTimeHolesDL } },
+ // GID_MILK, OBJECT_GI_MILK
+ { GetItem_DrawOpa0Xlu1, { gGiMilkBottleContentsDL, gGiMilkBottleGlassDL } },
+ // GID_MASK_KEATON, OBJECT_GI_KI_TAN_MASK
+ { GetItem_DrawOpa0Xlu1, { gGiKeatonMaskDL, gGiKeatonMaskEyesDL } },
+ // GID_TINGLE_MAP, OBJECT_GI_FIELDMAP
+ { GetItem_DrawOpa01, { gGiTingleMapDL, gGiTingleMapEmptyDL } },
+ // GID_BOW, OBJECT_GI_BOW
+ { GetItem_DrawOpa01, { gGiBowHandleDL, gGiBowStringDL } },
+ // GID_LENS, OBJECT_GI_GLASSES
+ { GetItem_DrawOpa0Xlu1, { gGiLensDL, gGiLensGlassDL } },
+ // GID_POTION_GREEN, OBJECT_GI_LIQUID
+ { GetItem_DrawPotion,
+ { gGiPotionContainerPotDL, gGiPotionContainerGreenPotColorDL, gGiPotionContainerGreenLiquidColorDL,
+ gGiPotionContainerLiquidDL, gGiPotionContainerGreenPatternColorDL, gGiPotionContainerPatternDL } },
+ // GID_POTION_RED, OBJECT_GI_LIQUID
+ { GetItem_DrawPotion,
+ { gGiPotionContainerPotDL, gGiPotionContainerRedPotColorDL, gGiPotionContainerRedLiquidColorDL,
+ gGiPotionContainerLiquidDL, gGiPotionContainerRedPatternColorDL, gGiPotionContainerPatternDL } },
+ // GID_POTION_BLUE, OBJECT_GI_LIQUID
+ { GetItem_DrawPotion,
+ { gGiPotionContainerPotDL, gGiPotionContainerBluePotColorDL, gGiPotionContainerBlueLiquidColorDL,
+ gGiPotionContainerLiquidDL, gGiPotionContainerBluePatternColorDL, gGiPotionContainerPatternDL } },
+ // GID_SHIELD_MIRROR, OBJECT_GI_SHIELD_3
+ { GetItem_DrawOpa0Xlu1, { gGiMirrorShieldEmptyDL, gGiMirrorShieldDL } },
+ // GID_MAGIC_BEANS, OBJECT_GI_BEAN
+ { GetItem_DrawOpa0, { gGiBeanDL } },
+ // GID_FISH, OBJECT_GI_FISH
+ { GetItem_DrawFish, { gGiFishContainerDL } },
+ // GID_LETTER_MAMA, OBJECT_GI_RESERVE_B_01
+ { GetItem_DrawOpa0Xlu1, { gGiLetterToMamaEnvelopeLetterDL, gGiLetterToMamaInscriptionsDL } },
+ // GID_37
+ { GetItem_DrawOpa0, { NULL } },
+ // GID_SWORD_BGS, OBJECT_GI_LONGSWORD
+ { GetItem_DrawGoronSword, { gGiBiggoronSwordDL } },
+ // GID_MASK_SUN, OBJECT_GI_MSSA
+ { GetItem_DrawOpa0Xlu1, { gGiSunMaskFaceDL, gGiSunMaskEyesSidePatternsDL } },
+ // GID_MASK_BLAST, OBJECT_GI_MASK21
+ { GetItem_DrawOpa0Xlu1, { gGiBlastMaskEmptyDL, gGiBlastMaskDL } },
+ // GID_FAIRY, OBJECT_GI_BOTTLE_04
+ { GetItem_DrawFairyContainer,
+ { gGiFairyBottleEmptyDL, gGiFairyBottleGlassCorkDL, gGiFairyBottleContentsDL, &gGiFairyBottleBillboardRotMtx } },
+ // GID_MASK_SCENTS, OBJECT_GI_MASK22
+ { GetItem_DrawOpa01, { gGiMaskOfScentsFaceDL, gGiMaskOfScentsTeethDL } },
+ // GID_MASK_CAPTAIN, OBJECT_GI_MASK18
+ { GetItem_DrawOpa01, { gGiCaptainsHatBodyDL, gGiCaptainsHatFaceDL } },
+ // GID_MASK_BUNNY, OBJECT_GI_RABIT_MASK
+ { GetItem_DrawOpa0Xlu1, { gGiBunnyHoodDL, gGiBunnyHoodEyesDL } },
+ // GID_MASK_TRUTH, OBJECT_GI_TRUTH_MASK
+ { GetItem_DrawOpa0Xlu1, { gGiMaskOfTruthDL, gGiMaskOfTruthAccentsDL } },
+ // GID_DEED_SWAMP, OBJECT_GI_RESERVE01
+ { GetItem_DrawOpa01, { gGiTitleDeedEmptyDL, gGiTitleDeedSwampColorDL } },
+ // GID_DEED_MOUNTAIN, OBJECT_GI_RESERVE01
+ { GetItem_DrawOpa01, { gGiTitleDeedEmptyDL, gGiTitleDeedMountainColorDL } },
+ // GID_RUPEE_HUGE, OBJECT_GI_RUPY
+ { GetItem_DrawRupee, { gGiRupeeInnerDL, gGiGoldRupeeInnerColorDL, gGiRupeeOuterDL, gGiGoldRupeeOuterColorDL } },
+ // GID_DEED_OCEAN, OBJECT_GI_RESERVE01
+ { GetItem_DrawOpa01, { gGiTitleDeedEmptyDL, gGiTitleDeedOceanColorDL } },
+ // GID_MASK_GORON, OBJECT_GI_GOLONMASK
+ { GetItem_DrawOpa0Xlu1, { gGiGoronMaskEmptyDL, gGiGoronMaskDL } },
+ // GID_MASK_ZORA, OBJECT_GI_ZORAMASK
+ { GetItem_DrawOpa01, { gGiZoraMaskEmptyDL, gGiZoraMaskDL } },
+ // GID_46
+ { GetItem_DrawBombchu, { NULL } },
+ // GID_ARROW_FIRE, OBJECT_GI_M_ARROW
+ { GetItem_DrawMagicArrow, { gGiMagicArrowAmmoDL, gGiMagicArrowFireColorDL, gGiMagicArrowGlowDL } },
+ // GID_ARROW_ICE, OBJECT_GI_M_ARROW
+ { GetItem_DrawMagicArrow, { gGiMagicArrowAmmoDL, gGiMagicArrowIceColorDL, gGiMagicArrowGlowDL } },
+ // GID_ARROW_LIGHT, OBJECT_GI_M_ARROW
+ { GetItem_DrawMagicArrow, { gGiMagicArrowAmmoDL, gGiMagicArrowLightColorDL, gGiMagicArrowGlowDL } },
+ // GID_SKULL_TOKEN, OBJECT_GI_SUTARU
+ { GetItem_DrawSkullToken, { gGiSkulltulaTokenDL, gGiSkulltulaTokenFlameDL } },
+ // GID_BUG, OBJECT_GI_INSECT
+ { GetItem_DrawOpa0Xlu1, { gGiBugContainerContentsDL, gGiBugContainerGlassDL } },
+ // GID_4C
+ { GetItem_DrawOpa0Xlu1, { NULL } },
+ // GID_POE, OBJECT_GI_GHOST
+ { GetItem_DrawPoes,
+ { gGiPoeContainerLidDL, gGiPoeContainerGlassDL, gGiPoeContainerContentsDL, gGiPoeContainerPoeColorDL } },
+ // GID_FAIRY_2, OBJECT_GI_SOUL
+ { GetItem_DrawFairyBottle, { gGiFairyContainerBaseCapDL, gGiFairyContainerGlassDL, gGiFairyContainerContentsDL } },
+ // GID_RUPEE_GREEN, OBJECT_GI_RUPY
+ { GetItem_DrawSmallRupee,
+ { gGiRupeeInnerDL, gGiGreenRupeeInnerColorDL, gGiRupeeOuterDL, gGiGreenRupeeOuterColorDL } },
+ // GID_RUPEE_BLUE, OBJECT_GI_RUPY
+ { GetItem_DrawSmallRupee,
+ { gGiRupeeInnerDL, gGiBlueRupeeInnerColorDL, gGiRupeeOuterDL, gGiBlueRupeeOuterColorDL } },
+ // GID_RUPEE_RED, OBJECT_GI_RUPY
+ { GetItem_DrawSmallRupee, { gGiRupeeInnerDL, gGiRedRupeeInnerColorDL, gGiRupeeOuterDL, gGiRedRupeeOuterColorDL } },
+ // GID_BIG_POE, OBJECT_GI_GHOST
+ { GetItem_DrawPoes,
+ { gGiPoeContainerLidDL, gGiPoeContainerGlassDL, gGiPoeContainerContentsDL, gGiPoeContainerBigPoeColorDL } },
+ // GID_RUPEE_PURPLE, OBJECT_GI_RUPY
+ { GetItem_DrawRupee, { gGiRupeeInnerDL, gGiPurpleRupeeInnerColorDL, gGiRupeeOuterDL, gGiPurpleRupeeOuterColorDL } },
+ // GID_RUPEE_SILVER, OBJECT_GI_RUPY
+ { GetItem_DrawRupee, { gGiRupeeInnerDL, gGiSilverRupeeInnerColorDL, gGiRupeeOuterDL, gGiSilverRupeeOuterColorDL } },
+ // GID_SWORD_KOKIRI, OBJECT_GI_SWORD_1
+ { GetItem_DrawOpa01, { gGiKokiriSwordBladeHiltDL, gGiKokiriSwordGuardDL } },
+ // GID_SKULL_TOKEN_2, OBJECT_ST
+ { GetItem_DrawSkullToken, { gSkulltulaTokenDL, gSkulltulaTokenFlameDL } },
+ // GID_57, OBJECT_GI_BOTTLE_RED
+ { GetItem_DrawOpa0Xlu1, { gGiRedPotionBottleEmptyDL, gGiRedPotionBottleDL } },
+ // GID_ZORA_EGG, OBJECT_GI_BOTTLE_15
+ { GetItem_DrawOpa0Xlu1, { gGiZoraEggBottleContentsDL, gGiZoraEggBottleGlassAndCorkDL } },
+ // GID_MOON_TEAR, OBJECT_GI_RESERVE00
+ { GetItem_DrawMoonsTear, { gGiMoonsTearItemDL, gGiMoonsTearGlowDL } },
+ // GID_DEED_LAND, OBJECT_GI_RESERVE01
+ { GetItem_DrawOpa01, { gGiTitleDeedEmptyDL, gGiTitleDeedLandColorDL } },
+ // GID_MASK_DEKU, OBJECT_GI_NUTSMASK
+ { GetItem_DrawOpa0Xlu1, { gGiDekuMaskEmptyDL, gGiDekuMaskDL } },
+ // GID_REMAINS_ODOLWA, OBJECT_BSMASK
+ { GetItem_DrawRemains, { gRemainsOdolwaDL, gRemainsOdolwaDL } },
+ // GID_POWDER_KEG, OBJECT_GI_BIGBOMB
+ { GetItem_DrawOpa0Xlu1, { gGiPowderKegBarrelDL, gGiPowderKegGoronSkullAndFuseDL } },
+ // GID_GOLD_DUST, OBJECT_GI_GOLD_DUST
+ { GetItem_DrawOpa01, { gGiGoldDustPowderDL, gGiGoldDustPowderEmptyDL } },
+ // GID_SEAHORSE, OBJECT_GI_BOTTLE_16
+ { GetItem_DrawOpa0Xlu1, { gGiSeahorseBottleEmptyDL, gGiSeahorseBottleGlassAndCorkDL } },
+ // GID_60, OBJECT_GI_BOTTLE_22
+ { GetItem_DrawOpa0Xlu1, { gGiHylianLoachBottleContentsDL, gGiHylianLoachBottleGlassCorkWaterDL } },
+ // GID_HYLIAN_LOACH, OBJECT_GI_LOACH
+ { GetItem_DrawOpa0Xlu1, { gGiHylianLoachEmptyDL, gGiHylianLoachDL } },
+ // GID_SEAHORSE_CAUGHT, OBJECT_GI_SEAHORSE
+ { GetItem_DrawSeahorse, { gGiSeahorseEmptyDL, gGiSeahorseBodyDL, gGiSeahorseGlowDL, &gGiSeahorseBillboardRotMtx } },
+ // GID_REMAINS_GOHT, OBJECT_BSMASK
+ { GetItem_DrawRemains, { gRemainsGohtDL, gRemainsGohtDL } },
+ // GID_REMAINS_GYORG, OBJECT_BSMASK
+ { GetItem_DrawRemains, { gRemainsGyorgDL, gRemainsGyorgDL } },
+ // GID_REMAINS_TWINMOLD, OBJECT_BSMASK
+ { GetItem_DrawRemains, { gRemainsTwinmoldDL, gRemainsTwinmoldDL } },
+ // GID_SWORD_RAZOR, OBJECT_GI_SWORD_2
+ { GetItem_DrawOpa01, { gGiRazorSwordDL, gGiRazorSwordEmptyDL } },
+ // GID_SWORD_GILDED, OBJECT_GI_SWORD_3
+ { GetItem_DrawOpa01, { gGiGildedSwordDL, gGiGildedSwordEmptyDL } },
+ // GID_SWORD_GREAT_FAIRY, OBJECT_GI_SWORD_4
+ { GetItem_DrawOpa0Xlu1, { gGiGreatFairySwordBladeDL, gGiGreatFairySwordHiltEmblemDL } },
+ // GID_MASK_GARO, OBJECT_GI_MASK09
+ { GetItem_DrawOpa0Xlu1, { gGiGarosMaskCloakDL, gGiGarosMaskFaceDL } },
+ // GID_MASK_GREAT_FAIRY, OBJECT_GI_MASK14
+ { GetItem_DrawOpa0Xlu1, { gGiGreatFairyMaskFaceDL, gGiGreatFairyMaskLeavesDL } },
+ // GID_MASK_GIBDO, OBJECT_GI_MASK15
+ { GetItem_DrawOpa0Xlu1, { gGiGibdoMaskEmptyDL, gGiGibdoMaskDL } },
+ // GID_ROOM_KEY, OBJECT_GI_RESERVE_B_00
+ { GetItem_DrawOpa0Xlu1, { gGiRoomKeyEmptyDL, gGiRoomKeyDL } },
+ // GID_LETTER_TO_KAFEI, OBJECT_GI_RESERVE_C_00
+ { GetItem_DrawOpa0Xlu1, { gGiLetterToKafeiEnvelopeLetterDL, gGiLetterToKafeiInscriptionsDL } },
+ // GID_PENDANT_OF_MEMORIES, OBJECT_GI_RESERVE_C_01
+ { GetItem_DrawOpa0Xlu1, { gGiPendantOfMemoriesEmptyDL, gGiPendantOfMemoriesDL } },
+ // GID_MUSHROOM, OBJECT_GI_MAGICMUSHROOM
+ { GetItem_DrawOpa0Xlu1, { gGiMagicMushroomEmptyDL, gGiMagicMushroomDL } },
+ // GID_MASK_ROMANI, OBJECT_GI_MASK10
+ { GetItem_DrawOpa0Xlu1, { gGiRomaniMaskCapDL, gGiRomaniMaskNoseEyeDL } },
+ // GID_MASK_POSTMAN, OBJECT_GI_MASK12
+ { GetItem_DrawOpa0Xlu1, { gGiPostmanHatCapDL, gGiPostmanHatBunnyLogoDL } },
+ // GID_MASK_GIANT, OBJECT_GI_MASK23
+ { GetItem_DrawOpa01, { gGiGiantMaskEmptyDL, gGiGiantMaskDL } },
+ // GID_CHATEAU, OBJECT_GI_BOTTLE_21
+ { GetItem_DrawOpa0Xlu1, { gGiChateauRomaniBottleEmptyDL, gGiChateauRomaniBottleDL } },
+ // GID_PICTO_BOX, OBJECT_GI_CAMERA
+ { GetItem_DrawOpa0Xlu1, { gGiPictoBoxFrameDL, gGiPictoBoxBodyAndLensDL } },
+ // GID_MASK_FIERCE_DEITY, OBJECT_GI_MASK03
+ { GetItem_DrawOpa01, { gGiFierceDeityMaskFaceDL, gGiFierceDeityMaskHairAndHatDL } },
+};
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EE5FC.s")
+/**
+ * Draw "Get Item" Model
+ * Calls the corresponding draw function for the given draw ID
+ */
+void GetItem_Draw(PlayState* play, s16 drawId) {
+ sDrawItemTable[drawId].drawFunc(play, drawId);
+}
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EE7D8.s")
+void GetItem_DrawBombchu(PlayState* play, s16 drawId) {
+ s32 pad;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EE940.s")
+ OPEN_DISPS(play->state.gfxCtx);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EEA48.s")
+ func_8012C214(play->state.gfxCtx);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EEC18.s")
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EED20.s")
+ CLOSE_DISPS(play->state.gfxCtx);
+}
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EEE34.s")
+void GetItem_DrawPoes(PlayState* play, s16 drawId) {
+ s32 pad;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EEF4C.s")
+ OPEN_DISPS(play->state.gfxCtx);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EF054.s")
+ func_8012C28C(play->state.gfxCtx);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EF0F0.s")
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EF1F4.s")
+ func_8012C2DC(play->state.gfxCtx);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EF2AC.s")
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[1]);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EF364.s")
+ gSPSegment(POLY_XLU_DISP++, 0x08,
+ Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, play->state.frames * 0, play->state.frames * 0, 16,
+ 32, 1, play->state.frames, -(play->state.frames * 6), 16, 32));
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EF4D4.s")
+ Matrix_Push();
+ Matrix_ReplaceRotation(&play->billboardMtxF);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EF65C.s")
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[3]);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[2]);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EF780.s")
+ Matrix_Pop();
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EF89C.s")
+ CLOSE_DISPS(play->state.gfxCtx);
+}
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EF984.s")
+void GetItem_DrawFairyBottle(PlayState* play, s16 drawId) {
+ s32 pad;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EFAB8.s")
+ OPEN_DISPS(play->state.gfxCtx);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EFBFC.s")
+ func_8012C28C(play->state.gfxCtx);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_draw/func_800EFD44.s")
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+
+ func_8012C2DC(play->state.gfxCtx);
+
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[1]);
+ gSPSegment(POLY_XLU_DISP++, 0x08,
+ Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, play->state.frames * 0, play->state.frames * 0, 32,
+ 32, 1, play->state.frames, -(play->state.frames * 6), 32, 32));
+
+ Matrix_Push();
+ Matrix_ReplaceRotation(&play->billboardMtxF);
+
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[2]);
+
+ Matrix_Pop();
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+void GetItem_DrawSkullToken(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C28C(play->state.gfxCtx);
+
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+
+ func_8012C2DC(play->state.gfxCtx);
+
+ gSPSegment(POLY_XLU_DISP++, 0x08,
+ Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, play->state.frames * 0, -(play->state.frames * 5),
+ 32, 32, 1, play->state.frames * 0, play->state.frames * 0, 32, 64));
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[1]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+void GetItem_DrawCompass(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C28C(play->state.gfxCtx);
+
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+
+ POLY_XLU_DISP = Gfx_CallSetupDL(POLY_XLU_DISP, 5);
+
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[1]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+void GetItem_DrawPotion(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C28C(play->state.gfxCtx);
+
+ gSPSegment(POLY_OPA_DISP++, 0x08,
+ Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, -play->state.frames, play->state.frames, 32, 32, 1,
+ -play->state.frames, play->state.frames, 32, 32));
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[1]);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[2]);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[3]);
+
+ func_8012C2DC(play->state.gfxCtx);
+
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[4]);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[5]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+void GetItem_DrawGoronSword(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C28C(play->state.gfxCtx);
+
+ gSPSegment(POLY_OPA_DISP++, 0x08,
+ Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, play->state.frames * 1, play->state.frames * 0, 32,
+ 32, 1, play->state.frames * 0, play->state.frames * 0, 32, 32));
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+void GetItem_DrawDekuNuts(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C28C(play->state.gfxCtx);
+
+ gSPSegment(POLY_OPA_DISP++, 0x08,
+ Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, play->state.frames * 6, play->state.frames * 6, 32,
+ 32, 1, play->state.frames * 6, play->state.frames * 6, 32, 32));
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+void GetItem_DrawRecoveryHeart(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C2DC(play->state.gfxCtx);
+
+ gSPSegment(POLY_XLU_DISP++, 0x08,
+ Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, play->state.frames * 0, -(play->state.frames * 3),
+ 32, 32, 1, play->state.frames * 0, -(play->state.frames * 2), 32, 32));
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[0]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+void GetItem_DrawFish(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C2DC(play->state.gfxCtx);
+
+ gSPSegment(POLY_XLU_DISP++, 0x08,
+ Gfx_TwoTexScroll(play->state.gfxCtx, G_TX_RENDERTILE, play->state.frames * 0, play->state.frames * 1, 32,
+ 32, 1, play->state.frames * 0, play->state.frames * 1, 32, 32));
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[0]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+/**
+ * Draw `drawResources[0]` as Opa
+ */
+void GetItem_DrawOpa0(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C28C(play->state.gfxCtx);
+
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+/**
+ * Draw `drawResources[0]` as Opa and `drawResources[1]` as Xlu
+ */
+void GetItem_DrawOpa0Xlu1(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C28C(play->state.gfxCtx);
+
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+
+ func_8012C2DC(play->state.gfxCtx);
+
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[1]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+/**
+ * Draw `drawResources[0]` and `drawResources[1]` as Opa
+ */
+void GetItem_DrawOpa01(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C28C(play->state.gfxCtx);
+
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[1]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+/**
+ * Draw `drawResources[0]` and `drawResources[1]` as Xlu
+ */
+void GetItem_DrawXlu01(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C2DC(play->state.gfxCtx);
+
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[0]);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[1]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+void GetItem_DrawSeahorse(PlayState* play, s16 drawId) {
+ s32 pad;
+ MtxF mtx;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C28C(play->state.gfxCtx);
+
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+
+ func_8012C2DC(play->state.gfxCtx);
+
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[1]);
+
+ Matrix_MtxToMtxF(Lib_SegmentedToVirtual(sDrawItemTable[drawId].drawResources[3]), &mtx);
+ Matrix_Mult(&mtx, MTXMODE_APPLY);
+ Matrix_ReplaceRotation(&play->billboardMtxF);
+
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[2]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+void GetItem_DrawFairyContainer(PlayState* play, s16 drawId) {
+ s32 pad;
+ MtxF mtx;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C28C(play->state.gfxCtx);
+ func_8012C2DC(play->state.gfxCtx);
+ AnimatedMat_Draw(play, Lib_SegmentedToVirtual(gGiFairyBottleTexAnim));
+
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[1]);
+
+ Matrix_MtxToMtxF(Lib_SegmentedToVirtual(sDrawItemTable[drawId].drawResources[3]), &mtx);
+ Matrix_Mult(&mtx, MTXMODE_APPLY);
+ Matrix_ReplaceRotation(&play->billboardMtxF);
+
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[2]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+void GetItem_DrawMoonsTear(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C28C(play->state.gfxCtx);
+ func_8012C2DC(play->state.gfxCtx);
+ AnimatedMat_Draw(play, Lib_SegmentedToVirtual(gGiMoonsTearTexAnim));
+
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+
+ Matrix_ReplaceRotation(&play->billboardMtxF);
+
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[1]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+void GetItem_DrawMagicArrow(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C28C(play->state.gfxCtx);
+
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+
+ func_8012C2DC(play->state.gfxCtx);
+
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[1]);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[2]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+void GetItem_DrawUpgrades(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C28C(play->state.gfxCtx);
+
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[1]);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[2]);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[3]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+void GetItem_DrawRupee(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C28C(play->state.gfxCtx);
+
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[1]);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+
+ func_8012C2DC(play->state.gfxCtx);
+
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[3]);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[2]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+void GetItem_DrawSmallRupee(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ Matrix_Scale(0.7f, 0.7f, 0.7f, MTXMODE_APPLY);
+ func_8012C28C(play->state.gfxCtx);
+
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[1]);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+
+ func_8012C2DC(play->state.gfxCtx);
+
+ gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[3]);
+ gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].drawResources[2]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+void GetItem_DrawWallet(PlayState* play, s16 drawId) {
+ s32 pad;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ func_8012C28C(play->state.gfxCtx);
+
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[1]);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[2]);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[3]);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[4]);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[5]);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[6]);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[7]);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+void GetItem_DrawRemains(PlayState* play, s16 drawId) {
+ s32 pad;
+ s8 objectIndex;
+
+ OPEN_DISPS(play->state.gfxCtx);
+
+ objectIndex = Object_GetIndex(&play->objectCtx, OBJECT_BSMASK);
+
+ gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[objectIndex].segment);
+
+ func_8012C28C(play->state.gfxCtx);
+ Matrix_Scale(0.02f, 0.02f, 0.02f, MTXMODE_APPLY);
+
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(POLY_OPA_DISP++, sDrawItemTable[drawId].drawResources[0]);
+
+ POLY_OPA_DISP = func_801660B8(play, POLY_OPA_DISP);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c
index 87f1a18029..0637f6392a 100644
--- a/src/code/z_en_item00.c
+++ b/src/code/z_en_item00.c
@@ -79,14 +79,14 @@ void EnItem00_Init(Actor* thisx, PlayState* play) {
if (this->actor.params == ITEM00_HEART_PIECE) {
sp30 = 0;
this->collectibleFlag = 0;
- this->actor.params = ITEM00_HEART;
+ this->actor.params = ITEM00_RECOVERY_HEART;
} else {
Actor_MarkForDeath(&this->actor);
return;
}
}
if (this->actor.params == ITEM00_3_HEARTS) {
- this->actor.params = ITEM00_HEART;
+ this->actor.params = ITEM00_RECOVERY_HEART;
}
Actor_ProcessInitChain(&this->actor, sInitChain);
@@ -118,7 +118,7 @@ void EnItem00_Init(Actor* thisx, PlayState* play) {
sp30 = -1;
}
break;
- case ITEM00_HEART:
+ case ITEM00_RECOVERY_HEART:
this->actor.home.rot.z = randPlusMinusPoint5Scaled(65535.0f);
shadowOffset = 430.0f;
Actor_SetScale(&this->actor, 0.02f);
@@ -184,7 +184,7 @@ void EnItem00_Init(Actor* thisx, PlayState* play) {
ActorShape_Init(&this->actor.shape, shadowOffset, ActorShadow_DrawCircle, shadowScale);
this->actor.shape.shadowAlpha = 180;
this->actor.focus.pos = this->actor.world.pos;
- this->unk14A = GI_NONE;
+ this->getItemId = GI_NONE;
if (sp30 < 0) {
this->actionFunc = EnItem00_WaitForHeartObject;
@@ -220,8 +220,8 @@ void EnItem00_Init(Actor* thisx, PlayState* play) {
case ITEM00_RUPEE_HUGE:
Item_Give(play, ITEM_RUPEE_HUGE);
break;
- case ITEM00_HEART:
- Item_Give(play, ITEM_HEART);
+ case ITEM00_RECOVERY_HEART:
+ Item_Give(play, ITEM_RECOVERY_HEART);
break;
case ITEM00_FLEXIBLE:
case ITEM00_BIG_FAIRY:
@@ -287,7 +287,8 @@ void EnItem00_WaitForHeartObject(EnItem00* this, PlayState* play) {
}
void func_800A640C(EnItem00* this, PlayState* play) {
- if ((this->actor.params <= ITEM00_RUPEE_RED) || ((this->actor.params == ITEM00_HEART) && (this->unk152 < 0)) ||
+ if ((this->actor.params <= ITEM00_RUPEE_RED) ||
+ ((this->actor.params == ITEM00_RECOVERY_HEART) && (this->unk152 < 0)) ||
(this->actor.params == ITEM00_HEART_PIECE) || (this->actor.params == ITEM00_HEART_CONTAINER)) {
this->actor.shape.rot.y = this->actor.shape.rot.y + 960;
} else if ((this->actor.params >= ITEM00_SHIELD_HERO) && (this->actor.params != ITEM00_NUTS_10) &&
@@ -367,7 +368,7 @@ void func_800A6780(EnItem00* this, PlayState* play) {
this->unk152++;
- if (this->actor.params == ITEM00_HEART) {
+ if (this->actor.params == ITEM00_RECOVERY_HEART) {
if (this->actor.velocity.y < 0.0f) {
this->actor.speedXZ = 0.0f;
this->actor.gravity = -0.4f;
@@ -417,12 +418,12 @@ void func_800A6780(EnItem00* this, PlayState* play) {
void func_800A6A40(EnItem00* this, PlayState* play) {
Player* player = GET_PLAYER(play);
- if (this->unk14A != GI_NONE) {
+ if (this->getItemId != GI_NONE) {
if (Actor_HasParent(&this->actor, play) == 0) {
- Actor_PickUp(&this->actor, play, this->unk14A, 50.0f, 80.0f);
+ Actor_PickUp(&this->actor, play, this->getItemId, 50.0f, 80.0f);
this->unk152++;
} else {
- this->unk14A = GI_NONE;
+ this->getItemId = GI_NONE;
}
}
@@ -435,7 +436,7 @@ void func_800A6A40(EnItem00* this, PlayState* play) {
if (this->actor.params <= ITEM00_RUPEE_RED) {
this->actor.shape.rot.y = this->actor.shape.rot.y + 960;
- } else if (this->actor.params == ITEM00_HEART) {
+ } else if (this->actor.params == ITEM00_RECOVERY_HEART) {
this->actor.shape.rot.y = 0;
}
@@ -533,8 +534,8 @@ void EnItem00_Update(Actor* thisx, PlayState* play) {
case ITEM00_NUTS_10:
getItemId = GI_NUTS_10;
break;
- case ITEM00_HEART:
- Item_Give(play, ITEM_HEART);
+ case ITEM00_RECOVERY_HEART:
+ Item_Give(play, ITEM_RECOVERY_HEART);
break;
case ITEM00_FLEXIBLE:
case ITEM00_BIG_FAIRY:
@@ -629,7 +630,7 @@ void EnItem00_Update(Actor* thisx, PlayState* play) {
Actor_SetScale(&this->actor, this->unk154);
- this->unk14A = GI_NONE;
+ this->getItemId = GI_NONE;
this->actionFunc = func_800A6A40;
}
@@ -657,7 +658,7 @@ void EnItem00_Draw(Actor* thisx, PlayState* play) {
case ITEM00_HEART_CONTAINER:
EnItem00_DrawHeartContainer(this, play);
break;
- case ITEM00_HEART:
+ case ITEM00_RECOVERY_HEART:
if (this->unk152 < 0) {
if (this->unk152 == -1) {
s8 bankIndex = Object_GetIndex(&play->objectCtx, OBJECT_GI_HEART);
@@ -668,7 +669,7 @@ void EnItem00_Draw(Actor* thisx, PlayState* play) {
}
} else {
Matrix_Scale(16.0f, 16.0f, 16.0f, MTXMODE_APPLY);
- GetItem_Draw(play, 8);
+ GetItem_Draw(play, GID_RECOVERY_HEART);
}
break;
}
@@ -793,8 +794,8 @@ void EnItem00_DrawHeartContainer(EnItem00* actor, PlayState* play) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_MODELVIEW | G_MTX_LOAD);
- gSPDisplayList(POLY_XLU_DISP++, object_gi_hearts_DL_001290);
- gSPDisplayList(POLY_XLU_DISP++, object_gi_hearts_DL_001470);
+ gSPDisplayList(POLY_XLU_DISP++, gGiHeartBorderDL);
+ gSPDisplayList(POLY_XLU_DISP++, gGiHeartContainerDL);
CLOSE_DISPS(play->state.gfxCtx);
}
@@ -826,7 +827,7 @@ s16 func_800A7650(s16 dropId) {
return ITEM00_NO_DROP;
}
- if (dropId == ITEM00_HEART) {
+ if (dropId == ITEM00_RECOVERY_HEART) {
if (((void)0, gSaveContext.save.playerData.healthCapacity) == ((void)0, gSaveContext.save.playerData.health)) {
return ITEM00_RUPEE_GREEN;
}
@@ -851,7 +852,7 @@ Actor* Item_DropCollectible(PlayState* play, Vec3f* spawnPos, u32 params) {
if (paramFF == ITEM00_3_HEARTS) {
for (i = 0; i < 3; i++) {
- spawnedActor = Item_DropCollectible(play, spawnPos, param7F00 | ITEM00_HEART | param8000);
+ spawnedActor = Item_DropCollectible(play, spawnPos, param7F00 | ITEM00_RECOVERY_HEART | param8000);
}
} else if (paramFF == ITEM00_MUSHROOM_CLOUD) {
param7F00 >>= 8;
@@ -958,61 +959,61 @@ Actor* Item_DropCollectible2(PlayState* play, Vec3f* spawnPos, s32 params) {
}
u8 sDropTable[DROP_TABLE_SIZE * DROP_TABLE_NUMBER] = {
- ITEM00_RUPEE_GREEN, ITEM00_RUPEE_GREEN, ITEM00_RUPEE_BLUE, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_MASK, ITEM00_MASK, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_BOMBS_A,
- ITEM00_MAGIC_SMALL, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_HEART,
- ITEM00_FLEXIBLE, ITEM00_RUPEE_GREEN, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_MASK, ITEM00_MASK, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_MAGIC_SMALL, ITEM00_NO_DROP, ITEM00_HEART, ITEM00_HEART,
- ITEM00_HEART, ITEM00_FLEXIBLE, ITEM00_RUPEE_GREEN, ITEM00_RUPEE_GREEN, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_MASK, ITEM00_MASK, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_BOMBS_A, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_LARGE, ITEM00_MAGIC_LARGE,
- ITEM00_HEART, ITEM00_HEART, ITEM00_FLEXIBLE, ITEM00_RUPEE_GREEN, ITEM00_NO_DROP,
- ITEM00_RUPEE_BLUE, ITEM00_RUPEE_RED, ITEM00_NO_DROP, ITEM00_MASK, ITEM00_MASK,
- ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_BOMBS_A, ITEM00_MAGIC_SMALL, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_HEART, ITEM00_HEART, ITEM00_FLEXIBLE, ITEM00_MASK,
- ITEM00_MASK, ITEM00_MASK, ITEM00_MASK, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_HEART, ITEM00_HEART, ITEM00_HEART, ITEM00_HEART, ITEM00_HEART,
- ITEM00_HEART, ITEM00_HEART, ITEM00_HEART, ITEM00_HEART, ITEM00_HEART,
- ITEM00_HEART, ITEM00_FLEXIBLE, ITEM00_HEART, ITEM00_HEART, ITEM00_HEART,
- ITEM00_HEART, ITEM00_HEART, ITEM00_HEART, ITEM00_HEART, ITEM00_HEART,
- ITEM00_HEART, ITEM00_HEART, ITEM00_HEART, ITEM00_HEART, ITEM00_HEART,
- ITEM00_HEART, ITEM00_HEART, ITEM00_HEART, ITEM00_RUPEE_GREEN, ITEM00_RUPEE_GREEN,
- ITEM00_RUPEE_GREEN, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_BLUE, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_RUPEE_BLUE,
- ITEM00_RUPEE_BLUE, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_BLUE,
- ITEM00_RUPEE_BLUE, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_RED, ITEM00_RUPEE_RED,
- ITEM00_RUPEE_RED, ITEM00_RUPEE_RED, ITEM00_RUPEE_RED, ITEM00_RUPEE_RED, ITEM00_RUPEE_RED,
- ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_ARROWS_10,
- ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_ARROWS_10,
- ITEM00_ARROWS_30, ITEM00_ARROWS_30, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_LARGE,
- ITEM00_MAGIC_LARGE, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_BOMBS_A, ITEM00_BOMBS_A,
- ITEM00_BOMBS_A, ITEM00_BOMBS_A, ITEM00_BOMBS_A, ITEM00_BOMBS_A, ITEM00_BOMBS_A,
- ITEM00_BOMBS_A, ITEM00_BOMBS_A, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL,
- ITEM00_MAGIC_SMALL, ITEM00_MAGIC_LARGE, ITEM00_MAGIC_LARGE, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL,
- ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL,
- ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_LARGE, ITEM00_MAGIC_LARGE,
- ITEM00_MAGIC_LARGE, ITEM00_MAGIC_LARGE, ITEM00_MAGIC_LARGE, ITEM00_MAGIC_LARGE, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NUTS_1, ITEM00_NUTS_1,
- ITEM00_NO_DROP, ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_STICK,
- ITEM00_STICK, ITEM00_NO_DROP, ITEM00_HEART, ITEM00_HEART, ITEM00_FLEXIBLE,
- ITEM00_RUPEE_GREEN, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_RED, ITEM00_NO_DROP,
- ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_ARROWS_30, ITEM00_BOMBS_A, ITEM00_NO_DROP,
- ITEM00_STICK, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_LARGE, ITEM00_HEART, ITEM00_HEART,
- ITEM00_FLEXIBLE, ITEM00_RUPEE_GREEN, ITEM00_HEART, ITEM00_HEART, ITEM00_MAGIC_SMALL,
- ITEM00_MASK, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_RUPEE_GREEN, ITEM00_RUPEE_GREEN, ITEM00_RUPEE_BLUE, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_MASK, ITEM00_MASK, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_BOMBS_A,
+ ITEM00_MAGIC_SMALL, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_RECOVERY_HEART,
+ ITEM00_FLEXIBLE, ITEM00_RUPEE_GREEN, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_MASK, ITEM00_MASK, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_MAGIC_SMALL, ITEM00_NO_DROP, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART,
+ ITEM00_RECOVERY_HEART, ITEM00_FLEXIBLE, ITEM00_RUPEE_GREEN, ITEM00_RUPEE_GREEN, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_MASK, ITEM00_MASK, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_BOMBS_A, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_LARGE, ITEM00_MAGIC_LARGE,
+ ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_FLEXIBLE, ITEM00_RUPEE_GREEN, ITEM00_NO_DROP,
+ ITEM00_RUPEE_BLUE, ITEM00_RUPEE_RED, ITEM00_NO_DROP, ITEM00_MASK, ITEM00_MASK,
+ ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_BOMBS_A, ITEM00_MAGIC_SMALL, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_FLEXIBLE, ITEM00_MASK,
+ ITEM00_MASK, ITEM00_MASK, ITEM00_MASK, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART,
+ ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART,
+ ITEM00_RECOVERY_HEART, ITEM00_FLEXIBLE, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART,
+ ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART,
+ ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART,
+ ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_RUPEE_GREEN, ITEM00_RUPEE_GREEN,
+ ITEM00_RUPEE_GREEN, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_BLUE, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_RUPEE_BLUE,
+ ITEM00_RUPEE_BLUE, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_BLUE,
+ ITEM00_RUPEE_BLUE, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_RED, ITEM00_RUPEE_RED,
+ ITEM00_RUPEE_RED, ITEM00_RUPEE_RED, ITEM00_RUPEE_RED, ITEM00_RUPEE_RED, ITEM00_RUPEE_RED,
+ ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_ARROWS_10,
+ ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_ARROWS_10,
+ ITEM00_ARROWS_30, ITEM00_ARROWS_30, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_LARGE,
+ ITEM00_MAGIC_LARGE, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_BOMBS_A, ITEM00_BOMBS_A,
+ ITEM00_BOMBS_A, ITEM00_BOMBS_A, ITEM00_BOMBS_A, ITEM00_BOMBS_A, ITEM00_BOMBS_A,
+ ITEM00_BOMBS_A, ITEM00_BOMBS_A, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL,
+ ITEM00_MAGIC_SMALL, ITEM00_MAGIC_LARGE, ITEM00_MAGIC_LARGE, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL,
+ ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL,
+ ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_LARGE, ITEM00_MAGIC_LARGE,
+ ITEM00_MAGIC_LARGE, ITEM00_MAGIC_LARGE, ITEM00_MAGIC_LARGE, ITEM00_MAGIC_LARGE, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NUTS_1, ITEM00_NUTS_1,
+ ITEM00_NO_DROP, ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_STICK,
+ ITEM00_STICK, ITEM00_NO_DROP, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_FLEXIBLE,
+ ITEM00_RUPEE_GREEN, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_RED, ITEM00_NO_DROP,
+ ITEM00_ARROWS_10, ITEM00_ARROWS_10, ITEM00_ARROWS_30, ITEM00_BOMBS_A, ITEM00_NO_DROP,
+ ITEM00_STICK, ITEM00_MAGIC_SMALL, ITEM00_MAGIC_LARGE, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART,
+ ITEM00_FLEXIBLE, ITEM00_RUPEE_GREEN, ITEM00_RECOVERY_HEART, ITEM00_RECOVERY_HEART, ITEM00_MAGIC_SMALL,
+ ITEM00_MASK, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_NO_DROP, ITEM00_NO_DROP,
};
u8 sDropTableAmounts[DROP_TABLE_SIZE * DROP_TABLE_NUMBER] = {
@@ -1053,7 +1054,7 @@ void Item_DropCollectibleRandom(PlayState* play, Actor* fromActor, Vec3f* spawnP
dropId = ITEM00_ARROWS_10;
break;
case PLAYER_FORM_ZORA:
- dropId = ITEM00_HEART;
+ dropId = ITEM00_RECOVERY_HEART;
break;
case PLAYER_FORM_GORON:
dropId = ITEM00_MAGIC_SMALL;
@@ -1074,7 +1075,7 @@ void Item_DropCollectibleRandom(PlayState* play, Actor* fromActor, Vec3f* spawnP
dropQuantity = 1;
} else if (fromActor->dropFlag & 2) {
params = 0x10;
- dropId = ITEM00_HEART;
+ dropId = ITEM00_RECOVERY_HEART;
dropQuantity = 1;
} else if (fromActor->dropFlag & 0x20) {
dropId = ITEM00_RUPEE_PURPLE;
@@ -1093,11 +1094,11 @@ void Item_DropCollectibleRandom(PlayState* play, Actor* fromActor, Vec3f* spawnP
if (gSaveContext.save.playerData.health <= 0x30) {
params = 0x10;
- dropId = ITEM00_HEART;
+ dropId = ITEM00_RECOVERY_HEART;
dropQuantity = 3;
} else if (gSaveContext.save.playerData.health <= 0x50) {
params = 0x10;
- dropId = ITEM00_HEART;
+ dropId = ITEM00_RECOVERY_HEART;
dropQuantity = 1;
} else if ((gSaveContext.save.playerData.magicLevel != 0) && (gSaveContext.save.playerData.magic == 0)) {
params = 0xD0;
@@ -1159,13 +1160,13 @@ void Item_DropCollectibleRandom(PlayState* play, Actor* fromActor, Vec3f* spawnP
}
s32 D_801AE194[32] = {
- ITEM00_NO_DROP, ITEM00_RUPEE_GREEN, ITEM00_RUPEE_BLUE, ITEM00_NO_DROP, ITEM00_RUPEE_RED,
- ITEM00_RUPEE_PURPLE, ITEM00_NO_DROP, ITEM00_RUPEE_HUGE, ITEM00_COMPASS, ITEM00_MUSHROOM_CLOUD,
- ITEM00_HEART, ITEM00_3_HEARTS, ITEM00_HEART_PIECE, ITEM00_HEART_CONTAINER, ITEM00_MAGIC_SMALL,
- ITEM00_MAGIC_LARGE, ITEM00_FLEXIBLE, ITEM00_BIG_FAIRY, ITEM00_NO_DROP, ITEM00_NUTS_10,
- ITEM00_NO_DROP, ITEM00_BOMBS_A, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_STICK, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
- ITEM00_ARROWS_10, ITEM00_ARROWS_30,
+ ITEM00_NO_DROP, ITEM00_RUPEE_GREEN, ITEM00_RUPEE_BLUE, ITEM00_NO_DROP, ITEM00_RUPEE_RED,
+ ITEM00_RUPEE_PURPLE, ITEM00_NO_DROP, ITEM00_RUPEE_HUGE, ITEM00_COMPASS, ITEM00_MUSHROOM_CLOUD,
+ ITEM00_RECOVERY_HEART, ITEM00_3_HEARTS, ITEM00_HEART_PIECE, ITEM00_HEART_CONTAINER, ITEM00_MAGIC_SMALL,
+ ITEM00_MAGIC_LARGE, ITEM00_FLEXIBLE, ITEM00_BIG_FAIRY, ITEM00_NO_DROP, ITEM00_NUTS_10,
+ ITEM00_NO_DROP, ITEM00_BOMBS_A, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_STICK, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP, ITEM00_NO_DROP,
+ ITEM00_ARROWS_10, ITEM00_ARROWS_30,
};
s32 func_800A8150(s32 index) {
diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c
index a76cb36e0b..0d6c4380d0 100644
--- a/src/code/z_parameter.c
+++ b/src/code/z_parameter.c
@@ -595,7 +595,7 @@ u8 Item_Give(PlayState* play, u8 item) {
SET_QUEST_ITEM(item - ITEM_REMAINS_ODOLWA + QUEST_REMAINS_ODOWLA);
return ITEM_NONE;
- } else if (item == ITEM_HEART) {
+ } else if (item == ITEM_RECOVERY_HEART) {
Health_ChangeBy(play, 0x10);
return item;
@@ -655,7 +655,7 @@ u8 Item_Give(PlayState* play, u8 item) {
} else if (((item >= ITEM_POTION_RED) && (item <= ITEM_OBABA_DRINK)) || (item == ITEM_CHATEAU_2) ||
(item == ITEM_MILK) || (item == ITEM_GOLD_DUST_2) || (item == ITEM_HYLIAN_LOACH_2) ||
- (item == ITEM_SEA_HORSE_CAUGHT)) {
+ (item == ITEM_SEAHORSE_CAUGHT)) {
slot = SLOT(item);
if ((item != ITEM_MILK_BOTTLE) && (item != ITEM_MILK_HALF)) {
@@ -671,8 +671,8 @@ u8 Item_Give(PlayState* play, u8 item) {
} else if (item == ITEM_HYLIAN_LOACH_2) {
item = ITEM_HYLIAN_LOACH;
- } else if (item == ITEM_SEA_HORSE_CAUGHT) {
- item = ITEM_SEA_HORSE;
+ } else if (item == ITEM_SEAHORSE_CAUGHT) {
+ item = ITEM_SEAHORSE;
}
slot = SLOT(item);
@@ -712,7 +712,7 @@ u8 Item_Give(PlayState* play, u8 item) {
} else if ((item >= ITEM_MOON_TEAR) && (item <= ITEM_MASK_GIANT)) {
temp = INV_CONTENT(item);
INV_CONTENT(item) = item;
- if ((item >= ITEM_MOON_TEAR) && (item <= ITEM_PENDANT_MEMORIES) && (temp != ITEM_NONE)) {
+ if ((item >= ITEM_MOON_TEAR) && (item <= ITEM_PENDANT_OF_MEMORIES) && (temp != ITEM_NONE)) {
for (i = EQUIP_SLOT_C_LEFT; i <= EQUIP_SLOT_C_RIGHT; i++) {
if (temp == GET_CUR_FORM_BTN_ITEM(i)) {
SET_CUR_FORM_BTN_ITEM(i, item);
@@ -816,8 +816,8 @@ u8 Item_CheckObtainabilityImpl(u8 item) {
} else if (item == ITEM_HEART_CONTAINER) {
return ITEM_NONE;
- } else if (item == ITEM_HEART) {
- return ITEM_HEART;
+ } else if (item == ITEM_RECOVERY_HEART) {
+ return ITEM_RECOVERY_HEART;
} else if ((item == ITEM_MAGIC_SMALL) || (item == ITEM_MAGIC_LARGE)) {
if (!(gSaveContext.save.weekEventReg[12] & 0x80)) {
@@ -843,7 +843,7 @@ u8 Item_CheckObtainabilityImpl(u8 item) {
} else if (((item >= ITEM_POTION_RED) && (item <= ITEM_OBABA_DRINK)) || (item == ITEM_CHATEAU_2) ||
(item == ITEM_MILK) || (item == ITEM_GOLD_DUST_2) || (item == ITEM_HYLIAN_LOACH_2) ||
- (item == ITEM_SEA_HORSE_CAUGHT)) {
+ (item == ITEM_SEAHORSE_CAUGHT)) {
bottleSlot = SLOT(item);
if ((item != ITEM_MILK_BOTTLE) && (item != ITEM_MILK_HALF)) {
@@ -859,8 +859,8 @@ u8 Item_CheckObtainabilityImpl(u8 item) {
} else if (item == ITEM_HYLIAN_LOACH_2) {
item = ITEM_HYLIAN_LOACH;
- } else if (item == ITEM_SEA_HORSE_CAUGHT) {
- item = ITEM_SEA_HORSE;
+ } else if (item == ITEM_SEAHORSE_CAUGHT) {
+ item = ITEM_SEAHORSE;
}
bottleSlot = SLOT(item);
diff --git a/src/code/z_sram_NES.c b/src/code/z_sram_NES.c
index b5491e33bb..5e29a251ee 100644
--- a/src/code/z_sram_NES.c
+++ b/src/code/z_sram_NES.c
@@ -412,7 +412,7 @@ void Sram_SaveEndOfCycle(PlayState* play) {
Inventory_DeleteItem(ITEM_LONGSHOT, SLOT_TRADE_COUPLE);
for (j = EQUIP_SLOT_C_LEFT; j <= EQUIP_SLOT_C_RIGHT; j++) {
- if (GET_CUR_FORM_BTN_ITEM(j) >= ITEM_MOON_TEAR && GET_CUR_FORM_BTN_ITEM(j) <= ITEM_PENDANT_MEMORIES) {
+ if (GET_CUR_FORM_BTN_ITEM(j) >= ITEM_MOON_TEAR && GET_CUR_FORM_BTN_ITEM(j) <= ITEM_PENDANT_OF_MEMORIES) {
SET_CUR_FORM_BTN_ITEM(j, ITEM_NONE);
Interface_LoadItemIconImpl(play, j);
}
diff --git a/src/overlays/actors/ovl_Bg_Dblue_Movebg/z_bg_dblue_movebg.c b/src/overlays/actors/ovl_Bg_Dblue_Movebg/z_bg_dblue_movebg.c
index 89c1be29c9..2bd5d103af 100644
--- a/src/overlays/actors/ovl_Bg_Dblue_Movebg/z_bg_dblue_movebg.c
+++ b/src/overlays/actors/ovl_Bg_Dblue_Movebg/z_bg_dblue_movebg.c
@@ -4,6 +4,7 @@
* Description: Great Bay Temple - Waterwheels and push switches
*/
+#include "prevent_bss_reordering.h"
#include "z_bg_dblue_movebg.h"
#include "objects/object_dblue_object/object_dblue_object.h"
#include "overlays/actors/ovl_Obj_Hunsui/z_obj_hunsui.h"
diff --git a/src/overlays/actors/ovl_Dm_Char05/z_dm_char05.c b/src/overlays/actors/ovl_Dm_Char05/z_dm_char05.c
index 7f27b584db..40807c77c3 100644
--- a/src/overlays/actors/ovl_Dm_Char05/z_dm_char05.c
+++ b/src/overlays/actors/ovl_Dm_Char05/z_dm_char05.c
@@ -718,7 +718,7 @@ void func_80AADD9C(PlayState* play, DmChar05* this) {
Matrix_Translate(this->unk_190.x, this->unk_190.y, this->unk_190.z, MTXMODE_NEW);
Matrix_RotateZYX(0, play->gameplayFrames * 1000, 0, MTXMODE_APPLY);
Matrix_Scale(0.2f, 0.2f, 0.2f, MTXMODE_APPLY);
- GetItem_Draw(play, GID_44);
+ GetItem_Draw(play, GID_MASK_GORON);
}
if (Object_IsLoaded(&play->objectCtx, this->unk_18F)) {
@@ -731,7 +731,7 @@ void func_80AADE78(PlayState* play, DmChar05* this) {
Matrix_Translate(this->unk_190.x, this->unk_190.y, this->unk_190.z, MTXMODE_NEW);
Matrix_RotateZYX(0, play->gameplayFrames * 1000, 0, MTXMODE_APPLY);
Matrix_Scale(0.2f, 0.2f, 0.2f, MTXMODE_APPLY);
- GetItem_Draw(play, GID_45);
+ GetItem_Draw(play, GID_MASK_ZORA);
}
if (Object_IsLoaded(&play->objectCtx, this->unk_18F)) {
@@ -744,7 +744,7 @@ void func_80AADF54(PlayState* play, DmChar05* this) {
Matrix_Translate(this->unk_190.x, this->unk_190.y, this->unk_190.z, MTXMODE_NEW);
Matrix_RotateZYX(0, play->gameplayFrames * 1000, 0, MTXMODE_APPLY);
Matrix_Scale(0.2f, 0.2f, 0.2f, MTXMODE_APPLY);
- GetItem_Draw(play, GID_6B);
+ GetItem_Draw(play, GID_MASK_GIBDO);
}
if (Object_IsLoaded(&play->objectCtx, this->unk_18F)) {
@@ -758,7 +758,7 @@ void func_80AAE030(PlayState* play, DmChar05* this) {
Matrix_Translate(this->unk_190.x, this->unk_190.y, this->unk_190.z, MTXMODE_NEW);
Matrix_RotateZYX(0, play->gameplayFrames * 1000, 0, MTXMODE_APPLY);
Matrix_Scale(0.2f, 0.2f, 0.2f, MTXMODE_APPLY);
- GetItem_Draw(play, GID_03);
+ GetItem_Draw(play, GID_MASK_COUPLE);
}
if (Object_IsLoaded(&play->objectCtx, this->unk_18F)) {
@@ -768,17 +768,18 @@ void func_80AAE030(PlayState* play, DmChar05* this) {
}
void func_80AAE114(PlayState* play, DmChar05* this) {
- s32 sp34;
- s16 sp24[] = {
- GID_02, GID_MASK_GREAT_FAIRY, GID_70, GID_3A, GID_0E, GID_0F, GID_3E, GID_71,
+ s32 getItemDrawIndex;
+ s16 getItemDrawIds[] = {
+ GID_MASK_KAMARO, GID_MASK_GREAT_FAIRY, GID_MASK_ROMANI, GID_MASK_BLAST,
+ GID_MASK_CIRCUS_LEADER, GID_MASK_BREMEN, GID_MASK_BUNNY, GID_MASK_POSTMAN,
};
- sp34 = DMCHAR05_GET(&this->actor) - DMCHAR05_5;
+ getItemDrawIndex = DMCHAR05_GET(&this->actor) - DMCHAR05_5;
if (this->actor.objBankIndex == this->unk_18F) {
Matrix_Translate(this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, MTXMODE_NEW);
Matrix_RotateZYX(0, play->gameplayFrames * 1000, 0, MTXMODE_APPLY);
Matrix_Scale(0.2f, 0.2f, 0.2f, MTXMODE_APPLY);
- GetItem_Draw(play, sp24[sp34]);
+ GetItem_Draw(play, getItemDrawIds[getItemDrawIndex]);
}
if (Object_IsLoaded(&play->objectCtx, this->unk_18F)) {
diff --git a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c
index 8c28cd1b5d..881785fe13 100644
--- a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c
+++ b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c
@@ -546,7 +546,7 @@ void func_808B9CE8(DoorWarp1* this, PlayState* play) {
}
if (!Actor_HasParent(&this->dyna.actor, play)) {
- Actor_PickUp(&this->dyna.actor, play, func_808B849C(this, play) + 84, 30.0f, 80.0f);
+ Actor_PickUp(&this->dyna.actor, play, (GI_REMAINS_ODOLWA - 1) + func_808B849C(this, play), 30.0f, 80.0f);
return;
}
diff --git a/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c b/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c
index 4aaa21bcec..b87f43b370 100644
--- a/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c
+++ b/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c
@@ -495,7 +495,7 @@ void func_809C5738(EnBomBowlMan* this, PlayState* play) {
}
void func_809C59A4(EnBomBowlMan* this, PlayState* play) {
- Actor_PickUp(&this->actor, play, GI_50, 300.0f, 300.0f);
+ Actor_PickUp(&this->actor, play, GI_BOMBERS_NOTEBOOK, 300.0f, 300.0f);
this->unk_29C = 1;
this->actionFunc = func_809C59F0;
}
@@ -512,7 +512,7 @@ void func_809C59F0(EnBomBowlMan* this, PlayState* play) {
func_800B8500(&this->actor, play, 400.0f, 400.0f, -1);
this->actionFunc = func_809C5AA4;
} else {
- Actor_PickUp(&this->actor, play, GI_50, 300.0f, 300.0f);
+ Actor_PickUp(&this->actor, play, GI_BOMBERS_NOTEBOOK, 300.0f, 300.0f);
}
}
diff --git a/src/overlays/actors/ovl_En_Box/z_en_box.c b/src/overlays/actors/ovl_En_Box/z_en_box.c
index b63018b888..bfc2420605 100644
--- a/src/overlays/actors/ovl_En_Box/z_en_box.c
+++ b/src/overlays/actors/ovl_En_Box/z_en_box.c
@@ -218,9 +218,9 @@ void EnBox_Init(Actor* thisx, PlayState* play) {
this->dyna.actor.world.rot.x = 0;
}
thisx->shape.rot.x = this->dyna.actor.world.rot.x;
- this->getItem = ENBOX_GET_ITEM(thisx);
+ this->getItemId = ENBOX_GET_ITEM(thisx);
- if (Flags_GetTreasure(play, ENBOX_GET_CHEST_FLAG(&this->dyna.actor)) || this->getItem == GI_NONE) {
+ if (Flags_GetTreasure(play, ENBOX_GET_CHEST_FLAG(&this->dyna.actor)) || this->getItemId == GI_NONE) {
this->alpha = 255;
this->iceSmokeTimer = 100;
EnBox_SetupAction(this, EnBox_Open);
@@ -272,7 +272,7 @@ void EnBox_Init(Actor* thisx, PlayState* play) {
this->movementFlags |= ENBOX_MOVE_STICK_TO_GROUND;
}
- if ((this->getItem == GI_STRAY_FAIRY) && !Flags_GetTreasure(play, ENBOX_GET_CHEST_FLAG(&this->dyna.actor))) {
+ if ((this->getItemId == GI_STRAY_FAIRY) && !Flags_GetTreasure(play, ENBOX_GET_CHEST_FLAG(&this->dyna.actor))) {
this->dyna.actor.flags |= ACTOR_FLAG_10;
}
@@ -485,10 +485,10 @@ void EnBox_WaitOpen(EnBox* this, PlayState* play) {
func_801A3098(0x2B | 0x900);
}
- if (this->getItem == GI_STRAY_FAIRY) {
+ if (this->getItemId == GI_STRAY_FAIRY) {
this->movementFlags |= ENBOX_MOVE_0x20;
} else {
- if ((this->getItem == GI_HEART_PIECE) || (this->getItem == GI_BOTTLE)) {
+ if ((this->getItemId == GI_HEART_PIECE) || (this->getItemId == GI_BOTTLE)) {
Flags_SetCollectible(play, this->collectableFlag);
}
Flags_SetTreasure(play, ENBOX_GET_CHEST_FLAG(&this->dyna.actor));
@@ -498,17 +498,17 @@ void EnBox_WaitOpen(EnBox* this, PlayState* play) {
Actor_OffsetOfPointInActorCoords(&this->dyna.actor, &offset, &player->actor.world.pos);
if (offset.z > -50.0f && offset.z < 0.0f && fabsf(offset.y) < 10.0f && fabsf(offset.x) < 20.0f &&
Player_IsFacingActor(&this->dyna.actor, 0x3000, play)) {
- if (((this->getItem == GI_HEART_PIECE) || (this->getItem == GI_BOTTLE)) &&
+ if (((this->getItemId == GI_HEART_PIECE) || (this->getItemId == GI_BOTTLE)) &&
Flags_GetCollectible(play, this->collectableFlag)) {
- this->getItem = GI_RECOVERY_HEART;
+ this->getItemId = GI_RECOVERY_HEART;
}
- if ((this->getItem == GI_MASK_CAPTAIN) && (INV_CONTENT(ITEM_MASK_CAPTAIN) == ITEM_MASK_CAPTAIN)) {
- this->getItem = GI_RECOVERY_HEART;
+ if ((this->getItemId == GI_MASK_CAPTAIN) && (INV_CONTENT(ITEM_MASK_CAPTAIN) == ITEM_MASK_CAPTAIN)) {
+ this->getItemId = GI_RECOVERY_HEART;
}
- if ((this->getItem == GI_MASK_GIANT) && (INV_CONTENT(ITEM_MASK_GIANT) == ITEM_MASK_GIANT)) {
- this->getItem = GI_RECOVERY_HEART;
+ if ((this->getItemId == GI_MASK_GIANT) && (INV_CONTENT(ITEM_MASK_GIANT) == ITEM_MASK_GIANT)) {
+ this->getItemId = GI_RECOVERY_HEART;
}
- Actor_PickUpNearby(&this->dyna.actor, play, -this->getItem);
+ Actor_PickUpNearby(&this->dyna.actor, play, -this->getItemId);
}
if (Flags_GetTreasure(play, ENBOX_GET_CHEST_FLAG(&this->dyna.actor))) {
EnBox_SetupAction(this, EnBox_Open);
@@ -603,7 +603,7 @@ void EnBox_Update(Actor* thisx, PlayState* play) {
this->movementFlags &= ~ENBOX_MOVE_STICK_TO_GROUND;
EnBox_ClipToGround(this, play);
}
- if ((this->getItem == GI_STRAY_FAIRY) && !Flags_GetTreasure(play, ENBOX_GET_CHEST_FLAG(&this->dyna.actor))) {
+ if ((this->getItemId == GI_STRAY_FAIRY) && !Flags_GetTreasure(play, ENBOX_GET_CHEST_FLAG(&this->dyna.actor))) {
play->actorCtx.unk5 |= 8;
}
this->actionFunc(this, play);
@@ -615,7 +615,7 @@ void EnBox_Update(Actor* thisx, PlayState* play) {
Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 0.0f, 0.0f, 0.0f, 0x1C);
}
Actor_SetFocus(&this->dyna.actor, 40.0f);
- if ((this->getItem == GI_ICE_TRAP) && (this->actionFunc == EnBox_Open) && (this->skelAnime.curFrame > 45.0f) &&
+ if ((this->getItemId == GI_ICE_TRAP) && (this->actionFunc == EnBox_Open) && (this->skelAnime.curFrame > 45.0f) &&
(this->iceSmokeTimer < 100)) {
EnBox_SpawnIceSmoke(this, play);
}
@@ -633,7 +633,7 @@ void EnBox_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
if (this->type == ENBOX_TYPE_BIG_ORNATE) {
gSPDisplayList((*gfx)++, &gBoxChestBaseOrnateDL);
} else if (Actor_IsSmallChest(this)) {
- if (this->getItem == GI_KEY_SMALL) {
+ if (this->getItemId == GI_KEY_SMALL) {
gSPDisplayList((*gfx)++, &gBoxChestBaseGildedDL);
} else {
gSPDisplayList((*gfx)++, &gBoxChestBaseDL);
@@ -646,7 +646,7 @@ void EnBox_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
if (this->type == ENBOX_TYPE_BIG_ORNATE) {
gSPDisplayList((*gfx)++, &gBoxChestLidOrnateDL);
} else if (Actor_IsSmallChest(this)) {
- if (this->getItem == GI_KEY_SMALL) {
+ if (this->getItemId == GI_KEY_SMALL) {
gSPDisplayList((*gfx)++, &gBoxChestLidGildedDL);
} else {
gSPDisplayList((*gfx)++, &gBoxChestLidDL);
diff --git a/src/overlays/actors/ovl_En_Box/z_en_box.h b/src/overlays/actors/ovl_En_Box/z_en_box.h
index 0ea7fe8de4..cd164c9248 100644
--- a/src/overlays/actors/ovl_En_Box/z_en_box.h
+++ b/src/overlays/actors/ovl_En_Box/z_en_box.h
@@ -62,7 +62,7 @@ typedef struct EnBox {
/* 0x1F4 */ func_80867BDC_a0 unk_1F4;
/* 0x218 */ s16 cutsceneIdxA;
/* 0x21A */ s16 cutsceneIdxB;
- /* 0x21C */ s32 getItem;
+ /* 0x21C */ s32 getItemId;
/* 0x220 */ s32 collectableFlag;
} EnBox; // size = 0x224
diff --git a/src/overlays/actors/ovl_En_Dno/z_en_dno.c b/src/overlays/actors/ovl_En_Dno/z_en_dno.c
index 646667c050..102fc6d9b0 100644
--- a/src/overlays/actors/ovl_En_Dno/z_en_dno.c
+++ b/src/overlays/actors/ovl_En_Dno/z_en_dno.c
@@ -610,11 +610,11 @@ void func_80A725F8(EnDno* this, PlayState* play) {
case 0x802:
if (Message_ShouldAdvance(play)) {
if (INV_CONTENT(ITEM_MASK_SCENTS) == ITEM_MASK_SCENTS) {
- this->unk_458 = GI_RUPEE_RED;
+ this->getItemId = GI_RUPEE_RED;
} else {
- this->unk_458 = GI_MASK_SCENTS;
+ this->getItemId = GI_MASK_SCENTS;
}
- Actor_PickUp(&this->actor, play, this->unk_458, 60.0f, 60.0f);
+ Actor_PickUp(&this->actor, play, this->getItemId, 60.0f, 60.0f);
func_801477B4(play);
func_80A72B84(this, play);
}
@@ -678,7 +678,7 @@ void func_80A72BA4(EnDno* this, PlayState* play) {
this->actor.parent = NULL;
this->actionFunc = func_80A72598;
} else {
- Actor_PickUp(&this->actor, play, this->unk_458, 60.0f, 60.0f);
+ Actor_PickUp(&this->actor, play, this->getItemId, 60.0f, 60.0f);
}
}
diff --git a/src/overlays/actors/ovl_En_Dno/z_en_dno.h b/src/overlays/actors/ovl_En_Dno/z_en_dno.h
index 9c78619749..bf357cad67 100644
--- a/src/overlays/actors/ovl_En_Dno/z_en_dno.h
+++ b/src/overlays/actors/ovl_En_Dno/z_en_dno.h
@@ -48,7 +48,7 @@ typedef struct EnDno {
/* 0x44F */ UNK_TYPE1 unk_44F[0x3];
/* 0x452 */ s16 unk_452;
/* 0x454 */ f32 unk_454;
- /* 0x458 */ s32 unk_458;
+ /* 0x458 */ s32 getItemId;
/* 0x45C */ s16 unk_45C;
/* 0x460 */ Actor* unk_460;
/* 0x464 */ u16 textId;
diff --git a/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c b/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c
index 7463eaab10..0aabfc969b 100644
--- a/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c
+++ b/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c
@@ -4938,7 +4938,7 @@ void EnFishing_HandleOwnerDialog(EnFishing* this, PlayState* play) {
} else {
if ((D_809171CC >= 60.0f) && !(gSaveContext.save.unk_EE4 & 0x800)) {
gSaveContext.save.unk_EE4 |= 0x800;
- getItemId = GI_SCALE_GOLD;
+ getItemId = GI_SKULL_TOKEN;
sSinkingLureLocation = Rand_ZeroFloat(3.999f) + 1.0f;
}
}
@@ -4997,7 +4997,7 @@ void EnFishing_HandleOwnerDialog(EnFishing* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play)) {
this->unk_154 = 24;
} else {
- Actor_PickUp(&this->actor, play, GI_SCALE_GOLD, 2000.0f, 1000.0f);
+ Actor_PickUp(&this->actor, play, GI_SKULL_TOKEN, 2000.0f, 1000.0f);
}
break;
diff --git a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c
index bc95efecd0..74486b30cf 100644
--- a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c
+++ b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c
@@ -138,16 +138,16 @@ static ShopItemEntry sShopItemEntries[] = {
EnGirlA_BuyBottleItem, EnGirlA_BuyFanfare },
{ OBJECT_GI_BOTTLE, GID_BOTTLE, func_800B8050, 1, 0x29F8, 0x29F9, GI_BOTTLE_STOLEN, EnGirlA_CanBuyBottleStolen,
EnGirlA_BuyBottle, EnGirlA_BuyFanfare },
- { OBJECT_GI_SWORD_4, GID_SWORD_GREAT_FAIRY, func_800B8050, 4, 0x29F2, 0x29F3, GI_SWORD_GREAT_FAIRY,
+ { OBJECT_GI_SWORD_4, GID_SWORD_GREAT_FAIRY, func_800B8050, 4, 0x29F2, 0x29F3, GI_SWORD_GREAT_FAIRY_STOLEN,
EnGirlA_CanBuySword, EnGirlA_BuySword, EnGirlA_BuyFanfare },
- { OBJECT_GI_SWORD_1, GID_SWORD_KOKIRI, func_800B8050, 1, 0x29F4, 0x29F5, GI_SWORD_KOKIRI, EnGirlA_CanBuySword,
+ { OBJECT_GI_SWORD_1, GID_SWORD_KOKIRI, func_800B8050, 1, 0x29F4, 0x29F5, GI_SWORD_KOKIRI_STOLEN,
+ EnGirlA_CanBuySword, EnGirlA_BuySword, EnGirlA_BuyFanfare },
+ { OBJECT_GI_SWORD_2, GID_SWORD_RAZOR, func_800B8050, 2, 0x29F4, 0x29F5, GI_SWORD_RAZOR_STOLEN, EnGirlA_CanBuySword,
EnGirlA_BuySword, EnGirlA_BuyFanfare },
- { OBJECT_GI_SWORD_2, GID_SWORD_RAZOR, func_800B8050, 2, 0x29F4, 0x29F5, GI_SWORD_RAZOR, EnGirlA_CanBuySword,
- EnGirlA_BuySword, EnGirlA_BuyFanfare },
- { OBJECT_GI_SWORD_3, GID_SWORD_GILDED, func_800B8050, 3, 0x29F4, 0x29F5, GI_SWORD_GILDED, EnGirlA_CanBuySword,
- EnGirlA_BuySword, EnGirlA_BuyFanfare },
- { OBJECT_GI_SHIELD_2, GID_SHIELD_HERO, func_800B8050, 1, 0x29F6, 0x29F7, GI_SHIELD_HERO_2, EnGirlA_CanBuyShieldHero,
- EnGirlA_BuyShieldHero, EnGirlA_BuyFanfare },
+ { OBJECT_GI_SWORD_3, GID_SWORD_GILDED, func_800B8050, 3, 0x29F4, 0x29F5, GI_SWORD_GILDED_STOLEN,
+ EnGirlA_CanBuySword, EnGirlA_BuySword, EnGirlA_BuyFanfare },
+ { OBJECT_GI_SHIELD_2, GID_SHIELD_HERO, func_800B8050, 1, 0x29F6, 0x29F7, GI_SHIELD_HERO_STOLEN,
+ EnGirlA_CanBuyShieldHero, EnGirlA_BuyShieldHero, EnGirlA_BuyFanfare },
{ OBJECT_GI_SHIELD_3, GID_SHIELD_MIRROR, func_800B8050, 1, 0x29F6, 0x29F7, GI_SHIELD_MIRROR,
EnGirlA_CanBuyShieldMirror, EnGirlA_BuyShieldMirror, EnGirlA_BuyFanfare },
};
diff --git a/src/overlays/actors/ovl_En_Ot/z_en_ot.c b/src/overlays/actors/ovl_En_Ot/z_en_ot.c
index dcef97ec15..ad10226edc 100644
--- a/src/overlays/actors/ovl_En_Ot/z_en_ot.c
+++ b/src/overlays/actors/ovl_En_Ot/z_en_ot.c
@@ -377,12 +377,12 @@ void func_80B5BFB8(EnOt* this, PlayState* play) {
void func_80B5C154(EnOt* this, PlayState* play) {
if (gSaveContext.save.weekEventReg[32] & 1) {
- this->unk_38C = GI_RUPEE_RED;
+ this->getItemId = GI_RUPEE_RED;
} else {
- this->unk_38C = GI_HEART_PIECE;
+ this->getItemId = GI_HEART_PIECE;
gSaveContext.save.weekEventReg[32] |= 1;
}
- Actor_PickUp(&this->actor, play, this->unk_38C, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
+ Actor_PickUp(&this->actor, play, this->getItemId, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
this->actionFunc = func_80B5C1CC;
}
@@ -392,7 +392,7 @@ void func_80B5C1CC(EnOt* this, PlayState* play) {
func_80B5C244(this, play);
func_80B5C244(this->unk_360, play);
} else {
- Actor_PickUp(&this->actor, play, this->unk_38C, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
+ Actor_PickUp(&this->actor, play, this->getItemId, this->actor.xzDistToPlayer, this->actor.playerHeightRel);
}
}
diff --git a/src/overlays/actors/ovl_En_Ot/z_en_ot.h b/src/overlays/actors/ovl_En_Ot/z_en_ot.h
index 6f4bf21051..e123b88716 100644
--- a/src/overlays/actors/ovl_En_Ot/z_en_ot.h
+++ b/src/overlays/actors/ovl_En_Ot/z_en_ot.h
@@ -52,7 +52,7 @@ typedef struct EnOt {
/* 0x378 */ Vec3f unk_378;
/* 0x384 */ u8 unk_384;
/* 0x388 */ s32 unk_388;
- /* 0x38C */ s32 unk_38C;
+ /* 0x38C */ s32 getItemId;
/* 0x390 */ s16 unk_390;
/* 0x394 */ Vec3f unk_394;
/* 0x3A0 */ s16 unk_3A0;
diff --git a/src/overlays/actors/ovl_En_Trt/z_en_trt.c b/src/overlays/actors/ovl_En_Trt/z_en_trt.c
index b1f2fbeafd..5d2ffec877 100644
--- a/src/overlays/actors/ovl_En_Trt/z_en_trt.c
+++ b/src/overlays/actors/ovl_En_Trt/z_en_trt.c
@@ -442,7 +442,7 @@ void EnTrt_GiveRedPotionForKoume(EnTrt* this, PlayState* play) {
} else if (gSaveContext.save.weekEventReg[12] & 0x10) {
Actor_PickUp(&this->actor, play, GI_POTION_RED, 300.0f, 300.0f);
} else {
- Actor_PickUp(&this->actor, play, GI_BOTTLE_POTION_RED, 300.0f, 300.0f);
+ Actor_PickUp(&this->actor, play, GI_POTION_RED_BOTTLE, 300.0f, 300.0f);
}
}
diff --git a/src/overlays/actors/ovl_En_Trt2/z_en_trt2.c b/src/overlays/actors/ovl_En_Trt2/z_en_trt2.c
index 02f34c1bb7..0dd9da893c 100644
--- a/src/overlays/actors/ovl_En_Trt2/z_en_trt2.c
+++ b/src/overlays/actors/ovl_En_Trt2/z_en_trt2.c
@@ -406,7 +406,7 @@ void func_80AD3FF4(EnTrt2* this, PlayState* play) {
} else if (gSaveContext.save.weekEventReg[12] & 0x10) {
Actor_PickUp(&this->actor, play, GI_POTION_RED, 300.0f, 300.0f);
} else {
- Actor_PickUp(&this->actor, play, GI_BOTTLE_POTION_RED, 300.0f, 300.0f);
+ Actor_PickUp(&this->actor, play, GI_POTION_RED_BOTTLE, 300.0f, 300.0f);
}
}
diff --git a/src/overlays/actors/ovl_En_Tsn/z_en_tsn.c b/src/overlays/actors/ovl_En_Tsn/z_en_tsn.c
index 5800f897f1..ddf924872d 100644
--- a/src/overlays/actors/ovl_En_Tsn/z_en_tsn.c
+++ b/src/overlays/actors/ovl_En_Tsn/z_en_tsn.c
@@ -299,7 +299,7 @@ void func_80AE0460(EnTsn* this, PlayState* play) {
ENTSN_SET_Z(&this->unk_1D8->actor, false);
this->actionFunc = func_80AE0418;
} else {
- Actor_PickUp(&this->actor, play, GI_SEAHORSE, 2000.0f, 1000.0f);
+ Actor_PickUp(&this->actor, play, GI_SEAHORSE_CAUGHT, 2000.0f, 1000.0f);
}
}
diff --git a/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.c b/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.c
index 8842d3e31a..ac8592615d 100644
--- a/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.c
+++ b/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.c
@@ -101,13 +101,13 @@ void ItemBHeart_Draw(Actor* thisx, PlayState* play) {
if (flag || thisx->world.rot.y != 0) {
func_8012C2DC(play->state.gfxCtx);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
- gSPDisplayList(POLY_XLU_DISP++, object_gi_hearts_DL_001290);
- gSPDisplayList(POLY_XLU_DISP++, object_gi_hearts_DL_001470);
+ gSPDisplayList(POLY_XLU_DISP++, gGiHeartBorderDL);
+ gSPDisplayList(POLY_XLU_DISP++, gGiHeartContainerDL);
} else {
func_8012C28C(play->state.gfxCtx);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
- gSPDisplayList(POLY_OPA_DISP++, object_gi_hearts_DL_001290);
- gSPDisplayList(POLY_OPA_DISP++, object_gi_hearts_DL_001470);
+ gSPDisplayList(POLY_OPA_DISP++, gGiHeartBorderDL);
+ gSPDisplayList(POLY_OPA_DISP++, gGiHeartContainerDL);
}
CLOSE_DISPS(play->state.gfxCtx);
diff --git a/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c b/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c
index 87a385dd57..d2fa8e3a0d 100644
--- a/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c
+++ b/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c
@@ -37,14 +37,14 @@ static s16 sObjectIds[] = {
OBJECT_GI_BOTTLE, OBJECT_GI_KEY, OBJECT_GI_M_ARROW, OBJECT_GI_RUPY, OBJECT_GI_RUPY,
OBJECT_GI_RUPY, OBJECT_GI_RUPY, OBJECT_GI_HEARTS, OBJECT_GI_KEY,
};
-static s16 sDrawItemIndices[] = {
- GID_BOTTLE, GID_BOTTLE, GID_BOTTLE, GID_BOTTLE, GID_BOTTLE, GID_BOTTLE, GID_01,
- GID_47, GID_4F, GID_50, GID_51, GID_53, GID_13, GID_01,
+static s16 sGetItemDrawIds[] = {
+ GID_BOTTLE, GID_BOTTLE, GID_BOTTLE, GID_BOTTLE, GID_BOTTLE, GID_BOTTLE, GID_KEY_SMALL,
+ GID_ARROW_FIRE, GID_RUPEE_GREEN, GID_RUPEE_BLUE, GID_RUPEE_RED, GID_RUPEE_PURPLE, GID_HEART_PIECE, GID_KEY_SMALL,
};
static s16 sGetItemIds[] = {
- GI_BOTTLE, GI_BOTTLE, GI_BOTTLE, GI_BOTTLE, GI_BOTTLE, GI_BOTTLE, GI_KEY_SMALL,
- GI_25, GI_NONE, GI_NONE, GI_NONE, GI_NONE, GI_NONE, GI_NONE,
+ GI_BOTTLE, GI_BOTTLE, GI_BOTTLE, GI_BOTTLE, GI_BOTTLE, GI_BOTTLE, GI_KEY_SMALL,
+ GI_ARROW_FIRE, GI_NONE, GI_NONE, GI_NONE, GI_NONE, GI_NONE, GI_NONE,
};
void ItemEtcetera_SetupAction(ItemEtcetera* this, ItemEtceteraActionFunc actionFunc) {
@@ -62,8 +62,8 @@ void ItemEtcetera_Init(Actor* thisx, PlayState* play) {
} else {
this->objIndex = objBankIndex;
}
- this->giDrawId = sDrawItemIndices[type];
- this->itemID = sGetItemIds[type];
+ this->getItemDrawId = sGetItemDrawIds[type];
+ this->getItemId = sGetItemIds[type];
this->futureActionFunc = func_8092009C;
this->drawFunc = ItemEtcetera_Draw;
Actor_SetScale(&this->actor, 0.25f);
@@ -104,7 +104,7 @@ void func_8092009C(ItemEtcetera* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play)) {
Actor_MarkForDeath(&this->actor);
} else {
- Actor_PickUp(&this->actor, play, this->itemID, 30.0f, 50.0f);
+ Actor_PickUp(&this->actor, play, this->getItemId, 30.0f, 50.0f);
}
}
@@ -126,7 +126,7 @@ void ItemEtcetera_DrawThroughLens(Actor* thisx, PlayState* play) {
if (play->actorCtx.unk4 == 100) {
func_800B8050(&this->actor, play, 0);
func_800B8118(&this->actor, play, 0);
- GetItem_Draw(play, this->giDrawId);
+ GetItem_Draw(play, this->getItemDrawId);
}
}
@@ -135,5 +135,5 @@ void ItemEtcetera_Draw(Actor* thisx, PlayState* play) {
func_800B8050(&this->actor, play, 0);
func_800B8118(&this->actor, play, 0);
- GetItem_Draw(play, this->giDrawId);
+ GetItem_Draw(play, this->getItemDrawId);
}
diff --git a/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.h b/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.h
index aac8d0834f..e33f1e1fb6 100644
--- a/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.h
+++ b/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.h
@@ -30,8 +30,8 @@ typedef enum {
typedef struct ItemEtcetera {
/* 0x000 */ Actor actor;
/* 0x144 */ ItemEtceteraActionFunc futureActionFunc;
- /* 0x148 */ s16 giDrawId;
- /* 0x14A */ s16 itemID;
+ /* 0x148 */ s16 getItemDrawId;
+ /* 0x14A */ s16 getItemId;
/* 0x14C */ u8 objIndex;
/* 0x150 */ ActorFunc drawFunc;
/* 0x154 */ ItemEtceteraActionFunc actionFunc;
diff --git a/src/overlays/actors/ovl_Obj_Moon_Stone/z_obj_moon_stone.c b/src/overlays/actors/ovl_Obj_Moon_Stone/z_obj_moon_stone.c
index 47366a8423..31ba1fa630 100644
--- a/src/overlays/actors/ovl_Obj_Moon_Stone/z_obj_moon_stone.c
+++ b/src/overlays/actors/ovl_Obj_Moon_Stone/z_obj_moon_stone.c
@@ -148,11 +148,11 @@ void ObjMoonStone_Draw(Actor* thisx, PlayState* play) {
OPEN_DISPS(play->state.gfxCtx);
func_8012C28C(play->state.gfxCtx);
func_8012C2DC(play->state.gfxCtx);
- AnimatedMat_Draw(play, Lib_SegmentedToVirtual(object_gi_reserve00_Matanimheader_001C60));
+ AnimatedMat_Draw(play, Lib_SegmentedToVirtual(gGiMoonsTearTexAnim));
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
- gSPDisplayList(POLY_OPA_DISP++, object_gi_reserve00_DL_000D78);
+ gSPDisplayList(POLY_OPA_DISP++, gGiMoonsTearItemDL);
Matrix_ReplaceRotation(&play->billboardMtxF);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
- gSPDisplayList(POLY_XLU_DISP++, object_gi_reserve00_DL_000C80);
+ gSPDisplayList(POLY_XLU_DISP++, gGiMoonsTearGlowDL);
CLOSE_DISPS(play->state.gfxCtx);
}
diff --git a/src/overlays/actors/ovl_Obj_Nozoki/z_obj_nozoki.c b/src/overlays/actors/ovl_Obj_Nozoki/z_obj_nozoki.c
index 85f1b89ceb..bc73c9c0ee 100644
--- a/src/overlays/actors/ovl_Obj_Nozoki/z_obj_nozoki.c
+++ b/src/overlays/actors/ovl_Obj_Nozoki/z_obj_nozoki.c
@@ -465,7 +465,7 @@ void ObjNozoki_Draw(Actor* thisx, PlayState* play) {
ObjNozoki* this = THIS;
if (this->unk_15C == 1) {
- GetItem_Draw(play, GID_39);
+ GetItem_Draw(play, GID_MASK_SUN);
} else {
Gfx_DrawDListOpa(play, D_80BA34FC[this->unk_15C]);
}
diff --git a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c
index 779ea2a5e8..32a0a0d540 100644
--- a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c
+++ b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c
@@ -508,7 +508,7 @@ void func_809289E4(ObjTsubo* this, PlayState* play) {
s32 absYawDiff = ABS_ALT(yawDiff);
if (absYawDiff > (0x10000 / 3)) {
- Actor_PickUp(&this->actor, play, 0, 36.0f, 30.0f);
+ Actor_PickUp(&this->actor, play, GI_NONE, 36.0f, 30.0f);
}
}
}
diff --git a/tools/disasm/files.txt b/tools/disasm/files.txt
index f3fca8ff46..22762b51a9 100644
--- a/tools/disasm/files.txt
+++ b/tools/disasm/files.txt
@@ -526,7 +526,7 @@
0x801BB090 : "z_debug_mode",
0x801BB120 : "z_demo",
0x801BB170 : "z_draw",
- 0x801BC240 : "z_eff_footmark",
+ 0x801BC210 : "z_eff_footmark",
0x801BC2A0 : "",
0x801BC420 : "z_face_reaction",
0x801BD830 : "",
diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt
index ccb8db9ade..4dba5ceaba 100644
--- a/tools/disasm/functions.txt
+++ b/tools/disasm/functions.txt
@@ -1583,29 +1583,29 @@
0x800EE29C:("Cutscene_CheckActorAction",),
0x800EE2F4:("Cutscene_IsPlaying",),
0x800EE320:("GetItem_Draw",),
- 0x800EE364:("func_800EE364",),
- 0x800EE400:("func_800EE400",),
- 0x800EE5FC:("func_800EE5FC",),
- 0x800EE7D8:("func_800EE7D8",),
- 0x800EE940:("func_800EE940",),
- 0x800EEA48:("func_800EEA48",),
- 0x800EEC18:("func_800EEC18",),
- 0x800EED20:("func_800EED20",),
- 0x800EEE34:("func_800EEE34",),
- 0x800EEF4C:("func_800EEF4C",),
- 0x800EF054:("func_800EF054",),
- 0x800EF0F0:("func_800EF0F0",),
- 0x800EF1F4:("func_800EF1F4",),
- 0x800EF2AC:("func_800EF2AC",),
- 0x800EF364:("func_800EF364",),
- 0x800EF4D4:("func_800EF4D4",),
- 0x800EF65C:("func_800EF65C",),
- 0x800EF780:("func_800EF780",),
- 0x800EF89C:("func_800EF89C",),
- 0x800EF984:("func_800EF984",),
- 0x800EFAB8:("func_800EFAB8",),
- 0x800EFBFC:("func_800EFBFC",),
- 0x800EFD44:("func_800EFD44",),
+ 0x800EE364:("GetItem_DrawBombchu",),
+ 0x800EE400:("GetItem_DrawPoes",),
+ 0x800EE5FC:("GetItem_DrawFairyBottle",),
+ 0x800EE7D8:("GetItem_DrawSkullToken",),
+ 0x800EE940:("GetItem_DrawCompass",),
+ 0x800EEA48:("GetItem_DrawPotion",),
+ 0x800EEC18:("GetItem_DrawGoronSword",),
+ 0x800EED20:("GetItem_DrawDekuNuts",),
+ 0x800EEE34:("GetItem_DrawRecoveryHeart",),
+ 0x800EEF4C:("GetItem_DrawFish",),
+ 0x800EF054:("GetItem_DrawOpa0",),
+ 0x800EF0F0:("GetItem_DrawOpa0Xlu1",),
+ 0x800EF1F4:("GetItem_DrawOpa01",),
+ 0x800EF2AC:("GetItem_DrawXlu01",),
+ 0x800EF364:("GetItem_DrawSeahorse",),
+ 0x800EF4D4:("GetItem_DrawFairyContainer",),
+ 0x800EF65C:("GetItem_DrawMoonsTear",),
+ 0x800EF780:("GetItem_DrawMagicArrow",),
+ 0x800EF89C:("GetItem_DrawUpgrades",),
+ 0x800EF984:("GetItem_DrawRupee",),
+ 0x800EFAB8:("GetItem_DrawSmallRupee",),
+ 0x800EFBFC:("GetItem_DrawWallet",),
+ 0x800EFD44:("GetItem_DrawRemains",),
0x800EFE60:("EffFootmark_Init",),
0x800EFF04:("EffFootmark_Add",),
0x800F00BC:("EffFootmark_Update",),
diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt
index eb9577f630..65a0ee1586 100644
--- a/tools/disasm/variables.txt
+++ b/tools/disasm/variables.txt
@@ -914,7 +914,7 @@
0x801BB148:("sCsStateHandlers2","cutscene_update_func","[5]",0x14),
0x801BB15C:("D_801BB15C","UNK_TYPE2","",0x2),
0x801BB160:("D_801BB160","UNK_TYPE4","",0x4),
- 0x801BB170:("D_801BB170","s801BB170","[118]",0x1098),
+ 0x801BB170:("sDrawItemTable","DrawItemTableEntry","[118]",0x1098),
0x801BC210:("D_801BC210","UNK_TYPE1","",0x1),
0x801BC240:("D_801BC240","Gfx","[9]",0x48),
0x801BC288:("D_801BC288","Gfx","[3]",0x18),
diff --git a/tools/sizes/code_functions.csv b/tools/sizes/code_functions.csv
index 2bd3163a37..9b9a7e6f25 100644
--- a/tools/sizes/code_functions.csv
+++ b/tools/sizes/code_functions.csv
@@ -1097,29 +1097,29 @@ asm/non_matchings/code/z_demo/Cutscene_GetActorActionIndex.s,Cutscene_GetActorAc
asm/non_matchings/code/z_demo/Cutscene_CheckActorAction.s,Cutscene_CheckActorAction,0x800EE29C,0x16
asm/non_matchings/code/z_demo/Cutscene_IsPlaying.s,Cutscene_IsPlaying,0x800EE2F4,0xB
asm/non_matchings/code/z_draw/GetItem_Draw.s,GetItem_Draw,0x800EE320,0x11
-asm/non_matchings/code/z_draw/func_800EE364.s,func_800EE364,0x800EE364,0x27
-asm/non_matchings/code/z_draw/func_800EE400.s,func_800EE400,0x800EE400,0x7F
-asm/non_matchings/code/z_draw/func_800EE5FC.s,func_800EE5FC,0x800EE5FC,0x77
-asm/non_matchings/code/z_draw/func_800EE7D8.s,func_800EE7D8,0x800EE7D8,0x5A
-asm/non_matchings/code/z_draw/func_800EE940.s,func_800EE940,0x800EE940,0x42
-asm/non_matchings/code/z_draw/func_800EEA48.s,func_800EEA48,0x800EEA48,0x74
-asm/non_matchings/code/z_draw/func_800EEC18.s,func_800EEC18,0x800EEC18,0x42
-asm/non_matchings/code/z_draw/func_800EED20.s,func_800EED20,0x800EED20,0x45
-asm/non_matchings/code/z_draw/func_800EEE34.s,func_800EEE34,0x800EEE34,0x46
-asm/non_matchings/code/z_draw/func_800EEF4C.s,func_800EEF4C,0x800EEF4C,0x42
-asm/non_matchings/code/z_draw/func_800EF054.s,func_800EF054,0x800EF054,0x27
-asm/non_matchings/code/z_draw/func_800EF0F0.s,func_800EF0F0,0x800EF0F0,0x41
-asm/non_matchings/code/z_draw/func_800EF1F4.s,func_800EF1F4,0x800EF1F4,0x2E
-asm/non_matchings/code/z_draw/func_800EF2AC.s,func_800EF2AC,0x800EF2AC,0x2E
-asm/non_matchings/code/z_draw/func_800EF364.s,func_800EF364,0x800EF364,0x5C
-asm/non_matchings/code/z_draw/func_800EF4D4.s,func_800EF4D4,0x800EF4D4,0x62
-asm/non_matchings/code/z_draw/func_800EF65C.s,func_800EF65C,0x800EF65C,0x49
-asm/non_matchings/code/z_draw/func_800EF780.s,func_800EF780,0x800EF780,0x47
-asm/non_matchings/code/z_draw/func_800EF89C.s,func_800EF89C,0x800EF89C,0x3A
-asm/non_matchings/code/z_draw/func_800EF984.s,func_800EF984,0x800EF984,0x4D
-asm/non_matchings/code/z_draw/func_800EFAB8.s,func_800EFAB8,0x800EFAB8,0x51
-asm/non_matchings/code/z_draw/func_800EFBFC.s,func_800EFBFC,0x800EFBFC,0x52
-asm/non_matchings/code/z_draw/func_800EFD44.s,func_800EFD44,0x800EFD44,0x47
+asm/non_matchings/code/z_draw/GetItem_DrawBombchu.s,GetItem_DrawBombchu,0x800EE364,0x27
+asm/non_matchings/code/z_draw/GetItem_DrawPoes.s,GetItem_DrawPoes,0x800EE400,0x7F
+asm/non_matchings/code/z_draw/GetItem_DrawFairyBottle.s,GetItem_DrawFairyBottle,0x800EE5FC,0x77
+asm/non_matchings/code/z_draw/GetItem_DrawSkullToken.s,GetItem_DrawSkullToken,0x800EE7D8,0x5A
+asm/non_matchings/code/z_draw/GetItem_DrawCompass.s,GetItem_DrawCompass,0x800EE940,0x42
+asm/non_matchings/code/z_draw/GetItem_DrawPotion.s,GetItem_DrawPotion,0x800EEA48,0x74
+asm/non_matchings/code/z_draw/GetItem_DrawGoronSword.s,GetItem_DrawGoronSword,0x800EEC18,0x42
+asm/non_matchings/code/z_draw/GetItem_DrawDekuNuts.s,GetItem_DrawDekuNuts,0x800EED20,0x45
+asm/non_matchings/code/z_draw/GetItem_DrawRecoveryHeart.s,GetItem_DrawRecoveryHeart,0x800EEE34,0x46
+asm/non_matchings/code/z_draw/GetItem_DrawFish.s,GetItem_DrawFish,0x800EEF4C,0x42
+asm/non_matchings/code/z_draw/GetItem_DrawOpa0.s,GetItem_DrawOpa0,0x800EF054,0x27
+asm/non_matchings/code/z_draw/GetItem_DrawOpa0Xlu1.s,GetItem_DrawOpa0Xlu1,0x800EF0F0,0x41
+asm/non_matchings/code/z_draw/GetItem_DrawOpa01.s,GetItem_DrawOpa01,0x800EF1F4,0x2E
+asm/non_matchings/code/z_draw/GetItem_DrawXlu01.s,GetItem_DrawXlu01,0x800EF2AC,0x2E
+asm/non_matchings/code/z_draw/GetItem_DrawSeahorse.s,GetItem_DrawSeahorse,0x800EF364,0x5C
+asm/non_matchings/code/z_draw/GetItem_DrawFairyContainer.s,GetItem_DrawFairyContainer,0x800EF4D4,0x62
+asm/non_matchings/code/z_draw/GetItem_DrawMoonsTear.s,GetItem_DrawMoonsTear,0x800EF65C,0x49
+asm/non_matchings/code/z_draw/GetItem_DrawMagicArrow.s,GetItem_DrawMagicArrow,0x800EF780,0x47
+asm/non_matchings/code/z_draw/GetItem_DrawUpgrades.s,GetItem_DrawUpgrades,0x800EF89C,0x3A
+asm/non_matchings/code/z_draw/GetItem_DrawRupee.s,GetItem_DrawRupee,0x800EF984,0x4D
+asm/non_matchings/code/z_draw/GetItem_DrawSmallRupee.s,GetItem_DrawSmallRupee,0x800EFAB8,0x51
+asm/non_matchings/code/z_draw/GetItem_DrawWallet.s,GetItem_DrawWallet,0x800EFBFC,0x52
+asm/non_matchings/code/z_draw/GetItem_DrawRemains.s,GetItem_DrawRemains,0x800EFD44,0x47
asm/non_matchings/code/z_eff_footmark/EffFootmark_Init.s,EffFootmark_Init,0x800EFE60,0x29
asm/non_matchings/code/z_eff_footmark/EffFootmark_Add.s,EffFootmark_Add,0x800EFF04,0x6E
asm/non_matchings/code/z_eff_footmark/EffFootmark_Update.s,EffFootmark_Update,0x800F00BC,0x43