mirror of https://github.com/zeldaret/mm.git
dead flag (#1735)
This commit is contained in:
parent
d60a032b11
commit
c5db9b47e1
|
@ -882,8 +882,9 @@ typedef enum PlayerCueId {
|
|||
#define PLAYER_STATE1_20 (1 << 5)
|
||||
//
|
||||
#define PLAYER_STATE1_40 (1 << 6)
|
||||
//
|
||||
#define PLAYER_STATE1_80 (1 << 7)
|
||||
// Player has died. Note that this gets set when the death cutscene has started, after landing from the air.
|
||||
// This also gets set when either deku/zora forms touches lava floor, or goron form enters water and the scene resets.
|
||||
#define PLAYER_STATE1_DEAD (1 << 7)
|
||||
//
|
||||
#define PLAYER_STATE1_100 (1 << 8)
|
||||
//
|
||||
|
|
|
@ -511,7 +511,7 @@ void Attention_Draw(Attention* attention, PlayState* play) {
|
|||
Player* player = GET_PLAYER(play);
|
||||
Actor* actor; // used for both the reticle actor and arrow hover actor
|
||||
|
||||
if (player->stateFlags1 & (PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_80 | PLAYER_STATE1_200 |
|
||||
if (player->stateFlags1 & (PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_DEAD | PLAYER_STATE1_200 |
|
||||
PLAYER_STATE1_400 | PLAYER_STATE1_10000000 | PLAYER_STATE1_20000000)) {
|
||||
return;
|
||||
}
|
||||
|
@ -1439,7 +1439,7 @@ void Player_MountHorse(PlayState* play, Player* player, Actor* horse) {
|
|||
}
|
||||
|
||||
bool func_800B7200(Player* player) {
|
||||
return (player->stateFlags1 & (PLAYER_STATE1_80 | PLAYER_STATE1_20000000)) ||
|
||||
return (player->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_20000000)) ||
|
||||
(player->csAction != PLAYER_CSACTION_NONE);
|
||||
}
|
||||
|
||||
|
@ -2206,7 +2206,7 @@ s32 Actor_OfferGetItem(Actor* actor, PlayState* play, GetItemId getItemId, f32 x
|
|||
Player* player = GET_PLAYER(play);
|
||||
|
||||
if (!(player->stateFlags1 &
|
||||
(PLAYER_STATE1_80 | PLAYER_STATE1_1000 | PLAYER_STATE1_2000 | PLAYER_STATE1_4000 | PLAYER_STATE1_40000 |
|
||||
(PLAYER_STATE1_DEAD | PLAYER_STATE1_1000 | PLAYER_STATE1_2000 | PLAYER_STATE1_4000 | PLAYER_STATE1_40000 |
|
||||
PLAYER_STATE1_80000 | PLAYER_STATE1_100000 | PLAYER_STATE1_200000)) &&
|
||||
(Player_GetExplosiveHeld(player) <= PLAYER_EXPLOSIVE_NONE)) {
|
||||
if ((actor->xzDistToPlayer <= xzRange) && (fabsf(actor->playerHeightRel) <= fabsf(yRange))) {
|
||||
|
@ -2294,7 +2294,7 @@ s32 Actor_HasRider(PlayState* play, Actor* horse) {
|
|||
s32 Actor_SetRideActor(PlayState* play, Actor* horse, s32 mountSide) {
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
if (!(player->stateFlags1 & (PLAYER_STATE1_80 | PLAYER_STATE1_CARRYING_ACTOR | PLAYER_STATE1_1000 |
|
||||
if (!(player->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_CARRYING_ACTOR | PLAYER_STATE1_1000 |
|
||||
PLAYER_STATE1_2000 | PLAYER_STATE1_4000 | PLAYER_STATE1_40000 | PLAYER_STATE1_80000 |
|
||||
PLAYER_STATE1_100000 | PLAYER_STATE1_200000))) {
|
||||
player->rideActor = horse;
|
||||
|
@ -2626,33 +2626,33 @@ Actor* Actor_UpdateActor(UpdateActor_Params* params) {
|
|||
|
||||
u32 sCategoryFreezeMasks[ACTORCAT_MAX] = {
|
||||
/* ACTORCAT_SWITCH */
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_80 | PLAYER_STATE1_200 | PLAYER_STATE1_10000000,
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_DEAD | PLAYER_STATE1_200 | PLAYER_STATE1_10000000,
|
||||
/* ACTORCAT_BG */
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_80 | PLAYER_STATE1_200 | PLAYER_STATE1_10000000,
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_DEAD | PLAYER_STATE1_200 | PLAYER_STATE1_10000000,
|
||||
/* ACTORCAT_PLAYER */
|
||||
PLAYER_STATE1_200,
|
||||
/* ACTORCAT_EXPLOSIVES */
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_80 | PLAYER_STATE1_200 | PLAYER_STATE1_400 |
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_DEAD | PLAYER_STATE1_200 | PLAYER_STATE1_400 |
|
||||
PLAYER_STATE1_10000000,
|
||||
/* ACTORCAT_NPC */
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_80 | PLAYER_STATE1_200,
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_DEAD | PLAYER_STATE1_200,
|
||||
/* ACTORCAT_ENEMY */
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_80 | PLAYER_STATE1_200 | PLAYER_STATE1_10000000 |
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_DEAD | PLAYER_STATE1_200 | PLAYER_STATE1_10000000 |
|
||||
PLAYER_STATE1_20000000,
|
||||
/* ACTORCAT_PROP */
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_80 | PLAYER_STATE1_200 | PLAYER_STATE1_10000000,
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_DEAD | PLAYER_STATE1_200 | PLAYER_STATE1_10000000,
|
||||
/* ACTORCAT_ITEMACTION */
|
||||
PLAYER_STATE1_2,
|
||||
/* ACTORCAT_MISC */
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_80 | PLAYER_STATE1_200 | PLAYER_STATE1_10000000 |
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_DEAD | PLAYER_STATE1_200 | PLAYER_STATE1_10000000 |
|
||||
PLAYER_STATE1_20000000,
|
||||
/* ACTORCAT_BOSS */
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_80 | PLAYER_STATE1_200 | PLAYER_STATE1_400 |
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_DEAD | PLAYER_STATE1_200 | PLAYER_STATE1_400 |
|
||||
PLAYER_STATE1_10000000,
|
||||
/* ACTORCAT_DOOR */
|
||||
PLAYER_STATE1_2,
|
||||
/* ACTORCAT_CHEST */
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_80 | PLAYER_STATE1_200 | PLAYER_STATE1_10000000,
|
||||
PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_DEAD | PLAYER_STATE1_200 | PLAYER_STATE1_10000000,
|
||||
};
|
||||
|
||||
void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) {
|
||||
|
|
|
@ -645,7 +645,7 @@ void func_80123140(PlayState* play, Player* player) {
|
|||
}
|
||||
|
||||
bool Player_InBlockingCsMode(PlayState* play, Player* player) {
|
||||
return (player->stateFlags1 & (PLAYER_STATE1_80 | PLAYER_STATE1_200 | PLAYER_STATE1_20000000)) ||
|
||||
return (player->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_200 | PLAYER_STATE1_20000000)) ||
|
||||
(player->csAction != PLAYER_CSACTION_NONE) || (play->transitionTrigger == TRANS_TRIGGER_START) ||
|
||||
(play->transitionMode != TRANS_MODE_OFF) || (player->stateFlags1 & PLAYER_STATE1_1) ||
|
||||
(player->stateFlags3 & PLAYER_STATE3_80) || play->actorCtx.isOverrideInputOn;
|
||||
|
@ -1943,7 +1943,7 @@ void Player_AdjustSingleLeg(PlayState* play, Player* player, SkelAnime* skelAnim
|
|||
f32 sp7C;
|
||||
|
||||
if ((player->stateFlags3 & PLAYER_STATE3_1) || !(player->actor.scale.y >= 0.0f) ||
|
||||
(player->stateFlags1 & PLAYER_STATE1_80) || play->unk_18844) {
|
||||
(player->stateFlags1 & PLAYER_STATE1_DEAD) || play->unk_18844) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -110,7 +110,7 @@ s32 ArmsHook_CheckForCancel(ArmsHook* this) {
|
|||
|
||||
if (Player_IsHoldingHookshot(player)) {
|
||||
if ((player->itemAction != player->heldItemAction) || (player->actor.flags & ACTOR_FLAG_TALK) ||
|
||||
(player->stateFlags1 & (PLAYER_STATE1_80 | PLAYER_STATE1_4000000))) {
|
||||
(player->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_4000000))) {
|
||||
this->timer = 0;
|
||||
ArmsHook_DetachHookFromActor(this);
|
||||
Math_Vec3f_Copy(&this->actor.world.pos, &player->rightHandWorld.pos);
|
||||
|
|
|
@ -646,7 +646,7 @@ void DoorShutter_Update(Actor* thisx, PlayState* play) {
|
|||
DoorShutter* this = THIS;
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
if (!(player->stateFlags1 & (PLAYER_STATE1_40 | PLAYER_STATE1_80 | PLAYER_STATE1_400 | PLAYER_STATE1_10000000)) ||
|
||||
if (!(player->stateFlags1 & (PLAYER_STATE1_40 | PLAYER_STATE1_DEAD | PLAYER_STATE1_400 | PLAYER_STATE1_10000000)) ||
|
||||
(this->actionFunc == DoorShutter_SetupType)) {
|
||||
this->actionFunc(this, play);
|
||||
|
||||
|
|
|
@ -233,7 +233,7 @@ void DoorSpiral_Update(Actor* thisx, PlayState* play) {
|
|||
DoorSpiral* this = THIS;
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
if (!(player->stateFlags1 & (PLAYER_STATE1_40 | PLAYER_STATE1_80 | PLAYER_STATE1_400 | PLAYER_STATE1_10000000)) ||
|
||||
if (!(player->stateFlags1 & (PLAYER_STATE1_40 | PLAYER_STATE1_DEAD | PLAYER_STATE1_400 | PLAYER_STATE1_10000000)) ||
|
||||
(this->actionFunc == func_809A2DB0)) {
|
||||
this->actionFunc(this, play);
|
||||
}
|
||||
|
|
|
@ -1438,7 +1438,7 @@ void EnGoroiwa_Update(Actor* thisx, PlayState* play) {
|
|||
CollisionPoly* tmp;
|
||||
|
||||
if (!(player->stateFlags1 &
|
||||
(PLAYER_STATE1_40 | PLAYER_STATE1_80 | PLAYER_STATE1_10000000 | PLAYER_STATE1_20000000))) {
|
||||
(PLAYER_STATE1_40 | PLAYER_STATE1_DEAD | PLAYER_STATE1_10000000 | PLAYER_STATE1_20000000))) {
|
||||
if (this->unk_1CC > 0) {
|
||||
this->unk_1CC--;
|
||||
}
|
||||
|
|
|
@ -98,7 +98,7 @@ void EnNutsball_Update(Actor* thisx, PlayState* play2) {
|
|||
CollisionPoly* poly;
|
||||
|
||||
if (!(player->stateFlags1 &
|
||||
(PLAYER_STATE1_40 | PLAYER_STATE1_80 | PLAYER_STATE1_10000000 | PLAYER_STATE1_20000000))) {
|
||||
(PLAYER_STATE1_40 | PLAYER_STATE1_DEAD | PLAYER_STATE1_10000000 | PLAYER_STATE1_20000000))) {
|
||||
this->timer--;
|
||||
if (this->timer < 0) {
|
||||
this->actor.velocity.y += this->actor.gravity;
|
||||
|
|
|
@ -946,7 +946,7 @@ void EnOkuta_Projectile_Update(Actor* thisx, PlayState* play) {
|
|||
Vec3f prevPos;
|
||||
s32 canRestorePrevPos = false;
|
||||
|
||||
if (!(player->stateFlags1 & (PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_80 | PLAYER_STATE1_200 |
|
||||
if (!(player->stateFlags1 & (PLAYER_STATE1_2 | PLAYER_STATE1_40 | PLAYER_STATE1_DEAD | PLAYER_STATE1_200 |
|
||||
PLAYER_STATE1_10000000 | PLAYER_STATE1_20000000))) {
|
||||
this->actionFunc(this, play);
|
||||
Actor_MoveWithoutGravity(&this->actor);
|
||||
|
|
|
@ -751,7 +751,7 @@ s32 EnRailgibud_PlayerInRangeWithCorrectState(EnRailgibud* this, PlayState* play
|
|||
}
|
||||
|
||||
if ((Actor_WorldDistXYZToPoint(&player->actor, &this->actor.home.pos) < 100.0f) &&
|
||||
!(player->stateFlags1 & (PLAYER_STATE1_80 | PLAYER_STATE1_2000 | PLAYER_STATE1_4000 | PLAYER_STATE1_40000 |
|
||||
!(player->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_2000 | PLAYER_STATE1_4000 | PLAYER_STATE1_40000 |
|
||||
PLAYER_STATE1_80000 | PLAYER_STATE1_200000)) &&
|
||||
!(player->stateFlags2 & (PLAYER_STATE2_80 | PLAYER_STATE2_4000))) {
|
||||
return true;
|
||||
|
|
|
@ -656,8 +656,8 @@ void EnRd_WalkToPlayer(EnRd* this, PlayState* play) {
|
|||
}
|
||||
|
||||
if ((ABS_ALT(yaw) < 0x1554) && (Actor_WorldDistXYZToActor(&this->actor, &player->actor) <= 150.0f)) {
|
||||
if (!(player->stateFlags1 & (PLAYER_STATE1_80 | PLAYER_STATE1_2000 | PLAYER_STATE1_4000 | PLAYER_STATE1_40000 |
|
||||
PLAYER_STATE1_80000 | PLAYER_STATE1_200000)) &&
|
||||
if (!(player->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_2000 | PLAYER_STATE1_4000 |
|
||||
PLAYER_STATE1_40000 | PLAYER_STATE1_80000 | PLAYER_STATE1_200000)) &&
|
||||
!(player->stateFlags2 & (PLAYER_STATE2_80 | PLAYER_STATE2_4000))) {
|
||||
if (this->playerStunWaitTimer == 0) {
|
||||
if (!(this->flags & EN_RD_FLAG_CANNOT_FREEZE_PLAYER)) {
|
||||
|
@ -738,7 +738,7 @@ void EnRd_WalkToHome(EnRd* this, PlayState* play) {
|
|||
this->actor.world.rot.y = this->actor.shape.rot.y;
|
||||
SkelAnime_Update(&this->skelAnime);
|
||||
|
||||
if (!(player->stateFlags1 & (PLAYER_STATE1_80 | PLAYER_STATE1_2000 | PLAYER_STATE1_4000 | PLAYER_STATE1_40000 |
|
||||
if (!(player->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_2000 | PLAYER_STATE1_4000 | PLAYER_STATE1_40000 |
|
||||
PLAYER_STATE1_80000 | PLAYER_STATE1_200000)) &&
|
||||
!(player->stateFlags2 & (PLAYER_STATE2_80 | PLAYER_STATE2_4000)) &&
|
||||
(player->transformation != PLAYER_FORM_GORON) && (player->transformation != PLAYER_FORM_DEKU) &&
|
||||
|
|
|
@ -904,7 +904,7 @@ s32 EnTalkGibud_PlayerInRangeWithCorrectState(EnTalkGibud* this, PlayState* play
|
|||
Player* player = GET_PLAYER(play);
|
||||
|
||||
if ((Actor_WorldDistXYZToPoint(&player->actor, &this->actor.home.pos) < 150.0f) &&
|
||||
!(player->stateFlags1 & (PLAYER_STATE1_80 | PLAYER_STATE1_2000 | PLAYER_STATE1_4000 | PLAYER_STATE1_40000 |
|
||||
!(player->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_2000 | PLAYER_STATE1_4000 | PLAYER_STATE1_40000 |
|
||||
PLAYER_STATE1_80000 | PLAYER_STATE1_200000)) &&
|
||||
!(player->stateFlags2 & (PLAYER_STATE2_80 | PLAYER_STATE2_4000))) {
|
||||
return true;
|
||||
|
|
|
@ -137,7 +137,7 @@ void ObjMoonStone_Update(Actor* thisx, PlayState* play) {
|
|||
ObjMoonStone* this = THIS;
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
if (!(player->stateFlags1 & (PLAYER_STATE1_2 | PLAYER_STATE1_80 | PLAYER_STATE1_200 | PLAYER_STATE1_10000000))) {
|
||||
if (!(player->stateFlags1 & (PLAYER_STATE1_2 | PLAYER_STATE1_DEAD | PLAYER_STATE1_200 | PLAYER_STATE1_10000000))) {
|
||||
this->actionFunc(this, play);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4634,7 +4634,7 @@ void func_80831F34(PlayState* play, Player* this, PlayerAnimationHeader* anim) {
|
|||
this->skelAnime.endFrame = 84.0f;
|
||||
}
|
||||
|
||||
this->stateFlags1 |= PLAYER_STATE1_80;
|
||||
this->stateFlags1 |= PLAYER_STATE1_DEAD;
|
||||
|
||||
func_8082DAD4(this);
|
||||
Player_AnimSfx_PlayVoice(this, NA_SE_VO_LI_DOWN);
|
||||
|
@ -4894,7 +4894,7 @@ void func_80832888(Player* this, PlayState* play) {
|
|||
}
|
||||
|
||||
if ((play->csCtx.state != CS_STATE_IDLE) || (this->csAction != PLAYER_CSACTION_NONE) ||
|
||||
(this->stateFlags1 & (PLAYER_STATE1_80 | PLAYER_STATE1_20000000)) || (this->stateFlags3 & PLAYER_STATE3_80)) {
|
||||
(this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_20000000)) || (this->stateFlags3 & PLAYER_STATE3_80)) {
|
||||
this->unk_738 = 0;
|
||||
} else if (heldZ || (this->stateFlags2 & PLAYER_STATE2_LOCK_ON_WITH_SWITCH) || (this->autoLockOnActor != NULL)) {
|
||||
if (this->unk_738 <= 5) {
|
||||
|
@ -5303,7 +5303,8 @@ s32 (*sActionHandlerFuncs[PLAYER_ACTION_HANDLER_MAX])(Player* this, PlayState* p
|
|||
*
|
||||
*/
|
||||
s32 Player_TryActionHandlerList(PlayState* play, Player* this, s8* actionHandlerList, s32 updateUpperBody) {
|
||||
if (!(this->stateFlags1 & (PLAYER_STATE1_1 | PLAYER_STATE1_80 | PLAYER_STATE1_20000000)) && !func_8082DA90(play)) {
|
||||
if (!(this->stateFlags1 & (PLAYER_STATE1_1 | PLAYER_STATE1_DEAD | PLAYER_STATE1_20000000)) &&
|
||||
!func_8082DA90(play)) {
|
||||
if (updateUpperBody) {
|
||||
sUpperBodyIsBusy = Player_UpdateUpperBody(this, play);
|
||||
if (Player_Action_64 == this->actionFunc) {
|
||||
|
@ -5838,12 +5839,12 @@ void func_80834104(PlayState* play, Player* this) {
|
|||
}
|
||||
|
||||
void func_80834140(PlayState* play, Player* this, PlayerAnimationHeader* anim) {
|
||||
if (!(this->stateFlags1 & PLAYER_STATE1_80)) {
|
||||
if (!(this->stateFlags1 & PLAYER_STATE1_DEAD)) {
|
||||
func_80834104(play, this);
|
||||
if (func_8082DA90(play)) {
|
||||
this->av2.actionVar2 = -30;
|
||||
}
|
||||
this->stateFlags1 |= PLAYER_STATE1_80;
|
||||
this->stateFlags1 |= PLAYER_STATE1_DEAD;
|
||||
PlayerAnimation_Change(play, &this->skelAnime, anim, PLAYER_ANIM_NORMAL_SPEED, 0.0f, 84.0f, ANIMMODE_ONCE,
|
||||
-6.0f);
|
||||
this->av1.actionVar1 = 1;
|
||||
|
@ -5915,7 +5916,7 @@ s32 Player_UpdateBodyBurn(PlayState* play, Player* this) {
|
|||
this->bodyIsBurning = false;
|
||||
}
|
||||
|
||||
return this->stateFlags1 & PLAYER_STATE1_80;
|
||||
return this->stateFlags1 & PLAYER_STATE1_DEAD;
|
||||
}
|
||||
|
||||
s32 func_808344C0(PlayState* play, Player* this) {
|
||||
|
@ -6326,7 +6327,7 @@ s32 Player_HandleExitsAndVoids(PlayState* play, Player* this, CollisionPoly* pol
|
|||
s32 sp34;
|
||||
s32 sp30;
|
||||
|
||||
if ((this == GET_PLAYER(play)) && !(this->stateFlags1 & PLAYER_STATE1_80) && !func_8082DA90(play) &&
|
||||
if ((this == GET_PLAYER(play)) && !(this->stateFlags1 & PLAYER_STATE1_DEAD) && !func_8082DA90(play) &&
|
||||
(this->csAction == PLAYER_CSACTION_NONE) && !(this->stateFlags1 & PLAYER_STATE1_1)) {
|
||||
exitIndexPlusOne = 0;
|
||||
|
||||
|
@ -10518,7 +10519,7 @@ void func_80840770(PlayState* play, Player* this) {
|
|||
} else if (gSaveContext.healthAccumulator == 0) {
|
||||
Player_StopCutscene(this);
|
||||
|
||||
this->stateFlags1 &= ~PLAYER_STATE1_80;
|
||||
this->stateFlags1 &= ~PLAYER_STATE1_DEAD;
|
||||
if (this->stateFlags1 & PLAYER_STATE1_8000000) {
|
||||
func_808353DC(play, this);
|
||||
} else {
|
||||
|
@ -11495,7 +11496,7 @@ void Player_ProcessSceneCollision(PlayState* play, Player* this) {
|
|||
ceilingCheckHeight = this->ageProperties->ceilingCheckHeight;
|
||||
|
||||
if (this->stateFlags1 & (PLAYER_STATE1_20000000 | PLAYER_STATE1_80000000)) {
|
||||
if ((!(this->stateFlags1 & PLAYER_STATE1_80) && !(this->stateFlags2 & PLAYER_STATE2_4000) &&
|
||||
if ((!(this->stateFlags1 & PLAYER_STATE1_DEAD) && !(this->stateFlags2 & PLAYER_STATE2_4000) &&
|
||||
(this->stateFlags1 & PLAYER_STATE1_80000000)) ||
|
||||
spAC) {
|
||||
updBgCheckInfoFlags = UPDBGCHECKINFO_FLAG_8 | UPDBGCHECKINFO_FLAG_10 | UPDBGCHECKINFO_FLAG_20;
|
||||
|
@ -12418,7 +12419,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) {
|
|||
} else if (this->pushedSpeed != 0.0f) {
|
||||
Math_StepToF(&this->pushedSpeed, 0.0f, (this->stateFlags1 & PLAYER_STATE1_8000000) ? 0.5f : 2.0f);
|
||||
}
|
||||
if (!(this->stateFlags1 & (PLAYER_STATE1_80 | PLAYER_STATE1_20000000)) &&
|
||||
if (!(this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_20000000)) &&
|
||||
!(this->stateFlags3 & PLAYER_STATE3_80) && (Player_Action_80 != this->actionFunc)) {
|
||||
func_8083BB4C(play, this);
|
||||
if (!Play_InCsMode(play)) {
|
||||
|
@ -12633,7 +12634,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) {
|
|||
|
||||
Collider_UpdateCylinder(&this->actor, &this->cylinder);
|
||||
if (!(this->stateFlags2 & PLAYER_STATE2_4000)) {
|
||||
if (!(this->stateFlags1 & (PLAYER_STATE1_4 | PLAYER_STATE1_80 | PLAYER_STATE1_2000 | PLAYER_STATE1_4000 |
|
||||
if (!(this->stateFlags1 & (PLAYER_STATE1_4 | PLAYER_STATE1_DEAD | PLAYER_STATE1_2000 | PLAYER_STATE1_4000 |
|
||||
PLAYER_STATE1_800000)) &&
|
||||
!(this->stateFlags3 & PLAYER_STATE3_10000000)) {
|
||||
if ((Player_Action_93 != this->actionFunc) && (Player_Action_73 != this->actionFunc) &&
|
||||
|
@ -12644,7 +12645,8 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) {
|
|||
CollisionCheck_SetOC(play, &play->colChkCtx, &this->cylinder.base);
|
||||
}
|
||||
}
|
||||
if (!(this->stateFlags1 & (PLAYER_STATE1_80 | PLAYER_STATE1_4000000)) && (this->invincibilityTimer <= 0)) {
|
||||
if (!(this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_4000000)) &&
|
||||
(this->invincibilityTimer <= 0)) {
|
||||
if ((Player_Action_93 != this->actionFunc) &&
|
||||
((Player_Action_96 != this->actionFunc) || (this->av1.actionVar1 != 1))) {
|
||||
if (this->cylinder.base.atFlags != AT_NONE) {
|
||||
|
@ -12661,7 +12663,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) {
|
|||
func_801229FC(this);
|
||||
Math_Vec3f_Copy(&this->actor.home.pos, &this->actor.world.pos);
|
||||
|
||||
if ((this->stateFlags1 & (PLAYER_STATE1_80 | PLAYER_STATE1_10000000 | PLAYER_STATE1_20000000)) ||
|
||||
if ((this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_10000000 | PLAYER_STATE1_20000000)) ||
|
||||
(this != GET_PLAYER(play))) {
|
||||
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
|
||||
} else {
|
||||
|
@ -13160,7 +13162,7 @@ void func_808475B4(Player* this) {
|
|||
temp_fv0 = CLAMP(temp_fv0, -0.4f, -0.1f);
|
||||
sp4 = temp_fv0 - ((this->actor.velocity.y <= 0.0f) ? 0.0f : this->actor.velocity.y * 0.5f);
|
||||
} else {
|
||||
if (!(this->stateFlags1 & PLAYER_STATE1_80) && (this->currentBoots >= PLAYER_BOOTS_ZORA_UNDERWATER) &&
|
||||
if (!(this->stateFlags1 & PLAYER_STATE1_DEAD) && (this->currentBoots >= PLAYER_BOOTS_ZORA_UNDERWATER) &&
|
||||
(this->actor.velocity.y >= -5.0f)) {
|
||||
sp4 = -0.3f;
|
||||
} else if ((this->transformation == PLAYER_FORM_DEKU) && (this->actor.velocity.y < 0.0f)) {
|
||||
|
@ -20837,7 +20839,7 @@ void func_8085B170(PlayState* play, Player* this) {
|
|||
|
||||
s32 Player_GrabPlayer(PlayState* play, Player* this) {
|
||||
if (!Player_InBlockingCsMode(play, this) && (this->invincibilityTimer >= 0) && !func_801240DC(this)) {
|
||||
if (!(this->stateFlags1 & (PLAYER_STATE1_80 | PLAYER_STATE1_2000 | PLAYER_STATE1_4000 | PLAYER_STATE1_100000 |
|
||||
if (!(this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_2000 | PLAYER_STATE1_4000 | PLAYER_STATE1_100000 |
|
||||
PLAYER_STATE1_200000 | PLAYER_STATE1_800000))) {
|
||||
if (!(this->stateFlags2 & PLAYER_STATE2_80) && !(this->stateFlags3 & PLAYER_STATE3_80)) {
|
||||
func_8085B170(play, this);
|
||||
|
|
Loading…
Reference in New Issue