mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-29 08:42:53 -04:00
daNpc_Cb1_c Almost OK (#822)
* daNpc_Cb1_c Almost OK Down to regswaps/minor instruction issues * Oops That inline was fake * Some Cleanup - Fill in more inlines - Reorganize daNpc_Cb1_c inlines - Use inlines more - Some naming and typing consistency * Naming, Consistency Tweaks - TRUE/FALSE macros for all cases of BOOL, use int -> BOOL sometimes - Rename HIO to be consistent with other NPCs - Animation enum * Some HIO Names * Clarity Tweaks - NULL in more asserts - Squared constants
This commit is contained in:
+308
-150
@@ -1,183 +1,209 @@
|
||||
#ifndef D_A_NPC_CB1_H
|
||||
#define D_A_NPC_CB1_H
|
||||
|
||||
#include "d/actor/d_a_player_npc.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_npc.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "SSystem/SComponent/c_bg_s_poly_info.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
#include "m_Do/m_Do_hostIO.h"
|
||||
|
||||
class daNpc_Cb1_c : public fopAc_ac_c {
|
||||
class daNpc_Cb1_c : public daPy_npc_c {
|
||||
public:
|
||||
void XyCheckCB(int) {}
|
||||
void XyEventCB(int) {}
|
||||
void chkNpcAction(int (daNpc_Cb1_c::*)(void*)) {}
|
||||
void chkPlayerAction(int (daNpc_Cb1_c::*)(void*)) {}
|
||||
void getBackbone_x() {}
|
||||
void getBackbone_y() {}
|
||||
void getBaseAnimeFrame() {}
|
||||
void getBaseAnimeFrameRate() {}
|
||||
void getEyePos() {}
|
||||
void getFlyingTimer() {}
|
||||
void getGroundY() {}
|
||||
void getHead_y() {}
|
||||
void getLeftHandMatrix() {}
|
||||
void getNusSpeed() {}
|
||||
void getNutPos() {}
|
||||
void getRightHandMatrix() {}
|
||||
void getWork3() {}
|
||||
void incAttnSetCount() {}
|
||||
void isMusic() {}
|
||||
void isNoCarryAction() {}
|
||||
void isNut() {}
|
||||
void isPlayerFind() {}
|
||||
void isShipRide() {}
|
||||
void isTact() {}
|
||||
void isTactCancel() {}
|
||||
void isTactCorrect() {}
|
||||
void isTypeBossDie() {}
|
||||
void isTypeEkaze() {}
|
||||
void isTypeForest() {}
|
||||
void isTypeKaze() {}
|
||||
void isTypeKazeBoss() {}
|
||||
void isTypeWaterFall() {}
|
||||
void noCarryAction() {}
|
||||
void offFlying() {}
|
||||
void offMusic() {}
|
||||
void offNoCarryAction() {}
|
||||
void offNut() {}
|
||||
void offPlayerFind() {}
|
||||
void offPlayerRoom() {}
|
||||
void offShipRide() {}
|
||||
void offTact() {}
|
||||
void offTactCancel() {}
|
||||
void offTactCorrect() {}
|
||||
void onFlying() {}
|
||||
void onMusic() {}
|
||||
void onNut() {}
|
||||
void onPlayerFind() {}
|
||||
void onPlayerRoom() {}
|
||||
void onShipRide() {}
|
||||
void onTact() {}
|
||||
void onTactCancel() {}
|
||||
void onTactCorrect() {}
|
||||
void restartPoint(short) {}
|
||||
void setFlyingTimer(short) {}
|
||||
typedef BOOL (daNpc_Cb1_c::*ActionFunc_t)(void*);
|
||||
|
||||
// daPy_py_c virtuals
|
||||
f32 getBaseAnimeFrame() { return 0.0f; }
|
||||
f32 getBaseAnimeFrameRate() { return 1.0f; }
|
||||
MtxP getLeftHandMatrix() { return cullMtx; }
|
||||
MtxP getRightHandMatrix() { return cullMtx; }
|
||||
|
||||
s16 XyCheckCB(int i_itemBtn) {
|
||||
if(dComIfGp_getSelectItem(i_itemBtn) == dItem_WIND_WAKER_e && dComIfGs_isEventBit(0x1880)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
s16 XyEventCB(int) { return mEventIdx[2]; }
|
||||
BOOL chkNpcAction(ActionFunc_t action) { return mNpcAction == action; }
|
||||
BOOL chkPlayerAction(ActionFunc_t action) { return mPlayerAction == action; }
|
||||
s16 getBackbone_x() { return mJntCtrl.getBackbone_x(); }
|
||||
s16 getBackbone_y() { return mJntCtrl.getBackbone_y(); }
|
||||
s16 getHead_y() { return mJntCtrl.getHead_y(); }
|
||||
cXyz& getEyePos() { return mEyePos; }
|
||||
f32 getGroundY() { return mAcch.GetGroundH(); }
|
||||
cXyz& getNusSpeed() { return mNusSpeed; } // not entirely sure about this one
|
||||
cXyz& getNutPos() { return mNutPos; } // not entirely sure about this one
|
||||
s16 getWork3() { return m8FA; }
|
||||
void incAttnSetCount() {
|
||||
if(mAttnSetCount != 0xFF) {
|
||||
mAttnSetCount += 1;
|
||||
}
|
||||
}
|
||||
BOOL isTypeBossDie() { return fopAcM_GetParam(this) == 0; }
|
||||
BOOL isTypeForest() { return fopAcM_GetParam(this) == 1; }
|
||||
BOOL isTypeWaterFall() { return fopAcM_GetParam(this) == 2; }
|
||||
BOOL isTypeEkaze() { return fopAcM_GetParam(this) == 3; }
|
||||
BOOL isTypeKaze() { return fopAcM_GetParam(this) == 4; }
|
||||
BOOL isTypeKazeBoss() { return fopAcM_GetParam(this) == 5; }
|
||||
BOOL isNoCarryAction() { return m_status & 0x01; }
|
||||
BOOL isTact() { return m_status & 0x02; }
|
||||
BOOL isTactCorrect() { return m_status & 0x04; }
|
||||
BOOL isTactCancel() { return m_status & 0x08; }
|
||||
BOOL isMusic() { return m_status & 0x10; }
|
||||
BOOL isNut() { return m_status & 0x20; }
|
||||
BOOL isShipRide() { return m_status & 0x40; }
|
||||
BOOL isPlayerFind() { return m_status & 0x80; }
|
||||
void offNoCarryAction() { m_status &= ~0x01; }
|
||||
void offTact() { m_status &= ~0x02; }
|
||||
void offTactCorrect() { m_status &= ~0x04; }
|
||||
void offTactCancel() { m_status &= ~0x08; }
|
||||
void offMusic() { m_status &= ~0x10; }
|
||||
void offNut() { m_status &= ~0x20; }
|
||||
void offShipRide() { m_status &= ~0x40; }
|
||||
void offPlayerFind() { m_status &= ~0x80; }
|
||||
void noCarryAction() { m_status |= 0x01; }
|
||||
void onTact() { m_status |= 0x02; }
|
||||
void onTactCorrect() { m_status |= 0x04; }
|
||||
void onTactCancel() { m_status |= 0x08; }
|
||||
void onMusic() { m_status |= 0x10; }
|
||||
void onNut() { m_status |= 0x20; }
|
||||
void onShipRide() { m_status |= 0x40; }
|
||||
void onPlayerFind() { m_status |= 0x80; }
|
||||
void restartPoint(s16 point) {
|
||||
setPointRestart(point, 1);
|
||||
setWaitNpcAction(NULL);
|
||||
}
|
||||
|
||||
static bool m_playerRoom;
|
||||
static bool m_flying;
|
||||
static s16 m_flyingTimer;
|
||||
static u16 m_status;
|
||||
|
||||
static bool isFlying() { return m_flying; }
|
||||
|
||||
static s16 getMaxFlyingTimer();
|
||||
static bool isPlayerRoom() { return m_playerRoom; }
|
||||
|
||||
s16 getFlyingTimer() { return m_flyingTimer; }
|
||||
void setFlyingTimer(s16 time) { m_flyingTimer = time; }
|
||||
static bool isFlying() { return m_flying; }
|
||||
void onFlying() { m_flying = true; }
|
||||
void offFlying() { m_flying = false; }
|
||||
static bool isPlayerRoom() { return m_playerRoom; }
|
||||
void onPlayerRoom() { m_playerRoom = true; }
|
||||
void offPlayerRoom() { m_playerRoom = false; }
|
||||
|
||||
daNpc_Cb1_c() {
|
||||
m8DB = 0xFF;
|
||||
}
|
||||
~daNpc_Cb1_c();
|
||||
void isTagCheckOK();
|
||||
void setMessageAnimation(unsigned char);
|
||||
BOOL isTagCheckOK();
|
||||
void setMessageAnimation(u8);
|
||||
cPhs_State create();
|
||||
void createHeap();
|
||||
void setAction(int (daNpc_Cb1_c::**)(void*), int (daNpc_Cb1_c::*)(void*), void*);
|
||||
BOOL createHeap();
|
||||
BOOL setAction(ActionFunc_t*, ActionFunc_t, void*);
|
||||
void setWaitAction(void*);
|
||||
void setWaitNpcAction(void*);
|
||||
void npcAction(void*);
|
||||
void setNpcAction(int (daNpc_Cb1_c::*)(void*), void*);
|
||||
void setNpcAction(ActionFunc_t, void*);
|
||||
void playerAction(void*);
|
||||
void setPlayerAction(int (daNpc_Cb1_c::*)(void*), void*);
|
||||
void getStickAngY();
|
||||
void calcStickPos(short, cXyz*);
|
||||
void flyCheck();
|
||||
void setPlayerAction(ActionFunc_t, void*);
|
||||
s16 getStickAngY();
|
||||
int calcStickPos(s16, cXyz*);
|
||||
BOOL flyCheck();
|
||||
void checkLanding();
|
||||
void breaking();
|
||||
void flyAction(int, float, short, int);
|
||||
void walkAction(float, float, short);
|
||||
BOOL flyAction(BOOL, f32, s16, BOOL);
|
||||
BOOL walkAction(f32, f32, s16);
|
||||
void returnLinkPlayer();
|
||||
void isFlyAction();
|
||||
void sowCheck();
|
||||
void shipRideCheck();
|
||||
void eventProc();
|
||||
void evCheckDisp(int);
|
||||
BOOL isFlyAction();
|
||||
BOOL sowCheck();
|
||||
BOOL shipRideCheck();
|
||||
BOOL eventProc();
|
||||
BOOL evCheckDisp(int);
|
||||
void evInitWait(int);
|
||||
void evActWait(int);
|
||||
BOOL evActWait(int);
|
||||
void evInitMsgSet(int);
|
||||
void evActMsgSet(int);
|
||||
BOOL evActMsgSet(int);
|
||||
void evInitMsgEnd(int);
|
||||
void evActMsgEnd(int);
|
||||
BOOL evActMsgEnd(int);
|
||||
void evInitMovePos(int);
|
||||
void evActMovePos(int);
|
||||
BOOL evActMovePos(int);
|
||||
void evInitOffsetLink(int);
|
||||
void evActOffsetLink(int);
|
||||
BOOL evActOffsetLink(int);
|
||||
void evInitWalk(int);
|
||||
void evActWalk(int);
|
||||
BOOL evActWalk(int);
|
||||
void evInitToLink(int);
|
||||
void evActToLink(int);
|
||||
BOOL evActToLink(int);
|
||||
void evInitTact(int);
|
||||
void evActTact(int);
|
||||
BOOL evActTact(int);
|
||||
void evInitCelloPlay(int);
|
||||
void evActCelloPlay(int);
|
||||
BOOL evActCelloPlay(int);
|
||||
void evInitTurn(int);
|
||||
void evActTurn(int);
|
||||
BOOL evActTurn(int);
|
||||
void evInitSow(int);
|
||||
void evActSow(int);
|
||||
BOOL evActSow(int);
|
||||
void evInitSetAnm(int);
|
||||
void evActSetAnm(int);
|
||||
BOOL evActSetAnm(int);
|
||||
void evInitSetGoal(int);
|
||||
void evActSetGoal(int);
|
||||
BOOL evActSetGoal(int);
|
||||
void evInitWarp(int);
|
||||
void evActWarp(int);
|
||||
BOOL evActWarp(int);
|
||||
void evInitEnd(int);
|
||||
void evActEnd(int);
|
||||
void getAnmType(int);
|
||||
void initTalk();
|
||||
void execTalk(int);
|
||||
void waitNpcAction(void*);
|
||||
void talkNpcAction(void*);
|
||||
void carryNpcAction(void*);
|
||||
void flyNpcAction(void*);
|
||||
void routeAngCheck(cXyz&, short*);
|
||||
void routeWallCheck(cXyz&, cXyz&, short*);
|
||||
void checkForwardGroundY(short);
|
||||
void checkWallJump(short);
|
||||
void chkWallHit();
|
||||
void routeCheck(float, short*);
|
||||
void searchNpcAction(void*);
|
||||
void hitNpcAction(void*);
|
||||
void jumpNpcAction(void*);
|
||||
void rescueNpcAction(void*);
|
||||
void musicNpcAction(void*);
|
||||
void shipNpcAction(void*);
|
||||
void waitPlayerAction(void*);
|
||||
void walkPlayerAction(void*);
|
||||
void hitPlayerAction(void*);
|
||||
void jumpPlayerAction(void*);
|
||||
void flyPlayerAction(void*);
|
||||
void carryPlayerAction(void*);
|
||||
void calcFlyingTimer();
|
||||
void initAnm(signed char, int);
|
||||
BOOL evActEnd(int);
|
||||
u8 getAnmType(int);
|
||||
BOOL initTalk();
|
||||
BOOL execTalk(BOOL);
|
||||
BOOL waitNpcAction(void*);
|
||||
BOOL talkNpcAction(void*);
|
||||
BOOL carryNpcAction(void*);
|
||||
BOOL flyNpcAction(void*);
|
||||
void routeAngCheck(cXyz&, s16*);
|
||||
void routeWallCheck(cXyz&, cXyz&, s16*);
|
||||
f32 checkForwardGroundY(s16);
|
||||
f32 checkWallJump(s16);
|
||||
BOOL chkWallHit();
|
||||
BOOL routeCheck(f32, s16*);
|
||||
BOOL searchNpcAction(void*);
|
||||
BOOL hitNpcAction(void*);
|
||||
BOOL jumpNpcAction(void*);
|
||||
BOOL rescueNpcAction(void*);
|
||||
BOOL musicNpcAction(void*);
|
||||
BOOL shipNpcAction(void*);
|
||||
BOOL waitPlayerAction(void*);
|
||||
BOOL walkPlayerAction(void*);
|
||||
BOOL hitPlayerAction(void*);
|
||||
BOOL jumpPlayerAction(void*);
|
||||
BOOL flyPlayerAction(void*);
|
||||
BOOL carryPlayerAction(void*);
|
||||
BOOL calcFlyingTimer();
|
||||
void initAnm(s8, BOOL);
|
||||
void musicPlay();
|
||||
void musicStop();
|
||||
void setAnm(unsigned char);
|
||||
BOOL setAnm(u8);
|
||||
void playAnm();
|
||||
void chkAttention(float, long);
|
||||
BOOL chkAttention(f32, s32);
|
||||
void carryCheck();
|
||||
void eventOrder();
|
||||
void checkOrder();
|
||||
void checkCommandTalk();
|
||||
void next_msgStatus(unsigned long*);
|
||||
void getMsg();
|
||||
BOOL checkCommandTalk();
|
||||
u16 next_msgStatus(u32*);
|
||||
u32 getMsg();
|
||||
void setCollision();
|
||||
void lookBack(int);
|
||||
void lookBack(BOOL);
|
||||
void setBaseMtx();
|
||||
void init();
|
||||
BOOL init();
|
||||
BOOL draw();
|
||||
BOOL execute();
|
||||
|
||||
public:
|
||||
/* 0x4EC */ request_of_phase_process_class m4EC;
|
||||
/* 0x4F4 */ mDoExt_McaMorf* mMcaMorf;
|
||||
/* 0x4F8 */ u8 m4F8[0x4FC - 0x4F8];
|
||||
private:
|
||||
/* 0x4EC */ request_of_phase_process_class mPhs;
|
||||
/* 0x4F4 */ mDoExt_McaMorf* mpMorf;
|
||||
/* 0x4F8 */ u32 mShadowId;
|
||||
/* 0x4FC */ J3DModel* mpStickModel;
|
||||
/* 0x500 */ J3DModel* mpCelloModel;
|
||||
/* 0x504 */ J3DModel* mpFaceModel;
|
||||
@@ -185,40 +211,172 @@ public:
|
||||
/* 0x50C */ J3DModel* mpNutModel;
|
||||
/* 0x510 */ mDoExt_bckAnm mPropellerBckAnim;
|
||||
/* 0x520 */ mDoExt_bckAnm mNutBckAnim;
|
||||
/* 0x530 */ dBgS_AcchCir mAcchCir1;
|
||||
/* 0x570 */ dBgS_AcchCir mAcchCir2;
|
||||
/* 0x5B0 */ u8 m5B0[0x5EC - 0x5B0];
|
||||
/* 0x5EC */ dCcD_GObjInf m5EC;
|
||||
/* 0x6E4 */ u8 m6E4[0x7DC - 0x6E4];
|
||||
/* 0x7DC */ cXyz m7DC;
|
||||
/* 0x7E8 */ cXyz m7E8;
|
||||
/* 0x7F4 */ u8 m7F4[0x8D2 - 0x7F4];
|
||||
/* 0x8D2 */ u8 mBackboneIdx;
|
||||
/* 0x8D3 */ u8 mArmRendJointIdx;
|
||||
/* 0x8D4 */ u8 mArmL2JointIdx;
|
||||
/* 0x8D5 */ u8 mNutJointIdx;
|
||||
/* 0x8D6 */ u8 mCenterJointIdx;
|
||||
/* 0x8D7 */ u8 m8D7[0x8DD - 0x8D7];
|
||||
/* 0x8DD */ u8 m8DD;
|
||||
/* 0x8DE */ u8 m8DE[0x8E0 - 0x8DE];
|
||||
/* 0x530 */ dBgS_AcchCir mAcchCir[2];
|
||||
/* 0x5B0 */ dCcD_Stts mStts;
|
||||
/* 0x5EC */ dCcD_Cyl mCyl;
|
||||
/* 0x71C */ dCcD_Cyl mWindCyl;
|
||||
/* 0x84C */ dNpc_JntCtrl_c mJntCtrl;
|
||||
/* 0x880 */ cXyz mEyePos;
|
||||
/* 0x88C */ cXyz m88C;
|
||||
/* 0x898 */ cXyz mNutPos;
|
||||
/* 0x8A4 */ cXyz mNusSpeed;
|
||||
/* 0x8B0 */ f32 m8B0;
|
||||
/* 0x8B4 */ ActionFunc_t mPlayerAction;
|
||||
/* 0x8C0 */ ActionFunc_t mNpcAction;
|
||||
/* 0x8CC */ u32 mMsgNo;
|
||||
/* 0x8D0 */ s16 m8D0;
|
||||
/* 0x8D2 */ s8 m_backbone_jnt_num;
|
||||
/* 0x8D3 */ s8 m_armRend_jnt_num;
|
||||
/* 0x8D4 */ s8 m_armL2_jnt_num;
|
||||
/* 0x8D5 */ s8 m_nut_jnt_num;
|
||||
/* 0x8D6 */ s8 m_center_jnt_num;
|
||||
/* 0x8D7 */ s8 m8D7;
|
||||
/* 0x8D8 */ s8 m8D8;
|
||||
/* 0x8D9 */ u8 mAttnSetCount;
|
||||
/* 0x8DA */ u8 mHasAttention;
|
||||
/* 0x8DB */ u8 m8DB;
|
||||
/* 0x8DC */ s8 m8DC;
|
||||
/* 0x8DD */ s8 m8DD;
|
||||
/* 0x8DE */ u8 m8DE;
|
||||
/* 0x8DF */ u8 m8DF;
|
||||
/* 0x8E0 */ u8 m8E0;
|
||||
/* 0x8E1 */ u8 m8E1;
|
||||
/* 0x8E1 */ s8 m8E1;
|
||||
/* 0x8E2 */ u8 m8E2;
|
||||
/* 0x8E3 */ u8 m8E3[0x8FC - 0x8E3];
|
||||
/* 0x8E3 */ s8 m8E3;
|
||||
/* 0x8E4 */ s16 mEventIdx[5];
|
||||
/* 0x8EE */ s16 m8EE;
|
||||
/* 0x8F0 */ s8 m8F0;
|
||||
/* 0x8F1 */ s8 m8F1;
|
||||
/* 0x8F2 */ s8 m8F2;
|
||||
/* 0x8F3 */ u8 m8F3;
|
||||
/* 0x8F4 */ s16 m8F4;
|
||||
/* 0x8F6 */ s16 m8F6;
|
||||
/* 0x8F8 */ s16 m8F8;
|
||||
/* 0x8FA */ s16 m8FA;
|
||||
/* 0x8FC */ f32 m8FC;
|
||||
/* 0x900 */ f32 m900;
|
||||
/* 0x904 */ u8 m904[0x910 - 0x904];
|
||||
/* 0x904 */ cXyz m904;
|
||||
/* 0x910 */ cXyz m910;
|
||||
/* 0x91C */ cXyz m91C;
|
||||
/* 0x928 */ cBgS_PolyInfo m928;
|
||||
/* 0x928 */ cBgS_PolyInfo mPolyInfo;
|
||||
|
||||
enum {
|
||||
ANM_00 = 0x00,
|
||||
ANM_01 = 0x01,
|
||||
ANM_02 = 0x02,
|
||||
ANM_03 = 0x03,
|
||||
ANM_04 = 0x04,
|
||||
ANM_05 = 0x05,
|
||||
ANM_06 = 0x06,
|
||||
ANM_07 = 0x07,
|
||||
ANM_08 = 0x08,
|
||||
ANM_09 = 0x09,
|
||||
ANM_0A = 0x0A,
|
||||
ANM_0B = 0x0B,
|
||||
ANM_0C = 0x0C,
|
||||
ANM_0D = 0x0D,
|
||||
ANM_0E = 0x0E,
|
||||
ANM_0F = 0x0F,
|
||||
ANM_10 = 0x10,
|
||||
ANM_11 = 0x11,
|
||||
ANM_12 = 0x12,
|
||||
ANM_13 = 0x13,
|
||||
ANM_14 = 0x14,
|
||||
ANM_15 = 0x15,
|
||||
ANM_16 = 0x16,
|
||||
ANM_17 = 0x17
|
||||
};
|
||||
|
||||
class AnmData {
|
||||
public:
|
||||
/* 0x00 */ s8 mAnmFileIdx;
|
||||
/* 0x01 */ u8 mLoopMode;
|
||||
/* 0x02 */ s8 field_0x02;
|
||||
/* 0x03 */ s8 mSpeed;
|
||||
/* 0x04 */ s8 field_0x04;
|
||||
/* 0x05 */ s8 field_0x05;
|
||||
}; // Size: 0x06
|
||||
|
||||
static AnmData anmTblData[];
|
||||
static s8 anmPrmData[];
|
||||
|
||||
typedef void(daNpc_Cb1_c::*ev_init_func_t)(int);
|
||||
typedef BOOL(daNpc_Cb1_c::*ev_run_func_t)(int);
|
||||
struct mode_entry_t {
|
||||
ev_init_func_t init;
|
||||
ev_run_func_t run;
|
||||
};
|
||||
|
||||
static mode_entry_t m_evProcTbl[];
|
||||
};
|
||||
|
||||
class daNpc_Cb1_HIO_c {
|
||||
class daNpc_Cb1_HIO_c : public JORReflexible {
|
||||
public:
|
||||
daNpc_Cb1_HIO_c();
|
||||
virtual ~daNpc_Cb1_HIO_c() {}
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
};
|
||||
/* 0x04 */ s8 mNo;
|
||||
/* 0x08 */ dNpc_HIO_c mNpc;
|
||||
/* 0x30 */ f32 field_0x30;
|
||||
/* 0x34 */ f32 mPlayerChaseDistance; // distance from the player before Makar starts following him (while called)
|
||||
/* 0x38 */ f32 mChaseDistScale; // scales the distance to the player to get a target speed
|
||||
/* 0x3C */ f32 mMaxWalkSpeed;
|
||||
/* 0x40 */ f32 mMinWalkSpeed;
|
||||
/* 0x44 */ f32 mForwardAccel;
|
||||
/* 0x48 */ f32 mDecelScale; // scales speed to get deceleration in daNpc_Cb1_c::breaking()
|
||||
/* 0x4C */ f32 mMaxDecel;
|
||||
/* 0x50 */ f32 mDecel;
|
||||
/* 0x54 */ f32 mWalkAnmSpeedScale;
|
||||
/* 0x58 */ f32 mMaxWalkAnmSpeed;
|
||||
/* 0x5C */ f32 mNpcFlyLaunchSpeedF; // forward speed when Makar jumps to start flying
|
||||
/* 0x60 */ f32 mNpcFlyLaunchSpeedY;
|
||||
/* 0x64 */ f32 field_0x64;
|
||||
/* 0x68 */ f32 mHitSpeedScaleF; // scales forward speed when Makar is hit
|
||||
/* 0x6C */ f32 mHitSpeedScaleY; // scales forward speed to get y recoil speed when Makar is hit
|
||||
/* 0x70 */ f32 field_0x70;
|
||||
/* 0x74 */ f32 field_0x74;
|
||||
/* 0x78 */ f32 field_0x78;
|
||||
/* 0x7C */ f32 field_0x7C;
|
||||
/* 0x80 */ f32 field_0x80;
|
||||
/* 0x84 */ f32 field_0x84;
|
||||
/* 0x88 */ f32 mStickWalkSpeedScale; // scales main stick value to get a target speed
|
||||
/* 0x8C */ f32 field_0x8C;
|
||||
/* 0x90 */ f32 field_0x90;
|
||||
/* 0x94 */ u8 field_0x94[4];
|
||||
/* 0x98 */ f32 field_0x98;
|
||||
/* 0x9C */ f32 field_0x9C;
|
||||
/* 0xA0 */ f32 field_0xA0;
|
||||
/* 0xA4 */ f32 field_0xA4;
|
||||
/* 0xA8 */ f32 field_0xA8;
|
||||
/* 0xAC */ f32 mStickFlySpeedScale;
|
||||
/* 0xB0 */ f32 field_0xB0;
|
||||
/* 0xB4 */ f32 field_0xB4;
|
||||
/* 0xB8 */ f32 field_0xB8;
|
||||
/* 0xBC */ f32 mFlyLaunchSpeedY;
|
||||
/* 0xC0 */ f32 field_0xC0;
|
||||
/* 0xC4 */ f32 field_0xC4;
|
||||
/* 0xC8 */ s16 field_0xC8;
|
||||
/* 0xCA */ s16 mPlayerFlyTimer;
|
||||
/* 0xCC */ s16 field_0xCC;
|
||||
/* 0xCE */ s16 field_0xCE;
|
||||
/* 0xD0 */ s16 field_0xD0;
|
||||
/* 0xD2 */ s16 field_0xD2;
|
||||
/* 0xD4 */ s16 field_0xD4;
|
||||
/* 0xD6 */ s16 field_0xD6;
|
||||
/* 0xD8 */ s16 field_0xD8;
|
||||
/* 0xDA */ s16 field_0xDA;
|
||||
/* 0xDC */ s16 mNpcFlyTimer;
|
||||
/* 0xDE */ s16 field_0xDE;
|
||||
/* 0xE0 */ s16 field_0xE0;
|
||||
/* 0xE2 */ s16 field_0xE2;
|
||||
/* 0xE4 */ s16 field_0xE4;
|
||||
/* 0xE6 */ s16 field_0xE6;
|
||||
/* 0xE8 */ s16 field_0xE8;
|
||||
/* 0xEA */ s16 field_0xEA;
|
||||
/* 0xEC */ s16 field_0xEC;
|
||||
/* 0xEE */ u8 mDamageTimer;
|
||||
/* 0xEF */ u8 field_0xEF;
|
||||
}; // Size: 0xF0
|
||||
|
||||
#endif /* D_A_NPC_CB1_H */
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace daObjVmc {
|
||||
PRM_SWSAVE_S = 8,
|
||||
};
|
||||
|
||||
void daObjVmc_ChangeGrow() {}
|
||||
void daObjVmc_ChangeGrow() { mHasTree = true; }
|
||||
s32 prm_get_swSave() const { return daObj::PrmAbstract(this, PRM_SWSAVE_W, PRM_SWSAVE_S); }
|
||||
|
||||
static BOOL solidHeapCB(fopAc_ac_c*);
|
||||
|
||||
@@ -1818,7 +1818,7 @@ public:
|
||||
void getIceParticleBtk() {}
|
||||
void getIceWaterParticleBtk() {}
|
||||
void getShadowID() const {}
|
||||
void npcStartRestartRoom() {}
|
||||
void npcStartRestartRoom() { startRestartRoom(5, 0xC9, -1.0f, 0); }
|
||||
void setDaiokutaEnd() {}
|
||||
void setWhirlId(fpc_ProcID id) { mWhirlId = id; }
|
||||
void decrementBombCnt() {
|
||||
|
||||
@@ -146,7 +146,7 @@ public:
|
||||
void getCraneRipplePosY() const {}
|
||||
void getCraneRipplePosZ() const {}
|
||||
void getCraneTop() {}
|
||||
void getHeadJntMtx() {}
|
||||
MtxP getHeadJntMtx() { return mpHeadAnm->getModel()->getAnmMtx(8); }
|
||||
f32 getJumpRate() { return mJumpRate; }
|
||||
u8 getPart() const { return mPart; }
|
||||
s16 getRopeCnt() const { return mRopeCnt; }
|
||||
@@ -168,7 +168,7 @@ public:
|
||||
mWhirlActor = NULL;
|
||||
}
|
||||
|
||||
void onCb1Ride() {}
|
||||
void onCb1Ride() { mStateFlag |= 0x40000000; }
|
||||
void onCraneHookFlg() {}
|
||||
void onCrashFlg() {}
|
||||
void onFantomGanonBattle() {}
|
||||
@@ -180,7 +180,10 @@ public:
|
||||
void onTornadoFlg(u32 tornadoID) { mTornadoID = tornadoID; }
|
||||
void onWhirlFlg(u32, s16) {}
|
||||
void onWhirlFlgDirect(u32, s16) {}
|
||||
void setAtnPos(const cXyz*) {}
|
||||
void setAtnPos(const cXyz* pPos) {
|
||||
onStateFlg(daSFLG_UNK1000000_e);
|
||||
m1068 = *pPos;
|
||||
}
|
||||
|
||||
BOOL bodyJointCallBack(int);
|
||||
BOOL cannonJointCallBack(int);
|
||||
|
||||
@@ -3858,13 +3858,15 @@ inline JPABaseEmitter* dComIfGp_particle_setSimpleLand(int code, const cXyz* par
|
||||
return pParticle->setSimpleLand(code, param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8);
|
||||
}
|
||||
|
||||
inline JPABaseEmitter* dComIfGp_particle_setSimpleLand(cBgS_PolyInfo& param_1, const cXyz* pos, const csXyz* angle, f32 param_4, f32 param_5, f32 param_6, dKy_tevstr_c* param_7, int* param_8, int param_9) {
|
||||
dPa_control_c* pParticle = g_dComIfG_gameInfo.play.getParticle();
|
||||
return pParticle->setSimpleLand(param_1, pos, angle, param_4, param_5, param_6, param_7, param_8, param_9);
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_forceDeleteEmitter(JPABaseEmitter* emitter) {
|
||||
dPa_control_c::forceDeleteEmitter(emitter);
|
||||
}
|
||||
|
||||
// TODO
|
||||
inline void dComIfGp_particle_setSimpleLand(cBgS_PolyInfo&, const cXyz*, const csXyz*, f32, f32, f32, dKy_tevstr_c*, int*, int) {}
|
||||
|
||||
inline JPABaseEmitter* dComIfGp_particle_setBombSmoke(u16 particleID, const cXyz* pos,
|
||||
const csXyz* angle = NULL, const cXyz* scale = NULL,
|
||||
u8 alpha = 0xFF) {
|
||||
|
||||
+1
-1
@@ -161,7 +161,7 @@ enum {
|
||||
/* 0x99 */ DSNAP_TYPE_DR,
|
||||
/* 0x9A */ DSNAP_TYPE_UNK9A,
|
||||
/* 0x9B */ DSNAP_TYPE_UNK9B,
|
||||
/* 0x9C */ DSNAP_TYPE_UNK9C,
|
||||
/* 0x9C */ DSNAP_TYPE_CB1,
|
||||
/* 0x9D */ DSNAP_TYPE_UNK9D,
|
||||
/* 0x9E */ DSNAP_TYPE_UNK9E,
|
||||
/* 0x9F */ DSNAP_TYPE_UNK9F,
|
||||
|
||||
@@ -647,6 +647,14 @@ inline s32 fopAcM_seenPlayerAngleY(fopAc_ac_c* actor) {
|
||||
return fopAcM_seenActorAngleY(actor, (fopAc_ac_c*)dComIfGp_getPlayer(0));
|
||||
}
|
||||
|
||||
inline s32 fopAcM_toActorShapeAngleY(fopAc_ac_c* actor1, fopAc_ac_c* actor2) {
|
||||
return actor1->shape_angle.y - actor2->shape_angle.y;
|
||||
}
|
||||
|
||||
inline s32 fopAcM_toPlayerShapeAngleY(fopAc_ac_c* actor) {
|
||||
return fopAcM_toActorShapeAngleY(actor, (fopAc_ac_c*)dComIfGp_getPlayer(0));
|
||||
}
|
||||
|
||||
inline f32 fopAcM_searchPlayerDistanceY(fopAc_ac_c* actor) {
|
||||
return fopAcM_searchActorDistanceY(actor, (fopAc_ac_c*)dComIfGp_getPlayer(0));
|
||||
}
|
||||
|
||||
+2666
-189
File diff suppressed because it is too large
Load Diff
@@ -2239,7 +2239,7 @@ BOOL daNpc_Os_c::execute() {
|
||||
m4E8 = 0;
|
||||
}
|
||||
else {
|
||||
daPy_getPlayerLinkActorClass()->startRestartRoom(5, 0xC9, -1.0f, 0);
|
||||
daPy_getPlayerLinkActorClass()->npcStartRestartRoom();
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -2247,7 +2247,7 @@ BOOL daNpc_Os_c::execute() {
|
||||
}
|
||||
|
||||
if(mAcch.ChkWaterIn()) {
|
||||
daPy_getPlayerLinkActorClass()->startRestartRoom(5, 0xC9, -1.0f, 0);
|
||||
daPy_getPlayerLinkActorClass()->npcStartRestartRoom();
|
||||
|
||||
if(!isWaterHit()) {
|
||||
onWaterHit();
|
||||
|
||||
Reference in New Issue
Block a user