mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-04 09:08:39 -04:00
d_a_npc_bm1 100% Matching Retail (#1107)
* 99% match * Rewrote _execute to increase accuracy. Only issue in .text is a label not loading correctly. I have no idea how to fix this. * Equivalent. Weak func ordering. * 7% text * 28% text * 41% text * 65% text * Rewrote _execute to increase accuracy. Only issue in .text is a label not loading correctly. I have no idea how to fix this. * Equivalent. Weak func ordering. * 82% text * Equivalent. A lot of work is needed to name variables and clean up functions. Weak function ordering is wrong. * Cleaned some functions, named several variables, and began documenting dialog tree. * Naming a couple more variables * 21% text * change out getMySubstanceP for getMyIntegerP inline * 100% text * Refactor to use JUT_ASSERT macro * #181: d_a_tag_attention matching; TODO: implement chk_inside and dComIfGp_att_Look2RequestF * #181: continue working on d_a_tag_attention, matching almost complete * #181: revert naming class member (not certain enough) * #181: preliminary changes to resolve #784 comments regarding usage of debug maps * #181: commit suggestion by @WilliamArnett, fixing regalloc error Co-authored-by: WilliamArnett <149556961+WilliamArnett@users.noreply.github.com> * #181: fix missing curly bracket * #181: resolve #784 comments with the kind help of @WilliamArnett; move `daTagAttention::Act_c::chk_inside` to header file; split `plyrToObjVec` definition to match assembly; remove temp variable, use values directly and swap operands; implement `Look2RequestF` in `include/d/d_attention.h`; remove non-matching use of temp variable `iVar1` and replace `current.pos` with uninitialized variable in `daTagAttention::Act_c::_execute` * Update fork to match upstream * some changes * 12% text * 21% text * 26% text * 43% text * 51% text * Revert unnecessary file changes * Update d_a_tag_attention.cpp * 55% text * 52% text * 52% text * 56% text * 68% * 77% text * 100% matching minus regswap * 100% matching for retail * Many more demo matches * Fix broken match in _create() * Demo Match * Add some missing inlines * Fix dComIfGp_setMesgCameraInfoActor * More inline matching * fix broken demo match * Name some fields * Utilize EventBit enum * Name more fields, and add inline calls to d_a_npc_ls1 * Remove comments * Implement @LagoLunatic suggested changes * remove actor cast from dSnap_RegistFig calls * Fix broken match in eInit_ATTENTION_ * Second round of @LagoLunatic 's suggested changes --------- Co-authored-by: Skelp <skelp@pm.me> Co-authored-by: Skelp <59535863+Skelp@users.noreply.github.com>
This commit is contained in:
+1
-1
@@ -1655,7 +1655,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_npc_auction"),
|
||||
ActorRel(NonMatching, "d_a_npc_ba1"),
|
||||
ActorRel(NonMatching, "d_a_npc_bj1"),
|
||||
ActorRel(NonMatching, "d_a_npc_bm1"),
|
||||
ActorRel(Matching, "d_a_npc_bm1"),
|
||||
ActorRel(NonMatching, "d_a_npc_bmcon1"),
|
||||
ActorRel(NonMatching, "d_a_npc_bms1"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_npc_bmsw"),
|
||||
|
||||
+271
-154
@@ -1,60 +1,107 @@
|
||||
#ifndef D_A_NPC_BM1_H
|
||||
#define D_A_NPC_BM1_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_Bm1_c : public fopNpc_npc_c {
|
||||
public:
|
||||
struct anm_prm_c {
|
||||
|
||||
typedef s8 SpecificType;
|
||||
enum {
|
||||
SPECIFIC_TYPE_Quill_0_e,
|
||||
SPECIFIC_TYPE_Quill_1_e,
|
||||
SPECIFIC_TYPE_Quill_2_e,
|
||||
SPECIFIC_TYPE_Quill_3_e,
|
||||
SPECIFIC_TYPE_Quill_4_e,
|
||||
SPECIFIC_TYPE_Akoot_e,
|
||||
SPECIFIC_TYPE_Skett_e,
|
||||
SPECIFIC_TYPE_Basht_e,
|
||||
SPECIFIC_TYPE_Bisht_e,
|
||||
SPECIFIC_TYPE_Hoskit_e,
|
||||
SPECIFIC_TYPE_Ilari_0xA_e,
|
||||
SPECIFIC_TYPE_Ilari_0xB_e,
|
||||
SPECIFIC_TYPE_Ilari_0xC_e,
|
||||
SPECIFIC_TYPE_Pashli_e,
|
||||
SPECIFIC_TYPE_Namali_e,
|
||||
SPECIFIC_TYPE_Kogoli_e,
|
||||
SPECIFIC_TYPE_Invalid_e = 0xFF
|
||||
};
|
||||
|
||||
void IamKakkuto() {}
|
||||
void IamSukketo() {}
|
||||
void clr_manzai() {}
|
||||
void getOdoroki() {}
|
||||
void getStt() {}
|
||||
void get_oldMsgStat() {}
|
||||
void setFocus() {}
|
||||
void setTelescopeDemo() {}
|
||||
void set_manzai() {}
|
||||
typedef s8 Type;
|
||||
enum{
|
||||
TYPE_Uninitialized_e,
|
||||
TYPE_Quill_e,
|
||||
TYPE_Akoot_e,
|
||||
TYPE_Skett_e,
|
||||
TYPE_Basht_e,
|
||||
TYPE_Bisht_e,
|
||||
TYPE_Hoskit_e,
|
||||
TYPE_Ilari_e,
|
||||
TYPE_Pashli_e,
|
||||
TYPE_Namali_e,
|
||||
TYPE_Kogoli_e,
|
||||
TYPE_Invalid_e = 0xFF,
|
||||
};
|
||||
struct anm_prm_c{
|
||||
s8 mAnmNum;
|
||||
s8 mBtpNum;
|
||||
f32 mMorf;
|
||||
f32 mSpeed;
|
||||
s32 mLoopMode;
|
||||
BOOL mbHasArms;
|
||||
};
|
||||
|
||||
typedef BOOL (daNpc_Bm1_c::*ActionFunc)(void*);
|
||||
|
||||
bool IamKakkuto() {return mSpecificType == SPECIFIC_TYPE_Akoot_e;}
|
||||
bool IamSukketo() {return mSpecificType == SPECIFIC_TYPE_Skett_e;}
|
||||
void clr_manzai() {mbManzai = false;}
|
||||
bool getOdoroki() { return m880;}
|
||||
s8 getStt() { return mStatus;}
|
||||
u16 get_oldMsgStat() {return mOldMsgStat;}
|
||||
void setFocus() {m882 = true;}
|
||||
void setTelescopeDemo() {m881 = true;}
|
||||
void set_manzai() {mbManzai = true;}
|
||||
|
||||
|
||||
void nodeWngControl(J3DNode*, J3DModel*);
|
||||
void nodeArmControl(J3DNode*, J3DModel*);
|
||||
void nodeBm1Control(J3DNode*, J3DModel*);
|
||||
void chk_appCnd();
|
||||
void init_PST_0();
|
||||
void init_PST_1();
|
||||
void init_PST_2();
|
||||
void init_PST_3();
|
||||
void init_PST_4();
|
||||
void init_BMB_0();
|
||||
void init_BMB_1();
|
||||
void init_BMB_2();
|
||||
void init_BMC_0();
|
||||
void init_BMC_1();
|
||||
void init_BMC_2();
|
||||
void init_BMC_3();
|
||||
void init_BMD_0();
|
||||
void init_BMD_1();
|
||||
void init_SKT_0();
|
||||
void init_KKT_0();
|
||||
void createInit();
|
||||
bool chk_appCnd();
|
||||
bool init_PST_0();
|
||||
bool init_PST_1();
|
||||
bool init_PST_2();
|
||||
bool init_PST_3();
|
||||
bool init_PST_4();
|
||||
bool init_BMB_0();
|
||||
bool init_BMB_1();
|
||||
bool init_BMB_2();
|
||||
bool init_BMC_0();
|
||||
bool init_BMC_1();
|
||||
bool init_BMC_2();
|
||||
bool init_BMC_3();
|
||||
bool init_BMD_0();
|
||||
bool init_BMD_1();
|
||||
bool init_SKT_0();
|
||||
bool init_KKT_0();
|
||||
bool createInit();
|
||||
void setMtx(bool);
|
||||
void anmNum_toResID(int);
|
||||
void headAnmNum_toResID(int);
|
||||
void wingAnmNum_toResID(int);
|
||||
void btpNum_toResID(int);
|
||||
void setBtp(bool, int);
|
||||
void iniTexPttrnAnm(bool);
|
||||
char* anmNum_toResID(int);
|
||||
char* headAnmNum_toResID(int);
|
||||
char* wingAnmNum_toResID(int);
|
||||
char* btpNum_toResID(int);
|
||||
bool setBtp(bool, int);
|
||||
bool iniTexPttrnAnm(bool);
|
||||
void plyTexPttrnAnm();
|
||||
void setAnm_tex(signed char);
|
||||
void setAnm_anm(anm_prm_c*);
|
||||
BOOL setAnm_anm(anm_prm_c*);
|
||||
void setAnm_NUM(int, int);
|
||||
void setAnm();
|
||||
bool setAnm();
|
||||
void setPlaySpd(float);
|
||||
void chg_anmTag();
|
||||
void control_anmTag();
|
||||
@@ -64,35 +111,35 @@ public:
|
||||
void anmAtr(unsigned short);
|
||||
void eventOrder();
|
||||
void checkOrder();
|
||||
void chk_manzai();
|
||||
void chk_talk();
|
||||
void chk_partsNotMove();
|
||||
void lookBack();
|
||||
u8 chk_manzai();
|
||||
bool chk_talk();
|
||||
bool chk_partsNotMove();
|
||||
BOOL lookBack();
|
||||
u16 next_msgStatus(unsigned long*);
|
||||
void getBitMask();
|
||||
void getMsg_PST_1();
|
||||
void getMsg_PST_3();
|
||||
void getMsg_SKT_0();
|
||||
void getMsg_KKT_0();
|
||||
void getMsg_BMB_0();
|
||||
void getMsg_BMB_1();
|
||||
void getMsg_BMB_2();
|
||||
void getMsg_BMC_0();
|
||||
void getMsg_BMC_2();
|
||||
void getMsg_BMC_3();
|
||||
void getMsg_BMD_0();
|
||||
void getMsg_BMD_1();
|
||||
s8 getBitMask();
|
||||
u32 getMsg_PST_1();
|
||||
u32 getMsg_PST_3();
|
||||
u32 getMsg_SKT_0();
|
||||
u32 getMsg_KKT_0();
|
||||
u32 getMsg_BMB_0();
|
||||
u32 getMsg_BMB_1();
|
||||
u32 getMsg_BMB_2();
|
||||
u32 getMsg_BMC_0();
|
||||
u32 getMsg_BMC_2();
|
||||
u32 getMsg_BMC_3();
|
||||
u32 getMsg_BMD_0();
|
||||
u32 getMsg_BMD_1();
|
||||
u32 getMsg();
|
||||
void chkAttention();
|
||||
bool chkAttention();
|
||||
void setAttention(bool);
|
||||
void searchByID(fpc_ProcID);
|
||||
void partner_srch_sub(void* (*)(void*, void*));
|
||||
fopAc_ac_c* searchByID(fpc_ProcID);
|
||||
bool partner_srch_sub(void* (*)(void*, void*));
|
||||
void partner_srch();
|
||||
void bm_movPass(bool);
|
||||
u32 bm_movPass(bool);
|
||||
void bm_setFlyAnm();
|
||||
void bm_clcFlySpd();
|
||||
void bm_clcMovSpd();
|
||||
void bm_flyMove();
|
||||
bool bm_flyMove();
|
||||
void bm_nMove();
|
||||
void setPrtcl_Flyaway();
|
||||
void delPrtcl_Flyaway();
|
||||
@@ -104,14 +151,14 @@ public:
|
||||
void setPrtcl_Hane1();
|
||||
void flwPrtcl_Hane1();
|
||||
void delPrtcl_Hane1();
|
||||
void decideType(int, int);
|
||||
bool decideType(int, int);
|
||||
void eInit_setLocFlag(int*);
|
||||
void eInit_setShapeAngleY(int*, short);
|
||||
void eInit_setEvTimer(int*);
|
||||
void eInit_calcRelativPos(cXyz*, int*);
|
||||
cXyz eInit_calcRelativPos(cXyz*, int*);
|
||||
void eInit_ATTENTION_(int*, int*, int*, cXyz*, int*, int*, int*);
|
||||
void eInit_SET_PLYER_GOL_(int*, cXyz*, int*);
|
||||
void eInit_prmFloat(float*, float);
|
||||
float eInit_prmFloat(float*, float);
|
||||
void eInit_FLY_(int*, float*, float*, float*, float*);
|
||||
void eInit_DEL_ACTOR_();
|
||||
void eInit_WLK_(int*, float*, float*, cXyz*, int*, int*, int*);
|
||||
@@ -120,118 +167,188 @@ public:
|
||||
void eInit_SET_ANM_(int*);
|
||||
void eInit_MOV_PTH_POINT_(int*, int*, int*, int*);
|
||||
void event_actionInit(int);
|
||||
void eMove_ATTENTION_();
|
||||
void eMove_KMA_FLY_();
|
||||
void eMove_FLY_();
|
||||
void eMove_WLK_();
|
||||
void event_action();
|
||||
bool eMove_ATTENTION_();
|
||||
bool eMove_KMA_FLY_();
|
||||
bool eMove_FLY_();
|
||||
bool eMove_WLK_();
|
||||
bool event_action();
|
||||
void cut_init_360_TRN(int);
|
||||
void cut_move_360_TRN();
|
||||
bool cut_move_360_TRN();
|
||||
void privateCut(int);
|
||||
void endEvent();
|
||||
void isEventEntry();
|
||||
BOOL isEventEntry();
|
||||
void event_proc(int);
|
||||
void set_action(int (daNpc_Bm1_c::*)(void*), void*);
|
||||
BOOL set_action(int (daNpc_Bm1_c::*)(void*), void*);
|
||||
BOOL chk_action(int (daNpc_Bm1_c::*)(void*)); //Unused
|
||||
void setStt(signed char);
|
||||
void d_wait();
|
||||
void lookup();
|
||||
void orooro();
|
||||
void wait_1();
|
||||
void talk_1();
|
||||
void talk_2();
|
||||
void manzai();
|
||||
void wait_4();
|
||||
void flyawy();
|
||||
void wait_5();
|
||||
void h_wait();
|
||||
void wait_7();
|
||||
void wait_3();
|
||||
void wait_8();
|
||||
void wait_2();
|
||||
void walk_1();
|
||||
void CHKwai();
|
||||
void demo_action1(void*);
|
||||
void wait_action1(void*);
|
||||
void wait_action2(void*);
|
||||
void wait_action3(void*);
|
||||
void wait_action4(void*);
|
||||
void wait_action5(void*);
|
||||
void wait_action6(void*);
|
||||
void wait_action7(void*);
|
||||
void wait_action8(void*);
|
||||
void wait_action9(void*);
|
||||
void wait_actionA(void*);
|
||||
void demo();
|
||||
BOOL d_wait();
|
||||
BOOL lookup();
|
||||
BOOL orooro();
|
||||
BOOL wait_1();
|
||||
BOOL talk_1();
|
||||
BOOL talk_2();
|
||||
BOOL manzai();
|
||||
BOOL wait_4();
|
||||
BOOL flyawy();
|
||||
BOOL wait_5();
|
||||
BOOL wait_6(); //Unused
|
||||
BOOL h_wait();
|
||||
BOOL wait_7();
|
||||
BOOL wait_3();
|
||||
BOOL wait_8();
|
||||
BOOL wait_2();
|
||||
BOOL walk_1();
|
||||
BOOL CHKwai();
|
||||
BOOL demo_action1(void*);
|
||||
BOOL wait_action1(void*);
|
||||
BOOL wait_action2(void*);
|
||||
BOOL wait_action3(void*);
|
||||
BOOL wait_action4(void*);
|
||||
BOOL wait_action5(void*);
|
||||
BOOL wait_action6(void*);
|
||||
BOOL wait_action7(void*);
|
||||
BOOL wait_action8(void*);
|
||||
BOOL wait_action9(void*);
|
||||
BOOL wait_actionA(void*);
|
||||
bool demo();
|
||||
void shadowDraw();
|
||||
BOOL _draw();
|
||||
BOOL _execute();
|
||||
BOOL _delete();
|
||||
cPhs_State _create();
|
||||
void create_Anm();
|
||||
void create_hed_Anm();
|
||||
void create_wng_Anm();
|
||||
void create_arm_Anm();
|
||||
void create_itm_Mdl();
|
||||
void CreateHeap();
|
||||
J3DModelData* create_Anm();
|
||||
J3DModelData* create_hed_Anm();
|
||||
J3DModelData* create_wng_Anm();
|
||||
J3DModelData* create_arm_Anm();
|
||||
bool create_itm_Mdl();
|
||||
BOOL CreateHeap();
|
||||
|
||||
public:
|
||||
/* 0x6C4 */ u8 m6C4[0x6CC - 0x6C4];
|
||||
private:
|
||||
/* 0x6C4 */ request_of_phase_process_class mPhs;
|
||||
/* 0x6CC */ char mArcName[4];
|
||||
/* 0x6D0 */ u8 mHeadJntIdx;
|
||||
/* 0x6D1 */ u8 mBackboneJntIdx;
|
||||
/* 0x6D2 */ u8 mNeckJntIdx;
|
||||
/* 0x6D3 */ u8 mArmLJntIdx;
|
||||
/* 0x6D4 */ u8 mArmRJntIdx;
|
||||
/* 0x6D5 */ u8 m6D5[0x734 - 0x6D5];
|
||||
/* 0x6D0 */ s8 m_hed_jnt_num;
|
||||
/* 0x6D1 */ s8 m_bbone_jnt_num;
|
||||
/* 0x6D2 */ s8 m_nec_jnt_num;
|
||||
/* 0x6D3 */ s8 m_arm_L_jnt_num;
|
||||
/* 0x6D4 */ s8 m_arm_R_jnt_num;
|
||||
/* 0x6D8 */ J3DModel* mpBinderModel;
|
||||
/* 0x6DC */ J3DModel* mpBagModel;
|
||||
/* 0x6E0 */ J3DModel* mpKnifeModel;
|
||||
/* 0x6E4 */ J3DModel* mpStickModel;
|
||||
/* 0x6E8 */ u32 mShadowID;
|
||||
/* 0x6EC */ mDoExt_McaMorf* mpHeadMorf;
|
||||
/* 0x6F0 */ J3DAnmTexPattern* m_hed_tex_pttrn;
|
||||
/* 0x6F4 */ mDoExt_btpAnm mHeadBtpAnm;
|
||||
/* 0x708 */ u8 mBlinkFrame;
|
||||
/* 0x709 u8 pad709; */
|
||||
/* 0x70A */ s16 mBlinkTimer;
|
||||
/* 0x70C */ s16 pad70C;
|
||||
/* 0x710 */ mDoExt_McaMorf* mpWingMorf;
|
||||
/* 0x714 */ s8 m_wngL1_jnt_num;
|
||||
/* 0x715 */ s8 m_wngR1_jnt_num;
|
||||
/* 0x716 */ s8 m_wngL3_jnt_num;
|
||||
/* 0x717 */ s8 m_wngR3_jnt_num;
|
||||
/* 0x718 */ u8 pad718[0x71C - 0x718]; //Possibly an unused mDoExt_McaMorf* ?
|
||||
/* 0x71C */ mDoExt_McaMorf* mpArmMorf;
|
||||
/* 0x720 */ s8 m_armL1_jnt_num;
|
||||
/* 0x721 */ s8 m_armR1_jnt_num;
|
||||
/* 0x722 */ s8 m_armL2_jnt_num;
|
||||
/* 0x723 */ s8 m_armR2_jnt_num;
|
||||
/* 0x724 */ s8 m_hnd_R_jnt_num;
|
||||
/* 0x728 */ ActionFunc mCurrActionFunc;
|
||||
/* 0x734 */ Mtx mLeftArmMtx;
|
||||
/* 0x764 */ Mtx mRightArmMtx;
|
||||
/* 0x794 */ u8 m794[0x80C - 0x794];
|
||||
/* 0x80C */ cXyz m80C;
|
||||
/* 0x794 */ dNpc_PathRun_c mPathRun;
|
||||
/* 0x79C */ dNpc_EventCut_c mEventCut;
|
||||
/* 0x808 */ fpc_ProcID mPartnerProcID;
|
||||
/* 0x80C */ cXyz mInitialPos;
|
||||
/* 0x818 */ csXyz m818;
|
||||
/* 0x81E */ u8 m81E[0x820 - 0x81E];
|
||||
/* 0x81E u8 pad81E[0x820 - 0x81E]; */
|
||||
/* 0x820 */ cXyz mEyePos;
|
||||
/* 0x82C */ u8 m82C[0x86E - 0x82C];
|
||||
/* 0x82C */ cXyz m82C;
|
||||
/* 0x838 */ cXyz mTargetPos;
|
||||
/* 0x844 */ f32 mFrame;
|
||||
/* 0x848 */ f32 mTargetFlySpeed;
|
||||
/* 0x84C */ f32 mFlySpeedY;
|
||||
/* 0x850 */ f32 mTargetFlyStep;
|
||||
/* 0x854 */ f32 mFlyAccelY;
|
||||
/* 0x858 */ f32 m858;
|
||||
/* 0x85C */ s16 m85C;
|
||||
/* 0x85E */ s16 m85E;
|
||||
/* 0x860 */ s16 m860;
|
||||
/* 0x862 */ s16 mEventIdTable[4];
|
||||
/* 0x86A */ s16 mEventIdx;
|
||||
/* 0x86C */ s16 m86C;
|
||||
/* 0x86E */ s16 m86E;
|
||||
/* 0x870 */ u8 m870[0x874 - 0x870];
|
||||
/* 0x874 */ s16 m874;
|
||||
/* 0x870 */ s16 m870;
|
||||
/* 0x872 */ s16 m872;
|
||||
/* 0x874 */ s16 mHeadLookAtMaxVel;
|
||||
/* 0x876 */ s16 m876;
|
||||
/* 0x878 */ u8 m878[0x880 - 0x878];
|
||||
/* 0x880 */ u8 m880;
|
||||
/* 0x881 */ u8 m881;
|
||||
/* 0x882 */ u8 m882;
|
||||
/* 0x883 */ u8 m883[0x884 - 0x883];
|
||||
/* 0x884 */ u8 m884;
|
||||
/* 0x885 */ u8 m885[0x887 - 0x885];
|
||||
/* 0x878 */ u16 mOldMsgStat;
|
||||
/* 0x87A */ s8 mbMorfAnimStopped;
|
||||
/* 0x87B */ s8 m87B;
|
||||
/* 0x87C */ s8 m87C;
|
||||
/* 0x87D */ u8 m87D;
|
||||
/* 0x87E */ u8 m87E;
|
||||
/* 0x87F */ bool m87F;
|
||||
/* 0x880 */ bool m880;
|
||||
/* 0x881 */ bool m881;
|
||||
/* 0x882 */ bool m882;
|
||||
/* 0x883 */ bool mbManzai;
|
||||
/* 0x884 */ bool mbInitPostman0;
|
||||
/* 0x885 */ bool mbHasArms;
|
||||
/* 0x886 */ bool mbSetShapeAngle;
|
||||
/* 0x887 */ u8 m887;
|
||||
/* 0x888 */ u8 m888[0x894 - 0x888];
|
||||
/* 0x894 */ u8 m894;
|
||||
/* 0x895 */ u8 m895;
|
||||
/* 0x888 */ u8 m888;
|
||||
/* 0x889 */ bool m889;
|
||||
/* 0x88A */ bool m88A;
|
||||
/* 0x88B */ u8 m88B;
|
||||
/* 0x88C */ bool mbRanExecute;
|
||||
/* 0x88D */ u8 m88D;
|
||||
/* 0x88E */ u8 m88E;
|
||||
/* 0x88F */ u8 m88F;
|
||||
/* 0x890 */ s32 mbSetEyePos;
|
||||
/* 0x894 */ bool mbAttention;
|
||||
/* 0x895 */ bool m895;
|
||||
/* 0x896 */ bool m896;
|
||||
/* 0x897 */ u8 m897[0x8FD - 0x897];
|
||||
/* 0x8FD */ u8 m8FD;
|
||||
/* 0x8FE */ u8 m8FE[0x900 - 0x8FE];
|
||||
/* 0x900 */ u8 m900;
|
||||
/* 0x901 */ u8 mType;
|
||||
/* 0x902 */ u8 mSpecificType;
|
||||
/* 0x903 */ u8 mSpawnCondition;
|
||||
/* 0x904 */ u8 m904[0x908 - 0x904];
|
||||
/* 0x897 */ bool mbInDemo;
|
||||
/* 0x898 */ cXyz mWingLPos;
|
||||
/* 0x8A4 */ cXyz mWingRPos;
|
||||
/* 0x8B0 */ cXyz mArmLPos;
|
||||
/* 0x8BC */ cXyz mArmRPos;
|
||||
/* 0x8C8 */ u8 m8C8;
|
||||
/* 0x8C9 */ u8 m8C9[0x8CC - 0x8C9];
|
||||
/* 0x8CC */ u8 m8CC;
|
||||
/* 0x8CD */ u8 m8CD[0x8D4 - 0x8CD];
|
||||
/* 0x8D4 */ JPABaseEmitter* mpFlyawayEmitterL;
|
||||
/* 0x8D8 */ JPABaseEmitter* mpFlyawayEmitterR;
|
||||
/* 0x8DC */ JPABaseEmitter* mpLandEmitterL;
|
||||
/* 0x8E0 */ JPABaseEmitter* mpLandEmitterR;
|
||||
/* 0x8E4 */ JPABaseEmitter* mpFeatherEmitterL;
|
||||
/* 0x8E8 */ JPABaseEmitter* mpFeatherEmitterR;
|
||||
/* 0x8EC */ JPABaseEmitter* mpFeather1EmitterL;
|
||||
/* 0x8F0 */ JPABaseEmitter* mpFeather1EmitterR;
|
||||
#if VERSION == VERSION_DEMO
|
||||
/* 0x8F4 */ u32 mDemoUnused; //Possibly an unused emitter
|
||||
#endif
|
||||
/* 0x8F4 */ s8 m8F4;
|
||||
/* 0x8F5 */ s8 mActionIndex;
|
||||
/* 0x8F6 */ s8 mActNo;
|
||||
/* 0x8F7 */ u8 m8F7;
|
||||
/* 0x8F8 */ u8 m8F8;
|
||||
/* 0x8F9 */ s8 mBtpNum;
|
||||
/* 0x8FA */ s8 mAnmNum;
|
||||
/* 0x8FB */ u8 m8FB[0x8FD - 0x8FB];
|
||||
/* 0x8FD */ s8 m8FD;
|
||||
/* 0x8FE */ s8 mStatus;
|
||||
/* 0x8FF */ s8 m8FF;
|
||||
/* 0x900 */ s8 mLookBackState;
|
||||
/* 0x901 */ s8 mType;
|
||||
/* 0x902 */ SpecificType mSpecificType;
|
||||
/* 0x903 */ s8 mSpawnCondition;
|
||||
/* 0x904 */ s8 m904;
|
||||
/* 0x904 */ s8 m905;
|
||||
};
|
||||
STATIC_ASSERT(sizeof(daNpc_Bm1_c) == 0x908);
|
||||
|
||||
class daNpc_Bm1_childHIO_c {
|
||||
public:
|
||||
daNpc_Bm1_childHIO_c();
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
};
|
||||
|
||||
class daNpc_Bm1_HIO_c {
|
||||
public:
|
||||
daNpc_Bm1_HIO_c();
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
};
|
||||
STATIC_ASSERT(sizeof(daNpc_Bm1_c) == DEMO_SELECT(0x90C,0x908));
|
||||
|
||||
#endif /* D_A_NPC_BM1_H */
|
||||
|
||||
@@ -244,6 +244,18 @@ public:
|
||||
}
|
||||
void setMesgCamInfoBasicID(int id) { mMesgCamInfo.mBasicID = id; }
|
||||
dComIfG_MesgCamInfo_c* getMesgCamInfo() { return &mMesgCamInfo; }
|
||||
void setMesgCamInfoActor(fopAc_ac_c* actor_1,fopAc_ac_c* actor_2,fopAc_ac_c* actor_3,fopAc_ac_c* actor_4,fopAc_ac_c* actor_5,fopAc_ac_c* actor_6,fopAc_ac_c* actor_7,fopAc_ac_c* actor_8,fopAc_ac_c* actor_9,fopAc_ac_c* actor_A){
|
||||
mMesgCamInfo.mActor[0] = actor_1;
|
||||
mMesgCamInfo.mActor[1] = actor_2;
|
||||
mMesgCamInfo.mActor[2] = actor_3;
|
||||
mMesgCamInfo.mActor[3] = actor_4;
|
||||
mMesgCamInfo.mActor[4] = actor_5;
|
||||
mMesgCamInfo.mActor[5] = actor_6;
|
||||
mMesgCamInfo.mActor[6] = actor_7;
|
||||
mMesgCamInfo.mActor[7] = actor_8;
|
||||
mMesgCamInfo.mActor[8] = actor_9;
|
||||
mMesgCamInfo.mActor[9] = actor_A;
|
||||
}
|
||||
int getMesgCamInfoID() { return mMesgCamInfo.mID; }
|
||||
void setMesgCamInfoID(int param_0) { mMesgCamInfo.mID = param_0; }
|
||||
void clearMesgCamInfoID() { mMesgCamInfo.mID = -1; }
|
||||
@@ -3159,6 +3171,11 @@ inline dComIfG_MesgCamInfo_c* dComIfGp_getMesgCameraInfo() {
|
||||
return g_dComIfG_gameInfo.play.getMesgCamInfo();
|
||||
}
|
||||
|
||||
inline void dComIfGp_setMesgCameraInfoActor(fopAc_ac_c* actor_1,fopAc_ac_c* actor_2,fopAc_ac_c* actor_3,fopAc_ac_c* actor_4,fopAc_ac_c* actor_5,fopAc_ac_c* actor_6,fopAc_ac_c* actor_7,fopAc_ac_c* actor_8,fopAc_ac_c* actor_9,fopAc_ac_c* actor_A){
|
||||
g_dComIfG_gameInfo.play.setMesgCamInfoActor(actor_1,actor_2,actor_3,actor_4,actor_5,actor_6,actor_7,actor_8,actor_9,actor_A);
|
||||
|
||||
};
|
||||
|
||||
inline u8 dComIfGp_checkMesgBgm() {
|
||||
return g_dComIfG_gameInfo.play.checkMesgBgm();
|
||||
}
|
||||
|
||||
+3912
-289
File diff suppressed because it is too large
Load Diff
@@ -1577,7 +1577,7 @@ bool daNpc_Ls1_c::telescope_proc() {
|
||||
|
||||
if (m833 == 0) {
|
||||
mDoAud_bgmStreamPrepare(JA_STRM_DEMO_TETRA_FLY);
|
||||
bm1_npc_p->m881 = 1;
|
||||
bm1_npc_p->setTelescopeDemo();
|
||||
mTimer5 = 150;
|
||||
m810 = -1;
|
||||
m833 = 1;
|
||||
@@ -1626,7 +1626,7 @@ bool daNpc_Ls1_c::telescope_proc() {
|
||||
fopMsgM_forceSendOn();
|
||||
}
|
||||
dComIfGp_getCamera(0)->mCamera.setFlag(0x800000);
|
||||
bm1_npc_p->m882 = 1;
|
||||
bm1_npc_p->setFocus();
|
||||
mTimer5 = 0;
|
||||
m810 = 0;
|
||||
m833 = 3;
|
||||
@@ -1635,7 +1635,7 @@ bool daNpc_Ls1_c::telescope_proc() {
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (m810 == 0 && bm1_npc_p->m880 != 0) {
|
||||
if (m810 == 0 && bm1_npc_p->getOdoroki()) {
|
||||
if (scope_mesg_status == fopMsgStts_CLOSE_WAIT_e) {
|
||||
fopMsgM_forceSendOn();
|
||||
} else if (fopMsgM_releaseScopeMode()) {
|
||||
|
||||
Reference in New Issue
Block a user