1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 04:24:43 +00:00

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 <maximilianc64@gmail.com>
This commit is contained in:
Tharo 2021-02-12 21:57:06 +00:00 committed by GitHub
parent 5f552a369c
commit 7ee8c8011c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
96 changed files with 1453 additions and 511 deletions

View File

@ -0,0 +1,7 @@
<Root>
<File Name="object_gi_arrow" Segment="6">
<DList Name="gGiArrowSmallDL" Offset="0x0340"/>
<DList Name="gGiArrowMediumDL" Offset="0x0B90"/>
<DList Name="gGiArrowLargeDL" Offset="0x1830"/>
</File>
</Root>

View File

@ -0,0 +1,12 @@
<Root>
<File Name="object_gi_arrowcase" Segment="6">
<DList Name="gGiQuiver30InnerColorDL" Offset="0x08D0"/>
<DList Name="gGiQuiver40InnerColorDL" Offset="0x08F0"/>
<DList Name="gGiQuiver50InnerColorDL" Offset="0x0910"/>
<DList Name="gGiQuiver30OuterColorDL" Offset="0x0930"/>
<DList Name="gGiQuiver40OuterColorDL" Offset="0x0950"/>
<DList Name="gGiQuiver50OuterColorDL" Offset="0x0970"/>
<DList Name="gGiQuiverInnerDL" Offset="0x0990"/>
<DList Name="gGiQuiverOuterDL" Offset="0x0A80"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_bean" Segment="6">
<DList Name="gGiBeanDL" Offset="0x0580"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_bomb_1" Segment="6">
<DList Name="gGiBombDL" Offset="0x09A0"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_bomb_2" Segment="6">
<DList Name="gGiBombchuDL" Offset="0x04B0"/>
</File>
</Root>

View File

@ -0,0 +1,12 @@
<Root>
<File Name="object_gi_bombpouch" Segment="6">
<DList Name="gGiBombBag20BagColorDL" Offset="0x0AD0"/>
<DList Name="gGiBombBag30BagColorDL" Offset="0x0AF0"/>
<DList Name="gGiBombBag40BagColorDL" Offset="0x0B10"/>
<DList Name="gGiBombBag20RingColorDL" Offset="0x0B30"/>
<DList Name="gGiBombBag30RingColorDL" Offset="0x0B50"/>
<DList Name="gGiBombBag40RingColorDL" Offset="0x0B70"/>
<DList Name="gGiBombBagDL" Offset="0x0B90"/>
<DList Name="gGiBombBagRingDL" Offset="0x0D98"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_boomerang" Segment="6">
<DList Name="gGiBoomerangDL" Offset="0x0A30"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_boots_2" Segment="6">
<DList Name="gGiIronBootsDL" Offset="0x1630"/>
<DList Name="gGiIronBootsRivetsDL" Offset="0x1A98"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_bosskey" Segment="6">
<DList Name="gGiBossKeyDL" Offset="0x0CA0"/>
<DList Name="gGiBossKeyGemDL" Offset="0x0F08"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_bottle" Segment="6">
<DList Name="gGiBottleStopperDL" Offset="0x0670"/>
<DList Name="gGiBottleDL" Offset="0x0750"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_bottle_letter" Segment="6">
<DList Name="gGiLetterBottleContentsDL" Offset="0x08E0"/>
<DList Name="gGiLetterBottleDL" Offset="0x0AE0"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_bow" Segment="6">
<DList Name="gGiBowDL" Offset="0x0990"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_bracelet" Segment="6">
<DList Name="gGiGoronBraceletDL" Offset="0x0960"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_brokensword" Segment="6">
<DList Name="gGiBrokenGoronSwordDL" Offset="0x06E0"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_butterfly" Segment="6">
<DList Name="gGiButterflyContainerDL" Offset="0x0830"/>
<DList Name="gGiButterflyGlassDL" Offset="0x0A70"/>
</File>
</Root>

View File

@ -0,0 +1,10 @@
<Root>
<File Name="object_gi_clothes" Segment="6">
<DList Name="gGiGoronCollarColorDL" Offset="0x14E0"/>
<DList Name="gGiZoraCollarColorDL" Offset="0x1500"/>
<DList Name="gGiGoronTunicColorDL" Offset="0x1520"/>
<DList Name="gGiZoraTunicColorDL" Offset="0x1540"/>
<DList Name="gGiTunicCollarDL" Offset="0x1560"/>
<DList Name="gGiTunicDL" Offset="0x1608"/>
</File>
</Root>

View File

