Documentation and some matching functions

This commit is contained in:
Dylan Ascencio
2023-09-29 00:15:08 -04:00
parent f2d748da3e
commit 29e50d65b8
2 changed files with 123 additions and 21 deletions
+6 -1
View File
@@ -60,6 +60,11 @@ class dPa_smokeEcallBack : dPa_followEcallBack {
public:
dPa_smokeEcallBack(u8);
virtual ~dPa_smokeEcallBack();
virtual void execute(JPABaseEmitter*);
virtual void draw(JPABaseEmitter*);
virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
virtual void end();
/* 0x14 */ s8 field_0x14;
/* 0x15 */ u8 field_0x15;
@@ -267,4 +272,4 @@ public:
/* 0x001C */ dPa_simpleEcallBack mSimpleCallbacks[25];
};
#endif /* D_PARTICLE */
#endif /* D_PARTICLE */
+117 -20
View File
@@ -4,6 +4,8 @@
//
#include "f_op/f_op_actor_mng.h"
#include "f_op/f_op_msg.h"
#include "f_op/f_op_draw_tag.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JUtility/JUTAssert.h"
#include "JSystem/J3DGraphBase/J3DSys.h"
@@ -11,6 +13,7 @@
#include "d/d_com_inf_game.h"
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_item_data.h"
#include "d/d_particle.h"
#include "m_Do/m_Do_ext.h"
#include "dolphin/types.h"
@@ -71,7 +74,7 @@ namespace daObjMknjD {
void setGoal(int);
void setPlayerAngle(int);
void talk(int);
u32 talk(int);
void privateCut();
void daObjMknjD_break();
@@ -80,10 +83,11 @@ namespace daObjMknjD {
static const char M_arcname[];
/* 0x02C8 */ cXyz m02C8;
/* 0x02D4 */ cXyz m02D4;
/* 0x02E0 */ cXyz m02E0[0x14];
/* 0x03D0 */ float m03D0[0x14];
/* 0x02C8 */ cXyz mLeftHalfPos;
/* 0x02D4 */ cXyz mRightHalfPos;
/* 0x02E0 */ cXyz mShardPositions[0x14];
/* 0x03D0 */ float mShardHeights[0x14];
/* 0x0420 */ request_of_phase_process_class mPhs;
@@ -93,14 +97,39 @@ namespace daObjMknjD {
/* 0x0430 */ u16 m0430;
/* 0x0432 */ u16 m0432;
/* 0x0434 */ u16 m0434;
/* 0x0438 */ u32 m0438;
/* 0x0438 */ u32 mBreakTimer;
/* 0x043C */ u8 m043C;
/* 0x043C */ u8 mModel0Alpha;
/* 0x043D */ bool m043D;
/* 0x043E */ u8 m043E;
/* 0x043F */ u8 m043F;
/* 0x04E2 */ s16 m04E2;
/* 0x0440 */ JPABaseEmitter* mEmitter0;
/* 0x0444 */ JPABaseEmitter* mEmitter1;
/* 0x0448 */ JPABaseEmitter* mEmitter2;
/* 0x044C */ JPABaseEmitter* mEmitter3;
/* 0x0450 */ dPa_smokeEcallBack mSmokeCBs[4];
/* 0x04D0 */ cXyz m04D0;
/* 0x04DC */ s16 mCheckEventIdx;
/* 0x04DE */ s16 mDemoEventIdx;
/* 0x04E0 */ s16 mErrorEventIdx;
/* 0x04E2 */ s16 mLessonEventIdx;
/* 0x04E4 */ u8 mActionIdx;
/* 0x04E5 */ u8 mTactMode;
/* 0x04E6 */ u8 mGiveItemId;
/* 0x04E8 */ cXyz mGoalPos;
/* 0x04F4 */ u32 mMsgId;
/* 0x04F8 */ u32 mMsgInstId;
/* 0x04FC */ msg_class* mMsgPtr;
/* 0x0500 */ s32 m0500;
/* 0x0504 */ bool m0504;
};
const char Act_c::M_arcname[] = "MknjD";
@@ -141,8 +170,7 @@ s16 daObjMknjD::Act_c::XyCheckCB(int i_itemIdx) {
/* 00000314-0000031C .text XyEventCB__Q210daObjMknjD5Act_cFi */
s16 daObjMknjD::Act_c::XyEventCB(int) {
/* Nonmatching */
return m04E2;
return mLessonEventIdx;
}
/* 0000031C-00000620 .text CreateHeap__Q210daObjMknjD5Act_cFv */
@@ -165,13 +193,17 @@ s32 daObjMknjD::Act_c::Mthd_Create() {
/* 00000B64-00000BDC .text Delete__Q210daObjMknjD5Act_cFv */
int daObjMknjD::Act_c::Delete() {
/* Nonmatching */
return 0;
dComIfGp_getAttention().mFlags &= 0x7fffffff;
for (int i = 0; i < 4; i++) {
mSmokeCBs[i].end();
}
return 1;
}
/* 00000BDC-00000C34 .text Mthd_Delete__Q210daObjMknjD5Act_cFv */
s32 daObjMknjD::Act_c::Mthd_Delete() {
/* Nonmatching */
int bgDeleteResult = MoveBGDelete();
if (mBase.mUnk2 != 3) {
@@ -202,8 +234,50 @@ void daObjMknjD::Act_c::setPlayerAngle(int) {
}
/* 00000E84-00000F88 .text talk__Q210daObjMknjD5Act_cFi */
void daObjMknjD::Act_c::talk(int) {
/* Nonmatching */
u32 daObjMknjD::Act_c::talk(int i_param1) {
u32 msgMode = 0xFF;
if (mMsgInstId == 0xFFFFFFFF) {
if (i_param1 == 1) {
u32 msgId;
if (m0500 == 0) {
g_dComIfG_gameInfo.play.mTactMode = mTactMode;
msgId = 0x05B3;
}
else {
msgId = 0x1901;
}
mMsgId = msgId;
}
mMsgInstId = fopMsgM_messageSet(mMsgId, this);
mMsgPtr = NULL;
}
else {
if (mMsgPtr) {
msgMode = mMsgPtr->mMode;
if (msgMode == 0x0E) {
if (g_dComIfG_gameInfo.play.field_0x4949 != 0) {
m0504 = true;
fopMsgM_messageSendOn();
}
mMsgPtr->mMode = 0x10;
}
else if (msgMode == 0x12) {
mMsgPtr->mMode = 0x13;
mMsgInstId = 0xFFFFFFFF;
}
}
else {
mMsgPtr = fopMsgM_SearchByID(mMsgInstId);
}
}
return msgMode;
}
/* 00000F88-00001348 .text privateCut__Q210daObjMknjD5Act_cFv */
@@ -212,8 +286,32 @@ void daObjMknjD::Act_c::privateCut() {
}
/* 00001348-00001400 .text manage_friend_draw__10daObjMknjDFi */
void daObjMknjD::manage_friend_draw(int) {
/* Nonmatching */
void daObjMknjD::manage_friend_draw(int i_param1) {
u16 medliProc = PROC_NPC_MD;
fopAc_ac_c* judgeResult = static_cast<fopAc_ac_c*>(fopAcIt_Judge(fpcSch_JudgeForPName, &medliProc));
if (judgeResult != NULL) {
if (i_param1 == 1) {
u32 prio = fpcLf_GetPriority(judgeResult);
fopDwTg_ToDrawQ(&judgeResult->mDwTg, prio);
}
else {
fopDwTg_DrawQTo(&judgeResult->mDwTg);
}
}
u16 makarProc = PROC_NPC_CB1;
judgeResult = static_cast<fopAc_ac_c*>(fopAcIt_Judge(fpcSch_JudgeForPName, &makarProc));
if (judgeResult != NULL) {
if (i_param1 == 1) {
u32 prio = fpcLf_GetPriority(judgeResult);
fopDwTg_ToDrawQ(&judgeResult->mDwTg, prio);
}
else {
fopDwTg_DrawQTo(&judgeResult->mDwTg);
}
}
}
/* 00001400-0000195C .text daObjMknjD_break__Q210daObjMknjD5Act_cFv */
@@ -255,8 +353,7 @@ void daObjMknjD::setMaterial(J3DMaterial* i_mat, u8 i_alpha) {
i_mat->getPEBlock()->getBlend()->setDstFactor(5);
}
GXColor* tevKColor = i_mat->getTevKColor(3);
tevKColor->a = i_alpha;
i_mat->getTevKColor(3)->a = i_alpha;
}
}
}
@@ -274,7 +371,7 @@ int daObjMknjD::Act_c::Draw() {
J3DModelData* mdlData = mModel0->getModelData();
u16 jointCount = mdlData->getJointNum();
for (u16 i = 0; i < jointCount; i++) {
setMaterial(mdlData->getJointNodePointer(i)->getMesh(), m043C);
setMaterial(mdlData->getJointNodePointer(i)->getMesh(), mModel0Alpha);
}
dComIfGd_setListSky();