Minor d_a_alink fixes (#2534)

This commit is contained in:
Max Roncace
2025-07-15 23:00:01 +03:00
committed by GitHub
parent 70f0ed7ef7
commit 5c86d6d26f
13 changed files with 287 additions and 234 deletions
+8 -2
View File
@@ -21908,11 +21908,17 @@ m_obj__12dEyeHL_mng_c = .sbss:0x80450FA8; // type:object size:0x4 scope:global a
struct_80450FB0 = .sbss:0x80450FB0; // type:object size:0x1 scope:global align:8 data:byte
lbl_80450FB1 = .sbss:0x80450FB1; // type:object size:0x1 data:byte
lbl_80450FB2 = .sbss:0x80450FB2; // type:object size:0x1 data:byte
struct_80450FB8 = .sbss:0x80450FB8; // type:object size:0x4 scope:global align:4 data:byte
init$11203 = .sbss:0x80450FB8; // type:object size:0x1 scope:global align:1 data:byte
init$11207 = .sbss:0x80450FB9; // type:object size:0x1 scope:global align:1 data:byte
init$11211 = .sbss:0x80450FBA; // type:object size:0x1 scope:global align:1 data:byte
init$11215 = .sbss:0x80450FBB; // type:object size:0x1 scope:global align:1 data:byte
init$33110 = .sbss:0x80450FBC; // type:object size:0x1 scope:local align:1 data:byte
init$33113 = .sbss:0x80450FBD; // type:object size:0x1 scope:local align:1 data:byte
it$36766 = .sbss:0x80450FC0; // type:object size:0x4 scope:local align:4 data:4byte
struct_80450FC4 = .sbss:0x80450FC4; // type:object size:0x4 scope:local align:4 data:byte
init$37466 = .sbss:0x80450FC4; // type:object size:0x1 scope:local align:4 data:byte
lbl_80450FC5 = .sbss:0x80450FC5; // type:object size:0x1 data:byte
lbl_80450FC6 = .sbss:0x80450FC6; // type:object size:0x1 data:byte
lbl_80450FC7 = .sbss:0x80450FC7; // type:object size:0x1 data:byte
m_eye_move_flg = .sbss:0x80450FC8; // type:object size:0x1 scope:local align:1 data:byte
m_morf_frame__16daAlink_matAnm_c = .sbss:0x80450FC9; // type:object size:0x1 scope:global align:1 data:byte
bgWaitFlg = .sbss:0x80450FCC; // type:object size:0x4 scope:local align:4 data:4byte
+5
View File
@@ -151,6 +151,10 @@ public:
genNodeSub(label, obj, param_2, param_3);
}
void endUpdateNode() {
// empty function
}
void startUpdateNode(JORReflexible* obj) {
putNode(obj);
}
@@ -240,6 +244,7 @@ public:
void updateControl(u32 mode, u32 id, u32 param_2);
void updateControl(u32 mode, u32 id, const char* param_2);
void updateLabel(u32 mode, u32 id, const char* param_2) { updateControl(mode, id, param_2); }
void updateSliderSub(u32 mode, u32 id, s32 value, s32 rangeMin, s32 rangeMax,
u32 param_5);
void updateCheckBoxSub(u32 mode, u32 id, u16 value, u16 mask, u32 param_4);
+2 -2
View File
@@ -3,8 +3,6 @@
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
#include "JSystem/J3DGraphBase/J3DMatBlock.h"
#include "JSystem/J3DGraphBase/J3DMaterial.h"
#include "Z2AudioLib/Z2Creature.h"
#include "Z2AudioLib/Z2WolfHowlMgr.h"
#include "d/actor/d_a_player.h"
#include "d/actor/d_a_tag_mmsg.h"
@@ -228,6 +226,8 @@ public:
/* 80140B88 */ daAlinkHIO_c();
/* 80140C10 */ virtual ~daAlinkHIO_c();
void jumpStateUpdate(const cXyz*, const cXyz*, f32);
/* 0x04 */ u8 field_0x4[0xC - 0x4];
/* 0x0C */ daAlinkHIO_cut_c mCut;
/* 0x0D */ u8 field_0xD[0x4B - 0xD];
+1 -1
View File
@@ -24,7 +24,7 @@ void mDoMtx_ZrotM(Mtx mtx, s16 z);
bool mDoMtx_inverseTranspose(f32 const (*param_0)[4], f32 (*param_1)[4]);
void mDoMtx_QuatConcat(Quaternion const* param_0, Quaternion const* param_1, Quaternion* param_2);
inline void mDoMtx_multVecSR(Mtx m, const Vec* src, Vec* dst) {
inline void mDoMtx_multVecSR(const Mtx m, const Vec* src, Vec* dst) {
MTXMultVecSR(m, src, dst);
}
+197 -155
View File
File diff suppressed because it is too large Load Diff
-6
View File
@@ -812,9 +812,3 @@ int daAlink_c::procBottleGet() {
return 1;
}
/* 80110648-80110654 10AF88 000C+00 0/0 1/0 0/0 .text Insect_Release__9dInsect_cFv */
// asm void dInsect_c::Insect_Release() {
extern "C" void Insect_Release__9dInsect_cFv() {
// NONMATCHING
}
+1 -2
View File
@@ -669,9 +669,8 @@ int daAlink_c::procCrawlMove() {
}
/* 800F99FC-800F9ABC 0F433C 00C0+00 1/1 0/0 0/0 .text procCrawlAutoMoveInit__9daAlink_cFiP4cXyz */
// NONMATCHING - extrwi vs rlwinm
int daAlink_c::procCrawlAutoMoveInit(int param_0, cXyz* param_1) {
BOOL var_r30 = dComIfGp_checkPlayerStatus0(0, 0x2000);
BOOL var_r30 = dComIfGp_checkPlayerStatus0(0, 0x2000) != 0 ? TRUE : FALSE;
commonProcInit(PROC_CRAWL_AUTO_MOVE);
field_0x37c8 = *param_1;
field_0x33cc = 1.0f;
+4 -5
View File
@@ -1338,10 +1338,9 @@ void daAlink_c::setHighModelBck(mDoExt_bckAnm* i_bck, u16 i_anmID) {
/* 801190A4-80119134 1139E4 0090+00 1/1 0/0 0/0 .text setHighModelFaceBtk__9daAlink_cFUs
*/
// NONMATCHING - extra mr
void daAlink_c::setHighModelFaceBtk(u16 i_anmID) {
J3DAnmTextureSRTKey* btk = (J3DAnmTextureSRTKey*)dComIfG_getObjectIDRes(
dStage_roomControl_c::getDemoArcName(), i_anmID);
J3DAnmTextureSRTKey* btk = static_cast<J3DAnmTextureSRTKey*>(dComIfG_getObjectIDRes(
dStage_roomControl_c::getDemoArcName(), i_anmID));
if (btk && field_0x068c != btk) {
btk->searchUpdateMaterialID(mpDemoFCTongueModel->getModelData());
@@ -1356,8 +1355,8 @@ void daAlink_c::setHighModelFaceBtk(u16 i_anmID) {
* setDemoBrk__9daAlink_cFPP15J3DAnmTevRegKeyP8J3DModelUs */
// NONMATCHING - extra mr
void daAlink_c::setDemoBrk(J3DAnmTevRegKey** param_0, J3DModel* param_1, u16 i_anmID) {
J3DAnmTevRegKey* brk =
(J3DAnmTevRegKey*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), i_anmID);
J3DAnmTevRegKey* brk = static_cast<J3DAnmTevRegKey*>(dComIfG_getObjectIDRes(
dStage_roomControl_c::getDemoArcName(), i_anmID));
if (brk != NULL && *param_0 != brk) {
brk->searchUpdateMaterialID(param_1->getModelData());
+11 -11
View File
@@ -958,7 +958,6 @@ static const u16 effNameWater[] = {
};
/* 80122F78-801233A4 11D8B8 042C+00 1/1 0/0 0/0 .text setCutTurnEffect__9daAlink_cFv */
// NONMATCHING - should match when data order is fixed
void daAlink_c::setCutTurnEffect() {
static Vec const waterEffScale = {1.5f, 1.5f, 1.5f};
@@ -1956,14 +1955,15 @@ static void setBezierPos(cXyz const* start, cXyz const* control_1, cXyz const* c
/* 8012589C-80125B0C 1201DC 0270+00 1/1 0/0 0/0 .text
* copyBlur__14daAlink_blur_cFPC4cXyzPC4cXyzPC4cXyz */
// NONMATCHING
void daAlink_blur_c::copyBlur(cXyz const* param_0, cXyz const* param_1, cXyz const* param_2) {
for (int i = 59 - 10; i >= 0; i--) {
field_0x38[i + 10] = field_0x38[i];
field_0x308[i + 10] = field_0x308[i];
s32 temp = 10;
for (int i = 59 - temp; i >= 0; i--) {
field_0x38[i + temp] = field_0x38[i];
field_0x308[i + temp] = field_0x308[i];
}
f32 temp_f30 = 1.0f / 10;
f32 temp_f30 = 1.0f / temp;
f32 var_f31 = 0.0f;
cXyz sp4C;
@@ -1971,14 +1971,14 @@ void daAlink_blur_c::copyBlur(cXyz const* param_0, cXyz const* param_1, cXyz con
cXyz sp64;
cXyz sp70;
sp58 = field_0x308[10] + (field_0x2c * 30.0f);
sp58 = field_0x308[temp] + (field_0x2c * 30.0f);
sp4C = *param_1 + (*param_2 * -30.0f);
sp70 = field_0x38[10] + (field_0x2c * 60.0f);
sp70 = field_0x38[temp] + (field_0x2c * 60.0f);
sp64 = *param_0 + (*param_2 * -60.0f);
for (int i = 0; i < 10; i++) {
setBezierPos(param_1, &field_0x308[10], &sp4C, &sp58, var_f31, &field_0x308[i]);
setBezierPos(param_0, &field_0x38[10], &sp64, &sp70, var_f31, &field_0x38[i]);
for (int i = 0; i < temp; i++) {
setBezierPos(param_1, &field_0x308[temp], &sp4C, &sp58, var_f31, &field_0x308[i]);
setBezierPos(param_0, &field_0x38[temp], &sp64, &sp70, var_f31, &field_0x38[i]);
field_0x38[i] += (field_0x38[i] - field_0x308[i]) * field_0x24;
var_f31 += temp_f30;
+22 -15
View File
@@ -685,9 +685,12 @@ BOOL daAlink_c::checkHorseServiceWaitAnime() {
}
/* 800EDEEC-800EE64C 0E882C 0760+00 1/1 0/0 0/0 .text setSyncHorse__9daAlink_cFi */
// NONMATCHING - missing stack space at 0x10
int daAlink_c::setSyncHorse(int param_0) {
daHorse_c* horse_p = dComIfGp_getHorseActor();
BOOL mode_1 = checkModeFlg(1);
daPy_frameCtrl_c* sp24 = &mUnderFrameCtrl[0];
daPy_frameCtrl_c* sp20 = &mUnderFrameCtrl[2];
BOOL mode_1 = checkModeFlg(1) ? TRUE : FALSE;
setSyncHorsePos();
if (checkHorseSpecialProc()) {
@@ -702,12 +705,14 @@ int daAlink_c::setSyncHorse(int param_0) {
field_0x3004 = 0;
} else if (checkInputOnR() && horse_p->checkWait() && mProcID != PROC_HORSE_SUBJECTIVITY &&
mProcID != PROC_HORSE_CUT_TURN && sp8[0] != ANM_HORSE_TURN_LEFT &&
sp8[0] != ANM_HORSE_TURN_RIGHT && field_0x3004 == 0 &&
getDirectionFromShapeAngle() == DIR_FORWARD)
{
field_0x3004 = daAlinkHIO_horse_c0::m.mNoWalkTime;
setSingleAnimeParam(ANM_WSTARTH, &daAlinkHIO_horse_c0::m.mWalkAnm);
offNoResetFlg1(FLG1_UNK_1000);
sp8[0] != ANM_HORSE_TURN_RIGHT && field_0x3004 == 0) {
s32 dir = getDirectionFromShapeAngle();
if (dir == DIR_FORWARD)
{
field_0x3004 = daAlinkHIO_horse_c0::m.mNoWalkTime;
setSingleAnimeParam(ANM_WSTARTH, &daAlinkHIO_horse_c0::m.mWalkAnm);
offNoResetFlg1(FLG1_UNK_1000);
}
}
}
@@ -750,15 +755,17 @@ int daAlink_c::setSyncHorse(int param_0) {
if (doTrigger()) {
field_0x3004 = daAlinkHIO_horse_c0::m.mNoWalkTime;
daAlink_ANM anm;
const daAlinkHIO_anm_c* anmparam_p = &daAlinkHIO_horse_c0::m.mWhipAnm;
anm = ANM_HORSE_LASH;
if (mProcID != PROC_HORSE_CUT && mProcID != PROC_HORSE_CUT_TURN &&
mProcID != PROC_HORSE_CUT_CHARGE_READY)
{
setSingleAnimeParam(ANM_HORSE_LASH, anmparam_p);
setSingleAnimeParam(anm, anmparam_p);
}
setUnderAnimeParam(getMainBckData(ANM_HORSE_LASH)->m_underID, UNDER_2,
setUnderAnimeParam(getMainBckData(anm)->m_underID, UNDER_2,
&daAlinkHIO_horse_c0::m.mWhipAnm);
onNoResetFlg1(FLG1_UNK_1000);
horse_p->offPlayerBackRideLash();
@@ -774,15 +781,15 @@ int daAlink_c::setSyncHorse(int param_0) {
}
if ((checkHorseWalkStartAnm() &&
mUnderFrameCtrl[0].getFrame() > daAlinkHIO_horse_c0::m.mHorseWalkStartFrame) ||
(checkHorseWaitLashAnime() && mUnderFrameCtrl[2].getFrame() > 13.0f))
sp24->getFrame() > daAlinkHIO_horse_c0::m.mHorseWalkStartFrame) ||
(checkHorseWaitLashAnime() && sp20->getFrame() > 13.0f))
{
horse_p->onMoveAccept();
}
if (checkNoResetFlg1(FLG1_UNK_1000) &&
((checkHorseUnderDashStartAnime() && mUnderFrameCtrl[2].getFrame() > 13.0f) ||
(checkHorseUnderLashAnime() && mUnderFrameCtrl[2].getFrame() > 13.0f)))
((checkHorseUnderDashStartAnime() && sp20->getFrame() > 13.0f) ||
(checkHorseUnderLashAnime() && sp20->getFrame() > 13.0f)))
{
offNoResetFlg1(FLG1_UNK_1000);
horse_p->onPlayerLash();
@@ -1649,7 +1656,7 @@ int daAlink_c::procHorseGetOff() {
if (field_0x2fc0 == 0) {
field_0x2fab &= ~0x2;
} else {
field_0x2fab &= ~0x1;
field_0x2fab &= (u8)~0x1;
}
}
} else if (!(temp_r29->getFrame() >= 24.0f)) {
@@ -1659,7 +1666,7 @@ int daAlink_c::procHorseGetOff() {
if (field_0x2fc0 == 0) {
field_0x2fab &= ~0x2;
} else {
field_0x2fab &= ~0x1;
field_0x2fab &= (u8)~0x1;
}
}
}
+24 -21
View File
@@ -214,7 +214,6 @@ int daAlink_c::setIronBallGroundVec(cXyz const* param_0, cXyz* param_1) {
/* 80112E7C-80113CA0 10D7BC 0E24+00 1/1 0/0 0/0 .text setIronBallChainPos__9daAlink_cFv
*/
// NONMATCHING - alot of regalloc
void daAlink_c::setIronBallChainPos() {
cXyz sp2A4;
cXyz sp298;
@@ -225,9 +224,13 @@ void daAlink_c::setIronBallChainPos() {
*(&mIronBallChainPos[mItemMode] + 1) = mHeldItemRootPos;
*(&mIronBallChainAngle[mItemMode] + 1) = field_0x316c;
cXyz* var_r29;
cXyz* var_r27;
cXyz* var_r29;
cXyz* var_r26;
int i;
csXyz* sp3C;
int sp38;
int sp34;
if (mItemVar0.field_0x3018 == 2) {
var_r29 = mIronBallChainPos + 1;
@@ -237,7 +240,7 @@ void daAlink_c::setIronBallChainPos() {
sp2A4 = mHookshotTopPos - *mIronBallChainPos;
sp2A4.normalizeZP();
for (int i = 0; i < mItemMode; i++, var_r29++, var_r26++) {
for (i = 0; i < mItemMode; i++, var_r29++, var_r26++) {
sp28C = *var_r29;
*var_r29 = *var_r27 + (sp2A4 * 10.0f);
@@ -249,10 +252,10 @@ void daAlink_c::setIronBallChainPos() {
var_r26 = &field_0x3848[mItemMode];
var_r27 = var_r29 + 1;
int sp38 = mItemMode * daAlinkHIO_ironBall_c0::m.mReturnChainRate;
int sp34 = sp38;
sp38 = mItemMode * daAlinkHIO_ironBall_c0::m.mReturnChainRate;
sp34 = sp38;
for (int i = mItemMode; i >= 0; i--, var_r29--, var_r26--) {
for (i = mItemMode; i >= 0; i--, var_r29--, var_r26--) {
sp2A4 = (*var_r29 - *var_r27) + *var_r26;
if (i == 0) {
@@ -285,7 +288,7 @@ void daAlink_c::setIronBallChainPos() {
var_r27 = var_r29 - 1;
var_r26 = field_0x3848 + 1;
for (int i = 0; i < mItemMode; i++, var_r29++, var_r26++) {
for (i = 0; i < mItemMode; i++, var_r29++, var_r26++) {
sp28C = *var_r29;
sp2A4 = (*var_r29 - *var_r27) + *var_r26;
sp2A4.y += daAlinkHIO_ironBall_c0::m.mChainGravity;
@@ -308,7 +311,6 @@ void daAlink_c::setIronBallChainPos() {
} else if (mItemVar0.field_0x3018 == 1 || mItemVar0.field_0x3018 == 3 || mItemVar0.field_0x3018 == 4) {
daPy_frameCtrl_c* sp30 = &mUnderFrameCtrl[0];
int sp38;
if (mItemVar0.field_0x3018 == 1) {
f32 temp_f25 = sp30->getEnd() - 13.0f;
f32 temp_f29 = (sp30->getFrame() - 13.0f) / temp_f25;
@@ -337,7 +339,7 @@ void daAlink_c::setIronBallChainPos() {
var_r26 = &field_0x3848[mItemMode];
var_r27 = var_r29 + 1;
for (int i = mItemMode; i >= 0; i--, var_r29--, var_r26--) {
for (i = mItemMode; i >= 0; i--, var_r29--, var_r26--) {
sp28C = *var_r29;
sp2A4 = (*var_r29 - *var_r27) + *var_r26;
@@ -381,12 +383,12 @@ void daAlink_c::setIronBallChainPos() {
} else {
var_f30 = daAlinkHIO_ironBall_c0::m.mChainGravity;
}
var_r29 = mIronBallChainPos + 1;
var_r27 = var_r29 - 1;
var_r26 = field_0x3848 + 1;
for (int i = 0; i < mItemMode; i++, var_r29++, var_r26++) {
for (i = 0; i < mItemMode; i++, var_r29++, var_r26++) {
sp2A4 = (*var_r29 - *var_r27) + *var_r26;
sp2A4.y += var_f30;
sp2A4.normalizeZP();
@@ -405,7 +407,7 @@ void daAlink_c::setIronBallChainPos() {
f32 temp_f28 = temp_f31 * cM_scos(shape_angle.y);
temp_f31 *= cM_ssin(shape_angle.y);
for (int i = mItemMode; i > 0; i--, var_r29--, var_r26--) {
for (i = mItemMode; i > 0; i--, var_r29--, var_r26--) {
sp28C = *var_r29;
if (i == mItemMode) {
@@ -432,16 +434,17 @@ void daAlink_c::setIronBallChainPos() {
}
}
csXyz* sp3C = mIronBallChainAngle + 1;
sp3C = mIronBallChainAngle + 1;
var_r29 = mIronBallChainPos + 1;
var_r27 = var_r29 - 1;
s16 sp10;
s16 spE = mIronBallChainAngle->z + 0x3000;
for (int i = 0; i < mItemMode; i++, sp3C++, var_r29++, spE += 0x3000) {
for (i = 0; i < mItemMode; i++, sp3C++, var_r29++, spE += 0x3000) {
sp2A4 = (*var_r27 - *var_r29);
s16 sp10;
if (sp2A4.absXZ() < 1.0f) {
f32 var_f27 = sp2A4.absXZ();
if (var_f27 < 1.0f) {
sp10 = sp3C[-1].y;
} else {
sp10 = sp2A4.atan2sX_Z();
@@ -451,12 +454,12 @@ void daAlink_c::setIronBallChainPos() {
var_r27 = var_r29;
}
cXyz* temp_r29 = &mIronBallChainPos[mItemMode] + 1;
csXyz* sp3C_2 = &mIronBallChainAngle[mItemMode] + 1;
var_r29 = &mIronBallChainPos[mItemMode] + 1;
sp3C = &mIronBallChainAngle[mItemMode] + 1;
for (int i = mItemMode + 2; i < 102; i++) {
mIronBallChainPos[i] = *temp_r29;
mIronBallChainAngle[i] = *sp3C_2;
for (i = mItemMode + 2; i < 102; i++) {
mIronBallChainPos[i] = *var_r29;
mIronBallChainAngle[i] = *sp3C;
field_0x3848[i] = cXyz::Zero;
}
}
+1 -1
View File
@@ -71,7 +71,7 @@ s16 daAlink_c::checkBodyAngleX(s16 param_0) {
return param_0;
}
Vec sp2C = {0.0f, 0.0f, 0.0f};
Vec sp2C = lit_5908;
sp2C.y = 0.5f * field_0x598;
cXyz sp20;
+11 -13
View File
@@ -112,20 +112,20 @@ void daAlink_c::changeCommon() {
void daAlink_c::changeWolf() {
JKRHeap* current_heap = mAnmHeap3.setAnimeHeap();
mpLinkModel = initModel((J3DModelData*)dComIfG_getObjectRes(l_wArcName, 14), 0x80000, 0x20200);
mpLinkModel = initModel((J3DModelData*)dComIfG_getObjectRes(l_wArcName, 14), 0x20200);
J3DModelData* chainModelData = (J3DModelData*)dComIfG_getObjectRes(l_wArcName, 15);
for (u16 i = 0; i < 4; i++) {
mpWlChainModels[i] = initModel(chainModelData, 0x80000, 0);
mpWlChainModels[i] = initModel(chainModelData, 0);
}
mpWlMidnaModel = initModel((J3DModelData*)dComIfG_getObjectRes(l_wArcName, 10), 0, 0x1020200);
mpWlMidnaModel = initModelEnv((J3DModelData*)dComIfG_getObjectRes(l_wArcName, 10), 0x1020200);
mpWlMidnaMaskModel =
initModel((J3DModelData*)dComIfG_getObjectRes(l_wArcName, 7), 0x80000, 0x1000000);
initModel((J3DModelData*)dComIfG_getObjectRes(l_wArcName, 7), 0x1000000);
mpWlMidnaHandModel =
initModel((J3DModelData*)dComIfG_getObjectRes(l_wArcName, 6), 0x80000, 0x1000000);
initModel((J3DModelData*)dComIfG_getObjectRes(l_wArcName, 6), 0x1000000);
mpWlMidnaHairModel =
initModel((J3DModelData*)dComIfG_getObjectRes(l_wArcName, 11), 0, 0x1000000);
initModelEnv((J3DModelData*)dComIfG_getObjectRes(l_wArcName, 11), 0x1000000);
mpDMidnaBrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_wArcName, 18);
mpDMidnaBrk->searchUpdateMaterialID(mpWlMidnaModel->getModelData());
@@ -217,12 +217,11 @@ void daAlink_c::changeWolf() {
attention_info.field_0xa = 50;
dCcD_Cyl* cyl_p = field_0x850;
for (int i = 0; i < 3; i++) {
for (int i = 0; i < 3; i++, cyl_p++) {
cyl_p->OffTgShieldFrontRange();
cyl_p->OffTgSmallShield();
cyl_p->OffTgSpShield();
cyl_p->OffTgShield();
cyl_p++;
}
field_0xFB8.StartCAt(current.pos);
@@ -238,7 +237,7 @@ void daAlink_c::changeWolf() {
mMagicArmorBodyBrk = NULL;
mMagicArmorHeadBrk = NULL;
field_0x2fc7 = dStage_stagInfo_GetWolfDashType(dComIfGp_getStage()->getStagInfo());
field_0x2fc7 = (u8)dStage_stagInfo_GetWolfDashType(dComIfGp_getStage()->getStagInfo());
}
/* 80126F3C-80127C54 12187C 0D18+00 2/2 0/0 0/0 .text changeLink__9daAlink_cFi */
@@ -7188,12 +7187,11 @@ void daAlink_c::setWolfEnemyThrowUpperAnime(daAlink_c::daAlink_WANM i_anmID, f32
* setWolfEnemyHangBitePos__9daAlink_cFP13fopEn_enemy_c */
BOOL daAlink_c::setWolfEnemyHangBitePos(fopEn_enemy_c* i_enemy) {
if (i_enemy != NULL) {
current.pos = i_enemy->getDownPos();
cXyz old_pos = current.pos;
cXyz old_pos = current.pos = i_enemy->getDownPos();
current.pos.x -= 60.0f * cM_ssin(shape_angle.y);
current.pos.x -= 135.0f;
current.pos.x -= 60.0f * cM_scos(shape_angle.y);
current.pos.y -= 135.0f;
current.pos.z -= 60.0f * cM_scos(shape_angle.y);
if (commonLineCheck(&field_0x3540, &current.pos)) {
current.pos = old_pos;