Player State Docs (#3280)

* state flags 1

* state flags 2

* state flags 3

* fill array
This commit is contained in:
inspectredc
2024-02-16 01:17:28 +00:00
committed by GitHub
parent 460ec1bb03
commit 46aea3aa7c
88 changed files with 375 additions and 347 deletions

View File

@@ -486,7 +486,7 @@ void func_8002C124(TargetContext* targetCtx, PlayState* play) {
func_8002BE64(targetCtx, targetCtx->unk_4C, spBC.x, spBC.y, spBC.z);
if ((!(player->stateFlags1 & 0x40)) || (actor != player->unk_664)) {
if ((!(player->stateFlags1 & PLAYER_STATE1_TEXT_ON_SCREEN)) || (actor != player->unk_664)) {
OVERLAY_DISP = Gfx_SetupDL(OVERLAY_DISP, 0x39);
for (spB0 = 0, spAC = targetCtx->unk_4C; spB0 < spB8; spB0++, spAC = (spAC + 1) % 3) {
@@ -1376,7 +1376,7 @@ f32 Actor_HeightDiff(Actor* actorA, Actor* actorB) {
}
f32 Player_GetHeight(Player* player) {
f32 offset = (player->stateFlags1 & 0x800000) ? 32.0f : 0.0f;
f32 offset = (player->stateFlags1 & PLAYER_STATE1_ON_HORSE) ? 32.0f : 0.0f;
if (LINK_IS_ADULT) {
return offset + 68.0f;
@@ -1386,9 +1386,9 @@ f32 Player_GetHeight(Player* player) {
}
f32 func_8002DCE4(Player* player) {
if (player->stateFlags1 & 0x800000) {
if (player->stateFlags1 & PLAYER_STATE1_ON_HORSE) {
return 8.0f;
} else if (player->stateFlags1 & 0x8000000) {
} else if (player->stateFlags1 & PLAYER_STATE1_IN_WATER) {
return (R_RUN_SPEED_LIMIT / 100.0f) * 0.6f;
} else {
return R_RUN_SPEED_LIMIT / 100.0f;
@@ -1396,7 +1396,7 @@ f32 func_8002DCE4(Player* player) {
}
s32 func_8002DD6C(Player* player) {
return player->stateFlags1 & 0x8;
return player->stateFlags1 & PLAYER_STATE1_ITEM_IN_HAND;
}
s32 func_8002DD78(Player* player) {
@@ -1406,19 +1406,19 @@ s32 func_8002DD78(Player* player) {
s32 func_8002DDA8(PlayState* play) {
Player* player = GET_PLAYER(play);
return (player->stateFlags1 & 0x800) || func_8002DD78(player);
return (player->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD) || func_8002DD78(player);
}
s32 func_8002DDE4(PlayState* play) {
Player* player = GET_PLAYER(play);
return player->stateFlags2 & 0x8;
return player->stateFlags2 & PLAYER_STATE2_FOOTSTEP;
}
s32 func_8002DDF4(PlayState* play) {
Player* player = GET_PLAYER(play);
return player->stateFlags2 & 0x1000;
return player->stateFlags2 & PLAYER_STATE2_STATIONARY_LADDER;
}
void func_8002DE04(PlayState* play, Actor* actorA, Actor* actorB) {
@@ -1440,12 +1440,12 @@ void func_8002DE74(PlayState* play, Player* player) {
void Actor_MountHorse(PlayState* play, Player* player, Actor* horse) {
player->rideActor = horse;
player->stateFlags1 |= 0x800000;
player->stateFlags1 |= PLAYER_STATE1_ON_HORSE;
horse->child = &player->actor;
}
s32 func_8002DEEC(Player* player) {
return (player->stateFlags1 & 0x20000080) || (player->csAction != 0);
return (player->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_CUTSCENE)) || (player->csAction != 0);
}
void func_8002DF18(PlayState* play, Player* player) {
@@ -2005,10 +2005,13 @@ u32 Actor_HasParent(Actor* actor, PlayState* play) {
s32 GiveItemEntryWithoutActor(PlayState* play, GetItemEntry getItemEntry) {
Player* player = GET_PLAYER(play);
if (!(player->stateFlags1 & 0x3C7080) && Player_GetExplosiveHeld(player) < 0) {
if (!(player->stateFlags1 &
(PLAYER_STATE1_DEAD | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_HANGING_OFF_LEDGE | PLAYER_STATE1_CLIMBING_LEDGE |
PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL | PLAYER_STATE1_FIRST_PERSON | PLAYER_STATE1_CLIMBING_LADDER)) &&
Player_GetExplosiveHeld(player) < 0) {
if (((player->heldActor != NULL) && ((getItemEntry.getItemId > GI_NONE) && (getItemEntry.getItemId < GI_MAX)) ||
(IS_RANDO && (getItemEntry.getItemId > RG_NONE) && (getItemEntry.getItemId < RG_MAX))) ||
(!(player->stateFlags1 & 0x20000800))) {
(!(player->stateFlags1 & (PLAYER_STATE1_ITEM_OVER_HEAD | PLAYER_STATE1_IN_CUTSCENE)))) {
if ((getItemEntry.getItemId != GI_NONE)) {
player->getItemEntry = getItemEntry;
player->getItemId = getItemEntry.getItemId;
@@ -2041,11 +2044,14 @@ s32 GiveItemEntryWithoutActor(PlayState* play, GetItemEntry getItemEntry) {
s32 GiveItemEntryFromActor(Actor* actor, PlayState* play, GetItemEntry getItemEntry, f32 xzRange, f32 yRange) {
Player* player = GET_PLAYER(play);
if (!(player->stateFlags1 & 0x3C7080) && Player_GetExplosiveHeld(player) < 0) {
if (!(player->stateFlags1 &
(PLAYER_STATE1_DEAD | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_HANGING_OFF_LEDGE | PLAYER_STATE1_CLIMBING_LEDGE |
PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL | PLAYER_STATE1_FIRST_PERSON | PLAYER_STATE1_CLIMBING_LADDER)) &&
Player_GetExplosiveHeld(player) < 0) {
if ((((player->heldActor != NULL) || (actor == player->targetActor)) &&
((!IS_RANDO && ((getItemEntry.getItemId > GI_NONE) && (getItemEntry.getItemId < GI_MAX))) ||
(IS_RANDO && ((getItemEntry.getItemId > RG_NONE) && (getItemEntry.getItemId < RG_MAX))))) ||
(!(player->stateFlags1 & 0x20000800))) {
(!(player->stateFlags1 & (PLAYER_STATE1_ITEM_OVER_HEAD | PLAYER_STATE1_IN_CUTSCENE)))) {
if ((actor->xzDistToPlayer < xzRange) && (fabsf(actor->yDistToPlayer) < yRange)) {
s16 yawDiff = actor->yawTowardsPlayer - player->actor.shape.rot.y;
s32 absYawDiff = ABS(yawDiff);
@@ -2083,10 +2089,13 @@ void GiveItemEntryFromActorWithFixedRange(Actor* actor, PlayState* play, GetItem
s32 func_8002F434(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange, f32 yRange) {
Player* player = GET_PLAYER(play);
if (!(player->stateFlags1 & 0x3C7080) && Player_GetExplosiveHeld(player) < 0) {
if (!(player->stateFlags1 &
(PLAYER_STATE1_DEAD | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_HANGING_OFF_LEDGE | PLAYER_STATE1_CLIMBING_LEDGE |
PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL | PLAYER_STATE1_FIRST_PERSON | PLAYER_STATE1_CLIMBING_LADDER)) &&
Player_GetExplosiveHeld(player) < 0) {
if ((((player->heldActor != NULL) || (actor == player->targetActor)) &&
((!IS_RANDO && ((getItemId > GI_NONE) && (getItemId < GI_MAX))) || (IS_RANDO && ((getItemId > RG_NONE) && (getItemId < RG_MAX))))) ||
(!(player->stateFlags1 & 0x20000800))) {
(!(player->stateFlags1 & (PLAYER_STATE1_ITEM_OVER_HEAD | PLAYER_STATE1_IN_CUTSCENE)))) {
if ((actor->xzDistToPlayer < xzRange) && (fabsf(actor->yDistToPlayer) < yRange)) {
s16 yawDiff = actor->yawTowardsPlayer - player->actor.shape.rot.y;
s32 absYawDiff = ABS(yawDiff);
@@ -2156,7 +2165,9 @@ s32 Actor_IsMounted(PlayState* play, Actor* horse) {
u32 Actor_SetRideActor(PlayState* play, Actor* horse, s32 mountSide) {
Player* player = GET_PLAYER(play);
if (!(player->stateFlags1 & 0x003C7880)) {
if (!(player->stateFlags1 &
(PLAYER_STATE1_DEAD | PLAYER_STATE1_ITEM_OVER_HEAD | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_HANGING_OFF_LEDGE |
PLAYER_STATE1_CLIMBING_LEDGE | PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL | PLAYER_STATE1_FIRST_PERSON | PLAYER_STATE1_CLIMBING_LADDER))) {
player->rideActor = horse;
player->mountSide = mountSide;
return true;
@@ -2501,8 +2512,18 @@ void func_800304DC(PlayState* play, ActorContext* actorCtx, ActorEntry* actorEnt
}
u32 D_80116068[ACTORCAT_MAX] = {
0x100000C0, 0x100000C0, 0x00000000, 0x100004C0, 0x00000080, 0x300000C0,
0x10000080, 0x00000000, 0x300000C0, 0x100004C0, 0x00000000, 0x100000C0,
PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
0,
PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_GETTING_ITEM | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
PLAYER_STATE1_DEAD,
PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE,
PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
0,
PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE,
PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_GETTING_ITEM | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
0,
PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
};
void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) {
@@ -2543,11 +2564,11 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) {
sp80 = &D_80116068[0];
if (player->stateFlags2 & 0x8000000) {
if (player->stateFlags2 & PLAYER_STATE2_OCARINA_PLAYING) {
unkFlag = ACTOR_FLAG_NO_FREEZE_OCARINA;
}
if ((player->stateFlags1 & 0x40) && ((player->actor.textId & 0xFF00) != 0x600)) {
if ((player->stateFlags1 & PLAYER_STATE1_TEXT_ON_SCREEN) && ((player->actor.textId & 0xFF00) != 0x600)) {
sp74 = player->targetActor;
}
@@ -3891,7 +3912,7 @@ s16 Actor_TestFloorInDirection(Actor* actor, PlayState* play, f32 distance, s16
s32 Actor_IsTargeted(PlayState* play, Actor* actor) {
Player* player = GET_PLAYER(play);
if ((player->stateFlags1 & 0x10) && actor->isTargeted) {
if ((player->stateFlags1 & PLAYER_STATE1_ENEMY_TARGET) && actor->isTargeted) {
return true;
} else {
return false;
@@ -3904,7 +3925,7 @@ s32 Actor_IsTargeted(PlayState* play, Actor* actor) {
s32 Actor_OtherIsTargeted(PlayState* play, Actor* actor) {
Player* player = GET_PLAYER(play);
if ((player->stateFlags1 & 0x10) && !actor->isTargeted) {
if ((player->stateFlags1 & PLAYER_STATE1_ENEMY_TARGET) && !actor->isTargeted) {
return true;
} else {
return false;

View File

@@ -522,7 +522,7 @@ s32 Camera_GetWaterBoxDataIdx(Camera* camera, f32* waterY) {
return -1;
}
if (!(camera->player->stateFlags1 & 0x8000000)) {
if (!(camera->player->stateFlags1 & PLAYER_STATE1_IN_WATER)) {
// player is not swimming
*waterY = BGCHECK_Y_MIN;
return -1;
@@ -1031,7 +1031,7 @@ s32 Camera_CalcAtForParallel(Camera* camera, VecSph* arg1, f32 yOffset, f32* arg
}
if (camera->playerGroundY == camera->playerPosRot.pos.y || camera->player->actor.gravity > -0.1f ||
camera->player->stateFlags1 & 0x200000) {
camera->player->stateFlags1 & PLAYER_STATE1_CLIMBING_LADDER) {
*arg3 = Camera_LERPCeilF(playerPosRot->pos.y, *arg3, PCT(OREG(43)), 0.1f);
phi_f20 = playerPosRot->pos.y - *arg3;
posOffsetTarget.y -= phi_f20;
@@ -1134,7 +1134,7 @@ s32 Camera_CalcAtForLockOn(Camera* camera, VecSph* eyeAtDir, Vec3f* targetPos, f
tmpPos0.z = tmpPos0.z + lookFromOffset.z;
if (camera->playerGroundY == camera->playerPosRot.pos.y || camera->player->actor.gravity > -0.1f ||
camera->player->stateFlags1 & 0x200000) {
camera->player->stateFlags1 & PLAYER_STATE1_CLIMBING_LADDER) {
*yPosOffset = Camera_LERPCeilF(playerPosRot->pos.y, *yPosOffset, PCT(OREG(43)), 0.1f);
yPosDelta = playerPosRot->pos.y - *yPosOffset;
tmpPos0.y -= yPosDelta;
@@ -2203,7 +2203,7 @@ s32 Camera_Parallel1(Camera* camera) {
}
if (camera->playerGroundY == camera->playerPosRot.pos.y || camera->player->actor.gravity > -0.1f ||
camera->player->stateFlags1 & 0x200000) {
camera->player->stateFlags1 & PLAYER_STATE1_CLIMBING_LADDER) {
anim->yTarget = playerPosRot->pos.y;
sp6A = 0;
} else {
@@ -2907,7 +2907,7 @@ s32 Camera_Battle1(Camera* camera) {
sp78 = batt1->swingPitchFinal;
fov = batt1->fov;
if (camera->player->stateFlags1 & 0x1000) {
if (camera->player->stateFlags1 & PLAYER_STATE1_CHARGING_SPIN_ATTACK) {
// charging sword.
anim->unk_10 = Camera_LERPCeilF(PCT(OREG(12)) * 0.5f, anim->unk_10, PCT(OREG(25)), 0.1f);
camera->xzOffsetUpdateRate = Camera_LERPCeilF(0.2f, camera->xzOffsetUpdateRate, PCT(OREG(25)), 0.1f);
@@ -2978,7 +2978,7 @@ s32 Camera_Battle1(Camera* camera) {
}
if (camera->playerGroundY == camera->playerPosRot.pos.y || camera->player->actor.gravity > -0.1f ||
camera->player->stateFlags1 & 0x200000) {
camera->player->stateFlags1 & PLAYER_STATE1_CLIMBING_LADDER) {
isOffGround = false;
anim->yPosOffset = playerPosRot->pos.y;
} else {
@@ -3303,7 +3303,7 @@ s32 Camera_KeepOn1(Camera* camera) {
anim->unk_0C = NULL;
cont:
if (camera->playerGroundY == camera->playerPosRot.pos.y || camera->player->actor.gravity > -0.1f ||
camera->player->stateFlags1 & 0x200000) {
camera->player->stateFlags1 & PLAYER_STATE1_CLIMBING_LADDER) {
anim->unk_08 = playerPosRot->pos.y;
sp80 = 0;
} else {
@@ -3724,7 +3724,7 @@ s32 Camera_KeepOn4(Camera* camera) {
keep4->unk_04 = playerHeight * 1.6f * yNormal;
keep4->unk_08 = -2.0f;
keep4->unk_0C = 120.0f;
keep4->unk_10 = player->stateFlags1 & 0x8000000 ? 0.0f : 20.0f;
keep4->unk_10 = player->stateFlags1 & PLAYER_STATE1_IN_WATER ? 0.0f : 20.0f;
keep4->unk_1C = 0x3212;
keep4->unk_1E = 0x1E;
keep4->unk_18 = 50.0f;
@@ -4982,7 +4982,7 @@ s32 Camera_Unique0(Camera* camera) {
camera->animState++;
}
if (player->stateFlags1 & 0x20000000) {
if (player->stateFlags1 & PLAYER_STATE1_IN_CUTSCENE) {
anim->initalPos = playerPosRot->pos;
}
@@ -4990,7 +4990,7 @@ s32 Camera_Unique0(Camera* camera) {
if (anim->animTimer > 0) {
anim->animTimer--;
anim->initalPos = playerPosRot->pos;
} else if ((!(player->stateFlags1 & 0x20000000)) &&
} else if ((!(player->stateFlags1 & PLAYER_STATE1_IN_CUTSCENE)) &&
((OLib_Vec3fDistXZ(&playerPosRot->pos, &anim->initalPos) >= 10.0f) ||
CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_A) ||
CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_B) ||
@@ -5018,7 +5018,7 @@ s32 Camera_Unique0(Camera* camera) {
anim->initalPos = playerPosRot->pos;
}
if ((!(player->stateFlags1 & 0x20000000)) &&
if ((!(player->stateFlags1 & PLAYER_STATE1_IN_CUTSCENE)) &&
((0.001f < camera->xzSpeed) || CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_A) ||
CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_B) ||
CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CLEFT) ||
@@ -5235,7 +5235,7 @@ s32 Camera_Unique9(Camera* camera) {
D_8011D3AC = anim->curKeyFrame->unk_01 & 0xF;
} else if ((anim->curKeyFrame->unk_01 & 0xF0) == 0xC0) {
Camera_UpdateInterface(0xF000 | ((anim->curKeyFrame->unk_01 & 0xF) << 8));
} else if (camera->player->stateFlags1 & 0x8000000 && player->currentBoots != PLAYER_BOOTS_IRON) {
} else if (camera->player->stateFlags1 & PLAYER_STATE1_IN_WATER && player->currentBoots != PLAYER_BOOTS_IRON) {
func_8002DF38(camera->play, camera->target, 8);
osSyncPrintf("camera: demo: player demo set WAIT\n");
} else {
@@ -5610,7 +5610,7 @@ s32 Camera_Unique9(Camera* camera) {
// Set the player's position
camera->player->actor.world.pos.x = anim->playerPos.x;
camera->player->actor.world.pos.z = anim->playerPos.z;
if (camera->player->stateFlags1 & 0x8000000 && player->currentBoots != PLAYER_BOOTS_IRON) {
if (camera->player->stateFlags1 & PLAYER_STATE1_IN_WATER && player->currentBoots != PLAYER_BOOTS_IRON) {
camera->player->actor.world.pos.y = anim->playerPos.y;
}
} else {
@@ -6171,16 +6171,16 @@ s32 Camera_Demo5(Camera* camera) {
sDemo5PrevSfxFrame = camera->play->state.frames;
if (camera->player->stateFlags1 & 0x8000000 && (player->currentBoots != PLAYER_BOOTS_IRON)) {
if (camera->player->stateFlags1 & PLAYER_STATE1_IN_WATER && (player->currentBoots != PLAYER_BOOTS_IRON)) {
// swimming, and not iron boots
player->stateFlags1 |= 0x20000000;
player->stateFlags1 |= PLAYER_STATE1_IN_CUTSCENE;
// env frozen
player->actor.freezeTimer = camera->timer;
} else {
sp4A = playerhead.rot.y - playerTargetGeo.yaw;
if (camera->target->category == ACTORCAT_PLAYER) {
pad = camera->play->state.frames - sDemo5PrevAction12Frame;
if (player->stateFlags1 & 0x800) {
if (player->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD) {
// holding object over head.
func_8002DF54(camera->play, camera->target, 8);
} else if (ABS(pad) > 3000) {
@@ -7240,7 +7240,7 @@ s32 Camera_UpdateWater(Camera* camera) {
}
if (camera->unk_14C & 0x200) {
if (player->stateFlags2 & 0x800) {
if (player->stateFlags2 & PLAYER_STATE2_DIVING) {
Camera_ChangeSettingFlags(camera, CAM_SET_PIVOT_WATER_SURFACE, 6);
camera->unk_14C |= (s16)0x8000;
} else if (camera->unk_14C & (s16)0x8000) {
@@ -7730,7 +7730,7 @@ void Camera_Finish(Camera* camera) {
if ((camera->parentCamIdx == MAIN_CAM) && (camera->csId != 0)) {
player->actor.freezeTimer = 0;
player->stateFlags1 &= ~0x20000000;
player->stateFlags1 &= ~PLAYER_STATE1_IN_CUTSCENE;
if (player->csAction != 0) {
func_8002DF54(camera->play, &player->actor, 7);

View File

@@ -788,7 +788,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 camIdx, s16 csId, Actor* actor
func_8002DF54(play, NULL, 8);
func_800C0808(play, camIdx, player, CAM_SET_CS_C);
player->stateFlags1 |= 0x20000000;
player->stateFlags1 |= PLAYER_STATE1_IN_CUTSCENE;
player->actor.freezeTimer = 90;
i = Quake_Add(csCam, 1);
@@ -990,7 +990,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 camIdx, s16 csId, Actor* actor
if (func_800C0CB8(play)) {
D_801231B4[0].eyeTargetInit.z = D_801231B4[1].eyeTargetInit.z = !LINK_IS_ADULT ? 100.0f : 120.0f;
if (player->stateFlags1 & 0x08000000) {
if (player->stateFlags1 & PLAYER_STATE1_IN_WATER) {
D_801231B4[2].atTargetInit.z = 0.0f;
}
Actor_GetWorldPosShapeRot(&spA0, &player->actor);

View File

@@ -3837,7 +3837,7 @@ void Interface_DrawEnemyHealthBar(TargetContext* targetCtx, PlayState* play) {
Interface_CreateQuadVertexGroup(&sEnemyHealthVtx[12], -floorf(halfBarWidth) + endTexWidth, (-texHeight / 2) + 3,
healthBarFill, 7, 0);
if (((!(player->stateFlags1 & 0x40)) || (actor != player->unk_664)) && targetCtx->unk_44 < 500.0f) {
if (((!(player->stateFlags1 & PLAYER_STATE1_TEXT_ON_SCREEN)) || (actor != player->unk_664)) && targetCtx->unk_44 < 500.0f) {
f32 slideInOffsetY = 0;
// Slide in the health bar from edge of the screen (mimic the Z-Target triangles fly in)
@@ -4316,7 +4316,7 @@ void Interface_DrawItemButtons(PlayState* play) {
if ((gSaveContext.unk_13EA == 1) || (gSaveContext.unk_13EA == 2) || (gSaveContext.unk_13EA == 5)) {
temp = 0;
} else if ((player->stateFlags1 & 0x00200000) || (Player_GetEnvironmentalHazard(play) == 4) ||
} else if ((player->stateFlags1 & PLAYER_STATE1_CLIMBING_LADDER) || (Player_GetEnvironmentalHazard(play) == 4) ||
(player->stateFlags2 & PLAYER_STATE2_CRAWLING)) {
temp = 70;
} else {
@@ -5389,7 +5389,7 @@ void Interface_Draw(PlayState* play) {
Interface_DrawItemIconTexture(play, gItemIcons[gSaveContext.equips.buttonItems[0]], 0);
}
if ((player->stateFlags1 & 0x00800000) || (play->shootingGalleryStatus > 1) ||
if ((player->stateFlags1 & PLAYER_STATE1_ON_HORSE) || (play->shootingGalleryStatus > 1) ||
((play->sceneNum == SCENE_BOMBCHU_BOWLING_ALLEY) && Flags_GetSwitch(play, 0x38))) {
if (!fullUi) {
@@ -5854,7 +5854,7 @@ void Interface_Draw(PlayState* play) {
if ((play->pauseCtx.state == 0) && (play->pauseCtx.debugState == 0) &&
(play->gameOverCtx.state == GAMEOVER_INACTIVE) && (msgCtx->msgMode == MSGMODE_NONE) &&
!(player->stateFlags2 & 0x01000000) && (play->transitionTrigger == TRANS_TRIGGER_OFF) &&
!(player->stateFlags2 & PLAYER_STATE2_ATTEMPT_PLAY_FOR_ACTOR) && (play->transitionTrigger == TRANS_TRIGGER_OFF) &&
(play->transitionMode == TRANS_MODE_OFF) && !Play_InCsMode(play) && (gSaveContext.minigameState != 1) &&
(play->shootingGalleryStatus <= 1) &&
!((play->sceneNum == SCENE_BOMBCHU_BOWLING_ALLEY) && Flags_GetSwitch(play, 0x38))) {
@@ -6546,7 +6546,7 @@ void Interface_Update(PlayState* play) {
HealthMeter_Update(play);
if ((gSaveContext.timer1State >= 3) && (play->pauseCtx.state == 0) && (play->pauseCtx.debugState == 0) &&
(msgCtx->msgMode == MSGMODE_NONE) && !(player->stateFlags2 & 0x01000000) && (play->transitionTrigger == TRANS_TRIGGER_OFF) &&
(msgCtx->msgMode == MSGMODE_NONE) && !(player->stateFlags2 & PLAYER_STATE2_ATTEMPT_PLAY_FOR_ACTOR) && (play->transitionTrigger == TRANS_TRIGGER_OFF) &&
(play->transitionMode == TRANS_MODE_OFF) && !Play_InCsMode(play)) {}
if (gSaveContext.rupeeAccumulator != 0) {

View File

@@ -526,7 +526,7 @@ void Player_SetBootData(PlayState* play, Player* this) {
currentBoots = PLAYER_BOOTS_KOKIRI_CHILD;
}
} else if (currentBoots == PLAYER_BOOTS_IRON) {
if (this->stateFlags1 & 0x8000000) {
if (this->stateFlags1 & PLAYER_STATE1_IN_WATER) {
currentBoots = PLAYER_BOOTS_IRON_UNDERWATER;
}
REG(27) = 500;
@@ -564,8 +564,8 @@ uint8_t Player_IsCustomLinkModel() {
}
s32 Player_InBlockingCsMode(PlayState* play, Player* this) {
return (this->stateFlags1 & 0x20000080) || (this->csAction != 0) || (play->transitionTrigger == TRANS_TRIGGER_START) ||
(this->stateFlags1 & 1) || (this->stateFlags3 & 0x80) ||
return (this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_CUTSCENE)) || (this->csAction != 0) || (play->transitionTrigger == TRANS_TRIGGER_START) ||
(this->stateFlags1 & PLAYER_STATE1_LOADING) || (this->stateFlags3 & PLAYER_STATE3_HOOKSHOT_TRAVELLING) ||
((gSaveContext.magicState != MAGIC_STATE_IDLE) && (Player_ActionToMagicSpell(this, this->itemAction) >= 0));
}
@@ -576,7 +576,7 @@ s32 Player_InCsMode(PlayState* play) {
}
s32 func_8008E9C4(Player* this) {
return (this->stateFlags1 & 0x10);
return (this->stateFlags1 & PLAYER_STATE1_ENEMY_TARGET);
}
s32 Player_IsChildWithHylianShield(Player* this) {
@@ -595,7 +595,7 @@ s32 Player_ActionToModelGroup(Player* this, s32 actionParam) {
}
void Player_SetModelsForHoldingShield(Player* this) {
if ((this->stateFlags1 & 0x400000) &&
if ((this->stateFlags1 & PLAYER_STATE1_SHIELDING) &&
((this->itemAction < 0) || (this->itemAction == this->heldItemAction))) {
if ((CVarGetInteger("gShieldTwoHanded", 0) && (this->heldItemAction != PLAYER_IA_DEKU_STICK) ||
!Player_HoldsTwoHandedWeapon(this)) && !Player_IsChildWithHylianShield(this)) {
@@ -737,15 +737,15 @@ void Player_UpdateBottleHeld(PlayState* play, Player* this, s32 item, s32 action
void func_8008EDF0(Player* this) {
this->unk_664 = NULL;
this->stateFlags2 &= ~0x2000;
this->stateFlags2 &= ~PLAYER_STATE2_SWITCH_TARGETING;
}
void func_8008EE08(Player* this) {
if ((this->actor.bgCheckFlags & 1) || (this->stateFlags1 & 0x8A00000) ||
(!(this->stateFlags1 & 0xC0000) && ((this->actor.world.pos.y - this->actor.floorHeight) < 100.0f))) {
this->stateFlags1 &= ~0x400F8000;
} else if (!(this->stateFlags1 & 0x2C0000)) {
this->stateFlags1 |= 0x80000;
if ((this->actor.bgCheckFlags & 1) || (this->stateFlags1 & (PLAYER_STATE1_CLIMBING_LADDER | PLAYER_STATE1_ON_HORSE | PLAYER_STATE1_IN_WATER)) ||
(!(this->stateFlags1 & (PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL)) && ((this->actor.world.pos.y - this->actor.floorHeight) < 100.0f))) {
this->stateFlags1 &= ~(PLAYER_STATE1_TARGETING | PLAYER_STATE1_TARGET_LOCKED | PLAYER_STATE1_TARGET_NOTHING | PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL | PLAYER_STATE1_30);
} else if (!(this->stateFlags1 & (PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL | PLAYER_STATE1_CLIMBING_LADDER))) {
this->stateFlags1 |= PLAYER_STATE1_FREEFALL;
}
func_8008EDF0(this);
@@ -757,7 +757,7 @@ void func_8008EEAC(PlayState* play, Actor* actor) {
func_8008EE08(this);
this->unk_664 = actor;
this->unk_684 = actor;
this->stateFlags1 |= 0x10000;
this->stateFlags1 |= PLAYER_STATE1_TARGET_LOCKED;
Camera_SetParam(Play_GetCamera(play, 0), 8, actor);
Camera_ChangeMode(Play_GetCamera(play, 0), 2);
}
@@ -765,7 +765,7 @@ void func_8008EEAC(PlayState* play, Actor* actor) {
s32 func_8008EF30(PlayState* play) {
Player* this = GET_PLAYER(play);
return (this->stateFlags1 & 0x800000);
return (this->stateFlags1 & PLAYER_STATE1_ON_HORSE);
}
s32 func_8008EF44(PlayState* play, s32 ammo) {
@@ -942,7 +942,7 @@ s32 Player_GetEnvironmentalHazard(PlayState* play) {
} else if ((this->underwaterTimer > 80) &&
((this->currentBoots == PLAYER_BOOTS_IRON) || (this->underwaterTimer >= 300))) { // Deep underwater
var = ((this->currentBoots == PLAYER_BOOTS_IRON) && (this->actor.bgCheckFlags & 1)) ? 1 : 3;
} else if (this->stateFlags1 & 0x8000000) { // Swimming
} else if (this->stateFlags1 & PLAYER_STATE1_IN_WATER) { // Swimming
var = 2;
} else {
return 0;
@@ -1171,7 +1171,7 @@ void func_8008F87C(PlayState* play, Player* this, SkelAnime* skelAnime, Vec3f* p
s16 temp2;
s32 temp3;
if ((this->actor.scale.y >= 0.0f) && !(this->stateFlags1 & 0x80) &&
if ((this->actor.scale.y >= 0.0f) && !(this->stateFlags1 & PLAYER_STATE1_DEAD) &&
(Player_ActionToMagicSpell(this, this->itemAction) < 0)) {
s32 pad;
@@ -1367,10 +1367,10 @@ s32 Player_OverrideLimbDrawGameplayDefault(PlayState* play, s32 limbIndex, Gfx**
if ((sLeftHandType == PLAYER_MODELTYPE_LH_BGS) && (gSaveContext.swordHealth <= 0.0f)) {
dLists += 4;
} else if ((sLeftHandType == PLAYER_MODELTYPE_LH_BOOMERANG) && (this->stateFlags1 & 0x2000000)) {
} else if ((sLeftHandType == PLAYER_MODELTYPE_LH_BOOMERANG) && (this->stateFlags1 & PLAYER_STATE1_THREW_BOOMERANG)) {
dLists = &gPlayerLeftHandOpenDLs[gSaveContext.linkAge];
sLeftHandType = 0;
} else if ((this->leftHandType == PLAYER_MODELTYPE_LH_OPEN) && (this->actor.speedXZ > 2.0f) && !(this->stateFlags1 & 0x8000000)) {
sLeftHandType = PLAYER_MODELTYPE_LH_OPEN;
} else if ((this->leftHandType == PLAYER_MODELTYPE_LH_OPEN) && (this->actor.speedXZ > 2.0f) && !(this->stateFlags1 & PLAYER_STATE1_IN_WATER)) {
dLists = &gPlayerLeftHandClosedDLs[gSaveContext.linkAge];
sLeftHandType = PLAYER_MODELTYPE_LH_CLOSED;
}
@@ -1381,7 +1381,7 @@ s32 Player_OverrideLimbDrawGameplayDefault(PlayState* play, s32 limbIndex, Gfx**
if (sRightHandType == PLAYER_MODELTYPE_RH_SHIELD) {
dLists += this->currentShield * 4;
} else if ((this->rightHandType == PLAYER_MODELTYPE_RH_OPEN) && (this->actor.speedXZ > 2.0f) && !(this->stateFlags1 & 0x8000000)) {
} else if ((this->rightHandType == PLAYER_MODELTYPE_RH_OPEN) && (this->actor.speedXZ > 2.0f) && !(this->stateFlags1 & PLAYER_STATE1_IN_WATER)) {
dLists = &sPlayerRightHandClosedDLs[gSaveContext.linkAge];
sRightHandType = PLAYER_MODELTYPE_RH_CLOSED;
}
@@ -1510,7 +1510,7 @@ void Player_UpdateShieldCollider(PlayState* play, Player* this, ColliderQuad* co
COLTYPE_METAL,
};
if (this->stateFlags1 & 0x400000) {
if (this->stateFlags1 & PLAYER_STATE1_SHIELDING) {
Vec3f quadDest[4];
this->shieldQuad.base.colType = shieldColTypes[this->currentShield];
@@ -1544,12 +1544,12 @@ void func_800906D4(PlayState* play, Player* this, Vec3f* newTipPos) {
Matrix_MultVec3f(&D_801260A4[2], &newBasePos[2]);
if (func_80090480(play, NULL, &this->meleeWeaponInfo[0], &newTipPos[0], &newBasePos[0]) &&
!(this->stateFlags1 & 0x400000)) {
!(this->stateFlags1 & PLAYER_STATE1_SHIELDING)) {
EffectBlure_AddVertex(Effect_GetByIndex(this->meleeWeaponEffectIndex), &this->meleeWeaponInfo[0].tip,
&this->meleeWeaponInfo[0].base);
}
if ((this->meleeWeaponState > 0) && ((this->meleeWeaponAnimation < 0x18) || (this->stateFlags2 & 0x20000))) {
if ((this->meleeWeaponState > 0) && ((this->meleeWeaponAnimation < 0x18) || (this->stateFlags2 & PLAYER_STATE2_SPIN_ATTACKING))) {
func_80090480(play, &this->meleeWeaponQuads[0], &this->meleeWeaponInfo[1], &newTipPos[1], &newBasePos[1]);
func_80090480(play, &this->meleeWeaponQuads[1], &this->meleeWeaponInfo[2], &newTipPos[2], &newBasePos[2]);
}
@@ -1818,13 +1818,13 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
if (this->actor.scale.y >= 0.0f) {
if (!Player_HoldsHookshot(this) && ((hookedActor = this->heldActor) != NULL)) {
if (this->stateFlags1 & 0x200) {
if (this->stateFlags1 & PLAYER_STATE1_READY_TO_FIRE) {
Matrix_MultVec3f(&sLeftHandArrowVec3, &hookedActor->world.pos);
Matrix_RotateZYX(0x69E8, -0x5708, 0x458E, MTXMODE_APPLY);
Matrix_Get(&sp14C);
Matrix_MtxFToYXZRotS(&sp14C, &hookedActor->world.rot, 0);
hookedActor->shape.rot = hookedActor->world.rot;
} else if (this->stateFlags1 & 0x800) {
} else if (this->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD) {
Vec3s spB8;
Matrix_Get(&sp14C);
@@ -1858,7 +1858,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
Matrix_Push();
Matrix_Translate(stringData->pos.x, stringData->pos.y, stringData->pos.z, MTXMODE_APPLY);
if ((this->stateFlags1 & 0x200) && (this->unk_860 >= 0) && (this->unk_834 <= 10)) {
if ((this->stateFlags1 & PLAYER_STATE1_READY_TO_FIRE) && (this->unk_860 >= 0) && (this->unk_834 <= 10)) {
Vec3f sp90;
f32 distXYZ;
@@ -1938,7 +1938,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
}
if ((this->unk_862 != 0) || ((func_8002DD6C(this) == 0) && (heldActor != NULL))) {
if (!(this->stateFlags1 & 0x400) && (this->unk_862 != 0) && (this->exchangeItemId != EXCH_ITEM_NONE)) {
if (!(this->stateFlags1 & PLAYER_STATE1_GETTING_ITEM) && (this->unk_862 != 0) && (this->exchangeItemId != EXCH_ITEM_NONE)) {
Math_Vec3f_Copy(&sGetItemRefPos, &this->leftHandPos);
} else {
sGetItemRefPos.x = (this->bodyPartsPos[15].x + this->leftHandPos.x) * 0.5f;