mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-09 20:40:49 -04:00
Undo file changes
This commit is contained in:
@@ -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
@@ -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
@@ -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
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -67,5 +67,5 @@ class dJle_Pb_c {
|
||||
void draw();
|
||||
void _delete(JKRExpHeap*);
|
||||
};
|
||||
|
||||
void dPb_erasePicture();
|
||||
#endif /* D_PICTURE_BOX_H */
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
+82
-650
@@ -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(¤t.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,¤t.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(¤t.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(¤t.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 = {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+2043
-105
File diff suppressed because it is too large
Load Diff
+176
-675
@@ -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 = {
|
||||
|
||||
@@ -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
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user