summaryrefslogtreecommitdiff
path: root/src/d/actor/d_a_mozo.cpp
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2024-07-20 19:31:55 -0400
committerLagoLunatic <LagoLunatic@users.noreply.github.com>2024-07-20 19:31:55 -0400
commit9f647b6b142cc773cefe92c06ea6506833f9483f (patch)
treee06accf7abe600722b353fcfe3c2c6315ff52c14 /src/d/actor/d_a_mozo.cpp
parent00d047c4978fa9ae8eab4d257942d58c880cb178 (diff)
minor bk, damagereaction, mozo work
Diffstat (limited to 'src/d/actor/d_a_mozo.cpp')
-rw-r--r--src/d/actor/d_a_mozo.cpp50
1 files changed, 33 insertions, 17 deletions
diff --git a/src/d/actor/d_a_mozo.cpp b/src/d/actor/d_a_mozo.cpp
index 0feb8c4d..02695e6a 100644
--- a/src/d/actor/d_a_mozo.cpp
+++ b/src/d/actor/d_a_mozo.cpp
@@ -1,7 +1,7 @@
-//
-// Generated by dtk
-// Translation Unit: d_a_mozo.cpp
-//
+/**
+ * d_a_mozo.cpp
+ * Moblin Statue / モ石像 (Mo Sekizou)
+ */
#include "d/actor/d_a_mozo.h"
#include "d/res/res_mozo.h"
@@ -14,12 +14,30 @@
#include "d/d_lib.h"
#include "m_do/m_Do_mtx.h"
#include "m_Do/m_Do_ext.h"
+#include "m_Do/m_Do_hostIO.h"
static daMozo_HIO_c l_HIO;
/* 000000EC-000001D0 .text __ct__12daMozo_HIO_cFv */
daMozo_HIO_c::daMozo_HIO_c() {
/* Nonmatching */
+ m3C = 0.0f;
+ m40 = -300.0f;
+ m44 = 600.0f;
+ mChildID = -1;
+ m08 = -1;
+ mpBeamChild = &mBeamChild;
+ mpFireChild = &mFireChild;
+ mpBeamChild->m04 = 1000.0f;
+ mpBeamChild->m08 = 1200.0f;
+ mpBeamChild->m0C = 0x2000;
+ mpBeamChild->m0E = 0x2800;
+ mpBeamChild->m10 = 0;
+ mpFireChild->m04 = 1000.0f;
+ mpFireChild->m08 = 1200.0f;
+ mpFireChild->m0C = 0x2000;
+ mpFireChild->m0E = 0x2800;
+ mpFireChild->m10 = 0;
}
/* 000002D0-00000568 .text daMozo_nodeCallBackBeam__FP8daMozo_cP8J3DModelP7J3DNodei */
@@ -157,28 +175,22 @@ s32 daMozo_c::CreateInit() {
/* Nonmatching */
J3DModelData* mdlData = mAnimMorf->getModel()->getModelData();
- int param = base.mParameters * 0xFF;
- if (param == 0xFF) {
- param = 0;
+ u8 temp = fopAcM_GetParam(this) & 0xFF;
+ if (temp == 0xFF) {
+ temp = 0;
}
-
- int a = 2;
- if (param < 3) {
- a = param;
- }
-
- // TODO: insert missing assignment here
+ field_0x376 = cLib_minMaxLimit<u8>(temp, 0, 2);
mAnimMorf->getModel()->setUserArea((u32)this);
- for (int i = 0; i < mdlData->getJointNum(); i++) {
+ for (u16 i = 0; i < mdlData->getJointNum(); i++) {
if (i == 2) {
- mdlData->getJointNodePointer(2)->setCallBack((J3DNodeCallBack)daMozo_nodeCallBack);
+ mdlData->getJointNodePointer(i)->setCallBack(daMozo_nodeCallBack);
}
}
mQuatRotation = ZeroQuat;
- fopAcM_setCullSizeBox(this, -1000.f, -1000.f, -1000.f, 1000.0f, 1000.0f, 1000.0f);
+ fopAcM_setCullSizeBox(this, -1000.0f, -1000.0f, -1000.0f, 1000.0f, 1000.0f, 1000.0f);
fopAcM_SetMtx(this, mAnimMorf->getModel()->getBaseTRMtx());
// TODO: Insert missing code here
@@ -187,6 +199,10 @@ s32 daMozo_c::CreateInit() {
mAnimMorf->calc();
wait_proc_init();
+ if (l_HIO.mChildID < 0) {
+ l_HIO.mChildID = mDoHIO_root.mDoHIO_createChild("モ石像", &l_HIO); // "Mo Statue" (mo sekizou)
+ }
+
return cPhs_COMPLEATE_e;
}