@ -0,0 +1,10 @@
<Root>
<File Name="object_gi_coin" Segment="6">
<DList Name="gGiYellowCoinColorDL" Offset="0x0560"/>
<DList Name="gGiRedCoinColorDL" Offset="0x0580"/>
<DList Name="gGiGreenCoinColorDL" Offset="0x05A0"/>
<DList Name="gGiBlueCoinColorDL" Offset="0x05C0"/>
<DList Name="gGiCoinDL" Offset="0x05E0"/>
<DList Name="gGiNDL" Offset="0x0768"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_compass" Segment="6">
<DList Name="gGiCompassDL" Offset="0x0960"/>
<DList Name="gGiCompassGlassDL" Offset="0x0C50"/>
</File>
</Root>

View File

@ -0,0 +1,11 @@
<Root>
<File Name="object_gi_dekupouch" Segment="6">
<DList Name="gGiBulletBagColorDL" Offset="0x0AF0"/>
<DList Name="gGiBulletBag50ColorDL" Offset="0x0B10"/>
<DList Name="gGiBulletBagStringColorDL" Offset="0x0B30"/>
<DList Name="gGiBulletBag50StringColorDL" Offset="0x0B50"/>
<DList Name="gGiBulletBagDL" Offset="0x0B70"/>
<DList Name="gGiBulletBagStringDL" Offset="0x0F48"/>
<DList Name="gGiBulletBagWritingDL" Offset="0x0FF0"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_egg" Segment="6">
<DList Name="gGiEggSetupDL" Offset="0x0FD0"/>
<DList Name="gGiEggDL" Offset="0x1008"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_eye_lotion" Segment="6">
<DList Name="gGiEyeDropsCapDL" Offset="0x0680"/>
<DList Name="gGiEyeDropsBottleDL" Offset="0x0768"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_fire" Segment="6">
<DList Name="gGiBlueFireChamberstickDL" Offset="0x0C60"/>
<DList Name="gGiBlueFireFlameDL" Offset="0x0F08"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_fish" Segment="6">
<DList Name="gGiFishDL" Offset="0x0600"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_frog" Segment="6">
<DList Name="gGiFrogDL" Offset="0x0D60"/>
<DList Name="gGiFrogEyesDL" Offset="0x1060"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_gerudo" Segment="6">
<DList Name="gGiGerudoCardDL" Offset="0x0F60"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_gerudomask" Segment="6">
<DList Name="gGiGerudoMaskDL" Offset="0x10E8"/>
</File>
</Root>

View File

@ -0,0 +1,9 @@
<Root>
<File Name="object_gi_ghost" Segment="6">
<DList Name="gGiPoeColorDL" Offset="0x0950"/>
<DList Name="gGiBigPoeColorDL" Offset="0x0970"/>
<DList Name="gGiGhostContainerLidDL" Offset="0x0990"/>
<DList Name="gGiGhostContainerGlassDL" Offset="0x0BE0"/>
<DList Name="gGiGhostContainerContentsDL" Offset="0x0CF0"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_glasses" Segment="6">
<DList Name="gGiLensDL" Offset="0x0D80"/>
<DList Name="gGiLensGlassDL" Offset="0x1010"/>
</File>
</Root>

View File

@ -0,0 +1,10 @@
<Root>
<File Name="object_gi_gloves" Segment="6">
<DList Name="gGiSilverGauntletsColorDL" Offset="0x14C0"/>
<DList Name="gGiGoldenGauntletsColorDL" Offset="0x14E0"/>
<DList Name="gGiSilverGauntletsPlateColorDL" Offset="0x1500"/>
<DList Name="gGiGoldenGauntletsPlateColorDL" Offset="0x1520"/>
<DList Name="gGiGauntletsDL" Offset="0x1540"/>
<DList Name="gGiGauntletsPlateDL" Offset="0x1860"/>
</File>
</Root>

View File

@ -0,0 +1,9 @@
<Root>
<File Name="object_gi_goddess" Segment="6">
<DList Name="gGiMagicSpellDiamondDL" Offset="0x0920"/>
<DList Name="gGiDinsFireColorDL" Offset="0x09E0"/>
<DList Name="gGiFaroresWindColorDL" Offset="0x0A00"/>
<DList Name="gGiNayrusLoveColorDL" Offset="0x0A20"/>
<DList Name="gGiMagicSpellOrbDL" Offset="0x0A40"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_golonmask" Segment="6">
<DList Name="gGiGoronMaskDL" Offset="0x14F8"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_grass" Segment="6">
<DList Name="gGiGrassDL" Offset="0x08E0"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_hammer" Segment="6">
<DList Name="gGiHammerDL" Offset="0x09D0"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_heart" Segment="6">
<DList Name="gGiRecoveryHeartDL" Offset="0x00E0"/>
</File>
</Root>

