mirror of
https://github.com/zeldaret/oot.git
synced 2025-08-24 16:01:26 +00:00
Merge branch 'master' into cleanup_colchk_1
This commit is contained in:
commit
fa8bf586e0
101 changed files with 2406 additions and 1951 deletions
|
@ -21,24 +21,10 @@ void Main_ThreadEntry(void* arg);
|
|||
void Idle_ThreadEntry(void* arg);
|
||||
void ViConfig_UpdateVi(u32 black);
|
||||
void ViConfig_UpdateBlack(void);
|
||||
s32 DmaMgr_CompareName(const char* name1, const char* name2);
|
||||
s32 DmaMgr_DmaRomToRam(uintptr_t rom, void* ram, u32 size);
|
||||
s32 DmaMgr_DmaHandler(OSPiHandle* pihandle, OSIoMesg* mb, s32 direction);
|
||||
void DmaMgr_Error(DmaRequest* req, const char* file, const char* errorName, const char* errorDesc);
|
||||
const char* DmaMgr_GetFileNameImpl(uintptr_t vrom);
|
||||
const char* DmaMgr_GetFileName(uintptr_t vrom);
|
||||
void DmaMgr_ProcessMsg(DmaRequest* req);
|
||||
void DmaMgr_ThreadEntry(void* arg);
|
||||
s32 DmaMgr_SendRequestImpl(DmaRequest* req, void* ram, uintptr_t vrom, u32 size, u32 unk, OSMesgQueue* queue, OSMesg msg);
|
||||
s32 DmaMgr_SendRequest0(void* ram, uintptr_t vrom, u32 size);
|
||||
void DmaMgr_Init(void);
|
||||
s32 DmaMgr_SendRequest2(DmaRequest* req, void* ram, uintptr_t vrom, u32 size, u32 unk5, OSMesgQueue* queue, OSMesg msg,
|
||||
const char* file, s32 line);
|
||||
s32 DmaMgr_SendRequest1(void* ram, uintptr_t vrom, u32 size, const char* file, s32 line);
|
||||
void* Yaz0_FirstDMA(void);
|
||||
void* Yaz0_NextDMA(u8* curSrcPos);
|
||||
void Yaz0_DecompressImpl(Yaz0Header* hdr, u8* dst);
|
||||
void Yaz0_Decompress(uintptr_t romStart, u8* dst, u32 size);
|
||||
void Yaz0_Decompress(uintptr_t romStart, u8* dst, size_t size);
|
||||
void Locale_Init(void);
|
||||
void Locale_ResetRegion(void);
|
||||
u32 func_80001F48(void);
|
||||
|
@ -995,9 +981,9 @@ void Inventory_ChangeAmmo(s16 item, s16 ammoChange);
|
|||
void Magic_Fill(PlayState* play);
|
||||
void Magic_Reset(PlayState* play);
|
||||
s32 Magic_RequestChange(PlayState* play, s16 amount, s16 type);
|
||||
void func_80088AA0(s16 arg0);
|
||||
void func_80088AF0(PlayState* play);
|
||||
void func_80088B34(s16 arg0);
|
||||
void Interface_SetSubTimer(s16 seconds);
|
||||
void Interface_SetSubTimerToFinalSecond(PlayState* play);
|
||||
void Interface_SetTimer(s16 seconds);
|
||||
void Interface_Draw(PlayState* play);
|
||||
void Interface_Update(PlayState* play);
|
||||
Path* Path_GetByIndex(PlayState* play, s16 index, s16 max);
|
||||
|
@ -1039,7 +1025,7 @@ s32 Player_GetBottleHeld(Player* this);
|
|||
s32 Player_ActionToExplosive(Player* this, s32 itemAction);
|
||||
s32 Player_GetExplosiveHeld(Player* this);
|
||||
s32 func_8008F2BC(Player* this, s32 itemAction);
|
||||
s32 func_8008F2F8(PlayState* play);
|
||||
s32 Player_GetEnvironmentalHazard(PlayState* play);
|
||||
void Player_DrawImpl(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dListCount, s32 lod, s32 tunic,
|
||||
s32 boots, s32 face, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw,
|
||||
void* data);
|
||||
|
@ -1394,14 +1380,6 @@ void DbCamera_Reset(Camera* cam, DbCamera* dbCam);
|
|||
// ? DbCamera_UpdateDemoControl(?);
|
||||
void func_800BB0A0(f32 u, Vec3f* pos, f32* roll, f32* viewAngle, f32* point0, f32* point1, f32* point2, f32* point3);
|
||||
s32 func_800BB2B4(Vec3f* pos, f32* roll, f32* fov, CutsceneCameraPoint* point, s16* keyFrame, f32* curFrame);
|
||||
s32 Mempak_Init(s32 controllerNb);
|
||||
s32 Mempak_GetFreeBytes(s32 controllerNb);
|
||||
s32 Mempak_FindFile(s32 controllerNb, char start, char end);
|
||||
s32 Mempak_Write(s32 controllerNb, char idx, void* buffer, s32 offset, s32 size);
|
||||
s32 Mempak_Read(s32 controllerNb, char idx, void* buffer, s32 offset, s32 size);
|
||||
s32 Mempak_Alloc(s32 controllerNb, char* idx, s32 size);
|
||||
s32 Mempak_DeleteFile(s32 controllerNb, char idx);
|
||||
s32 Mempak_GetFileSize(s32 controllerNb, char idx);
|
||||
void KaleidoManager_LoadOvl(KaleidoMgrOverlay* ovl);
|
||||
void KaleidoManager_ClearOvl(KaleidoMgrOverlay* ovl);
|
||||
void KaleidoManager_Init(PlayState* play);
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
#define SLOT(item) gItemSlots[item]
|
||||
#define INV_CONTENT(item) gSaveContext.inventory.items[SLOT(item)]
|
||||
#define AMMO(item) gSaveContext.inventory.ammo[SLOT(item)]
|
||||
#define BEANS_BOUGHT AMMO(ITEM_BEAN + 1)
|
||||
#define BEANS_BOUGHT AMMO(ITEM_MAGIC_BEAN + 1)
|
||||
|
||||
#define ALL_EQUIP_VALUE(equip) ((s32)(gSaveContext.inventory.equipment & gEquipMasks[equip]) >> gEquipShifts[equip])
|
||||
#define CUR_EQUIP_VALUE(equip) ((s32)(gSaveContext.equips.equipment & gEquipMasks[equip]) >> gEquipShifts[equip])
|
||||
|
@ -92,10 +92,10 @@
|
|||
#define SET_EVENTINF(flag) (gSaveContext.eventInf[(flag) >> 4] |= (1 << ((flag) & 0xF)))
|
||||
#define CLEAR_EVENTINF(flag) (gSaveContext.eventInf[(flag) >> 4] &= ~(1 << ((flag) & 0xF)))
|
||||
|
||||
#define B_BTN_ITEM ((gSaveContext.buttonStatus[0] == ITEM_NONE) \
|
||||
? ITEM_NONE \
|
||||
: (gSaveContext.equips.buttonItems[0] == ITEM_SWORD_KNIFE) \
|
||||
? ITEM_SWORD_BGS \
|
||||
#define B_BTN_ITEM ((gSaveContext.buttonStatus[0] == ITEM_NONE) \
|
||||
? ITEM_NONE \
|
||||
: (gSaveContext.equips.buttonItems[0] == ITEM_GIANTS_KNIFE) \
|
||||
? ITEM_SWORD_BIGGORON \
|
||||
: gSaveContext.equips.buttonItems[0])
|
||||
|
||||
#define C_BTN_ITEM(button) ((gSaveContext.buttonStatus[(button) + 1] != BTN_DISABLED) \
|
||||
|
|
21
include/mempak.h
Normal file
21
include/mempak.h
Normal file
|
@ -0,0 +1,21 @@
|
|||
#ifndef MEMPAK_H
|
||||
#define MEMPAK_H
|
||||
|
||||
#include "ultra64.h"
|
||||
|
||||
s32 Mempak_Init(s32 controllerNum);
|
||||
s32 Mempak_GetFreeBytes(s32 controllerNum);
|
||||
s32 Mempak_FindFiles(s32 controllerNum, char start, char end);
|
||||
s32 Mempak_Write(s32 controllerNum, char letter, void* buffer, s32 offset, s32 size);
|
||||
s32 Mempak_Read(s32 controllerNum, char letter, void* buffer, s32 offset, s32 size);
|
||||
s32 Mempak_CreateFile(s32 controllerNum, char* letter, s32 size);
|
||||
s32 Mempak_DeleteFile(s32 controllerNum, char letter);
|
||||
s32 Mempak_GetFileSize(s32 controllerNum, char letter);
|
||||
|
||||
// Converts a file letter to its numerical index
|
||||
#define MEMPAK_LETTER_TO_INDEX(c) ((c) - 'A')
|
||||
|
||||
// Converts a numerical index to a file letter
|
||||
#define MEMPAK_INDEX_TO_LETTER(i) ((i) + 'A')
|
||||
|
||||
#endif
|
|
@ -13,8 +13,6 @@ extern u32 osMemSize;
|
|||
extern u8 osAppNMIBuffer[0x40];
|
||||
|
||||
extern s8 D_80009430;
|
||||
extern u32 gDmaMgrVerbose;
|
||||
extern u32 gDmaMgrDmaBuffSize;
|
||||
extern vu8 gViConfigBlack;
|
||||
extern u8 gViConfigAdditionalScanLines;
|
||||
extern u32 gViConfigFeatures;
|
||||
|
@ -53,7 +51,6 @@ extern OSTime __osCurrentTime;
|
|||
extern u32 __osBaseCounter;
|
||||
extern u32 __osViIntrCount;
|
||||
extern u32 __osTimerCounter;
|
||||
extern DmaEntry gDmaDataTable[0x60C];
|
||||
extern EffectSsOverlay gEffectSsOverlayTable[EFFECT_SS_TYPE_MAX];
|
||||
extern Gfx D_80116280[];
|
||||
extern ActorOverlay gActorOverlayTable[ACTOR_ID_MAX]; // original name: "actor_dlftbls" 801162A0
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
#include "fault.h"
|
||||
#include "sched.h"
|
||||
#include "rumble.h"
|
||||
#include "mempak.h"
|
||||
#include "tha.h"
|
||||
#include "thga.h"
|
||||
|
||||
|
@ -419,11 +420,14 @@ typedef enum {
|
|||
// TODO get these properties from the textures themselves
|
||||
#define FONT_CHAR_TEX_WIDTH 16
|
||||
#define FONT_CHAR_TEX_HEIGHT 16
|
||||
#define FONT_CHAR_TEX_SIZE ((16 * 16) / 2) // 16x16 I4 texture
|
||||
#define FONT_CHAR_TEX_SIZE ((FONT_CHAR_TEX_WIDTH * FONT_CHAR_TEX_HEIGHT) / 2) // 16x16 I4 texture
|
||||
|
||||
// TODO get these properties from the textures themselves
|
||||
#define MESSAGE_STATIC_TEX_SIZE 0x1000
|
||||
|
||||
// TODO get these properties from the textures themselves
|
||||
#define MESSAGE_TEXTURE_STATIC_TEX_SIZE 0x900
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ MSGMODE_NONE,
|
||||
/* 0x01 */ MSGMODE_TEXT_START,
|
||||
|
@ -615,6 +619,11 @@ typedef enum {
|
|||
/* 0x1D */ DO_ACTION_MAX
|
||||
} DoAction;
|
||||
|
||||
// TODO extract this information from the texture definitions themselves
|
||||
#define DO_ACTION_TEX_WIDTH 48
|
||||
#define DO_ACTION_TEX_HEIGHT 16
|
||||
#define DO_ACTION_TEX_SIZE ((DO_ACTION_TEX_WIDTH * DO_ACTION_TEX_HEIGHT) / 2) // (sizeof(gCheckDoActionENGTex))
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ View view;
|
||||
/* 0x0128 */ Vtx* actionVtx;
|
||||
|
@ -1428,6 +1437,25 @@ typedef struct {
|
|||
/* 0x6C */ s16* skullFloorIconY; // dungeon big skull icon Y pos
|
||||
} MapData; // size = 0x70
|
||||
|
||||
// TODO get these properties from the textures themselves
|
||||
#define MAP_I_TEX_WIDTH 96
|
||||
#define MAP_I_TEX_HEIGHT 85
|
||||
#define MAP_I_TEX_SIZE ((MAP_I_TEX_WIDTH * MAP_I_TEX_HEIGHT) / 2) // 96x85 I4 texture
|
||||
|
||||
#define MAP_48x85_TEX_WIDTH 48
|
||||
#define MAP_48x85_TEX_HEIGHT 85
|
||||
#define MAP_48x85_TEX_SIZE ((MAP_48x85_TEX_WIDTH * MAP_48x85_TEX_HEIGHT) / 2) // 48x85 CI4 texture
|
||||
|
||||
// Note that z_kaleido_scope_PAL.c assumes that the dimensions and texture format here also matches the dimensions and
|
||||
// texture format for ITEM_NAME_TEX_*
|
||||
#define MAP_NAME_TEX1_WIDTH 128
|
||||
#define MAP_NAME_TEX1_HEIGHT 16
|
||||
#define MAP_NAME_TEX1_SIZE ((MAP_NAME_TEX1_WIDTH * MAP_NAME_TEX1_HEIGHT) / 2) // 128x16 IA4 texture
|
||||
|
||||
#define MAP_NAME_TEX2_WIDTH 80
|
||||
#define MAP_NAME_TEX2_HEIGHT 32
|
||||
#define MAP_NAME_TEX2_SIZE (MAP_NAME_TEX2_WIDTH * MAP_NAME_TEX2_HEIGHT) // 80x32 IA8 texture
|
||||
|
||||
#define PAUSE_MAP_MARK_NONE -1
|
||||
#define PAUSE_MAP_MARK_CHEST 0
|
||||
#define PAUSE_MAP_MARK_BOSS 1
|
||||
|
|
|
@ -10,7 +10,7 @@ struct Actor;
|
|||
struct SkelAnime;
|
||||
|
||||
#define LINK_ANIMATION_OFFSET(addr, offset) \
|
||||
(((u32)_link_animetionSegmentRomStart) + ((u32)addr) - ((u32)_link_animetionSegmentStart) + ((u32)offset))
|
||||
(((uintptr_t)_link_animetionSegmentRomStart) + ((uintptr_t)(addr)) - ((uintptr_t)_link_animetionSegmentStart) + (offset))
|
||||
#define LIMB_DONE 0xFF
|
||||
#define ANIMATION_ENTRY_MAX 50
|
||||
#define ANIM_FLAG_UPDATEY (1 << 1)
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
#define Z64_DMA_H
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "alignment.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ uintptr_t vromAddr; // VROM address (source)
|
||||
/* 0x04 */ void* dramAddr; // DRAM address (destination)
|
||||
/* 0x08 */ u32 size; // File Transfer size
|
||||
/* 0x08 */ size_t size; // File Transfer size
|
||||
/* 0x0C */ const char* filename; // Filename for debugging
|
||||
/* 0x10 */ s32 line; // Line for debugging
|
||||
/* 0x14 */ s32 unk_14;
|
||||
|
@ -21,4 +22,28 @@ typedef struct {
|
|||
/* 0x0C */ uintptr_t romEnd;
|
||||
} DmaEntry;
|
||||
|
||||
extern DmaEntry gDmaDataTable[];
|
||||
|
||||
extern u32 gDmaMgrVerbose;
|
||||
extern size_t gDmaMgrDmaBuffSize;
|
||||
|
||||
#define DMAMGR_DEFAULT_BUFSIZE ALIGN16(0x2000)
|
||||
|
||||
// Standard DMA Requests
|
||||
|
||||
s32 DmaMgr_RequestSync(void* ram, uintptr_t vrom, size_t size);
|
||||
s32 DmaMgr_RequestSyncDebug(void* ram, uintptr_t vrom, size_t size, const char* file, s32 line);
|
||||
s32 DmaMgr_RequestAsync(DmaRequest* req, void* ram, uintptr_t vrom, size_t size, u32 unk5, OSMesgQueue* queue,
|
||||
OSMesg msg, const char* file, s32 line);
|
||||
|
||||
// Special-purpose DMA Requests
|
||||
|
||||
s32 DmaMgr_DmaRomToRam(uintptr_t rom, void* ram, size_t size);
|
||||
void DmaMgr_DmaFromDriveRom(void* ram, uintptr_t rom, size_t size);
|
||||
s32 DmaMgr_AudioDmaHandler(OSPiHandle* pihandle, OSIoMesg* mb, s32 direction);
|
||||
|
||||
// Initialization
|
||||
|
||||
void DmaMgr_Init(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,6 +1,20 @@
|
|||
#ifndef Z64ITEM_H
|
||||
#define Z64ITEM_H
|
||||
|
||||
#define ICON_ITEM_TEX_WIDTH 32
|
||||
#define ICON_ITEM_TEX_HEIGHT 32
|
||||
#define ICON_ITEM_TEX_SIZE ((ICON_ITEM_TEX_WIDTH * ICON_ITEM_TEX_HEIGHT) * 4) // 32x32 RGBA32 texture
|
||||
|
||||
#define ICON_ITEM_24_TEX_WIDTH 24
|
||||
#define ICON_ITEM_24_TEX_HEIGHT 24
|
||||
#define ICON_ITEM_24_TEX_SIZE ((ICON_ITEM_24_TEX_WIDTH * ICON_ITEM_24_TEX_HEIGHT) * 4) // 24x24 RGBA32 texture
|
||||
|
||||
// Note that z_kaleido_scope_PAL.c assumes that the dimensions and texture format here also matches the dimensions and
|
||||
// texture format for MAP_NAME_TEX1_*
|
||||
#define ITEM_NAME_TEX_WIDTH 128
|
||||
#define ITEM_NAME_TEX_HEIGHT 16
|
||||
#define ITEM_NAME_TEX_SIZE ((ITEM_NAME_TEX_WIDTH * ITEM_NAME_TEX_HEIGHT) / 2) // 128x16 IA4 texture
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ EQUIP_TYPE_SWORD,
|
||||
/* 1 */ EQUIP_TYPE_SHIELD,
|
||||
|
@ -77,8 +91,8 @@ typedef enum {
|
|||
/* 0x03 */ UPG_SCALE,
|
||||
/* 0x04 */ UPG_WALLET,
|
||||
/* 0x05 */ UPG_BULLET_BAG,
|
||||
/* 0x06 */ UPG_STICKS,
|
||||
/* 0x07 */ UPG_NUTS,
|
||||
/* 0x06 */ UPG_DEKU_STICKS,
|
||||
/* 0x07 */ UPG_DEKU_NUTS,
|
||||
/* 0x08 */ UPG_MAX
|
||||
} UpgradeType;
|
||||
|
||||
|
@ -105,20 +119,20 @@ typedef enum {
|
|||
/* 0x13 */ QUEST_GORON_RUBY,
|
||||
/* 0x14 */ QUEST_ZORA_SAPPHIRE,
|
||||
/* 0x15 */ QUEST_STONE_OF_AGONY,
|
||||
/* 0x16 */ QUEST_GERUDO_CARD,
|
||||
/* 0x16 */ QUEST_GERUDOS_CARD,
|
||||
/* 0x17 */ QUEST_SKULL_TOKEN,
|
||||
/* 0x1C */ QUEST_HEART_PIECE_COUNT = 0x1C
|
||||
} QuestItem;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ DUNGEON_KEY_BOSS,
|
||||
/* 0x00 */ DUNGEON_BOSS_KEY,
|
||||
/* 0x01 */ DUNGEON_COMPASS,
|
||||
/* 0x02 */ DUNGEON_MAP
|
||||
} DungeonItem;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ SLOT_STICK,
|
||||
/* 0x01 */ SLOT_NUT,
|
||||
/* 0x00 */ SLOT_DEKU_STICK,
|
||||
/* 0x01 */ SLOT_DEKU_NUT,
|
||||
/* 0x02 */ SLOT_BOMB,
|
||||
/* 0x03 */ SLOT_BOW,
|
||||
/* 0x04 */ SLOT_ARROW_FIRE,
|
||||
|
@ -130,8 +144,8 @@ typedef enum {
|
|||
/* 0x0A */ SLOT_ARROW_ICE,
|
||||
/* 0x0B */ SLOT_FARORES_WIND,
|
||||
/* 0x0C */ SLOT_BOOMERANG,
|
||||
/* 0x0D */ SLOT_LENS,
|
||||
/* 0x0E */ SLOT_BEAN,
|
||||
/* 0x0D */ SLOT_LENS_OF_TRUTH,
|
||||
/* 0x0E */ SLOT_MAGIC_BEAN,
|
||||
/* 0x0F */ SLOT_HAMMER,
|
||||
/* 0x10 */ SLOT_ARROW_LIGHT,
|
||||
/* 0x11 */ SLOT_NAYRUS_LOVE,
|
||||
|
@ -145,46 +159,46 @@ typedef enum {
|
|||
} InventorySlot;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ ITEM_STICK,
|
||||
/* 0x01 */ ITEM_NUT,
|
||||
/* 0x00 */ ITEM_DEKU_STICK,
|
||||
/* 0x01 */ ITEM_DEKU_NUT,
|
||||
/* 0x02 */ ITEM_BOMB,
|
||||
/* 0x03 */ ITEM_BOW,
|
||||
/* 0x04 */ ITEM_ARROW_FIRE,
|
||||
/* 0x05 */ ITEM_DINS_FIRE,
|
||||
/* 0x06 */ ITEM_SLINGSHOT,
|
||||
/* 0x07 */ ITEM_OCARINA_FAIRY,
|
||||
/* 0x08 */ ITEM_OCARINA_TIME,
|
||||
/* 0x08 */ ITEM_OCARINA_OF_TIME,
|
||||
/* 0x09 */ ITEM_BOMBCHU,
|
||||
/* 0x0A */ ITEM_HOOKSHOT,
|
||||
/* 0x0B */ ITEM_LONGSHOT,
|
||||
/* 0x0C */ ITEM_ARROW_ICE,
|
||||
/* 0x0D */ ITEM_FARORES_WIND,
|
||||
/* 0x0E */ ITEM_BOOMERANG,
|
||||
/* 0x0F */ ITEM_LENS,
|
||||
/* 0x10 */ ITEM_BEAN,
|
||||
/* 0x0F */ ITEM_LENS_OF_TRUTH,
|
||||
/* 0x10 */ ITEM_MAGIC_BEAN,
|
||||
/* 0x11 */ ITEM_HAMMER,
|
||||
/* 0x12 */ ITEM_ARROW_LIGHT,
|
||||
/* 0x13 */ ITEM_NAYRUS_LOVE,
|
||||
/* 0x14 */ ITEM_BOTTLE,
|
||||
/* 0x15 */ ITEM_POTION_RED,
|
||||
/* 0x16 */ ITEM_POTION_GREEN,
|
||||
/* 0x17 */ ITEM_POTION_BLUE,
|
||||
/* 0x18 */ ITEM_FAIRY,
|
||||
/* 0x19 */ ITEM_FISH,
|
||||
/* 0x1A */ ITEM_MILK_BOTTLE,
|
||||
/* 0x1B */ ITEM_LETTER_RUTO,
|
||||
/* 0x1C */ ITEM_BLUE_FIRE,
|
||||
/* 0x1D */ ITEM_BUG,
|
||||
/* 0x1E */ ITEM_BIG_POE,
|
||||
/* 0x1F */ ITEM_MILK_HALF,
|
||||
/* 0x20 */ ITEM_POE,
|
||||
/* 0x14 */ ITEM_BOTTLE_EMPTY,
|
||||
/* 0x15 */ ITEM_BOTTLE_POTION_RED,
|
||||
/* 0x16 */ ITEM_BOTTLE_POTION_GREEN,
|
||||
/* 0x17 */ ITEM_BOTTLE_POTION_BLUE,
|
||||
/* 0x18 */ ITEM_BOTTLE_FAIRY,
|
||||
/* 0x19 */ ITEM_BOTTLE_FISH,
|
||||
/* 0x1A */ ITEM_BOTTLE_MILK_FULL,
|
||||
/* 0x1B */ ITEM_BOTTLE_RUTOS_LETTER,
|
||||
/* 0x1C */ ITEM_BOTTLE_BLUE_FIRE,
|
||||
/* 0x1D */ ITEM_BOTTLE_BUG,
|
||||
/* 0x1E */ ITEM_BOTTLE_BIG_POE,
|
||||
/* 0x1F */ ITEM_BOTTLE_MILK_HALF,
|
||||
/* 0x20 */ ITEM_BOTTLE_POE,
|
||||
/* 0x21 */ ITEM_WEIRD_EGG,
|
||||
/* 0x22 */ ITEM_CHICKEN,
|
||||
/* 0x23 */ ITEM_LETTER_ZELDA,
|
||||
/* 0x23 */ ITEM_ZELDAS_LETTER,
|
||||
/* 0x24 */ ITEM_MASK_KEATON,
|
||||
/* 0x25 */ ITEM_MASK_SKULL,
|
||||
/* 0x26 */ ITEM_MASK_SPOOKY,
|
||||
/* 0x27 */ ITEM_MASK_BUNNY,
|
||||
/* 0x27 */ ITEM_MASK_BUNNY_HOOD,
|
||||
/* 0x28 */ ITEM_MASK_GORON,
|
||||
/* 0x29 */ ITEM_MASK_ZORA,
|
||||
/* 0x2A */ ITEM_MASK_GERUDO,
|
||||
|
@ -195,18 +209,18 @@ typedef enum {
|
|||
/* 0x2F */ ITEM_COJIRO,
|
||||
/* 0x30 */ ITEM_ODD_MUSHROOM,
|
||||
/* 0x31 */ ITEM_ODD_POTION,
|
||||
/* 0x32 */ ITEM_SAW,
|
||||
/* 0x33 */ ITEM_SWORD_BROKEN,
|
||||
/* 0x32 */ ITEM_POACHERS_SAW,
|
||||
/* 0x33 */ ITEM_BROKEN_GORONS_SWORD,
|
||||
/* 0x34 */ ITEM_PRESCRIPTION,
|
||||
/* 0x35 */ ITEM_FROG,
|
||||
/* 0x36 */ ITEM_EYEDROPS,
|
||||
/* 0x35 */ ITEM_EYEBALL_FROG,
|
||||
/* 0x36 */ ITEM_EYE_DROPS,
|
||||
/* 0x37 */ ITEM_CLAIM_CHECK,
|
||||
/* 0x38 */ ITEM_BOW_ARROW_FIRE,
|
||||
/* 0x39 */ ITEM_BOW_ARROW_ICE,
|
||||
/* 0x3A */ ITEM_BOW_ARROW_LIGHT,
|
||||
/* 0x38 */ ITEM_BOW_FIRE,
|
||||
/* 0x39 */ ITEM_BOW_ICE,
|
||||
/* 0x3A */ ITEM_BOW_LIGHT,
|
||||
/* 0x3B */ ITEM_SWORD_KOKIRI,
|
||||
/* 0x3C */ ITEM_SWORD_MASTER,
|
||||
/* 0x3D */ ITEM_SWORD_BGS,
|
||||
/* 0x3D */ ITEM_SWORD_BIGGORON,
|
||||
/* 0x3E */ ITEM_SHIELD_DEKU,
|
||||
/* 0x3F */ ITEM_SHIELD_HYLIAN,
|
||||
/* 0x40 */ ITEM_SHIELD_MIRROR,
|
||||
|
@ -225,15 +239,15 @@ typedef enum {
|
|||
/* 0x4D */ ITEM_BOMB_BAG_20,
|
||||
/* 0x4E */ ITEM_BOMB_BAG_30,
|
||||
/* 0x4F */ ITEM_BOMB_BAG_40,
|
||||
/* 0x50 */ ITEM_BRACELET,
|
||||
/* 0x51 */ ITEM_GAUNTLETS_SILVER,
|
||||
/* 0x52 */ ITEM_GAUNTLETS_GOLD,
|
||||
/* 0x50 */ ITEM_STRENGTH_GORONS_BRACELET,
|
||||
/* 0x51 */ ITEM_STRENGTH_SILVER_GAUNTLETS,
|
||||
/* 0x52 */ ITEM_STRENGTH_GOLD_GAUNTLETS,
|
||||
/* 0x53 */ ITEM_SCALE_SILVER,
|
||||
/* 0x54 */ ITEM_SCALE_GOLDEN,
|
||||
/* 0x55 */ ITEM_SWORD_KNIFE,
|
||||
/* 0x56 */ ITEM_WALLET_ADULT,
|
||||
/* 0x57 */ ITEM_WALLET_GIANT,
|
||||
/* 0x58 */ ITEM_SEEDS,
|
||||
/* 0x55 */ ITEM_GIANTS_KNIFE,
|
||||
/* 0x56 */ ITEM_ADULTS_WALLET,
|
||||
/* 0x57 */ ITEM_GIANTS_WALLET,
|
||||
/* 0x58 */ ITEM_DEKU_SEEDS,
|
||||
/* 0x59 */ ITEM_FISHING_POLE,
|
||||
/* 0x5A */ ITEM_SONG_MINUET,
|
||||
/* 0x5B */ ITEM_SONG_BOLERO,
|
||||
|
@ -257,16 +271,16 @@ typedef enum {
|
|||
/* 0x6D */ ITEM_GORON_RUBY,
|
||||
/* 0x6E */ ITEM_ZORA_SAPPHIRE,
|
||||
/* 0x6F */ ITEM_STONE_OF_AGONY,
|
||||
/* 0x70 */ ITEM_GERUDO_CARD,
|
||||
/* 0x70 */ ITEM_GERUDOS_CARD,
|
||||
/* 0x71 */ ITEM_SKULL_TOKEN,
|
||||
/* 0x72 */ ITEM_HEART_CONTAINER,
|
||||
/* 0x73 */ ITEM_HEART_PIECE,
|
||||
/* 0x74 */ ITEM_KEY_BOSS,
|
||||
/* 0x75 */ ITEM_COMPASS,
|
||||
/* 0x74 */ ITEM_DUNGEON_BOSS_KEY,
|
||||
/* 0x75 */ ITEM_DUNGEON_COMPASS,
|
||||
/* 0x76 */ ITEM_DUNGEON_MAP,
|
||||
/* 0x77 */ ITEM_KEY_SMALL,
|
||||
/* 0x78 */ ITEM_MAGIC_SMALL,
|
||||
/* 0x79 */ ITEM_MAGIC_LARGE,
|
||||
/* 0x77 */ ITEM_SMALL_KEY,
|
||||
/* 0x78 */ ITEM_MAGIC_JAR_SMALL,
|
||||
/* 0x79 */ ITEM_MAGIC_JAR_BIG,
|
||||
/* 0x7A */ ITEM_HEART_PIECE_2,
|
||||
/* 0x7B */ ITEM_INVALID_1,
|
||||
/* 0x7C */ ITEM_INVALID_2,
|
||||
|
@ -283,24 +297,24 @@ typedef enum {
|
|||
/* 0x87 */ ITEM_RUPEE_PURPLE,
|
||||
/* 0x88 */ ITEM_RUPEE_GOLD,
|
||||
/* 0x89 */ ITEM_INVALID_8,
|
||||
/* 0x8A */ ITEM_STICKS_5,
|
||||
/* 0x8B */ ITEM_STICKS_10,
|
||||
/* 0x8C */ ITEM_NUTS_5,
|
||||
/* 0x8D */ ITEM_NUTS_10,
|
||||
/* 0x8A */ ITEM_DEKU_STICKS_5,
|
||||
/* 0x8B */ ITEM_DEKU_STICKS_10,
|
||||
/* 0x8C */ ITEM_DEKU_NUTS_5,
|
||||
/* 0x8D */ ITEM_DEKU_NUTS_10,
|
||||
/* 0x8E */ ITEM_BOMBS_5,
|
||||
/* 0x8F */ ITEM_BOMBS_10,
|
||||
/* 0x90 */ ITEM_BOMBS_20,
|
||||
/* 0x91 */ ITEM_BOMBS_30,
|
||||
/* 0x92 */ ITEM_ARROWS_SMALL,
|
||||
/* 0x93 */ ITEM_ARROWS_MEDIUM,
|
||||
/* 0x94 */ ITEM_ARROWS_LARGE,
|
||||
/* 0x95 */ ITEM_SEEDS_30,
|
||||
/* 0x92 */ ITEM_ARROWS_5,
|
||||
/* 0x93 */ ITEM_ARROWS_10,
|
||||
/* 0x94 */ ITEM_ARROWS_30,
|
||||
/* 0x95 */ ITEM_DEKU_SEEDS_30,
|
||||
/* 0x96 */ ITEM_BOMBCHUS_5,
|
||||
/* 0x97 */ ITEM_BOMBCHUS_20,
|
||||
/* 0x98 */ ITEM_STICK_UPGRADE_20,
|
||||
/* 0x99 */ ITEM_STICK_UPGRADE_30,
|
||||
/* 0x9A */ ITEM_NUT_UPGRADE_30,
|
||||
/* 0x9B */ ITEM_NUT_UPGRADE_40,
|
||||
/* 0x98 */ ITEM_DEKU_STICK_UPGRADE_20,
|
||||
/* 0x99 */ ITEM_DEKU_STICK_UPGRADE_30,
|
||||
/* 0x9A */ ITEM_DEKU_NUT_UPGRADE_30,
|
||||
/* 0x9B */ ITEM_DEKU_NUT_UPGRADE_40,
|
||||
/* 0xFC */ ITEM_LAST_USED = 0xFC,
|
||||
/* 0xFE */ ITEM_NONE_FE = 0xFE,
|
||||
/* 0xFF */ ITEM_NONE = 0xFF
|
||||
|
@ -313,42 +327,42 @@ typedef enum {
|
|||
typedef enum {
|
||||
/* 0x00 */ GI_NONE,
|
||||
/* 0x01 */ GI_BOMBS_5,
|
||||
/* 0x02 */ GI_NUTS_5,
|
||||
/* 0x02 */ GI_DEKU_NUTS_5,
|
||||
/* 0x03 */ GI_BOMBCHUS_10,
|
||||
/* 0x04 */ GI_BOW,
|
||||
/* 0x05 */ GI_SLINGSHOT,
|
||||
/* 0x06 */ GI_BOOMERANG,
|
||||
/* 0x07 */ GI_STICKS_1,
|
||||
/* 0x07 */ GI_DEKU_STICKS_1,
|
||||
/* 0x08 */ GI_HOOKSHOT,
|
||||
/* 0x09 */ GI_LONGSHOT,
|
||||
/* 0x0A */ GI_LENS,
|
||||
/* 0x0B */ GI_LETTER_ZELDA,
|
||||
/* 0x0C */ GI_OCARINA_OOT,
|
||||
/* 0x0A */ GI_LENS_OF_TRUTH,
|
||||
/* 0x0B */ GI_ZELDAS_LETTER,
|
||||
/* 0x0C */ GI_OCARINA_OF_TIME,
|
||||
/* 0x0D */ GI_HAMMER,
|
||||
/* 0x0E */ GI_COJIRO,
|
||||
/* 0x0F */ GI_BOTTLE,
|
||||
/* 0x10 */ GI_POTION_RED,
|
||||
/* 0x11 */ GI_POTION_GREEN,
|
||||
/* 0x12 */ GI_POTION_BLUE,
|
||||
/* 0x13 */ GI_FAIRY,
|
||||
/* 0x14 */ GI_MILK_BOTTLE,
|
||||
/* 0x15 */ GI_LETTER_RUTO,
|
||||
/* 0x16 */ GI_BEAN,
|
||||
/* 0x0F */ GI_BOTTLE_EMPTY,
|
||||
/* 0x10 */ GI_BOTTLE_POTION_RED,
|
||||
/* 0x11 */ GI_BOTTLE_POTION_GREEN,
|
||||
/* 0x12 */ GI_BOTTLE_POTION_BLUE,
|
||||
/* 0x13 */ GI_BOTTLE_FAIRY,
|
||||
/* 0x14 */ GI_BOTTLE_MILK_FULL,
|
||||
/* 0x15 */ GI_BOTTLE_RUTOS_LETTER,
|
||||
/* 0x16 */ GI_MAGIC_BEAN,
|
||||
/* 0x17 */ GI_MASK_SKULL,
|
||||
/* 0x18 */ GI_MASK_SPOOKY,
|
||||
/* 0x19 */ GI_CHICKEN, // uses bean message ID
|
||||
/* 0x1A */ GI_MASK_KEATON,
|
||||
/* 0x1B */ GI_MASK_BUNNY,
|
||||
/* 0x1B */ GI_MASK_BUNNY_HOOD,
|
||||
/* 0x1C */ GI_MASK_TRUTH,
|
||||
/* 0x1D */ GI_POCKET_EGG,
|
||||
/* 0x1E */ GI_POCKET_CUCCO, // uses bean message ID
|
||||
/* 0x1F */ GI_ODD_MUSHROOM,
|
||||
/* 0x20 */ GI_ODD_POTION,
|
||||
/* 0x21 */ GI_SAW,
|
||||
/* 0x22 */ GI_SWORD_BROKEN,
|
||||
/* 0x21 */ GI_POACHERS_SAW,
|
||||
/* 0x22 */ GI_BROKEN_GORONS_SWORD,
|
||||
/* 0x23 */ GI_PRESCRIPTION,
|
||||
/* 0x24 */ GI_FROG,
|
||||
/* 0x25 */ GI_EYEDROPS,
|
||||
/* 0x24 */ GI_EYEBALL_FROG,
|
||||
/* 0x25 */ GI_EYE_DROPS,
|
||||
/* 0x26 */ GI_CLAIM_CHECK,
|
||||
/* 0x27 */ GI_SWORD_KOKIRI,
|
||||
/* 0x28 */ GI_SWORD_KNIFE,
|
||||
|
@ -364,29 +378,29 @@ typedef enum {
|
|||
/* 0x32 */ GI_BOMB_BAG_20,
|
||||
/* 0x33 */ GI_BOMB_BAG_30,
|
||||
/* 0x34 */ GI_BOMB_BAG_40,
|
||||
/* 0x35 */ GI_GAUNTLETS_SILVER,
|
||||
/* 0x36 */ GI_GAUNTLETS_GOLD,
|
||||
/* 0x35 */ GI_SILVER_GAUNTLETS,
|
||||
/* 0x36 */ GI_GOLD_GAUNTLETS,
|
||||
/* 0x37 */ GI_SCALE_SILVER,
|
||||
/* 0x38 */ GI_SCALE_GOLD,
|
||||
/* 0x38 */ GI_SCALE_GOLDEN,
|
||||
/* 0x39 */ GI_STONE_OF_AGONY,
|
||||
/* 0x3A */ GI_GERUDO_CARD,
|
||||
/* 0x3A */ GI_GERUDOS_CARD,
|
||||
/* 0x3B */ GI_OCARINA_FAIRY, // uses Ocarina of Time message ID
|
||||
/* 0x3C */ GI_SEEDS_5,
|
||||
/* 0x3C */ GI_DEKU_SEEDS_5,
|
||||
/* 0x3D */ GI_HEART_CONTAINER,
|
||||
/* 0x3E */ GI_HEART_PIECE,
|
||||
/* 0x3F */ GI_KEY_BOSS,
|
||||
/* 0x3F */ GI_BOSS_KEY,
|
||||
/* 0x40 */ GI_COMPASS,
|
||||
/* 0x41 */ GI_MAP,
|
||||
/* 0x42 */ GI_KEY_SMALL,
|
||||
/* 0x43 */ GI_MAGIC_SMALL, // or blue rupee if not from a drop
|
||||
/* 0x44 */ GI_MAGIC_LARGE, // or blue rupee if not from a drop
|
||||
/* 0x41 */ GI_DUNGEON_MAP,
|
||||
/* 0x42 */ GI_SMALL_KEY,
|
||||
/* 0x43 */ GI_MAGIC_JAR_SMALL, // or blue rupee if not from a drop
|
||||
/* 0x44 */ GI_MAGIC_JAR_LARGE, // or blue rupee if not from a drop
|
||||
/* 0x45 */ GI_WALLET_ADULT,
|
||||
/* 0x46 */ GI_WALLET_GIANT,
|
||||
/* 0x47 */ GI_WEIRD_EGG,
|
||||
/* 0x48 */ GI_RECOVERY_HEART,
|
||||
/* 0x49 */ GI_ARROWS_SMALL, // amount changes depending on context
|
||||
/* 0x4A */ GI_ARROWS_MEDIUM, // amount changes depending on context
|
||||
/* 0x4B */ GI_ARROWS_LARGE, // amount changes depending on context
|
||||
/* 0x49 */ GI_ARROWS_5, // amount changes depending on context
|
||||
/* 0x4A */ GI_ARROWS_10, // amount changes depending on context
|
||||
/* 0x4B */ GI_ARROWS_30, // amount changes depending on context
|
||||
/* 0x4C */ GI_RUPEE_GREEN,
|
||||
/* 0x4D */ GI_RUPEE_BLUE,
|
||||
/* 0x4E */ GI_RUPEE_RED,
|
||||
|
@ -395,10 +409,10 @@ typedef enum {
|
|||
/* 0x51 */ GI_MASK_GORON,
|
||||
/* 0x52 */ GI_MASK_ZORA,
|
||||
/* 0x53 */ GI_MASK_GERUDO,
|
||||
/* 0x54 */ GI_BRACELET,
|
||||
/* 0x54 */ GI_GORONS_BRACELET,
|
||||
/* 0x55 */ GI_RUPEE_PURPLE,
|
||||
/* 0x56 */ GI_RUPEE_GOLD,
|
||||
/* 0x57 */ GI_SWORD_BGS,
|
||||
/* 0x57 */ GI_SWORD_BIGGORON,
|
||||
/* 0x58 */ GI_ARROW_FIRE,
|
||||
/* 0x59 */ GI_ARROW_ICE,
|
||||
/* 0x5A */ GI_ARROW_LIGHT,
|
||||
|
@ -408,32 +422,32 @@ typedef enum {
|
|||
/* 0x5E */ GI_NAYRUS_LOVE,
|
||||
/* 0x5F */ GI_BULLET_BAG_30,
|
||||
/* 0x60 */ GI_BULLET_BAG_40,
|
||||
/* 0x61 */ GI_STICKS_5,
|
||||
/* 0x62 */ GI_STICKS_10,
|
||||
/* 0x63 */ GI_NUTS_5_2,
|
||||
/* 0x64 */ GI_NUTS_10,
|
||||
/* 0x61 */ GI_DEKU_STICKS_5,
|
||||
/* 0x62 */ GI_DEKU_STICKS_10,
|
||||
/* 0x63 */ GI_DEKU_NUTS_5_2,
|
||||
/* 0x64 */ GI_DEKU_NUTS_10,
|
||||
/* 0x65 */ GI_BOMBS_1,
|
||||
/* 0x66 */ GI_BOMBS_10,
|
||||
/* 0x67 */ GI_BOMBS_20,
|
||||
/* 0x68 */ GI_BOMBS_30,
|
||||
/* 0x69 */ GI_SEEDS_30,
|
||||
/* 0x69 */ GI_DEKU_SEEDS_30,
|
||||
/* 0x6A */ GI_BOMBCHUS_5,
|
||||
/* 0x6B */ GI_BOMBCHUS_20,
|
||||
/* 0x6C */ GI_FISH,
|
||||
/* 0x6D */ GI_BUGS,
|
||||
/* 0x6E */ GI_BLUE_FIRE,
|
||||
/* 0x6F */ GI_POE,
|
||||
/* 0x70 */ GI_BIG_POE,
|
||||
/* 0x6C */ GI_BOTTLE_FISH,
|
||||
/* 0x6D */ GI_BOTTLE_BUGS,
|
||||
/* 0x6E */ GI_BOTTLE_BLUE_FIRE,
|
||||
/* 0x6F */ GI_BOTTLE_POE,
|
||||
/* 0x70 */ GI_BOTTLE_BIG_POE,
|
||||
/* 0x71 */ GI_DOOR_KEY, // specific to chest minigame
|
||||
/* 0x72 */ GI_RUPEE_GREEN_LOSE, // specific to chest minigame
|
||||
/* 0x73 */ GI_RUPEE_BLUE_LOSE, // specific to chest minigame
|
||||
/* 0x74 */ GI_RUPEE_RED_LOSE, // specific to chest minigame
|
||||
/* 0x75 */ GI_RUPEE_PURPLE_LOSE, // specific to chest minigame
|
||||
/* 0x76 */ GI_HEART_PIECE_WIN, // specific to chest minigame
|
||||
/* 0x77 */ GI_STICK_UPGRADE_20,
|
||||
/* 0x78 */ GI_STICK_UPGRADE_30,
|
||||
/* 0x79 */ GI_NUT_UPGRADE_30,
|
||||
/* 0x7A */ GI_NUT_UPGRADE_40,
|
||||
/* 0x77 */ GI_DEKU_STICK_UPGRADE_20,
|
||||
/* 0x78 */ GI_DEKU_STICK_UPGRADE_30,
|
||||
/* 0x79 */ GI_DEKU_NUT_UPGRADE_30,
|
||||
/* 0x7A */ GI_DEKU_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)
|
||||
|
@ -441,8 +455,8 @@ typedef enum {
|
|||
} GetItemID;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ GID_BOTTLE,
|
||||
/* 0x01 */ GID_KEY_SMALL,
|
||||
/* 0x00 */ GID_BOTTLE_EMPTY,
|
||||
/* 0x01 */ GID_SMALL_KEY,
|
||||
/* 0x02 */ GID_SONG_MINUET,
|
||||
/* 0x03 */ GID_SONG_BOLERO,
|
||||
/* 0x04 */ GID_SONG_SERENADE,
|
||||
|
@ -450,7 +464,7 @@ typedef enum {
|
|||
/* 0x06 */ GID_SONG_NOCTURNE,
|
||||
/* 0x07 */ GID_SONG_PRELUDE,
|
||||
/* 0x08 */ GID_RECOVERY_HEART,
|
||||
/* 0x09 */ GID_KEY_BOSS,
|
||||
/* 0x09 */ GID_BOSS_KEY,
|
||||
/* 0x0A */ GID_COMPASS,
|
||||
/* 0x0B */ GID_MEDALLION_FOREST,
|
||||
/* 0x0C */ GID_MEDALLION_FIRE,
|
||||
|
@ -458,7 +472,7 @@ typedef enum {
|
|||
/* 0x0E */ GID_MEDALLION_SPIRIT,
|
||||
/* 0x0F */ GID_MEDALLION_SHADOW,
|
||||
/* 0x10 */ GID_MEDALLION_LIGHT,
|
||||
/* 0x11 */ GID_NUTS,
|
||||
/* 0x11 */ GID_DEKU_NUTS,
|
||||
/* 0x12 */ GID_HEART_CONTAINER,
|
||||
/* 0x13 */ GID_HEART_PIECE,
|
||||
/* 0x14 */ GID_QUIVER_30,
|
||||
|
@ -467,19 +481,19 @@ typedef enum {
|
|||
/* 0x17 */ GID_BOMB_BAG_20,
|
||||
/* 0x18 */ GID_BOMB_BAG_30,
|
||||
/* 0x19 */ GID_BOMB_BAG_40,
|
||||
/* 0x1A */ GID_STICK,
|
||||
/* 0x1A */ GID_DEKU_STICK,
|
||||
/* 0x1B */ GID_DUNGEON_MAP,
|
||||
/* 0x1C */ GID_SHIELD_DEKU,
|
||||
/* 0x1D */ GID_MAGIC_SMALL,
|
||||
/* 0x1E */ GID_MAGIC_LARGE,
|
||||
/* 0x1D */ GID_MAGIC_JAR_SMALL,
|
||||
/* 0x1E */ GID_MAGIC_JAR_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,
|
||||
/* 0x23 */ GID_GERUDOS_CARD,
|
||||
/* 0x24 */ GID_ARROWS_5,
|
||||
/* 0x25 */ GID_ARROWS_10,
|
||||
/* 0x26 */ GID_ARROWS_30,
|
||||
/* 0x27 */ GID_BOMBCHU,
|
||||
/* 0x28 */ GID_EGG,
|
||||
/* 0x29 */ GID_SCALE_SILVER,
|
||||
|
@ -487,50 +501,50 @@ typedef enum {
|
|||
/* 0x2B */ GID_SHIELD_HYLIAN,
|
||||
/* 0x2C */ GID_HOOKSHOT,
|
||||
/* 0x2D */ GID_LONGSHOT,
|
||||
/* 0x2E */ GID_OCARINA_TIME,
|
||||
/* 0x2F */ GID_MILK,
|
||||
/* 0x2E */ GID_OCARINA_OF_TIME,
|
||||
/* 0x2F */ GID_BOTTLE_MILK_FULL,
|
||||
/* 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,
|
||||
/* 0x35 */ GID_LENS_OF_TRUTH,
|
||||
/* 0x36 */ GID_BOTTLE_POTION_GREEN,
|
||||
/* 0x37 */ GID_BOTTLE_POTION_RED,
|
||||
/* 0x38 */ GID_BOTTLE_POTION_BLUE,
|
||||
/* 0x39 */ GID_SHIELD_MIRROR,
|
||||
/* 0x3A */ GID_LETTER_ZELDA,
|
||||
/* 0x3A */ GID_ZELDAS_LETTER,
|
||||
/* 0x3B */ GID_TUNIC_GORON,
|
||||
/* 0x3C */ GID_TUNIC_ZORA,
|
||||
/* 0x3D */ GID_BEAN,
|
||||
/* 0x3D */ GID_MAGIC_BEAN,
|
||||
/* 0x3E */ GID_FISH,
|
||||
/* 0x3F */ GID_SAW,
|
||||
/* 0x3F */ GID_POACHERS_SAW,
|
||||
/* 0x40 */ GID_HAMMER,
|
||||
/* 0x41 */ GID_GRASS,
|
||||
/* 0x42 */ GID_SWORD_BGS,
|
||||
/* 0x43 */ GID_CHICKEN,
|
||||
/* 0x44 */ GID_LETTER_RUTO,
|
||||
/* 0x42 */ GID_SWORD_BIGGORON,
|
||||
/* 0x43 */ GID_CUCCO,
|
||||
/* 0x44 */ GID_BOTTLE_RUTOS_LETTER,
|
||||
/* 0x45 */ GID_OCARINA_FAIRY,
|
||||
/* 0x46 */ GID_BOOTS_IRON,
|
||||
/* 0x47 */ GID_SEEDS,
|
||||
/* 0x48 */ GID_GAUNTLETS_SILVER,
|
||||
/* 0x49 */ GID_GAUNTLETS_GOLD,
|
||||
/* 0x47 */ GID_DEKU_SEEDS,
|
||||
/* 0x48 */ GID_SILVER_GAUNTLETS,
|
||||
/* 0x49 */ GID_GOLD_GAUNTLETS,
|
||||
/* 0x4A */ GID_NCOIN_YELLOW,
|
||||
/* 0x4B */ GID_NCOIN_RED,
|
||||
/* 0x4C */ GID_NCOIN_GREEN,
|
||||
/* 0x4D */ GID_NCOIN_BLUE,
|
||||
/* 0x4E */ GID_MASK_SKULL,
|
||||
/* 0x4F */ GID_MASK_BUNNY,
|
||||
/* 0x4F */ GID_MASK_BUNNY_HOOD,
|
||||
/* 0x50 */ GID_MASK_TRUTH,
|
||||
/* 0x51 */ GID_EYEDROPS,
|
||||
/* 0x51 */ GID_EYE_DROPS,
|
||||
/* 0x52 */ GID_ODD_POTION,
|
||||
/* 0x53 */ GID_ODD_MUSHROOM,
|
||||
/* 0x54 */ GID_CLAIM_CHECK,
|
||||
/* 0x55 */ GID_SWORD_BROKEN,
|
||||
/* 0x55 */ GID_BROKEN_GORONS_SWORD,
|
||||
/* 0x56 */ GID_PRESCRIPTION,
|
||||
/* 0x57 */ GID_BRACELET,
|
||||
/* 0x57 */ GID_GORONS_BRACELET,
|
||||
/* 0x58 */ GID_SOLDOUT,
|
||||
/* 0x59 */ GID_FROG,
|
||||
/* 0x59 */ GID_EYEBALL_FROG,
|
||||
/* 0x5A */ GID_MASK_GORON,
|
||||
/* 0x5B */ GID_MASK_ZORA,
|
||||
/* 0x5C */ GID_MASK_GERUDO,
|
||||
|
@ -563,35 +577,35 @@ typedef enum {
|
|||
|
||||
typedef enum {
|
||||
/* 0x00 */ EXCH_ITEM_NONE,
|
||||
/* 0x01 */ EXCH_ITEM_LETTER_ZELDA,
|
||||
/* 0x01 */ EXCH_ITEM_ZELDAS_LETTER,
|
||||
/* 0x02 */ EXCH_ITEM_WEIRD_EGG,
|
||||
/* 0x03 */ EXCH_ITEM_CHICKEN,
|
||||
/* 0x04 */ EXCH_ITEM_BEAN,
|
||||
/* 0x04 */ EXCH_ITEM_MAGIC_BEAN,
|
||||
/* 0x05 */ EXCH_ITEM_POCKET_EGG,
|
||||
/* 0x06 */ EXCH_ITEM_POCKET_CUCCO,
|
||||
/* 0x07 */ EXCH_ITEM_COJIRO,
|
||||
/* 0x08 */ EXCH_ITEM_ODD_MUSHROOM,
|
||||
/* 0x09 */ EXCH_ITEM_ODD_POTION,
|
||||
/* 0x0A */ EXCH_ITEM_SAW,
|
||||
/* 0x0B */ EXCH_ITEM_SWORD_BROKEN,
|
||||
/* 0x0A */ EXCH_ITEM_POACHERS_SAW,
|
||||
/* 0x0B */ EXCH_ITEM_BROKEN_GORONS_SWORD,
|
||||
/* 0x0C */ EXCH_ITEM_PRESCRIPTION,
|
||||
/* 0x0D */ EXCH_ITEM_FROG,
|
||||
/* 0x0E */ EXCH_ITEM_EYEDROPS,
|
||||
/* 0x0D */ EXCH_ITEM_EYEBALL_FROG,
|
||||
/* 0x0E */ EXCH_ITEM_EYE_DROPS,
|
||||
/* 0x0F */ EXCH_ITEM_CLAIM_CHECK,
|
||||
/* 0x10 */ EXCH_ITEM_MASK_SKULL,
|
||||
/* 0x11 */ EXCH_ITEM_MASK_SPOOKY,
|
||||
/* 0x12 */ EXCH_ITEM_MASK_KEATON,
|
||||
/* 0x13 */ EXCH_ITEM_MASK_BUNNY,
|
||||
/* 0x13 */ EXCH_ITEM_MASK_BUNNY_HOOD,
|
||||
/* 0x14 */ EXCH_ITEM_MASK_TRUTH,
|
||||
/* 0x15 */ EXCH_ITEM_MASK_GORON,
|
||||
/* 0x16 */ EXCH_ITEM_MASK_ZORA,
|
||||
/* 0x17 */ EXCH_ITEM_MASK_GERUDO,
|
||||
/* 0x18 */ EXCH_ITEM_FISH,
|
||||
/* 0x19 */ EXCH_ITEM_BLUE_FIRE,
|
||||
/* 0x1A */ EXCH_ITEM_BUG,
|
||||
/* 0x1B */ EXCH_ITEM_POE,
|
||||
/* 0x1C */ EXCH_ITEM_BIG_POE,
|
||||
/* 0x1D */ EXCH_ITEM_LETTER_RUTO,
|
||||
/* 0x18 */ EXCH_ITEM_BOTTLE_FISH,
|
||||
/* 0x19 */ EXCH_ITEM_BOTTLE_BLUE_FIRE,
|
||||
/* 0x1A */ EXCH_ITEM_BOTTLE_BUG,
|
||||
/* 0x1B */ EXCH_ITEM_BOTTLE_POE,
|
||||
/* 0x1C */ EXCH_ITEM_BOTTLE_BIG_POE,
|
||||
/* 0x1D */ EXCH_ITEM_BOTTLE_RUTOS_LETTER,
|
||||
/* 0x1E */ EXCH_ITEM_MAX
|
||||
} ExchangeItemID;
|
||||
|
||||
|
|
|
@ -61,6 +61,14 @@ typedef enum {
|
|||
/* 0x09 */ PLAYER_MASK_MAX
|
||||
} PlayerMask;
|
||||
|
||||
typedef enum {
|
||||
/* 0x0 */ PLAYER_ENV_HAZARD_NONE,
|
||||
/* 0x1 */ PLAYER_ENV_HAZARD_HOTROOM,
|
||||
/* 0x2 */ PLAYER_ENV_HAZARD_UNDERWATER_FLOOR,
|
||||
/* 0x3 */ PLAYER_ENV_HAZARD_SWIMMING,
|
||||
/* 0x4 */ PLAYER_ENV_HAZARD_UNDERWATER_FREE
|
||||
} PlayerEnvHazard;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ PLAYER_IA_NONE,
|
||||
/* 0x01 */ PLAYER_IA_LAST_USED,
|
||||
|
@ -68,7 +76,7 @@ typedef enum {
|
|||
/* 0x03 */ PLAYER_IA_SWORD_MASTER,
|
||||
/* 0x04 */ PLAYER_IA_SWORD_KOKIRI,
|
||||
/* 0x05 */ PLAYER_IA_SWORD_BGS,
|
||||
/* 0x06 */ PLAYER_IA_STICK,
|
||||
/* 0x06 */ PLAYER_IA_DEKU_STICK,
|
||||
/* 0x07 */ PLAYER_IA_HAMMER,
|
||||
/* 0x08 */ PLAYER_IA_BOW,
|
||||
/* 0x09 */ PLAYER_IA_BOW_FIRE,
|
||||
|
@ -89,33 +97,33 @@ typedef enum {
|
|||
/* 0x18 */ PLAYER_IA_FARORES_WIND,
|
||||
/* 0x19 */ PLAYER_IA_NAYRUS_LOVE,
|
||||
/* 0x1A */ PLAYER_IA_DINS_FIRE,
|
||||
/* 0x1B */ PLAYER_IA_NUT,
|
||||
/* 0x1B */ PLAYER_IA_DEKU_NUT,
|
||||
/* 0x1C */ PLAYER_IA_OCARINA_FAIRY,
|
||||
/* 0x1D */ PLAYER_IA_OCARINA_TIME,
|
||||
/* 0x1D */ PLAYER_IA_OCARINA_OF_TIME,
|
||||
/* 0x1E */ PLAYER_IA_BOTTLE,
|
||||
/* 0x1F */ PLAYER_IA_BOTTLE_FISH,
|
||||
/* 0x20 */ PLAYER_IA_BOTTLE_FIRE,
|
||||
/* 0x21 */ PLAYER_IA_BOTTLE_BUG,
|
||||
/* 0x22 */ PLAYER_IA_BOTTLE_POE,
|
||||
/* 0x23 */ PLAYER_IA_BOTTLE_BIG_POE,
|
||||
/* 0x24 */ PLAYER_IA_BOTTLE_LETTER,
|
||||
/* 0x24 */ PLAYER_IA_BOTTLE_RUTOS_LETTER,
|
||||
/* 0x25 */ PLAYER_IA_BOTTLE_POTION_RED,
|
||||
/* 0x26 */ PLAYER_IA_BOTTLE_POTION_BLUE,
|
||||
/* 0x27 */ PLAYER_IA_BOTTLE_POTION_GREEN,
|
||||
/* 0x28 */ PLAYER_IA_BOTTLE_MILK,
|
||||
/* 0x28 */ PLAYER_IA_BOTTLE_MILK_FULL,
|
||||
/* 0x29 */ PLAYER_IA_BOTTLE_MILK_HALF,
|
||||
/* 0x2A */ PLAYER_IA_BOTTLE_FAIRY,
|
||||
/* 0x2B */ PLAYER_IA_LETTER_ZELDA,
|
||||
/* 0x2B */ PLAYER_IA_ZELDAS_LETTER,
|
||||
/* 0x2C */ PLAYER_IA_WEIRD_EGG,
|
||||
/* 0x2D */ PLAYER_IA_CHICKEN,
|
||||
/* 0x2E */ PLAYER_IA_BEAN,
|
||||
/* 0x2E */ PLAYER_IA_MAGIC_BEAN,
|
||||
/* 0x2F */ PLAYER_IA_POCKET_EGG,
|
||||
/* 0x30 */ PLAYER_IA_POCKET_CUCCO,
|
||||
/* 0x31 */ PLAYER_IA_COJIRO,
|
||||
/* 0x32 */ PLAYER_IA_ODD_MUSHROOM,
|
||||
/* 0x33 */ PLAYER_IA_ODD_POTION,
|
||||
/* 0x34 */ PLAYER_IA_SAW,
|
||||
/* 0x35 */ PLAYER_IA_SWORD_BROKEN,
|
||||
/* 0x34 */ PLAYER_IA_POACHERS_SAW,
|
||||
/* 0x35 */ PLAYER_IA_BROKEN_GORONS_SWORD,
|
||||
/* 0x36 */ PLAYER_IA_PRESCRIPTION,
|
||||
/* 0x37 */ PLAYER_IA_FROG,
|
||||
/* 0x38 */ PLAYER_IA_EYEDROPS,
|
||||
|
@ -123,12 +131,12 @@ typedef enum {
|
|||
/* 0x3A */ PLAYER_IA_MASK_KEATON,
|
||||
/* 0x3B */ PLAYER_IA_MASK_SKULL,
|
||||
/* 0x3C */ PLAYER_IA_MASK_SPOOKY,
|
||||
/* 0x3D */ PLAYER_IA_MASK_BUNNY,
|
||||
/* 0x3D */ PLAYER_IA_MASK_BUNNY_HOOD,
|
||||
/* 0x3E */ PLAYER_IA_MASK_GORON,
|
||||
/* 0x3F */ PLAYER_IA_MASK_ZORA,
|
||||
/* 0x40 */ PLAYER_IA_MASK_GERUDO,
|
||||
/* 0x41 */ PLAYER_IA_MASK_TRUTH,
|
||||
/* 0x42 */ PLAYER_IA_LENS,
|
||||
/* 0x42 */ PLAYER_IA_LENS_OF_TRUTH,
|
||||
/* 0x43 */ PLAYER_IA_MAX
|
||||
} PlayerItemAction;
|
||||
|
||||
|
@ -571,7 +579,7 @@ typedef struct Player {
|
|||
/* 0x0838 */ f32 linearVelocity;
|
||||
/* 0x083C */ s16 currentYaw;
|
||||
/* 0x083E */ s16 targetYaw;
|
||||
/* 0x0840 */ u16 unk_840;
|
||||
/* 0x0840 */ u16 underwaterTimer;
|
||||
/* 0x0842 */ s8 meleeWeaponAnimation;
|
||||
/* 0x0843 */ s8 meleeWeaponState;
|
||||
/* 0x0844 */ s8 unk_844;
|
||||
|
|
|
@ -99,6 +99,49 @@ typedef struct {
|
|||
/* 0x24 */ s32 tempCollectFlags;
|
||||
} FaroresWindData; // size = 0x28
|
||||
|
||||
typedef enum {
|
||||
/* 0x0 */ TIMER_STATE_OFF,
|
||||
/* 0x1 */ TIMER_STATE_ENV_HAZARD_INIT, // Init env timer that counts down, total time based on health, resets on void-out, kills at 0
|
||||
/* 0x2 */ TIMER_STATE_ENV_HAZARD_PREVIEW, // Display initial time, keep it fixed at the screen center
|
||||
/* 0x3 */ TIMER_STATE_ENV_HAZARD_MOVE, // Move to top-left corner
|
||||
/* 0x4 */ TIMER_STATE_ENV_HAZARD_TICK, // Counting down
|
||||
/* 0x5 */ TIMER_STATE_DOWN_INIT, // Init timer that counts down
|
||||
/* 0x6 */ TIMER_STATE_DOWN_PREVIEW, // Display initial time, keep it fixed at the screen center
|
||||
/* 0x7 */ TIMER_STATE_DOWN_MOVE, // Move to top-left corner
|
||||
/* 0x8 */ TIMER_STATE_DOWN_TICK, // Counting down
|
||||
/* 0xA */ TIMER_STATE_STOP = 10,
|
||||
/* 0xB */ TIMER_STATE_UP_INIT, // Init timer that counts up
|
||||
/* 0xC */ TIMER_STATE_UP_PREVIEW, // Display initial time, keep it fixed at the screen center
|
||||
/* 0xD */ TIMER_STATE_UP_MOVE, // Move to top-left corner
|
||||
/* 0xE */ TIMER_STATE_UP_TICK, // Counting up
|
||||
/* 0xF */ TIMER_STATE_UP_FREEZE // Stop counting the timer
|
||||
} TimerState;
|
||||
|
||||
typedef enum {
|
||||
/* 0x0 */ SUBTIMER_STATE_OFF,
|
||||
/* 0x1 */ SUBTIMER_STATE_DOWN_INIT, // Init timer that counts down
|
||||
/* 0x2 */ SUBTIMER_STATE_DOWN_PREVIEW, // Display initial time, keep it fixed at the screen center
|
||||
/* 0x3 */ SUBTIMER_STATE_DOWN_MOVE, // Move to top-left corner
|
||||
/* 0x4 */ SUBTIMER_STATE_DOWN_TICK, // Counting down
|
||||
/* 0x5 */ SUBTIMER_STATE_RESPAWN, // Time is up, trigger a transition, reset button items, spoil trade quest items
|
||||
/* 0x6 */ SUBTIMER_STATE_STOP, // Time is up, stop counting
|
||||
/* 0x7 */ SUBTIMER_STATE_UP_INIT, // Init timer that counts up
|
||||
/* 0x8 */ SUBTIMER_STATE_UP_PREVIEW, // Display initial time, keep it fixed at the screen center
|
||||
/* 0x9 */ SUBTIMER_STATE_UP_MOVE, // Move to top-left corner
|
||||
/* 0xA */ SUBTIMER_STATE_UP_TICK // Counting up
|
||||
} SubTimerState;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ TIMER_ID_MAIN, // Takes priority in both counting and drawing. See `timerState` and `timerSeconds`
|
||||
/* 1 */ TIMER_ID_SUB, // See `subTimerState` and `subTimerSeconds`
|
||||
/* 2 */ TIMER_ID_MAX
|
||||
} TimerId;
|
||||
|
||||
#define MARATHON_TIME_LIMIT 240 // 4 minutes
|
||||
|
||||
#define ENV_HAZARD_TEXT_TRIGGER_HOTROOM (1 << 0)
|
||||
#define ENV_HAZARD_TEXT_TRIGGER_UNDERWATER (1 << 1)
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s32 entranceIndex; // start of `save` substruct, originally called "memory"
|
||||
/* 0x0004 */ s32 linkAge; // 0: Adult; 1: Child (see enum `LinkAge`)
|
||||
|
@ -162,17 +205,17 @@ typedef struct {
|
|||
/* 0x13C2 */ char unk_13C2[0x0001];
|
||||
/* 0x13C3 */ u8 retainWeatherMode;
|
||||
/* 0x13C4 */ s16 dogParams;
|
||||
/* 0x13C6 */ u8 textTriggerFlags;
|
||||
/* 0x13C6 */ u8 envHazardTextTriggerFlags;
|
||||
/* 0x13C7 */ u8 showTitleCard;
|
||||
/* 0x13C8 */ s16 nayrusLoveTimer;
|
||||
/* 0x13CA */ char unk_13CA[0x0002];
|
||||
/* 0x13CC */ s16 rupeeAccumulator;
|
||||
/* 0x13CE */ s16 timer1State;
|
||||
/* 0x13D0 */ s16 timer1Value;
|
||||
/* 0x13D2 */ s16 timer2State;
|
||||
/* 0x13D4 */ s16 timer2Value;
|
||||
/* 0x13D6 */ s16 timerX[2];
|
||||
/* 0x13DA */ s16 timerY[2];
|
||||
/* 0x13CE */ s16 timerState; // See `TimerState`
|
||||
/* 0x13D0 */ s16 timerSeconds;
|
||||
/* 0x13D2 */ s16 subTimerState; // See `SubTimerState`
|
||||
/* 0x13D4 */ s16 subTimerSeconds;
|
||||
/* 0x13D6 */ s16 timerX[TIMER_ID_MAX];
|
||||
/* 0x13DA */ s16 timerY[TIMER_ID_MAX];
|
||||
/* 0x13DE */ char unk_13DE[0x0002];
|
||||
/* 0x13E0 */ u8 seqId;
|
||||
/* 0x13E1 */ u8 natureAmbienceId;
|
||||
|
@ -748,7 +791,8 @@ typedef enum {
|
|||
(gSaveContext.eventInf[EVENTINF_HORSES_INDEX] & ~EVENTINF_HORSES_0F_MASK) | ((v) << EVENTINF_HORSES_0F_SHIFT)
|
||||
|
||||
|
||||
#define EVENTINF_10 0x10
|
||||
// Is the running man race active
|
||||
#define EVENTINF_MARATHON_ACTIVE 0x10
|
||||
|
||||
// 0x20-0x24
|
||||
#define EVENTINF_20_21_22_23_24_INDEX 2
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue