summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authortheo3 <arisstephenson2@gmail.com>2022-03-30 00:52:53 -0700
committertheo3 <arisstephenson2@gmail.com>2022-03-30 00:52:53 -0700
commita633efd88ca533b8d601eb9a673c5eb7e68dd19d (patch)
tree9bc7eb383d88bb2023a6fd69c982915931a33d30 /include
parent65b80571b230d08426e6329dc7eb4348ca5012d1 (diff)
sort out most of functions.h
Diffstat (limited to 'include')
-rw-r--r--include/asm.h12
-rw-r--r--include/collision.h2
-rw-r--r--include/enemy.h37
-rw-r--r--include/entity.h1
-rw-r--r--include/functions.h138
-rw-r--r--include/map.h2
-rw-r--r--include/message.h2
-rw-r--r--include/object.h16
-rw-r--r--include/physics.h23
-rw-r--r--include/player.h62
-rw-r--r--include/projectile.h3
-rw-r--r--include/room.h2
12 files changed, 144 insertions, 156 deletions
diff --git a/include/asm.h b/include/asm.h
index d501bbd7..34d77cc6 100644
--- a/include/asm.h
+++ b/include/asm.h
@@ -4,6 +4,7 @@
#include "global.h"
extern u32 Random(void);
+extern u32 GetRandomByWeight(const u8*);
extern void CloneTile(u32, u32, u32);
extern u32 GetTileTypeByEntity(struct Entity_*);
extern u32 GetTileTypeByPos(s32 x, s32 y, u32 layer);
@@ -34,5 +35,16 @@ extern u32 ResolveCollisionLayer(struct Entity_*);
extern void sub_0800417E(struct Entity_*, u32);
extern u32 sub_0800442E(struct Entity_*);
extern u32 sub_08007DD6(u32, const u16*);
+extern void SoundReqClipped(struct Entity_*, u32);
+extern u32 sub_0800132C(struct Entity_*, struct Entity_*);
+extern u32 sub_080B1B44(u32, u32);
+extern u32 sub_080B1A48(u32, u32, u32);
+extern u32 sub_080B1B18(s32, s32, u32);
+extern u32 sub_080B1AE0(u16, u8);
+extern u32 GetTileUnderEntity(struct Entity_*);
+extern u32 sub_0800445C(struct Entity_*);
+extern u32 sub_080B1AF0(struct Entity_*, s32, s32);
+extern u32 GetRelativeCollisionTile(struct Entity_*, u32, u32);
+extern bool32 sub_080B1B54(u32);
#endif // ASM_H
diff --git a/include/collision.h b/include/collision.h
index d57258a6..4a591e6a 100644
--- a/include/collision.h
+++ b/include/collision.h
@@ -27,6 +27,8 @@ typedef enum {
} Collisions;
bool32 IsTileCollision(const u8*, s32, s32, u32);
+bool32 IsColliding(Entity*, Entity*);
+bool32 IsCollidingPlayer(Entity*);
void CalculateEntityTileCollisions(Entity*, u32, u32);
bool32 ProcessMovementInternal(Entity*, s32, s32, u32);
diff --git a/include/enemy.h b/include/enemy.h
index f2ffb760..1ff32c7b 100644
--- a/include/enemy.h
+++ b/include/enemy.h
@@ -13,19 +13,34 @@
#include "projectile.h"
bool32 EnemyInit(Entity* this);
-extern u32 GetNextFunction(Entity*);
-extern void EnemyFunctionHandler(Entity*, EntityActionArray);
-extern void GenericKnockback(Entity*);
-extern Entity* CreateDeathFx(Entity*, u32, u32);
+u32 GetNextFunction(Entity*);
+void EnemyFunctionHandler(Entity*, EntityActionArray);
+void EnemyFunctionHandlerAfterCollision(Entity*, void (*const[])());
+void GenericKnockback(Entity*);
+Entity* CreateDeathFx(Entity*, u32, u32);
+void sub_0804A720(Entity*);
+bool32 sub_08049FDC(Entity*, u32);
-extern Entity* Create0x68FX(Entity*, u32);
-extern void SetChildOffset(Entity*, s32, s32, s32);
-extern Entity* CreateProjectileWithParent(Entity*, u8, u8);
+Entity* Create0x68FX(Entity*, u32);
+void SetChildOffset(Entity*, s32, s32, s32);
+Entity* CreateProjectileWithParent(Entity*, u8, u8);
-extern void GenericDeath(Entity*);
-extern void sub_08002724(void*, u8*);
-extern void sub_080026C4(u8*, u8*, u8*, u32);
-extern void sub_080026F2(u8*, void*, u8*, u32);
+void GenericDeath(Entity*);
+void sub_08002724(void*, u8*);
+void sub_080026C4(u8*, u8*, u8*, u32);
+void sub_080026F2(u8*, void*, u8*, u32);
+bool32 sub_08049FA0(Entity*);
+u32 sub_08049EE4(Entity*);
+bool32 sub_08049F84(Entity*, s32);
+Entity* sub_08049DF4(u32);
+u32 sub_0804A044(Entity*, Entity*, u32);
+s32 sub_080012DC(Entity*);
+u32 sub_080044EC(Entity*, u32);
+void sub_0804AA1C(Entity*);
+bool32 sub_08049F1C(Entity*, Entity*, s32);
+bool32 PlayerInRange(Entity*, u32, s32);
+void sub_0804A4E4(Entity*, Entity*);
+void GenericKnockback2(Entity*);
typedef enum {
/*0x00*/ OCTOROK,
diff --git a/include/entity.h b/include/entity.h
index a75ff456..618bb701 100644
--- a/include/entity.h
+++ b/include/entity.h
@@ -265,6 +265,7 @@ void SetExtraSpriteFrame(Entity*, u32, u32);
void SetSpriteSubEntryOffsetData1(Entity*, u32, u32);
void SetSpriteSubEntryOffsetData2(Entity*, u32, u32);
u8* GetSpriteSubEntryOffsetDataPointer(u32, u32);
+bool32 SetAffineInfo(Entity*, u32, u32, u32);
/**
* Return the direction pointing from one Entity to another.
diff --git a/include/functions.h b/include/functions.h
index db1b8baf..53f1821a 100644
--- a/include/functions.h
+++ b/include/functions.h
@@ -13,57 +13,28 @@
#include "map.h"
// Identified - to be sorted into header files
-extern void CalculateEntityTileCollisions(Entity*, u32, u32);
-extern u32 CheckOnScreen(Entity*);
extern u32 CheckRegionOnScreen(u32, u32, u32, u32);
extern void CopyOAM(void);
extern void CreateChestSpawner(Entity*);
extern Entity* CreateGroundItem(Entity*, u32, u32);
extern Entity* CreateGroundItemWithFlags(Entity*, u32, u32, u32);
extern void CreateItemOnGround(Entity*);
-extern Entity* CreateLargeWaterTrace(Entity*);
extern void CreateMagicSparkles(u32, u32, u32);
extern void CreateMinishEntrance(u32 tile);
-extern Entity* CreatePlayerItemWithParent(ItemBehavior*, u32);
extern u32 CreateRandomItemDrop(Entity*, u32);
-extern void CreateSparkle(Entity*);
-extern void DoPlayerAction(Entity*);
extern void DrawDirect(u32, u32);
extern void DrawEntities(void);
extern void DrawUIElements(void);
-extern void EnemyFunctionHandlerAfterCollision(Entity*, void (*const[])());
extern bool32 EntityWithinDistance(Entity*, s32, s32, s32);
extern void FlushSprites(void);
-extern void GenericKnockback2(Entity*);
extern LayerStruct* GetLayerByIndex(u32);
-extern u32 GetRandomByWeight(const u8*);
extern u32 GetTileIndex(u32, u32);
extern u32 GiveItem(u32, u32);
-extern void HandlePlayerLife(Entity*);
-extern bool32 HasSwordEquipped();
-extern bool32 IsColliding(Entity*, Entity*);
-extern bool32 IsCollidingPlayer(Entity*);
-extern bool32 IsProjectileOffScreen(Entity*);
-extern bool32 IsTileCollision(const u8*, s32, s32, u32);
-extern void LinearMoveAngle(Entity*, u32, u32);
-extern void LinearMoveDirection(Entity*, u32, u32);
extern bool32 LoadFixedGFX(Entity*, u32);
extern void LoadResources(void);
extern bool32 LoadSwapGFX(Entity*, u16, u32);
extern void MenuFadeIn(u32, u32);
-extern void ModBombs(s32);
-extern bool32 PlayerInRange(Entity*, u32, s32);
-extern bool32 ProcessMovement1(Entity*);
-extern bool32 ProcessMovement12(Entity*);
-extern bool32 ProcessMovement2(Entity*);
-extern bool32 ProcessMovement3(Entity*);
-extern bool32 ProcessMovement4(Entity*);
-extern bool32 ProcessMovement5(Entity*);
-extern bool32 ProcessMovement6(Entity*);
-extern bool32 ProcessMovementInternal(Entity*, s32, s32, u32);
extern void SetDirtTile(u32);
-/** @see Item */
-extern void SetInventoryValue(u32, u32);
/**
* @brief Sets multiple tiles at once
*
@@ -72,26 +43,21 @@ extern void SetInventoryValue(u32, u32);
* @param layer the tile layer
*/
extern void SetMultipleTiles(u16* tileData, u32 basePosition, u32 layer);
-extern void SoundReqClipped(Entity*, u32);
extern void TryLoadPrologueHyruleTown(void);
extern void UnloadGFXSlots(Entity*);
extern void UnloadOBJPalette(Entity*);
extern void UpdateDisplayControls(void);
-extern void UpdateItemAnim(ItemBehavior*);
// Unidentified
extern void sub_08000148(u32, u32, u32);
extern u32 sub_080B1A0C(Entity*, s32, s32);
extern u32 sub_080B1A48(u32, u32, u32);
-extern u32 GetRelativeCollisionTile(Entity*, u32, u32);
-extern u32 GetTileUnderEntity(Entity*);
extern u32 sub_080B1AE0(u16, u8);
extern u32 sub_080B1AF0(Entity*, s32, s32);
extern u32 sub_080B1B18(s32, s32, u32);
extern u32 sub_080B1B44(u32, u32);
extern s32 sub_080012DC(Entity*);
extern void sub_08001318(Entity*);
-extern u32 sub_0800132C(Entity*, Entity*);
extern void sub_080027EA(Entity*, u32, u32);
extern void sub_080028E0(Entity*);
extern u32 sub_080040A2(Entity*);
@@ -110,40 +76,20 @@ extern void sub_08004542(Entity*);
extern void sub_080085B0(Entity*);
extern void sub_08008796(Entity*, u32, u32, u32);
extern void sub_08016AD2(Entity*);
-extern void sub_080171F0(void);
extern u32 sub_0801766C(Entity*);
-extern void sub_0801AF18(const u8*, u32, u32);
extern void sub_0801AFE4(void);
extern void UpdateUIElements(void);
extern void sub_0801C25C(void);
extern void sub_0801E104(void);
extern void sub_08027870(Entity*);
extern void sub_08030118(u32);
-extern u32 sub_08031E04(Entity*);
-extern void sub_08031E48(Entity*, Entity*);
-extern void sub_08032290(Entity*);
-extern u32 sub_080322A4(Entity*);
-extern void sub_080322E8(Entity*);
-extern void sub_08032338(Entity*);
extern void sub_0803C0AC(Entity*);
extern void sub_08049CF4(Entity*);
-extern Entity* sub_08049DF4(u32);
-extern u32 sub_08049EE4(Entity*);
-extern bool32 sub_08049F1C(Entity*, Entity*, s32);
-extern bool32 sub_08049F84(Entity*, s32);
-extern bool32 sub_08049FA0(Entity*);
-extern bool32 sub_08049FDC(Entity*, u32);
extern u32 sub_0804A024(Entity*, u32, u32);
-extern u32 sub_0804A044(Entity*, Entity*, u32);
-extern void sub_0804A4E4(Entity*, Entity*);
-extern void sub_0804A720(Entity*);
-extern void sub_0804AA1C(Entity*);
-extern void sub_0804C128(void);
extern u32 sub_080542AC(u32);
extern void sub_08054564();
extern void sub_08054570(void);
extern s32 sub_08056338(void);
-extern void sub_08057044(u32, struct_020227E8*, u32);
extern void sub_080575C8(u32);
extern void sub_08057688(void);
extern void sub_080580B0(u32);
@@ -152,80 +98,11 @@ extern void sub_08059278(void);
extern void sub_0805B4D0(u32);
extern void sub_0805BC4C(void);
extern void sub_0805EC60(Entity*);
-extern void SetAffineInfo(Entity*, u32, u32, u32);
extern void InitPlayerMacro(u32*);
extern u32* sub_0805F25C(u32);
-extern u32 sub_0805F7A0(u32);
extern void sub_0805F8E4(u32 r0, WStruct* r1);
-extern u32 sub_0805F8F8(u32);
-extern void sub_080600F0(Entity*);
extern void sub_08060158(Entity*);
-extern void sub_0806D02C(Entity*);
extern void sub_0806D0B0(Entity*);
-extern void sub_0806F4E8(Entity*);
-extern bool32 sub_0806F520(Entity*);
-extern u32 sub_0806F5B0(u32);
-extern u32 sub_0806F824(Entity*, Entity*, s32, s32);
-extern u32 sub_0806F948(Entity*);
-extern void sub_0806FBB4(Entity*);
-extern bool32 sub_0806FC80(Entity*, Entity*, s32);
-extern void sub_0806FCF4(Entity*, s32, s32, s32);
-extern void sub_0806FD3C(Entity*);
-extern bool32 sub_0806FDA0(Entity*);
-extern void sub_0806FEBC(Entity*, u32, Entity*);
-extern void sub_080751E8(u32, u32, void*);
-extern void sub_08077B98(ItemBehavior*);
-extern void sub_08077BB8(ItemBehavior*);
-extern Entity* sub_08077C0C(ItemBehavior*, u32);
-extern Entity* sub_08077C94(ItemBehavior*, u32);
-extern void sub_08077D38(ItemBehavior*, u32);
-extern void sub_08077DF4(ItemBehavior*, u32);
-extern void sub_08077E3C(ItemBehavior*, u32);
-extern void sub_08077E54(ItemBehavior*);
-extern void DeletePlayerItem(ItemBehavior*, u32);
-extern bool32 sub_08077EC8(ItemBehavior*);
-extern bool32 sub_08077EFC(ItemBehavior*);
-extern bool32 sub_08077F10(ItemBehavior*);
-extern bool32 sub_08077F24(ItemBehavior*, u32);
-extern void PlayerCancelHoldItem(ItemBehavior*, u32);
-extern bool32 sub_08077FEC(u32);
-extern void sub_08078180(void);
-extern void sub_080784C8();
-extern void sub_08078790(Entity*, u32);
-extern void sub_080787CC(Entity*);
-extern s32 sub_08078800(Entity*);
-extern void sub_08078850(Entity*, u32, u32, void*);
-extern s32 sub_0807887C(Entity*, u32, u32);
-extern void sub_080788E0(Entity*);
-extern s32 sub_08078904();
-extern void RegisterCarryEntity(Entity*);
-extern void FreeCarryEntity(Entity*);
-extern void sub_08078AC0(u32, u32, u32);
-extern void sub_08078B48(void);
-extern void sub_08078E84(Entity*, Entity*);
-extern void sub_08078FB0(Entity*);
-extern void PlayerDropHeldObject();
-extern void PlayerResetStateFromFusion();
-extern void sub_080792BC(s32, u32, u32);
-extern u32 sub_0807953C(void);
-extern void sub_08079BD8(Entity*);
-extern u32 sub_08079D48();
-extern void sub_08079D84(void);
-extern bool32 PlayerCanBeMoved(void);
-extern u32 sub_08079FC4(u32);
-extern void sub_0807A050(void);
-extern void sub_0807A5B8(u32);
-extern void sub_0807A8D8(Entity*);
-extern void sub_0807AA80(Entity*);
-extern void sub_0807AABC(Entity*);
-extern void sub_0807ACCC(Entity*);
-extern u32 sub_0807B014();
-extern void sub_0807B0C8(void);
-extern void sub_0807B7D8(u32, u32, u32);
-extern void sub_0807B9B8(u32, u32, u32);
-extern void RestorePrevTileEntity(u32, u32);
-extern void sub_0807BB68(s16*, u32, u32);
-extern bool32 sub_0807BD14(Entity*, u32);
extern bool32 sub_080806BC(u32, u32, u32, u32);
extern void sub_0808091C(const ScreenTransitionData*, u32);
extern void sub_080809D4(void);
@@ -233,23 +110,8 @@ extern void sub_08080CB4(Entity*);
extern u32 sub_0808288C(Entity*, u32, u32, u32);
extern bool32 sub_08083734(Entity*, u32);
extern void sub_08095C48(Entity*);
-extern void sub_0809E918(Entity*);
-extern void sub_0809E96C(Entity*);
-extern u32 sub_0809E9A0(void);
-extern void sub_0809EABC(Entity*);
-extern void sub_0809EAD8(Entity*);
-extern void sub_0809EB30(Entity*);
-extern void sub_080A1ED0(u32, u32, u32);
-extern Entity* sub_080A2A3C(Entity*, u32, u32, u32);
-extern Entity* sub_080A2AD4(Entity*);
-extern void sub_080A2AF4(Entity*, s32, s32);
-extern void UpdateRailMovement(Entity*, u16**, u16*);
extern void sub_080A57F4(void);
extern void sub_080A71C4(u32, u32, u32, u32);
-extern void InitItemGetSequence(u32, u32, u32);
extern void sub_080ADD70(void);
-extern bool32 sub_080AE4CC(Entity*, u32, u32, u32);
-extern void sub_080AE58C(Entity*, u32, u32);
extern void sub_080AF284(void);
-extern bool32 sub_080B1B54(u32);
#endif
diff --git a/include/map.h b/include/map.h
index 52263a5b..8c8adb46 100644
--- a/include/map.h
+++ b/include/map.h
@@ -17,4 +17,6 @@ typedef struct {
extern LayerStruct gMapTop;
extern LayerStruct gMapBottom;
+LayerStruct* GetLayerByIndex(u32);
+
#endif // MAP_H \ No newline at end of file
diff --git a/include/message.h b/include/message.h
index 4a450767..7f02d61c 100644
--- a/include/message.h
+++ b/include/message.h
@@ -136,4 +136,6 @@ void MessageClose(void);
void DispMessageFrame(u16*, s32, s32, u32);
+void sub_08057044(u32, struct_020227E8*, u32);
+
#endif // MESSAGE_H
diff --git a/include/object.h b/include/object.h
index d2c17e5a..a4aa6e44 100644
--- a/include/object.h
+++ b/include/object.h
@@ -14,12 +14,16 @@
#include "entity.h"
#include "player.h"
-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 void SyncPlayerToPlatform(Entity*, bool32);
+void sub_080787C0(Entity*);
+void sub_080787B4(Entity*);
+void sub_0808C650(Entity*, u32);
+u32 sub_0808C67C(void);
+void sub_0808C688(void);
+void SyncPlayerToPlatform(Entity*, bool32);
+void UpdateRailMovement(Entity*, u16**, u16*);
+void sub_080A2AF4(Entity*, s32, s32);
+Entity* CreateLargeWaterTrace(Entity*);
+void CreateSparkle(Entity*);
void CreateDust(Entity* parent);
void CreateDustAt(s32, s32, u32);
diff --git a/include/physics.h b/include/physics.h
index 2c243c35..0046fbd5 100644
--- a/include/physics.h
+++ b/include/physics.h
@@ -18,6 +18,10 @@ void sub_0806FA90(Entity*, Entity*, s32, s32);
void SortEntityAbove(Entity* below_ent, Entity* above_ent);
void SortEntityBelow(Entity* above_ent, Entity* below_ent);
+void LinearMoveDirection(Entity* ent, u32 a, u32 b);
+void LinearMoveAngle(Entity* ent, u32 a, u32 b);
+
+bool32 EntityWithinDistance(Entity*, s32, s32, s32);
u32 sub_0806FCA0(Entity*, Entity*);
u32 sub_0806F58C(Entity*, Entity*);
u32 PointInsideRadius(s32 x, s32 y, s32 radius);
@@ -28,6 +32,25 @@ bool32 sub_0806FD54(Entity*);
u32 sub_0806FCAC(Entity*, Entity*);
u32 sub_0806F854(Entity*, s32, s32);
u32 sub_0806F730(Entity*);
+bool32 sub_0806F520(Entity*);
+void sub_0806F4E8(Entity*);
+bool32 sub_0806FC80(Entity*, Entity*, s32);
+u32 sub_0806F5B0(u32);
+u32 sub_0806F824(Entity*, Entity*, s32, s32);
+u32 sub_0806F948(Entity*);
+void sub_0806FBB4(Entity*);
+void sub_0806FCF4(Entity*, s32, s32, s32);
+void sub_0806FD3C(Entity*);
+bool32 sub_0806FDA0(Entity*);
+void sub_0806FEBC(Entity*, u32, Entity*);
+extern bool32 ProcessMovement1(Entity*);
+extern bool32 ProcessMovement12(Entity*);
+extern bool32 ProcessMovement2(Entity*);
+extern bool32 ProcessMovement3(Entity*);
+extern bool32 ProcessMovement4(Entity*);
+extern bool32 ProcessMovement5(Entity*);
+extern bool32 ProcessMovement6(Entity*);
+extern bool32 ProcessMovementInternal(Entity*, s32, s32, u32);
extern const s16 gSineTable[64];
extern const s16 gCosineTable[256];
diff --git a/include/player.h b/include/player.h
index 90d4f9a9..5a914e87 100644
--- a/include/player.h
+++ b/include/player.h
@@ -337,8 +337,11 @@ void CreateEzloHint(u32, u32);
u32 IsItemEquipped(u32);
/** @see Item */
u32 GetInventoryValue(u32);
+/** @see Item */
+void SetInventoryValue(u32, u32);
s32 ModHealth(s32 delta);
void ModRupees(s32 delta);
+void ModBombs(s32 delta);
// playerUtils.c
void DeleteClones(void);
@@ -375,6 +378,65 @@ u32 sub_08078F74(Entity*);
void sub_0807879C(Entity*);
void PlayerSetNormalAndCollide(void);
bool32 PlayerTryDropObject(ItemBehavior* arg0, u32 unk);
+void InitItemGetSequence(u32, u32, u32);
+void sub_0807B7D8(u32, u32, u32);
+void sub_08078850(Entity*, u32, u32, void*);
+void sub_08079D84(void);
+u32 sub_0807953C(void);
+void sub_0807BB68(s16*, u32, u32);
+void sub_0807B9B8(u32, u32, u32);
+void sub_0807B7D8(u32, u32, u32);
+void RestorePrevTileEntity(u32, u32);
+void UpdateItemAnim(ItemBehavior*);
+void PlayerCancelHoldItem(ItemBehavior*, u32);
+void RegisterCarryEntity(Entity*);
+void FreeCarryEntity(Entity*);
+void PlayerDropHeldObject();
+void PlayerResetStateFromFusion();
+void DeletePlayerItem(ItemBehavior*, u32);
+void sub_08077D38(ItemBehavior*, u32);
+void sub_08077DF4(ItemBehavior*, u32);
+void sub_08077E3C(ItemBehavior*, u32);
+void sub_080751E8(u32, u32, void*);
+void sub_08077B98(ItemBehavior*);
+void sub_08077BB8(ItemBehavior*);
+Entity* sub_08077C0C(ItemBehavior*, u32);
+Entity* sub_08077C94(ItemBehavior*, u32);
+bool32 PlayerCanBeMoved(void);
+bool32 sub_08077EC8(ItemBehavior*);
+bool32 sub_08077EFC(ItemBehavior*);
+bool32 sub_08077F10(ItemBehavior*);
+bool32 sub_08077F24(ItemBehavior*, u32);
+bool32 sub_08077FEC(u32);
+void sub_08078180(void);
+void sub_080784C8();
+void sub_08078790(Entity*, u32);
+void sub_080787CC(Entity*);
+s32 sub_08078800(Entity*);
+s32 sub_0807887C(Entity*, u32, u32);
+void sub_080788E0(Entity*);
+s32 sub_08078904();
+void sub_08078AC0(u32, u32, u32);
+void sub_08078B48(void);
+void sub_08078E84(Entity*, Entity*);
+void sub_08078FB0(Entity*);
+void sub_080792BC(s32, u32, u32);
+u32 sub_0807953C(void);
+void sub_08079BD8(Entity*);
+u32 sub_08079D48();
+void sub_08079D84(void);
+u32 sub_08079FC4(u32);
+void sub_0807A050(void);
+void sub_0807A5B8(u32);
+void sub_0807A8D8(Entity*);
+void sub_0807AA80(Entity*);
+void sub_0807AABC(Entity*);
+void sub_0807ACCC(Entity*);
+u32 sub_0807B014();
+void sub_0807B0C8(void);
+bool32 sub_0807BD14(Entity*, u32);
+Entity* CreatePlayerItemWithParent(ItemBehavior*, u32);
+bool32 HasSwordEquipped();
// player.s
extern u32 PlayerCheckNEastTile();
diff --git a/include/projectile.h b/include/projectile.h
index 74b3580a..dd73d433 100644
--- a/include/projectile.h
+++ b/include/projectile.h
@@ -1,7 +1,8 @@
#ifndef PROJECTILE_H
#define PROJECTILE_H
-extern Entity* CreateProjectile(u32);
+Entity* CreateProjectile(u32);
+bool32 IsProjectileOffScreen(Entity*);
void DarkNutSwordSlash(Entity*);
void RockProjectile(Entity*);
diff --git a/include/room.h b/include/room.h
index 33f95d68..5cd1c1d6 100644
--- a/include/room.h
+++ b/include/room.h
@@ -225,6 +225,8 @@ void* GetCurrentRoomProperty(u32);
void LoadRoomTileEntities();
void LoadRoomEntityList(EntityData* listPtr);
+bool32 LoadFixedGFX(Entity*, u32);
+void UnloadGFXSlots(Entity*);
void sub_0804B3C4(void*);
void sub_0804B0B0(u32 arg0, u32 arg1);