View File

@ -0,0 +1,7 @@
<Root>
<File Name="object_gi_hearts" Segment="6">
<DList Name="gGiHeartBorderDL" Offset="0x1290"/>
<DList Name="gGiHeartContainerDL" Offset="0x1470"/>
<DList Name="gGiHeartPieceDL" Offset="0x1590"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_hookshot" Segment="6">
<DList Name="gGiHookshotDL" Offset="0x0750"/>
<DList Name="gGiLongshotDL" Offset="0x1240"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_hoverboots" Segment="6">
<DList Name="gGiHoverBootsDL" Offset="0x1850"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_insect" Segment="6">
<DList Name="gGiBugsContainerDL" Offset="0x0830"/>
<DList Name="gGiBugsGlassDL" Offset="0x0B20"/>
</File>
</Root>

View File

@ -0,0 +1,10 @@
<Root>
<File Name="object_gi_jewel" Segment="6">
<DList Name="gGiKokiriEmeraldSetting" Offset="0x10E0"/>
<DList Name="gGiKokiriEmeraldGem" Offset="0x1240"/>
<DList Name="gGiGoronRubySetting" Offset="0x1FB0"/>
<DList Name="gGiGoronRubyGem" Offset="0x20A0"/>
<DList Name="gGiZoraSapphireSetting" Offset="0x3370"/>
<DList Name="gGiZoraSapphireGem" Offset="0x3530"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_key" Segment="6">
<DList Name="gGiSmallKeyDL" Offset="0x0800"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_ki_tan_mask" Segment="6">
<DList Name="gGiKeatonMaskDL" Offset="0x0AC0"/>
<DList Name="gGiKeatonMaskEyesDL" Offset="0x0D50"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_letter" Segment="6">
<DList Name="gGiLetterDL" Offset="0x0CC0"/>
<DList Name="gGiLetterWritingDL" Offset="0x0D60"/>
</File>
</Root>

View File

@ -0,0 +1,16 @@
<Root>
<File Name="object_gi_liquid" Segment="6">
<DList Name="gGiGreenPotColorDL" Offset="0x1270"/>
<DList Name="gGiRedPotColorDL" Offset="0x1290"/>
<DList Name="gGiBluePotColorDL" Offset="0x12B0"/>
<DList Name="gGiGreenLiquidColorDL" Offset="0x12D0"/>
<DList Name="gGiRedLiquidColorDL" Offset="0x12F0"/>
<DList Name="gGiBlueLiquidColorDL" Offset="0x1310"/>
<DList Name="gGiGreenPatternColorDL" Offset="0x1330"/>
<DList Name="gGiRedPatternColorDL" Offset="0x1388"/>
<DList Name="gGiBluePatternColorDL" Offset="0x13E0"/>
<DList Name="gGiPotionPotDL" Offset="0x1438"/>
<DList Name="gGiPotionLiquidDL" Offset="0x1790"/>
<DList Name="gGiPotionPatternDL" Offset="0x1848"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_longsword" Segment="6">
<DList Name="gGiBiggoronSwordDL" Offset="0x0600"/>
</File>
</Root>

View File

@ -0,0 +1,9 @@
<Root>
<File Name="object_gi_m_arrow" Segment="6">
<DList Name="gGiMagicArrowDL" Offset="0x0AE0"/>
<DList Name="gGiFireArrowColorDL" Offset="0x0CA0"/>
<DList Name="gGiIceArrowColorDL" Offset="0x0CC0"/>
<DList Name="gGiLightArrowColorDL" Offset="0x0CE0"/>
<DList Name="gGiArrowMagicDL" Offset="0x0D00"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_magicpot" Segment="6">
<DList Name="gGiMagicJarSmallDL" Offset="0x0580"/>
<DList Name="gGiMagicJarLargeDL" Offset="0x0EE0"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_map" Segment="6">
<DList Name="gGiDungeonMapDL" Offset="0x03C0"/>
<DList Name="gGiStoneOfAgonyDL" Offset="0x0B70"/>
</File>
</Root>

View File

