Some documentation changes for zplayer (#3172)

* Documentation changes for zplayer

* Update soh/include/z64player.h

Co-authored-by: Adam Bird <Archez@users.noreply.github.com>

---------

Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
This commit is contained in:
Garrett Cox 2023-09-15 13:39:46 -05:00 committed by GitHub
parent a4b5d569b1
commit c11a6a17e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
47 changed files with 576 additions and 576 deletions

View File

@ -472,7 +472,7 @@ void func_8002F6D4(PlayState* play, Actor* actor, f32 arg2, s16 arg3, f32 arg4,
void func_8002F71C(PlayState* play, Actor* actor, f32 arg2, s16 arg3, f32 arg4);
void func_8002F758(PlayState* play, Actor* actor, f32 arg2, s16 arg3, f32 arg4, u32 arg5);
void func_8002F7A0(PlayState* play, Actor* actor, f32 arg2, s16 arg3, f32 arg4);
void func_8002F7DC(Actor* actor, u16 sfxId);
void Player_PlaySfx(Actor* actor, u16 sfxId);
void Audio_PlayActorSound2(Actor* actor, u16 sfxId);
void func_8002F850(PlayState* play, Actor* actor);
void func_8002F8F0(Actor* actor, u16 sfxId);
@ -1132,8 +1132,8 @@ s32 Player_HoldsHookshot(Player* player);
s32 Player_HoldsBow(Player* player);
s32 Player_HoldsSlingshot(Player* player);
s32 func_8008F128(Player* player);
s32 Player_ActionToSword(s32 actionParam);
s32 Player_GetSwordHeld(Player* player);
s32 Player_ActionToMeleeWeapon(s32 actionParam);
s32 Player_GetMeleeWeaponHeld(Player* player);
s32 Player_HoldsTwoHandedWeapon(Player* player);
s32 Player_HoldsBrokenKnife(Player* player);
s32 Player_ActionToBottle(Player* player, s32 actionParam);
@ -1141,19 +1141,19 @@ s32 Player_GetBottleHeld(Player* player);
s32 Player_ActionToExplosive(Player* player, s32 actionParam);
s32 Player_GetExplosiveHeld(Player* player);
s32 func_8008F2BC(Player* player, s32 actionParam);
s32 func_8008F2F8(PlayState* play);
void func_8008F470(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dListCount, s32 lod, s32 tunic,
s32 Player_GetEnvironmentalHazard(PlayState* play);
void Player_DrawImpl(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dListCount, s32 lod, s32 tunic,
s32 boots, s32 face, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, void* this);
s32 func_8008FCC8(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* data);
s32 func_80090014(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* data);
s32 func_800902F0(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* data);
s32 func_80090440(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* data);
s32 Player_OverrideLimbDrawGameplayCommon(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* data);
s32 Player_OverrideLimbDrawGameplayDefault(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* data);
s32 Player_OverrideLimbDrawGameplayFirstPerson(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* data);
s32 Player_OverrideLimbDrawGameplayCrawling(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* data);
u8 func_80090480(PlayState* play, ColliderQuad* collider, WeaponInfo* weaponDim, Vec3f* newTip,
Vec3f* newBase);
void Player_DrawGetItem(PlayState* play, Player* player);
void func_80090D20(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* data);
void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* data);
u32 func_80091738(PlayState* play, u8* segment, SkelAnime* skelAnime);
void func_8009214C(PlayState* play, u8* segment, SkelAnime* skelAnime, Vec3f* pos, Vec3s* rot, f32 scale,
void Player_DrawPause(PlayState* play, u8* segment, SkelAnime* skelAnime, Vec3f* pos, Vec3s* rot, f32 scale,
s32 sword, s32 tunic, s32 shield, s32 boots);
void PreNMI_Init(GameState* thisx);
Vec3f* Quake_AddVec(Vec3f* dst, Vec3f* arg1, VecSph* arg2);

View File

@ -83,10 +83,10 @@ extern "C"
extern s16 gSpoilingItemReverts[3];
extern FlexSkeletonHeader* gPlayerSkelHeaders[2];
extern u8 gPlayerModelTypes[][5];
extern Gfx* D_80125DE8[];
extern Gfx* D_80125E08[];
extern Gfx* D_80125E18[];
extern Gfx* D_80125EF8[];
extern Gfx* gPlayerLeftHandBgsDLs[];
extern Gfx* gPlayerLeftHandOpenDLs[];
extern Gfx* gPlayerLeftHandClosedDLs[];
extern Gfx* gPlayerLeftHandBoomerangDLs[];
extern Gfx gCullBackDList[];
extern Gfx gCullFrontDList[];
extern Gfx gEmptyDL[];

View File

@ -13,7 +13,7 @@ typedef enum {
/* 0 */ PLAYER_SWORD_NONE,
/* 1 */ PLAYER_SWORD_KOKIRI,
/* 2 */ PLAYER_SWORD_MASTER,
/* 3 */ PLAYER_SWORD_BGS,
/* 3 */ PLAYER_SWORD_BIGGORON,
/* 4 */ PLAYER_SWORD_MAX
} PlayerSword;
@ -70,8 +70,8 @@ typedef enum {
/* 0x02 */ PLAYER_IA_FISHING_POLE,
/* 0x03 */ PLAYER_IA_SWORD_MASTER,
/* 0x04 */ PLAYER_IA_SWORD_KOKIRI,
/* 0x05 */ PLAYER_IA_SWORD_BGS,
/* 0x06 */ PLAYER_IA_STICK,
/* 0x05 */ PLAYER_IA_SWORD_BIGGORON,
/* 0x06 */ PLAYER_IA_DEKU_STICK,
/* 0x07 */ PLAYER_IA_HAMMER,
/* 0x08 */ PLAYER_IA_BOW,
/* 0x09 */ PLAYER_IA_BOW_FIRE,
@ -92,33 +92,33 @@ typedef enum {
/* 0x18 */ PLAYER_IA_FARORES_WIND,
/* 0x19 */ PLAYER_IA_NAYRUS_LOVE,
/* 0x1A */ PLAYER_IA_DINS_FIRE,
/* 0x1B */ PLAYER_IA_NUT,
/* 0x1B */ PLAYER_IA_DEKU_NUT,
/* 0x1C */ PLAYER_IA_OCARINA_FAIRY,
/* 0x1D */ PLAYER_IA_OCARINA_TIME,
/* 0x1D */ PLAYER_IA_OCARINA_OF_TIME,
/* 0x1E */ PLAYER_IA_BOTTLE,
/* 0x1F */ PLAYER_IA_BOTTLE_FISH,
/* 0x20 */ PLAYER_IA_BOTTLE_FIRE,
/* 0x21 */ PLAYER_IA_BOTTLE_BUG,
/* 0x22 */ PLAYER_IA_BOTTLE_POE,
/* 0x23 */ PLAYER_IA_BOTTLE_BIG_POE,
/* 0x24 */ PLAYER_IA_BOTTLE_LETTER,
/* 0x24 */ PLAYER_IA_BOTTLE_RUTOS_LETTER,
/* 0x25 */ PLAYER_IA_BOTTLE_POTION_RED,
/* 0x26 */ PLAYER_IA_BOTTLE_POTION_BLUE,
/* 0x27 */ PLAYER_IA_BOTTLE_POTION_GREEN,
/* 0x28 */ PLAYER_IA_BOTTLE_MILK,
/* 0x28 */ PLAYER_IA_BOTTLE_MILK_FULL,
/* 0x29 */ PLAYER_IA_BOTTLE_MILK_HALF,
/* 0x2A */ PLAYER_IA_BOTTLE_FAIRY,
/* 0x2B */ PLAYER_IA_LETTER_ZELDA,
/* 0x2B */ PLAYER_IA_ZELDAS_LETTER,
/* 0x2C */ PLAYER_IA_WEIRD_EGG,
/* 0x2D */ PLAYER_IA_CHICKEN,
/* 0x2E */ PLAYER_IA_BEAN,
/* 0x2E */ PLAYER_IA_MAGIC_BEAN,
/* 0x2F */ PLAYER_IA_POCKET_EGG,
/* 0x30 */ PLAYER_IA_POCKET_CUCCO,
/* 0x31 */ PLAYER_IA_COJIRO,
/* 0x32 */ PLAYER_IA_ODD_MUSHROOM,
/* 0x33 */ PLAYER_IA_ODD_POTION,
/* 0x34 */ PLAYER_IA_SAW,
/* 0x35 */ PLAYER_IA_SWORD_BROKEN,
/* 0x34 */ PLAYER_IA_POACHERS_SAW,
/* 0x35 */ PLAYER_IA_BROKEN_GORONS_SWORD,
/* 0x36 */ PLAYER_IA_PRESCRIPTION,
/* 0x37 */ PLAYER_IA_FROG,
/* 0x38 */ PLAYER_IA_EYEDROPS,
@ -126,12 +126,12 @@ typedef enum {
/* 0x3A */ PLAYER_IA_MASK_KEATON,
/* 0x3B */ PLAYER_IA_MASK_SKULL,
/* 0x3C */ PLAYER_IA_MASK_SPOOKY,
/* 0x3D */ PLAYER_IA_MASK_BUNNY,
/* 0x3D */ PLAYER_IA_MASK_BUNNY_HOOD,
/* 0x3E */ PLAYER_IA_MASK_GORON,
/* 0x3F */ PLAYER_IA_MASK_ZORA,
/* 0x40 */ PLAYER_IA_MASK_GERUDO,
/* 0x41 */ PLAYER_IA_MASK_TRUTH,
/* 0x42 */ PLAYER_IA_LENS,
/* 0x42 */ PLAYER_IA_LENS_OF_TRUTH,
// Upstream TODO: Document why these entries were added
/* 0x43 */ PLAYER_IA_SHIELD_DEKU,
/* 0x44 */ PLAYER_IA_SHIELD_HYLIAN,
@ -303,51 +303,51 @@ typedef enum {
} PlayerAnimType;
typedef enum {
/* 0x00 */ PLAYER_ANIMGROUP_0,
/* 0x01 */ PLAYER_ANIMGROUP_1,
/* 0x02 */ PLAYER_ANIMGROUP_2,
/* 0x03 */ PLAYER_ANIMGROUP_3,
/* 0x04 */ PLAYER_ANIMGROUP_4,
/* 0x05 */ PLAYER_ANIMGROUP_5,
/* 0x06 */ PLAYER_ANIMGROUP_6,
/* 0x07 */ PLAYER_ANIMGROUP_7,
/* 0x08 */ PLAYER_ANIMGROUP_8,
/* 0x09 */ PLAYER_ANIMGROUP_9,
/* 0x0A */ PLAYER_ANIMGROUP_10,
/* 0x0B */ PLAYER_ANIMGROUP_11,
/* 0x0C */ PLAYER_ANIMGROUP_12,
/* 0x0D */ PLAYER_ANIMGROUP_13,
/* 0x0E */ PLAYER_ANIMGROUP_14,
/* 0x0F */ PLAYER_ANIMGROUP_15,
/* 0x10 */ PLAYER_ANIMGROUP_16,
/* 0x11 */ PLAYER_ANIMGROUP_17,
/* 0x12 */ PLAYER_ANIMGROUP_18,
/* 0x13 */ PLAYER_ANIMGROUP_19,
/* 0x14 */ PLAYER_ANIMGROUP_20,
/* 0x15 */ PLAYER_ANIMGROUP_21,
/* 0x16 */ PLAYER_ANIMGROUP_22,
/* 0x17 */ PLAYER_ANIMGROUP_23,
/* 0x18 */ PLAYER_ANIMGROUP_24,
/* 0x19 */ PLAYER_ANIMGROUP_25,
/* 0x1A */ PLAYER_ANIMGROUP_26,
/* 0x1B */ PLAYER_ANIMGROUP_27,
/* 0x1C */ PLAYER_ANIMGROUP_28,
/* 0x1D */ PLAYER_ANIMGROUP_29,
/* 0x1E */ PLAYER_ANIMGROUP_30,
/* 0x1F */ PLAYER_ANIMGROUP_31,
/* 0x20 */ PLAYER_ANIMGROUP_32,
/* 0x21 */ PLAYER_ANIMGROUP_33,
/* 0x22 */ PLAYER_ANIMGROUP_34,
/* 0x23 */ PLAYER_ANIMGROUP_35,
/* 0x24 */ PLAYER_ANIMGROUP_36,
/* 0x25 */ PLAYER_ANIMGROUP_37,
/* 0x26 */ PLAYER_ANIMGROUP_38,
/* 0x27 */ PLAYER_ANIMGROUP_39,
/* 0x28 */ PLAYER_ANIMGROUP_40,
/* 0x29 */ PLAYER_ANIMGROUP_41,
/* 0x2A */ PLAYER_ANIMGROUP_42,
/* 0x2B */ PLAYER_ANIMGROUP_43,
/* 0x2C */ PLAYER_ANIMGROUP_44,
/* 0x00 */ PLAYER_ANIMGROUP_wait,
/* 0x01 */ PLAYER_ANIMGROUP_walk,
/* 0x02 */ PLAYER_ANIMGROUP_run,
/* 0x03 */ PLAYER_ANIMGROUP_damage_run,
/* 0x04 */ PLAYER_ANIMGROUP_heavy_run,
/* 0x05 */ PLAYER_ANIMGROUP_waitL,
/* 0x06 */ PLAYER_ANIMGROUP_waitR,
/* 0x07 */ PLAYER_ANIMGROUP_wait2waitR,
/* 0x08 */ PLAYER_ANIMGROUP_normal2fighter,
/* 0x09 */ PLAYER_ANIMGROUP_doorA_free,
/* 0x0A */ PLAYER_ANIMGROUP_doorA,
/* 0x0B */ PLAYER_ANIMGROUP_doorB_free,
/* 0x0C */ PLAYER_ANIMGROUP_doorB,
/* 0x0D */ PLAYER_ANIMGROUP_carryB,
/* 0x0E */ PLAYER_ANIMGROUP_landing,
/* 0x0F */ PLAYER_ANIMGROUP_short_landing,
/* 0x10 */ PLAYER_ANIMGROUP_landing_roll,
/* 0x11 */ PLAYER_ANIMGROUP_hip_down,
/* 0x12 */ PLAYER_ANIMGROUP_walk_endL,
/* 0x13 */ PLAYER_ANIMGROUP_walk_endR,
/* 0x14 */ PLAYER_ANIMGROUP_defense,
/* 0x15 */ PLAYER_ANIMGROUP_defense_wait,
/* 0x16 */ PLAYER_ANIMGROUP_defense_end,
/* 0x17 */ PLAYER_ANIMGROUP_side_walk,
/* 0x18 */ PLAYER_ANIMGROUP_side_walkL,
/* 0x19 */ PLAYER_ANIMGROUP_side_walkR,
/* 0x1A */ PLAYER_ANIMGROUP_45_turn,
/* 0x1B */ PLAYER_ANIMGROUP_waitL2wait,
/* 0x1C */ PLAYER_ANIMGROUP_waitR2wait,
/* 0x1D */ PLAYER_ANIMGROUP_throw,
/* 0x1E */ PLAYER_ANIMGROUP_put,
/* 0x1F */ PLAYER_ANIMGROUP_back_walk,
/* 0x20 */ PLAYER_ANIMGROUP_check,
/* 0x21 */ PLAYER_ANIMGROUP_check_wait,
/* 0x22 */ PLAYER_ANIMGROUP_check_end,
/* 0x23 */ PLAYER_ANIMGROUP_pull_start,
/* 0x24 */ PLAYER_ANIMGROUP_pulling,
/* 0x25 */ PLAYER_ANIMGROUP_pull_end,
/* 0x26 */ PLAYER_ANIMGROUP_fall_up,
/* 0x27 */ PLAYER_ANIMGROUP_jump_climb_hold,
/* 0x28 */ PLAYER_ANIMGROUP_jump_climb_wait,
/* 0x29 */ PLAYER_ANIMGROUP_jump_climb_up,
/* 0x2A */ PLAYER_ANIMGROUP_down_slope_slip_end,
/* 0x2B */ PLAYER_ANIMGROUP_up_slope_slip_end,
/* 0x2C */ PLAYER_ANIMGROUP_nwait,
/* 0x2D */ PLAYER_ANIMGROUP_MAX
} PlayerAnimGroup;
@ -608,7 +608,7 @@ typedef struct Player {
/* 0x083E */ s16 targetYaw;
/* 0x0840 */ u16 unk_840;
/* 0x0842 */ s8 meleeWeaponAnimation;
/* 0x0843 */ s8 swordState; // Upstream TODO: meleeWeaponState
/* 0x0843 */ s8 meleeWeaponState;
/* 0x0844 */ s8 unk_844;
/* 0x0845 */ u8 unk_845;
/* 0x0846 */ u8 unk_846;

View File

@ -1620,7 +1620,7 @@ void DrawPlayerTab() {
gSaveContext.equips.buttonItems[0] = ITEM_SWORD_KNIFE;
}
Inventory_ChangeEquipment(EQUIP_SWORD, PLAYER_SWORD_BGS);
Inventory_ChangeEquipment(EQUIP_SWORD, PLAYER_SWORD_BIGGORON);
}
if (ImGui::Selectable("Fishing Pole")) {
player->currentSwordItemId = ITEM_FISHING_POLE;
@ -1725,7 +1725,7 @@ void DrawPlayerTab() {
}
DrawGroupWithBorder([&]() {
ImGui::Text("Sword");
ImGui::Text(" %d", player->swordState);
ImGui::Text(" %d", player->meleeWeaponState);
});
} else {

View File

@ -140,7 +140,7 @@ void RegisterInfiniteISG() {
if (CVarGetInteger("gEzISG", 0) != 0) {
Player* player = GET_PLAYER(gPlayState);
player->swordState = 1;
player->meleeWeaponState = 1;
}
});
}

View File

@ -2174,7 +2174,7 @@ void func_8002F7A0(PlayState* play, Actor* actor, f32 arg2, s16 arg3, f32 arg4)
func_8002F758(play, actor, arg2, arg3, arg4, 0);
}
void func_8002F7DC(Actor* actor, u16 sfxId) {
void Player_PlaySfx(Actor* actor, u16 sfxId) {
if (actor->id != ACTOR_PLAYER || sfxId < NA_SE_VO_LI_SWORD_N || sfxId > NA_SE_VO_LI_ELECTRIC_SHOCK_LV_KID) {
Audio_PlaySoundGeneral(sfxId, &actor->projectedPos, 4, &D_801333E0 , &D_801333E0, &D_801333E8);
} else {
@ -4514,7 +4514,7 @@ s32 func_800354B4(PlayState* play, Actor* actor, f32 range, s16 arg3, s16 arg4,
var1 = (s16)(actor->yawTowardsPlayer + 0x8000) - player->actor.shape.rot.y;
var2 = actor->yawTowardsPlayer - arg5;
if ((actor->xzDistToPlayer <= range) && (player->swordState != 0) && (arg4 >= ABS(var1)) && (arg3 >= ABS(var2))) {
if ((actor->xzDistToPlayer <= range) && (player->meleeWeaponState != 0) && (arg4 >= ABS(var1)) && (arg3 >= ABS(var2))) {
return true;
} else {
return false;
@ -4554,7 +4554,7 @@ void func_800355B8(PlayState* play, Vec3f* pos) {
u8 func_800355E4(PlayState* play, Collider* collider) {
Player* player = GET_PLAYER(play);
if ((collider->acFlags & AC_TYPE_PLAYER) && (player->swordState != 0) && (player->meleeWeaponAnimation == 0x16)) {
if ((collider->acFlags & AC_TYPE_PLAYER) && (player->meleeWeaponState != 0) && (player->meleeWeaponAnimation == 0x16)) {
return true;
} else {
return false;

View File

@ -3083,7 +3083,7 @@ s32 Camera_Battle1(Camera* camera) {
}
anim->roll += (((OREG(36) * camera->speedRatio) * (1.0f - distRatio)) - anim->roll) * PCT(OREG(37));
camera->roll = DEGF_TO_BINANG(anim->roll);
camera->fov = Camera_LERPCeilF((player->swordState != 0 ? 0.8f
camera->fov = Camera_LERPCeilF((player->meleeWeaponState != 0 ? 0.8f
: gSaveContext.health <= 0x10 ? 0.8f
: 1.0f) *
(fov - ((fov * 0.05f) * distRatio)),

View File

@ -929,7 +929,7 @@ void func_80083108(PlayState* play) {
gSaveContext.buttonStatus[0] = gSaveContext.buttonStatus[1] = gSaveContext.buttonStatus[2] =
gSaveContext.buttonStatus[3] = gSaveContext.buttonStatus[5] = gSaveContext.buttonStatus[6] =
gSaveContext.buttonStatus[7] = gSaveContext.buttonStatus[8] = BTN_DISABLED;
} else if ((func_8008F2F8(play) >= 2) && (func_8008F2F8(play) < 5)) {
} else if ((Player_GetEnvironmentalHazard(play) >= 2) && (Player_GetEnvironmentalHazard(play) < 5)) {
if (gSaveContext.buttonStatus[0] != BTN_DISABLED) {
sp28 = 1;
}
@ -945,7 +945,7 @@ void func_80083108(PlayState* play) {
}
gSaveContext.buttonStatus[BUTTON_STATUS_INDEX(i)] = BTN_ENABLED;
} else if (func_8008F2F8(play) == 2) {
} else if (Player_GetEnvironmentalHazard(play) == 2) {
if ((gSaveContext.equips.buttonItems[i] != ITEM_HOOKSHOT) &&
(gSaveContext.equips.buttonItems[i] != ITEM_LONGSHOT)) {
if (gSaveContext.buttonStatus[BUTTON_STATUS_INDEX(i)] == BTN_ENABLED) {
@ -3367,7 +3367,7 @@ void Interface_UpdateMagicBar(PlayState* play) {
break;
}
}
if ((gSaveContext.magic == 0) || ((func_8008F2F8(play) >= 2) && (func_8008F2F8(play) < 5)) ||
if ((gSaveContext.magic == 0) || ((Player_GetEnvironmentalHazard(play) >= 2) && (Player_GetEnvironmentalHazard(play) < 5)) ||
!hasLens ||
!play->actorCtx.lensActive) {
play->actorCtx.lensActive = false;
@ -4182,7 +4182,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) || (func_8008F2F8(play) == 4) ||
} else if ((player->stateFlags1 & 0x00200000) || (Player_GetEnvironmentalHazard(play) == 4) ||
(player->stateFlags2 & PLAYER_STATE2_CRAWLING)) {
temp = 70;
} else {
@ -6396,13 +6396,13 @@ void Interface_Update(PlayState* play) {
}
HealthMeter_HandleCriticalAlarm(play);
D_80125A58 = func_8008F2F8(play);
D_80125A58 = Player_GetEnvironmentalHazard(play);
if (D_80125A58 == 1) {
if (CUR_EQUIP_VALUE(EQUIP_TUNIC) == 2 || CVarGetInteger("gSuperTunic", 0) != 0) {
D_80125A58 = 0;
}
} else if ((func_8008F2F8(play) >= 2) && (func_8008F2F8(play) < 5)) {
} else if ((Player_GetEnvironmentalHazard(play) >= 2) && (Player_GetEnvironmentalHazard(play) < 5)) {
if (CUR_EQUIP_VALUE(EQUIP_TUNIC) == 3 || CVarGetInteger("gSuperTunic", 0) != 0) {
D_80125A58 = 0;
}

View File

@ -53,7 +53,7 @@ u8 gPlayerModelTypes[][5] = {
{ 0, 0, 13, 18, 20 }, { 0, 0, 14, 18, 20 }, { 0, 7, 8, 18, 20 }, { 0, 2, 8, 19, 20 },
};
Gfx* D_80125CE8[] = {
Gfx* sPlayerRightHandShieldDLs[] = {
gLinkAdultRightHandClosedNearDL,
gLinkChildRightHandClosedNearDL,
gLinkAdultRightHandClosedFarDL,
@ -72,7 +72,7 @@ Gfx* D_80125CE8[] = {
gLinkChildRightHandClosedFarDL,
};
Gfx* D_80125D28[] = {
Gfx* sSheathWithSwordDLs[] = {
gLinkAdultMasterSwordAndSheathNearDL, gLinkChildSwordAndSheathNearDL,
gLinkAdultMasterSwordAndSheathFarDL, gLinkChildSwordAndSheathFarDL,
gLinkAdultMasterSwordAndSheathNearDL, gLinkChildDekuShieldSwordAndSheathNearDL,
@ -87,7 +87,7 @@ Gfx* D_80125D28[] = {
NULL, gLinkChildDekuShieldWithMatrixDL,
};
Gfx* D_80125D88[] = {
Gfx* sSheathWithoutSwordDLs[] = {
gLinkAdultSheathNearDL,
gLinkChildSheathNearDL,
gLinkAdultSheathFarDL,
@ -114,162 +114,162 @@ Gfx* D_80125D88[] = {
gLinkChildDekuShieldWithMatrixDL,
};
Gfx* D_80125DE8[] = {
Gfx* gPlayerLeftHandBgsDLs[] = {
gLinkAdultLeftHandHoldingBgsNearDL, gLinkChildLeftHandHoldingMasterSwordDL,
gLinkAdultLeftHandHoldingBgsFarDL, gLinkChildLeftHandHoldingMasterSwordDL,
gLinkAdultHandHoldingBrokenGiantsKnifeDL, gLinkChildLeftHandHoldingMasterSwordDL,
gLinkAdultHandHoldingBrokenGiantsKnifeFarDL, gLinkChildLeftHandHoldingMasterSwordDL,
};
Gfx* D_80125E08[] = {
Gfx* gPlayerLeftHandOpenDLs[] = {
gLinkAdultLeftHandNearDL,
gLinkChildLeftHandNearDL,
gLinkAdultLeftHandFarDL,
gLinkChildLeftHandFarDL,
};
Gfx* D_80125E18[] = {
Gfx* gPlayerLeftHandClosedDLs[] = {
gLinkAdultLeftHandClosedNearDL,
gLinkChildLeftFistNearDL,
gLinkAdultLeftHandClosedFarDL,
gLinkChildLeftFistFarDL,
};
Gfx* D_80125E28[] = {
Gfx* sPlayerLeftHandSwordDLs2[] = {
gLinkAdultLeftHandHoldingMasterSwordNearDL,
gLinkChildLeftFistAndKokiriSwordNearDL,
gLinkAdultLeftHandHoldingMasterSwordFarDL,
gLinkChildLeftFistAndKokiriSwordFarDL,
};
Gfx* D_80125E38[] = {
Gfx* sPlayerLeftHandSwordDLs[] = {
gLinkAdultLeftHandHoldingMasterSwordNearDL,
gLinkChildLeftFistAndKokiriSwordNearDL,
gLinkAdultLeftHandHoldingMasterSwordFarDL,
gLinkChildLeftFistAndKokiriSwordFarDL,
};
Gfx* D_80125E48[] = {
Gfx* sPlayerRightHandOpenDLs[] = {
gLinkAdultRightHandNearDL,
gLinkChildRightHandNearDL,
gLinkAdultRightHandFarDL,
gLinkChildRightHandFarDL,
};
Gfx* D_80125E58[] = {
Gfx* sPlayerRightHandClosedDLs[] = {
gLinkAdultRightHandClosedNearDL,
gLinkChildRightHandClosedNearDL,
gLinkAdultRightHandClosedFarDL,
gLinkChildRightHandClosedFarDL,
};
Gfx* D_80125E68[] = {
Gfx* sPlayerRightHandBowSlingshotDLs[] = {
gLinkAdultRightHandHoldingBowNearDL,
gLinkChildRightHandHoldingSlingshotNearDL,
gLinkAdultRightHandHoldingBowFarDL,
gLinkChildRightHandHoldingSlingshotFarDL,
};
Gfx* D_80125E78[] = {
Gfx* sSwordAndSheathDLs[] = {
gLinkAdultMasterSwordAndSheathNearDL,
gLinkChildSwordAndSheathNearDL,
gLinkAdultMasterSwordAndSheathFarDL,
gLinkChildSwordAndSheathFarDL,
};
Gfx* D_80125E88[] = {
Gfx* sSheathDLs[] = {
gLinkAdultSheathNearDL,
gLinkChildSheathNearDL,
gLinkAdultSheathFarDL,
gLinkChildSheathFarDL,
};
Gfx* D_80125E98[] = {
Gfx* sPlayerWaistDLs[] = {
gLinkAdultWaistNearDL,
gLinkChildWaistNearDL,
gLinkAdultWaistFarDL,
gLinkChildWaistFarDL,
};
Gfx* D_80125EA8[] = {
Gfx* sPlayerRightHandBowSlingshotDLs2[] = {
gLinkAdultRightHandHoldingBowNearDL,
gLinkChildRightHandHoldingSlingshotNearDL,
gLinkAdultRightHandHoldingBowFarDL,
gLinkChildRightHandHoldingSlingshotFarDL,
};
Gfx* D_80125EB8[] = {
Gfx* sPlayerRightHandOcarinaDLs[] = {
gLinkAdultRightHandHoldingOotNearDL,
gLinkChildRightHandHoldingFairyOcarinaNearDL,
gLinkAdultRightHandHoldingOotFarDL,
gLinkChildRightHandHoldingFairyOcarinaFarDL,
};
Gfx* D_80125EC8[] = {
Gfx* sPlayerRightHandOotDLs[] = {
gLinkAdultRightHandHoldingOotNearDL,
gLinkChildRightHandAndOotNearDL,
gLinkAdultRightHandHoldingOotFarDL,
gLinkChildRightHandHoldingOOTFarDL,
};
Gfx* D_80125ED8[] = {
Gfx* sPlayerRightHandHookshotDLs[] = {
gLinkAdultRightHandHoldingHookshotNearDL,
gLinkChildRightHandNearDL,
gLinkAdultRightHandHoldingHookshotNearDL, // The 'far' display list exists but is not used
gLinkChildRightHandFarDL,
};
Gfx* D_80125EE8[] = {
Gfx* sPlayerLeftHandHammerDLs[] = {
gLinkAdultLeftHandHoldingHammerNearDL,
gLinkChildLeftHandNearDL,
gLinkAdultLeftHandHoldingHammerFarDL,
gLinkChildLeftHandFarDL,
};
Gfx* D_80125EF8[] = {
Gfx* gPlayerLeftHandBoomerangDLs[] = {
gLinkAdultLeftHandNearDL,
gLinkChildLeftFistAndBoomerangNearDL,
gLinkAdultLeftHandFarDL,
gLinkChildLeftFistAndBoomerangFarDL,
};
Gfx* D_80125F08[] = {
Gfx* sPlayerLeftHandBottleDLs[] = {
gLinkAdultLeftHandOutNearDL,
gLinkChildLeftHandUpNearDL,
gLinkAdultLeftHandOutNearDL,
gLinkChildLeftHandUpNearDL,
};
Gfx* sArmOutDLs[] = {
Gfx* sFirstPersonLeftForearmDLs[] = {
gLinkAdultRightArmOutNearDL,
NULL,
};
Gfx* sHandOutDLs[] = {
Gfx* sFirstPersonLeftHandDLs[] = {
gLinkAdultRightHandOutNearDL,
NULL,
};
Gfx* sRightShoulderNearDLs[] = {
Gfx* sFirstPersonRightShoulderDLs[] = {
gLinkAdultRightShoulderNearDL,
gLinkChildRightShoulderNearDL,
};
Gfx* D_80125F30[] = {
Gfx* sFirstPersonForearmDLs[] = {
gLinkAdultLeftArmOutNearDL,
NULL,
};
Gfx* sHoldingFirstPersonWeaponDLs[] = {
Gfx* sFirstPersonRightHandHoldingWeaponDLs[] = {
gLinkAdultRightHandHoldingBowFirstPersonDL,
gLinkChildRightArmStretchedSlingshotDL,
};
// Indexed by model types (left hand, right hand, sheath or waist)
Gfx** sPlayerDListGroups[] = {
D_80125E08, D_80125E18, D_80125E38, D_80125E28, D_80125DE8, D_80125EE8, D_80125EF8,
D_80125F08, D_80125E48, D_80125E58, D_80125CE8, D_80125E68, D_80125EA8, D_80125EB8,
D_80125EC8, D_80125ED8, D_80125E78, D_80125E88, D_80125D28, D_80125D88, D_80125E98,
gPlayerLeftHandOpenDLs, gPlayerLeftHandClosedDLs, sPlayerLeftHandSwordDLs, sPlayerLeftHandSwordDLs2, gPlayerLeftHandBgsDLs, sPlayerLeftHandHammerDLs, gPlayerLeftHandBoomerangDLs,
sPlayerLeftHandBottleDLs, sPlayerRightHandOpenDLs, sPlayerRightHandClosedDLs, sPlayerRightHandShieldDLs, sPlayerRightHandBowSlingshotDLs, sPlayerRightHandBowSlingshotDLs2, sPlayerRightHandOcarinaDLs,
sPlayerRightHandOotDLs, sPlayerRightHandHookshotDLs, sSwordAndSheathDLs, sSheathDLs, sSheathWithSwordDLs, sSheathWithoutSwordDLs, sPlayerWaistDLs,
};
Gfx gCullBackDList[] = {
@ -285,8 +285,8 @@ Gfx gCullFrontDList[] = {
Vec3f* D_80160000;
s32 sDListsLodOffset;
Vec3f sGetItemRefPos;
s32 D_80160014;
s32 D_80160018;
s32 sLeftHandType;
s32 sRightHandType;
void Player_SetBootData(PlayState* play, Player* this) {
s32 currentBoots;
@ -371,7 +371,7 @@ s32 Player_ActionToModelGroup(Player* this, s32 actionParam) {
void Player_SetModelsForHoldingShield(Player* this) {
if ((this->stateFlags1 & 0x400000) &&
((this->itemAction < 0) || (this->itemAction == this->heldItemAction))) {
if ((CVarGetInteger("gShieldTwoHanded", 0) && (this->heldItemAction != PLAYER_IA_STICK) ||
if ((CVarGetInteger("gShieldTwoHanded", 0) && (this->heldItemAction != PLAYER_IA_DEKU_STICK) ||
!Player_HoldsTwoHandedWeapon(this)) && !Player_IsChildWithHylianShield(this)) {
this->rightHandType = 10;
this->rightHandDLists = &sPlayerDListGroups[10][gSaveContext.linkAge];
@ -497,7 +497,7 @@ s32 Player_IsBurningStickInRange(PlayState* play, Vec3f* pos, f32 xzRange, f32 y
Vec3f diff;
s32 pad;
if ((this->heldItemAction == PLAYER_IA_STICK) && (this->unk_860 != 0)) {
if ((this->heldItemAction == PLAYER_IA_DEKU_STICK) && (this->unk_860 != 0)) {
Math_Vec3f_Diff(&this->meleeWeaponInfo[0].tip, pos, &diff);
return ((SQ(diff.x) + SQ(diff.z)) <= SQ(xzRange)) && (0.0f <= diff.y) && (diff.y <= yRange);
} else {
@ -577,7 +577,7 @@ s32 func_8008F128(Player* this) {
return Player_HoldsHookshot(this) && (this->heldActor == NULL);
}
s32 Player_ActionToSword(s32 actionParam) {
s32 Player_ActionToMeleeWeapon(s32 actionParam) {
s32 sword = actionParam - PLAYER_IA_FISHING_POLE;
if ((sword > 0) && (sword < 6)) {
@ -587,12 +587,12 @@ s32 Player_ActionToSword(s32 actionParam) {
}
}
s32 Player_GetSwordHeld(Player* this) {
return Player_ActionToSword(this->heldItemAction);
s32 Player_GetMeleeWeaponHeld(Player* this) {
return Player_ActionToMeleeWeapon(this->heldItemAction);
}
s32 Player_HoldsTwoHandedWeapon(Player* this) {
if ((this->heldItemAction >= PLAYER_IA_SWORD_BGS) && (this->heldItemAction <= PLAYER_IA_HAMMER)) {
if ((this->heldItemAction >= PLAYER_IA_SWORD_BIGGORON) && (this->heldItemAction <= PLAYER_IA_HAMMER)) {
return 1;
} else {
return 0;
@ -600,7 +600,7 @@ s32 Player_HoldsTwoHandedWeapon(Player* this) {
}
s32 Player_HoldsBrokenKnife(Player* this) {
return (this->heldItemAction == PLAYER_IA_SWORD_BGS) && (gSaveContext.swordHealth <= 0.0f);
return (this->heldItemAction == PLAYER_IA_SWORD_BIGGORON) && (gSaveContext.swordHealth <= 0.0f);
}
s32 Player_ActionToBottle(Player* this, s32 actionParam) {
@ -647,7 +647,7 @@ return_neg:
return -1;
}
s32 func_8008F2F8(PlayState* play) {
s32 Player_GetEnvironmentalHazard(PlayState* play) {
Player* this = GET_PLAYER(play);
TextTriggerEntry* triggerEntry;
s32 var;
@ -747,7 +747,7 @@ Gfx* sBootDListGroups[][2] = {
{ gLinkAdultLeftHoverBootDL, gLinkAdultRightHoverBootDL },
};
void func_8008F470(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dListCount, s32 lod, s32 tunic,
void Player_DrawImpl(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dListCount, s32 lod, s32 tunic,
s32 boots, s32 face, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw,
void* data) {
Color_RGB8* color;
@ -805,8 +805,8 @@ void func_8008F470(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dLis
SkelAnime_DrawFlexLod(play, skeleton, jointTable, dListCount, overrideLimbDraw, postLimbDraw, data, lod);
if (((CVarGetInteger("gFPSGauntlets", 0) && LINK_IS_ADULT) || (overrideLimbDraw != func_800902F0)) &&
(overrideLimbDraw != func_80090440) &&
if (((CVarGetInteger("gFPSGauntlets", 0) && LINK_IS_ADULT) || (overrideLimbDraw != Player_OverrideLimbDrawGameplayFirstPerson)) &&
(overrideLimbDraw != Player_OverrideLimbDrawGameplayCrawling) &&
(gSaveContext.gameMode != 3)) {
if (LINK_IS_ADULT) {
s32 strengthUpgrade = CUR_UPG_VALUE(UPG_STRENGTH);
@ -827,9 +827,9 @@ void func_8008F470(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dLis
gSPDisplayList(POLY_OPA_DISP++, gLinkAdultLeftGauntletPlate1DL);
gSPDisplayList(POLY_OPA_DISP++, gLinkAdultRightGauntletPlate1DL);
gSPDisplayList(POLY_OPA_DISP++,
(D_80160014 == 0) ? gLinkAdultLeftGauntletPlate2DL : gLinkAdultLeftGauntletPlate3DL);
(sLeftHandType == 0) ? gLinkAdultLeftGauntletPlate2DL : gLinkAdultLeftGauntletPlate3DL);
gSPDisplayList(POLY_OPA_DISP++,
(D_80160018 == 8) ? gLinkAdultRightGauntletPlate2DL : gLinkAdultRightGauntletPlate3DL);
(sRightHandType == 8) ? gLinkAdultRightGauntletPlate2DL : gLinkAdultRightGauntletPlate3DL);
}
if (boots != 0) {
@ -848,7 +848,7 @@ void func_8008F470(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dLis
CLOSE_DISPS(play->state.gfxCtx);
}
Vec3f D_8012602C = { 0.0f, 0.0f, 0.0f };
Vec3f sZeroVec = { 0.0f, 0.0f, 0.0f };
Vec3f D_80126038[] = {
{ 1304.0f, 0.0f, 0.0f },
@ -896,10 +896,10 @@ void func_8008F87C(PlayState* play, Player* this, SkelAnime* skelAnime, Vec3f* p
Matrix_Push();
Matrix_TranslateRotateZYX(pos, rot);
Matrix_MultVec3f(&D_8012602C, &spA4);
Matrix_MultVec3f(&sZeroVec, &spA4);
Matrix_TranslateRotateZYX(&D_80126038[gSaveContext.linkAge], &skelAnime->jointTable[shinLimbIndex]);
Matrix_Translate(D_80126050[gSaveContext.linkAge], 0.0f, 0.0f, MTXMODE_APPLY);
Matrix_MultVec3f(&D_8012602C, &sp98);
Matrix_MultVec3f(&sZeroVec, &sp98);
Matrix_MultVec3f(&D_80126070, &footprintPos);
Matrix_Pop();
@ -955,12 +955,12 @@ void func_8008F87C(PlayState* play, Player* this, SkelAnime* skelAnime, Vec3f* p
}
}
s32 func_8008FCC8(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) {
s32 Player_OverrideLimbDrawGameplayCommon(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) {
Player* this = (Player*)thisx;
if (limbIndex == PLAYER_LIMB_ROOT) {
D_80160014 = this->leftHandType;
D_80160018 = this->rightHandType;
sLeftHandType = this->leftHandType;
sRightHandType = this->rightHandType;
D_80160000 = &this->meleeWeaponInfo[2].base;
if (!LINK_IS_ADULT) {
@ -1036,33 +1036,33 @@ s32 func_8008FCC8(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s
return false;
}
s32 func_80090014(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) {
s32 Player_OverrideLimbDrawGameplayDefault(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) {
Player* this = (Player*)thisx;
if (!func_8008FCC8(play, limbIndex, dList, pos, rot, thisx))
if (!Player_OverrideLimbDrawGameplayCommon(play, limbIndex, dList, pos, rot, thisx))
{
if (limbIndex == PLAYER_LIMB_L_HAND) {
Gfx** dLists = this->leftHandDLists;
if ((D_80160014 == 4) && (gSaveContext.swordHealth <= 0.0f)) {
if ((sLeftHandType == 4) && (gSaveContext.swordHealth <= 0.0f)) {
dLists += 4;
} else if ((D_80160014 == 6) && (this->stateFlags1 & 0x2000000)) {
dLists = &D_80125E08[gSaveContext.linkAge];
D_80160014 = 0;
} else if ((sLeftHandType == 6) && (this->stateFlags1 & 0x2000000)) {
dLists = &gPlayerLeftHandOpenDLs[gSaveContext.linkAge];
sLeftHandType = 0;
} else if ((this->leftHandType == 0) && (this->actor.speedXZ > 2.0f) && !(this->stateFlags1 & 0x8000000)) {
dLists = &D_80125E18[gSaveContext.linkAge];
D_80160014 = 1;
dLists = &gPlayerLeftHandClosedDLs[gSaveContext.linkAge];
sLeftHandType = 1;
}
*dList = ResourceMgr_LoadGfxByName(dLists[sDListsLodOffset]);
} else if (limbIndex == PLAYER_LIMB_R_HAND) {
Gfx** dLists = this->rightHandDLists;
if (D_80160018 == 10) {
if (sRightHandType == 10) {
dLists += this->currentShield * 4;
} else if ((this->rightHandType == 8) && (this->actor.speedXZ > 2.0f) && !(this->stateFlags1 & 0x8000000)) {
dLists = &D_80125E58[gSaveContext.linkAge];
D_80160018 = 9;
dLists = &sPlayerRightHandClosedDLs[gSaveContext.linkAge];
sRightHandType = 9;
}
*dList = ResourceMgr_LoadGfxByName(dLists[sDListsLodOffset]);
@ -1077,7 +1077,7 @@ s32 func_80090014(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s
}
} else if (!LINK_IS_ADULT && ((this->sheathType == 16) || (this->sheathType == 17)) &&
(gSaveContext.equips.buttonItems[0] != ITEM_SWORD_KOKIRI)) {
dLists = &D_80125D28[16];
dLists = &sSheathWithSwordDLs[16];
}
if (dLists[sDListsLodOffset] != NULL) {
@ -1105,24 +1105,24 @@ s32 func_80090014(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s
return false;
}
s32 func_800902F0(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) {
s32 Player_OverrideLimbDrawGameplayFirstPerson(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) {
Player* this = (Player*)thisx;
if (!func_8008FCC8(play, limbIndex, dList, pos, rot, thisx)) {
if (!Player_OverrideLimbDrawGameplayCommon(play, limbIndex, dList, pos, rot, thisx)) {
if (this->unk_6AD != 2) {
*dList = NULL;
} else if (limbIndex == PLAYER_LIMB_L_FOREARM) {
*dList = sArmOutDLs[gSaveContext.linkAge];
*dList = sFirstPersonLeftForearmDLs[gSaveContext.linkAge];
} else if (limbIndex == PLAYER_LIMB_L_HAND) {
s32 handOutDlIndex = gSaveContext.linkAge;
if (CVarGetInteger("gBowSlingShotAmmoFix", 0) && LINK_IS_ADULT && Player_HoldsSlingshot(this)) {
handOutDlIndex = 1;
}
*dList = sHandOutDLs[handOutDlIndex];
*dList = sFirstPersonLeftHandDLs[handOutDlIndex];
} else if (limbIndex == PLAYER_LIMB_R_SHOULDER) {
*dList = sRightShoulderNearDLs[gSaveContext.linkAge];
*dList = sFirstPersonRightShoulderDLs[gSaveContext.linkAge];
} else if (limbIndex == PLAYER_LIMB_R_FOREARM) {
*dList = D_80125F30[gSaveContext.linkAge];
*dList = sFirstPersonForearmDLs[gSaveContext.linkAge];
} else if (limbIndex == PLAYER_LIMB_R_HAND) {
s32 firstPersonWeaponIndex = gSaveContext.linkAge;
if (CVarGetInteger("gBowSlingShotAmmoFix", 0)) {
@ -1133,7 +1133,7 @@ s32 func_800902F0(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s
}
}
*dList = Player_HoldsHookshot(this) ? gLinkAdultRightHandHoldingHookshotFarDL
: sHoldingFirstPersonWeaponDLs[firstPersonWeaponIndex];
: sFirstPersonRightHandHoldingWeaponDLs[firstPersonWeaponIndex];
} else {
*dList = NULL;
}
@ -1142,8 +1142,8 @@ s32 func_800902F0(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s
return false;
}
s32 func_80090440(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) {
if (!func_8008FCC8(play, limbIndex, dList, pos, rot, thisx)) {
s32 Player_OverrideLimbDrawGameplayCrawling(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) {
if (!Player_OverrideLimbDrawGameplayCommon(play, limbIndex, dList, pos, rot, thisx)) {
*dList = NULL;
}
@ -1179,7 +1179,7 @@ u8 func_80090480(PlayState* play, ColliderQuad* collider, WeaponInfo* weaponInfo
}
}
void func_80090604(PlayState* play, Player* this, ColliderQuad* collider, Vec3f* quadSrc) {
void Player_UpdateShieldCollider(PlayState* play, Player* this, ColliderQuad* collider, Vec3f* quadSrc) {
static u8 shieldColTypes[PLAYER_SHIELD_MAX] = {
COLTYPE_METAL,
COLTYPE_WOOD,
@ -1226,7 +1226,7 @@ void func_800906D4(PlayState* play, Player* this, Vec3f* newTipPos) {
&this->meleeWeaponInfo[0].base);
}
if ((this->swordState > 0) && ((this->meleeWeaponAnimation < 0x18) || (this->stateFlags2 & 0x20000))) {
if ((this->meleeWeaponState > 0) && ((this->meleeWeaponAnimation < 0x18) || (this->stateFlags2 & 0x20000))) {
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]);
}
@ -1375,7 +1375,7 @@ void Player_DrawHookshotReticle(PlayState* play, Player* this, f32 hookshotRange
Vec3f D_801260D4 = { 1100.0f, -700.0f, 0.0f };
f32 sSwordLengths[] = {
f32 sMeleeWeaponLengths[] = {
0.0f, 4000.0f, 3000.0f, 5500.0f, 0.0f, 2500.0f,
};
@ -1391,14 +1391,14 @@ Color_RGB8 sBottleColors[] = {
{ 255, 255, 255 }, { 255, 255, 255 }, { 80, 80, 255 },
};
Vec3f D_80126128 = { 398.0f, 1419.0f, 244.0f };
Vec3f sLeftHandArrowVec3 = { 398.0f, 1419.0f, 244.0f };
BowStringData sBowStringData[] = {
{ gLinkAdultBowStringDL, { 0.0f, -360.4f, 0.0f } }, // bow
{ gLinkChildSlinghotStringDL, { 606.0f, 236.0f, 0.0f } }, // slingshot
};
Vec3f D_80126154[] = {
Vec3f sRightHandLimbModelShieldQuadVertices[] = {
{ -4500.0f, -3000.0f, -600.0f },
{ 1500.0f, -3000.0f, -600.0f },
{ -4500.0f, 3000.0f, -600.0f },
@ -1408,17 +1408,17 @@ Vec3f D_80126154[] = {
Vec3f D_80126184 = { 100.0f, 1500.0f, 0.0f };
Vec3f D_80126190 = { 100.0f, 1640.0f, 0.0f };
Vec3f D_8012619C[] = {
Vec3f sSheathLimbModelShieldQuadVertices[] = {
{ -3000.0f, -3000.0f, -900.0f },
{ 3000.0f, -3000.0f, -900.0f },
{ -3000.0f, 3000.0f, -900.0f },
{ 3000.0f, 3000.0f, -900.0f },
};
Vec3f D_801261CC = { 630.0f, 100.0f, -30.0f };
Vec3s D_801261D8 = { 0, 0, 0x7FFF };
Vec3f sSheathLimbModelShieldOnBackPos = { 630.0f, 100.0f, -30.0f };
Vec3s sSheathLimbModelShieldOnBackZyxRot = { 0, 0, 0x7FFF };
Vec3f D_801261E0[] = {
Vec3f sLeftRightFootLimbModelFootPos[] = {
{ 200.0f, 300.0f, 0.0f },
{ 200.0f, 200.0f, 0.0f },
};
@ -1428,11 +1428,11 @@ Vec3f D_801261E0[] = {
// started working out properly
#define RETICLE_MAX 3.402823466e+12f
void func_80090D20(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
Player* this = (Player*)thisx;
if (*dList != NULL) {
Matrix_MultVec3f(&D_8012602C, D_80160000);
Matrix_MultVec3f(&sZeroVec, D_80160000);
}
if (limbIndex == PLAYER_LIMB_L_HAND) {
@ -1441,7 +1441,7 @@ void func_80090D20(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void
Math_Vec3f_Copy(&this->leftHandPos, D_80160000);
if (this->itemAction == PLAYER_IA_STICK) {
if (this->itemAction == PLAYER_IA_DEKU_STICK) {
Vec3f sp124[3];
OPEN_DISPS(play->state.gfxCtx);
@ -1449,7 +1449,7 @@ void func_80090D20(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void
if (this->actor.scale.y >= 0.0f) {
D_80126080.x = this->unk_85C * 5000.0f;
func_80090A28(this, sp124);
if (this->swordState != 0) {
if (this->meleeWeaponState != 0) {
EffectBlure_ChangeType(Effect_GetByIndex(this->meleeWeaponEffectIndex), 7); // stick sword type
func_800906D4(play, this, sp124);
} else {
@ -1466,14 +1466,14 @@ void func_80090D20(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void
gSPDisplayList(POLY_OPA_DISP++, gLinkChildLinkDekuStickDL);
CLOSE_DISPS(play->state.gfxCtx);
} else if ((this->actor.scale.y >= 0.0f) && (this->swordState != 0)) {
} else if ((this->actor.scale.y >= 0.0f) && (this->meleeWeaponState != 0)) {
Vec3f spE4[3];
if (Player_HoldsBrokenKnife(this)) {
D_80126080.x = 1500.0f;
} else {
D_80126080.x = sSwordLengths[Player_GetSwordHeld(this)];
EffectBlure_ChangeType(Effect_GetByIndex(this->meleeWeaponEffectIndex), sSwordTypes[Player_GetSwordHeld(this)]);
D_80126080.x = sMeleeWeaponLengths[Player_GetMeleeWeaponHeld(this)];
EffectBlure_ChangeType(Effect_GetByIndex(this->meleeWeaponEffectIndex), sSwordTypes[Player_GetMeleeWeaponHeld(this)]);
}
func_80090A28(this, spE4);
@ -1494,7 +1494,7 @@ void func_80090D20(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void
if (this->actor.scale.y >= 0.0f) {
if (!Player_HoldsHookshot(this) && ((hookedActor = this->heldActor) != NULL)) {
if (this->stateFlags1 & 0x200) {
Matrix_MultVec3f(&D_80126128, &hookedActor->world.pos);
Matrix_MultVec3f(&sLeftHandArrowVec3, &hookedActor->world.pos);
Matrix_RotateZYX(0x69E8, -0x5708, 0x458E, MTXMODE_APPLY);
Matrix_Get(&sp14C);
Matrix_MtxFToYXZRotS(&sp14C, &hookedActor->world.rot, 0);
@ -1537,7 +1537,7 @@ void func_80090D20(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void
Vec3f sp90;
f32 distXYZ;
Matrix_MultVec3f(&D_8012602C, &sp90);
Matrix_MultVec3f(&sZeroVec, &sp90);
distXYZ = Math_Vec3f_DistXYZ(D_80160000, &sp90);
this->unk_858 = distXYZ - 3.0f;
@ -1568,7 +1568,7 @@ void func_80090D20(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void
CLOSE_DISPS(play->state.gfxCtx);
} else if ((this->actor.scale.y >= 0.0f) && (this->rightHandType == 10)) {
Matrix_Get(&this->shieldMf);
func_80090604(play, this, &this->shieldQuad, D_80126154);
Player_UpdateShieldCollider(play, this, &this->shieldQuad, sRightHandLimbModelShieldQuadVertices);
}
if (this->actor.scale.y >= 0.0f) {
@ -1630,16 +1630,16 @@ void func_80090D20(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void
if (limbIndex == PLAYER_LIMB_SHEATH) {
if ((this->rightHandType != 10) && (this->rightHandType != 0xFF)) {
if (Player_IsChildWithHylianShield(this)) {
func_80090604(play, this, &this->shieldQuad, D_8012619C);
Player_UpdateShieldCollider(play, this, &this->shieldQuad, sSheathLimbModelShieldQuadVertices);
}
Matrix_TranslateRotateZYX(&D_801261CC, &D_801261D8);
Matrix_TranslateRotateZYX(&sSheathLimbModelShieldOnBackPos, &sSheathLimbModelShieldOnBackZyxRot);
Matrix_Get(&this->shieldMf);
}
} else if (limbIndex == PLAYER_LIMB_HEAD) {
Matrix_MultVec3f(&D_801260D4, &this->actor.focus.pos);
} else {
Vec3f* vec = &D_801261E0[(gSaveContext.linkAge)];
Vec3f* vec = &sLeftRightFootLimbModelFootPos[(gSaveContext.linkAge)];
Actor_SetFeetPos(&this->actor, limbIndex, PLAYER_LIMB_L_FOOT, vec, PLAYER_LIMB_R_FOOT, vec);
}
@ -1670,11 +1670,11 @@ u32 func_80091738(PlayState* play, u8* segment, SkelAnime* skelAnime) {
return size + 0x8800 + 0x90;
}
u8 D_801261F8[] = { 2, 2, 5 };
u8 sPauseModelGroupBySword[] = { 2, 2, 5 };
s32 func_80091880(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* arg) {
s32 Player_OverrideLimbDrawPause(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* arg) {
u8* ptr = arg;
u8 modelGroup = D_801261F8[ptr[0] > 0 ? ptr[0] - 1 : 0];
u8 modelGroup = sPauseModelGroupBySword[ptr[0] > 0 ? ptr[0] - 1 : 0];
s32 type;
s32 dListOffset = 0;
Gfx** dLists;
@ -1686,7 +1686,7 @@ s32 func_80091880(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s
if (limbIndex == PLAYER_LIMB_L_HAND) {
type = gPlayerModelTypes[modelGroup][1];
D_80160014 = type;
sLeftHandType = type;
if (ptr[0] == 0)
type = 0;
@ -1696,7 +1696,7 @@ s32 func_80091880(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s
}
} else if (limbIndex == PLAYER_LIMB_R_HAND) {
type = gPlayerModelTypes[modelGroup][2];
D_80160018 = type;
sRightHandType = type;
if (type == 10) {
dListOffset = ptr[1] * ptrSize;
}
@ -1741,7 +1741,7 @@ void Pause_DrawTriforceSpot(PlayState* play, s32 showLightColumn) {
rotation += 0x03E8;
}
void func_80091A24(PlayState* play, void* seg04, void* seg06, SkelAnime* skelAnime, Vec3f* pos, Vec3s* rot,
void Player_DrawPauseImpl(PlayState* play, void* seg04, void* seg06, SkelAnime* skelAnime, Vec3f* pos, Vec3s* rot,
f32 scale, s32 sword, s32 tunic, s32 shield, s32 boots, s32 width, s32 height, Vec3f* eye, Vec3f* at,
f32 fovy, void* img1, void* img2) {
static Vp viewport = { 128, 224, 511, 0, 128, 224, 511, 0 };
@ -1805,8 +1805,8 @@ void func_80091A24(PlayState* play, void* seg04, void* seg06, SkelAnime* skelAni
gSPSegment(POLY_OPA_DISP++, 0x0C, gCullBackDList);
func_8008F470(play, skelAnime->skeleton, skelAnime->jointTable, skelAnime->dListCount, 0, tunic, boots, 0,
func_80091880, NULL, &sp12C);
Player_DrawImpl(play, skelAnime->skeleton, skelAnime->jointTable, skelAnime->dListCount, 0, tunic, boots, 0,
Player_OverrideLimbDrawPause, NULL, &sp12C);
if (CVarGetInteger("gPauseTriforce", 0)) {
@ -1833,7 +1833,7 @@ s16 EquipedStance; // Link's current mode (Two handed, One handed...)
s16 FrameCountSinceLastAnim = 0; // Time since last animation
s16 MinFrameCount; // Frame to wait before checking if we need to change the animation
void func_8009214C(PlayState* play, u8* segment, SkelAnime* skelAnime, Vec3f* pos, Vec3s* rot, f32 scale,
void Player_DrawPause(PlayState* play, u8* segment, SkelAnime* skelAnime, Vec3f* pos, Vec3s* rot, f32 scale,
s32 sword, s32 tunic, s32 shield, s32 boots) {
Input* p1Input = &play->state.input[0];
Vec3f eye = { 0.0f, 0.0f, -400.0f };
@ -2068,7 +2068,7 @@ void func_8009214C(PlayState* play, u8* segment, SkelAnime* skelAnime, Vec3f* po
}
func_80091A24(play, segment + 0x3800, segment + 0x8800, skelAnime, pos, rot, scale, sword, tunic, shield,
Player_DrawPauseImpl(play, segment + 0x3800, segment + 0x8800, skelAnime, pos, rot, scale, sword, tunic, shield,
boots, 64, 112, &eye, &at, 60.0f, play->state.gfxCtx->curFrameBuffer,
play->state.gfxCtx->curFrameBuffer + 0x1C00);
}

View File

@ -2096,7 +2096,7 @@ void func_8009EE44(PlayState* play) {
}
if ((play->roomCtx.unk_74[0] == 0) && playerHasCojiro) {
if (play->roomCtx.unk_74[1] == 50) {
func_8002F7DC(&GET_PLAYER(play)->actor, NA_SE_EV_CHICKEN_CRY_M);
Player_PlaySfx(&GET_PLAYER(play)->actor, NA_SE_EV_CHICKEN_CRY_M);
play->roomCtx.unk_74[0] = 1;
}
play->roomCtx.unk_74[1]++;

View File

@ -352,7 +352,7 @@ void BgHeavyBlock_LiftedUp(BgHeavyBlock* this, PlayState* play) {
if (this->timer == 11) {
func_800AA000(0.0f, 0xFF, 0x14, 0x14);
func_8002F7DC(&player->actor, NA_SE_PL_PULL_UP_BIGROCK);
Player_PlaySfx(&player->actor, NA_SE_PL_PULL_UP_BIGROCK);
LOG_STRING("NA_SE_PL_PULL_UP_BIGROCK");
}

View File

@ -145,7 +145,7 @@ void BgHidanDalm_Wait(BgHidanDalm* this, PlayState* play) {
this->dyna.actor.bgCheckFlags &= ~8;
this->dyna.actor.speedXZ = 10.0f;
Flags_SetSwitch(play, this->switchFlag);
func_8002F7DC(&GET_PLAYER(play)->actor, NA_SE_IT_HAMMER_HIT);
Player_PlaySfx(&GET_PLAYER(play)->actor, NA_SE_IT_HAMMER_HIT);
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_DARUMA_VANISH);
} else {
CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base);

View File

@ -154,7 +154,7 @@ void BgJyaGoroiwa_Move(BgJyaGoroiwa* this, PlayState* play) {
}
func_8002F6D4(play, thisx, 2.0f, thisx->yawTowardsPlayer, 0.0f, 0);
func_8002F7DC(&GET_PLAYER(play)->actor, NA_SE_PL_BODY_HIT);
Player_PlaySfx(&GET_PLAYER(play)->actor, NA_SE_PL_BODY_HIT);
this->yOffsetSpeed = 10.0f;
this->speedFactor = 0.5f;

View File

@ -176,9 +176,9 @@ void func_808ACA08(BgSpot02Objects* this, PlayState* play) {
// enter the cutscene context.
if (play->csCtx.frames == 402 && !(gSaveContext.n64ddFlag)) {
if (!LINK_IS_ADULT) {
func_8002F7DC(&player->actor, NA_SE_VO_LI_DEMO_DAMAGE_KID);
Player_PlaySfx(&player->actor, NA_SE_VO_LI_DEMO_DAMAGE_KID);
} else {
func_8002F7DC(&player->actor, NA_SE_VO_LI_DEMO_DAMAGE);
Player_PlaySfx(&player->actor, NA_SE_VO_LI_DEMO_DAMAGE);
}
}
}

View File

@ -402,7 +402,7 @@ void BgYdanSp_WallWebIdle(BgYdanSp* this, PlayState* play) {
if (Flags_GetSwitch(play, this->burnSwitchFlag) || (this->trisCollider.base.acFlags & 2)) {
this->dyna.actor.home.pos.y = this->dyna.actor.world.pos.y + 80.0f;
BgYdanSp_BurnWeb(this, play);
} else if (player->heldItemAction == PLAYER_IA_STICK && player->unk_860 != 0) {
} else if (player->heldItemAction == PLAYER_IA_DEKU_STICK && player->unk_860 != 0) {
func_8002DBD0(&this->dyna.actor, &sp30, &player->meleeWeaponInfo[0].tip);
if (fabsf(sp30.x) < 100.0f && sp30.z < 1.0f && sp30.y < 200.0f) {
OnePointCutscene_Init(play, 3020, 40, &this->dyna.actor, MAIN_CAM);

View File

@ -613,7 +613,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) {
}
if (this->csTimer == 13) {
func_8002F7DC(&player->actor, player->ageProperties->unk_92 + NA_SE_VO_LI_SURPRISE);
Player_PlaySfx(&player->actor, player->ageProperties->unk_92 + NA_SE_VO_LI_SURPRISE);
}
if (this->csTimer != 35) {
@ -4505,7 +4505,7 @@ void func_808E2544(Actor* thisx, PlayState* play) {
this->actor.world.rot.x = (Math_CosS(this->unk_1A2 * 0x3400) * sp84 * 0.1f) + this->actor.shape.rot.x;
this->actor.world.rot.y = (Math_SinS(this->unk_1A2 * 0x1A00) * sp84) + this->actor.shape.rot.y;
if ((player->swordState != 0) && (player->meleeWeaponAnimation >= 0x18) && (this->actor.xzDistToPlayer < 80.0f)) {
if ((player->meleeWeaponState != 0) && (player->meleeWeaponAnimation >= 0x18) && (this->actor.xzDistToPlayer < 80.0f)) {
this->unk_1C2 = 0xC;
this->actor.speedXZ = -30.0f;
func_8002D908(&this->actor);

View File

@ -1679,7 +1679,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) {
temp_f12 = this->unk_1B8.z - player->actor.world.pos.z;
temp_a0_2 = Math_Atan2S(temp_f12, temp_f14) - player->actor.shape.rot.y;
if ((ABS(temp_a0_2) < 0x2000) && (sqrtf(SQ(temp_f14) + SQ(temp_f12)) < 70.0f) &&
(player->swordState != 0) && (player->heldItemAction == PLAYER_IA_SWORD_MASTER)) {
(player->meleeWeaponState != 0) && (player->heldItemAction == PLAYER_IA_SWORD_MASTER)) {
func_80064520(play, &play->csCtx);
gSaveContext.sohStats.itemTimestamp[TIMESTAMP_DEFEAT_GANON] = GAMEPLAYSTAT_TOTAL_TIME;
BossRush_HandleCompleteBoss(play);

View File

@ -524,7 +524,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) {
Audio_PlaySoundIncreasinglyTransposed(&this->tentTipPos, NA_SE_EN_MOFER_WAVE,
gMorphaTransposeTable);
func_800AA000(0, 100, 5, 2);
func_8002F7DC(&player->actor, NA_SE_VO_LI_FREEZE + player->ageProperties->unk_92);
Player_PlaySfx(&player->actor, NA_SE_VO_LI_FREEZE + player->ageProperties->unk_92);
}
} else {
maxSwingRateX = 2000.0f;
@ -539,7 +539,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) {
Audio_PlaySoundIncreasinglyTransposed(&this->tentTipPos, NA_SE_EN_MOFER_WAVE,
gMorphaTransposeTable);
func_800AA000(0, 160, 5, 4);
func_8002F7DC(&player->actor, NA_SE_VO_LI_FREEZE + player->ageProperties->unk_92);
Player_PlaySfx(&player->actor, NA_SE_VO_LI_FREEZE + player->ageProperties->unk_92);
}
}
} else if (this->work[MO_TENT_ACTION_STATE] == MO_TENT_RETREAT) {

View File

@ -776,7 +776,7 @@ void BossSst_HeadCharge(BossSst* this, PlayState* play) {
sHands[LEFT]->colliderJntSph.base.atFlags &= ~(AT_ON | AT_HIT);
sHands[RIGHT]->colliderJntSph.base.atFlags &= ~(AT_ON | AT_HIT);
func_8002F71C(play, &this->actor, 10.0f, this->actor.shape.rot.y, 5.0f);
func_8002F7DC(&GET_PLAYER(play)->actor, NA_SE_PL_BODY_HIT);
Player_PlaySfx(&GET_PLAYER(play)->actor, NA_SE_PL_BODY_HIT);
}
}
@ -1586,7 +1586,7 @@ void BossSst_HandSweep(BossSst* this, PlayState* play) {
this->colliderJntSph.base.atFlags &= ~(AT_ON | AT_HIT);
this->ready = true;
func_8002F71C(play, &this->actor, 5.0f, this->actor.shape.rot.y - (this->vParity * 0x3800), 0.0f);
func_8002F7DC(&player->actor, NA_SE_PL_BODY_HIT);
Player_PlaySfx(&player->actor, NA_SE_PL_BODY_HIT);
newTargetYaw = this->actor.shape.rot.y - (this->vParity * 0x1400);
if (((s16)(newTargetYaw - this->targetYaw) * this->vParity) > 0) {
this->targetYaw = newTargetYaw;
@ -1643,7 +1643,7 @@ void BossSst_HandPunch(BossSst* this, PlayState* play) {
if (this->actor.bgCheckFlags & 8) {
BossSst_HandSetupRetreat(this);
} else if (this->colliderJntSph.base.atFlags & AT_HIT) {
func_8002F7DC(&GET_PLAYER(play)->actor, NA_SE_PL_BODY_HIT);
Player_PlaySfx(&GET_PLAYER(play)->actor, NA_SE_PL_BODY_HIT);
func_8002F71C(play, &this->actor, 10.0f, this->actor.shape.rot.y, 5.0f);
BossSst_HandSetupRetreat(this);
}
@ -1880,9 +1880,9 @@ void BossSst_HandCrush(BossSst* this, PlayState* play) {
if (this->timer == 0) {
this->timer = 20;
if (!LINK_IS_ADULT) {
func_8002F7DC(&player->actor, NA_SE_VO_LI_DAMAGE_S_KID);
Player_PlaySfx(&player->actor, NA_SE_VO_LI_DAMAGE_S_KID);
} else {
func_8002F7DC(&player->actor, NA_SE_VO_LI_DAMAGE_S);
Player_PlaySfx(&player->actor, NA_SE_VO_LI_DAMAGE_S);
}
play->damagePlayer(play, -8);
@ -1963,7 +1963,7 @@ void BossSst_HandSwing(BossSst* this, PlayState* play) {
player->actor.world.pos.x += 70.0f * Math_SinS(this->actor.shape.rot.y);
player->actor.world.pos.z += 70.0f * Math_CosS(this->actor.shape.rot.y);
func_8002F71C(play, &this->actor, 15.0f, this->actor.shape.rot.y, 2.0f);
func_8002F7DC(&player->actor, NA_SE_PL_BODY_HIT);
Player_PlaySfx(&player->actor, NA_SE_PL_BODY_HIT);
}
func_8002F974(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG);
@ -2085,7 +2085,7 @@ void BossSst_HandReadyCharge(BossSst* this, PlayState* play) {
OTHER_HAND(this)->colliderJntSph.base.atFlags &= ~(AT_ON | AT_HIT);
sHead->colliderJntSph.base.atFlags &= ~(AT_ON | AT_HIT);
func_8002F71C(play, &this->actor, 10.0f, this->actor.shape.rot.y, 5.0f);
func_8002F7DC(&GET_PLAYER(play)->actor, NA_SE_PL_BODY_HIT);
Player_PlaySfx(&GET_PLAYER(play)->actor, NA_SE_PL_BODY_HIT);
}
}

View File

@ -783,7 +783,7 @@ s32 BossTw_BeamHitPlayerCheck(BossTw* this, PlayState* play) {
}
player->isBurning = true;
func_8002F7DC(&player->actor, player->ageProperties->unk_92 + NA_SE_VO_LI_DEMO_DAMAGE);
Player_PlaySfx(&player->actor, player->ageProperties->unk_92 + NA_SE_VO_LI_DEMO_DAMAGE);
}
}
@ -1653,7 +1653,7 @@ void BossTw_TwinrovaMergeCS(BossTw* this, PlayState* play) {
}
if (this->timers[3] == 16) {
func_8002F7DC(&player->actor, player->ageProperties->unk_92 + NA_SE_VO_LI_SURPRISE);
Player_PlaySfx(&player->actor, player->ageProperties->unk_92 + NA_SE_VO_LI_SURPRISE);
}
if ((this->timers[3] != 0) && (this->timers[3] < 20)) {
@ -4053,7 +4053,7 @@ void BossTw_BlastFire(BossTw* this, PlayState* play) {
player->isBurning = 1;
if (this->work[BURN_TMR] == 0) {
func_8002F7DC(&player->actor, player->ageProperties->unk_92 + NA_SE_VO_LI_DEMO_DAMAGE);
Player_PlaySfx(&player->actor, player->ageProperties->unk_92 + NA_SE_VO_LI_DEMO_DAMAGE);
this->work[BURN_TMR] = 40;
}

View File

@ -379,7 +379,7 @@ void DoorKiller_FallOver(DoorKiller* this, PlayState* play) {
this->hasHitPlayerOrGround |= 1;
func_8002F6D4(play, &this->actor, 6.0f, this->actor.yawTowardsPlayer, 6.0f, 16);
Audio_PlayActorSound2(&this->actor, NA_SE_EN_KDOOR_HIT);
func_8002F7DC(&player->actor, NA_SE_PL_BODY_HIT);
Player_PlaySfx(&player->actor, NA_SE_PL_BODY_HIT);
}
}
if (!(this->hasHitPlayerOrGround & 1) && (this->timer == 2)) {

View File

@ -225,7 +225,7 @@ void EnAnubice_Idle(EnAnubice* this, PlayState* play) {
if (this->actor.shape.yOffset > -2.0f) {
this->actor.shape.yOffset = 0.0f;
if (player->swordState != 0) {
if (player->meleeWeaponState != 0) {
this->actionFunc = EnAnubice_SetupShootFireball;
} else if (this->isLinkOutOfRange) {
this->actor.velocity.y = 0.0f;

View File

@ -208,19 +208,19 @@ void EnArrow_Shoot(EnArrow* this, PlayState* play) {
switch (this->actor.params) {
case ARROW_SEED:
func_8002F7DC(&player->actor, NA_SE_IT_SLING_SHOT);
Player_PlaySfx(&player->actor, NA_SE_IT_SLING_SHOT);
break;
case ARROW_NORMAL_LIT:
case ARROW_NORMAL_HORSE:
case ARROW_NORMAL:
func_8002F7DC(&player->actor, NA_SE_IT_ARROW_SHOT);
Player_PlaySfx(&player->actor, NA_SE_IT_ARROW_SHOT);
break;
case ARROW_FIRE:
case ARROW_ICE:
case ARROW_LIGHT:
func_8002F7DC(&player->actor, NA_SE_IT_MAGIC_ARROW_SHOT);
Player_PlaySfx(&player->actor, NA_SE_IT_MAGIC_ARROW_SHOT);
break;
}

View File

@ -272,7 +272,7 @@ void EnButte_FlyAround(EnButte* this, PlayState* play) {
EnButte_SelectFlightParams(this, &sFlyAroundParams[this->flightParamsIdx]);
}
if (((this->actor.params & 1) == 1) && (player->heldItemAction == PLAYER_IA_STICK) &&
if (((this->actor.params & 1) == 1) && (player->heldItemAction == PLAYER_IA_DEKU_STICK) &&
(this->swordDownTimer <= 0) &&
((Math3D_Dist2DSq(player->actor.world.pos.x, player->actor.world.pos.z, this->actor.home.pos.x,
this->actor.home.pos.z) < SQ(120.0f)) ||
@ -338,7 +338,7 @@ void EnButte_FollowLink(EnButte* this, PlayState* play) {
distSqFromHome = Math3D_Dist2DSq(this->actor.world.pos.x, this->actor.world.pos.z, this->actor.home.pos.x,
this->actor.home.pos.z);
if (!((player->heldItemAction == PLAYER_IA_STICK) && (fabsf(player->actor.speedXZ) < 1.8f) &&
if (!((player->heldItemAction == PLAYER_IA_DEKU_STICK) && (fabsf(player->actor.speedXZ) < 1.8f) &&
(this->swordDownTimer <= 0) && (distSqFromHome < SQ(320.0f)))) {
EnButte_SetupFlyAround(this);
} else if (distSqFromHome > SQ(240.0f)) {
@ -401,7 +401,7 @@ void EnButte_Update(Actor* thisx, PlayState* play) {
this->unk_260 += 0x600;
if ((this->actor.params & 1) == 1) {
if (GET_PLAYER(play)->swordState == 0) {
if (GET_PLAYER(play)->meleeWeaponState == 0) {
if (this->swordDownTimer > 0) {
this->swordDownTimer--;
}

View File

@ -818,9 +818,9 @@ void EnFloormas_GrabLink(EnFloormas* this, PlayState* play) {
// Damage link every 20 frames
if ((this->actionTarget % 20) == 0) {
if (!LINK_IS_ADULT) {
func_8002F7DC(&player->actor, NA_SE_VO_LI_DAMAGE_S_KID);
Player_PlaySfx(&player->actor, NA_SE_VO_LI_DAMAGE_S_KID);
} else {
func_8002F7DC(&player->actor, NA_SE_VO_LI_DAMAGE_S);
Player_PlaySfx(&player->actor, NA_SE_VO_LI_DAMAGE_S);
}
play->damagePlayer(play, -8);
}

View File

@ -448,7 +448,7 @@ void EnGeldB_Ready(EnGeldB* this, PlayState* play) {
return;
}
angleToLink = player->actor.shape.rot.y - this->actor.shape.rot.y;
if ((this->actor.xzDistToPlayer < 100.0f) && (player->swordState != 0) && (ABS(angleToLink) >= 0x1F40)) {
if ((this->actor.xzDistToPlayer < 100.0f) && (player->meleeWeaponState != 0) && (ABS(angleToLink) >= 0x1F40)) {
this->actor.shape.rot.y = this->actor.world.rot.y = this->actor.yawTowardsPlayer;
EnGeldB_SetupCircle(this);
} else if (--this->timer == 0) {
@ -504,7 +504,7 @@ void EnGeldB_Advance(EnGeldB* this, PlayState* play) {
this->skelAnime.playSpeed = this->actor.speedXZ / 8.0f;
facingAngletoLink = player->actor.shape.rot.y - this->actor.shape.rot.y;
facingAngletoLink = ABS(facingAngletoLink);
if ((this->actor.xzDistToPlayer < 150.0f) && (player->swordState != 0) && (facingAngletoLink >= 0x1F40)) {
if ((this->actor.xzDistToPlayer < 150.0f) && (player->meleeWeaponState != 0) && (facingAngletoLink >= 0x1F40)) {
this->actor.shape.rot.y = this->actor.world.rot.y = this->actor.yawTowardsPlayer;
if (Rand_ZeroOne() > 0.7f) {
EnGeldB_SetupCircle(this);
@ -856,12 +856,12 @@ void EnGeldB_Slash(EnGeldB* this, PlayState* play) {
this->actor.speedXZ = 0.0f;
if ((s32)this->skelAnime.curFrame == 1) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_GERUDOFT_ATTACK);
this->swordState = 1;
this->meleeWeaponState = 1;
} else if ((s32)this->skelAnime.curFrame == 6) {
this->swordState = -1;
this->meleeWeaponState = -1;
}
if (this->swordCollider.base.atFlags & AT_BOUNCED) {
this->swordState = -1;
this->meleeWeaponState = -1;
this->swordCollider.base.atFlags &= ~(AT_HIT | AT_BOUNCED);
EnGeldB_SetupRollBack(this);
} else if (SkelAnime_Update(&this->skelAnime)) {
@ -932,13 +932,13 @@ void EnGeldB_SpinAttack(EnGeldB* this, PlayState* play) {
} else if ((s32)this->skelAnime.curFrame == 13) {
Actor_SpawnFloorDustRing(play, &this->actor, &this->leftFootPos, 3.0f, 2, 2.0f, 0, 0, false);
Actor_SpawnFloorDustRing(play, &this->actor, &this->rightFootPos, 3.0f, 2, 2.0f, 0, 0, false);
this->swordState = 1;
this->meleeWeaponState = 1;
this->actor.speedXZ = 10.0f;
Audio_PlayActorSound2(&this->actor, NA_SE_EN_GERUDOFT_ATTACK);
} else if ((s32)this->skelAnime.curFrame == 21) {
this->actor.speedXZ = 0.0f;
} else if ((s32)this->skelAnime.curFrame == 24) {
this->swordState = -1;
this->meleeWeaponState = -1;
}
if (SkelAnime_Update(&this->skelAnime) && (this->spinAttackState < 2)) {
if (!Actor_IsFacingPlayer(&this->actor, 0x1554)) {
@ -1116,8 +1116,8 @@ void EnGeldB_Jump(EnGeldB* this, PlayState* play) {
void EnGeldB_SetupBlock(EnGeldB* this) {
f32 lastFrame = Animation_GetLastFrame(&gGerudoRedBlockAnim);
if (this->swordState != 0) {
this->swordState = -1;
if (this->meleeWeaponState != 0) {
this->meleeWeaponState = -1;
}
this->actor.speedXZ = 0.0f;
this->action = GELDB_BLOCK;
@ -1419,7 +1419,7 @@ void EnGeldB_Update(Actor* thisx, PlayState* play) {
if ((this->action == GELDB_BLOCK) && (this->skelAnime.curFrame == 0.0f)) {
CollisionCheck_SetAC(play, &play->colChkCtx, &this->blockCollider.base);
}
if (this->swordState > 0) {
if (this->meleeWeaponState > 0) {
CollisionCheck_SetAT(play, &play->colChkCtx, &this->swordCollider.base);
}
if (this->blinkState == 0) {
@ -1480,10 +1480,10 @@ void EnGeldB_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro
Matrix_MultVec3f(&swordTipOffset, &swordTip);
Matrix_MultVec3f(&swordHiltOffset, &swordHilt);
if ((this->swordState < 0) || ((this->action != GELDB_SLASH) && (this->action != GELDB_SPIN_ATTACK))) {
if ((this->meleeWeaponState < 0) || ((this->action != GELDB_SLASH) && (this->action != GELDB_SPIN_ATTACK))) {
EffectBlure_AddSpace(Effect_GetByIndex(this->blureIndex));
this->swordState = 0;
} else if (this->swordState > 0) {
this->meleeWeaponState = 0;
} else if (this->meleeWeaponState > 0) {
EffectBlure_AddVertex(Effect_GetByIndex(this->blureIndex), &swordTip, &swordHilt);
}
} else {

View File

@ -53,7 +53,7 @@ typedef struct EnGeldB {
/* 0x0304 */ f32 approachRate;
/* 0x0308 */ char unk_308[4];
/* 0x030C */ f32 unkFloat;
/* 0x0310 */ s16 swordState;
/* 0x0310 */ s16 meleeWeaponState;
/* 0x0312 */ s16 spinAttackState;
/* 0x0314 */ s16 keyFlag;
/* 0x0316 */ char unk_316[2];

View File

@ -733,7 +733,7 @@ void EnGoma_Update(Actor* thisx, PlayState* play) {
EnGoma_LookAtPlayer(this, play);
EnGoma_UpdateEyeEnvColor(this);
this->visualState = 1;
if (player->swordState != 0) {
if (player->meleeWeaponState != 0) {
this->colCyl2.dim.radius = 35;
this->colCyl2.dim.height = 35;
this->colCyl2.dim.yShift = 0;

View File

@ -600,7 +600,7 @@ void EnGoroiwa_Roll(EnGoroiwa* this, PlayState* play) {
osSyncPrintf("Player ぶっ飛ばし\n"); // "Player knocked down"
osSyncPrintf(VT_RST);
onHitSetupFuncs[(this->actor.params >> 10) & 1](this);
func_8002F7DC(&GET_PLAYER(play)->actor, NA_SE_PL_BODY_HIT);
Player_PlaySfx(&GET_PLAYER(play)->actor, NA_SE_PL_BODY_HIT);
if ((this->actor.home.rot.z & 1) == 1) {
this->collisionDisabledTimer = 50;
}
@ -682,7 +682,7 @@ void EnGoroiwa_MoveUp(EnGoroiwa* this, PlayState* play) {
if (this->collider.base.atFlags & AT_HIT) {
this->collider.base.atFlags &= ~AT_HIT;
func_8002F6D4(play, &this->actor, 2.0f, this->actor.yawTowardsPlayer, 0.0f, 4);
func_8002F7DC(&GET_PLAYER(play)->actor, NA_SE_PL_BODY_HIT);
Player_PlaySfx(&GET_PLAYER(play)->actor, NA_SE_PL_BODY_HIT);
if ((this->actor.home.rot.z & 1) == 1) {
this->collisionDisabledTimer = 50;
}
@ -707,7 +707,7 @@ void EnGoroiwa_MoveDown(EnGoroiwa* this, PlayState* play) {
if (this->collider.base.atFlags & AT_HIT) {
this->collider.base.atFlags &= ~AT_HIT;
func_8002F6D4(play, &this->actor, 2.0f, this->actor.yawTowardsPlayer, 0.0f, 4);
func_8002F7DC(&GET_PLAYER(play)->actor, NA_SE_PL_BODY_HIT);
Player_PlaySfx(&GET_PLAYER(play)->actor, NA_SE_PL_BODY_HIT);
if ((this->actor.home.rot.z & 1) == 1) {
this->collisionDisabledTimer = 50;
}

View File

@ -234,7 +234,7 @@ void func_80A6E8CC(EnHs* this, PlayState* play) {
if (this->unk_2AA > 0) {
this->unk_2AA--;
if (this->unk_2AA == 0) {
func_8002F7DC(&player->actor, NA_SE_EV_CHICKEN_CRY_M);
Player_PlaySfx(&player->actor, NA_SE_EV_CHICKEN_CRY_M);
}
}

View File

@ -279,7 +279,7 @@ void UseHammer(Actor* thisx, PlayState* play, u8 started) {
Vec3f shockwavePos = this->actor.world.pos;
func_808429B4(play, 27767, 7, 20);
func_8002F7DC(&this->actor, NA_SE_IT_HAMMER_HIT);
Player_PlaySfx(&this->actor, NA_SE_IT_HAMMER_HIT);
EffectSsBlast_SpawnWhiteShockwave(play, &shockwavePos, &zeroVec, &zeroVec);

View File

@ -352,7 +352,7 @@ void func_80AD97C8(EnPoSisters* this, PlayState* play) {
f32 sp20;
if (this->unk_195 == 0 || this->actionFunc != func_80ADAAA4) {
if ((player->swordState == 0 || player->meleeWeaponAnimation >= 24) &&
if ((player->meleeWeaponState == 0 || player->meleeWeaponAnimation >= 24) &&
player->actor.world.pos.y - player->actor.floorHeight < 1.0f) {
Math_StepToF(&this->unk_294, 110.0f, 3.0f);
} else {

View File

@ -528,7 +528,7 @@ void func_80AE3454(EnRd* this, PlayState* play) {
play->damagePlayer(play, -8);
func_800AA000(this->actor.xzDistToPlayer, 0xF0, 1, 0xC);
this->unk_319 = 20;
func_8002F7DC(&player->actor, NA_SE_VO_LI_DAMAGE_S + player->ageProperties->unk_92);
Player_PlaySfx(&player->actor, NA_SE_VO_LI_DAMAGE_S + player->ageProperties->unk_92);
}
break;
case 3:

View File

@ -497,7 +497,7 @@ void EnTest_Idle(EnTest* this, PlayState* play) {
yawDiff = player->actor.shape.rot.y - this->actor.shape.rot.y;
if (this->actor.xzDistToPlayer < 100.0f) {
if ((player->swordState != 0) && (ABS(yawDiff) >= 0x1F40)) {
if ((player->meleeWeaponState != 0) && (ABS(yawDiff) >= 0x1F40)) {
this->actor.shape.rot.y = this->actor.world.rot.y = this->actor.yawTowardsPlayer;
if (Rand_ZeroOne() > 0.7f && player->meleeWeaponAnimation != 0x11) {
@ -627,7 +627,7 @@ void EnTest_WalkAndBlock(EnTest* this, PlayState* play) {
yawDiff = player->actor.shape.rot.y - this->actor.shape.rot.y;
if ((this->actor.xzDistToPlayer < 100.0f) && (player->swordState != 0)) {
if ((this->actor.xzDistToPlayer < 100.0f) && (player->meleeWeaponState != 0)) {
if (ABS(yawDiff) >= 0x1F40) {
this->actor.shape.rot.y = this->actor.world.rot.y = this->actor.yawTowardsPlayer;
@ -921,9 +921,9 @@ void EnTest_SlashDown(EnTest* this, PlayState* play) {
}
if ((this->skelAnime.curFrame > 7.0f) && (this->skelAnime.curFrame < 11.0f)) {
this->swordState = 1;
this->meleeWeaponState = 1;
} else {
this->swordState = 0;
this->meleeWeaponState = 0;
}
if (SkelAnime_Update(&this->skelAnime)) {
@ -1016,9 +1016,9 @@ void EnTest_SlashUp(EnTest* this, PlayState* play) {
}
if ((this->skelAnime.curFrame > 1.0f) && (this->skelAnime.curFrame < 8.0f)) {
this->swordState = 1;
this->meleeWeaponState = 1;
} else {
this->swordState = 0;
this->meleeWeaponState = 0;
}
if (SkelAnime_Update(&this->skelAnime)) {
@ -1100,7 +1100,7 @@ void EnTest_Jumpslash(EnTest* this, PlayState* play) {
if (this->timer == 0) {
Animation_PlayOnce(&this->skelAnime, &gStalfosJumpslashAnim);
this->timer = 1;
this->swordState = 1;
this->meleeWeaponState = 1;
Audio_PlayActorSound2(&this->actor, NA_SE_EN_STAL_SAKEBI);
Audio_PlayActorSound2(&this->actor, NA_SE_EN_STAL_JUMP);
} else {
@ -1110,7 +1110,7 @@ void EnTest_Jumpslash(EnTest* this, PlayState* play) {
}
if ((this->timer != 0) && (this->skelAnime.curFrame >= 5.0f)) {
this->swordState = 0;
this->meleeWeaponState = 0;
}
if (this->actor.world.pos.y <= this->actor.floorHeight) {
@ -1237,7 +1237,7 @@ void func_808621D4(EnTest* this, PlayState* play) {
}
}
if (player->swordState != 0) {
if (player->meleeWeaponState != 0) {
if ((this->actor.bgCheckFlags & 8) && ((ABS((s16)(this->actor.wallYaw - this->actor.shape.rot.y)) < 0x38A4) &&
(this->actor.xzDistToPlayer < 80.0f))) {
EnTest_SetupJumpUp(this);
@ -1276,7 +1276,7 @@ void func_80862418(EnTest* this, PlayState* play) {
}
}
if (player->swordState != 0) {
if (player->meleeWeaponState != 0) {
if ((this->actor.bgCheckFlags & 8) && ((ABS((s16)(this->actor.wallYaw - this->actor.shape.rot.y)) < 0x38A4) &&
(this->actor.xzDistToPlayer < 80.0f))) {
EnTest_SetupJumpUp(this);
@ -1294,7 +1294,7 @@ void func_80862418(EnTest* this, PlayState* play) {
void EnTest_SetupStunned(EnTest* this) {
this->unk_7C8 = 0xB;
this->unk_7DE = 0;
this->swordState = 0;
this->meleeWeaponState = 0;
this->skelAnime.playSpeed = 0.0f;
this->actor.speedXZ = -4.0f;
@ -1322,7 +1322,7 @@ void EnTest_Stunned(EnTest* this, PlayState* play) {
if (this->actor.colorFilterTimer == 0) {
if (this->actor.colChkInfo.health == 0) {
func_80862FA8(this, play);
} else if (player->swordState != 0) {
} else if (player->meleeWeaponState != 0) {
if ((this->actor.bgCheckFlags & 8) &&
((ABS((s16)(this->actor.wallYaw - this->actor.shape.rot.y)) < 0x38A4) &&
(this->actor.xzDistToPlayer < 80.0f))) {
@ -1484,9 +1484,9 @@ void func_80862DBC(EnTest* this, PlayState* play) {
BodyBreak_Alloc(&this->bodyBreak, 60, play);
this->actor.home.rot.x = 0;
if (this->swordState >= 0) {
if (this->meleeWeaponState >= 0) {
EffectBlure_AddSpace(Effect_GetByIndex(this->effectIndex));
this->swordState = -1;
this->meleeWeaponState = -1;
}
this->actor.flags &= ~ACTOR_FLAG_TARGETABLE;
@ -1593,7 +1593,7 @@ void func_8086318C(EnTest* this, PlayState* play) {
}
void EnTest_SetupRecoil(EnTest* this) {
this->swordState = 0;
this->meleeWeaponState = 0;
this->skelAnime.moveFlags = 2;
this->unk_7C8 = 0x13;
this->skelAnime.playSpeed = -1.0f;
@ -1668,8 +1668,8 @@ void EnTest_UpdateDamage(EnTest* this, PlayState* play) {
if ((this->actor.colChkInfo.damageEffect != STALFOS_DMGEFF_SLING) &&
(this->actor.colChkInfo.damageEffect != STALFOS_DMGEFF_FIREMAGIC)) {
this->lastDamageEffect = this->actor.colChkInfo.damageEffect;
if (this->swordState >= 1) {
this->swordState = 0;
if (this->meleeWeaponState >= 1) {
this->meleeWeaponState = 0;
}
this->unk_7DC = player->unk_845;
this->actor.world.rot.y = this->actor.yawTowardsPlayer;
@ -1801,7 +1801,7 @@ void EnTest_Update(Actor* thisx, PlayState* play) {
}
}
if (this->swordState >= 1) {
if (this->meleeWeaponState >= 1) {
if (!(this->swordCollider.base.atFlags & AT_BOUNCED)) {
CollisionCheck_SetAT(play, &play->colChkCtx, &this->swordCollider.base);
} else {
@ -1883,12 +1883,12 @@ void EnTest_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot
Matrix_MultVec3f(&D_80864664, &sp70);
Matrix_MultVec3f(&D_80864670, &sp64);
if ((this->swordState >= 1) &&
if ((this->meleeWeaponState >= 1) &&
((this->actor.params != STALFOS_TYPE_INVISIBLE) || play->actorCtx.lensActive)) {
EffectBlure_AddVertex(Effect_GetByIndex(this->effectIndex), &sp70, &sp64);
} else if (this->swordState >= 0) {
} else if (this->meleeWeaponState >= 0) {
EffectBlure_AddSpace(Effect_GetByIndex(this->effectIndex));
this->swordState = -1;
this->meleeWeaponState = -1;
}
} else if ((limbIndex == STALFOS_LIMB_SHIELD) && (this->unk_7DE != 0)) {

View File

@ -95,7 +95,7 @@ typedef struct EnTest {
/* 0x7E8 */ s32 timer;
/* 0x7EC */ f32 unk_7EC;
/* 0x7F0 */ BodyBreak bodyBreak;
/* 0x808 */ s8 swordState;
/* 0x808 */ s8 meleeWeaponState;
/* 0x80C */ s32 effectIndex;
/* 0x810 */ ColliderCylinder bodyCollider;
/* 0x85C */ ColliderQuad swordCollider;

View File

@ -314,7 +314,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
sStaggerTimer = 50;
}
}
if ((sCounterState != 0) && (this->swordState != 0)) {
if ((sCounterState != 0) && (this->meleeWeaponState != 0)) {
CollisionCheck_SetAC(play, &play->colChkCtx, &this->meleeWeaponQuads[0].base);
CollisionCheck_SetAC(play, &play->colChkCtx, &this->meleeWeaponQuads[1].base);
}
@ -338,7 +338,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
// Handles Dark Link's initial reaction to jumpslashes
if (((player->swordState != 0) || (player->actor.velocity.y > -3.0f)) &&
if (((player->meleeWeaponState != 0) || (player->actor.velocity.y > -3.0f)) &&
(player->meleeWeaponAnimation == JUMPSLASH_START)) {
this->actor.world.rot.y = this->actor.shape.rot.y = this->actor.yawTowardsPlayer;
@ -366,7 +366,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
player->actor.world.pos.z,
1.0f, 5.0f, 0.0f);
sSwordJumpTimer--;
if (((u32)sSwordJumpTimer == 0) || ((player->invincibilityTimer > 0) && (this->swordState == 0))) {
if (((u32)sSwordJumpTimer == 0) || ((player->invincibilityTimer > 0) && (this->meleeWeaponState == 0))) {
this->actor.world.rot.y = this->actor.shape.rot.y = this->actor.yawTowardsPlayer;
input->cur.button = BTN_A;
player->stateFlags3 &= ~4;
@ -398,7 +398,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
// Handles the reaction to a one-handed stab. If the conditions are satisfied,
// Dark Link jumps on Link's sword. Otherwise he backflips away.
if ((this->swordState == 0) && (sCounterState == 0) && (player->invincibilityTimer == 0) &&
if ((this->meleeWeaponState == 0) && (sCounterState == 0) && (player->invincibilityTimer == 0) &&
(player->meleeWeaponAnimation == STAB_1H) && (this->actor.xzDistToPlayer <= 85.0f) &&
Actor_IsTargeted(play, &this->actor)) {
@ -407,7 +407,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
player->stateFlags3 |= 4;
this->actor.flags &= ~ACTOR_FLAG_TARGETABLE;
sSwordJumpTimer = 27;
player->swordState = 0;
player->meleeWeaponState = 0;
player->linearVelocity = 0.0f;
this->invincibilityTimer = -7;
this->linearVelocity = 0.0f;
@ -440,8 +440,8 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
} else {
EnTorch2_Backflip(this, input, &this->actor);
}
if (!CHECK_BTN_ANY(input->cur.button, BTN_A | BTN_R) && (this->swordState == 0) &&
(player->swordState != 0)) {
if (!CHECK_BTN_ANY(input->cur.button, BTN_A | BTN_R) && (this->meleeWeaponState == 0) &&
(player->meleeWeaponState != 0)) {
sCounterState = 1;
}
}
@ -455,9 +455,9 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
(ABS(sp5A) >= 0x7800) && (this->actor.isTargeted || !(player->stateFlags1 & 0x00400000))) {
EnTorch2_SwingSword(play, input, this);
} else if (((this->actor.xzDistToPlayer <= 70.0f) ||
((this->actor.xzDistToPlayer <= 80.0f + sp50) && (player->swordState != 0))) &&
(this->swordState == 0)) {
if (!EnTorch2_SwingSword(play, input, this) && (this->swordState == 0) &&
((this->actor.xzDistToPlayer <= 80.0f + sp50) && (player->meleeWeaponState != 0))) &&
(this->meleeWeaponState == 0)) {
if (!EnTorch2_SwingSword(play, input, this) && (this->meleeWeaponState == 0) &&
(sCounterState == 0)) {
EnTorch2_Backflip(this, input, &this->actor);
}
@ -468,7 +468,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
Math_SmoothStepToS(&sStickAngle, player->actor.shape.rot.y + 0x7FFF, 1, 0x2328, 0);
}
} else if (this->actor.xzDistToPlayer > 100.0f + sp50) {
if ((player->swordState == 0) || (player->meleeWeaponAnimation < SPIN_ATTACK_1H) ||
if ((player->meleeWeaponState == 0) || (player->meleeWeaponAnimation < SPIN_ATTACK_1H) ||
(player->meleeWeaponAnimation > BIG_SPIN_2H) || (this->actor.xzDistToPlayer >= 280.0f)) {
sStickTilt = 127.0f;
sStickAngle = this->actor.yawTowardsPlayer;
@ -520,7 +520,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
break;
case ENTORCH2_DAMAGE:
this->swordState = 0;
this->meleeWeaponState = 0;
input->cur.stick_x = input->cur.stick_y = 0;
if ((this->invincibilityTimer > 0) && (this->actor.world.pos.y < (this->actor.floorHeight - 160.0f))) {
this->stateFlags3 &= ~1;
@ -568,7 +568,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
// Causes Dark Link to shield in place when Link is using magic attacks other than the spin attack
if ((gSaveContext.magicState == 3) && (player->swordState == 0 || (player->meleeWeaponAnimation < SPIN_ATTACK_1H) ||
if ((gSaveContext.magicState == 3) && (player->meleeWeaponState == 0 || (player->meleeWeaponAnimation < SPIN_ATTACK_1H) ||
(player->meleeWeaponAnimation > BIG_SPIN_2H))) {
sStickTilt = 0.0f;
input->cur.stick_x = 0;
@ -586,7 +586,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
pad54 = input->prev.button ^ input->cur.button;
input->press.button = input->cur.button & pad54;
if (CHECK_BTN_ANY(input->cur.button, BTN_R)) {
input->cur.button = ((sCounterState == 0) && (this->swordState == 0)) ? BTN_R : input->cur.button ^ BTN_R;
input->cur.button = ((sCounterState == 0) && (this->meleeWeaponState == 0)) ? BTN_R : input->cur.button ^ BTN_R;
}
input->rel.button = input->prev.button & pad54;
input->prev.button = input->cur.button & (u16) ~(BTN_A | BTN_B);
@ -711,11 +711,11 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
* This ensures Dark Link's counter animation mirrors Link's exactly.
*/
if ((sCounterState != 0) && (sCounterState == 1)) {
if (this->swordState == 0) {
if (this->meleeWeaponState == 0) {
sCounterState = 0;
} else {
sCounterState = 2;
this->swordState = 1;
this->meleeWeaponState = 1;
this->skelAnime.curFrame = player->skelAnime.curFrame - player->skelAnime.playSpeed;
this->skelAnime.playSpeed = player->skelAnime.playSpeed;
LinkAnimation_Update(play, &this->skelAnime);
@ -772,13 +772,13 @@ s32 EnTorch2_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f
Gfx** gfx) {
Player* this = (Player*)thisx;
return func_8008FCC8(play, limbIndex, dList, pos, rot, &this->actor);
return Player_OverrideLimbDrawGameplayCommon(play, limbIndex, dList, pos, rot, &this->actor);
}
void EnTorch2_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx, Gfx** gfx) {
Player* this = (Player*)thisx;
func_80090D20(play, limbIndex, dList, rot, &this->actor);
Player_PostLimbDrawGameplay(play, limbIndex, dList, rot, &this->actor);
}
void EnTorch2_Draw(Actor* thisx, PlayState* play2) {

View File

@ -450,9 +450,9 @@ void EnWallmas_TakePlayer(EnWallmas* this, PlayState* play) {
if (Animation_OnFrame(&this->skelAnime, 1.0f) != 0) {
if (!LINK_IS_ADULT) {
func_8002F7DC(&this->actor, NA_SE_VO_LI_DAMAGE_S_KID);
Player_PlaySfx(&this->actor, NA_SE_VO_LI_DAMAGE_S_KID);
} else {
func_8002F7DC(&this->actor, NA_SE_VO_LI_DAMAGE_S);
Player_PlaySfx(&this->actor, NA_SE_VO_LI_DAMAGE_S);
}
Audio_PlayActorSound2(&this->actor, NA_SE_EN_FALL_CATCH);
@ -475,9 +475,9 @@ void EnWallmas_TakePlayer(EnWallmas* this, PlayState* play) {
if (this->timer == -0x1E) {
if (!LINK_IS_ADULT) {
func_8002F7DC(&this->actor, NA_SE_VO_LI_TAKEN_AWAY_KID);
Player_PlaySfx(&this->actor, NA_SE_VO_LI_TAKEN_AWAY_KID);
} else {
func_8002F7DC(&this->actor, NA_SE_VO_LI_TAKEN_AWAY);
Player_PlaySfx(&this->actor, NA_SE_VO_LI_TAKEN_AWAY);
}
}
if (this->timer == 0) {

View File

@ -461,7 +461,7 @@ void EnWf_Wait(EnWf* this, PlayState* play) {
angle = player->actor.shape.rot.y - this->actor.shape.rot.y;
angle = ABS(angle);
if ((this->actor.xzDistToPlayer < 80.0f) && (player->swordState != 0) && (angle >= 0x1F40)) {
if ((this->actor.xzDistToPlayer < 80.0f) && (player->meleeWeaponState != 0) && (angle >= 0x1F40)) {
this->actor.shape.rot.y = this->actor.world.rot.y = this->actor.yawTowardsPlayer;
EnWf_SetupRunAroundPlayer(this);
} else {
@ -522,7 +522,7 @@ void EnWf_RunAtPlayer(EnWf* this, PlayState* play) {
playerFacingAngleDiff = player->actor.shape.rot.y - this->actor.shape.rot.y;
playerFacingAngleDiff = ABS(playerFacingAngleDiff);
if ((this->actor.xzDistToPlayer < (150.0f + baseRange)) && (player->swordState != 0) &&
if ((this->actor.xzDistToPlayer < (150.0f + baseRange)) && (player->meleeWeaponState != 0) &&
(playerFacingAngleDiff >= 8000)) {
this->actor.shape.rot.y = this->actor.world.rot.y = this->actor.yawTowardsPlayer;

View File

@ -721,7 +721,7 @@ void func_80B4543C(EnZf* this, PlayState* play) {
angleToPlayer = player->actor.shape.rot.y - this->actor.shape.rot.y;
angleToPlayer = ABS(angleToPlayer);
if ((this->actor.xzDistToPlayer < 100.0f) && (player->swordState != 0) && (angleToPlayer >= 0x1F40)) {
if ((this->actor.xzDistToPlayer < 100.0f) && (player->meleeWeaponState != 0) && (angleToPlayer >= 0x1F40)) {
this->actor.shape.rot.y = this->actor.world.rot.y = this->actor.yawTowardsPlayer;
func_80B483E4(this, play);
} else if (this->unk_3F0 != 0) {
@ -838,7 +838,7 @@ void EnZf_ApproachPlayer(EnZf* this, PlayState* play) {
temp_v1 = player->actor.shape.rot.y - this->actor.shape.rot.y;
temp_v1 = ABS(temp_v1);
if ((sp48 == this->curPlatform) && (this->actor.xzDistToPlayer < 150.0f) && (player->swordState != 0) &&
if ((sp48 == this->curPlatform) && (this->actor.xzDistToPlayer < 150.0f) && (player->meleeWeaponState != 0) &&
(temp_v1 >= 0x1F40)) {
this->actor.shape.rot.y = this->actor.world.rot.y = this->actor.yawTowardsPlayer;

View File

@ -422,7 +422,7 @@ void func_80B4BBC4(EnZl1* this, PlayState* play) {
Animation_Change(&this->skelAnime, &gChildZelda1Anim_00438, 1.0f, 0.0f, frameCount, ANIMMODE_LOOP, 0.0f);
func_8002DF54(play, &this->actor, 1);
func_8002F7DC(&player->actor, NA_SE_VO_LI_SURPRISE_KID);
Player_PlaySfx(&player->actor, NA_SE_VO_LI_SURPRISE_KID);
this->actor.textId = 0x7039;
Message_StartTextbox(play, this->actor.textId, NULL);
this->unk_1E2 = 0;

View File

@ -109,7 +109,7 @@ void MagicFire_UpdateBeforeCast(Actor* thisx, PlayState* play) {
this->actionTimer--;
} else {
this->actor.update = MagicFire_Update;
func_8002F7DC(&player->actor, NA_SE_PL_MAGIC_FIRE);
Player_PlaySfx(&player->actor, NA_SE_PL_MAGIC_FIRE);
}
this->actor.world.pos = player->actor.world.pos;
}

View File

@ -62,7 +62,7 @@ void MagicWind_Init(Actor* thisx, PlayState* play) {
MagicWind_SetupAction(this, MagicWind_Shrink);
// "Means start"
LOG_STRING("表示開始");
func_8002F7DC(&player->actor, NA_SE_PL_MAGIC_WIND_WARP);
Player_PlaySfx(&player->actor, NA_SE_PL_MAGIC_WIND_WARP);
break;
}
}
@ -95,7 +95,7 @@ void MagicWind_WaitForTimer(MagicWind* this, PlayState* play) {
// "Means start"
LOG_STRING("表示開始");
func_8002F7DC(&player->actor, NA_SE_PL_MAGIC_WIND_NORMAL);
Player_PlaySfx(&player->actor, NA_SE_PL_MAGIC_WIND_NORMAL);
MagicWind_UpdateAlpha(1.0f);
MagicWind_SetupAction(this, MagicWind_Grow);
SkelCurve_Update(play, &this->skelCurve);

View File

@ -223,7 +223,7 @@ void ObjKibako_Idle(ObjKibako* this, PlayState* play) {
void ObjKibako_SetupHeld(ObjKibako* this) {
this->actionFunc = ObjKibako_Held;
this->actor.room = -1;
func_8002F7DC(&this->actor, NA_SE_PL_PULL_UP_WOODBOX);
Player_PlaySfx(&this->actor, NA_SE_PL_PULL_UP_WOODBOX);
}
void ObjKibako_Held(ObjKibako* this, PlayState* play) {

View File

@ -176,7 +176,7 @@ void ObjSyokudai_Update(Actor* thisx, PlayState* play2) {
if (dmgFlags & 0x20820) {
interactionType = 1;
}
} else if (player->heldItemAction == PLAYER_IA_STICK) {
} else if (player->heldItemAction == PLAYER_IA_DEKU_STICK) {
Math_Vec3f_Diff(&player->meleeWeaponInfo[0].tip, &this->actor.world.pos, &tipToFlame);
tipToFlame.y -= 67.0f;
if ((SQ(tipToFlame.x) + SQ(tipToFlame.y) + SQ(tipToFlame.z)) < SQ(20.0f)) {

View File

@ -283,7 +283,7 @@ void ObjTsubo_Idle(ObjTsubo* this, PlayState* play) {
void ObjTsubo_SetupLiftedUp(ObjTsubo* this) {
this->actionFunc = ObjTsubo_LiftedUp;
this->actor.room = -1;
func_8002F7DC(&this->actor, NA_SE_PL_PULL_UP_POT);
Player_PlaySfx(&this->actor, NA_SE_PL_PULL_UP_POT);
this->actor.flags |= ACTOR_FLAG_UPDATE_WHILE_CULLED;
}

File diff suppressed because it is too large Load Diff

View File

@ -152,7 +152,7 @@ void KaleidoScope_DrawPlayerWork(PlayState* play) {
extern int fbTest;
gsSPSetFB(play->state.gfxCtx->polyOpa.p++, fbTest);
func_8009214C(play, pauseCtx->playerSegment, &pauseCtx->playerSkelAnime, &pos, &link_kaleido_rot, scale,
Player_DrawPause(play, pauseCtx->playerSegment, &pauseCtx->playerSkelAnime, &pos, &link_kaleido_rot, scale,
CUR_EQUIP_VALUE(EQUIP_SWORD), CUR_EQUIP_VALUE(EQUIP_TUNIC) - 1, CUR_EQUIP_VALUE(EQUIP_SHIELD),
CUR_EQUIP_VALUE(EQUIP_BOOTS) - 1);
gsSPResetFB(play->state.gfxCtx->polyOpa.p++);