diff --git a/include/player.h b/include/player.h index 147ec5cb..15197f98 100644 --- a/include/player.h +++ b/include/player.h @@ -125,6 +125,8 @@ typedef enum { PL_SWORD_THRUST = 0x8000000, PL_USE_OCARINA = 0x10000000, PL_CLIMBING = 0x20000000, + PL_FLAGS40000000 = 0x40000000, + PL_FLAGS80000000 = 0x80000000, } PlayerFlags; enum PlayerItemId { diff --git a/src/beanstalkSubtask.c b/src/beanstalkSubtask.c index 41dd45c3..5271ab5a 100644 --- a/src/beanstalkSubtask.c +++ b/src/beanstalkSubtask.c @@ -170,7 +170,7 @@ u32 UpdatePlayerCollision(void) { u32 index; const s16* ptr1; const s16* ptr2; - s32 tmp1; + s32 framestate; u32 tmp2; u32 tmp3; // There are some weird assignment necessary to access gPlayerEntity.animationState correctly. @@ -178,18 +178,18 @@ u32 UpdatePlayerCollision(void) { u32 animationState2; u32 animationState3; - if (gPlayerState.framestate == 0) { - tmp1 = gPlayerState.framestate_last; + if (gPlayerState.framestate == PL_STATE_IDLE) { + framestate = gPlayerState.framestate_last; } else { - tmp1 = gPlayerState.framestate; + framestate = gPlayerState.framestate; } - switch (tmp1) { - case 3: + switch (framestate) { + case PL_STATE_GUSTJAR: return 0; - case 0x12: + case PL_STATE_DIE: return 0; - case 0x16: + case PL_STATE_DROWN: return 0; } diff --git a/src/enemy/mazaalBracelet.c b/src/enemy/mazaalBracelet.c index d21e8636..845c69bd 100644 --- a/src/enemy/mazaalBracelet.c +++ b/src/enemy/mazaalBracelet.c @@ -1225,7 +1225,10 @@ void sub_0803B724(Entity* param_1) { void sub_0803B798(void) { gPlayerState.jump_status = 0x41; gPlayerState.field_0xa = 0; - gPlayerState.flags &= ~(0xffff0000 | PL_CAPTURED); + gPlayerState.flags &= ~(PL_CAPTURED | PL_FLAGS10000 | PL_GYORG_FIGHT | PL_ROLLING | PL_MOLDWORM_CAPTURED | + PL_IN_HOLE | PL_MOLDWORM_RELEASED | PL_CLONING | PL_USE_LANTERN | PL_PARACHUTE | + PL_CONVEYOR_PUSHED | PL_ENTER_MINECART | PL_SWORD_THRUST | PL_USE_OCARINA | + PL_CLIMBING | PL_FLAGS40000000 | PL_FLAGS80000000); gPlayerEntity.flags |= ENT_COLLIDE; gPlayerEntity.zVelocity = Q_16_16(1.5); gPlayerEntity.z.HALF.HI = -10; diff --git a/src/object/minecart.c b/src/object/minecart.c index ffdef749..73cf2e51 100644 --- a/src/object/minecart.c +++ b/src/object/minecart.c @@ -11,7 +11,7 @@ typedef struct { Entity base; - u8 filler[0x1C]; + u8 filler[28]; MinecartData* minecartData; } MinecartEntity; diff --git a/src/playerUtils.c b/src/playerUtils.c index 7514488c..7df365a9 100644 --- a/src/playerUtils.c +++ b/src/playerUtils.c @@ -1043,15 +1043,15 @@ void DetermineRButtonInteraction(void) { } bool32 sub_080782C0(void) { - u8 tmp; + u8 framestate; Entity* entity; if (gPlayerState.framestate == PL_STATE_IDLE) { - tmp = gPlayerState.framestate_last; + framestate = gPlayerState.framestate_last; } else { - tmp = gPlayerState.framestate; + framestate = gPlayerState.framestate; } - switch (tmp) { + switch (framestate) { case PL_STATE_SWORD: case PL_STATE_GUSTJAR: case PL_STATE_C: @@ -1877,8 +1877,8 @@ void sub_080797EC(void) { gPlayerState.prevAnim = 0x6c; return; } else if (gPlayerState.sword_state == 0) { - if (gPlayerState.framestate == 0) { - gPlayerState.framestate = 1; + if (gPlayerState.framestate == PL_STATE_IDLE) { + gPlayerState.framestate = PL_STATE_WALK; } animation = 0x404; } else { @@ -1924,8 +1924,8 @@ void sub_080797EC(void) { } } } else { - if (gPlayerState.framestate == 0) { - gPlayerState.framestate = 1; + if (gPlayerState.framestate == PL_STATE_IDLE) { + gPlayerState.framestate = PL_STATE_WALK; } if ((gPlayerState.flags & PL_USE_LANTERN) != 0) { animation = 0x608;