diff options
| author | theo3 <arisstephenson2@gmail.com> | 2021-02-19 00:47:22 -0800 |
|---|---|---|
| committer | theo3 <arisstephenson2@gmail.com> | 2021-02-19 00:47:22 -0800 |
| commit | ce06f7dbb70b87cc3007a3e6ee6642b3f9aeb8b3 (patch) | |
| tree | 0affacd2a74cb9fc324bf2a48bb76f2da432ec77 /include | |
| parent | 71ae3b07ea560601a3cddad9ab1eae7beedcf9ee (diff) | |
begin arm_proxy.c
Diffstat (limited to 'include')
| -rw-r--r-- | include/audio.h | 243 | ||||
| -rw-r--r-- | include/entity.h | 16 | ||||
| -rw-r--r-- | include/functions.h | 2 | ||||
| -rw-r--r-- | include/main.h | 2 | ||||
| -rw-r--r-- | include/manager.h | 3 | ||||
| -rw-r--r-- | include/npc.h | 3 | ||||
| -rw-r--r-- | include/object.h | 2 | ||||
| -rw-r--r-- | include/player.h | 45 | ||||
| -rw-r--r-- | include/structures.h | 2 |
9 files changed, 293 insertions, 25 deletions
diff --git a/include/audio.h b/include/audio.h new file mode 100644 index 00000000..3690de89 --- /dev/null +++ b/include/audio.h @@ -0,0 +1,243 @@ + +typedef enum { + NONE, + BGM_CASTLE_TOURNAMENT, + BGM_VAATI_MOTIF, + BGM_TITLE_SCREEN, + BGM_CASTLE_MOTIF, + BGM_ELEMENT_GET, + BGM_FAIRY_FOUNTAIN, + BGM_FILE_SELECT, + BGM_INTRO_CUTSCENE, + BGM_CREDITS, + BGM_GAMEOVER, + BGM_SAVING_ZELDA, + BGM_LTTP_TITLE, + BGM_VAATI_THEME, + BGM_EZLO_THEME, + BGM_STORY, + BGM_FESTIVAL_APPROACH, + BGM_BEAT_VAATI, + + BGM_BEANSTALK = 0x13, + BGM_HOUSE, + BGM_CUCCO_MINIGAME, + BGM_SYRUP_THEME, + BGM_DUNGEON, + BGM_ELEMENT_THEME, + BGM_HYRULE_FIELD, + BGM_HYRULE_CASTLE, + BGM_HYRULE_CASTLE_NOINTRO, + BGM_MINISH_VILLAGE, + BGM_MINISH_WOODS, + BGM_CRENEL_STORM, + BGM_CASTOR_WILDS, + BGM_HYRULE_TOWN, + BGM_ROYAL_VALLEY, + BGM_CLOUD_TOPS, + BGM_DARK_HYRULE_CASTLE, + BGM_SECRET_CASTLE_ENTRANCE, + BGM_DEEPWOOD_SHRINE, + BGM_CAVE_OF_FLAMES, + BGM_FORTRESS_OF_WINDS, + BGM_TEMPLE_OF_DROPLETS, + BGM_PALACE_OF_WINDS, + BGM_EZLO_STORY, + BGM_ROYAL_CRYPT, + BGM_ELEMENTAL_SANCTUARY, + BGM_FIGHT_THEME, + BGM_BOSS_THEME, + BGM_VAATI_REBORN, + BGM_VAATI_TRANSFIGURED, + BGM_CASTLE_COLLAPSE, + BGM_VAATI_WRATH, + BGM_FIGHT_THEME2, + BGM_DIGGING_CAVE, + BGM_SWIFTBLADE_DOJO, + BGM_MINISH_CAP, + BGM_MT_CRENEL, + BGM_PICORI_FESTIVAL, + BGM_LOST_WOODS, + BGM_FAIRY_FOUNTAIN2, + BGM_WIND_RUINS, + + BGM_LEARN_SCROLL = 0x5E, + BGM_EZLO_GET, + + SFX_BEEP = 0x64, + SFX_TEXTBOX_OPEN, + SFX_TEXTBOX_CLOSE, + SFX_TEXTBOX_NEXT, + SFX_TEXTBOX_SWAP, + SFX_TEXTBOX_CHOICE, + SFX_TEXTBOX_SELECT, + SFX_6B, + SFX_MENU_CANCEL, + SFX_MENU_ERROR, + SFX_RUPEE_BOUNCE, + SFX_RUPEE_GET, + SFX_HEART_BOUNCE, + SFX_HEART_GET, + SFX_SECRET, + SFX_SECRET_BIG, + SFX_METAL_CLINK, + SFX_PLY_VO1, + SFX_PLY_VO2, + SFX_PLY_VO3, + SFX_PLY_VO4, + SFX_PLY_VO5, + SFX_PLY_VO6, + SFX_PLY_VO7, + SFX_PLY_JUMP, + SFX_PLY_LAND, + SFX_7E, + SFX_PLY_LIFT, + SFX_80, + SFX_81, + SFX_82, + SFX_WATER_WALK, + SFX_WATER_SPLASH, + SFX_FALL_HOLE, + SFX_86, + SFX_PLY_DIE, + SFX_88, + SFX_BARREL_RELEASE, + SFX_BARREL_ENTER, + SFX_BARREL_ROLL, + SFX_BARREL_ROLL_STOP, + SFX_VO_EZLO1, + SFX_VO_EZLO2, + SFX_VO_EZLO3, + SFX_VO_EZLO4, + SFX_VO_EZLO5, + SFX_VO_EZLO6, + SFX_VO_EZLO7, + SFX_VO_ZELDA1, + SFX_VO_ZELDA2, + SFX_VO_ZELDA3, + SFX_VO_ZELDA4, + SFX_VO_ZELDA5, + SFX_VO_ZELDA6, + SFX_VO_ZELDA7, + SFX_9B, + SFX_9C, + SFX_9D, + SFX_9E, + SFX_9F, + SFX_A0, + SFX_VO_TINGLE1, + SFX_VO_TINGLE2, + SFX_VO_KING1, + SFX_VO_KING2, + SFX_VO_KING3, + SFX_VO_KING4, + SFX_VO_KING5, + SFX_A8, + SFX_A9, + SFX_AA, + SFX_SPIRITS_RELEASE, + SFX_AC, + SFX_VO_BEEDLE, + SFX_AE, + SFX_AF, + SFX_B0, + SFX_VO_MINISH1, + SFX_VO_MINISH2, + SFX_VO_MINISH3, + SFX_VO_MINISH4, + + SFX_REM_SLEEP = 0xCC, + SFX_TASK_COMPLETE, + SFX_KEY_APPEAR, + SFX_CF, + SFX_D0, + SFX_VO_DOG, + SFX_VO_CAT, + SFX_VO_EPONA, + SFX_VO_COW, + SFX_VO_CUCCO_CALL, + SFX_VO_CHEEP, + SFX_ITEM_SWORD_CHARGE, + SFX_ITEM_SWORD_CHARGE_FINISH, + SFX_D9, + SFX_DA, + SFX_VO_STURGEON, + SFX_HAMMER1, + SFX_HAMMER2, + SFX_HAMMER3, + SFX_HAMMER4, + SFX_HAMMER5, + SFX_HAMMER6, + SFX_CUCCO_MINIGAME_BELL, + SFX_E3, + SFX_E4, + SFX_BUTTON_DEPRESS, + SFX_THUD_HEAVY, + SFX_WIND1, + SFX_WIND2, + SFX_WIND3, + + SFX_SUMMON = 0xF4, + SFX_F5, + SFX_EVAPORATE, + SFX_APPARATE, + SFX_F8, + SFX_TELEPORTER, + + SFX_ITEM_BOMB_EXPLODE = 0xFD, + SFX_HIT, + + SFX_ITEM_SHIELD_BOUNCE = 0x118, + SFX_ITEM_GLOVES_KNOCKBACK, + SFX_EM_ARMOS_ON, + + SFX_EM_MOBLIN_SPEAR = 0x11E, + SFX_LOW_HEALTH, + SFX_CHARGING_UP, + SFX_STAIRS, + + SFX_BOSS_HIT = 0x127, + SFX_BOSS_DIE, + SFX_BOSS_EXPLODE, + + SFX_ITEM_LANTERN_ON = 0x13D, + SFX_ITEM_LANTERN_OFF, + SFX_ITEM_SWORD_BEAM, + SFX_140, + SFX_HEART_CONTAINER_SPAWN, + SFX_SPARKLES, + + SFX_PLY_SHRINKING = 0x16F, + SFX_PLY_GROW, + + SFX_LAVA_TILE_STEP = 0x17B, + SFX_LAVA_TILE_WOBBLE, + SFX_LAVA_TILE_SINK, + SFX_LAVA_TILE_FLIP, + SFX_LAVA_TILE_LAND, + + SFX_STAIRS_ASCEND = 0x187, + SFX_STAIRS_DESCEND, + + SFX_ICE_BLOCK_SLIDE = 0x1B1, + SFX_ICE_BLOCK_STOP, + SFX_ICE_BLOCK_MELT, + + SFX_VO_GORON1 = 0x1B7, + SFX_VO_GORON2, + SFX_VO_GORON3, + SFX_VO_GORON4, + SFX_EM_DEKUSCRUB_HIT, + + SFX_ELEMENT_PLACE = 0x1CD, + SFX_ELEMENT_FLOAT, + SFX_ELEMENT_CHARGE, + SFX_1D0, + SFX_ELEMENT_INFUSE, + + SFX_VO_CUCCO1 = 0x1D6, + SFX_VO_CUCCO2, + SFX_VO_CUCCO3, + SFX_VO_CUCCO4, + SFX_VO_CUCCO5, +} Sound;
\ No newline at end of file diff --git a/include/entity.h b/include/entity.h index ad4df8fb..d1593d1d 100644 --- a/include/entity.h +++ b/include/entity.h @@ -19,9 +19,23 @@ typedef struct { } EntityType; typedef struct { - u8 unknown[8]; + s8 offset_x; + s8 offset_y; + u8 unk2[4]; + u8 width; + u8 height; } BoundingBox; +typedef struct { + s8 offset_x; + s8 offset_y; + u8 unknown[4]; + u8 width; + u8 height; + u8 depth; + u8 unknown2[3]; +} BoundingBox3D; + typedef struct Entity { /*0x00*/ struct Entity* prev; /*0x04*/ struct Entity* next; diff --git a/include/functions.h b/include/functions.h index 407641c0..0a50c7d3 100644 --- a/include/functions.h +++ b/include/functions.h @@ -209,7 +209,7 @@ extern u32 sub_0807953C(void); extern void sub_080AE068(Entity*); extern u32 sub_0800445C(Entity*); extern void sub_0807A108(void); -extern void sub_0801766C(Entity*); +extern u32 sub_0801766C(Entity*); extern void sub_08004168(Entity*); extern u32 sub_08052638(u32); extern void InitDMA(void); diff --git a/include/main.h b/include/main.h index 3d60ee25..55e7b341 100644 --- a/include/main.h +++ b/include/main.h @@ -46,7 +46,7 @@ enum { }; typedef struct { - u8 interruptFlag; + vu8 interruptFlag; u8 field_0x1; u8 screen; u8 funcIndex; diff --git a/include/manager.h b/include/manager.h index 7830adc4..a0d8eb1c 100644 --- a/include/manager.h +++ b/include/manager.h @@ -191,4 +191,7 @@ extern void sub_0805DE38(Entity*); extern void sub_0805E0A8(Entity*); extern void sub_0805E0FC(); +void (*const gManagerFunctions[58])(); + + #endif diff --git a/include/npc.h b/include/npc.h index c862b348..024a9a43 100644 --- a/include/npc.h +++ b/include/npc.h @@ -172,4 +172,7 @@ extern void NPC58_Head(Entity*); extern u32 UpdateFuseInteraction(Entity*); + +void (*const gNPCFunctions[128][3])(Entity*); + #endif diff --git a/include/object.h b/include/object.h index d0bdcea8..5480a8a2 100644 --- a/include/object.h +++ b/include/object.h @@ -199,4 +199,6 @@ extern void ObjectBF(Entity*); extern void EnemyItem(Entity*); extern void ObjectC1(Entity*); +void (*const gObjectFunctions[194])(Entity*); + #endif diff --git a/include/player.h b/include/player.h index 0e0c7356..f1f08f6f 100644 --- a/include/player.h +++ b/include/player.h @@ -67,7 +67,8 @@ typedef struct { /*0x94*/ u32 field_0x94; /*0x98*/ u16 field_0x98; /*0x9a*/ u16 field_0x9a; - /*0x9c*/ u32 field_0x9c[3]; + /*0x9c*/ u32 field_0x9c; + /*0xa0*/ u8 field_0xa0[8]; /*0xa8*/ u8 field_0xa8; /*0xa9*/ u8 field_0xa9; /*0xaa*/ u8 field_0xaa; @@ -78,26 +79,26 @@ typedef struct { typedef struct { - u8 walletType; - u8 heartPieces; - u8 health; - u8 maxHealth; - u8 bombCount; - u8 arrowCount; - u8 bombBagType; - u8 quiverType; - u8 filler[4]; - u8 itemOnA; - u8 itemOnB; - u8 filler2[10]; - u16 rupees; - u16 field_0x1a; - u8 field_0x1c; - u8 field_0x1d; - u8 field_0x1e; - u8 field_0x1f; - u16 field_0x20; - u8 filler4[4]; + /*0x00*/ u8 walletType; + /*0x01*/ u8 heartPieces; + /*0x02*/ u8 health; + /*0x03*/ u8 maxHealth; + /*0x04*/ u8 bombCount; + /*0x05*/ u8 arrowCount; + /*0x06*/ u8 bombBagType; + /*0x07*/ u8 quiverType; + /*0x08*/ u8 filler[4]; + /*0x0c*/ u8 itemOnA; + /*0x0d*/ u8 itemOnB; + /*0x0e*/ u8 bottles[4]; + /*0x12*/ u8 floorType; + /*0x13*/ u8 filler3[5]; + /*0x18*/ u16 rupees; + /*0x1a*/ u16 field_0x1a; + /*0x1c*/ u16 field_0x1c; + /*0x1e*/ u16 field_0x1e; + /*0x20*/ u16 field_0x20; + /*0x22*/ u8 filler4[4]; } Stats; typedef struct { @@ -109,6 +110,8 @@ typedef struct { /*0xf*/ u8 field_0xf; } ItemBehavior; +extern void (*const gPlayerItemFunctions[])(Entity*); + extern u8 gBombBagSizes[]; extern u8 gQuiverSizes[]; diff --git a/include/structures.h b/include/structures.h index 60d1a36e..b5d29481 100644 --- a/include/structures.h +++ b/include/structures.h @@ -44,7 +44,7 @@ typedef struct { extern struct_02000010 gUnk_02000010; typedef struct { - u32 frameCount; // regular frame count? does anything reset it? + s32 frameCount; // regular frame count? does anything reset it? u8 field_0x4[0x4]; bool8 transitioningOut; u8 transitionType; // transition when changing areas |
