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:
TakaRikka
2023-02-16 13:09:22 -08:00
committed by GitHub
parent ebc54b9a93
commit af684e72c6
301 changed files with 2061 additions and 3166 deletions
+10 -11
View File
@@ -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;
}
+2 -2
View File
@@ -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);
+2 -2
View File
@@ -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();
+6 -6
View File
@@ -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)) {
+2 -2
View File
@@ -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
View File
@@ -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);
}
+5 -5
View File
@@ -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
View File
@@ -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, &current.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);
}
+7 -7
View File
@@ -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
View File
@@ -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*)&notColor0;
i_color = (J3DGXColorS10*)&notColor0;
} 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 */
+7 -7
View File
@@ -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()) {
+2 -2
View File
@@ -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
View File
@@ -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() {
+5 -5
View File
@@ -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
View File
@@ -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;
-1
View File
@@ -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];
-4
View File
@@ -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() {
-1
View File
@@ -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
View File
@@ -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) {
-1
View File
@@ -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 */];
-1
View File
@@ -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];
-25
View File
@@ -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
View File
@@ -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
View File
@@ -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
-1
View File
@@ -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 */];
//