mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-10 12:55:02 -04:00
Equivalent. A lot of work is needed to name variables and clean up functions. Weak function ordering is wrong.
This commit is contained in:
+1
-1
@@ -1604,7 +1604,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_npc_kf1"),
|
||||
ActorRel(NonMatching, "d_a_npc_kg1"),
|
||||
ActorRel(NonMatching, "d_a_npc_kg2"),
|
||||
ActorRel(NonMatching, "d_a_npc_kk1"),
|
||||
ActorRel(Equivalent, "d_a_npc_kk1", extra_cflags=['-pragma "nosyminline on"']), # weak func order
|
||||
ActorRel(NonMatching, "d_a_npc_km1"),
|
||||
ActorRel(NonMatching, "d_a_npc_ko1"),
|
||||
ActorRel(NonMatching, "d_a_npc_kp1"),
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#ifndef D_A_NPC_KK1_H
|
||||
#define D_A_NPC_KK1_H
|
||||
|
||||
#include "d/actor/d_a_player.h"
|
||||
|
||||
#include "JSystem/JParticle/JPAEmitter.h"
|
||||
#include "d/d_npc.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "m_Do/m_Do_hostIO.h"
|
||||
@@ -19,6 +20,7 @@ public:
|
||||
|
||||
typedef int (daNpc_Kk1_c::*ActionFunc)(void*);
|
||||
typedef void* (pFunc)(void*, void*);
|
||||
|
||||
struct anm_prm_c {
|
||||
s8 field0;
|
||||
s8 field1;
|
||||
@@ -50,14 +52,7 @@ public:
|
||||
u32 field_0x4C;
|
||||
f32 field_0x50;
|
||||
};
|
||||
// struct struct_0x7E4{
|
||||
// /* 0x0 */ u16 unk0;
|
||||
// /* 0x2 */ u16 unk2;
|
||||
// /* 0x4 */ u16 unk4;
|
||||
// /* 0x6 */ u16 unk6;
|
||||
// /* 0x8 */ u16 unk8;
|
||||
// /* 0xA */ u16 unkA;
|
||||
// };
|
||||
|
||||
|
||||
int getSWbit();
|
||||
|
||||
@@ -70,7 +65,7 @@ public:
|
||||
int bckResID(int);
|
||||
int btpResID(int);
|
||||
bool setBtp(signed char, bool);
|
||||
void init_texPttrnAnm(signed char, bool);
|
||||
bool init_texPttrnAnm(signed char, bool);
|
||||
void play_btp_anm();
|
||||
void play_eff_anm();
|
||||
void setAnm_anm(anm_prm_c*);
|
||||
@@ -95,7 +90,7 @@ public:
|
||||
void lookBack();
|
||||
bool chkAttention();
|
||||
void setAttention(bool);
|
||||
BOOL decideType(int);
|
||||
bool decideType(int);
|
||||
void cut_init_RUN_START(int);
|
||||
bool cut_move_RUN_START();
|
||||
void cut_init_RUN(int);
|
||||
@@ -126,7 +121,7 @@ public:
|
||||
bool cut_move_RUNAWAY_END();
|
||||
void privateCut(int);
|
||||
void endEvent();
|
||||
void isEventEntry();
|
||||
int isEventEntry();
|
||||
void event_proc(int);
|
||||
bool checkCommandTalk();
|
||||
bool set_action(ActionFunc, void*);
|
||||
@@ -161,19 +156,19 @@ public:
|
||||
int wait_action1(void*);
|
||||
u8 demo();
|
||||
void shadowDraw();
|
||||
bool _draw();
|
||||
BOOL _draw();
|
||||
bool _execute();
|
||||
bool _delete();
|
||||
cPhs_State _create();
|
||||
void bodyCreateHeap();
|
||||
void effcCreateHeap();
|
||||
void CreateHeap();
|
||||
BOOL bodyCreateHeap();
|
||||
BOOL effcCreateHeap();
|
||||
BOOL CreateHeap();
|
||||
|
||||
public:
|
||||
|
||||
/* 0x6C4 */ request_of_phase_process_class field_0x6C4;
|
||||
/* 0x6CC */ s8 mAnmMtxIdx;
|
||||
/* 0x6CD */ s8 field_0x6CD; //ui bodyCreateHeap
|
||||
/* 0x6CD */ s8 field_0x6CD;
|
||||
/* 0x6CE */ char mArcName;
|
||||
/* 0x6CF */ u8 field_0x6CF;
|
||||
/* 0x6D0 */ u32 field_0x6D0;
|
||||
@@ -186,25 +181,24 @@ public:
|
||||
/* 0x6FC*/ fpc_ProcID mPartnerProcID;
|
||||
/* 0x700*/ u32 field_0x700;
|
||||
/* 0x704*/ dNpc_PathRun_c mRunPath;
|
||||
/* 0x70C */ u8 field_0x70C[0x71A - 0x70C];
|
||||
/* 0x71A */ s16 field_0x71A;
|
||||
/* 0x71C */ s16 field_0x71C;
|
||||
/* 0x70C*/ cXyz field_0x70C;
|
||||
/* 0x718*/ csXyz field_0x718;
|
||||
/* 0x71E */ csXyz field_0x71E;
|
||||
/* 0x724 */ u8 field_0x724[0x72C - 0x724];
|
||||
/* 0x724 */ u8 field_0x724[0x72C - 0x724];
|
||||
/* 0x72C */ cXyz field_0x72C;
|
||||
/* 0x738 */ cXyz field_0x738;
|
||||
/* 0x744 */ u8 field_0x744[0x750 - 0x744];
|
||||
/* 0x744 */ u8 field_0x744[0x750 - 0x744];
|
||||
/* 0x750 */ cXyz field_0x750;
|
||||
/* 0x75C */ cXyz field_0x75C;
|
||||
/* 0x768 */ f32 field_0x768;
|
||||
/* 0x76A */ u8 field_0x76A[4];
|
||||
/* 0x768 */ f32 field_0x768;
|
||||
/* 0x76A */ u8 field_0x76A[4];
|
||||
/* 0x770 */ s16 mAngleY;
|
||||
/* 0x772 */ s16 field_0x772;
|
||||
/* 0x774 */ s16 field_0x774;
|
||||
/* 0x776 */ s16 field_0x776;
|
||||
/* 0x778 */ int field_0x778;
|
||||
/* 0x77C */ s16 mEvtIDTbl[0x08]; //8 Elements * U16 = 16 bytes
|
||||
/* 0x78C */ s16 mEvtIDIdx; //Array Index?
|
||||
/* 0x778 */ s32 field_0x778;
|
||||
/* 0x77C */ s16 mEvtIDTbl[8];
|
||||
/* 0x78C */ s16 mEvtIDIdx;
|
||||
/* 0x78E */ s8 field_0x78E[0x792 - 0x78E];
|
||||
/* 0x792 */ s16 field_0x792;
|
||||
/* 0x794 */ s16 field_0x794;
|
||||
@@ -213,7 +207,6 @@ public:
|
||||
/* 0x79A */ s16 field_0x79A;
|
||||
/* 0x79C */ s16 field_0x79C;
|
||||
/* 0x79E */ s16 field_0x79E;
|
||||
///* 0x79E */ s8 field_0x79F;
|
||||
/* 0x7A0 */ s16 field_0x7A0;
|
||||
/* 0x7A2 */ s16 field_0x7A2;
|
||||
/* 0x7A4 */ s16 field_0x7A4;
|
||||
@@ -224,16 +217,16 @@ public:
|
||||
/* 0x7AE */ s16 field_0x7AE;
|
||||
/* 0x7B0 */ s16 field_0x7B0;
|
||||
/* 0x7B2 */ s8 field_0x7B2;
|
||||
/* 0x7B2 */ u8 field_0x7B3;
|
||||
/* 0x7B3 */ u8 field_0x7B3;
|
||||
/* 0x7B4 */ u8 field_0x7B4;
|
||||
/* 0x7B5 */ u8 field_0x7B5;
|
||||
/* 0x7B5 */ u8 field_0x7B6;
|
||||
/* 0x7B5 */ u8 field_0x7B7;
|
||||
/* 0x7B6 */ u8 field_0x7B6;
|
||||
/* 0x7B7 */ u8 field_0x7B7;
|
||||
/* 0x7B8 */ u8 field_0x7B8;
|
||||
/* 0x7B9 */ u8 field_0x7B9;
|
||||
/* 0x7BA */ u8 field_0x7BA;
|
||||
/* 0x7BB */ u8 field_0x7BB;
|
||||
/* 0x7BC */ u8 field_0x7BC;
|
||||
/* 0x7BC */ s8 field_0x7BC;
|
||||
/* 0x7BD */ u8 field_0x7BD;
|
||||
/* 0x7BE */ u8 field_0x7BE;
|
||||
/* 0x7BF */ u8 field_0x7BF;
|
||||
@@ -244,22 +237,16 @@ public:
|
||||
/* 0x7C4 */ bool field_0x7C4;
|
||||
/* 0x7C5 */ bool field_0x7C5;
|
||||
/* 0x7C6 */ u8 field_0x7C6;
|
||||
/* 0x7C5 */ u8 field_0x7C7[0x7CF - 0x7C7];
|
||||
/* 0x7CF */ u8 field_0x7CF;
|
||||
/* 0x7D0 */ anm_prm_c* field_0x7D0;
|
||||
/* 0x7D4 */ u8 field_0x7D4[0x7DC - 0x7D4];
|
||||
// /* 0x7E4 */ s16* field_0x7E4; //Appears to be a struct
|
||||
// /* 0x7E8 */ u8 field_0x7E8[0x7F0 - 0x7E8];
|
||||
mDoExt_btkAnm field_0x7DC;
|
||||
/* 0x7C7 */ u8 field_0x7C7;
|
||||
/* 0x7C8 */ mDoExt_bpkAnm field_0x7C8;
|
||||
/* 0x7DC */ mDoExt_btkAnm field_0x7DC;
|
||||
/* 0x7F0 */ mDoExt_bckAnm field_0x7F0;
|
||||
/* 0x800 */ s16 field_0x800;
|
||||
/* 0x802 */ s16 field_0x802;
|
||||
/* 0x804 */ s16 field_0x804;
|
||||
/* 0x806 */ u16 field_0x806;
|
||||
//TODO: SOME KIND OF STRUCT HERE?
|
||||
/* 0x808*/ J3DModel* field_0x808; //Offset 0
|
||||
/* 0x80C */ //J3DModelData* field_0x80C; //Offset 4
|
||||
u8 field_0x80C[0x810-0x80C];
|
||||
/* 0x808*/ J3DModel* field_0x808;
|
||||
/* 0x80C*/ u8 field_0x80C[0x810-0x80C];
|
||||
/* 0x810 */ JPABaseEmitter* field_0x810;
|
||||
/* 0x814 */ s8 mCutsceneIndex;
|
||||
/* 0x815 */ s8 field_0x815;
|
||||
@@ -277,7 +264,6 @@ public:
|
||||
/* 0x821 */ s8 field_0x821;
|
||||
/* 0x822 */ s8 field_0x822;
|
||||
/* 0x823 */ s8 field_0x823;
|
||||
|
||||
}; // Size: 0x824
|
||||
|
||||
class daNpc_Kk1_HIO_c : mDoHIO_entry_c{
|
||||
@@ -290,30 +276,34 @@ public:
|
||||
/* 0x08 */ s32 field_0xA;
|
||||
/* 0x0C */ s16 field_0xC;
|
||||
/* 0x0E */ s16 field_0xE;
|
||||
/* 0x10 */ u8 mUnusedU8;
|
||||
/* 0x11 */ u8 field_0x11[0x1E - 0x11];
|
||||
/* 0x1E */ s16 field_0x1E;
|
||||
/* 0x10 */ s16 field_0x10;
|
||||
/* 0x12 */ s16 field_0x12;
|
||||
/* 0x14 */ s16 field_0x14;
|
||||
/* 0x16 */ s16 field_0x16;
|
||||
/* 0x18 */ s16 field_0x18;
|
||||
/* 0x1A */ s16 field_0x1A;
|
||||
/* 0x1C */ s16 field_0x1C;
|
||||
/* 0x1E */ s16 field_0x1E;
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ s16 field_0x24;
|
||||
/* 0x24 */ u8 field_0x24;
|
||||
/* 0x25 */ u8 field_0x25;
|
||||
/* 0x26 */ s16 field_0x26;
|
||||
/* 0x28 */ s16 field_0x28;
|
||||
/* 0x28 */ s16 field_0x2A;
|
||||
/* 0x2C */ s16 field_0x2C;
|
||||
/* 0x2C */ s16 field_0x2E;
|
||||
/* 0x30 */ s16 field_0x30; //TODO: Struct
|
||||
/* 0x30 */ s16 field_0x30;
|
||||
/* 0x32 */ s16 field_0x32;
|
||||
/* 0x34 */ f32 field_0x34;
|
||||
/* 0x38 */ f32 field_0x38;
|
||||
/* 0x3C */ f32 field_0x3C;
|
||||
/* 0x40 */ f32 field_0x40;
|
||||
/* 0x44 */ f32 field_0x44;
|
||||
///* 0x46 */ s16 field_0x46;
|
||||
/* 0x48 */ f32 field_0x48;
|
||||
/* 0x4C */ f32 field_0x4C;
|
||||
/* 0x50 */ f32 field_0x50;
|
||||
/* 0x54 */ f32 field_0x54;
|
||||
/* 0x58 */ f32 field_0x58;
|
||||
/* 0x5C */ f32 field_0x5C;
|
||||
/* Place member variables here */
|
||||
};
|
||||
#endif /* D_A_NPC_KK1_H */
|
||||
|
||||
+358
-147
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "d/actor/d_a_npc_kk1.h"
|
||||
#include "SSystem/SComponent/c_counter.h"
|
||||
#include "c/c_dylink.h"
|
||||
#include "d/actor/d_a_obj_roten.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/actor/d_a_swc00.h"
|
||||
@@ -13,9 +14,34 @@
|
||||
#include "d/d_procname.h"
|
||||
#include "d/d_priority.h"
|
||||
#include "d/d_s_play.h"
|
||||
#include "d/d_snap.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
|
||||
#define SHORT2DEG_ANGLE(deg) ((deg) / (65536.0f / 360.0f))
|
||||
#define LINKPOS (dComIfGp_getLinkPlayer()->current.pos)
|
||||
|
||||
|
||||
|
||||
//Needed to align .bss
|
||||
static u8 label3569[12];
|
||||
static u8 label1036[1];
|
||||
static u8 label1034[1];
|
||||
static u8 label1032[1];
|
||||
static u8 label1031[1];
|
||||
static u8 label1026[1];
|
||||
static u8 label1024[1];
|
||||
static u8 label1022[1];
|
||||
static u8 label1021[1];
|
||||
static u8 label984[1];
|
||||
static u8 label982[1];
|
||||
static u8 label980[1];
|
||||
static u8 label979[1];
|
||||
static u8 label941[1];
|
||||
static u8 label939[1];
|
||||
static u8 label937[1];
|
||||
static u8 label936[1];
|
||||
//
|
||||
|
||||
|
||||
static daNpc_Kk1_HIO_c l_HIO;
|
||||
@@ -64,7 +90,6 @@ static BOOL nodeCB_Head(J3DNode* arg0, int arg1) {
|
||||
|
||||
/* 000001E4-00000304 .text _nodeCB_Head__11daNpc_Kk1_cFP7J3DNodeP8J3DModel */
|
||||
void daNpc_Kk1_c::_nodeCB_Head(J3DNode* node, J3DModel* model) {
|
||||
/* Nonmatching */ //.bss Misallocated?
|
||||
|
||||
static cXyz a_eye_pos_off(14.0f,18.0f,0.0f);
|
||||
u16 joint_number = ((J3DJoint*)(node))->getJntNo();
|
||||
@@ -104,10 +129,9 @@ void daNpc_Kk1_c::_nodeCB_BackBone(J3DNode* node, J3DModel* model) {
|
||||
}
|
||||
|
||||
/* 0000042C-0000044C .text CheckCreateHeap__FP10fopAc_ac_c */
|
||||
static void CheckCreateHeap(fopAc_ac_c* param_1) {
|
||||
static int CheckCreateHeap(fopAc_ac_c* param_1) {
|
||||
|
||||
((daNpc_Kk1_c*)param_1)->CreateHeap();
|
||||
return;
|
||||
return ((daNpc_Kk1_c*)param_1)->CreateHeap();
|
||||
|
||||
}
|
||||
|
||||
@@ -307,7 +331,6 @@ bool daNpc_Kk1_c::setBtp(signed char param_1, bool param_2) {
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
|
||||
pJVar1 = (J3DAnmTexPattern*)dComIfG_getObjectIDRes(&mArcName,btpResID(param_1));
|
||||
if (pJVar1 == 0) {
|
||||
u32 uVar2 = JUTAssertion::getSDevice();
|
||||
@@ -323,16 +346,15 @@ bool daNpc_Kk1_c::setBtp(signed char param_1, bool param_2) {
|
||||
}
|
||||
|
||||
/* 00000BC4-00000BE4 .text init_texPttrnAnm__11daNpc_Kk1_cFScb */
|
||||
void daNpc_Kk1_c::init_texPttrnAnm(signed char param_1, bool param_2) {
|
||||
setBtp(param_1, param_2);
|
||||
return;
|
||||
bool daNpc_Kk1_c::init_texPttrnAnm(signed char param_1, bool param_2) {
|
||||
return setBtp(param_1, param_2);
|
||||
}
|
||||
|
||||
/* 00000BE4-00000C80 .text play_btp_anm__11daNpc_Kk1_cFv */
|
||||
void daNpc_Kk1_c::play_btp_anm() {
|
||||
|
||||
u8 uVar1;
|
||||
uVar1 = mBtpAnm.getBtpAnm()->getFrameMax();// getAnmTable()->mMaxFrame;
|
||||
|
||||
u8 uVar1 = mBtpAnm.getBtpAnm()->getFrameMax();
|
||||
if ((field_0x819 != 0) ||
|
||||
(cLib_calcTimer(&field_0x6EE) == 0)) {
|
||||
field_0x6EC = field_0x6EC + 1;
|
||||
@@ -741,22 +763,22 @@ u32 daNpc_Kk1_c::getMsg_KK1_0() {
|
||||
if (field_0x7BA != 0) {
|
||||
|
||||
field_0x7BA = 0;
|
||||
return 0x1ca1;
|
||||
return 0x1CA1;
|
||||
}
|
||||
else {
|
||||
return 0x1c8b;
|
||||
return 0x1C8B;
|
||||
}
|
||||
}
|
||||
else { //If Day
|
||||
if (dComIfGs_isEventBit(0xe08) == 0) {
|
||||
if(dComIfGs_isEventBit(0xe10)){
|
||||
else {
|
||||
if (dComIfGs_isEventBit(0xE08) == 0) { //If Day
|
||||
if(dComIfGs_isEventBit(0xE10)){
|
||||
return 0x1C87;
|
||||
}else{
|
||||
return 0x1C88;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return 0x1c85;
|
||||
return 0x1C85;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -777,7 +799,7 @@ void daNpc_Kk1_c::eventOrder() {
|
||||
char cVar1 = field_0x81B;
|
||||
if ((cVar1 == '\x01') || (cVar1 == '\x02')) {
|
||||
eventInfo.onCondition(dEvtCnd_CANTALK_e);
|
||||
if(field_0x81B == '\x01'){ //1 = Speaking?
|
||||
if(field_0x81B == '\x01'){
|
||||
fopAcM_orderSpeakEvent(this);
|
||||
}
|
||||
}else if (cVar1 >= 0x03){
|
||||
@@ -987,8 +1009,8 @@ void daNpc_Kk1_c::setAttention(bool i_attn_flag) {
|
||||
}
|
||||
|
||||
/* 00001BE8-00001C70 .text decideType__11daNpc_Kk1_cFi */
|
||||
BOOL daNpc_Kk1_c::decideType(int) {
|
||||
BOOL ret;
|
||||
bool daNpc_Kk1_c::decideType(int) {
|
||||
bool ret;
|
||||
if(field_0x81F > 0){
|
||||
ret = true;
|
||||
}
|
||||
@@ -1085,8 +1107,8 @@ bool daNpc_Kk1_c::cut_move_CATCH_START() {
|
||||
/* 00001F2C-00001FAC .text cut_init_CATCH_END__11daNpc_Kk1_cFi */
|
||||
void daNpc_Kk1_c::cut_init_CATCH_END(int param_1) {
|
||||
|
||||
daPy_py_c* player = (daPy_py_c*)dComIfGp_getLinkPlayer();
|
||||
player->offPlayerNoDraw();
|
||||
|
||||
((daPy_py_c*)dComIfGp_getLinkPlayer())->offPlayerNoDraw();
|
||||
current.angle.y += 0x8000;
|
||||
setAnm_NUM(0,1);
|
||||
mpMorf->setMorf(0.0);
|
||||
@@ -1121,7 +1143,7 @@ void daNpc_Kk1_c::cut_init_TRN(int) {
|
||||
field_0x7C4 = 1;
|
||||
return;
|
||||
}
|
||||
mRunPath.setNearPathIndx(&dComIfGp_getLinkPlayer()->current.pos,100);
|
||||
mRunPath.setNearPathIndx(&LINKPOS,100);
|
||||
u8 linkPathIndex = mRunPath.mCurrPointIndex;
|
||||
|
||||
mRunPath.setNearPathIndx(¤t.pos,100);
|
||||
@@ -1142,7 +1164,7 @@ void daNpc_Kk1_c::cut_init_TRN(int) {
|
||||
if (r26 == 0){
|
||||
cXyz muuruPoint = mRunPath.getPoint(mRunPath.mCurrPointIndex);
|
||||
f32 muuruDistance = (current.pos - muuruPoint).absXZ();
|
||||
f32 linkDistance = (dComIfGp_getLinkPlayer()->current.pos - muuruPoint).absXZ();
|
||||
f32 linkDistance = (LINKPOS - muuruPoint).absXZ();
|
||||
|
||||
bVar10 = (linkDistance < muuruDistance);
|
||||
}
|
||||
@@ -1211,11 +1233,11 @@ void daNpc_Kk1_c::cut_init_BYE(int param_1) {
|
||||
|
||||
/* 00002490-00002568 .text cut_move_BYE__11daNpc_Kk1_cFv */
|
||||
bool daNpc_Kk1_c::cut_move_BYE() {
|
||||
|
||||
event_move(0);
|
||||
if (field_0x79A > 0) {
|
||||
//TODO: This can likely be written much better.
|
||||
event_move(0);
|
||||
if (field_0x79A > 0) {
|
||||
if (cLib_calcTimer(&field_0x79A) == 0) {
|
||||
((daPy_py_c*)dComIfGp_getLinkPlayer())->setPlayerPosAndAngle(&dComIfGp_getLinkPlayer()->current.pos,-0x3217);
|
||||
((daPy_py_c*)dComIfGp_getLinkPlayer())->setPlayerPosAndAngle(&LINKPOS,-0x3217);
|
||||
daPy_py_c* player = (daPy_py_c*)dComIfGp_getLinkPlayer();
|
||||
player->mDemo.setDemoType(3);
|
||||
player->mDemo.setParam0(0);
|
||||
@@ -1263,8 +1285,8 @@ void daNpc_Kk1_c::cut_init_BYE_END(int) {
|
||||
|
||||
((daPy_py_c*)dComIfGp_getLinkPlayer())->changeOriginalDemo();
|
||||
((daPy_py_c*)dComIfGp_getLinkPlayer())->changeDemoMode(4);
|
||||
s16 angle_y = cLib_targetAngleY(&((daPy_py_c*)dComIfGp_getLinkPlayer())->current.pos,¤t.pos);
|
||||
((daPy_py_c*)dComIfGp_getLinkPlayer())->setPlayerPosAndAngle(&dComIfGp_getLinkPlayer()->current.pos, angle_y);
|
||||
s16 angle_y = cLib_targetAngleY(&LINKPOS,¤t.pos);
|
||||
((daPy_py_c*)dComIfGp_getLinkPlayer())->setPlayerPosAndAngle(&LINKPOS, angle_y);
|
||||
((daPy_py_c*)dComIfGp_getLinkPlayer())->offPlayerNoDraw();
|
||||
field_0x7C0 = 1;
|
||||
}
|
||||
@@ -1290,7 +1312,7 @@ void daNpc_Kk1_c::cut_init_OTOBOKE(int) {
|
||||
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(1);
|
||||
player->changeOriginalDemo();
|
||||
((daPy_py_c*)dComIfGp_getLinkPlayer())->changeDemoMode(4);
|
||||
((daPy_py_c*)dComIfGp_getLinkPlayer())->setPlayerPosAndAngle(&dComIfGp_getLinkPlayer()->current.pos, current.angle.y);
|
||||
((daPy_py_c*)dComIfGp_getLinkPlayer())->setPlayerPosAndAngle(&LINKPOS, current.angle.y);
|
||||
field_0x798 = 2;
|
||||
return;
|
||||
}
|
||||
@@ -1311,11 +1333,11 @@ bool daNpc_Kk1_c::cut_move_OTOBOKE() {
|
||||
void daNpc_Kk1_c::cut_init_PLYER_MOV(int param_1) {
|
||||
|
||||
cXyz cStack_1c;
|
||||
s16 sVar3 = cLib_targetAngleY(¤t.pos,&dComIfGp_getLinkPlayer()->current.pos);
|
||||
s16 sVar3 = cLib_targetAngleY(¤t.pos,&LINKPOS);
|
||||
sVar3 = sVar3 - current.angle.y;
|
||||
|
||||
if(abs(sVar3)>0x2000){
|
||||
dComIfGp_evmng_setGoal(&dComIfGp_getLinkPlayer()->current.pos);
|
||||
dComIfGp_evmng_setGoal(&LINKPOS);
|
||||
}else{
|
||||
cXyz local_28;
|
||||
local_28.setall(0.0);
|
||||
@@ -1346,9 +1368,9 @@ void daNpc_Kk1_c::cut_init_RUNAWAY_START(int param_1) {
|
||||
((daPy_py_c*)dComIfGp_getLinkPlayer())->changeOriginalDemo();
|
||||
((daPy_py_c*)dComIfGp_getLinkPlayer())->changeDemoMode(4);
|
||||
|
||||
short sVar4 = cLib_targetAngleY(&dComIfGp_getLinkPlayer()->current.pos,¤t.pos);
|
||||
((daPy_py_c*)dComIfGp_getLinkPlayer())->setPlayerPosAndAngle(&dComIfGp_getLinkPlayer()->current.pos,sVar4);
|
||||
s16 r29=cLib_targetAngleY(¤t.pos,&dComIfGp_getLinkPlayer()->current.pos);
|
||||
short sVar4 = cLib_targetAngleY(&LINKPOS,¤t.pos);
|
||||
((daPy_py_c*)dComIfGp_getLinkPlayer())->setPlayerPosAndAngle(&LINKPOS,sVar4);
|
||||
s16 r29=cLib_targetAngleY(¤t.pos,&LINKPOS);
|
||||
shape_angle.y = r29 + 0x8000;
|
||||
|
||||
|
||||
@@ -1387,8 +1409,7 @@ void daNpc_Kk1_c::cut_init_RUNAWAY_START(int param_1) {
|
||||
bool daNpc_Kk1_c::cut_move_RUNAWAY_START() {
|
||||
if(field_0x81A == 8){
|
||||
if(field_0x7B2 != 0){
|
||||
daPy_py_c* player = (daPy_py_c*)dComIfGp_getLinkPlayer();
|
||||
current.angle.y = cLib_targetAngleY(¤t.pos,&player->current.pos);
|
||||
current.angle.y = cLib_targetAngleY(¤t.pos,&LINKPOS);
|
||||
setAnm_NUM(0,1);
|
||||
mpMorf->setMorf(0.0);
|
||||
return true;
|
||||
@@ -1406,7 +1427,6 @@ void daNpc_Kk1_c::cut_init_RUNAWAY_END(int) {
|
||||
field_0x7B6 = 0;
|
||||
speedF = 0.0;
|
||||
field_0x7C0 = 1;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1570,9 +1590,9 @@ void daNpc_Kk1_c::endEvent() {
|
||||
}
|
||||
|
||||
/* 00002DBC-00002DF4 .text isEventEntry__11daNpc_Kk1_cFv */
|
||||
void daNpc_Kk1_c::isEventEntry() {
|
||||
dComIfGp_evmng_getMyStaffId(mEventCut.getActorName(),NULL,0);
|
||||
return;
|
||||
int daNpc_Kk1_c::isEventEntry() {
|
||||
return dComIfGp_evmng_getMyStaffId(mEventCut.getActorName(),NULL,0);
|
||||
|
||||
}
|
||||
|
||||
/* 00002DF4-00002F80 .text event_proc__11daNpc_Kk1_cFi */
|
||||
@@ -1753,10 +1773,10 @@ void daNpc_Kk1_c::createTama(float param_1) {
|
||||
/* 000032D8-0000345C .text chk_areaIN__11daNpc_Kk1_cFf4cXyz */
|
||||
bool daNpc_Kk1_c::chk_areaIN(float param_1, cXyz param_2) {
|
||||
|
||||
float distanceXZ = (dComIfGp_getLinkPlayer()->current.pos - param_2).absXZ();
|
||||
float distanceXZ = (LINKPOS - param_2).absXZ();
|
||||
|
||||
|
||||
s16 angdiff = cLib_targetAngleY(¤t.pos,&dComIfGp_getLinkPlayer()->current.pos) - current.angle.y;
|
||||
s16 angdiff = cLib_targetAngleY(¤t.pos,&LINKPOS) - current.angle.y;
|
||||
float fVar1 = param_1;
|
||||
if (abs(angdiff) > 0x4E38) {
|
||||
fVar1 *= 0.5f;
|
||||
@@ -1778,7 +1798,7 @@ bool daNpc_Kk1_c::startEvent_check() {
|
||||
|
||||
uVar3 = chk_areaIN(l_HIO.field_0x5C,current.pos);
|
||||
if ((uVar3 & 0xff) != 0) {
|
||||
fVar4 = current.pos.abs(dComIfGp_getLinkPlayer()->current.pos);
|
||||
fVar4 = current.pos.abs(LINKPOS);
|
||||
|
||||
if ((fVar4 < g_regHIO.mChild[9].mFloatRegs[0] + 210.0f) ||
|
||||
(field_0x6ba != 0)) {
|
||||
@@ -1946,73 +1966,18 @@ bool daNpc_Kk1_c::kyorokyoro() {
|
||||
|
||||
/* 00003A84-00003C9C .text chk_attn__11daNpc_Kk1_cFv */
|
||||
bool daNpc_Kk1_c::chk_attn() {
|
||||
/* Nonmatching */
|
||||
// float fVar1;
|
||||
// bool bVar2;
|
||||
// short sVar4;
|
||||
// int iVar3;
|
||||
// cXyz local_54;
|
||||
// cXyz local_48 [2];
|
||||
// int uVar5;
|
||||
|
||||
// s16 fVar6 = (current.pos-dComIfGp_getLinkPlayer()->current.pos).absXZ();
|
||||
// fVar1 = current.pos.y - dComIfGp_getLinkPlayer()->current.pos.y;
|
||||
// sVar4 = cLib_targetAngleY(¤t.pos,&dComIfGp_getLinkPlayer()->current.pos);
|
||||
// iVar3 = (sVar4 - current.angle.y);
|
||||
// if(field_0x81E == 1){
|
||||
// u32 uVar5 = 0;
|
||||
// bVar2 = false;
|
||||
// if (fVar6 < 200.0 && (fabs(iVar3)/182.0444) < 90.0){
|
||||
// bVar2 = true;
|
||||
// }
|
||||
// if ((bVar2) && (fabs(fVar1) < 300.0)) {
|
||||
// uVar5 = 1;
|
||||
// }
|
||||
// //return uVar5;
|
||||
// }
|
||||
// else{
|
||||
// uVar5 = 0;
|
||||
// bVar2 = false;
|
||||
// if((fVar6 < 200.0f)&&(fabs(iVar3) / 182.0444 < 60.0)){
|
||||
// bVar2 = true;
|
||||
// }
|
||||
// if((bVar2) && (abs(fVar1)) < 300.0){
|
||||
// uVar5 = 1;
|
||||
// }
|
||||
// }
|
||||
// return uVar5;
|
||||
|
||||
|
||||
f32 fVar6;
|
||||
|
||||
u8 bVar2;
|
||||
bool retval = 0;
|
||||
|
||||
fVar6 = (current.pos-dComIfGp_getLinkPlayer()->current.pos).absXZ();
|
||||
|
||||
f32 fVar1 = current.pos.y - dComIfGp_getLinkPlayer()->current.pos.y;
|
||||
s16 sVar4 = cLib_targetAngleY(¤t.pos, &dComIfGp_getLinkPlayer()->current.pos);
|
||||
s16 iVar3 = (sVar4 - current.angle.y);
|
||||
f32 distToLinkXZ = (current.pos-LINKPOS).absXZ();
|
||||
f32 heightDiff = current.pos.y - LINKPOS.y;
|
||||
s16 iVar3 = cLib_targetAngleY(¤t.pos, &LINKPOS) - current.angle.y;
|
||||
if ((s32)field_0x81E == 1) {
|
||||
retval = 0;
|
||||
bVar2 = 0;
|
||||
if ((fVar6 < 200.0f) && (((f32)abs(iVar3) / 182.04445f) < 90.0f)) {
|
||||
bVar2 = 1;
|
||||
}
|
||||
if ((bVar2) && (std::fabsf(fVar1) < 300.0f)) {
|
||||
retval = 1;
|
||||
}
|
||||
return retval;
|
||||
return distToLinkXZ < 200.0f &&
|
||||
SHORT2DEG_ANGLE(abs(iVar3)) < 90.0f && //TODO: Possible inline (cAngle::s2d())
|
||||
std::fabsf(heightDiff) < 300.0f;
|
||||
}else{
|
||||
retval = 0;
|
||||
bVar2 = 0;
|
||||
if ((fVar6 < 200.0f) && (((f32) abs(iVar3) / 182.04445f) < 60.0f)) {
|
||||
bVar2 = 1;
|
||||
}
|
||||
if ((bVar2) && (std::fabsf(fVar1) < 300.0f)) {
|
||||
retval = 1;
|
||||
}
|
||||
return retval;
|
||||
return distToLinkXZ < 200.0f &&
|
||||
SHORT2DEG_ANGLE(abs(iVar3)) < 60.0f &&
|
||||
std::fabsf(heightDiff) < 300.0f;
|
||||
}
|
||||
|
||||
|
||||
@@ -2056,7 +2021,6 @@ void daNpc_Kk1_c::setAse() {
|
||||
/* 00003E18-00003EA4 .text flwAse__11daNpc_Kk1_cFv */
|
||||
void daNpc_Kk1_c::flwAse() {
|
||||
|
||||
JPABaseEmitter* iVar3;
|
||||
JGeometry::TVec3<f32> out;
|
||||
if (field_0x810 != NULL) {
|
||||
mDoMtx_stack_c::copy(mpMorf->mpModel->getAnmMtx(mAnmMtxIdx));
|
||||
@@ -2121,7 +2085,7 @@ BOOL daNpc_Kk1_c::wait_1() {
|
||||
cXyz sp14(-100.0f,0.0f,0.0f);
|
||||
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_YrotM(mDoMtx_stack_c::get(),field_0x71A);
|
||||
mDoMtx_YrotM(mDoMtx_stack_c::get(),field_0x718.y);
|
||||
|
||||
mDoMtx_stack_c::multVec(&sp14,&sp20);
|
||||
s16 temp_r3_r2 = cLib_targetAngleY(¤t.pos,&sp20);
|
||||
@@ -2137,7 +2101,7 @@ BOOL daNpc_Kk1_c::wait_1() {
|
||||
}
|
||||
if(cLib_calcTimer(&field_0x7A4) == 0){
|
||||
if(mRunPath.mPath != NULL){
|
||||
u8 temp_r3_3 = mRunPath.maxPoint();
|
||||
u32 temp_r3_3 = mRunPath.maxPoint();
|
||||
if((temp_r3_3 > 2) && (((daObj_Roten_c*)temp_r3_3)->getCreateCount() > 1)){
|
||||
field_0x7B6 = 1;
|
||||
return 1;
|
||||
@@ -2228,7 +2192,7 @@ BOOL daNpc_Kk1_c::walk_1() {
|
||||
BOOL daNpc_Kk1_c::wait_2() {
|
||||
|
||||
int sp8;
|
||||
cLib_addCalcAngleS(¤t.angle.y,field_0x71A,4,0x800,0x80);
|
||||
cLib_addCalcAngleS(¤t.angle.y,field_0x718.y,4,0x800,0x80);
|
||||
if(field_0x7C3 != 0){
|
||||
if(chk_talk() != 0){
|
||||
setStt(2);
|
||||
@@ -2250,7 +2214,7 @@ BOOL daNpc_Kk1_c::wait_2() {
|
||||
if((temp_r4 != 0xFF) && (dComIfGs_isSwitch(temp_r4,current.roomNo) != 0)){
|
||||
fopAc_ac_c* temp_r3 = searchByID(mPartnerProcID,&sp8);
|
||||
if((temp_r3 != NULL) && (sp8 == 0)){
|
||||
s16 difference = cLib_targetAngleY(&temp_r3->current.pos,&dComIfGp_getLinkPlayer()->current.pos)-temp_r3->current.angle.y;
|
||||
s16 difference = cLib_targetAngleY(&temp_r3->current.pos,&LINKPOS)-temp_r3->current.angle.y;
|
||||
if(abs(difference) < 0x4000){
|
||||
field_0x81B = 4;
|
||||
}else{
|
||||
@@ -2286,7 +2250,6 @@ void daNpc_Kk1_c::move_CMT_WAI() {
|
||||
sVar2 = cLib_calcTimer(&field_0x7A4);
|
||||
if (sVar2 == 0) {
|
||||
if ((field_0x81B != 1) && (field_0x81B < 3)) {
|
||||
//local_18 = ;
|
||||
uVar1 = chk_areaIN(l_HIO.field_0x5C,current.pos);
|
||||
if ((uVar1 & 0xff) != 0) {
|
||||
this->field_0x81B = 8;
|
||||
@@ -2392,7 +2355,7 @@ void daNpc_Kk1_c::init_CMT_PCK() {
|
||||
|
||||
/* 00004A84-00004C34 .text move_CMT_PCK__11daNpc_Kk1_cFv */
|
||||
void daNpc_Kk1_c::move_CMT_PCK() {
|
||||
/* Nonmatching */
|
||||
|
||||
cXyz sp8;
|
||||
s16 temp_r3;
|
||||
u8 temp_r0;
|
||||
@@ -2434,8 +2397,7 @@ void daNpc_Kk1_c::move_CMT_PCK() {
|
||||
|
||||
/* 00004C34-00004DD0 .text cmmt_1__11daNpc_Kk1_cFv */
|
||||
BOOL daNpc_Kk1_c::cmmt_1() {
|
||||
/* Nonmatching */
|
||||
u8 temp_r0;
|
||||
|
||||
|
||||
u8 temp_r0_4;
|
||||
|
||||
@@ -2494,11 +2456,11 @@ BOOL daNpc_Kk1_c::wait_3() {
|
||||
|
||||
|
||||
|
||||
float fVar4 = (current.pos-dComIfGp_getLinkPlayer()->current.pos).absXZ();
|
||||
float distToLinkXZ = (current.pos-LINKPOS).absXZ();
|
||||
|
||||
field_0x7C5 = fVar4 > 300.0f;
|
||||
field_0x7C5 = distToLinkXZ > 300.0f;
|
||||
if (field_0x7C5) {
|
||||
cLib_addCalcAngleS(¤t.angle.y,field_0x71A,4,0x800,0x80);
|
||||
cLib_addCalcAngleS(¤t.angle.y,field_0x718.y,4,0x800,0x80);
|
||||
}
|
||||
if (field_0x7C3 != 0) {
|
||||
if (chk_talk()) {
|
||||
@@ -2526,18 +2488,12 @@ BOOL daNpc_Kk1_c::wait_3() {
|
||||
|
||||
/* 00004F74-00005170 .text wait_4__11daNpc_Kk1_cFv */
|
||||
BOOL daNpc_Kk1_c::wait_4() {
|
||||
/* Nonmatching */
|
||||
float fVar1;
|
||||
bool bVar3;
|
||||
|
||||
short target;
|
||||
int iVar2;
|
||||
float fVar4;
|
||||
cXyz local_44;
|
||||
cXyz local_38;
|
||||
cXyz local_2c;
|
||||
cXyz local_20 [2];
|
||||
|
||||
fVar4 = (current.pos-dComIfGp_getLinkPlayer()->current.pos).absXZ();
|
||||
fVar4 = (current.pos-LINKPOS).absXZ();
|
||||
|
||||
|
||||
|
||||
@@ -2629,10 +2585,7 @@ BOOL daNpc_Kk1_c::talk_1() {
|
||||
/* 000052B4-000053F4 .text wait_action1__11daNpc_Kk1_cFPv */
|
||||
int daNpc_Kk1_c::wait_action1(void* arg0) {
|
||||
|
||||
u8 temp_r0;
|
||||
u8 temp_r0_2;
|
||||
|
||||
temp_r0 = this->field_0x821;
|
||||
u8 temp_r0 = this->field_0x821;
|
||||
switch ((s8) temp_r0) {
|
||||
|
||||
case 0:
|
||||
@@ -2685,7 +2638,6 @@ int daNpc_Kk1_c::wait_action1(void* arg0) {
|
||||
/* 000053F4-00005534 .text demo__11daNpc_Kk1_cFv */
|
||||
u8 daNpc_Kk1_c::demo() {
|
||||
|
||||
//dDemo_actor_c *this_00;
|
||||
J3DAnmTexPattern *pJVar2;
|
||||
|
||||
if (demoActorID == 0) {
|
||||
@@ -2735,47 +2687,306 @@ u8 daNpc_Kk1_c::demo() {
|
||||
void daNpc_Kk1_c::shadowDraw() {
|
||||
|
||||
cXyz local_18(current.pos.x,current.pos.y + 150.0f, current.pos.z);
|
||||
|
||||
GXTexObj* tex = dDlst_shadowControl_c::getSimpleTex();
|
||||
|
||||
mShadowID = dComIfGd_setShadow(mShadowID,1,mpMorf->getModel(),&local_18,800.0f,40.0f,current.pos.y,mObjAcch.GetGroundH(),
|
||||
mObjAcch.m_gnd,&tevStr,0,1.0,tex);
|
||||
|
||||
}
|
||||
|
||||
/* 000055C4-00005798 .text _draw__11daNpc_Kk1_cFv */
|
||||
bool daNpc_Kk1_c::_draw() {
|
||||
/* Nonmatching */
|
||||
BOOL daNpc_Kk1_c::_draw() {
|
||||
|
||||
J3DModelData *pJVar1;
|
||||
J3DModel *pJVar2;
|
||||
|
||||
dBgS* dbgs;
|
||||
|
||||
pJVar2 = mpMorf->getModel();
|
||||
|
||||
pJVar1 = pJVar2->getModelData();
|
||||
dbgs = dComIfG_Bgsp();
|
||||
if ((field_0x7BD) || (field_0x7C0)) {
|
||||
return 1;
|
||||
}
|
||||
g_env_light.settingTevStruct(TEV_TYPE_ACTOR,¤t.pos,&tevStr);
|
||||
g_env_light.setLightTevColorType(pJVar2,&tevStr);
|
||||
|
||||
mBtpAnm.entry(pJVar1,field_0x6EC);
|
||||
mpMorf->entryDL();
|
||||
mBtpAnm.remove(pJVar1);
|
||||
if (!field_0x7BE) {
|
||||
field_0x7C8.entry(field_0x808->getModelData(),field_0x800);
|
||||
|
||||
field_0x7DC.entry(field_0x808->getModelData(),field_0x802);
|
||||
mDoExt_modelEntryDL(field_0x808);
|
||||
field_0x7DC.remove(field_0x808->getModelData());
|
||||
field_0x7C8.remove(field_0x808->getModelData());
|
||||
}
|
||||
shadowDraw();
|
||||
dSnap_RegistFig(0x58,(fopAc_ac_c *)this,1.0,1.0,1.0);
|
||||
|
||||
if (l_HIO.field_0x24) {
|
||||
cXyz somevec = current.pos;
|
||||
somevec.y = eyePos.y;
|
||||
somevec = mRunPath.getPoint(mRunPath.mCurrPointIndex);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
//Needed to fill .rodata
|
||||
const u16 fillerbytes[12] ={0x00FF,0x0080,0xFFFF,0x0080,
|
||||
0xFF00,0x0080,0x0000,0xFF80,
|
||||
0xFFFF,0x0080,0x00FF,0x0080};
|
||||
|
||||
/* 00005798-000059EC .text _execute__11daNpc_Kk1_cFv */
|
||||
bool daNpc_Kk1_c::_execute() {
|
||||
/* Nonmatching */
|
||||
|
||||
float radius;
|
||||
int cVar1;
|
||||
int iVar3;
|
||||
|
||||
if (!field_0x7C1) {
|
||||
field_0x70C = current.pos;
|
||||
field_0x718 = current.angle;
|
||||
field_0x7C1 = 1;
|
||||
}
|
||||
m_jnt.setParam(
|
||||
l_HIO.field_0x14,l_HIO.field_0x16,
|
||||
l_HIO.field_0x18,l_HIO.field_0x1A,
|
||||
l_HIO.field_0xC,l_HIO.field_0xE,
|
||||
l_HIO.field_0x10,l_HIO.field_0x12,
|
||||
l_HIO.field_0x1C
|
||||
);
|
||||
|
||||
if ((field_0x7BD ) && (!demoActorID)) {
|
||||
return 1;
|
||||
}
|
||||
partner_search();
|
||||
checkOrder();
|
||||
cVar1 = demo();
|
||||
if (!cVar1) {
|
||||
iVar3 = -1;
|
||||
if ((dComIfGp_event_runCheck())){
|
||||
cVar1 = checkCommandTalk();
|
||||
if (cVar1 == 0) {
|
||||
iVar3 = isEventEntry();
|
||||
}
|
||||
}
|
||||
if (iVar3 >= 0) {
|
||||
event_proc(iVar3);
|
||||
}
|
||||
else {
|
||||
(this->*field_0x6F0)(NULL);
|
||||
}
|
||||
field_0x6ba = 0;
|
||||
lookBack();
|
||||
fopAcM_posMoveF(this,mStts.GetCCMoveP());
|
||||
mObjAcch.CrrPos(*dComIfG_Bgsp());
|
||||
play_animation();
|
||||
}
|
||||
else {
|
||||
field_0x7BD = 0;
|
||||
}
|
||||
eventOrder();
|
||||
field_0x71E = current.angle;
|
||||
|
||||
if (!field_0x7BF) {
|
||||
shape_angle = current.angle;
|
||||
}
|
||||
|
||||
cVar1 = dComIfG_Bgsp()->GetRoomId(mObjAcch.m_gnd);
|
||||
tevStr.mRoomNo = cVar1;
|
||||
u8 bVar2 = dComIfG_Bgsp()->GetPolyColor(mObjAcch.m_gnd);
|
||||
tevStr.mEnvrIdxOverride = bVar2;
|
||||
setMtx(false);
|
||||
if (!(field_0x7C6 ) && !(field_0x7BB)) {
|
||||
if (field_0x81A == 1) {
|
||||
radius = 60.0;
|
||||
}
|
||||
else {
|
||||
radius = 40.0;
|
||||
}
|
||||
setCollision(radius,140.0);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/* 000059EC-00005A58 .text _delete__11daNpc_Kk1_cFv */
|
||||
bool daNpc_Kk1_c::_delete() {
|
||||
/* Nonmatching */
|
||||
cDyl_Unlink(0x1D6);
|
||||
dComIfG_resDelete(&field_0x6C4,&mArcName);
|
||||
delBikon();
|
||||
delAse();
|
||||
if(heap != NULL && mpMorf != NULL){
|
||||
mpMorf->stopZelAnime();
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static u32 a_siz_tbl[2] = {0x0,0x0};
|
||||
/* 00005A58-00005B98 .text _create__11daNpc_Kk1_cFv */
|
||||
cPhs_State daNpc_Kk1_c::_create() {
|
||||
/* Nonmatching */
|
||||
|
||||
|
||||
fopAcM_SetupActor(this,daNpc_Kk1_c);
|
||||
|
||||
|
||||
if (!decideType(base.mParameters & 0xff)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
s32 resLoadResult = dComIfG_resLoad(&field_0x6C4,&mArcName);
|
||||
field_0x7BC = resLoadResult == cPhs_COMPLEATE_e;
|
||||
|
||||
if((u8)field_0x7BC == 0){
|
||||
return resLoadResult;
|
||||
}
|
||||
|
||||
s32 linkresult = cDyl_LinkASync(0x1D6);
|
||||
if(linkresult != cPhs_COMPLEATE_e){
|
||||
return linkresult;
|
||||
}
|
||||
|
||||
if (!fopAcM_entrySolidHeap(this,CheckCreateHeap,a_siz_tbl[field_0x81F])) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
cullMtx = (MtxP)mpMorf->mpModel->getBaseTRMtx();
|
||||
fopAcM_SetMtx(this,cullMtx);
|
||||
fopAcM_setCullSizeBox(this,-50.0,-20.0,-50.0,50.0,140.0,50.0);
|
||||
if (!createInit()) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
return resLoadResult;
|
||||
}
|
||||
|
||||
/* 00006118-0000638C .text bodyCreateHeap__11daNpc_Kk1_cFv */
|
||||
void daNpc_Kk1_c::bodyCreateHeap() {
|
||||
/* Nonmatching */
|
||||
BOOL daNpc_Kk1_c::bodyCreateHeap() {
|
||||
|
||||
J3DModelData *pModelData;
|
||||
mDoExt_McaMorf *pmVar2;
|
||||
|
||||
|
||||
|
||||
pModelData = (J3DModelData*)dComIfG_getObjectIDRes(&mArcName,0xD);
|
||||
pModelData->getJointName();
|
||||
|
||||
if (pModelData == NULL) {
|
||||
JUTAssertion::showAssert(JUTAssertion::getSDevice(),"d_a_npc_kk1.cpp",0xdd6,"a_mdl_dat != 0");
|
||||
OSPanic("d_a_npc_kk1.cpp",0xdd6,"Halt");
|
||||
}
|
||||
|
||||
pmVar2 = new mDoExt_McaMorf(pModelData,NULL,NULL,NULL,
|
||||
-0x1,1.0,0,-1,1,NULL,0x80000,0x11020022);
|
||||
|
||||
|
||||
mpMorf = pmVar2;
|
||||
pmVar2 = mpMorf;
|
||||
if (pmVar2 == NULL) {
|
||||
return 0;
|
||||
}
|
||||
else if (pmVar2->mpModel == NULL) {
|
||||
mpMorf = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
if (!init_texPttrnAnm(0,false)) {
|
||||
mpMorf = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
mAnmMtxIdx = pModelData->getJointName()->getIndex("head");
|
||||
if (mAnmMtxIdx < 0) {
|
||||
JUTAssertion::showAssert(JUTAssertion::getSDevice(),"d_a_npc_kk1.cpp",0xdea,"m_hed_jnt_num >= 0");
|
||||
OSPanic("d_a_npc_kk1.cpp",0xdea,"Halt");
|
||||
}
|
||||
field_0x6CD = pModelData->getJointName()->getIndex("backbone");
|
||||
if (field_0x6CD < 0) {
|
||||
JUTAssertion::showAssert(JUTAssertion::getSDevice(),"d_a_npc_kk1.cpp",0xdec,"m_bbone_jnt_num >= 0");
|
||||
OSPanic("d_a_npc_kk1.cpp",0xdec,"Halt");
|
||||
}
|
||||
mpMorf->mpModel->getModelData()->getJointNodePointer(mAnmMtxIdx)->setCallBack(nodeCB_Head);
|
||||
mpMorf->mpModel->getModelData()->getJointNodePointer(field_0x6CD)->setCallBack(nodeCB_BackBone);
|
||||
mpMorf->mpModel->setUserArea((u32)this);
|
||||
return 1;
|
||||
|
||||
}
|
||||
|
||||
/* 0000638C-000065E0 .text effcCreateHeap__11daNpc_Kk1_cFv */
|
||||
void daNpc_Kk1_c::effcCreateHeap() {
|
||||
/* Nonmatching */
|
||||
BOOL daNpc_Kk1_c::effcCreateHeap() {
|
||||
|
||||
J3DModelData *pModel;
|
||||
J3DModel *pJVar1;
|
||||
J3DAnmColor *pvVar2;
|
||||
|
||||
int iVar4;
|
||||
J3DAnmTextureSRTKey *pAnm;
|
||||
J3DAnmTransform *pJVar5;
|
||||
|
||||
pModel = (J3DModelData*)dComIfG_getObjectIDRes(&mArcName,0xE);
|
||||
|
||||
pJVar1 = mDoExt_J3DModel__create(pModel,0x0,0x11020203);
|
||||
field_0x808 = pJVar1;
|
||||
if(field_0x808 != NULL){
|
||||
|
||||
pvVar2 = (J3DAnmColor*)dComIfG_getObjectIDRes(&mArcName,0xF);
|
||||
if(pvVar2 == NULL){
|
||||
|
||||
JUTAssertion::showAssert(JUTAssertion::getSDevice(),"d_a_npc_kk1.cpp",0xE01,"0 != a_bpk");
|
||||
OSPanic("d_a_npc_kk1.cpp",0xE01,"Halt");
|
||||
}
|
||||
iVar4 = field_0x7C8.init(field_0x808->getModelData(),pvVar2,true,0,0.0,0,-1,false,0);
|
||||
if(iVar4 == 0){
|
||||
return 0;
|
||||
}
|
||||
pAnm = (J3DAnmTextureSRTKey*)dComIfG_getObjectIDRes(&mArcName,0x10);
|
||||
if(pAnm == NULL){
|
||||
JUTAssertion::showAssert(JUTAssertion::getSDevice(),"d_a_npc_kk1.cpp",0xE09,"0 != a_btk");
|
||||
OSPanic("d_a_npc_kk1.cpp",0xE09,"Halt");
|
||||
}
|
||||
iVar4 = field_0x7DC.init(field_0x808->getModelData(),pAnm,true,0,0.0,0,-1,false,0);
|
||||
if(iVar4 == 0){
|
||||
return 0;
|
||||
}
|
||||
pJVar5 = (J3DAnmTransform*)dComIfG_getObjectIDRes(&mArcName,0x0);
|
||||
if(pJVar5 == NULL){
|
||||
JUTAssertion::showAssert(JUTAssertion::getSDevice(),"d_a_npc_kk1.cpp",0xE11,"0 != a_bck");
|
||||
OSPanic("d_a_npc_kk1.cpp",0xE11,"Halt");
|
||||
}
|
||||
iVar4 = field_0x7F0.init(field_0x808->getModelData(),pJVar5,true,0,0.0,0,-1,false);
|
||||
if(iVar4 == 0){
|
||||
return 0;
|
||||
}
|
||||
field_0x800 = 0;
|
||||
field_0x802 = 0;
|
||||
field_0x804 = 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 000065E0-00006684 .text CreateHeap__11daNpc_Kk1_cFv */
|
||||
void daNpc_Kk1_c::CreateHeap() {
|
||||
return;
|
||||
BOOL daNpc_Kk1_c::CreateHeap() {
|
||||
|
||||
|
||||
|
||||
if (!bodyCreateHeap()) {
|
||||
return 0;
|
||||
|
||||
}
|
||||
else {
|
||||
if (!effcCreateHeap()) {
|
||||
mpMorf = NULL;
|
||||
return 0;
|
||||
|
||||
}
|
||||
else {
|
||||
mAcchCir.SetWall(30.0,40.0);
|
||||
mObjAcch.Set(¤t.pos,&old.pos,this,1,&mAcchCir,&speed,NULL,NULL);
|
||||
return 1;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 00006684-000066A4 .text daNpc_Kk1_Create__FP10fopAc_ac_c */
|
||||
|
||||
Reference in New Issue
Block a user