summaryrefslogtreecommitdiff
path: root/src/code/code_8012EC80.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/code/code_8012EC80.c')
-rw-r--r--src/code/code_8012EC80.c285
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