mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-12-26 10:08:51 -05:00
Removes now unused ItemIDs and GetItemIDs
Also makes all the necessary changes to other code that was still using them indirectly through the GI to GID map that was removed. There's quite a lot of changes here and I haven't had time to test them yet.
This commit is contained in:
parent
cb81023255
commit
0431dce989
@ -244,15 +244,6 @@ typedef enum {
|
||||
/* 0x99 */ ITEM_STICK_UPGRADE_30,
|
||||
/* 0x9A */ ITEM_NUT_UPGRADE_30,
|
||||
/* 0x9B */ ITEM_NUT_UPGRADE_40,
|
||||
/* 0x9C */ ITEM_BOTTLE_WITH_RED_POTION,
|
||||
/* 0x9D */ ITEM_BOTTLE_WITH_GREEN_POTION,
|
||||
/* 0x9E */ ITEM_BOTTLE_WITH_BLUE_POTION,
|
||||
/* 0x9F */ ITEM_BOTTLE_WITH_FAIRY,
|
||||
/* 0xA0 */ ITEM_BOTTLE_WITH_FISH,
|
||||
/* 0xA1 */ ITEM_BOTTLE_WITH_BLUE_FIRE,
|
||||
/* 0xA2 */ ITEM_BOTTLE_WITH_BUGS,
|
||||
/* 0xA3 */ ITEM_BOTTLE_WITH_POE,
|
||||
/* 0xA4 */ ITEM_BOTTLE_WITH_BIG_POE,
|
||||
/* 0xFC */ ITEM_LAST_USED = 0xFC,
|
||||
/* 0xFE */ ITEM_NONE_FE = 0xFE,
|
||||
/* 0xFF */ ITEM_NONE = 0xFF
|
||||
@ -388,47 +379,7 @@ typedef enum {
|
||||
/* 0x7A */ GI_NUT_UPGRADE_40,
|
||||
/* 0x7B */ GI_BULLET_BAG_50,
|
||||
/* 0x7C */ GI_ICE_TRAP, // freezes link when opened from a chest
|
||||
/* 0x7D */ GI_TEXT_0, // no model appears over Link, shows text id 0 (pocket egg)
|
||||
|
||||
/* 0x7E */ GI_MEDALLION_LIGHT,
|
||||
/* 0x7F */ GI_MEDALLION_FOREST,
|
||||
/* 0x80 */ GI_MEDALLION_FIRE,
|
||||
/* 0x81 */ GI_MEDALLION_WATER,
|
||||
/* 0x82 */ GI_MEDALLION_SHADOW,
|
||||
/* 0x83 */ GI_MEDALLION_SPIRIT,
|
||||
|
||||
/* 0x81 */ GI_STONE_KOKIRI,
|
||||
/* 0x82 */ GI_STONE_GORON,
|
||||
/* 0x83 */ GI_STONE_ZORA,
|
||||
|
||||
/* 0x81 */ GI_ZELDAS_LULLABY,
|
||||
/* 0x82 */ GI_SUNS_SONG,
|
||||
/* 0x83 */ GI_EPONAS_SONG,
|
||||
/* 0x81 */ GI_SONG_OF_STORMS,
|
||||
/* 0x82 */ GI_SONG_OF_TIME,
|
||||
/* 0x83 */ GI_SARIAS_SONG,
|
||||
|
||||
/* 0x81 */ GI_MINUET_OF_FOREST,
|
||||
/* 0x82 */ GI_BOLERO_OF_FIRE,
|
||||
/* 0x83 */ GI_SERENADE_OF_WATER,
|
||||
/* 0x81 */ GI_NOCTURNE_OF_SHADOW,
|
||||
/* 0x82 */ GI_REQUIEM_OF_SPIRIT,
|
||||
/* 0x83 */ GI_PRELUDE_OF_LIGHT,
|
||||
|
||||
GI_SINGLE_MAGIC,
|
||||
GI_DOUBLE_MAGIC,
|
||||
GI_DOUBLE_DEFENSE,
|
||||
|
||||
GI_BOTTLE_WITH_RED_POTION,
|
||||
GI_BOTTLE_WITH_GREEN_POTION,
|
||||
GI_BOTTLE_WITH_BLUE_POTION,
|
||||
GI_BOTTLE_WITH_FAIRY,
|
||||
GI_BOTTLE_WITH_FISH,
|
||||
GI_BOTTLE_WITH_BLUE_FIRE,
|
||||
GI_BOTTLE_WITH_BUGS,
|
||||
GI_BOTTLE_WITH_POE,
|
||||
GI_BOTTLE_WITH_BIG_POE,
|
||||
|
||||
/* 0x7D */ GI_TEXT_0, // no model appears over Link, shows text id 0 (pocket egg)
|
||||
/* 0x84 */ GI_MAX
|
||||
} GetItemID;
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include "CustomMessageManager.h"
|
||||
#include <algorithm>
|
||||
#include <stdint.h>
|
||||
|
||||
using namespace std::literals::string_literals;
|
||||
|
||||
@ -46,7 +47,7 @@ void CustomMessageManager::ReplaceColors(std::string& string) {
|
||||
}
|
||||
}
|
||||
|
||||
void CustomMessageManager::FormatCustomMessage(std::string& message, ItemID iid) {
|
||||
void CustomMessageManager::FormatCustomMessage(std::string& message, uint16_t iid) {
|
||||
message.insert(0, ITEM_OBTAINED(iid));
|
||||
size_t start_pos = 0;
|
||||
std::replace(message.begin(), message.end(), '&', NEWLINE()[0]);
|
||||
@ -80,9 +81,8 @@ bool CustomMessageManager::InsertCustomMessage(std::string tableID, uint16_t tex
|
||||
return messageInsertResult.second;
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool CustomMessageManager::CreateGetItemMessage(std::string tableID, GetItemID giid, ItemID iid, CustomMessageEntry messageEntry) {
|
||||
bool CustomMessageManager::CreateGetItemMessage(std::string tableID, uint16_t giid, uint16_t iid,
|
||||
CustomMessageEntry messageEntry) {
|
||||
FormatCustomMessage(messageEntry.english, iid);
|
||||
FormatCustomMessage(messageEntry.german, iid);
|
||||
FormatCustomMessage(messageEntry.french, iid);
|
||||
|
@ -89,7 +89,7 @@ class CustomMessageManager {
|
||||
with the provided giid (getItemID) as its key. This function also inserts the icon corresponding to
|
||||
the provided iid (itemID) at the beginning of each page of the textbox.
|
||||
*/
|
||||
bool CreateGetItemMessage(std::string tableID, GetItemID giid, ItemID iid, CustomMessageEntry messages);
|
||||
bool CreateGetItemMessage(std::string tableID, uint16_t giid, uint16_t iid, CustomMessageEntry messages);
|
||||
|
||||
/*
|
||||
Formats the provided Custom Message Entry and inserts it into the table with the provided tableID,
|
||||
@ -122,7 +122,7 @@ class CustomMessageManager {
|
||||
& for newline, ^ for wait-for-input, and @ for the player name,
|
||||
as well as %<letter> for colors (i.e. %r for red and %w for white).
|
||||
*/
|
||||
void FormatCustomMessage(std::string& message, ItemID iid);
|
||||
void FormatCustomMessage(std::string& message, uint16_t iid);
|
||||
|
||||
/*
|
||||
Replaces special characters and certain symbols with control codes
|
||||
|
@ -17,8 +17,8 @@ typedef enum {
|
||||
#ifdef __cplusplus
|
||||
|
||||
typedef struct {
|
||||
GetItemID giid;
|
||||
ItemID iid;
|
||||
u16 giid;
|
||||
u16 iid;
|
||||
std::string english;
|
||||
std::string german;
|
||||
std::string french;
|
||||
@ -27,7 +27,14 @@ typedef struct {
|
||||
#define GIMESSAGE(giid, iid, english, german, french) \
|
||||
{ giid, iid, english, german, french }
|
||||
|
||||
#define GIMESSAGE_UNTRANSLATED(giid, iid, message) \
|
||||
{ giid, iid, message, message, message }
|
||||
GetItemMessage GIMESSAGE_UNTRANSLATED(u16 giid, u16 iid, std::string message) {
|
||||
GetItemMessage giMessage;
|
||||
giMessage.giid = giid;
|
||||
giMessage.iid = iid;
|
||||
giMessage.english = message;
|
||||
giMessage.german = message;
|
||||
giMessage.french = message;
|
||||
return giMessage;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -2,15 +2,6 @@
|
||||
#include "ItemTableTypes.h"
|
||||
#include "z64item.h"
|
||||
|
||||
#define CHEST_ANIM_SHORT 0
|
||||
#define CHEST_ANIM_LONG 1
|
||||
|
||||
#define GET_ITEM(itemId, objectId, drawId, textId, field, chestAnim) \
|
||||
{ itemId, field, (chestAnim != CHEST_ANIM_SHORT ? 1 : -1) * (drawId + 1), textId, objectId }
|
||||
|
||||
#define GET_ITEM_NONE \
|
||||
{ ITEM_NONE, 0, 0, 0, 0 }
|
||||
|
||||
#include <unordered_map>
|
||||
|
||||
typedef std::unordered_map<uint16_t, GetItemEntry> ItemTable;
|
||||
|
@ -3,6 +3,15 @@
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
|
||||
#define CHEST_ANIM_SHORT 0
|
||||
#define CHEST_ANIM_LONG 1
|
||||
|
||||
#define GET_ITEM(itemId, objectId, drawId, textId, field, chestAnim) \
|
||||
{ itemId, field, (chestAnim != CHEST_ANIM_SHORT ? 1 : -1) * (drawId + 1), textId, objectId }
|
||||
|
||||
#define GET_ITEM_NONE \
|
||||
{ ITEM_NONE, 0, 0, 0, 0 }
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ uint16_t itemId;
|
||||
/* 0x01 */ uint16_t field; // various bit-packed data
|
||||
|
@ -849,160 +849,6 @@ std::unordered_map<s16, s16> getItemIdToItemId = {
|
||||
{ GI_CLAIM_CHECK, ITEM_CLAIM_CHECK }
|
||||
};
|
||||
|
||||
std::unordered_map<s16, s16> itemIdToModel = { { GI_NONE, GID_MAXIMUM },
|
||||
{ GI_BOMBS_5, GID_BOMB },
|
||||
{ GI_NUTS_5, GID_NUTS },
|
||||
{ GI_BOMBCHUS_10, GID_BOMBCHU },
|
||||
{ GI_BOW, GID_BOW },
|
||||
{ GI_SLINGSHOT, GID_SLINGSHOT },
|
||||
{ GI_BOOMERANG, GID_BOOMERANG },
|
||||
{ GI_STICKS_1, GID_STICK },
|
||||
{ GI_HOOKSHOT, GID_HOOKSHOT },
|
||||
{ GI_LONGSHOT, GID_LONGSHOT },
|
||||
{ GI_LENS, GID_LENS },
|
||||
{ GI_LETTER_ZELDA, GID_LETTER_ZELDA },
|
||||
{ GI_OCARINA_OOT, GID_OCARINA_TIME },
|
||||
{ GI_HAMMER, GID_HAMMER },
|
||||
{ GI_COJIRO, GID_COJIRO },
|
||||
{ GI_LETTER_RUTO, GID_LETTER_RUTO },
|
||||
{ GI_LETTER_RUTO, GID_LETTER_RUTO },
|
||||
{ GI_BOTTLE, GID_BOTTLE },
|
||||
{ GI_POTION_RED, GID_POTION_RED },
|
||||
{ GI_POTION_GREEN, GID_POTION_GREEN },
|
||||
{ GI_POTION_BLUE, GID_POTION_BLUE },
|
||||
{ GI_FAIRY, GID_FAIRY },
|
||||
{ GI_MILK_BOTTLE, GID_MILK },
|
||||
{ GI_LETTER_RUTO, GID_LETTER_RUTO },
|
||||
{ GI_BEAN, GID_BEAN },
|
||||
{ GI_MASK_SKULL, GID_MASK_SKULL },
|
||||
{ GI_MASK_SPOOKY, GID_MASK_SPOOKY },
|
||||
{ GI_CHICKEN, GID_CHICKEN },
|
||||
{ GI_MASK_KEATON, GID_MASK_KEATON },
|
||||
{ GI_MASK_BUNNY, GID_MASK_BUNNY },
|
||||
{ GI_MASK_TRUTH, GID_MASK_TRUTH },
|
||||
{ GI_POCKET_EGG, GID_EGG },
|
||||
{ GI_POCKET_CUCCO, GID_CHICKEN },
|
||||
{ GI_ODD_MUSHROOM, GID_ODD_MUSHROOM },
|
||||
{ GI_ODD_POTION, GID_ODD_POTION },
|
||||
{ GI_SAW, GID_SAW },
|
||||
{ GI_SWORD_BROKEN, GID_SWORD_BROKEN },
|
||||
{ GI_PRESCRIPTION, GID_PRESCRIPTION },
|
||||
{ GI_FROG, GID_FROG },
|
||||
{ GI_EYEDROPS, GID_EYEDROPS },
|
||||
{ GI_CLAIM_CHECK, GID_CLAIM_CHECK },
|
||||
{ GI_SWORD_KOKIRI, GID_SWORD_KOKIRI },
|
||||
{ GI_SWORD_KNIFE, GID_SWORD_BGS },
|
||||
{ GI_SHIELD_DEKU, GID_SHIELD_DEKU },
|
||||
{ GI_SHIELD_HYLIAN, GID_SHIELD_HYLIAN },
|
||||
{ GI_SHIELD_MIRROR, GID_SHIELD_MIRROR },
|
||||
{ GI_TUNIC_GORON, GID_TUNIC_GORON },
|
||||
{ GI_TUNIC_ZORA, GID_TUNIC_ZORA },
|
||||
{ GI_BOOTS_IRON, GID_BOOTS_IRON },
|
||||
{ GI_BOOTS_HOVER, GID_BOOTS_HOVER },
|
||||
{ GI_QUIVER_40, GID_QUIVER_40 },
|
||||
{ GI_QUIVER_50, GID_QUIVER_50 },
|
||||
{ GI_BOMB_BAG_20, GID_BOMB_BAG_20 },
|
||||
{ GI_BOMB_BAG_30, GID_BOMB_BAG_30 },
|
||||
{ GI_BOMB_BAG_40, GID_BOMB_BAG_40 },
|
||||
{ GI_GAUNTLETS_SILVER, GID_GAUNTLETS_SILVER },
|
||||
{ GI_GAUNTLETS_GOLD, GID_GAUNTLETS_GOLD },
|
||||
{ GI_SCALE_SILVER, GID_SCALE_SILVER },
|
||||
{ GI_SCALE_GOLD, GID_SCALE_GOLDEN },
|
||||
{ GI_STONE_OF_AGONY, GID_STONE_OF_AGONY },
|
||||
{ GI_GERUDO_CARD, GID_GERUDO_CARD },
|
||||
{ GI_OCARINA_FAIRY, GID_OCARINA_FAIRY },
|
||||
{ GI_SEEDS_5, GID_SEEDS },
|
||||
{ GI_HEART_CONTAINER, GID_HEART_CONTAINER },
|
||||
{ GI_HEART_PIECE, GID_HEART_PIECE },
|
||||
{ GI_KEY_BOSS, GID_KEY_BOSS },
|
||||
{ GI_COMPASS, GID_COMPASS },
|
||||
{ GI_MAP, GID_DUNGEON_MAP },
|
||||
{ GI_KEY_SMALL, GID_KEY_SMALL },
|
||||
{ GI_MAGIC_SMALL, GID_MAGIC_SMALL },
|
||||
{ GI_MAGIC_LARGE, GID_MAGIC_LARGE },
|
||||
{ GI_WALLET_ADULT, GID_WALLET_ADULT },
|
||||
{ GI_WALLET_GIANT, GID_WALLET_GIANT },
|
||||
{ GI_WEIRD_EGG, GID_EGG },
|
||||
{ GI_HEART, GID_HEART },
|
||||
{ GI_ARROWS_SMALL, GID_ARROWS_SMALL },
|
||||
{ GI_ARROWS_MEDIUM, GID_ARROWS_MEDIUM },
|
||||
{ GI_ARROWS_LARGE, GID_ARROWS_LARGE },
|
||||
{ GI_RUPEE_GREEN, GID_RUPEE_GREEN },
|
||||
{ GI_RUPEE_BLUE, GID_RUPEE_BLUE },
|
||||
{ GI_RUPEE_RED, GID_RUPEE_RED },
|
||||
{ GI_HEART_CONTAINER_2, GI_HEART_CONTAINER_2 },
|
||||
{ GI_MILK, GID_MILK },
|
||||
{ GI_MASK_GORON, GID_MASK_GORON },
|
||||
{ GI_MASK_ZORA, GID_MASK_ZORA },
|
||||
{ GI_MASK_GERUDO, GID_MASK_GERUDO },
|
||||
{ GI_BRACELET, GID_BRACELET },
|
||||
{ GI_RUPEE_PURPLE, GID_RUPEE_PURPLE },
|
||||
{ GI_RUPEE_GOLD, GID_RUPEE_GOLD },
|
||||
{ GI_SWORD_BGS, GID_SWORD_BGS },
|
||||
{ GI_ARROW_FIRE, GID_ARROW_FIRE },
|
||||
{ GI_ARROW_ICE, GID_ARROW_ICE },
|
||||
{ GI_ARROW_LIGHT, GID_ARROW_LIGHT },
|
||||
{ GI_SKULL_TOKEN, GID_SKULL_TOKEN },
|
||||
{ GI_DINS_FIRE, GID_DINS_FIRE },
|
||||
{ GI_FARORES_WIND, GID_FARORES_WIND },
|
||||
{ GI_NAYRUS_LOVE, GID_NAYRUS_LOVE },
|
||||
{ GI_BULLET_BAG_30, GID_BULLET_BAG },
|
||||
{ GI_BULLET_BAG_40, GID_BULLET_BAG },
|
||||
{ GI_STICKS_5, GID_STICK },
|
||||
{ GI_STICKS_10, GID_STICK },
|
||||
{ GI_NUTS_5_2, GID_NUTS },
|
||||
{ GI_NUTS_10, GID_NUTS },
|
||||
{ GI_BOMBS_1, GID_BOMB },
|
||||
{ GI_BOMBS_10, GID_BOMB },
|
||||
{ GI_BOMBS_20, GID_BOMB },
|
||||
{ GI_BOMBS_30, GID_BOMB },
|
||||
{ GI_SEEDS_30, GID_SEEDS },
|
||||
{ GI_BOMBCHUS_5, GID_BOMBCHU },
|
||||
{ GI_BOMBCHUS_20, GID_BOMBCHU },
|
||||
{ GI_FISH, GID_FISH },
|
||||
{ GI_BUGS, GID_BUG },
|
||||
{ GI_BLUE_FIRE, GID_BLUE_FIRE },
|
||||
{ GI_POE, GID_POE },
|
||||
{ GI_BIG_POE, GID_BIG_POE },
|
||||
{ GI_DOOR_KEY, GID_KEY_SMALL },
|
||||
{ GI_RUPEE_GREEN_LOSE, GID_RUPEE_GREEN },
|
||||
{ GI_RUPEE_BLUE_LOSE, GID_RUPEE_BLUE },
|
||||
{ GI_RUPEE_RED_LOSE, GID_RUPEE_RED },
|
||||
{ GI_RUPEE_PURPLE_LOSE, GID_RUPEE_PURPLE },
|
||||
{ GI_HEART_PIECE_WIN, GID_HEART_PIECE },
|
||||
{ GI_STICK_UPGRADE_20, GID_STICK },
|
||||
{ GI_STICK_UPGRADE_30, GID_STICK },
|
||||
{ GI_NUT_UPGRADE_30, GID_NUTS },
|
||||
{ GI_NUT_UPGRADE_40, GID_NUTS },
|
||||
{ GI_BULLET_BAG_50, GID_BULLET_BAG_50 },
|
||||
{ GI_ZELDAS_LULLABY, GID_SONG_ZELDA },
|
||||
{ GI_EPONAS_SONG, GID_SONG_EPONA },
|
||||
{ GI_SARIAS_SONG, GID_SONG_SARIA },
|
||||
{ GI_SUNS_SONG, GID_SONG_SUN },
|
||||
{ GI_SONG_OF_TIME, GID_SONG_TIME },
|
||||
{ GI_SONG_OF_STORMS, GID_SONG_STORM },
|
||||
{ GI_MINUET_OF_FOREST, GID_SONG_MINUET },
|
||||
{ GI_BOLERO_OF_FIRE, GID_SONG_BOLERO },
|
||||
{ GI_SERENADE_OF_WATER, GID_SONG_SERENADE },
|
||||
{ GI_REQUIEM_OF_SPIRIT, GID_SONG_REQUIEM },
|
||||
{ GI_NOCTURNE_OF_SHADOW, GID_SONG_NOCTURNE },
|
||||
{ GI_PRELUDE_OF_LIGHT, GID_SONG_PRELUDE },
|
||||
{ GI_DOUBLE_DEFENSE, GID_HEART_CONTAINER },
|
||||
{ GI_STONE_KOKIRI, GID_KOKIRI_EMERALD },
|
||||
{ GI_STONE_GORON, GID_GORON_RUBY },
|
||||
{ GI_STONE_ZORA, GID_ZORA_SAPPHIRE },
|
||||
{ GI_MEDALLION_FOREST, GID_MEDALLION_FOREST },
|
||||
{ GI_MEDALLION_FIRE, GID_MEDALLION_FIRE },
|
||||
{ GI_MEDALLION_WATER, GID_MEDALLION_WATER },
|
||||
{ GI_MEDALLION_SPIRIT, GID_MEDALLION_SPIRIT },
|
||||
{ GI_MEDALLION_SHADOW, GID_MEDALLION_SHADOW },
|
||||
{ GI_MEDALLION_LIGHT, GID_MEDALLION_LIGHT },
|
||||
{ GI_SINGLE_MAGIC, GID_MAGIC_SMALL },
|
||||
{ GI_DOUBLE_MAGIC, GID_MAGIC_LARGE },
|
||||
{ GI_ICE_TRAP, GID_RUPEE_GOLD },
|
||||
{ GI_ICE_TRAP, GID_MAXIMUM },
|
||||
{ GI_TEXT_0, GID_MAXIMUM } };
|
||||
|
||||
std::unordered_map<std::string, RandomizerGet> SpoilerfileGetNameToEnum = {
|
||||
{ "No Item", RG_NONE },
|
||||
{ "Rien", RG_NONE },
|
||||
@ -1427,10 +1273,6 @@ s32 Randomizer::GetItemIDFromGetItemID(s32 getItemId) {
|
||||
return getItemIdToItemId[getItemId];
|
||||
}
|
||||
|
||||
s16 Randomizer::GetItemModelFromId(s16 itemId) {
|
||||
return itemIdToModel[itemId];
|
||||
}
|
||||
|
||||
std::string sanitize(std::string stringValue) {
|
||||
// Add backslashes.
|
||||
for (auto i = stringValue.begin();;) {
|
||||
@ -4716,22 +4558,22 @@ void Randomizer::CreateCustomMessages() {
|
||||
// RANDTODO: Translate into french and german and replace GIMESSAGE_UNTRANSLATED
|
||||
// with GIMESSAGE(getItemID, itemID, english, german, french).
|
||||
const std::vector<GetItemMessage> getItemMessages = {
|
||||
GIMESSAGE_UNTRANSLATED(GI_BOTTLE_WITH_BLUE_FIRE, ITEM_BLUE_FIRE,
|
||||
GIMESSAGE_UNTRANSLATED(RG_BOTTLE_WITH_BLUE_FIRE, ITEM_BLUE_FIRE,
|
||||
"You got a %rBottle with Blue &Fire%w! Use it to melt Red Ice!"),
|
||||
GIMESSAGE_UNTRANSLATED(GI_BOTTLE_WITH_BIG_POE, ITEM_BIG_POE,
|
||||
GIMESSAGE_UNTRANSLATED(RG_BOTTLE_WITH_BIG_POE, ITEM_BIG_POE,
|
||||
"You got a %rBig Poe in a Bottle%w!&Sell it to the Ghost Shop!"),
|
||||
GIMESSAGE_UNTRANSLATED(GI_BOTTLE_WITH_BLUE_POTION, ITEM_POTION_BLUE,
|
||||
GIMESSAGE_UNTRANSLATED(RG_BOTTLE_WITH_BLUE_POTION, ITEM_POTION_BLUE,
|
||||
"You got a %rBottle of Blue Potion%w!&Drink it to replenish your&%ghealth%w and %bmagic%w!"),
|
||||
GIMESSAGE_UNTRANSLATED(GI_BOTTLE_WITH_FISH, ITEM_FISH,
|
||||
GIMESSAGE_UNTRANSLATED(RG_BOTTLE_WITH_FISH, ITEM_FISH,
|
||||
"You got a %rFish in a Bottle%w!&It looks fresh and delicious!&They say Jabu-Jabu loves them!"),
|
||||
GIMESSAGE_UNTRANSLATED(GI_BOTTLE_WITH_BUGS, ITEM_BUG,
|
||||
GIMESSAGE_UNTRANSLATED(RG_BOTTLE_WITH_BUGS, ITEM_BUG,
|
||||
"You got a %rBug in a Bottle%w!&They love to burrow in&dirt holes!"),
|
||||
GIMESSAGE_UNTRANSLATED(GI_BOTTLE_WITH_FAIRY, ITEM_FAIRY, "You got a %rFairy in a Bottle%w!&Use it wisely!"),
|
||||
GIMESSAGE_UNTRANSLATED(GI_BOTTLE_WITH_RED_POTION, ITEM_POTION_RED,
|
||||
GIMESSAGE_UNTRANSLATED(RG_BOTTLE_WITH_FAIRY, ITEM_FAIRY, "You got a %rFairy in a Bottle%w!&Use it wisely!"),
|
||||
GIMESSAGE_UNTRANSLATED(RG_BOTTLE_WITH_RED_POTION, ITEM_POTION_RED,
|
||||
"You got a %rBottle of Red Potion%w!&Drink it to replenish your&%ghealth%w!"),
|
||||
GIMESSAGE_UNTRANSLATED(GI_BOTTLE_WITH_GREEN_POTION, ITEM_POTION_GREEN,
|
||||
GIMESSAGE_UNTRANSLATED(RG_BOTTLE_WITH_GREEN_POTION, ITEM_POTION_GREEN,
|
||||
"You got a %rBottle of Green Potion%w!&Drink it to replenish your&%bmagic%w!"),
|
||||
GIMESSAGE_UNTRANSLATED(GI_BOTTLE_WITH_POE, ITEM_POE,
|
||||
GIMESSAGE_UNTRANSLATED(RG_BOTTLE_WITH_POE, ITEM_POE,
|
||||
"You got a %rPoe in a Bottle%w!&That creepy Ghost Shop might&be interested in this..."),
|
||||
};
|
||||
CreateGetItemMessages(getItemMessages);
|
||||
|
@ -1542,10 +1542,6 @@ extern "C" void* getN64WeirdFrame(s32 i) {
|
||||
return &weirdFrameBytes[i + sizeof(n64WeirdFrames)];
|
||||
}
|
||||
|
||||
extern "C" s16 Randomizer_GetItemModelFromId(s16 itemId) {
|
||||
return OTRGlobals::Instance->gRandomizer->GetItemModelFromId(itemId);
|
||||
}
|
||||
|
||||
extern "C" s32 Randomizer_GetItemIDFromGetItemID(s32 getItemId) {
|
||||
return OTRGlobals::Instance->gRandomizer->GetItemIDFromGetItemID(getItemId);
|
||||
}
|
||||
|
@ -5970,7 +5970,7 @@ s32 func_80038290(GlobalContext* globalCtx, Actor* actor, Vec3s* arg2, Vec3s* ar
|
||||
return true;
|
||||
}
|
||||
|
||||
s32 GetChestGameRandoGetItemId(s8 room, s16 ogDrawId, GlobalContext* globalCtx) {
|
||||
GetItemEntry GetChestGameRandoGetItem(s8 room, s16 ogDrawId, GlobalContext* globalCtx) {
|
||||
if (Randomizer_GetSettingValue(RSK_SHUFFLE_CHEST_MINIGAME)) {
|
||||
// RANDOTODO update this logic when we implement keysanity
|
||||
// because 3drando replaces the keys not the rupees
|
||||
@ -5981,27 +5981,27 @@ s32 GetChestGameRandoGetItemId(s8 room, s16 ogDrawId, GlobalContext* globalCtx)
|
||||
switch(room) {
|
||||
case 1:
|
||||
if(!Flags_GetCollectible(globalCtx, 0x1B)) {
|
||||
return Randomizer_GetItemIdFromKnownCheck(RC_MARKET_TREASURE_CHEST_GAME_ITEM_1, GI_RUPEE_GREEN);
|
||||
return Randomizer_GetItemFromKnownCheck(RC_MARKET_TREASURE_CHEST_GAME_ITEM_1, GI_RUPEE_GREEN);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if(!Flags_GetCollectible(globalCtx, 0x1C)) {
|
||||
return Randomizer_GetItemIdFromKnownCheck(RC_MARKET_TREASURE_CHEST_GAME_ITEM_2, GI_RUPEE_GREEN);
|
||||
return Randomizer_GetItemFromKnownCheck(RC_MARKET_TREASURE_CHEST_GAME_ITEM_2, GI_RUPEE_GREEN);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if(!Flags_GetCollectible(globalCtx, 0x1D)) {
|
||||
return Randomizer_GetItemIdFromKnownCheck(RC_MARKET_TREASURE_CHEST_GAME_ITEM_3, GI_RUPEE_BLUE);
|
||||
return Randomizer_GetItemFromKnownCheck(RC_MARKET_TREASURE_CHEST_GAME_ITEM_3, GI_RUPEE_BLUE);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if(!Flags_GetCollectible(globalCtx, 0x1E)) {
|
||||
return Randomizer_GetItemIdFromKnownCheck(RC_MARKET_TREASURE_CHEST_GAME_ITEM_4, GI_RUPEE_BLUE);
|
||||
return Randomizer_GetItemFromKnownCheck(RC_MARKET_TREASURE_CHEST_GAME_ITEM_4, GI_RUPEE_BLUE);
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if(!Flags_GetCollectible(globalCtx, 0x1F)) {
|
||||
return Randomizer_GetItemIdFromKnownCheck(RC_MARKET_TREASURE_CHEST_GAME_ITEM_5, GI_RUPEE_RED);
|
||||
return Randomizer_GetItemFromKnownCheck(RC_MARKET_TREASURE_CHEST_GAME_ITEM_5, GI_RUPEE_RED);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -6009,17 +6009,17 @@ s32 GetChestGameRandoGetItemId(s8 room, s16 ogDrawId, GlobalContext* globalCtx)
|
||||
}
|
||||
|
||||
if(ogDrawId == GID_HEART_PIECE) {
|
||||
return Randomizer_GetItemIdFromKnownCheck(RC_MARKET_TREASURE_CHEST_GAME_REWARD, GI_HEART_PIECE);
|
||||
return Randomizer_GetItemFromKnownCheck(RC_MARKET_TREASURE_CHEST_GAME_REWARD, GI_HEART_PIECE);
|
||||
}
|
||||
|
||||
return GI_NONE;
|
||||
return (GetItemEntry)GET_ITEM_NONE;
|
||||
}
|
||||
|
||||
s16 GetChestGameRandoGiDrawId(s8 room, s16 ogDrawId, GlobalContext* globalCtx) {
|
||||
s32 randoGetItemId = GetChestGameRandoGetItemId(room, ogDrawId, globalCtx);
|
||||
GetItemEntry randoGetItem = GetChestGameRandoGetItem(room, ogDrawId, globalCtx);
|
||||
|
||||
if(randoGetItemId != GI_NONE) {
|
||||
return Randomizer_GetItemModelFromId(randoGetItemId);
|
||||
if (randoGetItem.itemId != RG_NONE) {
|
||||
return ABS(randoGetItem.gi) - 1;
|
||||
}
|
||||
|
||||
return ogDrawId;
|
||||
|
@ -201,7 +201,7 @@ void GivePlayerRandoRewardSongOfTime(GlobalContext* globalCtx, RandomizerCheck c
|
||||
|
||||
if (gSaveContext.entranceIndex == 0x050F && player != NULL && !Player_InBlockingCsMode(globalCtx, player) &&
|
||||
!Flags_GetTreasure(globalCtx, 0x1F) && gSaveContext.nextTransition == 0xFF) {
|
||||
GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, GI_SONG_OF_TIME);
|
||||
GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, RG_SONG_OF_TIME);
|
||||
GiveItemWithoutActor(globalCtx, getItemId);
|
||||
player->pendingFlag.flagID = 0x1F;
|
||||
player->pendingFlag.flagType = FLAG_SCENE_TREASURE;
|
||||
@ -216,7 +216,7 @@ void GivePlayerRandoRewardNocturne(GlobalContext* globalCtx, RandomizerCheck che
|
||||
gSaveContext.entranceIndex == 0x0195) && LINK_IS_ADULT && CHECK_QUEST_ITEM(QUEST_MEDALLION_FOREST) &&
|
||||
CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE) && CHECK_QUEST_ITEM(QUEST_MEDALLION_WATER) && player != NULL &&
|
||||
!Player_InBlockingCsMode(globalCtx, player) && !Flags_GetEventChkInf(0xAA)) {
|
||||
GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, GI_NOCTURNE_OF_SHADOW);
|
||||
GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, RG_NOCTURNE_OF_SHADOW);
|
||||
GiveItemWithoutActor(globalCtx, getItemId);
|
||||
Flags_SetEventChkInf(0xAA);
|
||||
}
|
||||
@ -228,7 +228,7 @@ void GivePlayerRandoRewardRequiem(GlobalContext* globalCtx, RandomizerCheck chec
|
||||
if ((gSaveContext.gameMode == 0) && (gSaveContext.respawnFlag <= 0) && (gSaveContext.cutsceneIndex < 0xFFF0)) {
|
||||
if ((gSaveContext.entranceIndex == 0x01E1) && !Flags_GetEventChkInf(0xAC) && player != NULL &&
|
||||
!Player_InBlockingCsMode(globalCtx, player)) {
|
||||
GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, GI_SONG_OF_TIME);
|
||||
GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, RG_SONG_OF_TIME);
|
||||
GiveItemWithoutActor(globalCtx, getItemId);
|
||||
Flags_SetEventChkInf(0xAC);
|
||||
}
|
||||
@ -254,7 +254,7 @@ void GivePlayerRandoRewardZeldaLightArrowsGift(GlobalContext* globalCtx, Randomi
|
||||
void GivePlayerRandoRewardSariaGift(GlobalContext* globalCtx, RandomizerCheck check) {
|
||||
Player* player = GET_PLAYER(globalCtx);
|
||||
if (gSaveContext.entranceIndex == 0x05E0) {
|
||||
GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, GI_ZELDAS_LULLABY);
|
||||
GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, RG_ZELDAS_LULLABY);
|
||||
|
||||
if ((!Flags_GetEventChkInf(0xC1) || (player->getItemId == getItemId && getItemId != GI_ICE_TRAP)) &&
|
||||
player != NULL && !Player_InBlockingCsMode(globalCtx, player)) {
|
||||
|
@ -2,6 +2,7 @@
|
||||
#include "vt.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <soh/Enhancements/randomizer/randomizerTypes.h>
|
||||
|
||||
#define NUM_DUNGEONS 8
|
||||
#define NUM_TRIALS 6
|
||||
@ -306,11 +307,11 @@ void GiveLinkDekuNutUpgrade(GetItemID giid) {
|
||||
}
|
||||
|
||||
void GiveLinkMagic(GetItemID giid) {
|
||||
if (giid == GI_SINGLE_MAGIC) {
|
||||
if (giid == RG_MAGIC_SINGLE) {
|
||||
gSaveContext.magicLevel = 1;
|
||||
gSaveContext.magicAcquired = true;
|
||||
gSaveContext.doubleMagic = false;
|
||||
} else if (giid == GI_DOUBLE_MAGIC) {
|
||||
} else if (giid == RG_MAGIC_DOUBLE) {
|
||||
gSaveContext.magicLevel = 2;
|
||||
gSaveContext.magicAcquired = true;
|
||||
gSaveContext.doubleMagic = true;
|
||||
@ -326,40 +327,40 @@ void GiveLinkSong(GetItemID getItemId) {
|
||||
uint32_t bitMask;
|
||||
|
||||
switch (getItemId) {
|
||||
case GI_ZELDAS_LULLABY:
|
||||
case RG_ZELDAS_LULLABY:
|
||||
bitMask = 1 << QUEST_SONG_LULLABY;
|
||||
break;
|
||||
case GI_SUNS_SONG:
|
||||
case RG_SUNS_SONG:
|
||||
bitMask = 1 << QUEST_SONG_SUN;
|
||||
break;
|
||||
case GI_EPONAS_SONG:
|
||||
case RG_EPONAS_SONG:
|
||||
bitMask = 1 << QUEST_SONG_EPONA;
|
||||
break;
|
||||
case GI_SONG_OF_STORMS:
|
||||
case RG_SONG_OF_STORMS:
|
||||
bitMask = 1 << QUEST_SONG_STORMS;
|
||||
break;
|
||||
case GI_SONG_OF_TIME:
|
||||
case RG_SONG_OF_TIME:
|
||||
bitMask = 1 << QUEST_SONG_TIME;
|
||||
break;
|
||||
case GI_SARIAS_SONG:
|
||||
case RG_SARIAS_SONG:
|
||||
bitMask = 1 << QUEST_SONG_SARIA;
|
||||
break;
|
||||
case GI_MINUET_OF_FOREST:
|
||||
case RG_MINUET_OF_FOREST:
|
||||
bitMask = 1 << QUEST_SONG_MINUET;
|
||||
break;
|
||||
case GI_BOLERO_OF_FIRE:
|
||||
case RG_BOLERO_OF_FIRE:
|
||||
bitMask = 1 << QUEST_SONG_BOLERO;
|
||||
break;
|
||||
case GI_SERENADE_OF_WATER:
|
||||
case RG_SERENADE_OF_WATER:
|
||||
bitMask = 1 << QUEST_SONG_SERENADE;
|
||||
break;
|
||||
case GI_NOCTURNE_OF_SHADOW:
|
||||
case RG_NOCTURNE_OF_SHADOW:
|
||||
bitMask = 1 << QUEST_SONG_NOCTURNE;
|
||||
break;
|
||||
case GI_REQUIEM_OF_SPIRIT:
|
||||
case RG_REQUIEM_OF_SPIRIT:
|
||||
bitMask = 1 << QUEST_SONG_REQUIEM;
|
||||
break;
|
||||
case GI_PRELUDE_OF_LIGHT:
|
||||
case RG_PRELUDE_OF_LIGHT:
|
||||
bitMask = 1 << QUEST_SONG_PRELUDE;
|
||||
break;
|
||||
}
|
||||
@ -696,30 +697,22 @@ void Sram_InitSave(FileChooseContext* fileChooseCtx) {
|
||||
}
|
||||
|
||||
if(Randomizer_GetSettingValue(RSK_SKIP_CHILD_ZELDA)) {
|
||||
s32 giid = Randomizer_GetItemIdFromKnownCheck(RC_SONG_FROM_IMPA, GI_ZELDAS_LULLABY);
|
||||
|
||||
if(giid >= GI_ZELDAS_LULLABY && giid <= GI_PRELUDE_OF_LIGHT) {
|
||||
s32 giid = Randomizer_GetItemIdFromKnownCheck(RC_SONG_FROM_IMPA, RG_ZELDAS_LULLABY);
|
||||
|
||||
if (giid >= RG_ZELDAS_LULLABY && giid <= RG_PRELUDE_OF_LIGHT) {
|
||||
GiveLinkSong(giid);
|
||||
} else if (giid == GI_RUPEE_GREEN ||
|
||||
giid == GI_RUPEE_BLUE ||
|
||||
giid == GI_RUPEE_RED ||
|
||||
giid == GI_RUPEE_PURPLE ||
|
||||
giid == GI_RUPEE_GOLD) {
|
||||
} else if (giid == GI_RUPEE_GREEN || giid == GI_RUPEE_BLUE || giid == GI_RUPEE_RED ||
|
||||
giid == GI_RUPEE_PURPLE || giid == GI_RUPEE_GOLD) {
|
||||
GiveLinkRupeesByGetItemId(giid);
|
||||
} else if (giid == GI_BOMBCHUS_10 ||
|
||||
giid == GI_BOMBCHUS_5 ||
|
||||
giid == GI_BOMBCHUS_20) {
|
||||
} else if (giid == GI_BOMBCHUS_10 || giid == GI_BOMBCHUS_5 || giid == GI_BOMBCHUS_20) {
|
||||
GiveLinkBombchus(giid);
|
||||
} else if (giid == GI_STICKS_1 ||
|
||||
giid == GI_STICKS_5 ||
|
||||
giid == GI_STICKS_10) {
|
||||
} else if (giid == GI_STICKS_1 || giid == GI_STICKS_5 || giid == GI_STICKS_10) {
|
||||
GiveLinkDekuSticksByGetItemId(giid);
|
||||
} else if (giid == GI_NUTS_5 ||
|
||||
giid == GI_NUTS_10) {
|
||||
} else if (giid == GI_NUTS_5 || giid == GI_NUTS_10) {
|
||||
GiveLinkDekuNutsByGetItemId(giid);
|
||||
} else if (giid == GI_BEAN) {
|
||||
GiveLinkBeans();
|
||||
} else if (giid >= GI_MEDALLION_LIGHT && giid <= GI_STONE_ZORA) {
|
||||
} else if (giid >= RG_KOKIRI_EMERALD && giid <= RG_LIGHT_MEDALLION) {
|
||||
GiveLinkDungeonReward(giid);
|
||||
} else if (giid == GI_SWORD_KOKIRI) {
|
||||
GiveLinkKokiriSword();
|
||||
@ -741,27 +734,17 @@ void Sram_InitSave(FileChooseContext* fileChooseCtx) {
|
||||
GiveLinkIronBoots();
|
||||
} else if (giid == GI_BOOTS_HOVER) {
|
||||
GiveLinkHoverBoots();
|
||||
} else if (giid == GI_SLINGSHOT ||
|
||||
giid == GI_BULLET_BAG_40 ||
|
||||
giid == GI_BULLET_BAG_50) {
|
||||
} else if (giid == GI_SLINGSHOT || giid == GI_BULLET_BAG_40 || giid == GI_BULLET_BAG_50) {
|
||||
GiveLinkBulletBagUpgrade(giid);
|
||||
} else if (giid == GI_BOW ||
|
||||
giid == GI_QUIVER_40 ||
|
||||
giid == GI_QUIVER_50) {
|
||||
} else if (giid == GI_BOW || giid == GI_QUIVER_40 || giid == GI_QUIVER_50) {
|
||||
GiveLinkQuiverUpgrade(giid);
|
||||
} else if (giid == GI_BOMB_BAG_20 ||
|
||||
giid == GI_BOMB_BAG_30 ||
|
||||
giid == GI_BOMB_BAG_40) {
|
||||
} else if (giid == GI_BOMB_BAG_20 || giid == GI_BOMB_BAG_30 || giid == GI_BOMB_BAG_40) {
|
||||
GiveLinkBombBagUpgrade(giid);
|
||||
} else if (giid == GI_BRACELET ||
|
||||
giid == GI_GAUNTLETS_SILVER ||
|
||||
giid == GI_GAUNTLETS_GOLD) {
|
||||
} else if (giid == GI_BRACELET || giid == GI_GAUNTLETS_SILVER || giid == GI_GAUNTLETS_GOLD) {
|
||||
GiveLinkStrengthUpgrade(giid);
|
||||
} else if (giid == GI_SCALE_SILVER ||
|
||||
giid == GI_SCALE_GOLD) {
|
||||
} else if (giid == GI_SCALE_SILVER || giid == GI_SCALE_GOLD) {
|
||||
GiveLinkScaleUpgrade(giid);
|
||||
} else if (giid == GI_WALLET_ADULT ||
|
||||
giid == GI_WALLET_GIANT) {
|
||||
} else if (giid == GI_WALLET_ADULT || giid == GI_WALLET_GIANT) {
|
||||
GiveLinkWalletUpgrade(giid);
|
||||
} else if (giid == GI_STONE_OF_AGONY) {
|
||||
GiveLinkStoneOfAgony();
|
||||
@ -771,16 +754,13 @@ void Sram_InitSave(FileChooseContext* fileChooseCtx) {
|
||||
GiveLinkPieceOfHeart();
|
||||
} else if (giid == GI_HEART_CONTAINER) {
|
||||
GiveLinkHeartContainer();
|
||||
} else if (giid == GI_STICK_UPGRADE_20 ||
|
||||
giid == GI_STICK_UPGRADE_30) {
|
||||
} else if (giid == GI_STICK_UPGRADE_20 || giid == GI_STICK_UPGRADE_30) {
|
||||
GiveLinkDekuStickUpgrade(giid);
|
||||
} else if (giid == GI_NUT_UPGRADE_30 ||
|
||||
giid == GI_NUT_UPGRADE_40) {
|
||||
} else if (giid == GI_NUT_UPGRADE_30 || giid == GI_NUT_UPGRADE_40) {
|
||||
GiveLinkDekuNutUpgrade(giid);
|
||||
} else if (giid == GI_SINGLE_MAGIC ||
|
||||
giid == GI_DOUBLE_MAGIC) {
|
||||
} else if (giid == RG_MAGIC_SINGLE || giid == RG_MAGIC_DOUBLE) {
|
||||
GiveLinkMagic(giid);
|
||||
} else if (giid == GI_DOUBLE_DEFENSE) {
|
||||
} else if (giid == RG_DOUBLE_DEFENSE) {
|
||||
GiveLinkDoubleDefense();
|
||||
} else {
|
||||
s32 iid = Randomizer_GetItemIDFromGetItemID(giid);
|
||||
|
@ -899,7 +899,7 @@ void func_80986BF8(DemoIm* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void GivePlayerRandoRewardImpa(Actor* impa, GlobalContext* globalCtx, RandomizerCheck check) {
|
||||
GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, GI_ZELDAS_LULLABY);
|
||||
GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, RG_ZELDAS_LULLABY);
|
||||
|
||||
if (impa->parent != NULL && impa->parent->id == GET_PLAYER(globalCtx)->actor.id &&
|
||||
!Flags_GetTreasure(globalCtx, 0x1F)) {
|
||||
|
@ -138,8 +138,10 @@ void EnExItem_WaitForObject(EnExItem* this, GlobalContext* globalCtx) {
|
||||
case EXITEM_BOMB_BAG_BOWLING:
|
||||
this->unk_17C = func_8002EBCC;
|
||||
if (gSaveContext.n64ddFlag) {
|
||||
this->giDrawId = Randomizer_GetItemModelFromId(
|
||||
Randomizer_GetItemIdFromKnownCheck(RC_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE, GI_BOMB_BAG_20));
|
||||
this->giDrawId =
|
||||
ABS(Randomizer_GetItemFromKnownCheck(RC_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE, GI_BOMB_BAG_20)
|
||||
.gi) -
|
||||
1;
|
||||
} else {
|
||||
this->giDrawId = GID_BOMB_BAG_30;
|
||||
}
|
||||
@ -173,8 +175,9 @@ void EnExItem_WaitForObject(EnExItem* this, GlobalContext* globalCtx) {
|
||||
case EXITEM_BOMBCHUS_BOWLING:
|
||||
this->unk_17C = func_8002EBCC;
|
||||
if (gSaveContext.n64ddFlag) {
|
||||
this->giDrawId = Randomizer_GetItemModelFromId(
|
||||
Randomizer_GetItemIdFromKnownCheck(RC_MARKET_BOMBCHU_BOWLING_BOMBCHUS, GI_BOMBCHUS_10));
|
||||
this->giDrawId =
|
||||
ABS(Randomizer_GetItemFromKnownCheck(RC_MARKET_BOMBCHU_BOWLING_BOMBCHUS, GI_BOMBCHUS_10).gi) -
|
||||
1;
|
||||
} else {
|
||||
this->giDrawId = GID_BOMBCHU;
|
||||
}
|
||||
@ -506,24 +509,19 @@ void EnExItem_DrawItems(EnExItem* this, GlobalContext* globalCtx) {
|
||||
if (this) {}
|
||||
func_8002ED80(&this->actor, globalCtx, 0);
|
||||
if (gSaveContext.n64ddFlag) {
|
||||
s32 randoGetItemId;
|
||||
GetItemEntry randoGetItem;
|
||||
switch (this->type) {
|
||||
case EXITEM_BOMB_BAG_BOWLING:
|
||||
case EXITEM_BOMB_BAG_COUNTER:
|
||||
randoGetItemId = Randomizer_GetItemIdFromKnownCheck(
|
||||
RC_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE, GI_BOMB_BAG_20);
|
||||
randoGetItem = Randomizer_GetItemFromKnownCheck(RC_MARKET_BOMBCHU_BOWLING_FIRST_PRIZE, GI_BOMB_BAG_20);
|
||||
break;
|
||||
case EXITEM_BOMBCHUS_BOWLING:
|
||||
case EXITEM_BOMBCHUS_COUNTER:
|
||||
randoGetItemId = Randomizer_GetItemIdFromKnownCheck(
|
||||
RC_MARKET_BOMBCHU_BOWLING_BOMBCHUS, GI_BOMBCHUS_10);
|
||||
randoGetItem = Randomizer_GetItemFromKnownCheck(RC_MARKET_BOMBCHU_BOWLING_BOMBCHUS, GI_BOMBCHUS_10);
|
||||
break;
|
||||
}
|
||||
|
||||
if ((randoGetItemId >= GI_MINUET_OF_FOREST && randoGetItemId <= GI_DOUBLE_DEFENSE) ||
|
||||
(randoGetItemId >= GI_STICK_UPGRADE_20 && randoGetItemId <= GI_NUT_UPGRADE_40)) {
|
||||
EnItem00_CustomItemsParticles(&this->actor, globalCtx, randoGetItemId);
|
||||
}
|
||||
EnItem00_CustomItemsParticles(&this->actor, globalCtx, randoGetItem);
|
||||
}
|
||||
|
||||
GetItem_Draw(globalCtx, this->giDrawId);
|
||||
@ -533,13 +531,10 @@ void EnExItem_DrawHeartPiece(EnExItem* this, GlobalContext* globalCtx) {
|
||||
func_8002ED80(&this->actor, globalCtx, 0);
|
||||
|
||||
if (gSaveContext.n64ddFlag) {
|
||||
s32 randoGetItemId = Randomizer_GetItemIdFromKnownCheck(
|
||||
RC_MARKET_BOMBCHU_BOWLING_SECOND_PRIZE, GI_HEART_PIECE);
|
||||
if ((randoGetItemId >= GI_MINUET_OF_FOREST && randoGetItemId <= GI_DOUBLE_DEFENSE) ||
|
||||
(randoGetItemId >= GI_STICK_UPGRADE_20 && randoGetItemId <= GI_NUT_UPGRADE_40)) {
|
||||
EnItem00_CustomItemsParticles(&this->actor, globalCtx, randoGetItemId);
|
||||
}
|
||||
GetItem_Draw(globalCtx, Randomizer_GetItemModelFromId(randoGetItemId));
|
||||
GetItemEntry randoGetItem =
|
||||
Randomizer_GetItemFromKnownCheck(RC_MARKET_BOMBCHU_BOWLING_SECOND_PRIZE, GI_HEART_PIECE);
|
||||
EnItem00_CustomItemsParticles(&this->actor, globalCtx, randoGetItem);
|
||||
GetItem_Draw(globalCtx, ABS(randoGetItem.gi) - 1);
|
||||
} else {
|
||||
GetItem_Draw(globalCtx, GID_HEART_PIECE);
|
||||
}
|
||||
|
@ -154,7 +154,7 @@ void GivePlayerRandoRewardSongOfStorms(EnFu* windmillGuy, GlobalContext* globalC
|
||||
Flags_SetTreasure(globalCtx, 0x1F);
|
||||
windmillGuy->actionFunc = func_80A1DBD4;
|
||||
} else if (!Flags_GetTreasure(globalCtx, 0x1F)) {
|
||||
GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, GI_SONG_OF_STORMS);
|
||||
GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, RG_SONG_OF_STORMS);
|
||||
func_8002F434(&windmillGuy->actor, globalCtx, getItemId, 10000.0f, 100.0f);
|
||||
}
|
||||
}
|
||||
|
@ -357,7 +357,7 @@ void func_80AA0EFC(EnMa1* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void GivePlayerRandoRewardMalon(EnMa1* malon, GlobalContext* globalCtx, RandomizerCheck check) {
|
||||
GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, GI_EPONAS_SONG);
|
||||
GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, RG_EPONAS_SONG);
|
||||
// Prevents flag from getting set if we weren't able to get the item (i.e. Player is holding shield
|
||||
// when closing the textbox).
|
||||
if (malon->actor.parent != NULL && malon->actor.parent->id == GET_PLAYER(globalCtx)->actor.id &&
|
||||
|
@ -619,7 +619,7 @@ void func_80AF67D0(EnSa* this, GlobalContext* globalCtx) {
|
||||
|
||||
void GivePlayerRandoRewardSaria(EnSa* saria, GlobalContext* globalCtx, RandomizerCheck check) {
|
||||
GetItemID getItemId =
|
||||
Randomizer_GetItemIdFromKnownCheck(check, GI_SARIAS_SONG);
|
||||
Randomizer_GetItemIdFromKnownCheck(check, RG_SARIAS_SONG);
|
||||
|
||||
if (saria->actor.parent != NULL && saria->actor.parent->id == GET_PLAYER(globalCtx)->actor.id &&
|
||||
!Flags_GetTreasure(globalCtx, 0x1F)) {
|
||||
|
@ -319,7 +319,7 @@ s32 EnXc_MinuetCS(EnXc* this, GlobalContext* globalCtx) {
|
||||
gSaveContext.eventChkInf[5] |= 1;
|
||||
Item_Give(globalCtx, ITEM_SONG_MINUET);
|
||||
} else {
|
||||
GivePlayerRandoRewardSheikSong(this, globalCtx, RC_SHEIK_IN_FOREST, 1, GI_MINUET_OF_FOREST);
|
||||
GivePlayerRandoRewardSheikSong(this, globalCtx, RC_SHEIK_IN_FOREST, 1, RG_MINUET_OF_FOREST);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@ -355,7 +355,7 @@ s32 EnXc_BoleroCS(EnXc* this, GlobalContext* globalCtx) {
|
||||
gSaveContext.eventChkInf[5] |= 2;
|
||||
Item_Give(globalCtx, ITEM_SONG_BOLERO);
|
||||
} else {
|
||||
GivePlayerRandoRewardSheikSong(this, globalCtx, RC_SHEIK_IN_CRATER, 2, GI_BOLERO_OF_FIRE);
|
||||
GivePlayerRandoRewardSheikSong(this, globalCtx, RC_SHEIK_IN_CRATER, 2, RG_BOLERO_OF_FIRE);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@ -396,7 +396,7 @@ s32 EnXc_SerenadeCS(EnXc* this, GlobalContext* globalCtx) {
|
||||
gSaveContext.eventChkInf[5] |= 4; // Learned Serenade of Water Flag
|
||||
Item_Give(globalCtx, ITEM_SONG_SERENADE);
|
||||
} else {
|
||||
GivePlayerRandoRewardSheikSong(this, globalCtx, RC_SHEIK_IN_ICE_CAVERN, 4, GI_SERENADE_OF_WATER);
|
||||
GivePlayerRandoRewardSheikSong(this, globalCtx, RC_SHEIK_IN_ICE_CAVERN, 4, RG_SERENADE_OF_WATER);
|
||||
return false;
|
||||
}
|
||||
osSyncPrintf("ブーツを取った!!!!!!!!!!!!!!!!!!\n");
|
||||
@ -2207,7 +2207,7 @@ void EnXc_InitTempleOfTime(EnXc* this, GlobalContext* globalCtx) {
|
||||
gSaveContext.cutsceneTrigger = 1;
|
||||
this->action = SHEIK_ACTION_30;
|
||||
} else {
|
||||
GivePlayerRandoRewardSheikSong(this, globalCtx, RC_SHEIK_AT_TEMPLE, 0x20, GI_PRELUDE_OF_LIGHT);
|
||||
GivePlayerRandoRewardSheikSong(this, globalCtx, RC_SHEIK_AT_TEMPLE, 0x20, RG_PRELUDE_OF_LIGHT);
|
||||
}
|
||||
} else if (!(gSaveContext.eventChkInf[5] & 0x20)) {
|
||||
func_80B3C9EC(this);
|
||||
@ -2349,7 +2349,7 @@ void EnXc_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
if (this->actor.params == SHEIK_TYPE_9) {
|
||||
if (gSaveContext.n64ddFlag && LINK_IS_ADULT) {
|
||||
if (CHECK_QUEST_ITEM(QUEST_MEDALLION_FOREST) && !(gSaveContext.eventChkInf[5] & 0x20)) {
|
||||
GivePlayerRandoRewardSheikSong(this, globalCtx, RC_SHEIK_AT_TEMPLE, 0x20, GI_PRELUDE_OF_LIGHT);
|
||||
GivePlayerRandoRewardSheikSong(this, globalCtx, RC_SHEIK_AT_TEMPLE, 0x20, RG_PRELUDE_OF_LIGHT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -99,8 +99,10 @@ void ItemBHeart_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
if (gSaveContext.n64ddFlag) {
|
||||
GetItem_Draw(globalCtx,
|
||||
Randomizer_GetItemModelFromId(Randomizer_GetRandomizedItemId(GI_HEART_CONTAINER_2, this->actor.id, this->actor.params, globalCtx->sceneNum)));
|
||||
GetItem_Draw(globalCtx, ABS(Randomizer_GetRandomizedItem(GI_HEART_CONTAINER_2, this->actor.id,
|
||||
this->actor.params, globalCtx->sceneNum)
|
||||
.gi) -
|
||||
1);
|
||||
} else {
|
||||
if (flag) {
|
||||
func_80093D84(globalCtx->state.gfxCtx);
|
||||
|
@ -21,6 +21,7 @@ void ItemEtcetera_SpawnSparkles(ItemEtcetera* this, GlobalContext* globalCtx);
|
||||
void ItemEtcetera_MoveFireArrowDown(ItemEtcetera* this, GlobalContext* globalCtx);
|
||||
void func_80B85B28(ItemEtcetera* this, GlobalContext* globalCtx);
|
||||
void ItemEtcetera_UpdateFireArrow(ItemEtcetera* this, GlobalContext* globalCtx);
|
||||
GetItemEntry GetChestGameRandoGetItem(s8 room, s16 ogDrawId, GlobalContext* globalCtx);
|
||||
|
||||
const ActorInit Item_Etcetera_InitVars = {
|
||||
ACTOR_ITEM_ETCETERA,
|
||||
@ -229,13 +230,10 @@ void ItemEtcetera_DrawThroughLens(Actor* thisx, GlobalContext* globalCtx) {
|
||||
func_8002ED80(&this->actor, globalCtx, 0);
|
||||
|
||||
if(gSaveContext.n64ddFlag && globalCtx->sceneNum == 16) {
|
||||
s32 randoGetItemId = GetChestGameRandoGetItemId(this->actor.room, this->giDrawId, globalCtx);
|
||||
if ((randoGetItemId >= GI_MINUET_OF_FOREST && randoGetItemId <= GI_DOUBLE_DEFENSE) ||
|
||||
(randoGetItemId >= GI_STICK_UPGRADE_20 && randoGetItemId <= GI_NUT_UPGRADE_40)) {
|
||||
EnItem00_CustomItemsParticles(&this->actor, globalCtx, randoGetItemId);
|
||||
}
|
||||
if (randoGetItemId != GI_NONE) {
|
||||
GetItem_Draw(globalCtx, Randomizer_GetItemModelFromId(randoGetItemId));
|
||||
GetItemEntry randoGetItem = GetChestGameRandoGetItem(this->actor.room, this->giDrawId, globalCtx);
|
||||
EnItem00_CustomItemsParticles(&this->actor, globalCtx, randoGetItem);
|
||||
if (randoGetItem.itemId != RG_NONE) {
|
||||
GetItem_Draw(globalCtx, ABS(randoGetItem.gi) - 1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -249,20 +247,17 @@ void ItemEtcetera_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 type = this->actor.params & 0xFF;
|
||||
|
||||
if (gSaveContext.n64ddFlag) {
|
||||
s32 randoGetItemId = GI_NONE;
|
||||
GetItemEntry randoGetItem = (GetItemEntry)GET_ITEM_NONE;
|
||||
if (type == ITEM_ETC_ARROW_FIRE) {
|
||||
randoGetItemId = Randomizer_GetItemIdFromKnownCheck(RC_LH_SUN, GI_ARROW_FIRE);
|
||||
randoGetItem = Randomizer_GetItemFromKnownCheck(RC_LH_SUN, GI_ARROW_FIRE);
|
||||
} else if (type == ITEM_ETC_LETTER) {
|
||||
randoGetItemId = Randomizer_GetItemIdFromKnownCheck(RC_LH_UNDERWATER_ITEM, GI_LETTER_RUTO);
|
||||
randoGetItem = Randomizer_GetItemFromKnownCheck(RC_LH_UNDERWATER_ITEM, GI_LETTER_RUTO);
|
||||
}
|
||||
|
||||
if ((randoGetItemId >= GI_MINUET_OF_FOREST && randoGetItemId <= GI_DOUBLE_DEFENSE) ||
|
||||
(randoGetItemId >= GI_STICK_UPGRADE_20 && randoGetItemId <= GI_NUT_UPGRADE_40)) {
|
||||
EnItem00_CustomItemsParticles(&this->actor, globalCtx, randoGetItemId);
|
||||
}
|
||||
EnItem00_CustomItemsParticles(&this->actor, globalCtx, randoGetItem);
|
||||
|
||||
if (randoGetItemId != GI_NONE) {
|
||||
this->giDrawId = Randomizer_GetItemModelFromId(randoGetItemId);
|
||||
if (randoGetItem.itemId != RG_NONE) {
|
||||
this->giDrawId = ABS(randoGetItem.gi) - 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -215,12 +215,9 @@ void ItemOcarina_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
func_8002ED80(thisx, globalCtx, 0);
|
||||
|
||||
if (gSaveContext.n64ddFlag) {
|
||||
s32 randoGetItemId = Randomizer_GetItemIdFromKnownCheck(RC_HF_OCARINA_OF_TIME_ITEM, GI_OCARINA_OOT);
|
||||
if ((randoGetItemId >= GI_MINUET_OF_FOREST && randoGetItemId <= GI_DOUBLE_DEFENSE) ||
|
||||
(randoGetItemId >= GI_STICK_UPGRADE_20 && randoGetItemId <= GI_NUT_UPGRADE_40)) {
|
||||
EnItem00_CustomItemsParticles(&this->actor, globalCtx, randoGetItemId);
|
||||
}
|
||||
GetItem_Draw(globalCtx, Randomizer_GetItemModelFromId(randoGetItemId));
|
||||
GetItemEntry randoGetItem = Randomizer_GetItemFromKnownCheck(RC_HF_OCARINA_OF_TIME_ITEM, GI_OCARINA_OOT);
|
||||
EnItem00_CustomItemsParticles(&this->actor, globalCtx, randoGetItem);
|
||||
GetItem_Draw(globalCtx, ABS(randoGetItem.gi) - 1);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -21,15 +21,7 @@
|
||||
#include "objects/object_link_child/object_link_child.h"
|
||||
#include "textures/icon_item_24_static/icon_item_24_static.h"
|
||||
#include <soh/Enhancements/custom-message/CustomMessageTypes.h>
|
||||
|
||||
#define GET_ITEM(itemId, objectId, drawId, textId, field, chestAnim) \
|
||||
{ itemId, field, (chestAnim != CHEST_ANIM_SHORT ? 1 : -1) * (drawId + 1), textId, objectId }
|
||||
|
||||
#define CHEST_ANIM_SHORT 0
|
||||
#define CHEST_ANIM_LONG 1
|
||||
|
||||
#define GET_ITEM_NONE \
|
||||
{ ITEM_NONE, 0, 0, 0, OBJECT_INVALID }
|
||||
#include <soh/Enhancements/item-tables/ItemTableTypes.h>
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ KNOB_ANIM_ADULT_L,
|
||||
@ -490,176 +482,6 @@ static u16 D_8085361C[] = {
|
||||
NA_SE_VO_LI_FALL_L,
|
||||
};
|
||||
|
||||
static GetItemEntry sGetItemTable[] = {
|
||||
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, 0x4A, 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(ITEM_ARROW_ICE, OBJECT_GI_M_ARROW, GID_ARROW_ICE, 0x3C, 0x80, CHEST_ANIM_SHORT), // Ice Traps
|
||||
GET_ITEM_NONE,
|
||||
|
||||
GET_ITEM(ITEM_MEDALLION_LIGHT, OBJECT_GI_MEDAL, GID_MEDALLION_LIGHT, 0x40, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_MEDALLION_FOREST, OBJECT_GI_MEDAL, GID_MEDALLION_FOREST, 0x3E, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_MEDALLION_FIRE, OBJECT_GI_MEDAL, GID_MEDALLION_FIRE, 0x3C, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_MEDALLION_WATER, OBJECT_GI_MEDAL, GID_MEDALLION_WATER, 0x3D, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_MEDALLION_SHADOW, OBJECT_GI_MEDAL, GID_MEDALLION_SHADOW, 0x41, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_MEDALLION_SPIRIT, OBJECT_GI_MEDAL, GID_MEDALLION_SPIRIT, 0x3F, 0x80, CHEST_ANIM_LONG),
|
||||
|
||||
GET_ITEM(ITEM_KOKIRI_EMERALD, OBJECT_GI_JEWEL, GID_KOKIRI_EMERALD, 0x80, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_GORON_RUBY, OBJECT_GI_JEWEL, GID_GORON_RUBY, 0x81, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_ZORA_SAPPHIRE, OBJECT_GI_JEWEL, GID_ZORA_SAPPHIRE, 0x82, 0x80, CHEST_ANIM_LONG),
|
||||
|
||||
GET_ITEM(ITEM_SONG_LULLABY, OBJECT_GI_MELODY, GID_SONG_ZELDA, 0xD4, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_SONG_SUN, OBJECT_GI_MELODY, GID_SONG_SUN, 0xD3, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_SONG_EPONA, OBJECT_GI_MELODY, GID_SONG_EPONA, 0xD2, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_SONG_STORMS, OBJECT_GI_MELODY, GID_SONG_STORM, 0xD6, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_SONG_TIME, OBJECT_GI_MELODY, GID_SONG_TIME, 0xD5, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_SONG_SARIA, OBJECT_GI_MELODY, GID_SONG_SARIA, 0xD1, 0x80, CHEST_ANIM_LONG),
|
||||
|
||||
GET_ITEM(ITEM_SONG_MINUET, OBJECT_GI_MELODY, GID_SONG_MINUET, 0x73, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_SONG_BOLERO, OBJECT_GI_MELODY, GID_SONG_BOLERO, 0x74, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_SONG_SERENADE, OBJECT_GI_MELODY, GID_SONG_SERENADE, 0x75, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_SONG_NOCTURNE, OBJECT_GI_MELODY, GID_SONG_NOCTURNE, 0x77, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_SONG_REQUIEM, OBJECT_GI_MELODY, GID_SONG_REQUIEM, 0x76, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_SONG_PRELUDE, OBJECT_GI_MELODY, GID_SONG_PRELUDE, 0x78, 0x80, CHEST_ANIM_LONG),
|
||||
|
||||
GET_ITEM(ITEM_SINGLE_MAGIC, OBJECT_GI_MAGICPOT, GID_MAGIC_SMALL, 0xE4, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_DOUBLE_MAGIC, OBJECT_GI_MAGICPOT, GID_MAGIC_LARGE, 0xE8, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_DOUBLE_DEFENSE, OBJECT_GI_HEARTS, GID_HEART_CONTAINER, 0xE9, 0x80, CHEST_ANIM_LONG),
|
||||
|
||||
GET_ITEM(ITEM_BOTTLE_WITH_RED_POTION, OBJECT_GI_LIQUID, GID_POTION_RED, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_BOTTLE_WITH_GREEN_POTION, OBJECT_GI_LIQUID, GID_POTION_GREEN, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_BOTTLE_WITH_BLUE_POTION, OBJECT_GI_LIQUID, GID_POTION_BLUE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_BOTTLE_WITH_FAIRY, OBJECT_GI_BOTTLE, GID_BOTTLE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_BOTTLE_WITH_FISH, OBJECT_GI_FISH, GID_FISH, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_BOTTLE_WITH_BLUE_FIRE, OBJECT_GI_FIRE, GID_BLUE_FIRE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_BOTTLE_WITH_BUGS, OBJECT_GI_INSECT, GID_BUG, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_BOTTLE_WITH_POE, OBJECT_GI_GHOST, GID_POE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG),
|
||||
GET_ITEM(ITEM_BOTTLE_WITH_BIG_POE, OBJECT_GI_GHOST, GID_BIG_POE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG),
|
||||
|
||||
GET_ITEM_NONE,
|
||||
GET_ITEM_NONE,
|
||||
};
|
||||
|
||||
static LinkAnimationHeader* D_80853914[PLAYER_ANIMGROUP_MAX][PLAYER_ANIMTYPE_MAX] = {
|
||||
/* PLAYER_ANIMGROUP_0 */
|
||||
{ &gPlayerAnim_003240, &gPlayerAnim_003238, &gPlayerAnim_003238, &gPlayerAnim_002BE0, &gPlayerAnim_003240,
|
||||
|
Loading…
Reference in New Issue
Block a user