Add dEvt and dNpc enums (#45)

* Small but important fix for m_DoExt_McaMorf

* Better fix for m_DoExt_McaMorf lol

* Work on d_a_mozo

* Add dEvt_Command_e, dEvt_Condition_e, and dNpc_MessageStatus_e; also implement those 3 in d_a_obj_paper.

* 100% match d_a_disappear

* Remove nonmatching comments from d_a_disappear

* Clean up d_a_mozo slightly
This commit is contained in:
Dylan Ascencio
2023-09-16 19:56:31 -04:00
committed by GitHub
parent 4a83c97a48
commit 246274d24a
8 changed files with 411 additions and 174 deletions
+1 -1
View File
@@ -413,7 +413,7 @@ config.libs = [
Object(NonMatching, "d/actor/d_a_boomerang.cpp"),
Object(NonMatching, "d/actor/d_a_dai_item.cpp"),
Object(NonMatching, "d/actor/d_a_demo00.cpp"),
Object(NonMatching, "d/actor/d_a_disappear.cpp"),
Object(Matching, "d/actor/d_a_disappear.cpp"),
Object(NonMatching, "d/actor/d_a_esa.cpp"),
Object(NonMatching, "d/actor/d_a_grid.cpp"),
Object(NonMatching, "d/actor/d_a_himo2.cpp"),
+5
View File
@@ -838,6 +838,11 @@ inline JPABaseEmitter* dComIfGp_particle_set(u16 particleID, const cXyz* pos, co
return dComIfGp_particle_set(particleID, pos, angle, scale, 0xFF, NULL, -1, NULL, NULL, NULL);
}
inline void dComIfGp_particle_setStripes(u16 particleID, cXyz* pos, csXyz* angle, cXyz* scale, u8 param_4, u16 param_5) {
dPa_control_c* pParticle = g_dComIfG_gameInfo.play.getParticle();
pParticle->setNormalStripes(particleID, pos, angle, scale, param_4, param_5);
}
inline void dComIfGp_particle_calc3D() {
g_dComIfG_gameInfo.play.getParticle()->calc3D();
}
+18
View File
@@ -0,0 +1,18 @@
#ifndef D_NPC_H
#define D_NPC_H
enum dNpc_MessageStatus_e {
dNpcMsgStts_MSG_PREPARING_e = 0x01,
dNpcMsgStts_BOX_OPENING_e = 0x02,
dNpcMsgStts_MSG_TYPING_e = 0x06,
dNpcMsgStts_MSG_DISPLAYED_e = 0x0E,
dNpcMsgStts_MSG_CONTINUES_e = 0x0F,
dNpcMsgStts_MSG_ENDS_e = 0x10,
dNpcMsgStts_BOX_CLOSING_e = 0x11,
dNpcMsgStts_BOX_CLOSED_e = 0x12,
dNpcMsgStts_MSG_DESTROYED_e = 0x13,
};
#endif // D_NPC_H
+18
View File
@@ -88,6 +88,24 @@ struct actor_process_profile_definition2 {
class JKRSolidHeap;
enum dEvt_Command_e {
dEvtCmd_NONE_e,
dEvtCmd_INTALK_e,
dEvtCmd_INDEMO_e,
dEvtCmd_INDOOR_e,
dEvtCmd_INGETITEM_e,
dEvtCmd_DUMMY = 0xFFFF,
};
enum dEvt_Condition_e {
dEvtCnd_NONE_e = 0x0000,
dEvtCnd_CANTALK_e = 0x0001,
dEvtCnd_CANDOOR_e = 0x0004,
dEvtCnd_CANGETITEM_e = 0x0008,
dEvtCnd_CANTALKITEM_e = 0x0020,
dEvtCnd_DUMMY = 0x8000,
};
class dEvt_info_c {
public:
dEvt_info_c();
+4 -2
View File
@@ -449,6 +449,8 @@ s32 fopAcM_createItemFromTable(cXyz* p_pos, int i_tableNo, int i_itemBitNo, int
csXyz* p_angle, int param_5, cXyz * p_scale, f32* speedF,
f32* speedY, bool createDirect);
s32 fopAcM_createIball(cXyz*, int, int, csXyz*, int);
s32 fopAcM_createDemoItem(cXyz* p_pos, int itemNo, int itemBitNo, csXyz* p_angle,
int roomNo, cXyz* scale, u8 param_7);
@@ -466,8 +468,8 @@ void* fopAcM_createItemForSimpleDemo(cXyz* p_pos, int i_itemNo, int i_roomNo,
csXyz* p_angle, cXyz* p_scale, f32 speedF,
f32 speedY);
s32 fopAcM_createItem(cXyz* p_pos, int itemNo, int param_3, int roomNo, csXyz* p_angle,
cXyz* p_scale, int param_7);
s32 fopAcM_createItem(cXyz* p_pos, int itemNo, int param_3, int roomNo, int param_4, csXyz* p_angle,
int param_7, cXyz* p_scale);
void* fopAcM_fastCreateItem2(cXyz* p_pos, int itemNo, int param_3, int roomNo, int param_5,
csXyz* p_angle, cXyz* p_scale);
+126 -13
View File
@@ -3,36 +3,149 @@
// Translation Unit: d_a_disappear.cpp
//
#include "d_a_disappear.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "f_op/f_op_actor.h"
#include "f_op/f_op_actor_mng.h"
#include "d/d_procname.h"
#include "d/d_com_inf_game.h"
#include "d/d_s_play.h"
#include "m_Do/m_Do_ext.h"
#include "dolphin/types.h"
extern dScnPly_reg_HIO_c g_regHIO;
class disappear_class : public fopAc_ac_c {
public:
int m0000;
int m0004;
s32 mSwitchId;
s16 mTimer;
};
/* 800E79C0-800E79C8 .text daDisappear_Draw__FP15disappear_class */
void daDisappear_Draw(disappear_class*) {
/* Nonmatching */
s32 daDisappear_Draw(disappear_class*) {
return TRUE;
}
/* 800E79C8-800E7AC0 .text daDisappear_Execute__FP15disappear_class */
void daDisappear_Execute(disappear_class*) {
/* Nonmatching */
s32 daDisappear_Execute(disappear_class* i_this) {
if (i_this->mTimer != 0) {
i_this->mTimer--;
if (i_this->mTimer == 0) {
s8 health = i_this->mHealth;
if (health != 1 && health != 3) {
if (health == 2) {
fopAcM_createItemForBoss(i_this->getPositionP(), 0, i_this->getRoomNo(), &i_this->current.angle, NULL, 0);
}
else if (health >= 0x0A && health <= 0x0D) {
if (health < 0x0D) {
static u32 ki_item_d[] = {
0, 10, 16
};
fopAcM_createItem(i_this->getPositionP(), ki_item_d[health - 0xA], -1, -1, 0, NULL, 4, NULL);
}
}
else {
fopAcM_createIball(i_this->getPositionP(), i_this->mItemTableIdx, i_this->getRoomNo(), &i_this->current.angle, i_this->mSwitchId);
}
}
}
}
else {
fopAcM_delete(i_this);
}
return TRUE;
}
/* 800E7AC0-800E7AC8 .text daDisappear_IsDelete__FP15disappear_class */
void daDisappear_IsDelete(disappear_class*) {
/* Nonmatching */
s32 daDisappear_IsDelete(disappear_class*) {
return TRUE;
}
/* 800E7AC8-800E7AD0 .text daDisappear_Delete__FP15disappear_class */
void daDisappear_Delete(disappear_class*) {
/* Nonmatching */
s32 daDisappear_Delete(disappear_class*) {
return TRUE;
}
/* 800E7AD0-800E7DBC .text set_disappear__FP15disappear_classf */
void set_disappear(disappear_class*, float) {
/* Nonmatching */
void set_disappear(disappear_class* i_this, float scale) {
s8 rev = dComIfGp_getReverb(i_this->getRoomNo());
mDoAud_seStart(0x5801, &i_this->mEyePos, 0, rev);
cXyz particleScale(scale, scale, scale);
i_this->mTimer = g_regHIO.mChild[8].mShortRegs[0] + 0x3A;
switch (i_this->mHealth) {
case 0:
case 2:
case 10:
case 0xB:
case 0xC:
case 0xD:
dComIfGp_particle_set(0x14, &i_this->current.pos, 0, &particleScale, 0xFF, 0, -1, 0, 0, 0);
case 3:
dComIfGp_particle_set(0x13, &i_this->current.pos, 0, &particleScale, 0xff, 0, -1, 0, 0, 0);
dComIfGp_particle_setStripes(0x15, &i_this->current.pos, 0, &particleScale, 0xFF, 0x96);
dComIfGp_particle_set(0x16, &i_this->current.pos, 0, &particleScale, 0xff, 0, -1, 0, 0, 0);
break;
case 1:
dComIfGp_particle_set(0x13, &i_this->current.pos, 0, &particleScale, 0xff, 0, -1, 0, 0, 0);
dComIfGp_particle_set(0x16, &i_this->current.pos, 0, &particleScale, 0xff, 0, -1, 0, 0, 0);
break;
case 4:
dComIfGp_particle_set(0x043C, &i_this->current.pos, 0, 0, 0xff, 0, -1, 0, 0, 0);
dComIfGp_particle_set(0x043D, &i_this->current.pos, 0, 0, 0xff, 0, -1, 0, 0, 0);
dComIfGp_particle_set(0x043E, &i_this->current.pos, 0, 0, 0xff, 0, -1, 0, 0, 0);
break;
}
}
/* 800E7DBC-800E7E60 .text daDisappear_Create__FP10fopAc_ac_c */
void daDisappear_Create(fopAc_ac_c*) {
/* Nonmatching */
s32 daDisappear_Create(fopAc_ac_c* i_this) {
disappear_class* dis = static_cast<disappear_class*>(i_this);
fopAcM_SetupActor(dis, disappear_class);
u32 params = dis->mBase.mParameters;
dis->mHealth = dis->mBase.mParameters & 0xFF;
float scale = ((dis->mBase.mParameters >> 8) & 0xFF) * 0.1f;
dis->mSwitchId = (dis->mBase.mParameters >> 0x10) & 0xFF;
if (dis->mSwitchId == 0xFF) {
dis->mSwitchId = -1;
}
set_disappear(dis, scale);
return cPhs_COMPLEATE_e;
}
actor_method_class l_daDisappear_Method = {
(process_method_func)daDisappear_Create,
(process_method_func)daDisappear_Delete,
(process_method_func)daDisappear_Execute,
(process_method_func)daDisappear_IsDelete,
(process_method_func)daDisappear_Draw,
};
extern actor_process_profile_definition g_profile_DISAPPEAR = {
fpcLy_CURRENT_e,
7,
fpcLy_CURRENT_e,
PROC_DISAPPEAR,
&g_fpcLf_Method.mBase,
sizeof(disappear_class),
0,
0,
&g_fopAc_Method.base,
0x0188,
&l_daDisappear_Method,
0x00044000,
fopAc_ACTOR_e,
fopAc_CULLBOX_0_e,
};
+221 -146
View File
@@ -3,9 +3,84 @@
// Translation Unit: d_a_mozo.cpp
//
#include "d_a_mozo.h"
#include "f_op/f_op_actor_mng.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JUtility/JUTAssert.h"
#include "d/d_com_inf_game.h"
#include "d/d_kankyo.h"
#include "d/d_procname.h"
#include "d/d_cc_d.h"
#include "m_do/m_Do_mtx.h"
#include "m_Do/m_Do_ext.h"
#include "dolphin/types.h"
/*** HIO ***/
class daMozo_HIO_c {
public:
daMozo_HIO_c();
~daMozo_HIO_c();
};
static daMozo_HIO_c l_HIO;
class daMozo_childHIO_c {
public:
~daMozo_childHIO_c();
};
class daMozo_FireChildHIO_c {
public:
~daMozo_FireChildHIO_c();
};
class daMozo_BeamChildHIO_c {
public:
~daMozo_BeamChildHIO_c();
};
/*** Actor ***/
class daMozo_c : public fopAc_ac_c {
public:
s32 _create();
bool _delete();
bool _draw();
bool _execute();
void anime_proc();
void checkRange(int);
s32 CreateHeap();
s32 CreateInit();
void event_move();
void getBeamActor(u32);
void search_beam_proc();
void search_beam_proc_init();
void search_fire_proc();
void search_fire_proc_init();
void set_mtx();
void setAnm(int, float);
void towait_proc();
void towait_proc_init();
void wait_proc();
void wait_proc_init();
typedef void(daMozo_c::*proc_t)(void);
proc_t mCurrentProc;
request_of_phase_process_class mPhs;
mDoExt_McaMorf* mAnimMorf;
mDoExt_brkAnm mBrkAnm;
J3DAnmTevRegKey* m_brk;
mDoExt_btkAnm mBtkAnm;
J3DAnmTextureSRTKey* m_btk;
// TODO: insert missing members
dCcD_Stts mColStatus;
dCcD_Cps mCapsuleCol;
};
/* 000000EC-000001D0 .text __ct__12daMozo_HIO_cFv */
daMozo_HIO_c::daMozo_HIO_c() {
/* Nonmatching */
@@ -42,18 +117,53 @@ void daMozo_nodeCallBack(J3DNode*, int) {
}
/* 0000078C-000007AC .text CheckCreateHeap__FP10fopAc_ac_c */
void CheckCreateHeap(fopAc_ac_c*) {
/* Nonmatching */
s32 CheckCreateHeap(fopAc_ac_c* i_this) {
return static_cast<daMozo_c*>(i_this)->CreateHeap();
}
/* 000007AC-00000A24 .text CreateHeap__8daMozo_cFv */
void daMozo_c::CreateHeap() {
s32 daMozo_c::CreateHeap() {
/* Nonmatching */
J3DModelData* mdlData = (J3DModelData*)dComIfG_getObjectRes("Mozo", 9);
mDoExt_McaMorf* newMorf = new mDoExt_McaMorf(
mdlData,
0,
0,
static_cast<J3DAnmTransformKey*>(dComIfG_getObjectRes("Mozo", 6)),
2,
1.0f,
0,
-1,
0,
0,
0,
0x11020203
);
mAnimMorf = newMorf;
m_brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("Mozo", 0x0C);
JUT_ASSERT(0x16A, m_brk != 0);
m_btk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("Mozo", 0x0F);
JUT_ASSERT(0x16D, m_btk != 0);
int brkInitResult = mBrkAnm.init(mdlData, m_brk, true, 0, 1.0f, 0, -1, false, 0);
int btkInitResult = mBtkAnm.init(mdlData, m_btk, true, 0, 1.0f, 0, -1, false, 0);
return mdlData != 0 && mAnimMorf != 0 && mAnimMorf->getModel() != 0 && brkInitResult != 0 && btkInitResult != 0;
}
/* 00000A24-00000AAC .text set_mtx__8daMozo_cFv */
void daMozo_c::set_mtx() {
/* Nonmatching */
J3DModel* mdl = mAnimMorf->getModel();
mdl->setBaseScale(mScale);
mDoMtx_stack_c::transS(getPosition());
mDoMtx_stack_c::YrotM(getAngle().y);
mdl->i_setBaseTRMtx(mDoMtx_stack_c::get());
}
/* 00000AAC-00000C38 .text anime_proc__8daMozo_cFv */
@@ -112,22 +222,73 @@ void daMozo_c::setAnm(int, float) {
}
/* 00001F70-00002228 .text CreateInit__8daMozo_cFv */
void daMozo_c::CreateInit() {
s32 daMozo_c::CreateInit() {
/* Nonmatching */
J3DModelData* mdlData = mAnimMorf->getModel()->getModelData();
int param = mBase.mParameters * 0xFF;
if (param == 0xFF) {
param = 0;
}
int a = 2;
if (param < 3) {
a = param;
}
// TODO: insert missing assignment here
mAnimMorf->getModel()->setUserArea(this);
for (int i = 0; i < mdlData->getJointNum(); i++) {
if (i == 2) {
mdlData->getJointNodePointer(2)->setCallBack((J3DNodeCallBack)daMozo_nodeCallBack);
}
}
// TODO: find out where d_lib::ZeroQuat lives
//mQuatRotation = ZeroQuat;
fopAcM_setCullSizeBox(this, -1000.f, -1000.f, -1000.f, 1000.0f, 1000.0f, 1000.0f);
mCullMtx = mAnimMorf->getModel()->getBaseTRMtx();
// TODO: Insert missing code here
set_mtx();
mAnimMorf->calc();
wait_proc_init();
return cPhs_COMPLEATE_e;
}
/* 00002228-000023B0 .text _create__8daMozo_cFv */
void daMozo_c::_create() {
s32 daMozo_c::_create() {
/* Nonmatching */
fopAcM_SetupActor(this, daMozo_c);
s32 result = dComIfG_resLoad(&mPhs, "Mozo");
if (result == cPhs_COMPLEATE_e) {
s32 solidHeapResult = fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckCreateHeap, 0x1AA0);
if (solidHeapResult & 0xFF == 0) {
result = cPhs_ERROR_e;
}
else {
result = CreateInit();
_execute();
}
}
return result;
}
/* 000023B0-0000242C .text _delete__8daMozo_cFv */
void daMozo_c::_delete() {
bool daMozo_c::_delete() {
/* Nonmatching */
}
/* 0000242C-00002498 .text getBeamActor__8daMozo_cFUi */
void daMozo_c::getBeamActor(unsigned int) {
void daMozo_c::getBeamActor(u32) {
/* Nonmatching */
}
@@ -137,38 +298,53 @@ void daMozo_c::event_move() {
}
/* 00002588-000025DC .text _execute__8daMozo_cFv */
void daMozo_c::_execute() {
/* Nonmatching */
bool daMozo_c::_execute() {
mAnimMorf->calc();
(this->*mCurrentProc)();
event_move();
set_mtx();
return true;
}
/* 000025DC-0000267C .text _draw__8daMozo_cFv */
void daMozo_c::_draw() {
bool daMozo_c::_draw() {
/* Nonmatching */
J3DModelData* mdlData = mAnimMorf->getModel()->getModelData();
g_env_light.settingTevStruct(TEV_TYPE_BG0, getPositionP(), &mTevStr);
g_env_light.setLightTevColorType(mAnimMorf->getModel(), &mTevStr);
mBrkAnm.entry(mdlData);
mBtkAnm.entry(mdlData);
mAnimMorf->entryDL();
return true;
}
/* 0000267C-000026A0 .text daMozo_Draw__FP8daMozo_c */
void daMozo_Draw(daMozo_c*) {
/* Nonmatching */
s32 daMozo_Draw(daMozo_c* i_this) {
return i_this->_draw();
}
/* 000026A0-000026C4 .text daMozo_Execute__FP8daMozo_c */
void daMozo_Execute(daMozo_c*) {
/* Nonmatching */
s32 daMozo_Execute(daMozo_c* i_this) {
return i_this->_execute();
}
/* 000026C4-000026CC .text daMozo_IsDelete__FP8daMozo_c */
void daMozo_IsDelete(daMozo_c*) {
/* Nonmatching */
s32 daMozo_IsDelete(daMozo_c*) {
return TRUE;
}
/* 000026CC-000026F0 .text daMozo_Delete__FP8daMozo_c */
void daMozo_Delete(daMozo_c*) {
/* Nonmatching */
s32 daMozo_Delete(daMozo_c* i_this) {
return i_this->_delete();
}
/* 000026F0-00002710 .text daMozo_Create__FP10fopAc_ac_c */
void daMozo_Create(fopAc_ac_c*) {
/* Nonmatching */
s32 daMozo_Create(fopAc_ac_c* i_this) {
return static_cast<daMozo_c*>(i_this)->_create();
}
/* 00002710-000027AC .text __dt__12daMozo_HIO_cFv */
@@ -176,128 +352,27 @@ daMozo_HIO_c::~daMozo_HIO_c() {
/* Nonmatching */
}
/* 000027E8-000027F0 .text @280@__dt__8dCcD_CpsFv */
void @280@__dt__8dCcD_CpsFv {
/* Nonmatching */
}
/* 000027F0-000027F8 .text @248@__dt__8dCcD_CpsFv */
void @248@__dt__8dCcD_CpsFv {
/* Nonmatching */
}
/* 000027F8-00002834 .text __dt__4cXyzFv */
cXyz::~cXyz() {
/* Nonmatching */
}
/* 00002834-00002914 .text __dt__8dCcD_CpsFv */
dCcD_Cps::~dCcD_Cps() {
/* Nonmatching */
}
/* 00002914-00002924 .text GetShapeAttr__8dCcD_CpsFv */
void dCcD_Cps::GetShapeAttr() {
/* Nonmatching */
}
/* 00002924-00002980 .text __dt__14cCcD_ShapeAttrFv */
cCcD_ShapeAttr::~cCcD_ShapeAttr() {
/* Nonmatching */
}
/* 00002980-00002988 .text CrossAtTg__12cCcD_CpsAttrCFRC12cCcD_AabAttrP4cXyz */
void cCcD_CpsAttr::CrossAtTg(const cCcD_AabAttr&, cXyz*) const {
/* Nonmatching */
}
/* 00002988-00002990 .text CrossAtTg__12cCcD_CpsAttrCFRC12cCcD_PntAttrP4cXyz */
void cCcD_CpsAttr::CrossAtTg(const cCcD_PntAttr&, cXyz*) const {
/* Nonmatching */
}
/* 00002990-000029C8 .text CrossAtTg__12cCcD_CpsAttrCFRC14cCcD_ShapeAttrP4cXyz */
void cCcD_CpsAttr::CrossAtTg(const cCcD_ShapeAttr&, cXyz*) const {
/* Nonmatching */
}
/* 000029C8-000029D0 .text CrossCo__12cCcD_CpsAttrCFRC12cCcD_AabAttrPf */
void cCcD_CpsAttr::CrossCo(const cCcD_AabAttr&, float*) const {
/* Nonmatching */
}
/* 000029D0-000029D8 .text CrossCo__12cCcD_CpsAttrCFRC12cCcD_TriAttrPf */
void cCcD_CpsAttr::CrossCo(const cCcD_TriAttr&, float*) const {
/* Nonmatching */
}
/* 000029D8-000029E0 .text CrossCo__12cCcD_CpsAttrCFRC12cCcD_PntAttrPf */
void cCcD_CpsAttr::CrossCo(const cCcD_PntAttr&, float*) const {
/* Nonmatching */
}
/* 000029E0-00002A18 .text CrossCo__12cCcD_CpsAttrCFRC14cCcD_ShapeAttrPf */
void cCcD_CpsAttr::CrossCo(const cCcD_ShapeAttr&, float*) const {
/* Nonmatching */
}
/* 00002A18-00002A24 .text GetCoCP__14cCcD_ShapeAttrFv */
void cCcD_ShapeAttr::GetCoCP() {
/* Nonmatching */
}
/* 00002A24-00002A30 .text GetCoCP__14cCcD_ShapeAttrCFv */
void cCcD_ShapeAttr::GetCoCP() const {
/* Nonmatching */
}
/* 00002A30-00002A34 .text GetGObjInf__12cCcD_GObjInfCFv */
void cCcD_GObjInf::GetGObjInf() const {
/* Nonmatching */
}
/* 00002A34-00002A3C .text GetShapeAttr__8cCcD_ObjCFv */
void cCcD_Obj::GetShapeAttr() const {
/* Nonmatching */
}
/* 00002A3C-00002A44 .text CrossAtTg__14cCcD_ShapeAttrCFRC14cCcD_ShapeAttrP4cXyz */
void cCcD_ShapeAttr::CrossAtTg(const cCcD_ShapeAttr&, cXyz*) const {
/* Nonmatching */
}
/* 00002A44-00002A4C .text CrossCo__14cCcD_ShapeAttrCFRC14cCcD_ShapeAttrPf */
void cCcD_ShapeAttr::CrossCo(const cCcD_ShapeAttr&, float*) const {
/* Nonmatching */
}
/* 00002A4C-00002AA8 .text __dt__8cM3dGCpsFv */
cM3dGCps::~cM3dGCps() {
/* Nonmatching */
}
/* 00002AA8-00002AF0 .text __dt__8cM3dGLinFv */
cM3dGLin::~cM3dGLin() {
/* Nonmatching */
}
/* 00002AF0-00002B38 .text __dt__8cM3dGAabFv */
cM3dGAab::~cM3dGAab() {
/* Nonmatching */
}
/* 00002B38-00002B94 .text __dt__13mDoExt_btkAnmFv */
mDoExt_btkAnm::~mDoExt_btkAnm() {
/* Nonmatching */
}
/* 00002B94-00002BF0 .text __dt__13mDoExt_brkAnmFv */
mDoExt_brkAnm::~mDoExt_brkAnm() {
/* Nonmatching */
}
/* 00002BF0-00002C38 .text __dt__14mDoExt_baseAnmFv */
mDoExt_baseAnm::~mDoExt_baseAnm() {
/* Nonmatching */
}
static actor_method_class l_daMozo_Method = {
(process_method_func)daMozo_Create,
(process_method_func)daMozo_Delete,
(process_method_func)daMozo_Execute,
(process_method_func)daMozo_IsDelete,
(process_method_func)daMozo_Draw,
};
extern actor_process_profile_definition g_profile_MOZO = {
fpcLy_CURRENT_e,
7,
fpcPi_CURRENT_e,
PROC_MOZO,
&g_fpcLf_Method.mBase,
sizeof(daMozo_c),
0,
0,
&g_fopAc_Method.base,
0x00D1,
&l_daMozo_Method,
0x00040100,
fopAc_ACTOR_e,
fopAc_CULLBOX_CUSTOM_e,
};
+18 -12
View File
@@ -14,6 +14,7 @@
#include "d/d_com_inf_game.h"
#include "d/d_kankyo.h"
#include "d/d_a_obj.h"
#include "d/d_npc.h"
#include "m_Do/m_Do_ext.h"
#include "m_Do/m_Do_mtx.h"
#include "dolphin/types.h"
@@ -54,8 +55,6 @@ namespace daObjPaper {
inline static int getEntryModelId(int idx) { return L_attr[idx].getModelId(); }
}
static cXyz a(1.0f, 1.0f, 1.0f);
static const dCcD_SrcCyl M_cyl_src = {
0,
0,
@@ -84,6 +83,13 @@ namespace daObjPaper {
0.0f, // Height
};
enum Act_Mode_e {
ActMode_WAIT_e,
ActMode_TALKBEGIN_e,
ActMode_GETMSG_e,
ActMode_TALKWAIT_e,
};
class Act_c : public fopAc_ac_c {
public:
static int solidHeapCB(fopAc_ac_c*);
@@ -220,25 +226,25 @@ namespace daObjPaper {
/* 00000730-00000748 .text mode_wait_init__Q210daObjPaper5Act_cFv */
void daObjPaper::Act_c::mode_wait_init() {
mStatus |= 0x80;
mMode = 0;
mStatus |= fopAcStts_NOEXEC_e;
mMode = ActMode_WAIT_e;
}
/* 00000748-00000784 .text mode_wait__Q210daObjPaper5Act_cFv */
void daObjPaper::Act_c::mode_wait() {
if (mEvtInfo.mCommand == 1) {
if (mEvtInfo.mCommand == dEvtCmd_INTALK_e) {
mode_talk0_init();
}
else {
mEvtInfo.mCondition |= 1;
mEvtInfo.mCondition |= dEvtCnd_CANTALK_e;
}
}
/* 00000784-000007A4 .text mode_talk0_init__Q210daObjPaper5Act_cFv */
void daObjPaper::Act_c::mode_talk0_init() {
mStatus &= ~0x80;
mStatus &= ~fopAcStts_NOEXEC_e;
mMsgId = -1;
mMode = 1;
mMode = ActMode_TALKBEGIN_e;
}
/* 000007A4-00000820 .text mode_talk0__Q210daObjPaper5Act_cFv */
@@ -254,7 +260,7 @@ namespace daObjPaper {
/* 00000820-0000082C .text mode_talk1_init__Q210daObjPaper5Act_cFv */
void daObjPaper::Act_c::mode_talk1_init() {
mMode = 2;
mMode = ActMode_GETMSG_e;
}
/* 0000082C-00000874 .text mode_talk1__Q210daObjPaper5Act_cFv */
@@ -267,13 +273,13 @@ namespace daObjPaper {
/* 00000874-00000880 .text mode_talk2_init__Q210daObjPaper5Act_cFv */
void daObjPaper::Act_c::mode_talk2_init() {
mMode = 3;
mMode = ActMode_TALKWAIT_e;
}
/* 00000880-000008DC .text mode_talk2__Q210daObjPaper5Act_cFv */
void daObjPaper::Act_c::mode_talk2() {
if (mpMsg->mMode == 0x12) {
mpMsg->mMode = 0x13;
if (mpMsg->mMode == dNpcMsgStts_BOX_CLOSED_e) {
mpMsg->mMode = dNpcMsgStts_MSG_DESTROYED_e;
mpMsg = 0;
mMsgId = -1;