summaryrefslogtreecommitdiff
path: root/src/d/actor/d_a_rd.cpp
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2025-05-28 01:39:07 -0400
committerLagoLunatic <LagoLunatic@users.noreply.github.com>2025-05-28 01:39:07 -0400
commitb9190842b73c06b54519e66c863188ca22a5d39d (patch)
treed694374eeadefff77944f96da225fb2a0b876101 /src/d/actor/d_a_rd.cpp
parent255d01c6db33e8fc4d22b2ffd318e1065660c254 (diff)
Demo work
Diffstat (limited to 'src/d/actor/d_a_rd.cpp')
-rw-r--r--src/d/actor/d_a_rd.cpp35
1 files changed, 29 insertions, 6 deletions
diff --git a/src/d/actor/d_a_rd.cpp b/src/d/actor/d_a_rd.cpp
index d6364e7d..d80b43e9 100644
--- a/src/d/actor/d_a_rd.cpp
+++ b/src/d/actor/d_a_rd.cpp
@@ -199,7 +199,7 @@ static BOOL createHeap_CB(fopAc_ac_c* i_this) {
/* 000006C0-0000096C .text _createHeap__6daRd_cFv */
BOOL daRd_c::_createHeap() {
J3DModelData* modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(m_arc_name, RD_BDL_RD));
- JUT_ASSERT(504, modelData != NULL);
+ JUT_ASSERT(VERSION_SELECT(502, 504, 504, 504), modelData != NULL);
mpMorf = new mDoExt_McaMorf(
modelData,
@@ -220,7 +220,7 @@ BOOL daRd_c::_createHeap() {
}
J3DAnmTextureSRTKey* btk = static_cast<J3DAnmTextureSRTKey*>(dComIfG_getObjectRes(m_arc_name, RD_BTK_RD_CLOSE));
- JUT_ASSERT(525, btk != NULL);
+ JUT_ASSERT(VERSION_SELECT(528, 525, 525, 525), btk != NULL);
if (!mBtkAnm.init(modelData, btk, true, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1, false, 0)) {
return FALSE;
}
@@ -228,7 +228,7 @@ BOOL daRd_c::_createHeap() {
modelData->getJointNodePointer(0x0C)->setCallBack(nodeHeadControl_CB); // ree_atama_1
J3DAnmTevRegKey* brk = static_cast<J3DAnmTevRegKey*>(dComIfG_getObjectRes(m_arc_name, RD_BRK_NML));
- JUT_ASSERT(550, brk != NULL);
+ JUT_ASSERT(VERSION_SELECT(553, 550, 550, 550), brk != NULL);
if (!mBrkAnm.init(modelData, brk, true, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1, false, 0)) {
return FALSE;
}
@@ -399,12 +399,14 @@ bool daRd_c::createArrowHeap() {
/* 000009D0-00000A38 .text checkPlayerInAttack__6daRd_cFv */
bool daRd_c::checkPlayerInAttack() {
- return dLib_checkActorInFan(current.pos, dComIfGp_getLinkPlayer(), shape_angle.y, l_HIO.mAttackSpreadAngle, l_HIO.mAttackRadius, 100.0f);
+ daPy_py_c* player = (daPy_py_c*)dComIfGp_getLinkPlayer();
+ return dLib_checkActorInFan(current.pos, player, shape_angle.y, l_HIO.mAttackSpreadAngle, l_HIO.mAttackRadius, 100.0f);
}
/* 00000A38-00000AA0 .text checkPlayerInCry__6daRd_cFv */
bool daRd_c::checkPlayerInCry() {
- return dLib_checkActorInFan(current.pos, dComIfGp_getLinkPlayer(), mHeadAngle, l_HIO.mCrySpreadAngle, l_HIO.mCryRadius, 100.0f);
+ daPy_py_c* player = (daPy_py_c*)dComIfGp_getLinkPlayer();
+ return dLib_checkActorInFan(current.pos, player, mHeadAngle, l_HIO.mCrySpreadAngle, l_HIO.mCryRadius, 100.0f);
}
/* 00000AA0-00000D78 .text lookBack__6daRd_cFv */
@@ -459,7 +461,12 @@ void daRd_c::lookBack() {
mTargetPos = player->getHeadTopPos();
break;
case MODE_RETURN:
- if (dLib_checkActorInCircle(mSpawnPos, this, 100.0f, 1000.0f)) {
+#if VERSION == VERSION_DEMO
+ if (dLib_checkActorInCircle(mSpawnPos, this, 100.0f, 100.0f))
+#else
+ if (dLib_checkActorInCircle(mSpawnPos, this, 100.0f, 1000.0f))
+#endif
+ {
mJntCtrl.clrTrn();
mJntCtrl.onHeadLock();
mJntCtrl.onBackBoneLock();
@@ -494,7 +501,9 @@ bool daRd_c::checkTgHit() {
if (mCyl.ChkTgHit()) {
hitObj = mCyl.GetTgHitObj();
if (hitObj->GetAtType() == AT_TYPE_LIGHT) {
+#if VERSION > VERSION_DEMO
fopAcM_seStart(this, JA_SE_CM_PW_BECOME_SOLID, 0);
+#endif
modeProcInit(MODE_PARALYSIS);
return true;
}
@@ -647,7 +656,9 @@ bool daRd_c::checkTgHit() {
}
if (dComIfGp_getDetect().chk_light(&current.pos)) {
+#if VERSION > VERSION_DEMO
fopAcM_seStart(this, JA_SE_CM_PW_BECOME_SOLID, 0);
+#endif
modeProcInit(MODE_PARALYSIS);
return true;
}
@@ -1059,9 +1070,13 @@ void daRd_c::modeAttack() {
if (dist <= 20.0f + REG12_F(2)) {
cLib_addCalcPosXZ2(&current.pos, player->current.pos, 0.3f, 1.0f);
if (cLib_calcTimer(&mTimer2) == 0) {
+#if VERSION == VERSION_DEMO
+ dComIfGp_setItemLifeCount(-1.0f);
+#else
if (!daPy_getPlayerLinkActorClass()->checkNoDamageMode()) {
daPy_getPlayerLinkActorClass()->setDamagePoint(-1.0f);
}
+#endif
mTimer2 = 30;
}
} else if (mAcch.ChkWallHit()) {
@@ -1753,14 +1768,20 @@ void daRd_c::createInit() {
}
}
+#if VERSION > VERSION_DEMO
setBrkAnm(0);
+#endif
setMtx();
+#if VERSION > VERSION_DEMO
mBtkAnm.play();
mBrkAnm.play();
mpMorf->play(&current.pos, 0, 0);
mBrkAnm.setFrame(0.0f);
+#endif
mpMorf->calc();
+#if VERSION > VERSION_DEMO
g_env_light.settingTevStruct(TEV_TYPE_ACTOR, &current.pos, &tevStr);
+#endif
fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx());
fopAcM_setCullSizeBox(this, -100.0f, -10.0f, -100.0f, 100.0f, 250.0f, 150.0f);
@@ -1838,9 +1859,11 @@ cPhs_State daRd_c::_create() {
bool daRd_c::_delete() {
dComIfG_resDelete(&mPhs, m_arc_name);
enemy_fire_remove(&mEnemyFire);
+#if VERSION > VERSION_DEMO
if (heap) {
mpMorf->stopZelAnime();
}
+#endif
return true;
}