mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-08-02 08:11:58 -04:00
d_a_alink_swim work / fix JASGlobalInstance (#288)
* daalink / z2linkmgr wip * first cleanup of JASGlobalInstance data * fix sInstance stuff part 2 * more d_a_alink_swim work * remove asm
This commit is contained in:
+10
-11
@@ -3069,7 +3069,6 @@ extern "C" u8 BaseZ__4cXyz[12];
|
||||
extern "C" u8 mCurrentMtx__6J3DSys[48];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" u16 m_branchId__7dDemo_c[1 + 3 /* padding */];
|
||||
extern "C" extern u8 data_80450B38[4];
|
||||
extern "C" f32 mGroundY__11fopAcM_gc_c;
|
||||
extern "C" f32 mWaterY__11fopAcM_wt_c[1 + 1 /* padding */];
|
||||
extern "C" u8 m_top__12daTagHstop_c[4 + 4 /* padding */];
|
||||
@@ -12428,7 +12427,7 @@ void daAlink_c::playerInit() {
|
||||
mSheathModel = mpSwASheathModel;
|
||||
|
||||
field_0x814.Init(120, 0xFF, this);
|
||||
field_0x306c = shape_angle.y + mBodyAngleY;
|
||||
field_0x306c = shape_angle.y + mBodyAngle.y;
|
||||
|
||||
for (u16 i = 0; i < 3; i++) {
|
||||
mAtCps[i].Set(*(dCcD_SrcCps*)l_atCpsSrc);
|
||||
@@ -13798,7 +13797,7 @@ void daAlink_c::setCollision() {
|
||||
if (checkIronBallWaitAnime() || field_0x351c.absXZ() > lit_8782) {
|
||||
field_0x306c = field_0x351c.atan2sX_Z();
|
||||
} else {
|
||||
field_0x306c = shape_angle.y + mBodyAngleY;
|
||||
field_0x306c = shape_angle.y + mBodyAngle.y;
|
||||
}
|
||||
|
||||
g_dComIfG_gameInfo.play.mCcs.Set(&field_0x850[0]);
|
||||
@@ -13859,7 +13858,7 @@ asm void daAlink_c::setCollision() {
|
||||
#ifdef NONMATCHING
|
||||
f32 daAlink_c::getBaseAnimeFrame() const {
|
||||
if (mProcID == PROC_SUMOU_ACTION && mSpeedModifier > 0.0f) {
|
||||
return mCommonCounter;
|
||||
return field_0x300c;
|
||||
}
|
||||
|
||||
return mUnderFrameCtrl[0].getFrame();
|
||||
@@ -16290,8 +16289,8 @@ void daAlink_c::setBodyAngleXReadyAnime(int param_0) {
|
||||
angle_x >>= 1; // divide by 2 adds extra addze?
|
||||
}
|
||||
|
||||
cLib_addCalcAngleS(&mBodyAngleX, angle_x, 4, 0x0C00, 0x0180);
|
||||
field_0x310a = mBodyAngleX;
|
||||
cLib_addCalcAngleS(&mBodyAngle.x, angle_x, 4, 0x0C00, 0x0180);
|
||||
field_0x310a = mBodyAngle.x;
|
||||
}
|
||||
|
||||
/* 800BB324-800BB408 0B5C64 00E4+00 2/2 0/0 0/0 .text setMagicArmorBrk__9daAlink_cFi */
|
||||
@@ -17825,7 +17824,7 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) {
|
||||
initForceRideHorse();
|
||||
}
|
||||
|
||||
if (mCommonCounter != 0) {
|
||||
if (field_0x300c != 0) {
|
||||
changeWarpMaterial(1);
|
||||
}
|
||||
} else if (mProcID == PROC_GRAB_STAND) {
|
||||
@@ -17973,8 +17972,8 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) {
|
||||
|
||||
if (i_checkWolf()) {
|
||||
shape_angle.z = 0;
|
||||
mBodyAngleX = 0;
|
||||
mBodyAngleY = 0;
|
||||
mBodyAngle.x = 0;
|
||||
mBodyAngle.y = 0;
|
||||
} else if (!i_checkReinRide() && !checkBoardRide()) {
|
||||
shape_angle.x = 0;
|
||||
shape_angle.z = 0;
|
||||
@@ -17994,7 +17993,7 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) {
|
||||
|
||||
if (field_0x3190 != 0) {
|
||||
field_0x3190 = 0;
|
||||
mBodyAngleY = 0;
|
||||
mBodyAngle.y = 0;
|
||||
}
|
||||
|
||||
mFishingArm1Angle = csXyz::Zero;
|
||||
@@ -18315,7 +18314,7 @@ int daAlink_c::procGoronMoveInit() {
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed;
|
||||
setSingleAnimeBase(ANM_ATN_RIGHT);
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
field_0x300e = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -196,8 +196,8 @@ void daAlink_c::throwBoomerang() {
|
||||
BOOL boomerang_item = fopAcM_GetName(item) == PROC_BOOMERANG;
|
||||
if (boomerang_item) {
|
||||
item->setThrow();
|
||||
item->current.angle.y = shape_angle.y + mBodyAngleY;
|
||||
item->current.angle.x = -mBodyAngleX;
|
||||
item->current.angle.y = shape_angle.y + mBodyAngle.y;
|
||||
item->current.angle.x = -mBodyAngle.x;
|
||||
|
||||
if (mTargetedActor != NULL) {
|
||||
item->setAimActor(mTargetedActor);
|
||||
|
||||
@@ -116,7 +116,7 @@ int daAlink_c::procBottleDrinkInit(u16 param_0) {
|
||||
|
||||
u32 id = fopAcM_GetID(this);
|
||||
dCam_getBody()->StartEventCamera(0x12, id, "Type", 1, &field_0x3194, 0);
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
field_0x300e = 0;
|
||||
return 1;
|
||||
}
|
||||
@@ -172,7 +172,7 @@ int daAlink_c::procBottleOpenInit(u16 param_0) {
|
||||
|
||||
u32 id = fopAcM_GetID(this);
|
||||
dCam_getBody()->StartEventCamera(0x12, id, "Type", 1, &field_0x3194, 0);
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
|
||||
field_0x27c8.initialize();
|
||||
|
||||
|
||||
@@ -80,14 +80,14 @@ cXyz* daAlink_c::checkBowCameraArrowPosP(s16* param_0, s16* param_1) {
|
||||
var_28 = shape_angle.y;
|
||||
}
|
||||
|
||||
var_28 += mBodyAngleY;
|
||||
var_28 += mBodyAngle.y;
|
||||
|
||||
mDoMtx_stack_c::transS(field_0x3834);
|
||||
concatMagneBootMtx();
|
||||
mDoMtx_stack_c::ZXYrotM(mBodyAngleX, var_28, 0);
|
||||
mDoMtx_stack_c::ZXYrotM(mBodyAngle.x, var_28, 0);
|
||||
mDoMtx_stack_c::multVec(&localPos, &field_0x37e0);
|
||||
|
||||
*param_0 = mBodyAngleX;
|
||||
*param_0 = mBodyAngle.x;
|
||||
*param_1 = var_28;
|
||||
return &field_0x37e0;
|
||||
}
|
||||
@@ -347,7 +347,7 @@ int daAlink_c::procBowMoveInit() {
|
||||
}
|
||||
|
||||
setBlendAtnMoveAnime(daAlinkHIO_bow_c0::m.mStartInterpolation);
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
setBowOrSlingStatus();
|
||||
return 1;
|
||||
}
|
||||
@@ -356,11 +356,11 @@ int daAlink_c::procBowMoveInit() {
|
||||
int daAlink_c::procBowMove() {
|
||||
cancelBowMove();
|
||||
|
||||
if (mFastShotTime == 0 && mCommonCounter != 0 && checkBowWaitAnime() && !itemButton()) {
|
||||
if (mFastShotTime == 0 && field_0x300c != 0 && checkBowWaitAnime() && !itemButton()) {
|
||||
resetUpperAnime(UPPER_2, lit_6041);
|
||||
}
|
||||
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
i_onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
|
||||
if (!checkNextAction(0)) {
|
||||
|
||||
@@ -377,7 +377,7 @@ int daAlink_c::procCopyRodSwingInit() {
|
||||
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
field_0x300e = 0;
|
||||
|
||||
voiceStart(Z2SE_AL_V_ATTACK_S);
|
||||
@@ -390,7 +390,7 @@ int daAlink_c::procCopyRodSwingInit() {
|
||||
/* 800E21FC-800E2308 0DCB3C 010C+00 1/0 0/0 0/0 .text procCopyRodSwing__9daAlink_cFv */
|
||||
int daAlink_c::procCopyRodSwing() {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
setCopyRodControllAnime();
|
||||
|
||||
+27
-27
@@ -455,10 +455,10 @@ void daAlink_c::setSwordVoiceSe(u32 i_seID) {
|
||||
/* 800D22BC-800D2304 0CCBFC 0048+00 3/3 0/0 0/0 .text setSwordChargeVoiceSe__9daAlink_cFv
|
||||
*/
|
||||
void daAlink_c::setSwordChargeVoiceSe() {
|
||||
if (mCommonCounter != 0) {
|
||||
mCommonCounter--;
|
||||
if (field_0x300c != 0) {
|
||||
field_0x300c--;
|
||||
|
||||
if (mCommonCounter == 0) {
|
||||
if (field_0x300c == 0) {
|
||||
setSwordVoiceSe(Z2SE_AL_V_TAME);
|
||||
}
|
||||
}
|
||||
@@ -776,9 +776,9 @@ int daAlink_c::procCutNormalInit(int i_type) {
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (!i_checkAttentionLock() && checkInputOnR()) {
|
||||
mCommonCounter = field_0x2fe2;
|
||||
field_0x300c = field_0x2fe2;
|
||||
} else {
|
||||
mCommonCounter = shape_angle.y;
|
||||
field_0x300c = shape_angle.y;
|
||||
}
|
||||
|
||||
if (mComboCutCount != 1) {
|
||||
@@ -854,13 +854,13 @@ int daAlink_c::procCutNormal() {
|
||||
}
|
||||
|
||||
if (setShapeAngleToAtnActor(field_0x3010)) {
|
||||
mCommonCounter = shape_angle.y;
|
||||
field_0x300c = shape_angle.y;
|
||||
|
||||
if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) {
|
||||
field_0x3010 = 1;
|
||||
}
|
||||
} else {
|
||||
cLib_addCalcAngleS(&shape_angle.y, mCommonCounter, 2, 0x2000, 0x800);
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x300c, 2, 0x2000, 0x800);
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -903,7 +903,7 @@ int daAlink_c::procCutFinishInit(int i_type) {
|
||||
commonProcInit(PROC_CUT_FINISH);
|
||||
setCutType(cutParams->m_cutType);
|
||||
field_0x3198 = cutParams->field_0x4;
|
||||
mCommonCounter = cutParams->field_0xa;
|
||||
field_0x300c = cutParams->field_0xa;
|
||||
field_0x300e = cutParams->field_0xb;
|
||||
|
||||
BOOL var_r30 = FALSE;
|
||||
@@ -1187,13 +1187,13 @@ int daAlink_c::procCutReverseInit(daAlink_c::daAlink_ANM i_anmID) {
|
||||
|
||||
if (i_anmID == ANM_SHIELD_ATTACK_RECOIL) {
|
||||
setSingleAnimeParam(i_anmID, &daAlinkHIO_guard_c0::m.mRecoilAnm);
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
field_0x3478 = daAlinkHIO_guard_c0::m.mRecoilAnm.mCheckFrame;
|
||||
field_0x2f98 = 2;
|
||||
setUpperGuardAnime(lit_6041);
|
||||
} else {
|
||||
setSingleAnimeParam(i_anmID, &daAlinkHIO_cut_c0::m.mRecoilAnm);
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
field_0x3478 = daAlinkHIO_cut_c0::m.mRecoilAnm.mCheckFrame;
|
||||
field_0x2f98 = 4;
|
||||
}
|
||||
@@ -1225,12 +1225,12 @@ int daAlink_c::procCutReverse() {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
cLib_chaseF(&mNormalSpeed, FLOAT_LABEL(lit_6108), daAlinkHIO_cut_c0::m.mRecoilDeceleration);
|
||||
|
||||
if (mCommonCounter == 0) {
|
||||
if (field_0x300c == 0) {
|
||||
checkCutTurnCharge();
|
||||
i_onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
}
|
||||
|
||||
if (mCommonCounter != 0) {
|
||||
if (field_0x300c != 0) {
|
||||
setUpperGuardAnime(lit_6041);
|
||||
}
|
||||
|
||||
@@ -1549,7 +1549,7 @@ int daAlink_c::procCutTurnChargeInit() {
|
||||
setSingleAnimeParam(ANM_CUT_TURN_CHARGE_START, &daAlinkHIO_cutTurn_c0::m.mChargeAnm);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
mCommonCounter = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1563,7 +1563,7 @@ int daAlink_c::procCutTurnCharge() {
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
|
||||
if (!swordButton() && mDemo.getDemoMode() != 0x5B) {
|
||||
if (mCommonCounter != 0) {
|
||||
if (field_0x300c != 0) {
|
||||
checkCutAction();
|
||||
} else {
|
||||
cancelCutCharge();
|
||||
@@ -1607,7 +1607,7 @@ int daAlink_c::procCutTurnMoveInit(int param_0) {
|
||||
field_0x3008 = 1;
|
||||
}
|
||||
|
||||
mCommonCounter = param_0;
|
||||
field_0x300c = param_0;
|
||||
i_onNoResetFlg1(FLG1_UNK_10000000);
|
||||
dComIfGp_setPlayerStatus0(0, 0x40000000);
|
||||
return 1;
|
||||
@@ -1641,8 +1641,8 @@ int daAlink_c::procCutDown() {
|
||||
|
||||
if (mLinkAcch.ChkGroundHit() && speed.y <= FLOAT_LABEL(lit_6108)) {
|
||||
procCutDownLandInit((fopEn_enemy_c*)field_0x280c.getActor());
|
||||
} else if (mUnderFrameCtrl[0].checkAnmEnd() && mCommonCounter == 0) {
|
||||
mCommonCounter = 1;
|
||||
} else if (mUnderFrameCtrl[0].checkAnmEnd() && field_0x300c == 0) {
|
||||
field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_FALL, &daAlinkHIO_cutDown_c0::m.mFallAnm);
|
||||
}
|
||||
|
||||
@@ -1756,7 +1756,7 @@ int daAlink_c::procCutLargeJumpChargeInit() {
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_CHARGE, &daAlinkHIO_cutLargeJump_c0::m.mChargeAnm);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
mCommonCounter = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1798,7 +1798,7 @@ int daAlink_c::procCutLargeJumpInit() {
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
@@ -1823,11 +1823,11 @@ int daAlink_c::procCutLargeJump() {
|
||||
field_0x3198 = getCutTurnDirection();
|
||||
}
|
||||
|
||||
if (mCommonCounter == 0) {
|
||||
if (field_0x300c == 0) {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
field_0x2f99 = 12;
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE, &daAlinkHIO_cutLargeJump_c0::m.mCutAnm);
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_2);
|
||||
} else {
|
||||
if (frameCtrl->getFrame() >= lit_7307) {
|
||||
@@ -1889,7 +1889,7 @@ int daAlink_c::procCutLargeJumpLandInit(int param_0) {
|
||||
setCutType(CUT_TYPE_LARGE_JUMP);
|
||||
field_0x3478 = daAlinkHIO_cutLargeJump_c0::m.mLandAttackRadius;
|
||||
field_0x347c = lit_6896;
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
field_0x3198 = param_0;
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
@@ -1925,9 +1925,9 @@ int daAlink_c::procCutLargeJumpLand() {
|
||||
i_onResetFlg0(RFLG0_UNK_2);
|
||||
|
||||
if (frameCtrl->getFrame() >= daAlinkHIO_cutLargeJump_c0::m.mLandAttackInitFrame) {
|
||||
if (mCommonCounter == 0) {
|
||||
if (field_0x300c == 0) {
|
||||
resetAtCollision(0);
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
setCutType(CUT_TYPE_LARGE_JUMP_FINISH);
|
||||
initCutTurnAt(field_0x347c, 4);
|
||||
}
|
||||
@@ -1950,7 +1950,7 @@ int daAlink_c::procSwordUnequipSpInit() {
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
field_0x3198 = 0;
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
field_0x300e = (0x1E - mDemo.getDemoMode()) != 0;
|
||||
field_0x3010 = 0;
|
||||
|
||||
@@ -1973,7 +1973,7 @@ int daAlink_c::procSwordUnequipSp() {
|
||||
|
||||
i_onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
|
||||
if (mCommonCounter != 0) {
|
||||
if (field_0x300c != 0) {
|
||||
i_onEndResetFlg1(ERFLG1_GANON_FINISH);
|
||||
}
|
||||
|
||||
@@ -2020,7 +2020,7 @@ int daAlink_c::procSwordUnequipSp() {
|
||||
} else {
|
||||
if (frameCtrl->getFrame() >= lit_7710) {
|
||||
field_0x2f93 = 0xFE;
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
i_onEndResetFlg1(ERFLG1_GANON_FINISH);
|
||||
}
|
||||
|
||||
|
||||
@@ -217,7 +217,7 @@ void daAlink_c::setLandDamagePoint(int i_dmgAmount) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::getDamageVec(dCcD_GObjInf* param_0) {
|
||||
asm Vec* daAlink_c::getDamageVec(dCcD_GObjInf* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/getDamageVec__9daAlink_cFP12dCcD_GObjInf.s"
|
||||
}
|
||||
@@ -548,7 +548,7 @@ asm int daAlink_c::procDkCaught() {
|
||||
void daAlink_c::setScreamWaitAnime() {
|
||||
setSingleAnimeBase(ANM_WAIT_F);
|
||||
voiceStart(Z2SE_AL_V_TERRORED);
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
dComIfGp_getVibration().StartQuake(5, 1, cXyz(tmp_0, lit_6040, tmp_0));
|
||||
@@ -562,7 +562,7 @@ int daAlink_c::procScreamWaitInit() {
|
||||
setScreamWaitAnime();
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, daAlinkHIO_basic_c0::m.mAnmBlendFactor);
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -576,7 +576,7 @@ int daAlink_c::procScreamWait() {
|
||||
|
||||
if (!i_checkEndResetFlg1(ERFLG1_UNK_1)) {
|
||||
checkNextAction(0);
|
||||
} else if (mCommonCounter == 0 && i_checkEndResetFlg1(ERFLG1_UNK_2)) {
|
||||
} else if (field_0x300c == 0 && i_checkEndResetFlg1(ERFLG1_UNK_2)) {
|
||||
setScreamWaitAnime();
|
||||
}
|
||||
|
||||
@@ -682,7 +682,7 @@ int daAlink_c::procCoSwimFreezeReturnInit() {
|
||||
|
||||
u32 id = fopAcM_GetID(this);
|
||||
dCam_getBody()->StartEventCamera(9, id, "Type", 1, &field_0x3194, 0);
|
||||
mCommonCounter = 0x2D;
|
||||
field_0x300c = 0x2D;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
+11
-11
@@ -1162,7 +1162,7 @@ int daAlink_c::procMasterSwordStickInit() {
|
||||
voiceStart(Z2SE_AL_V_MSTR_SW_STICK);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -1172,10 +1172,10 @@ int daAlink_c::procMasterSwordStickInit() {
|
||||
int daAlink_c::procMasterSwordStick() {
|
||||
daPy_frameCtrl_c* fCtrl = &mUnderFrameCtrl[0];
|
||||
|
||||
if (mCommonCounter != 0) {
|
||||
if (field_0x300c != 0) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
} else if (fCtrl->checkAnmEnd()) {
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
setSingleAnimeBaseMorf(ANM_DEMO_MASTER_SWORD_WAIT, lit_6041);
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
} else if (fCtrl->getFrame() >= lit_14621) {
|
||||
@@ -1240,7 +1240,7 @@ int daAlink_c::procDungeonWarpReadyInit() {
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x32cc = id;
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
keepItemData();
|
||||
|
||||
return 1;
|
||||
@@ -1262,7 +1262,7 @@ asm int daAlink_c::procDungeonWarpReady() {
|
||||
#ifdef NONMATCHING
|
||||
bool daAlink_c::procDungeonWarpInit() {
|
||||
if (!commonProcInitNotSameProc(DUNEGON_WARP_START) {
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
field_0x3012 = 0;
|
||||
setSpecialGravity(0.0f, mMaxFallSpeed, 0);
|
||||
field_0x300e = 0;
|
||||
@@ -1286,22 +1286,22 @@ asm int daAlink_c::procDungeonWarpInit() {
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procDungeonWarp() {
|
||||
mCommonCounter += 0x200;
|
||||
field_0x300c += 0x200;
|
||||
|
||||
if (mCommonCounter > 0x4000) {
|
||||
mCommonCounter = 0x4000;
|
||||
if (field_0x300c > 0x4000) {
|
||||
field_0x300c = 0x4000;
|
||||
} else {
|
||||
current.pos.y += 1.0f;
|
||||
}
|
||||
|
||||
f32 sin = cM_ssin(mCommonCounter);
|
||||
f32 sin = cM_ssin(field_0x300c);
|
||||
shape_angle.y += (s16)(14336.0f * sin);
|
||||
field_0x300e = 8.0f * sin + 24.0f * (1.0f - mScale.x);
|
||||
|
||||
if (field_0x3012 != 0) {
|
||||
return 1;
|
||||
} else {
|
||||
if (mCommonCounter == 0x4000) {
|
||||
if (field_0x300c == 0x4000) {
|
||||
if (field_0x3010 == 0) {
|
||||
dComIfGp_particle_set(0xA61, ¤t.pos, &mTevStr, NULL, NULL);
|
||||
field_0x3010 = 1;
|
||||
@@ -1326,7 +1326,7 @@ int daAlink_c::procDungeonWarp() {
|
||||
}
|
||||
current.pos.y += 5.0f;
|
||||
field_0x2b98 = (1.0f - mScale.y) * 100.0f;
|
||||
} else if (mCommonCounter >= 0x2000) {
|
||||
} else if (field_0x300c >= 0x2000) {
|
||||
cLib_chaseF(&mScale.x, 0.8f, 0.01f);
|
||||
}
|
||||
|
||||
|
||||
@@ -132,8 +132,8 @@ asm void daAlink_c::setIronBallChainPos() {
|
||||
/* 80113CA0-80113D58 10E5E0 00B8+00 1/1 0/0 0/0 .text checkIronBallReturnChange__9daAlink_cFv */
|
||||
BOOL daAlink_c::checkIronBallReturnChange() {
|
||||
if (mProcID != PROC_IRON_BALL_THROW ||
|
||||
(!(mBodyAngleX > 0x400) && mIronBallBgChkPos.y < (current.pos.y - lit_8472)) ||
|
||||
(mBodyAngleX > 0x400 && mItemMode == 0x64) ||
|
||||
(!(mBodyAngle.x > 0x400) && mIronBallBgChkPos.y < (current.pos.y - lit_8472)) ||
|
||||
(mBodyAngle.x > 0x400 && mItemMode == 0x64) ||
|
||||
(field_0xFB8.ChkAtHit() && field_0xFB8.GetAtHitGObj() != NULL &&
|
||||
static_cast<dCcD_GObjInf*>(field_0xFB8.GetAtHitGObj())->ChkTgIronBallRebound())) {
|
||||
setIronBallReturn(0);
|
||||
@@ -354,7 +354,7 @@ int daAlink_c::procIronBallThrowInit() {
|
||||
field_0x3588 = l_ironBallBaseAnime;
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
field_0x3018 = 3;
|
||||
field_0x3024 = 0;
|
||||
field_0x3026 = 0;
|
||||
@@ -380,13 +380,13 @@ int daAlink_c::procIronBallReturnInit() {
|
||||
commonProcInit(PROC_IRON_BALL_RETURN);
|
||||
|
||||
if (field_0x3018 == 8) {
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_IRONBALL_CATCH, &daAlinkHIO_ironBall_c0::m.mCatchAnm);
|
||||
field_0x2f99 = 12;
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_IRONBALL_PULL, daAlinkHIO_ironBall_c0::m.mPullAnmSpeed, daAlinkHIO_ironBall_c0::m.mPullInterpolation);
|
||||
field_0x2f99 = 12;
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
}
|
||||
|
||||
field_0x3588 = l_ironBallBaseAnime;
|
||||
@@ -403,8 +403,8 @@ int daAlink_c::procIronBallReturn() {
|
||||
|
||||
field_0x2f99 = 4;
|
||||
|
||||
if (field_0x3018 == 8 && mCommonCounter == 0) {
|
||||
mCommonCounter = 1;
|
||||
if (field_0x3018 == 8 && field_0x300c == 0) {
|
||||
field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_IRONBALL_CATCH, &daAlinkHIO_ironBall_c0::m.mCatchAnm);
|
||||
field_0x2f99 = 12;
|
||||
seStartOnlyReverb(Z2SE_AL_IB_CATCH);
|
||||
|
||||
+138
-105
@@ -30,7 +30,8 @@ int daAlink_c::procPreActionUnequipInit(int param_0, fopAc_ac_c* param_1) {
|
||||
*/
|
||||
int daAlink_c::procPreActionUnequip() {
|
||||
if (checkNoUpperAnime()) {
|
||||
if (field_0x300e != 0 && (field_0x27f4 == NULL || field_0x27f4 != field_0x280c.getActor())) {
|
||||
if (field_0x300e != 0 && (field_0x27f4 == NULL || field_0x27f4 != field_0x280c.getActor()))
|
||||
{
|
||||
checkWaitAction();
|
||||
} else if (field_0x3198 == PROC_PUSH_PULL_WAIT) {
|
||||
procCoPushPullWaitInit(1);
|
||||
@@ -91,7 +92,8 @@ int daAlink_c::procServiceWaitInit() {
|
||||
int daAlink_c::procServiceWait() {
|
||||
J3DFrameCtrl* ctrl = &mUnderFrameCtrl[0];
|
||||
if ((!checkNextAction(0) && !checkFrontWallTypeAction()) &&
|
||||
(checkEventRun() || checkGuardActionChange() || shape_angle.y != field_0x2fe6)) {
|
||||
(checkEventRun() || checkGuardActionChange() || shape_angle.y != field_0x2fe6))
|
||||
{
|
||||
ctrl->setRate(FLOAT_LABEL(lit_6108));
|
||||
procWaitInit();
|
||||
} else {
|
||||
@@ -119,7 +121,8 @@ int daAlink_c::procTiredWaitInit() {
|
||||
|
||||
if (no_upper_anm &&
|
||||
((tired_anm && mNowAnmPackUnder[0].getRatio() < lit_16641) ||
|
||||
checkUnderMove1BckNoArc(ANM_STEP_TURN) || checkUnderMove1BckNoArc(ANM_SMALL_GUARD))) {
|
||||
checkUnderMove1BckNoArc(ANM_STEP_TURN) || checkUnderMove1BckNoArc(ANM_SMALL_GUARD)))
|
||||
{
|
||||
f32 var_f31;
|
||||
if (tired_anm) {
|
||||
var_f31 = mUnderFrameCtrl[0].getFrame();
|
||||
@@ -163,7 +166,8 @@ int daAlink_c::procWaitInit() {
|
||||
}
|
||||
|
||||
if (!checkEventRun() && mProcID == PROC_SERVICE_WAIT && !mUnderFrameCtrl[0].checkAnmEnd() &&
|
||||
checkNoUpperAnime()) {
|
||||
checkNoUpperAnime())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -186,7 +190,8 @@ int daAlink_c::procWaitInit() {
|
||||
initServiceWaitTime();
|
||||
|
||||
if (i_checkEndResetFlg0(ERFLG0_UNK_8000000) &&
|
||||
(checkUnderMove0BckNoArc(ANM_WAIT) || checkUnderMove0BckNoArc(ANM_WAIT_TIRED))) {
|
||||
(checkUnderMove0BckNoArc(ANM_WAIT) || checkUnderMove0BckNoArc(ANM_WAIT_TIRED)))
|
||||
{
|
||||
setSingleAnimeBase(ANM_WAIT_B_TO_A);
|
||||
}
|
||||
|
||||
@@ -215,35 +220,25 @@ int daAlink_c::procMoveInit() {
|
||||
}
|
||||
|
||||
/* 800C3730-800C3810 0BE070 00E0+00 1/0 0/0 0/0 .text procMove__9daAlink_cFv */
|
||||
// reg swap
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procMove() {
|
||||
setFootEffectProcType(3);
|
||||
if (!checkNextAction(0) && !checkFrontWallTypeAction()) {
|
||||
if (mDemo.getDemoMode() == 2 &&
|
||||
mNormalSpeed > field_0x594 * daAlinkHIO_move_c0::m.mWalkChangeRate) {
|
||||
mNormalSpeed > field_0x594 * daAlinkHIO_move_c0::m.mWalkChangeRate)
|
||||
{
|
||||
mNormalSpeed = field_0x594 * daAlinkHIO_move_c0::m.mWalkChangeRate;
|
||||
}
|
||||
|
||||
setBlendMoveAnime(-1.0f);
|
||||
setBlendMoveAnime(lit_6041);
|
||||
if (field_0x3174 != 8) {
|
||||
field_0x30a0 =
|
||||
cLib_minMaxLimit((s16)(field_0x2ff0 >> 1), daAlinkHIO_basic_c0::m.mNeckMaxUp,
|
||||
daAlinkHIO_basic_c0::m.mNeckMaxDown);
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::procMove() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procMove__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800C3810-800C3868 0BE150 0058+00 1/1 0/0 0/0 .text procAtnMoveInit__9daAlink_cFv */
|
||||
int daAlink_c::procAtnMoveInit() {
|
||||
@@ -414,7 +409,8 @@ int daAlink_c::procMoveTurn() {
|
||||
/* 800C3DA0-800C3F60 0BE6E0 01C0+00 2/2 0/0 0/0 .text procSideStepInit__9daAlink_cFi */
|
||||
int daAlink_c::procSideStepInit(int jump_type) {
|
||||
if (jump_type == 1 && !checkHeavyStateOn(1, 1) &&
|
||||
(checkNoUpperAnime() || checkEquipAnime() || field_0x2fcc != 0 && checkUpperGuardAnime())) {
|
||||
(checkNoUpperAnime() || checkEquipAnime() || field_0x2fcc != 0 && checkUpperGuardAnime()))
|
||||
{
|
||||
return procBackJumpInit(0);
|
||||
}
|
||||
|
||||
@@ -449,7 +445,7 @@ int daAlink_c::procSideStepInit(int jump_type) {
|
||||
}
|
||||
|
||||
voiceStart(Z2SE_AL_V_JUMP_S);
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
field_0x300e = 0;
|
||||
return 1;
|
||||
}
|
||||
@@ -468,13 +464,13 @@ int daAlink_c::procSideStep() {
|
||||
}
|
||||
|
||||
if (doTrigger() && field_0x300a != 0) {
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
}
|
||||
|
||||
if (checkUpperItemActionFly()) {
|
||||
return 1;
|
||||
} else if (mLinkAcch.ChkGroundHit() && field_0x300e != 0) {
|
||||
if (mCommonCounter != 0 && checkSideRollAction(field_0x2f98)) {
|
||||
if (field_0x300c != 0 && checkSideRollAction(field_0x2f98)) {
|
||||
return 1;
|
||||
} else {
|
||||
return procSideStepLandInit();
|
||||
@@ -482,7 +478,8 @@ int daAlink_c::procSideStep() {
|
||||
} else if (checkNoUpperAnime() && checkForceSwordSwing()) {
|
||||
setCutDash(1, 0);
|
||||
} else if (mDemo.getDemoMode() != 16 &&
|
||||
current.pos.y < mLastJumpPos.y - daAlinkHIO_sideStep_c0::m.mFallHeight) {
|
||||
current.pos.y < mLastJumpPos.y - daAlinkHIO_sideStep_c0::m.mFallHeight)
|
||||
{
|
||||
return procFallInit(2, daAlinkHIO_sideStep_c0::m.mFallInterpolation);
|
||||
}
|
||||
|
||||
@@ -531,7 +528,7 @@ int daAlink_c::procSideStepLandInit() {
|
||||
setFootEffectProcType(2);
|
||||
i_onResetFlg1(0x30);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
current.angle.y = shape_angle.y;
|
||||
setStepLandVibration();
|
||||
return 1;
|
||||
@@ -547,7 +544,7 @@ int daAlink_c::procSideStepLand() {
|
||||
}
|
||||
|
||||
if (doTrigger() && field_0x300a != 0) {
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
}
|
||||
|
||||
if (ctrl->checkAnmEnd()) {
|
||||
@@ -557,7 +554,7 @@ int daAlink_c::procSideStepLand() {
|
||||
checkNextAction(0);
|
||||
}
|
||||
} else if (ctrl->getFrame() > field_0x3478) {
|
||||
if (mCommonCounter != 0 && checkSideRollAction(field_0x2f98)) {
|
||||
if (field_0x300c != 0 && checkSideRollAction(field_0x2f98)) {
|
||||
return 1;
|
||||
}
|
||||
checkNextAction(1);
|
||||
@@ -602,7 +599,7 @@ int daAlink_c::procSlideInit(s16 param_0) {
|
||||
|
||||
field_0x594 = daAlinkHIO_slide_c0::m.mMaxSpeed;
|
||||
field_0x33cc = FLOAT_LABEL(lit_6108);
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
field_0x3010 = 0;
|
||||
return 1;
|
||||
}
|
||||
@@ -703,7 +700,7 @@ int daAlink_c::procFrontRollInit() {
|
||||
}
|
||||
current.angle.y = shape_angle.y;
|
||||
voiceStart(Z2SE_AL_V_BACKTEN);
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
setFootEffectProcType(0);
|
||||
if (check) {
|
||||
i_onNoResetFlg0(2);
|
||||
@@ -783,7 +780,8 @@ int daAlink_c::procFrontRollCrash() {
|
||||
}
|
||||
} else if ((mLinkAcch.ChkGroundHit() || i_checkEndResetFlg2(ERFLG2_UNK_100) ||
|
||||
i_checkMagneBootsOn()) &&
|
||||
i_checkModeFlg(2)) {
|
||||
i_checkModeFlg(2))
|
||||
{
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
setWaterInAnmRate(frameCtrl, daAlinkHIO_frontRoll_c0::m.mCrashAnm.mSpeed);
|
||||
frameCtrl->offEndFlg();
|
||||
@@ -884,7 +882,7 @@ int daAlink_c::procSideRollInit(int param_0) {
|
||||
if (guard_anime) {
|
||||
i_onNoResetFlg0(FLG0_UNK_2);
|
||||
}
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -983,7 +981,8 @@ int daAlink_c::procBackJump() {
|
||||
if (mLinkAcch.ChkGroundHit() && mUnderFrameCtrl[0].checkAnmEnd()) {
|
||||
procBackJumpLandInit(field_0x3198);
|
||||
} else if (mDemo.getDemoMode() != 0x10 &&
|
||||
current.pos.y < mLastJumpPos.y - daAlinkHIO_backJump_c0::m.mFallHeight) {
|
||||
current.pos.y < mLastJumpPos.y - daAlinkHIO_backJump_c0::m.mFallHeight)
|
||||
{
|
||||
procFallInit(2, daAlinkHIO_backJump_c0::m.mFallInterpolation);
|
||||
}
|
||||
|
||||
@@ -1101,7 +1100,7 @@ int daAlink_c::procDiveJumpInit() {
|
||||
mNormalSpeed = daAlinkHIO_autoJump_c0::m.mDiveSpeedH;
|
||||
mGravity = daAlinkHIO_autoJump_c0::m.mDiveGravity;
|
||||
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x33b0 = 92.0f;
|
||||
|
||||
@@ -1117,10 +1116,10 @@ int daAlink_c::procDiveJump() {
|
||||
return procFrontRollInit();
|
||||
}
|
||||
|
||||
if (mCommonCounter == 0) {
|
||||
if (field_0x300c == 0) {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
setSingleAnimeParam(ANM_DIVE, &daAlinkHIO_autoJump_c0::m.mDiveConnectAnm);
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
field_0x2f99 = 2;
|
||||
}
|
||||
} else {
|
||||
@@ -1154,7 +1153,7 @@ int daAlink_c::procRollJumpInit() {
|
||||
|
||||
voiceStart(Z2SE_AL_V_GORONJUMP);
|
||||
seStartOnlyReverb(Z2SE_AL_GORON_JUMP_START);
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -1172,11 +1171,11 @@ int daAlink_c::procRollJump() {
|
||||
shape_angle.x += daAlinkHIO_autoJump_c0::m.mSpinJumpRotateSpeed;
|
||||
|
||||
if (shape_angle.x * old_angle <= 0) {
|
||||
if (mCommonCounter != 0) {
|
||||
if (field_0x300c != 0) {
|
||||
seStartOnlyReverb(Z2SE_AL_GORON_JUMP_ROLLING);
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
} else {
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1227,7 +1226,8 @@ int daAlink_c::procFall() {
|
||||
|
||||
if ((field_0x32cc != 0 ||
|
||||
((checkInputOnR() && getDirectionFromShapeAngle() == 0) || doTrigger())) &&
|
||||
checkFrontWallTypeAction()) {
|
||||
checkFrontWallTypeAction())
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@@ -1238,10 +1238,10 @@ int daAlink_c::procFall() {
|
||||
setFallVoice();
|
||||
|
||||
f32 tmp_f1 = (mFallHeight - current.pos.y) * lit_8782;
|
||||
if (mCommonCounter == 0 && tmp_f1 > daAlinkHIO_damFall_c0::m.mFallAnmTransitionHeight) {
|
||||
if (field_0x300c == 0 && tmp_f1 > daAlinkHIO_damFall_c0::m.mFallAnmTransitionHeight) {
|
||||
setSingleAnimeBaseSpeed(ANM_DMG_FALL, FLOAT_LABEL(lit_6108),
|
||||
daAlinkHIO_damFall_c0::m.mFallAnmMorf);
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
}
|
||||
|
||||
if (current.angle.y == shape_angle.y && checkCutJumpInFly()) {
|
||||
@@ -1293,7 +1293,8 @@ int daAlink_c::procLand() {
|
||||
if (checkBootsOrArmorHeavy()) {
|
||||
var_r4 = 3;
|
||||
} else if (i_checkNoResetFlg0(FLG0_UNDERWATER) ||
|
||||
field_0x3478 < daAlinkHIO_damFall_c0::m.mMinRollHeight) {
|
||||
field_0x3478 < daAlinkHIO_damFall_c0::m.mMinRollHeight)
|
||||
{
|
||||
var_r4 = 1;
|
||||
} else {
|
||||
var_r4 = 2;
|
||||
@@ -1333,7 +1334,7 @@ int daAlink_c::procStepMoveInit() {
|
||||
field_0x3478 = lit_5943 * mNormalSpeed;
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
|
||||
return 1;
|
||||
@@ -1344,7 +1345,7 @@ int daAlink_c::procStepMoveInit() {
|
||||
int daAlink_c::procStepMove() {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
|
||||
if (mCommonCounter == 0) {
|
||||
if (field_0x300c == 0) {
|
||||
field_0x2f99 = 4;
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
@@ -1365,7 +1366,7 @@ int daAlink_c::procStepMove() {
|
||||
current.pos.set(field_0x34ec.x + cM_ssin(shape_angle.y) * 2.0f, field_0x34ec.y,
|
||||
field_0x34ec.z + cM_scos(shape_angle.y) * 2.0f);
|
||||
field_0x2f99 = 80;
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -1406,7 +1407,8 @@ int daAlink_c::procCrouch() {
|
||||
}
|
||||
|
||||
if (mDemo.getDemoMode() != 0x29 &&
|
||||
(mSinkShapeOffset <= -80.0f || (i_checkAttentionLock() && checkGuardAccept()))) {
|
||||
(mSinkShapeOffset <= -80.0f || (i_checkAttentionLock() && checkGuardAccept())))
|
||||
{
|
||||
checkNextActionFromCrouch(0);
|
||||
}
|
||||
|
||||
@@ -1467,13 +1469,14 @@ int daAlink_c::procCoMetamorphoseInit() {
|
||||
mFallVoiceInit = 0;
|
||||
|
||||
if ((i_checkWolf() && mDemo.getDemoMode() == 0x39) ||
|
||||
(!i_checkWolf() && mDemo.getDemoMode() == 0x3A)) {
|
||||
(!i_checkWolf() && mDemo.getDemoMode() == 0x3A))
|
||||
{
|
||||
field_0x300a = 1;
|
||||
speed.y = 0.0f;
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
if (i_checkWolf()) {
|
||||
mCommonCounter = shape_angle.x;
|
||||
field_0x300c = shape_angle.x;
|
||||
}
|
||||
} else {
|
||||
deleteEquipItem(FALSE, TRUE);
|
||||
@@ -1489,11 +1492,11 @@ int daAlink_c::procCoMetamorphoseInit() {
|
||||
field_0x3588 = l_wolfBaseAnime;
|
||||
field_0x347c = 0.5f;
|
||||
field_0x3480 = daAlinkHIO_basic_c0::m.mWolfLinkTransformSpeed;
|
||||
mCommonCounter = shape_angle.x;
|
||||
field_0x300c = shape_angle.x;
|
||||
|
||||
daMidna_c* midna = getMidnaActor();
|
||||
if (i_checkMidnaRide() && daMidna_c::checkMidnaRealBody() &&
|
||||
midna->checkDemoTypeNone()) {
|
||||
if (i_checkMidnaRide() && daMidna_c::checkMidnaRealBody() && midna->checkDemoTypeNone())
|
||||
{
|
||||
midna->changeOriginalDemo();
|
||||
midna->changeDemoMode(15);
|
||||
}
|
||||
@@ -1529,24 +1532,25 @@ int daAlink_c::procCoMetamorphoseInit() {
|
||||
sp8.y = sp14.y;
|
||||
|
||||
if (commonLineCheck(&sp14, &sp8) && dBgS_CheckBWallPoly(mLinkLinChk) &&
|
||||
dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 7) {
|
||||
dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 7)
|
||||
{
|
||||
var_r28 = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (var_r28) {
|
||||
mCommonCounter = field_0x2ff0;
|
||||
field_0x300c = field_0x2ff0;
|
||||
} else {
|
||||
pos -= current.pos;
|
||||
mCommonCounter = pos.atan2sY_XZ();
|
||||
field_0x300c = pos.atan2sY_XZ();
|
||||
|
||||
if (abs(mCommonCounter) > cM_deg2s(70.0f)) {
|
||||
mCommonCounter = field_0x2ff0;
|
||||
if (abs(field_0x300c) > cM_deg2s(70.0f)) {
|
||||
field_0x300c = field_0x2ff0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
}
|
||||
}
|
||||
speed.y = 0.0f;
|
||||
@@ -1629,11 +1633,12 @@ int daAlink_c::procCoMetamorphoseOnlyInit() {
|
||||
|
||||
deleteEquipItem(0, 1);
|
||||
if ((i_checkWolf() && mDemo.getDemoMode() == 0x46) ||
|
||||
(!i_checkWolf() && mDemo.getDemoMode() == 0x47)) {
|
||||
mCommonCounter = 1;
|
||||
(!i_checkWolf() && mDemo.getDemoMode() == 0x47))
|
||||
{
|
||||
field_0x300c = 1;
|
||||
field_0x300e = 1;
|
||||
} else {
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
field_0x300e = 0;
|
||||
}
|
||||
|
||||
@@ -1647,9 +1652,9 @@ int daAlink_c::procCoMetamorphoseOnlyInit() {
|
||||
|
||||
/* 800C83A0-800C8460 0C2CE0 00C0+00 1/0 0/0 0/0 .text procCoMetamorphoseOnly__9daAlink_cFv */
|
||||
int daAlink_c::procCoMetamorphoseOnly() {
|
||||
if (mCommonCounter == 0) {
|
||||
if (field_0x300c == 0) {
|
||||
mClothesChangeWaitTimer = 4;
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
} else if (mClothesChangeWaitTimer == 0) {
|
||||
if (field_0x300e == 0) {
|
||||
field_0x300e = 1;
|
||||
@@ -1804,7 +1809,8 @@ int daAlink_c::execute() {
|
||||
|
||||
if (checkMagneBootsOn()) {
|
||||
if (checkNoResetFlg0(FLG0_UNK_2000) && dComIfG_Bgsp().ChkPolySafe(mMagneLineChk) &&
|
||||
dComIfG_Bgsp().ChkMoveBG(mMagneLineChk)) {
|
||||
dComIfG_Bgsp().ChkMoveBG(mMagneLineChk))
|
||||
{
|
||||
s16 shape_angle_y = shape_angle.y;
|
||||
s16 angle_y = current.angle.y;
|
||||
f32 pos_y = current.pos.y;
|
||||
@@ -1828,7 +1834,8 @@ int daAlink_c::execute() {
|
||||
} else if (mProcID != PROC_HOOKSHOT_FLY && !checkModeFlg(MODE_VINE_CLIMB | MODE_UNK_800) &&
|
||||
mProcID != PROC_TOOL_DEMO && mLinkAcch.GetGroundH() != -1000000000.0f &&
|
||||
dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) &&
|
||||
dComIfG_Bgsp().ChkMoveBG(mLinkAcch.m_gnd)) {
|
||||
dComIfG_Bgsp().ChkMoveBG(mLinkAcch.m_gnd))
|
||||
{
|
||||
bool uvar23;
|
||||
if (mProcID == PROC_SPINNER_READY) {
|
||||
uvar23 = true;
|
||||
@@ -2006,7 +2013,8 @@ int daAlink_c::execute() {
|
||||
}
|
||||
|
||||
if (field_0x2fd3 != 0 && mProcID != PROC_BOTTLE_DRINK && mProcID != PROC_CANOE_BOTTLE_DRINK &&
|
||||
mProcID != PROC_HORSE_BOTTLE_DRINK) {
|
||||
mProcID != PROC_HORSE_BOTTLE_DRINK)
|
||||
{
|
||||
field_0x2fd3--;
|
||||
}
|
||||
|
||||
@@ -2035,7 +2043,8 @@ int daAlink_c::execute() {
|
||||
(checkStageName("R_SP109") &&
|
||||
(!strcmp(event_name, "MapToolCamera1") || !strcmp(event_name, "MapToolCamera2") ||
|
||||
!strcmp(event_name, "MapToolCamera19") || !strcmp(event_name, "fire_insect"))) ||
|
||||
(checkStageName("F_SP115") && !strcmp(event_name, "MapToolCamera23"))) {
|
||||
(checkStageName("F_SP115") && !strcmp(event_name, "MapToolCamera23")))
|
||||
{
|
||||
mWolfEyeUp = daAlinkHIO_wolf_c0::m.mSensesLingerTime + 1;
|
||||
}
|
||||
}
|
||||
@@ -2045,12 +2054,14 @@ int daAlink_c::execute() {
|
||||
mProcID == PROC_WOLF_DIG_THROUGH || checkNoResetFlg0(FLG0_UNK_4000) ||
|
||||
dComIfGp_checkPlayerStatus1(0, 0x1000000) ||
|
||||
(checkEventRun() && partner != NULL && (partner->mAttentionInfo.mFlags & 0x400000)) ||
|
||||
!strcmp(dComIfGp_getEventManager().getRunEventName(), l_defaultGetEventName)) {
|
||||
!strcmp(dComIfGp_getEventManager().getRunEventName(), l_defaultGetEventName))
|
||||
{
|
||||
mWolfEyeUp = daAlinkHIO_wolf_c0::m.mSensesLingerTime;
|
||||
} else if (mTargetedActor != NULL || dComIfGp_checkPlayerStatus0(0, 0x2000)) {
|
||||
mWolfEyeUp = daAlinkHIO_wolf_c0::m.mSensesLingerTime - 1;
|
||||
} else if (!dComIfGp_getEvent().isOrderOK() && mProcID != PROC_GET_ITEM &&
|
||||
mWolfEyeUp <= daAlinkHIO_wolf_c0::m.mSensesLingerTime) {
|
||||
mWolfEyeUp <= daAlinkHIO_wolf_c0::m.mSensesLingerTime)
|
||||
{
|
||||
offWolfEyeUp();
|
||||
} else {
|
||||
mWolfEyeUp = 1;
|
||||
@@ -2069,7 +2080,8 @@ int daAlink_c::execute() {
|
||||
if (item_actor != NULL && (!fopAcM_checkCarryNow(item_actor) ||
|
||||
(checkNoResetFlg0(FLG0_UNDERWATER) &&
|
||||
(checkGrabRooster() || fopAcM_GetName(item_actor) == PROC_E_NEST ||
|
||||
checkGrabCarryActor())))) {
|
||||
checkGrabCarryActor()))))
|
||||
{
|
||||
freeGrabItem();
|
||||
}
|
||||
|
||||
@@ -2094,7 +2106,8 @@ int daAlink_c::execute() {
|
||||
|
||||
if (!checkSpecialDemoMode() && mClothesChangeWaitTimer == 0) {
|
||||
if (!checkDemoAction() && !checkDeadAction(0) && !checkNoResetFlg0(FLG0_UNK_100000) &&
|
||||
!checkAutoJumpAction()) {
|
||||
!checkAutoJumpAction())
|
||||
{
|
||||
checkSwimAction(0);
|
||||
}
|
||||
|
||||
@@ -2131,7 +2144,8 @@ int daAlink_c::execute() {
|
||||
}
|
||||
|
||||
if (mEquipItem == KANTERA && checkNoUpperAnime() && !checkKandelaarEquipAnime() &&
|
||||
(checkModeFlg(MODE_UNK_1000) || mProcID == PROC_CROUCH)) {
|
||||
(checkModeFlg(MODE_UNK_1000) || mProcID == PROC_CROUCH))
|
||||
{
|
||||
if (checkReinRide()) {
|
||||
setUpperAnimeBase(0x264);
|
||||
} else {
|
||||
@@ -2179,7 +2193,8 @@ int daAlink_c::execute() {
|
||||
autoGroundHit();
|
||||
|
||||
if (checkNoResetFlg0(FLG0_UNDERWATER) ||
|
||||
(checkPossibleWaterInMode() && !checkNoResetFlg0(FLG0_UNK_100))) {
|
||||
(checkPossibleWaterInMode() && !checkNoResetFlg0(FLG0_UNK_100)))
|
||||
{
|
||||
f32 var_f31;
|
||||
if (mProcID == PROC_HOOKSHOT_FLY) {
|
||||
var_f31 = current.pos.y - (field_0x598 * 0.5f);
|
||||
@@ -2190,7 +2205,8 @@ int daAlink_c::execute() {
|
||||
}
|
||||
|
||||
if (!checkNoResetFlg0(FLG0_UNK_80) ||
|
||||
mWaterY - var_f31 <= daAlinkHIO_swim_c0::m.mInitHeight) {
|
||||
mWaterY - var_f31 <= daAlinkHIO_swim_c0::m.mInitHeight)
|
||||
{
|
||||
swimOutAfter(0);
|
||||
}
|
||||
}
|
||||
@@ -2213,7 +2229,8 @@ int daAlink_c::execute() {
|
||||
} else if (mProcID == PROC_HOOKSHOT_FLY || mProcID == PROC_MAGNE_BOOTS_FLY ||
|
||||
(checkModeFlg(MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | MODE_RIDING) &&
|
||||
mProcID != PROC_HORSE_GETOFF && mProcID != PROC_WOLF_CHAIN_READY &&
|
||||
!checkBoardRide())) {
|
||||
!checkBoardRide()))
|
||||
{
|
||||
current.pos = pos;
|
||||
} else if (checkModeFlg(MODE_UNK_4000)) {
|
||||
if (mProcID == PROC_DOOR_OPEN || mProcID == PROC_HANG_LEVER_DOWN) {
|
||||
@@ -2234,7 +2251,8 @@ int daAlink_c::execute() {
|
||||
|
||||
if (!checkModeFlg(MODE_PLAYER_FLY) && !checkMagneBootsOn() && mProcID != PROC_TOOL_DEMO &&
|
||||
mProcID != PROC_GANON_FINISH && mProcID != PROC_DUNGEON_WARP &&
|
||||
(field_0x2f8c == 1 || field_0x2f8c == 3)) {
|
||||
(field_0x2f8c == 1 || field_0x2f8c == 3))
|
||||
{
|
||||
setStepsOffset();
|
||||
} else {
|
||||
field_0x2b9c = 0.0f;
|
||||
@@ -2257,7 +2275,8 @@ int daAlink_c::execute() {
|
||||
}
|
||||
|
||||
if (checkNoResetFlg0(FLG0_UNK_80) && !checkNoResetFlg0(FLG0_UNDERWATER) &&
|
||||
mWaterY >= mLinkAcch.GetGroundH()) {
|
||||
mWaterY >= mLinkAcch.GetGroundH())
|
||||
{
|
||||
mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr);
|
||||
} else if (checkEndResetFlg0(ERFLG0_UNK_200000)) {
|
||||
mPolySound = 11;
|
||||
@@ -2336,8 +2355,9 @@ int daAlink_c::execute() {
|
||||
}
|
||||
}
|
||||
|
||||
if (checkModeFlg(MODE_VINE_CLIMB) && mCommonCounter != 0 &&
|
||||
dComIfG_Bgsp().ChkPolySafe(mPolyInfo1)) {
|
||||
if (checkModeFlg(MODE_VINE_CLIMB) && field_0x300c != 0 &&
|
||||
dComIfG_Bgsp().ChkPolySafe(mPolyInfo1))
|
||||
{
|
||||
mZ2Link.framework(dKy_pol_sound_get(&mPolyInfo1), mVoiceReverbIntensity);
|
||||
} else {
|
||||
mZ2Link.framework(mPolySound, mVoiceReverbIntensity);
|
||||
@@ -2357,12 +2377,12 @@ int daAlink_c::execute() {
|
||||
if (checkUpperGuardAnime()) {
|
||||
setBodyAngleXReadyAnime(0);
|
||||
} else if (!checkUpperReadyThrowAnime()) {
|
||||
cLib_addCalcAngleS(&mBodyAngleX, 0, 4, 0x0C00, 0x0180);
|
||||
cLib_addCalcAngleS(&mBodyAngle.x, 0, 4, 0x0C00, 0x0180);
|
||||
}
|
||||
}
|
||||
|
||||
if (!checkModeFlg(MODE_UNK_40000000)) {
|
||||
cLib_addCalcAngleS(&mBodyAngleY, 0, 4, 0x0C00, 0x0180);
|
||||
cLib_addCalcAngleS(&mBodyAngle.y, 0, 4, 0x0C00, 0x0180);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2384,7 +2404,7 @@ int daAlink_c::execute() {
|
||||
footBgCheck();
|
||||
handBgCheck();
|
||||
|
||||
field_0x30c8 = mBodyAngleY >> 1;
|
||||
field_0x30c8 = mBodyAngle.y >> 1;
|
||||
modelCalc(mpLinkModel);
|
||||
|
||||
if (field_0x2fcb != 0) {
|
||||
@@ -2401,7 +2421,8 @@ int daAlink_c::execute() {
|
||||
|
||||
stage_stag_info_class* pstag = dComIfGp_getStage()->getStagInfo();
|
||||
if (dStage_stagInfo_GetSaveTbl(pstag) == 0x11 &&
|
||||
!dComIfGs_isItemFirstBit(HYLIA_SHIELD)) {
|
||||
!dComIfGs_isItemFirstBit(HYLIA_SHIELD))
|
||||
{
|
||||
fopAcM_onSwitch(this, 0x6F);
|
||||
}
|
||||
seStartOnlyReverb(Z2SE_AL_WOOD_SHIELD_BURN);
|
||||
@@ -2420,7 +2441,8 @@ int daAlink_c::execute() {
|
||||
|
||||
if (mClothesChangeWaitTimer == 0) {
|
||||
if ((pmidna->checkMidnaTired() || pmidna->checkForceTiredColor()) &&
|
||||
!pmidna->checkForceNormalColor()) {
|
||||
!pmidna->checkForceNormalColor())
|
||||
{
|
||||
field_0x79c->getModelData()->entryTevRegAnimator(field_0x7ac);
|
||||
mpWlMidnaHatModel->getModelData()->entryTevRegAnimator(field_0x7b0);
|
||||
field_0x7a4->getModelData()->entryTevRegAnimator(field_0x7b4);
|
||||
@@ -2495,7 +2517,8 @@ int daAlink_c::execute() {
|
||||
|
||||
if (!checkEventRun() && checkNoResetFlg0(FLG0_UNK_80) &&
|
||||
(mWaterY > current.pos.y + 40.0f || checkModeFlg(MODE_SWIMMING)) &&
|
||||
getMoveBGActorName(mLinkAcch.m_wtr, 1) == PROC_Obj_Onsen) {
|
||||
getMoveBGActorName(mLinkAcch.m_wtr, 1) == PROC_Obj_Onsen)
|
||||
{
|
||||
if (mHotspringRecoverTimer != 0) {
|
||||
mHotspringRecoverTimer--;
|
||||
} else {
|
||||
@@ -2507,7 +2530,8 @@ int daAlink_c::execute() {
|
||||
}
|
||||
|
||||
if ((checkAttentionLock() || !checkUpperReadyThrowAnime()) &&
|
||||
mProcID != PROC_HOOKSHOT_WALL_SHOOT && mProcID != PROC_HOOKSHOT_ROOF_SHOOT) {
|
||||
mProcID != PROC_HOOKSHOT_WALL_SHOOT && mProcID != PROC_HOOKSHOT_ROOF_SHOOT)
|
||||
{
|
||||
mFastShotTime = 0;
|
||||
}
|
||||
|
||||
@@ -2527,7 +2551,8 @@ int daAlink_c::execute() {
|
||||
mEvtInfo.onCondition(0x5D);
|
||||
} else if (checkModeFlg(MODE_SWIMMING) || mProcID == PROC_WOLF_ROPE_MOVE ||
|
||||
((checkReinRide() || checkCanoeRide() || checkSpinnerRide()) &&
|
||||
!checkNoResetFlg3(FLG3_UNK_80000) && !checkModeFlg(MODE_JUMP))) {
|
||||
!checkNoResetFlg3(FLG3_UNK_80000) && !checkModeFlg(MODE_JUMP)))
|
||||
{
|
||||
mEvtInfo.onCondition(1);
|
||||
if (checkReinRide() || checkCanoeRide()) {
|
||||
mEvtInfo.onCondition(8);
|
||||
@@ -2570,7 +2595,8 @@ int daAlink_c::execute() {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
u8 tmp = (i + 1) & 1;
|
||||
if (dComIfGp_getSelectItem(i) == EMPTY_BOTTLE && (field_0x2fae & (1 << i)) &&
|
||||
dComIfGp_getSelectItem(tmp) == EMPTY_BOTTLE) {
|
||||
dComIfGp_getSelectItem(tmp) == EMPTY_BOTTLE)
|
||||
{
|
||||
field_0x2fae |= (1 << tmp);
|
||||
}
|
||||
}
|
||||
@@ -2629,8 +2655,9 @@ int daAlink_c::execute() {
|
||||
} else if (dComIfGp_getDoStatus() == 0x91) {
|
||||
if (checkWolf() ||
|
||||
(field_0x27f4 != NULL &&
|
||||
(field_0x27f4->speedF > 0.1f || (checkGoatCatchActor(field_0x27f4) &&
|
||||
fopAcM_GetName(field_0x27f4) != PROC_COW)))) {
|
||||
(field_0x27f4->speedF > 0.1f ||
|
||||
(checkGoatCatchActor(field_0x27f4) && fopAcM_GetName(field_0x27f4) != PROC_COW))))
|
||||
{
|
||||
setDoStatusEmphasys(0x15);
|
||||
} else {
|
||||
setDoStatus(0);
|
||||
@@ -2642,11 +2669,13 @@ int daAlink_c::execute() {
|
||||
setDoStatus(0);
|
||||
}
|
||||
} else if (dComIfGp_getDoStatus() == 0x19 && dComIfGp_getHorseActor() != NULL &&
|
||||
dComIfGp_getHorseActor()->getZeldaActor() != NULL) {
|
||||
dComIfGp_getHorseActor()->getZeldaActor() != NULL)
|
||||
{
|
||||
setDoStatus(0x19);
|
||||
} else if (dComIfGp_getDoStatus() == 5 && field_0x27f4 != NULL &&
|
||||
(fopAcM_GetName(field_0x27f4) == PROC_Obj_WindStone ||
|
||||
fopAcM_GetName(field_0x27f4) == PROC_Obj_SmWStone)) {
|
||||
fopAcM_GetName(field_0x27f4) == PROC_Obj_SmWStone))
|
||||
{
|
||||
setDoStatusEmphasys(0x3B);
|
||||
} else if (dComIfGp_getDoStatus() == 0x14) {
|
||||
if (checkEndResetFlg1(ERFLG1_UNK_4000000)) {
|
||||
@@ -2683,7 +2712,8 @@ int daAlink_c::execute() {
|
||||
}
|
||||
|
||||
if (checkEndResetFlg2(ERFLG2_UNK_20) && dComIfGp_checkPlayerStatus0(0, 0x200000) &&
|
||||
(field_0x310e != field_0x310a || field_0x3110 != field_0x310c)) {
|
||||
(field_0x310e != field_0x310a || field_0x3110 != field_0x310c))
|
||||
{
|
||||
mDoAud_seStartLevel(Z2SE_AL_HAWK_EYE_PAN, NULL, 0, 0);
|
||||
}
|
||||
|
||||
@@ -2769,7 +2799,8 @@ bool daAlink_c::checkShieldDraw() {
|
||||
bool daAlink_c::checkItemDraw() {
|
||||
if (mHeldItemModel != NULL && (mEquipItem != IRONBALL || !checkSwordEquipAnime())) {
|
||||
if (!checkBowAndSlingItem(mEquipItem) || checkBowGrabLeftHand() || !i_checkShieldGet() ||
|
||||
field_0x2e44.checkPassNum(15)) {
|
||||
field_0x2e44.checkPassNum(15))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -2856,7 +2887,8 @@ void daAlink_c::setWaterDropColor(J3DGXColorS10 const* i_color) {
|
||||
|
||||
if (&field_0x32a0[0] == i_color) {
|
||||
if (i_checkNoResetFlg2(FLG2_UNK_80000) || checkZoraWearAbility() ||
|
||||
checkMagicArmorWearAbility()) {
|
||||
checkMagicArmorWearAbility())
|
||||
{
|
||||
var_r31 = (J3DGXColorS10*)¬Color0;
|
||||
i_color = (J3DGXColorS10*)¬Color0;
|
||||
} else {
|
||||
@@ -3087,7 +3119,8 @@ asm void daAlink_c::setSubjectMode() {
|
||||
*/
|
||||
BOOL daAlink_c::subjectCancelTrigger() {
|
||||
if (i_checkWolf() || checkNotBattleStage() || !i_checkSwordGet() ||
|
||||
(i_checkModeFlg(0x40000) && !i_checkEquipHeavyBoots())) {
|
||||
(i_checkModeFlg(0x40000) && !i_checkEquipHeavyBoots()))
|
||||
{
|
||||
return itemTriggerCheck(BTN_B);
|
||||
}
|
||||
|
||||
@@ -3163,7 +3196,7 @@ int daAlink_c::procCoSwimSubjectivityInit() {
|
||||
}
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -3195,7 +3228,7 @@ int daAlink_c::procCoPeepSubjectivityInit() {
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
dComIfGp_setPlayerStatus0(0, 0x2000);
|
||||
field_0x3478 = lit_6183;
|
||||
mCommonCounter = shape_angle.y;
|
||||
field_0x300c = shape_angle.y;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -3516,7 +3549,7 @@ BOOL daAlink_c::checkHorseStart() {
|
||||
/* 800D01E0-800D0208 0CAB20 0028+00 1/0 0/0 0/0 .text checkCutTurnCharge__9daAlink_cCFv
|
||||
*/
|
||||
BOOL daAlink_c::checkCutTurnCharge() const {
|
||||
return mProcID == PROC_CUT_TURN_MOVE && mCommonCounter == 0;
|
||||
return mProcID == PROC_CUT_TURN_MOVE && field_0x300c == 0;
|
||||
}
|
||||
|
||||
/* 800D0208-800D0228 0CAB48 0020+00 1/0 0/0 0/0 .text checkAcceptDungeonWarpAlink__9daAlink_cFi */
|
||||
@@ -3538,7 +3571,7 @@ fopAc_ac_c* daAlink_c::getSpinnerActor() {
|
||||
|
||||
/* 800D0274-800D027C 0CABB4 0008+00 1/0 0/0 0/0 .text getSumouCounter__9daAlink_cCFv */
|
||||
s16 daAlink_c::getSumouCounter() const {
|
||||
return mCommonCounter;
|
||||
return field_0x300c;
|
||||
}
|
||||
|
||||
/* 800D027C-800D0284 0CABBC 0008+00 1/0 0/0 0/0 .text checkSumouWithstand__9daAlink_cCFv
|
||||
@@ -3700,7 +3733,7 @@ BOOL daAlink_c::checkHawkWait() const {
|
||||
|
||||
/* 800D051C-800D0544 0CAE5C 0028+00 1/0 0/0 0/0 .text checkGoatThrow__9daAlink_cCFv */
|
||||
BOOL daAlink_c::checkGoatThrow() const {
|
||||
return mProcID == PROC_GOAT_CATCH && mCommonCounter != 0;
|
||||
return mProcID == PROC_GOAT_CATCH && field_0x300c != 0;
|
||||
}
|
||||
|
||||
/* 800D0544-800D0570 0CAE84 002C+00 1/0 0/0 0/0 .text checkGoatThrowAfter__9daAlink_cCFv
|
||||
@@ -3775,7 +3808,7 @@ BOOL daAlink_c::checkCutCharge() const {
|
||||
|
||||
/* 800D0688-800D06B0 0CAFC8 0028+00 1/0 0/0 0/0 .text checkCutLargeJumpCharge__9daAlink_cCFv */
|
||||
BOOL daAlink_c::checkCutLargeJumpCharge() const {
|
||||
return mProcID == PROC_CUT_TURN_MOVE && mCommonCounter != 0;
|
||||
return mProcID == PROC_CUT_TURN_MOVE && field_0x300c != 0;
|
||||
}
|
||||
|
||||
/* 800D06B0-800D06D8 0CAFF0 0028+00 1/0 0/0 0/0 .text checkComboCutTurn__9daAlink_cCFv */
|
||||
@@ -3823,7 +3856,7 @@ BOOL daAlink_c::checkCutJumpCancelTurn() const {
|
||||
/* 800D07D4-800D07FC 0CB114 0028+00 1/0 0/0 0/0 .text
|
||||
* checkSingleBoarBattleSecondBowReady__9daAlink_cCFv */
|
||||
BOOL daAlink_c::checkSingleBoarBattleSecondBowReady() const {
|
||||
return mProcID == PROC_HORSE_BOW_SUBJECT && mCommonCounter != 0;
|
||||
return mProcID == PROC_HORSE_BOW_SUBJECT && field_0x300c != 0;
|
||||
}
|
||||
|
||||
/* 800D07FC-800D0818 0CB13C 001C+00 1/0 0/0 0/0 .text cancelDungeonWarpReadyNeck__9daAlink_cFv */
|
||||
@@ -3933,7 +3966,7 @@ void daAlink_c::setSumouGraspCancelCount(int param_0) {
|
||||
if (mProcID != PROC_SUMOU_MOVE) {
|
||||
return;
|
||||
}
|
||||
mCommonCounter = param_0;
|
||||
field_0x300c = param_0;
|
||||
}
|
||||
|
||||
/* 800D0998-800D09AC 0CB2D8 0014+00 1/0 0/0 0/0 .text checkItemSwordEquip__9daAlink_cCFv
|
||||
@@ -3960,7 +3993,7 @@ BOOL daAlink_c::checkCutJumpMode() const {
|
||||
|
||||
/* 800D09DC-800D09E4 0CB31C 0008+00 1/0 0/0 0/0 .text getGiantPuzzleAimAngle__9daAlink_cCFv */
|
||||
s16 daAlink_c::getGiantPuzzleAimAngle() const {
|
||||
return mCommonCounter;
|
||||
return field_0x300c;
|
||||
}
|
||||
|
||||
/* 800D09E4-800D09EC 0CB324 0008+00 1/0 0/0 0/0 .text getSwordChangeWaitTimer__9daAlink_cCFv */
|
||||
|
||||
@@ -148,7 +148,7 @@ int daAlink_c::procSpinnerReadyInit() {
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x33b0 = field_0x3588.y;
|
||||
field_0x34d4 = l_waitBaseAnime;
|
||||
mCommonCounter = 8;
|
||||
field_0x300c = 8;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -164,11 +164,11 @@ int daAlink_c::procSpinnerReady() {
|
||||
current.pos.x = spinner->current.pos.x;
|
||||
current.pos.z = spinner->current.pos.z;
|
||||
|
||||
mCommonCounter--;
|
||||
field_0x300c--;
|
||||
field_0x2f99 = 15;
|
||||
|
||||
if ((mCommonCounter < 0 && current.pos.y <= spinner->getModelMtx()[1][3]) ||
|
||||
mCommonCounter < -30) {
|
||||
if ((field_0x300c < 0 && current.pos.y <= spinner->getModelMtx()[1][3]) ||
|
||||
field_0x300c < -30) {
|
||||
current.pos.y = spinner->getModelMtx()[1][3];
|
||||
procSpinnerWaitInit();
|
||||
}
|
||||
@@ -197,7 +197,7 @@ int daAlink_c::procSpinnerWaitInit() {
|
||||
speed.y = 0.0f;
|
||||
setSpecialGravity(0.0f, mMaxFallSpeed, 0);
|
||||
mNormalSpeed = 0.0f;
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
|
||||
field_0x300e = shape_angle.y;
|
||||
field_0x3010 = 0;
|
||||
@@ -237,9 +237,9 @@ int daAlink_c::procSpinnerWait() {
|
||||
}
|
||||
|
||||
int itemSetBtn = checkItemSetButton(SPINNER);
|
||||
if (mCommonCounter == 0) {
|
||||
if (field_0x300c == 0) {
|
||||
if (!itemButton()) {
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
mNormalSpeed = getSpinnerRideSpeedF();
|
||||
spinner->setMove(mNormalSpeed, getSpinnerRideMoveTime());
|
||||
} else if (checkInputOnR()) {
|
||||
|
||||
@@ -46,7 +46,7 @@ int daAlink_c::procSumouReadyInit() {
|
||||
field_0x34d4 = field_0x3588;
|
||||
field_0x2f99 = 4;
|
||||
mSpecialMode = 1;
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
field_0x300e = 0;
|
||||
deleteEquipItem(0, 1);
|
||||
|
||||
@@ -208,7 +208,7 @@ int daAlink_c::procSumouShikoInit() {
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x34d4 = field_0x3588;
|
||||
field_0x2f99 = 12;
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
mSpecialMode = 0;
|
||||
|
||||
setFootEffectProcType(5);
|
||||
|
||||
+707
-88
@@ -1,3 +1,5 @@
|
||||
#include "f_op/f_op_kankyo_mng.h"
|
||||
|
||||
/* 80101890-801018E4 0FC1D0 0054+00 6/6 0/0 0/0 .text checkZoraWearMaskDraw__9daAlink_cFv
|
||||
*/
|
||||
BOOL daAlink_c::checkZoraWearMaskDraw() {
|
||||
@@ -57,7 +59,9 @@ f32 daAlink_c::getSwimMaxFallSpeed() const {
|
||||
void daAlink_c::checkOxygenTimer() {
|
||||
BOOL hide_timer;
|
||||
|
||||
if (!i_checkNoResetFlg0(FLG0_UNK_100) || (i_checkModeFlg(MODE_SWIMMING) && mWaterY > lit_7808 + current.pos.y)) {
|
||||
if (!i_checkNoResetFlg0(FLG0_UNK_100) ||
|
||||
(i_checkModeFlg(MODE_SWIMMING) && mWaterY > lit_7808 + current.pos.y))
|
||||
{
|
||||
hide_timer = false;
|
||||
} else {
|
||||
hide_timer = true;
|
||||
@@ -99,7 +103,8 @@ void daAlink_c::offOxygenTimer() {
|
||||
|
||||
/* 80101CB8-80101CF4 0FC5F8 003C+00 2/2 0/0 0/0 .text checkPossibleWaterInMode__9daAlink_cCFv */
|
||||
BOOL daAlink_c::checkPossibleWaterInMode() const {
|
||||
return i_checkModeFlg(MODE_VINE_CLIMB) || i_dComIfGp_checkPlayerStatus1(0, 0x2000000) || mProcID == PROC_HOOKSHOT_FLY;
|
||||
return i_checkModeFlg(MODE_VINE_CLIMB) || i_dComIfGp_checkPlayerStatus1(0, 0x2000000) ||
|
||||
mProcID == PROC_HOOKSHOT_FLY;
|
||||
}
|
||||
|
||||
/* 80101CF4-80101D70 0FC634 007C+00 18/18 0/0 0/0 .text
|
||||
@@ -117,6 +122,83 @@ void daAlink_c::setWaterInAnmRate(daPy_frameCtrl_c* i_frameCtrl, f32 i_rate) {
|
||||
}
|
||||
|
||||
/* 80101D70-801023E4 0FC6B0 0674+00 2/2 0/0 0/0 .text swimBgCheck__9daAlink_cFf */
|
||||
#ifdef NONMATCHING
|
||||
void daAlink_c::swimBgCheck(f32 param_0) {
|
||||
i_offNoResetFlg1(FLG1_UNK_20000000);
|
||||
|
||||
if (!getZoraSwim() && mProcID != PROC_METAMORPHOSE) {
|
||||
return;
|
||||
}
|
||||
|
||||
cXyz start_pos(current.pos);
|
||||
cXyz end_pos;
|
||||
|
||||
s16 uvar1;
|
||||
if (getZoraSwim()) {
|
||||
uvar1 = field_0x3080;
|
||||
} else {
|
||||
uvar1 = field_0x300c;
|
||||
start_pos.y += daAlinkHIO_wlWallHang_c0::m.field_0x78;
|
||||
}
|
||||
|
||||
end_pos.set(start_pos.x + (param_0 * cM_scos(uvar1)) * cM_ssin(shape_angle.y),
|
||||
start_pos.y - param_0 * cM_ssin(uvar1),
|
||||
start_pos.z + (param_0 * cM_scos(uvar1)) * cM_scos(shape_angle.y));
|
||||
|
||||
if (!commonLineCheck(&start_pos, &end_pos)) {
|
||||
return;
|
||||
}
|
||||
|
||||
cM3dGPla tri;
|
||||
dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tri);
|
||||
|
||||
if (cBgW_CheckBWall(tri.mNormal.y) &&
|
||||
(mProcID != PROC_METAMORPHOSE || dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 7))
|
||||
{
|
||||
cXyz tmp2 = end_pos - mLinkLinChk.i_GetCross();
|
||||
f32 absxz = tmp2.absXZ();
|
||||
|
||||
s16 svar8 = tmp2.atan2sX_Z();
|
||||
s16 svar9 = cM_atan2s(-tri.mNormal.x, -tri.mNormal.z);
|
||||
f32 cos = cM_scos(svar8 - svar9);
|
||||
|
||||
f32 fvar14 = -absxz * cos * tri.mNormal.x;
|
||||
f32 fvar15 = -absxz * cos * tri.mNormal.z;
|
||||
|
||||
if (mProcID == PROC_METAMORPHOSE ||
|
||||
(getZoraSwim() && cLib_distanceAngleS(cM_atan2s(tri.mNormal.y, tri.mNormal.absXZ()),
|
||||
field_0x3080) < 0x1000))
|
||||
{
|
||||
i_onNoResetFlg1(FLG1_UNK_20000000);
|
||||
}
|
||||
|
||||
start_pos.x -= fvar14;
|
||||
start_pos.z -= fvar15;
|
||||
end_pos.x -= fvar14;
|
||||
end_pos.z -= fvar15;
|
||||
|
||||
if (commonLineCheck(&start_pos, &end_pos)) {
|
||||
dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tri);
|
||||
|
||||
if (cBgW_CheckBWall(tri.mNormal.y)) {
|
||||
tmp2 = end_pos - mLinkLinChk.i_GetCross();
|
||||
f32 absxz2 = tmp2.absXZ();
|
||||
|
||||
s16 svar8_2 = tmp2.atan2sX_Z();
|
||||
s16 svar9_2 = cM_atan2s(-tri.mNormal.x, -tri.mNormal.z);
|
||||
f32 cos_2 = cM_scos(svar8_2 - svar9_2);
|
||||
|
||||
fvar14 += -absxz2 * cos_2 * tri.mNormal.x;
|
||||
fvar15 += -absxz2 * cos_2 * tri.mNormal.z;
|
||||
}
|
||||
}
|
||||
|
||||
current.pos.x -= fvar14;
|
||||
current.pos.z -= fvar15;
|
||||
field_0x3092 = cM_atan2s(-fvar14, -fvar15);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -125,6 +207,7 @@ asm void daAlink_c::swimBgCheck(f32 param_0) {
|
||||
#include "asm/d/a/d_a_alink/swimBgCheck__9daAlink_cFf.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801023E4-801029C8 0FCD24 05E4+00 3/3 0/0 0/0 .text setSpeedAndAngleSwim__9daAlink_cFv
|
||||
*/
|
||||
@@ -152,7 +235,9 @@ int daAlink_c::checkNextActionSwim() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mAttList != NULL && mAttList->mType == 7 && i_checkNoResetFlg0(FLG0_UNK_100) && fopAcM_GetName(field_0x27f4) == PROC_CANOE) {
|
||||
if (mAttList != NULL && mAttList->mType == 7 && i_checkNoResetFlg0(FLG0_UNK_100) &&
|
||||
fopAcM_GetName(field_0x27f4) == PROC_CANOE)
|
||||
{
|
||||
setDoStatus(0x17);
|
||||
|
||||
if (doTrigger()) {
|
||||
@@ -191,8 +276,6 @@ asm int daAlink_c::checkSwimUpAction() {
|
||||
#pragma pop
|
||||
|
||||
/* 801032C8-80103398 0FDC08 00D0+00 8/8 0/0 0/0 .text swimOutAfter__9daAlink_cFi */
|
||||
// setInWater needs work
|
||||
#ifdef NONMATCHING
|
||||
void daAlink_c::swimOutAfter(int param_0) {
|
||||
i_onNoResetFlg0(FLG0_UNK_100);
|
||||
i_onEndResetFlg1(ERFLG1_UNK_100);
|
||||
@@ -213,16 +296,6 @@ void daAlink_c::swimOutAfter(int param_0) {
|
||||
resetUpperAnime(UPPER_2, lit_6109);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::swimOutAfter(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/swimOutAfter__9daAlink_cFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80103398-801033CC 0FDCD8 0034+00 1/1 0/0 0/0 .text checkSwimFall__9daAlink_cFv */
|
||||
bool daAlink_c::checkSwimFall() {
|
||||
@@ -267,7 +340,8 @@ bool daAlink_c::checkUpSwimButtonAccept() {
|
||||
/* 80103F24-80103F94 0FE864 0070+00 2/2 0/0 0/0 .text checkSwimButtonMove__9daAlink_cFv
|
||||
*/
|
||||
BOOL daAlink_c::checkSwimButtonMove() {
|
||||
return !i_checkNoResetFlg0(FLG0_UNK_100) && (checkSwimButtonAccept() || checkUpSwimButtonAccept()) && doButton();
|
||||
return !i_checkNoResetFlg0(FLG0_UNK_100) &&
|
||||
(checkSwimButtonAccept() || checkUpSwimButtonAccept()) && doButton();
|
||||
}
|
||||
|
||||
/* 80103F94-80103FE8 0FE8D4 0054+00 3/3 0/0 0/0 .text checkZoraSwimMove__9daAlink_cFv */
|
||||
@@ -284,7 +358,7 @@ BOOL daAlink_c::checkSwimNeckUpDown() const {
|
||||
/* 80104034-801040F8 0FE974 00C4+00 3/3 0/0 0/0 .text setSwimUpDownOffset__9daAlink_cFv
|
||||
*/
|
||||
void daAlink_c::setSwimUpDownOffset() {
|
||||
mCommonCounter += (s16)((cM_rndF(lit_16570) + lit_27477) * lit_27476);
|
||||
field_0x300c += (s16)((cM_rndF(lit_16570) + lit_27477) * lit_27476);
|
||||
|
||||
f32 var_f1;
|
||||
if (i_checkWolf()) {
|
||||
@@ -297,70 +371,280 @@ void daAlink_c::setSwimUpDownOffset() {
|
||||
var_f1 = daAlinkHIO_swim_c0::m.mWaitVibrationIntensity;
|
||||
}
|
||||
|
||||
field_0x2b98 = var_f1 * cM_ssin(mCommonCounter);
|
||||
field_0x2b98 = var_f1 * cM_ssin(field_0x300c);
|
||||
}
|
||||
|
||||
/* 801040F8-801041E8 0FEA38 00F0+00 2/2 0/0 0/0 .text procSwimUpInit__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::procSwimUpInit() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procSwimUpInit__9daAlink_cFv.s"
|
||||
int daAlink_c::procSwimUpInit() {
|
||||
commonProcInit(PROC_SWIM_UP);
|
||||
|
||||
if (field_0x3000 != 0 && !checkZoraWearAbility()) {
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
}
|
||||
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
current.pos.y = mWaterY;
|
||||
field_0x3080 = 0;
|
||||
i_onNoResetFlg0(FLG0_UNK_100);
|
||||
mZ2Link.setInWater(false);
|
||||
setSingleAnimeParam(ANM_SWIM_RESURFACE, &daAlinkHIO_swim_c0::m.mResurfaceAnm);
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
field_0x3008 = 0;
|
||||
field_0x3010 = 0;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
field_0x3000 = 0;
|
||||
|
||||
seStartMapInfo(Z2SE_AL_OUTOF_WATER);
|
||||
swimDeleteItem();
|
||||
field_0x2fcd = 15;
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801041E8-801042F8 0FEB28 0110+00 1/0 0/0 0/0 .text procSwimUp__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::procSwimUp() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procSwimUp__9daAlink_cFv.s"
|
||||
int daAlink_c::procSwimUp() {
|
||||
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
|
||||
|
||||
setNormalSpeedF(FLOAT_LABEL(lit_6108), daAlinkHIO_swim_c0::m.mDeceleration);
|
||||
|
||||
if (checkSetItemTrigger(HVY_BOOTS)) {
|
||||
setHeavyBoots(1);
|
||||
}
|
||||
|
||||
if (checkBootsOrArmorHeavy()) {
|
||||
if (checkInputOnR()) {
|
||||
procSwimMoveInit();
|
||||
} else {
|
||||
procSwimWaitInit(0);
|
||||
}
|
||||
} else if (checkAnmEnd(frame_ctrl)) {
|
||||
procSwimWaitInit(0);
|
||||
} else if (frame_ctrl->getFrame() > daAlinkHIO_swim_c0::m.mResurfaceAnm.mCheckFrame &&
|
||||
checkInputOnR())
|
||||
{
|
||||
procSwimMoveInit();
|
||||
} else {
|
||||
current.pos.y = mWaterY;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801042F8-801044B4 0FEC38 01BC+00 15/15 0/0 0/0 .text procSwimWaitInit__9daAlink_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::procSwimWaitInit(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procSwimWaitInit__9daAlink_cFi.s"
|
||||
int daAlink_c::procSwimWaitInit(int param_0) {
|
||||
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
|
||||
u32 mode_40000 = i_checkModeFlg(0x40000);
|
||||
|
||||
if (i_checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
i_offNoResetFlg0(FLG0_UNDERWATER);
|
||||
current.pos.y += daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
}
|
||||
|
||||
commonProcInit(PROC_SWIM_WAIT);
|
||||
|
||||
if (param_0) {
|
||||
seStartMapInfo(Z2SE_AL_INTO_WATER);
|
||||
field_0x3010 = 0;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
} else if (!mode_40000) {
|
||||
field_0x3010 = 0;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
}
|
||||
|
||||
swimDeleteItem();
|
||||
|
||||
if (!checkUnderMove0BckNoArc(ANM_SWIM_WAIT)) {
|
||||
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_swim_c0::m.mWaitInterpolation);
|
||||
} else if (frame_ctrl->getRate() < lit_9054) {
|
||||
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed, lit_6041);
|
||||
}
|
||||
|
||||
field_0x30d0 = 0;
|
||||
field_0x3198 = 0x14;
|
||||
field_0x32cc = mEquipItem;
|
||||
|
||||
if (field_0x3080 != 0) {
|
||||
setOldRootQuaternion(field_0x3080, 0, 0);
|
||||
field_0x3080 = 0;
|
||||
}
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
|
||||
if (i_checkNoResetFlg0(FLG0_UNK_100)) {
|
||||
current.pos.y = mWaterY;
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
field_0x3008 = 0;
|
||||
field_0x594 = getSwimFrontMaxSpeed();
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801044B4-80104670 0FEDF4 01BC+00 1/0 0/0 0/0 .text procSwimWait__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::procSwimWait() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procSwimWait__9daAlink_cFv.s"
|
||||
int daAlink_c::procSwimWait() {
|
||||
if (mDemo.getDemoMode() == 6 || mDemo.getDemoMode() == 8) {
|
||||
setShapeAngleToTalkActor();
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
|
||||
mMaxFallSpeed = getSwimMaxFallSpeed();
|
||||
field_0x594 = getSwimFrontMaxSpeed();
|
||||
|
||||
setSpeedAndAngleSwim();
|
||||
|
||||
if (mEquipItem != field_0x32cc) {
|
||||
field_0x32cc = mEquipItem;
|
||||
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_swim_c0::m.mWaitInterpolation);
|
||||
}
|
||||
|
||||
setSwimUpDownOffset();
|
||||
|
||||
if (i_checkEquipHeavyBoots() && mEquipItem != NO_ITEM) {
|
||||
setDoStatus(0x4);
|
||||
}
|
||||
|
||||
if (checkSwimUpAction()) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (checkNextActionSwim()) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (checkFrontWallTypeAction()) {
|
||||
swimOutAfter(1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (checkSwimButtonAccept() && doTrigger()) {
|
||||
procSwimDiveInit();
|
||||
} else if ((checkInputOnR() && mNormalSpeed >= daAlinkHIO_swim_c0::m.mForwardMinSpeed) ||
|
||||
(checkUpSwimButtonAccept() && doButton()))
|
||||
{
|
||||
if (checkUpSwimButtonAccept() && doButton()) {
|
||||
field_0x3000 = 30;
|
||||
}
|
||||
|
||||
procSwimMoveInit();
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80104670-801047B8 0FEFB0 0148+00 9/9 0/0 0/0 .text procSwimMoveInit__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::procSwimMoveInit() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procSwimMoveInit__9daAlink_cFv.s"
|
||||
int daAlink_c::procSwimMoveInit() {
|
||||
u32 mode_40000 = i_checkModeFlg(0x40000);
|
||||
bool proc_dive_jump = mProcID == PROC_DIVE_JUMP;
|
||||
bool proc_swim_dive = mProcID == PROC_SWIM_DIVE;
|
||||
|
||||
commonProcInit(PROC_SWIM_MOVE);
|
||||
|
||||
if (i_checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
i_offNoResetFlg0(FLG0_UNDERWATER);
|
||||
}
|
||||
|
||||
if (!mode_40000) {
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
field_0x3010 = 0;
|
||||
}
|
||||
|
||||
if (proc_swim_dive || proc_dive_jump) {
|
||||
field_0x3198 = 199;
|
||||
|
||||
if (proc_dive_jump) {
|
||||
field_0x3080 = 0x2800;
|
||||
field_0x300e = field_0x3080;
|
||||
field_0x3010 = 1;
|
||||
setOldRootQuaternion(-field_0x3080, 0, 0);
|
||||
}
|
||||
} else {
|
||||
field_0x3198 = -1;
|
||||
}
|
||||
|
||||
field_0x2f98 = 5;
|
||||
setSwimMoveAnime();
|
||||
|
||||
if (i_checkNoResetFlg0(FLG0_UNK_100)) {
|
||||
current.pos.y = mWaterY;
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
}
|
||||
|
||||
swimDeleteItem();
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
field_0x3008 = 0;
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801047B8-80104958 0FF0F8 01A0+00 1/0 0/0 0/0 .text procSwimMove__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::procSwimMove() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procSwimMove__9daAlink_cFv.s"
|
||||
int daAlink_c::procSwimMove() {
|
||||
setSpeedAndAngleSwim();
|
||||
|
||||
if (checkUpSwimButtonAccept() && doButton()) {
|
||||
field_0x3000 = 30;
|
||||
}
|
||||
|
||||
setSwimMoveAnime();
|
||||
|
||||
if (checkSwimUpAction()) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (checkNextActionSwim()) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (checkInputOnR() && checkFrontWallTypeAction()) {
|
||||
swimOutAfter(1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (checkSwimButtonAccept() && doTrigger() && !getZoraSwim()) {
|
||||
procSwimDiveInit();
|
||||
} else if (i_dComIfGp_getDoStatus() == 9 && doTrigger()) {
|
||||
i_onNoResetFlg1(FLG1_DASH_MODE);
|
||||
field_0x30d0 = daAlinkHIO_swim_c0::m.field_0x5c;
|
||||
setSingleAnimeParam(ANM_SWIM_DASH, &daAlinkHIO_swim_c0::m.mDashAnm);
|
||||
field_0x3198 = 0xC6;
|
||||
} else if (!checkZoraSwimMove() && (!checkUpSwimButtonAccept() || !doButton()) &&
|
||||
mNormalSpeed < daAlinkHIO_swim_c0::m.mForwardMinSpeed)
|
||||
{
|
||||
procSwimWaitInit(0);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80104958-80104AA0 0FF298 0148+00 4/4 0/0 0/0 .text procSwimDiveInit__9daAlink_cFv */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procSwimDiveInit() {
|
||||
commonProcInit(PROC_SWIM_DIVE);
|
||||
setSpecialGravity(0.0f, mMaxFallSpeed, 0);
|
||||
speed.y = 0.0f;
|
||||
|
||||
if (i_checkNoResetFlg0(FLG0_UNK_100)) {
|
||||
field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_SWIM_DIVE, &daAlinkHIO_swim_c0::m.mDiveAnm);
|
||||
voiceStart(Z2SE_AL_V_DIVING);
|
||||
} else {
|
||||
field_0x300c = 0;
|
||||
setSingleAnimeParam(ANM_SWIM_DIVE, &daAlinkHIO_swim_c0::m.mUnderwaterDiveAnm);
|
||||
}
|
||||
|
||||
field_0x2f99 = 0x10;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
field_0x3010 = 0;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
field_0x3000 = 30;
|
||||
field_0x3478 = 0.0f;
|
||||
field_0x347c = 1.0f / daAlinkHIO_swim_c0::m.mUnderwaterDiveAnm.mEndFrame;
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -369,8 +653,55 @@ asm int daAlink_c::procSwimDiveInit() {
|
||||
#include "asm/d/a/d_a_alink/procSwimDiveInit__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80104AA0-80104C50 0FF3E0 01B0+00 1/0 0/0 0/0 .text procSwimDive__9daAlink_cFv */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procSwimDive() {
|
||||
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
setDoStatus(0x4C);
|
||||
} else if (i_checkNoResetFlg0(FLG0_UNK_100) && frame_ctrl->getFrame() > 20.0f) {
|
||||
i_offNoResetFlg0(FLG0_UNK_100);
|
||||
mZ2Link.setInWater(true);
|
||||
}
|
||||
|
||||
field_0x2f99 = 7;
|
||||
field_0x3000 = 30;
|
||||
setNormalSpeedF(0.0f, daAlinkHIO_swim_c0::m.mDeceleration);
|
||||
|
||||
field_0x3478 = field_0x347c * frame_ctrl->getFrame();
|
||||
if (field_0x3478 > 1.0f) {
|
||||
field_0x3478 = 1.0f;
|
||||
}
|
||||
|
||||
if (frame_ctrl->checkPass(15.0f) && field_0x300c != 0) {
|
||||
cXyz pos(current.pos.x, mWaterY, current.pos.z);
|
||||
fopKyM_createWpillar(&pos, 0.7f, 0);
|
||||
}
|
||||
|
||||
if (mLinkAcch.GetGroundH() > current.pos.y - field_0x598 * 0.5f) {
|
||||
current.pos.y = field_0x598 * 0.5f + mLinkAcch.GetGroundH();
|
||||
}
|
||||
|
||||
if (checkAnmEnd(frame_ctrl)) {
|
||||
speed.y = daAlinkHIO_swim_c0::m.mMaxSinkSpeed;
|
||||
|
||||
if (field_0x300c != 0) {
|
||||
field_0x3080 = 0x2800;
|
||||
field_0x300e = field_0x3080;
|
||||
field_0x3010 = 1;
|
||||
}
|
||||
|
||||
setOldRootQuaternion(-field_0x3080, 0, 0);
|
||||
return procSwimMoveInit();
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -379,50 +710,261 @@ asm int daAlink_c::procSwimDive() {
|
||||
#include "asm/d/a/d_a_alink/procSwimDive__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80104C50-80104D7C 0FF590 012C+00 1/1 0/0 0/0 .text procSwimHookshotSubjectInit__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::procSwimHookshotSubjectInit() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procSwimHookshotSubjectInit__9daAlink_cFv.s"
|
||||
int daAlink_c::procSwimHookshotSubjectInit() {
|
||||
if (!commonProcInitNotSameProc(PROC_SWIM_HOOKSHOT_SUBJECT)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
initHookshotUpperAnimeSpeed(1);
|
||||
|
||||
if (!checkUnderMove0BckNoArc(ANM_SWIM_WAIT)) {
|
||||
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_hookshot_c0::m.mStartInterpolation);
|
||||
}
|
||||
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (field_0x3080 != 0) {
|
||||
setOldRootQuaternion(field_0x3080, 0, 0);
|
||||
field_0x3080 = 0;
|
||||
}
|
||||
|
||||
if (i_checkNoResetFlg0(FLG0_UNK_100)) {
|
||||
current.pos.y = mWaterY;
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
field_0x3008 = 0;
|
||||
field_0x594 = getSwimFrontMaxSpeed();
|
||||
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
field_0x3010 = 0;
|
||||
field_0x30d0 = 0;
|
||||
|
||||
setHookshotReadyMaterial();
|
||||
dComIfGp_setPlayerStatus0(0, 0x104000);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80104D7C-80104EB8 0FF6BC 013C+00 1/0 0/0 0/0 .text procSwimHookshotSubject__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::procSwimHookshotSubject() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procSwimHookshotSubject__9daAlink_cFv.s"
|
||||
int daAlink_c::procSwimHookshotSubject() {
|
||||
mMaxFallSpeed = getSwimMaxFallSpeed();
|
||||
field_0x594 = getSwimFrontMaxSpeed();
|
||||
|
||||
if (checkHookshotWait()) {
|
||||
setDoStatus(0x12);
|
||||
}
|
||||
|
||||
setShapeAngleToAtnActor(0);
|
||||
mSight.offDrawFlg();
|
||||
|
||||
if (checkSwimUpAction()) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (checkNextActionFromButton()) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!checkHookshotAnime()) {
|
||||
return procSwimWaitInit(0);
|
||||
}
|
||||
|
||||
if (!checkNextActionHookshot()) {
|
||||
if (checkHookshotWait()) {
|
||||
if (setBodyAngleToCamera()) {
|
||||
setHookshotSight();
|
||||
}
|
||||
|
||||
dComIfGp_clearPlayerStatus0(0, 0x40000);
|
||||
} else {
|
||||
dComIfGp_setPlayerStatus0(0, 0x40000);
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80104EB8-80104FC4 0FF7F8 010C+00 1/1 0/0 0/0 .text procSwimHookshotMoveInit__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::procSwimHookshotMoveInit() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procSwimHookshotMoveInit__9daAlink_cFv.s"
|
||||
int daAlink_c::procSwimHookshotMoveInit() {
|
||||
if (!commonProcInitNotSameProc(PROC_SWIM_HOOKSHOT_MOVE)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (checkZeroSpeedF()) {
|
||||
onModeFlg(1);
|
||||
}
|
||||
|
||||
initHookshotUpperAnimeSpeed(0);
|
||||
field_0x3198 = -1;
|
||||
field_0x2f98 = 5;
|
||||
|
||||
if (field_0x3018 == 0) {
|
||||
setSwimMoveAnime();
|
||||
}
|
||||
|
||||
if (i_checkNoResetFlg0(FLG0_UNK_100)) {
|
||||
current.pos.y = mWaterY;
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
}
|
||||
|
||||
field_0x3008 = 0;
|
||||
|
||||
if (field_0x3080 != 0) {
|
||||
setOldRootQuaternion(field_0x3080, 0, 0);
|
||||
field_0x3080 = 0;
|
||||
}
|
||||
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
field_0x3010 = 0;
|
||||
field_0x30d0 = 0;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x104000);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80104FC4-8010519C 0FF904 01D8+00 1/0 0/0 0/0 .text procSwimHookshotMove__9daAlink_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::procSwimHookshotMove() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procSwimHookshotMove__9daAlink_cFv.s"
|
||||
int daAlink_c::procSwimHookshotMove() {
|
||||
cancelHookshotMove();
|
||||
|
||||
if (checkHookshotWait() && !checkZoraWearAbility()) {
|
||||
setDoStatus(0x12);
|
||||
}
|
||||
|
||||
if (field_0x3018 == 0) {
|
||||
setSpeedAndAngleSwim();
|
||||
setSwimMoveAnime();
|
||||
}
|
||||
|
||||
if (checkSwimUpAction()) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (checkSwimButtonAccept() && doTrigger()) {
|
||||
return procSwimDiveInit();
|
||||
}
|
||||
|
||||
if (checkUpSwimButtonAccept() && doTrigger()) {
|
||||
field_0x3000 = 30;
|
||||
return procSwimMoveInit();
|
||||
}
|
||||
|
||||
if (checkHookshotWait() || checkBossOctaIealRoom()) {
|
||||
setShapeAngleToAtnActor(0);
|
||||
}
|
||||
|
||||
if (checkNextActionFromButton()) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!checkHookshotAnime()) {
|
||||
return procSwimWaitInit(0);
|
||||
}
|
||||
|
||||
if (!checkNextActionHookshot()) {
|
||||
if (checkZeroSpeedF()) {
|
||||
onModeFlg(1);
|
||||
} else {
|
||||
offModeFlg(1);
|
||||
}
|
||||
|
||||
if (checkHookshotWait() || (mTargetedActor != NULL && checkBossOctaIealRoom())) {
|
||||
setBodyAngleXReadyAnime(0);
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8010519C-80105728 0FFADC 058C+00 1/1 0/0 0/0 .text
|
||||
* procSwimDamageInit__9daAlink_cFP12dCcD_GObjInf */
|
||||
// instruction block order issue
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
|
||||
seStartOnlyReverb(Z2SE_AL_DAMAGE_NORMAL);
|
||||
dComIfGp_getVibration().StartShock(2, 31, cXyz(0.0f, 1.0f, 0.0f));
|
||||
|
||||
BOOL bvar4 =
|
||||
i_checkNoResetFlg0(FLG0_UNK_100) || ((param_0 != NULL && param_0->GetTgHitAc() != NULL) &&
|
||||
fopAcM_GetName(param_0->GetTgHitAc()) == PROC_E_SG);
|
||||
|
||||
if (!getZoraSwim() && bvar4 && mProcID != PROC_SWIM_WAIT) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
cXyz* temp_r30;
|
||||
cXyz sp30;
|
||||
|
||||
if (param_0 != NULL) {
|
||||
temp_r30 = (cXyz*)getDamageVec(param_0);
|
||||
} else {
|
||||
sp30.set(-cM_ssin(current.angle.y), 0.0f, -cM_scos(current.angle.y));
|
||||
temp_r30 = &sp30;
|
||||
}
|
||||
|
||||
f32 scale =
|
||||
temp_r30->abs() * daAlinkHIO_damSwim_c0::m.field_0x80 + daAlinkHIO_damSwim_c0::m.field_0x7C;
|
||||
if (scale > daAlinkHIO_damSwim_c0::m.field_0x88) {
|
||||
scale = daAlinkHIO_damSwim_c0::m.field_0x88;
|
||||
}
|
||||
|
||||
field_0x3750 = temp_r30->normZP();
|
||||
field_0x3750 *= scale;
|
||||
|
||||
if (getZoraSwim()) {
|
||||
setUpperAnimeParam(0xBF, UPPER_2, &daAlinkHIO_damSwim_c0::m.field_0x50);
|
||||
setFacePriBck(0xEA);
|
||||
setFacePriTexture(FTANM_UNK_27);
|
||||
return 1;
|
||||
}
|
||||
|
||||
commonProcInit(PROC_SWIM_DAMAGE);
|
||||
cXyz sp24(temp_r30->z * -cM_ssin(shape_angle.y) + temp_r30->x * cM_scos(shape_angle.y),
|
||||
temp_r30->y,
|
||||
temp_r30->z * cM_scos(shape_angle.y) + temp_r30->x * cM_ssin(shape_angle.y));
|
||||
|
||||
field_0x3008 =
|
||||
cLib_minMaxLimit(cM_atan2s(sp24.z, sp24.y), (s16)-daAlinkHIO_damSwim_c0::m.field_0x78,
|
||||
(s16)daAlinkHIO_damSwim_c0::m.field_0x78);
|
||||
|
||||
field_0x300a = cLib_minMaxLimit(
|
||||
cM_atan2s(sp24.x, -JMAFastSqrt(sp24.y * sp24.y + sp24.z * sp24.z)),
|
||||
(s16)-daAlinkHIO_damSwim_c0::m.field_0x7A, (s16)daAlinkHIO_damSwim_c0::m.field_0x7A);
|
||||
|
||||
int dir = getDirectionFromAngle(cM_atan2s(-sp24.x, -sp24.z));
|
||||
if (bvar4) {
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_FREEZE, &daAlinkHIO_damSwim_c0::m.field_0x64);
|
||||
field_0x3478 = daAlinkHIO_damSwim_c0::m.field_0x64.mCheckFrame;
|
||||
field_0x3008 = 0;
|
||||
field_0x300a = 0;
|
||||
} else if (dir == DIR_FORWARD) {
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_FRONT, &daAlinkHIO_damSwim_c0::m.field_0x0);
|
||||
field_0x3478 = daAlinkHIO_damSwim_c0::m.field_0x0.mCheckFrame;
|
||||
} else if (dir == DIR_BACKWARD) {
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_BACK, &daAlinkHIO_damSwim_c0::m.field_0x14);
|
||||
field_0x3478 = daAlinkHIO_damSwim_c0::m.field_0x14.mCheckFrame;
|
||||
} else if (dir == DIR_LEFT) {
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_LEFT, &daAlinkHIO_damSwim_c0::m.field_0x28);
|
||||
field_0x3478 = daAlinkHIO_damSwim_c0::m.field_0x28.mCheckFrame;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_RIGHT, &daAlinkHIO_damSwim_c0::m.field_0x3C);
|
||||
field_0x3478 = daAlinkHIO_damSwim_c0::m.field_0x3C.mCheckFrame;
|
||||
}
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x347c = 3.141593f / (mUnderFrameCtrl->getEnd() - mUnderFrameCtrl->getStart());
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -431,8 +973,38 @@ asm int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
|
||||
#include "asm/d/a/d_a_alink/procSwimDamageInit__9daAlink_cFP12dCcD_GObjInf.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80105728-801058A0 100068 0178+00 1/0 0/0 0/0 .text procSwimDamage__9daAlink_cFv */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procSwimDamage() {
|
||||
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
|
||||
|
||||
f32 fvar8 = cM_fsin(field_0x347c * (frame_ctrl->getFrame() - frame_ctrl->getStart()));
|
||||
mBodyAngle.x = field_0x3008 * fvar8;
|
||||
mBodyAngle.z = -field_0x300a * fvar8;
|
||||
mBodyAngle.y = 0;
|
||||
|
||||
if (checkSwimUpAction()) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (checkAnmEnd(frame_ctrl)) {
|
||||
if (!checkNextActionSwim()) {
|
||||
return procSwimWaitInit(0);
|
||||
}
|
||||
} else if (frame_ctrl->getFrame() > field_0x3478) {
|
||||
onModeFlg(4);
|
||||
|
||||
if (!checkNextActionSwim() && checkInputOnR()) {
|
||||
return procSwimMoveInit();
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -441,9 +1013,55 @@ asm int daAlink_c::procSwimDamage() {
|
||||
#include "asm/d/a/d_a_alink/procSwimDamage__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801058A0-80105A00 1001E0 0160+00 2/2 0/0 0/0 .text procOctaIealSpitInit__9daAlink_cFv
|
||||
*/
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procOctaIealSpitInit() {
|
||||
u32 temp_r30 = i_checkModeFlg(MODE_SWIMMING);
|
||||
commonProcInit(PROC_OCTAIEAL_SPIT);
|
||||
|
||||
if (i_checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
i_offNoResetFlg0(FLG0_UNDERWATER);
|
||||
}
|
||||
|
||||
setSingleAnimeBase(ANM_MORPHEEL_SPIT_OUT);
|
||||
field_0x3750 = cXyz::Zero;
|
||||
field_0x3080 = 0;
|
||||
field_0x3000 = 0;
|
||||
speed.y = field_0x340c;
|
||||
mNormalSpeed = field_0x3408;
|
||||
field_0x3478 = field_0x3408 * 0.1f;
|
||||
|
||||
setDamagePointNormal(field_0x318c);
|
||||
|
||||
if (field_0x3478 < 1.0f) {
|
||||
field_0x3478 = 1.0f;
|
||||
}
|
||||
|
||||
if (temp_r30) {
|
||||
field_0x2f99 = 15;
|
||||
field_0x33b0 = -45.0f;
|
||||
} else {
|
||||
field_0x2f99 = 16;
|
||||
current.pos.y += 145.0f;
|
||||
}
|
||||
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
i_offNoResetFlg0(FLG0_UNK_100);
|
||||
current.angle.y = field_0x2ffe;
|
||||
|
||||
if (mNormalSpeed > 0.0f) {
|
||||
shape_angle.y = current.angle.y + 0x8000;
|
||||
} else {
|
||||
shape_angle.y = current.angle.y;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -452,6 +1070,7 @@ asm int daAlink_c::procOctaIealSpitInit() {
|
||||
#include "asm/d/a/d_a_alink/procOctaIealSpitInit__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80105A00-80105A84 100340 0084+00 1/0 0/0 0/0 .text procOctaIealSpit__9daAlink_cFv */
|
||||
int daAlink_c::procOctaIealSpit() {
|
||||
|
||||
@@ -67,7 +67,7 @@ int daAlink_c::procGrassWhistleGetInit() {
|
||||
field_0x280c.setData(field_0x27f4);
|
||||
|
||||
daObjYobikusa_c* yobikusa = (daObjYobikusa_c*)field_0x27f4;
|
||||
mCommonCounter = yobikusa->getType();
|
||||
field_0x300c = yobikusa->getType();
|
||||
field_0x300e = yobikusa->getPathID();
|
||||
field_0x3010 = yobikusa->isPlayerCorrect();
|
||||
field_0x3012 = yobikusa->shape_angle.y + 0x8000;
|
||||
@@ -94,9 +94,9 @@ int daAlink_c::procGrassWhistleGet() {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
procGrassWhistleWaitInit(mCommonCounter, field_0x300e, field_0x3010, field_0x3012, &field_0x37c8);
|
||||
procGrassWhistleWaitInit(field_0x300c, field_0x300e, field_0x3010, field_0x3012, &field_0x37c8);
|
||||
} else if (mEquipItem == NO_ITEM && frameCtrl->getFrame() >= lit_7710) {
|
||||
setGrassWhistleModel(mCommonCounter);
|
||||
setGrassWhistleModel(field_0x300c);
|
||||
|
||||
if (field_0x280c.getActor() != NULL) {
|
||||
fopAcM_setCarryNow(field_0x280c.getActor(), 0);
|
||||
@@ -199,8 +199,8 @@ int daAlink_c::procHawkSubjectInit() {
|
||||
field_0x280c.setData(actor);
|
||||
}
|
||||
|
||||
mCommonCounter = 0;
|
||||
mBodyAngleY = 0;
|
||||
field_0x300c = 0;
|
||||
mBodyAngle.y = 0;
|
||||
deleteEquipItem(0, 1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
+23
-23
@@ -71,7 +71,7 @@ void daAlink_c::setWolfDigStatus(u8 flag) {
|
||||
BOOL daAlink_c::checkWolfShapeReverse() const {
|
||||
return ((mProcID == PROC_WOLF_SLIDE_READY || mProcID == PROC_WOLF_LOCK_ATTACK_TURN ||
|
||||
mProcID == PROC_WOLF_JUMP_AT_SLIDE_LAND) &&
|
||||
mCommonCounter != 0) ||
|
||||
field_0x300c != 0) ||
|
||||
mProcID == PROC_WOLF_SLIP_TURN_LAND ||
|
||||
(mProcID == PROC_WOLF_LARGE_DAMAGE_UP && field_0x3198 != 0) ||
|
||||
mProcID == PROC_WOLF_ROPE_TURN;
|
||||
@@ -855,7 +855,7 @@ asm int daAlink_c::procWolfBackJumpInit(int param_0) {
|
||||
|
||||
/* 8012E508-8012E5F4 128E48 00EC+00 1/0 0/0 0/0 .text procWolfBackJump__9daAlink_cFv */
|
||||
int daAlink_c::procWolfBackJump() {
|
||||
cLib_addCalcAngleS(&shape_angle.y, mCommonCounter,
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x300c,
|
||||
daAlinkHIO_wlAtnMove_c0::m.field_0x4,
|
||||
daAlinkHIO_wlAtnMove_c0::m.field_0x0,
|
||||
daAlinkHIO_wlAtnMove_c0::m.field_0x2);
|
||||
@@ -940,7 +940,7 @@ int daAlink_c::procWolfHowlInit(int param_0) {
|
||||
}
|
||||
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -1007,7 +1007,7 @@ int daAlink_c::procWolfLandInit() {
|
||||
|
||||
setSingleWolfAnimeParam(WANM_JUMP_ATTACK_END, &daAlinkHIO_wlAutoJump_c0::m.field_0x14);
|
||||
field_0x3478 = daAlinkHIO_wlAutoJump_c0::m.field_0x14.mCheckFrame;
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
|
||||
field_0x2f9d = 4;
|
||||
setFootEffectProcType(4);
|
||||
@@ -1030,7 +1030,7 @@ asm int daAlink_c::procWolfLandInit() {
|
||||
int daAlink_c::procWolfLand() {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
|
||||
if (mCommonCounter != 0) {
|
||||
if (field_0x300c != 0) {
|
||||
field_0x2f99 = 4;
|
||||
}
|
||||
|
||||
@@ -1092,7 +1092,7 @@ int daAlink_c::procWolfStepMoveInit() {
|
||||
setSingleAnimeWolfParam(WANM_BUMP_START, &daAlinkHIO_wlWallHang_c0::m.field_0x50);
|
||||
field_0x3478 = 0.5f * mNormalSpeed;
|
||||
mNormalSpeed = 0.0f;
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
|
||||
field_0x3588 = l_wolfBaseAnime;
|
||||
current.pos.x -= cM_ssin(shape_angle.y) * 10.0f;
|
||||
@@ -1367,7 +1367,7 @@ void daAlink_c::setWolfHowlNotHappen(int param_0) {
|
||||
field_0x32cc = 0x535;
|
||||
}
|
||||
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
|
||||
if (!checkUnderMove0BckNoArcWolf(WANM_HOWL_END)) {
|
||||
if (param_0 != 0) {
|
||||
@@ -1628,7 +1628,7 @@ int daAlink_c::procWolfRopeSubjectivityInit() {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_ROPE_WALK, FLOAT_LABEL(lit_6108), daAlinkHIO_wlRope_c0::m.field_0x20);
|
||||
}
|
||||
|
||||
mCommonCounter = initWolfRopeShapeAngle();
|
||||
field_0x300c = initWolfRopeShapeAngle();
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
setSpecialGravity(FLOAT_LABEL(lit_6108), mMaxFallSpeed, 0);
|
||||
@@ -1752,7 +1752,7 @@ int daAlink_c::procWolfGiantPuzzleInit() {
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
field_0x2f98 = 4;
|
||||
mCommonCounter = shape_angle.y;
|
||||
field_0x300c = shape_angle.y;
|
||||
field_0x3478 = FLOAT_LABEL(lit_6108);
|
||||
field_0x347c = daAlinkHIO_wlMoveNoP_c0::m.field_0x10;
|
||||
field_0x594 = daAlinkHIO_wlMoveNoP_c0::m.field_0x8;
|
||||
@@ -1802,7 +1802,7 @@ int daAlink_c::procWolfHangReadyInit() {
|
||||
12,
|
||||
daAlinkHIO_wlWallHang_c0::m.field_0x0.mInterpolation);
|
||||
field_0x3198 = field_0x2f91;
|
||||
mCommonCounter = field_0x306e + 0x8000;
|
||||
field_0x300c = field_0x306e + 0x8000;
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
mNormalSpeed = tmp_0;
|
||||
@@ -1815,11 +1815,11 @@ int daAlink_c::procWolfHangReadyInit() {
|
||||
int daAlink_c::procWolfHangReady() {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
|
||||
cLib_addCalcAngleS(&shape_angle.y, mCommonCounter, 2, 0x1000, 0x400);
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x300c, 2, 0x1000, 0x400);
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
shape_angle.y = mCommonCounter;
|
||||
shape_angle.y = field_0x300c;
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (!procWolfHangWallCatchInit(field_0x3198)) {
|
||||
@@ -1975,7 +1975,7 @@ int daAlink_c::procWolfScreamWaitInit() {
|
||||
setWolfScreamWaitAnime();
|
||||
} else {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.field_0x14, daAlinkHIO_wlMove_c0::m.field_0xBC);
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
}
|
||||
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
@@ -2007,7 +2007,7 @@ int daAlink_c::procWolfScreamWait() {
|
||||
daAlinkHIO_wlDamLarge_c0::m.field_0x0.mInterpolation);
|
||||
field_0x2f99 = 13;
|
||||
}
|
||||
} else if (mCommonCounter == 0 && i_checkEndResetFlg1(ERFLG1_UNK_2)) {
|
||||
} else if (field_0x300c == 0 && i_checkEndResetFlg1(ERFLG1_UNK_2)) {
|
||||
setWolfScreamWaitAnime();
|
||||
}
|
||||
|
||||
@@ -2705,7 +2705,7 @@ int daAlink_c::procWolfJumpAttackNormalLandInit(int param_0) {
|
||||
field_0x2f9d = 0x18;
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
field_0x3012 = 0;
|
||||
mCommonCounter = param_0;
|
||||
field_0x300c = param_0;
|
||||
field_0x2f99 = 12;
|
||||
field_0x307e = daAlinkHIO_wlAttack_c0::m.mComboDuration;
|
||||
|
||||
@@ -2733,7 +2733,7 @@ int daAlink_c::procWolfJumpAttackNormalLand() {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
checkNextActionWolf(0);
|
||||
} else if (frameCtrl->getFrame() > daAlinkHIO_wlAtLand_c0::m.field_0x0.mCheckFrame) {
|
||||
if (mCommonCounter != 0) {
|
||||
if (field_0x300c != 0) {
|
||||
shape_angle.y -= -0x8000;
|
||||
return procWolfJumpAttackInit(3);
|
||||
}
|
||||
@@ -2965,7 +2965,7 @@ int daAlink_c::procWolfEnemyHangBiteInit() {
|
||||
field_0x2f99 = 0x50;
|
||||
field_0x3008 = daAlinkHIO_wlAtBite_c0::m.field_0x28;
|
||||
field_0x300a = 0;
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
field_0x300e = 0;
|
||||
field_0x3478 = daAlinkHIO_wlAtBite_c0::m.field_0x40;
|
||||
field_0x3010 = shape_angle.y;
|
||||
@@ -3089,14 +3089,14 @@ int daAlink_c::procWolfPush() {
|
||||
field_0x2f99 = 4;
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
if (mCommonCounter != 0) {
|
||||
if (field_0x300c != 0) {
|
||||
setSingleAnimeWolf(WANM_PUSH_LIGHT, lit_6040, FLOAT_LABEL(lit_6108), field_0x300e, lit_6109);
|
||||
mUnderFrameCtrl[0].setAttribute(0);
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
} else {
|
||||
checkNextActionWolf(0);
|
||||
}
|
||||
} else if (mCommonCounter == 0 && frameCtrl->checkPass(lit_52470)) {
|
||||
} else if (field_0x300c == 0 && frameCtrl->checkPass(lit_52470)) {
|
||||
if (field_0x280c.getActor() != NULL) {
|
||||
fopAcM_setCarryNow(field_0x280c.getActor(), 0);
|
||||
}
|
||||
@@ -3128,10 +3128,10 @@ int daAlink_c::procWolfCargoCarryInit() {
|
||||
|
||||
daAlink_WANM wanm;
|
||||
if (checkCargoCarry()) {
|
||||
mCommonCounter = 1;
|
||||
field_0x300c = 1;
|
||||
wanm = WANM_WAIT_KARGOROK;
|
||||
} else {
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
|
||||
fopAc_ac_c* cargo_actor = (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchEnemyCargo, NULL);
|
||||
if (cargo_actor != NULL) {
|
||||
@@ -3224,7 +3224,7 @@ int daAlink_c::procWolfChainReadyInit() {
|
||||
field_0x280c.setData(field_0x27f4);
|
||||
setSingleAnimeWolfParam(WANM_ATTACK_A_START, &daAlinkHIO_wlAtNjump_c0::m.field_0x0);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
mCommonCounter = 0;
|
||||
field_0x300c = 0;
|
||||
field_0x300e = 0;
|
||||
|
||||
return 1;
|
||||
|
||||
@@ -584,7 +584,6 @@ extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" f32 Zero__4cXyz[3];
|
||||
extern "C" u8 BaseY__4cXyz[12];
|
||||
extern "C" extern u8 g_dComIfGoat_gameInfo[4 + 4 /* padding */];
|
||||
extern "C" extern u8 data_80450B44[4];
|
||||
extern "C" u8 stopStatus__10fopAc_ac_c[4];
|
||||
extern "C" u8 m_object__7dDemo_c[4];
|
||||
extern "C" u8 m_midnaActor__9daPy_py_c[4];
|
||||
|
||||
@@ -1427,10 +1427,6 @@ bool dDemo_system_c::JSGFindObject(JStage::TObject** p_TObj, char const* actorNa
|
||||
/* 80451DE0-80451DE8 0003E0 0008+00 1/1 0/0 0/0 .sdata2 @5123 */
|
||||
SECTION_SDATA2 static f64 lit_5123 = 1.0 / 29.999998435378155;
|
||||
|
||||
inline Z2SoundStarter* Z2GetSoundStarter() {
|
||||
return data_80450B74;
|
||||
}
|
||||
|
||||
/* 80039678-80039910 033FB8 0298+00 0/0 1/1 0/0 .text create__7dDemo_cFv */
|
||||
#ifdef NONMATCHING
|
||||
void dDemo_c::create() {
|
||||
|
||||
@@ -76,7 +76,6 @@ SECTION_SDATA2 static f32 lit_3862 = 2.0f;
|
||||
SECTION_SDATA2 static f32 lit_3863 = 45.0f;
|
||||
|
||||
/* 8009CA48-8009CB14 097388 00CC+00 0/0 1/1 0/0 .text update__12dEyeHL_mng_cFv */
|
||||
// small issue with cLib_minMaxLimit
|
||||
#ifdef NONMATCHING
|
||||
void dEyeHL_mng_c::update() {
|
||||
dEyeHL_mng_c* obj = m_obj;
|
||||
|
||||
+1
-12
@@ -2244,20 +2244,9 @@ static int dStage_lgtvInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum,
|
||||
|
||||
/* 80025738-80025744 020078 000C+00 0/0 1/1 0/0 .text
|
||||
* dStage_stagInfo_GetParticleNo__FP21stage_stag_info_classi */
|
||||
#ifdef NONMATCHING
|
||||
u8 dStage_stagInfo_GetParticleNo(stage_stag_info_class* p_info, int layer) {
|
||||
return p_info[layer].mParticleNo;
|
||||
return p_info->mParticleNo[layer];
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm u8 dStage_stagInfo_GetParticleNo(stage_stag_info_class* p_info, int layer) {
|
||||
nofralloc
|
||||
#include "asm/d/d_stage/dStage_stagInfo_GetParticleNo__FP21stage_stag_info_classi.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80025744-8002582C 020084 00E8+00 1/0 0/0 0/0 .text dStage_stagInfoInit__FP11dStage_dt_cPviPv */
|
||||
static int dStage_stagInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) {
|
||||
|
||||
@@ -555,7 +555,6 @@ extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_meter2_info[248];
|
||||
extern "C" extern u8 g_MsgObject_HIO_c[1040];
|
||||
extern "C" extern u8 data_80450B70[4];
|
||||
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
|
||||
extern "C" extern u8 g_msg_unit[4 + 4 /* padding */];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
@@ -353,7 +353,6 @@ extern "C" u8 const tempBitLabels__20dSv_event_tmp_flag_c[370 + 2 /* padding */]
|
||||
extern "C" extern void* g_fopMsg_Method[5 + 1 /* padding */];
|
||||
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
|
||||
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
|
||||
extern "C" extern u8 data_80450B70[4];
|
||||
extern "C" u8 m_control__7dDemo_c[4];
|
||||
extern "C" u8 m_mesgControl__7dDemo_c[4];
|
||||
extern "C" u8 m_midnaActor__9daPy_py_c[4];
|
||||
|
||||
@@ -10,18 +10,6 @@
|
||||
#include "m_Do/m_Do_Reset.h"
|
||||
#include "m_Do/m_Do_dvd_thread.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JAIStreamDataMgr {
|
||||
/* 802A3AD8 */ ~JAIStreamDataMgr();
|
||||
};
|
||||
|
||||
struct JAISoundInfo {
|
||||
/* 802A2D50 */ ~JAISoundInfo();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -87,19 +75,6 @@ extern "C" extern void* __vt__14Z2SoundStarter[5 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__11Z2SoundInfo[20];
|
||||
extern "C" extern void* __vt__15Z2SpeechStarter[5];
|
||||
extern "C" extern void* __vt__10Z2AudioMgr[3];
|
||||
extern "C" extern u8 data_80450B40[4];
|
||||
extern "C" extern u8 data_80450B48[4];
|
||||
extern "C" extern u8 data_80450B4C[4];
|
||||
extern "C" extern u8 data_80450B50[4];
|
||||
extern "C" extern u8 data_80450B64[4];
|
||||
extern "C" extern u8 data_80450B68[4];
|
||||
extern "C" extern u8 data_80450B6C[4];
|
||||
extern "C" extern u8 data_80450B70[4];
|
||||
extern "C" extern u8 data_80450B74[4];
|
||||
extern "C" extern u8 data_80450B7C[4];
|
||||
extern "C" extern u8 data_80450B80[4];
|
||||
extern "C" extern u8 data_80450B84[4];
|
||||
extern "C" extern u8 data_80450B88[4];
|
||||
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
extern "C" u8 sCurrentHeap__7JKRHeap[4];
|
||||
|
||||
+37
-92
@@ -5,6 +5,8 @@
|
||||
|
||||
#include "m_Do/m_Do_main.h"
|
||||
#include "DynamicLink.h"
|
||||
#include "JSystem/JAudio2/JASAudioThread.h"
|
||||
#include "JSystem/JAudio2/JASGadget.h"
|
||||
#include "JSystem/JFramework/JFWSystem.h"
|
||||
#include "JSystem/JKernel/JKRAram.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
@@ -20,36 +22,12 @@
|
||||
#include "m_Do/m_Do_dvd_thread.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include "m_Do/m_Do_machine.h"
|
||||
#include "JSystem/JAudio2/JASGadget.h"
|
||||
#include "JSystem/JAudio2/JASAudioThread.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" extern char const* const m_Do_m_Do_main__stringBase0;
|
||||
extern "C" extern u8 data_80450B38[4];
|
||||
extern "C" extern u8 data_80450B3C[4];
|
||||
extern "C" extern u8 data_80450B40[4];
|
||||
extern "C" extern u8 data_80450B44[4];
|
||||
extern "C" extern u8 data_80450B48[4];
|
||||
extern "C" extern u8 data_80450B4C[4];
|
||||
extern "C" extern u8 data_80450B50[4];
|
||||
extern "C" extern u8 data_80450B54[4];
|
||||
extern "C" extern u8 data_80450B58[4];
|
||||
extern "C" extern u8 data_80450B5C[4];
|
||||
extern "C" extern u8 data_80450B64[4];
|
||||
extern "C" extern u8 data_80450B68[4];
|
||||
extern "C" extern u8 data_80450B6C[4];
|
||||
extern "C" extern u8 data_80450B70[4];
|
||||
extern "C" extern u8 data_80450B74[4];
|
||||
extern "C" extern u8 data_80450B78[4];
|
||||
extern "C" extern u8 data_80450B7C[4];
|
||||
extern "C" extern u8 data_80450B80[4];
|
||||
extern "C" extern u8 data_80450B84[4];
|
||||
extern "C" extern u8 data_80450B88[4];
|
||||
extern "C" extern u8 data_80450B8C[4];
|
||||
extern "C" extern u8 data_80450B90[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// External References:
|
||||
@@ -153,7 +131,8 @@ void CheckHeap(u32 i_padNo) {
|
||||
|
||||
// if L + R + Z is pressed
|
||||
if ((mDoCPd_c::getHold(i_padNo) & ~CButton::Z) == (CButton::L + CButton::R) &&
|
||||
mDoCPd_c::getTrig(i_padNo) & CButton::Z) {
|
||||
mDoCPd_c::getTrig(i_padNo) & CButton::Z)
|
||||
{
|
||||
comboCheck = true;
|
||||
}
|
||||
|
||||
@@ -321,8 +300,8 @@ bool Debug_console(u32 i_padNo) {
|
||||
console_scroll_init = 1;
|
||||
}
|
||||
|
||||
if (mDoCPd_c::getTrig(i_padNo) & CButton::Z &&
|
||||
!(mDoCPd_c::getHold(i_padNo) & ~CButton::Z)) {
|
||||
if (mDoCPd_c::getTrig(i_padNo) & CButton::Z && !(mDoCPd_c::getHold(i_padNo) & ~CButton::Z))
|
||||
{
|
||||
console->setVisible(console->isVisible() == false);
|
||||
JUTAssertion::setMessageCount(0);
|
||||
}
|
||||
@@ -330,12 +309,14 @@ bool Debug_console(u32 i_padNo) {
|
||||
if (console->isVisible()) {
|
||||
u32 holdButtons = mDoCPd_c::getHold(i_padNo);
|
||||
if ((holdButtons & CButton::L && holdButtons & CButton::R) ||
|
||||
((mDoCPd_c::getAnalogL(i_padNo) > 0.0f && mDoCPd_c::getAnalogR(i_padNo) > 0.0f))) {
|
||||
((mDoCPd_c::getAnalogL(i_padNo) > 0.0f && mDoCPd_c::getAnalogR(i_padNo) > 0.0f)))
|
||||
{
|
||||
f32 stick_x = mDoCPd_c::getStickX(i_padNo);
|
||||
f32 stick_y = mDoCPd_c::getStickY(i_padNo);
|
||||
|
||||
if (holdButtons & (CButton::Y | CButton::X) &&
|
||||
mDoCPd_c::getTrig(i_padNo) & CButton::START) {
|
||||
mDoCPd_c::getTrig(i_padNo) & CButton::START)
|
||||
{
|
||||
console->clear();
|
||||
}
|
||||
|
||||
@@ -433,13 +414,15 @@ static void debug() {
|
||||
}
|
||||
|
||||
if ((mDoCPd_c::getGamePad(PAD_3)->getButton() & ~CButton::Z) == CButton::R &&
|
||||
mDoCPd_c::getGamePad(PAD_3)->testTrigger(CButton::Z)) {
|
||||
mDoCPd_c::getGamePad(PAD_3)->testTrigger(CButton::Z))
|
||||
{
|
||||
mDisplayHeapSize ^= 1;
|
||||
}
|
||||
|
||||
if (mDisplayHeapSize) {
|
||||
if ((mDoCPd_c::getGamePad(PAD_3)->getButton() & ~CButton::Z) == CButton::L &&
|
||||
mDoCPd_c::getGamePad(PAD_3)->testTrigger(CButton::Z)) {
|
||||
mDoCPd_c::getGamePad(PAD_3)->testTrigger(CButton::Z))
|
||||
{
|
||||
mDoMain::mHeapBriefType < 5 ? mDoMain::mHeapBriefType++ :
|
||||
mDoMain::mHeapBriefType = 1;
|
||||
}
|
||||
@@ -631,129 +614,91 @@ REGISTER_CTORS(0x800065E0, __sinit_m_Do_main_cpp);
|
||||
/* ############################################################################################## */
|
||||
/* 80450B38-80450B3C 000038 0004+00 0/0 2/2 0/0 .sbss
|
||||
* sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */
|
||||
extern u8 data_80450B38[4];
|
||||
u8 data_80450B38[4];
|
||||
Z2WolfHowlMgr* JASGlobalInstance<Z2WolfHowlMgr>::sInstance;
|
||||
|
||||
/* 80450B3C-80450B40 00003C 0004+00 0/0 6/6 0/0 .sbss sInstance__31JASGlobalInstance<10Z2EnvSeMgr>
|
||||
*/
|
||||
extern u8 data_80450B3C[4];
|
||||
u8 data_80450B3C[4];
|
||||
Z2EnvSeMgr* JASGlobalInstance<Z2EnvSeMgr>::sInstance;
|
||||
|
||||
/* 80450B40-80450B44 000040 0004+00 0/0 6/6 0/0 .sbss
|
||||
* sInstance__32JASGlobalInstance<11Z2FxLineMgr> */
|
||||
extern u8 data_80450B40[4];
|
||||
u8 data_80450B40[4];
|
||||
Z2FxLineMgr* JASGlobalInstance<Z2FxLineMgr>::sInstance;
|
||||
|
||||
/* 80450B44-80450B48 000044 0004+00 0/0 18/18 0/0 .sbss
|
||||
* sInstance__31JASGlobalInstance<10Z2Audience> */
|
||||
extern u8 data_80450B44[4];
|
||||
u8 data_80450B44[4];
|
||||
Z2Audience* JASGlobalInstance<Z2Audience>::sInstance;
|
||||
|
||||
/* 80450B48-80450B4C 000048 0004+00 0/0 17/17 0/0 .sbss
|
||||
* sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */
|
||||
extern u8 data_80450B48[4];
|
||||
u8 data_80450B48[4];
|
||||
Z2SoundObjMgr* JASGlobalInstance<Z2SoundObjMgr>::sInstance;
|
||||
|
||||
/* 80450B4C-80450B50 00004C 0004+00 0/0 10/10 0/0 .sbss
|
||||
* sInstance__32JASGlobalInstance<11Z2SoundInfo> */
|
||||
extern u8 data_80450B4C[4];
|
||||
u8 data_80450B4C[4];
|
||||
Z2SoundInfo* JASGlobalInstance<Z2SoundInfo>::sInstance;
|
||||
|
||||
/* 80450B50-80450B54 000050 0004+00 0/0 5/5 0/0 .sbss
|
||||
* sInstance__33JASGlobalInstance<12JAUSoundInfo> */
|
||||
extern u8 data_80450B50[4];
|
||||
u8 data_80450B50[4];
|
||||
JAUSoundInfo* JASGlobalInstance<JAUSoundInfo>::sInstance;
|
||||
|
||||
/* 80450B54-80450B58 000054 0004+00 0/0 2/2 0/0 .sbss
|
||||
* sInstance__38JASGlobalInstance<17JAUSoundNameTable> */
|
||||
extern u8 data_80450B54[4];
|
||||
u8 data_80450B54[4];
|
||||
JAUSoundNameTable* JASGlobalInstance<JAUSoundNameTable>::sInstance;
|
||||
|
||||
/* 80450B58-80450B5C 000058 0004+00 0/0 12/12 0/0 .sbss
|
||||
* sInstance__34JASGlobalInstance<13JAUSoundTable> */
|
||||
extern u8 data_80450B58[4];
|
||||
u8 data_80450B58[4];
|
||||
JAUSoundTable* JASGlobalInstance<JAUSoundTable>::sInstance;
|
||||
|
||||
/* 80450B5C-80450B60 00005C 0004+00 0/0 6/6 0/0 .sbss
|
||||
* sInstance__33JASGlobalInstance<12JAISoundInfo> */
|
||||
extern u8 data_80450B5C[4];
|
||||
u8 data_80450B5C[4];
|
||||
JAISoundInfo* JASGlobalInstance<JAISoundInfo>::sInstance;
|
||||
|
||||
/* 80450B60-80450B64 000060 0004+00 0/0 29/29 0/0 .sbss
|
||||
* sInstance__31JASGlobalInstance<10Z2SoundMgr> */
|
||||
// TODO: fix type
|
||||
Z2SoundMgr* data_80450B60;
|
||||
Z2SoundMgr* JASGlobalInstance<Z2SoundMgr>::sInstance;
|
||||
|
||||
/* 80450B64-80450B68 000064 0004+00 0/0 2/2 0/0 .sbss
|
||||
* sInstance__33JASGlobalInstance<12JAIStreamMgr> */
|
||||
extern u8 data_80450B64[4];
|
||||
u8 data_80450B64[4];
|
||||
JAIStreamMgr* JASGlobalInstance<JAIStreamMgr>::sInstance;
|
||||
|
||||
/* 80450B68-80450B6C 000068 0004+00 0/0 3/3 0/0 .sbss sInstance__29JASGlobalInstance<9JAISeqMgr>
|
||||
*/
|
||||
extern u8 data_80450B68[4];
|
||||
u8 data_80450B68[4];
|
||||
JAISeqMgr* JASGlobalInstance<JAISeqMgr>::sInstance;
|
||||
|
||||
/* 80450B6C-80450B70 00006C 0004+00 0/0 4/4 0/0 .sbss sInstance__28JASGlobalInstance<8JAISeMgr> */
|
||||
extern u8 data_80450B6C[4];
|
||||
u8 data_80450B6C[4];
|
||||
JAISeMgr* JASGlobalInstance<JAISeMgr>::sInstance;
|
||||
|
||||
/* 80450B70-80450B74 000070 0004+00 0/0 9/9 0/0 .sbss
|
||||
* sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */
|
||||
extern u8 data_80450B70[4];
|
||||
u8 data_80450B70[4];
|
||||
Z2SpeechMgr2* JASGlobalInstance<Z2SpeechMgr2>::sInstance;
|
||||
|
||||
/* 80450B74-80450B78 000074 0004+00 0/0 22/22 0/0 .sbss
|
||||
* sInstance__35JASGlobalInstance<14Z2SoundStarter> */
|
||||
extern u8 data_80450B74[4];
|
||||
u8 data_80450B74[4];
|
||||
Z2SoundStarter* JASGlobalInstance<Z2SoundStarter>::sInstance;
|
||||
|
||||
/* 80450B78-80450B7C 000078 0004+00 0/0 2/2 0/0 .sbss
|
||||
* sInstance__36JASGlobalInstance<15JAISoundStarter> */
|
||||
extern u8 data_80450B78[4];
|
||||
u8 data_80450B78[4];
|
||||
JAISoundStarter* JASGlobalInstance<JAISoundStarter>::sInstance;
|
||||
|
||||
/* 80450B7C-80450B80 00007C 0004+00 0/0 34/34 0/0 .sbss
|
||||
* sInstance__32JASGlobalInstance<11Z2StatusMgr> */
|
||||
extern u8 data_80450B7C[4];
|
||||
u8 data_80450B7C[4];
|
||||
Z2StatusMgr* JASGlobalInstance<Z2StatusMgr>::sInstance;
|
||||
|
||||
/* 80450B80-80450B84 000080 0004+00 0/0 46/46 0/0 .sbss
|
||||
* sInstance__31JASGlobalInstance<10Z2SceneMgr> */
|
||||
extern u8 data_80450B80[4];
|
||||
u8 data_80450B80[4];
|
||||
Z2SceneMgr* JASGlobalInstance<Z2SceneMgr>::sInstance;
|
||||
|
||||
/* 80450B84-80450B88 000084 0004+00 0/0 38/38 0/0 .sbss sInstance__28JASGlobalInstance<8Z2SeqMgr>
|
||||
*/
|
||||
extern u8 data_80450B84[4];
|
||||
u8 data_80450B84[4];
|
||||
Z2SeqMgr* JASGlobalInstance<Z2SeqMgr>::sInstance;
|
||||
|
||||
/* 80450B88-80450B8C 000088 0004+00 0/0 25/25 0/0 .sbss sInstance__27JASGlobalInstance<7Z2SeMgr>
|
||||
*/
|
||||
extern u8 data_80450B88[4];
|
||||
u8 data_80450B88[4];
|
||||
Z2SeMgr* JASGlobalInstance<Z2SeMgr>::sInstance;
|
||||
|
||||
/* 80450B8C-80450B90 00008C 0004+00 0/0 6/6 0/0 .sbss
|
||||
* sInstance__35JASGlobalInstance<14JASAudioThread> */
|
||||
extern u8 data_80450B8C[4];
|
||||
u8 data_80450B8C[4];
|
||||
//JASAudioThread* JASGlobalInstance<JASAudioThread>::sInstance;
|
||||
JASAudioThread* JASGlobalInstance<JASAudioThread>::sInstance;
|
||||
|
||||
/* 80450B90-80450B98 000090 0004+04 0/0 4/4 0/0 .sbss
|
||||
* sInstance__40JASGlobalInstance<19JASDefaultBankTable> */
|
||||
extern u8 data_80450B90[4 + 4 /* padding */];
|
||||
u8 data_80450B90[4 + 4 /* padding */];
|
||||
|
||||
/* 80450B98-80450B9C -00001 0004+00 0/0 6/6 0/0 .sbss None */
|
||||
bool __OSReport_disable;
|
||||
|
||||
bool __OSReport_Error_disable;
|
||||
|
||||
bool __OSReport_Warning_disable;
|
||||
|
||||
bool __OSReport_System_disable;
|
||||
|
||||
/* 80450B9C-80450BA0 00009C 0004+00 0/0 3/3 0/0 .sbss None */
|
||||
bool __OSReport_enable;
|
||||
|
||||
/* 803739A0-803739A0 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
JASDefaultBankTable* JASGlobalInstance<JASDefaultBankTable>::sInstance;
|
||||
|
||||
@@ -12,6 +12,18 @@
|
||||
#include "dolphin/base/PPCArch.h"
|
||||
#include "MSL_C/MSL_Common/Src/file_io.h"
|
||||
|
||||
/* 80450B98-80450B9C -00001 0004+00 0/0 6/6 0/0 .sbss None */
|
||||
u8 __OSReport_disable;
|
||||
|
||||
u8 __OSReport_Error_disable;
|
||||
|
||||
u8 __OSReport_Warning_disable;
|
||||
|
||||
u8 __OSReport_System_disable;
|
||||
|
||||
/* 80450B9C-80450BA0 00009C 0004+00 0/0 3/3 0/0 .sbss None */
|
||||
u8 __OSReport_enable;
|
||||
|
||||
/* 80006798-800067C8 0010D8 0030+00 1/1 0/0 0/0 .text OSSwitchFiberEx__FUlUlUlUlUlUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
|
||||
@@ -129,7 +129,6 @@ extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
|
||||
extern "C" extern u8 g_MsgObject_HIO_c[1040];
|
||||
extern "C" extern u8 data_80450B70[4];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user