diff options
| author | theo3 <arisstephenson2@gmail.com> | 2022-03-27 23:20:26 -0700 |
|---|---|---|
| committer | theo3 <arisstephenson2@gmail.com> | 2022-03-27 23:20:26 -0700 |
| commit | ffb4653b0d4fa45823262d58218e2dd7b0659557 (patch) | |
| tree | daa5c9ab025473a98803df2ab1ec6887756404ba /src | |
| parent | 190bc2162420c38ba6eda647ff39f029ec2173bb (diff) | |
move function decls from player.c
Diffstat (limited to 'src')
| -rw-r--r-- | src/coord.c | 16 | ||||
| -rw-r--r-- | src/enterPortalSubtask.c | 2 | ||||
| -rw-r--r-- | src/entity.c | 12 | ||||
| -rw-r--r-- | src/game.c | 7 | ||||
| -rw-r--r-- | src/interrupts.c | 4 | ||||
| -rw-r--r-- | src/menu/figurine_menu.c | 2 | ||||
| -rw-r--r-- | src/object/gentariCurtains.c | 5 | ||||
| -rw-r--r-- | src/object/minecart.c | 3 | ||||
| -rw-r--r-- | src/objectUtils.c | 11 | ||||
| -rw-r--r-- | src/player.c | 199 | ||||
| -rw-r--r-- | src/playerItemUtils.c | 3 | ||||
| -rw-r--r-- | src/playerUtils.c | 25 |
12 files changed, 117 insertions, 172 deletions
diff --git a/src/coord.c b/src/coord.c index 98f3f65e..fae242a2 100644 --- a/src/coord.c +++ b/src/coord.c @@ -20,13 +20,9 @@ extern s8 gUnk_08126EE4[]; extern const u16 gUnk_080046A4[]; extern const u16 gUnk_080047F6[]; -u32 sub_0806F58C(Entity*, Entity*); -u32 sub_0806FCA0(Entity*, Entity*); -extern u32 sub_08007DD6(u32, const u16*); -u32 PointInsideRadius(s32 x, s32 y, s32 radius); -extern void sub_0806FEE8(struct_gUnk_020000C0_1*, u32, u32, u32); -void sub_0806FEFC(struct_gUnk_020000C0_1*, Entity*); -bool32 sub_0807007C(struct_gUnk_020000C0*, u32); +static void sub_0806FEE8(struct_gUnk_020000C0_1*, u32, u32, u32); +static void sub_0806FEFC(struct_gUnk_020000C0_1*, Entity*); +static bool32 sub_0807007C(struct_gUnk_020000C0*, u32); void sub_0806F364(void) { gArea.filler[2] ^= 0x80; @@ -566,7 +562,7 @@ void sub_0806FEBC(Entity* ent, u32 param_2, Entity* param_3) { ptr->unk_00.unk1 = 1; } -void sub_0806FEE8(struct_gUnk_020000C0_1* this, u32 param_2, u32 param_3, u32 param_4) { +static void sub_0806FEE8(struct_gUnk_020000C0_1* this, u32 param_2, u32 param_3, u32 param_4) { this->unk_08.BYTES.byte0 = param_4; this->unk_02 = param_2; this->unk_04.BYTES.byte1 = param_3; @@ -574,7 +570,7 @@ void sub_0806FEE8(struct_gUnk_020000C0_1* this, u32 param_2, u32 param_3, u32 pa this->unk_00.unk0 = 1; } -void sub_0806FEFC(struct_gUnk_020000C0_1* this, Entity* ent) { +static void sub_0806FEFC(struct_gUnk_020000C0_1* this, Entity* ent) { this->unk_08.HALF.HI = ent->spriteVramOffset + this->unk_08.BYTES.byte0; this->unk_00.unk2 = 1; } @@ -650,7 +646,7 @@ void sub_0807000C(Entity* this) { } } -bool32 sub_0807007C(struct_gUnk_020000C0* this, u32 param_2) { +static bool32 sub_0807007C(struct_gUnk_020000C0* this, u32 param_2) { u8* ptr2; u8* ptr3; u32* spritePtr; diff --git a/src/enterPortalSubtask.c b/src/enterPortalSubtask.c index ad35d468..5898e758 100644 --- a/src/enterPortalSubtask.c +++ b/src/enterPortalSubtask.c @@ -36,7 +36,7 @@ void sub_0804AD6C(RoomControls*); void sub_080A71F4(ScreenTransitionData*); bool32 sub_0804ACA8(void); -bool32 IsEnterPortal(void) { +bool32 CheckInitPortal(void) { if (gArea.playShrinkSeq) { gMain.substate = GAMEMAIN_MINISHPORTAL; gArea.filler[8] = 0; diff --git a/src/entity.c b/src/entity.c index 7345650f..90d3afc2 100644 --- a/src/entity.c +++ b/src/entity.c @@ -231,7 +231,7 @@ void EraseAllEntities(void) { } extern Entity gUnk_030015A0[0x48]; -extern Entity gCarryEntities; +extern Entity gCarriedEntity; NONMATCH("asm/non_matching/GetEmptyEntity.inc", Entity* GetEmptyEntity()) { u8 flags_ip; @@ -262,7 +262,7 @@ NONMATCH("asm/non_matching/GetEmptyEntity.inc", Entity* GetEmptyEntity()) { ClearDeletedEntity(ptr); return ptr; } - } while (++ptr < &gCarryEntities); + } while (++ptr < &gCarriedEntity); flags_ip = 0; rv = NULL; @@ -293,16 +293,16 @@ NONMATCH("asm/non_matching/GetEmptyEntity.inc", Entity* GetEmptyEntity()) { } END_NONMATCH -extern Entity gUnk_030011E8[7]; +extern Entity gItemGetEntities[7]; -Entity* sub_0805E744(void) { - Entity* ent = gUnk_030011E8; +Entity* CreateItemGetEntity(void) { + Entity* ent = gItemGetEntities; do { if (ent->prev == NULL) { return ent; } - } while (++ent < &gUnk_030011E8[7]); + } while (++ent < &gItemGetEntities[7]); return NULL; } @@ -98,10 +98,9 @@ extern void DeleteSleepingEntities(void); extern u32 UpdateLightLevel(void); extern void sub_080185F8(void); extern void UpdateDoorTransition(void); -extern bool32 IsEnterPortal(void); +extern bool32 CheckInitPortal(void); extern void UpdateCarriedObject(void); extern void DrawUI(void); -extern u32 CheckPlayerInactive(void); extern void CollisionMain(void); extern void sub_0805BB74(u32); extern void CreateZeldaFollower(void); @@ -402,7 +401,7 @@ static void GameMain_ChangeRoom(void) { } static void GameMain_Update(void) { - if (CheckPlayerInactive() || IsEnterPortal()) { + if (CheckInitPauseMenu() || CheckInitPortal()) { return; } sub_0805340C(); @@ -450,7 +449,7 @@ static void GameMain_Update(void) { } static void GameMain_BarrelUpdate(void) { - if (CheckPlayerInactive()) + if (CheckInitPauseMenu()) return; UpdateEntities(); diff --git a/src/interrupts.c b/src/interrupts.c index c52df16b..a21d6c5f 100644 --- a/src/interrupts.c +++ b/src/interrupts.c @@ -14,7 +14,7 @@ extern u8 gUnk_03003DE0; extern u8 gUnk_03000C30; extern u8 gUpdateVisibleTiles; -extern Entity gCarryEntities; +extern Entity gCarriedEntity; extern Entity* gPlayerClones[3]; extern u16 gUnk_080B2CD8[]; @@ -334,7 +334,7 @@ void sub_080171F0(void) { gPlayerState.mobility = 0; gPlayerState.speed_modifier = 0; gPlayerState.field_0xaa = 0; - MemClear(&gCarryEntities, 0x8c); + MemClear(&gCarriedEntity, 0x8c); gPlayerEntity.spriteOffsetY = gPlayerState.field_0x3f; gPlayerState.field_0x3f = 0; sub_0807B0C8(); diff --git a/src/menu/figurine_menu.c b/src/menu/figurine_menu.c index 9ac5b27f..3160d0e1 100644 --- a/src/menu/figurine_menu.c +++ b/src/menu/figurine_menu.c @@ -580,7 +580,7 @@ void sub_080A4D34(void) { gScreen.bg3.updated = 1; } -void sub_080A4D88(void) { +void InitPauseMenu(void) { MemClear(gUnk_020344A0, sizeof(gUnk_020344A0)); MenuFadeIn(1, 0); SetBgmVolume(0x80); diff --git a/src/object/gentariCurtains.c b/src/object/gentariCurtains.c index eed470dc..e5b1d0eb 100644 --- a/src/object/gentariCurtains.c +++ b/src/object/gentariCurtains.c @@ -26,9 +26,6 @@ void sub_080921BC(GentariCurtainEntity* this); void sub_080921F0(GentariCurtainEntity* this); void sub_08092214(GentariCurtainEntity* this); -extern Entity gUnk_030011E8[7]; -extern Entity gCarryEntities; - void GentariCurtain(Entity* this) { static void (*const actionFuncs[])(GentariCurtainEntity*) = { sub_08092050, @@ -93,7 +90,7 @@ void sub_080921BC(GentariCurtainEntity* this) { GenericEntity* pEVar1; GenericEntity* end; - pEVar1 = (GenericEntity*)gUnk_030011E8; + pEVar1 = (GenericEntity*)gItemGetEntities; end = pEVar1 + 0x4f; do { diff --git a/src/object/minecart.c b/src/object/minecart.c index c43d574e..146df90b 100644 --- a/src/object/minecart.c +++ b/src/object/minecart.c @@ -9,7 +9,6 @@ typedef struct { struct_030010EC* minecartData; } MinecartEntity; -extern u32 sub_08007DD6(u32, u32); extern void sub_08017744(Entity*); u32 sub_08091DDC(MinecartEntity*); @@ -22,7 +21,7 @@ void sub_08091C98(MinecartEntity*); void sub_08091CC8(MinecartEntity*); void sub_08091D90(MinecartEntity*); -extern const u32 gUnk_081223D8[]; +extern const u16* const gUnk_081223D8[]; void Minecart(Entity* this) { static void (*const actionFuncs[])(MinecartEntity*) = { diff --git a/src/objectUtils.c b/src/objectUtils.c index c4a93c17..aadc61c4 100644 --- a/src/objectUtils.c +++ b/src/objectUtils.c @@ -10,16 +10,13 @@ extern const Hitbox* const gObjectHitboxes[]; u32 LoadObjectSprite(Entity* this, s32 type, const ObjectDefinition* definition); extern const ObjectDefinition gObjectDefinitions[]; -extern Entity* sub_0805E744(void); -Entity* CreateWaterTrace(Entity*); - -Entity* CreateSpeechBubble(Entity*, u32, s32, s32); +static Entity* CreateSpeechBubble(Entity*, u32, s32, s32); Entity* sub_080A276C(Entity* parent, u32 type, u32 type2) { - Entity* e = sub_0805E744(); + Entity* e = CreateItemGetEntity(); if (e != NULL) { - e->id = 0xC1; + e->id = OBJECT_C1; e->kind = OBJECT; e->type = type; e->type2 = type2; @@ -340,7 +337,7 @@ Entity* CreateSpeechBubbleSleep(Entity* parent, s32 offsetX, s32 offsetY) { return CreateSpeechBubble(parent, 2, offsetX, offsetY); } -Entity* CreateSpeechBubble(Entity* parent, u32 type2, s32 xOffset, s32 yOffset) { +static Entity* CreateSpeechBubble(Entity* parent, u32 type2, s32 xOffset, s32 yOffset) { Entity* obj = CreateObject(THOUGHT_BUBBLE, 0, type2); if (obj != NULL) { CopyPosition(parent, obj); diff --git a/src/player.c b/src/player.c index 23250474..586f43e3 100644 --- a/src/player.c +++ b/src/player.c @@ -44,7 +44,7 @@ #define PULL_SPEED Q_8_8(0.5) #define PUSH_SPEED Q_8_8(0.5) -#define PIT_DAMAGE 0x2 +#define FALL_DAMAGE 2 #define DEFAULT_ANIM 0x100 @@ -66,7 +66,7 @@ static EntityAction sub_0807204C; static EntityAction sub_080720DC; static EntityAction PlayerPull; static EntityAction PlayerLava; -EntityAction PlayerWarp; +EntityAction PlayerWarp; // why is this defined in playerUtils.c? We may never know : ( static EntityAction sub_08072454; static EntityAction PlayerDrown; static EntityAction PlayerUsePortal; @@ -114,8 +114,8 @@ static EntityAction PortalStandUpdate; static EntityAction PortalActivateInit; static EntityAction PortalActivateUpdate; static EntityAction PortalShrinkInit; -/*static*/ EntityAction PortalShrinkUpdate; -/*static*/ EntityAction PortalEnterUpdate; +static EntityAction PortalShrinkUpdate; +static EntityAction PortalEnterUpdate; static EntityAction PortalUnknownUpdate; // PLAYER_TALKEZLO @@ -188,8 +188,8 @@ static EntityAction sub_08072C48; // PLAYER_08072C9C static EntityAction sub_08072CC0; static EntityAction sub_08072CFC; -/*static*/ EntityAction sub_08072D54; -/*static*/ EntityAction sub_08072F14; +static EntityAction sub_08072D54; +static EntityAction sub_08072F14; // PLAYER_CLIMB static EntityAction sub_08072F94; @@ -205,8 +205,8 @@ static EntityAction sub_080733BC; static EntityAction sub_08073468; static EntityAction sub_080734D4; static EntityAction sub_08073504; -/*static*/ EntityAction sub_08073584; -/*static*/ EntityAction sub_0807379C; +static EntityAction sub_08073584; +static EntityAction sub_0807379C; static EntityAction sub_080737BC; static EntityAction sub_0807380C; static EntityAction sub_08073884; @@ -227,7 +227,7 @@ static EntityAction sub_08073F4C; static EntityAction sub_08073FD0; static EntityAction sub_08074018; static EntityAction sub_08074060; -/*static*/ EntityAction sub_080740D8; +static EntityAction sub_080740D8; // PLAYER_08074C44 static EntityAction sub_08074C68; @@ -248,6 +248,8 @@ static EntityAction sub_0807513C; static EntityAction sub_0807518C; static EntityAction sub_080751B4; +// static helper functions +static void DoJump(Entity*); static void sub_080717F8(Entity*); static void reset_priority(void); static void break_out(Entity* this); @@ -258,60 +260,15 @@ static void hide(Entity*); static void conveyer_push(Entity*); static void sub_08074D34(Entity*, ScriptExecutionContext*); static void sub_08070BEC(Entity*, u32); +static void sub_08074808(Entity* this); // exports void SurfaceAction_Water(Entity*); void SurfaceAction_Ladder(Entity*); void SurfaceAction_AutoLadder(Entity*); -extern void sub_080A4D88(void); -extern void RespawnPlayer(void); -extern void sub_080797EC(void); -extern void UpdatePlayerMovement(void); -extern void sub_08079258(void); -extern void EnablePlayerDraw(Entity*); -extern u32 sub_08079B24(void); -extern void sub_08079708(Entity*); -extern u32 sub_0806F854(Entity*, s32, s32); +extern void InitPauseMenu(void); extern u32 UpdatePlayerCollision(void); -extern void sub_08079744(Entity*); -extern void sub_0807AE20(Entity*); -extern u32 sub_0807A894(Entity*); -extern u32 sub_080797C4(void); -extern void UpdateIcePlayerVelocity(Entity*); -extern void sub_08078F24(void); -extern void sub_0807B068(Entity*); -extern u32 sub_0807A2F8(u32); -extern u32 sub_0806F730(Entity*); -extern u32 sub_08007DD6(u32, const u16*); -extern u32 GetSurfaceCalcType(Entity*, u32, u32); -extern void sub_08074808(Entity* this); -extern void DoJump(Entity*); -extern void SetZeldaFollowTarget(Entity*); -u32 ItemIsSword(u32 item); -extern u32 sub_0807A2B8(void); -extern u32 sub_08079550(void); -extern u32 sub_080782C0(void); -extern u32 sub_080793E4(u32); -extern void sub_08008AC6(Entity*); -extern u32 sub_08079C30(Entity*); -extern void sub_08077AEC(void); -extern u32 RunQueuedAction(void); -extern void UpdatePlayerSkills(void); - -void sub_08077698(Entity*); -u32 sub_080782C0(void); -u32 UpdatePlayerCollision(void); -void sub_080797EC(void); -u32 sub_0807AC54(Entity*); -void sub_080792D8(void); -u32 sub_08078F74(Entity*); -void DoJump(Entity*); -void sub_08008926(Entity*); -void UpdatePlayerMovement(void); -void CreateWaterTrace(Entity*); -void sub_08008AC6(Entity*); -void sub_08008AA0(Entity*); extern ScreenTransitionData gUnk_0813AB58; extern ScreenTransitionData gUnk_0813AD88[]; @@ -322,12 +279,12 @@ extern u16 script_BedAtSimons; extern ScriptExecutionContext gPlayerScriptExecutionContext; -u32 CheckPlayerInactive(void) { +bool32 CheckInitPauseMenu(void) { u32 framestate; if (((gInput.newKeys & START_BUTTON) == 0 || gFadeControl.active || gUnk_02034490.unk0 || (gMessage.doTextBox & 0x7F) || gSave.stats.health == 0 || !gSave.fillerD0[34] || gPlayerState.controlMode != 0 || gPriorityHandler.priority_timer != 0)) { - return 0; + return FALSE; } framestate = gPlayerState.framestate == 0 ? gPlayerState.framestate_last : gPlayerState.framestate; @@ -337,10 +294,10 @@ u32 CheckPlayerInactive(void) { case PL_STATE_ITEMGET: case PL_STATE_DROWN: case PL_STATE_STAIRS: - return 0; + return FALSE; } - sub_080A4D88(); - return 1; + InitPauseMenu(); + return TRUE; } void DoPlayerAction(Entity* this) { @@ -382,6 +339,8 @@ void DoPlayerAction(Entity* this) { } static void PlayerInit(Entity* this) { + u32 equip_status; + gPlayerState.field_0x0[0] = 0xff; gPlayerState.startPosX = gPlayerEntity.x.HALF.HI; gPlayerState.startPosY = gPlayerEntity.y.HALF.HI; @@ -404,13 +363,14 @@ static void PlayerInit(Entity* this) { ResolveCollisionLayer(this); } - if (IsItemEquipped(ITEM_LANTERN_ON) != 2) { - sub_08077728(); + equip_status = IsItemEquipped(ITEM_LANTERN_ON); + if (equip_status != 2) { + sub_08077728(equip_status); } DeleteClones(); UpdatePlayerSkills(); - if (RunQueuedAction() == 0) { + if (CheckQueuedAction() == 0) { sub_0807921C(); UpdateFloorType(); if (gPlayerState.swim_state != 0) { @@ -457,7 +417,7 @@ static void PlayerNormal(Entity* this) { } sub_080085B0(this); this->hurtType = 0; - if (RunQueuedAction()) { + if (CheckQueuedAction()) { return; } if (!gPlayerState.swim_state && (gPlayerState.jump_status & 0xC0) == 0) { @@ -478,7 +438,7 @@ static void PlayerNormal(Entity* this) { UpdateFloorType(); } - if (RunQueuedAction()) { + if (CheckQueuedAction()) { return; } @@ -489,7 +449,7 @@ static void PlayerNormal(Entity* this) { } if ((gPlayerState.flags & (PL_USE_OCARINA | PL_FLAGS2)) == 0) { UpdateFloorType(); - RunQueuedAction(); + CheckQueuedAction(); } return; } @@ -527,7 +487,7 @@ static void PlayerNormal(Entity* this) { } sub_08077698(this); - if (RunQueuedAction()) + if (CheckQueuedAction()) return; sub_080792D8(); @@ -536,7 +496,7 @@ static void PlayerNormal(Entity* this) { } DoJump(this); - if (RunQueuedAction()) + if (CheckQueuedAction()) return; if (gPlayerState.jump_status) { @@ -665,7 +625,7 @@ static void PlayerFallUpdate(Entity* this) { RespawnPlayer(); gPlayerState.field_0xa = 0; this->iframes = 32; - ModHealth(-PIT_DAMAGE); + ModHealth(-FALL_DAMAGE); } } } @@ -709,12 +669,12 @@ static void PlayerBounceUpdate(Entity* this) { UpdatePlayerMovement(); UpdateFloorType(); - if (RunQueuedAction() || GravityUpdate(this, GRAVITY_RATE)) + if (CheckQueuedAction() || GravityUpdate(this, GRAVITY_RATE)) return; gPlayerState.jump_status = 0; - if (RunQueuedAction()) + if (CheckQueuedAction()) return; if (sub_08079D48() || gPlayerState.swim_state != 0) { @@ -758,7 +718,7 @@ static void sub_08070E9C(Entity* this) { sub_08070f24, }; - if (RunQueuedAction() != 0) { + if (CheckQueuedAction() != 0) { MessageClose(); } else { gPlayerState.field_0x27[0] = 4; @@ -843,17 +803,20 @@ static void PlayerItemGetInit(Entity* this) { static void PlayerItemGetUpdate(Entity* this) { UpdateAnimationSingleFrame(this); - if (this->frame != /* entire animation is a static frame */ 0) + if (this->frame != 0) /* entire animation is a static frame, wait for advance */ this->subAction = 2; } static void sub_08071038(Entity* this) { UpdateAnimationSingleFrame(this); - if (RunQueuedAction() || (gMessage.doTextBox & 0x7f)) + // player is still reading message + if (CheckQueuedAction() || (gMessage.doTextBox & 0x7f)) return; if (this->frame & ANIM_DONE) { + // remove the item + // is this actually deleted? this->child = NULL; this->knockbackDuration = 0; this->iframes = 248; @@ -908,7 +871,7 @@ static void PlayerJumpInit(Entity* this) { } static void sub_08071130(Entity* this) { - if (RunQueuedAction()) + if (CheckQueuedAction()) return; if (gPlayerState.sword_state == 0) { @@ -936,7 +899,7 @@ static void sub_08071130(Entity* this) { UpdateFloorType(); - if (RunQueuedAction()) + if (CheckQueuedAction()) return; if ((sub_08079D48() == 0) || (gPlayerState.swim_state != 0)) { @@ -1176,7 +1139,7 @@ static void PortalShrinkInit(Entity* this) { SoundReq(SFX_PLY_SHRINKING); } -void PortalShrinkUpdate(Entity* this) { +static void PortalShrinkUpdate(Entity* this) { static const u8 gUnk_0811BABC[] = { 1, 1, 1, 1, 2, 4, 8, 16, }; @@ -1251,7 +1214,7 @@ void PortalShrinkUpdate(Entity* this) { UpdateAnimationSingleFrame(this); } -/*static*/ void PortalEnterUpdate(Entity* this) { +static void PortalEnterUpdate(Entity* this) { if (this->actionDelay == 0) { if (GravityUpdate(this, GRAVITY_RATE)) return; @@ -1311,7 +1274,7 @@ static void PlayerTalkEzlo(Entity* this) { sub_08071A4C, }; - if (RunQueuedAction()) { + if (CheckQueuedAction()) { MessageClose(); reset_priority(); } else { @@ -1814,7 +1777,7 @@ static void sub_080720DC(Entity* this) { sub_08072168, }; - if (RunQueuedAction() == 0) + if (CheckQueuedAction() == 0) gUnk_0811BB60[this->subAction](this); } @@ -2103,7 +2066,7 @@ static void PlayerRollUpdate(Entity* this) { if (((gPlayerState.flags & (PL_ROLLING | PL_MOLDWORM_CAPTURED)) != PL_ROLLING) || ((gPlayerState.flags & PL_MOLDWORM_RELEASED) == 0 && (this->iframes != 0) && (this->bitfield & 0x80))) { gPlayerState.flags &= ~PL_ROLLING; - if (RunQueuedAction()) + if (CheckQueuedAction()) return; PlayerWaitForScroll(this); @@ -2118,7 +2081,7 @@ static void PlayerRollUpdate(Entity* this) { if ((gPlayerState.flags & PL_FLAGS2) == 0) { UpdateFloorType(); } - if (RunQueuedAction()) { + if (CheckQueuedAction()) { gPlayerState.flags &= ~PL_ROLLING; return; } @@ -2383,7 +2346,7 @@ static const u16* const sTileTable[] = { sTiles + 9, }; -void sub_08072D54(Entity* this) { +static void sub_08072D54(Entity* this) { u32 uVar2; UpdateAnimationSingleFrame(this); @@ -2463,7 +2426,7 @@ void sub_08072D54(Entity* this) { } } -/*static*/ void sub_08072F14(Entity* this) { +static void sub_08072F14(Entity* this) { if (--this->actionDelay != 0xff) { sub_0807921C(); } else { @@ -2477,7 +2440,7 @@ static void PlayerClimb(Entity* this) { sub_08073094, }; - if (!RunQueuedAction()) { + if (!CheckQueuedAction()) { gPlayerState.framestate = PL_STATE_CLIMB; gPlayerState.floor_type = GetSurfaceCalcType(this, 0, 0); sPlayerClimbStates[this->subAction](this); @@ -2562,7 +2525,7 @@ static void sub_08073094(Entity* this) { UpdateFloorType(); } - if (RunQueuedAction() == 0) { + if (CheckQueuedAction() == 0) { switch (gPlayerState.floor_type) { case SURFACE_AUTO_LADDER: case SURFACE_2C: @@ -2571,7 +2534,7 @@ static void sub_08073094(Entity* this) { UpdateAnimationSingleFrame(this); if (this->frame & 0x40) { UpdateFloorType(); - if (!RunQueuedAction()) { + if (!CheckQueuedAction()) { this->subAction--; } } @@ -2588,7 +2551,7 @@ static void sub_08073094(Entity* this) { UpdateAnimationSingleFrame(this); if (this->frame & 0x40) { UpdateFloorType(); - if (!RunQueuedAction()) { + if (!CheckQueuedAction()) { this->subAction--; } } @@ -2694,7 +2657,7 @@ static void sub_0807332C(Entity* this) { SetPlayerActionNormal(); } else { gMain.substate = GAMEMAIN_CHANGEAREA; - *(&gMain.pauseInterval + 1) = 1; + gMain.pad = 1; SetFade(5, 8); } } @@ -2728,7 +2691,7 @@ static void PlayerParachute(Entity* this) { sub_08073468, sub_080734D4, sub_08073504, sub_08073584, sub_0807379C, sub_080737BC, sub_0807380C, sub_08073884, }; - if (!RunQueuedAction()) { + if (!CheckQueuedAction()) { UpdateFloorType(); this->spriteOrientation.flipY = 1; this->spriteRendering.b3 = 1; @@ -2780,21 +2743,7 @@ static void sub_08073504(Entity* this) { UpdateAnimationSingleFrame(this); } -static const u16 gUnk_0811BC28[] = { - 0x0708, - 0x071C, - 0x0718, - 0x0714, -}; - -static const u16 gUnk_0811BC30[] = { - 0x0708, - 0x0728, - 0x0724, - 0x0720, -}; - -void sub_08073584(Entity* this) { +static void sub_08073584(Entity* this) { u32 state, dir, idx; if ((gPlayerState.field_0x92 & 0x80) || this->iframes > 0 || gPlayerState.field_0x3c[0] || @@ -2852,6 +2801,13 @@ void sub_08073584(Entity* this) { idx = 0; state = gPlayerState.field_0xd >> 2; if (!this->field_0x86.HALF.HI || ((gPlayerState.field_0xd & 0x80) == 0 && this->animationState != state)) { + static const u16 sAnims1[] = { + 0x0708, + 0x071C, + 0x0718, + 0x0714, + }; + if ((gPlayerState.field_0xd & 0x80) == 0) { if (this->animationState != state) { if (this->animationState == (state ^ 4)) { @@ -2867,21 +2823,28 @@ void sub_08073584(Entity* this) { } } - if (gUnk_0811BC28[idx] == gPlayerState.animation) { + if (sAnims1[idx] == gPlayerState.animation) { if (gArea.locationIndex == 16) sub_080042BA(this, 2); else UpdateAnimationSingleFrame(this); } else { - gPlayerState.animation = gUnk_0811BC28[idx]; + gPlayerState.animation = sAnims1[idx]; } this->field_0x86.HALF.LO = idx; } else { + static const u16 sAnims2[] = { + 0x0708, + 0x0728, + 0x0724, + 0x0720, + }; + this->field_0x86.HALF.HI--; - if (gUnk_0811BC30[this->field_0x86.HALF.LO] == gPlayerState.animation) + if (sAnims2[this->field_0x86.HALF.LO] == gPlayerState.animation) UpdateAnimationSingleFrame(this); else - gPlayerState.animation = gUnk_0811BC30[this->field_0x86.HALF.LO]; + gPlayerState.animation = sAnims2[this->field_0x86.HALF.LO]; } if (--this->field_0x7c.WORD == -1) { @@ -2893,7 +2856,7 @@ void sub_08073584(Entity* this) { } } -/*static*/ void sub_0807379C(Entity* this) { +static void sub_0807379C(Entity* this) { if (this->z.HALF.HI > -32) { this->z.HALF.HI--; } else { @@ -2970,7 +2933,7 @@ void sub_08073884(Entity* this) { UpdateAnimationSingleFrame(this); } -void DoJump(Entity* this) { +static void DoJump(Entity* this) { static EntityAction* const sStates[] = { sub_08073924, sub_08073968, sub_080739EC, sub_08073A94, sub_08073B8C, sub_08073C30, }; @@ -2978,7 +2941,7 @@ void DoJump(Entity* this) { sStates[gPlayerState.jump_status & 7](this); } -void sub_08073924(Entity* this) { +static void sub_08073924(Entity* this) { if ((gPlayerState.flags & PL_ROLLING) == 0 && (this->z.HALF.HI & 0x8000) && !gPlayerState.field_0xa) { gPlayerState.jump_status = 0x40; gPlayerState.field_0xd = 0xff; @@ -3173,7 +3136,7 @@ static void sub_08073D20(Entity* this) { sub_08079708(this); return; } - if (!RunQueuedAction()) { + if (!CheckQueuedAction()) { DoJump(this); UpdateFloorType(); if (gPlayerState.jump_status) @@ -3182,7 +3145,7 @@ static void sub_08073D20(Entity* this) { gPlayerState.swim_state = 0; this->field_0x3c &= ~4; } - if (!RunQueuedAction() && this->subAction != 2) { + if (!CheckQueuedAction() && this->subAction != 2) { if ((gPlayerState.flags & PL_HIDDEN) == 0) { sub_080085B0(this); sub_080792D8(); @@ -3193,7 +3156,7 @@ static void sub_08073D20(Entity* this) { return; } if (sub_080782C0()) { - RunQueuedAction(); + CheckQueuedAction(); return; } COLLISION_ON(this); @@ -3631,7 +3594,7 @@ void SurfaceAction_Water(Entity* this) { } } -void sub_08074808(Entity* this) { +static void sub_08074808(Entity* this) { sub_08077AEC(); if (GetInventoryValue(ITEM_FLIPPERS) == 1) { if (!gPlayerState.swim_state) { @@ -3830,7 +3793,7 @@ static void sub_08074C44(Entity* this) { sub_080750F4, }; - if (!RunQueuedAction()) + if (!CheckQueuedAction()) gUnk_0811BC88[this->subAction](this); } diff --git a/src/playerItemUtils.c b/src/playerItemUtils.c index 2a9873db..09e822db 100644 --- a/src/playerItemUtils.c +++ b/src/playerItemUtils.c @@ -11,7 +11,6 @@ Entity* GiveItemWithCutscene(u32, u32, u32); Entity* sub_080A276C(Entity*, u32, u32); void sub_08078AF0(Entity*, u32, u32); -Entity* sub_0805E744(void); void sub_080A7D44(u32, u32); void CreateItemEntity(u32 type, u32 type2, u32 delay) { @@ -35,7 +34,7 @@ Entity* GiveItemWithCutscene(u32 type, u32 type2, u32 delay) { type = 87; type2 = 0; } - e = sub_0805E744(); + e = CreateItemGetEntity(); if (e != NULL) { e->type = type; e->type2 = type2; diff --git a/src/playerUtils.c b/src/playerUtils.c index d006bfd6..d879ff6f 100644 --- a/src/playerUtils.c +++ b/src/playerUtils.c @@ -19,12 +19,10 @@ extern void sub_080752E8(ItemBehavior* behavior, u32 arg1); // item.c extern void sub_0800857C(Entity*); extern void SetDefaultPriorityForKind(Entity*); extern void DoPlayerAction(Entity*); -extern Entity* sub_0805E744(); extern void sub_0809D738(Entity*); extern s32 Mod(s32, s32); extern void sub_08003FDE(Entity*, u32, u32, u32); extern u32 sub_080B1B84(u32, u32); -extern u32 sub_08007DD6(u32, const u16*); typedef struct { u8 unk0[4]; @@ -45,18 +43,15 @@ ItemBehavior* sub_0807794C(u32); u32 sub_080789A8(void); ItemBehavior* sub_080779EC(u32); void DeletePlayerItem(ItemBehavior*, u32); -void sub_08077AEC(void); bool32 sub_08079E90(u32); void sub_08079258(void); void sub_08078D60(void); void* sub_08077C54(ItemBehavior*); u32 sub_08079FD4(Entity*, u32); void LoadRoomGfx(void); -bool32 sub_080793E4(u32); u32 sub_0807A094(u32); u32 GetSurfaceCalcType(Entity*, u32, u32); void sub_0807AAF8(Entity*, u32); -bool32 sub_08079C30(Entity*); extern struct_0811BE48 gUnk_0811BE48[]; extern void (*const gUnk_0811C27C[])(Entity*); @@ -385,7 +380,7 @@ Entity* CreatePlayerItemWithParent(ItemBehavior* beh, u32 subtype) { void* sub_08077C54(ItemBehavior* unk) { GenericEntity* item; - item = (GenericEntity*)sub_0805E744(); + item = (GenericEntity*)CreateItemGetEntity(); if (item != NULL) { item->base.id = gUnk_0811BE48[unk->behaviorID].unk0[3]; item->base.kind = PLAYER_ITEM; @@ -426,7 +421,7 @@ Entity* CreatePlayerItem(u32 subtype, u32 form, u32 parameter, u32 unk) { Entity* sub_08077CF8(u32 subtype, u32 form, u32 parameter, u32 unk) { GenericEntity* ent; - ent = (GenericEntity*)sub_0805E744(); + ent = (GenericEntity*)CreateItemGetEntity(); if (ent != NULL) { ent->base.flags = ENT_COLLIDE; ent->base.kind = PLAYER_ITEM; @@ -702,7 +697,7 @@ void ForceSetPlayerState(u32 framestate) { ASM_FUNC("asm/non_matching/playerUtils/sub_08078180.inc", void sub_08078180()) -ASM_FUNC("asm/non_matching/playerUtils/sub_080782C0.inc", void sub_080782C0()) +ASM_FUNC("asm/non_matching/playerUtils/sub_080782C0.inc", u32 sub_080782C0()) void sub_080784C8(void) { MemClear(&gUnk_03003DF0, 0x188); @@ -966,7 +961,7 @@ void sub_08078EE4(void) { gPlayerEntity.y.HALF.HI = gPlayerState.startPosY; } -bool32 RunQueuedAction(void) { +bool32 CheckQueuedAction(void) { if (gPlayerState.queued_action == 0) { return FALSE; } else { @@ -1131,7 +1126,7 @@ u32 sub_0807953C(void) { return gPlayerState.field_0x92 & tmp; } -ASM_FUNC("asm/non_matching/playerUtils/sub_08079550.inc", void sub_08079550()) +ASM_FUNC("asm/non_matching/playerUtils/sub_08079550.inc", u32 sub_08079550(void)) void sub_08079708(Entity* this) { gPlayerState.framestate = 0x12; @@ -1167,7 +1162,7 @@ void sub_08079744(Entity* this) { ASM_FUNC("asm/non_matching/playerUtils/sub_08079778.inc", void sub_08079778()) -ASM_FUNC("asm/non_matching/playerUtils/sub_080797C4.inc", void sub_080797C4()) +ASM_FUNC("asm/non_matching/playerUtils/sub_080797C4.inc", u32 sub_080797C4(void)) ASM_FUNC("asm/non_matching/playerUtils/sub_080797EC.inc", void sub_080797EC()) @@ -1339,7 +1334,7 @@ bool32 sub_0807A2B8(void) { } } -ASM_FUNC("asm/non_matching/playerUtils/sub_0807A2F8.inc", void sub_0807A2F8()) +ASM_FUNC("asm/non_matching/playerUtils/sub_0807A2F8.inc", u32 sub_0807A2F8(u32 a1)) ASM_FUNC("asm/non_matching/playerUtils/sub_0807A500.inc", void sub_0807A500()) @@ -1401,13 +1396,13 @@ ASM_FUNC("asm/non_matching/playerUtils/sub_0807AAF8.inc", void sub_0807AAF8(Enti ASM_FUNC("asm/non_matching/playerUtils/sub_0807AB44.inc", void sub_0807AB44()) -ASM_FUNC("asm/non_matching/playerUtils/sub_0807AC54.inc", void sub_0807AC54()) +ASM_FUNC("asm/non_matching/playerUtils/sub_0807AC54.inc", u32 sub_0807AC54(Entity* a)) ASM_FUNC("asm/non_matching/playerUtils/sub_0807ACCC.inc", void sub_0807ACCC(Entity* a)) ASM_FUNC("asm/non_matching/playerUtils/sub_0807ADB8.inc", void sub_0807ADB8()) -ASM_FUNC("asm/non_matching/playerUtils/sub_0807AE20.inc", void sub_0807AE20()) +ASM_FUNC("asm/non_matching/playerUtils/sub_0807AE20.inc", void sub_0807AE20(Entity* e)) void UpdatePlayerSkills(void) { gPlayerState.skills = SKILL_NONE; @@ -1472,7 +1467,7 @@ u32 sub_0807B014(void) { } } -void sub_0807B068(void) { +void sub_0807B068(Entity* entity) { if ((gPlayerState.dash_state | gPlayerState.field_0x3[1]) == 0) { if (gPlayerState.swim_state != 0) { if ((gPlayerState.swim_state & 0x80) != 0) { |
