d_a_obj_cboard / finish f_op_actor / rels cleanup (#268)

* d_a_obj_cboard / finish f_op_actor / clean up some rel files

* rename some actor vars / remove asm

* progress
This commit is contained in:
TakaRikka
2023-02-03 20:24:26 -08:00
committed by GitHub
parent f030d04b14
commit 0f1c727725
85 changed files with 1038 additions and 2328 deletions
+56 -57
View File
@@ -3029,7 +3029,6 @@ extern "C" extern void* __vt__28mDoExt_MtxCalcAnmBlendTblOld[11];
extern "C" extern void* __vt__25mDoExt_MtxCalcAnmBlendTbl[11];
extern "C" extern void* __vt__10J3DMtxCalc[11 + 1 /* padding */];
extern "C" extern void* __vt__19JPAParticleCallBack[5];
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* __vt__8cM3dGPla[3];
extern "C" extern void* __vt__14dBgS_ObjGndChk[12 + 1 /* padding */];
extern "C" extern void* __vt__12dDlst_base_c[3];
@@ -14684,7 +14683,7 @@ void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, s16 i_angle, int param_2
i_onEndResetFlg0(ERFLG0_UNK_800000);
i_onEndResetFlg2(ERFLG2_UNK_100);
if (mDemo.getDemoMode() != 0x59) {
mSpeed.y = FLOAT_LABEL(lit_6108);
speed.y = FLOAT_LABEL(lit_6108);
}
}
@@ -14709,7 +14708,7 @@ void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, s16 i_angle, int param_2
rideAc->current.pos = current.pos;
rideAc->shape_angle.y = shape_angle.y;
rideAc->current.angle.y = shape_angle.y;
rideAc->mSpeed.y = FLOAT_LABEL(lit_6108);
rideAc->speed.y = FLOAT_LABEL(lit_6108);
}
field_0x814.ClrCcMove();
@@ -14726,7 +14725,7 @@ void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, csXyz const* p_angle) {
field_0x3798 = current.pos;
i_onEndResetFlg0(ERFLG0_UNK_800000);
i_onEndResetFlg2(ERFLG2_UNK_100);
mSpeed.y = FLOAT_LABEL(lit_6108);
speed.y = FLOAT_LABEL(lit_6108);
}
if (p_angle != NULL) {
@@ -14752,7 +14751,7 @@ void daAlink_c::setPlayerPosAndAngle(Mtx param_0) {
mDoMtx_MtxToRot(param_0, &shape_angle);
current.angle.y = shape_angle.y;
field_0x2fe6 = shape_angle.y;
mSpeed.y = FLOAT_LABEL(lit_6108);
speed.y = FLOAT_LABEL(lit_6108);
field_0x814.ClrCcMove();
}
}
@@ -16185,7 +16184,7 @@ int daAlink_c::checkNextAction(int param_0) {
} else if (mProcID == PROC_MOVE_TURN && current.angle.y != shape_angle.y) {
ret = procMoveTurnInit(0);
} else if (checkInputOnR() && cLib_distanceAngleS(field_0x2fe2, current.angle.y) > 0x7800) {
if (mSpeedF / field_0x594 > daAlinkHIO_move_c0::m.mSlideThresholdSpeed && field_0x2fa8 != 8 &&
if (speedF / field_0x594 > daAlinkHIO_move_c0::m.mSlideThresholdSpeed && field_0x2fa8 != 8 &&
!checkGrabAnime() && getDirectionFromAngle(mPrevStickAngle - mStickAngle) == DIR_BACKWARD) {
ret = procSlipInit();
} else {
@@ -16471,37 +16470,37 @@ void daAlink_c::posMove() {
setFootSpeed();
if (i_checkEndResetFlg0(ERFLG0_UNK_10000000)) {
mSpeedF = 0.0f;
speedF = 0.0f;
mNormalSpeed = 0.0f;
}
mSpeedF = mNormalSpeed * (1.0f - fabsf(mSpeedModifier));
speedF = mNormalSpeed * (1.0f - fabsf(mSpeedModifier));
f32 mod = field_0x33a0 * (1.0f - field_0x2060->getOldFrameRate()) * mSpeedModifier;
if (mSpeedF < 0.0f) {
mSpeedF -= mod;
if (speedF < 0.0f) {
speedF -= mod;
} else {
mSpeedF += mod;
speedF += mod;
}
if (getZoraSwim() && !checkZoraWearAbility()) {
mSpeedF *= daAlinkHIO_swim_c0::m.mSurfaceSwimSpeedRate;
speedF *= daAlinkHIO_swim_c0::m.mSurfaceSwimSpeedRate;
}
f32 var_f31 = mSpeedF;
mSpeedF *= cM_scos(var_r26);
f32 var_f31 = speedF;
speedF *= cM_scos(var_r26);
if (var_r26 < 0 && !checkBoardRide() && !i_checkModeFlg(MODE_SWIMMING)) {
mSpeedF *= 0.85f;
speedF *= 0.85f;
}
if (mProcID == PROC_AUTO_JUMP && checkGrabGlide() &&
(field_0xC04[0].ChkTgHit() || field_0xC04[1].ChkTgHit() || field_0xC04[2].ChkTgHit())) {
mSpeedF *= 0.5f;
speedF *= 0.5f;
}
mSpeed.x = mSpeedF * cM_ssin(current.angle.y);
mSpeed.z = mSpeedF * cM_scos(current.angle.y);
speed.x = speedF * cM_ssin(current.angle.y);
speed.z = speedF * cM_scos(current.angle.y);
if (checkNoCollisionCorret() || (i_checkModeFlg(0x40) && i_checkModeFlg(0x4000))) {
field_0x342c = 0.0f;
@@ -16522,8 +16521,8 @@ void daAlink_c::posMove() {
plane.mNormal.y = 0.0f;
plane.mNormal.normalizeZP();
mSpeed.x += temp_f0 * plane.mNormal.x;
mSpeed.z += temp_f0 * plane.mNormal.z;
speed.x += temp_f0 * plane.mNormal.x;
speed.z += temp_f0 * plane.mNormal.z;
}
}
}
@@ -16535,68 +16534,68 @@ void daAlink_c::posMove() {
if (i_checkNoResetFlg0(FLG0_UNK_100) && mProcID != PROC_SWIM_DIVE) {
current.pos.y = mWaterY;
} else if (mDemo.getDemoType() == 4 || mProcID == PROC_ELEC_DAMAGE || i_dComIfGp_checkPlayerStatus0(0, 0x10)) {
mSpeed.y = 0.0f;
speed.y = 0.0f;
} else if (i_checkWolf()) {
if (checkHeavyStateOn(1, 1)) {
mSpeed.y += daAlinkHIO_wlSwim_c0::m.field_0x9C;
speed.y += daAlinkHIO_wlSwim_c0::m.field_0x9C;
if (mSpeed.y > daAlinkHIO_wlSwim_c0::m.field_0xA4) {
mSpeed.y = daAlinkHIO_wlSwim_c0::m.field_0xA4;
if (speed.y > daAlinkHIO_wlSwim_c0::m.field_0xA4) {
speed.y = daAlinkHIO_wlSwim_c0::m.field_0xA4;
}
} else {
mSpeed.y += daAlinkHIO_wlSwim_c0::m.field_0x60;
speed.y += daAlinkHIO_wlSwim_c0::m.field_0x60;
if (mSpeed.y > daAlinkHIO_wlSwim_c0::m.field_0x5C) {
mSpeed.y = daAlinkHIO_wlSwim_c0::m.field_0x5C;
if (speed.y > daAlinkHIO_wlSwim_c0::m.field_0x5C) {
speed.y = daAlinkHIO_wlSwim_c0::m.field_0x5C;
}
}
} else if (!i_checkEquipHeavyBoots() && getZoraSwim()) {
mSpeed.y = -var_f31 * cM_ssin(var_r26);
speed.y = -var_f31 * cM_ssin(var_r26);
} else if ((checkBootsOrArmorHeavy() && mProcID != PROC_DEAD) || mProcID == PROC_SWIM_DIVE) {
mSpeed.y += mGravity;
speed.y += mGravity;
if (mSpeed.y < mMaxFallSpeed) {
mSpeed.y = mMaxFallSpeed;
if (speed.y < mMaxFallSpeed) {
speed.y = mMaxFallSpeed;
}
} else if (mSpeed.y > daAlinkHIO_swim_c0::m.mMaxFloatUpSpeed) {
mSpeed.y += mGravity;
} else if (mSpeed.y < mMaxFallSpeed) {
mSpeed.y += 1.0f;
} else if (speed.y > daAlinkHIO_swim_c0::m.mMaxFloatUpSpeed) {
speed.y += mGravity;
} else if (speed.y < mMaxFallSpeed) {
speed.y += 1.0f;
} else {
if (checkZoraWearAbility() && mWaterY > current.pos.y + daAlinkHIO_swim_c0::m.mNormalFloatDepth) {
mSpeed.y += daAlinkHIO_swim_c0::m.mZoraFloatDepth;
speed.y += daAlinkHIO_swim_c0::m.mZoraFloatDepth;
if (mSpeed.y < 0.0f) {
mSpeed.y = 0.0f;
if (speed.y < 0.0f) {
speed.y = 0.0f;
}
} else {
mSpeed.y += daAlinkHIO_swim_c0::m.mBuoyancy;
speed.y += daAlinkHIO_swim_c0::m.mBuoyancy;
}
if (mSpeed.y > daAlinkHIO_swim_c0::m.mMaxFloatUpSpeed) {
mSpeed.y = daAlinkHIO_swim_c0::m.mMaxFloatUpSpeed;
if (speed.y > daAlinkHIO_swim_c0::m.mMaxFloatUpSpeed) {
speed.y = daAlinkHIO_swim_c0::m.mMaxFloatUpSpeed;
}
}
} else if (!i_checkModeFlg(0x400)) {
if (checkHeavyStateOn(1, 1) && mProcID != PROC_SPINNER_READY && !i_checkNoResetFlg0(FLG0_UNDERWATER)) {
mSpeed.y += mGravity * 2.25f;
speed.y += mGravity * 2.25f;
if (mSpeed.y < mMaxFallSpeed * 1.5f) {
mSpeed.y = mMaxFallSpeed * 1.5f;
if (speed.y < mMaxFallSpeed * 1.5f) {
speed.y = mMaxFallSpeed * 1.5f;
}
} else {
mSpeed.y += mGravity;
speed.y += mGravity;
if (mSpeed.y < mMaxFallSpeed) {
mSpeed.y = mMaxFallSpeed;
if (speed.y < mMaxFallSpeed) {
speed.y = mMaxFallSpeed;
}
}
} else if (checkBoardRide()) {
mLinkAcch.OffLineCheck();
mSpeed.y += mGravity;
speed.y += mGravity;
if (mSpeed.y < mMaxFallSpeed) {
mSpeed.y = mMaxFallSpeed;
if (speed.y < mMaxFallSpeed) {
speed.y = mMaxFallSpeed;
}
}
@@ -16609,13 +16608,13 @@ void daAlink_c::posMove() {
mDoMtx_stack_c::YrotM(current.angle.y);
cXyz spFC;
spFC.z = mSpeedF;
mDoMtx_stack_c::multVecSR(&spFC, &mSpeed);
current.pos += mSpeed;
spFC.z = speedF;
mDoMtx_stack_c::multVecSR(&spFC, &speed);
current.pos += speed;
current.pos.x += field_0x342c;
current.pos.z += field_0x3430;
} else {
current.pos += mSpeed;
current.pos += speed;
current.pos.x += field_0x342c;
current.pos.z += field_0x3430;
@@ -16626,12 +16625,12 @@ void daAlink_c::posMove() {
}
if (checkBoardRide() && !i_checkModeFlg(2)) {
current.pos.y -= mSpeedF * cM_ssin(var_r26);
current.pos.y -= speedF * cM_ssin(var_r26);
}
if (i_getSumouMode() && mProcID != PROC_SUMOU_WIN_LOSE) {
current.pos.y = var_f31 - 1.0f;
mSpeed.y = mGravity;
speed.y = mGravity;
}
field_0x342c = 0.0f;
@@ -17820,7 +17819,7 @@ asm void daAlink_c::changeWarpMaterial(daAlink_c::daAlink_WARP_MAT_MODE param_0)
#ifdef NONMATCHING
void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) {
if (mProcID == PROC_TOOL_DEMO) {
mSpeed.y = 0.0f;
speed.y = 0.0f;
resetDemoBck();
if (i_checkModeFlg(MODE_RIDING)) {
initForceRideHorse();
+4 -4
View File
@@ -16,8 +16,8 @@ f32 daAlink_c::getBoomSpeed() {
if (i_checkModeFlg(0x400)) {
fopAc_ac_c* ride_actor = mRideAcKeep.getActor();
if (ride_actor != NULL && ride_actor->mSpeedF > FLOAT_LABEL(lit_6108)) {
speed += ride_actor->mSpeedF;
if (ride_actor != NULL && ride_actor->speedF > FLOAT_LABEL(lit_6108)) {
speed += ride_actor->speedF;
}
}
@@ -211,8 +211,8 @@ void daAlink_c::throwBoomerang() {
mFastShotTime = -1;
daPy_boomerangMove_c::offEventKeepFlg();
} else {
item->mSpeedF = daAlinkHIO_pickUp_c0::m.field_0x28;
item->mSpeed.y = daAlinkHIO_pickUp_c0::m.field_0x2C;
item->speedF = daAlinkHIO_pickUp_c0::m.field_0x28;
item->speed.y = daAlinkHIO_pickUp_c0::m.field_0x2C;
item->current.angle.y = shape_angle.y;
fopAcM_cancelCarryNow(item);
+3 -3
View File
@@ -139,7 +139,7 @@ BOOL daAlink_c::checkCanoeJumpRide() {
canoe = (daCanoe_c*)field_0x850[1].GetCoHitAc();
}
if (mSpeed.y < FLOAT_LABEL(lit_6108) && canoe != NULL && fopAcM_GetName(canoe) == PROC_CANOE &&
if (speed.y < FLOAT_LABEL(lit_6108) && canoe != NULL && fopAcM_GetName(canoe) == PROC_CANOE &&
canoe->checkJumpRideFlg() && !checkDeadHP() &&
(mProcID != PROC_FALL || field_0x3010 != 0)) {
return procCanoeJumpRideInit(canoe);
@@ -257,7 +257,7 @@ int daAlink_c::procCanoeRideInit() {
f32 tmp_0 = FLOAT_LABEL(lit_6108);
mNormalSpeed = tmp_0;
mSpeed.y = tmp_0;
speed.y = tmp_0;
setRideCanoeBasePos(canoe);
if ((s16)(fopAcM_searchActorAngleY(canoe, this) - canoe->shape_angle.y) > 0) {
@@ -329,7 +329,7 @@ int daAlink_c::procCanoeJumpRideInit(fopAc_ac_c* param_0) {
f32 tmp_0 = FLOAT_LABEL(lit_6108);
mNormalSpeed = tmp_0;
mSpeed.y = tmp_0;
speed.y = tmp_0;
setRideCanoeBasePos(canoe);
mDoMtx_multVec(canoe->getModelMtx(), &field_0x37c8, &current.pos);
current.angle.y = shape_angle.y;
+13 -13
View File
@@ -686,9 +686,9 @@ void daAlink_c::checkCutAtnActorChange() {
void daAlink_c::setCutJumpSpeed(int i_airAt) {
if (i_checkNoResetFlg0(FLG0_UNDERWATER)) {
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
mSpeed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
} else if (checkHeavyStateOn(1, 1)) {
mSpeed.y *= 1.35f;
speed.y *= 1.35f;
}
if (mTargetedActor != NULL && !i_airAt) {
@@ -703,7 +703,7 @@ void daAlink_c::setCutJumpSpeed(int i_airAt) {
targetPos.y = mTargetedActor->mEyePos.y;
}
f32 dvar12 = mSpeed.y + mGravity;
f32 dvar12 = speed.y + mGravity;
f32 dvar10 = 1.0f / mGravity;
f32 fvar1 = targetPos.y - (current.pos.y - (dvar10 * (dvar12 * dvar12) * 0.5f));
@@ -1027,14 +1027,14 @@ int daAlink_c::procCutFinishJumpUpInit() {
}
setCutType(CUT_TYPE_TWIRL);
mSpeed.y = daAlinkHIO_cutFnJU_c0::m.mSpeedV;
speed.y = daAlinkHIO_cutFnJU_c0::m.mSpeedV;
mNormalSpeed = daAlinkHIO_cutFnJU_c0::m.mSpeedH;
if (i_checkNoResetFlg0(FLG0_UNDERWATER)) {
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
mSpeed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
} else if (checkHeavyStateOn(1, 1)) {
mSpeed.y *= lit_7624;
speed.y *= lit_7624;
}
if (side_roll) {
@@ -1255,10 +1255,10 @@ int daAlink_c::procCutJumpInit(int i_airCut) {
if (i_airCut) {
mNormalSpeed = daAlinkHIO_cutJump_c0::m.mAirJumpSpeedH;
mSpeed.y = daAlinkHIO_cutJump_c0::m.mAirJumpSpeedV;
speed.y = daAlinkHIO_cutJump_c0::m.mAirJumpSpeedV;
} else {
mNormalSpeed = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedH;
mSpeed.y = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedV;
speed.y = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedV;
}
setCutJumpSpeed(i_airCut);
@@ -1639,7 +1639,7 @@ int daAlink_c::procCutDown() {
return 1;
}
if (mLinkAcch.ChkGroundHit() && mSpeed.y <= FLOAT_LABEL(lit_6108)) {
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;
@@ -1685,11 +1685,11 @@ int daAlink_c::procCutHead() {
if (field_0x300e == 0) {
cLib_chaseF(&mNormalSpeed, FLOAT_LABEL(lit_6108), field_0x3478);
if (mSpeed.y <= FLOAT_LABEL(lit_6108)) {
if (speed.y <= FLOAT_LABEL(lit_6108)) {
setSingleAnimeParam(ANM_CUT_HEAD, &daAlinkHIO_cutHead_c0::m.mCutAnm);
f32 tmp_0 = FLOAT_LABEL(lit_6108);
mNormalSpeed = tmp_0;
mSpeed.y = tmp_0;
speed.y = tmp_0;
setSpecialGravity(tmp_0, mMaxFallSpeed, 0);
field_0x300e = 1;
setCutWaterDropEffect();
@@ -1700,7 +1700,7 @@ int daAlink_c::procCutHead() {
mNormalSpeed *= lit_8501;
if (frameCtrl->checkPass(lit_8502)) {
mSpeed.y = daAlinkHIO_cutHead_c0::m.mAddSpeedV;
speed.y = daAlinkHIO_cutHead_c0::m.mAddSpeedV;
mNormalSpeed = daAlinkHIO_cutHead_c0::m.mAddSpeedH;
initGravity();
}
@@ -1837,7 +1837,7 @@ int daAlink_c::procCutLargeJump() {
if (!i_checkModeFlg(2) && frameCtrl->getFrame() >= lit_7808) {
setJumpMode();
mNormalSpeed = daAlinkHIO_cutLargeJump_c0::m.mCutSpeedH;
mSpeed.y = daAlinkHIO_cutLargeJump_c0::m.mCutSpeedV;
speed.y = daAlinkHIO_cutLargeJump_c0::m.mCutSpeedV;
setCutJumpSpeed(0);
}
+1 -1
View File
@@ -207,7 +207,7 @@ int daAlink_c::procBoardJumpInit(f32 param_0, int param_1) {
daAlinkHIO_board_c0::m.mAirborneAnm.mInterpolation);
if (param_1 == 0) {
mSpeed.y = cLib_minMaxLimit(param_0, daAlinkHIO_board_c0::m.mMinJumpSpeedY, daAlinkHIO_board_c0::m.mMaxJumpSpeedY);
speed.y = cLib_minMaxLimit(param_0, daAlinkHIO_board_c0::m.mMinJumpSpeedY, daAlinkHIO_board_c0::m.mMaxJumpSpeedY);
}
field_0x3010 = 0;
+21 -21
View File
@@ -425,7 +425,7 @@ int daAlink_c::procSideStepInit(int jump_type) {
current.angle.y = shape_angle.y + 0x8000;
setSingleAnimeParam(ANM_BACK_JUMP, &daAlinkHIO_sideStep_c0::m.mBackJumpAnm);
mNormalSpeed = daAlinkHIO_sideStep_c0::m.mBackJumpSpeedH;
mSpeed.y = daAlinkHIO_sideStep_c0::m.mBackJumpSpeedV;
speed.y = daAlinkHIO_sideStep_c0::m.mBackJumpSpeedV;
field_0x300a = 0;
} else {
daAlink_ANM anm_id;
@@ -439,13 +439,13 @@ int daAlink_c::procSideStepInit(int jump_type) {
setSingleAnimeParam(anm_id, &daAlinkHIO_sideStep_c0::m.mSideJumpAnm);
mNormalSpeed = daAlinkHIO_sideStep_c0::m.mSideJumpSpeedH;
mSpeed.y = daAlinkHIO_sideStep_c0::m.mSideJumpSpeedV;
speed.y = daAlinkHIO_sideStep_c0::m.mSideJumpSpeedV;
field_0x300a = 1;
}
if (i_checkNoResetFlg0(FLG0_UNDERWATER)) {
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
mSpeed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
}
voiceStart(Z2SE_AL_V_JUMP_S);
@@ -686,7 +686,7 @@ int daAlink_c::procFrontRollInit() {
daAlinkHIO_frontRoll_c0::m.mRollAnm.field_0x00,
daAlinkHIO_frontRoll_c0::m.mRollAnm.field_0x0c);
mNormalSpeed =
mSpeedF * daAlinkHIO_frontRoll_c0::m.mInitSpeed + daAlinkHIO_frontRoll_c0::m.mSpeedRate;
speedF * daAlinkHIO_frontRoll_c0::m.mInitSpeed + daAlinkHIO_frontRoll_c0::m.mSpeedRate;
if (mNormalSpeed > daAlinkHIO_frontRoll_c0::m.mCrashHitAnm.field_0x08) {
mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mCrashHitAnm.field_0x08;
}
@@ -751,11 +751,11 @@ int daAlink_c::procFrontRollCrashInit() {
daAlinkHIO_frontRoll_c0::m.mCrashAnm.mInterpolation);
mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mCrashSpeedH;
mSpeed.y = daAlinkHIO_frontRoll_c0::m.mCrashSpeedV;
speed.y = daAlinkHIO_frontRoll_c0::m.mCrashSpeedV;
if (i_checkNoResetFlg0(FLG0_UNDERWATER)) {
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
mSpeed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
}
current.angle.y -= -0x8000;
@@ -931,12 +931,12 @@ int daAlink_c::procBackJumpInit(int param_0) {
if (param_0) {
setSingleAnimeParam(ANM_BACKFLIP, &daAlinkHIO_cutDown_c0::m.mRecoverAnm);
mNormalSpeed = daAlinkHIO_cutDown_c0::m.mRecoverSpeedV;
mSpeed.y = daAlinkHIO_cutDown_c0::m.mSpeedV;
speed.y = daAlinkHIO_cutDown_c0::m.mSpeedV;
voiceStart(Z2SE_AL_V_TODOME_RETURN);
} else {
setSingleAnimeParam(ANM_BACKFLIP, &daAlinkHIO_backJump_c0::m.mBackflipAnm);
mNormalSpeed = daAlinkHIO_backJump_c0::m.mBackflipSpeedH;
mSpeed.y = daAlinkHIO_backJump_c0::m.mBackflipSpeedV;
speed.y = daAlinkHIO_backJump_c0::m.mBackflipSpeedV;
voiceStart(Z2SE_AL_V_BACKTEN);
}
@@ -1047,7 +1047,7 @@ int daAlink_c::procBackJumpLand() {
int daAlink_c::procSlipInit() {
commonProcInit(PROC_SLIP);
setSingleAnimeParam(ANM_SLIP, &daAlinkHIO_move_c0::m.mSlideAnm);
mNormalSpeed = mSpeedF * daAlinkHIO_move_c0::m.mSlideSpeed;
mNormalSpeed = speedF * daAlinkHIO_move_c0::m.mSlideSpeed;
field_0x2f9d = 0x40;
setFootEffectProcType(1);
@@ -1097,7 +1097,7 @@ int daAlink_c::procDiveJumpInit() {
deleteEquipItem(TRUE, TRUE);
setHeavyBoots(0);
mSpeed.y = daAlinkHIO_autoJump_c0::m.mDiveSpeedV;
speed.y = daAlinkHIO_autoJump_c0::m.mDiveSpeedV;
mNormalSpeed = daAlinkHIO_autoJump_c0::m.mDiveSpeedH;
mGravity = daAlinkHIO_autoJump_c0::m.mDiveGravity;
@@ -1142,7 +1142,7 @@ int daAlink_c::procRollJumpInit() {
field_0x3478 = field_0x3410;
mNormalSpeed = field_0x3410;
mSpeed.y = field_0x3414;
speed.y = field_0x3414;
field_0x2fe6 = field_0x30ee;
shape_angle.y = field_0x30ee;
@@ -1165,7 +1165,7 @@ int daAlink_c::procRollJump() {
return checkLandAction(0);
}
if (mSpeed.y < FLOAT_LABEL(lit_6108)) {
if (speed.y < FLOAT_LABEL(lit_6108)) {
procFallInit(3, daAlinkHIO_autoJump_c0::m.mSpinJumpFallInterpolation);
} else {
s16 old_angle = shape_angle.x;
@@ -1469,7 +1469,7 @@ int daAlink_c::procCoMetamorphoseInit() {
if ((i_checkWolf() && mDemo.getDemoMode() == 0x39) ||
(!i_checkWolf() && mDemo.getDemoMode() == 0x3A)) {
field_0x300a = 1;
mSpeed.y = 0.0f;
speed.y = 0.0f;
mNormalSpeed = 0.0f;
if (i_checkWolf()) {
@@ -1549,7 +1549,7 @@ int daAlink_c::procCoMetamorphoseInit() {
mCommonCounter = 0;
}
}
mSpeed.y = 0.0f;
speed.y = 0.0f;
mNormalSpeed = 0.0f;
field_0x3012 = 0;
}
@@ -1639,7 +1639,7 @@ int daAlink_c::procCoMetamorphoseOnlyInit() {
f32 tmp_0 = FLOAT_LABEL(lit_6108);
mNormalSpeed = tmp_0;
mSpeed.y = tmp_0;
speed.y = tmp_0;
setSpecialGravity(tmp_0, mMaxFallSpeed, 0);
return 1;
@@ -2161,7 +2161,7 @@ int daAlink_c::execute() {
}
cXyz pos = current.pos;
field_0x3528 = mSpeed;
field_0x3528 = speed;
mLinkAcch.ClrGroundHit();
mLinkAcch.CrrPos(dComIfG_Bgsp());
@@ -2203,7 +2203,7 @@ int daAlink_c::execute() {
Vec tmp;
mDoMtx_stack_c::multVec(&tmp, &current.pos);
mSpeed.y = 0.0f;
speed.y = 0.0f;
if (field_0x3198 != 0) {
if (mLinkAcch.GetGroundH() != -1000000000.0f) {
@@ -2218,13 +2218,13 @@ int daAlink_c::execute() {
} else if (checkModeFlg(MODE_UNK_4000)) {
if (mProcID == PROC_DOOR_OPEN || mProcID == PROC_HANG_LEVER_DOWN) {
current.pos.y = old_pos.y;
mSpeed.y = 0.0f;
speed.y = 0.0f;
}
current.pos.x = pos.x;
current.pos.z = pos.z;
} else if (checkFlyAtnWait() || mProcID == PROC_WARP) {
current.pos.y = old_pos.y;
mSpeed.y = 0.0f;
speed.y = 0.0f;
}
field_0x3178 = field_0x3174;
@@ -2629,7 +2629,7 @@ int daAlink_c::execute() {
} else if (dComIfGp_getDoStatus() == 0x91) {
if (checkWolf() ||
(field_0x27f4 != NULL &&
(field_0x27f4->mSpeedF > 0.1f || (checkGoatCatchActor(field_0x27f4) &&
(field_0x27f4->speedF > 0.1f || (checkGoatCatchActor(field_0x27f4) &&
fopAcM_GetName(field_0x27f4) != PROC_COW)))) {
setDoStatusEmphasys(0x15);
} else {
@@ -3192,7 +3192,7 @@ int daAlink_c::procCoPeepSubjectivityInit() {
i_onPlayerNoDraw();
setSpecialGravity(FLOAT_LABEL(lit_6108), mMaxFallSpeed, 0);
mSpeed.y = FLOAT_LABEL(lit_6108);
speed.y = FLOAT_LABEL(lit_6108);
dComIfGp_setPlayerStatus0(0, 0x2000);
field_0x3478 = lit_6183;
mCommonCounter = shape_angle.y;
+3 -3
View File
@@ -137,7 +137,7 @@ int daAlink_c::procSpinnerReadyInit() {
mNormalSpeed = FLOAT_LABEL(lit_6108);
setHeavyBoots(0);
mSpeed.y = lit_7451;
speed.y = lit_7451;
voiceStart(Z2SE_AL_V_JUMP_S);
seStartOnlyReverb(Z2SE_AL_SPINNER_START);
@@ -194,7 +194,7 @@ int daAlink_c::procSpinnerWaitInit() {
mRideStatus = 5;
setBgCheckParam();
setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, daAlinkHIO_board_c0::m.mSitAnmSpeed, 4.0f);
mSpeed.y = 0.0f;
speed.y = 0.0f;
setSpecialGravity(0.0f, mMaxFallSpeed, 0);
mNormalSpeed = 0.0f;
mCommonCounter = 0;
@@ -276,7 +276,7 @@ int daAlink_c::procSpinnerWait() {
setSpinnerStatus(ACTION_STR_JUMP2, ACTION_FLG_DEFAULT);
}
mNormalSpeed = spinner->mSpeedF;
mNormalSpeed = spinner->speedF;
current.angle.y = spinner->current.angle.y;
if (spinner->checkSpinnerTagIntoIncRot()) {
+8 -8
View File
@@ -1129,9 +1129,9 @@ int daAlink_c::procWolfSlipInit() {
setSingleAnimeWolfParam(WANM_SLIP, &daAlinkHIO_wlMove_c0::m.field_0x0);
if (checkWolfDashMode()) {
mNormalSpeed = mSpeedF * daAlinkHIO_wlMove_c0::m.field_0xA4;
mNormalSpeed = speedF * daAlinkHIO_wlMove_c0::m.field_0xA4;
} else {
mNormalSpeed = mSpeedF * daAlinkHIO_wlMoveNoP_c0::m.field_0x3C;
mNormalSpeed = speedF * daAlinkHIO_wlMoveNoP_c0::m.field_0x3C;
}
current.angle.y = shape_angle.y;
@@ -1634,7 +1634,7 @@ int daAlink_c::procWolfRopeSubjectivityInit() {
setSpecialGravity(FLOAT_LABEL(lit_6108), mMaxFallSpeed, 0);
f32 tmp_0 = FLOAT_LABEL(lit_6108);
mSpeed.y = tmp_0;
speed.y = tmp_0;
mNormalSpeed = tmp_0;
setWolfRopeOffsetY(setWolfRopePosY());
@@ -1806,7 +1806,7 @@ int daAlink_c::procWolfHangReadyInit() {
f32 tmp_0 = FLOAT_LABEL(lit_6108);
mNormalSpeed = tmp_0;
mSpeed.y = tmp_0;
speed.y = tmp_0;
return 1;
}
@@ -2261,7 +2261,7 @@ int daAlink_c::procWolfSwimMoveInit() {
if (i_checkNoResetFlg0(FLG0_UNK_100)) {
current.pos.y = mWaterY;
mSpeed.y = FLOAT_LABEL(lit_6108);
speed.y = FLOAT_LABEL(lit_6108);
}
dComIfGp_setPlayerStatus0(0, 0x100000);
@@ -2654,7 +2654,7 @@ int daAlink_c::procWolfJumpAttackKickInit() {
setSingleAnimeWolfParam(WANM_JUMP_KICK, &daAlinkHIO_wlAtCjump_c0::m.field_0x14);
f32 tmp_0 = FLOAT_LABEL(lit_6108);
mSpeed.y = tmp_0;
speed.y = tmp_0;
mNormalSpeed = tmp_0;
setSpecialGravity(tmp_0, mMaxFallSpeed, 0);
@@ -2955,7 +2955,7 @@ int daAlink_c::procWolfEnemyHangBiteInit() {
f32 tmp_0 = FLOAT_LABEL(lit_6108);
mNormalSpeed = tmp_0;
mSpeed.y = tmp_0;
speed.y = tmp_0;
setSpecialGravity(tmp_0, mMaxFallSpeed, 0);
if (!setWolfEnemyHangBitePos((fopEn_enemy_c*)field_0x281c.getActor())) {
@@ -3123,7 +3123,7 @@ int daAlink_c::procWolfCargoCarryInit() {
f32 tmp_0 = FLOAT_LABEL(lit_6108);
mNormalSpeed = tmp_0;
mSpeed.y = tmp_0;
speed.y = tmp_0;
setSpecialGravity(tmp_0, mMaxFallSpeed, 0);
daAlink_WANM wanm;
+5 -5
View File
@@ -2550,8 +2550,8 @@ int daNpcT_c::initTalk(int param_0, fopAc_ac_c** param_1) {
}
f32 tmp = FLOAT_LABEL(lit_4116);
mSpeedF = tmp;
mSpeed.set(tmp,tmp,tmp);
speedF = tmp;
speed.set(tmp,tmp,tmp);
return 1;
}
@@ -3685,7 +3685,7 @@ void daBaseNpc_c::setEnvTevColor() {
/* 8014F0FC-8014F140 149A3C 0044+00 1/1 0/0 2/2 .text setRoomNo__11daBaseNpc_cFv */
void daBaseNpc_c::setRoomNo() {
s32 room_id = dComIfG_Bgsp().GetRoomId(mBgSPolyInfo);
current.mRoomNo = room_id;
current.roomNo = room_id;
mRoomId = room_id;
}
@@ -5090,8 +5090,8 @@ asm void daNpcF_c::chkActorInAttnArea(fopAc_ac_c* param_0, fopAc_ac_c* param_1,
int daNpcF_c::initTalk(int param_0, fopAc_ac_c** param_1) {
mFlow.init(this,param_0,0,param_1);
f32 tmp = FLOAT_LABEL(lit_4116);
mSpeedF = tmp;
mSpeed.set(tmp,tmp,tmp);
speedF = tmp;
speed.set(tmp,tmp,tmp);
field_0x9e9 = 0;
field_0x9ec = 0;
return 1;
+9 -10
View File
@@ -191,7 +191,6 @@ extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" u8 const m_data__12daItemBase_c[56];
extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */];
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* __vt__8cM3dGPla[3];
extern "C" extern void* __vt__8cM3dGCyl[3];
extern "C" extern void* __vt__8cM3dGAab[3];
@@ -545,7 +544,7 @@ SECTION_SDATA2 static f64 lit_4072 = 4503599627370496.0 /* cast u32 to float */;
#ifdef NONMATCHING
void daItem_c::CreateInit() {
mAcchCir.SetWall(30.0f, 30.0f);
mAcch.Set(&current.pos, &next.pos, this, 1, &mAcchCir, &mSpeed, NULL, NULL);
mAcch.Set(&current.pos, &next.pos, this, 1, &mAcchCir, &speed, NULL, NULL);
mAcch.ClrWaterNone();
mAcch.ClrRoofNone();
mAcch.SetWtrChkMode(2);
@@ -615,8 +614,8 @@ void daItem_c::CreateInit() {
field_0x978.init(&current.pos, 1);
f32 old_speedF = mSpeedF;
cXyz old_speed = mSpeed;
f32 old_speedF = speedF;
cXyz old_speed = speed;
mAcch.CrrPos(dComIfG_Bgsp());
@@ -628,8 +627,8 @@ void daItem_c::CreateInit() {
field_0x9c0 = 1;
}
mSpeedF = old_speedF;
mSpeed = old_speed;
speedF = old_speedF;
speed = old_speed;
mAcch.ClrGroundLanding();
mAcch.i_ClrGroundHit();
@@ -817,7 +816,7 @@ SECTION_SDATA2 static f32 lit_4321 = 18.0f;
// eyepos.y issue / need sinit for mFuncPtr
#ifdef NONMATCHING
int daItem_c::_daItem_execute() {
field_0x950 = mSpeed;
field_0x950 = speed;
CountTimer();
mEyePos = current.pos;
@@ -1190,7 +1189,7 @@ void daItem_c::mode_water_init() {
/* 8015CCD0-8015CDCC 157610 00FC+00 1/0 0/0 0/0 .text mode_wait__8daItem_cFv */
void daItem_c::mode_wait() {
if (field_0x924 < 5 && mSpeed.y > FLOAT_LABEL(lit_3857)) {
if (field_0x924 < 5 && speed.y > FLOAT_LABEL(lit_3857)) {
mAcch.SetGrndNone();
}
@@ -1460,7 +1459,7 @@ int daItem_c::itemActionForRupee() {
if (mAcch.ChkGroundHit()) {
RotateYBase();
mSpeedF *= 0.95f;
speedF *= 0.95f;
}
if (field_0x94b >= 2) {
@@ -1572,7 +1571,7 @@ int daItem_c::initAction() {
initAngle();
if (isHeart(m_itemNo)) {
mSpeedF = (cM_rndF(5.0f) + 20.0f) - 15.0f;
speedF = (cM_rndF(5.0f) + 20.0f) - 15.0f;
shape_angle.z = cM_rndFX(getData().field_0x2a);
}
+1 -1
View File
@@ -773,7 +773,7 @@ f32 daPy_py_c::getSpinnerRideSpeed() const {
f32 rideSpeed;
if (checkSpinnerRide()) {
rideSpeed = mSpeedF;
rideSpeed = speedF;
} else {
rideSpeed = lit_4215[0];
}
+19 -19
View File
@@ -67,43 +67,43 @@ static int CheckCreateHeap(fopAc_ac_c* p_actor) {
}
/* 80078688-80078690 072FC8 0008+00 1/0 0/0 2/0 .text CreateHeap__16dBgS_MoveBgActorFv */
s32 dBgS_MoveBgActor::CreateHeap() {
int dBgS_MoveBgActor::CreateHeap() {
return 1;
}
/* 80078690-80078698 072FD0 0008+00 1/0 0/0 60/0 .text Create__16dBgS_MoveBgActorFv */
bool dBgS_MoveBgActor::Create() {
return true;
int dBgS_MoveBgActor::Create() {
return 1;
}
/* 80078698-800786A0 072FD8 0008+00 1/0 0/0 3/0 .text Execute__16dBgS_MoveBgActorFPPA3_A4_f */
bool dBgS_MoveBgActor::Execute(f32 (**param_0)[3][4]) {
return true;
int dBgS_MoveBgActor::Execute(f32 (**param_0)[3][4]) {
return 1;
}
/* 800786A0-800786A8 072FE0 0008+00 1/0 0/0 2/0 .text Draw__16dBgS_MoveBgActorFv */
bool dBgS_MoveBgActor::Draw() {
return true;
int dBgS_MoveBgActor::Draw() {
return 1;
}
/* 800786A8-800786B0 072FE8 0008+00 1/0 0/0 6/0 .text Delete__16dBgS_MoveBgActorFv */
bool dBgS_MoveBgActor::Delete() {
return true;
int dBgS_MoveBgActor::Delete() {
return 1;
}
/* 800786B0-800786B8 072FF0 0008+00 1/0 0/0 171/0 .text IsDelete__16dBgS_MoveBgActorFv */
bool dBgS_MoveBgActor::IsDelete() {
return true;
int dBgS_MoveBgActor::IsDelete() {
return 1;
}
/* 800786B8-800786C0 072FF8 0008+00 1/0 0/0 171/0 .text ToFore__16dBgS_MoveBgActorFv */
bool dBgS_MoveBgActor::ToFore() {
return true;
int dBgS_MoveBgActor::ToFore() {
return 1;
}
/* 800786C0-800786C8 073000 0008+00 1/0 0/0 171/0 .text ToBack__16dBgS_MoveBgActorFv */
bool dBgS_MoveBgActor::ToBack() {
return true;
int dBgS_MoveBgActor::ToBack() {
return 1;
}
/* ############################################################################################## */
@@ -189,8 +189,8 @@ asm int dBgS_MoveBgActor::MoveBGCreate(char const* param_0, int param_1, MoveBGA
#endif
/* 800788DC-80078950 07321C 0074+00 0/0 0/0 169/169 .text MoveBGDelete__16dBgS_MoveBgActorFv */
bool dBgS_MoveBgActor::MoveBGDelete() {
bool ret = Delete();
int dBgS_MoveBgActor::MoveBGDelete() {
int ret = Delete();
if (field_0x568 != NULL && field_0x568->ChkUsed()) {
dComIfG_Bgsp().Release(field_0x568);
@@ -199,10 +199,10 @@ bool dBgS_MoveBgActor::MoveBGDelete() {
}
/* 80078950-80078A14 073290 00C4+00 0/0 0/0 183/183 .text MoveBGExecute__16dBgS_MoveBgActorFv */
bool dBgS_MoveBgActor::MoveBGExecute() {
int dBgS_MoveBgActor::MoveBGExecute() {
Mtx* tmp = NULL;
bool ret = Execute(&tmp);
int ret = Execute(&tmp);
if (tmp == NULL) {
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mDoMtx_stack_c::YrotM(shape_angle.y);
+3 -3
View File
@@ -446,11 +446,11 @@ fopAc_ac_c* cc_at_check(fopAc_ac_c* p_enemy, dCcU_AtInfo* p_info) {
p_info->mpActor = at_power_check(p_info);
if (p_info->mpActor != NULL) {
cXyz tmp = p_info->mpActor->mSpeed;
cXyz tmp = p_info->mpActor->speed;
tmp.y = 0.0f;
if (tmp.abs() > 100.0f) {
f32 x = p_info->mpActor->mSpeed.x;
f32 z = p_info->mpActor->mSpeed.z;
f32 x = p_info->mpActor->speed.x;
f32 z = p_info->mpActor->speed.z;
p_info->mHitDirection = cM_atan2s(-x, -z) + (s16)cM_rndFX(4000.0f);
} else {
if (fopAcM_GetName(p_info->mpActor) == PROC_BOOMERANG) {
+1 -1
View File
@@ -1417,7 +1417,7 @@ void dComIfGp_setNextStage(char const* i_stage, s16 i_point, s8 i_roomNo, s8 i_l
if (dComIfGs_isPlayerFieldLastStayFieldDataExistFlag() &&
daPy_getLinkPlayerActorClass() != NULL) {
s8 curPoint = (s8)daPy_getLinkPlayerActorClass()->current.mRoomNo;
s8 curPoint = (s8)daPy_getLinkPlayerActorClass()->current.roomNo;
cXyz pos = dMapInfo_n::getMapPlayerPos();
s16 angle = daPy_getLinkPlayerActorClass()->shape_angle.y;
u8 level = dComIfGp_getNowLevel();
+70 -258
View File
@@ -1,157 +1,19 @@
//
// Generated By: dol2asm
// Translation Unit: f_op/f_op_actor
//
/**
* f_op_actor.cpp
* Actor base process class
*/
#include "f_op/f_op_actor.h"
#include "f_op/f_op_actor_tag.h"
#include "d/d_stage.h"
#include "dol2asm.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/types.h"
#include "d/com/d_com_inf_actor.h"
#include "d/com/d_com_inf_game.h"
#include "d/com/d_com_static.h"
#include "d/com/d_com_inf_actor.h"
#include "d/s/d_s_play.h"
#include "d/d_demo.h"
//
// Forward References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__5csXyzFv();
extern "C" void __ct__11J3DLightObjFv();
extern "C" void __dt__11dEvt_info_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAc_IsActor__FPv();
extern "C" static void fopAc_Draw__FPv();
extern "C" static void fopAc_Execute__FPv();
extern "C" static void fopAc_IsDelete__FPv();
extern "C" static void fopAc_Delete__FPv();
extern "C" static void fopAc_Create__FPv();
extern "C" void getFileListInfo__15dStage_roomDt_cCFv();
extern "C" void initBallModel__13fopEn_enemy_cFv();
extern "C" void checkBallModelDraw__13fopEn_enemy_cFv();
extern "C" void setBallModelEffect__13fopEn_enemy_cFP12dKy_tevstr_c();
extern "C" void drawBallModel__13fopEn_enemy_cFP12dKy_tevstr_c();
extern "C" extern char const* const f_op_f_op_actor__stringBase0;
extern "C" u8 stopStatus__10fopAc_ac_c[4];
extern "C" extern u8 data_80450CC0[4 + 4 /* padding */];
//
// External References:
//
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void fopAcTg_ToActorQ__FP16create_tag_class();
extern "C" void fopAcTg_ActorQTo__FP16create_tag_class();
extern "C" void fopAcTg_Init__FP16create_tag_classPv();
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
extern "C" void fopAcM_DeleteHeap__FP10fopAc_ac_c();
extern "C" void fopAcM_cullingCheck__FPC10fopAc_ac_c();
extern "C" void fopDwTg_ToDrawQ__FP16create_tag_classi();
extern "C" void fopDwTg_DrawQTo__FP16create_tag_class();
extern "C" void fopDwTg_Init__FP16create_tag_classPv();
extern "C" void fpcBs_Is_JustOfType__Fii();
extern "C" void fpcBs_MakeOfType__FPi();
extern "C" void fpcLf_GetPriority__FPC14leafdraw_class();
extern "C" void fpcLf_DrawMethod__FP21leafdraw_method_classPv();
extern "C" void fpcMtd_Execute__FP20process_method_classPv();
extern "C" void fpcMtd_IsDelete__FP20process_method_classPv();
extern "C" void fpcMtd_Delete__FP20process_method_classPv();
extern "C" void fpcMtd_Create__FP20process_method_classPv();
extern "C" void getStatusRoomDt__20dStage_roomControl_cFi();
extern "C" void check__7daSus_cFP10fopAc_ac_c();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void setActor__13dDemo_actor_cFP10fopAc_ac_c();
extern "C" void getActor__14dDemo_object_cFUc();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void moveApproval__14dEvt_control_cFPv();
extern "C" void __ct__11dEvt_info_cFv();
extern "C" void beforeProc__11dEvt_info_cFv();
extern "C" void
set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void dKy_tevstr_init__FP12dKy_tevstr_cScUc();
extern "C" void dKy_depth_dist_set__FPv();
extern "C" void cLib_chaseF__FPfff();
extern "C" void __dl__FPv();
extern "C" void __as__12J3DLightInfoFRC12J3DLightInfo();
extern "C" void searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP12J3DModelData();
extern "C" void searchUpdateMaterialID__15J3DAnmTevRegKeyFP12J3DModelData();
extern "C" void entryTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey();
extern "C" void entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey();
extern "C" void __construct_array();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" f32 Zero__4cXyz[3];
extern "C" u8 m_object__7dDemo_c[4];
//
// Declarations:
//
#include "d/s/d_s_play.h"
#include "f_op/f_op_actor_tag.h"
/* 80018B64-80018BD0 0134A4 006C+00 0/0 7/7 562/562 .text __ct__10fopAc_ac_cFv */
fopAc_ac_c::fopAc_ac_c() {}
/* 80018BD0-80018C0C 013510 003C+00 0/0 12/12 0/0 .text __dt__5csXyzFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm csXyz::~csXyz() {
extern "C" asm void __dt__5csXyzFv() {
nofralloc
#include "asm/f_op/f_op_actor/__dt__5csXyzFv.s"
}
#pragma pop
/* 80018C0C-80018C44 01354C 0038+00 1/1 6/6 0/0 .text __ct__11J3DLightObjFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm J3DLightObj::J3DLightObj() {
extern "C" asm void __ct__11J3DLightObjFv() {
nofralloc
#include "asm/f_op/f_op_actor/__ct__11J3DLightObjFv.s"
}
#pragma pop
/* ############################################################################################## */
/* 803A35B0-803A35D0 -00001 0020+00 0/0 3/0 756/0 .data g_fopAc_Method */
SECTION_DATA extern void* g_fopAc_Method[8] = {
(void*)fopAc_Create__FPv,
(void*)fopAc_Delete__FPv,
(void*)fopAc_Execute__FPv,
(void*)fopAc_IsDelete__FPv,
(void*)fopAc_Draw__FPv,
(void*)NULL,
(void*)NULL,
(void*)NULL,
};
/* 803A35D0-803A35E0 0006F0 000C+04 2/2 1/1 0/0 .data __vt__11dEvt_info_c */
SECTION_DATA extern void* __vt__11dEvt_info_c[3 + 1 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__11dEvt_info_cFv,
/* padding */
NULL,
};
/* 80018C44-80018C8C 013584 0048+00 1/0 0/0 0/0 .text __dt__11dEvt_info_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dEvt_info_c::~dEvt_info_c() {
extern "C" asm void __dt__11dEvt_info_cFv() {
nofralloc
#include "asm/f_op/f_op_actor/__dt__11dEvt_info_cFv.s"
}
#pragma pop
/* 80018C8C-80018CE0 0135CC 0054+00 0/0 5/5 270/270 .text __dt__10fopAc_ac_cFv */
fopAc_ac_c::~fopAc_ac_c() {}
@@ -174,7 +36,11 @@ static int fopAc_Draw(void* actor) {
int ret = 1;
if (!dComIfGp_isPauseFlag()) {
if ((dComIfGp_event_moveApproval(ac) == 2 || (!fopAcM_checkStatus(ac, fopAc_ac_c::stopStatus) && (!fopAcM_checkStatus(ac, 0x100) || !fopAcM_cullingCheck(ac)))) && !fopAcM_checkStatus(ac, 0x21000000)) {
if ((dComIfGp_event_moveApproval(ac) == 2 ||
(!fopAcM_checkStatus(ac, fopAc_ac_c::stopStatus) &&
(!fopAcM_checkStatus(ac, 0x100) || !fopAcM_cullingCheck(ac)))) &&
!fopAcM_checkStatus(ac, 0x21000000))
{
fopAcM_OffCondition(ac, 4);
ret = fpcLf_DrawMethod((leafdraw_method_class*)ac->mSubMtd, ac);
} else {
@@ -199,7 +65,10 @@ static int fopAc_Execute(void* actor) {
s32 move = dComIfGp_event_moveApproval(actor);
fopAcM_OffStatus(ac, 0x40000000);
if (!fopAcM_checkStatus(ac, 0x20000000) && (move == 2 || (move != 0 && !fopAcM_checkStatus(ac, fopAc_ac_c::stopStatus) && (!fopAcM_checkStatus(ac, 0x80) || !fopAcM_CheckCondition(ac, 4))))) {
if (!fopAcM_checkStatus(ac, 0x20000000) &&
(move == 2 || (move != 0 && !fopAcM_checkStatus(ac, fopAc_ac_c::stopStatus) &&
(!fopAcM_checkStatus(ac, 0x80) || !fopAcM_CheckCondition(ac, 4)))))
{
fopAcM_OffCondition(ac, 2);
ac->next = ac->current;
ret = fpcMtd_Execute((process_method_class*)ac->mSubMtd, ac);
@@ -244,7 +113,7 @@ static int fopAc_Delete(void* actor) {
fopAcTg_ActorQTo(&ac->mAcTg);
fopDwTg_DrawQTo(&ac->mDwTg);
fopAcM_DeleteHeap(ac);
dDemo_actor_c* demoAc = dDemo_c::getActor(ac->mDemoActorId);
if (demoAc != NULL) {
demoAc->setActor(NULL);
@@ -254,34 +123,23 @@ static int fopAc_Delete(void* actor) {
return deleted;
}
/* ############################################################################################## */
/* 80451BD0-80451BD4 0001D0 0004+00 2/2 0/0 0/0 .sdata2 @4431 */
SECTION_SDATA2 static f32 lit_4431 = 1.0f / 10.0f;
/* 80451BD4-80451BD8 0001D4 0004+00 1/1 0/0 0/0 .sdata2 @4432 */
SECTION_SDATA2 static f32 lit_4432 = -100.0f;
/* 80451BD8-80451BE0 0001D8 0008+00 1/1 0/0 0/0 .sdata2 @4434 */
SECTION_SDATA2 static f64 lit_4434 = 4503599627370496.0 /* cast u32 to float */;
/* 8001904C-800193FC 01398C 03B0+00 1/0 0/0 0/0 .text fopAc_Create__FPv */
// swapped registers
#ifdef NONMATCHING
static int fopAc_Create(void* actor) {
fopAc_ac_c* ac = (fopAc_ac_c*)actor;
if (fpcM_IsFirstCreating(actor)) {
actor_process_profile_definition* profile = (actor_process_profile_definition*) fpcM_GetProfile(actor);
actor_process_profile_definition* profile =
(actor_process_profile_definition*)fpcM_GetProfile(actor);
ac->mAcType = fpcBs_MakeOfType(&g_fopAc_type);
ac->mSubMtd = (profile_method_class*)profile->mBase.mMethods;
ac->mSubMtd = (profile_method_class*)profile->mSubMtd;
fopAcTg_Init(&ac->mAcTg, ac);
fopAcTg_ToActorQ(&ac->mAcTg);
fopDwTg_Init(&ac->mDwTg, ac);
ac->mStatus = profile->field_0x28;
ac->mGroup = profile->field_0x2c;
ac->mCullType = profile->field_0x2d;
ac->mStatus = profile->mStatus;
ac->mGroup = profile->mActorType;
ac->mCullType = profile->mCullType;
fopAcM_prm_class* append = fopAcM_GetAppend(ac);
if (append != NULL) {
@@ -291,9 +149,10 @@ static int fopAc_Create(void* actor) {
ac->shape_angle = append->mAngle;
ac->mParentPcId = append->mParentPId;
ac->mSubtype = append->mSubtype;
ac->mScale.set(append->mScale[0] * 0.1f, append->mScale[1] * 0.1f, append->mScale[2] * 0.1f);
ac->mScale.set(append->mScale[0] * 0.1f, append->mScale[1] * 0.1f,
append->mScale[2] * 0.1f);
ac->mSetID = append->mEnemyNo;
ac->orig.mRoomNo = append->mRoomNo;
ac->orig.roomNo = append->mRoomNo;
}
ac->next = ac->orig;
@@ -311,7 +170,7 @@ static int fopAc_Create(void* actor) {
ac->mAttentionInfo.field_0x8[0] = 51;
ac->mAttentionInfo.mPosition = ac->orig.pos;
ac->mAttentionInfo.field_0xa = 30;
dKy_tevstr_init(&ac->mTevStr, ac->orig.mRoomNo, -1);
dKy_tevstr_init(&ac->mTevStr, ac->orig.roomNo, -1);
int roomNo = dComIfGp_roomControl_getStayNo();
if (roomNo >= 0) {
@@ -319,45 +178,40 @@ static int fopAc_Create(void* actor) {
}
dStage_FileList_dt_c* filelist = NULL;
if (ac->orig.mRoomNo >= 0) {
filelist = dComIfGp_roomControl_getStatusRoomDt(ac->orig.mRoomNo)->mRoomDt.getFileListInfo();
if (ac->orig.roomNo >= 0) {
filelist =
dComIfGp_roomControl_getStatusRoomDt(ac->orig.roomNo)->mRoomDt.getFileListInfo();
}
if (filelist != NULL) {
if (!dStage_FileList_dt_GetEnemyAppear1Flag(filelist)) {
u32 sw = dStage_FileList_dt_GetBitSw(filelist);
if (sw != 0xFF && dComIfGs_isSwitch(sw, ac->orig.mRoomNo) && profile->field_0x2c == 2) {
return 5;
if (sw != 0xFF && dComIfGs_isSwitch(sw, ac->orig.roomNo) &&
profile->mActorType == 2)
{
return cPhs_ERROR_e;
}
} else {
u32 sw = dStage_FileList_dt_GetBitSw(filelist);
if (sw != 0xFF && !dComIfGs_isSwitch(sw, ac->orig.mRoomNo) && profile->field_0x2c == 2) {
return 5;
if (sw != 0xFF && !dComIfGs_isSwitch(sw, ac->orig.roomNo) &&
profile->mActorType == 2)
{
return cPhs_ERROR_e;
}
}
}
}
int ret = fpcMtd_Create((process_method_class*)ac->mSubMtd, ac);
if (ret == 4) {
if (ret == cPhs_COMPLEATE_e) {
s32 priority = fpcLf_GetPriority(ac);
fopDwTg_ToDrawQ(&ac->mDwTg, priority);
} else if (ret == 5) {
} else if (ret == cPhs_ERROR_e) {
fopAcM_OnCondition(ac, 0x10);
}
return ret;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm int fopAc_Create(void* param_0) {
nofralloc
#include "asm/f_op/f_op_actor/fopAc_Create__FPv.s"
}
#pragma pop
#endif
/* 800193FC-80019404 013D3C 0008+00 0/0 1/0 0/0 .text getFileListInfo__15dStage_roomDt_cCFv */
dStage_FileList_dt_c* dStage_roomDt_c::getFileListInfo() const {
@@ -366,124 +220,75 @@ dStage_FileList_dt_c* dStage_roomDt_c::getFileListInfo() const {
/* 80019404-800194FC 013D44 00F8+00 0/0 0/0 2/2 .text initBallModel__13fopEn_enemy_cFv */
bool fopEn_enemy_c::initBallModel() {
void* objRes = dComIfG_getObjectRes("Alink",daAlink_c::getBallModelIdx());
void* objRes = dComIfG_getObjectRes("Alink", daAlink_c::getBallModelIdx());
mBallModel = mDoExt_J3DModel__create((J3DModelData*)objRes, 0x80000, 0x11000284);
if (!mBallModel) {
return false;
}
else {
} else {
mBallModel->setBaseScale(cXyz::Zero);
mBtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("Alink",daAlink_c::getBallBtkIdx());
mBtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("Alink", daAlink_c::getBallBtkIdx());
mBtk->searchUpdateMaterialID(mBallModel->getModelData());
mBrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("Alink",daAlink_c::getBallBrkIdx());
mBrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("Alink", daAlink_c::getBallBrkIdx());
mBrk->searchUpdateMaterialID(mBallModel->getModelData());
}
return true;
}
/* 800194FC-80019520 013E3C 0024+00 2/2 0/0 2/2 .text checkBallModelDraw__13fopEn_enemy_cFv */
int fopEn_enemy_c::checkBallModelDraw() {
int ret = 0;
if ((mFlags & 1) && !(mFlags & 0x32)) {
ret = 1;
}
return ret;
bool fopEn_enemy_c::checkBallModelDraw() {
return (mFlags & 1) && !(mFlags & 0x32);
}
/* ############################################################################################## */
/* 80451BE0-80451BE8 0001E0 0004+04 2/2 0/0 0/0 .sdata2 @4505 */
SECTION_SDATA2 static f32 lit_4505[1 + 1 /* padding */] = {
1.0f,
/* padding */
0.0f,
};
/* 80451BE8-80451BF0 0001E8 0008+00 1/1 0/0 0/0 .sdata2 @4507 */
SECTION_SDATA2 static f64 lit_4507 = 4503601774854144.0 /* cast s32 to float */;
/* 80019520-800196A0 013E60 0180+00 0/0 0/0 2/2 .text
* setBallModelEffect__13fopEn_enemy_cFP12dKy_tevstr_c */
#ifdef NONMATCHING
// matches with literals
void fopEn_enemy_c::setBallModelEffect(dKy_tevstr_c* param_0) {
void fopEn_enemy_c::setBallModelEffect(dKy_tevstr_c* i_tevstr) {
if (mBallModel) {
field_0x590 += FLOAT_LABEL(lit_4505);
field_0x590 += 1.0f;
if (field_0x590 >= mBtk->getFrameMax()) {
field_0x590 -= mBtk->getFrameMax();
}
if ((u8)checkBallModelDraw()) {
if (checkBallModelDraw()) {
Vec* base_scale = mBallModel->getBaseScale();
cLib_chaseF(&base_scale->x,FLOAT_LABEL(lit_4505),FLOAT_LABEL(lit_4431));
cLib_chaseF(&base_scale->x, 1.0f, 0.1f);
f32 result = base_scale->x;
base_scale->z = result;
base_scale->y = result;
mEffectID1 = dComIfGp_particle_set(mEffectID1, 0x86c8, &mDownPos, param_0);
mEffectID2 = dComIfGp_particle_set(mEffectID2, 0x86c9, &mDownPos, param_0);
mEffectID1 = dComIfGp_particle_set(mEffectID1, 0x86C8, &mDownPos, i_tevstr);
mEffectID2 = dComIfGp_particle_set(mEffectID2, 0x86C9, &mDownPos, i_tevstr);
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void fopEn_enemy_c::setBallModelEffect(dKy_tevstr_c* param_0) {
nofralloc
#include "asm/f_op/f_op_actor/setBallModelEffect__13fopEn_enemy_cFP12dKy_tevstr_c.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80451BF0-80451BF4 0001F0 0004+00 1/1 0/0 0/0 .sdata2 @4555 */
SECTION_SDATA2 static u8 lit_4555[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 80451BF4-80451BF8 0001F4 0004+00 1/1 0/0 0/0 .sdata2 @4556 */
SECTION_SDATA2 static f32 lit_4556 = 1.0f / 20.0f;
/* 80451BF8-80451C00 0001F8 0004+04 1/1 0/0 0/0 .sdata2 @4557 */
SECTION_SDATA2 static f32 lit_4557[1 + 1 /* padding */] = {
1.0f / 100.0f,
/* padding */
0.0f,
};
/* 800196A0-800197BC 013FE0 011C+00 0/0 0/0 2/2 .text
* drawBallModel__13fopEn_enemy_cFP12dKy_tevstr_c */
void fopEn_enemy_c::drawBallModel(dKy_tevstr_c* param_0) {
f32 tmp;
void fopEn_enemy_c::drawBallModel(dKy_tevstr_c* i_tevstr) {
f32 scale_target;
if (mBallModel) {
Vec* base_scale = mBallModel->getBaseScale();
if ((u8)checkBallModelDraw()) {
tmp = FLOAT_LABEL(lit_4505);
if (checkBallModelDraw()) {
scale_target = 1.0f;
} else {
tmp = FLOAT_LABEL(lit_4555);
scale_target = 0.0f;
}
cLib_chaseF(&base_scale->x,tmp,FLOAT_LABEL(lit_4556));
cLib_chaseF(&base_scale->x, scale_target, 0.05f);
base_scale->y = base_scale->x;
base_scale->z = base_scale->x;
mBallModel->setBaseScale(*base_scale);
if (base_scale->x > FLOAT_LABEL(lit_4557)) {
mDoMtx_trans(mBallModel->getBaseTRMtx(),mDownPos.x,mDownPos.y,mDownPos.z);
i_dKy_getEnvlight()->setLightTevColorType_MAJI(mBallModel, param_0);
if (base_scale->x > 0.01f) {
mDoMtx_trans(mBallModel->getBaseTRMtx(), mDownPos.x, mDownPos.y, mDownPos.z);
i_dKy_getEnvlight()->setLightTevColorType_MAJI(mBallModel, i_tevstr);
mBtk->setFrame(field_0x590);
mBallModel->getModelData()->entryTexMtxAnimator(mBtk);
@@ -493,10 +298,17 @@ void fopEn_enemy_c::drawBallModel(dKy_tevstr_c* param_0) {
mDoExt_modelUpdateDL(mBallModel);
}
}
}
/* ############################################################################################## */
/* 803A35B0-803A35D0 -00001 0020+00 0/0 3/0 756/0 .data g_fopAc_Method */
extern actor_method_class g_fopAc_Method = {
(process_method_func)fopAc_Create, (process_method_func)fopAc_Delete,
(process_method_func)fopAc_Execute, (process_method_func)fopAc_IsDelete,
(process_method_func)fopAc_Draw,
};
/* ############################################################################################## */
/* 80450CC0-80450CC8 0001C0 0004+04 0/0 9/9 0/0 .sbss
* sInstance__35JASGlobalInstance<14JAUSectionHeap> */
+12 -12
View File
@@ -743,7 +743,7 @@ void fopAcM_calcSpeed(fopAc_ac_c* p_actor) {
f32 speedF = fopAcM_GetSpeedF(p_actor);
f32 gravity = fopAcM_GetGravity(p_actor);
f32 xSpeed = speedF * cM_ssin(p_actor->getAngle().GetY());
f32 ySpeed = p_actor->mSpeed.y + gravity;
f32 ySpeed = p_actor->speed.y + gravity;
f32 zSpeed = speedF * cM_scos(p_actor->getAngle().GetY());
clampMin(ySpeed, fopAcM_GetMaxFallSpeed(p_actor));
@@ -752,9 +752,9 @@ void fopAcM_calcSpeed(fopAc_ac_c* p_actor) {
/* 8001A660-8001A6CC 014FA0 006C+00 1/1 1/1 17/17 .text fopAcM_posMove__FP10fopAc_ac_cPC4cXyz */
void fopAcM_posMove(fopAc_ac_c* p_actor, const cXyz* p_movePos) {
p_actor->current.pos.x += p_actor->mSpeed.x;
p_actor->current.pos.y += p_actor->mSpeed.y;
p_actor->current.pos.z += p_actor->mSpeed.z;
p_actor->current.pos.x += p_actor->speed.x;
p_actor->current.pos.y += p_actor->speed.y;
p_actor->current.pos.z += p_actor->speed.z;
if (p_movePos != NULL) {
p_actor->current.pos.x += p_movePos->x;
@@ -1501,8 +1501,8 @@ s32 fopAcM_createItemForBoss(const cXyz* p_pos, int param_2, int roomNo, const c
fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(PROC_Obj_LifeContainer, 0xFFFF0000 | param_8 << 0x8 | (param_2 & 0xFF), p_pos, roomNo, p_angle,
p_scale, -1, NULL, NULL);
if (actor != NULL) {
actor->mSpeedF = speedF;
actor->mSpeed.y = speedY;
actor->speedF = speedF;
actor->speed.y = speedY;
}
return fopAcM_GetID(actor);
}
@@ -1668,11 +1668,11 @@ void* fopAcM_fastCreateItem(const cXyz* p_pos, int i_itemNo, int i_roomNo, const
if (actor != NULL) {
if (p_speedF != NULL) {
actor->mSpeedF = *p_speedF * (1.0f + cM_rndFX(0.3f));
actor->speedF = *p_speedF * (1.0f + cM_rndFX(0.3f));
}
if (p_speedY != NULL) {
actor->mSpeed.y = *p_speedY * (1.0f + cM_rndFX(0.2f));
actor->speed.y = *p_speedY * (1.0f + cM_rndFX(0.2f));
}
}
}
@@ -1688,11 +1688,11 @@ void* fopAcM_fastCreateItem(const cXyz* p_pos, int i_itemNo, int i_roomNo, const
if (actor != NULL) {
if (p_speedF != NULL) {
actor->mSpeedF = *p_speedF;
actor->speedF = *p_speedF;
}
if (p_speedY != NULL) {
actor->mSpeed.y = *p_speedY;
actor->speed.y = *p_speedY;
}
}
@@ -1780,7 +1780,7 @@ asm fopAc_ac_c* fopAcM_myRoomSearchEnemy(s8 param_0) {
* fopAcM_createDisappear__FPC10fopAc_ac_cPC4cXyzUcUcUc */
s32 fopAcM_createDisappear(const fopAc_ac_c* p_actor, const cXyz* p_pos, u8 param_3, u8 param_4,
u8 param_5) {
s8 roomNo = p_actor->current.mRoomNo;
s8 roomNo = p_actor->current.roomNo;
return fopAcM_GetID(fopAcM_fastCreate(PROC_DISAPPEAR, (param_5 << 0x10) | (param_3 << 0x8) | param_4,
p_pos, roomNo, &p_actor->current.angle, NULL, 0xFF, NULL,
NULL));
@@ -2041,7 +2041,7 @@ s32 fopAcM_carryOffRevise(fopAc_ac_c* param_0) {
param_0->current.pos.x = player->current.pos.x;
param_0->current.pos.z = player->current.pos.z;
param_0->next.pos = param_0->current.pos;
param_0->mSpeedF = FLOAT_LABEL(lit_4645);
param_0->speedF = FLOAT_LABEL(lit_4645);
return 1;
}