mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-13 21:25:26 -04:00
d_a_obj_carry mostly done (#2301)
* d_a_obj_carry mostly done * cleanup some acch inlines
This commit is contained in:
+24
-29
@@ -3837,7 +3837,7 @@ void daAlink_c::footBgCheck() {
|
||||
mDoMtx_multVec(mpLinkModel->getAnmMtx(0x19), &localRightFootOffset, &sp68[1]);
|
||||
mDoMtx_multVec(mpLinkModel->getAnmMtx(0x1A), &localRightToeOffset, &sp80[1]);
|
||||
|
||||
BOOL sp1C = (!mLinkAcch.i_ChkGroundHit() || checkMagneBootsOn()) || (mLinkAcch.i_ChkGroundHit() && mSinkShapeOffset < 0.0f) || checkModeFlg(0x78C52);
|
||||
BOOL sp1C = (!mLinkAcch.ChkGroundHit() || checkMagneBootsOn()) || (mLinkAcch.ChkGroundHit() && mSinkShapeOffset < 0.0f) || checkModeFlg(0x78C52);
|
||||
|
||||
for (i = 0; i < 2; i++, var_r29++, sp24++) {
|
||||
cXyz sp5C = (sp80[i] + sp68[i]) * 0.5f;
|
||||
@@ -6385,7 +6385,7 @@ void daAlink_c::setStepsOffset() {
|
||||
|
||||
/* 800A6DCC-800A7050 0A170C 0284+00 1/1 0/0 0/0 .text iceSlipBgCheck__9daAlink_cFv */
|
||||
void daAlink_c::iceSlipBgCheck() {
|
||||
if (mLinkAcch.i_ChkGroundHit() && checkModeFlg(1)) {
|
||||
if (mLinkAcch.ChkGroundHit() && checkModeFlg(1)) {
|
||||
f32 var_f30 = field_0x35c4.absXZ();
|
||||
if (var_f30 > 0.1f) {
|
||||
cXyz sp3C(field_0x3798.x, field_0x3798.y + 10.0f, field_0x3798.z);
|
||||
@@ -6415,7 +6415,7 @@ void daAlink_c::iceSlipBgCheck() {
|
||||
void daAlink_c::setIceSlipSpeed() {
|
||||
field_0x35d0 = field_0x35c4;
|
||||
|
||||
if (!checkModeFlg(0x1210C52) && !checkEventRun() && !checkHeavyStateOn(1, 1) && mGndPolySpecialCode == dBgW_SPCODE_ICE && !mLinkAcch.ChkWallHit() && mLinkAcch.i_ChkGroundHit()) {
|
||||
if (!checkModeFlg(0x1210C52) && !checkEventRun() && !checkHeavyStateOn(1, 1) && mGndPolySpecialCode == dBgW_SPCODE_ICE && !mLinkAcch.ChkWallHit() && mLinkAcch.ChkGroundHit()) {
|
||||
f32 var_f31, var_f30, var_f29;
|
||||
if (checkWolf()) {
|
||||
var_f31 = 0.1f;
|
||||
@@ -6462,7 +6462,7 @@ void daAlink_c::setPolygonSpeed() {
|
||||
field_0x35a0 = cXyz::Zero;
|
||||
}
|
||||
|
||||
if ((mLinkAcch.i_ChkGroundHit() && !checkHeavyStateOn(1, 1) && mWaterY > 30.0f + current.pos.y) || checkModeFlg(0x40000)) {
|
||||
if ((mLinkAcch.ChkGroundHit() && !checkHeavyStateOn(1, 1) && mWaterY > 30.0f + current.pos.y) || checkModeFlg(0x40000)) {
|
||||
cXyz sp18;
|
||||
int sp8;
|
||||
if (fopAcM_getWaterStream(¤t.pos, mLinkAcch.m_gnd, &sp18, &sp8, 0)) {
|
||||
@@ -6510,7 +6510,7 @@ void daAlink_c::setPolygonSpeed() {
|
||||
}
|
||||
|
||||
cLib_addCalcPos(&field_0x3594, sp18, 0.5f, var_f30, 0.5f);
|
||||
} else if (field_0x2fbd == 4 && mLinkAcch.i_ChkGroundHit() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) && dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &sp24) && sp24.mNormal.y <= cM_scos(cM_deg2s(29.9f))) {
|
||||
} else if (field_0x2fbd == 4 && mLinkAcch.ChkGroundHit() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) && dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &sp24) && sp24.mNormal.y <= cM_scos(cM_deg2s(29.9f))) {
|
||||
f32 temp_f26 = sp24.mNormal.y;
|
||||
f32 temp_f27 = cM_sht2d(cM_atan2s(sp24.mNormal.absXZ(), sp24.mNormal.y)) - 29.9f;
|
||||
sp24.mNormal.y = 0.0f;
|
||||
@@ -6975,7 +6975,7 @@ void daAlink_c::setAttentionPos() {
|
||||
/* 800A8CE4-800A9248 0A3624 0564+00 3/3 0/0 0/0 .text setMatrix__9daAlink_cFv */
|
||||
void daAlink_c::setMatrix() {
|
||||
f32 var_f31;
|
||||
if (field_0x3174 == 8 && mLinkAcch.i_ChkGroundHit() && !checkModeFlg(0x70C52)) {
|
||||
if (field_0x3174 == 8 && mLinkAcch.ChkGroundHit() && !checkModeFlg(0x70C52)) {
|
||||
var_f31 = 20.0f;
|
||||
} else {
|
||||
var_f31 = 0.0f;
|
||||
@@ -9860,7 +9860,7 @@ void daAlink_c::setFrontWallType() {
|
||||
|
||||
if (i == 0 && var_r27 == 3 && checkStageName("D_MN10") != 0 && fopAcM_GetRoomNo(this) == 6) {
|
||||
sp4C = 1;
|
||||
} else if (!checkWolf() && sp5C == 0 && ((i == 0 && mLinkAcch.i_ChkGroundHit() && !checkModeFlg(0x70C52)) || mProcID == PROC_HOOKSHOT_FLY) && var_r27 == 0) {
|
||||
} else if (!checkWolf() && sp5C == 0 && ((i == 0 && mLinkAcch.ChkGroundHit() && !checkModeFlg(0x70C52)) || mProcID == PROC_HOOKSHOT_FLY) && var_r27 == 0) {
|
||||
sp5C = 1;
|
||||
sp98.y = sp54;
|
||||
sp8C.y = sp98.y;
|
||||
@@ -10207,11 +10207,6 @@ void daAlink_c::setFrontWallType() {
|
||||
}
|
||||
}
|
||||
|
||||
/* 800B146C-800B1488 0ABDAC 001C+00 1/1 0/0 0/0 .text SetPos__12dBgS_RoofChkFRC4cXyz */
|
||||
void dBgS_RoofChk::SetPos(cXyz const& pos) {
|
||||
m_pos = pos;
|
||||
}
|
||||
|
||||
/* 800B1488-800B14B4 0ABDC8 002C+00 4/4 0/0 0/0 .text checkWaterPolygonUnder__9daAlink_cFv */
|
||||
BOOL daAlink_c::checkWaterPolygonUnder() {
|
||||
return checkModeFlg(MODE_SWIMMING) || current.pos.y < mWaterY;
|
||||
@@ -10414,7 +10409,7 @@ void daAlink_c::setSandShapeOffset() {
|
||||
f32 temp_f29 = mSinkShapeOffset;
|
||||
BOOL temp_r29 = checkEventRun();
|
||||
|
||||
if (mLinkAcch.i_ChkGroundHit() && (field_0x2fbb == 3 || checkSnowCode()) && !checkModeFlg(0x440)) {
|
||||
if (mLinkAcch.ChkGroundHit() && (field_0x2fbb == 3 || checkSnowCode()) && !checkModeFlg(0x440)) {
|
||||
if (!temp_r29 && !checkModeFlg(0x02000000)) {
|
||||
if (checkSnowCode()) {
|
||||
if (!checkZeroSpeedF() || mProcID == PROC_TURN_MOVE) {
|
||||
@@ -10523,7 +10518,7 @@ bool daAlink_c::checkLv2MiddleBossBgRide(s16 i_procName) {
|
||||
|
||||
/* 800B1FD8-800B21EC 0AC918 0214+00 11/11 0/0 0/0 .text getSlidePolygon__9daAlink_cFP8cM3dGPla */
|
||||
bool daAlink_c::getSlidePolygon(cM3dGPla* param_0) {
|
||||
if (!checkMagneBootsOn() && mLinkAcch.i_ChkGroundHit() && !checkModeFlg(0x40000) && (mGndPolySpecialCode != 6) && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) {
|
||||
if (!checkMagneBootsOn() && mLinkAcch.ChkGroundHit() && !checkModeFlg(0x40000) && (mGndPolySpecialCode != 6) && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) {
|
||||
if ((checkEquipHeavyBoots() && daTagMagne_c::checkMagnetCode(mLinkAcch.m_gnd)) || mProcID == PROC_GORON_MOVE) {
|
||||
return 0;
|
||||
}
|
||||
@@ -11144,7 +11139,7 @@ void daAlink_c::setNormalSpeedF(f32 i_incSpeed, f32 param_1) {
|
||||
var_f31 = field_0x594;
|
||||
}
|
||||
|
||||
if ((checkUpperReadyThrowAnime() && mLinkAcch.i_ChkGroundHit() && field_0x2f8c == 1) || ((checkRoomOnly() || checkCopyRodControllAnime() || checkGrabSlowMoveActor() || (checkUpperGuardAnime() && field_0x2f8c == 1) || (field_0x2fbd == 4 && mSinkShapeOffset < -15.0f)) && (mProcID == PROC_MOVE || mProcID == PROC_ATN_MOVE || mProcID == PROC_ATN_ACTOR_MOVE || mProcID == PROC_WOLF_MOVE || mProcID == PROC_WOLF_ATN_AC_MOVE || mProcID == PROC_MOVE_TURN))) {
|
||||
if ((checkUpperReadyThrowAnime() && mLinkAcch.ChkGroundHit() && field_0x2f8c == 1) || ((checkRoomOnly() || checkCopyRodControllAnime() || checkGrabSlowMoveActor() || (checkUpperGuardAnime() && field_0x2f8c == 1) || (field_0x2fbd == 4 && mSinkShapeOffset < -15.0f)) && (mProcID == PROC_MOVE || mProcID == PROC_ATN_MOVE || mProcID == PROC_ATN_ACTOR_MOVE || mProcID == PROC_WOLF_MOVE || mProcID == PROC_WOLF_ATN_AC_MOVE || mProcID == PROC_MOVE_TURN))) {
|
||||
f32 temp_f30 = field_0x594 * daAlinkHIO_basic_c0::m.mIndoorSpeedFactor;
|
||||
if (var_f31 > temp_f30) {
|
||||
var_f31 = temp_f30;
|
||||
@@ -12093,7 +12088,7 @@ BOOL daAlink_c::checkAutoJumpAction() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!checkModeFlg(0x70C12) && mProcID != PROC_DOOR_OPEN && mProcID != PROC_WARP && !getSumouMode() && mDemo.getDemoType() != 5 && !checkMagneBootsOn() && !mLinkAcch.i_ChkGroundHit()) {
|
||||
if (!checkModeFlg(0x70C12) && mProcID != PROC_DOOR_OPEN && mProcID != PROC_WARP && !getSumouMode() && mDemo.getDemoType() != 5 && !checkMagneBootsOn() && !mLinkAcch.ChkGroundHit()) {
|
||||
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
speed.y = 0.0f;
|
||||
return procSwimWaitInit(0);
|
||||
@@ -12253,9 +12248,9 @@ BOOL daAlink_c::checkAutoJumpAction() {
|
||||
}
|
||||
}
|
||||
} else if (checkGrabGlide() && mWindSpeed.y > 10.0f) {
|
||||
mLinkAcch.i_ClrGroundHit();
|
||||
mLinkAcch.ClrGroundHit();
|
||||
return procAutoJumpInit(1);
|
||||
} else if (checkEndResetFlg0(ERFLG0_UNK_100) && mLinkAcch.i_ChkGroundHit() && !checkWolf()) {
|
||||
} else if (checkEndResetFlg0(ERFLG0_UNK_100) && mLinkAcch.ChkGroundHit() && !checkWolf()) {
|
||||
return procRollJumpInit();
|
||||
} else if (checkMagneBootsOn() && !checkNoResetFlg0(FLG0_UNK_2000) && cancelMagneBootsOn()) {
|
||||
return procFallInit(1, 5.0f);
|
||||
@@ -12665,7 +12660,7 @@ BOOL daAlink_c::checkUpperItemAction() {
|
||||
if (field_0x30f6 < 0 || !checkNoResetFlg0(FLG0_UNK_20000)) {
|
||||
voiceStart(Z2SE_AL_V_ZENTEN_FAIL_2);
|
||||
|
||||
if (mLinkAcch.i_ChkGroundHit()) {
|
||||
if (mLinkAcch.ChkGroundHit()) {
|
||||
return procStEscapeInit();
|
||||
}
|
||||
resetUpperAnime(UPPER_2, 3.0f);
|
||||
@@ -12774,7 +12769,7 @@ static void* daAlink_searchKolin(fopAc_ac_c* i_actor, void* i_data) {
|
||||
|
||||
/* 800B80C4-800B8374 0B2A04 02B0+00 2/2 0/0 0/0 .text orderZTalk__9daAlink_cFv */
|
||||
int daAlink_c::orderZTalk() {
|
||||
if ((!checkReinRide() && !checkModeFlg(0x40000) && !checkMagneBootsOn() && (!mLinkAcch.i_ChkGroundHit() || checkModeFlg(0x70C52))) || mThrowBoomerangAcKeep.getActor() != NULL || dComIfGp_checkPlayerStatus0(0, 0x8000000) || mProcID == PROC_CRAWL_END || checkHorseZelda() || checkCloudSea() || checkStageName("D_MN08A") || (checkStageName("D_MN09A") && ((fopAcM_GetRoomNo(this) == 50 && dComIfG_play_c::getLayerNo(0) == 0) || fopAcM_GetRoomNo(this) == 51)) || (checkMagneBootsOn() && (!checkStageName("D_MN04B") || !cBgW_CheckBGround(mMagneBootsTopVec.y))) || dComIfGs_isEventBit(0x6140)) {
|
||||
if ((!checkReinRide() && !checkModeFlg(0x40000) && !checkMagneBootsOn() && (!mLinkAcch.ChkGroundHit() || checkModeFlg(0x70C52))) || mThrowBoomerangAcKeep.getActor() != NULL || dComIfGp_checkPlayerStatus0(0, 0x8000000) || mProcID == PROC_CRAWL_END || checkHorseZelda() || checkCloudSea() || checkStageName("D_MN08A") || (checkStageName("D_MN09A") && ((fopAcM_GetRoomNo(this) == 50 && dComIfG_play_c::getLayerNo(0) == 0) || fopAcM_GetRoomNo(this) == 51)) || (checkMagneBootsOn() && (!checkStageName("D_MN04B") || !cBgW_CheckBGround(mMagneBootsTopVec.y))) || dComIfGs_isEventBit(0x6140)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -13116,7 +13111,7 @@ BOOL daAlink_c::checkItemAction() {
|
||||
|
||||
return checkCutAction();
|
||||
}
|
||||
} else if (checkFishingRodItem(mEquipItem) && mLinkAcch.i_ChkGroundHit()) {
|
||||
} else if (checkFishingRodItem(mEquipItem) && mLinkAcch.ChkGroundHit()) {
|
||||
if (checkNoResetFlg2(FLG2_UNK_20000000)) {
|
||||
return procFishingCastInit();
|
||||
}
|
||||
@@ -13148,7 +13143,7 @@ BOOL daAlink_c::checkItemAction() {
|
||||
}
|
||||
}
|
||||
|
||||
if (((dComIfGs_isEventBit(0x2908) || checkNoResetFlg3(FLG3_UNK_8)) && checkGuardActionChange() && !checkUpperReadyThrowAnime() && !checkModeFlg(0x70C52) && i_checkShieldGet() && !checkNotBattleStage()) && ((mLinkAcch.i_ChkGroundHit() || checkMagneBootsOn()) && dComIfGp_getRStatus() == 0)) {
|
||||
if (((dComIfGs_isEventBit(0x2908) || checkNoResetFlg3(FLG3_UNK_8)) && checkGuardActionChange() && !checkUpperReadyThrowAnime() && !checkModeFlg(0x70C52) && i_checkShieldGet() && !checkNotBattleStage()) && ((mLinkAcch.ChkGroundHit() || checkMagneBootsOn()) && dComIfGp_getRStatus() == 0)) {
|
||||
setRStatus(0x3A);
|
||||
|
||||
if (spActionTrigger()) {
|
||||
@@ -13759,7 +13754,7 @@ void daAlink_c::setItemAction() {
|
||||
|
||||
daPy_frameCtrl_c* frame_ctrl = &mUpperFrameCtrl[2];
|
||||
|
||||
if (!checkMagneBootsOn() && checkEquipHeavyBoots() && mLinkAcch.i_ChkGroundHit() && !checkModeFlg(0x70C52)) {
|
||||
if (!checkMagneBootsOn() && checkEquipHeavyBoots() && mLinkAcch.ChkGroundHit() && !checkModeFlg(0x70C52)) {
|
||||
if (dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) && daTagMagne_c::checkMagnetCode(mLinkAcch.m_gnd)) {
|
||||
onNoResetFlg0(FLG0_MAGNE_BOOTS_ON);
|
||||
setMagneBootsMtx(&mLinkAcch.m_gnd, 1);
|
||||
@@ -14681,7 +14676,7 @@ void daAlink_c::autoGroundHit() {
|
||||
cM3dGPla sp74;
|
||||
f32 temp_f30 = mLinkAcch.GetGroundH() - current.pos.y;
|
||||
|
||||
if (!mLinkAcch.i_ChkGroundHit()) {
|
||||
if (!mLinkAcch.ChkGroundHit()) {
|
||||
if (checkBoardRide() && shape_angle.x < 0) {
|
||||
return;
|
||||
}
|
||||
@@ -14912,7 +14907,7 @@ BOOL daAlink_c::checkRestartRoom() {
|
||||
startRestartRoom(5, 0xC9, 4, 0);
|
||||
return true;
|
||||
}
|
||||
} else if (mLinkAcch.i_ChkGroundHit() && field_0x2fbd == 2) {
|
||||
} else if (mLinkAcch.ChkGroundHit() && field_0x2fbd == 2) {
|
||||
return procCoLavaReturnInit(1);
|
||||
} else if ((checkModeFlg(0x40000) || (checkNoResetFlg0(FLG0_UNK_80) && mWaterY - current.pos.y > daAlinkHIO_swim_c0::m.mInitHeight)) && fopAcM_GetRoomNo(this) == 0 && checkStageName("F_SP114")) {
|
||||
return procCoSwimFreezeReturnInit();
|
||||
@@ -14935,7 +14930,7 @@ BOOL daAlink_c::checkRestartRoom() {
|
||||
var_f30 = 2000.0f;
|
||||
}
|
||||
|
||||
if ((field_0x3174 != 10 && ((temp_r28 && checkModeFlg(0x40000)) || (!temp_r28 && (checkModeFlg(2) || checkNoResetFlg3(FLG3_UNK_80000)) && mProcID != PROC_HOOKSHOT_FLY && !checkModeFlg(0x800) && var_f31 > var_f30))) || (field_0x3174 == 10 && var_f31 <= 3000.0f) || (checkSpinnerRide() && mRideAcKeep.getActor() != NULL && ((daSpinner_c*)mRideAcKeep.getActor())->checkGroundHit()) || (mLinkAcch.i_ChkGroundHit() && mProcID != PROC_HOOKSHOT_FLY)) {
|
||||
if ((field_0x3174 != 10 && ((temp_r28 && checkModeFlg(0x40000)) || (!temp_r28 && (checkModeFlg(2) || checkNoResetFlg3(FLG3_UNK_80000)) && mProcID != PROC_HOOKSHOT_FLY && !checkModeFlg(0x800) && var_f31 > var_f30))) || (field_0x3174 == 10 && var_f31 <= 3000.0f) || (checkSpinnerRide() && mRideAcKeep.getActor() != NULL && ((daSpinner_c*)mRideAcKeep.getActor())->checkGroundHit()) || (mLinkAcch.ChkGroundHit() && mProcID != PROC_HOOKSHOT_FLY)) {
|
||||
int var_r29;
|
||||
s8 var_r27;
|
||||
|
||||
@@ -14949,7 +14944,7 @@ BOOL daAlink_c::checkRestartRoom() {
|
||||
}
|
||||
|
||||
if (checkModeFlg(2)) {
|
||||
mLinkAcch.i_ClrGroundHit();
|
||||
mLinkAcch.ClrGroundHit();
|
||||
}
|
||||
} else {
|
||||
var_r29 = 0x3F;
|
||||
@@ -14984,7 +14979,7 @@ BOOL daAlink_c::checkRestartRoom() {
|
||||
|
||||
return true;
|
||||
}
|
||||
} else if ((mLinkAcch.i_ChkGroundHit() && (dKy_pol_argument_get(&mLinkAcch.m_gnd) & 0x80)) || (checkWaterPolygonUnder() && checkNoResetFlg0(FLG0_UNK_80) && (dKy_pol_argument_get(&mLinkAcch.m_wtr) & 0x80)) || (checkModeFlg(0x40) && field_0x33bc < field_0x33b8 && -1000000000.0f != field_0x33b8 && (field_0x2fc6 & 0x80)) || (field_0x2fbc == 6 && checkNoResetFlg0(FLG0_UNK_80) && checkWaterPolygonUnder() && mWaterY > (daAlinkHIO_basic_c0::m.mLavaDeathDepth + mLinkAcch.GetGroundH())) || (field_0x2fc5 == 6 && -1000000000.0f != field_0x33b8 && field_0x33bc < field_0x33b8 && checkModeFlg(0x40) && field_0x33b8 > (field_0x33d8 + daAlinkHIO_basic_c0::m.mLavaDeathDepth))) {
|
||||
} else if ((mLinkAcch.ChkGroundHit() && (dKy_pol_argument_get(&mLinkAcch.m_gnd) & 0x80)) || (checkWaterPolygonUnder() && checkNoResetFlg0(FLG0_UNK_80) && (dKy_pol_argument_get(&mLinkAcch.m_wtr) & 0x80)) || (checkModeFlg(0x40) && field_0x33bc < field_0x33b8 && -1000000000.0f != field_0x33b8 && (field_0x2fc6 & 0x80)) || (field_0x2fbc == 6 && checkNoResetFlg0(FLG0_UNK_80) && checkWaterPolygonUnder() && mWaterY > (daAlinkHIO_basic_c0::m.mLavaDeathDepth + mLinkAcch.GetGroundH())) || (field_0x2fc5 == 6 && -1000000000.0f != field_0x33b8 && field_0x33bc < field_0x33b8 && checkModeFlg(0x40) && field_0x33b8 > (field_0x33d8 + daAlinkHIO_basic_c0::m.mLavaDeathDepth))) {
|
||||
if (field_0x2fbc == 6 || (checkModeFlg(0x40) && field_0x2fc5 == 6)) {
|
||||
return procCoLavaReturnInit(0);
|
||||
}
|
||||
@@ -15046,7 +15041,7 @@ int daAlink_c::checkSceneChange(int exitID) {
|
||||
(mExitID & 0x8000 && checkModeFlg(2)))
|
||||
{
|
||||
if (field_0x3174 == 5 || (mExitID & 0x8000 && mExitDirection == 0xFF)) {
|
||||
mLinkAcch.i_ClrGroundHit();
|
||||
mLinkAcch.ClrGroundHit();
|
||||
}
|
||||
|
||||
if (checkNoResetFlg0(FLG0_UNK_4000)) {
|
||||
|
||||
@@ -545,7 +545,7 @@ int daAlink_c::procCanoeGetOff() {
|
||||
}
|
||||
|
||||
if (checkModeFlg(2)) {
|
||||
if (mLinkAcch.i_ChkGroundHit()) {
|
||||
if (mLinkAcch.ChkGroundHit()) {
|
||||
checkLandAction(0);
|
||||
} else if (speed.y < -gravity) {
|
||||
procFallInit(2, daAlinkHIO_smallJump_c0::m.mFallInterpolation);
|
||||
|
||||
@@ -293,7 +293,7 @@ void daAlink_c::decideCrawlDoStatus() {
|
||||
|
||||
/* 800F89E0-800F8A50 0F3320 0070+00 3/3 0/0 0/0 .text checkNotCrawlStand__9daAlink_cFP4cXyz */
|
||||
BOOL daAlink_c::checkNotCrawlStand(cXyz* param_0) {
|
||||
mLinkRoofChk.i_SetPos(*param_0);
|
||||
mLinkRoofChk.SetPos(*param_0);
|
||||
return dComIfG_Bgsp().RoofChk(&mLinkRoofChk) - current.pos.y <= field_0x598;
|
||||
}
|
||||
|
||||
|
||||
@@ -295,7 +295,7 @@ int daAlink_c::checkPolyDamage() {
|
||||
}
|
||||
|
||||
int var_r29;
|
||||
if (!checkBoardRide() && mLinkAcch.i_ChkGroundHit()) {
|
||||
if (!checkBoardRide() && mLinkAcch.ChkGroundHit()) {
|
||||
if (dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) && (dKy_pol_argument_get(&mLinkAcch.m_gnd) & 0x60)) {
|
||||
var_r29 = 1;
|
||||
if (checkIcePolygonDamage(&mLinkAcch.m_gnd)) {
|
||||
@@ -545,7 +545,7 @@ BOOL daAlink_c::checkDamageAction() {
|
||||
seStartOnlyReverb(Z2SE_AL_DAMAGE_NORMAL);
|
||||
}
|
||||
} else {
|
||||
if (!checkModeFlg(0x40000) && ((sp2C & 0x40) || (!mLinkAcch.i_ChkGroundHit() && (sp28 == 3 || sp28 == 4)))) {
|
||||
if (!checkModeFlg(0x40000) && ((sp2C & 0x40) || (!mLinkAcch.ChkGroundHit() && (sp28 == 3 || sp28 == 4)))) {
|
||||
dComIfGp_getVibration().StartShock(2, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
|
||||
|
||||
int sp24;
|
||||
@@ -730,7 +730,7 @@ BOOL daAlink_c::checkDamageAction() {
|
||||
} else if (!armor_no_dmg) {
|
||||
return procSwimDamageInit(var_r29);
|
||||
}
|
||||
} else if (dmg == 0 && !checkWolf() && (at_spl == 10 || at_spl == 11 || at_spl == 9) && mLinkAcch.i_ChkGroundHit() && !checkModeFlg(0x70C52)) {
|
||||
} else if (dmg == 0 && !checkWolf() && (at_spl == 10 || at_spl == 11 || at_spl == 9) && mLinkAcch.ChkGroundHit() && !checkModeFlg(0x70C52)) {
|
||||
return procGuardBreakInit();
|
||||
} else if (checkHugeAttack(at_spl)) {
|
||||
return procCoLargeDamageInit(-1, 0, 0, 0, var_r29, 0);
|
||||
@@ -1197,7 +1197,7 @@ int daAlink_c::procCoLargeDamage() {
|
||||
setFallVoice();
|
||||
}
|
||||
|
||||
if ((mLinkAcch.i_ChkGroundHit() || checkEndResetFlg2(ERFLG2_UNK_100)) && !checkBoarSingleBattle()) {
|
||||
if ((mLinkAcch.ChkGroundHit() || checkEndResetFlg2(ERFLG2_UNK_100)) && !checkBoarSingleBattle()) {
|
||||
if (checkWolf()) {
|
||||
procWolfLargeDamageUpInit(field_0x3198, mProcVar1.field_0x300a, field_0x3080, field_0x3082);
|
||||
} else {
|
||||
@@ -1669,7 +1669,7 @@ int daAlink_c::procCoElecDamageInit(fopAc_ac_c* param_0, dCcD_GObjInf* param_1,
|
||||
|
||||
daAlink_ANM var_r29;
|
||||
daAlink_WANM var_r28;
|
||||
if ((mLinkAcch.i_ChkGroundHit() && !temp_r27) || checkMagneBootsOn()) {
|
||||
if ((mLinkAcch.ChkGroundHit() && !temp_r27) || checkMagneBootsOn()) {
|
||||
if (mEquipItem == fpcNm_ITEM_IRONBALL) {
|
||||
setIronBallWaitUpperAnime(1);
|
||||
}
|
||||
|
||||
@@ -1286,7 +1286,7 @@ BOOL daAlink_c::checkDeadHP() {
|
||||
BOOL daAlink_c::checkDeadAction(int param_0) {
|
||||
if (!checkEventRun()) {
|
||||
if (checkDeadHP() && mProcID != PROC_HORSE_RIDE && mProcID != PROC_HORSE_GETOFF && mProcID != PROC_LARGE_DAMAGE && mProcID != PROC_LARGE_DAMAGE_WALL && (param_0 || (mProcID != PROC_LARGE_DAMAGE_UP && mProcID != PROC_WOLF_LARGE_DAMAGE_UP))) {
|
||||
if (mLinkAcch.i_ChkGroundHit() || checkModeFlg(0x40000) || checkBoarRide() || (checkHorseRide() && !dComIfGp_getHorseActor()->checkJump())) {
|
||||
if (mLinkAcch.ChkGroundHit() || checkModeFlg(0x40000) || checkBoarRide() || (checkHorseRide() && !dComIfGp_getHorseActor()->checkJump())) {
|
||||
return procCoDeadInit(1);
|
||||
}
|
||||
|
||||
|
||||
@@ -318,7 +318,7 @@ void daAlink_c::setEffect() {
|
||||
setElecDamageEffect();
|
||||
}
|
||||
|
||||
if (checkMagneBootsOn() || (checkEquipHeavyBoots() && mLinkAcch.i_ChkGroundHit() &&
|
||||
if (checkMagneBootsOn() || (checkEquipHeavyBoots() && mLinkAcch.ChkGroundHit() &&
|
||||
dComIfG_Bgsp().GetMagnetCode(mLinkAcch.m_gnd) == 2))
|
||||
{
|
||||
if (!checkMagneBootsOn() && !checkNoResetFlg3(FLG3_UNK_1)) {
|
||||
@@ -543,7 +543,7 @@ void daAlink_c::setEffect() {
|
||||
}
|
||||
|
||||
f32 temp_f30 = field_0x3798.absXZ(current.pos);
|
||||
if ((!checkModeFlg(0x70C52) && (mLinkAcch.i_ChkGroundHit() || checkMagneBootsOn())) ||
|
||||
if ((!checkModeFlg(0x70C52) && (mLinkAcch.ChkGroundHit() || checkMagneBootsOn())) ||
|
||||
mProcID == PROC_SUMOU_WIN_LOSE || (checkBoardRide() && !checkModeFlg(2)) ||
|
||||
mProcID == PROC_WOLF_TAG_JUMP)
|
||||
{
|
||||
|
||||
@@ -2351,7 +2351,7 @@ int daAlink_c::procGoatCatch() {
|
||||
return procWaitInit();
|
||||
}
|
||||
|
||||
if (!mLinkAcch.i_ChkGroundHit() && mProcVar5.field_0x3012 == 0 && (!checkMagneBootsOn() || !checkNoResetFlg0(FLG0_UNK_2000))) {
|
||||
if (!mLinkAcch.ChkGroundHit() && mProcVar5.field_0x3012 == 0 && (!checkMagneBootsOn() || !checkNoResetFlg0(FLG0_UNK_2000))) {
|
||||
setGoatStopGameFail(temp_r3);
|
||||
return 1;
|
||||
}
|
||||
@@ -2415,7 +2415,7 @@ int daAlink_c::procGoatCatch() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!doButton() || (!mLinkAcch.i_ChkGroundHit() && (!checkMagneBootsOn() || !checkNoResetFlg0(FLG0_UNK_2000))) || field_0x3198 > 0 && mNormalSpeed >= 30.0f) {
|
||||
if (!doButton() || (!mLinkAcch.ChkGroundHit() && (!checkMagneBootsOn() || !checkNoResetFlg0(FLG0_UNK_2000))) || field_0x3198 > 0 && mNormalSpeed >= 30.0f) {
|
||||
|
||||
if (checkMagneBootsOn()) {
|
||||
cancelMagneBootsOn();
|
||||
|
||||
@@ -99,7 +99,7 @@ BOOL daAlink_c::hangMoveBgCheck(s16 param_0, cXyz* param_1) {
|
||||
|
||||
/* 800FA338-800FA5C8 0F4C78 0290+00 3/3 0/0 0/0 .text changeHangMoveProc__9daAlink_cFi */
|
||||
BOOL daAlink_c::changeHangMoveProc(int i_direction) {
|
||||
if (!mLinkAcch.i_ChkGroundHit() || !dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) {
|
||||
if (!mLinkAcch.ChkGroundHit() || !dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1792,7 +1792,7 @@ void daAlink_c::changeClimbMoveProc(int param_0) {
|
||||
if (field_0x2f98 == DIR_FORWARD || field_0x2f98 == DIR_BACKWARD) {
|
||||
cXyz sp44(current.pos.x - cM_ssin(shape_angle.y) * 15.0f, current.pos.y + field_0x598,
|
||||
current.pos.z - cM_scos(shape_angle.y) * 15.0f);
|
||||
mLinkRoofChk.i_SetPos(sp44);
|
||||
mLinkRoofChk.SetPos(sp44);
|
||||
|
||||
f32 roof_y = dComIfG_Bgsp().RoofChk(&mLinkRoofChk);
|
||||
if (field_0x2f98 == DIR_FORWARD && roof_y < sp44.y + 110.0f &&
|
||||
@@ -1886,7 +1886,7 @@ int daAlink_c::setMoveBGClimbCorrect() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (mLinkAcch.i_ChkGroundHit()) {
|
||||
if (mLinkAcch.ChkGroundHit()) {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
}
|
||||
|
||||
@@ -1961,7 +1961,7 @@ int daAlink_c::checkBgCorrectClimbMove(cXyz* i_startPos, cXyz* i_endPos) {
|
||||
BOOL daAlink_c::checkClimbRoof(f32 param_0) {
|
||||
cXyz sp44(current.pos.x - cM_ssin(shape_angle.y) * 30.0f, param_0 - 30.0f,
|
||||
current.pos.z - cM_scos(shape_angle.y) * 30.0f);
|
||||
mLinkRoofChk.i_SetPos(sp44);
|
||||
mLinkRoofChk.SetPos(sp44);
|
||||
|
||||
if (dComIfG_Bgsp().RoofChk(&mLinkRoofChk) < param_0 + 30.0f &&
|
||||
dComIfG_Bgsp().GetMonkeyBarsCode(mLinkRoofChk))
|
||||
@@ -2049,7 +2049,7 @@ BOOL daAlink_c::checkBgClimbMove(int i_direction) {
|
||||
|
||||
sp8C.set(var_f26 + (current.pos.x + var_f31), current.pos.y,
|
||||
var_f25 + (current.pos.z + var_f30));
|
||||
mLinkRoofChk.i_SetPos(sp8C);
|
||||
mLinkRoofChk.SetPos(sp8C);
|
||||
|
||||
f32 var_f29 = dComIfG_Bgsp().RoofChk(&mLinkRoofChk) - field_0x598;
|
||||
if (var_f29 < current.pos.y) {
|
||||
@@ -2058,7 +2058,7 @@ BOOL daAlink_c::checkBgClimbMove(int i_direction) {
|
||||
|
||||
sp8C.set(var_f26 + (current.pos.x - var_f31), current.pos.y,
|
||||
var_f25 + (current.pos.z - var_f30));
|
||||
mLinkRoofChk.i_SetPos(sp8C);
|
||||
mLinkRoofChk.SetPos(sp8C);
|
||||
|
||||
var_f29 = dComIfG_Bgsp().RoofChk(&mLinkRoofChk) - field_0x598;
|
||||
if (var_f29 < current.pos.y) {
|
||||
@@ -2597,7 +2597,7 @@ int daAlink_c::procClimbToRoof() {
|
||||
|
||||
cXyz sp38(current.pos.x + cM_ssin(shape_angle.y) * 95.0f, current.pos.y,
|
||||
current.pos.z + cM_scos(shape_angle.y) * 95.0f);
|
||||
mLinkRoofChk.i_SetPos(sp38);
|
||||
mLinkRoofChk.SetPos(sp38);
|
||||
|
||||
sp38.y = dComIfG_Bgsp().RoofChk(&mLinkRoofChk);
|
||||
if (sp38.y < current.pos.y + 214.0f + 110.0f) {
|
||||
@@ -2644,7 +2644,7 @@ int daAlink_c::checkRoofHangMovePos() {
|
||||
|
||||
cXyz sp38(current.pos.x + cM_ssin(angle) * 60.0f, (current.pos.y + 214.0f) - 10.0f,
|
||||
current.pos.z + cM_scos(angle) * 60.0f);
|
||||
mLinkRoofChk.i_SetPos(sp38);
|
||||
mLinkRoofChk.SetPos(sp38);
|
||||
|
||||
if (dComIfG_Bgsp().RoofChk(&mLinkRoofChk) < sp38.y + 50.0f) {
|
||||
if (dComIfG_Bgsp().GetMonkeyBarsCode(mLinkRoofChk)) {
|
||||
@@ -2669,7 +2669,7 @@ int daAlink_c::commonRoofHangProc() {
|
||||
}
|
||||
|
||||
cXyz sp28(current.pos.x, (current.pos.y + 214.0f) - 10.0f, current.pos.z);
|
||||
mLinkRoofChk.i_SetPos(sp28);
|
||||
mLinkRoofChk.SetPos(sp28);
|
||||
|
||||
f32 roof_y = dComIfG_Bgsp().RoofChk(&mLinkRoofChk);
|
||||
if (roof_y < sp28.y + 50.0f && dComIfG_Bgsp().GetMonkeyBarsCode(mLinkRoofChk) &&
|
||||
|
||||
@@ -1648,7 +1648,7 @@ int daAlink_c::procHorseGetOff() {
|
||||
} else {
|
||||
field_0x2f99 = 7;
|
||||
|
||||
if (mLinkAcch.i_ChkGroundHit()) {
|
||||
if (mLinkAcch.ChkGroundHit()) {
|
||||
horseGetOffEnd();
|
||||
return procLandInit(0.0f);
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ int daAlink_c::boardCommon(BOOL i_canMove) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!checkSnowCode() && mLinkAcch.i_ChkGroundHit() && !checkModeFlg(2)) {
|
||||
if (!checkSnowCode() && mLinkAcch.ChkGroundHit() && !checkModeFlg(2)) {
|
||||
setJumpMode();
|
||||
procBackJumpInit(0);
|
||||
|
||||
@@ -71,7 +71,7 @@ int daAlink_c::boardCommon(BOOL i_canMove) {
|
||||
}
|
||||
|
||||
s16 var_r27;
|
||||
if (mLinkAcch.i_ChkGroundHit() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) {
|
||||
if (mLinkAcch.ChkGroundHit() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) {
|
||||
cM3dGPla poly;
|
||||
dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &poly);
|
||||
|
||||
@@ -115,11 +115,11 @@ int daAlink_c::boardCommon(BOOL i_canMove) {
|
||||
}
|
||||
|
||||
if (checkZeroSpeedF() && temp_r26 > 0x7000 && mProcID == PROC_BOARD_WAIT && !checkModeFlg(2)) {
|
||||
if (mProcVar3.field_0x300e <= 910.0f && checkUnderMove0BckNoArc(ANM_RIDE_WAIT) && mLinkAcch.i_ChkGroundHit()) {
|
||||
if (mProcVar3.field_0x300e <= 910.0f && checkUnderMove0BckNoArc(ANM_RIDE_WAIT) && mLinkAcch.ChkGroundHit()) {
|
||||
return procBoardTurnInit();
|
||||
}
|
||||
}
|
||||
} else if (temp_r26 < 0x2000 && field_0x2f8c == 0xB && mProcID == PROC_BOARD_WAIT && !checkModeFlg(2) && mLinkAcch.i_ChkGroundHit() && (mProcVar3.field_0x300e < field_0x3122) && (checkUnderMove0BckNoArc(ANM_RIDE_WAIT) || checkUnderMove0BckNoArc(ANM_RIDE_FRONT))) {
|
||||
} else if (temp_r26 < 0x2000 && field_0x2f8c == 0xB && mProcID == PROC_BOARD_WAIT && !checkModeFlg(2) && mLinkAcch.ChkGroundHit() && (mProcVar3.field_0x300e < field_0x3122) && (checkUnderMove0BckNoArc(ANM_RIDE_WAIT) || checkUnderMove0BckNoArc(ANM_RIDE_FRONT))) {
|
||||
if (mNormalSpeed <= daAlinkHIO_board_c0::m.mMaxPushSpeed) {
|
||||
return procBoardRowInit();
|
||||
}
|
||||
@@ -159,7 +159,7 @@ int daAlink_c::boardCommon(BOOL i_canMove) {
|
||||
shape_angle.z = field_0x2fee >> 1;
|
||||
mBodyAngle.z = shape_angle.z;
|
||||
|
||||
if (mLinkAcch.i_ChkGroundHit() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) {
|
||||
if (mLinkAcch.ChkGroundHit() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) {
|
||||
if (checkModeFlg(2)) {
|
||||
offModeFlg(2);
|
||||
speed.y = 0.0f;
|
||||
@@ -499,7 +499,7 @@ int daAlink_c::procBoardRow() {
|
||||
daPy_frameCtrl_c* frame_ctrl = &mUnderFrameCtrl[0];
|
||||
|
||||
if (frame_ctrl->checkPass(0.0f)) {
|
||||
if (checkInputOnR() && abs(mStickAngle) < 0x2000 && !checkModeFlg(2) && mLinkAcch.i_ChkGroundHit() && mProcVar3.field_0x300e < field_0x3122 && mNormalSpeed <= daAlinkHIO_board_c0::m.mMaxPushSpeed) {
|
||||
if (checkInputOnR() && abs(mStickAngle) < 0x2000 && !checkModeFlg(2) && mLinkAcch.ChkGroundHit() && mProcVar3.field_0x300e < field_0x3122 && mNormalSpeed <= daAlinkHIO_board_c0::m.mMaxPushSpeed) {
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
} else {
|
||||
setCommonBoardAnime(FALSE);
|
||||
|
||||
@@ -275,7 +275,7 @@ void daAlink_c::setIronBallChainPos() {
|
||||
sp274 = mIronBallBgChkPos;
|
||||
field_0x0778->CrrPos(dComIfG_Bgsp());
|
||||
|
||||
if (field_0x0778->i_ChkGroundHit()) {
|
||||
if (field_0x0778->ChkGroundHit()) {
|
||||
*mIronBallChainPos += mIronBallBgChkPos - sp274;
|
||||
}
|
||||
|
||||
@@ -679,8 +679,8 @@ void daAlink_c::setIronBallPos() {
|
||||
mZ2Link.startHitItemSE(Z2SE_HIT_HAMMER, var_r29, mpHookSound, var_f31);
|
||||
}
|
||||
|
||||
if (field_0x0778->ChkWallHit() || field_0x0778->i_ChkGroundHit() || field_0x0778->ChkRoofHit() || (mItemVar0.field_0x3018 == 5 && (var_r26 != 0 || mItemMode > var_r23))) {
|
||||
if (field_0x0778->ChkWallHit() || field_0x0778->i_ChkGroundHit() || field_0x0778->ChkRoofHit()) {
|
||||
if (field_0x0778->ChkWallHit() || field_0x0778->ChkGroundHit() || field_0x0778->ChkRoofHit() || (mItemVar0.field_0x3018 == 5 && (var_r26 != 0 || mItemMode > var_r23))) {
|
||||
if (field_0x0778->ChkWallHit() || field_0x0778->ChkGroundHit() || field_0x0778->ChkRoofHit()) {
|
||||
*mIronBallChainPos += mIronBallBgChkPos - sp10C;
|
||||
|
||||
if (field_0x0778->ChkWallHit()) {
|
||||
@@ -692,7 +692,7 @@ void daAlink_c::setIronBallPos() {
|
||||
}
|
||||
}
|
||||
|
||||
if (field_0x0778->i_ChkGroundHit()) {
|
||||
if (field_0x0778->ChkGroundHit()) {
|
||||
field_0x3848->x *= 0.5f;
|
||||
field_0x3848->z *= 0.5f;
|
||||
|
||||
@@ -787,7 +787,7 @@ void daAlink_c::setIronBallPos() {
|
||||
|
||||
if (mItemVar0.field_0x3018 == 4) {
|
||||
field_0x0778->CrrPos(dComIfG_Bgsp());
|
||||
if (field_0x0778->i_ChkGroundHit() || field_0x0778->ChkRoofHit() || field_0x0778->ChkWallHit()) {
|
||||
if (field_0x0778->ChkGroundHit() || field_0x0778->ChkRoofHit() || field_0x0778->ChkWallHit()) {
|
||||
mItemVar0.field_0x3018 = 8;
|
||||
dComIfGp_getVibration().StartShock(4, 1, cXyz(0.0f, 1.0f, 0.0f));
|
||||
}
|
||||
|
||||
@@ -393,7 +393,7 @@ int daAlink_c::procKandelaarSwingInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if ((mLinkAcch.i_ChkGroundHit() && getMoveBGActorName(mLinkAcch.m_gnd, FALSE) == PROC_OBJ_WEB1) ||
|
||||
if ((mLinkAcch.ChkGroundHit() && getMoveBGActorName(mLinkAcch.m_gnd, FALSE) == PROC_OBJ_WEB1) ||
|
||||
(checkStageName("F_SP108") &&
|
||||
fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchTagKtOnFire, NULL) != NULL))
|
||||
{
|
||||
|
||||
@@ -1615,7 +1615,7 @@ int daAlink_c::procRollJumpInit() {
|
||||
shape_angle.y = field_0x30ee;
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
mLinkAcch.i_ClrGroundHit();
|
||||
mLinkAcch.ClrGroundHit();
|
||||
field_0x347c = 0.0f;
|
||||
shape_angle.x = 1;
|
||||
|
||||
@@ -2139,7 +2139,7 @@ int daAlink_c::procCoMetamorphose() {
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* temp_r29 = mUnderFrameCtrl;
|
||||
if (!mLinkAcch.i_ChkGroundHit()) {
|
||||
if (!mLinkAcch.ChkGroundHit()) {
|
||||
current.pos.y = field_0x3484;
|
||||
speed.y = 0.0f;
|
||||
} else {
|
||||
@@ -4338,7 +4338,7 @@ bool daAlink_c::acceptSubjectModeChange() {
|
||||
!checkEventRun() &&
|
||||
!checkModeFlg(0x310040) &&
|
||||
(checkNoUpperAnime() || checkHorseTiredAnime() || checkGrabAnime() || checkWolfGrabAnime()) &&
|
||||
!(checkWolf() && checkWolfWaitSlipPolygon() && mLinkAcch.i_ChkGroundHit());
|
||||
!(checkWolf() && checkWolfWaitSlipPolygon() && mLinkAcch.ChkGroundHit());
|
||||
}
|
||||
|
||||
/* 800CE628-800CE728 0C8F68 0100+00 5/5 0/0 0/0 .text checkSubjectAction__9daAlink_cFv */
|
||||
|
||||
@@ -1092,7 +1092,7 @@ void daAlink_c::setBlendWolfAtnMoveAnime(f32 param_0) {
|
||||
field_0x2fc1 = 0;
|
||||
|
||||
s16 var_r28;
|
||||
if (field_0x3174 == 8 || !mLinkAcch.i_ChkGroundHit()) {
|
||||
if (field_0x3174 == 8 || !mLinkAcch.ChkGroundHit()) {
|
||||
var_r28 = 0;
|
||||
} else {
|
||||
var_r28 = getGroundAngle(&mLinkAcch.m_gnd, current.angle.y);
|
||||
@@ -1754,7 +1754,7 @@ void daAlink_c::wolfBgCheck() {
|
||||
int i = 0;
|
||||
for (; i < 2; i++) {
|
||||
sp38.set(current.pos.x, current.pos.y + mAcchCir[2].GetWallH(), current.pos.z);
|
||||
if (mLinkAcch.i_ChkGroundHit()) {
|
||||
if (mLinkAcch.ChkGroundHit()) {
|
||||
sp38.y -= speed.y;
|
||||
}
|
||||
|
||||
@@ -1938,8 +1938,8 @@ void daAlink_c::wolfFootBgCheck() {
|
||||
mDoMtx_multVec(mpLinkModel->getAnmMtx(0x1F), &localFootOffset, &spE0);
|
||||
mDoMtx_multVec(mpLinkModel->getAnmMtx(0x24), &localFootOffset, &spEC);
|
||||
|
||||
BOOL sp28 = !mLinkAcch.i_ChkGroundHit() || checkModeFlg(0x78C52);
|
||||
BOOL sp24 = sp28 || (mLinkAcch.i_ChkGroundHit() && mSinkShapeOffset < 0.0f);
|
||||
BOOL sp28 = !mLinkAcch.ChkGroundHit() || checkModeFlg(0x78C52);
|
||||
BOOL sp24 = sp28 || (mLinkAcch.ChkGroundHit() && mSinkShapeOffset < 0.0f);
|
||||
|
||||
f32* sp20 = &spA0[0][0];
|
||||
cXyz* var_r26 = &spC8;
|
||||
@@ -5061,7 +5061,7 @@ int daAlink_c::getWolfTagJumpTime() const {
|
||||
|
||||
/* 80133EF0-80134000 12E830 0110+00 3/3 1/1 1/1 .text checkMidnaLockJumpPoint__9daAlink_cCFv */
|
||||
const cXyz* daAlink_c::checkMidnaLockJumpPoint() const {
|
||||
if ((!mLinkAcch.i_ChkGroundHit() && mProcID != PROC_WOLF_TAG_JUMP) || checkMidnaUseAbility() ||
|
||||
if ((!mLinkAcch.ChkGroundHit() && mProcID != PROC_WOLF_TAG_JUMP) || checkMidnaUseAbility() ||
|
||||
getMidnaActor()->eventInfo.checkCommandTalk())
|
||||
{
|
||||
return NULL;
|
||||
@@ -9285,7 +9285,7 @@ int daAlink_c::procWolfDig() {
|
||||
onEndResetFlg1(ERFLG1_WOLF_EYE_KEEP);
|
||||
|
||||
cXyz sp14(field_0x37c8);
|
||||
dComIfG_Bgsp().MoveBgCrrPos(mLinkAcch.m_gnd, mLinkAcch.i_ChkGroundHit(), &field_0x37c8, NULL, NULL, false, false);
|
||||
dComIfG_Bgsp().MoveBgCrrPos(mLinkAcch.m_gnd, mLinkAcch.ChkGroundHit(), &field_0x37c8, NULL, NULL, false, false);
|
||||
field_0x37d4 += field_0x37c8 - sp14;
|
||||
|
||||
if (mProcVar3.mDigChangeArea) {
|
||||
|
||||
@@ -605,7 +605,7 @@ void daB_DS_c::mSmokeSet() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
if (field_0x84d == 0 && mAcch.GetGroundH() != -1000000000.0f) {
|
||||
cXyz particle_scale(1.0f, 1.0f, 1.0f);
|
||||
cXyz particle_pos(current.pos);
|
||||
@@ -3617,7 +3617,7 @@ void daB_DS_c::executeBattle2Damage() {
|
||||
// fallthrough
|
||||
case 2:
|
||||
mCameraCenter = current.pos;
|
||||
if (!mAcch.i_ChkGroundHit() && current.pos.y - 100.0f > chk_pos.y) {
|
||||
if (!mAcch.ChkGroundHit() && current.pos.y - 100.0f > chk_pos.y) {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -1066,7 +1066,7 @@ static int core_chance(b_ob_class* i_this) {
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (i_this->mAcch.i_ChkGroundHit()) {
|
||||
if (i_this->mAcch.ChkGroundHit()) {
|
||||
if (i_this->mTimers[0] == 0) {
|
||||
i_this->mMode = 2;
|
||||
} else {
|
||||
|
||||
@@ -1214,7 +1214,7 @@ void daB_YO_c::executeOpening() {
|
||||
mActionTimer2 = 31;
|
||||
player->changeDemoMode(40, 0, 0, 0);
|
||||
}
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
mRoomType = 1;
|
||||
mColorMode = 4;
|
||||
mColBlend = 0.0f;
|
||||
@@ -2550,7 +2550,7 @@ void daB_YO_c::executeDeath() {
|
||||
case 6:
|
||||
mCamCenter.y = current.pos.y + 540.0f;
|
||||
cLib_chaseF(&speed.y, -100.0f, 10.0f);
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
dComIfGp_getVibration().StartQuake(8, 0x1f, cXyz(0.0f, 1.0f, 0.0f));
|
||||
mQuakeTimer = 30;
|
||||
speed.y = 0.0f;
|
||||
|
||||
+11
-11
@@ -2547,7 +2547,7 @@ void daB_ZANT_c::executeSimaJump() {
|
||||
cLib_addCalcAngleS(&shape_angle.y, fopAcM_searchPlayerAngleY(this), 8, 0x800, 0x80);
|
||||
|
||||
if (fopAcM_searchPlayerDistance(this) < 550.0f) {
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
mMode = 11;
|
||||
return;
|
||||
}
|
||||
@@ -2559,7 +2559,7 @@ void daB_ZANT_c::executeSimaJump() {
|
||||
}
|
||||
|
||||
if (mMode == 1) {
|
||||
if (mAcch.i_ChkGroundHit() && field_0x6ec == 0) {
|
||||
if (mAcch.ChkGroundHit() && field_0x6ec == 0) {
|
||||
setBck(ANM_JUMP_A, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
||||
mMode = 2;
|
||||
}
|
||||
@@ -2582,7 +2582,7 @@ void daB_ZANT_c::executeSimaJump() {
|
||||
mpModelMorf->setPlaySpeed(0.0f);
|
||||
}
|
||||
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
mSound.startCreatureSound(Z2SE_EN_ZAN_MG_LAND, 0, -1);
|
||||
mpModelMorf->setPlaySpeed(1.0f);
|
||||
mpModelMorf->setFrame(8.0f);
|
||||
@@ -2594,7 +2594,7 @@ void daB_ZANT_c::executeSimaJump() {
|
||||
field_0x6ec = 5;
|
||||
}
|
||||
|
||||
if (mAcch.i_ChkGroundHit() && mModeTimer == 0) {
|
||||
if (mAcch.ChkGroundHit() && mModeTimer == 0) {
|
||||
mMode = 11;
|
||||
}
|
||||
break;
|
||||
@@ -2765,7 +2765,7 @@ void daB_ZANT_c::executeIceJump() {
|
||||
mFoot2Cc[4].SetAtAtp(4);
|
||||
}
|
||||
} else {
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
field_0x70e = 1;
|
||||
mSound.startCreatureSound(Z2SE_EN_ZAN_YO_LAND_HUGE, 0, -1);
|
||||
dComIfGp_getVibration().StartShock(8, 31, cXyz(0.0f, 1.0f, 0.0f));
|
||||
@@ -3140,7 +3140,7 @@ void daB_ZANT_c::executeIceDamage() {
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
s16 sp8 = fopAcM_searchPlayerAngleY(this) + (4096.0f * cM_rndFX(4.9f)) + 32768.0f;
|
||||
|
||||
if (current.pos.absXZ() > 1200.0f) {
|
||||
@@ -3457,7 +3457,7 @@ void daB_ZANT_c::executeMonkey() {
|
||||
case 6:
|
||||
cLib_addCalcAngleS2(&shape_angle.y, cLib_targetAngleY(¤t.pos, &field_0x6ac), 8, 0x800);
|
||||
|
||||
if (mModeTimer == 0 && mAcch.i_ChkGroundHit()) {
|
||||
if (mModeTimer == 0 && mAcch.ChkGroundHit()) {
|
||||
setBck(ANM_LV1_JUMP_A, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
||||
mMode = 8;
|
||||
}
|
||||
@@ -3488,7 +3488,7 @@ void daB_ZANT_c::executeMonkey() {
|
||||
setBck(ANM_LB1_JUMP_B, J3DFrameCtrl::LOOP_ONCE_e, 3.0f, 1.0f);
|
||||
}
|
||||
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
current.pos = field_0x6ac;
|
||||
field_0x707 = 1;
|
||||
field_0x70a = field_0x709;
|
||||
@@ -3571,7 +3571,7 @@ void daB_ZANT_c::executeMonkeyFall() {
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
mSound.startCreatureSound(Z2SE_EN_ZAN_MK_UMARU, 0, -1);
|
||||
setMonkeyFallEffect();
|
||||
dComIfGp_getVibration().StartShock(3, 31, cXyz(0.0f, 1.0f, 0.0f));
|
||||
@@ -3858,7 +3858,7 @@ void daB_ZANT_c::executeLastStartDemo() {
|
||||
sp1C.set(0.0f, 90.0f, -900.0f);
|
||||
cLib_addCalcPos(&mDemoCamCenter, sp1C, 0.2f, 5.0f, 1.0f);
|
||||
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
speed.y = 0.0f;
|
||||
speedF = 0.0f;
|
||||
dComIfGp_getVibration().StartShock(4, 31, cXyz(0.0f, 1.0f, 0.0f));
|
||||
@@ -4148,7 +4148,7 @@ void daB_ZANT_c::executeLastAttack() {
|
||||
}
|
||||
|
||||
if (field_0x70b != 0) {
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
field_0x70b--;
|
||||
|
||||
if (field_0x70b != 0) {
|
||||
|
||||
@@ -159,7 +159,7 @@ void daB_ZANTM_c::executeSmall() {
|
||||
Z2GetAudioMgr()->seStartLevel(Z2SE_EN_ZAN_FIRE, ¤t.pos, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, false);
|
||||
cLib_chaseF(&field_0x5e8, 1.0f, 0.1f);
|
||||
|
||||
if (mAliveTimer == 0 || mAcch.ChkWallHit() || mAcch.i_ChkGroundHit()) {
|
||||
if (mAliveTimer == 0 || mAcch.ChkWallHit() || mAcch.ChkGroundHit()) {
|
||||
speed.z = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
speed.x = 0.0f;
|
||||
|
||||
@@ -1195,7 +1195,7 @@ static void do_hang(do_class* i_this) {
|
||||
|
||||
if (i_this->mTimer[0] == 0) {
|
||||
i_this->mBgS_Acch.CrrPos(dComIfG_Bgsp());
|
||||
if (i_this->mBgS_Acch.i_ChkGroundHit()) {
|
||||
if (i_this->mBgS_Acch.ChkGroundHit()) {
|
||||
i_this->current.angle.x = 0;
|
||||
anm_init(i_this, ANM_DOWN, 2.0f, 0, 2.0f);
|
||||
i_this->mMode = 6;
|
||||
@@ -1723,7 +1723,7 @@ static s8 do_boat(do_class* i_this) {
|
||||
break;
|
||||
|
||||
case 7:
|
||||
if (i_this->mBgS_Acch.i_ChkGroundHit()) {
|
||||
if (i_this->mBgS_Acch.ChkGroundHit()) {
|
||||
i_this->mAction = ACT_HELP;
|
||||
i_this->mMode = 0;
|
||||
_this->speedF = 0.0f;
|
||||
|
||||
@@ -914,7 +914,7 @@ void daE_PM_c::DemoAfterEscape() {
|
||||
¤t.angle, &scale, 0xff, NULL,
|
||||
-1, NULL, NULL, NULL);
|
||||
mCamCenterTarget.y = current.pos.y + 50.0f;
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
mCreatureSound.startCreatureSound(Z2SE_EN_PM_FN_L, 0, -1);
|
||||
mCreatureSound.startCreatureSound(Z2SE_EN_PM_FN_R, 0, -1);
|
||||
SetAnm(ANM_APPEAR02, J3DFrameCtrl::LOOP_ONCE_e, 5.0f, 1.0f);
|
||||
@@ -1286,7 +1286,7 @@ void daE_PM_c::DemoBossStart2() {
|
||||
}
|
||||
mCamCenterTarget.y = current.pos.y + 100.0f;
|
||||
|
||||
if (mAcch.i_ChkGroundHit() && mAnm == ANM_APPEAR01) {
|
||||
if (mAcch.ChkGroundHit() && mAnm == ANM_APPEAR01) {
|
||||
SetAnm(ANM_APPEAR02, J3DFrameCtrl::LOOP_ONCE_e, 5.0f, 1.0f);
|
||||
mCreatureSound.startCreatureSound(Z2SE_EN_PM_FN_L, 0, -1);
|
||||
mCreatureSound.startCreatureSound(Z2SE_EN_PM_FN_R, 0, -1);
|
||||
@@ -1503,7 +1503,7 @@ void daE_PM_c::DemoBossStart() {
|
||||
mDemoMode++;
|
||||
}
|
||||
|
||||
if (mAcch.i_ChkGroundHit() && mAnm == ANM_APPEAR01) {
|
||||
if (mAcch.ChkGroundHit() && mAnm == ANM_APPEAR01) {
|
||||
SetAnm(ANM_APPEAR02, J3DFrameCtrl::LOOP_ONCE_e, 5.0f, 1.0f);
|
||||
mCreatureSound.startCreatureSound(Z2SE_EN_PM_FN_L, 0, -1);
|
||||
mCreatureSound.startCreatureSound(Z2SE_EN_PM_FN_R, 0, -1);
|
||||
@@ -1613,7 +1613,7 @@ void daE_PM_c::BossEscapeAction() {
|
||||
cLib_addCalcAngleS2(¤t.angle.y, mTargetAngleY, 0x10, 0x1000);
|
||||
shape_angle.y = current.angle.y;
|
||||
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
SetAnm(ANM_APPEAR02, J3DFrameCtrl::LOOP_ONCE_e, 5.0f, 1.0f);
|
||||
mMode++;
|
||||
mCreatureSound.startCreatureSound(Z2SE_EN_PM_FN_L, 0, -1);
|
||||
@@ -1754,7 +1754,7 @@ void daE_PM_c::BossDamageAction() {
|
||||
cLib_addCalcAngleS2(¤t.angle.y, mTargetAngleY, 0x10, 0x1000);
|
||||
shape_angle.y = current.angle.y;
|
||||
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
SetAnm(ANM_APPEAR02, J3DFrameCtrl::LOOP_ONCE_e, 5.0f, 1.0f);
|
||||
mMode++;
|
||||
mCreatureSound.startCreatureSound(Z2SE_EN_PM_FN_L, 0, -1);
|
||||
@@ -2103,7 +2103,7 @@ void daE_PM_c::StartAction() {
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (mTimer[0] == 0 && mAcch.i_ChkGroundHit()) {
|
||||
if (mTimer[0] == 0 && mAcch.ChkGroundHit()) {
|
||||
SetAnm(ANM_APPEAR02, J3DFrameCtrl::LOOP_ONCE_e, 5.0f, 1.0f);
|
||||
mCreatureSound.startCreatureSound(Z2SE_EN_PM_FN_L, 0, -1);
|
||||
mCreatureSound.startCreatureSound(Z2SE_EN_PM_FN_R, 0, -1);
|
||||
|
||||
@@ -553,7 +553,7 @@ static void e_s1_roof(e_s1_class* i_this) {
|
||||
if (i_this->mTimers[0] == 0) {
|
||||
i_this->mDrawShadow = true;
|
||||
|
||||
if (i_this->mAcch.i_ChkGroundHit()) {
|
||||
if (i_this->mAcch.ChkGroundHit()) {
|
||||
anm_init(i_this, ANM_DOWN, 1.0f, J3DFrameCtrl::LOOP_ONCE_e, 1.0f);
|
||||
i_this->mMode = 4;
|
||||
i_this->mSound.startCreatureSound(Z2SE_EN_NS_DOSA, 0, -1);
|
||||
@@ -1211,7 +1211,7 @@ static void e_s1_warpappear(e_s1_class* i_this) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!i_this->mAcch.i_ChkGroundHit()) {
|
||||
if (!i_this->mAcch.ChkGroundHit()) {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -2626,7 +2626,7 @@ void daE_VA_c::executeOpaciDamage() {
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (mAcch.i_ChkGroundHit() || speed.y <= nREG_F(4) + -30.0f) {
|
||||
if (mAcch.ChkGroundHit() || speed.y <= nREG_F(4) + -30.0f) {
|
||||
setActionMode(ACTION_OPACI_CHASE_e, 0);
|
||||
}
|
||||
break;
|
||||
@@ -2697,7 +2697,7 @@ void daE_VA_c::executeOpaciChase() {
|
||||
field_0x1324 = 0;
|
||||
}
|
||||
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
field_0x1324 = 2;
|
||||
gravity = -5.0f;
|
||||
}
|
||||
@@ -3237,7 +3237,7 @@ void daE_VA_c::calcMagicMove() {
|
||||
mDoMtx_stack_c::multVecZero(&mMagicPos[i]);
|
||||
mMagicOldPos[i] = mMagicPos[i];
|
||||
|
||||
mMagicAcch[i].i_ClrGroundHit();
|
||||
mMagicAcch[i].ClrGroundHit();
|
||||
mMagicAcch[i].ClrWallHit();
|
||||
mMagicSphs[i].ClrAtHit();
|
||||
|
||||
@@ -3258,7 +3258,7 @@ void daE_VA_c::calcMagicMove() {
|
||||
mMagicSphs[i].SetR(50.0f);
|
||||
dComIfG_Ccsp()->Set(&mMagicSphs[i]);
|
||||
|
||||
if (mMagicAcch[i].i_ChkGroundHit() || mMagicAcch[i].ChkWallHit() ||
|
||||
if (mMagicAcch[i].ChkGroundHit() || mMagicAcch[i].ChkWallHit() ||
|
||||
mMagicSphs[i].ChkAtHit())
|
||||
{
|
||||
Z2GetAudioMgr()->seStart(Z2SE_EN_VA_FIRE_BURST, &mMagicPos[i], 0, 0, 1.0f, 1.0f,
|
||||
|
||||
@@ -2105,13 +2105,13 @@ void daHorse_c::setRoomInfo(int param_0) {
|
||||
|
||||
if (m_acch.ChkWaterHit() && m_acch.m_wtr.GetHeight() > current.pos.y) {
|
||||
m_poly_sound = dKy_pol_sound_get(&m_acch.m_wtr);
|
||||
} else if (m_acch.i_ChkGroundHit()) {
|
||||
} else if (m_acch.ChkGroundHit()) {
|
||||
m_poly_sound = dKy_pol_sound_get(&m_acch.m_gnd);
|
||||
} else {
|
||||
m_poly_sound = 0;
|
||||
}
|
||||
|
||||
if (m_acch.i_ChkGroundHit() && m_procID != PROC_LARGE_DAMAGE_e && m_procID != PROC_JUMP_e) {
|
||||
if (m_acch.ChkGroundHit() && m_procID != PROC_LARGE_DAMAGE_e && m_procID != PROC_JUMP_e) {
|
||||
savePos();
|
||||
}
|
||||
|
||||
@@ -2278,7 +2278,7 @@ void daHorse_c::setEffect() {
|
||||
sp40 |= 0x20000;
|
||||
}
|
||||
|
||||
if (m_acch.i_ChkGroundHit()) {
|
||||
if (m_acch.ChkGroundHit()) {
|
||||
field_0x17dc.setEffectFour(&tevStr,
|
||||
¤t.pos,
|
||||
sp44,
|
||||
@@ -2417,7 +2417,7 @@ void daHorse_c::setCollision() {
|
||||
void daHorse_c::autoGroundHit() {
|
||||
if (checkStateFlg0(FLG0_UNK_10) && m_procID != PROC_LARGE_DAMAGE_e && m_procID != PROC_JUMP_e) {
|
||||
f32 dist_to_ground = m_acch.GetGroundH() - current.pos.y;
|
||||
if (!m_acch.i_ChkGroundHit() && dist_to_ground < 0.0f && dist_to_ground >= -l_autoUpHeight) {
|
||||
if (!m_acch.ChkGroundHit() && dist_to_ground < 0.0f && dist_to_ground >= -l_autoUpHeight) {
|
||||
current.pos.y = m_acch.GetGroundH();
|
||||
m_acch.SetGroundHit();
|
||||
speed.y = 0.0f;
|
||||
@@ -2741,7 +2741,7 @@ void daHorse_c::footBgCheck() {
|
||||
}
|
||||
}
|
||||
|
||||
if (!m_acch.i_ChkGroundHit() || m_procID == PROC_TOOL_DEMO_e) {
|
||||
if (!m_acch.ChkGroundHit() || m_procID == PROC_TOOL_DEMO_e) {
|
||||
sp24 = 4;
|
||||
} else {
|
||||
f32 var_f30 = 1000.0f + current.pos.y;
|
||||
@@ -3632,7 +3632,7 @@ int daHorse_c::procMove() {
|
||||
speedF = daHorse_hio_c0::m.fastwalk_to_run_rate * m_normalMaxSpeedF;
|
||||
}
|
||||
|
||||
if (checkStateFlg0(daHorse_FLG0(FLG0_UNK_200000 | FLG0_UNK_100000)) && !m_acch.i_ChkGroundHit()) {
|
||||
if (checkStateFlg0(daHorse_FLG0(FLG0_UNK_200000 | FLG0_UNK_100000)) && !m_acch.ChkGroundHit()) {
|
||||
field_0x1768 = 350.0f;
|
||||
field_0x176c = 0.0f;
|
||||
field_0x1770 = field_0x1768;
|
||||
@@ -4068,7 +4068,7 @@ int daHorse_c::procJump() {
|
||||
field_0x1722--;
|
||||
}
|
||||
|
||||
if ((field_0x171c != 0) && ((speed.y < 0.0f && field_0x17d0.abs2XZ(current.pos) > field_0x1778) || field_0x1722 == 0) && m_acch.i_ChkGroundHit()) {
|
||||
if ((field_0x171c != 0) && ((speed.y < 0.0f && field_0x17d0.abs2XZ(current.pos) > field_0x1778) || field_0x1722 == 0) && m_acch.ChkGroundHit()) {
|
||||
return procLandInit(field_0x1774, field_0x1720);
|
||||
}
|
||||
|
||||
@@ -4289,7 +4289,7 @@ int daHorse_c::execute() {
|
||||
onStateFlg0(FLG0_UNK_200000);
|
||||
}
|
||||
|
||||
if (m_acch.i_ChkGroundHit()) {
|
||||
if (m_acch.ChkGroundHit()) {
|
||||
onStateFlg0(FLG0_UNK_10);
|
||||
} else {
|
||||
offStateFlg0(FLG0_UNK_10);
|
||||
@@ -4390,7 +4390,7 @@ int daHorse_c::execute() {
|
||||
speed.y = old_speed_y;
|
||||
}
|
||||
|
||||
if (checkStateFlg0(FLG0_UNK_1) && m_acch.i_ChkGroundHit() && checkStateFlg0(FLG0_UNK_2)) {
|
||||
if (checkStateFlg0(FLG0_UNK_1) && m_acch.ChkGroundHit() && checkStateFlg0(FLG0_UNK_2)) {
|
||||
if (!checkStateFlg0(FLG0_UNK_1000)) {
|
||||
dComIfGp_getVibration().StartQuake(VIBMODE_S_DOKUTT, 1, cXyz(0.0f, 1.0f, 0.0f));
|
||||
onStateFlg0(FLG0_UNK_1000);
|
||||
|
||||
@@ -937,7 +937,7 @@ BOOL daNbomb_c::procWait() {
|
||||
|
||||
f32 prev_speedf = speedF;
|
||||
|
||||
if (mAcch.i_ChkGroundHit() && !mAcch.ChkGroundLanding()) {
|
||||
if (mAcch.ChkGroundHit() && !mAcch.ChkGroundLanding()) {
|
||||
s16 var_r28 = fopAcM_getPolygonAngle(mAcch.m_gnd, current.angle.y);
|
||||
|
||||
speed.y -= speedF * fabsf(cM_ssin(var_r28));
|
||||
@@ -1009,12 +1009,12 @@ BOOL daNbomb_c::procWait() {
|
||||
setRoomInfo();
|
||||
|
||||
if (checkStateFlg0(FLG0_INSECT_BOMB) &&
|
||||
(mAcch.i_ChkGroundHit() || mAcch.ChkWallHit() || mAcch.ChkRoofHit()))
|
||||
(mAcch.ChkGroundHit() || mAcch.ChkWallHit() || mAcch.ChkRoofHit()))
|
||||
{
|
||||
return procExplodeInit();
|
||||
}
|
||||
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
cM3dGPla plane;
|
||||
dComIfG_Bgsp().GetTriPla(mAcch.m_gnd, &plane);
|
||||
|
||||
@@ -1047,7 +1047,7 @@ BOOL daNbomb_c::procWait() {
|
||||
speedF *= player->getBombBoundRate();
|
||||
current.angle.y = (var_r27 * 2) - (current.angle.y + 0x8000);
|
||||
mAcch.ClrGroundLanding();
|
||||
mAcch.i_ClrGroundHit();
|
||||
mAcch.ClrGroundHit();
|
||||
speed.y = prev_speedY;
|
||||
}
|
||||
}
|
||||
@@ -1083,7 +1083,7 @@ BOOL daNbomb_c::procWait() {
|
||||
}
|
||||
|
||||
fopAcM_seStartCurrent(this, Z2SE_OBJ_BOMB_BOUND, 0);
|
||||
} else if (mAcch.i_ChkGroundHit()) {
|
||||
} else if (mAcch.ChkGroundHit()) {
|
||||
cM3dGPla plane;
|
||||
dComIfG_Bgsp().GetTriPla(mAcch.m_gnd, &plane);
|
||||
|
||||
@@ -1275,7 +1275,7 @@ BOOL daNbomb_c::procInsectMove() {
|
||||
speed.y = field_0xbfc.y;
|
||||
speedF = field_0xbfc.absXZ();
|
||||
current.angle.y = field_0xbfc.atan2sX_Z();
|
||||
mAcch.i_ClrGroundHit();
|
||||
mAcch.ClrGroundHit();
|
||||
mAcch.ClrWallHit();
|
||||
mAcch.ClrRoofHit();
|
||||
mAcch.ClrRoofNone();
|
||||
@@ -1450,7 +1450,7 @@ int daNbomb_c::execute() {
|
||||
}
|
||||
|
||||
if ((mAcch.ChkWallHit() && daAlink_c::checkIcePolygonDamage(&mAcchCir)) ||
|
||||
(mAcch.i_ChkGroundHit() && daAlink_c::checkIcePolygonDamage(&mAcch.m_gnd)) ||
|
||||
(mAcch.ChkGroundHit() && daAlink_c::checkIcePolygonDamage(&mAcch.m_gnd)) ||
|
||||
(mAcch.ChkRoofHit() && daAlink_c::checkIcePolygonDamage(&mAcch.m_roof)))
|
||||
{
|
||||
setFreeze();
|
||||
@@ -1547,7 +1547,7 @@ int daNbomb_c::execute() {
|
||||
var_f27 = speedF;
|
||||
temp_r3 = current.angle.y;
|
||||
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
var_r27 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -752,7 +752,7 @@ static void ni_away(ni_class* i_this) {
|
||||
if (a_this->mDistToPlayer > l_HIO.mRecognizeRange + 50.0f) {
|
||||
a_this->mAction = ACTION_NORMAL_e;
|
||||
a_this->mMode = 0;
|
||||
} else if (a_this->mAcch.i_ChkGroundHit() &&
|
||||
} else if (a_this->mAcch.ChkGroundHit() &&
|
||||
(target != NULL || a_this->mDistToPlayer < l_HIO.mRecognizeRange - 100.0f))
|
||||
{
|
||||
anm_init(a_this, BCK_FLY, 1.0f, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f);
|
||||
@@ -780,7 +780,7 @@ static void ni_away(ni_class* i_this) {
|
||||
if (i_this->speed.y <= 0.0f) {
|
||||
i_this->gravity = l_HIO.mFleeJumpGravity;
|
||||
|
||||
if (a_this->mAcch.i_ChkGroundHit() || a_this->field_0x848 != 0) {
|
||||
if (a_this->mAcch.ChkGroundHit() || a_this->field_0x848 != 0) {
|
||||
a_this->mMode = 0;
|
||||
}
|
||||
}
|
||||
@@ -951,7 +951,7 @@ static void ni_fly(ni_class* i_this) {
|
||||
if (i_this->checkGold() && i_this->mTimers[0] == 0) {
|
||||
i_this->mAction = ACTION_RETURN_e;
|
||||
i_this->mMode = 0;
|
||||
} else if (i_this->mAcch.i_ChkGroundHit() || i_this->mAcch.ChkWallHit() ||
|
||||
} else if (i_this->mAcch.ChkGroundHit() || i_this->mAcch.ChkWallHit() ||
|
||||
i_this->field_0x848 != 0)
|
||||
{
|
||||
i_this->mAction = ACTION_DAMAGE_e;
|
||||
@@ -974,7 +974,7 @@ static void ni_drop(ni_class* i_this) {
|
||||
}
|
||||
|
||||
i_this->gravity = l_HIO.mFleeJumpGravity;
|
||||
if (i_this->mAcch.i_ChkGroundHit() || i_this->field_0x848 != 0) {
|
||||
if (i_this->mAcch.ChkGroundHit() || i_this->field_0x848 != 0) {
|
||||
i_this->mAction = ACTION_NORMAL_e;
|
||||
i_this->mMode = 0;
|
||||
}
|
||||
@@ -1337,7 +1337,7 @@ static int ni_play(ni_class* i_this) {
|
||||
i_this->gravity = -2.0f;
|
||||
}
|
||||
|
||||
if (i_this->mAcch.i_ChkGroundHit() || i_this->field_0x848) {
|
||||
if (i_this->mAcch.ChkGroundHit() || i_this->field_0x848) {
|
||||
i_this->mMode = 0;
|
||||
i_this->field_0xaf0 = 0.0f;
|
||||
}
|
||||
@@ -1916,7 +1916,7 @@ static void action(ni_class* i_this) {
|
||||
}
|
||||
|
||||
i_this->mAcch.CrrPos(dComIfG_Bgsp());
|
||||
if (i_this->mAcch.i_ChkGroundHit()) {
|
||||
if (i_this->mAcch.ChkGroundHit()) {
|
||||
a_this->home.pos.y = a_this->current.pos.y;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1631,7 +1631,7 @@ static BOOL npc_ne_home(npc_ne_class* i_this) {
|
||||
case 4:
|
||||
i_this->current.angle.x = 0x3000;
|
||||
target_speed = l_HIO.mRunSpeed;
|
||||
if (i_this->mTimers[1] == 0 && i_this->mAcch.i_ChkGroundHit()) {
|
||||
if (i_this->mTimers[1] == 0 && i_this->mAcch.ChkGroundHit()) {
|
||||
i_this->mMode = 1;
|
||||
anm_init(i_this, npc_ne_class::ANM_RUN, 2.0f, 2, 1.5f);
|
||||
}
|
||||
@@ -2114,7 +2114,7 @@ static void npc_ne_drop(npc_ne_class* i_this) {
|
||||
|
||||
case 1:
|
||||
i_this->current.angle.x = 0x3000;
|
||||
if (i_this->mAcch.i_ChkGroundHit()) {
|
||||
if (i_this->mAcch.ChkGroundHit()) {
|
||||
i_this->shape_angle.x = 0;
|
||||
i_this->current.angle.x = 0;
|
||||
i_this->mpMorf->setPlaySpeed(2.0f);
|
||||
@@ -2167,7 +2167,7 @@ static void npc_ne_s_drop(npc_ne_class* i_this) {
|
||||
} else {
|
||||
max_speed_step = target_speed = 2.0f;
|
||||
}
|
||||
if (i_this->mTimers[0] == 0 && i_this->mAcch.i_ChkGroundHit()) {
|
||||
if (i_this->mTimers[0] == 0 && i_this->mAcch.ChkGroundHit()) {
|
||||
anm_init(i_this, npc_ne_class::ANM_JUMP_END, 3.0f, 0, 1.0f);
|
||||
i_this->mpMorf->setFrame(4.0f);
|
||||
i_this->mMode++;
|
||||
|
||||
@@ -183,7 +183,7 @@ void daObjLv5Key_c::Fall(int param_0) {
|
||||
|
||||
OS_REPORT("FALL SPD = %f\n", speed.y);
|
||||
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
fopAcM_GetSpeed(this);
|
||||
fopAcM_SetSpeedF(this, 4.0f);
|
||||
fopAcM_SetSpeed(this, 0.0f, 22.0f, 0.0f);
|
||||
@@ -204,7 +204,7 @@ void daObjLv5Key_c::Fall(int param_0) {
|
||||
mAcch.CrrPos(dComIfG_Bgsp());
|
||||
current.pos.y = prev_y;
|
||||
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
setAction(&Land, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "d/actor/d_a_obj_bk_leaf.h"
|
||||
#include "d/actor/d_a_obj_carry.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
|
||||
/* 80BB60D8-80BB60F8 000078 0020+00 1/1 0/0 0/0 .text CheckCreateHeap__FP10fopAc_ac_c */
|
||||
static int CheckCreateHeap(fopAc_ac_c* i_this) {
|
||||
|
||||
+3650
-3054
File diff suppressed because it is too large
Load Diff
@@ -179,7 +179,7 @@ void daObjDAN_c::DamageAction() {
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
speed.y *= -0.5f;
|
||||
mAcch.ClrGroundLanding();
|
||||
mBounceCount++;
|
||||
|
||||
@@ -244,7 +244,7 @@ void daItem_c::CreateInit() {
|
||||
speed = old_speed;
|
||||
|
||||
mAcch.ClrGroundLanding();
|
||||
mAcch.i_ClrGroundHit();
|
||||
mAcch.ClrGroundHit();
|
||||
mAcch.ClrWaterHit();
|
||||
mAcch.ClrWaterIn();
|
||||
mAcch.ClrWallHit();
|
||||
@@ -726,7 +726,7 @@ void daItem_c::move_proc_call() {
|
||||
}
|
||||
|
||||
bool update_pos = true;
|
||||
if (mAcch.i_ChkGroundHit() && !mAcch.ChkGroundLanding() && !mAcch.ChkWallHit() &&
|
||||
if (mAcch.ChkGroundHit() && !mAcch.ChkGroundLanding() && !mAcch.ChkWallHit() &&
|
||||
!dComIfG_Bgsp().ChkMoveBG_NoDABg(mAcch.m_gnd) && !mCcCyl.ChkCoHit() &&
|
||||
mLastPos == current.pos)
|
||||
{
|
||||
@@ -1040,7 +1040,7 @@ int daItem_c::itemActionForHeart() {
|
||||
|
||||
mAcch.CrrPos(dComIfG_Bgsp());
|
||||
|
||||
if (mAcch.ChkGroundLanding() || mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundLanding() || mAcch.ChkGroundHit()) {
|
||||
clrFlag(FLAG_UNK_2_e);
|
||||
shape_angle.z = 0;
|
||||
fopAcM_SetSpeed(this, 0.0f, -1.0f, 0.0f);
|
||||
@@ -1059,7 +1059,7 @@ int daItem_c::itemActionForArrow() {
|
||||
mAcch.CrrPos(dComIfG_Bgsp());
|
||||
bg_check();
|
||||
|
||||
if (mAcch.i_ChkGroundHit() && !mAcch.ChkGroundLanding()) {
|
||||
if (mAcch.ChkGroundHit() && !mAcch.ChkGroundLanding()) {
|
||||
fopAcM_SetSpeedF(this, 0.0f);
|
||||
RotateYBase();
|
||||
}
|
||||
|
||||
@@ -212,7 +212,7 @@ void daObjLife_c::bg_check() {
|
||||
fopAcM_seStart(this, Z2SE_OBJ_KEY_BOUND, fabsf(mPrevSpeed.y) * 2.0f);
|
||||
}
|
||||
|
||||
if (mGndLandCount >= 2 || (!mAcch.ChkGroundLanding() && mAcch.i_ChkGroundHit())) {
|
||||
if (mGndLandCount >= 2 || (!mAcch.ChkGroundLanding() && mAcch.ChkGroundHit())) {
|
||||
endEffect02();
|
||||
}
|
||||
}
|
||||
@@ -252,7 +252,7 @@ int daObjLife_c::actionWait() {
|
||||
fopAcM_posMoveF(this, mCcStts.GetCCMoveP());
|
||||
mAcch.CrrPos(dComIfG_Bgsp());
|
||||
|
||||
if (mAcch.ChkGroundLanding() || mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundLanding() || mAcch.ChkGroundHit()) {
|
||||
fopAcM_SetSpeed(this, 0.0f, -1.0f, 0.0f);
|
||||
fopAcM_SetSpeedF(this, 0.0f);
|
||||
} else if (speed.y < 0.0f) {
|
||||
@@ -270,7 +270,7 @@ int daObjLife_c::actionWait() {
|
||||
mAcch.CrrPos(dComIfG_Bgsp());
|
||||
bg_check();
|
||||
|
||||
if (mAcch.i_ChkGroundHit()) {
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
speedF *= 0.9f;
|
||||
if (speedF < 1.0f) {
|
||||
speedF = 0.0f;
|
||||
|
||||
@@ -1117,7 +1117,7 @@ int daObjMovebox::Act_c::Execute(Mtx** param_0) {
|
||||
if (mCcCyl.ChkTgHit() && hit_obj != NULL) {
|
||||
if (!hit_obj->ChkAtType(AT_TYPE_LANTERN_SWING) && hit_obj->GetAtMtrl() == dCcD_MTRL_FIRE) {
|
||||
u32 params;
|
||||
daObjBurnBox_c::make_prm_burnbox(¶ms, 1);
|
||||
daObjBurnBox_c::make_prm_burnBox(¶ms, 1);
|
||||
|
||||
fopAcM_createChild(PROC_Obj_BurnBox, fopAcM_GetID(this), params, ¤t.pos,
|
||||
fopAcM_GetRoomNo(this), &shape_angle, &scale, -1, NULL);
|
||||
|
||||
@@ -98,7 +98,7 @@ int daObj_SSItem_c::Execute() {
|
||||
setParam();
|
||||
if (field_0xAFC != 0) {
|
||||
mAcch.ClrWallHit();
|
||||
mAcch.i_ClrGroundHit();
|
||||
mAcch.ClrGroundHit();
|
||||
speedF = 0.0f;
|
||||
speed.set(0.0f, 0.0f, 0.0f);
|
||||
} else {
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "d/actor/d_a_obj_swBallA.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/actor/d_a_obj_carry.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "dol2asm.h"
|
||||
#include "d/d_lib.h"
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "d/actor/d_a_obj_swBallB.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/actor/d_a_obj_carry.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "dol2asm.h"
|
||||
#include "d/d_lib.h"
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "d/actor/d_a_obj_swBallB.h"
|
||||
#include "d/actor/d_a_obj_carry.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_meter2_info.h"
|
||||
#include "d/d_item.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
|
||||
@@ -141,7 +141,7 @@ int daObj_YBag_c::Execute() {
|
||||
gravity = daObj_YBag_Param_c::m[1];
|
||||
if (local_8c != 0) {
|
||||
mAcch.ClrWallHit();
|
||||
mAcch.i_ClrGroundHit();
|
||||
mAcch.ClrGroundHit();
|
||||
mAcch.SetWallNone();
|
||||
mAcch.SetGrndNone();
|
||||
speed.setall(0.0f);
|
||||
@@ -191,7 +191,7 @@ int daObj_YBag_c::Execute() {
|
||||
current.pos.y + daObj_YBag_Param_c::m[10])
|
||||
{
|
||||
field_0x9dc.y = 0x100;
|
||||
mAcch.i_ClrGroundHit();
|
||||
mAcch.ClrGroundHit();
|
||||
field_0xa31 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -272,7 +272,7 @@ static void sq_fly(sq_class* i_this) {
|
||||
}
|
||||
|
||||
cLib_addCalc2(&i_this->speedF, l_HIO.mFallSpeedXZ, 1.0f, 10.0f);
|
||||
if (i_this->mAcch.i_ChkGroundHit()) {
|
||||
if (i_this->mAcch.ChkGroundHit()) {
|
||||
i_this->mAction = sq_class::ACT_NORMAL;
|
||||
i_this->mMode = -1;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
#include "d/actor/d_a_obj_carry.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_lib.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
|
||||
@@ -1831,7 +1831,7 @@ void daTbox_c::mode_exec() {
|
||||
if (field_0x97c) {
|
||||
mAcch.CrrPos(dComIfG_Bgsp());
|
||||
} else {
|
||||
mAcch.i_ClrGroundHit();
|
||||
mAcch.ClrGroundHit();
|
||||
}
|
||||
|
||||
attention_info.position = current.pos;
|
||||
|
||||
+30
-29
@@ -103,11 +103,12 @@ void dBgS_Acch::Set(cXyz* i_pos, cXyz* i_old_pos, fopAc_ac_c* i_actor, int i_tbl
|
||||
pm_pos = i_pos;
|
||||
pm_old_pos = i_old_pos;
|
||||
|
||||
JUT_ASSERT(pm_pos != 0);
|
||||
JUT_ASSERT(pm_old_pos != 0);
|
||||
JUT_ASSERT(246, pm_pos != 0);
|
||||
JUT_ASSERT(247, pm_old_pos != 0);
|
||||
|
||||
m_my_ac = i_actor;
|
||||
SetActorPid(fopAcM_GetID(i_actor));
|
||||
fpc_ProcID id = fopAcM_GetID(i_actor);
|
||||
SetActorPid(id);
|
||||
pm_speed = i_speed;
|
||||
m_tbl_size = i_tbl_size;
|
||||
pm_acch_cir = i_acchcir;
|
||||
@@ -134,10 +135,12 @@ void dBgS_Acch::Set(fopAc_ac_c* i_actor, int i_tbl_size, dBgS_AcchCir* i_acchcir
|
||||
*/
|
||||
void dBgS_Acch::GroundCheckInit(dBgS& i_bgs) {
|
||||
if (!(m_flags & 2)) {
|
||||
i_bgs; // necessary to match
|
||||
|
||||
m_ground_h = -1000000000.0f;
|
||||
m_gnd.SetExtChk(*this);
|
||||
field_0xb4 = ChkGroundHit();
|
||||
i_ClrGroundHit();
|
||||
ClrGroundHit();
|
||||
ClrGroundLanding();
|
||||
ClrGroundAway();
|
||||
}
|
||||
@@ -153,7 +156,7 @@ void dBgS_Acch::GroundCheck(dBgS& i_bgs) {
|
||||
if (!ChkGndThinCellingOff()) {
|
||||
static dBgS_RoofChk tmpRoofChk;
|
||||
tmpRoofChk.SetActorPid(m_gnd.GetActorPid());
|
||||
tmpRoofChk.i_SetPos(*pm_pos);
|
||||
tmpRoofChk.SetPos(*pm_pos);
|
||||
|
||||
f32 roof_chk = i_bgs.RoofChk(&tmpRoofChk);
|
||||
if (grnd_pos.y > roof_chk) {
|
||||
@@ -189,7 +192,7 @@ void dBgS_Acch::GroundCheck(dBgS& i_bgs) {
|
||||
}
|
||||
}
|
||||
|
||||
if (field_0xb4 && !i_ChkGroundHit()) {
|
||||
if (field_0xb4 && !ChkGroundHit()) {
|
||||
SetGroundAway();
|
||||
}
|
||||
}
|
||||
@@ -207,7 +210,7 @@ void dBgS_Acch::GroundRoofProc(dBgS& i_bgs) {
|
||||
m_roof.SetExtChk(*this);
|
||||
ClrRoofHit();
|
||||
cXyz roof_pos(*pm_pos);
|
||||
m_roof.i_SetPos(roof_pos);
|
||||
m_roof.SetPos(roof_pos);
|
||||
m_roof_height = i_bgs.RoofChk(&m_roof);
|
||||
}
|
||||
}
|
||||
@@ -217,7 +220,7 @@ void dBgS_Acch::GroundRoofProc(dBgS& i_bgs) {
|
||||
void dBgS_Acch::LineCheck(dBgS& i_bgs) {
|
||||
dBgS_RoofChk roof_chk;
|
||||
roof_chk.SetActorPid(m_gnd.GetActorPid());
|
||||
roof_chk.i_SetPos(*GetOldPos());
|
||||
roof_chk.SetPos(*GetOldPos());
|
||||
|
||||
f32 temp_f31 = dComIfG_Bgsp().RoofChk(&roof_chk);
|
||||
|
||||
@@ -230,12 +233,11 @@ void dBgS_Acch::LineCheck(dBgS& i_bgs) {
|
||||
cXyz old_pos;
|
||||
cXyz pos;
|
||||
|
||||
old_pos = *pm_old_pos;
|
||||
pos = *pm_pos;
|
||||
old_pos = *GetOldPos();
|
||||
pos = *GetPos();
|
||||
|
||||
f32 temp_f0 = GetWallH(i);
|
||||
f32 var_f2 = temp_f0;
|
||||
if (temp_f31 < old_pos.y + temp_f0) {
|
||||
f32 var_f2 = GetWallH(i);
|
||||
if (temp_f31 < old_pos.y + var_f2) {
|
||||
if (var_r29) {
|
||||
continue;
|
||||
} else {
|
||||
@@ -272,14 +274,13 @@ void dBgS_Acch::LineCheck(dBgS& i_bgs) {
|
||||
cM3dGPla plane;
|
||||
i_bgs.GetTriPla(lin_chk, &plane);
|
||||
if (!cBgW_CheckBGround(plane.mNormal.y)) {
|
||||
VECAdd(GetPos(), &plane.mNormal, GetPos());
|
||||
if (!cM3d_IsZero(JMAFastSqrt(plane.mNormal.x * plane.mNormal.x +
|
||||
plane.mNormal.z * plane.mNormal.z)))
|
||||
{
|
||||
PSVECAdd(GetPos(), &plane.mNormal, GetPos());
|
||||
f32 var_f28 = JMAFastSqrt(plane.mNormal.x * plane.mNormal.x + plane.mNormal.z * plane.mNormal.z);
|
||||
if (!cM3d_IsZero(var_f28)) {
|
||||
pm_acch_cir[i].SetWallHDirect(GetPos()->y);
|
||||
}
|
||||
|
||||
GetPos()->y -= pm_acch_cir[i].GetWallH();
|
||||
GetPos()->y -= GetWallH(i);
|
||||
} else {
|
||||
GetPos()->y -= 1.0f;
|
||||
GroundCheck(i_bgs);
|
||||
@@ -322,17 +323,17 @@ void dBgS_Acch::LineCheck(dBgS& i_bgs) {
|
||||
void dBgS_Acch::CrrPos(dBgS& i_bgs) {
|
||||
bool bvar9;
|
||||
if (!(m_flags & 1)) {
|
||||
JUT_ASSERT(pm_pos != 0);
|
||||
JUT_ASSERT(pm_old_pos != 0);
|
||||
JUT_ASSERT(792, pm_pos != 0);
|
||||
JUT_ASSERT(793, pm_old_pos != 0);
|
||||
|
||||
JUT_ASSERT(fpclassify(pm_pos->x) == 1);
|
||||
JUT_ASSERT(fpclassify(pm_pos->y) == 1);
|
||||
JUT_ASSERT(fpclassify(pm_pos->z) == 1);
|
||||
JUT_ASSERT(833, fpclassify(pm_pos->x) == 1);
|
||||
JUT_ASSERT(834, fpclassify(pm_pos->y) == 1);
|
||||
JUT_ASSERT(835, fpclassify(pm_pos->z) == 1);
|
||||
|
||||
JUT_ASSERT(-1.0e32f < pm_pos->x && pm_pos->x < 1.0e32f);
|
||||
JUT_ASSERT(-1.0e32f < pm_pos->y);
|
||||
JUT_ASSERT(pm_pos->y < 1.0e32f);
|
||||
JUT_ASSERT(-1.0e32f < pm_pos->z && pm_pos->z < 1.0e32f);
|
||||
JUT_ASSERT(837, -1.0e32f < pm_pos->x && pm_pos->x < 1.0e32f);
|
||||
JUT_ASSERT(838, -1.0e32f < pm_pos->y);
|
||||
JUT_ASSERT(839, pm_pos->y < 1.0e32f);
|
||||
JUT_ASSERT(840, -1.0e32f < pm_pos->z && pm_pos->z < 1.0e32f);
|
||||
|
||||
i_bgs.MoveBgCrrPos(m_gnd, ChkGroundHit(), pm_pos, pm_angle, pm_shape_angle, false, false);
|
||||
|
||||
@@ -398,7 +399,7 @@ void dBgS_Acch::CrrPos(dBgS& i_bgs) {
|
||||
roof_pos.y = pm_pos->y;
|
||||
roof_pos.z = pm_pos->z;
|
||||
|
||||
m_roof.i_SetPos(roof_pos);
|
||||
m_roof.SetPos(roof_pos);
|
||||
m_roof_height = i_bgs.RoofChk(&m_roof);
|
||||
|
||||
if (m_roof_height != 1000000000.0f) {
|
||||
@@ -441,7 +442,7 @@ void dBgS_Acch::CrrPos(dBgS& i_bgs) {
|
||||
} else {
|
||||
dBgS_RoofChk roof_chk;
|
||||
roof_chk.SetUnderwaterRoof();
|
||||
roof_chk.i_SetPos(*pm_pos);
|
||||
roof_chk.SetPos(*pm_pos);
|
||||
|
||||
var_f30 = i_bgs.RoofChk(&roof_chk);
|
||||
if (var_f30 == 1000000000.0f) {
|
||||
|
||||
+1
-1
@@ -3059,7 +3059,7 @@ f32 dCamera_c::getWaterSurfaceHeight(cXyz* param_0) {
|
||||
cXyz spF8(*param_0);
|
||||
dBgS_RoofChk roofchk;
|
||||
roofchk.SetUnderwaterRoof();
|
||||
roofchk.i_SetPos(spF8);
|
||||
roofchk.SetPos(spF8);
|
||||
|
||||
f32 roof_y = dComIfG_Bgsp().RoofChk(&roofchk);
|
||||
if (spF8.y < roof_y) {
|
||||
|
||||
@@ -0,0 +1,156 @@
|
||||
#include "d/d_debug_viewer.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "f_ap/f_ap_game.h"
|
||||
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
|
||||
#include "JSystem/JUtility/JUTDbPrint.h"
|
||||
#include "JSystem/JUtility/JUTReport.h"
|
||||
|
||||
class dDebugPad_c {
|
||||
public:
|
||||
bool Active();
|
||||
};
|
||||
|
||||
extern dDebugPad_c dDebugPad;
|
||||
|
||||
J3DPacket* l_drawPacketList[1000];
|
||||
int l_drawPacketListNum;
|
||||
|
||||
J3DPacket* dDbVw_setDrawPacketList(J3DPacket* i_packet, int i_bufferType) {
|
||||
if (i_packet == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (l_drawPacketListNum >= 1000) {
|
||||
delete (void*)i_packet;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
l_drawPacketList[l_drawPacketListNum++] = i_packet;
|
||||
j3dSys.getDrawBuffer(i_bufferType)->entryImm(i_packet, 0);
|
||||
return i_packet;
|
||||
}
|
||||
|
||||
void dDbVw_deleteDrawPacketList() {
|
||||
for (int i = 0; i < l_drawPacketListNum; i++) {
|
||||
delete (void*)l_drawPacketList[i];
|
||||
}
|
||||
|
||||
l_drawPacketListNum = 0;
|
||||
}
|
||||
|
||||
void dDbVw_drawCube8p(int i_bufferType, cXyz* i_points, const GXColor& i_color) {
|
||||
mDoExt_cube8pPacket* packet = new mDoExt_cube8pPacket(i_points, i_color);
|
||||
dDbVw_setDrawPacketList(packet, i_bufferType);
|
||||
}
|
||||
|
||||
void dDbVw_drawCube(int i_bufferType, cXyz& i_pos, cXyz& i_size, csXyz& i_angle, const GXColor& i_color) {
|
||||
mDoExt_cubePacket* packet = new mDoExt_cubePacket(i_pos, i_size, i_angle, i_color);
|
||||
dDbVw_setDrawPacketList(packet, i_bufferType);
|
||||
}
|
||||
|
||||
void dDbVw_drawTriangle(int i_bufferType, cXyz* i_points, const GXColor& i_color, u8 i_clipZ) {
|
||||
mDoExt_trianglePacket* packet = new mDoExt_trianglePacket(i_points, i_color, i_clipZ);
|
||||
dDbVw_setDrawPacketList(packet, i_bufferType);
|
||||
}
|
||||
|
||||
void dDbVw_drawQuad(int i_bufferType, cXyz* i_points, const GXColor& i_color, u8 i_clipZ) {
|
||||
mDoExt_quadPacket* packet = new mDoExt_quadPacket(i_points, i_color, i_clipZ);
|
||||
dDbVw_setDrawPacketList(packet, i_bufferType);
|
||||
}
|
||||
|
||||
void dDbVw_drawQuad(int i_bufferType, cXyz* param_1, cXyz* param_2, cXyz* i_pos, s16 i_rotY, const GXColor& i_color, u8 i_clipZ) {
|
||||
cXyz points[4];
|
||||
|
||||
points[0] = *param_1;
|
||||
points[2] = *param_2;
|
||||
|
||||
points[1].x = param_2->x;
|
||||
points[1].y = param_1->y;
|
||||
points[1].z = param_1->z;
|
||||
|
||||
points[3].x = param_1->x;
|
||||
points[3].y = param_1->y;
|
||||
points[3].z = param_2->z;
|
||||
|
||||
mDoMtx_stack_c::transS(*i_pos);
|
||||
mDoMtx_stack_c::YrotM(i_rotY);
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mDoMtx_stack_c::multVec(&points[i], &points[i]);
|
||||
}
|
||||
|
||||
mDoExt_quadPacket* packet = new mDoExt_quadPacket(points, i_color, i_clipZ);
|
||||
dDbVw_setDrawPacketList(packet, i_bufferType);
|
||||
}
|
||||
|
||||
void dDbVw_drawLine(int i_bufferType, cXyz& i_start, cXyz& i_end, const GXColor& i_color, u8 i_clipZ, u8 i_width) {
|
||||
mDoExt_linePacket* packet = new mDoExt_linePacket(i_start, i_end, i_color, i_clipZ, i_width);
|
||||
dDbVw_setDrawPacketList(packet, i_bufferType);
|
||||
}
|
||||
|
||||
void dDbVw_drawArrow(int i_bufferType, cXyz& i_pos, cXyz& param_2, const GXColor& i_color, u8 i_clipZ, u8 i_width) {
|
||||
mDoExt_ArrowPacket* packet = new mDoExt_ArrowPacket(i_pos, param_2, i_color, i_clipZ, i_width);
|
||||
dDbVw_setDrawPacketList(packet, i_bufferType);
|
||||
}
|
||||
|
||||
void dDbVw_drawPoint(int i_bufferType, cXyz& i_pos, const GXColor& i_color, u8 i_clipZ, u8 i_width) {
|
||||
mDoExt_pointPacket* packet = new mDoExt_pointPacket(i_pos, i_color, i_clipZ, i_width);
|
||||
dDbVw_setDrawPacketList(packet, i_bufferType);
|
||||
}
|
||||
|
||||
void dDbVw_drawCircle(int i_bufferType, cXyz& i_pos, f32 i_radius, const GXColor& i_color, u8 i_clipZ, u8 i_width) {
|
||||
mDoExt_circlePacket* packet = new mDoExt_circlePacket(i_pos, i_radius, i_color, i_clipZ, i_width);
|
||||
dDbVw_setDrawPacketList(packet, i_bufferType);
|
||||
}
|
||||
|
||||
void dDbVw_drawSphere(int i_bufferType, cXyz& i_pos, f32 i_size, const GXColor& i_color, u8 i_clipZ) {
|
||||
mDoExt_spherePacket* packet = new mDoExt_spherePacket(i_pos, i_size, i_color, i_clipZ);
|
||||
dDbVw_setDrawPacketList(packet, i_bufferType);
|
||||
}
|
||||
|
||||
void dDbVw_drawCylinder(int i_bufferType, cXyz& i_pos, f32 i_radius, f32 i_height, const GXColor& i_color, u8 i_clipZ) {
|
||||
mDoExt_cylinderPacket* packet = new mDoExt_cylinderPacket(i_pos, i_radius, i_height, i_color, i_clipZ);
|
||||
dDbVw_setDrawPacketList(packet, i_bufferType);
|
||||
}
|
||||
|
||||
void dDbVw_drawCylinderM(int i_bufferType, Mtx i_mtx, const GXColor& i_color, u8 i_clipZ) {
|
||||
mDoExt_cylinderMPacket* packet = new mDoExt_cylinderMPacket(i_mtx, i_color, i_clipZ);
|
||||
dDbVw_setDrawPacketList(packet, i_bufferType);
|
||||
}
|
||||
|
||||
static bool reportOK() {
|
||||
return !dComIfG_isDebugMode() && !dDebugPad.Active();
|
||||
}
|
||||
|
||||
static JUtility::TColor ShadowDarkColor(0, 0, 0, 0x80);
|
||||
static JUtility::TColor ShadowLightColor(0xFF, 0xFF, 0xFF, 0x80);
|
||||
|
||||
// NONMATCHING - string being put in stack instead of register
|
||||
int dDbVw_Report(int x, int y, char const* string, ...) {
|
||||
char buffer[256];
|
||||
|
||||
if (reportOK()) {
|
||||
va_list list;
|
||||
va_start(list, string);
|
||||
vsnprintf(buffer, sizeof(buffer), string, list);
|
||||
va_end(list);
|
||||
|
||||
JUTDbPrint::getManager()->flush();
|
||||
|
||||
if (g_HIO.mColor & 0xF0F0F000) {
|
||||
JUTDbPrint::getManager()->setCharColor(ShadowDarkColor);
|
||||
} else {
|
||||
JUTDbPrint::getManager()->setCharColor(ShadowLightColor);
|
||||
}
|
||||
|
||||
JUTReport(x + 2, y + 2, buffer);
|
||||
JUTDbPrint::getManager()->flush();
|
||||
|
||||
JUTDbPrint::getManager()->setCharColor(g_HIO.mColor);
|
||||
JUTReport(x, y, buffer);
|
||||
JUTDbPrint::getManager()->flush();
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -466,7 +466,7 @@ static BOOL overhead_bg_chk() {
|
||||
cXyz chkPos = camera->lookat.eye;
|
||||
chkPos.y += 50.0f;
|
||||
|
||||
roofchk.i_SetPos(chkPos);
|
||||
roofchk.SetPos(chkPos);
|
||||
if (dComIfG_Bgsp().RoofChk(&roofchk) != 1.0e9f) {
|
||||
chk = true;
|
||||
// Outside East Castle Town
|
||||
@@ -504,7 +504,7 @@ static BOOL forward_overhead_bg_chk(cXyz* ppos, f32 dist) {
|
||||
chk_pos.y = 50.0f + camera->lookat.eye.y;
|
||||
*ppos = chk_pos;
|
||||
|
||||
roofchk.i_SetPos(chk_pos);
|
||||
roofchk.SetPos(chk_pos);
|
||||
if (1000000000.0f != dComIfG_Bgsp().RoofChk(&roofchk)) {
|
||||
chk = TRUE;
|
||||
if (strcmp(dComIfGp_getStartStageName(), "F_SP122") == 0) {
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "d/d_save_init.h"
|
||||
#include "JSystem/JUtility/JUTGamePad.h"
|
||||
#include "stdio.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_meter2_info.h"
|
||||
#include "d/actor/d_a_obj_carry.h"
|
||||
|
||||
|
||||
@@ -2103,7 +2103,7 @@ bool fopAcM_gc_c::gndCheck(cXyz const* i_pos) {
|
||||
|
||||
/* 8001DD1C-8001DD84 01865C 0068+00 0/0 0/0 3/3 .text roofCheck__11fopAcM_rc_cFPC4cXyz */
|
||||
bool fopAcM_rc_c::roofCheck(cXyz const* i_pos) {
|
||||
mRoofCheck.i_SetPos(*i_pos);
|
||||
mRoofCheck.SetPos(*i_pos);
|
||||
mRoofY = dComIfG_Bgsp().RoofChk(&mRoofCheck);
|
||||
return 1000000000.0f != mRoofY;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user