mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-06 19:41:31 -04:00
d_a_rd work
This commit is contained in:
@@ -51,6 +51,21 @@ public:
|
||||
PROC_EXEC = 1
|
||||
};
|
||||
|
||||
enum Mode {
|
||||
MODE_WAIT = 0x0,
|
||||
MODE_DAMAGE = 0x1,
|
||||
MODE_PARALYSIS = 0x2,
|
||||
MODE_DEATH = 0x3,
|
||||
MODE_MOVE = 0x4,
|
||||
MODE_CRY = 0x5,
|
||||
MODE_CRY_WAIT = 0x6,
|
||||
MODE_ATTACK = 0x7,
|
||||
MODE_RETURN = 0x8,
|
||||
MODE_SILENT_PRAY = 0x9,
|
||||
MODE_SW_WAIT = 0xA,
|
||||
MODE_KANOKE = 0xB,
|
||||
};
|
||||
|
||||
typedef void (daRd_c::*ModeFunc)();
|
||||
|
||||
static const u32 m_heapsize;
|
||||
@@ -69,8 +84,8 @@ public:
|
||||
BOOL _nodeHeadControl(J3DNode*, J3DModel*);
|
||||
BOOL _createHeap();
|
||||
bool createArrowHeap();
|
||||
void checkPlayerInAttack();
|
||||
void checkPlayerInCry();
|
||||
bool checkPlayerInAttack();
|
||||
bool checkPlayerInCry();
|
||||
void lookBack();
|
||||
void checkTgHit();
|
||||
void setCollision();
|
||||
@@ -127,7 +142,9 @@ public:
|
||||
/* 0x2D0 */ mDoExt_McaMorf* mpMorf;
|
||||
/* 0x2D4 */ mDoExt_btkAnm mBtkAnm;
|
||||
/* 0x2E8 */ mDoExt_brkAnm mBrkAnm;
|
||||
/* 0x300 */ u8 m300[0x310 - 0x300];
|
||||
/* 0x300 */ cXyz m300;
|
||||
/* 0x30C */ s16 m30C;
|
||||
/* 0x30E */ u8 m30E[0x310 - 0x30E];
|
||||
/* 0x310 */ int m310;
|
||||
/* 0x314 */ int m314;
|
||||
/* 0x318 */ int m318;
|
||||
@@ -141,9 +158,9 @@ public:
|
||||
/* 0x69C */ dNpc_JntCtrl_c mJntCtrl;
|
||||
/* 0x6D0 */ u32 m6D0;
|
||||
/* 0x6D4 */ int m6D4;
|
||||
/* 0x6D8 */ u8 m6D8;
|
||||
/* 0x6D9 */ u8 m6D9;
|
||||
/* 0x6DA */ u8 m6DA;
|
||||
/* 0x6D8 */ s8 m6D8;
|
||||
/* 0x6D9 */ s8 m6D9;
|
||||
/* 0x6DA */ s8 m6DA;
|
||||
/* 0x6DB */ u8 m6DB;
|
||||
/* 0x6DC */ u8 m6DC;
|
||||
/* 0x6DD */ u8 m6DD[0x6E0 - 0x6DD];
|
||||
@@ -163,7 +180,10 @@ public:
|
||||
/* 0xD1E */ s16 mD1E;
|
||||
/* 0xD20 */ u8 mD20[0xD34 - 0xD20];
|
||||
/* 0xD34 */ bool mbIkari;
|
||||
/* 0xD35 */ u8 mD35[0xD44 - 0xD35];
|
||||
/* 0xD35 */ u8 mD35[0xD38 - 0xD35];
|
||||
/* 0xD38 */ f32 mD38;
|
||||
/* 0xD3C */ int mD3C;
|
||||
/* 0xD40 */ int mD40;
|
||||
};
|
||||
|
||||
#endif /* D_A_RD_H */
|
||||
|
||||
@@ -80,7 +80,8 @@ public:
|
||||
/* 0x1C */ f32 m1C;
|
||||
/* 0x20 */ f32 m20;
|
||||
/* 0x24 */ f32 m24;
|
||||
};
|
||||
/* 0x28 */ u8 m28[0x2C - 0x28];
|
||||
}; // Size: 0x2C
|
||||
|
||||
JntHit_c* JntHit_create(J3DModel* model, __jnt_hit_data_c* jntHitData, s16 hitDataCount);
|
||||
|
||||
|
||||
+35
-4
@@ -3,8 +3,12 @@
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
|
||||
class mDoExt_McaMorf;
|
||||
#include "dolphin/mtx/mtx.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "dolphin/gx/GXStruct.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DModelData.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "d/d_path.h"
|
||||
|
||||
class STControl {
|
||||
public:
|
||||
@@ -41,6 +45,12 @@ public:
|
||||
/* 0x26 */ s16 field_0x26;
|
||||
};
|
||||
|
||||
class CSTControl {
|
||||
public:
|
||||
void getValueStick();
|
||||
void getAngleStick();
|
||||
};
|
||||
|
||||
class dLib_anm_prm_c {
|
||||
public:
|
||||
/* 0x00 */ s8 field_0x00;
|
||||
@@ -51,9 +61,30 @@ public:
|
||||
/* 0x0C */ u32 loopMode;
|
||||
};
|
||||
|
||||
void dLib_bcks_setAnm(const char*, mDoExt_McaMorf*, s8*, s8*, s8*, const int*, const dLib_anm_prm_c*, bool);
|
||||
bool dLib_checkPlayerInCircle(cXyz, f32, f32);
|
||||
class dLib_circle_path_c;
|
||||
class dLib_wave_c;
|
||||
class dLib_anm_idx_c;
|
||||
|
||||
void dLib_setCirclePath(dLib_circle_path_c*);
|
||||
void dLib_getWaterY(cXyz&, dBgS_ObjAcch&);
|
||||
void dLib_waveRot(Vec*, f32, dLib_wave_c*);
|
||||
void dLib_debugDrawAxis(Mtx&, f32);
|
||||
void dLib_debugDrawFan(cXyz&, s16, s16, f32, const GXColor&);
|
||||
void dLib_brkInit(J3DModelData*, mDoExt_brkAnm*, const char*, int);
|
||||
void dLib_btkInit(J3DModelData*, mDoExt_btkAnm*, const char*, int);
|
||||
void dLib_setAnm(const char*, mDoExt_McaMorf*, s8*, s8*, s8*, const dLib_anm_idx_c*, const dLib_anm_prm_c*, bool);
|
||||
void dLib_bcks_setAnm(const char*, mDoExt_McaMorf*, s8*, s8*, s8*, const int*, const dLib_anm_prm_c*, bool);
|
||||
void dLib_scaleAnime(f32*, f32*, int, int*, f32, f32, f32);
|
||||
void dLib_getPosFromMtx(f32(*)[4], cXyz*);
|
||||
void dLib_pathInfo(dPath**, u8);
|
||||
void dLib_pathMove(cXyz*, s8*, dPath*, f32, int (*)(cXyz*, cXyz*, cXyz*, void*), void*);
|
||||
void dLib_setNextStageBySclsNum(u8, s8);
|
||||
void dLib_setFirstMsg(u16, u32, u32);
|
||||
bool dLib_checkPlayerInCircle(cXyz, f32, f32);
|
||||
bool dLib_checkActorInCircle(cXyz, fopAc_ac_c*, f32, f32);
|
||||
bool dLib_checkActorInFan(cXyz, fopAc_ac_c*, s16, s16, f32, f32);
|
||||
void dLib_getIplDaysFromSaveTime();
|
||||
void dLib_get_QuatFromTriangle(cXyz*, cXyz*, cXyz*);
|
||||
void dLib_calc_QuatFromTriangle(Quaternion*, f32, cXyz*, cXyz*, cXyz*);
|
||||
|
||||
#endif /* D_LIB_H */
|
||||
|
||||
@@ -1,9 +1,17 @@
|
||||
#ifndef D_MATERIAL_H
|
||||
#define D_MATERIAL_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
class J3DMaterialTable;
|
||||
class J3DAnmTextureSRTKey;
|
||||
class mDoExt_McaMorf;
|
||||
class mDoExt_invisibleModel;
|
||||
|
||||
class dMat_ice_c {
|
||||
public:
|
||||
void play();
|
||||
void entryDL(mDoExt_McaMorf*, s8, mDoExt_invisibleModel*);
|
||||
};
|
||||
|
||||
class dMat_control_c {
|
||||
@@ -11,6 +19,10 @@ public:
|
||||
static void icePlay() { mIce->play(); }
|
||||
static void create(J3DMaterialTable*, J3DAnmTextureSRTKey*);
|
||||
|
||||
static void iceEntryDL(mDoExt_McaMorf* morf, s8 param_2, mDoExt_invisibleModel* invisModel) {
|
||||
mIce->entryDL(morf, param_2, invisModel);
|
||||
}
|
||||
|
||||
static dMat_ice_c* mIce;
|
||||
};
|
||||
|
||||
|
||||
+19
-18
@@ -34,13 +34,14 @@ public:
|
||||
};
|
||||
|
||||
class dNpc_JntCtrl_c {
|
||||
public:
|
||||
/* 0x00 */ s16 mAngles[2][2];
|
||||
// /* 0x00 */ s16 mHeadUpDownRot;
|
||||
// /* 0x02 */ s16 mHeadLeftRightRot;
|
||||
// /* 0x04 */ s16 mBackboneUpDownRot;
|
||||
// /* 0x06 */ s16 mBackboneLeftRightRot;
|
||||
/* 0x08 */ u8 mHeadJntNum;
|
||||
/* 0x09 */ u8 mBackboneJntNum;
|
||||
/* 0x08 */ s8 mHeadJntNum;
|
||||
/* 0x09 */ s8 mBackboneJntNum;
|
||||
/* 0x0A */ bool field_0x0A;
|
||||
/* 0x0B */ u8 field_0x0B;
|
||||
/* 0x0C */ u8 field_0x0C;
|
||||
@@ -68,24 +69,24 @@ public:
|
||||
field_0x0B = 0;
|
||||
}
|
||||
|
||||
void clrTrn() {}
|
||||
void getBackboneJntNum() {}
|
||||
void getBackbone_x() {}
|
||||
void getBackbone_y() {}
|
||||
void getHeadJntNum() {}
|
||||
void getHead_x() {}
|
||||
void getHead_y() {}
|
||||
void offBackBoneLock() {}
|
||||
void offHeadLock() {}
|
||||
void onBackBoneLock() {}
|
||||
s8 getHeadJntNum() { return mHeadJntNum; }
|
||||
s8 getBackboneJntNum() { return mBackboneJntNum; }
|
||||
void setHeadJntNum(s8 jnt) { mHeadJntNum = jnt; }
|
||||
void setBackboneJntNum(s8 jnt) { mBackboneJntNum = jnt; }
|
||||
int getHead_x() { return mAngles[0][0]; }
|
||||
int getHead_y() { return mAngles[0][1]; }
|
||||
int getBackbone_x() { return mAngles[1][0]; }
|
||||
int getBackbone_y() { return mAngles[1][1]; }
|
||||
void setHead_x(s16 angle) { mAngles[0][0] = angle; }
|
||||
void setHead_y(s16 angle) { mAngles[0][1] = angle; }
|
||||
void setBackBone_x(s16 angle) { mAngles[1][0] = angle; }
|
||||
void setBackBone_y(s16 angle) { mAngles[1][1] = angle; }
|
||||
void onHeadLock() {}
|
||||
void setBackBone_x(s16) {}
|
||||
void setBackBone_y(s16) {}
|
||||
void setBackboneJntNum(s8) {}
|
||||
void setHeadJntNum(s8) {}
|
||||
void setHead_x(s16) {}
|
||||
void setHead_y(s16) {}
|
||||
void onBackBoneLock() {}
|
||||
void offHeadLock() {}
|
||||
void offBackBoneLock() {}
|
||||
void setTrn() {}
|
||||
void clrTrn() {}
|
||||
void trnChk() {}
|
||||
|
||||
bool angCalcS(s16*, s16, s16, s16);
|
||||
|
||||
+219
-15
@@ -8,6 +8,10 @@
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
#include "d/d_lib.h"
|
||||
#include "d/d_material.h"
|
||||
#include "d/d_snap.h"
|
||||
|
||||
// Needed for the .data section to match.
|
||||
static Vec dummy1 = {1.0f, 1.0f, 1.0f};
|
||||
@@ -15,6 +19,8 @@ static Vec dummy2 = {1.0f, 1.0f, 1.0f};
|
||||
static u8 dummy3[4] = {0x02, 0x00, 0x02, 0x01};
|
||||
static f64 dummy4[2] = {3.0, 0.5};
|
||||
|
||||
static u8 dummy5[0x4C];
|
||||
|
||||
static daRd_HIO_c l_HIO;
|
||||
|
||||
const u32 daRd_c::m_heapsize = 0x2520;
|
||||
@@ -160,7 +166,27 @@ static BOOL nodeControl_CB(J3DNode* node, int param_1) {
|
||||
|
||||
/* 00000358-00000514 .text _nodeControl__6daRd_cFP7J3DNodeP8J3DModel */
|
||||
BOOL daRd_c::_nodeControl(J3DNode* node, J3DModel* model) {
|
||||
/* Nonmatching */
|
||||
J3DJoint* joint = static_cast<J3DJoint*>(node);
|
||||
int jntNo = joint->getJntNo();
|
||||
cMtx_copy(model->getAnmMtx(jntNo), mDoMtx_stack_c::get());
|
||||
|
||||
if (mJntCtrl.getHeadJntNum() == jntNo) {
|
||||
static cXyz l_offsetAttPos(0.0f, 0.0f, 0.0f);
|
||||
static cXyz l_offsetEyePos(24.0f, -16.0f, 0.0f);
|
||||
mDoMtx_stack_c::multVec(&l_offsetAttPos, &mCC4);
|
||||
mDoMtx_stack_c::XrotM(mJntCtrl.getHead_y());
|
||||
mDoMtx_stack_c::ZrotM(mJntCtrl.getHead_x());
|
||||
mDoMtx_stack_c::multVec(&l_offsetEyePos, &mCD0);
|
||||
mDoMtx_stack_c::XrotM(mD1A);
|
||||
mDoMtx_stack_c::ZrotM(mD1C);
|
||||
mDoMtx_stack_c::YrotM(mD1E);
|
||||
} else if (mJntCtrl.getBackboneJntNum() == jntNo) {
|
||||
mDoMtx_stack_c::XrotM(mJntCtrl.getBackbone_y());
|
||||
mDoMtx_stack_c::ZrotM(mJntCtrl.getBackbone_x());
|
||||
}
|
||||
|
||||
cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
|
||||
model->setAnmMtx(jntNo, mDoMtx_stack_c::get());
|
||||
}
|
||||
|
||||
/* 00000550-0000059C .text nodeHeadControl_CB__FP7J3DNodei */
|
||||
@@ -177,7 +203,24 @@ static BOOL nodeHeadControl_CB(J3DNode* node, int param_1) {
|
||||
|
||||
/* 0000059C-000006A0 .text _nodeHeadControl__6daRd_cFP7J3DNodeP8J3DModel */
|
||||
BOOL daRd_c::_nodeHeadControl(J3DNode* node, J3DModel* model) {
|
||||
/* Nonmatching */
|
||||
J3DJoint* joint = static_cast<J3DJoint*>(node);
|
||||
int jntNo = joint->getJntNo();
|
||||
|
||||
cXyz temp4(mD38, 0.0f, 0.0f);
|
||||
cMtx_copy(model->getAnmMtx(jntNo), mDoMtx_stack_c::get());
|
||||
mDoMtx_stack_c::transM(temp4);
|
||||
|
||||
cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
|
||||
cXyz temp3(0.0f, 0.0f, 50.0f);
|
||||
mDoMtx_stack_c::multVec(&temp3, &mCD0);
|
||||
model->setAnmMtx(jntNo, mDoMtx_stack_c::get());
|
||||
cMtx_copy(mDoMtx_stack_c::get(), mCE8);
|
||||
|
||||
Mtx mtx;
|
||||
csXyz angle;
|
||||
mDoMtx_inverseTranspose(mDoMtx_stack_c::get(), mtx);
|
||||
mDoMtx_MtxToRot(mtx, &angle);
|
||||
mD18 = angle.y;
|
||||
}
|
||||
|
||||
/* 000006A0-000006C0 .text createHeap_CB__FP10fopAc_ac_c */
|
||||
@@ -387,13 +430,13 @@ bool daRd_c::createArrowHeap() {
|
||||
}
|
||||
|
||||
/* 000009D0-00000A38 .text checkPlayerInAttack__6daRd_cFv */
|
||||
void daRd_c::checkPlayerInAttack() {
|
||||
/* Nonmatching */
|
||||
bool daRd_c::checkPlayerInAttack() {
|
||||
return dLib_checkActorInFan(current.pos, dComIfGp_getLinkPlayer(), shape_angle.y, l_HIO.m44, l_HIO.m3C, 100.0f);
|
||||
}
|
||||
|
||||
/* 00000A38-00000AA0 .text checkPlayerInCry__6daRd_cFv */
|
||||
void daRd_c::checkPlayerInCry() {
|
||||
/* Nonmatching */
|
||||
bool daRd_c::checkPlayerInCry() {
|
||||
return dLib_checkActorInFan(current.pos, dComIfGp_getLinkPlayer(), mD18, l_HIO.m42, l_HIO.m38, 100.0f);
|
||||
}
|
||||
|
||||
/* 00000AA0-00000D78 .text lookBack__6daRd_cFv */
|
||||
@@ -469,7 +512,9 @@ void daRd_c::modeParalysis() {
|
||||
|
||||
/* 000021F0-0000223C .text modeMoveInit__6daRd_cFv */
|
||||
void daRd_c::modeMoveInit() {
|
||||
/* Nonmatching */
|
||||
if (m2B4 == 1 && (m6D9 == 2 || m6D9 == 0xA)) {
|
||||
setAnm(9, false);
|
||||
}
|
||||
}
|
||||
|
||||
/* 0000223C-000024B0 .text modeMove__6daRd_cFv */
|
||||
@@ -538,17 +583,26 @@ void daRd_c::modeSwWaitInit() {
|
||||
|
||||
/* 00003428-00003480 .text modeSwWait__6daRd_cFv */
|
||||
void daRd_c::modeSwWait() {
|
||||
/* Nonmatching */
|
||||
if (dComIfGs_isSwitch(mSwNo, current.roomNo)) {
|
||||
modeProcInit(MODE_KANOKE);
|
||||
}
|
||||
}
|
||||
|
||||
/* 00003480-00003514 .text modeKanokeInit__6daRd_cFv */
|
||||
void daRd_c::modeKanokeInit() {
|
||||
/* Nonmatching */
|
||||
setAnm(0xB, false);
|
||||
m310 = 90;
|
||||
cXyz offset(0.0f, 0.0f, 150.0f);
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
mDoMtx_stack_c::multVec(&offset, &m300);
|
||||
}
|
||||
|
||||
/* 00003514-0000355C .text modeKanoke__6daRd_cFv */
|
||||
void daRd_c::modeKanoke() {
|
||||
/* Nonmatching */
|
||||
if (cLib_calcTimer(&m310) == 0) {
|
||||
modeProcInit(MODE_RETURN);
|
||||
}
|
||||
}
|
||||
|
||||
/* 0000355C-000038D4 .text modeProc__6daRd_cFQ26daRd_c6Proc_ei */
|
||||
@@ -657,9 +711,51 @@ void daRd_c::setBtkAnm(s8) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
const int a_anm_bcks_tbl[] = {
|
||||
RD_BCK_TACHIP,
|
||||
RD_BCK_SUWARIP,
|
||||
RD_BCK_WALK2ATACK,
|
||||
RD_BCK_ATACK,
|
||||
RD_BCK_ATACK2WALK,
|
||||
RD_BCK_WALK,
|
||||
RD_BCK_DAMAGE,
|
||||
RD_BCK_DEAD,
|
||||
RD_BCK_TATSU,
|
||||
RD_BCK_SUWARU,
|
||||
RD_BCK_KANOKEP,
|
||||
RD_BCK_BEAM_HIT,
|
||||
RD_BCK_BEAM,
|
||||
RD_BCK_BEAM_END,
|
||||
};
|
||||
const dLib_anm_prm_c a_anm_prm_tbl[] = {
|
||||
{
|
||||
// TODO
|
||||
},
|
||||
};
|
||||
|
||||
/* 00003B3C-00003C48 .text setAnm__6daRd_cFScb */
|
||||
void daRd_c::setAnm(s8, bool) {
|
||||
/* Nonmatching */
|
||||
void daRd_c::setAnm(s8 param_1, bool param_2) {
|
||||
if (param_1 != 0xF) {
|
||||
m6D9 = param_1;
|
||||
}
|
||||
|
||||
if (m6DA != m6D9) {
|
||||
if (m6D9 == 0xC) {
|
||||
setBrkAnm(0x1);
|
||||
} else if (m6D9 == 0xD) {
|
||||
setBrkAnm(0x2);
|
||||
} else if (m6D9 == 0xE) {
|
||||
setBrkAnm(0x3);
|
||||
} else {
|
||||
setBrkAnm(0x0);
|
||||
}
|
||||
}
|
||||
|
||||
if (m6D8 == 0xB || m6D8 == 0xC || m6D8 == 0xD) {
|
||||
mBrkAnm.setFrame(mpMorf->getFrame());
|
||||
}
|
||||
|
||||
dLib_bcks_setAnm(m_arc_name, mpMorf, &m6D8, &m6D9, &m6DA, a_anm_bcks_tbl, a_anm_prm_tbl, param_2);
|
||||
}
|
||||
|
||||
/* 00003C48-000040A8 .text _execute__6daRd_cFv */
|
||||
@@ -675,6 +771,38 @@ void daRd_c::debugDraw() {
|
||||
/* 000041A8-00004318 .text _draw__6daRd_cFv */
|
||||
bool daRd_c::_draw() {
|
||||
/* Nonmatching */
|
||||
if (mMode == 0xA) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (l_HIO.m2C != 0) {
|
||||
debugDraw();
|
||||
}
|
||||
|
||||
J3DModel* model = mpMorf->getModel();
|
||||
J3DModelData* modelData = model->getModelData();
|
||||
g_env_light.setLightTevColorType(model, &mTevStr);
|
||||
|
||||
if (mEnemyIce.mFreezeTimer > 20) {
|
||||
dMat_control_c::iceEntryDL(mpMorf, -1, &mInvisModel);
|
||||
} else {
|
||||
mBrkAnm.entry(modelData);
|
||||
mBtkAnm.entry(modelData);
|
||||
mpMorf->updateDL();
|
||||
mBtkAnm.remove(modelData);
|
||||
mBrkAnm.remove(modelData);
|
||||
}
|
||||
|
||||
cXyz shadowPos(current.pos.x, current.pos.y + 150.0f, current.pos.z);
|
||||
mShadowId = dComIfGd_setShadow(
|
||||
mShadowId, 1, mpMorf->getModel(), &shadowPos, 800.0f, 40.0f,
|
||||
current.pos.y, mAcch.GetGroundH(), mAcch.m_gnd, &mTevStr,
|
||||
0, 1.0f, dDlst_shadowControl_c::getSimpleTex()
|
||||
);
|
||||
|
||||
dSnap_RegistFig(0xB9, this, 1.0f, 1.0f, 1.0f);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 00004318-00004338 .text isLinkControl__6daRd_cFv */
|
||||
@@ -685,17 +813,93 @@ bool daRd_c::isLinkControl() {
|
||||
/* 00004338-000046A4 .text createInit__6daRd_cFv */
|
||||
void daRd_c::createInit() {
|
||||
/* Nonmatching */
|
||||
mStts.Init(0xFF, 0, this);
|
||||
mCyl.Set(m_cyl_src);
|
||||
mCyl.SetStts(&mStts);
|
||||
mAcchCir.SetWall(30.0f, 30.0f);
|
||||
mAcch.Set(&fopAcM_GetPosition_p(this), &fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, &fopAcM_GetSpeed_p(this), NULL, NULL);
|
||||
mAcch.SetRoofNone();
|
||||
J3DModelData* modelData = mpMorf->getModel()->getModelData();
|
||||
mJntCtrl.setHeadJntNum(0x0A);
|
||||
mJntCtrl.setBackboneJntNum(0x08);
|
||||
modelData->getJointNodePointer(0x0A)->setCallBack(nodeControl_CB);
|
||||
modelData->getJointNodePointer(0x08)->setCallBack(nodeControl_CB);
|
||||
setBtkAnm(2);
|
||||
|
||||
if (m2BC == 0) {
|
||||
modeProcInit(MODE_SW_WAIT);
|
||||
cXyz offset(0.0f, 40.0f, 10.0f);
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
mDoMtx_stack_c::multVec(&offset, ¤t.pos);
|
||||
} else {
|
||||
modeProcInit(MODE_WAIT);
|
||||
switch (m2B4) {
|
||||
case 0:
|
||||
setAnm(1, false);
|
||||
break;
|
||||
case 1:
|
||||
setAnm(2, false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
setBrkAnm(0);
|
||||
setMtx();
|
||||
mBtkAnm.play();
|
||||
mBrkAnm.play();
|
||||
mpMorf->play(¤t.pos, 0, 0);
|
||||
mBrkAnm.setFrame(0.0f);
|
||||
mpMorf->calc();
|
||||
g_env_light.settingTevStruct(0, ¤t.pos, &mTevStr);
|
||||
fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx());
|
||||
fopAcM_setCullSizeBox(this, -100.0f, -10.0f, -100.0f, 100.0f, 250.0f, 150.0f);
|
||||
|
||||
mD3C = 1;
|
||||
mD40 = 1;
|
||||
mItemStealLeft = 5;
|
||||
|
||||
mEnemyFire.mpMcaMorf = mpMorf;
|
||||
mEnemyFire.mpActor = this;
|
||||
static u8 fire_j[ARRAY_SIZE(mEnemyFire.mFlameJntIdxs)] = {
|
||||
0x0C, 0x01, 0x0F, 0x11, 0x13, 0x15, 0x02, 0x04, 0x05, 0x07,
|
||||
};
|
||||
static f32 fire_sc[ARRAY_SIZE(mEnemyFire.mParticleScale)] = {
|
||||
2.0f, 2.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
|
||||
};
|
||||
for (int i = 0; i < ARRAY_SIZE(mEnemyFire.mFlameJntIdxs); i++) {
|
||||
mEnemyFire.mFlameJntIdxs[i] = fire_j[i];
|
||||
mEnemyFire.mParticleScale[i] = fire_sc[i];
|
||||
}
|
||||
|
||||
mEnemyIce.mpActor = this;
|
||||
mEnemyIce.m00C = 1;
|
||||
mEnemyIce.mWallRadius = 50.0f;
|
||||
mEnemyIce.mCylHeight = 250.0f;
|
||||
|
||||
mMaxHealth = l_HIO.m46;
|
||||
mHealth = mMaxHealth;
|
||||
m300 = current.pos;
|
||||
m30C = shape_angle.y;
|
||||
mGravity = -4.5f;
|
||||
|
||||
if (m2B4 == 0) {
|
||||
mItemTableIdx = dComIfGp_CharTbl()->GetNameIndex("Rdead1", 0);
|
||||
}
|
||||
if (m2B4 == 1) {
|
||||
mItemTableIdx = dComIfGp_CharTbl()->GetNameIndex("Rdead2", 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* 000046A4-00004720 .text getArg__6daRd_cFv */
|
||||
void daRd_c::getArg() {
|
||||
/* Nonmatching */
|
||||
u32 params = fopAcM_GetParam(this);
|
||||
m2B4 = fopAcM_GetParamBit(params, 0x00, 1);
|
||||
int areaRadius = fopAcM_GetParamBit(params, 0x01, 7);
|
||||
u8 param = fopAcM_GetParamBit(params, 0x01, 7);
|
||||
s32 areaRadius = param;
|
||||
m2BC = fopAcM_GetParamBit(params, 0x08, 8);
|
||||
mSwNo = fopAcM_GetParamBit(params, 0x18, 8);
|
||||
if (areaRadius == 0x7F) {
|
||||
if ((s32)param == 0x7F) {
|
||||
areaRadius = 0;
|
||||
}
|
||||
mAreaRadius = l_HIO.m30 + areaRadius;
|
||||
|
||||
+23
-24
@@ -3,8 +3,7 @@
|
||||
// Translation Unit: d_lib.cpp
|
||||
//
|
||||
|
||||
#include "d_lib.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/d_lib.h"
|
||||
|
||||
/* 80057000-800570CC .text dLib_setCirclePath__FP18dLib_circle_path_c */
|
||||
void dLib_setCirclePath(dLib_circle_path_c*) {
|
||||
@@ -17,17 +16,17 @@ void dLib_getWaterY(cXyz&, dBgS_ObjAcch&) {
|
||||
}
|
||||
|
||||
/* 8005716C-80057368 .text dLib_waveRot__FP3VecfP11dLib_wave_c */
|
||||
void dLib_waveRot(Vec*, float, dLib_wave_c*) {
|
||||
void dLib_waveRot(Vec*, f32, dLib_wave_c*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80057368-8005746C .text dLib_debugDrawAxis__FRA3_A4_ff */
|
||||
void dLib_debugDrawAxis(float(&)[3][4], float) {
|
||||
void dLib_debugDrawAxis(Mtx&, f32) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8005746C-80057510 .text dLib_debugDrawFan__FR4cXyzssfRC8_GXColor */
|
||||
void dLib_debugDrawFan(cXyz&, short, short, float, const _GXColor&) {
|
||||
void dLib_debugDrawFan(cXyz&, s16, s16, f32, const GXColor&) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -42,67 +41,67 @@ void dLib_btkInit(J3DModelData*, mDoExt_btkAnm*, const char*, int) {
|
||||
}
|
||||
|
||||
/* 800576B0-80057844 .text dLib_setAnm__FPCcP14mDoExt_McaMorfPScPScPScPC14dLib_anm_idx_cPC14dLib_anm_prm_cb */
|
||||
void dLib_setAnm(const char*, mDoExt_McaMorf*, signed char*, signed char*, signed char*, const dLib_anm_idx_c*, const dLib_anm_prm_c*, bool) {
|
||||
void dLib_setAnm(const char*, mDoExt_McaMorf*, s8*, s8*, s8*, const dLib_anm_idx_c*, const dLib_anm_prm_c*, bool) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80057844-80057988 .text dLib_bcks_setAnm__FPCcP14mDoExt_McaMorfPScPScPScPCiPC14dLib_anm_prm_cb */
|
||||
void dLib_bcks_setAnm(const char*, mDoExt_McaMorf*, signed char*, signed char*, signed char*, const int*, const dLib_anm_prm_c*, bool) {
|
||||
void dLib_bcks_setAnm(const char*, mDoExt_McaMorf*, s8*, s8*, s8*, const int*, const dLib_anm_prm_c*, bool) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80057988-80057A14 .text dLib_scaleAnime__FPfPfiPifff */
|
||||
void dLib_scaleAnime(float*, float*, int, int*, float, float, float) {
|
||||
void dLib_scaleAnime(f32*, f32*, int, int*, f32, f32, f32) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80057A14-80057A30 .text dLib_getPosFromMtx__FPA4_fP4cXyz */
|
||||
void dLib_getPosFromMtx(float(*)[4], cXyz*) {
|
||||
void dLib_getPosFromMtx(MtxP, cXyz*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80057A30-80057AA4 .text dLib_pathInfo__FPP5dPathUc */
|
||||
void dLib_pathInfo(dPath**, unsigned char) {
|
||||
void dLib_pathInfo(dPath**, u8) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80057AA4-80057D1C .text dLib_pathMove__FP4cXyzPScP5dPathfPFP4cXyzP4cXyzP4cXyzPv_iPv */
|
||||
void dLib_pathMove(cXyz*, signed char*, dPath*, float, int (*)(cXyz*, cXyz*, cXyz*, void*), void*) {
|
||||
void dLib_pathMove(cXyz*, s8*, dPath*, f32, int (*)(cXyz*, cXyz*, cXyz*, void*), void*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80057D1C-80057EC0 .text dLib_setNextStageBySclsNum__FUcSc */
|
||||
void dLib_setNextStageBySclsNum(unsigned char, signed char) {
|
||||
void dLib_setNextStageBySclsNum(u8, s8) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80057EC0-80057F30 .text dLib_setFirstMsg__FUsUlUl */
|
||||
void dLib_setFirstMsg(unsigned short, unsigned long, unsigned long) {
|
||||
void dLib_setFirstMsg(u16, u32, u32) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80057F30-80057F78 .text dLib_checkPlayerInCircle__F4cXyzff */
|
||||
void dLib_checkPlayerInCircle(cXyz, float, float) {
|
||||
bool dLib_checkPlayerInCircle(cXyz, f32, f32) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80057F78-80058098 .text dLib_checkActorInCircle__F4cXyzP10fopAc_ac_cff */
|
||||
void dLib_checkActorInCircle(cXyz, fopAc_ac_c*, float, float) {
|
||||
bool dLib_checkActorInCircle(cXyz, fopAc_ac_c*, f32, f32) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80058098-8005820C .text dLib_checkActorInFan__F4cXyzP10fopAc_ac_cssff */
|
||||
void dLib_checkActorInFan(cXyz, fopAc_ac_c*, short, short, float, float) {
|
||||
bool dLib_checkActorInFan(cXyz, fopAc_ac_c*, s16, s16, f32, f32) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8005820C-80058250 .text __ct__9STControlFssssffss */
|
||||
STControl::STControl(short, short, short, short, float, float, short, short) {
|
||||
STControl::STControl(s16, s16, s16, s16, f32, f32, s16, s16) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80058250-80058274 .text setWaitParm__9STControlFssssffss */
|
||||
void STControl::setWaitParm(short, short, short, short, float, float, short, short) {
|
||||
void STControl::setWaitParm(s16, s16, s16, s16, f32, f32, s16, s16) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -142,27 +141,27 @@ void CSTControl::getAngleStick() {
|
||||
}
|
||||
|
||||
/* 80058340-800585D0 .text checkTrigger__9STControlFv */
|
||||
void STControl::checkTrigger() {
|
||||
bool STControl::checkTrigger() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800585D0-8005863C .text checkLeftTrigger__9STControlFv */
|
||||
void STControl::checkLeftTrigger() {
|
||||
bool STControl::checkLeftTrigger() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8005863C-800586A8 .text checkRightTrigger__9STControlFv */
|
||||
void STControl::checkRightTrigger() {
|
||||
bool STControl::checkRightTrigger() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800586A8-80058714 .text checkUpTrigger__9STControlFv */
|
||||
void STControl::checkUpTrigger() {
|
||||
bool STControl::checkUpTrigger() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80058714-80058780 .text checkDownTrigger__9STControlFv */
|
||||
void STControl::checkDownTrigger() {
|
||||
bool STControl::checkDownTrigger() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -177,7 +176,7 @@ void dLib_get_QuatFromTriangle(cXyz*, cXyz*, cXyz*) {
|
||||
}
|
||||
|
||||
/* 80058910-800589A8 .text dLib_calc_QuatFromTriangle__FP10QuaternionfP4cXyzP4cXyzP4cXyz */
|
||||
void dLib_calc_QuatFromTriangle(Quaternion*, float, cXyz*, cXyz*, cXyz*) {
|
||||
void dLib_calc_QuatFromTriangle(Quaternion*, f32, cXyz*, cXyz*, cXyz*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user