diff options
Diffstat (limited to 'src/code/code_8012EC80.c')
| -rw-r--r-- | src/code/code_8012EC80.c | 285 |
1 files changed, 261 insertions, 24 deletions
diff --git a/src/code/code_8012EC80.c b/src/code/code_8012EC80.c index 084e91872..3bd5aac92 100644 --- a/src/code/code_8012EC80.c +++ b/src/code/code_8012EC80.c @@ -17,14 +17,15 @@ u32 gUpgradeNegMasks[] = { 0xFFFFFFF8, 0xFFFFFFC7, 0xFFFFFE3F, 0xFFFFF1FF, 0xFFFFCFFF, 0xFFFE3FFF, 0xFFF1FFFF, 0xFF8FFFFF, }; u8 gEquipShifts[] = { 0, 4, 8, 12 }; -u8 gUpgradeShifts[] = { 0, 3, 6, 9, 12, 14, 17, 20, 0, 0, 0, 30, 0, 40, 0, 50 }; +u8 gUpgradeShifts[] = { 0, 3, 6, 9, 12, 14, 17, 20 }; u16 gUpgradeCapacities[][4] = { + { 0, 30, 40, 50 }, // Quivers { 0, 20, 30, 40 }, // Bomb Bags { 0, 0, 0, 0 }, // Unused (Scale) { 0, 0, 0, 0 }, // Unused (Strength) { 99, 200, 500, 500 }, // Wallets - { 0, 30, 40, 50 }, // Quivers + { 0, 30, 40, 50 }, // Unused (Deku Seed Bullet Bags) { 0, 10, 20, 30 }, // Unused (Deku Stick) { 0, 20, 30, 40 }, // Unused (Deku Nut) }; @@ -34,35 +35,271 @@ u32 gGsFlagsShift[] = { 0, 8, 16, 24 }; // TODO: use symbols for these icon textures once textures are properly in C void* gItemIcons[] = { - 0x08000000, 0x08001000, 0x08002000, 0x08003000, 0x08004000, 0x08005000, 0x08006000, 0x08007000, 0x08008000, - 0x08009000, 0x0800A000, 0x0800B000, 0x0800C000, 0x0800D000, 0x0800E000, 0x0800F000, 0x08010000, 0x08011000, - 0x08012000, 0x08013000, 0x08014000, 0x08015000, 0x08016000, 0x08017000, 0x08018000, 0x08019000, 0x0801A000, - 0x0801B000, 0x0801C000, 0x0801D000, 0x0801E000, 0x0801F000, 0x08020000, 0x08021000, 0x08022000, 0x08023000, - 0x08024000, 0x08025000, 0x08026000, 0x08027000, 0x08028000, 0x08029000, 0x0802A000, 0x0802B000, 0x0802C000, - 0x0802D000, 0x0802E000, 0x0802F000, 0x08030000, 0x08031000, 0x08032000, 0x08033000, 0x08034000, 0x08035000, - 0x08036000, 0x08037000, 0x08038000, 0x08039000, 0x0803A000, 0x0803B000, 0x0803C000, 0x0803D000, 0x0803E000, - 0x0803F000, 0x08040000, 0x08041000, 0x08042000, 0x08043000, 0x08044000, 0x08045000, 0x08046000, 0x08047000, - 0x08048000, 0x08049000, 0x0804A000, 0x0804B000, 0x0804C000, 0x0804D000, 0x0804E000, 0x0804F000, 0x08050000, - 0x08051000, 0x08052000, 0x08053000, 0x08054000, 0x08055000, 0x08056000, 0x08057000, 0x08058000, 0x08059000, - 0x0805A000, 0x0805B000, 0x0805C000, 0x0805D000, 0x0805E000, 0x0805F000, 0x08060000, 0x08062000, 0x08062000, - 0x08062000, 0x08062000, 0x08062000, 0x08062000, 0x08062000, 0x08062000, 0x08062000, 0x08062000, 0x08062000, - 0x08062000, 0x08061000, 0x09000000, 0x09000900, 0x09001200, 0x08062000, 0x08062000, 0x08062000, 0x09003600, - 0x09004800, 0x09003F00, 0x09005100, 0x09005A00, 0x09006300, 0x09006C00, 0x08062180, 0x08062A80, 0x08063380, - 0x020028A0, 0x020025A0, 0x020027A0, 0x020026A0, 0x020024A0, + 0x08000000, // ITEM_OCARINA + 0x08001000, // ITEM_BOW + 0x08002000, // ITEM_ARROW_FIRE + 0x08003000, // ITEM_ARROW_ICE + 0x08004000, // ITEM_ARROW_LIGHT + 0x08005000, // ITEM_OCARINA_FAIRY + 0x08006000, // ITEM_BOMB + 0x08007000, // ITEM_BOMBCHU + 0x08008000, // ITEM_STICK + 0x08009000, // ITEM_NUT + 0x0800A000, // ITEM_BEAN + 0x0800B000, // ITEM_SLINGSHOT + 0x0800C000, // ITEM_POWDER_KEG + 0x0800D000, // ITEM_PICTO_BOX + 0x0800E000, // ITEM_LENS + 0x0800F000, // ITEM_HOOKSHOT + 0x08010000, // ITEM_SWORD_GREAT_FAIRY + 0x08011000, // ITEM_LONGSHOT + 0x08012000, // ITEM_BOTTLE + 0x08013000, // ITEM_POTION_RED + 0x08014000, // ITEM_POTION_GREEN + 0x08015000, // ITEM_POTION_BLUE + 0x08016000, // ITEM_FAIRY + 0x08017000, // ITEM_DEKU_PRINCESS + 0x08018000, // ITEM_MILK_BOTTLE + 0x08019000, // ITEM_MILK_HALF + 0x0801A000, // ITEM_FISH + 0x0801B000, // ITEM_BUG + 0x0801C000, // ITEM_BLUE_FIRE + 0x0801D000, // ITEM_POE + 0x0801E000, // ITEM_BIG_POE + 0x0801F000, // ITEM_SPRING_WATER + 0x08020000, // ITEM_HOT_SPRING_WATER + 0x08021000, // ITEM_ZORA_EGG + 0x08022000, // ITEM_GOLD_DUST + 0x08023000, // ITEM_MUSHROOM + 0x08024000, // ITEM_SEA_HORSE + 0x08025000, // ITEM_CHATEAU + 0x08026000, // ITEM_HYLIAN_LOACH + 0x08027000, // ITEM_OBABA_DRINK + 0x08028000, // ITEM_MOON_TEAR + 0x08029000, // ITEM_DEED_LAND + 0x0802A000, // ITEM_DEED_SWAMP + 0x0802B000, // ITEM_DEED_MOUNTAIN + 0x0802C000, // ITEM_DEED_OCEAN + 0x0802D000, // ITEM_ROOM_KEY + 0x0802E000, // ITEM_LETTER_MAMA + 0x0802F000, // ITEM_LETTER_KAFEI + 0x08030000, // ITEM_PENDANT_MEMORIES + 0x08031000, // ITEM_TINGLE_MAP + 0x08032000, // ITEM_MASK_DEKU + 0x08033000, // ITEM_MASK_GORON + 0x08034000, // ITEM_MASK_ZORA + 0x08035000, // ITEM_MASK_FIERCE_DEITY + 0x08036000, // ITEM_MASK_TRUTH + 0x08037000, // ITEM_MASK_KAFEI + 0x08038000, // ITEM_MASK_ALL_NIGHT + 0x08039000, // ITEM_MASK_BUNNY + 0x0803A000, // ITEM_MASK_KEATON + 0x0803B000, // ITEM_MASK_GARO + 0x0803C000, // ITEM_MASK_ROMANI + 0x0803D000, // ITEM_MASK_CIRCUS_LEADER + 0x0803E000, // ITEM_MASK_POSTMAN + 0x0803F000, // ITEM_MASK_COUPLE + 0x08040000, // ITEM_MASK_GREAT_FAIRY + 0x08041000, // ITEM_MASK_GIBDO + 0x08042000, // ITEM_MASK_DON_GERO + 0x08043000, // ITEM_MASK_KAMARO + 0x08044000, // ITEM_MASK_CAPTAIN + 0x08045000, // ITEM_MASK_STONE + 0x08046000, // ITEM_MASK_BREMEN + 0x08047000, // ITEM_MASK_BLAST + 0x08048000, // ITEM_MASK_SCENTS + 0x08049000, // ITEM_MASK_GIANT + 0x0804A000, // ITEM_BOW_ARROW_FIRE + 0x0804B000, // ITEM_BOW_ARROW_ICE + 0x0804C000, // ITEM_BOW_ARROW_LIGHT + 0x0804D000, // ITEM_SWORD_KOKIRI + 0x0804E000, // ITEM_SWORD_RAZOR + 0x0804F000, // ITEM_SWORD_GILDED + 0x08050000, // ITEM_SWORD_DEITY + 0x08051000, // ITEM_SHIELD_HERO + 0x08052000, // ITEM_SHIELD_MIRROR + 0x08053000, // ITEM_QUIVER_30 + 0x08054000, // ITEM_QUIVER_40 + 0x08055000, // ITEM_QUIVER_50 + 0x08056000, // ITEM_BOMB_BAG_20 + 0x08057000, // ITEM_BOMB_BAG_30 + 0x08058000, // ITEM_BOMB_BAG_40 + 0x08059000, // ITEM_WALLET_DEFAULT + 0x0805A000, // ITEM_WALLET_ADULT + 0x0805B000, // ITEM_WALLET_GIANT + 0x0805C000, // ITEM_FISHING_POLE + 0x0805D000, // ITEM_REMAINS_ODOLWA + 0x0805E000, // ITEM_REMAINS_GOHT + 0x0805F000, // ITEM_REMAINS_GYORG + 0x08060000, // ITEM_REMAINS_TWINMOLD + 0x08062000, // ITEM_SONG_SONATA + 0x08062000, // ITEM_SONG_LULLABY + 0x08062000, // ITEM_SONG_NOVA + 0x08062000, // ITEM_SONG_ELEGY + 0x08062000, // ITEM_SONG_OATH + 0x08062000, // ITEM_SONG_SARIA + 0x08062000, // ITEM_SONG_TIME + 0x08062000, // ITEM_SONG_HEALING + 0x08062000, // ITEM_SONG_EPONA + 0x08062000, // ITEM_SONG_SOARING + 0x08062000, // ITEM_SONG_STORMS + 0x08062000, // ITEM_SONG_SUN + 0x08061000, // ITEM_BOMBERS_NOTEBOOK + 0x09000000, // ITEM_SKULL_TOKEN + 0x09000900, // ITEM_HEART_CONTAINER + 0x09001200, // ITEM_HEART_PIECE + 0x08062000, // + 0x08062000, // + 0x08062000, // ITEM_SONG_LULLABY_INTRO + 0x09003600, // ITEM_KEY_BOSS + 0x09004800, // ITEM_COMPASS + 0x09003F00, // ITEM_DUNGEON_MAP + 0x09005100, // ITEM_STRAY_FAIRIES + 0x09005A00, // ITEM_KEY_SMALL + 0x09006300, // ITEM_MAGIC_SMALL + 0x09006C00, // ITEM_MAGIC_LARGE + 0x08062180, // ITEM_HEART_PIECE_2 + 0x08062A80, // ITEM_INVALID_1 + 0x08063380, // ITEM_INVALID_2 + 0x020028A0, // ITEM_INVALID_3 + 0x020025A0, // ITEM_INVALID_4 + 0x020027A0, // ITEM_INVALID_5 + 0x020026A0, // ITEM_INVALID_6 + 0x020024A0, // ITEM_INVALID_7 }; // Used to map item IDs to inventory slots u8 gItemSlots[] = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, - 0x10, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, - 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x05, 0x05, 0x05, 0x05, 0x05, 0x0B, 0x0B, 0x11, - 0x11, 0x11, 0x1D, 0x23, 0x29, 0x2F, 0x28, 0x26, 0x19, 0x20, 0x1E, 0x2C, 0x24, 0x25, 0x18, 0x27, - 0x1C, 0x2B, 0x21, 0x2A, 0x2D, 0x1B, 0x1F, 0x1A, 0x22, 0x2E, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, + SLOT_OCARINA, // ITEM_OCARINA + SLOT_BOW, // ITEM_BOW + SLOT_ARROW_FIRE, // ITEM_ARROW_FIRE + SLOT_ARROW_ICE, // ITEM_ARROW_ICE + SLOT_ARROW_LIGHT, // ITEM_ARROW_LIGHT + SLOT_TRADE_DEED, // ITEM_OCARINA_FAIRY + SLOT_BOMB, // ITEM_BOMB + SLOT_BOMBCHU, // ITEM_BOMBCHU + SLOT_STICK, // ITEM_STICK + SLOT_NUT, // ITEM_NUT + SLOT_BEAN, // ITEM_BEAN + SLOT_TRADE_KEY_MAMA, // ITEM_SLINGSHOT + SLOT_POWDER_KEG, // ITEM_POWDER_KEG + SLOT_PICTO_BOX, // ITEM_PICTO_BOX + SLOT_LENS, // ITEM_LENS + SLOT_HOOKSHOT, // ITEM_HOOKSHOT + SLOT_SWORD_GREAT_FAIRY, // ITEM_SWORD_GREAT_FAIRY + SLOT_BOTTLE_1, // + SLOT_BOTTLE_1, // ITEM_BOTTLE + SLOT_BOTTLE_1, // ITEM_POTION_RED + SLOT_BOTTLE_1, // ITEM_POTION_GREEN + SLOT_BOTTLE_1, // ITEM_POTION_BLUE + SLOT_BOTTLE_1, // ITEM_FAIRY + SLOT_BOTTLE_1, // ITEM_DEKU_PRINCESS + SLOT_BOTTLE_1, // ITEM_MILK_BOTTLE + SLOT_BOTTLE_1, // ITEM_MILK_HALF + SLOT_BOTTLE_1, // ITEM_FISH + SLOT_BOTTLE_1, // ITEM_BUG + SLOT_BOTTLE_1, // ITEM_BLUE_FIRE + SLOT_BOTTLE_1, // ITEM_POE + SLOT_BOTTLE_1, // ITEM_BIG_POE + SLOT_BOTTLE_1, // ITEM_SPRING_WATER + SLOT_BOTTLE_1, // ITEM_HOT_SPRING_WATER + SLOT_BOTTLE_1, // ITEM_ZORA_EGG + SLOT_BOTTLE_1, // ITEM_GOLD_DUST + SLOT_BOTTLE_1, // ITEM_MUSHROOM + SLOT_BOTTLE_1, // ITEM_SEA_HORSE + SLOT_BOTTLE_1, // ITEM_CHATEAU + SLOT_BOTTLE_1, // ITEM_HYLIAN_LOACH + SLOT_BOTTLE_1, // ITEM_OBABA_DRINK + SLOT_TRADE_DEED, // ITEM_MOON_TEAR + SLOT_TRADE_DEED, // ITEM_DEED_LAND + SLOT_TRADE_DEED, // ITEM_DEED_SWAMP + SLOT_TRADE_DEED, // ITEM_DEED_MOUNTAIN + SLOT_TRADE_DEED, // ITEM_DEED_OCEAN + SLOT_TRADE_KEY_MAMA, // ITEM_ROOM_KEY + SLOT_TRADE_KEY_MAMA, // ITEM_LETTER_MAMA + SLOT_TRADE_COUPLE, // ITEM_LETTER_KAFEI + SLOT_TRADE_COUPLE, // ITEM_PENDANT_MEMORIES + SLOT_TRADE_COUPLE, // ITEM_TINGLE_MAP + SLOT_MASK_DEKU, // ITEM_MASK_DEKU + SLOT_MASK_GORON, // ITEM_MASK_GORON + SLOT_MASK_ZORA, // ITEM_MASK_ZORA + SLOT_MASK_FIERCE_DEITY, // ITEM_MASK_FIERCE_DEITY + SLOT_MASK_TRUTH, // ITEM_MASK_TRUTH + SLOT_MASK_KAFEI, // ITEM_MASK_KAFEI + SLOT_MASK_ALL_NIGHT, // ITEM_MASK_ALL_NIGHT + SLOT_MASK_BUNNY, // ITEM_MASK_BUNNY + SLOT_MASK_KEATON, // ITEM_MASK_KEATON + SLOT_MASK_GARO, // ITEM_MASK_GARO + SLOT_MASK_ROMANI, // ITEM_MASK_ROMANI + SLOT_MASK_CIRCUS_LEADER, // ITEM_MASK_CIRCUS_LEADER + SLOT_MASK_POSTMAN, // ITEM_MASK_POSTMAN + SLOT_MASK_COUPLE, // ITEM_MASK_COUPLE + SLOT_MASK_GREAT_FAIRY, // ITEM_MASK_GREAT_FAIRY + SLOT_MASK_GIBDO, // ITEM_MASK_GIBDO + SLOT_MASK_DON_GERO, // ITEM_MASK_DON_GERO + SLOT_MASK_KAMARO, // ITEM_MASK_KAMARO + SLOT_MASK_CAPTAIN, // ITEM_MASK_CAPTAIN + SLOT_MASK_STONE, // ITEM_MASK_STONE + SLOT_MASK_BREMEN, // ITEM_MASK_BREMEN + SLOT_MASK_BLAST, // ITEM_MASK_BLAST + SLOT_MASK_SCENTS, // ITEM_MASK_SCENTS + SLOT_MASK_GIANT, // ITEM_MASK_GIANT + SLOT_BOW, // ITEM_BOW_ARROW_FIRE + SLOT_BOW, // ITEM_BOW_ARROW_ICE + SLOT_BOW, // ITEM_BOW_ARROW_LIGHT }; s16 gItemPrices[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 20, 0, 20, - 5, 20, 20, 50, 50, 200, 20, 20, 20, 200, 5, 0, 200, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // ITEM_OCARINA + 0, // ITEM_BOW + 0, // ITEM_ARROW_FIRE + 0, // ITEM_ARROW_ICE + 0, // ITEM_ARROW_LIGHT + 0, // ITEM_OCARINA_FAIRY + 0, // ITEM_BOMB + 0, // ITEM_BOMBCHU + 0, // ITEM_STICK + 0, // ITEM_NUT + 0, // ITEM_BEAN + 0, // ITEM_SLINGSHOT + 0, // ITEM_POWDER_KEG + 0, // ITEM_PICTO_BOX + 0, // ITEM_LENS + 0, // ITEM_HOOKSHOT + 0, // ITEM_SWORD_GREAT_FAIRY + 0, // ITEM_LONGSHOT + 0, // ITEM_BOTTLE + 20, // ITEM_POTION_RED + 20, // ITEM_POTION_GREEN + 20, // ITEM_POTION_BLUE + 20, // ITEM_FAIRY + 0, // ITEM_DEKU_PRINCESS + 20, // ITEM_MILK_BOTTLE + 5, // ITEM_MILK_HALF + 20, // ITEM_FISH + 20, // ITEM_BUG + 50, // ITEM_BLUE_FIRE + 50, // ITEM_POE + 200, // ITEM_BIG_POE + 20, // ITEM_SPRING_WATER + 20, // ITEM_HOT_SPRING_WATER + 20, // ITEM_ZORA_EGG + 200, // ITEM_GOLD_DUST + 5, // ITEM_MUSHROOM + 0, // ITEM_SEA_HORSE + 200, // ITEM_CHATEAU + 20, // ITEM_HYLIAN_LOACH + 0, // ITEM_OBABA_DRINK + 0, // ITEM_MOON_TEAR + 0, // ITEM_DEED_LAND + 0, // ITEM_DEED_SWAMP + 0, // ITEM_DEED_MOUNTAIN + 0, // ITEM_DEED_OCEAN + 0, // ITEM_ROOM_KEY + 0, // ITEM_LETTER_MAMA + 0, // ITEM_LETTER_KAFEI + 0, // ITEM_PENDANT_MEMORIES + 0, // ITEM_TINGLE_MAP }; // Used to map scene indexes to their region in Termina |
