summaryrefslogtreecommitdiff
path: root/src/d/actor/d_a_obj_drift.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/d/actor/d_a_obj_drift.cpp')
-rw-r--r--src/d/actor/d_a_obj_drift.cpp65
1 files changed, 25 insertions, 40 deletions
diff --git a/src/d/actor/d_a_obj_drift.cpp b/src/d/actor/d_a_obj_drift.cpp
index 4e361f4c..4006b750 100644
--- a/src/d/actor/d_a_obj_drift.cpp
+++ b/src/d/actor/d_a_obj_drift.cpp
@@ -39,7 +39,7 @@ namespace daObjDrift {
/* mWavePhase */ 0.01f,
/* mWaveAmplitude */ 0.02f,
/* mRideYOff */ -20.0f,
- /* mWavePhaseXStep */ 400,
+ /* mWavePhaseXStep */ 400,
/* field_0x16 */ 0,
/* mWaveSinScale */ 0.3f,
/* field_0x1C */ 0.12f,
@@ -48,7 +48,7 @@ namespace daObjDrift {
/* mPosMoveDamp */ 0.07f,
/* mWavePhaseYStep */ 1000,
/* mWavePhaseZStep */ 1111,
- /* mTiltSinScale */ 0.01f,
+ /* mTiltSinScale */ 0.01f,
/* field_0x34 */ 0.5f,
/* field_0x38 */ 30,
/* field_0x3A */ 30,
@@ -60,9 +60,9 @@ namespace daObjDrift {
} // namespace
} // namespace daObjDrift
-const char daObjDrift::Act_c::M_arcname[] = "Kryu"; /* 0x40 */
+const char daObjDrift::Act_c::M_arcname[] = "Kryu";
-const dCcD_SrcCyl daObjDrift::Act_c::M_cyl_src = { /* 0x48 */
+const dCcD_SrcCyl daObjDrift::Act_c::M_cyl_src = {
{
/* Flags */ 0,
/* SrcObjAt Type */ 0,
@@ -93,14 +93,13 @@ const dCcD_SrcCyl daObjDrift::Act_c::M_cyl_src = { /* 0x48 */
/* 000000EC-000001A0 .text CreateHeap__Q210daObjDrift5Act_cFv */
BOOL daObjDrift::Act_c::CreateHeap() {
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes(M_arcname, dRes_INDEX_KRYU_BDL_RYU_00_e);
- JUT_ASSERT(0x13A, model_data != NULL);
+ JUT_ASSERT(314, model_data != NULL);
mModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000022);
return mModel != NULL;
}
/* 000001A0-00000370 .text Create__Q210daObjDrift5Act_cFv */
BOOL daObjDrift::Act_c::Create() {
- f32 L_waterY[2];
fopAcM_SetMtx(this, mModel->getBaseTRMtx());
init_mtx();
@@ -114,8 +113,9 @@ BOOL daObjDrift::Act_c::Create() {
make_flower();
mpBgW->SetRideCallback(rideCB);
mode_wait_init();
- if (fopAcM_getWaterY(&home.pos, L_waterY)) {
- eyePos.y = L_waterY[0];
+ f32 waterY;
+ if (fopAcM_getWaterY(&home.pos, &waterY)) {
+ eyePos.y = waterY;
}
mRideYOff = 0.0f;
@@ -126,22 +126,21 @@ BOOL daObjDrift::Act_c::Create() {
mTiltZ = 0.0f;
mTiltX = 0.0f;
- mWavePhaseX = cM_rndFX(32768.0f);
- mWavePhaseY = cM_rndFX(32768.0f);
- mWavePhaseZ = cM_rndFX(32768.0f);
+ mWavePhaseX = cM_rndFX(0x8000);
+ mWavePhaseY = cM_rndFX(0x8000);
+ mWavePhaseZ = cM_rndFX(0x8000);
mRideFlag = FALSE;
mTargetAngleY = 0;
mAngleChaseY = 0;
- mHitDir.set((cXyz&)cXyz::Zero);
+ mHitDir.set(cXyz::Zero);
field_0x4B0.setall(5.0f);
mPrevPos.set(current.pos);
f32 prevY = mPrevPos.y;
field_0x4C8 = prevY;
field_0x4CC = prevY;
- // f32 endZero = 0.0f;
field_0x4D0 = 0.0f;
field_0x4D4 = 0.0f;
@@ -162,7 +161,7 @@ cPhs_State daObjDrift::Act_c::Mthd_Create() {
dBgS_MoveBGProc_TypicalRotY,
DEMO_SELECT(0x8000, 0x1B80)
);
- JUT_ASSERT(0x19B, (phase_state == cPhs_COMPLEATE_e) || (phase_state == cPhs_ERROR_e));
+ JUT_ASSERT(411, (phase_state == cPhs_COMPLEATE_e) || (phase_state == cPhs_ERROR_e));
}
return phase_state;
}
@@ -179,10 +178,8 @@ void daObjDrift::Act_c::make_flower() {
0,
&pos,
fopAcM_GetHomeRoomNo(this),
- &angle,
- NULL,
- -1,
- NULL);
+ &angle
+ );
} else {
mFlowerPid = fpcM_ERROR_PROCESS_ID_e;
}
@@ -223,7 +220,7 @@ BOOL daObjDrift::Act_c::Delete() {
/* 0000095C-000009A8 .text Mthd_Delete__Q210daObjDrift5Act_cFv */
BOOL daObjDrift::Act_c::Mthd_Delete() {
- s32 ret = MoveBGDelete();
+ BOOL ret = MoveBGDelete();
dComIfG_resDeleteDemo(&mPhase, M_arcname);
return ret;
}
@@ -309,27 +306,25 @@ void daObjDrift::Act_c::init_mtx() {
/* 00000D54-00000EC4 .text rideCB__Q210daObjDrift5Act_cFP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
void daObjDrift::Act_c::rideCB(dBgW*, fopAc_ac_c* i_this, fopAc_ac_c* i_ride) {
Act_c* drift = (Act_c*)i_this;
- daPy_py_c* player = (daPy_py_c*)i_ride;
- if (fopAcM_GetProfName(player) != fpcNm_PLAYER_e) {
+ if (fopAcM_GetProfName(i_ride) != fpcNm_PLAYER_e) {
return;
}
+ daPy_py_c* player = (daPy_py_c*)i_ride;
+
f32 ratio = 1.0f / attr().mWaveHeight;
drift->mRideYOff = attr().mRideYOff;
-
- cXyz delta;
- cXyz localDelta;
+ cXyz delta = player->current.pos - drift->current.pos;
Mtx invMtx;
- delta = player->current.pos - drift->current.pos;
- if (PSMTXInverse(drift->mMtx, invMtx) &&
- !dComIfGp_checkPlayerStatus0(0, daPyStts0_HANG_e)) {
+ if (MTXInverse(drift->mMtx, invMtx) && !dComIfGp_checkPlayerStatus0(0, daPyStts0_HANG_e)) {
+ cXyz localDelta;
mDoMtx_multVecSR(invMtx, &delta, &localDelta);
f32 sqMag = localDelta.abs2XZ();
if (localDelta.y < 400.0f) {
- if (sqMag < 129600.0f) {
+ if (sqMag < SQUARE(360.0f)) {
drift->mRideFlag = TRUE;
}
} else if (localDelta.y < 550.0f) {
- if (sqMag < 48400.0f) {
+ if (sqMag < SQUARE(220.0f)) {
drift->mRideFlag = TRUE;
}
}
@@ -351,18 +346,8 @@ void daObjDrift::Act_c::set_current() {
gravity = yDelta * attr().mWaveAmplitude
+ sinVal * attr().mWaveSinScale;
daObj::posMoveF_stream(this, NULL, &cXyz::Zero, attr().mWaveSpeed, attr().mWavePhase);
-#if VERSION == VERSION_DEMO
- f32 rotFactor;
+ f32 rotFactor = mRideFlag != 0 ? 0.2f : 1.0f;
f32 chaseFactor;
-#else
- f32 chaseFactor;
- f32 rotFactor;
-#endif
- if (mRideFlag != 0) {
- rotFactor = 0.2f;
- } else {
- rotFactor = 1.0f;
- }
if (mMode == MODE_ROT) {
chaseFactor = attr().mTiltChaseRot;
} else {