diff options
| author | theo3 <arisstephenson2@gmail.com> | 2021-12-20 02:02:33 -0800 |
|---|---|---|
| committer | theo3 <arisstephenson2@gmail.com> | 2021-12-20 10:31:02 -0800 |
| commit | 6cff332e57b5cc723d9243c2d4667be7c7ca0273 (patch) | |
| tree | abfb5dfbbf116cef3f6776df3e242fe37ee0fc8e /include | |
| parent | 0d5eae8696a70323c0712233913d73ee67823ca4 (diff) | |
header overhaul
Diffstat (limited to 'include')
| -rw-r--r-- | include/arm_proxy.h | 6 | ||||
| -rw-r--r-- | include/asm.h | 25 | ||||
| -rw-r--r-- | include/audio.h | 44 | ||||
| -rw-r--r-- | include/coord.h | 4 | ||||
| -rw-r--r-- | include/cutscene.h | 16 | ||||
| -rw-r--r-- | include/enemy.h | 16 | ||||
| -rw-r--r-- | include/entity.h | 13 | ||||
| -rw-r--r-- | include/fade.h | 18 | ||||
| -rw-r--r-- | include/fileScreen.h | 1 | ||||
| -rw-r--r-- | include/functions.h | 72 | ||||
| -rw-r--r-- | include/game.h | 8 | ||||
| -rw-r--r-- | include/greatFairy.h | 29 | ||||
| -rw-r--r-- | include/interrupts.h | 6 | ||||
| -rw-r--r-- | include/main.h | 1 | ||||
| -rw-r--r-- | include/manager.h | 11 | ||||
| -rw-r--r-- | include/npc.h | 47 | ||||
| -rw-r--r-- | include/object.h | 17 | ||||
| -rw-r--r-- | include/overworld.h | 63 | ||||
| -rw-r--r-- | include/random.h | 10 | ||||
| -rw-r--r-- | include/room.h | 3 | ||||
| -rw-r--r-- | include/screen.h | 1 | ||||
| -rw-r--r-- | include/utils.h | 6 |
22 files changed, 238 insertions, 179 deletions
diff --git a/include/arm_proxy.h b/include/arm_proxy.h deleted file mode 100644 index 9364ebf0..00000000 --- a/include/arm_proxy.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef ARM_PROXY_H -#define ARM_PROXY_H - -extern void WaitForNextFrame(void); - -#endif diff --git a/include/asm.h b/include/asm.h new file mode 100644 index 00000000..cd151320 --- /dev/null +++ b/include/asm.h @@ -0,0 +1,25 @@ +#ifndef ASM_H +#define ASM_H + +#include "global.h" + +struct Entity_; + +extern u32 Random(void); +extern void sub_08000152(u32); +extern void SetTile(u32 index, u32 position, u32 layer); +extern void sub_08001242(struct Entity_*); +extern void sub_08001290(struct Entity_*, u32); +extern void sub_08001324(struct Entity_*); +extern u32 sub_08002632(struct Entity_*); +extern u32 sub_08003FC4(struct Entity_*, u32); +extern u32 sub_080043E8(struct Entity_*); +extern void sub_08004484(struct Entity_*, struct Entity_*); +extern u32 sub_080045D4(s16, s16, u32, u32); +extern u32 sub_080045DA(s32, s32); +extern void sub_08004596(struct Entity_*, u32); +extern u32 sub_080045B4(struct Entity_*, u32, u32); +extern u32 EntityInRectRadius(struct Entity_*, struct Entity_*, u32, u32); +extern void UpdateAnimationVariableFrames(struct Entity_*, u32); + +#endif // ASM_H diff --git a/include/audio.h b/include/audio.h index 2add23dd..e5e4c0e4 100644 --- a/include/audio.h +++ b/include/audio.h @@ -5,6 +5,29 @@ #define NUM_BGM 99 +void SoundReq(u32 sound); +extern void EnqueueSFX(u32); + +void InitSound(void); +void InitSoundPlayingInfo(void); +void AudioMain(void); + +typedef struct SoundPlayingInfo { + u16 unk_00; + bool8 stopBgm; + // u8 unk_03; + u16 unk_04; + s16 volumeMasterUnk; + s16 volumeMaster; + s16 volumeMasterTarget; + s16 volumeBgmUnk; + s16 volumeBgm; + s16 volumeBgmTarget; + s16 volumeSfx; + u16 currentBgm; +} SoundPlayingInfo; +extern SoundPlayingInfo gSoundPlayingInfo; + typedef enum { SFX_NONE, // BGM @@ -574,25 +597,4 @@ typedef enum { SONG_BGM_0 = 0x80110000, } Sound; -typedef struct SoundPlayingInfo { - u16 unk_00; - bool8 stopBgm; - // u8 unk_03; - u16 unk_04; - s16 volumeMasterUnk; - s16 volumeMaster; - s16 volumeMasterTarget; - s16 volumeBgmUnk; - s16 volumeBgm; - s16 volumeBgmTarget; - s16 volumeSfx; - u16 currentBgm; -} SoundPlayingInfo; - -extern SoundPlayingInfo gSoundPlayingInfo; - -void InitSound(void); -void SoundReq(Sound sound); -void AudioMain(void); - #endif // AUDIO_H diff --git a/include/coord.h b/include/coord.h index 52dcf210..4b6556e6 100644 --- a/include/coord.h +++ b/include/coord.h @@ -15,6 +15,10 @@ void sub_0806FA90(Entity*, Entity*, s32, s32); void ResolveEntityOnTop(Entity*, Entity*); void ResolveEntityBelow(Entity*, Entity*); +u32 sub_0806F5A4(u32 idx); +u32 sub_0806F3E4(Entity*); +void sub_0806F69C(Entity*); + extern const s16 gSineTable[64]; extern const s16 gCosineTable[256]; diff --git a/include/cutscene.h b/include/cutscene.h deleted file mode 100644 index 72d44fef..00000000 --- a/include/cutscene.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef CUTSCENE_H -#define CUTSCENE_H - -#include "global.h" - -typedef struct { - u32* cutsceneData; - u8 textIndex; - u8 filler[11]; - u16 pauseTime; - u8 filler2[2]; - s32 targetX; - s32 targetY; -} CutsceneBehavior; - -#endif diff --git a/include/enemy.h b/include/enemy.h index 6b187642..8595b8f3 100644 --- a/include/enemy.h +++ b/include/enemy.h @@ -2,8 +2,21 @@ #define ENEMY_H #include "global.h" +#include "asm.h" + +#include "audio.h" +#include "effects.h" +#include "flags.h" +#include "utils.h" + #include "entity.h" +extern u32 GetNextFunction(Entity*); +extern void EnemyFunctionHandler(Entity*, void (*const func[])(Entity*)); +extern void sub_08001324(Entity*); + +extern Entity* sub_0804A9FC(Entity*, u32); + typedef enum { /*0x00*/ OCTOROK, /*0x01*/ CHUCHU, @@ -213,7 +226,4 @@ extern void Enemy64(Entity*); extern void TreeItem(Entity*); extern void Enemy66(Entity*); -extern u32 GetNextFunction(Entity*); -extern void EnemyFunctionHandler(Entity*, void (*const func[])(Entity*)); -extern void sub_08001324(Entity*); #endif diff --git a/include/entity.h b/include/entity.h index 83c3a6c5..43c3b721 100644 --- a/include/entity.h +++ b/include/entity.h @@ -41,9 +41,9 @@ typedef struct { u8 unknown2[3]; } Hitbox3D; -typedef struct Entity { - /*0x00*/ struct Entity* prev; - /*0x04*/ struct Entity* next; +typedef struct Entity_ { + /*0x00*/ struct Entity_* prev; + /*0x04*/ struct Entity_* next; /*0x08*/ u8 kind; /*0x09*/ u8 id; /*0x0a*/ u8 type; @@ -118,9 +118,9 @@ typedef struct Entity { /*0x45*/ u8 health; /*0x46*/ u16 field_0x46; /*0x48*/ Hitbox* hitbox; - /*0x4c*/ struct Entity* field_0x4c; - /*0x50*/ struct Entity* parent; - /*0x54*/ struct Entity* child; + /*0x4c*/ struct Entity_* field_0x4c; + /*0x50*/ struct Entity_* parent; + /*0x54*/ struct Entity_* child; /*0x58*/ u8 animIndex; /*0x59*/ u8 frameDuration; /*0x5a*/ u8 frame; @@ -275,6 +275,7 @@ Entity* FindNextDuplicateID(Entity* ent, int listIndex); */ Entity* FindEntity(u32 kind, u32 id, u32 listIndex, u32 type, u32 type2); +void DeleteManager(void*); void DeleteEntityAny(Entity* ent); void UpdateEntities(void); diff --git a/include/fade.h b/include/fade.h new file mode 100644 index 00000000..7e71a435 --- /dev/null +++ b/include/fade.h @@ -0,0 +1,18 @@ +#ifndef FADE_H +#define FADE_H + +#include "global.h" + +void SetBrightness(u32 arg0); +void DoFade(u32 type, u32 speed); + +void sub_08050008(void); +void sub_08050038(u32); +void sub_080500F4(u32 arg0); +void sub_08050110(u32 param_1, u32 param_2, u32 fadeType, u32 fadeSpeed); + +void InitFade(void); +void FadeMain(void); +void FadeVBlank(void); + +#endif // FADE_H diff --git a/include/fileScreen.h b/include/fileScreen.h index 8cf2304b..04cfa4ba 100644 --- a/include/fileScreen.h +++ b/include/fileScreen.h @@ -59,7 +59,6 @@ extern void sub_0805F46C(u32, void*); extern void RecoverUI(u32 bottomPt, u32 topPt); extern void sub_08080668(void); extern void sub_0805194C(u32); -extern void LoadPalettes(const u8*, int, int); extern struct_02036540* sub_0805F2C8(void); extern void sub_0805F7DC(u32, struct_02036540*); extern void sub_0805F300(struct_02036540*); diff --git a/include/functions.h b/include/functions.h index 293f7e20..cc90e57f 100644 --- a/include/functions.h +++ b/include/functions.h @@ -12,21 +12,16 @@ #include "script.h" // Identified - to be sorted into header files -extern void ShowNPCDialogue(Entity*, Dialog*); -extern void DoFade(u32, u32); extern u32 CheckKinstoneFused(u32); extern void ForceEquipItem(u32, u32); extern void LoadRoomEntityList(EntityData* listPtr); -extern u32 GetAnimationState(Entity*); extern void SetChildOffset(Entity*, s32, s32, s32); extern Entity* CreatePlayerItem(u32, u32, u32, u32); extern u32 GetTileTypeByPos(s32 x, s32 y, u32 layer); extern u32 GetTileType(u32 pos, u32 layer); extern void SetTile(u32, u32, u32); extern void SetDirtTile(u32); -extern void LoadRoomTileEntities(); // tba extern Entity* CreateDeathFx(Entity*, u32, u32); -extern void UpdateAnimationVariableFrames(Entity*, u32); extern u8* GetSpriteSubEntryOffsetDataPointer(u32, u32); extern bool32 LoadFixedGFX(Entity*, u32); extern void CreateItemEntity(u32, u32, u32); @@ -35,20 +30,14 @@ extern void MenuFadeIn(u32, u32); extern void LoadResourceAsync(const void*, u32, u32); extern void LoadPaletteGroup(u32); extern void TryLoadPrologueHyruleTown(void); -extern Manager* GetEmptyManager(void); extern void LoadGfxGroup(u32); -extern void EnqueueSFX(u32); extern void ResetPlayer(void); extern u32 IsItemEquipped(u32); -extern void DeleteManager(Manager*); extern bool32 CheckPlayerInRegion(u32 centerX, u32 centerY, u32 radiusX, u32 radiusY); extern Entity* CreateProjectileWithParent(Entity*, u8, u8); -extern u32 GetBottleContaining(u32); extern u32 GetTileTypeByEntity(Entity*); extern u32 GetSaleItemConfirmMessageID(u32); extern void FlushSprites(void); -extern void DispReset(u32); -extern void InitSoundPlayingInfo(void); extern Entity* CreateProjectile(u32); extern void RegisterPlayerHitbox(); extern s32 GetItemPrice(); @@ -58,41 +47,22 @@ extern void PutItemOnSlot(u32 itemID); extern Entity* CreateSpeechBubbleQuestionMark(Entity*, s32, s32); extern Entity* CreateSpeechBubbleExclamationMark(Entity*, s32, s32); extern Entity* CreateSpeechBubbleSleep(Entity*, s32, s32); -extern u32 CheckPlayerProximity(u32, u32, u32, u32); -extern void ChangeLightLevel(s32); // Unidentified -extern u32 sub_0806ED78(Entity*); -extern u32 sub_0805ACC0(Entity*); -extern u32 sub_0801E99C(Entity*); -extern Entity* sub_080873AC(Entity*, u32, u32); -extern void sub_08078778(Entity*); -extern void sub_080787A8(Entity*, u32); -extern void sub_0806F118(Entity*); extern void sub_080791D0(); extern void sub_0805EC9C(); extern void sub_0805EC60(Entity*); -extern u32 sub_080045D4(s16, s16, u32, u32); -extern void sub_0806F69C(Entity*); extern void sub_0806D0B0(Entity*); extern void sub_0806D02C(Entity*); -extern u32 sub_0806F5A4(u32); -extern void sub_08078784(Entity*, u32); -extern s32 sub_0806ED9C(Entity*, u32, u32); -extern void sub_0807000C(Entity*); -extern void sub_08068BEC(Entity*, u32); -extern s32 sub_0806F078(Entity*, s32); extern void ChangeObjPalette(Entity*, u32); extern void sub_0806FD3C(Entity*); extern void sub_0805ED14(u32*); extern void sub_080A7C18(u32, u32, u32); extern void sub_0804AA30(Entity*, void (*const funcs[])(Entity*)); -extern Entity* sub_0804A9FC(Entity*, u32); extern void sub_0804A720(Entity*); extern u32 sub_080AEFE0(Entity*); extern u32 sub_08049FA0(Entity*); extern u32 sub_08049FDC(Entity*, u32); -extern u32 EntityInRectRadius(Entity*, Entity*, u32, u32); extern u32 sub_08049EE4(Entity*); extern void sub_08077E54(ItemBehavior*); extern void sub_080042BA(Entity*, u32); @@ -111,8 +81,6 @@ extern void sub_080575C8(u32); extern void sub_08057688(void); extern void sub_080580B0(u32); extern void sub_080751E8(u32, u32, void*); -extern void sub_08052CA4(u32, u32, u32, u32); -extern void sub_08052878(void); extern void sub_0808091C(ScreenTransitionData*, u32); extern void sub_0805BC4C(void); extern void sub_0807BB68(u32*, u32, u32); @@ -120,7 +88,6 @@ extern void sub_08054570(void); extern void sub_08059278(void); extern void sub_0804C128(u32); extern void sub_08058324(u32); -extern void sub_0804C2F0(void); extern void sub_0801AFE4(void); extern u32 sub_08060354(void); extern void sub_08057E64(void); @@ -128,7 +95,6 @@ extern void sub_0809F814(u32); extern void sub_080300E8(void); extern void sub_08058D34(void); extern void sub_0807AABC(Entity*); -extern void UpdateGlobalProgress(void); extern void sub_0805B4D0(u32); extern void sub_0804D0B4(void); extern void sub_080534AC(); @@ -137,7 +103,6 @@ extern void sub_0804D9B0(); extern void sub_0807BB98(u32, u32, u32, u32); extern void sub_0801D000(u32); extern void sub_08018C58(u32); -extern void sub_0804E150(void); extern void sub_080AF284(void); extern void sub_080A71C4(u32, u32, u32, u32); extern void sub_08054564(); @@ -150,7 +115,6 @@ extern s32 sub_0801CFA8(u32); extern void sub_080ADA14(u32, u32); // trampoline to sub_080B27F4 extern void sub_0801E1B8(u32, u32); extern void sub_0801E1EC(s32, s32, s32); -extern void sub_08050008(void); extern void sub_080A3B74(void); extern void sub_080A4054(void); extern void sub_0801C1D4(void); @@ -161,25 +125,16 @@ extern void sub_080A4528(void); extern void sub_080A4398(void); extern void sub_0801E738(u32); extern void sub_080A7114(u32); -extern void sub_08001324(Entity*); -extern void sub_08001242(Entity*); -extern u32 sub_08003FC4(Entity*, u32); -extern u32 sub_080043E8(Entity*); -extern void sub_08001290(Entity*, u32); -extern void sub_08004596(Entity*, u32); -extern u32 sub_080045B4(Entity*, u32, u32); extern u32 sub_0807953C(void); extern void sub_080AE068(Entity*); extern u32 sub_0800445C(Entity*); extern void sub_0807A108(void); extern u32 sub_0801766C(Entity*); extern void sub_08004168(Entity*); -extern u32 sub_08052638(u32); extern void sub_08056208(void); extern void sub_08050384(); extern u32 sub_0806F520(); extern void sub_0806F4E8(Entity*); -extern u32 sub_0806F3E4(Entity*); extern void sub_0804A7D4(Entity*); extern void sub_08033744(Entity*); extern void sub_0800417E(Entity*, u32); @@ -197,10 +152,8 @@ extern void sub_08079938(); extern void sub_0807ACCC(Entity*); extern void sub_080A2BE4(Entity*, u32); extern u32 sub_08097ADC(Entity*); -extern void sub_08097B24(Entity*); extern u32 sub_08079F8C(void); extern void sub_080787CC(Entity*); -extern void sub_080526F8(s32); extern u32 sub_080044EC(Entity*, u32); extern u32 sub_080002B8(Entity*); extern u32 sub_08049F84(Entity*, u32); @@ -215,7 +168,6 @@ extern void sub_08080CB4(Entity*); extern u32 sub_0800442E(Entity*); extern void sub_08081404(Entity*, u32); extern void sub_0807B7D8(u32, u32, u32); -extern void RegisterTransitionManager(void*, void (*)(), void (*)()); extern void sub_0800451C(Entity*); extern u32 sub_080002F0(u32, u32, u32); extern u32 sub_080040D8(Entity*, u8*, s32, s32); @@ -227,7 +179,6 @@ extern void sub_080026C4(u8*, u8*, u8*, u32); extern void sub_080026F2(u8*, void*, u8*, u32); extern u32 sub_0805F7A0(u32); extern u32* sub_0805F25C(u32); -extern u32 sub_080045DA(s32, s32); u32 sub_0806FCB8(Entity*, u32, u32, u32); extern void sub_080A1D70(Entity*, u32); extern void sub_0806F62C(Entity*, u32, u32); @@ -235,13 +186,6 @@ extern void sub_080A1ED0(u32, u32, u32); extern u32 sub_0806F5B0(u32); extern void sub_0801DFB4(Entity*, u32, u32, u32); extern void sub_0801E00C(); -extern void sub_08050038(u32); -extern void sub_080500F4(u32); -extern void sub_08050110(u32, u32, u32, u32); -extern u32 sub_08052734(); // has Dungeon Map? -extern u32 sub_08052764(); // has Dungeon Compass? -extern u32 sub_0805279C(); // has Dungeon Big Key? -extern u32 sub_080527CC(); // num Dungeon small keys? extern void sub_08078790(Entity*, u32); extern void sub_080788E0(Entity*); extern void sub_08078AA8(u32, u32); @@ -259,17 +203,7 @@ extern u32 sub_08079FC4(u32); extern void sub_0800455E(Entity*); extern u32* sub_08008790(Entity*, u32); extern void sub_0804ACF8(); -extern void sub_08073904(Entity*); -extern u32 CheckHeaderValid(void); -extern void sub_08004484(Entity*, Entity*); extern void sub_0805F8E4(u32 r0, WStruct* r1); -extern u32 sub_08002632(Entity*); -extern void sub_0807879C(Entity*); -extern void sub_080787C0(Entity*); -extern void sub_080787B4(Entity*); -extern void sub_0808C650(Entity*, u32); -extern u32 sub_0808C67C(void); -extern void sub_0808C688(void); extern Entity* sub_08077C94(ItemBehavior*, u32); extern Entity* sub_08077C0C(ItemBehavior*, u32); @@ -287,12 +221,6 @@ extern void sub_080042D0(Entity*, u32, u16); extern u32 sub_080002A8(u32, u32, u32); extern void sub_080806BC(u32, u32, u32, u32); -extern void sub_080186C0(u32); -extern void sub_0801855C(void); - -extern u32 sub_0807CAEC(u32); -extern void sub_0807CAC8(u32); extern void LoadObjPalette(Entity*, u32); -void sub_0804B3C4(void*); #endif diff --git a/include/game.h b/include/game.h deleted file mode 100644 index fb9d486b..00000000 --- a/include/game.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef GAME_H -#define GAME_H - -#include "gba/types.h" - -u32 CheckIsDungeon(void); - -#endif // GAME_H diff --git a/include/greatFairy.h b/include/greatFairy.h deleted file mode 100644 index 461b83f9..00000000 --- a/include/greatFairy.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef GREATFAIRY_H -#define GREATFAIRY_H - -#include "entity.h" -#include "screen.h" - -void GreatFairy_InitializeAnimation(Entity*); -Entity* GreatFairy_CreateForm(Entity*, u32, u32); -void sub_080873D0(); -extern void (*const GreatFairy_Main[])(Entity*); -extern void (*const GreatFairy_Behaviors[])(Entity*); -extern void (*const GreatFairy_WingsBehaviors[])(Entity*); -extern void (*const GreatFairy_WakeBehaviors[])(Entity*); -extern void (*const GreatFairy_MiniBehaviors[])(Entity*); -extern void (*const GreatFairy_MiniAffineBehaviors[])(Entity*); -extern void (*const GreatFairy_DropletBehaviors[])(Entity*); -extern void (*const GreatFairy_RippleBehaviors[])(Entity*); -extern void (*const GreatFairy_BigRippleBehaviors[])(Entity*); -extern void (*const GreatFairy_EnergyBehaviors[])(Entity*); -extern void (*const GreatFairy_Form1Behaviors[])(Entity*); -extern void (*const GreatFairy_Form2Behaviors[])(Entity*); -extern void (*const gUnk_081207A4[])(Entity*); - -extern u32 gUnk_0810C2E4; -extern const s16 GreatFairy_RippleOffsets[10]; -extern u8 gUnk_0812079C[8]; -extern s8 gUnk_081207AC[]; - -#endif diff --git a/include/interrupts.h b/include/interrupts.h new file mode 100644 index 00000000..b1952acd --- /dev/null +++ b/include/interrupts.h @@ -0,0 +1,6 @@ +#ifndef INTERRUPTS_H +#define INTERRUPTS_H + +extern void WaitForNextFrame(void); + +#endif // INTERRUPTS_H diff --git a/include/main.h b/include/main.h index c9675bfe..d5ffda2e 100644 --- a/include/main.h +++ b/include/main.h @@ -92,7 +92,6 @@ void InitScreen(u32 screen); void InitDMA(void); extern void sub_08056208(void); -extern void InitFade(void); extern void ResetPalettes(void); extern void DoSoftReset(void); diff --git a/include/manager.h b/include/manager.h index 013678b2..e18c51e8 100644 --- a/include/manager.h +++ b/include/manager.h @@ -230,4 +230,15 @@ extern void Manager39_Main(); extern void (*const gManagerFunctions[58])(); +Manager* GetEmptyManager(void); + +/** + * @brief Set manager responsible for handling room changes + */ +extern void RegisterTransitionManager(void* mgr, void (*onEnter)(), void (*onExit)()); + +extern u32 sub_0805ACC0(Entity*); +extern void sub_0801855C(void); +extern void sub_080186C0(u32); + #endif diff --git a/include/npc.h b/include/npc.h index bf49ef0a..d67652de 100644 --- a/include/npc.h +++ b/include/npc.h @@ -1,9 +1,50 @@ +#ifndef NPC_H +#define NPC_H + #include "global.h" +#include "asm.h" +#include "utils.h" + +#include "audio.h" +#include "effects.h" +#include "room.h" +#include "flags.h" +#include "coord.h" +#include "textbox.h" +#include "script.h" +#include "save.h" + #include "entity.h" #include "player.h" -#ifndef NPC_H -#define NPC_H +#include "structures.h" + +void sub_0806EC20(Entity* ent); +void sub_0806EC38(void); +u32 sub_0806ED78(Entity* ent); +s32 sub_0806ED9C(Entity*, u32, u32); +u32 GetAnimationState(Entity* ent); +s32 sub_0806EDD8(Entity* ent, u32 x, u32 y); +void sub_0806EE04(Entity* ent, void* a2, u32 a3); +u32 sub_0806EE20(Entity* ent); +s32 sub_0806F078(Entity* ent, s32 a2); +void sub_0806F118(Entity* ent); +void sub_0806F188(Entity* ent); +void ShowNPCDialogue(Entity* ent, Dialog* dia); + +Entity* CreateNPC(u32 subtype, u32 form, u32 parameter); +u32 UpdateFuseInteraction(Entity*); + +void NPCInit(Entity* ent); +void sub_0806F0A4(void); + +// TODO move? +void sub_08078784(Entity* ent, u32 arg1); +u32 sub_0806F5A4(u32); +u32 sub_0801E99C(Entity*); +void sub_08078778(Entity*); +void sub_0807000C(Entity*); +void sub_080787A8(Entity*, u32); enum NPC { /*0x00*/ NPC_NONE_0, @@ -297,8 +338,6 @@ extern void Phonograph(Entity*); extern void NPC58(Entity*); extern void NPC58_Head(Entity*); -extern u32 UpdateFuseInteraction(Entity*); - extern void (*const gNPCFunctions[128][3])(Entity*); #endif diff --git a/include/object.h b/include/object.h index 1a219e09..20515a6e 100644 --- a/include/object.h +++ b/include/object.h @@ -2,7 +2,24 @@ #define OBJECT_H #include "global.h" +#include "asm.h" +#include "utils.h" + +#include "audio.h" +#include "flags.h" +#include "effects.h" +#include "room.h" +#include "coord.h" + #include "entity.h" +#include "player.h" + +extern void sub_0807879C(Entity*); +extern void sub_080787C0(Entity*); +extern void sub_080787B4(Entity*); +extern void sub_0808C650(Entity*, u32); +extern u32 sub_0808C67C(void); +extern void sub_0808C688(void); typedef enum { GROUND_ITEM, diff --git a/include/overworld.h b/include/overworld.h new file mode 100644 index 00000000..2ffa87d9 --- /dev/null +++ b/include/overworld.h @@ -0,0 +1,63 @@ +#ifndef OVERWORLD_H +#define OVERWORLD_H + +#include "global.h" +#include "area.h" + +void ChangeLightLevel(s32); +void SetPopupState(u32 type, u32 choice_idx); + +bool32 CheckIsOverworld(void); +bool32 sub_08052638(u32 r0); +#ifndef EU +u32 sub_08052654(void); +#endif +u32 CheckIsDungeon(void); +u32 CheckIsInteriorWithEnemies(void); +u32 CheckIsInteriorNoEnemies(void); +u32 CheckHasMap(void); + +s32 ModHealth(s32 deltaHealth); +void ModRupees(s32 rupeeDelta); + +void sub_080526F8(s32 a1); +u32 sub_08052724(void); +u32 HasDungeonMap(void); +u32 HasDungeonCompass(void); +u32 HasDungeonBigKey(void); +u32 HasDungeonSmallKey(void); + +void sub_080527FC(u32 a1, u32 a2); +#ifndef EU +void sub_08052878(void); +#endif + +void RoomExitCallback(void); +void InitParachuteRoom(void); +u32 sub_08052B24(void); +void DisplayEzloMessage(void); + +void sub_08052CA4(u32 area, u32 room, u32 x, u32 y); +void sub_08052CD0(u32 area, u32 room, u32 x, u32 y); + +void sub_08052CFC(void); + +/** + * @brief Get bank offset for area + */ +u32 GetFlagBankOffset(u32 idx); + +RoomResInfo* GetCurrentRoomInfo(void); +void sub_08052EA0(void); +void sub_08052FD8(u32 room, u32 area); +void UpdateGlobalProgress(void); +void sub_08053250(void); +void sub_08053320(void); +void sub_080533CC(void); +void sub_08053494(void); +void sub_080534AC(void); +void sub_08053500(void); + +u32 GetBottleContaining(u32); + +#endif // OVERWORLD_H diff --git a/include/random.h b/include/random.h deleted file mode 100644 index d2c7f3d7..00000000 --- a/include/random.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef RANDOM_H -#define RANDOM_H - -#include "gba/types.h" - -extern u32 Random(void); - -extern u32 gRand; - -#endif diff --git a/include/room.h b/include/room.h index fb706547..efaed68b 100644 --- a/include/room.h +++ b/include/room.h @@ -175,5 +175,8 @@ extern void SetTileType(u32, u32, u32); extern void sub_08080964(u32 time, u32 magnitude); // shake screen extern void* GetCurrentRoomProperty(u32); +extern void LoadRoomTileEntities(); + +void sub_0804B3C4(void*); #endif diff --git a/include/screen.h b/include/screen.h index aaca4ef6..18962f80 100644 --- a/include/screen.h +++ b/include/screen.h @@ -2,6 +2,7 @@ #define BG_H #include "global.h" +#include "fade.h" typedef struct { u16 displayControl; diff --git a/include/utils.h b/include/utils.h index 19c57f14..8cb3e8d1 100644 --- a/include/utils.h +++ b/include/utils.h @@ -38,7 +38,7 @@ void MemCopy(const void* src, void* dest, u32 size); */ void ReadKeyInput(void); -void LoadPalettes(const u8*, int, int); +void LoadPalettes(const u8*, s32, s32); void LoadPaletteGroup(u32 group); void SetColor(u32 colorIndex, u32 color); void SetFillColor(u32 color, u32 arg1); @@ -70,4 +70,6 @@ void zFree(void* ptr); */ void DispReset(bool32 updateHUD); -#endif
\ No newline at end of file +u32 CheckPlayerProximity(u32, u32, u32, u32); + +#endif |
