mirror of
https://github.com/zeldaret/tp
synced 2026-07-11 15:28:38 -04:00
d_a_crod almost fully OK (#270)
This commit is contained in:
@@ -42,6 +42,7 @@ enum cCcD_ObjAtType {
|
||||
/* 0x00200000 */ AT_TYPE_HEAVY_BOOTS = (1 << 21),
|
||||
/* 0x00400000 */ AT_TYPE_IRON_BALL = (1 << 22),
|
||||
/* 0x00800000 */ AT_TYPE_COPY_ROD = (1 << 23),
|
||||
/* 0x01000000 */ AT_TYPE_1000000 = (1 << 24),
|
||||
/* 0x04000000 */ AT_TYPE_MASTER_SWORD = (1 << 26),
|
||||
/* 0x08000000 */ AT_TYPE_MIDNA_LOCK = (1 << 27),
|
||||
/* 0x10000000 */ AT_TYPE_10000000 = (1 << 28),
|
||||
|
||||
+15
-1
@@ -1234,7 +1234,7 @@ public:
|
||||
}; // Size: 0x10
|
||||
|
||||
/* 8009D87C */ bool getE3Zhint();
|
||||
/* 8009D884 */ char* getAlinkArcName();
|
||||
/* 8009D884 */ static char* getAlinkArcName();
|
||||
/* 8009DA60 */ static bool checkStageName(char const*);
|
||||
/* 8009DA98 */ void tgHitCallback(fopAc_ac_c*, dCcD_GObjInf*, dCcD_GObjInf*);
|
||||
/* 8009DB64 */ void coHitCallback(fopAc_ac_c*, dCcD_GObjInf*);
|
||||
@@ -3228,6 +3228,18 @@ public:
|
||||
return var_r4;
|
||||
}
|
||||
|
||||
MtxP getCopyRodMtx() {
|
||||
if (mHeldItemModel != NULL) {
|
||||
return mHeldItemModel->i_getAnmMtx(0);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
cXyz* getRootPosP() { return &field_0x3834; }
|
||||
const cXyz& getBoomerangCatchPos() const { return field_0x3534; }
|
||||
f32 getCopyRodBallDisFlyMax() const { return mSearchBallScale; }
|
||||
|
||||
void clearIronBallActor() { field_0x173c.SetActor(this); }
|
||||
BOOL checkCanoeRideOwn(const fopAc_ac_c* param_0) const { return checkCanoeRide() && mRideAcKeep.getActorConst() == param_0; }
|
||||
bool checkWolfDashMode() const { return i_checkNoResetFlg1(FLG1_DASH_MODE); }
|
||||
|
||||
@@ -3243,6 +3255,8 @@ public:
|
||||
|
||||
bool checkGrabGlide() { return checkGrabRooster(); }
|
||||
|
||||
bool checkCopyRodRevive() const { return mProcID == PROC_COPY_ROD_REVIVE; }
|
||||
|
||||
BOOL i_checkRideOn() const { return mRideStatus != 0; }
|
||||
|
||||
bool checkSwimDashMode() const { return i_checkNoResetFlg1(FLG1_DASH_MODE); }
|
||||
|
||||
@@ -98,7 +98,10 @@ private:
|
||||
|
||||
class daPy_actorKeep_c {
|
||||
public:
|
||||
daPy_actorKeep_c();
|
||||
daPy_actorKeep_c() {
|
||||
clearData();
|
||||
}
|
||||
|
||||
void setActor();
|
||||
void setData(fopAc_ac_c*);
|
||||
void clearData();
|
||||
@@ -192,8 +195,8 @@ public:
|
||||
/* 0x0590 */ u32 mEndResetFlg2;
|
||||
/* 0x0594 */ f32 field_0x594;
|
||||
/* 0x0598 */ f32 field_0x598;
|
||||
/* 0x059C */ s16 mLookAngleY;
|
||||
/* 0x059E */ s16 field_0x59e;
|
||||
/* 0x059C */ s16 mBodyAngleX;
|
||||
/* 0x059E */ s16 mBodyAngleY;
|
||||
/* 0x05A0 */ u8 field_0x5a0[0x4];
|
||||
/* 0x05A4 */ cXyz mHeadTopPos;
|
||||
/* 0x05B0 */ cXyz mItemPos;
|
||||
@@ -708,6 +711,9 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
s16 getBodyAngleX() const { return mBodyAngleX; }
|
||||
s16 getBodyAngleY() const { return mBodyAngleY; }
|
||||
|
||||
// some functions use these function as an inline
|
||||
// is there a better way to handle this?
|
||||
int i_checkNoResetFlg0(daPy_FLG0 pFlag) const { return mNoResetFlg0 & pFlag; }
|
||||
|
||||
@@ -559,5 +559,6 @@ void dKy_GxFog_tevstr_set(dKy_tevstr_c*);
|
||||
void dKy_plight_set(LIGHT_INFLUENCE* param_0);
|
||||
void dKy_tevstr_init(dKy_tevstr_c* param_0, s8 param_1, u8 param_2);
|
||||
SND_INFLUENCE* dKy_Sound_get();
|
||||
void dKy_plight_cut(LIGHT_INFLUENCE* param_0);
|
||||
|
||||
#endif /* D_KANKYO_D_KANKYO_H */
|
||||
|
||||
@@ -129,7 +129,7 @@ public:
|
||||
} mSphere;
|
||||
} mCull;
|
||||
/* 0x520 */ f32 mCullSizeFar;
|
||||
/* 0x524 */ J3DModel* field_0x524;
|
||||
/* 0x524 */ J3DModel* model;
|
||||
/* 0x528 */ dJntCol_c* mJntCol;
|
||||
/* 0x52C */ f32 speedF;
|
||||
/* 0x530 */ f32 mGravity;
|
||||
|
||||
@@ -20,7 +20,8 @@ public:
|
||||
f32 getFrame() { return mFrameCtrl.getFrame(); }
|
||||
f32 getEndFrame() { return mFrameCtrl.getEnd(); }
|
||||
void setFrame(f32 frame) { mFrameCtrl.setFrame(frame); }
|
||||
|
||||
void setPlayMode(int i_mode) { mFrameCtrl.setAttribute(i_mode); }
|
||||
void setLoopFrame(f32 i_frame) { mFrameCtrl.setLoop(i_frame); }
|
||||
bool isStop() {
|
||||
bool stopped = true;
|
||||
if (!mFrameCtrl.checkState(1) && mFrameCtrl.getRate() != 0.0f) {
|
||||
|
||||
@@ -3,15 +3,13 @@
|
||||
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/cc/d_cc_d.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class daCrod_c : public fopAc_ac_c {
|
||||
public:
|
||||
/* 80141A94 */ void setControllActorData();
|
||||
/* 804A2E38 */ void createHeap();
|
||||
/* 804A2F18 */ void create();
|
||||
/* 804A2E38 */ int createHeap();
|
||||
/* 804A2F18 */ int create();
|
||||
/* 804A3304 */ ~daCrod_c();
|
||||
/* 804A34B0 */ void setRoomInfo();
|
||||
/* 804A34B4 */ void setMatrix();
|
||||
@@ -19,8 +17,8 @@ public:
|
||||
/* 804A3580 */ void setBckAnm(u16);
|
||||
/* 804A35FC */ void setReturn();
|
||||
/* 804A365C */ void setLightPower();
|
||||
/* 804A36D8 */ void execute();
|
||||
/* 804A3FD4 */ void draw();
|
||||
/* 804A36D8 */ int execute();
|
||||
/* 804A3FD4 */ int draw();
|
||||
|
||||
static fopAc_ac_c* makeIronBallDummy(fopAc_ac_c* p_actor) {
|
||||
return (fopAc_ac_c*)fopAcM_fastCreate(0x2F4, 6, &p_actor->current.pos,
|
||||
@@ -28,26 +26,29 @@ public:
|
||||
NULL);
|
||||
}
|
||||
|
||||
fopAc_ac_c* getControllActor() { return mControllAcKeep.getActor(); }
|
||||
fopAc_ac_c* getControllActor() { return mControllActorKeep.getActor(); }
|
||||
|
||||
fopAc_ac_c* getCameraActor() { return mCameraAcKeep.getActor(); }
|
||||
fopAc_ac_c* getCameraActor() { return mCameraActorKeep.getActor(); }
|
||||
|
||||
void setThrow() { fopAcM_SetParam(this, 2); }
|
||||
|
||||
static f32 getFlyInitY() { return 40.0f; }
|
||||
static f32 getFlyInitZ() { return 50.0f; }
|
||||
|
||||
private:
|
||||
/* 0x568 */ J3DModel* field_568;
|
||||
/* 0x56C */ mDoExt_bckAnm mBckAnm;
|
||||
/* 0x588 */ J3DAnmTevRegKey* field_0x588;
|
||||
/* 0x58C */ J3DAnmTextureSRTKey* field_0x58c;
|
||||
/* 0x590 */ dCcD_Stts field_0x590;
|
||||
/* 0x5CC */ dCcD_Cps field_0x5cc;
|
||||
/* 0x710 */ LIGHT_INFLUENCE field_0x710;
|
||||
/* 0x568 */ J3DModel* mpBallModel;
|
||||
/* 0x56C */ mDoExt_bckAnm mBck;
|
||||
/* 0x588 */ J3DAnmTevRegKey* mpBallBrk;
|
||||
/* 0x58C */ J3DAnmTextureSRTKey* mpBallBtk;
|
||||
/* 0x590 */ dCcD_Stts mCcStts;
|
||||
/* 0x5CC */ dCcD_Cps mAtCps;
|
||||
/* 0x710 */ LIGHT_INFLUENCE mLight;
|
||||
/* 0x730 */ u8 field_0x730;
|
||||
/* 0x731 */ u8 field_0x731;
|
||||
/* 0x732 */ u8 field_0x732;
|
||||
/* 0x734 */ cXyz field_0x734;
|
||||
/* 0x740 */ daPy_actorKeep_c mControllAcKeep;
|
||||
/* 0x748 */ daPy_actorKeep_c mCameraAcKeep;
|
||||
/* 0x740 */ daPy_actorKeep_c mControllActorKeep;
|
||||
/* 0x748 */ daPy_actorKeep_c mCameraActorKeep;
|
||||
}; // Size: 0x750
|
||||
|
||||
#endif /* D_A_CROD_H */
|
||||
|
||||
@@ -1,6 +1,62 @@
|
||||
#ifndef D_A_CSTAF_H
|
||||
#define D_A_CSTAF_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "d/bg/d_bg_s_movebg_actor.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
|
||||
class daCstaF_c : public dBgS_MoveBgActor {
|
||||
public:
|
||||
/* 804DDB48 */ void checkCoverModel();
|
||||
/* 804DDBB4 */ void create();
|
||||
/* 804DE2F8 */ ~daCstaF_c();
|
||||
/* 804DE558 */ void setRoomInfo();
|
||||
/* 804DE5F0 */ void setMatrix();
|
||||
/* 804DE698 */ void posMove();
|
||||
/* 804DEB60 */ void setCollision();
|
||||
/* 804DEC14 */ void setAnime();
|
||||
/* 804DF0D8 */ void initBrk(u16);
|
||||
/* 804DF150 */ void initStopBrkBtk();
|
||||
/* 804DF1A4 */ void initStartBrkBtk();
|
||||
|
||||
/* 804DD978 */ virtual int CreateHeap();
|
||||
/* 804DF37C */ virtual int Execute(f32 (**)[3][4]);
|
||||
/* 804DF6E4 */ virtual int Draw();
|
||||
|
||||
cXyz& getBallPos() { return mBallPos; }
|
||||
|
||||
static u8 const m_bckIdxTable[16];
|
||||
|
||||
private:
|
||||
/* 0x5A0 */ const char* mResName;
|
||||
/* 0x5A4 */ request_of_phase_process_class mPhase;
|
||||
/* 0x5AC */ J3DModel* field_0x5ac;
|
||||
/* 0x5B0 */ mDoExt_McaMorfSO* field_0x5b0;
|
||||
/* 0x5B4 */ J3DModel* field_0x5b4;
|
||||
/* 0x5B8 */ J3DAnmTextureSRTKey* m_coverBtk;
|
||||
/* 0x5BC */ J3DAnmTevRegKey* m_coverBrk;
|
||||
/* 0x5C0 */ mDoExt_btkAnm field_0x5c0;
|
||||
/* 0x5D8 */ mDoExt_brkAnm field_0x5d8;
|
||||
/* 0x5F0 */ dBgS_AcchCir mAcchCir[4];
|
||||
/* 0x6F0 */ dBgS_StatueAcch mAcch;
|
||||
/* 0x8C8 */ dCcD_Stts mCcStts;
|
||||
/* 0x904 */ dCcD_Cyl mCylCc;
|
||||
/* 0xA40 */ Z2Creature mSound;
|
||||
/* 0xAD0 */ dPaPo_c field_0xad0;
|
||||
/* 0xB08 */ s8 mReverb;
|
||||
/* 0xB09 */ u8 field_0xb09;
|
||||
/* 0xB0A */ u8 field_0xb0a;
|
||||
/* 0xB0B */ u8 field_0xb0b;
|
||||
/* 0xB0C */ u8 field_0xb0c;
|
||||
/* 0xB0D */ u8 mIsPlayerRide;
|
||||
/* 0xB0E */ u8 field_0xb0e;
|
||||
/* 0xB0F */ u8 field_0xb0f;
|
||||
/* 0xB10 */ u8 mCoverVanishFlg;
|
||||
/* 0xB12 */ s16 field_0xb12;
|
||||
/* 0xB14 */ u8 field_0xb14[4];
|
||||
/* 0xB18 */ u32 mShadowKey;
|
||||
/* 0xB1C */ f32 field_0xb1c;
|
||||
/* 0xB20 */ cXyz field_0xb20;
|
||||
/* 0xB2C */ cXyz mBallPos;
|
||||
};
|
||||
|
||||
#endif /* D_A_CSTAF_H */
|
||||
|
||||
@@ -27,6 +27,8 @@ public:
|
||||
/* 80667438 */ void draw();
|
||||
|
||||
bool checkNotSmallType() const { return mType == 1; }
|
||||
bool checkBossType() const { return mType == 4 || mType == 3; }
|
||||
cXyz& getBallPos() { return mBallPos; }
|
||||
|
||||
static u8 const m_bckIdxTable[70 + 2 /* padding */];
|
||||
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
#ifndef D_A_DO_H
|
||||
#define D_A_DO_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
#include "Z2AudioLib/Z2SoundObject.h"
|
||||
#include "d/a/d_a_item_static.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/bg/d_bg_s_acch.h"
|
||||
#include "d/cc/d_cc_d.h"
|
||||
#include "d/msg/d_msg_flow.h"
|
||||
#include "d/particle/d_particle.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
#include "Z2AudioLib/Z2SoundObject.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
|
||||
enum daDo_Anm {
|
||||
ANM_BULBUL = 6,
|
||||
@@ -71,20 +71,20 @@ struct daDo_HIO_tmp {
|
||||
|
||||
class daDo_HIO_c {
|
||||
public:
|
||||
/* 80667D4C */ daDo_HIO_c();
|
||||
/* 8066ED40 */ virtual ~daDo_HIO_c();
|
||||
/* 80667D4C */ daDo_HIO_c();
|
||||
/* 8066ED40 */ virtual ~daDo_HIO_c(); // should be inlined
|
||||
|
||||
public:
|
||||
/* 0x04 */ s8 field_0x04;
|
||||
/* 0x05 */ u8 field_0x05[3];
|
||||
/* 0x08 */ f32 mBaseSize;
|
||||
/* 0x0C */ f32 mWalkSpeed;
|
||||
/* 0x10 */ f32 mRunSpeed;
|
||||
/* 0x14 */ f32 mSwimSpeed;
|
||||
/* 0x18 */ f32 mPlayerRecogniztionDist;
|
||||
/* 0x1C */ u8 field_0x1c;
|
||||
/* 0x1D */ u8 mSwimming;
|
||||
/* 0x1E */ u16 mWaterHuntAnimType;
|
||||
/* 0x04 */ s8 field_0x04;
|
||||
/* 0x05 */ u8 field_0x05[3];
|
||||
/* 0x08 */ f32 mBaseSize;
|
||||
/* 0x0C */ f32 mWalkSpeed;
|
||||
/* 0x10 */ f32 mRunSpeed;
|
||||
/* 0x14 */ f32 mSwimSpeed;
|
||||
/* 0x18 */ f32 mPlayerRecogniztionDist;
|
||||
/* 0x1C */ u8 field_0x1c;
|
||||
/* 0x1D */ u8 mSwimming;
|
||||
/* 0x1E */ u16 mWaterHuntAnimType;
|
||||
};
|
||||
|
||||
class do_class : public fopEn_enemy_c {
|
||||
@@ -95,7 +95,7 @@ public:
|
||||
/* 0x5B6 */ u8 field_0x5b6;
|
||||
/* 0x5B7 */ u8 field_0x5b7;
|
||||
/* 0x5B8 */ cXyz field_0x5b8;
|
||||
/* 0x5C4 */ u8 field_0x5c4[4];
|
||||
/* 0x5C4 */ u8 field_0x5c4[4];
|
||||
/* 0x5C8 */ f32 mDistFromPlayer;
|
||||
/* 0x5CC */ s16 mAngleYFromPlayer;
|
||||
/* 0x5CE */ u8 field_0x5ce[2];
|
||||
@@ -114,7 +114,7 @@ public:
|
||||
/* 0x5F0 */ s16 field_0x5f0;
|
||||
/* 0x5F2 */ s16 mAction;
|
||||
/* 0x5F4 */ s16 field_0x5f4;
|
||||
/* 0x5F6 */ s16 mStayStatus; // probably a better name for this
|
||||
/* 0x5F6 */ s16 mStayStatus; // probably a better name for this
|
||||
/* 0x5F8 */ u32 mShadowKey;
|
||||
/* 0x5FC */ s16 field_0x5fc[4];
|
||||
/* 0x604 */ u16 field_0x604;
|
||||
@@ -125,7 +125,7 @@ public:
|
||||
/* 0x614 */ s16 field_0x614;
|
||||
/* 0x616 */ u8 field_0x616;
|
||||
/* 0x617 */ u8 field_0x617;
|
||||
/* 0x618 */ cXyz mUnkPos; // something to do with the dog's eye position
|
||||
/* 0x618 */ cXyz mUnkPos; // something to do with the dog's eye position
|
||||
/* 0x624 */ s16 field_0x624;
|
||||
/* 0x626 */ csXyz field_0x626;
|
||||
/* 0x62C */ u8 field_0x62c[18];
|
||||
@@ -136,7 +136,7 @@ public:
|
||||
/* 0x650 */ f32 field_0x650;
|
||||
/* 0x654 */ s16 field_0x654;
|
||||
/* 0x656 */ s16 field_0x656;
|
||||
/* 0x658 */ f32 mEyePosYDistFromPlayer;
|
||||
/* 0x658 */ f32 mEyePosYDistFromPlayer;
|
||||
/* 0x65C */ f32 field_0x65c;
|
||||
/* 0x660 */ s16 field_0x660;
|
||||
/* 0x662 */ u8 field_0x662[2];
|
||||
@@ -159,7 +159,7 @@ public:
|
||||
/* 0x6B8 */ u8 field_0x6b8;
|
||||
/* 0x6B9 */ u8 field_0x6b9[3];
|
||||
/* 0x6BC */ dBgS_AcchCir mBgS_AcchCir;
|
||||
/* 0x6FC */ dBgS_ObjAcch mBgS_Acch;
|
||||
/* 0x6FC */ dBgS_ObjAcch mBgS_Acch;
|
||||
/* 0x8D4 */ dCcD_Stts mStts;
|
||||
/* 0x910 */ dCcD_Sph mCcSph1;
|
||||
/* 0xA48 */ dCcD_Sph mCcSph2;
|
||||
@@ -192,7 +192,6 @@ public:
|
||||
|
||||
public:
|
||||
/* 8066EAE4 */ do_class();
|
||||
|
||||
};
|
||||
|
||||
#endif /* D_A_DO_H */
|
||||
|
||||
Reference in New Issue
Block a user