most of d_a_alink_wolf done / some misc (#1993)

* wip on alink_wolf

* setup procvar unions

* most of d_a_alink_wolf done + some misc
This commit is contained in:
TakaRikka
2023-11-27 03:14:06 -08:00
committed by GitHub
parent 6b0df1f30d
commit 9ff0f5029f
81 changed files with 7557 additions and 2081 deletions
+1
View File
@@ -180,6 +180,7 @@ public:
f32 getMorfFrame() const { return mMorfFrame; }
f32 getBlendRate() { return field_0x594[1].getRatio(); }
u16 getAnmIdx(int i_idx) const { return mAnmIdx[i_idx]; }
int callHorse(const cXyz* param_0) { return (this->*mpCallHorseFn)(param_0); }
daHoZelda_c* i_getZeldaActor() { return (daHoZelda_c*)mZeldaActorKeep.getActor(); }
+102 -1
View File
@@ -1,6 +1,107 @@
#ifndef D_A_KAGO_H
#define D_A_KAGO_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/d_path.h"
class daKago_c : public fopAc_ac_c {
public:
/* 80849660 */ void getBckName(int);
/* 808496F0 */ void setBck(int, u8, f32, f32);
/* 80849798 */ void checkBck(int);
/* 808497F8 */ void draw();
/* 80849980 */ void executeBalloonMenu();
/* 80849BA8 */ void checkGroundHeight(cXyz, f32*);
/* 8084A070 */ void checkRoofHeight(cXyz);
/* 8084A210 */ void checkMoveHeight();
/* 8084A2A8 */ void checkSizeBg();
/* 8084A6DC */ bool getBeforeGroundHeight(u8);
/* 8084A6E4 */ void demo_skip(int);
/* 8084AA64 */ void DemoSkipCallBack(void*, int);
/* 8084AA98 */ void setActionMode(int, int);
/* 8084AAAC */ void setMidnaTagPos();
/* 8084AB40 */ void setMidnaRideOn();
/* 8084AB8C */ void setPlayerRideOn();
/* 8084ABC8 */ void setRideOff();
/* 8084AC2C */ void searchNearPassPoint();
/* 8084AE78 */ void setSceneChange(int);
/* 8084AF40 */ void createBalloonScore();
/* 8084AFB0 */ void startBalloonScore();
/* 8084B024 */ void endBalloonScore();
/* 8084B088 */ void checkNextPath(cXyz);
/* 8084B108 */ void checkHeight();
/* 8084B134 */ void checkYaguraPos(cXyz);
/* 8084B1E0 */ void checkWallHitFall(int);
/* 8084B56C */ void checkAttackStart();
/* 8084B5DC */ void getValueY(f32);
/* 8084B6F4 */ void getValueX(f32);
/* 8084B718 */ void getValueAbsX(f32);
/* 8084B744 */ void flySpeedCalcLockOn();
/* 8084B96C */ void flySpeedCalc(s16, int);
/* 8084C078 */ void checkFlySceneChange();
/* 8084C178 */ void setFlyAway();
/* 8084C204 */ void setFlyAnime();
/* 8084C2CC */ void executeFly();
/* 8084C8FC */ void executeStagger();
/* 8084D108 */ void executeWait();
/* 8084D354 */ void calcAttackMove(int);
/* 8084D50C */ void executeAttack();
/* 8084DA18 */ void calcCircleCamera(int);
/* 8084DBFC */ void executeEvent();
/* 8084DD18 */ void initPerchDemo();
/* 8084E2D4 */ void executePerchDemo();
/* 8084F09C */ void PerchDemoAwayForward();
/* 8084FA58 */ void executePerch();
/* 8084FAA8 */ void executeEvent2();
/* 8084FB50 */ void initFirstDemo();
/* 80850384 */ void executeFirstDemo();
/* 808513E4 */ void executePerch2();
/* 80851434 */ void executeLandingLakeHairia();
/* 80851DEC */ void executeLandingBoartHouse();
/* 808525B0 */ void executeLanding();
/* 80852610 */ void moveDemoFly();
/* 80852D90 */ void setFlyEffect();
/* 80852F14 */ void setDashEffect();
/* 808530A4 */ void setDamageEffect();
/* 80853228 */ void setDashBlurEffect(int);
/* 80853460 */ void setWallHitEffect(cXyz, int);
/* 8085350C */ void setSibukiEffect();
/* 8085366C */ void setDashSibukiEffect();
/* 80853730 */ void setWaterFallEffect();
/* 8085392C */ void setFlySound();
/* 80853BCC */ void action();
/* 80853EF0 */ void mtx_set();
/* 80853FB0 */ void cc_set();
/* 80854058 */ void execute();
/* 80854190 */ void _delete();
/* 80854220 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 808542DC */ void JointCallBack(J3DJoint*, int);
/* 80854328 */ void CreateHeap();
/* 808544D8 */ void create();
void setEvent() {
field_0x6e1 = 0;
field_0x740 = 2;
field_0x744 = 0;
}
void setKagoPath(u8 i_pathNo) {
if (i_pathNo != 0xFF) {
field_0x76c = dPath_GetRoomPath(i_pathNo, fopAcM_GetRoomNo(this));
}
}
MtxP getLegR3Mtx() { return mLegR3Mtx; }
/* 0x568 */ u8 field_0x568[0x620 - 0x568];
/* 0x620 */ Mtx mLegR3Mtx;
/* 0x650 */ u8 field_0x650[0x6E1 - 0x650];
/* 0x6E1 */ u8 field_0x6e1;
/* 0x6E2 */ u8 field_0x6E2[0x740 - 0x6E2];
/* 0x740 */ int field_0x740;
/* 0x744 */ int field_0x744;
/* 0x748 */ u8 field_0x748[0x76C - 0x748];
/* 0x76C */ dPath* field_0x76c;
};
#endif /* D_A_KAGO_H */
+3 -1
View File
@@ -166,10 +166,12 @@ public:
inline static BOOL checkMidnaRealBody();
bool i_checkMidnaTired() {
static bool i_checkMidnaTired() {
return dComIfGs_isTransformLV(3) && !i_dComIfGs_isEventBit(0x1E08);
}
void resetRatBody() {}
static u8 const m_texDataTable[84];
static u8 const m_anmDataTable[636];
+67 -1
View File
@@ -1,6 +1,72 @@
#ifndef D_A_E_PM_H
#define D_A_E_PM_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
class daE_PM_c : public fopEn_enemy_c {
public:
/* 80741FB4 */ void DemoSkip(int);
/* 80742004 */ void DemoSkipCallBack(void*, int);
/* 80742038 */ void CreateHeap();
/* 80742448 */ void initCcCylinder();
/* 807424C0 */ void setCcCylinder();
/* 80742508 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 80742600 */ void Particle_Set(u16, cXyz);
/* 80742674 */ void SetAnm(int, int, f32, f32);
/* 80742810 */ void Yazirushi();
/* 807428A8 */ void SearchRndP();
/* 80742958 */ void SearchFarP();
/* 80742C94 */ void SearchNearP();
/* 80742E1C */ void SearchNextPos();
/* 80742FB4 */ void SetGakkiEffect();
/* 807430C4 */ void CameraSet();
/* 80743210 */ void SetStopingCam();
/* 80743294 */ void SetStopCam(cXyz, f32, f32, s16);
/* 807433E8 */ void SetMoveCam2(f32, f32);
/* 80743524 */ void SetMoveCam(f32, f32);
/* 80743600 */ void SetReleaseCam();
/* 807436A4 */ void Ap_StartAction();
/* 80743D8C */ void Ap_CreateAction();
/* 807444F0 */ void Ap_EscapeAction();
/* 80744790 */ void AppearAction();
/* 80744878 */ void DemoBeforeEscape();
/* 80744DA0 */ void DemoAfterEscape();
/* 807453F4 */ void DemoMoveAction();
/* 80745438 */ void WaitAction();
/* 807455F4 */ void GroundCheck();
/* 80745970 */ void EscapeAction();
/* 80745C44 */ void DeathAction();
/* 80745DBC */ void Action();
/* 80745ED0 */ void DemoBossStart2();
/* 80746624 */ void DemoBossStart();
/* 80747194 */ void BossEscapeAction();
/* 807476A0 */ void BossDamageAction();
/* 80747F38 */ void BossWaitAction();
/* 807480A4 */ void BossDeathAction();
/* 80748964 */ void BossAction();
/* 80748B18 */ void Execute();
/* 80748D74 */ void StartAction();
/* 8074954C */ void GakkiLoopAction(cXyz, f32);
/* 807499C0 */ void DemoCreateAction();
/* 80749C0C */ void CreateAction();
/* 80749D9C */ void CreateChk();
/* 80749ED0 */ void LampAction();
/* 8074A14C */ void DamageAction();
/* 8074A210 */ void At_Check();
/* 8074A3DC */ void ObjHit();
/* 8074A644 */ void EyeMove();
/* 8074A6CC */ void Draw();
/* 8074AAC0 */ void Delete();
/* 8074AB28 */ void setBaseMtx();
/* 8074ABA8 */ void setGakkiBaseMtx();
/* 8074AC10 */ void setLampBaseMtx();
/* 8074AEF8 */ void SkipChk();
/* 8074B4DC */ void Create();
void AppearSet() { mAppear = true; }
/* 0x5AC */ u8 field_0x5ac[0x619 - 0x5AC];
/* 0x619 */ bool mAppear;
};
#endif /* D_A_E_PM_H */
+39 -134
View File
@@ -1,141 +1,46 @@
#ifndef D_A_E_YC_H
#define D_A_E_YC_H
#include "dolphin/types.h"
// #include "f_op/f_op_actor.h"
// #include "Z2AudioLib/Z2Creature.h"
// #include "d/com/d_com_inf_game.h"
// #include "d/bg/d_bg_s_acch.h"
// #include "d/cc/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
// struct dCcD_GStts {
// /* 80083760 */ dCcD_GStts();
// /* 80083830 */ void Move();
// };
class e_yc_class : public fopEn_enemy_c {
public:
MtxP getLegR3Mtx() { return field_0x5B8->getModel()->i_getAnmMtx(28); }
// struct dCcD_Stts {
// /* 80083860 */ void Init(int, int, fopAc_ac_c*);
// };
// struct dCcD_SrcSph {};
// struct dCcD_Sph {
// /* 80084A34 */ void Set(dCcD_SrcSph const&);
// };
// struct cCcD_Obj {};
// struct dCcD_GObjInf {
// /* 80083A28 */ dCcD_GObjInf();
// /* 80084460 */ int ChkTgHit();
// /* 800844F8 */ cCcD_Obj* GetTgHitObj();
// };
// struct dBgS_PolyPassChk {
// /* 80078E68 */ void SetObj();
// };
// struct dBgS_ObjAcch {
// /* 807F274C */ ~dBgS_ObjAcch();
// };
// struct dBgS_AcchCir {
// /* 80075EAC */ dBgS_AcchCir();
// /* 80075F58 */ void SetWall(f32, f32);
// };
// struct dBgS {};
// struct dBgS_Acch {
// /* 80075F94 */ ~dBgS_Acch();
// /* 800760A0 */ dBgS_Acch();
// /* 80076248 */ void Set(cXyz*, cXyz*, fopAc_ac_c*, int, dBgS_AcchCir*, cXyz*, csXyz*, csXyz*);
// /* 80076AAC */ void CrrPos(dBgS&);
// };
// struct cM3dGSph {
// /* 8026F648 */ void SetC(cXyz const&);
// /* 8026F708 */ void SetR(f32);
// /* 807F26BC */ ~cM3dGSph();
// };
// struct cM3dGAab {
// /* 807F2704 */ ~cM3dGAab();
// };
// struct cCcS {
// /* 80264BA8 */ void Set(cCcD_Obj*);
// };
// struct request_of_phase_process_class {};
// struct mDoMtx_stack_c {
// /* 8000CE38 */ void scaleM(f32, f32, f32);
// static u8 now[48];
// };
// struct daE_YC_HIO_c {
// /* 807EFECC */ daE_YC_HIO_c();
// /* 807F27BC */ ~daE_YC_HIO_c();
// };
// struct dVibration_c {
// /* 8006FA24 */ void StartShock(int, int, cXyz);
// };
// struct dPa_levelEcallBack {};
// struct dPa_control_c {
// struct level_c {
// /* 8004B918 */ void getEmitter(u32);
// };
// /* 8004C218 */ void setHitMark(u16, fopAc_ac_c*, cXyz const*, csXyz const*, cXyz const*, u32);
// /* 8004D4CC */ void set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*,
// cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*,
// _GXColor const*, cXyz const*, f32);
// /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*,
// u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*,
// cXyz const*, f32);
// };
// class e_yc_class : public fopAc_ac_c {
// public:
// /* 0x568 */ u8 field_0x568[80];
// /* 0x5B8 */ int field_0x5B8;
// /* 0x5BC */ Z2CreatureEnemy mEnemy;
// /* 0x660 */ int mAnm;
// /* 0x664 */ int field_0x664;
// /* 0x668 */ u8 field_0x668[6];
// /* 0x66E */ s16 mCurrentAction;
// /* 0x670 */ s16 field_0x670;
// /* 0x672 */ u8 field_0x672[2];
// /* 0x674 */ f32 field_0x674;
// /* 0x678 */ f32 field_0x678;
// /* 0x67C */ f32 field_0x67C;
// /* 0x680 */ s16 field_0x680;
// /* 0x682 */ u8 field_0x682[2];
// /* 0x684 */ f32 field_0x684;
// /* 0x688 */ u32 field_0x688;
// /* 0x68C */ u8 field_0x68C[4];
// /* 0x690 */ f32 field_0x690;
// /* 0x694 */ u8 field_0x694[28];
// /* 0x69C */ f32 field_0x69C;
// /* 0x6A0 */ s16 field_0x6A0;
// /* 0x6A2 */ s16 field_0x6A2;
// /* 0x6A4 */ s16 field_0x6A4;
// /* 0x6A6 */ s16 field_0x6A6;
// /* 0x6A8 */ s16 field_0x6A8;
// /* 0x6AA */ s16 field_0x6AA;
// /* 0x6AC */ void* field_0x6AC;
// /* 0x6B0 */ u8 field_0x6B0[72];
// /* 0x6F4 */ dBgS_Acch mBgS_Acch;
// /* 0x8CC */ u8 field_0x8CC[28];
// /* 0x8E8 */ dCcD_GStts mCcD_GStts;
// /* 0x908 */ dCcD_GObjInf mCcD_GObjInf;
// /* 0xA0C */ u8 field_0xA0C[364];
// /* 0xB78 */ cCcD_Obj* mpTgHitObj;
// };
/* 0x5AC */ u8 field_0x5ac[0x5B8 - 0x5AC];
/* 0x5B8 */ mDoExt_McaMorfSO* field_0x5B8;
/* 0x5BC */ Z2CreatureEnemy mEnemy;
/* 0x660 */ int mAnm;
/* 0x664 */ int field_0x664;
/* 0x668 */ u8 field_0x668[6];
/* 0x66E */ s16 mCurrentAction;
/* 0x670 */ s16 field_0x670;
/* 0x672 */ u8 field_0x672[2];
/* 0x674 */ f32 field_0x674;
/* 0x678 */ f32 field_0x678;
/* 0x67C */ f32 field_0x67C;
/* 0x680 */ s16 field_0x680;
/* 0x682 */ u8 field_0x682[2];
/* 0x684 */ f32 field_0x684;
/* 0x688 */ u32 field_0x688;
/* 0x68C */ u8 field_0x68C[4];
/* 0x690 */ f32 field_0x690;
/* 0x694 */ u8 field_0x694[28];
/* 0x69C */ f32 field_0x69C;
/* 0x6A0 */ s16 field_0x6A0;
/* 0x6A2 */ s16 field_0x6A2;
/* 0x6A4 */ s16 field_0x6A4;
/* 0x6A6 */ s16 field_0x6A6;
/* 0x6A8 */ s16 field_0x6A8;
/* 0x6AA */ s16 field_0x6AA;
/* 0x6AC */ void* field_0x6AC;
/* 0x6B0 */ u8 field_0x6B0[72];
/* 0x6F4 */ dBgS_Acch mBgS_Acch;
/* 0x8CC */ u8 field_0x8CC[28];
/* 0x8E8 */ dCcD_GStts mCcD_GStts;
/* 0x908 */ dCcD_GObjInf mCcD_GObjInf;
/* 0xA0C */ u8 field_0xA0C[364];
/* 0xB78 */ cCcD_Obj* mpTgHitObj;
};
#endif /* D_A_E_YC_H */
@@ -1,6 +1,27 @@
#ifndef D_A_KYTAG03_H
#define D_A_KYTAG03_H
#include "dolphin/types.h"
#include "d/d_path.h"
#include "f_op/f_op_actor_mng.h"
class kytag03_class : public fopAc_ac_c {
public:
/* 0x568 */ dPath* mpPath;
/* 0x56C */ JPABaseEmitter* mpEmitter;
/* 0x570 */ f32 field_0x570;
/* 0x574 */ f32 field_0x574;
/* 0x578 */ f32 field_0x578;
/* 0x57C */ f32 field_0x57c;
/* 0x580 */ int field_0x580;
/* 0x584 */ u8 field_0x584;
/* 0x585 */ u8 field_0x585;
/* 0x586 */ u8 field_0x586;
/* 0x587 */ u8 field_0x587;
/* 0x588 */ u8 field_0x588;
/* 0x589 */ u8 field_0x589;
/* 0x58A */ u16 field_0x58a;
/* 0x58C */ u8 field_0x58C[0x58E - 0x58C];
/* 0x58E */ u8 field_0x58e;
};
#endif /* D_A_KYTAG03_H */
@@ -1,6 +1,66 @@
#ifndef D_A_NPC_GWOLF_H
#define D_A_NPC_GWOLF_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/a/d_a_npc.h"
class daNpc_GWolf_c : public daNpcF_c {
public:
/* 809F30AC */ daNpc_GWolf_c();
/* 809F34C0 */ void create();
/* 809F37C0 */ void CreateHeap();
/* 809F3BD8 */ void Delete();
/* 809F3C0C */ void Execute();
/* 809F3C2C */ void Draw();
/* 809F3CBC */ void draw(int, int, f32, GXColorS10*, int);
/* 809F3FB8 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 809F41EC */ void createHeapCallBack(fopAc_ac_c*);
/* 809F420C */ void ctrlJointCallBack(J3DJoint*, int);
/* 809F4E38 */ void getTypeFromParam();
/* 809F4E84 */ void getModeFromParam();
/* 809F4F00 */ void isDelete();
/* 809F4FF4 */ void reset();
/* 809F520C */ void playMotion();
/* 809F55D0 */ void chkAction(int (daNpc_GWolf_c::*)(void*));
/* 809F55FC */ void setAction(int (daNpc_GWolf_c::*)(void*));
/* 809F56A4 */ void selectAction();
/* 809F5770 */ void doNormalAction(int);
/* 809F5884 */ void doEvent();
/* 809F5B60 */ void setLookMode(int);
/* 809F5B84 */ void lookat();
/* 809F5E0C */ void ECut_attackWarp(int);
/* 809F6548 */ void ECut_attackWarpHorse(int);
/* 809F6BFC */ void ECut_howlingSessionA(int);
/* 809F70A8 */ void meetGWolfSkip();
/* 809F70EC */ void ECut_meetGWolf(int);
/* 809F71E0 */ void wait(void*);
/* 809F75C0 */ void waitHowling(void*);
/* 809F775C */ void waitBrave(void*);
/* 809F77E4 */ void talk(void*);
/* 809F797C */ void test(void*);
/* 809F7A30 */ void getGroundSlope(dBgS_ObjAcch&, s16);
/* 809F32C0 */ ~daNpc_GWolf_c();
/* 809F4258 */ void setParam();
/* 809F4390 */ BOOL main();
/* 809F4558 */ BOOL ctrlBtk();
/* 809F4638 */ void adjustShapeAngle();
/* 809F4698 */ void setAttnPos();
/* 809F4BB0 */ bool setExpressionAnm(int, bool);
/* 809F4BB8 */ void setExpression(int, f32);
/* 809F4BBC */ void setMotionAnm(int, f32);
/* 809F4DE8 */ void setMotion(int, f32, int);
/* 809F4E2C */ BOOL drawDbgInfo();
/* 809F4E34 */ void drawOtherMdls();
void setHowlingEndFlag() { field_0xe1c = 2; }
void setHowlingFlag() { field_0xe1c = 1; }
static void* mEvtCutNameList[5];
static u8 mEvtCutList[60];
/* 0xB48 */ u8 field_0xb48[0xE1C - 0xB48];
/* 0xE1C */ u8 field_0xe1c;
};
#endif /* D_A_NPC_GWOLF_H */
+16 -5
View File
@@ -1,14 +1,16 @@
#ifndef D_A_NPC_TK_H
#define D_A_NPC_TK_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/d_path.h"
struct cXyz;
class fopAc_ac_c;
class J3DJoint;
class J3DModel;
struct daNPC_TK_c {
class daNPC_TK_c : public fopAc_ac_c {
public:
/* 80B01498 */ void setBck(int, u8, f32, f32);
/* 80B0153C */ void checkBck(int);
/* 80B01598 */ void draw();
@@ -59,10 +61,19 @@ struct daNPC_TK_c {
/* 80B0BBC8 */ void CreateHeap();
/* 80B0BD24 */ void create();
void setBump() { mBump |= 4; }
void setBump() { mFlags |= 4; }
void setEventWolf() { mFlags |= 0x80; }
u8 field_0x0[0x6BE];
u16 mBump;
void setHawkPath(u8 i_pathNo) {
if (i_pathNo != 0xFF) {
field_0x6c8 = dPath_GetRoomPath(i_pathNo, fopAcM_GetRoomNo(this));
}
}
/* 0x568 */ u8 field_0x568[0x6BE - 0x568];
/* 0x6BE */ u16 mFlags;
/* 0x6C0 */ u8 field_0x6c0[0x6C8 - 0x6C0];
/* 0x6C8 */ dPath* field_0x6c8;
};
#endif /* D_A_NPC_TK_H */
@@ -1,6 +1,53 @@
#ifndef D_A_OBJ_CROPE_H
#define D_A_OBJ_CROPE_H
#include "dolphin/types.h"
#include "d/cc/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
class daObjCrope_c : public fopAc_ac_c {
public:
/* 80BCCCD8 */ void createHeap();
/* 80BCCD64 */ void create();
/* 80BCD524 */ ~daObjCrope_c();
/* 80BCD6C4 */ void setNormalRopePos();
/* 80BCD9EC */ void setRideRopePos();
/* 80BCE4FC */ void execute();
/* 80BCE9BC */ void draw();
cXyz* getRopeStartPos() { return mLineMat.getPos(0); }
cXyz* getRopeEndPos() { return &mLineMat.getPos(0)[99]; }
cXyz* getRopeVec() { return &mRopeVec; }
cXyz& getPlayerNearPos() { return mPlayerNearPos; }
void onOutFlg() { mOutFlg = true; }
void setFrontJoint(int i_jointNo) { mFrontJoint = i_jointNo; }
void setBackJoint(int i_jointNo) { mBackJoint = i_jointNo; }
f32 getStartRate(const cXyz* param_0) {
return field_0x714 ? field_0x724 * (param_0->x - getRopeStartPos()->x) :
field_0x724 * (param_0->z - getRopeStartPos()->z);
}
void rideKeep() {
setFrontJoint(-2);
setBackJoint(-1);
}
/* 0x0568 */ request_of_phase_process_class mPhase;
/* 0x0570 */ dCcD_Stts mCcStts;
/* 0x05AC */ dCcD_Sph mCollider;
/* 0x06E4 */ Mtx field_0x6e4;
/* 0x0714 */ u8 field_0x714;
/* 0x0715 */ u8 mOutFlg;
/* 0x0716 */ u8 mCoCancelTimer;
/* 0x0718 */ int mFrontJoint;
/* 0x071C */ int mBackJoint;
/* 0x0720 */ f32 field_0x720;
/* 0x0724 */ f32 field_0x724;
/* 0x0728 */ cXyz mRopeVec;
/* 0x0734 */ cXyz mPlayerNearPos;
/* 0x0740 */ cXyz field_0x740[98];
/* 0x0BD8 */ cXyz field_0xbd8[98];
/* 0x1070 */ mDoExt_3DlineMat1_c mLineMat;
};
#endif /* D_A_OBJ_CROPE_H */
@@ -1,6 +1,114 @@
#ifndef D_A_OBJ_SEKIZOA_H
#define D_A_OBJ_SEKIZOA_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/a/d_a_npc.h"
class daObj_Sekizoa_c : public daNpcT_c {
public:
/* 80CCE34C */ ~daObj_Sekizoa_c();
/* 80CCE570 */ void create();
/* 80CCE8B0 */ void CreateHeap();
/* 80CCEC54 */ void Delete();
/* 80CCEC88 */ void Execute();
/* 80CCECA8 */ void Draw();
/* 80CCED74 */ void createHeapCallBack(fopAc_ac_c*);
/* 80CCED94 */ void srchSekizoa(void*, void*);
/* 80CCEE30 */ void getSekizoaP(int);
/* 80CCEFA4 */ void getKMsgTagP();
/* 80CCF03C */ void isDelete();
/* 80CCF138 */ void reset();
/* 80CCF708 */ void srchActors();
/* 80CD04FC */ void setYariAnm(int, int, f32);
/* 80CD0A84 */ void selectAction();
/* 80CD0B08 */ void chkAction(int (daObj_Sekizoa_c::*)(void*));
/* 80CD0B34 */ void setAction(int (daObj_Sekizoa_c::*)(void*));
/* 80CD0BDC */ void checkMoveDirection();
/* 80CD0DE8 */ void getWaitMotionNo();
/* 80CD0E30 */ void getGameMotionNo();
/* 80CD0E78 */ void getNoJumpMotionNo();
/* 80CD0EAC */ void getHitMotionNo();
/* 80CD0EE0 */ void getStepMotionNo();
/* 80CD0F14 */ void jump();
/* 80CD14D8 */ void landing();
/* 80CD1688 */ void cutStart(int);
/* 80CD2708 */ void cutTurn(int);
/* 80CD2908 */ void cutJump(int);
/* 80CD2B64 */ void cutGoal(int);
/* 80CD376C */ void cutExit(int);
/* 80CD38F0 */ void cutFree(int);
/* 80CD3BD8 */ void cutExtinction(int);
/* 80CD3F08 */ void wait(void*);
/* 80CD425C */ void puzzle(void*);
/* 80CD45B0 */ void talk(void*);
/* 80CD5A40 */ daObj_Sekizoa_c(daNpcT_faceMotionAnmData_c const*, daNpcT_motionAnmData_c const*,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
daNpcT_evtData_c const*, char**);
/* 80CD5B84 */ void chkGoal();
/* 801312C8 */ void setWolfHowling();
/* 80CD5B7C */ s32 getBackboneJointNo();
/* 80CD5B74 */ s32 getHeadJointNo();
/* 80CCF358 */ void afterJntAnm(int);
/* 80CCF3E4 */ void setParam();
/* 80CCF6BC */ bool checkChangeEvt();
/* 80CCF9A8 */ bool evtTalk();
/* 80CCFAA8 */ bool evtCutProc();
/* 80CCF704 */ void setAfterTalkMotion();
/* 80CCFBA0 */ void action();
/* 80CCFD08 */ void beforeMove();
/* 80CCFD80 */ void setAttnPos();
/* 80CD009C */ void setCollision();
/* 80CD03C0 */ int drawDbgInfo();
/* 80CD03C8 */ void drawOtherMdl();
/* 80CD05D0 */ void drawGhost();
/* 80CD06BC */ bool afterSetMotionAnm(int, int, f32, int);
u8 getType() {
int prm = fopAcM_GetParam(this) >> 0x1C;
u8 type;
switch (mSubtype) {
case 0:
switch (prm) {
case 1:
type = 2;
break;
case 2:
type = 4;
break;
case 3:
type = 6;
break;
default:
type = 0;
break;
}
break;
case 1:
switch (prm) {
case 1:
type = 3;
break;
case 2:
type = 5;
break;
default:
type = 1;
break;
}
break;
default:
type = 0;
break;
}
return type;
}
static void* mCutNameList[9];
static u8 mCutList[108];
};
#endif /* D_A_OBJ_SEKIZOA_H */
@@ -1,6 +1,23 @@
#ifndef D_A_OBJ_SMW_STONE_H
#define D_A_OBJ_SMW_STONE_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
class daSmWStone_c : public fopAc_ac_c {
public:
/* 80CDE538 */ daSmWStone_c();
/* 80CDE588 */ ~daSmWStone_c();
/* 80CDE614 */ void create();
/* 80CDE8D8 */ void execute();
/* 80CDE92C */ void draw();
/* 80CDEA2C */ void Delete();
/* 80CDEAA4 */ void exeModeHowl();
/* 80CDEBA0 */ void setModelMtx();
/* 80CDEC04 */ void createHeap();
/* 80CDED30 */ void init();
/* 80CDED9C */ void chkWlfInRange();
int getTuneId() { return 2; }
};
#endif /* D_A_OBJ_SMW_STONE_H */
@@ -1,6 +1,28 @@
#ifndef D_A_OBJ_WIND_STONE_H
#define D_A_OBJ_WIND_STONE_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
class daWindStone_c : public fopAc_ac_c {
public:
/* 80D37A18 */ daWindStone_c();
/* 80D37A68 */ ~daWindStone_c();
/* 80D37AF4 */ void createHeap();
/* 80D37C20 */ void create();
/* 80D37F0C */ void execute();
/* 80D37F6C */ void draw();
/* 80D3806C */ void Delete();
/* 80D3811C */ void setModelMtx();
/* 80D38180 */ void init();
/* 80D381EC */ void chkWlfInRange();
/* 80D38278 */ void chkEveOccur();
/* 80D382C4 */ void exeModeHowl();
/* 80D3835C */ void exeModeMapDisp();
/* 80D383FC */ void chkMapDispMode();
/* 80D384C4 */ void getGoldWolfIdx();
s8 getTuneId() { return fopAcM_GetParamBit(this, 4, 4); }
int getNextSceneId() { return fopAcM_GetParamBit(this, 0, 4); }
};
#endif /* D_A_OBJ_WIND_STONE_H */
@@ -33,7 +33,7 @@ public:
static u8 const M_attr[64];
static u8 ActionTable[72];
u8 getType() { return mSubtype & 0x7F; }
int getType() { return mSubtype & 0x7F; }
u8 getPathID() { return fopAcM_GetParam(this); }
bool isPlayerCorrect() { return (s8)(u8)(fopAcM_GetParam(this) >> 8) > 0; }
@@ -1,6 +1,6 @@
#ifndef D_A_TAG_ATTACK_ITEM_H
#define D_A_TAG_ATTACK_ITEM_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#endif /* D_A_TAG_ATTACK_ITEM_H */
@@ -6,8 +6,10 @@
class daTag_Howl_c : public fopAc_ac_c {
public:
u8 field_0x568;
u8 field_0x569;
/* 0x568 */ s8 mCurveID;
/* 0x569 */ u8 field_0x569;
s8 getCurveID() { return mCurveID; }
/* 8048D958 */ int create();
/* 8048D9BC */ int destroy();
@@ -17,7 +19,6 @@ public:
/* 8048DC1C */ int getParam();
/* 8048DC68 */ u8 getSwitchBit();
/* 8048DCFC */ virtual ~daTag_Howl_c() {}
}; // Size: 0x570
#endif /* D_A_TAG_HOWL_H */
@@ -15,7 +15,7 @@ public:
/* 80D63F74 */ virtual ~daTagWrHowl_c();
u8 getTuneId() { return fopAcM_GetParamBit(this, 4, 4); }
s8 getTuneId() { return fopAcM_GetParamBit(this, 4, 4); }
/* 0x56C */ f32 field_0x56c;
/* 0x570 */ f32 field_0x570;