mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-21 22:10:59 -04:00
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:
+1
-1
@@ -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"),
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -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();
|
||||
|
||||
@@ -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
@@ -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
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user