Undo file changes

This commit is contained in:
WilliamArnett
2025-05-26 04:59:16 -05:00
parent 1d1c15650d
commit 5bcc47fcd4
24 changed files with 5559 additions and 1955 deletions
+3
View File
@@ -39,6 +39,9 @@ public:
/* 0x0324 */ cXyz mSpawnPos;
/* 0x0330 */ csXyz mEyeRot;
/* 0x0336 */ csXyz mTargetEyeRot;
#if VERSION == VERSION_DEMO
/* 0x033C */ JPABaseEmitter* m033C_demo;
#endif
/* 0x033C */ JPABaseEmitter* m033C;
/* 0x0340 */ JPABaseEmitter* m0340;
/* 0x0344 */ dPa_smokeEcallBack mSmokeCbs[4];
+234 -70
View File
@@ -1,28 +1,71 @@
#ifndef D_A_NPC_KK1_H
#define D_A_NPC_KK1_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"
class J3DNode;
class daNpc_Kk1_c : public fopAc_ac_c {
static void* searchActor_SWC00(void*, void*);
class daNpc_Kk1_c : public fopNpc_npc_c {
public:
typedef int (daNpc_Kk1_c::*ActionFunc)(void*);
typedef void* (pFunc)(void*, void*);
struct anm_prm_c {
s8 field0;
s8 field1;
u16 field2;
f32 field4;
f32 field8;
u32 fieldC;
};
struct prm_tbl {
u32 field_0x00;
u32 field_0x04;
u32 field_0x08;
u32 field_0x0C;
u32 field_0x10;
f32 field_0x14;
u32 field_0x18;
u32 field_0x1C;
u32 field_0x20;
u32 field_0x24;
f32 field_0x28;
f32 field_0x2C;
u32 field_0x30;
f32 field_0x34;
f32 field_0x38;
f32 field_0x3C;
u32 field_0x40;
f32 field_0x44;
f32 field_0x48;
u32 field_0x4C;
f32 field_0x50;
};
void getSWbit() {}
int getSWbit();
void _nodeCB_Head(J3DNode*, J3DModel*);
void _nodeCB_BackBone(J3DNode*, J3DModel*);
void init_KK1_0();
void createInit();
bool init_KK1_0();
bool createInit();
void play_animation();
void setMtx(bool);
void bckResID(int);
void btpResID(int);
void setBtp(signed char, bool);
void init_texPttrnAnm(signed char, bool);
int bckResID(int);
int btpResID(int);
bool setBtp(signed char, bool);
bool init_texPttrnAnm(signed char, bool);
void play_btp_anm();
void play_eff_anm();
void setAnm_anm(anm_prm_c*);
@@ -34,112 +77,233 @@ public:
void ctrlAnmAtr();
void setAnm_ATR();
void anmAtr(unsigned short);
void next_msgStatus(unsigned long*);
void getMsg_KK1_0();
void getMsg();
u16 next_msgStatus(unsigned long*);
u32 getMsg_KK1_0();
u32 getMsg();
void eventOrder();
void checkOrder();
void chk_talk();
void chk_parts_notMov();
void searchByID(fpc_ProcID, int*);
void partner_search_sub(void* (*)(void*, void*));
bool chk_talk();
bool chk_parts_notMov();
fopAc_ac_c* searchByID(fpc_ProcID, int*);
bool partner_search_sub(pFunc*);
void partner_search();
void lookBack();
void chkAttention();
bool chkAttention();
void setAttention(bool);
void decideType(int);
bool decideType(int);
void cut_init_RUN_START(int);
void cut_move_RUN_START();
bool cut_move_RUN_START();
void cut_init_RUN(int);
void cut_move_RUN();
bool cut_move_RUN();
void cut_init_CATCH_START(int);
void cut_move_CATCH_START();
bool cut_move_CATCH_START();
void cut_init_CATCH_END(int);
void cut_move_CATCH_END();
bool cut_move_CATCH_END();
void cut_init_TRN(int);
void cut_move_TRN();
bool cut_move_TRN();
void cut_init_BYE_START(int);
void cut_move_BYE_START();
bool cut_move_BYE_START();
void cut_init_BYE(int);
void cut_move_BYE();
bool cut_move_BYE();
void cut_init_BYE_CONTINUE(int);
void cut_move_BYE_CONTINUE();
bool cut_move_BYE_CONTINUE();
void cut_init_BYE_END(int);
void cut_move_BYE_END();
bool cut_move_BYE_END();
void cut_init_PLYER_TRN(int);
void cut_move_PLYER_TRN();
bool cut_move_PLYER_TRN();
void cut_init_OTOBOKE(int);
void cut_move_OTOBOKE();
bool cut_move_OTOBOKE();
void cut_init_PLYER_MOV(int);
void cut_move_PLYER_MOV();
bool cut_move_PLYER_MOV();
void cut_init_RUNAWAY_START(int);
void cut_move_RUNAWAY_START();
bool cut_move_RUNAWAY_START();
void cut_init_RUNAWAY_END(int);
void cut_move_RUNAWAY_END();
bool cut_move_RUNAWAY_END();
void privateCut(int);
void endEvent();
void isEventEntry();
int isEventEntry();
void event_proc(int);
void checkCommandTalk();
void set_action(int (daNpc_Kk1_c::*)(void*), void*);
bool checkCommandTalk();
bool set_action(ActionFunc, void*);
void setStt(signed char);
void createTama(float);
void chk_areaIN(float, cXyz);
void startEvent_check();
void chkHitPlayer();
bool chk_areaIN(float, cXyz);
bool startEvent_check();
bool chkHitPlayer();
void set_pthPoint(unsigned char);
void event_move(bool);
void kyoroPos(int);
void kyorokyoro();
void chk_attn();
bool event_move(bool);
cXyz kyoroPos(int);
bool kyorokyoro();
bool chk_attn();
void setBikon(cXyz);
void delBikon();
void setAse();
void flwAse();
void delAse();
void wait_1();
void walk_1();
void wait_2();
BOOL wait_1();
BOOL walk_1();
BOOL wait_2();
void init_CMT_WAI();
void move_CMT_WAI();
void init_CMT_TRN();
void move_CMT_TRN();
void init_CMT_PCK();
void move_CMT_PCK();
void cmmt_1();
void wait_3();
void wait_4();
void talk_1();
void wait_action1(void*);
void demo();
BOOL cmmt_1();
BOOL wait_3();
BOOL wait_4();
BOOL talk_1();
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 */ u8 m6C4[0x72C - 0x6C4];
/* 0x72C */ cXyz m72C;
/* 0x738 */ cXyz m738;
/* 0x744 */ u8 m744[0x750 - 0x744];
/* 0x750 */ cXyz m750;
/* 0x75C */ u8 m75C[0x7C4 - 0x75C];
/* 0x7C4 */ u8 m7C4;
/* 0x7C5 */ u8 m7C5[0x81E - 0x7C5];
/* 0x81E */ u8 m81E;
/* 0x81F */ u8 m81F[0x824 - 0x81F];
};
class daNpc_Kk1_HIO_c {
/* 0x6C4 */ request_of_phase_process_class field_0x6C4;
/* 0x6CC */ s8 m_hed_jnt_num;
/* 0x6CD */ s8 m_bbone_jnt_num;
/* 0x6CE */ char mArcName;
/* 0x6CF */ u8 field_0x6CF;
/* 0x6D0 */ u32 field_0x6D0;
/* 0x6D4 */ u32 mShadowID;
/* 0x6D8 */ mDoExt_btpAnm mBtpAnm;
/* 0x6EC*/ u8 mBtpFrame;
/* 0x6ED*/ s8 field_0x6ED;
/* 0x6EE*/ s16 field_0x6EE;
/* 0x6F0*/ ActionFunc field_0x6F0;
/* 0x6FC*/ fpc_ProcID mPartnerProcID;
/* 0x700*/ u32 field_0x700;
/* 0x704*/ dNpc_PathRun_c mRunPath;
/* 0x70C*/ cXyz field_0x70C;
/* 0x718*/ csXyz field_0x718;
/* 0x71E */ csXyz mAngle;
/* 0x724 */ u8 field_0x724[0x72C - 0x724];
/* 0x72C */ cXyz field_0x72C;
/* 0x738 */ cXyz field_0x738;
/* 0x744 */ u8 field_0x744[0x750 - 0x744];
/* 0x750 */ cXyz field_0x750;
/* 0x75C */ cXyz field_0x75C;
/* 0x768 */ f32 mAnimeFrame;
/* 0x76A */ u8 field_0x76A[4];
/* 0x770 */ s16 mLookBackAngleY;
/* 0x772 */ s16 mLookBackHeadY;
/* 0x774 */ s16 mLookBackBackboneY;
/* 0x776 */ s16 field_0x776;
/* 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;
/* 0x796 */ s16 mKyoroRNG;
/* 0x798 */ s16 mTimer;
/* 0x79A */ s16 field_0x79A;
/* 0x79C */ s16 field_0x79C;
/* 0x79E */ s16 field_0x79E;
/* 0x7A0 */ s16 field_0x7A0;
/* 0x7A2 */ s16 field_0x7A2;
/* 0x7A4 */ s16 field_0x7A4;
/* 0x7A6 */ s16 field_0x7A6;
/* 0x7A8 */ s16 field_0x7A8;
/* 0x7AA */ s16 field_0x7AA;
/* 0x7AC */ s16 field_0x7AC;
/* 0x7AE */ s16 mMuuruBadResponse;
/* 0x7B0 */ s16 mPrm0;
/* 0x7B2 */ s8 field_0x7B2;
/* 0x7B3 */ u8 field_0x7B3;
/* 0x7B4 */ u8 field_0x7B4;
/* 0x7B5 */ u8 mSWbit;
/* 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 */ s8 field_0x7BC;
/* 0x7BD */ u8 field_0x7BD;
/* 0x7BE */ u8 field_0x7BE;
/* 0x7BF */ u8 field_0x7BF;
/* 0x7C0 */ u8 field_0x7C0;
/* 0x7C1 */ u8 field_0x7C1;
/* 0x7C2 */ u8 field_0x7C2;
/* 0x7C3 */ u8 field_0x7C3;
/* 0x7C4 */ bool mLockBodyRotation;
/* 0x7C5 */ bool field_0x7C5;
/* 0x7C6 */ u8 field_0x7C6;
/* 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;
/* 0x808*/ J3DModel* field_0x808;
/* 0x80C*/ u8 field_0x80C[0x810-0x80C];
/* 0x810 */ JPABaseEmitter* field_0x810;
/* 0x814 */ s8 mCutsceneIndex;
/* 0x815 */ s8 field_0x815;
/* 0x816 */ s8 field_0x816;
/* 0x817 */ u8 mAnimationNum;
/* 0x818 */ u8 field_0x818;
/* 0x819 */ s8 field_0x819;
/* 0x81A */ s8 field_0x81A;
/* 0x81B */ s8 field_0x81B;
/* 0x81C */ s8 field_0x81C;
/* 0x81D */ s8 field_0x81D;
/* 0x81E */ u8 mWhereToLook;
/* 0x81F */ s8 field_0x81F;
/* 0x820 */ s8 field_0x820;
/* 0x821 */ s8 field_0x821;
/* 0x822 */ s8 field_0x822;
/* 0x823 */ s8 field_0x823;
}; // Size: 0x824
class daNpc_Kk1_HIO_c : mDoHIO_entry_c{
public:
daNpc_Kk1_HIO_c();
virtual ~daNpc_Kk1_HIO_c(){};
public:
/* Place member variables here */
/* 0x04 */ s8 mNo;
/* 0x08 */ s16 mHorizontalDistance;
/* 0x08 */ s32 field_0xA;
/* 0x0C */ s16 field_0xC;
/* 0x0E */ s16 field_0xE;
/* 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 */ 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 mScale;
/* 0x32 */ s16 mMaxStep;
/* 0x34 */ f32 field_0x34;
/* 0x38 */ f32 field_0x38;
/* 0x3C */ f32 field_0x3C;
/* 0x40 */ f32 field_0x40;
/* 0x44 */ f32 field_0x44;
/* 0x48 */ f32 field_0x48;
/* 0x4C */ f32 field_0x4C;
/* 0x50 */ f32 field_0x50;
/* 0x54 */ f32 field_0x54;
/* 0x58 */ f32 field_0x58;
/* 0x5C */ f32 field_0x5C;
};
#endif /* D_A_NPC_KK1_H */
+44 -119
View File
@@ -1,53 +1,32 @@
#ifndef D_A_NPC_KM1_H
#define D_A_NPC_KM1_H
#include "d/d_npc.h"
#include "f_op/f_op_actor.h"
#include "m_Do/m_Do_hostIO.h"
class daNpc_Km1_c : public fopNpc_npc_c {
class daNpc_Km1_c : public fopAc_ac_c {
public:
typedef int (daNpc_Km1_c::*ActionFunc)(void*);
struct anm_prm_c {
s8 field_0x0;
s8 field_0x1;
u16 field_0x2;
float field_0x4;
float field_0x8;
int field_0xC;
};
struct prm_tbl {
u32 field_0x00;
u32 field_0x04;
u32 field_0x08;
u32 field_0x0C;
u32 field_0x10;
f32 field_0x14;
u32 field_0x18;
};
Vec* getAttPos() {return &field_0x780;}
s8 getBackboneJntNum() {return m_backbone_jnt_num;}
void getAttPos() {}
void getBackboneJntNum() {}
void getBackbone_x() {}
void getBackbone_y() {}
Vec* getEyePos() {return &field_0x78C;}
s8 getHeadJntNum() {return m_head_jnt_num;}
void getEyePos() {}
void getHeadJntNum() {}
void getHead_x() {}
void getHead_y() {}
bool createInit();
void createInit();
void setMtx();
bool anmResID(int, int*, int*);
void anmResID(int, int*, int*);
void BtpNum2ResID(int, int*);
void setAnm_tex(signed char);
u8 init_btp(bool, int);
bool initTexPatternAnm(bool);
void init_btp(bool, int);
void initTexPatternAnm(bool);
void playTexPatternAnm();
s32 setAnm_anm(anm_prm_c*);
void setAnm_anm(anm_prm_c*);
void setAnm();
void chngAnmTag();
void ctrlAnmTag();
@@ -56,112 +35,58 @@ public:
void setAnm_ATR(int);
void anmAtr(unsigned short);
void setStt(signed char);
u16 next_msgStatus(unsigned long*);
u32 getMsg();
void next_msgStatus(unsigned long*);
void getMsg();
void eventOrder();
void checkOrder();
void lookBack();
bool chkAttention();
void chkAttention();
void setAttention();
bool decideType(int);
void decideType(int);
void event_actionInit(int);
bool event_action();
void event_action();
void privateCut();
void endEvent();
void event_proc();
bool set_action(ActionFunc, void*);
BOOL wait01();
BOOL talk01();
int wait_action1(void*);
u8 demo();
void set_action(int (daNpc_Km1_c::*)(void*), void*);
void wait01();
void talk01();
void wait_action1(void*);
void demo();
bool _draw();
bool _execute();
bool _delete();
cPhs_State _create();
BOOL CreateHeap();
void CreateHeap();
public:
/* 0x6C4 */ request_of_phase_process_class field_0x6C4;
/* 0x6CC */ s8 m_head_jnt_num;
/* 0x6CD */ s8 m_backbone_jnt_num;
/* 0x6CE */ u8 field_0x6CE[0x6D0 - 0x6CE];
/* 0x6D0 */ u32 mShadowId;
/* 0x6D4 */ J3DModel* field_0x6D4;
/* 0x6D8 */ J3DAnmTexPattern* m_head_tex_pattern;
/* 0x6DC */ mDoExt_btpAnm mBtpAnm;
/* 0x6F0 */ u8 mBtpFrame;
/* 0x6F1 */ u8 field_0x6F1;
/* 0x6F2 */ s16 field_0x6F2;
/* 0x6F4 */ ActionFunc field_0x6F4;
/* 0x700 */ dNpc_EventCut_c mEventCut;
/* 0x76C */ csXyz field_0x76C;
/* 0x772 */ u8 field_0x772[0x774 - 0x772];
/* 0x774 */ cXyz field_0x774;
/* 0x780 */ cXyz field_0x780;
/* 0x78C */ cXyz field_0x78C;
/* 0x798 */ cXyz field_0x798;
/* 0x7A4 */ f32 field_0x7A4;
/* 0x7A8 */ u8 field_0x7A8[0x7AC - 0x7A8];
/* 0x7AC */ f32 field_0x7AC;
/* 0x7B0 */ s16 field_0x7B0;
/* 0x7B2 */ s16 field_0x7B2;
/* 0x7B4 */ s8 field_0x7B4;
/* 0x7B5 */ s8 field_0x7B5;
/* 0x7B6 */ u8 field_0x7B6;
/* 0x7B7 */ u8 field_0x7B7;
/* 0x7B8 */ u8 field_0x7B8;
/* 0x7B9 */ u8 field_0x7B9[0x7BC - 0x7B9];
/* 0x7BC */ s32 field_0x7BC;
/* 0x7C0 */ s32 field_0x7C0;
/* 0x7C4 */ u8 field_0x7C4;
/* 0x7C5 */ u8 field_0x7C5;
/* 0x7C6 */ bool mHeadOnlyFollow;
/* 0x7C7 */ u8 field_0x7C7;
/* 0x7C8 */ u8 field_0x7C8;
/* 0x7C8 */ s8 field_0x7C9;
/* 0x7CA */ s8 field_0x7CA;
/* 0x7CB */ u8 field_0x7CB;
/* 0x7CC */ u8 field_0x7CC;
/* 0x7CD */ s8 field_0x7CD;
/* 0x7CE */ s8 field_0x7CE;
/* 0x7CF */ s8 field_0x7CF;
/* 0x7D0 */ s8 field_0x7D0;
/* 0x7D1 */ s8 field_0x7D1;
/* 0x7D2 */ s8 field_0x7D2;
/* 0x7D3 */ s8 field_0x7D3;
/* 0x7D4 */ s8 field_0x7D4;
/* 0x7D5 */ s8 field_0x7D5;
/* 0x7D6 */ s8 field_0x7D6;
/* 0x7D7 */ s8 field_0x7D7;
}; // Size: 0x7D8
/* 0x6C4 */ u8 m6C4[0x6CC - 0x6C4];
/* 0x6CC */ u8 mHeadJntIdx;
/* 0x6CD */ u8 mBackBoneJntIdx;
/* 0x6CE */ u8 m6CE[0x6F4 - 0x6CE];
/* 0x6F4 */ int (daNpc_Km1_c::*m6F4)();
/* 0x700 */ u8 m700[0x76C - 0x700];
/* 0x76C */ csXyz m76C;
/* 0x772 */ u8 m772[0x774 - 0x772];
/* 0x774 */ cXyz m774;
/* 0x780 */ cXyz m780;
/* 0x78C */ cXyz m78C;
/* 0x798 */ cXyz m798;
/* 0x7A4 */ u8 m7A4[0x7B0 - 0x7A4];
/* 0x7B0 */ s16 m7B0;
/* 0x7B2 */ u8 m7B2[0x7B8 - 0x7B2];
/* 0x7B8 */ u8 m7B8;
/* 0x7B9 */ u8 m7B9[0x7C7 - 0x7B9];
/* 0x7C7 */ u8 m7C7;
/* 0x7C8 */ u8 m7C8[0x7D8 - 0x7C8];
};
class daNpc_Km1_HIO_c : public JORReflexible{
struct daNpc_Km1_HIO__PrmTbl{
s16 field_0;
s16 field_2;
s16 field_4;
s16 field_6;
s16 field_8;
s16 field_A;
s16 field_C;
s16 field_E;
s16 field_10;
s16 field_12;
f32 mAttentionArrowYOffset;
f32 field_18;
}; // Size: 0x1C
class daNpc_Km1_HIO_c {
public:
daNpc_Km1_HIO_c();
virtual ~daNpc_Km1_HIO_c(){};
public:
/* Place member variables here */
/* 0x4 */ s8 mNo;
/* 0x5 */ s8 field_0x5;
/* 0x6 */ s8 field_0x6;
/* 0x7 */ s8 field_0x7;
/* 0x8 */ int field_0x8;
/* 0xC */ daNpc_Km1_HIO__PrmTbl mPrmTbl;
};
#endif /* D_A_NPC_KM1_H */
+102 -28
View File
@@ -3,14 +3,25 @@
#include "f_op/f_op_actor.h"
#include "d/d_cc_d.h"
#include "d/d_npc.h"
struct sPhotoAnmDat {
/* 0x00 */ u8 field_0x00;
/* 0x01 */ u8 field_0x01;
/* 0x02 */ u8 field_0x02;
};
class daNpcPhoto_c : public fopAc_ac_c {
class daNpcPhoto_c : public fopNpc_npc_c {
public:
void getPhaseP() {}
enum Prm_e {
PRM_RAIL_ID_W = 0x8,
PRM_RAIL_ID_S = 0x10,
PRM_ARG0_W = 0x8,
PRM_ARG0_S = 0x0,
};
request_of_phase_process_class* getPhaseP() { return &mPhs1; }
void incMsgTbl() {}
void isDate() {}
void nullMsgTbl() {}
@@ -20,12 +31,12 @@ public:
daNpcPhoto_c();
cPhs_State _create();
void createHeap();
void createInit();
BOOL createHeap();
cPhs_State createInit();
bool _delete();
bool _draw();
bool _execute();
void executeCommon();
bool executeCommon();
void executeSetMode(unsigned char);
void executeWait();
void executeTalk();
@@ -36,46 +47,109 @@ public:
void eventMove();
void privateCut();
void eventMesSetInit(int);
void eventMesSet();
bool eventMesSet();
void eventSeSetInit(int);
void eventPosSetInit();
void eventGetItemInit();
void eventGetItem();
bool eventGetItem();
void eventSetAngleInit();
void eventSetEyeInit();
void eventSetEye();
bool eventSetEye();
void eventTurnToPlayerInit();
void eventTurnToPlayer();
bool eventTurnToPlayer();
void eventClrHanmeInit();
void eventGetPhotoInit();
void eventGetPhoto();
bool eventGetPhoto();
void eventMesSetUbInit(int);
void eventMesSetUb();
void eventLookUb();
void talk2(int);
bool eventMesSetUb();
bool eventLookUb();
u16 talk2(int);
void setMsgCamera();
void next_msgStatus(unsigned long*);
void getMsg();
void setMessage(unsigned long);
u16 next_msgStatus(u32*);
u32 getMsg();
void setMessage(u32);
void setAnmFromMsgTag();
void getPrmRailID();
void getPrmArg0();
u8 getPrmRailID();
u8 getPrmArg0();
void setMtx();
void chkAttention();
void lookBack();
void initTexPatternAnm(bool, int);
BOOL initTexPatternAnm(bool, int);
void playTexPatternAnm();
void playAnm();
void setAnm(unsigned char, int, float);
void setAnmTbl(sPhotoAnmDat*);
void XyCheckCB(int);
void XyEventCB(int);
void isPhotoOk();
void isPhotoDxOk();
void setAnm(u8, int, f32);
bool setAnmTbl(sPhotoAnmDat*);
s16 XyCheckCB(int);
s16 XyEventCB(int);
BOOL isPhotoOk();
BOOL isPhotoDxOk();
void setCollision(dCcD_Cyl*, cXyz, float, float);
static const char m_arcname[4];
public:
/* Place member variables here */
};
typedef void(daNpcPhoto_c::*MoveFunc_t)();
/* 0x6C4 */ request_of_phase_process_class mPhs1;
/* 0x6CC */ request_of_phase_process_class mPhs2;
/* 0x6D4 */ J3DAnmTexPattern* m_head_tex_pattern;
/* 0x6D8 */ mDoExt_btpAnm mBtpAnm;
/* 0x6EC */ u32 mShadowId;
/* 0x6F0 */ dNpc_PathRun_c mPathRun;
/* 0x6F8 */ dCcD_Cyl field_0x6F8[2];
/* 0x958 */ cXyz field_0x958;
/* 0x964 */ cXyz mLookAtPos;
/* 0x970 */ cXyz mEyePos;
/* 0x97C */ sPhotoAnmDat* mpAnmDat;
/* 0x980 */ u32* field_0x980;
/* 0x984 */ f32 field_0x984;
/* 0x988 */ f32 field_0x988;
/* 0x98C */ f32 field_0x98C;
/* 0x990 */ int mMsgNno;
/* 0x994 */ bool field_0x994;
/* 0x996 */ s16 mPhotoLinkBackEventIdx;
/* 0x998 */ s16 mPhotoGetItemEventIdx;
/* 0x99A */ s16 mPhotoGetItem2EventIdx;
/* 0x99C */ s16 mPhotoGetPhotoEventIdx;
/* 0x99E */ s16 mPhotoGalleryEventIdx;
/* 0x9A0 */ s16 mPhotoCounterTalk0EventIdx;
/* 0x9A2 */ s16 mPhotoCounterTalk1EventIdx;
/* 0x9A4 */ s16 mPhotoDateUB4EventIdx;
/* 0x9A6 */ s16 field_0x9A6;
/* 0x9A8 */ s16 field_0x9A8;
/* 0x9AA */ u8 field_0x9AA[0x9AC - 0x9AA];
/* 0x9AC */ s16 field_0x9AC;
/* 0x9AE */ s16 field_0x9AE;
/* 0x9B0 */ s16 field_0x9B0;
/* 0x9B2 */ s16 field_0x9B2;
/* 0x9B4 */ s16 mTimer;
/* 0x9B6 */ s16 field_0x9B6;
/* 0x9B8 */ s16 field_0x9B8;
/* 0x9BA */ s16 field_0x9BA;
/* 0x9BC */ bool field_0x9BC;
/* 0x9BD */ bool field_0x9BD;
/* 0x9BE */ u8 field_0x9BE;
/* 0x9BF */ u8 mFrame;
/* 0x9C0 */ u8 field_0x9C0;
/* 0x9C1 */ u8 field_0x9C1;
/* 0x9C2 */ bool field_0x9C2;
/* 0x9C3 */ u8 field_0x9C3;
/* 0x9C4 */ u8 field_0x9C4[0x9C5 - 0x9C4];
/* 0x9C5 */ u8 mItemNo;
/* 0x9C6 */ u8 field_0x9C6;
/* 0x9C7 */ bool field_0x9C7;
/* 0x9C8 */ u8 field_0x9C8;
/* 0x9C9 */ u8 field_0x9C9;
/* 0x9CA */ s8 field_0x9CA;
/* 0x9CB */ s8 mActIdx;
/* 0x9CC */ bool field_0x9CC;
/* 0x9CD */ bool field_0x9CD;
/* 0x9D0 */ u8* field_0x9D0;
/* 0x9D4 */ bool field_0x9D4;
/* 0x9D5 */ u8 field_0x9D5;
/* 0x9D6 */ s8 field_0x9D6;
/* 0x9D7 */ bool field_0x9D7;
/* 0x9D8 */ bool field_0x9D8;
}; // Size: 0x9DC
#endif /* D_A_NPC_PHOTO_H */
+28 -20
View File
@@ -209,7 +209,7 @@ public:
~daPy_dmEcallBack_c() {}
daPy_dmEcallBack_c() {}
static int getTimer() { return m_timer; }
static s16 getTimer() { return m_timer; }
static void setTimer(s16 timer) { m_timer = timer; }
static void decTimer() { m_timer--; }
@@ -1237,7 +1237,9 @@ public:
BOOL dProcOpenTreasure_init();
BOOL dProcOpenTreasure();
void setGetItemSound(u16, int);
#if VERSION > VERSION_DEMO
BOOL setGetDemo();
#endif
BOOL dProcGetItem_init();
BOOL dProcGetItem();
BOOL dProcUnequip_init();
@@ -1677,8 +1679,12 @@ public:
BOOL procFoodSet();
void setSwordModel(BOOL);
void setLightSaver();
#if VERSION == VERSION_DEMO
BOOL checkLastDemoSwordNoDraw(int);
#else
BOOL checkDemoShieldNoDraw();
BOOL checkDemoSwordNoDraw(BOOL);
#endif
BOOL checkChanceMode();
BOOL checkCutRollChange() const;
int getSwordBlurColor();
@@ -1731,32 +1737,32 @@ public:
J3DAnmTextureSRTKey* getIceArrowBtk() { return mpIceArrowBtk; }
J3DAnmTextureSRTKey* getLightArrowBtk() { return mpLightArrowBtk; }
bool checkUpperAnime(u16 i_idx) const { return m_anm_heap_upper[UPPER_MOVE2_e].mIdx == i_idx; }
bool checkNoUpperAnime() const { return m_anm_heap_upper[UPPER_MOVE2_e].mIdx == 0xFFFF; }
BOOL checkUpperAnime(u16 i_idx) const { return m_anm_heap_upper[UPPER_MOVE2_e].mIdx == i_idx; }
BOOL checkNoUpperAnime() const { return m_anm_heap_upper[UPPER_MOVE2_e].mIdx == 0xFFFF; }
bool checkGrabAnime() const { return checkGrabAnimeLight() || checkGrabAnimeHeavy(); };
bool checkGrabAnimeLight() const { return checkUpperAnime(LKANM_BCK_GRABWAIT); };
bool checkGrabAnimeHeavy() const { return checkUpperAnime(LKANM_BCK_GRABWAITB); };
bool checkBoomerangCatchAnime() const { return checkUpperAnime(LKANM_BCK_BOOMCATCH); };
bool checkBoomerangThrowAnime() const { return checkUpperAnime(LKANM_BCK_BOOMTHROW); };
bool checkBoomerangReadyAnime() const { return checkUpperAnime(LKANM_BCK_BOOMWAIT); };
bool checkHookshotReadyAnime() const { return checkUpperAnime(LKANM_BCK_HOOKSHOTWAIT); }
bool checkDashDamageAnime() const { return checkUpperAnime(LKANM_BCK_DAMDASH); }
bool checkBowReloadAnime() const { return checkUpperAnime(LKANM_BCK_ARROWRELORD); }
bool checkBowShootAnime() const { return checkUpperAnime(LKANM_BCK_ARROWSHOOT); }
bool checkBowWaitAnime() const { return checkUpperAnime(LKANM_BCK_BOWWAIT); }
bool checkGuardSlip() const {
BOOL checkGrabAnime() const { return checkGrabAnimeLight() || checkGrabAnimeHeavy(); };
BOOL checkGrabAnimeLight() const { return checkUpperAnime(LKANM_BCK_GRABWAIT); };
BOOL checkGrabAnimeHeavy() const { return checkUpperAnime(LKANM_BCK_GRABWAITB); };
BOOL checkBoomerangCatchAnime() const { return checkUpperAnime(LKANM_BCK_BOOMCATCH); };
BOOL checkBoomerangThrowAnime() const { return checkUpperAnime(LKANM_BCK_BOOMTHROW); };
BOOL checkBoomerangReadyAnime() const { return checkUpperAnime(LKANM_BCK_BOOMWAIT); };
BOOL checkHookshotReadyAnime() const { return checkUpperAnime(LKANM_BCK_HOOKSHOTWAIT); }
BOOL checkDashDamageAnime() const { return checkUpperAnime(LKANM_BCK_DAMDASH); }
BOOL checkBowReloadAnime() const { return checkUpperAnime(LKANM_BCK_ARROWRELORD); }
BOOL checkBowShootAnime() const { return checkUpperAnime(LKANM_BCK_ARROWSHOOT); }
BOOL checkBowWaitAnime() const { return checkUpperAnime(LKANM_BCK_BOWWAIT); }
BOOL checkGuardSlip() const {
return mCurProc == daPyProc_GUARD_SLIP_e ||
mCurProc == daPyProc_CROUCH_DEFENSE_SLIP_e;
}
bool checkUpperGuardAnime() const {
BOOL checkUpperGuardAnime() const {
return checkUpperAnime(LKANM_BCK_ATNG) ||
checkUpperAnime(LKANM_BCK_ATNGHAM);
}
s16 checkTinkleShield() const { return mTinkleShieldTimer; }
void setTinkleShield(s16 time) { mTinkleShieldTimer = time; }
bool checkNoDamageMode() const { return checkEquipDragonShield() || checkTinkleShield() != 0; }
BOOL checkNoDamageMode() const { return checkEquipDragonShield() || checkTinkleShield() != 0; }
s16 checkTinkleHover() const { return mTinkleHoverTimer; }
void setHoverBoots(s16 time) {
onNoResetFlg0(daPyFlg0_HOVER_BOOTS);
@@ -1764,12 +1770,12 @@ public:
}
void onShipTact() { onNoResetFlg1(daPyFlg1_SHIP_TACT); }
void offShipTact() { offNoResetFlg1(daPyFlg1_SHIP_TACT); }
bool checkShipGetOff() { return mCurProc == daPyProc_SHIP_GET_OFF_e; }
BOOL checkShipGetOff() { return mCurProc == daPyProc_SHIP_GET_OFF_e; }
void onShipDrop(s16 param_1) {
onNoResetFlg0(daPyFlg0_SHIP_DROP);
m3550 = param_1;
}
bool checkCarryActionNow() const {
BOOL checkCarryActionNow() const {
return mCurProc == daPyProc_GRAB_PUT_e ||
mCurProc == daPyProc_GRAB_UP_e ||
mCurProc == daPyProc_GRAB_THROW_e;
@@ -1792,7 +1798,7 @@ public:
mActivePlayerBombs--;
}
}
bool checkSwordEquip() const {
BOOL checkSwordEquip() const {
return dComIfGs_getSelectEquip(0) != dItem_NONE_e || checkSwordMiniGame();
}
@@ -2204,7 +2210,9 @@ public:
/* 0x362C */ fpc_ProcID mTactZevPartnerId;
/* 0x3630 */ fpc_ProcID m3630;
/* 0x3634 */ fpc_ProcID mWhirlId;
#if VERSION > VERSION_DEMO
/* 0x3638 */ fpc_ProcID mMsgId;
#endif
/* 0x363C */ J3DFrameCtrl* mpSeAnmFrameCtrl;
/* 0x3640 */ s16 m3640;
/* 0x3644 */ f32 m3644;
+5 -2
View File
@@ -7,7 +7,7 @@ class daTagPhoto_c : public fopAc_ac_c {
public:
daTagPhoto_c();
void getTagNo() {}
int getTagNo() { return mTagNo; }
cPhs_State _create();
void createHeap();
@@ -32,6 +32,9 @@ public:
public:
/* Place member variables here */
};
/* 0x290 */ u8 field_0x290[0x318 - 0x290];
/* 0x318 */ u8 mTagNo;
/* 0x31C */ u8 field_0x31C[0x320 - 0x31C];
}; // Size: 0x320
#endif /* D_A_TAG_PHOTO_H */
+1 -1
View File
@@ -91,7 +91,7 @@ public:
cXyz* speed = NULL, csXyz* angle = NULL, csXyz* shape_angle = NULL);
void GroundCheckInit(dBgS&);
void GroundCheck(dBgS&);
f32 GroundRoofProc(dBgS&);
void GroundRoofProc(dBgS&);
void LineCheck(dBgS&);
void CrrPos(dBgS&);
f32 GetWallAllR();
+3 -1
View File
@@ -29,6 +29,8 @@ void def_se_set_p(fopAc_ac_c*, cXyz*, cCcD_Obj*, unsigned long);
fopAc_ac_c* at_power_check(CcAtInfo*);
fopAc_ac_c* cc_at_check(fopAc_ac_c*, CcAtInfo*);
inline void dCc_GetAc(void*) {}
inline fopAc_ac_c* dCc_GetAc(void* i_obj) {
return ((cCcD_Obj*)i_obj)->GetAc();
}
#endif /* D_CC_UTY_H */
+8
View File
@@ -522,6 +522,10 @@ public:
u8 getPictureStatus() { return mPictureStatus; }
void setPictureStatusOn() { mPictureStatus = 2; }
void setPictureStatusGetOn(u8 to_set) {
mPictureStatus = 3;
field_0x495f = to_set;
}
u8 getScopeMesgStatus() { return mScopeMesgStatus; }
void setScopeMesgStatus(u8 status) { mScopeMesgStatus = status; }
@@ -2768,6 +2772,10 @@ inline void dComIfGp_setPictureStatusOn() {
g_dComIfG_gameInfo.play.setPictureStatusOn();
}
inline void dComIfGp_setPictureStatusGetOn(u8 to_set){
g_dComIfG_gameInfo.play.setPictureStatusGetOn(to_set);
}
inline s16 dComIfGp_getMiniGameRupee() {
return g_dComIfG_gameInfo.play.getMiniGameRupee();
}
+4
View File
@@ -413,7 +413,11 @@ public:
class dDlst_mirrorPacket : public J3DPacket {
public:
void init(ResTIMG*);
#if VERSION == VERSION_DEMO
void update(Mtx, u8);
#else
void update(Mtx, u8, f32);
#endif
virtual void draw();
/* 0x0010 */ u8 field_0x0010[0x0040 - 0x0010];
+1 -1
View File
@@ -67,5 +67,5 @@ class dJle_Pb_c {
void draw();
void _delete(JKRExpHeap*);
};
void dPb_erasePicture();
#endif /* D_PICTURE_BOX_H */
+2 -3
View File
@@ -430,15 +430,14 @@ inline f32 fopAcM_searchActorDistanceY(fopAc_ac_c* actorA, fopAc_ac_c* actorB) {
return actorB->current.pos.y - actorA->current.pos.y;
}
inline u16 fopAcM_GetSetId(fopAc_ac_c* p_actor) {
inline int fopAcM_GetSetId(fopAc_ac_c* p_actor) {
return p_actor->setID;
}
inline void dComIfGs_onActor(int bitNo, int roomNo);
inline void fopAcM_onActor(fopAc_ac_c* p_actor) {
int setId = fopAcM_GetSetId(p_actor);
dComIfGs_onActor(setId, fopAcM_GetHomeRoomNo(p_actor));
dComIfGs_onActor(fopAcM_GetSetId(p_actor), fopAcM_GetHomeRoomNo(p_actor));
}
inline bool fopAcM_IsFirstCreating(void* i_actor) {
+58 -14
View File
@@ -57,7 +57,7 @@ static BOOL nodeCallBack(J3DNode* node, int calcTiming) {
am_class* i_this = (am_class*)model->getUserArea();
if (i_this) {
if (jntNo >= 1 && jntNo <= 4) {
cMtx_copy(model->getAnmMtx(jntNo), *calc_mtx);
MTXCopy(model->getAnmMtx(jntNo), *calc_mtx);
}
cXyz offset;
@@ -369,6 +369,7 @@ static void bomb_move_set(am_class* i_this, u8 alwaysMoveY) {
/* 00000F04-00001138 .text bomb_nomi_check__FP8am_class */
static BOOL bomb_nomi_check(am_class* i_this) {
fopAc_ac_c* actor = i_this;
fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0);
i_this->mStts.Move();
if (i_this->mCurrBckIdx != AM_BCK_OPEN && i_this->mCurrBckIdx != AM_BCK_OPEN_LOOP &&
@@ -391,8 +392,7 @@ static BOOL bomb_nomi_check(am_class* i_this) {
if (fpcM_GetName(hitActor) == PROC_BOMB) {
daBomb_c* bomb = (daBomb_c*)hitActor;
if (!bomb->getBombCheck_Flag() && bomb->getBombRestTime() > 1) {
f32 offsetY = 20.0f + REG8_F(1);
if (i_this->mMouthPos.y - offsetY < bomb->current.pos.y) {
if (i_this->mMouthPos.y - (20.0f + REG8_F(1)) < bomb->current.pos.y) {
// Swallow the bomb.
bomb->setBombCheck_Flag();
bomb->change_state((daBomb_c::State_e)2);
@@ -407,8 +407,7 @@ static BOOL bomb_nomi_check(am_class* i_this) {
} else if (fpcM_GetName(hitActor) == PROC_Bomb2) {
daBomb2::Act_c* bomb2 = (daBomb2::Act_c*)hitActor;
if (!bomb2->chk_eat() && bomb2->get_time() > 1) {
f32 offsetY = 20.0f + REG8_F(1);
if (i_this->mMouthPos.y - offsetY < bomb2->current.pos.y) {
if (i_this->mMouthPos.y - (20.0f + REG8_F(1)) < bomb2->current.pos.y) {
// Swallow the bomb.
bomb2->set_eat();
i_this->mSwallowedActorPID = fopAcM_GetID(bomb2);
@@ -429,9 +428,7 @@ static BOOL bomb_nomi_check(am_class* i_this) {
/* 00001138-000011E4 .text BG_check__FP8am_class */
static void BG_check(am_class* i_this) {
f32 halfHeight = 30.0f + REG12_F(3);
f32 radius = 150.0f + REG12_F(4);
i_this->mAcchCir.SetWall(halfHeight, radius);
i_this->mAcchCir.SetWall(30.0f + REG12_F(3), 150.0f + REG12_F(4));
i_this->current.pos.y -= i_this->mCorrectionOffsetY;
i_this->old.pos.y -= i_this->mCorrectionOffsetY;
@@ -495,17 +492,20 @@ static void action_dousa(am_class* i_this) {
anm_init(i_this, AM_BCK_SLEEP_LOOP, 1.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->mMode += 1;
// Fall-through
case 1:
case 1: {
if (i_this->mStartsInactive == 1 && i_this->mSwitch != 0xFF && !dComIfGs_isSwitch(i_this->mSwitch, dComIfGp_roomControl_getStayNo())) {
break;
}
fopAcM_OnStatus(i_this, fopAcStts_SHOWMAP_e);
if (fopAcM_searchPlayerDistance(i_this) < 1000.0f) {
f32 f31 = 1000.0f;
if (fopAcM_searchPlayerDistance(i_this) < f31) {
#if VERSION > VERSION_DEMO
f32 yDist = player->current.pos.y - i_this->current.pos.y;
yDist = std::sqrtf(yDist*yDist); // ???
if (yDist > 300.0f) {
break;
}
#endif
if (Line_check(i_this, player->current.pos)) {
anm_init(i_this, AM_BCK_OKIRU, 1.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
fopAcM_monsSeStart(i_this, JA_SE_CV_AM_AWAKE, 0);
@@ -516,6 +516,7 @@ static void action_dousa(am_class* i_this) {
}
}
break;
}
case MODE_DOUSA_OKIRU:
if (!i_this->mpMorf->isStop()) {
break;
@@ -554,16 +555,19 @@ static void action_dousa(am_class* i_this) {
return;
}
} else {
if (fopAcM_searchPlayerDistance(i_this) > 2000.0f) {
f32 f31 = 2000.0f;
if (fopAcM_searchPlayerDistance(i_this) > f31) {
i_this->mMode = MODE_DOUSA_SLEEP_INIT;
break;
}
#if VERSION > VERSION_DEMO
f32 yDist = player->current.pos.y - i_this->current.pos.y;
yDist = std::sqrtf(yDist*yDist); // ???
if (yDist > 300.0f) {
i_this->mMode = MODE_DOUSA_SLEEP_INIT;
break;
}
#endif
}
s16 yRotDiff = cLib_distanceAngleS(i_this->shape_angle.y, i_this->mTargetAngleY);
if (yRotDiff < 0x100) {
@@ -621,7 +625,16 @@ static void action_dousa(am_class* i_this) {
fopAcM_monsSeStart(i_this, JA_SE_CV_AM_OPEN_MOUTH, 0);
i_this->mNeedleCyl.OffAtSetBit();
i_this->mNeedleCyl.OffAtSetBit();
if (i_this->mSmokeCbs[2].getEmitter() == NULL) {
#if VERSION == VERSION_DEMO
if (i_this->m033C_demo == NULL)
#else
if (i_this->mSmokeCbs[2].getEmitter() == NULL)
#endif
{
#if VERSION == VERSION_DEMO
i_this->mSmokeCbs[2].remove();
i_this->m033C_demo =
#endif
dComIfGp_particle_setToon(
dPa_name::ID_SCENE_A154, &i_this->mWaistPos, &i_this->shape_angle, NULL,
0xB9, &i_this->mSmokeCbs[2], fopAcM_GetRoomNo(i_this)
@@ -640,7 +653,15 @@ static void action_dousa(am_class* i_this) {
i_this->mTargetAngleY = fopAcM_searchPlayerAngleY(i_this);
}
if (i_this->mCountDownTimers[0] == 0) {
#if VERSION == VERSION_DEMO
if (i_this->m033C_demo) {
i_this->m033C_demo->becomeInvalidEmitter();
i_this->m033C_demo = NULL;
i_this->mSmokeCbs[2].remove();
}
#else
i_this->mSmokeCbs[2].remove();
#endif
i_this->mMode = 3;
}
break;
@@ -662,9 +683,25 @@ static void action_dousa(am_class* i_this) {
medama_move(i_this);
if (i_this->mMode != 2 && medama_atari_check(i_this)) {
#if VERSION == VERSION_DEMO
if (i_this->m033C_demo) {
i_this->m033C_demo->becomeInvalidEmitter();
i_this->m033C_demo = NULL;
i_this->mSmokeCbs[2].remove();
}
#else
i_this->mSmokeCbs[2].remove();
#endif
} else if (bomb_nomi_check(i_this)) {
#if VERSION == VERSION_DEMO
if (i_this->m033C_demo) {
i_this->m033C_demo->becomeInvalidEmitter();
i_this->m033C_demo = NULL;
i_this->mSmokeCbs[2].remove();
}
#else
i_this->mSmokeCbs[2].remove();
#endif
}
}
@@ -946,7 +983,8 @@ static BOOL daAM_Execute(am_class* i_this) {
fopAcM_setGbaName(i_this, dItem_BOW_e, 0xC, 0x2A);
if (enemy_ice(&i_this->mEnemyIce)) {
i_this->mpMorf->getModel()->setBaseTRMtx(mDoMtx_stack_c::get());
J3DModel* model = i_this->mpMorf->getModel();
model->setBaseTRMtx(mDoMtx_stack_c::get());
i_this->mpMorf->calc();
return TRUE;
}
@@ -1067,8 +1105,14 @@ static BOOL daAM_Delete(am_class* i_this) {
for (int i = 0; i < 4; i++) {
i_this->mSmokeCbs[i].remove();
}
#if VERSION == VERSION_DEMO
if (i_this->m033C_demo) {
i_this->m033C_demo->becomeInvalidEmitter();
i_this->m033C_demo = NULL;
}
#else
i_this->mSmokeCbs[2].remove();
#endif
if (i_this->m033C) {
i_this->m033C->becomeInvalidEmitter();
i_this->m033C = NULL;
+1 -2
View File
@@ -365,8 +365,7 @@ static BOOL body_atari_check(am2_class* i_this) {
/* 00000F54-00000FF4 .text BG_check__FP9am2_class */
static void BG_check(am2_class* i_this) {
f32 halfHeight = 40.0f + REG8_F(12);
i_this->mAcchCir.SetWall(halfHeight, i_this->mAcchRadius);
i_this->mAcchCir.SetWall(40.0f + REG8_F(12), i_this->mAcchRadius);
i_this->current.pos.y -= i_this->mCorrectionOffsetY;
i_this->old.pos.y -= i_this->mCorrectionOffsetY;
+2603 -203
View File
File diff suppressed because it is too large Load Diff
+82 -650
View File
@@ -4,816 +4,248 @@
//
#include "d/actor/d_a_npc_km1.h"
#include "d/d_com_inf_game.h"
#include "d/d_s_play.h"
#include "d/d_snap.h"
#include "m_Do/m_Do_ext.h"
#include "d/d_procname.h"
#include "d/d_priority.h"
#include "weak_bss_936_to_1036.h"
static daNpc_Km1_HIO_c l_HIO;
/* 000000EC-00000144 .text __ct__15daNpc_Km1_HIO_cFv */
daNpc_Km1_HIO_c::daNpc_Km1_HIO_c() {
static daNpc_Km1_c::prm_tbl a_prm_tbl[] = {0x1FFE38E0, 0xE002C720, 0x00000000, 0x00000000,
0x08000800, 150.0, 0x00000000};
memcpy(&mPrmTbl,a_prm_tbl,0x1C);
mNo = -1;
field_0x8 = -1;
return;
/* Nonmatching */
}
/* 00000144-000002F0 .text nodeCallBack_Km__FP7J3DNodei */
static BOOL nodeCallBack_Km(J3DNode* i_node, int i_calcTiming) {
static BOOL nodeCallBack_Km(J3DNode*, int) {
/* Nonmatching */
}
if (i_calcTiming == 0) {
J3DModel* model = j3dSys.getModel();
daNpc_Km1_c* km1Actor = (daNpc_Km1_c *)(model->getUserArea());
u16 jointIdx;
if (km1Actor) {
static cXyz a_att_pos_offst(0.0,0.0,0.0);
static cXyz a_eye_pos_offst(20.0,20.0,0.0);
jointIdx = ((J3DJoint*)(i_node))->getJntNo();
mDoMtx_stack_c::copy(model->getAnmMtx(jointIdx));
if(jointIdx == km1Actor->getHeadJntNum()){
MTXMultVec(mDoMtx_stack_c::get(),&a_att_pos_offst,km1Actor->getAttPos());
mDoMtx_stack_c::XrotM(km1Actor->m_jnt.getHead_y());
mDoMtx_stack_c::ZrotM(km1Actor->m_jnt.getHead_x());
MTXMultVec(mDoMtx_stack_c::get(),&a_eye_pos_offst,km1Actor->getEyePos());
}else if(jointIdx == km1Actor->getBackboneJntNum()){
mDoMtx_stack_c::XrotM(km1Actor->m_jnt.getBackbone_y());
mDoMtx_stack_c::ZrotM(km1Actor->m_jnt.getBackbone_x());
}
MtxP stack = mDoMtx_stack_c::get();
cMtx_copy(stack,J3DSys::mCurrentMtx);
MTXCopy(stack,model->getAnmMtx(jointIdx));
}
}
return 1;
}
extern dCcD_SrcCyl dNpc_cyl_src;
/* 0000032C-0000043C .text createInit__11daNpc_Km1_cFv */
bool daNpc_Km1_c::createInit() {
mEventCut.setActorInfo2("Km1", this);
attention_info.flags = fopAc_Attn_LOCKON_TALK_e | fopAc_Attn_ACTION_SPEAK_e;
attention_info.distances[1] = 0xAB;
attention_info.distances[3] = 0xA9;
gravity = -4.0;
field_0x798 = current.pos;
set_action(&daNpc_Km1_c::wait_action1,NULL);
shape_angle = current.angle;
mStts.Init(0xFF,0xFF,this);
mCyl.SetStts(&mStts);
mCyl.Set(dNpc_cyl_src);
mpMorf->setMorf(0.0);
field_0x7BC = 1;
setMtx();
return 1;
void daNpc_Km1_c::createInit() {
/* Nonmatching */
}
/* 0000043C-0000054C .text setMtx__11daNpc_Km1_cFv */
void daNpc_Km1_c::setMtx() {
u32 uVar1;
char cVar2;
u8 bVar3;
if (field_0x7C7 == 0) {
playTexPatternAnm();
uVar1 = mpMorf->play(&eyePos,0,0);
field_0x7B4 = uVar1;
if (mpMorf->getFrame() < field_0x7A4) {
field_0x7B4 = 1;
}
field_0x7A4 = mpMorf->getFrame();
mObjAcch.CrrPos(*dComIfG_Bgsp());
;
}
cVar2 = dComIfG_Bgsp()->GetRoomId(mObjAcch.m_gnd);
tevStr.mRoomNo = cVar2;
bVar3 = dComIfG_Bgsp()->GetPolyColor(mObjAcch.m_gnd);
tevStr.mEnvrIdxOverride = bVar3;
mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::YrotM(current.angle.y);
mpMorf->getModel()->setBaseTRMtx(mDoMtx_stack_c::get());
mpMorf->calc();
setAttention();
/* Nonmatching */
}
/* 0000054C-00000654 .text anmResID__11daNpc_Km1_cFiPiPi */
bool daNpc_Km1_c::anmResID(int i_num, int* o_bck_num, int* o_bas_num) {
const int ANM_END = 1;
static const int a_anm_idx_tbl[1][2] = {1,0};
JUT_ASSERT(0x11A,0 <= i_num && i_num < ANM_END);
JUT_ASSERT(0x11B,o_bck_num && o_bas_num);
*o_bck_num = a_anm_idx_tbl[i_num][0];
*o_bas_num = a_anm_idx_tbl[i_num][1];
return 1;
void daNpc_Km1_c::anmResID(int, int*, int*) {
/* Nonmatching */
}
/* 00000654-000006F0 .text BtpNum2ResID__11daNpc_Km1_cFiPi */
void daNpc_Km1_c::BtpNum2ResID(int i_num, int* o_btp_num)
{
const int TEXPATTERN_END = 1;
static const int a_btp_arc_ix_tbl[1] = {3};
JUT_ASSERT(0x130,0 <= i_num && i_num < TEXPATTERN_END);
*o_btp_num = a_btp_arc_ix_tbl[i_num];
return;
void daNpc_Km1_c::BtpNum2ResID(int, int*) {
/* Nonmatching */
}
/* 000006F0-00000734 .text setAnm_tex__11daNpc_Km1_cFSc */
void daNpc_Km1_c::setAnm_tex(signed char i_param_1) {
if(i_param_1 >= 0 && i_param_1 != field_0x7CD){
field_0x7CD = i_param_1;
initTexPatternAnm(true);
}
return;
void daNpc_Km1_c::setAnm_tex(signed char) {
/* Nonmatching */
}
/* 00000734-00000850 .text init_btp__11daNpc_Km1_cFbi */
u8 daNpc_Km1_c::init_btp(bool param_1, int param_2) {
int btp_num;
int iVar3;
J3DModelData *pJVar4;
pJVar4 = mpMorf->getModel()->getModelData();
if (param_2 >= 0) {
BtpNum2ResID(param_2,&btp_num);
J3DAnmTexPattern* pVVar1 = (J3DAnmTexPattern*)dComIfG_getObjectIDRes("Km",btp_num);
m_head_tex_pattern = pVVar1;
JUT_ASSERT(0x151,m_head_tex_pattern != 0);
iVar3 = mBtpAnm.init(pJVar4,m_head_tex_pattern,1,2,1.0,0,-1,param_1,0);
if (iVar3 == 0) {
return 0;
}
mBtpFrame = 0;
field_0x6F2 = 0;
}
return 1;
void daNpc_Km1_c::init_btp(bool, int) {
/* Nonmatching */
}
/* 00000850-00000894 .text initTexPatternAnm__11daNpc_Km1_cFb */
bool daNpc_Km1_c::initTexPatternAnm(bool param_1) {
bool var_31 = 0;
if(init_btp(param_1,field_0x7CD)){
var_31 = 1;
}
return var_31;
void daNpc_Km1_c::initTexPatternAnm(bool) {
/* Nonmatching */
}
/* 00000894-00000958 .text playTexPatternAnm__11daNpc_Km1_cFv */
void daNpc_Km1_c::playTexPatternAnm() {
//TODO: Rewrite this conditional logic
bool var_r4 = 1;
if(field_0x7CD == 0){
var_r4 = !cLib_calcTimer(&field_0x6F2);
}
if(!var_r4){
return;
}
if((mBtpFrame += 1) < m_head_tex_pattern->getFrameMax()){
return;
}
if(field_0x7CD){
mBtpFrame = m_head_tex_pattern->getFrameMax();
return;
}else{
mBtpFrame = 0;
field_0x6F2 = cM_rndF(60.0) + 30.0f;
}
return;
/* Nonmatching */
}
/* 00000958-00000A24 .text setAnm_anm__11daNpc_Km1_cFPQ211daNpc_Km1_c9anm_prm_c */
s32 daNpc_Km1_c::setAnm_anm(daNpc_Km1_c::anm_prm_c* i_anm_ptr) {
u32 uVar2 = 0;
int local_18;
int local_14;
if (i_anm_ptr->field_0x0 >= 0 && field_0x7CE != i_anm_ptr->field_0x0) {
field_0x7CE = i_anm_ptr->field_0x0;
if (mpMorf != NULL) {
anmResID(field_0x7CE,&local_18,&local_14);
if (local_18 >= 0) {
dNpc_setAnmIDRes(mpMorf,i_anm_ptr->field_0xC,i_anm_ptr->field_0x4,i_anm_ptr->field_0x8,local_18,local_14,"Km");
}
uVar2 = 1;
}
field_0x7A4 = 0;
field_0x7B5 = 0;
field_0x7B4 = 0;
}
return uVar2;
void daNpc_Km1_c::setAnm_anm(daNpc_Km1_c::anm_prm_c*) {
/* Nonmatching */
}
/* 00000A24-00000A8C .text setAnm__11daNpc_Km1_cFv */
void daNpc_Km1_c::setAnm() {
static daNpc_Km1_c::anm_prm_c a_anm_prm_tbl2[3] = {
{-1,-1,0,0,0,-1},
{0,0,0x00,8,1,2},
{-1,-1,0,0,0,-1}
};
setAnm_tex(a_anm_prm_tbl2[field_0x7D0].field_0x1);
setAnm_anm(&a_anm_prm_tbl2[field_0x7D0]);
/* Nonmatching */
}
/* 00000A8C-00000A98 .text chngAnmTag__11daNpc_Km1_cFv */
void daNpc_Km1_c::chngAnmTag() {
switch(field_0x7CC){
case 0:
break;
}
return;
/* Nonmatching */
}
/* 00000A98-00000AA4 .text ctrlAnmTag__11daNpc_Km1_cFv */
void daNpc_Km1_c::ctrlAnmTag() {
switch(field_0x7CB){
case 0:
break;
}
/* Nonmatching */
}
/* 00000AA4-00000AE4 .text chngAnmAtr__11daNpc_Km1_cFUc */
void daNpc_Km1_c::chngAnmAtr(unsigned char param_1) {
if(param_1 < 1 && param_1 != field_0x7CB){
field_0x7CB = param_1;
setAnm_ATR(1);
}
return;
void daNpc_Km1_c::chngAnmAtr(unsigned char) {
/* Nonmatching */
}
/* 00000AE4-00000AE8 .text ctrlAnmAtr__11daNpc_Km1_cFv */
void daNpc_Km1_c::ctrlAnmAtr() {
/* Nonmatching */
}
/* 00000AE8-00000B50 .text setAnm_ATR__11daNpc_Km1_cFi */
void daNpc_Km1_c::setAnm_ATR(int param_1) {
static daNpc_Km1_c::anm_prm_c a_anm_prm_tbl3[1] = {
{0x00,0x00,0x00,8,1,2}
};
if(param_1 != 0){
setAnm_tex(a_anm_prm_tbl3[field_0x7CB].field_0x1);
}
setAnm_anm((&a_anm_prm_tbl3[field_0x7CB]));
return;
/* 00000AE8-00000B50 .text setAnm_ATR__11daNpc_Km1_cFi */
void daNpc_Km1_c::setAnm_ATR(int) {
/* Nonmatching */
}
/* 00000B50-00000C0C .text anmAtr__11daNpc_Km1_cFUs */
void daNpc_Km1_c::anmAtr(unsigned short param_1) {
if(param_1 == 6){
if(field_0x7D6 == 0){
field_0x7CC = 0xFF;
chngAnmAtr(dComIfGp_getMesgAnimeAttrInfo());
field_0x7D6 += 1;
}
u8 uVar1 = dComIfGp_getMesgAnimeTagInfo();
if(uVar1 != 0xFF && uVar1 != field_0x7CC){
dComIfGp_clearMesgAnimeTagInfo();
field_0x7CC = uVar1;
chngAnmTag();
}
}else if(param_1 == 0xE){
field_0x7D6 = 0;
}
ctrlAnmAtr();
ctrlAnmTag();
return;
void daNpc_Km1_c::anmAtr(unsigned short) {
/* Nonmatching */
}
/* 00000C0C-00000C64 .text setStt__11daNpc_Km1_cFSc */
void daNpc_Km1_c::setStt(signed char param_1) {
s8 uVar1 = field_0x7D0;
field_0x7D0 = param_1;
switch((s8)field_0x7D0) {
case 2:
field_0x7D2 = 1;
field_0x7CB = 0xFF;
field_0x7D1 = uVar1;
break;
default:
case 1:
setAnm();
break;
}
return;
void daNpc_Km1_c::setStt(signed char) {
/* Nonmatching */
}
/* 00000C64-00000C6C .text next_msgStatus__11daNpc_Km1_cFPUl */
u16 daNpc_Km1_c::next_msgStatus(unsigned long*) {
return 0x10;
/* 00000C64-00000C6C .text next_msgStatus__11daNpc_Km1_cFPUl */
void daNpc_Km1_c::next_msgStatus(unsigned long*) {
/* Nonmatching */
}
/* 00000C6C-00000C74 .text getMsg__11daNpc_Km1_cFv */
u32 daNpc_Km1_c::getMsg() {
return 0;
void daNpc_Km1_c::getMsg() {
/* Nonmatching */
}
/* 00000C74-00000CC4 .text eventOrder__11daNpc_Km1_cFv */
void daNpc_Km1_c::eventOrder() {
if (((field_0x7CF == 1) || (field_0x7CF == 2))){
eventInfo.onCondition(dEvtCnd_CANTALK_e);
if(field_0x7CF == 1){
fopAcM_orderSpeakEvent(this);
}
}
return;
/* Nonmatching */
}
/* 00000CC4-00000D04 .text checkOrder__11daNpc_Km1_cFv */
void daNpc_Km1_c::checkOrder() {
if(eventInfo.checkCommandDemoAccrpt()){
return;
}
if(!eventInfo.checkCommandTalk()){
return;
}
if(field_0x7CF != 1 && field_0x7CF != 2){
return;
}
field_0x7CF = 0;
field_0x7C5 = 1;
return;
/* Nonmatching */
}
/* 00000D04-00000E94 .text lookBack__11daNpc_Km1_cFv */
void daNpc_Km1_c::lookBack() {
cXyz vec1;
cXyz vec2 = current.pos;
vec2.y = eyePos.y;
vec1.setall(0.0);
cXyz* dstPos = NULL;
s16 targetY = current.angle.y;
bool headOnlyFollow = mHeadOnlyFollow;
s8 state = field_0x7D2;
switch(state){
case 0:
break;
case 1:
vec1 = dNpc_playerEyePos(-20.0);
dstPos = &vec1;
vec2 = current.pos;
vec2.y = eyePos.y;
break;
case 2:
vec1 = field_0x798;
dstPos = &vec1;
vec2 = current.pos;
vec2.y = eyePos.y;
break;
case 3:
targetY = field_0x7B2;
break;
}
if(m_jnt.trnChk() != 0){
cLib_addCalcAngleS2(&field_0x7B0,l_HIO.mPrmTbl.field_12,4,0x800);
}else{
field_0x7B0 = 0;
}
m_jnt.lookAtTarget(&current.angle.y,dstPos,vec2,targetY,field_0x7B0,headOnlyFollow);
return;
/* Nonmatching */
}
/* 00000E94-00000F14 .text chkAttention__11daNpc_Km1_cFv */
bool daNpc_Km1_c::chkAttention() {
if(dComIfGp_getAttention().LockonTruth() != 0){
return this == dComIfGp_getAttention().LockonTarget(0);
}else{
return this == dComIfGp_getAttention().ActionTarget(0);
}
void daNpc_Km1_c::chkAttention() {
/* Nonmatching */
}
const u32 fillerbytes[] = {0xFF000080,0x0000FF80};
/* 00000F14-00000F78 .text setAttention__11daNpc_Km1_cFv */
void daNpc_Km1_c::setAttention() {
f32 f1 = current.pos.z;
f32 f2 = current.pos.y + l_HIO.mPrmTbl.mAttentionArrowYOffset;
attention_info.position.set(current.pos.x,f2,f1);
if(!field_0x7BC && !field_0x7C0){return;}
f2 = field_0x78C.z;
f1 = field_0x78C.y;
eyePos.set(field_0x78C.x,f1,f2);
field_0x7BC = 0;
/* Nonmatching */
}
/* 00000F78-00000FA4 .text decideType__11daNpc_Km1_cFi */
bool daNpc_Km1_c::decideType(int param_1) {
field_0x7D3 = 0xFF;
switch(base.mProcName){
case PROC_NPC_KM1:
field_0x7D3 = 0;
field_0x7D4 = 0;
break;
}
return true;
void daNpc_Km1_c::decideType(int) {
/* Nonmatching */
}
/* 00000FA4-0000102C .text event_actionInit__11daNpc_Km1_cFi */
void daNpc_Km1_c::event_actionInit(int param_1) {
int* puVar1 = dComIfGp_evmng_getMyIntegerP(param_1,"ActNo");
dComIfGp_evmng_getMyIntegerP(param_1,"Timer");
if(puVar1 != NULL){
field_0x7CA = *puVar1;
}
void daNpc_Km1_c::event_actionInit(int) {
/* Nonmatching */
}
/* 0000102C-0000103C .text event_action__11daNpc_Km1_cFv */
bool daNpc_Km1_c::event_action() {
switch(field_0x7CA){
case 0:
break;
}
return 1;
void daNpc_Km1_c::event_action() {
/* Nonmatching */
}
static char* cut_name_tbl[] = {"ACTION"};
/* 0000103C-00001144 .text privateCut__11daNpc_Km1_cFv */
void daNpc_Km1_c::privateCut() {
int staffIdx = dComIfGp_evmng_getMyStaffId("Km1",NULL,0);
if(staffIdx != -1){
int uVar1 = dComIfGp_evmng_getMyActIdx(staffIdx,cut_name_tbl,1,1,0);
field_0x7C9 = uVar1;
if(field_0x7C9 == -1){
dComIfGp_evmng_cutEnd(staffIdx);
return;
}
if(dComIfGp_evmng_getIsAddvance(staffIdx)){
switch(field_0x7C9){
case 0:
event_actionInit(staffIdx);
}
}
bool bVar1;
switch(field_0x7C9){
case 0:
bVar1 = event_action();
break;
default:
bVar1 = 1;
break;
}
if(bVar1){
dComIfGp_evmng_cutEnd(staffIdx);
}
}
/* Nonmatching */
}
/* 00001144-00001164 .text endEvent__11daNpc_Km1_cFv */
void daNpc_Km1_c::endEvent() {
dComIfGp_event_onEventFlag(8);
field_0x7CB = 0xFF;
return;
/* Nonmatching */
}
/* 00001164-000011C4 .text event_proc__11daNpc_Km1_cFv */
void daNpc_Km1_c::event_proc() {
if(!mEventCut.cutProc()){
privateCut();
}
lookBack();
shape_angle = current.angle;
/* Nonmatching */
}
/* 000011C4-00001270 .text set_action__11daNpc_Km1_cFM11daNpc_Km1_cFPCvPvPv_iPv */
bool daNpc_Km1_c::set_action(ActionFunc i_action, void* param_2) {
if(field_0x6F4 != i_action){
if(field_0x6F4 != 0){
field_0x7D5 = 0xFF;
(this->*field_0x6F4)(param_2);
}
field_0x6F4 = i_action;
field_0x7D5 = 0;
(this->*field_0x6F4)(param_2);
}
return 1;
void daNpc_Km1_c::set_action(int (daNpc_Km1_c::*)(void*), void*) {
/* Nonmatching */
}
/* 00001270-00001368 .text wait01__11daNpc_Km1_cFv */
BOOL daNpc_Km1_c::wait01() {
if(field_0x7C5 != 0){
bool set_stt = true;
field_0x7B7 = 0xFF;
if(dComIfGp_event_chkTalkXY()){
if(dComIfGp_evmng_ChkPresentEnd() != 0){
field_0x7B7 = dComIfGp_event_getPreItemNo();
}else{
set_stt = false;
}
}
if(set_stt){
setStt(2);
}
}else{
field_0x7CF = 2;
if(field_0x7C4){
field_0x7D2 = 1;
}else{
field_0x7D2 = 3;
field_0x7B2 = field_0x76C.y;
m_jnt.setTrn();
}
}
return 1;
void daNpc_Km1_c::wait01() {
/* Nonmatching */
}
/* 00001368-000013F8 .text talk01__11daNpc_Km1_cFv */
BOOL daNpc_Km1_c::talk01() {
talk(1);
if(mpCurrMsg != NULL){
switch(mpCurrMsg->mStatus){
case 6:
case 2:
break;
case 19:
field_0x7B7 = 0xFF;
setStt((field_0x7D1));
field_0x7C8 = 0;
field_0x7C5 = 0;
endEvent();
break;
}
}
return 1;
void daNpc_Km1_c::talk01() {
/* Nonmatching */
}
/* 000013F8-000014AC .text wait_action1__11daNpc_Km1_cFPv */
int daNpc_Km1_c::wait_action1(void*) {
if(field_0x7D5 == 0){
setStt(1);
field_0x7D5 += 1;
}else if( field_0x7D5 != -1){
field_0x7C4 = chkAttention();
switch(field_0x7D0){
case 2:
field_0x7C0 = talk01();
break;
case 1:
field_0x7C0 = wait01();
break;
default:
field_0x7C0 = 0;
break;
}
lookBack();
}
return 1;
void daNpc_Km1_c::wait_action1(void*) {
/* Nonmatching */
}
/* 000014AC-00001548 .text demo__11daNpc_Km1_cFv */
u8 daNpc_Km1_c::demo() {
if(demoActorID == 0){
if(field_0x7C7 != 0){
field_0x7C7 = 0;
}
}else{
field_0x7C7 = 1;
dComIfGp_demo_getActor(demoActorID);
dDemo_setDemoData(this,0x6A,mpMorf,"Km",0,0,0,0);
}
return field_0x7C7;
void daNpc_Km1_c::demo() {
/* Nonmatching */
}
/* 00001548-000016AC .text _draw__11daNpc_Km1_cFv */
bool daNpc_Km1_c::_draw() {
J3DModelData *model_data;
J3DModel *model;
model = mpMorf->getModel();
model_data = model->getModelData();
g_env_light.settingTevStruct(TEV_TYPE_ACTOR,&current.pos,&tevStr);
g_env_light.setLightTevColorType(model,&tevStr);
mBtpAnm.entry(model_data,mBtpFrame);
mpMorf->entryDL();
mBtpAnm.remove(model_data);
dNpc_setShadowModel(field_0x6D4,model_data,model);
cXyz pos(current.pos.x,current.pos.y+150.0f,current.pos.z);
mShadowId = dComIfGd_setRealShadow(mShadowId,1,field_0x6D4,&pos,800.0,current.pos.y-mObjAcch.GetGroundH(),NULL);
if(mShadowId == 0){
cXyz* pFloorNrm = (cXyz*)dComIfG_Bgsp()->GetTriPla(mObjAcch.m_gnd.GetBgIndex(),mObjAcch.m_gnd.GetPolyIndex());
dComIfGd_setSimpleShadow(&current.pos,mObjAcch.GetGroundH(),40.0,pFloorNrm);
}
dSnap_RegistFig(0x58,this,1.0,1.0,1.0);
return 1;
/* Nonmatching */
}
/* 000016AC-00001808 .text _execute__11daNpc_Km1_cFv */
bool daNpc_Km1_c::_execute() {
if(field_0x7B8 == 0){
field_0x774 = current.pos;
field_0x76C = current.angle;
field_0x7B8 = 1;
}
m_jnt.setParam(l_HIO.mPrmTbl.field_8,
l_HIO.mPrmTbl.field_A,l_HIO.mPrmTbl.field_C,
l_HIO.mPrmTbl.field_E,l_HIO.mPrmTbl.field_0,
l_HIO.mPrmTbl.field_2,l_HIO.mPrmTbl.field_4,
l_HIO.mPrmTbl.field_6,l_HIO.mPrmTbl.field_10);
checkOrder();
if(demo() == 0){
if (dComIfGp_event_runCheck() && !eventInfo.checkCommandTalk()){
event_proc();
}else{
(this->*field_0x6F4)(NULL);
shape_angle = current.angle;
}
}
eventOrder();
if(field_0x7C7 == 0){
fopAcM_posMoveF(this,(cXyz*)&mStts);
}
setMtx();
setCollision(60.0,150.0);
return 1;
/* Nonmatching */
}
/* 00001808-0000188C .text _delete__11daNpc_Km1_cFv */
bool daNpc_Km1_c::_delete() {
fopAcM_GetID(this);
dComIfG_resDelete(&field_0x6C4,"Km");
if(mpMorf != NULL){
mpMorf->stopZelAnime();
}
if(l_HIO.field_0x8 >= 0){
l_HIO.field_0x8 += -1;
if(l_HIO.field_0x8 < 0){
mDoHIO_deleteChild(l_HIO.mNo);
}
}
return 1;
/* Nonmatching */
}
/* 0000188C-000018AC .text CheckCreateHeap__FP10fopAc_ac_c */
static BOOL CheckCreateHeap(fopAc_ac_c* actor) {
return ((daNpc_Km1_c*)actor)->CreateHeap();
static BOOL CheckCreateHeap(fopAc_ac_c*) {
/* Nonmatching */
}
/* 000018AC-00001A1C .text _create__11daNpc_Km1_cFv */
cPhs_State daNpc_Km1_c::_create() {
static int a_heap_size_tbl[1] = {0x000272E0};
fopAcM_SetupActor(this,daNpc_Km1_c);
if (!decideType(base.mParameters & 0xff)) {
return cPhs_ERROR_e;
}
s32 resLoadResult = dComIfG_resLoad(&field_0x6C4,"Km");
if(resLoadResult != cPhs_COMPLEATE_e){
return resLoadResult;
}
if(l_HIO.field_0x8 < 0){
l_HIO.mNo = mDoHIO_createChild("金持ちム−ル",&l_HIO);
}
l_HIO.field_0x8 += 1;
if(fopAcM_entrySolidHeap(this,CheckCreateHeap,a_heap_size_tbl[field_0x7D3])){
cullMtx = (MtxP)mpMorf->mpModel->getBaseTRMtx();
fopAcM_SetMtx(this,cullMtx);
fopAcM_setCullSizeBox(this,-60.0,-20.0,-80.0,60.0,160.0,60.0);
}else{
return cPhs_ERROR_e;
}
if (createInit() == 0) {
resLoadResult = cPhs_ERROR_e;
}
return resLoadResult;
/* Nonmatching */
}
/* 00001E4C-00002158 .text CreateHeap__11daNpc_Km1_cFv */
BOOL daNpc_Km1_c::CreateHeap() {
static u8 a_tex_pattern_num_tbl[1] = {0};
J3DModelData *a_mdl_data;
a_mdl_data = (J3DModelData*)dComIfG_getObjectIDRes("Km",0x2);
JUT_ASSERT(0x52D,a_mdl_data != 0);
mpMorf = new mDoExt_McaMorf(
a_mdl_data,
NULL, NULL,
(J3DAnmTransform*)dComIfG_getObjectIDRes("Km", 0x1),
J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, 1, NULL,
0x80000, 0x11020002
);
if (mpMorf){
if(mpMorf->getModel()) {
m_head_jnt_num = a_mdl_data->getJointName()->getIndex("head");
JUT_ASSERT(0x540,m_head_jnt_num >= 0);
m_backbone_jnt_num = a_mdl_data->getJointName()->getIndex("backbone");
JUT_ASSERT(0x542,m_backbone_jnt_num >= 0);
field_0x7CD = a_tex_pattern_num_tbl[field_0x7D3];
if (initTexPatternAnm(false) != 0) {
field_0x6D4 = mDoExt_J3DModel__create(a_mdl_data,0x20000,0x11020203);
if (field_0x6D4 != 0) {
for (u16 i = 0; i < a_mdl_data->getJointNum(); i += 1) {
if ((i == m_head_jnt_num) || (i == m_backbone_jnt_num)) {
mpMorf->mpModel->getModelData()->getJointNodePointer(i)->setCallBack(nodeCallBack_Km);
}
}
mpMorf->getModel()->setUserArea((u32)this);
mAcchCir.SetWall(30.0,60.0);
mObjAcch.Set(&current.pos,&old.pos,(fopAc_ac_c *)this,1,
&mAcchCir,&speed,NULL,NULL);
return 1;
}
}
}
mpMorf = NULL;
}
return 0;
void daNpc_Km1_c::CreateHeap() {
/* Nonmatching */
}
/* 00002158-00002178 .text daNpc_Km1_Create__FP10fopAc_ac_c */
static cPhs_State daNpc_Km1_Create(fopAc_ac_c* obj) {
(static_cast<daNpc_Km1_c*>(obj))->_create();
/* 00002158-00002178 .text daNpc_Km1_Create__FP10fopAc_ac_c */
static cPhs_State daNpc_Km1_Create(fopAc_ac_c*) {
/* Nonmatching */
}
/* 00002178-00002198 .text daNpc_Km1_Delete__FP11daNpc_Km1_c */
static BOOL daNpc_Km1_Delete(daNpc_Km1_c* obj) {
(static_cast<daNpc_Km1_c*>(obj))->_delete();
static BOOL daNpc_Km1_Delete(daNpc_Km1_c*) {
/* Nonmatching */
}
/* 00002198-000021B8 .text daNpc_Km1_Execute__FP11daNpc_Km1_c */
static BOOL daNpc_Km1_Execute(daNpc_Km1_c* obj) {
(static_cast<daNpc_Km1_c*>(obj))->_execute();
static BOOL daNpc_Km1_Execute(daNpc_Km1_c*) {
/* Nonmatching */
}
/* 000021B8-000021D8 .text daNpc_Km1_Draw__FP11daNpc_Km1_c */
static BOOL daNpc_Km1_Draw(daNpc_Km1_c* obj) {
(static_cast<daNpc_Km1_c*>(obj))->_draw();
static BOOL daNpc_Km1_Draw(daNpc_Km1_c*) {
/* Nonmatching */
}
/* 000021D8-000021E0 .text daNpc_Km1_IsDelete__FP11daNpc_Km1_c */
static BOOL daNpc_Km1_IsDelete(daNpc_Km1_c*) {
return TRUE;
/* Nonmatching */
}
static actor_method_class l_daNpc_Km1_Method = {
+4
View File
@@ -3211,7 +3211,11 @@ BOOL daNpc_Md_c::draw() {
f32 temp = mCps.GetAtVecP()->abs();
mDoMtx_stack_c::scaleM(0.1f, 0.1f, temp * (1.0f/9600.0f));
mDoMtx_stack_c::revConcat(mtx);
#if VERSION == VERSION_DEMO
m0B70.update(mDoMtx_stack_c::get(), 0xFF);
#else
m0B70.update(mDoMtx_stack_c::get(), 0xFF, 90.0f);
#endif
dComIfGd_getXluList()->entryImm(&m0B70, 0x1F);
}
File diff suppressed because it is too large Load Diff
+176 -675
View File
@@ -90,680 +90,158 @@ static dCcD_SrcCyl l_cyl_src = {
struct FigureData {
/* 0x00 */ int mBmdId;
/* 0x04 */ int mModelAttr;
#if VERSION > VERSION_DEMO
/* 0x08 */ int mRoomId;
#endif
}; // Size: 0x0C
#if VERSION == VERSION_DEMO
#define FIGUREDAT(bmdIdx, dlistFlags, roomId) \
{ \
bmdIdx, dlistFlags \
}
#else
#define FIGUREDAT(bmdIdx, dlistFlags, roomId) \
{ \
bmdIdx, dlistFlags, roomId \
}
#endif
static const FigureData l_figure_dat_tbl[TOTAL_FIGURE_COUNT] = {
{
0,
0x37441422,
-1
},
{
1,
0x37441422,
-1
},
{
2,
0x37441422,
-1
},
{
3,
0x37441422,
-1
},
{
0xA,
0x37441422,
-1
},
{
4,
0x37441422,
-1
},
{
5,
0x37441422,
-1
},
{
6,
0x37441422,
-1
},
{
7,
0x37441422,
-1
},
{
8,
0x37441422,
-1
},
{
9,
0x11001222,
-1
},
{
0xB,
0x37441422,
-1
},
{
0xC,
0x37441422,
-1
},
{
0xD,
0x37441422,
-1
},
{
0,
0x37441422,
-1
},
{
1,
0x37441422,
-1
},
{
2,
0x37441422,
-1
},
{
4,
0x37441422,
-1
},
{
5,
0x37441422,
-1
},
{
7,
0x37441422,
-1
},
{
8,
0x37441422,
-1
},
{
9,
0x37441422,
-1
},
{
0xA,
0x37441422,
-1
},
{
0xB,
0x37441422,
-1
},
{
0xC,
0x37441422,
-1
},
{
0xD,
0x37441422,
-1
},
{
0xE,
0x37441422,
-1
},
{
0xF,
0x37441422,
-1
},
{
0x10,
0x37441422,
-1
},
{
0x11,
0x37441422,
-1
},
{
0x12,
0x37441422,
-1
},
{
0x13,
0x37441422,
-1
},
{
0x14,
0x37441422,
-1
},
{
0x15,
0x37441422,
-1
},
{
0x16,
0x37441422,
-1
},
{
0x17,
0x37441422,
-1
},
{
0x18,
0x37441422,
-1
},
{
0x19,
0x37441422,
-1
},
{
0x1A,
0x37441422,
-1
},
{
0x1B,
0x37441422,
-1
},
{
0x1C,
0x37441422,
-1
},
{
0,
0x37441422,
8
},
{
1,
0x37441422,
8
},
{
2,
0x37441422,
8
},
{
3,
0x37441422,
8
},
{
4,
0x37441422,
8
},
{
5,
0x37441422,
8
},
{
6,
0x37441422,
8
},
{
7,
0x37441422,
8
},
{
8,
0x37441422,
8
},
{
9,
0x37441422,
8
},
{
0xA,
0x37441422,
8
},
{
0xB,
0x37441422,
8
},
{
0xC,
0x37441422,
8
},
{
0xD,
0x37441422,
8
},
{
0xE,
0x37441422,
8
},
{
0xF,
0x37441422,
8
},
{
0x10,
0x37441422,
8
},
{
0x11,
0x37441422,
8
},
{
0x12,
0x37441422,
8
},
{
0x13,
0x37441422,
8
},
{
6,
0x37441422,
9
},
{
1,
0x37441422,
9
},
{
2,
0x37441422,
9
},
{
5,
0x37441422,
9
},
{
0,
0x11001222,
-1
},
{
1,
0x37441422,
-1
},
{
2,
0x37441422,
-1
},
{
3,
0x37441422,
-1
},
{
4,
0x37441422,
-1
},
{
5,
0x37441422,
-1
},
{
6,
0x37441422,
-1
},
{
7,
0x37441422,
-1
},
{
8,
0x37441422,
-1
},
{
9,
0x37441422,
-1
},
{
0xA,
0x37441422,
-1
},
{
0xB,
0x37441422,
-1
},
{
0xC,
0x37441422,
-1
},
{
0xD,
0x37441422,
-1
},
{
0xE,
0x37441422,
-1
},
{
0xF,
0x37441422,
-1
},
{
0x10,
0x37441422,
-1
},
{
0x11,
0x11001222,
-1
},
{
0,
0x37441422,
-1
},
{
5,
0x37441422,
-1
},
{
6,
0x37441422,
-1
},
{
7,
0x37441422,
-1
},
{
8,
0x37441422,
-1
},
{
9,
0x37441422,
-1
},
{
0xA,
0x37441422,
-1
},
{
0xB,
0x37441422,
-1
},
{
0xC,
0x37441422,
-1
},
{
0xD,
0x37441422,
-1
},
{
1,
0x37441422,
-1
},
{
2,
0x37441422,
-1
},
{
3,
0x37441422,
-1
},
{
4,
0x37441422,
-1
},
{
0,
0x37441422,
-1
},
{
1,
0x37441422,
-1
},
{
2,
0x37441422,
-1
},
{
3,
0x37441422,
-1
},
{
4,
0x37441422,
-1
},
{
5,
0x37441422,
-1
},
{
6,
0x37441422,
-1
},
{
7,
0x37441422,
-1
},
{
8,
0x37441422,
-1
},
{
9,
0x37441422,
-1
},
{
0x12,
0x37441422,
-1
},
{
0xA,
0x11001222,
-1
},
{
0xB,
0x11001222,
-1
},
{
0xC,
0x11001222,
-1
},
{
0xD,
0x37441422,
-1
},
{
0xE,
0x37441422,
-1
},
{
0xF,
0x37441422,
-1
},
{
0x10,
0x37441422,
-1
},
{
0x11,
0x37441422,
-1
},
{
0,
0x37441422,
0xA
},
{
1,
0x37441422,
0xA
},
{
2,
0x11001222,
0xA
},
{
3,
0x11001222,
0xA
},
{
4,
0x11001222,
0xA
},
{
5,
0x37441422,
0xA
},
{
6,
0x37441422,
0xA
},
{
7,
0x37441422,
0xA
},
{
0,
0x37441422,
0xB
},
{
1,
0x11001222,
0xB
},
{
2,
0x11001222,
0xB
},
{
3,
0x37441422,
0xB
},
{
4,
0x37441422,
0xB
},
{
0,
0x11001222,
0xC
},
{
1,
0x37441422,
0xC
},
{
2,
0x11001222,
0xC
},
{
3,
0x11001222,
0xC
},
{
4,
0x37441422,
0xC
},
FIGUREDAT(0x00, 0x37441422, -1),
FIGUREDAT(0x01, 0x37441422, -1),
FIGUREDAT(0x02, 0x37441422, -1),
FIGUREDAT(0x03, 0x37441422, -1),
FIGUREDAT(0x0A, 0x37441422, -1),
FIGUREDAT(0x04, 0x37441422, -1),
FIGUREDAT(0x05, 0x37441422, -1),
FIGUREDAT(0x06, 0x37441422, -1),
FIGUREDAT(0x07, 0x37441422, -1),
FIGUREDAT(0x08, 0x37441422, -1),
FIGUREDAT(0x09, 0x11001222, -1),
FIGUREDAT(0x0B, 0x37441422, -1),
FIGUREDAT(0x0C, 0x37441422, -1),
FIGUREDAT(0x0D, 0x37441422, -1),
FIGUREDAT(0x00, 0x37441422, -1),
FIGUREDAT(0x01, 0x37441422, -1),
FIGUREDAT(0x02, 0x37441422, -1),
FIGUREDAT(0x04, 0x37441422, -1),
FIGUREDAT(0x05, 0x37441422, -1),
FIGUREDAT(0x07, 0x37441422, -1),
FIGUREDAT(0x08, 0x37441422, -1),
FIGUREDAT(0x09, 0x37441422, -1),
FIGUREDAT(0x0A, 0x37441422, -1),
FIGUREDAT(0x0B, 0x37441422, -1),
FIGUREDAT(0x0C, 0x37441422, -1),
FIGUREDAT(0x0D, 0x37441422, -1),
FIGUREDAT(0x0E, 0x37441422, -1),
FIGUREDAT(0x0F, 0x37441422, -1),
FIGUREDAT(0x10, 0x37441422, -1),
FIGUREDAT(0x11, 0x37441422, -1),
FIGUREDAT(0x12, 0x37441422, -1),
FIGUREDAT(0x13, 0x37441422, -1),
FIGUREDAT(0x14, 0x37441422, -1),
FIGUREDAT(0x15, 0x37441422, -1),
FIGUREDAT(0x16, 0x37441422, -1),
FIGUREDAT(0x17, 0x37441422, -1),
FIGUREDAT(0x18, 0x37441422, -1),
FIGUREDAT(0x19, 0x37441422, -1),
FIGUREDAT(0x1A, 0x37441422, -1),
FIGUREDAT(0x1B, 0x37441422, -1),
FIGUREDAT(0x1C, 0x37441422, -1),
FIGUREDAT(0x00, 0x37441422, 8),
FIGUREDAT(0x01, 0x37441422, 8),
FIGUREDAT(0x02, 0x37441422, 8),
FIGUREDAT(0x03, 0x37441422, 8),
FIGUREDAT(0x04, 0x37441422, 8),
FIGUREDAT(0x05, 0x37441422, 8),
FIGUREDAT(0x06, 0x37441422, 8),
FIGUREDAT(0x07, 0x37441422, 8),
FIGUREDAT(0x08, 0x37441422, 8),
FIGUREDAT(0x09, 0x37441422, 8),
FIGUREDAT(0x0A, 0x37441422, 8),
FIGUREDAT(0x0B, 0x37441422, 8),
FIGUREDAT(0x0C, 0x37441422, 8),
FIGUREDAT(0x0D, 0x37441422, 8),
FIGUREDAT(0x0E, 0x37441422, 8),
FIGUREDAT(0x0F, 0x37441422, 8),
FIGUREDAT(0x10, 0x37441422, 8),
FIGUREDAT(0x11, 0x37441422, 8),
FIGUREDAT(0x12, 0x37441422, 8),
FIGUREDAT(0x13, 0x37441422, 8),
FIGUREDAT(0x06, 0x37441422, 9),
FIGUREDAT(0x01, 0x37441422, 9),
FIGUREDAT(0x02, 0x37441422, 9),
FIGUREDAT(0x05, 0x37441422, 9),
FIGUREDAT(0x00, 0x11001222, -1),
FIGUREDAT(0x01, 0x37441422, -1),
FIGUREDAT(0x02, 0x37441422, -1),
FIGUREDAT(0x03, 0x37441422, -1),
FIGUREDAT(0x04, 0x37441422, -1),
FIGUREDAT(0x05, 0x37441422, -1),
FIGUREDAT(0x06, 0x37441422, -1),
FIGUREDAT(0x07, 0x37441422, -1),
FIGUREDAT(0x08, 0x37441422, -1),
FIGUREDAT(0x09, 0x37441422, -1),
FIGUREDAT(0x0A, 0x37441422, -1),
FIGUREDAT(0x0B, 0x37441422, -1),
FIGUREDAT(0x0C, 0x37441422, -1),
FIGUREDAT(0x0D, 0x37441422, -1),
FIGUREDAT(0x0E, 0x37441422, -1),
FIGUREDAT(0x0F, 0x37441422, -1),
FIGUREDAT(0x10, 0x37441422, -1),
FIGUREDAT(0x11, 0x11001222, -1),
FIGUREDAT(0x00, 0x37441422, -1),
FIGUREDAT(0x05, 0x37441422, -1),
FIGUREDAT(0x06, 0x37441422, -1),
FIGUREDAT(0x07, 0x37441422, -1),
FIGUREDAT(0x08, 0x37441422, -1),
FIGUREDAT(0x09, 0x37441422, -1),
FIGUREDAT(0x0A, 0x37441422, -1),
FIGUREDAT(0x0B, 0x37441422, -1),
FIGUREDAT(0x0C, 0x37441422, -1),
FIGUREDAT(0x0D, 0x37441422, -1),
FIGUREDAT(0x01, 0x37441422, -1),
FIGUREDAT(0x02, 0x37441422, -1),
FIGUREDAT(0x03, 0x37441422, -1),
FIGUREDAT(0x04, 0x37441422, -1),
FIGUREDAT(0x00, 0x37441422, -1),
FIGUREDAT(0x01, 0x37441422, -1),
FIGUREDAT(0x02, 0x37441422, -1),
FIGUREDAT(0x03, 0x37441422, -1),
FIGUREDAT(0x04, 0x37441422, -1),
FIGUREDAT(0x05, 0x37441422, -1),
FIGUREDAT(0x06, 0x37441422, -1),
FIGUREDAT(0x07, 0x37441422, -1),
FIGUREDAT(0x08, 0x37441422, -1),
FIGUREDAT(0x09, 0x37441422, -1),
FIGUREDAT(0x12, 0x37441422, -1),
FIGUREDAT(0x0A, 0x11001222, -1),
FIGUREDAT(0x0B, 0x11001222, -1),
FIGUREDAT(0x0C, 0x11001222, -1),
FIGUREDAT(0x0D, 0x37441422, -1),
FIGUREDAT(0x0E, 0x37441422, -1),
FIGUREDAT(0x0F, 0x37441422, -1),
FIGUREDAT(0x10, 0x37441422, -1),
FIGUREDAT(0x11, 0x37441422, -1),
FIGUREDAT(0x00, 0x37441422, 0xA),
FIGUREDAT(0x01, 0x37441422, 0xA),
FIGUREDAT(0x02, 0x11001222, 0xA),
FIGUREDAT(0x03, 0x11001222, 0xA),
FIGUREDAT(0x04, 0x11001222, 0xA),
FIGUREDAT(0x05, 0x37441422, 0xA),
FIGUREDAT(0x06, 0x37441422, 0xA),
FIGUREDAT(0x07, 0x37441422, 0xA),
FIGUREDAT(0x00, 0x37441422, 0xB),
FIGUREDAT(0x01, 0x11001222, 0xB),
FIGUREDAT(0x02, 0x11001222, 0xB),
FIGUREDAT(0x03, 0x37441422, 0xB),
FIGUREDAT(0x04, 0x37441422, 0xB),
FIGUREDAT(0x00, 0x11001222, 0xC),
FIGUREDAT(0x01, 0x37441422, 0xC),
FIGUREDAT(0x02, 0x11001222, 0xC),
FIGUREDAT(0x03, 0x11001222, 0xC),
FIGUREDAT(0x04, 0x37441422, 0xC),
};
struct FigureCheckTbl {
@@ -901,9 +379,11 @@ static cPhs_State phase_2(daObjFigure_c* i_this) {
i_this->setResFlag(0x2);
u8 figureNo = i_this->getFigureNo();
int id = dSnap_GetFigRoomId(figureNo);
#if VERSION > VERSION_DEMO
if(l_figure_dat_tbl[figureNo].mRoomId >= 0) {
id = l_figure_dat_tbl[figureNo].mRoomId;
}
#endif
cPhs_State status = dComIfG_resLoad(i_this->getPhase2P(), l_arcname_tbl[id]);
@@ -933,9 +413,11 @@ cPhs_State daObjFigure_c::_create() {
/* 00000720-00000A90 .text createHeap__13daObjFigure_cFv */
BOOL daObjFigure_c::createHeap() {
int id = dSnap_GetFigRoomId(getFigureNo());
#if VERSION > VERSION_DEMO
if(l_figure_dat_tbl[getFigureNo()].mRoomId >= 0) {
id = l_figure_dat_tbl[getFigureNo()].mRoomId;
}
#endif
J3DModelData* pModelData;
const char* arcname = l_arcname_tbl[id];
@@ -1040,14 +522,16 @@ cPhs_State daObjFigure_c::createInit() {
/* 00000BF4-00000C78 .text _delete__13daObjFigure_cFv */
BOOL daObjFigure_c::_delete() {
dComIfG_resDelete(getPhase1P(), "Figure");
dComIfG_resDeleteDemo(getPhase1P(), "Figure");
int id = dSnap_GetFigRoomId(getFigureNo());
#if VERSION > VERSION_DEMO
if(l_figure_dat_tbl[getFigureNo()].mRoomId >= 0) {
id = l_figure_dat_tbl[getFigureNo()].mRoomId;
}
#endif
dComIfG_resDelete(getPhase2P(), l_arcname_tbl[id]);
dComIfG_resDeleteDemo(getPhase2P(), l_arcname_tbl[id]);
return true;
}
@@ -1497,11 +981,13 @@ void linkDraw(mDoExt_McaMorf* pMorf) {
/* Nonmatching - regalloc (maybe the same issue as daPy_lk_c::draw?) */
pMorf->calc();
#if VERSION > VERSION_DEMO
J3DModel* model = pMorf->getModel();
J3DModelData* modelData = model->getModelData();
j3dSys.setModel(model);
j3dSys.setTexture(modelData->getTexture());
model->unlock();
#endif
static mDoExt_offCupOnAupPacket l_offCupOnAupPacket1;
static mDoExt_offCupOnAupPacket l_offCupOnAupPacket2;
@@ -1512,6 +998,11 @@ void linkDraw(mDoExt_McaMorf* pMorf) {
J3DShape* ZOffNoneShape[4];
J3DShape* ZOnShape[4];
#if VERSION == VERSION_DEMO
J3DModel* model = pMorf->getModel();
J3DModelData* modelData = model->getModelData();
#endif
J3DJoint* link_root_joint = modelData->getJointNodePointer(0x00); // link_root joint
J3DJoint* cl_eye_joint = modelData->getJointNodePointer(0x13); // cl_eye joint
J3DJoint* cl_mayu_joint = modelData->getJointNodePointer(0x15); // cl_mayu joint
@@ -1528,14 +1019,14 @@ void linkDraw(mDoExt_McaMorf* pMorf) {
if (mtl->getZMode()->getCompareEnable() == 0) {
if ((u8)mtl->getBlend()->getType() == GX_BM_BLEND) {
ZOffBlendShape[zoff_blend_cnt++] = mtl->getShape();
JUT_ASSERT(1767, zoff_blend_cnt <= 4);
JUT_ASSERT(VERSION_SELECT(1713, 1767, 1767, 1767), zoff_blend_cnt <= 4);
} else {
ZOffNoneShape[zoff_none_cnt++] = mtl->getShape();
JUT_ASSERT(1770, zoff_none_cnt <= 4);
JUT_ASSERT(VERSION_SELECT(1717, 1770, 1770, 1770), zoff_none_cnt <= 4);
}
} else {
ZOnShape[zon_cnt++] = mtl->getShape();
JUT_ASSERT(1774, zon_cnt <= 4);
JUT_ASSERT(VERSION_SELECT(1722, 1774, 1774, 1774), zon_cnt <= 4);
}
mtl = mtl->getNext();
}
@@ -1572,6 +1063,7 @@ void linkDraw(mDoExt_McaMorf* pMorf) {
link_root_joint->entryIn();
#if VERSION > VERSION_DEMO
for (i = 0, mtl = link_root_joint->getMesh(); mtl != NULL; i++, mtl = mtl->getNext()) {
if (i != 2 && i != 5) {
mtl->getShape()->show();
@@ -1579,6 +1071,7 @@ void linkDraw(mDoExt_McaMorf* pMorf) {
mtl->getShape()->hide();
}
}
#endif
l_onCupOffAupPacket1.entryOpa();
@@ -1597,8 +1090,12 @@ void linkDraw(mDoExt_McaMorf* pMorf) {
ZOnShape[i]->hide();
}
#if VERSION == VERSION_DEMO
pMorf->entryDL();
#else
dComIfGd_setList();
mDoExt_modelEntryDL(pMorf->getModel());
#endif
for (mtl = link_root_joint->getMesh(); mtl != NULL; mtl = mtl->getNext()) {
mtl->getShape()->show();
@@ -1606,6 +1103,10 @@ void linkDraw(mDoExt_McaMorf* pMorf) {
modelData->getJointNodePointer(0x14)->getMesh()->getShape()->show(); // cl_hana joint
modelData->getJointNodePointer(0x29)->getMesh()->getShape()->show(); // cl_back joint
#if VERSION == VERSION_DEMO
dComIfGd_setList();
#endif
}
static actor_method_class daSampleMethodTable = {
+2
View File
@@ -418,6 +418,7 @@ void daPy_lk_c::setGetItemSound(u16 param_1, int param_2) {
}
}
#if VERSION > VERSION_DEMO
/* 8012E418-8012E6B4 .text setGetDemo__9daPy_lk_cFv */
BOOL daPy_lk_c::setGetDemo() {
int staffIdx = dComIfGp_evmng_getMyStaffId("Link", this);
@@ -488,6 +489,7 @@ BOOL daPy_lk_c::setGetDemo() {
m34CE = 0;
return FALSE;
}
#endif
/* 8012E6B4-8012E8B0 .text dProcGetItem_init__9daPy_lk_cFv */
BOOL daPy_lk_c::dProcGetItem_init() {
+110 -34
View File
@@ -50,9 +50,11 @@ JGeometry::TVec3<f32> l_hammer_splash_particle_scale(0.67f, 0.67f, 0.67f);
#include "d/actor/d_a_player_HIO_data.inc"
#if VERSION > VERSION_DEMO
cXyz l_debug_keep_pos;
csXyz l_debug_current_angle;
csXyz l_debug_shape_angle;
#endif
GXColor l_freeze_fade_color = {0xFF, 0xFF, 0xFF, 0xFF};
@@ -1024,12 +1026,7 @@ void daPy_lk_c::playTextureAnime() {
/* 8010552C-8010558C .text checkPlayerGuard__9daPy_lk_cCFv */
BOOL daPy_lk_c::checkPlayerGuard() const {
/* Nonmatching */
bool guard = false;
if (mCurProc == daPyProc_CROUCH_DEFENSE_e || checkUpperGuardAnime() || checkGuardSlip()) {
guard = true;
}
return guard;
return mCurProc == daPyProc_CROUCH_DEFENSE_e || checkUpperGuardAnime() || checkGuardSlip();
}
/* 8010558C-801056E4 .text setOutPower__9daPy_lk_cFfsi */
@@ -1330,9 +1327,10 @@ s32 daPy_lk_c::setItemModel() {
((m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_DASHS ||
(m_anm_heap_under[UNDER_MOVE0_e].mIdx == LKANM_BCK_DASH))))))
{
dVar16 = mDoMtx_stack_c::now[0][3];
dVar15 = mDoMtx_stack_c::now[1][3];
dVar17 = mDoMtx_stack_c::now[2][3];
MtxP mtx = mDoMtx_stack_c::get();
dVar16 = mtx[0][3];
dVar15 = mtx[1][3];
dVar17 = mtx[2][3];
u16 uVar10 =
cM_rad2s(((6.2831855f * (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() - 22.0f)) /
mFrameCtrlUnder[UNDER_MOVE0_e].getEnd()));
@@ -1537,7 +1535,11 @@ void daPy_lk_c::drawMirrorLightModel() {
mDoMtx_stack_c::transS(l_ms_light_local_start);
mDoMtx_stack_c::YrotM(-0x8000);
mDoMtx_stack_c::revConcat(mpEquippedShieldModel->getBaseTRMtx());
#if VERSION == VERSION_DEMO
mMirrorPacket.update(mDoMtx_stack_c::get(), 0xFF);
#else
mMirrorPacket.update(mDoMtx_stack_c::get(), 0xFF, 60.0f);
#endif
dComIfGd_getXluList()->entryImm(&mMirrorPacket, 0xFF);
updateDLSetLight(mpYmsls00Model, 0);
}
@@ -1568,37 +1570,55 @@ void daPy_lk_c::drawShadow() {
}
mtl->getShape()->hide();
}
f32 fVar1;
f32 f31;
if (checkModeFlg(ModeFlg_HANG)) {
fVar1 = m35DC;
f31 = m35DC;
} else {
fVar1 = mAcch.GetGroundH();
f31 = mAcch.GetGroundH();
}
f32 dVar9 = fVar1;
if ((!strcmp(dComIfGp_getStartStageName(), "M_DaiB")) ||
(!strcmp(dComIfGp_getStartStageName(), "Xboss2")))
f32 f1;
if (!strcmp(dComIfGp_getStartStageName(), "M_DaiB") ||
!strcmp(dComIfGp_getStartStageName(), "Xboss2"))
{
fVar1 = 1400.0f;
f1 = 1400.0f;
} else {
fVar1 = daPy_HIO_basic_c0::m.field_0x10;
f1 = daPy_HIO_basic_c0::m.field_0x10;
}
int iVar4 = dComIfGd_setShadow(m3614, 0, mpCLModel, &local_30, fVar1, 30.0f, current.pos.y,
dVar9, mAcch.m_gnd, &tevStr, 0, 1.0f,
int iVar4 = dComIfGd_setShadow(m3614, 0, mpCLModel, &local_30, f1, 30.0f, current.pos.y,
f31, mAcch.m_gnd, &tevStr, 0, 1.0f,
&dDlst_shadowControl_c::mSimpleTexObj);
m3614 = iVar4;
if ((u32)m3614 != 0) {
if ((checkNoResetFlg1(daPyFlg1_CASUAL_CLOTHES)) && (!checkCaughtShapeHide())) {
dComIfGd_addRealShadow(m3614, mpKatsuraModel);
}
if ((checkSwordEquip()) && (!checkDemoSwordNoDraw(1))) {
if (checkSwordEquip()
#if VERSION == VERSION_DEMO
&& !checkLastDemoSwordNoDraw(1)
#else
&& !checkDemoSwordNoDraw(1)
#endif
) {
dComIfGd_addRealShadow(m3614, mpEquippedSwordModel);
}
if (((mpEquipItemModel != NULL) && (!checkDemoSwordNoDraw(0))) &&
if ((mpEquipItemModel != NULL
#if VERSION == VERSION_DEMO
&& !checkLastDemoSwordNoDraw(0)
#else
&& !checkDemoSwordNoDraw(0)
#endif
) &&
((!checkBowItem(mEquipItem) || (!checkPlayerGuard()))))
{
dComIfGd_addRealShadow(m3614, mpEquipItemModel);
}
if ((dComIfGs_getSelectEquip(1) != dItem_NONE_e) && (!checkDemoShieldNoDraw())) {
if (dComIfGs_getSelectEquip(1) != dItem_NONE_e
#if VERSION == VERSION_DEMO
&& !checkLastDemoSwordNoDraw(1)
#else
&& !checkDemoShieldNoDraw()
#endif
) {
dComIfGd_addRealShadow(m3614, mpEquippedShieldModel);
}
fopAc_ac_c* pfVar10;
@@ -1818,9 +1838,13 @@ BOOL daPy_lk_c::draw() {
} else {
hideHatAndBackle(link_root_joint->getMesh());
}
if ((!checkNormalSwordEquip() && dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) != dStageType_FF1_e) ||
checkCaughtShapeHide() || checkDemoShieldNoDraw())
{
if (
(!checkNormalSwordEquip() && dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) != dStageType_FF1_e)
|| checkCaughtShapeHide()
#if VERSION > VERSION_DEMO
|| checkDemoShieldNoDraw()
#endif
) {
mpCLModelData->getJointNodePointer(0x0D)->getMesh()->getShape()->hide(); // cl_podA joint
} else {
mpCLModelData->getJointNodePointer(0x0D)->getMesh()->getShape()->show(); // cl_podA joint
@@ -1843,7 +1867,11 @@ BOOL daPy_lk_c::draw() {
mpCLModelData->getJointNodePointer(0x29)->getMesh()->getShape()->show(); // cl_back joint
if (!r24) {
entryDLSetLight(mpHandsModel, checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
if (checkNoResetFlg1(daPyFlg1_CASUAL_CLOTHES) && !checkCaughtShapeHide() && !dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)) {
if (checkNoResetFlg1(daPyFlg1_CASUAL_CLOTHES) && !checkCaughtShapeHide()
#if VERSION > VERSION_DEMO
&& !dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)
#endif
) {
entryDLSetLight(mpKatsuraModel, checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
}
if (checkFreezeState() && checkMaskDraw()) {
@@ -1852,7 +1880,11 @@ BOOL daPy_lk_c::draw() {
if (dComIfGs_getSelectEquip(2) == dItem_POWER_BRACELETS_e) {
entryDLSetLight(mpPringModel, checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
}
if (checkMasterSwordEquip() && !checkCaughtShapeHide() && !checkDemoShieldNoDraw()) {
if (checkMasterSwordEquip() && !checkCaughtShapeHide()
#if VERSION > VERSION_DEMO
&& !checkDemoShieldNoDraw()
#endif
) {
updateDLSetLight(mpPodmsModel, checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
}
}
@@ -1885,11 +1917,23 @@ BOOL daPy_lk_c::draw() {
mDoExt_modelUpdateDL(mpSuimenMunyaModel);
}
if (!r24 && !dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)) {
if (checkSwordEquip() && !checkDemoSwordNoDraw(TRUE)) {
if (checkSwordEquip()
#if VERSION == VERSION_DEMO
&& !checkLastDemoSwordNoDraw(1)
#else
&& !checkDemoSwordNoDraw(1)
#endif
) {
entryDLSetLight(mpEquippedSwordModel, checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
}
}
if (dComIfGs_getSelectEquip(1) != dItem_NONE_e && !checkCaughtShapeHide() && !checkDemoShieldNoDraw()) {
if (dComIfGs_getSelectEquip(1) != dItem_NONE_e && !checkCaughtShapeHide()
#if VERSION == VERSION_DEMO
&& !checkLastDemoSwordNoDraw(1)
#else
&& !checkDemoShieldNoDraw()
#endif
) {
entryDLSetLight(mpEquippedShieldModel, checkNoResetFlg1(daPyFlg1_FREEZE_STATE));
}
dComIfGd_setList();
@@ -1899,7 +1943,13 @@ BOOL daPy_lk_c::draw() {
if (mpBottleContentsModel != NULL) {
updateDLSetLight(mpBottleContentsModel, 0);
}
if (mpEquipItemModel && !checkCaughtShapeHide() && !checkDemoSwordNoDraw(FALSE)) {
if (mpEquipItemModel && !checkCaughtShapeHide()
#if VERSION == VERSION_DEMO
&& !checkLastDemoSwordNoDraw(0)
#else
&& !checkDemoSwordNoDraw(0)
#endif
) {
if (!checkBowItem(mEquipItem) || !checkPlayerGuard()) {
if (mEquipItem == dItem_HOOKSHOT_e) {
if (mActorKeepEquip.getActor()) {
@@ -8978,8 +9028,8 @@ void daPy_lk_c::setNeckAngle() {
r28 = true;
} else if (checkModeFlg(ModeFlg_00000080 | ModeFlg_08000000)) {
if ((!dComIfGp_event_runCheck()) || (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK39_e)) {
if (dComIfGp_getAttention().getLookTarget() != NULL) {
sp18 = &dComIfGp_getAttention().getLookTarget()->eyePos;
if (dComIfGp_att_getLookTarget() != NULL) {
sp18 = &dComIfGp_att_getLookTarget()->eyePos;
r28 = true;
} else {
if ((((checkAttentionPosAngle(r23_2, &sp18)) ||
@@ -11162,9 +11212,11 @@ void daPy_lk_c::checkRoofRestart() {
/* 80121870-80122D30 .text execute__9daPy_lk_cFv */
BOOL daPy_lk_c::execute() {
/* Nonmatching - regalloc */
#if VERSION > VERSION_DEMO
if (setGetDemo()) {
return TRUE;
}
#endif
if (checkNoResetFlg1(daPyFlg1_UNK200)) {
fopMsgM_demoMsgFlagOn();
@@ -11184,9 +11236,11 @@ BOOL daPy_lk_c::execute() {
dComIfGs_setBottleItemIn(dItem_FOREST_WATER_e, dItem_WATER_BOTTLE_e);
mDemo.setDemoType(5);
m3628 = fpcM_ERROR_PROCESS_ID_e;
#if VERSION > VERSION_DEMO
if (mCurProc == daPyProc_SCOPE_e) {
procWait_init();
}
#endif
}
}
}
@@ -11234,9 +11288,11 @@ BOOL daPy_lk_c::execute() {
}
}
#if VERSION > VERSION_DEMO
current.pos = l_debug_keep_pos;
shape_angle = l_debug_shape_angle;
current.angle = l_debug_current_angle;
#endif
mCameraInfoIdx = dComIfGp_getPlayerCameraID(0);
m3748 = current.pos;
@@ -11508,7 +11564,7 @@ BOOL daPy_lk_c::execute() {
m357C = m3580;
m3580 = -1;
mCurrAttributeCode = dBgS_Attr_UNK1B_e;
roomNo = current.roomNo;
roomNo = fopAcM_GetRoomNo(this);
checkFallCode();
}
@@ -11546,7 +11602,9 @@ BOOL daPy_lk_c::execute() {
mpCLModelData->getJointNodePointer(0x02)->setMtxCalc(m_pbCalc[PART_UPPER_e]); // body_chn joint
mpCLModelData->getJointNodePointer(0x1D)->setMtxCalc(m_pbCalc[PART_UNDER_e]); // wash_chn joint
#if VERSION > VERSION_DEMO
checkOriginalHatAnimation();
#endif
static const Vec nsword_top = {45.0f, -31.0f, 0.0f};
static const Vec msword_top = {57.0f, 48.0f, 0.0f};
@@ -11583,7 +11641,11 @@ BOOL daPy_lk_c::execute() {
m36D0 = mSwordTopPos;
m36DC = m36C4;
if (mEquipItem == daPyItem_BOKO_e && mActorKeepEquip.getActor()) {
if (mEquipItem == daPyItem_BOKO_e
#if VERSION > VERSION_DEMO
&& mActorKeepEquip.getActor()
#endif
) {
daBoko_c* boko = static_cast<daBoko_c*>(mActorKeepEquip.getActor());
boko->getTopPos(&mSwordTopPos);
boko->getBlurRootPos(&m36C4);
@@ -11623,7 +11685,9 @@ BOOL daPy_lk_c::execute() {
eventInfo.onCondition(dEvtCnd_CANTALK_e);
}
}
#if VERSION > VERSION_DEMO
eventInfo.onCondition(dEvtCnd_CANGETITEM_e);
#endif
JPABaseEmitter* emitter = mSmokeEcallBack.getEmitter();
if (emitter) {
@@ -11655,9 +11719,11 @@ BOOL daPy_lk_c::execute() {
if (dComIfGp_getDoStatus() == dActStts_UNK43) {
dComIfGp_setDoStatus(dActStts_JUMP_e);
}
#if VERSION > VERSION_DEMO
if (checkResetFlg0(daPyRFlg0_UNK10000000)) {
dComIfGp_setAStatus(dActStts_BLANK_e);
}
#endif
}
offNoResetFlg1((daPy_FLG1)(daPyFlg1_UNK4 | daPyFlg1_FORCE_VOMIT_JUMP | daPyFlg1_FORCE_VOMIT_JUMP_SHORT | daPyFlg1_UNK10000000));
@@ -11686,9 +11752,11 @@ BOOL daPy_lk_c::execute() {
mWhirlId = fpcM_ERROR_PROCESS_ID_e;
#if VERSION > VERSION_DEMO
l_debug_keep_pos = current.pos;
l_debug_shape_angle = shape_angle;
l_debug_current_angle = current.angle;
#endif
return TRUE;
}
@@ -12588,9 +12656,11 @@ cPhs_State daPy_lk_c::makeBgWait() {
if ((dComIfGs_getLastSceneMode() & 0x4000) != 0) {
onNoResetFlg1(daPyFlg1_UNK8000);
}
#if VERSION > VERSION_DEMO
l_debug_keep_pos = current.pos;
l_debug_shape_angle = shape_angle;
l_debug_current_angle = current.angle;
#endif
return cPhs_NEXT_e;
}
@@ -12961,9 +13031,11 @@ void daPy_lk_c::setPlayerPosAndAngle(cXyz* param_1, s16 param_2) {
shape_angle.y = param_2;
current.angle.y = param_2;
m34DE = shape_angle.y;
#if VERSION > VERSION_DEMO
l_debug_keep_pos = current.pos;
l_debug_shape_angle = shape_angle;
l_debug_current_angle = current.angle;
#endif
}
/* 80128C10-80128CE4 .text setPlayerPosAndAngle__9daPy_lk_cFP4cXyzP5csXyz */
@@ -12980,9 +13052,11 @@ void daPy_lk_c::setPlayerPosAndAngle(cXyz* param_1, csXyz* param_2) {
current.angle.y = shape_angle.y;
m34DE = shape_angle.y;
}
#if VERSION > VERSION_DEMO
l_debug_keep_pos = current.pos;
l_debug_shape_angle = shape_angle;
l_debug_current_angle = current.angle;
#endif
}
/* 80128CE4-80128DC0 .text setPlayerPosAndAngle__9daPy_lk_cFPA4_f */
@@ -12995,9 +13069,11 @@ void daPy_lk_c::setPlayerPosAndAngle(MtxP param_1) {
mDoMtx_MtxToRot(param_1, &shape_angle);
current.angle.y = shape_angle.y;
m34DE = shape_angle.y;
#if VERSION > VERSION_DEMO
l_debug_keep_pos = current.pos;
l_debug_shape_angle = shape_angle;
l_debug_current_angle = current.angle;
#endif
}
}
+18 -1
View File
@@ -154,7 +154,12 @@ void daPy_lk_c::setLightSaver() {
mpEquipItemBrk->setFrame(2.0f);
}
mpSwordModel1->setBaseTRMtx(mpEquipItemModel->getBaseTRMtx());
if (!checkDemoSwordNoDraw(0) &&
if (
#if VERSION == VERSION_DEMO
!checkLastDemoSwordNoDraw(0) &&
#else
!checkDemoSwordNoDraw(0) &&
#endif
((checkChanceMode() || checkNoResetFlg1(daPyFlg1_UNK8000)) || checkFinalMasterSwordEquip()))
{
simpleAnmPlay(mpSwordBtk);
@@ -221,6 +226,17 @@ void daPy_lk_c::setLightSaver() {
}
}
#if VERSION == VERSION_DEMO
BOOL daPy_lk_c::checkLastDemoSwordNoDraw(BOOL param_0) {
if ((mEquipItem == daPyItem_SWORD_e || param_0) &&
dComIfGs_isEventBit(0x3f40))
{
return TRUE;
} else {
return FALSE;
}
}
#else
/* 80155490-801554C8 .text checkDemoShieldNoDraw__9daPy_lk_cFv */
BOOL daPy_lk_c::checkDemoShieldNoDraw() {
if (dComIfGs_isEventBit(0x3f40)) {
@@ -240,6 +256,7 @@ BOOL daPy_lk_c::checkDemoSwordNoDraw(BOOL param_0) {
return false;
}
}
#endif
/* 80155544-80155574 .text checkChanceMode__9daPy_lk_cFv */
BOOL daPy_lk_c::checkChanceMode() {
+17 -25
View File
@@ -154,28 +154,22 @@ void dBgS_Acch::GroundCheck(dBgS& i_bgs) {
}
/* 800A305C-800A313C .text GroundRoofProc__9dBgS_AcchFR4dBgS */
f32 dBgS_Acch::GroundRoofProc(dBgS& i_bgs) {
f32 y = -G_CM3D_F_INF;
void dBgS_Acch::GroundRoofProc(dBgS& i_bgs) {
if (m_ground_h != -G_CM3D_F_INF) {
// y = m_roof_height;
// fakematch to fix load order
if (field_0xb8 < (y = m_roof_height) && y < pm_pos->y) {
pm_pos->y = y;
if (field_0xb8 < m_roof_height && m_roof_height < pm_pos->y) {
pm_pos->y = m_roof_height;
}
if (!(m_flags & ROOF_NONE)) {
y = m_ground_h;
if (y >= m_roof_y) {
if (m_ground_h >= m_roof_y) {
m_roof.SetExtChk(*this);
ClrRoofHit();
cXyz pos = *pm_pos;
m_roof.SetPos(pos);
y = i_bgs.RoofChk(&m_roof);
m_roof_y = y;
m_roof_y = i_bgs.RoofChk(&m_roof);
}
}
}
return y;
}
/* 800A313C-800A3460 .text LineCheck__9dBgS_AcchFR4dBgS */
@@ -199,7 +193,7 @@ void dBgS_Acch::LineCheck(dBgS& i_bgs) {
cM3dGPla* pla = i_bgs.GetTriPla(linChk);
if (!cBgW_CheckBGround(pla->GetNP()->y)) {
VECAdd(pm_pos, pla->GetNP(), pm_pos);
VECAdd(GetPos(), pla->GetNP(), GetPos());
if (!cM3d_IsZero(std::sqrtf(pla->GetNP()->x*pla->GetNP()->x + pla->GetNP()->z*pla->GetNP()->z)))
pm_acch_cir[i].SetWallHDirect(pm_pos->y);
@@ -232,15 +226,12 @@ void dBgS_Acch::CrrPos(dBgS& i_bgs) {
Init();
f32 lowH_R = GetWallAllLowH_R();
cXyz* temp9 = pm_old_pos;
cXyz* temp10 = pm_pos;
f32 distXZ2 = temp9->abs2XZ(*temp10);
f32 distY = pm_old_pos->y - pm_pos->y;
f32 distXZ2 = GetOldPos()->abs2XZ(*GetPos());
f32 distY = GetOldPos()->y - GetPos()->y;
f32 lowH = GetWallAllLowH();
field_0xb4 = pm_pos->y;
f32 oldY = pm_old_pos->y;
f32 temp7 = lowH + oldY;
f32 temp8 = m_ground_check_offset + pm_pos->y;
field_0xb4 = GetPos()->y;
f32 temp7 = lowH + GetOldPos()->y;
f32 temp8 = m_ground_check_offset + GetPos()->y;
bool ranLineCheck = false;
OffLineCheckHit();
@@ -330,10 +321,12 @@ void dBgS_Acch::CrrPos(dBgS& i_bgs) {
}
}
#if VERSION > VERSION_DEMO
CHECK_FLOAT_CLASS(780, pm_pos->x);
CHECK_FLOAT_CLASS(781, pm_pos->y);
CHECK_FLOAT_CLASS(782, pm_pos->z);
CHECK_PVEC3_RANGE(786, pm_pos);
#endif
}
/* 800A3F50-800A3F8C .text GetWallAllR__9dBgS_AcchFv */
@@ -368,11 +361,10 @@ void dBgS_Acch::CalcWallBmdCyl() {
f32 max_h = min_h;
if (m_tbl_size >= 1) {
for (s32 i = 0; i < m_tbl_size; i++) {
f32 h = pm_acch_cir[i].GetWallH();
if (min_h > h)
min_h = h;
if (max_h < h)
max_h = h;
if (min_h > pm_acch_cir[i].GetWallH())
min_h = pm_acch_cir[i].GetWallH();
if (max_h < pm_acch_cir[i].GetWallH())
max_h = pm_acch_cir[i].GetWallH();
}
}
+10 -1
View File
@@ -1953,8 +1953,13 @@ void mirrorPolygonCheck(cXyz* min_p, cXyz* max_p, f32 rad, dDlst_shadowPoly_c* p
dComIfG_Bgsp()->ShdwDraw(&shdwDraw);
}
#if VERSION == VERSION_DEMO
void dDlst_mirrorPacket::update(Mtx mtx, u8 alpha)
#else
/* 80085808-800859DC .text update__18dDlst_mirrorPacketFPA4_fUcf */
void dDlst_mirrorPacket::update(Mtx mtx, u8 alpha, f32 rad) {
void dDlst_mirrorPacket::update(Mtx mtx, u8 alpha, f32 rad)
#endif
{
mShadowPoly.mCount = 0;
static cXyz l_p1Offset(0.0f, 0.0f, 0.0f);
static cXyz l_p2Offset(0.0f, 0.0f, 10000.0f);
@@ -1962,7 +1967,11 @@ void dDlst_mirrorPacket::update(Mtx mtx, u8 alpha, f32 rad) {
cXyz offs, offs2;
mDoMtx_multVec(mtx, &l_p1Offset, &offs);
mDoMtx_multVec(mtx, &l_p2Offset, &offs2);
#if VERSION == VERSION_DEMO
mirrorPolygonCheck(&offs, &offs2, 60.0f, &mShadowPoly);
#else
mirrorPolygonCheck(&offs, &offs2, rad, &mShadowPoly);
#endif
Mtx viewMtx;
mDoMtx_lookAt(viewMtx, &offs, &offs2, 0);