@ -0,0 +1,11 @@
<Root>
<File Name="object_gi_medal" Segment="6">
<DList Name="gGiForestMedallionFaceDL" Offset="0x0CB0"/>
<DList Name="gGiMedallionDL" Offset="0x0E18"/>
<DList Name="gGiFireMedallionFaceDL" Offset="0x1AF0"/>
<DList Name="gGiWaterMedallionFaceDL" Offset="0x2830"/>
<DList Name="gGiSpiritMedallionFaceDL" Offset="0x3610"/>
<DList Name="gGiShadowMedallionFaceDL" Offset="0x4330"/>
<DList Name="gGiLightMedallionFaceDL" Offset="0x5220"/>
</File>
</Root>

View File

@ -0,0 +1,11 @@
<Root>
<File Name="object_gi_melody" Segment="6">
<DList Name="gGiMinuetColorDL" Offset="0x0A80"/>
<DList Name="gGiBoleroColorDL" Offset="0x0A90"/>
<DList Name="gGiSerenadeColorDL" Offset="0x0AA0"/>
<DList Name="gGiRequiemColorDL" Offset="0x0AB0"/>
<DList Name="gGiNocturneColorDL" Offset="0x0AC0"/>
<DList Name="gGiPreludeColorDL" Offset="0x0AD0"/>
<DList Name="gGiSongNoteDL" Offset="0x0AE0"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_milk" Segment="6">
<DList Name="gGiMilkBottleContentsDL" Offset="0x1060"/>
<DList Name="gGiMilkBottleDL" Offset="0x1288"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_mushroom" Segment="6">
<DList Name="gGiOddMushroomDL" Offset="0x09D0"/>
</File>
</Root>

View File

@ -0,0 +1,8 @@
<Root>
<File Name="object_gi_niwatori" Segment="6">
<DList Name="gGiChickenColorDL" Offset="0x15F0"/>
<DList Name="gGiCojiroColorDL" Offset="0x1610"/>
<DList Name="gGiChickenDL" Offset="0x1630"/>
<DList Name="gGiChickenEyesDL" Offset="0x1948"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_nuts" Segment="6">
<DList Name="gGiNutDL" Offset="0x0E90"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_ocarina" Segment="6">
<DList Name="gGiOcarinaTimeDL" Offset="0x08C0"/>
<DList Name="gGiOcarinaTimeHolesDL" Offset="0x0AF8"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_ocarina_0" Segment="6">
<DList Name="gGiOcarinaFairyDL" Offset="0x08E0"/>
<DList Name="gGiOcarinaFairyHolesDL" Offset="0x0B58"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_pachinko" Segment="6">
<DList Name="gGiSlingshotDL" Offset="0x0940"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_powder" Segment="6">
<DList Name="gGiOddPotionDL" Offset="0x08B0"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_prescription" Segment="6">
<DList Name="gGiPrescriptionDL" Offset="0x09C0"/>
<DList Name="gGiPrescriptionWritingDL" Offset="0x0AF0"/>
</File>
</Root>

View File

@ -0,0 +1,16 @@
<Root>
<File Name="object_gi_purse" Segment="6">
<DList Name="gGiAdultWalletColorDL" Offset="0x1750"/>
<DList Name="gGiGiantsWalletColorDL" Offset="0x1770"/>
<DList Name="gGiAdultWalletRupeeOuterColorDL" Offset="0x1790"/>
<DList Name="gGiAdultWalletStringColorDL" Offset="0x17B0"/>
<DList Name="gGiAdultWalletRupeeInnerColorDL" Offset="0x17D0"/>
<DList Name="gGiGiantsWalletRupeeOuterColorDL" Offset="0x17F0"/>
<DList Name="gGiGiantsWalletStringColorDL" Offset="0x1810"/>
<DList Name="gGiGiantsWalletRupeeInnerColorDL" Offset="0x1830"/>
<DList Name="gGiWalletDL" Offset="0x1850"/>
<DList Name="gGiWalletRupeeOuterDL" Offset="0x19A0"/>
<DList Name="gGiWalletStringDL" Offset="0x1A28"/>
<DList Name="gGiWalletRupeeInnerDL" Offset="0x1AD8"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_rabit_mask" Segment="6">
<DList Name="gGiBunnyHoodDL" Offset="0x0BC0"/>
<DList Name="gGiBunnyHoodEyesDL" Offset="0x0E58"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_redead_mask" Segment="6">
<DList Name="gGiSpookyMaskDL" Offset="0x07E0"/>
</File>
</Root>

View File

