From 7ee8c8011c96ba5ab7a124c41a315859a03d3714 Mon Sep 17 00:00:00 2001 From: Tharo <17233964+Thar0@users.noreply.github.com> Date: Fri, 12 Feb 2021 21:57:06 +0000 Subject: [PATCH] All* Get Item objects decompiled (#668) * All get item objects OK * Name z_draw functions * fix skulltula tokens draw ids * Review suggestions, merge extract_single_asset into extract_assets as an optional argument Co-authored-by: Thar0 --- assets/xml/objects/object_gi_arrow.xml | 7 + assets/xml/objects/object_gi_arrowcase.xml | 12 + assets/xml/objects/object_gi_bean.xml | 5 + assets/xml/objects/object_gi_bomb_1.xml | 5 + assets/xml/objects/object_gi_bomb_2.xml | 5 + assets/xml/objects/object_gi_bombpouch.xml | 12 + assets/xml/objects/object_gi_boomerang.xml | 5 + assets/xml/objects/object_gi_boots_2.xml | 6 + assets/xml/objects/object_gi_bosskey.xml | 6 + assets/xml/objects/object_gi_bottle.xml | 6 + .../xml/objects/object_gi_bottle_letter.xml | 6 + assets/xml/objects/object_gi_bow.xml | 5 + assets/xml/objects/object_gi_bracelet.xml | 5 + assets/xml/objects/object_gi_brokensword.xml | 5 + assets/xml/objects/object_gi_butterfly.xml | 6 + assets/xml/objects/object_gi_clothes.xml | 10 + assets/xml/objects/object_gi_coin.xml | 10 + assets/xml/objects/object_gi_compass.xml | 6 + assets/xml/objects/object_gi_dekupouch.xml | 11 + assets/xml/objects/object_gi_egg.xml | 6 + assets/xml/objects/object_gi_eye_lotion.xml | 6 + assets/xml/objects/object_gi_fire.xml | 6 + assets/xml/objects/object_gi_fish.xml | 5 + assets/xml/objects/object_gi_frog.xml | 6 + assets/xml/objects/object_gi_gerudo.xml | 5 + assets/xml/objects/object_gi_gerudomask.xml | 5 + assets/xml/objects/object_gi_ghost.xml | 9 + assets/xml/objects/object_gi_glasses.xml | 6 + assets/xml/objects/object_gi_gloves.xml | 10 + assets/xml/objects/object_gi_goddess.xml | 9 + assets/xml/objects/object_gi_golonmask.xml | 5 + assets/xml/objects/object_gi_grass.xml | 5 + assets/xml/objects/object_gi_hammer.xml | 5 + assets/xml/objects/object_gi_heart.xml | 5 + assets/xml/objects/object_gi_hearts.xml | 7 + assets/xml/objects/object_gi_hookshot.xml | 6 + assets/xml/objects/object_gi_hoverboots.xml | 5 + assets/xml/objects/object_gi_insect.xml | 6 + assets/xml/objects/object_gi_jewel.xml | 10 + assets/xml/objects/object_gi_key.xml | 5 + assets/xml/objects/object_gi_ki_tan_mask.xml | 6 + assets/xml/objects/object_gi_letter.xml | 6 + assets/xml/objects/object_gi_liquid.xml | 16 + assets/xml/objects/object_gi_longsword.xml | 5 + assets/xml/objects/object_gi_m_arrow.xml | 9 + assets/xml/objects/object_gi_magicpot.xml | 6 + assets/xml/objects/object_gi_map.xml | 6 + assets/xml/objects/object_gi_medal.xml | 11 + assets/xml/objects/object_gi_melody.xml | 11 + assets/xml/objects/object_gi_milk.xml | 6 + assets/xml/objects/object_gi_mushroom.xml | 5 + assets/xml/objects/object_gi_niwatori.xml | 8 + assets/xml/objects/object_gi_nuts.xml | 5 + assets/xml/objects/object_gi_ocarina.xml | 6 + assets/xml/objects/object_gi_ocarina_0.xml | 6 + assets/xml/objects/object_gi_pachinko.xml | 5 + assets/xml/objects/object_gi_powder.xml | 5 + assets/xml/objects/object_gi_prescription.xml | 6 + assets/xml/objects/object_gi_purse.xml | 16 + assets/xml/objects/object_gi_rabit_mask.xml | 6 + assets/xml/objects/object_gi_redead_mask.xml | 5 + assets/xml/objects/object_gi_rupy.xml | 16 + assets/xml/objects/object_gi_saw.xml | 5 + assets/xml/objects/object_gi_scale.xml | 10 + assets/xml/objects/object_gi_seed.xml | 5 + assets/xml/objects/object_gi_shield_1.xml | 5 + assets/xml/objects/object_gi_shield_2.xml | 5 + assets/xml/objects/object_gi_shield_3.xml | 6 + assets/xml/objects/object_gi_skj_mask.xml | 5 + assets/xml/objects/object_gi_soldout.xml | 5 + assets/xml/objects/object_gi_soul.xml | 7 + assets/xml/objects/object_gi_stick.xml | 5 + assets/xml/objects/object_gi_sutaru.xml | 6 + assets/xml/objects/object_gi_sword_1.xml | 5 + assets/xml/objects/object_gi_ticketstone.xml | 6 + assets/xml/objects/object_gi_truth_mask.xml | 6 + assets/xml/objects/object_gi_zoramask.xml | 5 + extract_assets.py | 38 +- include/functions.h | 2 +- include/z64item.h | 121 ++++ spec | 231 +++++--- src/code/z_draw.c | 554 ++++++++++++------ src/code/z_en_item00.c | 10 +- src/code/z_player_lib.c | 2 +- .../actors/ovl_Demo_Effect/z_demo_effect.c | 24 +- .../actors/ovl_Demo_Effect/z_demo_effect.h | 2 +- .../actors/ovl_En_Ex_Item/z_en_ex_item.c | 28 +- .../actors/ovl_En_Ex_Item/z_en_ex_item.h | 2 +- src/overlays/actors/ovl_En_GirlA/z_en_girla.c | 163 +++--- src/overlays/actors/ovl_En_GirlA/z_en_girla.h | 2 +- src/overlays/actors/ovl_En_Si/z_en_si.c | 2 +- .../ovl_Item_Etcetera/z_item_etcetera.c | 9 +- .../ovl_Item_Etcetera/z_item_etcetera.h | 2 +- .../actors/ovl_Item_Inbox/z_item_inbox.c | 2 +- .../actors/ovl_Item_Ocarina/z_item_ocarina.c | 2 +- .../actors/ovl_player_actor/z_player.c | 246 ++++---- 96 files changed, 1453 insertions(+), 511 deletions(-) create mode 100644 assets/xml/objects/object_gi_arrow.xml create mode 100644 assets/xml/objects/object_gi_arrowcase.xml create mode 100644 assets/xml/objects/object_gi_bean.xml create mode 100644 assets/xml/objects/object_gi_bomb_1.xml create mode 100644 assets/xml/objects/object_gi_bomb_2.xml create mode 100644 assets/xml/objects/object_gi_bombpouch.xml create mode 100644 assets/xml/objects/object_gi_boomerang.xml create mode 100644 assets/xml/objects/object_gi_boots_2.xml create mode 100644 assets/xml/objects/object_gi_bosskey.xml create mode 100644 assets/xml/objects/object_gi_bottle.xml create mode 100644 assets/xml/objects/object_gi_bottle_letter.xml create mode 100644 assets/xml/objects/object_gi_bow.xml create mode 100644 assets/xml/objects/object_gi_bracelet.xml create mode 100644 assets/xml/objects/object_gi_brokensword.xml create mode 100644 assets/xml/objects/object_gi_butterfly.xml create mode 100644 assets/xml/objects/object_gi_clothes.xml create mode 100644 assets/xml/objects/object_gi_coin.xml create mode 100644 assets/xml/objects/object_gi_compass.xml create mode 100644 assets/xml/objects/object_gi_dekupouch.xml create mode 100644 assets/xml/objects/object_gi_egg.xml create mode 100644 assets/xml/objects/object_gi_eye_lotion.xml create mode 100644 assets/xml/objects/object_gi_fire.xml create mode 100644 assets/xml/objects/object_gi_fish.xml create mode 100644 assets/xml/objects/object_gi_frog.xml create mode 100644 assets/xml/objects/object_gi_gerudo.xml create mode 100644 assets/xml/objects/object_gi_gerudomask.xml create mode 100644 assets/xml/objects/object_gi_ghost.xml create mode 100644 assets/xml/objects/object_gi_glasses.xml create mode 100644 assets/xml/objects/object_gi_gloves.xml create mode 100644 assets/xml/objects/object_gi_goddess.xml create mode 100644 assets/xml/objects/object_gi_golonmask.xml create mode 100644 assets/xml/objects/object_gi_grass.xml create mode 100644 assets/xml/objects/object_gi_hammer.xml create mode 100644 assets/xml/objects/object_gi_heart.xml create mode 100644 assets/xml/objects/object_gi_hearts.xml create mode 100644 assets/xml/objects/object_gi_hookshot.xml create mode 100644 assets/xml/objects/object_gi_hoverboots.xml create mode 100644 assets/xml/objects/object_gi_insect.xml create mode 100644 assets/xml/objects/object_gi_jewel.xml create mode 100644 assets/xml/objects/object_gi_key.xml create mode 100644 assets/xml/objects/object_gi_ki_tan_mask.xml create mode 100644 assets/xml/objects/object_gi_letter.xml create mode 100644 assets/xml/objects/object_gi_liquid.xml create mode 100644 assets/xml/objects/object_gi_longsword.xml create mode 100644 assets/xml/objects/object_gi_m_arrow.xml create mode 100644 assets/xml/objects/object_gi_magicpot.xml create mode 100644 assets/xml/objects/object_gi_map.xml create mode 100644 assets/xml/objects/object_gi_medal.xml create mode 100644 assets/xml/objects/object_gi_melody.xml create mode 100644 assets/xml/objects/object_gi_milk.xml create mode 100644 assets/xml/objects/object_gi_mushroom.xml create mode 100644 assets/xml/objects/object_gi_niwatori.xml create mode 100644 assets/xml/objects/object_gi_nuts.xml create mode 100644 assets/xml/objects/object_gi_ocarina.xml create mode 100644 assets/xml/objects/object_gi_ocarina_0.xml create mode 100644 assets/xml/objects/object_gi_pachinko.xml create mode 100644 assets/xml/objects/object_gi_powder.xml create mode 100644 assets/xml/objects/object_gi_prescription.xml create mode 100644 assets/xml/objects/object_gi_purse.xml create mode 100644 assets/xml/objects/object_gi_rabit_mask.xml create mode 100644 assets/xml/objects/object_gi_redead_mask.xml create mode 100644 assets/xml/objects/object_gi_rupy.xml create mode 100644 assets/xml/objects/object_gi_saw.xml create mode 100644 assets/xml/objects/object_gi_scale.xml create mode 100644 assets/xml/objects/object_gi_seed.xml create mode 100644 assets/xml/objects/object_gi_shield_1.xml create mode 100644 assets/xml/objects/object_gi_shield_2.xml create mode 100644 assets/xml/objects/object_gi_shield_3.xml create mode 100644 assets/xml/objects/object_gi_skj_mask.xml create mode 100644 assets/xml/objects/object_gi_soldout.xml create mode 100644 assets/xml/objects/object_gi_soul.xml create mode 100644 assets/xml/objects/object_gi_stick.xml create mode 100644 assets/xml/objects/object_gi_sutaru.xml create mode 100644 assets/xml/objects/object_gi_sword_1.xml create mode 100644 assets/xml/objects/object_gi_ticketstone.xml create mode 100644 assets/xml/objects/object_gi_truth_mask.xml create mode 100644 assets/xml/objects/object_gi_zoramask.xml diff --git a/assets/xml/objects/object_gi_arrow.xml b/assets/xml/objects/object_gi_arrow.xml new file mode 100644 index 0000000000..4b58787a9d --- /dev/null +++ b/assets/xml/objects/object_gi_arrow.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/xml/objects/object_gi_arrowcase.xml b/assets/xml/objects/object_gi_arrowcase.xml new file mode 100644 index 0000000000..267b0a734d --- /dev/null +++ b/assets/xml/objects/object_gi_arrowcase.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/xml/objects/object_gi_bean.xml b/assets/xml/objects/object_gi_bean.xml new file mode 100644 index 0000000000..e74247816f --- /dev/null +++ b/assets/xml/objects/object_gi_bean.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_bomb_1.xml b/assets/xml/objects/object_gi_bomb_1.xml new file mode 100644 index 0000000000..bae86c11d8 --- /dev/null +++ b/assets/xml/objects/object_gi_bomb_1.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_bomb_2.xml b/assets/xml/objects/object_gi_bomb_2.xml new file mode 100644 index 0000000000..1400c4a4d4 --- /dev/null +++ b/assets/xml/objects/object_gi_bomb_2.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_bombpouch.xml b/assets/xml/objects/object_gi_bombpouch.xml new file mode 100644 index 0000000000..07134748c3 --- /dev/null +++ b/assets/xml/objects/object_gi_bombpouch.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/xml/objects/object_gi_boomerang.xml b/assets/xml/objects/object_gi_boomerang.xml new file mode 100644 index 0000000000..3c1a0fe7fc --- /dev/null +++ b/assets/xml/objects/object_gi_boomerang.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_boots_2.xml b/assets/xml/objects/object_gi_boots_2.xml new file mode 100644 index 0000000000..8e9cd1028d --- /dev/null +++ b/assets/xml/objects/object_gi_boots_2.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_bosskey.xml b/assets/xml/objects/object_gi_bosskey.xml new file mode 100644 index 0000000000..e5e4bc86c9 --- /dev/null +++ b/assets/xml/objects/object_gi_bosskey.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_bottle.xml b/assets/xml/objects/object_gi_bottle.xml new file mode 100644 index 0000000000..3b0884a03f --- /dev/null +++ b/assets/xml/objects/object_gi_bottle.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_bottle_letter.xml b/assets/xml/objects/object_gi_bottle_letter.xml new file mode 100644 index 0000000000..443219caf5 --- /dev/null +++ b/assets/xml/objects/object_gi_bottle_letter.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_bow.xml b/assets/xml/objects/object_gi_bow.xml new file mode 100644 index 0000000000..946e9c4965 --- /dev/null +++ b/assets/xml/objects/object_gi_bow.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_bracelet.xml b/assets/xml/objects/object_gi_bracelet.xml new file mode 100644 index 0000000000..5a0b62a60a --- /dev/null +++ b/assets/xml/objects/object_gi_bracelet.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_brokensword.xml b/assets/xml/objects/object_gi_brokensword.xml new file mode 100644 index 0000000000..408741ac54 --- /dev/null +++ b/assets/xml/objects/object_gi_brokensword.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_butterfly.xml b/assets/xml/objects/object_gi_butterfly.xml new file mode 100644 index 0000000000..76ac706096 --- /dev/null +++ b/assets/xml/objects/object_gi_butterfly.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_clothes.xml b/assets/xml/objects/object_gi_clothes.xml new file mode 100644 index 0000000000..2a10dce11b --- /dev/null +++ b/assets/xml/objects/object_gi_clothes.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/xml/objects/object_gi_coin.xml b/assets/xml/objects/object_gi_coin.xml new file mode 100644 index 0000000000..22e29f255f --- /dev/null +++ b/assets/xml/objects/object_gi_coin.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/xml/objects/object_gi_compass.xml b/assets/xml/objects/object_gi_compass.xml new file mode 100644 index 0000000000..076229b11e --- /dev/null +++ b/assets/xml/objects/object_gi_compass.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_dekupouch.xml b/assets/xml/objects/object_gi_dekupouch.xml new file mode 100644 index 0000000000..3d6d95d98a --- /dev/null +++ b/assets/xml/objects/object_gi_dekupouch.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/xml/objects/object_gi_egg.xml b/assets/xml/objects/object_gi_egg.xml new file mode 100644 index 0000000000..4847309969 --- /dev/null +++ b/assets/xml/objects/object_gi_egg.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_eye_lotion.xml b/assets/xml/objects/object_gi_eye_lotion.xml new file mode 100644 index 0000000000..5128c5f6ff --- /dev/null +++ b/assets/xml/objects/object_gi_eye_lotion.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_fire.xml b/assets/xml/objects/object_gi_fire.xml new file mode 100644 index 0000000000..a57fba6e86 --- /dev/null +++ b/assets/xml/objects/object_gi_fire.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_fish.xml b/assets/xml/objects/object_gi_fish.xml new file mode 100644 index 0000000000..edb39dc297 --- /dev/null +++ b/assets/xml/objects/object_gi_fish.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_frog.xml b/assets/xml/objects/object_gi_frog.xml new file mode 100644 index 0000000000..f180fd267b --- /dev/null +++ b/assets/xml/objects/object_gi_frog.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_gerudo.xml b/assets/xml/objects/object_gi_gerudo.xml new file mode 100644 index 0000000000..3be8d34620 --- /dev/null +++ b/assets/xml/objects/object_gi_gerudo.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_gerudomask.xml b/assets/xml/objects/object_gi_gerudomask.xml new file mode 100644 index 0000000000..b53bf24af6 --- /dev/null +++ b/assets/xml/objects/object_gi_gerudomask.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_ghost.xml b/assets/xml/objects/object_gi_ghost.xml new file mode 100644 index 0000000000..186f4c74b7 --- /dev/null +++ b/assets/xml/objects/object_gi_ghost.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/xml/objects/object_gi_glasses.xml b/assets/xml/objects/object_gi_glasses.xml new file mode 100644 index 0000000000..63d32ab5ac --- /dev/null +++ b/assets/xml/objects/object_gi_glasses.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_gloves.xml b/assets/xml/objects/object_gi_gloves.xml new file mode 100644 index 0000000000..1b4282dcaa --- /dev/null +++ b/assets/xml/objects/object_gi_gloves.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/xml/objects/object_gi_goddess.xml b/assets/xml/objects/object_gi_goddess.xml new file mode 100644 index 0000000000..50cbdd8918 --- /dev/null +++ b/assets/xml/objects/object_gi_goddess.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/xml/objects/object_gi_golonmask.xml b/assets/xml/objects/object_gi_golonmask.xml new file mode 100644 index 0000000000..98f53f1c25 --- /dev/null +++ b/assets/xml/objects/object_gi_golonmask.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_grass.xml b/assets/xml/objects/object_gi_grass.xml new file mode 100644 index 0000000000..ae7834201a --- /dev/null +++ b/assets/xml/objects/object_gi_grass.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_hammer.xml b/assets/xml/objects/object_gi_hammer.xml new file mode 100644 index 0000000000..feb5c8659d --- /dev/null +++ b/assets/xml/objects/object_gi_hammer.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_heart.xml b/assets/xml/objects/object_gi_heart.xml new file mode 100644 index 0000000000..48e78b1b5c --- /dev/null +++ b/assets/xml/objects/object_gi_heart.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_hearts.xml b/assets/xml/objects/object_gi_hearts.xml new file mode 100644 index 0000000000..d2e763e631 --- /dev/null +++ b/assets/xml/objects/object_gi_hearts.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/xml/objects/object_gi_hookshot.xml b/assets/xml/objects/object_gi_hookshot.xml new file mode 100644 index 0000000000..a6b3b0fdac --- /dev/null +++ b/assets/xml/objects/object_gi_hookshot.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_hoverboots.xml b/assets/xml/objects/object_gi_hoverboots.xml new file mode 100644 index 0000000000..c4a67877b2 --- /dev/null +++ b/assets/xml/objects/object_gi_hoverboots.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_insect.xml b/assets/xml/objects/object_gi_insect.xml new file mode 100644 index 0000000000..7af5b5b3b2 --- /dev/null +++ b/assets/xml/objects/object_gi_insect.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_jewel.xml b/assets/xml/objects/object_gi_jewel.xml new file mode 100644 index 0000000000..cd9ddf1466 --- /dev/null +++ b/assets/xml/objects/object_gi_jewel.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/xml/objects/object_gi_key.xml b/assets/xml/objects/object_gi_key.xml new file mode 100644 index 0000000000..a37d45a71c --- /dev/null +++ b/assets/xml/objects/object_gi_key.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_ki_tan_mask.xml b/assets/xml/objects/object_gi_ki_tan_mask.xml new file mode 100644 index 0000000000..f66535af37 --- /dev/null +++ b/assets/xml/objects/object_gi_ki_tan_mask.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_letter.xml b/assets/xml/objects/object_gi_letter.xml new file mode 100644 index 0000000000..167a7ff5d8 --- /dev/null +++ b/assets/xml/objects/object_gi_letter.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_liquid.xml b/assets/xml/objects/object_gi_liquid.xml new file mode 100644 index 0000000000..5eeeca0fd2 --- /dev/null +++ b/assets/xml/objects/object_gi_liquid.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_gi_longsword.xml b/assets/xml/objects/object_gi_longsword.xml new file mode 100644 index 0000000000..7161e42e38 --- /dev/null +++ b/assets/xml/objects/object_gi_longsword.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_m_arrow.xml b/assets/xml/objects/object_gi_m_arrow.xml new file mode 100644 index 0000000000..0fd659ae95 --- /dev/null +++ b/assets/xml/objects/object_gi_m_arrow.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/xml/objects/object_gi_magicpot.xml b/assets/xml/objects/object_gi_magicpot.xml new file mode 100644 index 0000000000..7623e6353e --- /dev/null +++ b/assets/xml/objects/object_gi_magicpot.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_map.xml b/assets/xml/objects/object_gi_map.xml new file mode 100644 index 0000000000..8887dd22c9 --- /dev/null +++ b/assets/xml/objects/object_gi_map.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_medal.xml b/assets/xml/objects/object_gi_medal.xml new file mode 100644 index 0000000000..28e5b1e683 --- /dev/null +++ b/assets/xml/objects/object_gi_medal.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/xml/objects/object_gi_melody.xml b/assets/xml/objects/object_gi_melody.xml new file mode 100644 index 0000000000..b01fca9538 --- /dev/null +++ b/assets/xml/objects/object_gi_melody.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/xml/objects/object_gi_milk.xml b/assets/xml/objects/object_gi_milk.xml new file mode 100644 index 0000000000..00b9530d95 --- /dev/null +++ b/assets/xml/objects/object_gi_milk.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_mushroom.xml b/assets/xml/objects/object_gi_mushroom.xml new file mode 100644 index 0000000000..5b19bca743 --- /dev/null +++ b/assets/xml/objects/object_gi_mushroom.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_niwatori.xml b/assets/xml/objects/object_gi_niwatori.xml new file mode 100644 index 0000000000..713cc1ce5a --- /dev/null +++ b/assets/xml/objects/object_gi_niwatori.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/xml/objects/object_gi_nuts.xml b/assets/xml/objects/object_gi_nuts.xml new file mode 100644 index 0000000000..5508fe8569 --- /dev/null +++ b/assets/xml/objects/object_gi_nuts.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_ocarina.xml b/assets/xml/objects/object_gi_ocarina.xml new file mode 100644 index 0000000000..7693cc122f --- /dev/null +++ b/assets/xml/objects/object_gi_ocarina.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_ocarina_0.xml b/assets/xml/objects/object_gi_ocarina_0.xml new file mode 100644 index 0000000000..336d338946 --- /dev/null +++ b/assets/xml/objects/object_gi_ocarina_0.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_pachinko.xml b/assets/xml/objects/object_gi_pachinko.xml new file mode 100644 index 0000000000..5f808baf92 --- /dev/null +++ b/assets/xml/objects/object_gi_pachinko.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_powder.xml b/assets/xml/objects/object_gi_powder.xml new file mode 100644 index 0000000000..fb7dc0155d --- /dev/null +++ b/assets/xml/objects/object_gi_powder.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_prescription.xml b/assets/xml/objects/object_gi_prescription.xml new file mode 100644 index 0000000000..081de301c4 --- /dev/null +++ b/assets/xml/objects/object_gi_prescription.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_purse.xml b/assets/xml/objects/object_gi_purse.xml new file mode 100644 index 0000000000..3034942ff4 --- /dev/null +++ b/assets/xml/objects/object_gi_purse.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_gi_rabit_mask.xml b/assets/xml/objects/object_gi_rabit_mask.xml new file mode 100644 index 0000000000..75f855550d --- /dev/null +++ b/assets/xml/objects/object_gi_rabit_mask.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_redead_mask.xml b/assets/xml/objects/object_gi_redead_mask.xml new file mode 100644 index 0000000000..7de08487f8 --- /dev/null +++ b/assets/xml/objects/object_gi_redead_mask.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_rupy.xml b/assets/xml/objects/object_gi_rupy.xml new file mode 100644 index 0000000000..0a1af96d0f --- /dev/null +++ b/assets/xml/objects/object_gi_rupy.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_gi_saw.xml b/assets/xml/objects/object_gi_saw.xml new file mode 100644 index 0000000000..dcc038b7c1 --- /dev/null +++ b/assets/xml/objects/object_gi_saw.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_scale.xml b/assets/xml/objects/object_gi_scale.xml new file mode 100644 index 0000000000..1cf5de5b99 --- /dev/null +++ b/assets/xml/objects/object_gi_scale.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/xml/objects/object_gi_seed.xml b/assets/xml/objects/object_gi_seed.xml new file mode 100644 index 0000000000..82c15c82d2 --- /dev/null +++ b/assets/xml/objects/object_gi_seed.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_shield_1.xml b/assets/xml/objects/object_gi_shield_1.xml new file mode 100644 index 0000000000..2e93695699 --- /dev/null +++ b/assets/xml/objects/object_gi_shield_1.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_shield_2.xml b/assets/xml/objects/object_gi_shield_2.xml new file mode 100644 index 0000000000..176ae025fe --- /dev/null +++ b/assets/xml/objects/object_gi_shield_2.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_shield_3.xml b/assets/xml/objects/object_gi_shield_3.xml new file mode 100644 index 0000000000..250bf7fea3 --- /dev/null +++ b/assets/xml/objects/object_gi_shield_3.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_skj_mask.xml b/assets/xml/objects/object_gi_skj_mask.xml new file mode 100644 index 0000000000..e6c90f76f1 --- /dev/null +++ b/assets/xml/objects/object_gi_skj_mask.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_soldout.xml b/assets/xml/objects/object_gi_soldout.xml new file mode 100644 index 0000000000..ae3f4685f9 --- /dev/null +++ b/assets/xml/objects/object_gi_soldout.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_soul.xml b/assets/xml/objects/object_gi_soul.xml new file mode 100644 index 0000000000..76ffc56852 --- /dev/null +++ b/assets/xml/objects/object_gi_soul.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/xml/objects/object_gi_stick.xml b/assets/xml/objects/object_gi_stick.xml new file mode 100644 index 0000000000..fed89f4659 --- /dev/null +++ b/assets/xml/objects/object_gi_stick.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_sutaru.xml b/assets/xml/objects/object_gi_sutaru.xml new file mode 100644 index 0000000000..a2606afbe3 --- /dev/null +++ b/assets/xml/objects/object_gi_sutaru.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_sword_1.xml b/assets/xml/objects/object_gi_sword_1.xml new file mode 100644 index 0000000000..e1119abca0 --- /dev/null +++ b/assets/xml/objects/object_gi_sword_1.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/xml/objects/object_gi_ticketstone.xml b/assets/xml/objects/object_gi_ticketstone.xml new file mode 100644 index 0000000000..0fa37fe11e --- /dev/null +++ b/assets/xml/objects/object_gi_ticketstone.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_truth_mask.xml b/assets/xml/objects/object_gi_truth_mask.xml new file mode 100644 index 0000000000..f28c7cbcad --- /dev/null +++ b/assets/xml/objects/object_gi_truth_mask.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/xml/objects/object_gi_zoramask.xml b/assets/xml/objects/object_gi_zoramask.xml new file mode 100644 index 0000000000..096fdeedfc --- /dev/null +++ b/assets/xml/objects/object_gi_zoramask.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/extract_assets.py b/extract_assets.py index fa378eb347..820a3c3ce0 100755 --- a/extract_assets.py +++ b/extract_assets.py @@ -1,4 +1,6 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 + +import argparse import os from shutil import copyfile from multiprocessing import Pool @@ -25,22 +27,28 @@ def ExtractFunc(fullPath): Extract(fullPath, outPath) def main(): - xmlFiles = [] + parser = argparse.ArgumentParser(description="baserom asset extractor") + parser.add_argument("-s", "--single", help="asset path relative to assets/, e.g. objects/gameplay_keep") + args = parser.parse_args() - for currentPath, folders, files in os.walk("assets"): - for file in files: - fullPath = os.path.join(currentPath, file) - if file.endswith(".xml") and currentPath.startswith("assets/xml/"): - outPath = ("assets/" + fullPath.split("assets/xml/")[1]).split(".xml")[0] - xmlFiles.append(fullPath) + asset_path = args.single + if asset_path is not None: + if asset_path.endswith("/"): + asset_path = asset_path[0:-1] + Extract(f"assets/xml/{asset_path}.xml", f"assets/{asset_path}/") + else: + xmlFiles = [] + for currentPath, folders, files in os.walk("assets"): + for file in files: + fullPath = os.path.join(currentPath, file) + if file.endswith(".xml") and currentPath.startswith("assets/xml/"): + outPath = ("assets/" + fullPath.split("assets/xml/")[1]).split(".xml")[0] + xmlFiles.append(fullPath) - numCores = cpu_count() - print("Extracting assets with " + str(numCores) + " CPU cores.") - p = Pool(numCores) - p.map(ExtractFunc, xmlFiles) - - - #os.system("make resources") + numCores = cpu_count() + print("Extracting assets with " + str(numCores) + " CPU cores.") + p = Pool(numCores) + p.map(ExtractFunc, xmlFiles) if __name__ == "__main__": main() diff --git a/include/functions.h b/include/functions.h index 8d3184ce7c..72c2159997 100644 --- a/include/functions.h +++ b/include/functions.h @@ -893,7 +893,7 @@ void Cutscene_HandleEntranceTriggers(GlobalContext* globalCtx); void Cutscene_HandleConditionalTriggers(GlobalContext* globalCtx); void Cutscene_SetSegment(GlobalContext* globalCtx, u32 segment); void* MemCopy(void* dest, void* src, s32 size); -void func_800694A0(GlobalContext* globalCtx, s16 drawId); +void GetItem_Draw(GlobalContext* globalCtx, s16 drawId); void func_8006BA00(GlobalContext* globalCtx); void func_8006BA30(GlobalContext* globalCtx); void Audio_PlaySoundAtPosition(GlobalContext* globalCtx, Vec3f* pos, s32 duration, u16 sfxId); diff --git a/include/z64item.h b/include/z64item.h index 167d09ea70..869fb1b557 100644 --- a/include/z64item.h +++ b/include/z64item.h @@ -377,6 +377,127 @@ typedef enum { /* 0x7E */ GI_MAX } GetItemID; +typedef enum { + /* 0x00 */ GID_BOTTLE, + /* 0x01 */ GID_KEY_SMALL, + /* 0x02 */ GID_SONG_MINUET, + /* 0x03 */ GID_SONG_BOLERO, + /* 0x04 */ GID_SONG_SERENADE, + /* 0x05 */ GID_SONG_REQUIEM, + /* 0x06 */ GID_SONG_NOCTURNE, + /* 0x07 */ GID_SONG_PRELUDE, + /* 0x08 */ GID_HEART, + /* 0x09 */ GID_KEY_BOSS, + /* 0x0A */ GID_COMPASS, + /* 0x0B */ GID_MEDALLION_FOREST, + /* 0x0C */ GID_MEDALLION_FIRE, + /* 0x0D */ GID_MEDALLION_WATER, + /* 0x0E */ GID_MEDALLION_SPIRIT, + /* 0x0F */ GID_MEDALLION_SHADOW, + /* 0x10 */ GID_MEDALLION_LIGHT, + /* 0x11 */ GID_NUTS, + /* 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, + /* 0x1B */ GID_DUNGEON_MAP, + /* 0x1C */ GID_SHIELD_DEKU, + /* 0x1D */ GID_MAGIC_SMALL, + /* 0x1E */ GID_MAGIC_LARGE, + /* 0x1F */ GID_BOMB, + /* 0x20 */ GID_STONE_OF_AGONY, + /* 0x21 */ GID_WALLET_ADULT, + /* 0x22 */ GID_WALLET_GIANT, + /* 0x23 */ GID_GERUDO_CARD, + /* 0x24 */ GID_ARROWS_SMALL, + /* 0x25 */ GID_ARROWS_MEDIUM, + /* 0x26 */ GID_ARROWS_LARGE, + /* 0x27 */ GID_BOMBCHU, + /* 0x28 */ GID_EGG, + /* 0x29 */ GID_SCALE_SILVER, + /* 0x2A */ GID_SCALE_GOLDEN, + /* 0x2B */ GID_SHIELD_HYLIAN, + /* 0x2C */ GID_HOOKSHOT, + /* 0x2D */ GID_LONGSHOT, + /* 0x2E */ GID_OCARINA_TIME, + /* 0x2F */ GID_MILK, + /* 0x30 */ GID_MASK_KEATON, + /* 0x31 */ GID_MASK_SPOOKY, + /* 0x32 */ GID_SLINGSHOT, + /* 0x33 */ GID_BOOMERANG, + /* 0x34 */ GID_BOW, + /* 0x35 */ GID_LENS, + /* 0x36 */ GID_POTION_GREEN, + /* 0x37 */ GID_POTION_RED, + /* 0x38 */ GID_POTION_BLUE, + /* 0x39 */ GID_SHIELD_MIRROR, + /* 0x3A */ GID_LETTER_ZELDA, + /* 0x3B */ GID_TUNIC_GORON, + /* 0x3C */ GID_TUNIC_ZORA, + /* 0x3D */ GID_BEAN, + /* 0x3E */ GID_FISH, + /* 0x3F */ GID_SAW, + /* 0x40 */ GID_HAMMER, + /* 0x41 */ GID_GRASS, + /* 0x42 */ GID_SWORD_BGS, + /* 0x43 */ GID_CHICKEN, + /* 0x44 */ GID_LETTER_RUTO, + /* 0x45 */ GID_OCARINA_FAIRY, + /* 0x46 */ GID_BOOTS_IRON, + /* 0x47 */ GID_SEEDS, + /* 0x48 */ GID_GAUNTLETS_SILVER, + /* 0x49 */ GID_GAUNTLETS_GOLD, + /* 0x4A */ GID_NCOIN_YELLOW, + /* 0x4B */ GID_NCOIN_RED, + /* 0x4C */ GID_NCOIN_GREEN, + /* 0x4D */ GID_NCOIN_BLUE, + /* 0x4E */ GID_MASK_SKULL, + /* 0x4F */ GID_MASK_BUNNY, + /* 0x50 */ GID_MASK_TRUTH, + /* 0x51 */ GID_EYEDROPS, + /* 0x52 */ GID_ODD_POTION, + /* 0x53 */ GID_ODD_MUSHROOM, + /* 0x54 */ GID_CLAIM_CHECK, + /* 0x55 */ GID_SWORD_BROKEN, + /* 0x56 */ GID_PRESCRIPTION, + /* 0x57 */ GID_BRACELET, + /* 0x58 */ GID_SOLDOUT, + /* 0x59 */ GID_FROG, + /* 0x5A */ GID_MASK_GORON, + /* 0x5B */ GID_MASK_ZORA, + /* 0x5C */ GID_MASK_GERUDO, + /* 0x5D */ GID_COJIRO, + /* 0x5E */ GID_BOOTS_HOVER, + /* 0x5F */ GID_ARROW_FIRE, + /* 0x60 */ GID_ARROW_ICE, + /* 0x61 */ GID_ARROW_LIGHT, + /* 0x62 */ GID_SKULL_TOKEN, + /* 0x63 */ GID_DINS_FIRE, + /* 0x64 */ GID_FARORES_WIND, + /* 0x65 */ GID_NAYRUS_LOVE, + /* 0x66 */ GID_BLUE_FIRE, + /* 0x67 */ GID_BUG, + /* 0x68 */ GID_BUTTERFLY, + /* 0x69 */ GID_POE, + /* 0x6A */ GID_FAIRY, + /* 0x6B */ GID_BULLET_BAG, + /* 0x6C */ GID_RUPEE_GREEN, + /* 0x6D */ GID_RUPEE_BLUE, + /* 0x6E */ GID_RUPEE_RED, + /* 0x6F */ GID_BIG_POE, + /* 0x70 */ GID_RUPEE_PURPLE, + /* 0x71 */ GID_RUPEE_GOLD, + /* 0x72 */ GID_BULLET_BAG_50, + /* 0x73 */ GID_SWORD_KOKIRI, + /* 0x74 */ GID_SKULL_TOKEN_2, + /* 0x75 */ GID_MAX +} GetItemDrawID; + typedef enum { /* 0x00 */ EXCH_ITEM_NONE, /* 0x01 */ EXCH_ITEM_LETTER_ZELDA, diff --git a/spec b/spec index ae9f5a810a..14a7933c5f 100644 --- a/spec +++ b/spec @@ -4425,7 +4425,8 @@ endseg beginseg name "object_gi_key" romalign 0x1000 - include "build/baserom/object_gi_key.o" + include "build/assets/objects/object_gi_key/object_gi_key.o" + number 6 endseg beginseg @@ -4443,7 +4444,8 @@ endseg beginseg name "object_gi_jewel" romalign 0x1000 - include "build/baserom/object_gi_jewel.o" + include "build/assets/objects/object_gi_jewel/object_gi_jewel.o" + number 6 endseg beginseg @@ -4499,37 +4501,43 @@ endseg beginseg name "object_gi_melody" romalign 0x1000 - include "build/baserom/object_gi_melody.o" + include "build/assets/objects/object_gi_melody/object_gi_melody.o" + number 6 endseg beginseg name "object_gi_heart" romalign 0x1000 - include "build/baserom/object_gi_heart.o" + include "build/assets/objects/object_gi_heart/object_gi_heart.o" + number 6 endseg beginseg name "object_gi_compass" romalign 0x1000 - include "build/baserom/object_gi_compass.o" + include "build/assets/objects/object_gi_compass/object_gi_compass.o" + number 6 endseg beginseg name "object_gi_bosskey" romalign 0x1000 - include "build/baserom/object_gi_bosskey.o" + include "build/assets/objects/object_gi_bosskey/object_gi_bosskey.o" + number 6 endseg beginseg name "object_gi_medal" romalign 0x1000 - include "build/baserom/object_gi_medal.o" + include "build/assets/objects/object_gi_medal/object_gi_medal.o" + number 6 endseg beginseg name "object_gi_nuts" romalign 0x1000 - include "build/baserom/object_gi_nuts.o" + include "build/assets/objects/object_gi_nuts/object_gi_nuts.o" + number 6 endseg beginseg @@ -4541,19 +4549,22 @@ endseg beginseg name "object_gi_hearts" romalign 0x1000 - include "build/baserom/object_gi_hearts.o" + include "build/assets/objects/object_gi_hearts/object_gi_hearts.o" + number 6 endseg beginseg name "object_gi_arrowcase" romalign 0x1000 - include "build/baserom/object_gi_arrowcase.o" + include "build/assets/objects/object_gi_arrowcase/object_gi_arrowcase.o" + number 6 endseg beginseg name "object_gi_bombpouch" romalign 0x1000 - include "build/baserom/object_gi_bombpouch.o" + include "build/assets/objects/object_gi_bombpouch/object_gi_bombpouch.o" + number 6 endseg beginseg @@ -4595,19 +4606,22 @@ endseg beginseg name "object_gi_bottle" romalign 0x1000 - include "build/baserom/object_gi_bottle.o" + include "build/assets/objects/object_gi_bottle/object_gi_bottle.o" + number 6 endseg beginseg name "object_gi_stick" romalign 0x1000 - include "build/baserom/object_gi_stick.o" + include "build/assets/objects/object_gi_stick/object_gi_stick.o" + number 6 endseg beginseg name "object_gi_map" romalign 0x1000 - include "build/baserom/object_gi_map.o" + include "build/assets/objects/object_gi_map/object_gi_map.o" + number 6 endseg beginseg @@ -4625,7 +4639,8 @@ endseg beginseg name "object_gi_shield_1" romalign 0x1000 - include "build/baserom/object_gi_shield_1.o" + include "build/assets/objects/object_gi_shield_1/object_gi_shield_1.o" + number 6 endseg beginseg @@ -4637,13 +4652,15 @@ endseg beginseg name "object_gi_magicpot" romalign 0x1000 - include "build/baserom/object_gi_magicpot.o" + include "build/assets/objects/object_gi_magicpot/object_gi_magicpot.o" + number 6 endseg beginseg name "object_gi_bomb_1" romalign 0x1000 - include "build/baserom/object_gi_bomb_1.o" + include "build/assets/objects/object_gi_bomb_1/object_gi_bomb_1.o" + number 6 endseg beginseg @@ -4661,7 +4678,8 @@ endseg beginseg name "object_gi_purse" romalign 0x1000 - include "build/baserom/object_gi_purse.o" + include "build/assets/objects/object_gi_purse/object_gi_purse.o" + number 6 endseg beginseg @@ -4697,55 +4715,64 @@ endseg beginseg name "object_gi_gerudo" romalign 0x1000 - include "build/baserom/object_gi_gerudo.o" + include "build/assets/objects/object_gi_gerudo/object_gi_gerudo.o" + number 6 endseg beginseg name "object_gi_arrow" romalign 0x1000 - include "build/baserom/object_gi_arrow.o" + include "build/assets/objects/object_gi_arrow/object_gi_arrow.o" + number 6 endseg beginseg name "object_gi_bomb_2" romalign 0x1000 - include "build/baserom/object_gi_bomb_2.o" + include "build/assets/objects/object_gi_bomb_2/object_gi_bomb_2.o" + number 6 endseg beginseg name "object_gi_egg" romalign 0x1000 - include "build/baserom/object_gi_egg.o" + include "build/assets/objects/object_gi_egg/object_gi_egg.o" + number 6 endseg beginseg name "object_gi_scale" romalign 0x1000 - include "build/baserom/object_gi_scale.o" + include "build/assets/objects/object_gi_scale/object_gi_scale.o" + number 6 endseg beginseg name "object_gi_shield_2" romalign 0x1000 - include "build/baserom/object_gi_shield_2.o" + include "build/assets/objects/object_gi_shield_2/object_gi_shield_2.o" + number 6 endseg beginseg name "object_gi_hookshot" romalign 0x1000 - include "build/baserom/object_gi_hookshot.o" + include "build/assets/objects/object_gi_hookshot/object_gi_hookshot.o" + number 6 endseg beginseg name "object_gi_ocarina" romalign 0x1000 - include "build/baserom/object_gi_ocarina.o" + include "build/assets/objects/object_gi_ocarina/object_gi_ocarina.o" + number 6 endseg beginseg name "object_gi_milk" romalign 0x1000 - include "build/baserom/object_gi_milk.o" + include "build/assets/objects/object_gi_milk/object_gi_milk.o" + number 6 endseg beginseg @@ -4782,31 +4809,36 @@ endseg beginseg name "object_gi_pachinko" romalign 0x1000 - include "build/baserom/object_gi_pachinko.o" + include "build/assets/objects/object_gi_pachinko/object_gi_pachinko.o" + number 6 endseg beginseg name "object_gi_boomerang" romalign 0x1000 - include "build/baserom/object_gi_boomerang.o" + include "build/assets/objects/object_gi_boomerang/object_gi_boomerang.o" + number 6 endseg beginseg name "object_gi_bow" romalign 0x1000 - include "build/baserom/object_gi_bow.o" + include "build/assets/objects/object_gi_bow/object_gi_bow.o" + number 6 endseg beginseg name "object_gi_glasses" romalign 0x1000 - include "build/baserom/object_gi_glasses.o" + include "build/assets/objects/object_gi_glasses/object_gi_glasses.o" + number 6 endseg beginseg name "object_gi_liquid" romalign 0x1000 - include "build/baserom/object_gi_liquid.o" + include "build/assets/objects/object_gi_liquid/object_gi_liquid.o" + number 6 endseg beginseg @@ -4824,13 +4856,15 @@ endseg beginseg name "object_gi_shield_3" romalign 0x1000 - include "build/baserom/object_gi_shield_3.o" + include "build/assets/objects/object_gi_shield_3/object_gi_shield_3.o" + number 6 endseg beginseg name "object_gi_letter" romalign 0x1000 - include "build/baserom/object_gi_letter.o" + include "build/assets/objects/object_gi_letter/object_gi_letter.o" + number 6 endseg beginseg @@ -4848,43 +4882,50 @@ endseg beginseg name "object_gi_clothes" romalign 0x1000 - include "build/baserom/object_gi_clothes.o" + include "build/assets/objects/object_gi_clothes/object_gi_clothes.o" + number 6 endseg beginseg name "object_gi_bean" romalign 0x1000 - include "build/baserom/object_gi_bean.o" + include "build/assets/objects/object_gi_bean/object_gi_bean.o" + number 6 endseg beginseg name "object_gi_fish" romalign 0x1000 - include "build/baserom/object_gi_fish.o" + include "build/assets/objects/object_gi_fish/object_gi_fish.o" + number 6 endseg beginseg name "object_gi_saw" romalign 0x1000 - include "build/baserom/object_gi_saw.o" + include "build/assets/objects/object_gi_saw/object_gi_saw.o" + number 6 endseg beginseg name "object_gi_hammer" romalign 0x1000 - include "build/baserom/object_gi_hammer.o" + include "build/assets/objects/object_gi_hammer/object_gi_hammer.o" + number 6 endseg beginseg name "object_gi_grass" romalign 0x1000 - include "build/baserom/object_gi_grass.o" + include "build/assets/objects/object_gi_grass/object_gi_grass.o" + number 6 endseg beginseg name "object_gi_longsword" romalign 0x1000 - include "build/baserom/object_gi_longsword.o" + include "build/assets/objects/object_gi_longsword/object_gi_longsword.o" + number 6 endseg beginseg @@ -4980,7 +5021,8 @@ endseg beginseg name "object_gi_niwatori" romalign 0x1000 - include "build/baserom/object_gi_niwatori.o" + include "build/assets/objects/object_gi_niwatori/object_gi_niwatori.o" + number 6 endseg beginseg @@ -4992,7 +5034,8 @@ endseg beginseg name "object_gi_bottle_letter" romalign 0x1000 - include "build/baserom/object_gi_bottle_letter.o" + include "build/assets/objects/object_gi_bottle_letter/object_gi_bottle_letter.o" + number 6 endseg beginseg @@ -5010,7 +5053,8 @@ endseg beginseg name "object_gi_ocarina_0" romalign 0x1000 - include "build/baserom/object_gi_ocarina_0.o" + include "build/assets/objects/object_gi_ocarina_0/object_gi_ocarina_0.o" + number 6 endseg beginseg @@ -5070,13 +5114,15 @@ endseg beginseg name "object_gi_boots_2" romalign 0x1000 - include "build/baserom/object_gi_boots_2.o" + include "build/assets/objects/object_gi_boots_2/object_gi_boots_2.o" + number 6 endseg beginseg name "object_gi_seed" romalign 0x1000 - include "build/baserom/object_gi_seed.o" + include "build/assets/objects/object_gi_seed/object_gi_seed.o" + number 6 endseg beginseg @@ -5185,13 +5231,15 @@ endseg beginseg name "object_gi_gloves" romalign 0x1000 - include "build/baserom/object_gi_gloves.o" + include "build/assets/objects/object_gi_gloves/object_gi_gloves.o" + number 6 endseg beginseg name "object_gi_coin" romalign 0x1000 - include "build/baserom/object_gi_coin.o" + include "build/assets/objects/object_gi_coin/object_gi_coin.o" + number 6 endseg beginseg @@ -5227,31 +5275,36 @@ endseg beginseg name "object_gi_ki_tan_mask" romalign 0x1000 - include "build/baserom/object_gi_ki_tan_mask.o" + include "build/assets/objects/object_gi_ki_tan_mask/object_gi_ki_tan_mask.o" + number 6 endseg beginseg name "object_gi_redead_mask" romalign 0x1000 - include "build/baserom/object_gi_redead_mask.o" + include "build/assets/objects/object_gi_redead_mask/object_gi_redead_mask.o" + number 6 endseg beginseg name "object_gi_skj_mask" romalign 0x1000 - include "build/baserom/object_gi_skj_mask.o" + include "build/assets/objects/object_gi_skj_mask/object_gi_skj_mask.o" + number 6 endseg beginseg name "object_gi_rabit_mask" romalign 0x1000 - include "build/baserom/object_gi_rabit_mask.o" + include "build/assets/objects/object_gi_rabit_mask/object_gi_rabit_mask.o" + number 6 endseg beginseg name "object_gi_truth_mask" romalign 0x1000 - include "build/baserom/object_gi_truth_mask.o" + include "build/assets/objects/object_gi_truth_mask/object_gi_truth_mask.o" + number 6 endseg beginseg @@ -5293,31 +5346,36 @@ endseg beginseg name "object_gi_eye_lotion" romalign 0x1000 - include "build/baserom/object_gi_eye_lotion.o" + include "build/assets/objects/object_gi_eye_lotion/object_gi_eye_lotion.o" + number 6 endseg beginseg name "object_gi_powder" romalign 0x1000 - include "build/baserom/object_gi_powder.o" + include "build/assets/objects/object_gi_powder/object_gi_powder.o" + number 6 endseg beginseg name "object_gi_mushroom" romalign 0x1000 - include "build/baserom/object_gi_mushroom.o" + include "build/assets/objects/object_gi_mushroom/object_gi_mushroom.o" + number 6 endseg beginseg name "object_gi_ticketstone" romalign 0x1000 - include "build/baserom/object_gi_ticketstone.o" + include "build/assets/objects/object_gi_ticketstone/object_gi_ticketstone.o" + number 6 endseg beginseg name "object_gi_brokensword" romalign 0x1000 - include "build/baserom/object_gi_brokensword.o" + include "build/assets/objects/object_gi_brokensword/object_gi_brokensword.o" + number 6 endseg beginseg @@ -5335,25 +5393,29 @@ endseg beginseg name "object_gi_prescription" romalign 0x1000 - include "build/baserom/object_gi_prescription.o" + include "build/assets/objects/object_gi_prescription/object_gi_prescription.o" + number 6 endseg beginseg name "object_gi_bracelet" romalign 0x1000 - include "build/baserom/object_gi_bracelet.o" + include "build/assets/objects/object_gi_bracelet/object_gi_bracelet.o" + number 6 endseg beginseg name "object_gi_soldout" romalign 0x1000 - include "build/baserom/object_gi_soldout.o" + include "build/assets/objects/object_gi_soldout/object_gi_soldout.o" + number 6 endseg beginseg name "object_gi_frog" romalign 0x1000 - include "build/baserom/object_gi_frog.o" + include "build/assets/objects/object_gi_frog/object_gi_frog.o" + number 6 endseg beginseg @@ -5395,19 +5457,22 @@ endseg beginseg name "object_gi_golonmask" romalign 0x1000 - include "build/baserom/object_gi_golonmask.o" + include "build/assets/objects/object_gi_golonmask/object_gi_golonmask.o" + number 6 endseg beginseg name "object_gi_zoramask" romalign 0x1000 - include "build/baserom/object_gi_zoramask.o" + include "build/assets/objects/object_gi_zoramask/object_gi_zoramask.o" + number 6 endseg beginseg name "object_gi_gerudomask" romalign 0x1000 - include "build/baserom/object_gi_gerudomask.o" + include "build/assets/objects/object_gi_gerudomask/object_gi_gerudomask.o" + number 6 endseg beginseg @@ -5437,13 +5502,15 @@ endseg beginseg name "object_gi_hoverboots" romalign 0x1000 - include "build/baserom/object_gi_hoverboots.o" + include "build/assets/objects/object_gi_hoverboots/object_gi_hoverboots.o" + number 6 endseg beginseg name "object_gi_m_arrow" romalign 0x1000 - include "build/baserom/object_gi_m_arrow.o" + include "build/assets/objects/object_gi_m_arrow/object_gi_m_arrow.o" + number 6 endseg beginseg @@ -5467,13 +5534,15 @@ endseg beginseg name "object_gi_sutaru" romalign 0x1000 - include "build/baserom/object_gi_sutaru.o" + include "build/assets/objects/object_gi_sutaru/object_gi_sutaru.o" + number 6 endseg beginseg name "object_gi_goddess" romalign 0x1000 - include "build/baserom/object_gi_goddess.o" + include "build/assets/objects/object_gi_goddess/object_gi_goddess.o" + number 6 endseg beginseg @@ -5607,31 +5676,36 @@ endseg beginseg name "object_gi_fire" romalign 0x1000 - include "build/baserom/object_gi_fire.o" + include "build/assets/objects/object_gi_fire/object_gi_fire.o" + number 6 endseg beginseg name "object_gi_insect" romalign 0x1000 - include "build/baserom/object_gi_insect.o" + include "build/assets/objects/object_gi_insect/object_gi_insect.o" + number 6 endseg beginseg name "object_gi_butterfly" romalign 0x1000 - include "build/baserom/object_gi_butterfly.o" + include "build/assets/objects/object_gi_butterfly/object_gi_butterfly.o" + number 6 endseg beginseg name "object_gi_ghost" romalign 0x1000 - include "build/baserom/object_gi_ghost.o" + include "build/assets/objects/object_gi_ghost/object_gi_ghost.o" + number 6 endseg beginseg name "object_gi_soul" romalign 0x1000 - include "build/baserom/object_gi_soul.o" + include "build/assets/objects/object_gi_soul/object_gi_soul.o" + number 6 endseg beginseg @@ -5662,7 +5736,8 @@ endseg beginseg name "object_gi_dekupouch" romalign 0x1000 - include "build/baserom/object_gi_dekupouch.o" + include "build/assets/objects/object_gi_dekupouch/object_gi_dekupouch.o" + number 6 endseg beginseg @@ -5686,7 +5761,8 @@ endseg beginseg name "object_gi_rupy" romalign 0x1000 - include "build/baserom/object_gi_rupy.o" + include "build/assets/objects/object_gi_rupy/object_gi_rupy.o" + number 6 endseg beginseg @@ -5782,7 +5858,8 @@ endseg beginseg name "object_gi_sword_1" romalign 0x1000 - include "build/baserom/object_gi_sword_1.o" + include "build/assets/objects/object_gi_sword_1/object_gi_sword_1.o" + number 6 endseg beginseg diff --git a/src/code/z_draw.c b/src/code/z_draw.c index c9ab4a2bf4..3cdcfcaae7 100644 --- a/src/code/z_draw.c +++ b/src/code/z_draw.c @@ -1,171 +1,379 @@ #include "global.h" +#include "objects/object_gi_key/object_gi_key.h" +#include "objects/object_gi_jewel/object_gi_jewel.h" +#include "objects/object_gi_melody/object_gi_melody.h" +#include "objects/object_gi_heart/object_gi_heart.h" +#include "objects/object_gi_compass/object_gi_compass.h" +#include "objects/object_gi_bosskey/object_gi_bosskey.h" +#include "objects/object_gi_medal/object_gi_medal.h" +#include "objects/object_gi_nuts/object_gi_nuts.h" +#include "objects/object_gi_hearts/object_gi_hearts.h" +#include "objects/object_gi_arrowcase/object_gi_arrowcase.h" +#include "objects/object_gi_bombpouch/object_gi_bombpouch.h" +#include "objects/object_gi_bottle/object_gi_bottle.h" +#include "objects/object_gi_stick/object_gi_stick.h" +#include "objects/object_gi_map/object_gi_map.h" +#include "objects/object_gi_shield_1/object_gi_shield_1.h" +#include "objects/object_gi_magicpot/object_gi_magicpot.h" +#include "objects/object_gi_bomb_1/object_gi_bomb_1.h" +#include "objects/object_gi_purse/object_gi_purse.h" +#include "objects/object_gi_gerudo/object_gi_gerudo.h" +#include "objects/object_gi_arrow/object_gi_arrow.h" +#include "objects/object_gi_bomb_2/object_gi_bomb_2.h" +#include "objects/object_gi_egg/object_gi_egg.h" +#include "objects/object_gi_scale/object_gi_scale.h" +#include "objects/object_gi_shield_2/object_gi_shield_2.h" +#include "objects/object_gi_hookshot/object_gi_hookshot.h" +#include "objects/object_gi_ocarina/object_gi_ocarina.h" +#include "objects/object_gi_milk/object_gi_milk.h" +#include "objects/object_gi_pachinko/object_gi_pachinko.h" +#include "objects/object_gi_boomerang/object_gi_boomerang.h" +#include "objects/object_gi_bow/object_gi_bow.h" +#include "objects/object_gi_glasses/object_gi_glasses.h" +#include "objects/object_gi_liquid/object_gi_liquid.h" +#include "objects/object_gi_shield_3/object_gi_shield_3.h" +#include "objects/object_gi_letter/object_gi_letter.h" +#include "objects/object_gi_clothes/object_gi_clothes.h" +#include "objects/object_gi_bean/object_gi_bean.h" +#include "objects/object_gi_fish/object_gi_fish.h" +#include "objects/object_gi_saw/object_gi_saw.h" +#include "objects/object_gi_hammer/object_gi_hammer.h" +#include "objects/object_gi_grass/object_gi_grass.h" +#include "objects/object_gi_longsword/object_gi_longsword.h" +#include "objects/object_gi_niwatori/object_gi_niwatori.h" +#include "objects/object_gi_bottle_letter/object_gi_bottle_letter.h" +#include "objects/object_gi_ocarina_0/object_gi_ocarina_0.h" +#include "objects/object_gi_boots_2/object_gi_boots_2.h" +#include "objects/object_gi_seed/object_gi_seed.h" +#include "objects/object_gi_gloves/object_gi_gloves.h" +#include "objects/object_gi_coin/object_gi_coin.h" +#include "objects/object_gi_ki_tan_mask/object_gi_ki_tan_mask.h" +#include "objects/object_gi_redead_mask/object_gi_redead_mask.h" +#include "objects/object_gi_skj_mask/object_gi_skj_mask.h" +#include "objects/object_gi_rabit_mask/object_gi_rabit_mask.h" +#include "objects/object_gi_truth_mask/object_gi_truth_mask.h" +#include "objects/object_gi_eye_lotion/object_gi_eye_lotion.h" +#include "objects/object_gi_powder/object_gi_powder.h" +#include "objects/object_gi_mushroom/object_gi_mushroom.h" +#include "objects/object_gi_ticketstone/object_gi_ticketstone.h" +#include "objects/object_gi_brokensword/object_gi_brokensword.h" +#include "objects/object_gi_prescription/object_gi_prescription.h" +#include "objects/object_gi_bracelet/object_gi_bracelet.h" +#include "objects/object_gi_soldout/object_gi_soldout.h" +#include "objects/object_gi_frog/object_gi_frog.h" +#include "objects/object_gi_golonmask/object_gi_golonmask.h" +#include "objects/object_gi_zoramask/object_gi_zoramask.h" +#include "objects/object_gi_gerudomask/object_gi_gerudomask.h" +#include "objects/object_gi_hoverboots/object_gi_hoverboots.h" +#include "objects/object_gi_m_arrow/object_gi_m_arrow.h" +#include "objects/object_gi_sutaru/object_gi_sutaru.h" +#include "objects/object_gi_goddess/object_gi_goddess.h" +#include "objects/object_gi_fire/object_gi_fire.h" +#include "objects/object_gi_insect/object_gi_insect.h" +#include "objects/object_gi_butterfly/object_gi_butterfly.h" +#include "objects/object_gi_ghost/object_gi_ghost.h" +#include "objects/object_gi_soul/object_gi_soul.h" +#include "objects/object_gi_dekupouch/object_gi_dekupouch.h" +#include "objects/object_gi_rupy/object_gi_rupy.h" +#include "objects/object_gi_sword_1/object_gi_sword_1.h" // "Get Item" Model Draw Functions -void func_800694E4(GlobalContext* globalCtx, s16 drawId); -void func_800695C0(GlobalContext* globalCtx, s16 drawId); -void func_8006969C(GlobalContext* globalCtx, s16 drawId); -void func_80069880(GlobalContext* globalCtx, s16 drawId); -void func_80069AC8(GlobalContext* globalCtx, s16 drawId); -void func_80069CF0(GlobalContext* globalCtx, s16 drawId); -void func_80069EB0(GlobalContext* globalCtx, s16 drawId); -void func_8006A060(GlobalContext* globalCtx, s16 drawId); -void func_8006A158(GlobalContext* globalCtx, s16 drawId); -void func_8006A2A0(GlobalContext* globalCtx, s16 drawId); -void func_8006A4B0(GlobalContext* globalCtx, s16 drawId); -void func_8006A5F0(GlobalContext* globalCtx, s16 drawId); -void func_8006A73C(GlobalContext* globalCtx, s16 drawId); -void func_8006A88C(GlobalContext* globalCtx, s16 drawId); -void func_8006A9CC(GlobalContext* globalCtx, s16 drawId); -void func_8006AAA8(GlobalContext* globalCtx, s16 drawId); -void func_8006ABEC(GlobalContext* globalCtx, s16 drawId); -void func_8006ACE4(GlobalContext* globalCtx, s16 drawId); -void func_8006AE40(GlobalContext* globalCtx, s16 drawId); -void func_8006AF9C(GlobalContext* globalCtx, s16 drawId); -void func_8006B124(GlobalContext* globalCtx, s16 drawId); -void func_8006B24C(GlobalContext* globalCtx, s16 drawId); -void func_8006B3C0(GlobalContext* globalCtx, s16 drawId); -void func_8006B54C(GlobalContext* globalCtx, s16 drawId); -void func_8006B6E4(GlobalContext* globalCtx, s16 drawId); -void func_8006B870(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawMaskOrBombchu(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawSoldOut(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawBlueFire(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawPoes(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawFairy(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawMirrorShield(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawSkullToken(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawEggOrMedallion(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawCompass(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawPotion(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawGoronSword(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawDekuNuts(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawRecoveryHeart(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawFish(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawOpa0(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawOpa0Xlu1(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawXlu01(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawOpa10Xlu2(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawMagicArrow(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawMagicSpell(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawOpa1023(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawOpa10Xlu32(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawSmallRupee(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawScale(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawBulletBag(GlobalContext* globalCtx, s16 drawId); +void GetItem_DrawWallet(GlobalContext* globalCtx, s16 drawId); typedef struct { /* 0x00 */ void (*drawFunc)(GlobalContext*, s16); /* 0x04 */ u32 dlists[8]; } DrawItemTableEntry; // size = 0x24 -// TODO: use symbols for these dlists once objects are in C DrawItemTableEntry sDrawItemTable[] = { - { func_8006AAA8, { 0x06000670, 0x06000750 } }, - { func_8006A9CC, { 0x06000800 } }, - { func_8006ABEC, { 0x06000A80, 0x06000AE0 } }, - { func_8006ABEC, { 0x06000A90, 0x06000AE0 } }, - { func_8006ABEC, { 0x06000AA0, 0x06000AE0 } }, - { func_8006ABEC, { 0x06000AB0, 0x06000AE0 } }, - { func_8006ABEC, { 0x06000AC0, 0x06000AE0 } }, - { func_8006ABEC, { 0x06000AD0, 0x06000AE0 } }, - { func_8006A73C, { 0x060000E0 } }, - { func_8006AAA8, { 0x06000CA0, 0x06000F08 } }, - { func_8006A158, { 0x06000960, 0x06000C50 } }, - { func_8006A060, { 0x06000CB0, 0x06000E18 } }, - { func_8006A060, { 0x06001AF0, 0x06000E18 } }, - { func_8006A060, { 0x06002830, 0x06000E18 } }, - { func_8006A060, { 0x06003610, 0x06000E18 } }, - { func_8006A060, { 0x06004330, 0x06000E18 } }, - { func_8006A060, { 0x06005220, 0x06000E18 } }, - { func_8006A5F0, { 0x06000E90 } }, - { func_8006ABEC, { 0x06001290, 0x06001470 } }, - { func_8006ABEC, { 0x06001290, 0x06001590 } }, - { func_8006B124, { 0x06000990, 0x060008D0, 0x06000930, 0x06000A80 } }, - { func_8006B124, { 0x06000990, 0x060008F0, 0x06000950, 0x06000A80 } }, - { func_8006B124, { 0x06000990, 0x06000910, 0x06000970, 0x06000A80 } }, - { func_8006B124, { 0x06000B90, 0x06000AD0, 0x06000B30, 0x06000D98 } }, - { func_8006B124, { 0x06000B90, 0x06000AF0, 0x06000B50, 0x06000D98 } }, - { func_8006B124, { 0x06000B90, 0x06000B10, 0x06000B70, 0x06000D98 } }, - { func_8006A9CC, { 0x060004D0 } }, - { func_8006A9CC, { 0x060003C0 } }, - { func_8006A9CC, { 0x06000A50 } }, - { func_8006A9CC, { 0x06000580 } }, - { func_8006A9CC, { 0x06000EE0 } }, - { func_8006A9CC, { 0x060009A0 } }, - { func_8006A9CC, { 0x06000B70 } }, - { func_8006B870, - { 0x06001850, 0x06001750, 0x06001790, 0x060019A0, 0x060017B0, 0x06001A28, 0x060017D0, 0x06001AD8 } }, - { func_8006B870, - { 0x06001850, 0x06001770, 0x060017F0, 0x060019A0, 0x06001810, 0x06001A28, 0x06001830, 0x06001AD8 } }, - { func_8006A9CC, { 0x06000F60 } }, - { func_8006A9CC, { 0x06000340 } }, - { func_8006A9CC, { 0x06000B90 } }, - { func_8006A9CC, { 0x06001830 } }, - { func_800694E4, { 0x060004B0 } }, - { func_8006A060, { 0x06000FD0, 0x06001008 } }, - { func_8006B54C, { 0x06000AA0, 0x06000A20, 0x06000A60, 0x06000CC8 } }, - { func_8006B54C, { 0x06000AA0, 0x06000A40, 0x06000A80, 0x06000CC8 } }, - { func_8006A9CC, { 0x06000C70 } }, - { func_8006A9CC, { 0x06000750 } }, - { func_8006A9CC, { 0x06001240 } }, - { func_8006AAA8, { 0x060008C0, 0x06000AF8 } }, - { func_8006AAA8, { 0x06001060, 0x06001288 } }, - { func_8006AAA8, { 0x06000AC0, 0x06000D50 } }, - { func_8006A9CC, { 0x060007E0 } }, - { func_8006A9CC, { 0x06000940 } }, - { func_8006A9CC, { 0x06000A30 } }, - { func_8006A9CC, { 0x06000990 } }, - { func_8006AAA8, { 0x06000D80, 0x06001010 } }, - { func_8006A2A0, { 0x06001438, 0x06001270, 0x060012D0, 0x06001790, 0x06001330, 0x06001848 } }, - { func_8006A2A0, { 0x06001438, 0x06001290, 0x060012F0, 0x06001790, 0x06001388, 0x06001848 } }, - { func_8006A2A0, { 0x06001438, 0x060012B0, 0x06001310, 0x06001790, 0x060013E0, 0x06001848 } }, - { func_80069CF0, { 0x06000FB0, 0x060011C8 } }, - { func_8006AAA8, { 0x06000CC0, 0x06000D60 } }, - { func_8006B124, { 0x06001560, 0x060014E0, 0x06001520, 0x06001608 } }, - { func_8006B124, { 0x06001560, 0x06001500, 0x06001540, 0x06001608 } }, - { func_8006A9CC, { 0x06000580 } }, - { func_8006A88C, { 0x06000600 } }, - { func_8006A9CC, { 0x060007E0 } }, - { func_8006A9CC, { 0x060009D0 } }, - { func_8006A9CC, { 0x060008E0 } }, - { func_8006A4B0, { 0x06000600 } }, - { func_8006ACE4, { 0x06001630, 0x060015F0, 0x06001948 } }, - { func_8006AAA8, { 0x060008E0, 0x06000AE0 } }, - { func_8006AAA8, { 0x060008E0, 0x06000B58 } }, - { func_8006AAA8, { 0x06001630, 0x06001A98 } }, - { func_8006A9CC, { 0x06000810 } }, - { func_8006B24C, { 0x06001540, 0x060014C0, 0x06001860, 0x06001500 } }, - { func_8006B24C, { 0x06001540, 0x060014E0, 0x06001860, 0x06001520 } }, - { func_8006ACE4, { 0x060005E0, 0x06000560, 0x06000768 } }, - { func_8006ACE4, { 0x060005E0, 0x06000580, 0x06000768 } }, - { func_8006ACE4, { 0x060005E0, 0x060005A0, 0x06000768 } }, - { func_8006ACE4, { 0x060005E0, 0x060005C0, 0x06000768 } }, - { func_8006A9CC, { 0x060009D0 } }, - { func_8006AAA8, { 0x06000BC0, 0x06000E58 } }, - { func_8006AAA8, { 0x060013D0, 0x060016B0 } }, - { func_8006AAA8, { 0x06000680, 0x06000768 } }, - { func_8006A9CC, { 0x060008B0 } }, - { func_8006A9CC, { 0x060009D0 } }, - { func_8006AAA8, { 0x06000F00, 0x06001188 } }, - { func_8006A4B0, { 0x060006E0 } }, - { func_8006AAA8, { 0x060009C0, 0x06000AF0 } }, - { func_8006A9CC, { 0x06000960 } }, - { func_800695C0, { 0x06000440 } }, - { func_8006AAA8, { 0x06000D60, 0x06001060 } }, - { func_800694E4, { 0x060014F8 } }, - { func_800694E4, { 0x06001398 } }, - { func_800694E4, { 0x060010E8 } }, - { func_8006ACE4, { 0x06001630, 0x06001610, 0x06001948 } }, - { func_8006A9CC, { 0x06001850 } }, - { func_8006AE40, { 0x06000AE0, 0x06000CA0, 0x06000D00 } }, - { func_8006AE40, { 0x06000AE0, 0x06000CC0, 0x06000D00 } }, - { func_8006AE40, { 0x06000AE0, 0x06000CE0, 0x06000D00 } }, - { func_80069EB0, { 0x06000330, 0x06000438 } }, - { func_8006AF9C, { 0x06000920, 0x060009E0, 0x06000A40 } }, - { func_8006AF9C, { 0x06000920, 0x06000A00, 0x06000A40 } }, - { func_8006AF9C, { 0x06000920, 0x06000A20, 0x06000A40 } }, - { func_8006969C, { 0x06000C60, 0x06000F08 } }, - { func_8006AAA8, { 0x06000830, 0x06000B20 } }, - { func_8006AAA8, { 0x06000830, 0x06000A70 } }, - { func_80069880, { 0x06000990, 0x06000BE0, 0x06000CF0, 0x06000950 } }, - { func_80069AC8, { 0x06000BD0, 0x06000DB8, 0x06000EF0 } }, - { func_8006B6E4, { 0x06000B70, 0x06000AF0, 0x06000F48, 0x06000B30, 0x06000FF0 } }, - { func_8006B3C0, { 0x060005E0, 0x060004A0, 0x060006F0, 0x06000540 } }, - { func_8006B3C0, { 0x060005E0, 0x060004C0, 0x060006F0, 0x06000560 } }, - { func_8006B3C0, { 0x060005E0, 0x060004E0, 0x060006F0, 0x06000580 } }, - { func_80069880, { 0x06000990, 0x06000BE0, 0x06000CF0, 0x06000970 } }, - { func_8006B24C, { 0x060005E0, 0x06000500, 0x060006F0, 0x060005A0 } }, - { func_8006B24C, { 0x060005E0, 0x06000520, 0x060006F0, 0x060005C0 } }, - { func_8006B6E4, { 0x06000B70, 0x06000B10, 0x06000F48, 0x06000B50, 0x06000FF0 } }, - { func_8006A9CC, { 0x06000960 } }, - { func_80069EB0, { 0x06004DB0, 0x06004EB8 } }, + // bottle, OBJECT_GI_BOTTLE + { GetItem_DrawOpa0Xlu1, { gGiBottleStopperDL, gGiBottleDL } }, + // small key, OBJECT_GI_KEY + { GetItem_DrawOpa0, { gGiSmallKeyDL } }, + // minuet of forest, OBJECT_GI_MELODY + { GetItem_DrawXlu01, { gGiMinuetColorDL, gGiSongNoteDL } }, + // bolero of fire, OBJECT_GI_MELODY + { GetItem_DrawXlu01, { gGiBoleroColorDL, gGiSongNoteDL } }, + // serenade of water, OBJECT_GI_MELODY + { GetItem_DrawXlu01, { gGiSerenadeColorDL, gGiSongNoteDL } }, + // requiem of spirit, OBJECT_GI_MELODY + { GetItem_DrawXlu01, { gGiRequiemColorDL, gGiSongNoteDL } }, + // nocturne of shadow, OBJECT_GI_MELODY + { GetItem_DrawXlu01, { gGiNocturneColorDL, gGiSongNoteDL } }, + // prelude of light, OBJECT_GI_MELODY + { GetItem_DrawXlu01, { gGiPreludeColorDL, gGiSongNoteDL } }, + // recovery heart, OBJECT_GI_HEART + { GetItem_DrawRecoveryHeart, { gGiRecoveryHeartDL } }, + // boss key, OBJECT_GI_BOSSKEY + { GetItem_DrawOpa0Xlu1, { gGiBossKeyDL, gGiBossKeyGemDL } }, + // compass, OBJECT_GI_COMPASS + { GetItem_DrawCompass, { gGiCompassDL, gGiCompassGlassDL } }, + // forest medallion, OBJECT_GI_MEDAL + { GetItem_DrawEggOrMedallion, { gGiForestMedallionFaceDL, gGiMedallionDL } }, + // fire medallion, OBJECT_GI_MEDAL + { GetItem_DrawEggOrMedallion, { gGiFireMedallionFaceDL, gGiMedallionDL } }, + // water medallion, OBJECT_GI_MEDAL + { GetItem_DrawEggOrMedallion, { gGiWaterMedallionFaceDL, gGiMedallionDL } }, + // spirit medallion, OBJECT_GI_MEDAL + { GetItem_DrawEggOrMedallion, { gGiSpiritMedallionFaceDL, gGiMedallionDL } }, + // shadow medallion, OBJECT_GI_MEDAL + { GetItem_DrawEggOrMedallion, { gGiShadowMedallionFaceDL, gGiMedallionDL } }, + // light medallion, OBJECT_GI_MEDAL + { GetItem_DrawEggOrMedallion, { gGiLightMedallionFaceDL, gGiMedallionDL } }, + // deku nuts, OBJECT_GI_NUTS + { GetItem_DrawDekuNuts, { gGiNutDL } }, + // heart container, OBJECT_GI_HEARTS + { GetItem_DrawXlu01, { gGiHeartBorderDL, gGiHeartContainerDL } }, + // heart piece, OBJECT_GI_HEARTS + { GetItem_DrawXlu01, { gGiHeartBorderDL, gGiHeartPieceDL } }, + // quiver 30, OBJECT_GI_ARROWCASE + { GetItem_DrawOpa1023, { gGiQuiverInnerDL, gGiQuiver30InnerColorDL, gGiQuiver30OuterColorDL, gGiQuiverOuterDL } }, + // quiver 40, OBJECT_GI_ARROWCASE + { GetItem_DrawOpa1023, { gGiQuiverInnerDL, gGiQuiver40InnerColorDL, gGiQuiver40OuterColorDL, gGiQuiverOuterDL } }, + // quiver 50, OBJECT_GI_ARROWCASE + { GetItem_DrawOpa1023, { gGiQuiverInnerDL, gGiQuiver50InnerColorDL, gGiQuiver50OuterColorDL, gGiQuiverOuterDL } }, + // bomb bag 20, OBJECT_GI_BOMBPOUCH + { GetItem_DrawOpa1023, { gGiBombBagDL, gGiBombBag20BagColorDL, gGiBombBag20RingColorDL, gGiBombBagRingDL } }, + // bomb bag 30, OBJECT_GI_BOMBPOUCH + { GetItem_DrawOpa1023, { gGiBombBagDL, gGiBombBag30BagColorDL, gGiBombBag30RingColorDL, gGiBombBagRingDL } }, + // bomb bag 40, OBJECT_GI_BOMBPOUCH + { GetItem_DrawOpa1023, { gGiBombBagDL, gGiBombBag40BagColorDL, gGiBombBag40RingColorDL, gGiBombBagRingDL } }, + // stick, OBJECT_GI_STICK + { GetItem_DrawOpa0, { gGiStickDL } }, + // dungeon map, OBJECT_GI_MAP + { GetItem_DrawOpa0, { gGiDungeonMapDL } }, + // deku shield, OBJECT_GI_SHIELD_1 + { GetItem_DrawOpa0, { gGiDekuShieldDL } }, + // small magic jar, OBJECT_GI_MAGICPOT + { GetItem_DrawOpa0, { gGiMagicJarSmallDL } }, + // large magic jar, OBJECT_GI_MAGICPOT + { GetItem_DrawOpa0, { gGiMagicJarLargeDL } }, + // bombs, OBJECT_GI_BOMB_1 + { GetItem_DrawOpa0, { gGiBombDL } }, + // stone of agony, OBJECT_GI_MAP + { GetItem_DrawOpa0, { gGiStoneOfAgonyDL } }, + // adult's wallet, OBJECT_GI_PURSE + { GetItem_DrawWallet, + { gGiWalletDL, gGiAdultWalletColorDL, gGiAdultWalletRupeeOuterColorDL, gGiWalletRupeeOuterDL, + gGiAdultWalletStringColorDL, gGiWalletStringDL, gGiAdultWalletRupeeInnerColorDL, gGiWalletRupeeInnerDL } }, + // giant's wallet, OBJECT_GI_PURSE + { GetItem_DrawWallet, + { gGiWalletDL, gGiGiantsWalletColorDL, gGiGiantsWalletRupeeOuterColorDL, gGiWalletRupeeOuterDL, + gGiGiantsWalletStringColorDL, gGiWalletStringDL, gGiGiantsWalletRupeeInnerColorDL, gGiWalletRupeeInnerDL } }, + // gerudo card, OBJECT_GI_GERUDO + { GetItem_DrawOpa0, { gGiGerudoCardDL } }, + // arrows (small), OBJECT_GI_ARROW + { GetItem_DrawOpa0, { gGiArrowSmallDL } }, + // arrows (medium), OBJECT_GI_ARROW + { GetItem_DrawOpa0, { gGiArrowMediumDL } }, + // arrows (large), OBJECT_GI_ARROW + { GetItem_DrawOpa0, { gGiArrowLargeDL } }, + // bombchus, OBJECT_GI_BOMB_2 + { GetItem_DrawMaskOrBombchu, { gGiBombchuDL } }, + // egg, OBJECT_GI_EGG + { GetItem_DrawEggOrMedallion, { gGiEggSetupDL, gGiEggDL } }, + // silver scale, OBJECT_GI_SCALE + { GetItem_DrawScale, { gGiScaleWaterDL, gGiSilverScaleWaterColorDL, gGiSilverScaleColorDL, gGiScaleDL } }, + // gold scale, OBJECT_GI_SCALE + { GetItem_DrawScale, { gGiScaleWaterDL, gGiGoldenScaleWaterColorDL, gGiGoldenScaleColorDL, gGiScaleDL } }, + // hylian shield, OBJECT_GI_SHIELD_2 + { GetItem_DrawOpa0, { gGiHylianShieldDL } }, + // hookshot, OBJECT_GI_HOOKSHOT + { GetItem_DrawOpa0, { gGiHookshotDL } }, + // longshot, OBJECT_GI_HOOKSHOT + { GetItem_DrawOpa0, { gGiLongshotDL } }, + // ocarina of time, OBJECT_GI_OCARINA + { GetItem_DrawOpa0Xlu1, { gGiOcarinaTimeDL, gGiOcarinaTimeHolesDL } }, + // milk, OBJECT_GI_MILK + { GetItem_DrawOpa0Xlu1, { gGiMilkBottleContentsDL, gGiMilkBottleDL } }, + // keaton mask, OBJECT_GI_KI_TAN_MASK + { GetItem_DrawOpa0Xlu1, { gGiKeatonMaskDL, gGiKeatonMaskEyesDL } }, + // spooky mask, OBJECT_GI_REDEAD_MASK + { GetItem_DrawOpa0, { gGiSpookyMaskDL } }, + // slingshot, OBJECT_GI_PACHINKO + { GetItem_DrawOpa0, { gGiSlingshotDL } }, + // boomerang, OBJECT_GI_BOOMERANG + { GetItem_DrawOpa0, { gGiBoomerangDL } }, + // bow, OBJECT_GI_BOW + { GetItem_DrawOpa0, { gGiBowDL } }, + // lens, OBJECT_GI_GLASSES + { GetItem_DrawOpa0Xlu1, { gGiLensDL, gGiLensGlassDL } }, + // green potion, OBJECT_GI_LIQUID + { GetItem_DrawPotion, + { gGiPotionPotDL, gGiGreenPotColorDL, gGiGreenLiquidColorDL, gGiPotionLiquidDL, gGiGreenPatternColorDL, + gGiPotionPatternDL } }, + // red potion, OBJECT_GI_LIQUID + { GetItem_DrawPotion, + { gGiPotionPotDL, gGiRedPotColorDL, gGiRedLiquidColorDL, gGiPotionLiquidDL, gGiRedPatternColorDL, + gGiPotionPatternDL } }, + // blue potion, OBJECT_GI_LIQUID + { GetItem_DrawPotion, + { gGiPotionPotDL, gGiBluePotColorDL, gGiBlueLiquidColorDL, gGiPotionLiquidDL, gGiBluePatternColorDL, + gGiPotionPatternDL } }, + // mirror shield, OBJECT_GI_SHIELD_3 + { GetItem_DrawMirrorShield, { gGiMirrorShieldDL, gGiMirrorShieldSymbolDL } }, + // zelda's letter, OBJECT_GI_LETTER + { GetItem_DrawOpa0Xlu1, { gGiLetterDL, gGiLetterWritingDL } }, + // goron tunic, OBJECT_GI_CLOTHES + { GetItem_DrawOpa1023, { gGiTunicCollarDL, gGiGoronCollarColorDL, gGiGoronTunicColorDL, gGiTunicDL } }, + // zora tunic, OBJECT_GI_CLOTHES + { GetItem_DrawOpa1023, { gGiTunicCollarDL, gGiZoraCollarColorDL, gGiZoraTunicColorDL, gGiTunicDL } }, + // beans, OBJECT_GI_BEAN + { GetItem_DrawOpa0, { gGiBeanDL } }, + // fish, OBJECT_GI_FISH + { GetItem_DrawFish, { gGiFishDL } }, + // saw, OBJECT_GI_SAW + { GetItem_DrawOpa0, { gGiSawDL } }, + // hammer, OBJECT_GI_HAMMER + { GetItem_DrawOpa0, { gGiHammerDL } }, + // grass, OBJECT_GI_GRASS + { GetItem_DrawOpa0, { gGiGrassDL } }, + // biggorons sword, OBJECT_GI_LONGSWORD + { GetItem_DrawGoronSword, { gGiBiggoronSwordDL } }, + // chicken, OBJECT_GI_NIWATORI + { GetItem_DrawOpa10Xlu2, { gGiChickenDL, gGiChickenColorDL, gGiChickenEyesDL } }, + // ruto's letter, OBJECT_GI_BOTTLE_LETTER + { GetItem_DrawOpa0Xlu1, { gGiLetterBottleContentsDL, gGiLetterBottleDL } }, + // fairy ocarina, OBJECT_GI_OCARINA_0 + { GetItem_DrawOpa0Xlu1, { gGiOcarinaFairyDL, gGiOcarinaFairyHolesDL } }, + // iron boots, OBJECT_GI_BOOTS_2 + { GetItem_DrawOpa0Xlu1, { gGiIronBootsDL, gGiIronBootsRivetsDL } }, + // seeds, OBJECT_GI_SEED + { GetItem_DrawOpa0, { gGiSeedDL } }, + // silver gauntlets, OBJECT_GI_GLOVES + { GetItem_DrawOpa10Xlu32, + { gGiGauntletsDL, gGiSilverGauntletsColorDL, gGiGauntletsPlateDL, gGiSilverGauntletsPlateColorDL } }, + // golden gauntlets, OBJECT_GI_GLOVES + { GetItem_DrawOpa10Xlu32, + { gGiGauntletsDL, gGiGoldenGauntletsColorDL, gGiGauntletsPlateDL, gGiGoldenGauntletsPlateColorDL } }, + // yellow n coin, OBJECT_GI_COIN + { GetItem_DrawOpa10Xlu2, { gGiCoinDL, gGiYellowCoinColorDL, gGiNDL } }, + // red n coin, OBJECT_GI_COIN + { GetItem_DrawOpa10Xlu2, { gGiCoinDL, gGiRedCoinColorDL, gGiNDL } }, + // green n coin, OBJECT_GI_COIN + { GetItem_DrawOpa10Xlu2, { gGiCoinDL, gGiGreenCoinColorDL, gGiNDL } }, + // blue n coin, OBJECT_GI_COIN + { GetItem_DrawOpa10Xlu2, { gGiCoinDL, gGiBlueCoinColorDL, gGiNDL } }, + // skull mask, OBJECT_GI_SKJ_MASK + { GetItem_DrawOpa0, { gGiSkullMaskDL } }, + // bunny hood OBJECT_GI_RABIT_MASK + { GetItem_DrawOpa0Xlu1, { gGiBunnyHoodDL, gGiBunnyHoodEyesDL } }, + // mask of truth, OBJECT_GI_TRUTH_MASK + { GetItem_DrawOpa0Xlu1, { gGiMaskOfTruthDL, gGiMaskOfTruthAccentsDL } }, + // eyedrops, OBJECT_GI_EYE_LOTION + { GetItem_DrawOpa0Xlu1, { gGiEyeDropsCapDL, gGiEyeDropsBottleDL } }, + // odd potion, OBJECT_GI_POWDER + { GetItem_DrawOpa0, { gGiOddPotionDL } }, + // odd mushroom, OBJECT_GI_MUSHROOM + { GetItem_DrawOpa0, { gGiOddMushroomDL } }, + // claim check, OBJECT_GI_TICKETSTONE + { GetItem_DrawOpa0Xlu1, { gGiClaimCheckDL, gGiClaimCheckWritingDL } }, + // broken goron's sword, OBJECT_GI_BROKENSWORD + { GetItem_DrawGoronSword, { gGiBrokenGoronSwordDL } }, + // prescription, OBJECT_GI_PRESCRIPTION + { GetItem_DrawOpa0Xlu1, { gGiPrescriptionDL, gGiPrescriptionWritingDL } }, + // goron bracelet, OBJECT_GI_BRACELET + { GetItem_DrawOpa0, { gGiGoronBraceletDL } }, + // sold out, OBJECT_GI_SOLDOUT + { GetItem_DrawSoldOut, { gGiSoldOutDL } }, + // frog, OBJECT_GI_FROG + { GetItem_DrawOpa0Xlu1, { gGiFrogDL, gGiFrogEyesDL } }, + // goron mask, OBJECT_GI_GOLONMASK + { GetItem_DrawMaskOrBombchu, { gGiGoronMaskDL } }, + // zora mask, OBJECT_GI_ZORAMASK + { GetItem_DrawMaskOrBombchu, { gGiZoraMaskDL } }, + // gerudo mask, OBJECT_GI_GERUDOMASK + { GetItem_DrawMaskOrBombchu, { gGiGerudoMaskDL } }, + // cojiro, OBJECT_GI_NIWATORI + { GetItem_DrawOpa10Xlu2, { gGiChickenDL, gGiCojiroColorDL, gGiChickenEyesDL } }, + // hover boots, OBJECT_GI_HOVERBOOTS + { GetItem_DrawOpa0, { gGiHoverBootsDL } }, + // fire arrows, OBJECT_GI_M_ARROW + { GetItem_DrawMagicArrow, { gGiMagicArrowDL, gGiFireArrowColorDL, gGiArrowMagicDL } }, + // ice arrows, OBJECT_GI_M_ARROW + { GetItem_DrawMagicArrow, { gGiMagicArrowDL, gGiIceArrowColorDL, gGiArrowMagicDL } }, + // light arrows, OBJECT_GI_M_ARROW + { GetItem_DrawMagicArrow, { gGiMagicArrowDL, gGiLightArrowColorDL, gGiArrowMagicDL } }, + // skulltula token, OBJECT_GI_SUTARU + { GetItem_DrawSkullToken, { gGiSkulltulaTokenDL, gGiSkulltulaTokenFlameDL } }, + // din's fire, OBJECT_GI_GODDESS + { GetItem_DrawMagicSpell, { gGiMagicSpellDiamondDL, gGiDinsFireColorDL, gGiMagicSpellOrbDL } }, + // farore's wind, OBJECT_GI_GODDESS + { GetItem_DrawMagicSpell, { gGiMagicSpellDiamondDL, gGiFaroresWindColorDL, gGiMagicSpellOrbDL } }, + // nayru's Love, OBJECT_GI_GODDESS + { GetItem_DrawMagicSpell, { gGiMagicSpellDiamondDL, gGiNayrusLoveColorDL, gGiMagicSpellOrbDL } }, + // blue fire, OBJECT_GI_FIRE + { GetItem_DrawBlueFire, { gGiBlueFireChamberstickDL, gGiBlueFireFlameDL } }, + // bugs, OBJECT_GI_INSECT + { GetItem_DrawOpa0Xlu1, { gGiBugsContainerDL, gGiBugsGlassDL } }, + // butterfly, OBJECT_GI_BUTTERFLY + { GetItem_DrawOpa0Xlu1, { gGiButterflyContainerDL, gGiButterflyGlassDL } }, + // poe, OBJECT_GI_GHOST + { GetItem_DrawPoes, { gGiGhostContainerLidDL, gGiGhostContainerGlassDL, gGiGhostContainerContentsDL, gGiPoeColorDL } }, + // fairy, OBJECT_GI_SOUL + { GetItem_DrawFairy, { gGiFairyContainerBaseCapDL, gGiFairyContainerGlassDL, gGiFairyContainerContentsDL } }, + // bullet bag 40, OBJECT_GI_DEKUPOUCH + { GetItem_DrawBulletBag, + { gGiBulletBagDL, gGiBulletBagColorDL, gGiBulletBagStringDL, gGiBulletBagStringColorDL, gGiBulletBagWritingDL } }, + // green rupee, OBJECT_GI_RUPY + { GetItem_DrawSmallRupee, { gGiRupeeInnerDL, gGiGreenRupeeInnerColorDL, gGiRupeeOuterDL, gGiGreenRupeeOuterColorDL } }, + // blue rupee, OBJECT_GI_RUPY + { GetItem_DrawSmallRupee, { gGiRupeeInnerDL, gGiBlueRupeeInnerColorDL, gGiRupeeOuterDL, gGiBlueRupeeOuterColorDL } }, + // red rupee, OBJECT_GI_RUPY + { GetItem_DrawSmallRupee, { gGiRupeeInnerDL, gGiRedRupeeInnerColorDL, gGiRupeeOuterDL, gGiRedRupeeOuterColorDL } }, + // big poe, OBJECT_GI_GHOST + { GetItem_DrawPoes, + { gGiGhostContainerLidDL, gGiGhostContainerGlassDL, gGiGhostContainerContentsDL, gGiBigPoeColorDL } }, + // purple rupee, OBJECT_GI_RUPY + { GetItem_DrawOpa10Xlu32, { gGiRupeeInnerDL, gGiPurpleRupeeInnerColorDL, gGiRupeeOuterDL, gGiPurpleRupeeOuterColorDL } }, + // gold rupee, OBJECT_GI_RUPY + { GetItem_DrawOpa10Xlu32, { gGiRupeeInnerDL, gGiGoldRupeeInnerColorDL, gGiRupeeOuterDL, gGiGoldRupeeOuterColorDL } }, + // bullet bag 50, OBJECT_GI_DEKUPOUCH + { GetItem_DrawBulletBag, + { gGiBulletBagDL, gGiBulletBag50ColorDL, gGiBulletBagStringDL, gGiBulletBag50StringColorDL, + gGiBulletBagWritingDL } }, + // kokiri sword, OBJECT_GI_SWORD_1 + { GetItem_DrawOpa0, { gGiKokiriSwordDL } }, + // gold skulltula token, OBJECT_ST + { GetItem_DrawSkullToken, { 0x06004DB0, 0x06004EB8 } }, // TODO symbols from this object }; + /** * Draw "Get Item" Model * Calls the corresponding draw function for the given draw ID */ -void func_800694A0(GlobalContext* globalCtx, s16 drawId) { +void GetItem_Draw(GlobalContext* globalCtx, s16 drawId) { sDrawItemTable[drawId].drawFunc(globalCtx, drawId); } // All remaining functions in this file are draw functions referenced in the table and called by the function above -void func_800694E4(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawMaskOrBombchu(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 556); @@ -178,7 +386,7 @@ void func_800694E4(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 565); } -void func_800695C0(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawSoldOut(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 572); @@ -191,7 +399,7 @@ void func_800695C0(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 581); } -void func_8006969C(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawBlueFire(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 588); @@ -217,7 +425,7 @@ void func_8006969C(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 621); } -void func_80069880(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawPoes(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 628); @@ -246,7 +454,7 @@ void func_80069880(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 663); } -void func_80069AC8(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawFairy(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 670); @@ -274,7 +482,7 @@ void func_80069AC8(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 704); } -void func_80069CF0(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawMirrorShield(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 712); @@ -297,7 +505,7 @@ void func_80069CF0(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 735); } -void func_80069EB0(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawSkullToken(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 742); @@ -319,7 +527,7 @@ void func_80069EB0(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 765); } -void func_8006A060(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawEggOrMedallion(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 772); @@ -333,7 +541,7 @@ void func_8006A060(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 783); } -void func_8006A158(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawCompass(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 811); @@ -351,7 +559,7 @@ void func_8006A158(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 827); } -void func_8006A2A0(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawPotion(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 834); @@ -377,7 +585,7 @@ void func_8006A2A0(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 861); } -void func_8006A4B0(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawGoronSword(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 868); @@ -394,7 +602,7 @@ void func_8006A4B0(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 883); } -void func_8006A5F0(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawDekuNuts(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 890); @@ -411,7 +619,7 @@ void func_8006A5F0(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 906); } -void func_8006A73C(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawRecoveryHeart(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 913); @@ -428,7 +636,7 @@ void func_8006A73C(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 929); } -void func_8006A88C(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawFish(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 936); @@ -445,7 +653,7 @@ void func_8006A88C(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 952); } -void func_8006A9CC(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawOpa0(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 959); @@ -458,7 +666,7 @@ void func_8006A9CC(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 968); } -void func_8006AAA8(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawOpa0Xlu1(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 975); @@ -476,7 +684,7 @@ void func_8006AAA8(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 991); } -void func_8006ABEC(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawXlu01(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 998); @@ -490,7 +698,7 @@ void func_8006ABEC(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1008); } -void func_8006ACE4(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawOpa10Xlu2(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1015); @@ -509,7 +717,7 @@ void func_8006ACE4(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1032); } -void func_8006AE40(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawMagicArrow(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1039); @@ -528,7 +736,7 @@ void func_8006AE40(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1056); } -void func_8006AF9C(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawMagicSpell(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1063); @@ -547,7 +755,7 @@ void func_8006AF9C(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1081); } -void func_8006B124(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawOpa1023(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1088); @@ -563,7 +771,7 @@ void func_8006B124(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1100); } -void func_8006B24C(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawOpa10Xlu32(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1108); @@ -583,7 +791,7 @@ void func_8006B24C(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1126); } -void func_8006B3C0(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawSmallRupee(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1133); @@ -605,7 +813,7 @@ void func_8006B3C0(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1154); } -void func_8006B54C(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawScale(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1162); @@ -625,7 +833,7 @@ void func_8006B54C(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1181); } -void func_8006B6E4(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawBulletBag(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1188); @@ -646,7 +854,7 @@ void func_8006B6E4(GlobalContext* globalCtx, s16 drawId) { CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1207); } -void func_8006B870(GlobalContext* globalCtx, s16 drawId) { +void GetItem_DrawWallet(GlobalContext* globalCtx, s16 drawId) { s32 pad; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_draw.c", 1214); diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c index 5a436b0636..cd41d1dd16 100644 --- a/src/code/z_en_item00.c +++ b/src/code/z_en_item00.c @@ -692,7 +692,7 @@ void EnItem00_Draw(Actor* thisx, GlobalContext* globalCtx) { } else { unkFloat = 16.0f; Matrix_Scale(unkFloat, unkFloat, unkFloat, MTXMODE_APPLY); - func_800694A0(globalCtx, 0x08); + GetItem_Draw(globalCtx, GID_HEART); } break; } @@ -712,16 +712,16 @@ void EnItem00_Draw(Actor* thisx, GlobalContext* globalCtx) { func_8001F080(this, globalCtx); break; case ITEM00_SHIELD_DEKU: - func_800694A0(globalCtx, 0x1C); + GetItem_Draw(globalCtx, GID_SHIELD_DEKU); break; case ITEM00_SHIELD_HYLIAN: - func_800694A0(globalCtx, 0x2B); + GetItem_Draw(globalCtx, GID_SHIELD_HYLIAN); break; case ITEM00_TUNIC_ZORA: - func_800694A0(globalCtx, 0x3C); + GetItem_Draw(globalCtx, GID_TUNIC_ZORA); break; case ITEM00_TUNIC_GORON: - func_800694A0(globalCtx, 0x3B); + GetItem_Draw(globalCtx, GID_TUNIC_GORON); break; case ITEM00_FLEXIBLE: break; diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index b80f50251c..3481b30a8a 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -1039,7 +1039,7 @@ void Player_DrawGetItemImpl(GlobalContext* globalCtx, Player* this, Vec3f* refPo Matrix_RotateRPY(0, globalCtx->gameplayFrames * 1000, 0, MTXMODE_APPLY); Matrix_Scale(0.2f, 0.2f, 0.2f, MTXMODE_APPLY); - func_800694A0(globalCtx, drawIdPlusOne - 1); + GetItem_Draw(globalCtx, drawIdPlusOne - 1); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_player_lib.c", 2421); } diff --git a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c index 8b00466e99..736ce329b6 100644 --- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c +++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c @@ -435,37 +435,37 @@ void DemoEffect_Init(Actor* thisx, GlobalContext* globalCtx) { case DEMO_EFFECT_MEDAL_FIRE: DemoEffect_InitGetItem(this); - this->getItem.giIndex = 12; + this->getItem.drawId = GID_MEDALLION_FIRE; break; case DEMO_EFFECT_MEDAL_WATER: DemoEffect_InitGetItem(this); - this->getItem.giIndex = 13; + this->getItem.drawId = GID_MEDALLION_WATER; break; case DEMO_EFFECT_MEDAL_FOREST: DemoEffect_InitGetItem(this); - this->getItem.giIndex = 11; + this->getItem.drawId = GID_MEDALLION_FOREST; break; case DEMO_EFFECT_MEDAL_SPIRIT: DemoEffect_InitGetItem(this); - this->getItem.giIndex = 14; + this->getItem.drawId = GID_MEDALLION_SPIRIT; break; case DEMO_EFFECT_MEDAL_SHADOW: DemoEffect_InitGetItem(this); - this->getItem.giIndex = 15; + this->getItem.drawId = GID_MEDALLION_SHADOW; break; case DEMO_EFFECT_MEDAL_LIGHT: DemoEffect_InitGetItem(this); - this->getItem.giIndex = 16; + this->getItem.drawId = GID_MEDALLION_LIGHT; break; case DEMO_EFFECT_LIGHTARROW: DemoEffect_InitGetItem(this); - this->getItem.giIndex = 97; + this->getItem.drawId = GID_ARROW_LIGHT; break; case DEMO_EFFECT_TIMEWARP_TIMEBLOCK_LARGE: @@ -635,7 +635,7 @@ void DemoEffect_UpdateGetItem(DemoEffect* this, GlobalContext* globalCtx) { this->getItem.isPositionInit = 1; } - if (this->getItem.giIndex != 97) { + if (this->getItem.drawId != GID_ARROW_LIGHT) { this->actor.shape.rot.x = 0xE0C0; } else { this->actor.shape.rot.y += 0x0400; @@ -660,14 +660,14 @@ void DemoEffect_UpdateGetItem(DemoEffect* this, GlobalContext* globalCtx) { } else { func_800788CC(NA_SE_EV_MEDAL_APPEAR_S - SFX_FLAG); } - if (this->getItem.giIndex != 97) { + if (this->getItem.drawId != GID_ARROW_LIGHT) { this->actor.shape.rot.y += 0x3E80; } this->getItem.rotation = 0x3E80; break; case 3: this->getItem.rotation -= (s16)((this->getItem.rotation - 0x03E8) * 0.10f); - if (this->getItem.giIndex != 97) { + if (this->getItem.drawId != GID_ARROW_LIGHT) { this->actor.shape.rot.y += this->getItem.rotation; } if (gSaveContext.entranceIndex == 0x0053) { @@ -2038,7 +2038,7 @@ void DemoEffect_DrawTriforceSpot(Actor* thisx, GlobalContext* globalCtx) { /** * Draw function for the Get Item Actors. - * This is either Medals or Light Arrows based on the giIndex. + * This is either Medals or Light Arrows based on the drawId. */ void DemoEffect_DrawGetItem(Actor* thisx, GlobalContext* globalCtx) { DemoEffect* this = THIS; @@ -2049,7 +2049,7 @@ void DemoEffect_DrawGetItem(Actor* thisx, GlobalContext* globalCtx) { } func_8002EBCC(thisx, globalCtx, 0); func_8002ED80(thisx, globalCtx, 0); - func_800694A0(globalCtx, this->getItem.giIndex); + GetItem_Draw(globalCtx, this->getItem.drawId); } } diff --git a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.h b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.h index 962e4518e6..e884042a36 100644 --- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.h +++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.h @@ -54,7 +54,7 @@ typedef struct { typedef struct { /* 0x00 */ u8 isPositionInit; /* 0x01 */ u8 isLoaded; - /* 0x02 */ u8 giIndex; + /* 0x02 */ u8 drawId; /* 0x04 */ s16 rotation; } DemoEffectGetItem; diff --git a/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c b/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c index 296b97dd11..46ffac8400 100644 --- a/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c +++ b/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c @@ -138,7 +138,7 @@ void EnExItem_WaitForObject(EnExItem* this, GlobalContext* globalCtx) { onCounter = true; case EXITEM_BOMB_BAG_BOWLING: this->unk_17C = func_8002EBCC; - this->drawItemId = 0x18; + this->giDrawId = GID_BOMB_BAG_30; this->timer = 65; this->prizeRotateTimer = 35; this->scale = 0.5f; @@ -168,7 +168,7 @@ void EnExItem_WaitForObject(EnExItem* this, GlobalContext* globalCtx) { onCounter = true; case EXITEM_BOMBCHUS_BOWLING: this->unk_17C = func_8002EBCC; - this->drawItemId = 39; + this->giDrawId = GID_BOMBCHU; this->timer = 65; this->prizeRotateTimer = 35; this->scale = 0.5f; @@ -181,7 +181,7 @@ void EnExItem_WaitForObject(EnExItem* this, GlobalContext* globalCtx) { case EXITEM_BOMBS_BOWLING: case EXITEM_BOMBS_COUNTER: this->unk_17C = func_8002EBCC; - this->drawItemId = 0x1F; + this->giDrawId = GID_BOMB; this->timer = 65; this->prizeRotateTimer = 35; this->scale = 0.5f; @@ -197,7 +197,7 @@ void EnExItem_WaitForObject(EnExItem* this, GlobalContext* globalCtx) { case EXITEM_PURPLE_RUPEE_COUNTER: this->unk_17C = func_8002EBCC; this->unk_180 = func_8002ED80; - this->drawItemId = 0x70; + this->giDrawId = GID_RUPEE_PURPLE; this->timer = 65; this->prizeRotateTimer = 35; this->scale = 0.5f; @@ -222,16 +222,16 @@ void EnExItem_WaitForObject(EnExItem* this, GlobalContext* globalCtx) { this->actor.velocity.y = 10.0f; switch (this->type) { case EXITEM_GREEN_RUPEE_CHEST: - this->drawItemId = 0x6C; + this->giDrawId = GID_RUPEE_GREEN; break; case EXITEM_BLUE_RUPEE_CHEST: - this->drawItemId = 0x6D; + this->giDrawId = GID_RUPEE_BLUE; break; case EXITEM_RED_RUPEE_CHEST: - this->drawItemId = 0x6E; + this->giDrawId = GID_RUPEE_RED; break; case EXITEM_14: - this->drawItemId = 0x70; + this->giDrawId = GID_RUPEE_PURPLE; break; } this->actionFunc = EnExItem_ExitChest; @@ -244,7 +244,7 @@ void EnExItem_WaitForObject(EnExItem* this, GlobalContext* globalCtx) { break; case EXITEM_BULLET_BAG: this->unk_17C = func_8002EBCC; - this->drawItemId = 0x6B; + this->giDrawId = GID_BULLET_BAG; this->scale = 0.1f; this->timer = 80; this->prizeRotateTimer = 35; @@ -481,19 +481,19 @@ void EnExItem_DrawItems(EnExItem* this, GlobalContext* globalCtx) { } if (this) {} func_8002ED80(&this->actor, globalCtx, 0); - func_800694A0(globalCtx, this->drawItemId); + GetItem_Draw(globalCtx, this->giDrawId); } void EnExItem_DrawHeartPiece(EnExItem* this, GlobalContext* globalCtx) { func_8002ED80(&this->actor, globalCtx, 0); - func_800694A0(globalCtx, 0x13); + GetItem_Draw(globalCtx, GID_HEART_PIECE); } void EnExItem_DrawMagic(EnExItem* this, GlobalContext* globalCtx, s16 magicIndex) { - static s16 drawItemIds[] = { 0x63, 0x64, 0x65 }; + static s16 sgiDrawIds[] = { GID_DINS_FIRE, GID_FARORES_WIND, GID_NAYRUS_LOVE }; func_8002ED80(&this->actor, globalCtx, 0); - func_800694A0(globalCtx, drawItemIds[magicIndex]); + GetItem_Draw(globalCtx, sgiDrawIds[magicIndex]); } void EnExItem_DrawKey(EnExItem* this, GlobalContext* globalCtx, s32 index) { @@ -517,5 +517,5 @@ void EnExItem_DrawRupee(EnExItem* this, GlobalContext* globalCtx) { if (this->unk_180 != NULL) { this->unk_180(&this->actor, globalCtx, 0); } - func_800694A0(globalCtx, this->drawItemId); + GetItem_Draw(globalCtx, this->giDrawId); } diff --git a/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.h b/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.h index f11f2d1ee4..7ac6502950 100644 --- a/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.h +++ b/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.h @@ -15,7 +15,7 @@ typedef struct EnExItem { /* 0x0150 */ s16 getItemObjId; /* 0x0152 */ s16 type; /* 0x0152 */ s16 unusedParam; - /* 0x0156 */ s16 drawItemId; + /* 0x0156 */ s16 giDrawId; /* 0x0158 */ s16 stopRotate; /* 0x015A */ s16 timer; /* 0x015A */ s16 chestKillTimer; 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 0e406e3c50..517c6ac3f9 100644 --- a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c +++ b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c @@ -100,7 +100,7 @@ static u16 D_80A3C668[5] = { 0x70B6, 0x70B5, 0x70B4, 0x70B7, 0x70BB }; typedef struct { /* 0x00 */ s16 objID; - /* 0x02 */ s16 unk_02; + /* 0x02 */ s16 giDrawId; /* 0x04 */ void (*unk_04)(Actor*, GlobalContext*, s32); /* 0x08 */ s16 unk_08; /* 0x0A */ s16 unk_0A; @@ -113,101 +113,106 @@ typedef struct { } ShopItemEntry; // size = 0x20 static ShopItemEntry D_80A3C674[] = { - { 0x00BB, 0x0011, func_8002ED80, 0x000F, 0x0005, 0x00B2, 0x007F, GI_NUTS_5_2, func_80A3ABF8, func_80A3B714, + { OBJECT_GI_NUTS, GID_NUTS, func_8002ED80, 0x000F, 0x0005, 0x00B2, 0x007F, GI_NUTS_5_2, func_80A3ABF8, func_80A3B714, func_80A3BB6C }, - { 0x00D8, 0x0025, func_8002EBCC, 0x003C, 0x001E, 0x00C1, 0x009B, GI_ARROWS_MEDIUM, func_80A3AAA8, func_80A3B634, + { OBJECT_GI_ARROW, GID_ARROWS_MEDIUM, func_8002EBCC, 0x003C, 0x001E, 0x00C1, 0x009B, GI_ARROWS_MEDIUM, func_80A3AAA8, + func_80A3B634, func_80A3BB6C }, + { OBJECT_GI_ARROW, GID_ARROWS_LARGE, func_8002EBCC, 0x005A, 0x0032, 0x00B0, 0x007D, GI_ARROWS_LARGE, func_80A3AAA8, + func_80A3B634, func_80A3BB6C }, + { OBJECT_GI_BOMB_1, GID_BOMB, func_8002EBCC, 0x0019, 0x0005, 0x00A3, 0x008B, GI_BOMBS_5, func_80A3AB58, + func_80A3B678, func_80A3BB6C }, + { OBJECT_GI_NUTS, GID_NUTS, func_8002ED80, 0x001E, 0x000A, 0x00A2, 0x0087, GI_NUTS_10, func_80A3ABF8, func_80A3B714, func_80A3BB6C }, - { 0x00D8, 0x0026, func_8002EBCC, 0x005A, 0x0032, 0x00B0, 0x007D, GI_ARROWS_LARGE, func_80A3AAA8, func_80A3B634, + { OBJECT_GI_STICK, GID_STICK, NULL, 0x000A, 0x0001, 0x00A1, 0x0088, GI_STICKS_1, func_80A3ACAC, func_80A3B780, func_80A3BB6C }, - { 0x00CE, 0x001F, func_8002EBCC, 0x0019, 0x0005, 0x00A3, 0x008B, GI_BOMBS_5, func_80A3AB58, func_80A3B678, + { OBJECT_GI_BOMB_1, GID_BOMB, func_8002EBCC, 0x0032, 0x000A, 0x00B1, 0x007C, GI_BOMBS_10, func_80A3AB58, + func_80A3B678, func_80A3BB6C }, + { OBJECT_GI_FISH, GID_FISH, func_8002ED80, 0x00C8, 0x0001, 0x00B3, 0x007E, GI_FISH, func_80A3AD60, NULL, func_80A3BB6C }, - { 0x00BB, 0x0011, func_8002ED80, 0x001E, 0x000A, 0x00A2, 0x0087, GI_NUTS_10, func_80A3ABF8, func_80A3B714, + { OBJECT_GI_LIQUID, GID_POTION_RED, func_8002EBCC, 0x001E, 0x0001, 0x00A5, 0x008E, GI_POTION_RED, func_80A3ADD4, + func_80A3BA40, func_80A3BB6C }, + { OBJECT_GI_LIQUID, GID_POTION_GREEN, func_8002EBCC, 0x001E, 0x0001, 0x00A6, 0x008F, GI_POTION_GREEN, func_80A3AE48, + func_80A3BA40, func_80A3BB6C }, + { OBJECT_GI_LIQUID, GID_POTION_BLUE, func_8002EBCC, 0x003C, 0x0001, 0x00A7, 0x0090, GI_POTION_BLUE, func_80A3AEBC, + func_80A3BA40, func_80A3BB6C }, + { OBJECT_GI_LONGSWORD, GID_SWORD_BGS, func_8002EBCC, 0x03E8, 0x0001, 0x00A8, 0x0091, GI_SWORD_KNIFE, func_80A3AF30, + func_80A3B7BC, func_80A3BB6C }, + { OBJECT_GI_SHIELD_2, GID_SHIELD_HYLIAN, func_8002EBCC, 0x0050, 0x0001, 0x00A9, 0x0092, GI_SHIELD_HYLIAN, + func_80A3AFC4, func_80A3B800, func_80A3BB6C }, + { OBJECT_GI_SHIELD_1, GID_SHIELD_DEKU, func_8002EBCC, 0x0028, 0x0001, 0x009F, 0x0089, GI_SHIELD_DEKU, func_80A3B040, + func_80A3B83C, func_80A3BB6C }, + { OBJECT_GI_CLOTHES, GID_TUNIC_GORON, NULL, 0x00C8, 0x0001, 0x00AA, 0x0093, GI_TUNIC_GORON, func_80A3B0BC, + func_80A3B878, func_80A3BC0C }, + { OBJECT_GI_CLOTHES, GID_TUNIC_ZORA, NULL, 0x012C, 0x0001, 0x00AB, 0x0094, GI_TUNIC_ZORA, func_80A3B160, + func_80A3B8B4, func_80A3BC3C }, + { OBJECT_GI_HEART, GID_HEART, NULL, 0x000A, 0x0010, 0x00AC, 0x0095, GI_HEART, func_80A3B204, func_80A3B8F0, func_80A3BB6C }, - { 0x00C7, 0x001A, NULL, 0x000A, 0x0001, 0x00A1, 0x0088, GI_STICKS_1, func_80A3ACAC, func_80A3B780, func_80A3BB6C }, - { 0x00CE, 0x001F, func_8002EBCC, 0x0032, 0x000A, 0x00B1, 0x007C, GI_BOMBS_10, func_80A3AB58, func_80A3B678, + { OBJECT_GI_MILK, GID_MILK, func_80A3C498, 0x0064, 0x0001, 0x00AD, 0x0097, GI_MILK_BOTTLE, func_80A3B250, + func_80A3B92C, func_80A3BB6C }, + { OBJECT_GI_EGG, GID_EGG, func_8002EBCC, 0x0064, 0x0001, 0x00AE, 0x0099, GI_WEIRD_EGG, func_80A3B2AC, func_80A3B968, func_80A3BB6C }, - { 0x00F4, 0x003E, func_8002ED80, 0x00C8, 0x0001, 0x00B3, 0x007E, GI_FISH, func_80A3AD60, NULL, func_80A3BB6C }, - { 0x00EB, 0x0037, func_8002EBCC, 0x001E, 0x0001, 0x00A5, 0x008E, GI_POTION_RED, func_80A3ADD4, func_80A3BA40, + { OBJECT_GI_MILK, GID_MILK, func_80A3C498, 0x2710, 0x0001, 0x00B4, 0x0085, GI_NONE, func_80A3B308, func_80A3B9A4, func_80A3BB6C }, - { 0x00EB, 0x0036, func_8002EBCC, 0x001E, 0x0001, 0x00A6, 0x008F, GI_POTION_GREEN, func_80A3AE48, func_80A3BA40, + { OBJECT_GI_EGG, GID_EGG, func_8002EBCC, 0x2710, 0x0001, 0x00B5, 0x0085, GI_NONE, func_80A3B318, func_80A3B9D4, func_80A3BB6C }, - { 0x00EB, 0x0038, func_8002EBCC, 0x003C, 0x0001, 0x00A7, 0x0090, GI_POTION_BLUE, func_80A3AEBC, func_80A3BA40, - func_80A3BB6C }, - { 0x00F8, 0x0042, func_8002EBCC, 0x03E8, 0x0001, 0x00A8, 0x0091, GI_SWORD_KNIFE, func_80A3AF30, func_80A3B7BC, - func_80A3BB6C }, - { 0x00DC, 0x002B, func_8002EBCC, 0x0050, 0x0001, 0x00A9, 0x0092, GI_SHIELD_HYLIAN, func_80A3AFC4, func_80A3B800, - func_80A3BB6C }, - { 0x00CB, 0x001C, func_8002EBCC, 0x0028, 0x0001, 0x009F, 0x0089, GI_SHIELD_DEKU, func_80A3B040, func_80A3B83C, - func_80A3BB6C }, - { 0x00F2, 0x003B, NULL, 0x00C8, 0x0001, 0x00AA, 0x0093, GI_TUNIC_GORON, func_80A3B0BC, func_80A3B878, - func_80A3BC0C }, - { 0x00F2, 0x003C, NULL, 0x012C, 0x0001, 0x00AB, 0x0094, GI_TUNIC_ZORA, func_80A3B160, func_80A3B8B4, - func_80A3BC3C }, - { 0x00B7, 0x0008, NULL, 0x000A, 0x0010, 0x00AC, 0x0095, GI_HEART, func_80A3B204, func_80A3B8F0, func_80A3BB6C }, - { 0x00DF, 0x002F, func_80A3C498, 0x0064, 0x0001, 0x00AD, 0x0097, GI_MILK_BOTTLE, func_80A3B250, func_80A3B92C, - func_80A3BB6C }, - { 0x00DA, 0x0028, func_8002EBCC, 0x0064, 0x0001, 0x00AE, 0x0099, GI_WEIRD_EGG, func_80A3B2AC, func_80A3B968, - func_80A3BB6C }, - { 0x00DF, 0x002F, func_80A3C498, 0x2710, 0x0001, 0x00B4, 0x0085, GI_NONE, func_80A3B308, func_80A3B9A4, - func_80A3BB6C }, - { 0x00DA, 0x0028, func_8002EBCC, 0x2710, 0x0001, 0x00B5, 0x0085, GI_NONE, func_80A3B318, func_80A3B9D4, - func_80A3BB6C }, - { 0x00D9, 0x0027, func_8002EBCC, 0x0064, 0x000A, 0x00BC, 0x008C, GI_BOMBCHUS_10, func_80A3B328, NULL, + { OBJECT_GI_BOMB_2, GID_BOMBCHU, func_8002EBCC, 0x0064, 0x000A, 0x00BC, 0x008C, GI_BOMBCHUS_10, func_80A3B328, NULL, func_80A3BC6C }, - { 0x00D9, 0x0027, func_8002EBCC, 0x00B4, 0x0014, 0x0061, 0x002A, GI_BOMBCHUS_20, func_80A3B328, NULL, + { OBJECT_GI_BOMB_2, GID_BOMBCHU, func_8002EBCC, 0x00B4, 0x0014, 0x0061, 0x002A, GI_BOMBCHUS_20, func_80A3B328, NULL, func_80A3BC6C }, - { 0x00D9, 0x0027, func_8002EBCC, 0x00B4, 0x0014, 0x0061, 0x002A, GI_BOMBCHUS_20, func_80A3B328, NULL, + { OBJECT_GI_BOMB_2, GID_BOMBCHU, func_8002EBCC, 0x00B4, 0x0014, 0x0061, 0x002A, GI_BOMBCHUS_20, func_80A3B328, NULL, func_80A3BC6C }, - { 0x00D9, 0x0027, func_8002EBCC, 0x0064, 0x000A, 0x00BC, 0x008C, GI_BOMBCHUS_10, func_80A3B328, NULL, + { OBJECT_GI_BOMB_2, GID_BOMBCHU, func_8002EBCC, 0x0064, 0x000A, 0x00BC, 0x008C, GI_BOMBCHUS_10, func_80A3B328, NULL, func_80A3BC6C }, - { 0x00D9, 0x0027, func_8002EBCC, 0x0064, 0x000A, 0x00BC, 0x008C, GI_BOMBCHUS_10, func_80A3B328, NULL, + { OBJECT_GI_BOMB_2, GID_BOMBCHU, func_8002EBCC, 0x0064, 0x000A, 0x00BC, 0x008C, GI_BOMBCHUS_10, func_80A3B328, NULL, func_80A3BC6C }, - { 0x00D9, 0x0027, func_8002EBCC, 0x00B4, 0x0014, 0x0061, 0x002A, GI_BOMBCHUS_20, func_80A3B328, NULL, + { OBJECT_GI_BOMB_2, GID_BOMBCHU, func_8002EBCC, 0x00B4, 0x0014, 0x0061, 0x002A, GI_BOMBCHUS_20, func_80A3B328, NULL, func_80A3BC6C }, - { 0x00D9, 0x0027, func_8002EBCC, 0x00B4, 0x0014, 0x0061, 0x002A, GI_BOMBCHUS_20, func_80A3B328, NULL, + { OBJECT_GI_BOMB_2, GID_BOMBCHU, func_8002EBCC, 0x00B4, 0x0014, 0x0061, 0x002A, GI_BOMBCHUS_20, func_80A3B328, NULL, func_80A3BC6C }, - { 0x00D9, 0x0027, func_8002EBCC, 0x0064, 0x000A, 0x00BC, 0x008C, GI_BOMBCHUS_10, func_80A3B328, NULL, + { OBJECT_GI_BOMB_2, GID_BOMBCHU, func_8002EBCC, 0x0064, 0x000A, 0x00BC, 0x008C, GI_BOMBCHUS_10, func_80A3B328, NULL, func_80A3BC6C }, - { 0x0119, 0x0047, func_8002EBCC, 0x001E, 0x001E, 0x00DF, 0x00DE, GI_SEEDS_30, func_80A3B3A8, func_80A3BA04, + { OBJECT_GI_SEED, GID_SEEDS, func_8002EBCC, 0x001E, 0x001E, 0x00DF, 0x00DE, GI_SEEDS_30, func_80A3B3A8, + func_80A3BA04, func_80A3BB6C }, + { OBJECT_GI_KI_TAN_MASK, GID_MASK_KEATON, func_8002EBCC, 0x0000, 0x0001, 0x70B2, 0x70BE, GI_MASK_KEATON, + func_80A3B3A8, func_80A3BA04, func_80A3BB6C }, + { OBJECT_GI_REDEAD_MASK, GID_MASK_SPOOKY, func_8002EBCC, 0x0000, 0x0001, 0x70B1, 0x70BD, GI_MASK_SPOOKY, + func_80A3B3A8, func_80A3BA04, func_80A3BB6C }, + { OBJECT_GI_SKJ_MASK, GID_MASK_SKULL, func_8002EBCC, 0x0000, 0x0001, 0x70B0, 0x70BC, GI_MASK_SKULL, func_80A3B3A8, + func_80A3BA04, func_80A3BB6C }, + { OBJECT_GI_RABIT_MASK, GID_MASK_BUNNY, func_8002EBCC, 0x0000, 0x0001, 0x70B3, 0x70BF, GI_MASK_BUNNY, func_80A3B3A8, + func_80A3BA04, func_80A3BB6C }, + { OBJECT_GI_TRUTH_MASK, GID_MASK_TRUTH, func_80A3C498, 0x0000, 0x0001, 0x70AF, 0x70C3, GI_MASK_TRUTH, func_80A3B3A8, + func_80A3BA04, func_80A3BB6C }, + { OBJECT_GI_ZORAMASK, GID_MASK_ZORA, NULL, 0x0000, 0x0001, 0x70B9, 0x70C1, GI_MASK_ZORA, func_80A3B3A8, + func_80A3BA04, func_80A3BB6C }, + { OBJECT_GI_GOLONMASK, GID_MASK_GORON, NULL, 0x0000, 0x0001, 0x70B8, 0x70C0, GI_MASK_GORON, func_80A3B3A8, + func_80A3BA04, func_80A3BB6C }, + { OBJECT_GI_GERUDOMASK, GID_MASK_GERUDO, NULL, 0x0000, 0x0001, 0x70BA, 0x70C2, GI_MASK_GERUDO, func_80A3B3A8, + func_80A3BA04, func_80A3BB6C }, + { OBJECT_GI_SOLDOUT, GID_SOLDOUT, func_8002EBCC, 0x0000, 0x0000, 0x00BD, 0x70C2, GI_MASK_GERUDO, func_80A3B454, NULL, + NULL }, + { OBJECT_GI_FIRE, GID_BLUE_FIRE, func_8002EBCC, 0x012C, 0x0001, 0x00B9, 0x00B8, GI_BLUE_FIRE, func_80A3B464, + func_80A3BA40, func_80A3BB6C }, + { OBJECT_GI_INSECT, GID_BUG, func_80A3C498, 0x0032, 0x0001, 0x00BB, 0x00BA, GI_BUGS, func_80A3B4D8, func_80A3BA40, func_80A3BB6C }, - { 0x0134, 0x0030, func_8002EBCC, 0x0000, 0x0001, 0x70B2, 0x70BE, GI_MASK_KEATON, func_80A3B3A8, func_80A3BA04, + { OBJECT_GI_GHOST, GID_BIG_POE, func_80A3C498, 0x0032, 0x0001, 0x506F, 0x5070, GI_BIG_POE, func_80A3B54C, + func_80A3BA40, func_80A3BB6C }, + { OBJECT_GI_GHOST, GID_POE, func_80A3C498, 0x001E, 0x0001, 0x506D, 0x506E, GI_POE, func_80A3B54C, func_80A3BA40, func_80A3BB6C }, - { 0x0135, 0x0031, func_8002EBCC, 0x0000, 0x0001, 0x70B1, 0x70BD, GI_MASK_SPOOKY, func_80A3B3A8, func_80A3BA04, - func_80A3BB6C }, - { 0x0136, 0x004E, func_8002EBCC, 0x0000, 0x0001, 0x70B0, 0x70BC, GI_MASK_SKULL, func_80A3B3A8, func_80A3BA04, - func_80A3BB6C }, - { 0x0137, 0x004F, func_8002EBCC, 0x0000, 0x0001, 0x70B3, 0x70BF, GI_MASK_BUNNY, func_80A3B3A8, func_80A3BA04, - func_80A3BB6C }, - { 0x0138, 0x0050, func_80A3C498, 0x0000, 0x0001, 0x70AF, 0x70C3, GI_MASK_TRUTH, func_80A3B3A8, func_80A3BA04, - func_80A3BB6C }, - { 0x0151, 0x005B, NULL, 0x0000, 0x0001, 0x70B9, 0x70C1, GI_MASK_ZORA, func_80A3B3A8, func_80A3BA04, func_80A3BB6C }, - { 0x0150, 0x005A, NULL, 0x0000, 0x0001, 0x70B8, 0x70C0, GI_MASK_GORON, func_80A3B3A8, func_80A3BA04, - func_80A3BB6C }, - { 0x0152, 0x005C, NULL, 0x0000, 0x0001, 0x70BA, 0x70C2, GI_MASK_GERUDO, func_80A3B3A8, func_80A3BA04, - func_80A3BB6C }, - { 0x0148, 0x0058, func_8002EBCC, 0x0000, 0x0000, 0x00BD, 0x70C2, GI_MASK_GERUDO, func_80A3B454, NULL, NULL }, - { 0x0173, 0x0066, func_8002EBCC, 0x012C, 0x0001, 0x00B9, 0x00B8, GI_BLUE_FIRE, func_80A3B464, func_80A3BA40, - func_80A3BB6C }, - { 0x0174, 0x0067, func_80A3C498, 0x0032, 0x0001, 0x00BB, 0x00BA, GI_BUGS, func_80A3B4D8, func_80A3BA40, - func_80A3BB6C }, - { 0x0176, 0x006F, func_80A3C498, 0x0032, 0x0001, 0x506F, 0x5070, GI_BIG_POE, func_80A3B54C, func_80A3BA40, - func_80A3BB6C }, - { 0x0176, 0x0069, func_80A3C498, 0x001E, 0x0001, 0x506D, 0x506E, GI_POE, func_80A3B54C, func_80A3BA40, - func_80A3BB6C }, - { 0x0177, 0x006A, func_80A3C498, 0x0032, 0x0001, 0x00B7, 0x00B6, GI_FAIRY, func_80A3B5C0, func_80A3BA40, - func_80A3BB6C }, - { 0x00D8, 0x0024, func_8002EBCC, 0x0014, 0x000A, 0x00A0, 0x008A, GI_ARROWS_SMALL, func_80A3AAA8, func_80A3B634, - func_80A3BB6C }, - { 0x00CE, 0x001F, func_8002EBCC, 0x0050, 0x0014, 0x001C, 0x0006, GI_BOMBS_20, func_80A3AB58, func_80A3B678, - func_80A3BB6C }, - { 0x00CE, 0x001F, func_8002EBCC, 0x0078, 0x001E, 0x001D, 0x001E, GI_BOMBS_30, func_80A3AB58, func_80A3B678, - func_80A3BB6C }, - { 0x00CE, 0x001F, func_8002EBCC, 0x0023, 0x0005, 0x00CB, 0x00CA, GI_BOMBS_5, func_80A3AB58, func_80A3B678, - func_80A3BB6C }, - { 0x00EB, 0x0037, func_8002EBCC, 0x0028, 0x0001, 0x0064, 0x0062, GI_POTION_RED, func_80A3ADD4, func_80A3BA40, - func_80A3BB6C }, - { 0x00EB, 0x0037, func_8002EBCC, 0x0032, 0x0001, 0x0065, 0x0063, GI_POTION_RED, func_80A3ADD4, func_80A3BA40, + { OBJECT_GI_SOUL, GID_FAIRY, func_80A3C498, 0x0032, 0x0001, 0x00B7, 0x00B6, GI_FAIRY, func_80A3B5C0, func_80A3BA40, func_80A3BB6C }, + { OBJECT_GI_ARROW, GID_ARROWS_SMALL, func_8002EBCC, 0x0014, 0x000A, 0x00A0, 0x008A, GI_ARROWS_SMALL, func_80A3AAA8, + func_80A3B634, func_80A3BB6C }, + { OBJECT_GI_BOMB_1, GID_BOMB, func_8002EBCC, 0x0050, 0x0014, 0x001C, 0x0006, GI_BOMBS_20, func_80A3AB58, + func_80A3B678, func_80A3BB6C }, + { OBJECT_GI_BOMB_1, GID_BOMB, func_8002EBCC, 0x0078, 0x001E, 0x001D, 0x001E, GI_BOMBS_30, func_80A3AB58, + func_80A3B678, func_80A3BB6C }, + { OBJECT_GI_BOMB_1, GID_BOMB, func_8002EBCC, 0x0023, 0x0005, 0x00CB, 0x00CA, GI_BOMBS_5, func_80A3AB58, + func_80A3B678, func_80A3BB6C }, + { OBJECT_GI_LIQUID, GID_POTION_RED, func_8002EBCC, 0x0028, 0x0001, 0x0064, 0x0062, GI_POTION_RED, func_80A3ADD4, + func_80A3BA40, func_80A3BB6C }, + { OBJECT_GI_LIQUID, GID_POTION_RED, func_8002EBCC, 0x0032, 0x0001, 0x0065, 0x0063, GI_POTION_RED, func_80A3ADD4, + func_80A3BA40, func_80A3BB6C }, }; static s16 D_80A3CCB4[8] = { 0x0005, 0x000A, 0x000F, 0x0014, 0x0019, 0x001E, 0x0023, 0x0028 }; @@ -959,7 +964,7 @@ void func_80A3BFE4(EnGirlA* this, GlobalContext* globalCtx) { this->unk_1C8 = tmp->unk_08; this->unk_1CA = tmp->unk_0A; this->unk_1D0 = tmp->unk_04; - this->unk_1CC = tmp->unk_02; + this->giDrawId = tmp->giDrawId; osSyncPrintf("%s(%2d)\n", D_80A3C590[params], params); this->actor.flags &= ~1; Actor_SetScale(&this->actor, 0.25f); @@ -1011,5 +1016,5 @@ void func_80A3C4D4(Actor* thisx, GlobalContext* globalCtx) { if (this->unk_1D0 != NULL) { this->unk_1D0(thisx, globalCtx, 0); } - func_800694A0(globalCtx, this->unk_1CC); + GetItem_Draw(globalCtx, this->giDrawId); } diff --git a/src/overlays/actors/ovl_En_GirlA/z_en_girla.h b/src/overlays/actors/ovl_En_GirlA/z_en_girla.h index 202940f12f..97c94a62bc 100644 --- a/src/overlays/actors/ovl_En_GirlA/z_en_girla.h +++ b/src/overlays/actors/ovl_En_GirlA/z_en_girla.h @@ -35,7 +35,7 @@ typedef struct EnGirlA { /* 0x01C4 */ void* unk_1C4; /* 0x01C8 */ s16 unk_1C8; /* 0x01CA */ s16 unk_1CA; - /* 0x01CC */ s16 unk_1CC; + /* 0x01CC */ s16 giDrawId; /* 0x01CE */ s16 unk_1CE; /* 0x01D0 */ EnGirlA3Func unk_1D0; } EnGirlA; // size = 0x01D4 diff --git a/src/overlays/actors/ovl_En_Si/z_en_si.c b/src/overlays/actors/ovl_En_Si/z_en_si.c index 60b91ce022..2be102d975 100644 --- a/src/overlays/actors/ovl_En_Si/z_en_si.c +++ b/src/overlays/actors/ovl_En_Si/z_en_si.c @@ -155,6 +155,6 @@ void EnSi_Draw(Actor* thisx, GlobalContext* globalCtx) { if (this->actionFunc != func_80AFB950) { func_8002ED80(&this->actor, globalCtx, 0); func_8002EBCC(&this->actor, globalCtx, 0); - func_800694A0(globalCtx, 0x74); + GetItem_Draw(globalCtx, GID_SKULL_TOKEN_2); } } 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 59faccdef6..a1ecc5ce53 100644 --- a/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c +++ b/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c @@ -44,7 +44,8 @@ static s16 sObjectIds[] = { // Indexes passed to the item table in z_draw.c static s16 sDrawItemIndexes[] = { - 0x0000, 0x0044, 0x002B, 0x0015, 0x0029, 0x002A, 0x0001, 0x005F, 0x006C, 0x006D, 0x006E, 0x0070, 0x0013, 0x0001, + GID_BOTTLE, GID_LETTER_RUTO, GID_SHIELD_HYLIAN, GID_QUIVER_40, GID_SCALE_SILVER, GID_SCALE_GOLDEN, 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[] = { @@ -71,7 +72,7 @@ void ItemEtcetera_Init(Actor* thisx, GlobalContext* globalCtx) { } else { this->objBankIndex = objBankIndex; } - this->drawId = sDrawItemIndexes[type]; + this->giDrawId = sDrawItemIndexes[type]; this->getItemId = sGetItemIds[type]; this->futureActionFunc = func_80B85824; this->drawFunc = ItemEtcetera_Draw; @@ -204,7 +205,7 @@ void ItemEtcetera_DrawThroughLens(Actor* thisx, GlobalContext* globalCtx) { if (globalCtx->actorCtx.unk_03 != 0) { func_8002EBCC(&this->actor, globalCtx, 0); func_8002ED80(&this->actor, globalCtx, 0); - func_800694A0(globalCtx, this->drawId); + GetItem_Draw(globalCtx, this->giDrawId); } } @@ -213,5 +214,5 @@ void ItemEtcetera_Draw(Actor* thisx, GlobalContext* globalCtx) { func_8002EBCC(&this->actor, globalCtx, 0); func_8002ED80(&this->actor, globalCtx, 0); - func_800694A0(globalCtx, this->drawId); + GetItem_Draw(globalCtx, this->giDrawId); } 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 54e7b4a716..7c6551dcd6 100644 --- a/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.h +++ b/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.h @@ -11,7 +11,7 @@ typedef void (*ItemEtceteraActionFunc)(struct ItemEtcetera*, GlobalContext*); typedef struct ItemEtcetera { /* 0x0000 */ Actor actor; /* 0x014C */ ItemEtceteraActionFunc futureActionFunc; - /* 0x0150 */ s16 drawId; + /* 0x0150 */ s16 giDrawId; /* 0x0152 */ s16 getItemId; /* 0x0154 */ u8 objBankIndex; /* 0x0158 */ ActorFunc drawFunc; diff --git a/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c b/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c index 47fdd74df2..683b24477d 100644 --- a/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c +++ b/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c @@ -56,5 +56,5 @@ void ItemInbox_Draw(Actor* thisx, GlobalContext* globalCtx) { func_8002EBCC(&this->actor, globalCtx, 0); func_8002ED80(&this->actor, globalCtx, 0); - func_800694A0(globalCtx, this->actor.params & 0xFF); + GetItem_Draw(globalCtx, this->actor.params & 0xFF); } diff --git a/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c b/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c index 19780cff9d..b4834c4fb0 100644 --- a/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c +++ b/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c @@ -202,5 +202,5 @@ void ItemOcarina_Draw(Actor* thisx, GlobalContext* globalCtx) { func_8002EBCC(thisx, globalCtx, 0); func_8002ED80(thisx, globalCtx, 0); - func_800694A0(globalCtx, 0x2E); + GetItem_Draw(globalCtx, GID_OCARINA_TIME); } diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 0a51a7bd57..30ac002393 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -488,129 +488,129 @@ u16 D_8085361C[] = { }; GetItemEntry sGetItemTable[] = { - GET_ITEM(ITEM_BOMBS_5, OBJECT_GI_BOMB_1, 0x1F, 0x32, 0x59, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_NUTS_5, OBJECT_GI_NUTS, 0x11, 0x34, 0x0C, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_BOMBCHU, OBJECT_GI_BOMB_2, 0x27, 0x33, 0x80, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_BOW, OBJECT_GI_BOW, 0x34, 0x31, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_SLINGSHOT, OBJECT_GI_PACHINKO, 0x32, 0x30, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_BOOMERANG, OBJECT_GI_BOOMERANG, 0x33, 0x35, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_STICK, OBJECT_GI_STICK, 0x1A, 0x37, 0x0D, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_HOOKSHOT, OBJECT_GI_HOOKSHOT, 0x2C, 0x36, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_LONGSHOT, OBJECT_GI_HOOKSHOT, 0x2D, 0x4F, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_LENS, OBJECT_GI_GLASSES, 0x35, 0x39, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_LETTER_ZELDA, OBJECT_GI_LETTER, 0x3A, 0x69, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_OCARINA_TIME, OBJECT_GI_OCARINA, 0x2E, 0x3A, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_HAMMER, OBJECT_GI_HAMMER, 0x40, 0x38, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_COJIRO, OBJECT_GI_NIWATORI, 0x5D, 0x02, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_BOTTLE, OBJECT_GI_BOTTLE, 0x00, 0x42, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_POTION_RED, OBJECT_GI_LIQUID, 0x37, 0x43, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_POTION_GREEN, OBJECT_GI_LIQUID, 0x36, 0x44, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_POTION_BLUE, OBJECT_GI_LIQUID, 0x38, 0x45, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_FAIRY, OBJECT_GI_BOTTLE, 0x00, 0x46, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_MILK_BOTTLE, OBJECT_GI_MILK, 0x2F, 0x98, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_LETTER_RUTO, OBJECT_GI_BOTTLE_LETTER, 0x44, 0x99, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_BEAN, OBJECT_GI_BEAN, 0x3D, 0x48, 0x80, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_MASK_SKULL, OBJECT_GI_SKJ_MASK, 0x4E, 0x10, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_MASK_SPOOKY, OBJECT_GI_REDEAD_MASK, 0x31, 0x11, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_CHICKEN, OBJECT_GI_NIWATORI, 0x43, 0x48, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_MASK_KEATON, OBJECT_GI_KI_TAN_MASK, 0x30, 0x12, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_MASK_BUNNY, OBJECT_GI_RABIT_MASK, 0x4F, 0x13, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_MASK_TRUTH, OBJECT_GI_TRUTH_MASK, 0x50, 0x17, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_POCKET_EGG, OBJECT_GI_EGG, 0x28, 0x01, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_POCKET_CUCCO, OBJECT_GI_NIWATORI, 0x43, 0x48, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_ODD_MUSHROOM, OBJECT_GI_MUSHROOM, 0x53, 0x03, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_ODD_POTION, OBJECT_GI_POWDER, 0x52, 0x04, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_SAW, OBJECT_GI_SAW, 0x3F, 0x05, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_SWORD_BROKEN, OBJECT_GI_BROKENSWORD, 0x55, 0x08, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_PRESCRIPTION, OBJECT_GI_PRESCRIPTION, 0x56, 0x09, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_FROG, OBJECT_GI_FROG, 0x59, 0x0D, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_EYEDROPS, OBJECT_GI_EYE_LOTION, 0x51, 0x0E, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_CLAIM_CHECK, OBJECT_GI_TICKETSTONE, 0x54, 0x0A, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_SWORD_KOKIRI, OBJECT_GI_SWORD_1, 0x73, 0xA4, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_SWORD_BGS, OBJECT_GI_LONGSWORD, 0x42, 0x4B, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_SHIELD_DEKU, OBJECT_GI_SHIELD_1, 0x1C, 0x4C, 0xA0, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_SHIELD_HYLIAN, OBJECT_GI_SHIELD_2, 0x2B, 0x4D, 0xA0, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_SHIELD_MIRROR, OBJECT_GI_SHIELD_3, 0x39, 0x4E, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_TUNIC_GORON, OBJECT_GI_CLOTHES, 0x3B, 0x50, 0xA0, CHEST_ANIM_LONG), - GET_ITEM(ITEM_TUNIC_ZORA, OBJECT_GI_CLOTHES, 0x3C, 0x51, 0xA0, CHEST_ANIM_LONG), - GET_ITEM(ITEM_BOOTS_IRON, OBJECT_GI_BOOTS_2, 0x46, 0x53, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_BOOTS_HOVER, OBJECT_GI_HOVERBOOTS, 0x5E, 0x54, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_QUIVER_40, OBJECT_GI_ARROWCASE, 0x15, 0x56, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_QUIVER_50, OBJECT_GI_ARROWCASE, 0x16, 0x57, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_BOMB_BAG_20, OBJECT_GI_BOMBPOUCH, 0x17, 0x58, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_BOMB_BAG_30, OBJECT_GI_BOMBPOUCH, 0x18, 0x59, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_BOMB_BAG_40, OBJECT_GI_BOMBPOUCH, 0x19, 0x5A, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_GAUNTLETS_SILVER, OBJECT_GI_GLOVES, 0x48, 0x5B, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_GAUNTLETS_GOLD, OBJECT_GI_GLOVES, 0x49, 0x5C, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_SCALE_SILVER, OBJECT_GI_SCALE, 0x29, 0xCD, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_SCALE_GOLDEN, OBJECT_GI_SCALE, 0x2A, 0xCE, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_STONE_OF_AGONY, OBJECT_GI_MAP, 0x20, 0x68, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_GERUDO_CARD, OBJECT_GI_GERUDO, 0x23, 0x7B, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_OCARINA_FAIRY, OBJECT_GI_OCARINA_0, 0x45, 0x3A, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_SEEDS, OBJECT_GI_SEED, 0x47, 0xDC, 0x50, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_HEART_CONTAINER, OBJECT_GI_HEARTS, 0x12, 0xC6, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_HEART_PIECE_2, OBJECT_GI_HEARTS, 0x13, 0xC2, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_KEY_BOSS, OBJECT_GI_BOSSKEY, 0x09, 0xC7, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_COMPASS, OBJECT_GI_COMPASS, 0x0A, 0x67, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_DUNGEON_MAP, OBJECT_GI_MAP, 0x1B, 0x66, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_KEY_SMALL, OBJECT_GI_KEY, 0x01, 0x60, 0x80, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_MAGIC_SMALL, OBJECT_GI_MAGICPOT, 0x1D, 0x52, 0x6F, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_MAGIC_LARGE, OBJECT_GI_MAGICPOT, 0x1E, 0x52, 0x6E, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_WALLET_ADULT, OBJECT_GI_PURSE, 0x21, 0x5E, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_WALLET_GIANT, OBJECT_GI_PURSE, 0x22, 0x5F, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_WEIRD_EGG, OBJECT_GI_EGG, 0x28, 0x9A, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_HEART, OBJECT_GI_HEART, 0x08, 0x55, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_ARROWS_SMALL, OBJECT_GI_ARROW, 0x24, 0xE6, 0x48, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_ARROWS_MEDIUM, OBJECT_GI_ARROW, 0x25, 0xE6, 0x49, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_ARROWS_LARGE, OBJECT_GI_ARROW, 0x26, 0xE6, 0x4A, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_RUPEE_GREEN, OBJECT_GI_RUPY, 0x6C, 0x6F, 0x00, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_RUPEE_BLUE, OBJECT_GI_RUPY, 0x6D, 0xCC, 0x01, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_RUPEE_RED, OBJECT_GI_RUPY, 0x6E, 0xF0, 0x02, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_HEART_CONTAINER, OBJECT_GI_HEARTS, 0x12, 0xC6, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_MILK, OBJECT_GI_MILK, 0x2F, 0x98, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_MASK_GORON, OBJECT_GI_GOLONMASK, 0x5A, 0x14, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_MASK_ZORA, OBJECT_GI_ZORAMASK, 0x5B, 0x15, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_MASK_GERUDO, OBJECT_GI_GERUDOMASK, 0x5C, 0x16, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_BRACELET, OBJECT_GI_BRACELET, 0x57, 0x79, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_RUPEE_PURPLE, OBJECT_GI_RUPY, 0x70, 0xF1, 0x14, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_RUPEE_GOLD, OBJECT_GI_RUPY, 0x71, 0xF2, 0x13, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_SWORD_BGS, OBJECT_GI_LONGSWORD, 0x42, 0x0C, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_ARROW_FIRE, OBJECT_GI_M_ARROW, 0x5F, 0x70, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_ARROW_ICE, OBJECT_GI_M_ARROW, 0x60, 0x71, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_ARROW_LIGHT, OBJECT_GI_M_ARROW, 0x61, 0x72, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_SKULL_TOKEN, OBJECT_GI_SUTARU, 0x62, 0xB4, 0x80, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_DINS_FIRE, OBJECT_GI_GODDESS, 0x63, 0xAD, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_FARORES_WIND, OBJECT_GI_GODDESS, 0x64, 0xAE, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_NAYRUS_LOVE, OBJECT_GI_GODDESS, 0x65, 0xAF, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_BULLET_BAG_30, OBJECT_GI_DEKUPOUCH, 0x6B, 0x07, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_BULLET_BAG_40, OBJECT_GI_DEKUPOUCH, 0x6B, 0x07, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_STICKS_5, OBJECT_GI_STICK, 0x1A, 0x37, 0x0D, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_STICKS_10, OBJECT_GI_STICK, 0x1A, 0x37, 0x0D, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_NUTS_5, OBJECT_GI_NUTS, 0x11, 0x34, 0x0C, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_NUTS_10, OBJECT_GI_NUTS, 0x11, 0x34, 0x0C, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_BOMB, OBJECT_GI_BOMB_1, 0x1F, 0x32, 0x59, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_BOMBS_10, OBJECT_GI_BOMB_1, 0x1F, 0x32, 0x59, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_BOMBS_20, OBJECT_GI_BOMB_1, 0x1F, 0x32, 0x59, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_BOMBS_30, OBJECT_GI_BOMB_1, 0x1F, 0x32, 0x59, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_SEEDS_30, OBJECT_GI_SEED, 0x47, 0xDC, 0x50, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_BOMBCHUS_5, OBJECT_GI_BOMB_2, 0x27, 0x33, 0x80, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_BOMBCHUS_20, OBJECT_GI_BOMB_2, 0x27, 0x33, 0x80, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_FISH, OBJECT_GI_FISH, 0x3E, 0x47, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_BUG, OBJECT_GI_INSECT, 0x67, 0x7A, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_BLUE_FIRE, OBJECT_GI_FIRE, 0x66, 0x5D, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_POE, OBJECT_GI_GHOST, 0x69, 0x97, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_BIG_POE, OBJECT_GI_GHOST, 0x6F, 0xF9, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_KEY_SMALL, OBJECT_GI_KEY, 0x01, 0xF3, 0x80, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_RUPEE_GREEN, OBJECT_GI_RUPY, 0x6C, 0xF4, 0x00, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_RUPEE_BLUE, OBJECT_GI_RUPY, 0x6D, 0xF5, 0x01, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_RUPEE_RED, OBJECT_GI_RUPY, 0x6E, 0xF6, 0x02, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_RUPEE_PURPLE, OBJECT_GI_RUPY, 0x70, 0xF7, 0x14, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_HEART_PIECE_2, OBJECT_GI_HEARTS, 0x13, 0xFA, 0x80, CHEST_ANIM_LONG), - GET_ITEM(ITEM_STICK_UPGRADE_20, OBJECT_GI_STICK, 0x1A, 0x90, 0x80, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_STICK_UPGRADE_30, OBJECT_GI_STICK, 0x1A, 0x91, 0x80, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_NUT_UPGRADE_30, OBJECT_GI_NUTS, 0x11, 0xA7, 0x80, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_NUT_UPGRADE_40, OBJECT_GI_NUTS, 0x11, 0xA8, 0x80, CHEST_ANIM_SHORT), - GET_ITEM(ITEM_BULLET_BAG_50, OBJECT_GI_DEKUPOUCH, 0x72, 0x6C, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_BOMBS_5, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_NUTS_5, OBJECT_GI_NUTS, GID_NUTS, 0x34, 0x0C, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_BOMBCHU, OBJECT_GI_BOMB_2, GID_BOMBCHU, 0x33, 0x80, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_BOW, OBJECT_GI_BOW, GID_BOW, 0x31, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_SLINGSHOT, OBJECT_GI_PACHINKO, GID_SLINGSHOT, 0x30, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_BOOMERANG, OBJECT_GI_BOOMERANG, GID_BOOMERANG, 0x35, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_STICK, OBJECT_GI_STICK, GID_STICK, 0x37, 0x0D, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_HOOKSHOT, OBJECT_GI_HOOKSHOT, GID_HOOKSHOT, 0x36, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_LONGSHOT, OBJECT_GI_HOOKSHOT, GID_LONGSHOT, 0x4F, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_LENS, OBJECT_GI_GLASSES, GID_LENS, 0x39, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_LETTER_ZELDA, OBJECT_GI_LETTER, GID_LETTER_ZELDA, 0x69, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_OCARINA_TIME, OBJECT_GI_OCARINA, GID_OCARINA_TIME, 0x3A, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_HAMMER, OBJECT_GI_HAMMER, GID_HAMMER, 0x38, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_COJIRO, OBJECT_GI_NIWATORI, GID_COJIRO, 0x02, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_BOTTLE, OBJECT_GI_BOTTLE, GID_BOTTLE, 0x42, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_POTION_RED, OBJECT_GI_LIQUID, GID_POTION_RED, 0x43, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_POTION_GREEN, OBJECT_GI_LIQUID, GID_POTION_GREEN, 0x44, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_POTION_BLUE, OBJECT_GI_LIQUID, GID_POTION_BLUE, 0x45, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_FAIRY, OBJECT_GI_BOTTLE, GID_BOTTLE, 0x46, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_MILK_BOTTLE, OBJECT_GI_MILK, GID_MILK, 0x98, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_LETTER_RUTO, OBJECT_GI_BOTTLE_LETTER, GID_LETTER_RUTO, 0x99, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_BEAN, OBJECT_GI_BEAN, GID_BEAN, 0x48, 0x80, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_MASK_SKULL, OBJECT_GI_SKJ_MASK, GID_MASK_SKULL, 0x10, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_MASK_SPOOKY, OBJECT_GI_REDEAD_MASK, GID_MASK_SPOOKY, 0x11, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_CHICKEN, OBJECT_GI_NIWATORI, GID_CHICKEN, 0x48, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_MASK_KEATON, OBJECT_GI_KI_TAN_MASK, GID_MASK_KEATON, 0x12, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_MASK_BUNNY, OBJECT_GI_RABIT_MASK, GID_MASK_BUNNY, 0x13, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_MASK_TRUTH, OBJECT_GI_TRUTH_MASK, GID_MASK_TRUTH, 0x17, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_POCKET_EGG, OBJECT_GI_EGG, GID_EGG, 0x01, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_POCKET_CUCCO, OBJECT_GI_NIWATORI, GID_CHICKEN, 0x48, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_ODD_MUSHROOM, OBJECT_GI_MUSHROOM, GID_ODD_MUSHROOM, 0x03, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_ODD_POTION, OBJECT_GI_POWDER, GID_ODD_POTION, 0x04, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_SAW, OBJECT_GI_SAW, GID_SAW, 0x05, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_SWORD_BROKEN, OBJECT_GI_BROKENSWORD, GID_SWORD_BROKEN, 0x08, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_PRESCRIPTION, OBJECT_GI_PRESCRIPTION, GID_PRESCRIPTION, 0x09, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_FROG, OBJECT_GI_FROG, GID_FROG, 0x0D, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_EYEDROPS, OBJECT_GI_EYE_LOTION, GID_EYEDROPS, 0x0E, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_CLAIM_CHECK, OBJECT_GI_TICKETSTONE, GID_CLAIM_CHECK, 0x0A, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_SWORD_KOKIRI, OBJECT_GI_SWORD_1, GID_SWORD_KOKIRI, 0xA4, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_SWORD_BGS, OBJECT_GI_LONGSWORD, GID_SWORD_BGS, 0x4B, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_SHIELD_DEKU, OBJECT_GI_SHIELD_1, GID_SHIELD_DEKU, 0x4C, 0xA0, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_SHIELD_HYLIAN, OBJECT_GI_SHIELD_2, GID_SHIELD_HYLIAN, 0x4D, 0xA0, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_SHIELD_MIRROR, OBJECT_GI_SHIELD_3, GID_SHIELD_MIRROR, 0x4E, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_TUNIC_GORON, OBJECT_GI_CLOTHES, GID_TUNIC_GORON, 0x50, 0xA0, CHEST_ANIM_LONG), + GET_ITEM(ITEM_TUNIC_ZORA, OBJECT_GI_CLOTHES, GID_TUNIC_ZORA, 0x51, 0xA0, CHEST_ANIM_LONG), + GET_ITEM(ITEM_BOOTS_IRON, OBJECT_GI_BOOTS_2, GID_BOOTS_IRON, 0x53, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_BOOTS_HOVER, OBJECT_GI_HOVERBOOTS, GID_BOOTS_HOVER, 0x54, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_QUIVER_40, OBJECT_GI_ARROWCASE, GID_QUIVER_40, 0x56, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_QUIVER_50, OBJECT_GI_ARROWCASE, GID_QUIVER_50, 0x57, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_BOMB_BAG_20, OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_20, 0x58, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_BOMB_BAG_30, OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_30, 0x59, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_BOMB_BAG_40, OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_40, 0x5A, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_GAUNTLETS_SILVER, OBJECT_GI_GLOVES, GID_GAUNTLETS_SILVER, 0x5B, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_GAUNTLETS_GOLD, OBJECT_GI_GLOVES, GID_GAUNTLETS_GOLD, 0x5C, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_SCALE_SILVER, OBJECT_GI_SCALE, GID_SCALE_SILVER, 0xCD, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_SCALE_GOLDEN, OBJECT_GI_SCALE, GID_SCALE_GOLDEN, 0xCE, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_STONE_OF_AGONY, OBJECT_GI_MAP, GID_STONE_OF_AGONY, 0x68, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_GERUDO_CARD, OBJECT_GI_GERUDO, GID_GERUDO_CARD, 0x7B, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_OCARINA_FAIRY, OBJECT_GI_OCARINA_0, GID_OCARINA_FAIRY, 0x3A, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_SEEDS, OBJECT_GI_SEED, GID_SEEDS, 0xDC, 0x50, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_HEART_CONTAINER, OBJECT_GI_HEARTS, GID_HEART_CONTAINER, 0xC6, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_HEART_PIECE_2, OBJECT_GI_HEARTS, GID_HEART_PIECE, 0xC2, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_KEY_BOSS, OBJECT_GI_BOSSKEY, GID_KEY_BOSS, 0xC7, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_COMPASS, OBJECT_GI_COMPASS, GID_COMPASS, 0x67, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_DUNGEON_MAP, OBJECT_GI_MAP, GID_DUNGEON_MAP, 0x66, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_KEY_SMALL, OBJECT_GI_KEY, GID_KEY_SMALL, 0x60, 0x80, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_MAGIC_SMALL, OBJECT_GI_MAGICPOT, GID_MAGIC_SMALL, 0x52, 0x6F, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_MAGIC_LARGE, OBJECT_GI_MAGICPOT, GID_MAGIC_LARGE, 0x52, 0x6E, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_WALLET_ADULT, OBJECT_GI_PURSE, GID_WALLET_ADULT, 0x5E, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_WALLET_GIANT, OBJECT_GI_PURSE, GID_WALLET_GIANT, 0x5F, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_WEIRD_EGG, OBJECT_GI_EGG, GID_EGG, 0x9A, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_HEART, OBJECT_GI_HEART, GID_HEART, 0x55, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_ARROWS_SMALL, OBJECT_GI_ARROW, GID_ARROWS_SMALL, 0xE6, 0x48, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_ARROWS_MEDIUM, OBJECT_GI_ARROW, GID_ARROWS_MEDIUM, 0xE6, 0x49, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_ARROWS_LARGE, OBJECT_GI_ARROW, GID_ARROWS_LARGE, 0xE6, 0x4A, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_RUPEE_GREEN, OBJECT_GI_RUPY, GID_RUPEE_GREEN, 0x6F, 0x00, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_RUPEE_BLUE, OBJECT_GI_RUPY, GID_RUPEE_BLUE, 0xCC, 0x01, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_RUPEE_RED, OBJECT_GI_RUPY, GID_RUPEE_RED, 0xF0, 0x02, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_HEART_CONTAINER, OBJECT_GI_HEARTS, GID_HEART_CONTAINER, 0xC6, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_MILK, OBJECT_GI_MILK, GID_MILK, 0x98, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_MASK_GORON, OBJECT_GI_GOLONMASK, GID_MASK_GORON, 0x14, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_MASK_ZORA, OBJECT_GI_ZORAMASK, GID_MASK_ZORA, 0x15, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_MASK_GERUDO, OBJECT_GI_GERUDOMASK, GID_MASK_GERUDO, 0x16, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_BRACELET, OBJECT_GI_BRACELET, GID_BRACELET, 0x79, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_RUPEE_PURPLE, OBJECT_GI_RUPY, GID_RUPEE_PURPLE, 0xF1, 0x14, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_RUPEE_GOLD, OBJECT_GI_RUPY, GID_RUPEE_GOLD, 0xF2, 0x13, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_SWORD_BGS, OBJECT_GI_LONGSWORD, GID_SWORD_BGS, 0x0C, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_ARROW_FIRE, OBJECT_GI_M_ARROW, GID_ARROW_FIRE, 0x70, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_ARROW_ICE, OBJECT_GI_M_ARROW, GID_ARROW_ICE, 0x71, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_ARROW_LIGHT, OBJECT_GI_M_ARROW, GID_ARROW_LIGHT, 0x72, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_SKULL_TOKEN, OBJECT_GI_SUTARU, GID_SKULL_TOKEN, 0xB4, 0x80, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_DINS_FIRE, OBJECT_GI_GODDESS, GID_DINS_FIRE, 0xAD, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_FARORES_WIND, OBJECT_GI_GODDESS, GID_FARORES_WIND, 0xAE, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_NAYRUS_LOVE, OBJECT_GI_GODDESS, GID_NAYRUS_LOVE, 0xAF, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_BULLET_BAG_30, OBJECT_GI_DEKUPOUCH, GID_BULLET_BAG, 0x07, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_BULLET_BAG_40, OBJECT_GI_DEKUPOUCH, GID_BULLET_BAG, 0x07, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_STICKS_5, OBJECT_GI_STICK, GID_STICK, 0x37, 0x0D, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_STICKS_10, OBJECT_GI_STICK, GID_STICK, 0x37, 0x0D, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_NUTS_5, OBJECT_GI_NUTS, GID_NUTS, 0x34, 0x0C, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_NUTS_10, OBJECT_GI_NUTS, GID_NUTS, 0x34, 0x0C, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_BOMB, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_BOMBS_10, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_BOMBS_20, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_BOMBS_30, OBJECT_GI_BOMB_1, GID_BOMB, 0x32, 0x59, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_SEEDS_30, OBJECT_GI_SEED, GID_SEEDS, 0xDC, 0x50, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_BOMBCHUS_5, OBJECT_GI_BOMB_2, GID_BOMBCHU, 0x33, 0x80, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_BOMBCHUS_20, OBJECT_GI_BOMB_2, GID_BOMBCHU, 0x33, 0x80, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_FISH, OBJECT_GI_FISH, GID_FISH, 0x47, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_BUG, OBJECT_GI_INSECT, GID_BUG, 0x7A, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_BLUE_FIRE, OBJECT_GI_FIRE, GID_BLUE_FIRE, 0x5D, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_POE, OBJECT_GI_GHOST, GID_POE, 0x97, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_BIG_POE, OBJECT_GI_GHOST, GID_BIG_POE, 0xF9, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_KEY_SMALL, OBJECT_GI_KEY, GID_KEY_SMALL, 0xF3, 0x80, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_RUPEE_GREEN, OBJECT_GI_RUPY, GID_RUPEE_GREEN, 0xF4, 0x00, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_RUPEE_BLUE, OBJECT_GI_RUPY, GID_RUPEE_BLUE, 0xF5, 0x01, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_RUPEE_RED, OBJECT_GI_RUPY, GID_RUPEE_RED, 0xF6, 0x02, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_RUPEE_PURPLE, OBJECT_GI_RUPY, GID_RUPEE_PURPLE, 0xF7, 0x14, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_HEART_PIECE_2, OBJECT_GI_HEARTS, GID_HEART_PIECE, 0xFA, 0x80, CHEST_ANIM_LONG), + GET_ITEM(ITEM_STICK_UPGRADE_20, OBJECT_GI_STICK, GID_STICK, 0x90, 0x80, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_STICK_UPGRADE_30, OBJECT_GI_STICK, GID_STICK, 0x91, 0x80, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_NUT_UPGRADE_30, OBJECT_GI_NUTS, GID_NUTS, 0xA7, 0x80, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_NUT_UPGRADE_40, OBJECT_GI_NUTS, GID_NUTS, 0xA8, 0x80, CHEST_ANIM_SHORT), + GET_ITEM(ITEM_BULLET_BAG_50, OBJECT_GI_DEKUPOUCH, GID_BULLET_BAG_50, 0x6C, 0x80, CHEST_ANIM_LONG), GET_ITEM_NONE, GET_ITEM_NONE, };