mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-10 06:16:52 -04:00
D_a_npc_tt (#1099)
* matching * cleanup * d_a_npc_tt matching outside of _create and rodata * matching * cleanup
This commit is contained in:
+787
-69
File diff suppressed because it is too large
Load Diff
+192
-12
@@ -1,33 +1,213 @@
|
||||
// The name of this .inc file is known because of an assert contained in it.
|
||||
|
||||
#include "d/actor/d_a_npc_tt.h"
|
||||
|
||||
static const s16 l_bck_ix_tbl[] = {
|
||||
dRes_INDEX_TT_BCK_WAIT01_e,
|
||||
dRes_INDEX_TT_BCK_TALK01_e,
|
||||
dRes_INDEX_TT_BCK_TALK01_e,
|
||||
dRes_INDEX_TT_BCK_TALK02_e,
|
||||
dRes_INDEX_TT_BCK_STEP01_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_TURN_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_ND_e,
|
||||
dRes_INDEX_TT_BCK_POSE_NL_e,
|
||||
dRes_INDEX_TT_BCK_POSE_NR_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
dRes_INDEX_TT_BCK_POSE_CC_e,
|
||||
};
|
||||
|
||||
static const s16 l_bas_ix_tbl[] = {
|
||||
dRes_INDEX_TT_BAS_WAIT01_e,
|
||||
dRes_INDEX_TT_BAS_TALK01_e,
|
||||
dRes_INDEX_TT_BAS_TALK01_e,
|
||||
dRes_INDEX_TT_BAS_TALK01_e,
|
||||
dRes_INDEX_TT_BAS_STEP01_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_TURN_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_ND_e,
|
||||
dRes_INDEX_TT_BAS_POSE_NL_e,
|
||||
dRes_INDEX_TT_BAS_POSE_NR_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
dRes_INDEX_TT_BAS_POSE_CC_e,
|
||||
};
|
||||
|
||||
static const int l_btp_ix_tbl[] = {
|
||||
dRes_INDEX_TT_BTP_MABA01_e
|
||||
};
|
||||
|
||||
/* 00002CD4-00002DEC .text initTexPatternAnm__10daNpc_Tt_cFb */
|
||||
void daNpc_Tt_c::initTexPatternAnm(bool) {
|
||||
/* Nonmatching */
|
||||
BOOL daNpc_Tt_c::initTexPatternAnm(bool i_modify) {
|
||||
|
||||
J3DModelData* modelData = mpMorf->getModel()->getModelData();
|
||||
|
||||
m_head_tex_pattern = (J3DAnmTexPattern*)dComIfG_getObjectRes("Tt", l_btp_ix_tbl[mTexPatternIdx]);
|
||||
JUT_ASSERT(130, m_head_tex_pattern != NULL);
|
||||
|
||||
if (!mBtpAnm.init(modelData, m_head_tex_pattern, TRUE, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, i_modify, FALSE)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
mBlinkFrame = 0;
|
||||
mBlinkTimer = 0;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00002DEC-00002E78 .text playTexPatternAnm__10daNpc_Tt_cFv */
|
||||
void daNpc_Tt_c::playTexPatternAnm() {
|
||||
/* Nonmatching */
|
||||
if (cLib_calcTimer(&mBlinkTimer) == 0) {
|
||||
if (mBlinkFrame >= m_head_tex_pattern->getFrameMax()) {
|
||||
mBlinkFrame -= m_head_tex_pattern->getFrameMax();
|
||||
mBlinkTimer = cM_rndF(100.0f) + 30.0f;
|
||||
} else {
|
||||
mBlinkFrame++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 00002E78-00002F94 .text setAnm__10daNpc_Tt_cFi */
|
||||
void daNpc_Tt_c::setAnm(int) {
|
||||
/* Nonmatching */
|
||||
void daNpc_Tt_c::setAnm(int newAnmIdx) {
|
||||
if (mTexPatternIdx != 0) {
|
||||
mTexPatternIdx = 0;
|
||||
initTexPatternAnm(true);
|
||||
}
|
||||
s8 anmIdx = newAnmIdx;
|
||||
f32 morf = 8.0f;
|
||||
f32 speed = 1.0f;
|
||||
s32 loopMode = J3DFrameCtrl::EMode_LOOP;
|
||||
|
||||
if(newAnmIdx >= 7 && newAnmIdx <= 31) {
|
||||
morf = 7.0f;
|
||||
mSoundTimer = morf;
|
||||
}
|
||||
|
||||
if (newAnmIdx == 6) {
|
||||
speed = 0.9f;
|
||||
}
|
||||
|
||||
if (newAnmIdx < 5) {
|
||||
clrFlag(0x40);
|
||||
} else {
|
||||
loopMode = J3DFrameCtrl::EMode_NONE;
|
||||
}
|
||||
|
||||
if(newAnmIdx == 2) {
|
||||
speed = 0.0f;
|
||||
}
|
||||
|
||||
if (anmIdx != mCurrAnmIdx && anmIdx != -1) {
|
||||
mCurrAnmIdx = anmIdx;
|
||||
mAnmLoopCount = 0;
|
||||
mAnmTimer = 0.0f;
|
||||
dNpc_setAnm(mpMorf, loopMode, morf, speed, l_bck_ix_tbl[mCurrAnmIdx], l_bas_ix_tbl[mCurrAnmIdx], "Tt");
|
||||
}
|
||||
}
|
||||
|
||||
/* 00002F94-00002FFC .text danceInit__10daNpc_Tt_cFi */
|
||||
void daNpc_Tt_c::danceInit(int) {
|
||||
/* Nonmatching */
|
||||
void daNpc_Tt_c::danceInit(int param_1) {
|
||||
if (param_1 != 0 || !chkFlag(0x40)) {
|
||||
mDanceStep = 0;
|
||||
mDanceStepTimer = 8;
|
||||
setAnm(5);
|
||||
setFlag(0x40);
|
||||
}
|
||||
}
|
||||
|
||||
/* 00002FFC-000030B0 .text danceProc__10daNpc_Tt_cFv */
|
||||
void daNpc_Tt_c::danceProc() {
|
||||
/* Nonmatching */
|
||||
BOOL daNpc_Tt_c::danceProc() {
|
||||
if (!chkFlag(0x40)) {
|
||||
return FALSE;
|
||||
|
||||
}
|
||||
if (mpMorf->isMorf()) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (mDanceStep == 5 && mDanceStepTimer == 0x19) {
|
||||
mHeadAnm.swing_vertical_init(2, 0x1194, -1000, 1);
|
||||
}
|
||||
|
||||
if(mDanceStepTimer != 0) {
|
||||
mDanceStepTimer--;
|
||||
return FALSE;
|
||||
}
|
||||
return danceNext();
|
||||
}
|
||||
|
||||
/* 000030B0-00003210 .text danceNext__10daNpc_Tt_cFv */
|
||||
void daNpc_Tt_c::danceNext() {
|
||||
/* Nonmatching */
|
||||
BOOL daNpc_Tt_c::danceNext() {
|
||||
if (mDanceStep < 6) {
|
||||
mDanceStep++;
|
||||
} else {
|
||||
mDanceStep = 0;
|
||||
}
|
||||
|
||||
switch(mDanceStep) {
|
||||
case 0:
|
||||
case 2:
|
||||
setAnm(5);
|
||||
mDanceStepTimer = 8;
|
||||
break;
|
||||
case 1:
|
||||
setAnm(10);
|
||||
mDanceStepTimer = 8;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
setAnm(9);
|
||||
mDanceStepTimer = 8;
|
||||
break;
|
||||
case 4:
|
||||
setAnm(6);
|
||||
mDanceStepTimer = 58;
|
||||
break;
|
||||
case 5:
|
||||
if(chkFlag(0x100)) {
|
||||
clrFlag(0x100);
|
||||
fopAcM_seStart(this, JA_SE_CV_TT_DANCE_FIN, 0);
|
||||
}
|
||||
setAnm(8);
|
||||
mDanceStepTimer = 53;
|
||||
break;
|
||||
}
|
||||
return mDanceStep == 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user