@ -0,0 +1,16 @@
<Root>
<File Name="object_gi_rupy" Segment="6">
<DList Name="gGiGreenRupeeInnerColorDL" Offset="0x04A0"/>
<DList Name="gGiBlueRupeeInnerColorDL" Offset="0x04C0"/>
<DList Name="gGiRedRupeeInnerColorDL" Offset="0x04E0"/>
<DList Name="gGiPurpleRupeeInnerColorDL" Offset="0x0500"/>
<DList Name="gGiGoldRupeeInnerColorDL" Offset="0x0520"/>
<DList Name="gGiGreenRupeeOuterColorDL" Offset="0x0540"/>
<DList Name="gGiBlueRupeeOuterColorDL" Offset="0x0560"/>
<DList Name="gGiRedRupeeOuterColorDL" Offset="0x0580"/>
<DList Name="gGiPurpleRupeeOuterColorDL" Offset="0x05A0"/>
<DList Name="gGiGoldRupeeOuterColorDL" Offset="0x05C0"/>
<DList Name="gGiRupeeInnerDL" Offset="0x05E0"/>
<DList Name="gGiRupeeOuterDL" Offset="0x06F0"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_saw" Segment="6">
<DList Name="gGiSawDL" Offset="0x07E0"/>
</File>
</Root>

View File

@ -0,0 +1,10 @@
<Root>
<File Name="object_gi_scale" Segment="6">
<DList Name="gGiSilverScaleWaterColorDL" Offset="0x0A20"/>
<DList Name="gGiGoldenScaleWaterColorDL" Offset="0x0A40"/>
<DList Name="gGiSilverScaleColorDL" Offset="0x0A60"/>
<DList Name="gGiGoldenScaleColorDL" Offset="0x0A80"/>
<DList Name="gGiScaleWaterDL" Offset="0x0AA0"/>
<DList Name="gGiScaleDL" Offset="0x0CC8"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_seed" Segment="6">
<DList Name="gGiSeedDL" Offset="0x0810"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_shield_1" Segment="6">
<DList Name="gGiDekuShieldDL" Offset="0x0A50"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_shield_2" Segment="6">
<DList Name="gGiHylianShieldDL" Offset="0x0C70"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_shield_3" Segment="6">
<DList Name="gGiMirrorShieldDL" Offset="0x0FB0"/>
<DList Name="gGiMirrorShieldSymbolDL" Offset="0x11C8"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_skj_mask" Segment="6">
<DList Name="gGiSkullMaskDL" Offset="0x09D0"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_soldout" Segment="6">
<DList Name="gGiSoldOutDL" Offset="0x0440"/>
</File>
</Root>

View File

@ -0,0 +1,7 @@
<Root>
<File Name="object_gi_soul" Segment="6">
<DList Name="gGiFairyContainerBaseCapDL" Offset="0x0BD0"/>
<DList Name="gGiFairyContainerGlassDL" Offset="0x0DB8"/>
<DList Name="gGiFairyContainerContentsDL" Offset="0x0EF0"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_stick" Segment="6">
<DList Name="gGiStickDL" Offset="0x04D0"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_sutaru" Segment="6">
<DList Name="gGiSkulltulaTokenDL" Offset="0x0330"/>
<DList Name="gGiSkulltulaTokenFlameDL" Offset="0x0438"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_sword_1" Segment="6">
<DList Name="gGiKokiriSwordDL" Offset="0x0960"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_ticketstone" Segment="6">
<DList Name="gGiClaimCheckDL" Offset="0x0F00"/>
<DList Name="gGiClaimCheckWritingDL" Offset="0x1188"/>
</File>
</Root>

View File

@ -0,0 +1,6 @@
<Root>
<File Name="object_gi_truth_mask" Segment="6">
<DList Name="gGiMaskOfTruthDL" Offset="0x13D0"/>
<DList Name="gGiMaskOfTruthAccentsDL" Offset="0x16B0"/>
</File>
</Root>

View File

@ -0,0 +1,5 @@
<Root>
<File Name="object_gi_zoramask" Segment="6">
<DList Name="gGiZoraMaskDL" Offset="0x1398"/>
</File>
</Root>

View File

@ -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()

View File

@ -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);

View File

@ -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,

231
spec
View File

@ -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

View File

@ -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);

View File

@ -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;

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -54,7 +54,7 @@ typedef struct {
typedef struct {
/* 0x00 */ u8 isPositionInit;
/* 0x01 */ u8 isLoaded;
/* 0x02 */ u8 giIndex;
/* 0x02 */ u8 drawId;
/* 0x04 */ s16 rotation;
} DemoEffectGetItem;

View File

@ -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);
}

View File

@ -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;

View File

@ -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);
}

View File

@ -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

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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,
};