mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-22 22:44:17 -04:00
d_a_player_main OK (#1010)
This commit is contained in:
+1
-1
@@ -591,7 +591,7 @@ config.libs = [
|
||||
Object(Matching, "d/actor/d_a_npc_fa1.cpp"),
|
||||
Object(NonMatching, "d/actor/d_a_obj_search.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_player.cpp"),
|
||||
Object(NonMatching, "d/actor/d_a_player_main.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_player_main.cpp"),
|
||||
Object(Matching, "d/actor/d_a_player_npc.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_sea.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_spc_item01.cpp"),
|
||||
|
||||
@@ -298,15 +298,14 @@ public:
|
||||
static void setMabaTimer(u8 timer) { m_maba_timer = timer; }
|
||||
static void setMorfFrame(u8 frame) { m_morf_frame = frame; }
|
||||
|
||||
// TODO:
|
||||
void getNowOffsetXP() {}
|
||||
void getNowOffsetYP() {}
|
||||
void setNowOffsetX(f32 x) { mEyePos.x = x; }
|
||||
void setNowOffsetY(f32 y) { mEyePos.y = y; }
|
||||
f32* getNowOffsetXP() { return &mNowOffset.x; }
|
||||
f32* getNowOffsetYP() { return &mNowOffset.y; }
|
||||
void setNowOffsetX(f32 x) { mNowOffset.x = x; }
|
||||
void setNowOffsetY(f32 y) { mNowOffset.y = y; }
|
||||
|
||||
public:
|
||||
/* 0x6C */ cXy mEyePosOld;
|
||||
/* 0x74 */ cXy mEyePos;
|
||||
private:
|
||||
/* 0x6C */ mutable cXy mOldOffset;
|
||||
/* 0x74 */ mutable cXy mNowOffset;
|
||||
}; // Size: 0x7C
|
||||
|
||||
class daPy_swBlur_c : public J3DPacket {
|
||||
@@ -2230,9 +2229,7 @@ public:
|
||||
/* 0x355E */ s16 m355E;
|
||||
/* 0x3560 */ u16 mEquipItem; // The item Link is currently holding in his hand.
|
||||
/* 0x3562 */ u16 m3562;
|
||||
/* 0x3564 */ s16 m3564;
|
||||
/* 0x3566 */ s16 m3566;
|
||||
/* 0x3568 */ s16 m3568;
|
||||
/* 0x3564 */ csXyz m3564;
|
||||
/* 0x356C */ int mCameraInfoIdx;
|
||||
// `mProcVar`'s are variables that are context dependent for each `PROC` action.
|
||||
// (The exact setup may need to be simplified later)
|
||||
|
||||
@@ -118,10 +118,10 @@ static BOOL daPy_createHeap(fopAc_ac_c* i_this) {
|
||||
|
||||
/* 80102EAC-80102F1C .text __ct__13daPy_matAnm_cFv */
|
||||
daPy_matAnm_c::daPy_matAnm_c() {
|
||||
mEyePosOld.x = 0.0f;
|
||||
mEyePosOld.y = 0.0f;
|
||||
mEyePos.x = 0.0f;
|
||||
mEyePos.y = 0.0f;
|
||||
mOldOffset.x = 0.0f;
|
||||
mOldOffset.y = 0.0f;
|
||||
mNowOffset.x = 0.0f;
|
||||
mNowOffset.y = 0.0f;
|
||||
|
||||
m_maba_flg = 0;
|
||||
m_eye_move_flg = 0;
|
||||
@@ -131,9 +131,6 @@ daPy_matAnm_c::daPy_matAnm_c() {
|
||||
|
||||
/* 80102F64-80103074 .text calc__13daPy_matAnm_cCFP11J3DMaterial */
|
||||
void daPy_matAnm_c::calc(J3DMaterial* mat) const {
|
||||
// Fakematch?
|
||||
daPy_matAnm_c* i_this = const_cast<daPy_matAnm_c*>(this);
|
||||
|
||||
J3DMaterialAnm::calc(mat);
|
||||
|
||||
for (u32 i = 0; i < 8; i++) {
|
||||
@@ -141,14 +138,14 @@ void daPy_matAnm_c::calc(J3DMaterial* mat) const {
|
||||
J3DTextureSRTInfo& srt = mat->getTexMtx(i)->getTexMtxInfo().mSRT;
|
||||
if (getMorfFrame() != 0) {
|
||||
f32 temp = 1.0f / (m_morf_frame + 1);
|
||||
srt.mTranslationX = mEyePosOld.x * (1.0f - temp) + (srt.mTranslationX * temp);
|
||||
srt.mTranslationY = mEyePosOld.y * (1.0f - temp) + (srt.mTranslationY * temp);
|
||||
srt.mTranslationX = mOldOffset.x * (1.0f - temp) + (srt.mTranslationX * temp);
|
||||
srt.mTranslationY = mOldOffset.y * (1.0f - temp) + (srt.mTranslationY * temp);
|
||||
} else if (getEyeMoveFlg() != 0) {
|
||||
srt.mTranslationX = mEyePos.x;
|
||||
srt.mTranslationY = mEyePos.y;
|
||||
srt.mTranslationX = mNowOffset.x;
|
||||
srt.mTranslationY = mNowOffset.y;
|
||||
}
|
||||
i_this->mEyePosOld.x = srt.mTranslationX;
|
||||
i_this->mEyePosOld.y = srt.mTranslationY;
|
||||
mOldOffset.x = srt.mTranslationX;
|
||||
mOldOffset.y = srt.mTranslationY;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -270,7 +267,7 @@ BOOL daPy_lk_c::jointBeforeCB(int jnt_no, J3DTransformInfo* param_2, Quaternion*
|
||||
|
||||
csXyz local_38(0, 0, 0);
|
||||
if (jnt_no == 0xF) {
|
||||
local_38.set(m3566, m3568, m3564);
|
||||
local_38.set(m3564.y, m3564.z, m3564.x);
|
||||
} else if (jnt_no == 0x1F) {
|
||||
m34C6 = 2;
|
||||
m3668.mScale = param_2->mScale;
|
||||
@@ -6181,7 +6178,7 @@ BOOL daPy_lk_c::procWait() {
|
||||
}
|
||||
}
|
||||
if (!dComIfGp_event_runCheck() && m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_WAITS &&
|
||||
checkNoUpperAnime() && daPy_matAnm_c::m_eye_move_flg == 0 && m3566 == 0 && m3568 == 0 && m3564 == 0)
|
||||
checkNoUpperAnime() && daPy_matAnm_c::getEyeMoveFlg() == 0 && m3564.y == 0 && m3564.z == 0 && m3564.x == 0)
|
||||
{
|
||||
m34D2--;
|
||||
if (m34D2 == 0) {
|
||||
@@ -7635,7 +7632,7 @@ BOOL daPy_lk_c::procDamage() {
|
||||
f32 dVar6;
|
||||
|
||||
dVar6 = (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() - m_HIO->mDam.mDamage.m.field_0x28);
|
||||
cLib_addCalcAngleS(&m3566, 0, 4, 0x800, 0x100);
|
||||
cLib_addCalcAngleS(&m3564.y, 0, 4, 0x800, 0x100);
|
||||
if (dVar6 < 0.0f) {
|
||||
uVar4 = ((16384.0f * mFrameCtrlUnder[UNDER_MOVE0_e].getFrame()) /
|
||||
m_HIO->mDam.mDamage.m.field_0x28);
|
||||
@@ -7652,9 +7649,9 @@ BOOL daPy_lk_c::procDamage() {
|
||||
fVar1 = 1.0f - cM_scos(uVar4);
|
||||
fVar2 = 1.0f - cM_scos(uVar4 < 0x2000 ? 0 : (s16)((uVar4 - 0x2000) * 2));
|
||||
}
|
||||
m3564 = m34D4 * fVar1;
|
||||
m3566 = 0;
|
||||
m3568 = m34D6 * fVar1;
|
||||
m3564.x = m34D4 * fVar1;
|
||||
m3564.y = 0;
|
||||
m3564.z = m34D6 * fVar1;
|
||||
mBodyAngle.x = m34D4 * fVar2;
|
||||
mBodyAngle.z = m34D6 * fVar2;
|
||||
mBodyAngle.y = 0;
|
||||
@@ -8991,7 +8988,6 @@ BOOL daPy_lk_c::checkAttentionPosAngle(fopAc_ac_c* actor, cXyz** pOutPos) {
|
||||
|
||||
/* 8011AE20-8011BE08 .text setNeckAngle__9daPy_lk_cFv */
|
||||
void daPy_lk_c::setNeckAngle() {
|
||||
/* Nonmatching - regalloc */
|
||||
cXyz spC4;
|
||||
cXyz spB8;
|
||||
cXyz spAC;
|
||||
@@ -9127,19 +9123,23 @@ void daPy_lk_c::setNeckAngle() {
|
||||
spAC = sp88 - spC4;
|
||||
|
||||
s16 r23_3;
|
||||
s16 r24_2;
|
||||
s16 r24_4;
|
||||
s16 r27;
|
||||
s16 r25_2;
|
||||
s16 r23;
|
||||
s16 r25_3;
|
||||
s16 r24_2 = cM_atan2s(-spAC.y, spAC.absXZ());
|
||||
r24_4 = (r24_2 - m3564.x);
|
||||
s16 r25_2 = (cM_atan2s(spAC.x, spAC.z));
|
||||
r25_3 = r25_2;
|
||||
r25_3 -= m34DE;
|
||||
r25_3 = r25_3 - m3564.y;
|
||||
s16 r4;
|
||||
r24_2 = cM_atan2s(-spAC.y, spAC.absXZ()) - m3564;
|
||||
r25_2 = (cM_atan2s(spAC.x, spAC.z) - m34DE) - m3566;
|
||||
s16 r23;
|
||||
if (checkModeFlg(ModeFlg_00000080 | ModeFlg_08000000) && sp18 != NULL && !checkUpperAnime(LKANM_BCK_DAMDASH)) {
|
||||
spB8 = *sp18 - spC4;
|
||||
r27 = cM_atan2s(-spB8.y, spB8.absXZ());
|
||||
r23_3 = cM_atan2s(spB8.x, spB8.z) - m34DE;
|
||||
if (spB8.absXZ() < 30.0f) {
|
||||
r23_3 = m3566;
|
||||
r23_3 = m3564.y;
|
||||
}
|
||||
if (r27 > 8000) {
|
||||
r27 = 8000;
|
||||
@@ -9155,25 +9155,25 @@ void daPy_lk_c::setNeckAngle() {
|
||||
m_anm_heap_upper[UPPER_MOVE1_e].mIdx != LKANM_BCK_DASHKAZE)
|
||||
{
|
||||
if (r28) {
|
||||
r30 = (r27 >> 1) - r24_2;
|
||||
r29 = (r23_3 >> 1) - r25_2;
|
||||
r30 = (r27 >> 1) - r24_4;
|
||||
r29 = (r23_3 >> 1) - r25_3;
|
||||
r4 = r30;
|
||||
r23 = r29;
|
||||
} else {
|
||||
r4 = r27 - r24_2;
|
||||
r23 = r23_3 - r25_2;
|
||||
r4 = r27 - r24_4;
|
||||
r23 = r23_3 - r25_3;
|
||||
}
|
||||
} else {
|
||||
if (r28) {
|
||||
r30 = r27 - r24_2;
|
||||
r29 = r23_3 - r25_2;
|
||||
r30 = r27 - r24_4;
|
||||
r29 = r23_3 - r25_3;
|
||||
}
|
||||
r4 = 0;
|
||||
r23 = 0;
|
||||
}
|
||||
} else if (mCurProc == daPyProc_DAMAGE_e) {
|
||||
r4 = m3564;
|
||||
r23 = m3566;
|
||||
r4 = m3564.x;
|
||||
r23 = m3564.y;
|
||||
} else if ((mCurProc == daPyProc_LADDER_MOVE_e || mCurProc == daPyProc_CLIMB_MOVE_UP_DOWN_e) &&
|
||||
mDirection == DIR_FORWARD)
|
||||
{
|
||||
@@ -9205,18 +9205,18 @@ void daPy_lk_c::setNeckAngle() {
|
||||
r29 = 0;
|
||||
}
|
||||
|
||||
cLib_addCalcAngleS(&m3564, r4, 3, 0x1000, 0x100);
|
||||
cLib_addCalcAngleS(&m3566, r23, 3, 0x1000, 0x100);
|
||||
cLib_addCalcAngleS(&m3564.x, r4, 3, 0x1000, 0x100);
|
||||
cLib_addCalcAngleS(&m3564.y, r23, 3, 0x1000, 0x100);
|
||||
if (checkModeFlg(ModeFlg_00000080)) {
|
||||
s16 r4 = r25_2 + m3566;
|
||||
s16 r4 = r25_3 + m3564.y;
|
||||
if (r4 > m_HIO->mShip.m.field_0x0) {
|
||||
m3566 = m_HIO->mShip.m.field_0x0 - r25_2;
|
||||
m3564.y = m_HIO->mShip.m.field_0x0 - r25_3;
|
||||
} else if (r4 < -m_HIO->mShip.m.field_0x0) {
|
||||
m3566 = -(m_HIO->mShip.m.field_0x0 + r25_2);
|
||||
m3564.y = -(m_HIO->mShip.m.field_0x0 + r25_3);
|
||||
}
|
||||
}
|
||||
if (mCurProc != daPyProc_DAMAGE_e) {
|
||||
cLib_addCalcAngleS(&m3568, 0, 3, 0x1000, 0x100);
|
||||
cLib_addCalcAngleS(&m3564.z, 0, 3, 0x1000, 0x100);
|
||||
}
|
||||
|
||||
f32 f31;
|
||||
@@ -9306,10 +9306,10 @@ void daPy_lk_c::setNeckAngle() {
|
||||
f29 = 0.0f;
|
||||
}
|
||||
if (daPy_matAnm_c::getEyeMoveFlg() != 0) {
|
||||
cLib_addCalc(&m_tex_eye_scroll[0]->mEyePos.x, f31, 0.5f, 0.1f, 0.03f);
|
||||
cLib_addCalc(&m_tex_eye_scroll[1]->mEyePos.x, f30, 0.5f, 0.1f, 0.03f);
|
||||
cLib_addCalc(&m_tex_eye_scroll[0]->mEyePos.y, f29, 0.5f, 0.08f, 0.02f);
|
||||
m_tex_eye_scroll[1]->mEyePos.y = m_tex_eye_scroll[0]->mEyePos.y;
|
||||
cLib_addCalc(m_tex_eye_scroll[0]->getNowOffsetXP(), f31, 0.5f, 0.1f, 0.03f);
|
||||
cLib_addCalc(m_tex_eye_scroll[1]->getNowOffsetXP(), f30, 0.5f, 0.1f, 0.03f);
|
||||
cLib_addCalc(m_tex_eye_scroll[0]->getNowOffsetYP(), f29, 0.5f, 0.08f, 0.02f);
|
||||
m_tex_eye_scroll[1]->setNowOffsetY(*m_tex_eye_scroll[0]->getNowOffsetYP());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user