mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-19 13:24:12 -04:00
Merge pull request #6 from TakaRikka/dcom
setup most of d_com_inf_game / d_a_player structs
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
#ifndef JAZELAUDIO_JAIZELBASIC_H
|
||||
#define JAZELAUDIO_JAIZELBASIC_H
|
||||
|
||||
class JAIZelAnime {
|
||||
public:
|
||||
/* 0x0 */ u8 field_0x0[0x98];
|
||||
};
|
||||
|
||||
#endif /* JAZELAUDIO_JAIZELBASIC_H */
|
||||
@@ -77,6 +77,8 @@ struct cCcD_SrcTriAttr {
|
||||
|
||||
class cCcD_TriAttr : public cCcD_ShapeAttr, public cM3dGTri {
|
||||
public:
|
||||
cCcD_TriAttr() {}
|
||||
|
||||
virtual void CalcAabBox();
|
||||
virtual bool GetNVec(cXyz const&, cXyz*) const;
|
||||
virtual bool CrossAtTg(cCcD_CpsAttr const&, cXyz*) const;
|
||||
|
||||
@@ -20,6 +20,7 @@ public:
|
||||
Vec mB;
|
||||
Vec mC;
|
||||
|
||||
cM3dGTri() {}
|
||||
cM3dGTri(const Vec *pA, const Vec *pB, const Vec *pC);
|
||||
bool cross(const cM3dGCyl*, Vec*) const;
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,180 @@
|
||||
#ifndef D_D_ATTENTION_H
|
||||
#define D_D_ATTENTION_H
|
||||
|
||||
#include "SSystem/SComponent/c_angle.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
|
||||
class fopAc_ac_c;
|
||||
|
||||
class dAttHint_c {
|
||||
public:
|
||||
dAttHint_c() {}
|
||||
u32 getPId(void*);
|
||||
fopAc_ac_c* convPId(unsigned int);
|
||||
int request(fopAc_ac_c*, int);
|
||||
void init();
|
||||
void proc();
|
||||
|
||||
private:
|
||||
/* 0x0 */ u32 mHintActorID;
|
||||
/* 0x4 */ int mPriority;
|
||||
/* 0x8 */ u32 field_0x8;
|
||||
};
|
||||
|
||||
class dAttCatch_c {
|
||||
public:
|
||||
dAttCatch_c() {}
|
||||
fopAc_ac_c* convPId(unsigned int);
|
||||
void init();
|
||||
void proc();
|
||||
void request(fopAc_ac_c*, u8, f32, f32, f32, s16, int);
|
||||
|
||||
fopAc_ac_c* getCatghTarget() { return convPId(mCatghTargetID); }
|
||||
u8 getChangeItem() { return mChangeItem; }
|
||||
|
||||
private:
|
||||
/* 0x00 */ u32 field_0x0;
|
||||
/* 0x04 */ int field_0x4;
|
||||
/* 0x08 */ f32 field_0x8;
|
||||
/* 0x0C */ u8 field_0xc;
|
||||
/* 0x0D */ u8 field_0xd;
|
||||
/* 0x0E */ u8 field_0xe;
|
||||
/* 0x0F */ u8 field_0xf;
|
||||
/* 0x10 */ u32 mCatghTargetID;
|
||||
/* 0x14 */ u8 mChangeItem;
|
||||
}; // Size: 0x18
|
||||
|
||||
class dAttParam_c {
|
||||
public:
|
||||
/* 0x00 */ u16 field_0x00;
|
||||
/* 0x02 */ u8 field_0x02[0x04 - 0x02];
|
||||
/* 0x04 */ f32 field_0x04;
|
||||
/* 0x08 */ f32 field_0x08;
|
||||
/* 0x0C */ f32 field_0x0c;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
|
||||
public:
|
||||
dAttParam_c() {}
|
||||
dAttParam_c(s32);
|
||||
|
||||
virtual ~dAttParam_c();
|
||||
|
||||
/* 0x1C vtable */
|
||||
}; // Size: 0x20
|
||||
|
||||
class dAttLook_c {
|
||||
public:
|
||||
/* 80073CA4 */ fopAc_ac_c* convPId(unsigned int);
|
||||
/* 80073CD4 */ void init();
|
||||
/* 80073CEC */ void proc();
|
||||
/* 80073D08 */ void request(fopAc_ac_c*, f32, f32, f32, s16, int);
|
||||
|
||||
private:
|
||||
u32 field_0x0;
|
||||
u32 field_0x4;
|
||||
f32 field_0x8;
|
||||
u32 mLookTargetID;
|
||||
}; // Size: 0x10
|
||||
|
||||
class dAttList_c {
|
||||
public:
|
||||
fopAc_ac_c* getActor();
|
||||
void setActor(fopAc_ac_c*);
|
||||
|
||||
u32 getPid() { return mActorID; }
|
||||
|
||||
/* 0x0 */ f32 mWeight;
|
||||
/* 0x4 */ f32 mDistance;
|
||||
/* 0x8 */ u32 mType;
|
||||
/* 0xC */ u32 mActorID;
|
||||
}; // Size: 0x10
|
||||
|
||||
class dAttDraw_CallBack_c : public mDoExt_McaMorfCallBack1_c {
|
||||
public:
|
||||
/* 80070178 */ virtual void execute(u16, J3DTransformInfo*);
|
||||
};
|
||||
|
||||
class daPy_lk_c;
|
||||
|
||||
class dAttention_c {
|
||||
public:
|
||||
dAttention_c() {}
|
||||
|
||||
dAttention_c(fopAc_ac_c*, u32);
|
||||
~dAttention_c();
|
||||
|
||||
void GetActionList(s32);
|
||||
void GetLockonList(s32);
|
||||
void getActionBtnB();
|
||||
void getActionBtnXYZ_local(int);
|
||||
void getActionBtnX();
|
||||
void getActionBtnY();
|
||||
void getActionBtnZ();
|
||||
void chkAttMask(u32, u32);
|
||||
void calcWeight(int, fopAc_ac_c*, f32, s16, s16, u32*);
|
||||
void setLList(fopAc_ac_c*, f32, f32, u32);
|
||||
void setAList(fopAc_ac_c*, f32, f32, u32);
|
||||
void initList(u32);
|
||||
void makeList();
|
||||
void SelectAttention(fopAc_ac_c*);
|
||||
void sortList();
|
||||
void stockAttention(u32);
|
||||
void nextAttention(u32);
|
||||
void freeAttention();
|
||||
void chaseAttention();
|
||||
void EnemyDistance(fopAc_ac_c*);
|
||||
void runSoundProc();
|
||||
void runDrawProc();
|
||||
void runDebugDisp0();
|
||||
void runDebugDisp();
|
||||
void judgementButton();
|
||||
void judgementTriggerProc();
|
||||
void judgementLostCheck();
|
||||
void judgementStatusSw(u32);
|
||||
void judgementStatusHd(u32);
|
||||
void Run(u32);
|
||||
void Draw();
|
||||
void LockonTarget(s32);
|
||||
void LockonReleaseDistanse();
|
||||
void LockonTargetPId(s32);
|
||||
void ActionTarget(s32);
|
||||
void LockonTruth();
|
||||
void Lockon();
|
||||
|
||||
public:
|
||||
/* 0x000 */ daPy_lk_c* mpPlayer;
|
||||
/* 0x004 */ int mLockOnTargetBsPcID;
|
||||
/* 0x008 */ dAttDraw_CallBack_c field_0x8;
|
||||
/* 0x00C */ int mPlayerNo;
|
||||
/* 0x010 */ u32 mFlagMask;
|
||||
/* 0x014 */ u8 field_0x014[0x018 - 0x014];
|
||||
/* 0x018 */ u8 mLockOnState;
|
||||
/* 0x019 */ u8 field_0x019;
|
||||
/* 0x01A */ u8 field_0x01a;
|
||||
/* 0x01B */ u8 field_0x01b;
|
||||
/* 0x01C */ s16 field_0x01c;
|
||||
/* 0x01E */ u8 field_0x01E[0x020 - 0x01E];
|
||||
/* 0x020 */ u32 mFlags;
|
||||
/* 0x024 */ JKRHeap* mpHeap;
|
||||
/* 0x028 */ u8 field_0x028;
|
||||
/* 0x029 */ u8 field_0x029[0x054 - 0x029];
|
||||
/* 0x054 */ dAttList_c mLockOnList[8];
|
||||
/* 0x0D4 */ int mLockOnNum;
|
||||
/* 0x0D8 */ int mLockOnOffs;
|
||||
/* 0x0DC */ dAttList_c mActionList[4];
|
||||
/* 0x11C */ int mActionNum;
|
||||
/* 0x120 */ int mActionOffs;
|
||||
/* 0x124 */ dAttHint_c mHint;
|
||||
/* 0x130 */ dAttCatch_c mCatch;
|
||||
/* 0x148 */ dAttLook_c field_0x148;
|
||||
/* 0x158 */ dAttLook_c field_0x158;
|
||||
/* 0x168 */ int mEnemyBsPcId;
|
||||
/* 0x16C */ f32 mEnemyDistance;
|
||||
/* 0x170 */ dAttParam_c mAttParam;
|
||||
}; // Size: 0x190
|
||||
|
||||
STATIC_ASSERT(sizeof(dAttention_c) == 0x190);
|
||||
|
||||
#endif /* D_D_ATTENTION_H */
|
||||
@@ -0,0 +1,208 @@
|
||||
#ifndef D_BG_D_BG_S_ACCH_H
|
||||
#define D_BG_D_BG_S_ACCH_H
|
||||
|
||||
#include "SSystem/SComponent/c_m3d_g_cir.h"
|
||||
#include "SSystem/SComponent/c_m3d_g_cyl.h"
|
||||
#include "SSystem/SComponent/c_m3d_g_lin.h"
|
||||
#include "SSystem/SComponent/c_m3d_g_pla.h"
|
||||
#include "d/d_bg_s_gnd_chk.h"
|
||||
#include "d/d_bg_s_roof_chk.h"
|
||||
#include "d/d_bg_s_wtr_chk.h"
|
||||
#include "SSystem/SComponent/c_sxyz.h"
|
||||
|
||||
class fopAc_ac_c;
|
||||
|
||||
class dBgS_AcchCir : public cBgS_PolyInfo {
|
||||
private:
|
||||
/* 0x10 */ u32 m_flags;
|
||||
/* 0x14 */ cM3dGCir m_cir;
|
||||
/* 0x28 */ f32 m_wall_rr;
|
||||
/* 0x2C */ f32 field_0x2c;
|
||||
/* 0x30 */ f32 m_wall_h;
|
||||
/* 0x34 */ f32 m_wall_r;
|
||||
/* 0x38 */ f32 m_wall_h_direct;
|
||||
/* 0x3C */ s16 m_wall_angle_y;
|
||||
|
||||
public:
|
||||
enum {
|
||||
/* 0x2 */ WALL_HIT = 2,
|
||||
/* 0x4 */ WALL_H_DIRECT = 4,
|
||||
};
|
||||
|
||||
/* 80075EAC */ dBgS_AcchCir();
|
||||
/* 80075F14 */ void ClrWallHit();
|
||||
/* 80075F40 */ void SetWallR(f32);
|
||||
/* 80075F48 */ void CalcWallRR();
|
||||
/* 80075F58 */ void SetWall(f32, f32);
|
||||
/* 80075F80 */ void SetWallHDirect(f32);
|
||||
|
||||
/* 80077414 */ virtual ~dBgS_AcchCir() {}
|
||||
|
||||
f32 GetWallH() { return m_wall_h; }
|
||||
f32 GetWallR() { return m_wall_r; }
|
||||
void SetWallH(f32 h) { m_wall_h = h; }
|
||||
void ClrWallHDirect() { m_flags &= ~WALL_H_DIRECT; }
|
||||
bool ChkWallHit() { return m_flags & WALL_HIT; }
|
||||
|
||||
void SetCir(cXyz& pos) { m_cir.Set(pos.x, pos.z, pos.y + GetWallH(), m_wall_r); }
|
||||
}; // Size: 0x40
|
||||
|
||||
class dBgS;
|
||||
class dBgS_Acch : public cBgS_Chk, public dBgS_Chk {
|
||||
public:
|
||||
enum {
|
||||
/* 0x000002 */ GRND_NONE = (1 << 1),
|
||||
/* 0x000004 */ WALL_NONE = (1 << 2),
|
||||
/* 0x000008 */ ROOF_NONE = (1 << 3),
|
||||
/* 0x000010 */ WALL_HIT = (1 << 4),
|
||||
/* 0x000020 */ GROUND_HIT = (1 << 5),
|
||||
/* 0x000040 */ GROUND_FIND = (1 << 6),
|
||||
/* 0x000080 */ GROUND_LANDING = (1 << 7),
|
||||
/* 0x000100 */ GROUND_AWAY = (1 << 8),
|
||||
/* 0x000200 */ ROOF_HIT = (1 << 9),
|
||||
/* 0x000400 */ WATER_NONE = (1 << 10),
|
||||
/* 0x000800 */ WATER_HIT = (1 << 11),
|
||||
/* 0x001000 */ WATER_IN = (1 << 12),
|
||||
/* 0x002000 */ LINE_CHECK = (1 << 13),
|
||||
/* 0x004000 */ LINE_CHECK_NONE = (1 << 14),
|
||||
/* 0x008000 */ CLR_SPEED_Y = (1 << 15),
|
||||
/* 0x010000 */ LINE_CHECK_HIT = (1 << 16),
|
||||
/* 0x100000 */ MOVE_BG_ONLY = (1 << 20),
|
||||
/* 0x200000 */ GND_THIN_CELLING_OFF = (1 << 21),
|
||||
/* 0x400000 */ WALL_SORT = (1 << 22),
|
||||
/* 0x800000 */ LINE_DOWN = (1 << 23),
|
||||
};
|
||||
|
||||
/* 800760A0 */ dBgS_Acch();
|
||||
/* 800761CC */ void Init();
|
||||
/* 80076288 */ void Set(fopAc_ac_c*, int, dBgS_AcchCir*);
|
||||
/* 80076248 */ void Set(cXyz*, cXyz*, fopAc_ac_c*, int, dBgS_AcchCir*, cXyz*, csXyz*, csXyz*);
|
||||
/* 800762D8 */ void GroundCheckInit(dBgS&);
|
||||
/* 80076350 */ void GroundCheck(dBgS&);
|
||||
/* 8007654C */ void GroundRoofProc(dBgS&);
|
||||
/* 80076624 */ void LineCheck(dBgS&);
|
||||
/* 80076AAC */ void CrrPos(dBgS&);
|
||||
/* 80076F84 */ f32 GetWallAllR();
|
||||
/* 80076FC0 */ void SetWallCir();
|
||||
/* 8007703C */ void CalcWallBmdCyl();
|
||||
/* 80077114 */ void SetGroundUpY(f32);
|
||||
/* 80077128 */ f32 GetWallAllLowH();
|
||||
/* 80077178 */ f32 GetWallAllLowH_R();
|
||||
/* 800771E4 */ f32 GetSpeedY();
|
||||
/* 80077200 */ f32 GetWallAddY(Vec&);
|
||||
/* 80077278 */ void SetNowActorInfo(int, void*, unsigned int);
|
||||
/* 80077288 */ void SetWallPolyIndex(int, int);
|
||||
/* 800772E8 */ void CalcMovePosWork();
|
||||
/* 8007732C */ void CalcWallRR();
|
||||
/* 80077388 */ void SetMoveBGOnly();
|
||||
/* 800773A4 */ void ClrMoveBGOnly();
|
||||
/* 800773C0 */ void SetGndThinCellingOff();
|
||||
/* 800773D0 */ void ClrGndThinCellingOff();
|
||||
/* 800773E0 */ bool ChkGndThinCellingOff();
|
||||
/* 800773EC */ void OnWallSort();
|
||||
/* 800773FC */ bool ChkWallSort();
|
||||
/* 80077408 */ bool ChkLineDown();
|
||||
/* 800D00D0 */ bool ChkRoofHit() const;
|
||||
/* 800D00DC */ void ClrGroundHit();
|
||||
/* 80141404 */ bool ChkGroundHit() const;
|
||||
|
||||
/* 80075F94 */ virtual ~dBgS_Acch();
|
||||
|
||||
cXyz* GetPos() { return pm_pos; }
|
||||
cXyz* GetOldPos() { return pm_old_pos; }
|
||||
f32 GetGroundH() const { return m_ground_h; }
|
||||
f32 GetRoofHeight() const { return m_roof_height; }
|
||||
void SetLin() { m_lin.SetStartEnd(*pm_old_pos, *pm_pos); }
|
||||
bool ChkGroundFind() { return m_flags & GROUND_FIND; }
|
||||
bool ChkGroundHit() { return m_flags & GROUND_HIT; }
|
||||
bool ChkGroundLanding() { return m_flags & GROUND_LANDING; }
|
||||
void ClrGroundLanding() { m_flags &= ~GROUND_LANDING; }
|
||||
void ClrGroundAway() { m_flags &= ~GROUND_AWAY; }
|
||||
void ClrWallHit() { m_flags &= ~WALL_HIT; }
|
||||
void SetRoofNone() { m_flags |= ROOF_NONE; }
|
||||
void SetRoofHit() { m_flags |= ROOF_HIT; }
|
||||
void SetWaterNone() { m_flags |= WATER_NONE; }
|
||||
bool ChkWallHit() { return m_flags & WALL_HIT; }
|
||||
void OffLineCheckHit() { m_flags &= ~LINE_CHECK_HIT; }
|
||||
void OffLineCheck() { m_flags &= ~LINE_CHECK; }
|
||||
bool ChkLineCheckNone() { return m_flags & LINE_CHECK_NONE; }
|
||||
bool ChkLineCheck() { return m_flags & LINE_CHECK; }
|
||||
void ClrRoofHit() { m_flags &= ~ROOF_HIT; }
|
||||
void ClrWaterHit() { m_flags &= ~WATER_HIT; }
|
||||
void SetWaterHit() { m_flags |= WATER_HIT; }
|
||||
void ClrWaterIn() { m_flags &= ~WATER_IN; }
|
||||
void SetWaterIn() { m_flags |= WATER_IN; }
|
||||
const u32 MaskWaterIn() { return m_flags & WATER_IN; }
|
||||
const bool ChkWaterIn() { return MaskWaterIn();}
|
||||
void ClrGroundFind() { m_flags &= ~GROUND_FIND; }
|
||||
u32 MaskRoofHit() { return m_flags & ROOF_HIT; }
|
||||
bool ChkRoofHit() { return MaskRoofHit(); }
|
||||
bool ChkClrSpeedY() { return m_flags & CLR_SPEED_Y; }
|
||||
void SetGroundFind() { m_flags |= GROUND_FIND; }
|
||||
void SetGroundHit() { m_flags |= GROUND_HIT; }
|
||||
void SetGroundLanding() { m_flags |= GROUND_LANDING; }
|
||||
void SetGroundAway() { m_flags |= GROUND_AWAY; }
|
||||
const u32 MaskWaterHit() { return m_flags & WATER_HIT; }
|
||||
const bool ChkWaterHit() { return MaskWaterHit(); }
|
||||
void ClrWaterNone() { m_flags &= ~WATER_NONE; }
|
||||
void OnLineCheck() { m_flags |= LINE_CHECK; }
|
||||
void ClrRoofNone() { m_flags &= ~ROOF_NONE; }
|
||||
void SetRoofCrrHeight(f32 height) { m_roof_crr_height = height; }
|
||||
void SetGrndNone() { m_flags |= GRND_NONE; }
|
||||
void ClrGrndNone() { m_flags &= ~GRND_NONE; }
|
||||
bool ChkMoveBGOnly() const { return m_flags & MOVE_BG_ONLY; }
|
||||
void SetWallHit() { m_flags |= WALL_HIT; }
|
||||
void ClrWallNone() { m_flags &= ~WALL_NONE; }
|
||||
cM3dGCyl* GetWallBmdCylP() { return &m_wall_cyl; }
|
||||
|
||||
public:
|
||||
/* 0x028 */ u32 m_flags;
|
||||
/* 0x02C */ cXyz* pm_pos;
|
||||
/* 0x030 */ cXyz* pm_old_pos;
|
||||
/* 0x034 */ cXyz* pm_speed;
|
||||
/* 0x038 */ csXyz* pm_angle;
|
||||
/* 0x03C */ csXyz* pm_shape_angle;
|
||||
/* 0x040 */ cM3dGLin m_lin;
|
||||
/* 0x05C */ cM3dGCyl m_wall_cyl;
|
||||
/* 0x074 */ int m_bg_index;
|
||||
/* 0x078 */ void* field_0x7c;
|
||||
/* 0x07C */ u32 field_0x80;
|
||||
/* 0x080 */ fopAc_ac_c* m_my_ac;
|
||||
/* 0x084 */ int m_tbl_size;
|
||||
/* 0x088 */ dBgS_AcchCir* field_0x8c;
|
||||
/* 0x08C */ f32 field_0x90;
|
||||
/* 0x090 */ f32 field_0x94;
|
||||
/* 0x094 */ f32 m_ground_h;
|
||||
/* 0x098 */ f32 field_0x9c;
|
||||
/* 0x09C */ cM3dGPla field_0xa0;
|
||||
/* 0x0B0 */ u8 field_0xb4;
|
||||
/* 0x0B4 */ f32 field_0xb8;
|
||||
/* 0x0B8 */ f32 field_0xbc;
|
||||
/* 0x0BC */ u8 field_0xc0;
|
||||
/* 0x0C0 */ f32 m_roof_height;
|
||||
/* 0x0C4 */ f32 m_roof_crr_height;
|
||||
/* 0x0C8 */ f32 field_0xc8;
|
||||
/* 0x0CC */ int field_0xd4;
|
||||
/* 0x0D0 */ f32 field_0xd8;
|
||||
/* 0x0D4 */ dBgS_GndChk m_gnd;
|
||||
/* 0x128 */ dBgS_RoofChk m_roof;
|
||||
/* 0x174 */ dBgS_WtrChk m_wtr;
|
||||
}; // Size: 0x1C4
|
||||
|
||||
class dBgS_LinkAcch : public dBgS_Acch {
|
||||
public:
|
||||
dBgS_LinkAcch() { /* SetLink(); */ }
|
||||
|
||||
/* 80140F30 */ virtual ~dBgS_LinkAcch();
|
||||
};
|
||||
|
||||
class dBgS_ObjAcch : public dBgS_Acch {
|
||||
public:
|
||||
dBgS_ObjAcch() {
|
||||
/* SetObj(); */
|
||||
}
|
||||
|
||||
/* 80BB336C */ virtual ~dBgS_ObjAcch() {}
|
||||
};
|
||||
|
||||
#endif /* D_BG_D_BG_S_ACCH_H */
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef D_BG_D_BG_S_CHK_H
|
||||
#define D_BG_D_BG_S_CHK_H
|
||||
|
||||
#include "d/d_bg_s_grp_pass_chk.h"
|
||||
#include "d/d_bg_s_poly_pass_chk.h"
|
||||
|
||||
class dBgS_Chk : public dBgS_PolyPassChk, public dBgS_GrpPassChk {
|
||||
public:
|
||||
dBgS_Chk();
|
||||
cBgS_PolyPassChk* GetPolyPassChkInfo();
|
||||
cBgS_GrpPassChk* GetGrpPassChkInfo();
|
||||
|
||||
virtual ~dBgS_Chk();
|
||||
}; // Size: 0x14
|
||||
|
||||
#endif /* D_BG_D_BG_S_CHK_H */
|
||||
@@ -0,0 +1,61 @@
|
||||
#ifndef D_BG_D_BG_S_GND_CHK_H
|
||||
#define D_BG_D_BG_S_GND_CHK_H
|
||||
|
||||
#include "SSystem/SComponent/c_bg_s_gnd_chk.h"
|
||||
#include "d/d_bg_s_chk.h"
|
||||
|
||||
class dBgS_GndChk : public cBgS_GndChk, public dBgS_Chk {
|
||||
public:
|
||||
/* 8007757C */ dBgS_GndChk();
|
||||
/* 800775F0 */ virtual ~dBgS_GndChk();
|
||||
}; // Size: 0x54
|
||||
|
||||
class dBgS_LinkGndChk : public dBgS_GndChk {
|
||||
public:
|
||||
dBgS_LinkGndChk() { /* SetLink(); */ }
|
||||
/* 80140EB8 */ virtual ~dBgS_LinkGndChk();
|
||||
};
|
||||
|
||||
class dBgS_ObjGndChk : public dBgS_GndChk {
|
||||
public:
|
||||
dBgS_ObjGndChk() { /* SetObj(); */ }
|
||||
|
||||
/* 8001E020 */ virtual ~dBgS_ObjGndChk();
|
||||
};
|
||||
|
||||
class dBgS_ObjGndChk_Wtr : public dBgS_ObjGndChk {
|
||||
public:
|
||||
/* 80077678 */ dBgS_ObjGndChk_Wtr();
|
||||
|
||||
/* 80077710 */ virtual ~dBgS_ObjGndChk_Wtr();
|
||||
};
|
||||
|
||||
class dBgS_ObjGndChk_Spl : public dBgS_ObjGndChk {
|
||||
public:
|
||||
/* 800777B0 */ dBgS_ObjGndChk_Spl();
|
||||
|
||||
/* 80077848 */ virtual ~dBgS_ObjGndChk_Spl();
|
||||
};
|
||||
|
||||
class dBgS_ObjGndChk_All : public dBgS_ObjGndChk {
|
||||
public:
|
||||
/* 800778E8 */ virtual ~dBgS_ObjGndChk_All();
|
||||
|
||||
dBgS_ObjGndChk_All() { /* OnAll(); */ }
|
||||
};
|
||||
|
||||
class dBgS_CamGndChk : public dBgS_GndChk {
|
||||
public:
|
||||
dBgS_CamGndChk() { /* SetCam(); */ }
|
||||
|
||||
/* 80077988 */ virtual ~dBgS_CamGndChk();
|
||||
};
|
||||
|
||||
class dBgS_CamGndChk_Wtr : public dBgS_CamGndChk {
|
||||
public:
|
||||
/* 80077A00 */ dBgS_CamGndChk_Wtr();
|
||||
|
||||
/* 80077A98 */ virtual ~dBgS_CamGndChk_Wtr();
|
||||
};
|
||||
|
||||
#endif /* D_BG_D_BG_S_GND_CHK_H */
|
||||
@@ -0,0 +1,30 @@
|
||||
#ifndef D_BG_D_BG_S_GRP_PASS_CHK_H
|
||||
#define D_BG_D_BG_S_GRP_PASS_CHK_H
|
||||
|
||||
#include "SSystem/SComponent/c_bg_s_chk.h"
|
||||
|
||||
class dBgS_GrpPassChk : public cBgS_GrpPassChk {
|
||||
public:
|
||||
enum {
|
||||
/* 0x1 */ NORMAL_GRP = 1,
|
||||
/* 0x2 */ WATER_GRP,
|
||||
/* 0x3 */ FULL_GRP
|
||||
};
|
||||
|
||||
/* 80077BA0 */ dBgS_GrpPassChk();
|
||||
|
||||
/* 80077BC4 */ virtual ~dBgS_GrpPassChk();
|
||||
|
||||
void OnWaterGrp() { mGrp |= WATER_GRP; }
|
||||
void OnSpl() { mGrp |= WATER_GRP; }
|
||||
void OnNormalGrp() { mGrp |= NORMAL_GRP; }
|
||||
void OffNormalGrp() { mGrp &= ~NORMAL_GRP; }
|
||||
void OffFullGrp() { mGrp &= ~FULL_GRP; }
|
||||
void OnAll() { mGrp |= FULL_GRP; }
|
||||
u32 MaskNormalGrp() const {return mGrp & 1; }
|
||||
u32 MaskWaterGrp() const {return mGrp & 2; }
|
||||
private:
|
||||
/* 0x4 */ u32 mGrp;
|
||||
};
|
||||
|
||||
#endif /* D_BG_D_BG_S_GRP_PASS_CHK_H */
|
||||
@@ -0,0 +1,83 @@
|
||||
#ifndef D_BG_D_BG_S_LIN_CHK_H
|
||||
#define D_BG_D_BG_S_LIN_CHK_H
|
||||
|
||||
#include "SSystem/SComponent/c_bg_s_lin_chk.h"
|
||||
#include "d/d_bg_s_chk.h"
|
||||
|
||||
class fopAc_ac_c;
|
||||
|
||||
class dBgS_LinChk : public cBgS_LinChk, public dBgS_Chk {
|
||||
public:
|
||||
/* 80077C68 */ dBgS_LinChk();
|
||||
/* 80077D64 */ void Set(cXyz const* pi_start, cXyz const* pi_end, fopAc_ac_c const*);
|
||||
|
||||
/* 80077CDC */ virtual ~dBgS_LinChk();
|
||||
|
||||
/* 0x00 cBgS_LinChk */;
|
||||
/* 0x58 dBgS_Chk */;
|
||||
};
|
||||
|
||||
class dBgS_LinkLinChk : public dBgS_LinChk {
|
||||
public:
|
||||
/* 80078030 */ dBgS_LinkLinChk();
|
||||
|
||||
/* 8007808C */ virtual ~dBgS_LinkLinChk();
|
||||
};
|
||||
|
||||
class dBgS_RopeLinChk : public dBgS_LinChk {
|
||||
public:
|
||||
/* 8007838C */ dBgS_RopeLinChk();
|
||||
|
||||
/* 800783E8 */ virtual ~dBgS_RopeLinChk();
|
||||
};
|
||||
|
||||
class dBgS_BoomerangLinChk : public dBgS_LinChk {
|
||||
public:
|
||||
/* 800782B8 */ dBgS_BoomerangLinChk();
|
||||
|
||||
/* 80078314 */ virtual ~dBgS_BoomerangLinChk();
|
||||
};
|
||||
|
||||
class dBgS_ArrowLinChk : public dBgS_LinChk {
|
||||
public:
|
||||
/* 800781D8 */ dBgS_ArrowLinChk();
|
||||
|
||||
/* 80078240 */ virtual ~dBgS_ArrowLinChk();
|
||||
};
|
||||
|
||||
class dBgS_ObjLinChk : public dBgS_LinChk {
|
||||
public:
|
||||
/* 80077F5C */ dBgS_ObjLinChk();
|
||||
|
||||
/* 80077FB8 */ virtual ~dBgS_ObjLinChk();
|
||||
};
|
||||
|
||||
class dBgS_BombLinChk : public dBgS_LinChk {
|
||||
public:
|
||||
/* 80078104 */ dBgS_BombLinChk();
|
||||
|
||||
/* 80078160 */ virtual ~dBgS_BombLinChk();
|
||||
};
|
||||
|
||||
class dBgS_CamLinChk : public dBgS_LinChk {
|
||||
public:
|
||||
/* 80077DA4 */ dBgS_CamLinChk();
|
||||
|
||||
/* 80077E00 */ virtual ~dBgS_CamLinChk();
|
||||
};
|
||||
|
||||
class dBgS_CamLinChk_NorWtr : public dBgS_CamLinChk {
|
||||
public:
|
||||
/* 80077E78 */ dBgS_CamLinChk_NorWtr();
|
||||
|
||||
/* 80077EE4 */ virtual ~dBgS_CamLinChk_NorWtr();
|
||||
};
|
||||
|
||||
class dBgS_MirLightLinChk : public dBgS_LinChk {
|
||||
public:
|
||||
dBgS_MirLightLinChk();
|
||||
|
||||
virtual ~dBgS_MirLightLinChk();
|
||||
};
|
||||
|
||||
#endif /* D_BG_D_BG_S_LIN_CHK_H */
|
||||
@@ -0,0 +1,17 @@
|
||||
#ifndef D_BG_D_BG_S_POLY_PASS_CHK_H
|
||||
#define D_BG_D_BG_S_POLY_PASS_CHK_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
class cBgS_PolyPassChk {
|
||||
public:
|
||||
virtual ~cBgS_PolyPassChk();
|
||||
};
|
||||
|
||||
class dBgS_PolyPassChk : public cBgS_PolyPassChk {
|
||||
public:
|
||||
dBgS_PolyPassChk();
|
||||
virtual ~dBgS_PolyPassChk();
|
||||
};
|
||||
|
||||
#endif /* D_BG_D_BG_S_POLY_PASS_CHK_H */
|
||||
@@ -0,0 +1,29 @@
|
||||
#ifndef D_BG_D_BG_S_ROOF_CHK_H
|
||||
#define D_BG_D_BG_S_ROOF_CHK_H
|
||||
|
||||
#include "SSystem/SComponent/c_bg_s_poly_info.h"
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
#include "d/d_bg_s_chk.h"
|
||||
|
||||
class dBgS_RoofChk : public cBgS_PolyInfo, public cBgS_Chk, public dBgS_Chk {
|
||||
public:
|
||||
/* 80078FF4 */ dBgS_RoofChk();
|
||||
/* 80079124 */ void Init();
|
||||
/* 800B146C */ void SetPos(cXyz const&);
|
||||
|
||||
/* 80079090 */ virtual ~dBgS_RoofChk();
|
||||
|
||||
void i_SetPos(cXyz const& pos) { m_pos = pos; }
|
||||
cXyz* GetPosP() { return &m_pos; }
|
||||
|
||||
private:
|
||||
/* 0x38 */ cXyz m_pos;
|
||||
}; // Size: 0x44
|
||||
|
||||
class dBgS_LinkRoofChk : public dBgS_RoofChk {
|
||||
public:
|
||||
dBgS_LinkRoofChk() { /* SetLink(); */ }
|
||||
/* 80140E40 */ virtual ~dBgS_LinkRoofChk();
|
||||
};
|
||||
|
||||
#endif /* D_BG_D_BG_S_ROOF_CHK_H */
|
||||
@@ -0,0 +1,40 @@
|
||||
#ifndef D_BG_D_BG_S_SPL_GRP_CHK_H
|
||||
#define D_BG_D_BG_S_SPL_GRP_CHK_H
|
||||
|
||||
#include "SSystem/SComponent/c_bg_s_poly_info.h"
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
#include "d/d_bg_s_chk.h"
|
||||
|
||||
class dBgS_SplGrpChk : public cBgS_PolyInfo, public cBgS_Chk, public dBgS_Chk {
|
||||
public:
|
||||
enum {
|
||||
/* 0x1 */ FIND = 1,
|
||||
/* 0x2 */ IN = 2,
|
||||
/* 0x4 */ MOVE_BG_ONLY = 4
|
||||
};
|
||||
|
||||
/* 80078B90 */ void Set(cXyz&, f32);
|
||||
/* 80078BB0 */ dBgS_SplGrpChk();
|
||||
/* 80078D0C */ void Init();
|
||||
|
||||
/* 80078C78 */ virtual ~dBgS_SplGrpChk();
|
||||
|
||||
void OffFind() { m_flags &= ~FIND; }
|
||||
void OffIn() { m_flags &= ~IN; }
|
||||
void OffMoveBGOnly() { m_flags &= ~MOVE_BG_ONLY; }
|
||||
void OnMoveBGOnly() { m_flags |= MOVE_BG_ONLY; }
|
||||
void OnFind() { m_flags |= FIND; }
|
||||
bool ChkMoveBGOnly() { return m_flags & MOVE_BG_ONLY; }
|
||||
void SetHeight(f32 height) { m_height = height; }
|
||||
f32 GetHeight() { return m_height; }
|
||||
cXyz& GetPosP() { return m_ground; }
|
||||
f32 GetRoof() const { return m_roof; }
|
||||
|
||||
private:
|
||||
/* 0x38 */ cXyz m_ground;
|
||||
/* 0x44 */ f32 m_roof;
|
||||
/* 0x48 */ f32 m_height;
|
||||
/* 0x4C */ u32 m_flags;
|
||||
}; // Size: 0x50
|
||||
|
||||
#endif /* D_BG_D_BG_S_SPL_GRP_CHK_H */
|
||||
@@ -0,0 +1,13 @@
|
||||
#ifndef D_BG_D_BG_S_WTR_CHK_H
|
||||
#define D_BG_D_BG_S_WTR_CHK_H
|
||||
|
||||
#include "d/d_bg_s_spl_grp_chk.h"
|
||||
|
||||
class dBgS_WtrChk : public dBgS_SplGrpChk {
|
||||
public:
|
||||
/* 80079164 */ dBgS_WtrChk();
|
||||
|
||||
/* 8001DF30 */ virtual ~dBgS_WtrChk();
|
||||
}; // Size: 0x50
|
||||
|
||||
#endif /* D_BG_D_BG_S_WTR_CHK_H */
|
||||
@@ -0,0 +1,395 @@
|
||||
#ifndef D_CC_D_CC_D_H
|
||||
#define D_CC_D_CC_D_H
|
||||
|
||||
/**
|
||||
* d_cc_d.h
|
||||
* Actor Collision
|
||||
*/
|
||||
|
||||
#include "SSystem/SComponent/c_cc_d.h"
|
||||
|
||||
enum dCcD_hitSe {};
|
||||
|
||||
enum dCcG_At_Spl {};
|
||||
|
||||
enum dCcG_Tg_Spl {};
|
||||
|
||||
struct dCcD_SrcGAtTgCoCommonBase {
|
||||
/* 0x0 */ u32 mGFlag;
|
||||
}; // Size: 0x4
|
||||
|
||||
struct dCcD_SrcGObjAt {
|
||||
/* 0x0 */ u8 mSe; // Sound Effect ID
|
||||
/* 0x1 */ u8 mHitMark; // Hit Mark particle ID
|
||||
/* 0x2 */ u8 mSpl;
|
||||
/* 0x3 */ u8 mMtrl;
|
||||
/* 0x4 */ dCcD_SrcGAtTgCoCommonBase mBase;
|
||||
}; // Size: 0x8
|
||||
|
||||
struct dCcD_SrcGObjTg {
|
||||
/* 0x0 */ u8 mSe; // Sound Effect ID
|
||||
/* 0x1 */ u8 mHitMark; // Hit Mark particle ID
|
||||
/* 0x2 */ u8 mSpl;
|
||||
/* 0x3 */ u8 mMtrl;
|
||||
/* 0x4 */ dCcD_SrcGAtTgCoCommonBase mBase;
|
||||
}; // Size: 0x8
|
||||
|
||||
struct dCcD_SrcGObjCo {
|
||||
/* 0x0 */ dCcD_SrcGAtTgCoCommonBase mBase;
|
||||
}; // Size: 0x4
|
||||
|
||||
struct dCcD_SrcGObjInf {
|
||||
/* 0x00 */ cCcD_SrcObj mObj;
|
||||
/* 0x1C */ dCcD_SrcGObjAt mGObjAt;
|
||||
/* 0x24 */ dCcD_SrcGObjTg mGObjTg;
|
||||
/* 0x2C */ dCcD_SrcGObjCo mGObjCo;
|
||||
}; // Size: 0x30
|
||||
|
||||
struct dCcD_SrcSph {
|
||||
/* 0x00 */ dCcD_SrcGObjInf mObjInf;
|
||||
/* 0x30 */ cCcD_SrcSphAttr mSphAttr;
|
||||
}; // Size: 0x40
|
||||
|
||||
struct dCcD_SrcTri {
|
||||
/* 0x00 */ dCcD_SrcGObjInf mObjInf;
|
||||
/* 0x30 */ cCcD_SrcTriAttr mTriAttr;
|
||||
}; // Size: 0x54
|
||||
|
||||
struct dCcD_SrcCyl {
|
||||
/* 0x00 */ dCcD_SrcGObjInf mObjInf;
|
||||
/* 0x30 */ cM3dGCylS mCyl;
|
||||
}; // Size: 0x44
|
||||
|
||||
struct dCcD_SrcCps {
|
||||
/* 0x00 */ dCcD_SrcGObjInf mObjInf;
|
||||
/* 0x30 */ cCcD_SrcCpsAttr mCpsAttr;
|
||||
}; // Size: 0x4C
|
||||
|
||||
class dCcD_GStts : public cCcD_GStts {
|
||||
public:
|
||||
dCcD_GStts();
|
||||
virtual ~dCcD_GStts() {}
|
||||
|
||||
void Ct();
|
||||
void Move();
|
||||
void ClrAt() { mAt = 0; }
|
||||
void ClrTg() { mTg = 0; }
|
||||
void SetAtApid(unsigned int id) { mAtApid = id; }
|
||||
void SetTgApid(unsigned int id) { mTgApid = id; }
|
||||
u8 GetRoomId() { return mRoomId; }
|
||||
void SetRoomId(int id) { mRoomId = id; }
|
||||
unsigned int GetAtOldApid() { return mAtOldApid; }
|
||||
unsigned int GetTgOldApid() { return mTgOldApid; }
|
||||
bool ChkNoActor() { return field_0x1C & 1; }
|
||||
bool ChkNoneActorPerfTblId() { return field_0x08 == 0xFFFF; }
|
||||
dCcG_At_Spl GetAtSpl() { return (dCcG_At_Spl)mAt; }
|
||||
void SetAtSpl(dCcG_At_Spl spl) { mAt = spl; }
|
||||
dCcG_Tg_Spl GetTgSpl() { return (dCcG_Tg_Spl)mTg; }
|
||||
void SetTgSpl(dCcG_Tg_Spl spl) { mTg = spl; }
|
||||
void OnNoActor() { field_0x1C |= 1; }
|
||||
|
||||
// private:
|
||||
/* 0x04 */ u8 mAt;
|
||||
/* 0x05 */ u8 mTg;
|
||||
/* 0x06 */ u8 mRoomId;
|
||||
/* 0x08 */ u16 field_0x08;
|
||||
/* 0x0C */ int mAtApid;
|
||||
/* 0x10 */ int mAtOldApid;
|
||||
/* 0x14 */ int mTgApid;
|
||||
/* 0x18 */ int mTgOldApid;
|
||||
/* 0x1C */ int field_0x1C;
|
||||
}; // Size = 0x20
|
||||
|
||||
class dCcD_Stts : public cCcD_Stts, public dCcD_GStts {
|
||||
public:
|
||||
dCcD_Stts() {}
|
||||
virtual cCcD_GStts* GetGStts();
|
||||
void Init(int, int, fopAc_ac_c*);
|
||||
virtual void Ct();
|
||||
virtual void ClrAt();
|
||||
virtual void ClrTg();
|
||||
virtual ~dCcD_Stts() {}
|
||||
|
||||
}; // Size = 0x3C
|
||||
|
||||
class dCcD_GObjInf;
|
||||
typedef void (*dCcD_HitCallback)(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
|
||||
|
||||
// Attack/Defense/Correction Collider Common Base
|
||||
class dCcD_GAtTgCoCommonBase {
|
||||
public:
|
||||
/* 0x00 */ u32 mGFlag;
|
||||
/* 0x04 */ u32 mRPrm;
|
||||
/* 0x08 */ dCcD_HitCallback mHitCallback;
|
||||
/* 0x0C */ u32 mApid;
|
||||
/* 0x10 */ fopAc_ac_c* mAc;
|
||||
/* 0x14 */ s8 mEffCounter;
|
||||
/* 0x15 */ u8 field_0x15[3];
|
||||
/* 0x18 vtable */
|
||||
|
||||
public:
|
||||
dCcD_GAtTgCoCommonBase() { ct(); }
|
||||
void ClrActorInfo();
|
||||
void ct();
|
||||
void SetHitApid(unsigned int);
|
||||
fopAc_ac_c* GetAc();
|
||||
void Set(dCcD_SrcGAtTgCoCommonBase const&);
|
||||
void SetEffCounterTimer();
|
||||
void SubtractEffCounter();
|
||||
bool ChkEffCounter();
|
||||
virtual ~dCcD_GAtTgCoCommonBase() {}
|
||||
|
||||
void ClrEffCounter() { mEffCounter = 0; }
|
||||
u32 GetGFlag() const { return mGFlag; }
|
||||
u32 GetRPrm() const { return mRPrm; }
|
||||
u32 MskSPrm(u32 mask) const { return mGFlag & mask; }
|
||||
u32 MskRPrm(u32 mask) const { return mRPrm & mask; }
|
||||
bool ChkSPrm(u32 mask) const { return MskSPrm(mask); }
|
||||
void OnSPrm(u32 flag) { mGFlag |= flag; }
|
||||
void OnRPrm(u32 flag) { mRPrm |= flag; }
|
||||
void OffSPrm(u32 flag) { mGFlag &= ~flag; }
|
||||
void OffRPrm(u32 flag) { mRPrm &= ~flag; }
|
||||
bool ChkRPrm(u32 flag) const { return MskRPrm(flag); }
|
||||
void SetHitCallback(dCcD_HitCallback callback) { mHitCallback = callback; }
|
||||
dCcD_HitCallback GetHitCallback() { return mHitCallback; }
|
||||
void ClrHit() { ClrActorInfo(); }
|
||||
}; // Size = 0x1C
|
||||
|
||||
// Attack (At) Collider
|
||||
class dCcD_GObjAt : public dCcD_GAtTgCoCommonBase {
|
||||
public:
|
||||
void Set(dCcD_SrcGObjAt const&);
|
||||
virtual ~dCcD_GObjAt() {}
|
||||
void SetVec(cXyz& vec) { mVec = vec; }
|
||||
cXyz& GetVec() { return mVec; }
|
||||
cXyz* GetVecP() { return &mVec; }
|
||||
void SetHitMark(u8 mark) { mHitMark = mark; }
|
||||
void SetSe(u8 se) { mSe = se; }
|
||||
void SetMtrl(u8 mtrl) { mMtrl = mtrl; }
|
||||
void SetAtSpl(dCcG_At_Spl spl) { mSpl = spl; }
|
||||
u8 GetSe() { return mSe; }
|
||||
u8 GetSpl() { return mSpl; }
|
||||
u8 GetMtrl() { return mMtrl; }
|
||||
u8 GetHitMark() { return mHitMark; }
|
||||
void SetRVec(cXyz& vec) { mRVec = vec; }
|
||||
void SetHitPos(cXyz& pos) { mHitPos = pos; }
|
||||
|
||||
// private:
|
||||
/* 0x1C */ u8 mSe;
|
||||
/* 0x1D */ u8 mMtrl;
|
||||
/* 0x1E */ u8 mHitMark;
|
||||
/* 0x1F */ u8 mSpl;
|
||||
/* 0x20 */ cXyz mHitPos;
|
||||
/* 0x2C */ cXyz mVec;
|
||||
/* 0x38 */ cXyz mRVec;
|
||||
}; // Size = 0x44
|
||||
|
||||
// Defense (Tg) Collider
|
||||
class dCcD_GObjTg : public dCcD_GAtTgCoCommonBase {
|
||||
public:
|
||||
void Set(dCcD_SrcGObjTg const&);
|
||||
virtual ~dCcD_GObjTg() {}
|
||||
void SetSe(u8 se) { mSe = se; }
|
||||
void SetVec(cXyz& vec) { mVec = vec; }
|
||||
cXyz& GetVec() { return mVec; }
|
||||
void SetShieldFrontRangeYAngle(s16* angle) { mShieldFrontRangeYAngle = angle; }
|
||||
void SetMtrl(u8 mtrl) { mMtrl = mtrl; }
|
||||
u8 GetMtrl() { return mMtrl; }
|
||||
void SetHitMark(CcG_Tg_HitMark mark) { mHitMark = mark; }
|
||||
s16* GetShieldFrontRangeYAngle() { return mShieldFrontRangeYAngle; }
|
||||
u8 GetSpl() { return mSpl; }
|
||||
u8 GetHitMark() { return mHitMark; }
|
||||
void SetRVec(cXyz& vec) { mRVec = vec; }
|
||||
cXyz* GetVecP() { return &mVec; }
|
||||
void SetHitPos(cXyz& pos) { mHitPos = pos; }
|
||||
|
||||
private:
|
||||
/* 0x1C */ u8 mSe;
|
||||
/* 0x1D */ u8 mMtrl;
|
||||
/* 0x1E */ u8 mHitMark;
|
||||
/* 0x1F */ u8 mSpl;
|
||||
/* 0x20 */ cXyz mVec;
|
||||
/* 0x2C */ cXyz mRVec;
|
||||
/* 0x38 */ cXyz mHitPos;
|
||||
/* 0x44 */ s16* mShieldFrontRangeYAngle;
|
||||
}; // Size = 0x48
|
||||
|
||||
// Correction (Co) Collider
|
||||
class dCcD_GObjCo : public dCcD_GAtTgCoCommonBase {
|
||||
public:
|
||||
virtual ~dCcD_GObjCo() {}
|
||||
void Set(dCcD_SrcGObjCo const& pSrc) { dCcD_GAtTgCoCommonBase::Set(pSrc.mBase); }
|
||||
}; // Size = 0x1C ?
|
||||
|
||||
// Object Info
|
||||
class dCcD_GObjInf : public cCcD_GObjInf {
|
||||
public:
|
||||
dCcD_GObjInf();
|
||||
virtual ~dCcD_GObjInf();
|
||||
virtual cCcD_GObjInf* GetGObjInf();
|
||||
virtual void ClrAtHit();
|
||||
u32 ChkAtHit();
|
||||
void ResetAtHit();
|
||||
cCcD_Obj* GetAtHitObj();
|
||||
cCcD_GObjInf* GetAtHitGObj();
|
||||
u8 ChkAtNoGuard();
|
||||
virtual void ClrTgHit();
|
||||
u32 ChkTgHit();
|
||||
void ResetTgHit();
|
||||
cCcD_Obj* GetTgHitObj();
|
||||
dCcD_GObjInf* GetTgHitGObj();
|
||||
u8 GetTgHitObjSe();
|
||||
virtual void ClrCoHit();
|
||||
u32 ChkCoHit();
|
||||
void ResetCoHit();
|
||||
cCcD_Obj* GetCoHitObj();
|
||||
void Set(dCcD_SrcGObjInf const&);
|
||||
|
||||
fopAc_ac_c* GetCoHitAc() { return mGObjCo.GetAc(); }
|
||||
|
||||
void SetAtVec(cXyz& vec) { mGObjAt.SetVec(vec); }
|
||||
void SetTgVec(cXyz& vec) { mGObjTg.SetVec(vec); }
|
||||
bool ChkAtNoMass() const { return mGObjAt.ChkSPrm(8); }
|
||||
void OnAtNoHitMark() { mGObjAt.OnSPrm(2); }
|
||||
void OffAtNoHitMark() { mGObjAt.OffSPrm(2); }
|
||||
void OnTgNoHitMark() { mGObjTg.OnSPrm(4); }
|
||||
void OffTgNoHitMark() { mGObjTg.OffSPrm(4); }
|
||||
void OnAtNoConHit() { mGObjAt.OnSPrm(1); }
|
||||
void OffAtNoConHit() { mGObjAt.OffSPrm(1); }
|
||||
void OnTgNoConHit() { mGObjTg.OnSPrm(2); }
|
||||
void SetAtHitMark(u8 mark) { mGObjAt.SetHitMark(mark); }
|
||||
void SetAtSe(u8 se) { mGObjAt.SetSe(se); }
|
||||
void SetTgSe(u8 se) { mGObjTg.SetSe(se); }
|
||||
void SetAtMtrl(u8 mtrl) { mGObjAt.SetMtrl(mtrl); }
|
||||
void SetTgMtrl(u8 mtrl) { mGObjTg.SetMtrl(mtrl); }
|
||||
fopAc_ac_c* GetAtHitAc() { return mGObjAt.GetAc(); }
|
||||
bool ChkAtShieldHit() { return mGObjAt.ChkRPrm(1); }
|
||||
cXyz* GetAtVecP() { return mGObjAt.GetVecP(); }
|
||||
cXyz* GetTgVecP() { return mGObjTg.GetVecP(); }
|
||||
void SetAtSpl(dCcG_At_Spl spl) { mGObjAt.SetAtSpl(spl); }
|
||||
void SetAtHitCallback(dCcD_HitCallback callback) { mGObjAt.SetHitCallback(callback); }
|
||||
void SetTgHitCallback(dCcD_HitCallback callback) { mGObjTg.SetHitCallback(callback); }
|
||||
void SetCoHitCallback(dCcD_HitCallback callback) { mGObjCo.SetHitCallback(callback); }
|
||||
u8 GetAtSe() { return mGObjAt.GetSe(); }
|
||||
dCcG_At_Spl GetAtSpl() { return (dCcG_At_Spl)mGObjAt.GetSpl(); }
|
||||
u8 GetAtMtrl() { return mGObjAt.GetMtrl(); }
|
||||
u8 GetTgMtrl() { return mGObjTg.GetMtrl(); }
|
||||
fopAc_ac_c* GetTgHitAc() { return mGObjTg.GetAc(); }
|
||||
void SetTgShieldFrontRangeYAngle(s16* angle) { mGObjTg.SetShieldFrontRangeYAngle(angle); }
|
||||
void OffTgWolfSpNoDamage() { mGObjTg.OffSPrm(0x800); }
|
||||
void OnTgWolfSpNoDamage() { mGObjTg.OnSPrm(0x800); }
|
||||
void SetTgHitMark(CcG_Tg_HitMark mark) { mGObjTg.SetHitMark(mark); }
|
||||
void OnTgSpShield() { mGObjTg.OnSPrm(0x40); }
|
||||
void OffTgSpShield() { mGObjTg.OffSPrm(0x40); }
|
||||
void OnTgShield() { mGObjTg.OnSPrm(0x1); }
|
||||
void OffTgShield() { mGObjTg.OffSPrm(0x1); }
|
||||
void OnTgShieldFrontRange() { mGObjTg.OnSPrm(0x8); }
|
||||
void OffTgShieldFrontRange() { mGObjTg.OffSPrm(0x8); }
|
||||
bool ChkTgIronBallRebound() { return mGObjTg.ChkSPrm(0x100); }
|
||||
s16* GetTgShieldFrontRangeYAngle() { return mGObjTg.GetShieldFrontRangeYAngle(); }
|
||||
bool ChkTgShield() { return mGObjTg.ChkSPrm(1); }
|
||||
bool ChkTgSpShield() { return mGObjTg.ChkSPrm(0x40); }
|
||||
bool ChkTgSmallShield() { return mGObjTg.ChkSPrm(0x10); }
|
||||
bool ChkTgShieldFrontRange() { return mGObjTg.ChkSPrm(8); }
|
||||
bool ChkAtNoConHit() { return mGObjAt.ChkSPrm(1); }
|
||||
bool ChkAtStopNoConHit() { return mGObjAt.ChkSPrm(0x4); }
|
||||
bool ChkTgNoConHit() { return mGObjTg.ChkSPrm(2); }
|
||||
bool ChkTgStopNoConHit() { return mGObjTg.ChkSPrm(0x2000); }
|
||||
bool ChkCoNoCamHit() { return mGObjCo.ChkSPrm(2); }
|
||||
dCcD_HitCallback GetCoHitCallback() { return mGObjCo.GetHitCallback(); }
|
||||
dCcD_HitCallback GetAtHitCallback() { return mGObjAt.GetHitCallback(); }
|
||||
dCcD_HitCallback GetTgHitCallback() { return mGObjTg.GetHitCallback(); }
|
||||
void SetCoHitApid(unsigned int apid) { mGObjCo.SetHitApid(apid); }
|
||||
void SetAtHitApid(unsigned int apid) { mGObjAt.SetHitApid(apid); }
|
||||
void SetTgHitApid(unsigned int apid) { mGObjTg.SetHitApid(apid); }
|
||||
void OnCoHitNoActor() { mGObjCo.OnRPrm(1); }
|
||||
void OffCoHitNoActor() { mGObjCo.OffRPrm(1); }
|
||||
void OnAtHitNoActor() { mGObjAt.OnRPrm(2); }
|
||||
void OffAtHitNoActor() { mGObjAt.OffRPrm(2); }
|
||||
void OnTgHitNoActor() { mGObjTg.OnRPrm(1); }
|
||||
void OffTgHitNoActor() { mGObjTg.OffRPrm(1); }
|
||||
bool ChkCoHitNoActor() const { return mGObjCo.ChkRPrm(1); }
|
||||
bool ChkAtHitNoActor() const { return mGObjAt.ChkRPrm(2); }
|
||||
bool ChkTgHitNoActor() const { return mGObjTg.ChkRPrm(1); }
|
||||
bool ChkTgWolfSpNoDamage() { return mGObjTg.ChkSPrm(0x800); }
|
||||
bool ChkAtNoHitMark() { return mGObjAt.ChkSPrm(2); }
|
||||
bool ChkTgNoHitMark() { return mGObjTg.ChkSPrm(4); }
|
||||
bool ChkTgHookShotNoHitMark() { return mGObjTg.ChkSPrm(0x400); }
|
||||
bool ChkTgArrowNoHitMark() { return mGObjTg.ChkSPrm(0x1000); }
|
||||
dCcG_Tg_Spl GetTgSpl() { return (dCcG_Tg_Spl)mGObjTg.GetSpl(); }
|
||||
int GetTgHitMark() { return mGObjTg.GetHitMark(); }
|
||||
int GetAtHitMark() { return mGObjAt.GetHitMark(); }
|
||||
bool ChkAtEffCounter() { return mGObjAt.ChkEffCounter(); }
|
||||
bool ChkTgEffCounter() { return mGObjTg.ChkEffCounter(); }
|
||||
void ClrAtEffCounter() { mGObjAt.ClrEffCounter(); }
|
||||
void ClrTgEffCounter() { mGObjTg.ClrEffCounter(); }
|
||||
void ClrCoEffCounter() { mGObjCo.ClrEffCounter(); }
|
||||
void SetAtEffCounterTimer() { mGObjAt.SetEffCounterTimer(); }
|
||||
void SetTgEffCounterTimer() { mGObjTg.SetEffCounterTimer(); }
|
||||
void SubtractAtEffCounter() { mGObjAt.SubtractEffCounter(); }
|
||||
void SubtractTgEffCounter() { mGObjTg.SubtractEffCounter(); }
|
||||
void SubtractCoEffCounter() { mGObjCo.SubtractEffCounter(); }
|
||||
void OnTgShieldHit() { mGObjTg.OnRPrm(2); }
|
||||
void OffTgShieldHit() { mGObjTg.OffRPrm(2); }
|
||||
void OnAtShieldHit() { mGObjAt.OnRPrm(1); }
|
||||
void OffAtShieldHit() { mGObjAt.OffRPrm(1); }
|
||||
void OffTgMagneHit() { mGObjTg.OffRPrm(4); }
|
||||
void SetTgRVec(cXyz& vec) { mGObjTg.SetRVec(vec); }
|
||||
void SetAtRVec(cXyz& vec) { mGObjAt.SetRVec(vec); }
|
||||
void SetTgHitPos(cXyz& pos) { mGObjTg.SetHitPos(pos); }
|
||||
void SetAtHitPos(cXyz& pos) { mGObjAt.SetHitPos(pos); }
|
||||
|
||||
protected:
|
||||
/* 0x050 */ dCcD_GObjAt mGObjAt;
|
||||
/* 0x094 */ dCcD_GObjTg mGObjTg;
|
||||
/* 0x0DC */ dCcD_GObjCo mGObjCo;
|
||||
}; // Size = 0xF8
|
||||
|
||||
STATIC_ASSERT(sizeof(dCcD_GObjInf) == 0xF8);
|
||||
|
||||
// Cylinder
|
||||
class dCcD_Cyl : public dCcD_GObjInf, public cCcD_CylAttr {
|
||||
public:
|
||||
void Set(dCcD_SrcCyl const&);
|
||||
cCcD_ShapeAttr* GetShapeAttr();
|
||||
void StartCAt(cXyz&);
|
||||
void MoveCAt(cXyz&);
|
||||
void MoveCTg(cXyz&);
|
||||
virtual ~dCcD_Cyl() {}
|
||||
dCcD_Cyl() {}
|
||||
}; // Size = 0x130
|
||||
|
||||
// Sphere
|
||||
class dCcD_Sph : public dCcD_GObjInf, public cCcD_SphAttr {
|
||||
public:
|
||||
dCcD_Sph() {}
|
||||
void Set(dCcD_SrcSph const&);
|
||||
void StartCAt(cXyz&);
|
||||
void MoveCAt(cXyz&);
|
||||
virtual cCcD_ShapeAttr* GetShapeAttr();
|
||||
virtual ~dCcD_Sph() {}
|
||||
}; // Size = 0x12C
|
||||
|
||||
// Capsule
|
||||
class dCcD_Cps : public dCcD_GObjInf, public cCcD_CpsAttr {
|
||||
public:
|
||||
void Set(dCcD_SrcCps const&);
|
||||
cCcD_ShapeAttr* GetShapeAttr();
|
||||
void CalcAtVec();
|
||||
void CalcTgVec();
|
||||
virtual ~dCcD_Cps() {}
|
||||
dCcD_Cps() {}
|
||||
}; // Size = 0x138
|
||||
|
||||
// Triangle
|
||||
class dCcD_Tri : public dCcD_GObjInf, public cCcD_TriAttr {
|
||||
public:
|
||||
void Set(dCcD_SrcTri const&);
|
||||
cCcD_ShapeAttr* GetShapeAttr();
|
||||
virtual ~dCcD_Tri() {}
|
||||
dCcD_Tri() {}
|
||||
};
|
||||
|
||||
dCcD_GObjInf* dCcD_GetGObjInf(cCcD_Obj* param_0);
|
||||
|
||||
#endif /* D_CC_D_CC_D_H */
|
||||
+143
-42
@@ -1,13 +1,17 @@
|
||||
#ifndef D_COM_D_COM_INF_GAME_H
|
||||
#define D_COM_D_COM_INF_GAME_H
|
||||
|
||||
#include "d/d_attention.h"
|
||||
#include "d/d_bg_s.h"
|
||||
#include "d/d_cc_s.h"
|
||||
#include "d/d_detect.h"
|
||||
#include "d/d_drawlist.h"
|
||||
#include "d/d_event.h"
|
||||
#include "d/d_event_manager.h"
|
||||
#include "d/d_resorce.h"
|
||||
#include "d/d_save.h"
|
||||
#include "d/d_stage.h"
|
||||
#include "d/d_vibration.h"
|
||||
|
||||
class JKRArchive;
|
||||
class JKRExpHeap;
|
||||
@@ -27,6 +31,22 @@ class dTimer_c;
|
||||
class camera_class;
|
||||
class J2DOrthoGraph;
|
||||
|
||||
class __d_timer_info_c {
|
||||
public:
|
||||
__d_timer_info_c() {
|
||||
mTimerMode = -1;
|
||||
mTimerLimitTimeMs = 0;
|
||||
mTimerNowTimeMs = 0;
|
||||
mTimerPtr = NULL;
|
||||
}
|
||||
|
||||
/* 0x00 */ dTimer_c* mTimerPtr;
|
||||
/* 0x04 */ s32 mTimerNowTimeMs;
|
||||
/* 0x08 */ s32 mTimerLimitTimeMs;
|
||||
/* 0x0C */ s32 mTimerMode;
|
||||
/* 0x10 */ u8 mTimerType;
|
||||
};
|
||||
|
||||
class dADM {
|
||||
public:
|
||||
/* 0x00 */ int mBlockCount;
|
||||
@@ -41,37 +61,6 @@ public:
|
||||
virtual ~dADM();
|
||||
};
|
||||
|
||||
// setup properly later
|
||||
struct dAttention_c {
|
||||
u8 temp[0x190];
|
||||
};
|
||||
|
||||
struct dVibration_c {
|
||||
u8 temp[0x84];
|
||||
};
|
||||
|
||||
struct dDetect_c {
|
||||
u8 temp[0x14];
|
||||
};
|
||||
|
||||
struct dDlst_list_c {
|
||||
u8 temp[0x16234];
|
||||
};
|
||||
|
||||
class dDlst_window_c {
|
||||
public:
|
||||
/* 0x00 */ f32 mXOrig;
|
||||
/* 0x04 */ f32 mYOrig;
|
||||
/* 0x08 */ f32 mWidth;
|
||||
/* 0x0C */ f32 mHeight;
|
||||
/* 0x10 */ f32 mNearZ;
|
||||
/* 0x14 */ f32 mFarZ;
|
||||
/* 0x18 */ f32 mScissorXOrig;
|
||||
/* 0x1C */ f32 mScissorYOrig;
|
||||
/* 0x20 */ f32 mScissorWidth;
|
||||
/* 0x24 */ f32 mScissorHeight;
|
||||
};
|
||||
|
||||
class dComIfG_camera_info_class {
|
||||
public:
|
||||
dComIfG_camera_info_class() {}
|
||||
@@ -85,8 +74,9 @@ public:
|
||||
/* 0x08 */ u32 mCameraAttentionStatus;
|
||||
/* 0x0C */ f32 mCameraZoomScale;
|
||||
/* 0x10 */ f32 mCameraZoomForcus;
|
||||
/* 0x14 */ u8 field_0x14[0x34 - 0x14];
|
||||
};
|
||||
STATIC_ASSERT(sizeof(dComIfG_camera_info_class) == 0x14);
|
||||
STATIC_ASSERT(sizeof(dComIfG_camera_info_class) == 0x34);
|
||||
|
||||
class dComIfG_play_c {
|
||||
public:
|
||||
@@ -95,7 +85,7 @@ public:
|
||||
void ct();
|
||||
void init();
|
||||
void itemInit();
|
||||
void getLayerNo(int);
|
||||
int getLayerNo(int i_roomNo);
|
||||
void createParticle();
|
||||
void createDemo();
|
||||
void removeDemo();
|
||||
@@ -123,6 +113,27 @@ public:
|
||||
|
||||
~dComIfG_play_c();
|
||||
|
||||
const char* getStartStageName() { return mCurStage.getName(); }
|
||||
s8 getStartStageRoomNo() { return mCurStage.getRoomNo(); }
|
||||
s8 getStartStageLayer() { return mCurStage.getLayer(); }
|
||||
s16 getStartStagePoint() { return mCurStage.getPoint(); }
|
||||
void setStartStageLayer(s8 layer) { mCurStage.setLayer(layer); }
|
||||
|
||||
const char* getNextStageName() { return mNextStage.getName(); }
|
||||
dStage_startStage_c* getNextStartStage() { return &mNextStage; }
|
||||
s8 getNextStageRoomNo() { return mNextStage.getRoomNo(); }
|
||||
s8 getNextStageLayer() { return mNextStage.getLayer(); }
|
||||
s16 getNextStagePoint() { return mNextStage.getPoint(); }
|
||||
s8 getNextStageWipe() { return mNextStage.getWipe(); }
|
||||
bool isEnableNextStage() { return mNextStage.isEnable(); }
|
||||
void offEnableNextStage() { mNextStage.offEnable(); }
|
||||
void setNextStage(const char* i_stageName, s8 i_roomNo, s16 i_point, s8 i_layer, s8 i_wipe) {
|
||||
mNextStage.set(i_stageName, i_roomNo, i_point, i_layer, i_wipe);
|
||||
}
|
||||
|
||||
fopAc_ac_c* getPlayerPtr(int idx) { return (fopAc_ac_c*)mpPlayerPtr[idx]; }
|
||||
fopAc_ac_c* getPlayer(int idx) { return (fopAc_ac_c*)mpPlayer[idx]; }
|
||||
|
||||
/* 0x0000 */ dBgS mBgS;
|
||||
/* 0x1404 */ dCcS mCcS;
|
||||
/* 0x3DF8 */ dADM mADM;
|
||||
@@ -175,10 +186,7 @@ public:
|
||||
/* 0x4841 */ u8 field_0x4841;
|
||||
/* 0x4842 */ s16 mVrboxFlags;
|
||||
/* 0x4844 */ dDlst_window_c mDlstWindow[1];
|
||||
/* 0x486C */ u8 mCurCameraInfo;
|
||||
/* 0x486D */ u8 field_0x486D[0x4870 - 0x486D];
|
||||
/* 0x4870 */ dComIfG_camera_info_class mCameraInfo[1];
|
||||
/* 0x4884 */ u8 field_0x4884[0x48A4 - 0x4884];
|
||||
/* 0x48A4 */ daPy_py_c* mpPlayer[1];
|
||||
/* 0x48A8 */ s8 mCurCamera[1];
|
||||
/* 0x48A9 */ u8 field_0x48A9[0x48AC - 0x48A9];
|
||||
@@ -277,12 +285,7 @@ public:
|
||||
/* 0x4A24 */ daAgb_c* mpAgb;
|
||||
/* 0x4A28 */ u32 mPlayerStatus[2][2];
|
||||
/* 0x4A38 */ u8 field_0x4A38[0x4A40 - 0x4A38];
|
||||
/* 0x4A40 */ dTimer_c* mpRestartTimer;
|
||||
/* 0x4A44 */ int field_0x4a44;
|
||||
/* 0x4A48 */ int field_0x4a48;
|
||||
/* 0x4A4C */ int field_0x4a4c;
|
||||
/* 0x4A50 */ u16 field_0x4a50;
|
||||
/* 0x4A52 */ u8 field_0x4A52[0x4A54 - 0x4A52];
|
||||
/* 0x4A40 */ __d_timer_info_c mTimerInfo;
|
||||
/* 0x4A54 */ dDlst_window_c* field_0x4a54;
|
||||
/* 0x4A58 */ camera_class* field_0x4a58;
|
||||
/* 0x4A5C */ dDlst_window_c* field_0x4a5c;
|
||||
@@ -311,6 +314,8 @@ public:
|
||||
/* 0x1D1C1 */ u8 field_0x1d1c1;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(dComIfG_inf_c) == 0x1D1C8);
|
||||
|
||||
extern dComIfG_inf_c g_dComIfG_gameInfo;
|
||||
|
||||
/**
|
||||
@@ -333,18 +338,114 @@ inline BOOL dComIfGs_isEventBit(u16 id) {
|
||||
return g_dComIfG_gameInfo.info.getEvent().isEventBit(id);
|
||||
}
|
||||
|
||||
inline void dComIfGs_setRestartRoomParam(u32 i_param) {
|
||||
g_dComIfG_gameInfo.info.getRestart().setRoomParam(i_param);
|
||||
}
|
||||
|
||||
inline void dComIfGs_setStartPoint(s16 i_point) {
|
||||
g_dComIfG_gameInfo.info.getRestart().setStartPoint(i_point);
|
||||
}
|
||||
|
||||
inline int dComIfGs_getTriforceNum() {
|
||||
return g_dComIfG_gameInfo.info.getPlayer().getCollect().getTriforceNum();
|
||||
}
|
||||
|
||||
/**
|
||||
* === PLAY ===
|
||||
*/
|
||||
|
||||
void dComIfGp_setNextStage(const char* i_stageName, s16 i_point, s8 i_roomNo, s8 i_layer,
|
||||
f32 i_lastSpeed, u32 i_lastMode, int, s8 i_wipe);
|
||||
|
||||
inline const char* dComIfGp_getStartStageName() {
|
||||
return g_dComIfG_gameInfo.play.getStartStageName();
|
||||
}
|
||||
|
||||
inline s8 dComIfGp_getStartStageRoomNo() {
|
||||
return g_dComIfG_gameInfo.play.getStartStageRoomNo();
|
||||
}
|
||||
|
||||
inline s8 dComIfGp_getStartStageLayer() {
|
||||
return g_dComIfG_gameInfo.play.getStartStageLayer();
|
||||
}
|
||||
|
||||
inline s16 dComIfGp_getStartStagePoint() {
|
||||
return g_dComIfG_gameInfo.play.getStartStagePoint();
|
||||
}
|
||||
|
||||
inline void dComIfGp_offEnableNextStage() {
|
||||
g_dComIfG_gameInfo.play.offEnableNextStage();
|
||||
}
|
||||
|
||||
inline const char* dComIfGp_getNextStageName() {
|
||||
return g_dComIfG_gameInfo.play.getNextStageName();
|
||||
}
|
||||
|
||||
inline dStage_startStage_c* dComIfGp_getNextStartStage() {
|
||||
return g_dComIfG_gameInfo.play.getNextStartStage();
|
||||
}
|
||||
|
||||
inline s8 dComIfGp_getNextStageRoomNo() {
|
||||
return g_dComIfG_gameInfo.play.getNextStageRoomNo();
|
||||
}
|
||||
|
||||
inline s8 dComIfGp_getNextStageLayer() {
|
||||
return g_dComIfG_gameInfo.play.getNextStageLayer();
|
||||
}
|
||||
|
||||
inline s32 dComIfGp_getNextStageWipe() {
|
||||
return g_dComIfG_gameInfo.play.getNextStageWipe();
|
||||
}
|
||||
|
||||
inline bool dComIfGp_isEnableNextStage() {
|
||||
return g_dComIfG_gameInfo.play.isEnableNextStage();
|
||||
}
|
||||
|
||||
inline s16 dComIfGp_getNextStagePoint() {
|
||||
return g_dComIfG_gameInfo.play.getNextStagePoint();
|
||||
}
|
||||
|
||||
inline fopAc_ac_c* dComIfGp_getPlayer(int idx) {
|
||||
return g_dComIfG_gameInfo.play.getPlayer(idx);
|
||||
}
|
||||
|
||||
inline daPy_lk_c* daPy_getPlayerLinkActorClass() {
|
||||
return (daPy_lk_c*)g_dComIfG_gameInfo.play.getPlayerPtr(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* === RESOURCE ===
|
||||
*/
|
||||
|
||||
class request_of_phase_process_class;
|
||||
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* arc_name);
|
||||
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* resName, JKRHeap* heap);
|
||||
int dComIfG_resDelete(request_of_phase_process_class* i_phase, char const* resName);
|
||||
|
||||
inline int dComIfG_setObjectRes(const char* name, u8 param_1, JKRHeap* heap) {
|
||||
return g_dComIfG_gameInfo.mResControl.setObjectRes(name, param_1, heap);
|
||||
}
|
||||
|
||||
inline int dComIfG_setObjectRes(const char* name, void* param_1, u32 param_2) {
|
||||
return g_dComIfG_gameInfo.mResControl.setObjectRes(name, param_1, param_2, NULL);
|
||||
}
|
||||
|
||||
inline int dComIfG_setStageRes(const char* name, JKRHeap* heap) {
|
||||
return g_dComIfG_gameInfo.mResControl.setStageRes(name, heap);
|
||||
}
|
||||
|
||||
inline int dComIfG_syncObjectRes(const char* name) {
|
||||
return g_dComIfG_gameInfo.mResControl.syncObjectRes(name);
|
||||
}
|
||||
|
||||
inline int dComIfG_syncStageRes(const char* name) {
|
||||
return g_dComIfG_gameInfo.mResControl.syncStageRes(name);
|
||||
}
|
||||
|
||||
inline int dComIfG_deleteObjectResMain(const char* res) {
|
||||
return g_dComIfG_gameInfo.mResControl.deleteObjectRes(res);
|
||||
}
|
||||
|
||||
inline int dComIfG_deleteStageRes(const char* res) {
|
||||
return g_dComIfG_gameInfo.mResControl.deleteStageRes(res);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
#ifndef D_D_DETECT_H
|
||||
#define D_D_DETECT_H
|
||||
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
|
||||
class dDetectPlace_c {
|
||||
public:
|
||||
/* 0x00 */ cXyz mPos;
|
||||
/* 0x0C */ s16 mEnable;
|
||||
};
|
||||
|
||||
class dDetect_c {
|
||||
public:
|
||||
dDetect_c();
|
||||
~dDetect_c();
|
||||
|
||||
void proc();
|
||||
void chk_quake(const cXyz*) const;
|
||||
void set_quake(const cXyz*);
|
||||
void chk_quake_area(const cXyz*) const;
|
||||
void search_tag_light(void*, void*);
|
||||
void chk_light(const cXyz*) const;
|
||||
void chk_attention(cXyz*) const;
|
||||
|
||||
/* 0x00 */ dDetectPlace_c mPlace[1];
|
||||
/* 0x10 */ s16 mTimer;
|
||||
}; // Size: 0x14
|
||||
|
||||
#endif /* D_D_DETECT_H */
|
||||
@@ -0,0 +1,227 @@
|
||||
#ifndef D_D_DRAWLIST_H
|
||||
#define D_D_DRAWLIST_H
|
||||
|
||||
#include "f_op/f_op_view.h"
|
||||
#include "global.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
|
||||
class dDlst_base_c {
|
||||
public:
|
||||
dDlst_base_c() {}
|
||||
virtual void draw();
|
||||
};
|
||||
|
||||
class dDlst_window_c {
|
||||
public:
|
||||
dDlst_window_c() {}
|
||||
~dDlst_window_c() {}
|
||||
void setViewPort(f32, f32, f32, f32, f32, f32);
|
||||
void setScissor(f32, f32, f32, f32);
|
||||
|
||||
view_port_class* getViewPort() { return &mViewport; }
|
||||
|
||||
private:
|
||||
/* 0x00 */ view_port_class mViewport;
|
||||
/* 0x28 */ s8 mCameraID;
|
||||
/* 0x29 */ s8 mMode;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(dDlst_window_c) == 0x2C);
|
||||
|
||||
class dDlst_peekZ_c {
|
||||
public:
|
||||
struct dDlst_peekZ_entry {
|
||||
/* 0x0 */ s16 x;
|
||||
/* 0x2 */ s16 y;
|
||||
/* 0x4 */ u32* dst;
|
||||
};
|
||||
|
||||
dDlst_peekZ_c() { mCount = 0; }
|
||||
int newData(s16, s16, u32*);
|
||||
void peekData();
|
||||
|
||||
/* 0x0 */ u8 mCount;
|
||||
/* 0x4 */ dDlst_peekZ_entry mEntries[50];
|
||||
}; // Size: 0x194
|
||||
|
||||
STATIC_ASSERT(sizeof(dDlst_peekZ_c) == 0x194);
|
||||
|
||||
class dDlst_shadowSimple_c {
|
||||
public:
|
||||
void draw();
|
||||
void set(cXyz*, f32, f32, cXyz*, s16, f32, GXTexObj*);
|
||||
dDlst_shadowSimple_c();
|
||||
|
||||
/* 0x00 */ u8 mAlpha;
|
||||
/* 0x04 */ GXTexObj* mpTexObj;
|
||||
/* 0x08 */ Mtx mVolumeMtx;
|
||||
/* 0x38 */ Mtx mMtx;
|
||||
}; // Size: 0x68
|
||||
|
||||
struct cBgD_Vtx_t;
|
||||
|
||||
class dDlst_shadowTri_c {
|
||||
public:
|
||||
~dDlst_shadowTri_c() {}
|
||||
dDlst_shadowTri_c() {}
|
||||
|
||||
/* 0x0 */ cXyz mPos[3];
|
||||
};
|
||||
|
||||
class dDlst_shadowPoly_c {
|
||||
public:
|
||||
dDlst_shadowPoly_c() {
|
||||
reset();
|
||||
}
|
||||
|
||||
void reset() { mCount = 0; }
|
||||
|
||||
int set(cBgD_Vtx_t*, u16, u16, u16, cM3dGPla*);
|
||||
void draw();
|
||||
|
||||
virtual dDlst_shadowTri_c* getTri() = 0;
|
||||
virtual s32 getTriMax() = 0;
|
||||
|
||||
/* 0x4 */ u16 mCount;
|
||||
/* 0x6 */ u8 field_0x6[2];
|
||||
};
|
||||
|
||||
class dDlst_shadowRealPoly_c : public dDlst_shadowPoly_c {
|
||||
public:
|
||||
virtual dDlst_shadowTri_c* getTri();
|
||||
virtual s32 getTriMax();
|
||||
|
||||
/* 0x8 */ dDlst_shadowTri_c mShadowTri[256];
|
||||
};
|
||||
|
||||
class J3DCallBackPacket;
|
||||
class dKy_tevstr_c;
|
||||
class dDlst_shadowReal_c {
|
||||
public:
|
||||
void reset();
|
||||
void imageDraw(f32 (*)[4]);
|
||||
void draw();
|
||||
u32 set(u32, J3DModel*, cXyz*, f32, f32, dKy_tevstr_c*, f32, f32);
|
||||
bool add(J3DModel*);
|
||||
~dDlst_shadowReal_c() {}
|
||||
dDlst_shadowReal_c() { mState = 0; }
|
||||
|
||||
bool isNoUse() { return mState == 0; }
|
||||
bool isUse() { return mState == 1; }
|
||||
bool checkKey(u32 i_key) { return mKey == i_key; }
|
||||
|
||||
private:
|
||||
/* 0x0000 */ u8 mState;
|
||||
/* 0x0001 */ u8 field_0x1;
|
||||
/* 0x0002 */ u8 mModelNum;
|
||||
/* 0x0003 */ u8 field_0x3;
|
||||
/* 0x0004 */ u32 mKey;
|
||||
/* 0x0008 */ Mtx mViewMtx;
|
||||
/* 0x0038 */ Mtx44 mRenderProjMtx;
|
||||
/* 0x0078 */ Mtx mReceiverProjMtx;
|
||||
/* 0x00A8 */ void* mpTexData;
|
||||
/* 0x00AC */ dDlst_shadowRealPoly_c mShadowRealPoly;
|
||||
/* 0x24B4 */ GXTexObj mTexData;
|
||||
/* 0x24D4 */ J3DDrawBuffer* mpDrawBuffer;
|
||||
/* 0x24D8 */ J3DCallBackPacket* mpPacket;
|
||||
/* 0x24DC */ J3DModel* mpModels[26];
|
||||
}; // Size: 0x2544
|
||||
|
||||
class dDlst_shadowControl_c {
|
||||
public:
|
||||
void init();
|
||||
void reset();
|
||||
void imageDraw(f32 (*)[4]);
|
||||
void draw(f32 (*)[4]);
|
||||
int setReal(u32, s8, J3DModel*, cXyz*, f32, f32, dKy_tevstr_c*);
|
||||
bool addReal(u32, J3DModel*);
|
||||
int setSimple(cXyz*, f32, f32, cXyz*, s16, f32, GXTexObj*);
|
||||
static void setSimpleTex(ResTIMG const*);
|
||||
|
||||
static GXTexObj* getSimpleTex() { return &mSimpleTexObj; }
|
||||
|
||||
static GXTexObj mSimpleTexObj;
|
||||
|
||||
private:
|
||||
/* 0x00000 */ u8 mRealNum;
|
||||
/* 0x00001 */ u8 mSimpleNum;
|
||||
/* 0x00004 */ dDlst_shadowSimple_c mSimple[128];
|
||||
/* 0x03404 */ int mNextID;
|
||||
/* 0x03408 */ dDlst_shadowReal_c mReal[8];
|
||||
}; // Size: 0x15E28
|
||||
|
||||
STATIC_ASSERT(sizeof(dDlst_shadowControl_c) == 0x15E28);
|
||||
|
||||
class dDlst_mirrorPacket : public J3DPacket {
|
||||
public:
|
||||
/* 0x0010 */ u8 field_0x0010[0x0040 - 0x0010];
|
||||
/* 0x0040 */ Mtx mPosMtx;
|
||||
/* 0x0070 */ u8 field_0x0070[0x0080 - 0x0070];
|
||||
/* 0x0080 */ Mtx mTexMtx;
|
||||
/* 0x00B0 */ dDlst_shadowRealPoly_c mShadowPoly;
|
||||
/* 0x24B8 */ GXTexObj mTexObj;
|
||||
/* 0x24D8 */ u8 mAlpha;
|
||||
};
|
||||
|
||||
struct view_port_class;
|
||||
struct view_class;
|
||||
struct camera_class;
|
||||
struct dDlst_alphaModel_c;
|
||||
|
||||
class dDlst_list_c {
|
||||
public:
|
||||
dDlst_list_c();
|
||||
~dDlst_list_c();
|
||||
|
||||
void init();
|
||||
void reset();
|
||||
void entryZSortXluDrawList(J3DDrawBuffer*, J3DPacket*, cXyz&);
|
||||
void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*);
|
||||
void draw(dDlst_base_c**, dDlst_base_c**);
|
||||
void wipeIn(f32, GXColor&);
|
||||
void wipeIn(f32);
|
||||
void calcWipe();
|
||||
void set2DOpa(dDlst_base_c*);
|
||||
|
||||
private:
|
||||
/* 0x00000 */ J3DDrawBuffer* mpBufSkyOpa;
|
||||
/* 0x00004 */ J3DDrawBuffer* mpBufSkyXlu;
|
||||
/* 0x00008 */ J3DDrawBuffer* mpLinkBuf;
|
||||
/* 0x0000C */ J3DDrawBuffer* field_0x0000c;
|
||||
/* 0x00010 */ J3DDrawBuffer* field_0x00010;
|
||||
/* 0x00014 */ J3DDrawBuffer* mpBufWorldOpa;
|
||||
/* 0x00018 */ J3DDrawBuffer* mpBufWorldXlu;
|
||||
/* 0x0001C */ J3DDrawBuffer* mpBufInvisibleModelOpa;
|
||||
/* 0x00020 */ J3DDrawBuffer* mpBufInvisibleModelXlu;
|
||||
/* 0x00024 */ J3DDrawBuffer* mpWetherFxBuffer;
|
||||
/* 0x00028 */ J3DDrawBuffer* mpBufInvisibleModelMaskOffOpa;
|
||||
/* 0x0002C */ J3DDrawBuffer* mpBufInvisibleModelMaskOffXlu;
|
||||
/* 0x00030 */ J3DDrawBuffer* field_0x00030;
|
||||
/* 0x00034 */ J3DDrawBuffer* field_0x00034;
|
||||
/* 0x00038 */ J3DDrawBuffer* field_0x00038;
|
||||
/* 0x0003C */ u8 field_0x0003C[0x00050 - 0x0003C];
|
||||
/* 0x00050 */ void* field_0x00050;
|
||||
/* 0x00054 */ u8 field_0x00054[0x00094 - 0x00054];
|
||||
/* 0x00094 */ dDlst_base_c** field_0x00094;
|
||||
/* 0x00098 */ void* field_0x00098;
|
||||
/* 0x0009C */ dDlst_base_c* mp2DArr[64];
|
||||
/* 0x0019C */ dDlst_base_c** mp2DOpa;
|
||||
/* 0x001A0 */ dDlst_base_c*** mp2DOpaEnd;
|
||||
/* 0x001A4 */ u8 field_0x001A4[0x00224 - 0x001A4];
|
||||
/* 0x00224 */ dDlst_base_c** field_0x00224;
|
||||
/* 0x00228 */ dDlst_base_c*** field_0x00228;
|
||||
/* 0x0022C */ dDlst_window_c* field_0x0022c;
|
||||
/* 0x00230 */ dDlst_window_c* field_0x00230;
|
||||
/* 0x00234 */ camera_class* mpCamera;
|
||||
/* 0x00238 */ u8 field_0x00238[0x00244 - 0x00238];
|
||||
/* 0x00244 */ dDlst_alphaModel_c* mpAlphaModel0;
|
||||
/* 0x00248 */ dDlst_alphaModel_c* mpAlphaModel2;
|
||||
/* 0x0024C */ dDlst_alphaModel_c* mpAlphaModel1;
|
||||
/* 0x00250 */ dDlst_shadowControl_c mShadowControl;
|
||||
/* 0x16078 */ mDoExt_3DlineMatSortPacket m3DLineMatSortPacket[2];
|
||||
/* 0x160A0 */ dDlst_peekZ_c mPeekZ;
|
||||
}; // Size: 0x16234
|
||||
|
||||
STATIC_ASSERT(sizeof(dDlst_list_c) == 0x16234);
|
||||
|
||||
#endif /* D_D_DRAWLIST_H */
|
||||
@@ -64,6 +64,8 @@ public:
|
||||
|
||||
extern dScnKy_env_light_c g_env_light;
|
||||
|
||||
int dKy_getdaytime_hour();
|
||||
BOOL dKy_checkEventNightStop();
|
||||
|
||||
|
||||
#endif /* D_KANKYO_D_KANKYO_H */
|
||||
|
||||
+18
-6
@@ -302,8 +302,12 @@ STATIC_ASSERT(sizeof(dSv_player_status_b_c) == 0x18);
|
||||
|
||||
class dSv_player_return_place_c {
|
||||
public:
|
||||
/* 80058B84 */ void init();
|
||||
/* 80058BC8 */ void set(char const*, s8, u8);
|
||||
void init();
|
||||
void set(char const*, s8, u8);
|
||||
|
||||
s8 getRoomNo() const { return mRoomNo; }
|
||||
u8 getPlayerStatus() const { return mPlayerStatus; }
|
||||
char* getName() { return mName; }
|
||||
|
||||
/* 0x00 */ char mName[8];
|
||||
/* 0x08 */ s8 mRoomNo;
|
||||
@@ -743,17 +747,26 @@ public:
|
||||
/* 8005D4C8 */ void setRestartOption(s8);
|
||||
/* 8005D584 */ void setRestartOption(s8, cXyz*, s16, s8);
|
||||
|
||||
void setRoomParam(u32 param) { mRestartParam = param; }
|
||||
void setStartPoint(s16 point) { mStartCode = point; }
|
||||
void setLastSceneInfo(f32 speed, u32 mode) {
|
||||
mLastSpeedF = speed;
|
||||
mLastMode = mode;
|
||||
}
|
||||
|
||||
/* 0x00 */ s8 mRestartRoom;
|
||||
/* 0x01 */ u8 field_0x1;
|
||||
/* 0x02 */ s8 mRoomNo;
|
||||
/* 0x04 */ s16 field_0x4;
|
||||
/* 0x06 */ s16 mRoomAngleY;
|
||||
/* 0x08 */ cXyz mRoomPos;
|
||||
/* 0x14 */ u16 mStartCode;
|
||||
/* 0x14 */ s16 mStartCode;
|
||||
/* 0x16 */ s16 mRestartAngle;
|
||||
/* 0x18 */ cXyz mRestartPos;
|
||||
/* 0x24 */ u32 mRestartParam;
|
||||
}; // Size: 0x28
|
||||
/* 0x28 */ f32 mLastSpeedF;
|
||||
/* 0x2C */ u32 mLastMode;
|
||||
}; // Size: 0x30
|
||||
|
||||
class dSv_turnRestart_c {
|
||||
public:
|
||||
@@ -810,6 +823,7 @@ public:
|
||||
|
||||
dSv_player_c& getPlayer() { return mSavedata.getPlayer(); }
|
||||
dSv_event_c& getEvent() { return mSavedata.getEvent(); }
|
||||
dSv_restart_c& getRestart() { return mRestart; }
|
||||
|
||||
static const int MEMORY_SWITCH = 0x80;
|
||||
static const int DAN_SWITCH = 0x40;
|
||||
@@ -826,8 +840,6 @@ public:
|
||||
/* 0x079C */ dSv_danBit_c mDan;
|
||||
/* 0x07A8 */ dSv_zone_c mZone[ZONE_MAX];
|
||||
/* 0x1128 */ dSv_restart_c mRestart;
|
||||
/* 0x1150 */ f32 field_0x1150;
|
||||
/* 0x1154 */ int field_0x1154;
|
||||
/* 0x1158 */ dSv_event_c mTmp;
|
||||
/* 0x1258 */ dSv_turnRestart_c mTurnRestart;
|
||||
/* 0x1290 */ u8 field_0x1290;
|
||||
|
||||
+1
-1
@@ -463,7 +463,7 @@ public:
|
||||
dStage_nextStage_c() {
|
||||
mEnable = 0; // TODO: maybe wrong
|
||||
}
|
||||
void set(const char*, s8, s16, s8, s8, u8);
|
||||
void set(const char*, s8, s16, s8, s8);
|
||||
void offEnable() { mEnable = 0; }
|
||||
s8 isEnable() const { return mEnable; }
|
||||
s8 getWipe() const { return mWipe; }
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
#ifndef D_D_VIBRATION_H
|
||||
#define D_D_VIBRATION_H
|
||||
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
|
||||
class dVibration_c {
|
||||
public:
|
||||
dVibration_c();
|
||||
~dVibration_c();
|
||||
|
||||
int Run();
|
||||
bool StartShock(int i_strength, int, cXyz);
|
||||
bool StartQuake(u8 const*, int, int, cXyz);
|
||||
bool StartQuake(int, int, cXyz);
|
||||
int StopQuake(int);
|
||||
void Kill();
|
||||
bool CheckQuake();
|
||||
void setDefault();
|
||||
void Init();
|
||||
void Pause();
|
||||
void Remove();
|
||||
|
||||
u8 temp[0x84];
|
||||
}; // Size: 0x84
|
||||
|
||||
#endif /* D_D_VIBRATION_H */
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef M_DO_AUDIO_H
|
||||
#define M_DO_AUDIO_H
|
||||
|
||||
void mDoAud_setSceneName(const char*, s32, s32);
|
||||
|
||||
#endif /* M_DO_AUDIO_H */
|
||||
@@ -70,6 +70,42 @@ private:
|
||||
|
||||
STATIC_ASSERT(sizeof(mDoExt_btkAnm) == 0x14);
|
||||
|
||||
class J3DTevColorAnm;
|
||||
class J3DTevKColorAnm;
|
||||
class mDoExt_brkAnm : public mDoExt_baseAnm {
|
||||
public:
|
||||
mDoExt_brkAnm() { mpAnm = 0; }
|
||||
/* 8000D70C */ int init(J3DMaterialTable* i_matTable, J3DAnmTevRegKey* i_brk, int i_anmPlay,
|
||||
int i_attribute, f32 i_rate, s16 i_start, s16 param_6);
|
||||
/* 8000D7A8 */ void entry(J3DMaterialTable* i_matTable, f32 i_frame);
|
||||
|
||||
void entry(J3DModelData* i_modelData) { entry(i_modelData, getFrame()); }
|
||||
void entry(J3DModelData* i_modelData, f32 i_frame) {
|
||||
entry(&i_modelData->getMaterialTable(), i_frame);
|
||||
}
|
||||
|
||||
int init(J3DModelData* i_modelData, J3DAnmTevRegKey* i_brk, int i_anmPlay, int i_attribute,
|
||||
f32 i_rate, s16 i_start, s16 param_6) {
|
||||
return init(&i_modelData->getMaterialTable(), i_brk, i_anmPlay, i_attribute, i_rate,
|
||||
i_start, param_6);
|
||||
}
|
||||
|
||||
int remove(J3DModelData* i_modelData) { return i_modelData->removeTevRegAnimator(mpAnm); }
|
||||
void entryFrame() { entryFrame(getFrame()); }
|
||||
void entryFrame(f32 frame) { mpAnm->setFrame(frame); }
|
||||
|
||||
J3DAnmTevRegKey* getBrkAnm() const { return mpAnm; }
|
||||
|
||||
private:
|
||||
/* 0x08 */ J3DAnmTevRegKey* mpAnm;
|
||||
/* 0x0C */ J3DTevColorAnm* mpCRegAnm;
|
||||
/* 0x10 */ J3DTevKColorAnm* mpKRegAnm;
|
||||
/* 0x14 */ u16 mCRegUpdateMaterialNum;
|
||||
/* 0x16 */ u16 mKRegUpdateMaterialNum;
|
||||
}; // Size: 0x18
|
||||
|
||||
STATIC_ASSERT(sizeof(mDoExt_brkAnm) == 0x18);
|
||||
|
||||
class mDoExt_bckAnm : public mDoExt_baseAnm {
|
||||
public:
|
||||
mDoExt_bckAnm() { mpMtxCalc = NULL; }
|
||||
@@ -97,6 +133,122 @@ private:
|
||||
|
||||
STATIC_ASSERT(sizeof(mDoExt_bckAnm) == 0x10);
|
||||
|
||||
class mDoExt_btpAnm : public mDoExt_baseAnm {
|
||||
public:
|
||||
mDoExt_btpAnm() { mpAnm = NULL; }
|
||||
/* 8000D54C */ int init(J3DMaterialTable* i_matTable, J3DAnmTexPattern* i_btk, int i_anmPlay,
|
||||
int i_attribute, f32 i_rate, s16 i_start, s16 param_6);
|
||||
/* 8000D5E8 */ void entry(J3DMaterialTable* i_matTable, s16 i_frame);
|
||||
|
||||
void entry(J3DModelData* i_modelData) { entry(i_modelData, getFrame()); }
|
||||
void entry(J3DModelData* i_modelData, s16 i_frame) {
|
||||
entry(&i_modelData->getMaterialTable(), i_frame);
|
||||
}
|
||||
|
||||
int init(J3DModelData* i_modelData, J3DAnmTexPattern* i_btk, int i_anmPlay, int i_attribute,
|
||||
f32 i_rate, s16 i_start, s16 param_6) {
|
||||
return init(&i_modelData->getMaterialTable(), i_btk, i_anmPlay, i_attribute, i_rate,
|
||||
i_start, param_6);
|
||||
}
|
||||
|
||||
int remove(J3DModelData* i_modelData) { return i_modelData->removeTexNoAnimator(mpAnm); }
|
||||
|
||||
private:
|
||||
/* 0x14 */ J3DAnmTexPattern* mpAnm;
|
||||
};
|
||||
|
||||
class mDoExt_blkAnm : public mDoExt_baseAnm {
|
||||
public:
|
||||
/* 8000DA08 */ int init(J3DDeformData* i_deformData, J3DAnmCluster* i_blk, int i_anmPlay,
|
||||
int i_attribute, f32 i_rate, s16 i_start, s16 param_6);
|
||||
|
||||
J3DAnmCluster* getBlkAnm() { return mpAnm; }
|
||||
|
||||
private:
|
||||
/* 0x14 */ J3DAnmCluster* mpAnm;
|
||||
};
|
||||
|
||||
class mDoExt_AnmRatioPack {
|
||||
public:
|
||||
/* 80140DF0 */ ~mDoExt_AnmRatioPack();
|
||||
/* 80140E2C */ mDoExt_AnmRatioPack();
|
||||
|
||||
void setRatio(f32 ratio) { mRatio = ratio; }
|
||||
f32 getRatio() { return mRatio; }
|
||||
J3DAnmTransform* getAnmTransform() { return mAnmTransform; }
|
||||
void setAnmTransform(J3DAnmTransform* anm) { mAnmTransform = anm; }
|
||||
|
||||
private:
|
||||
/* 0x0 */ f32 mRatio;
|
||||
/* 0x4 */ J3DAnmTransform* mAnmTransform;
|
||||
}; // Size: 0x8
|
||||
|
||||
class mDoExt_MtxCalcOldFrame {
|
||||
public:
|
||||
/* 8000F848 */ void initOldFrameMorf(f32, u16, u16);
|
||||
/* 8000F8CC */ void decOldFrameMorfCounter();
|
||||
|
||||
f32 getOldFrameRate() { return mOldFrameRate; }
|
||||
J3DTransformInfo* getOldFrameTransInfo(int i) { return &mOldFrameTransInfo[i]; }
|
||||
u16 getOldFrameStartJoint() { return mOldFrameStartJoint; }
|
||||
Quaternion* getOldFrameQuaternion(int i_no) { return &mOldFrameQuaternion[i_no]; }
|
||||
|
||||
private:
|
||||
/* 0x00 */ bool mOldFrameFlg;
|
||||
/* 0x04 */ f32 mOldFrameMorfCounter;
|
||||
/* 0x08 */ f32 field_0x8;
|
||||
/* 0x0C */ f32 mOldFrameRate;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ u16 mOldFrameStartJoint;
|
||||
/* 0x1A */ u16 mOldFrameEndJoint;
|
||||
/* 0x1C */ J3DTransformInfo* mOldFrameTransInfo;
|
||||
/* 0x20 */ Quaternion* mOldFrameQuaternion;
|
||||
}; // Size: 0x24
|
||||
|
||||
struct mDoExt_MtxCalcAnmBlendTblOld
|
||||
: public J3DMtxCalcNoAnm<J3DMtxCalcCalcTransformMaya, J3DMtxCalcJ3DSysInitMaya> {
|
||||
/* 80014EB0 */ virtual ~mDoExt_MtxCalcAnmBlendTblOld();
|
||||
/* 8000F4B0 */ virtual void calc();
|
||||
|
||||
/* 0x4 */ int mNum;
|
||||
/* 0x8 */ mDoExt_AnmRatioPack* mAnmRatio;
|
||||
}; // Size: 0xC
|
||||
|
||||
struct mDoExt_MtxCalcAnmBlendTbl : public mDoExt_MtxCalcAnmBlendTblOld {
|
||||
/* 800D00BC */ J3DAnmTransform* getAnm(int);
|
||||
|
||||
/* 80014F3C */ virtual ~mDoExt_MtxCalcAnmBlendTbl();
|
||||
/* 8000F26C */ virtual void calc();
|
||||
|
||||
/* 0xC */ mDoExt_MtxCalcOldFrame* mOldFrame;
|
||||
};
|
||||
|
||||
class mDoExt_McaMorfCallBack1_c {
|
||||
public:
|
||||
virtual void execute(u16, J3DTransformInfo*) = 0;
|
||||
};
|
||||
|
||||
class mDoExt_3DlineMat_c {
|
||||
public:
|
||||
/* 0x0 */ void* field_0x0;
|
||||
/* 0x4 */ mDoExt_3DlineMat_c* field_0x4;
|
||||
};
|
||||
|
||||
class mDoExt_3DlineMatSortPacket : public J3DPacket {
|
||||
public:
|
||||
mDoExt_3DlineMatSortPacket() { mp3DlineMat = NULL; }
|
||||
|
||||
void reset() { mp3DlineMat = NULL; }
|
||||
|
||||
void setMat(mDoExt_3DlineMat_c*);
|
||||
virtual void draw();
|
||||
virtual ~mDoExt_3DlineMatSortPacket();
|
||||
|
||||
private:
|
||||
/* 0x10 */ mDoExt_3DlineMat_c* mp3DlineMat;
|
||||
};
|
||||
|
||||
J3DModel* mDoExt_J3DModel__create(J3DModelData* i_modelData, u32 i_modelFlag, u32 i_differedDlistFlag);
|
||||
|
||||
void mDoExt_modelUpdate(J3DModel* i_model);
|
||||
|
||||
+162
-21
@@ -4,7 +4,13 @@
|
||||
//
|
||||
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "MSL_C/string.h"
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/d_com_lib_game.h"
|
||||
#include "f_op/f_op_scene_mng.h"
|
||||
#include "m_Do/m_Do_audio.h"
|
||||
|
||||
class J3DModel;
|
||||
|
||||
@@ -96,8 +102,84 @@ void dComIfG_play_c::itemInit() {
|
||||
}
|
||||
|
||||
/* 80052400-8005286C .text getLayerNo__14dComIfG_play_cFi */
|
||||
void dComIfG_play_c::getLayerNo(int) {
|
||||
/* Nonmatching */
|
||||
// almost
|
||||
int dComIfG_play_c::getLayerNo(int i_roomNo) {
|
||||
int layer = dComIfGp_getStartStageLayer();
|
||||
|
||||
if (layer < 0) {
|
||||
int hour = dKy_getdaytime_hour();
|
||||
if (dKy_checkEventNightStop()) {
|
||||
layer = 1;
|
||||
} else {
|
||||
layer = (hour >= 6 && hour < 18) == 0;
|
||||
}
|
||||
|
||||
if (strcmp(dComIfGp_getStartStageName(), "sea") == 0) {
|
||||
if (i_roomNo == 44) {
|
||||
if (dComIfGs_isEventBit(0x520)) {
|
||||
return layer | 4;
|
||||
} else if (dComIfGs_isEventBit(0xE20)) {
|
||||
return layer | 2;
|
||||
} else if (dComIfGs_isEventBit(0x101)) {
|
||||
return 9;
|
||||
}
|
||||
} else if (i_roomNo == 11) {
|
||||
if (dComIfGs_isEventBit(0x2D01)) {
|
||||
return layer | 4;
|
||||
} else if (dKy_checkEventNightStop()) {
|
||||
return layer | 2;
|
||||
}
|
||||
} else if (i_roomNo == 1) {
|
||||
return dComIfGs_isEventBit(0x1820) ? 3 : 1;
|
||||
}
|
||||
} else if (strcmp(dComIfGp_getStartStageName(), "A_mori") == 0) {
|
||||
if (dComIfGs_isEventBit(0xF80)) {
|
||||
return layer | 2;
|
||||
}
|
||||
} else if (strcmp(dComIfGp_getStartStageName(), "Asoko") == 0) {
|
||||
if (dComIfGs_isEventBit(0x520)) {
|
||||
return layer | 2;
|
||||
}
|
||||
} else if (strcmp(dComIfGp_getStartStageName(), "Hyrule") == 0) {
|
||||
if (dComIfGs_getTriforceNum() == 8) {
|
||||
return layer | 4;
|
||||
} else if (dComIfGs_isEventBit(0x3280)) {
|
||||
return layer | 2;
|
||||
}
|
||||
} else if (strcmp(dComIfGp_getStartStageName(), "Hyroom") == 0) {
|
||||
if (dComIfGs_getTriforceNum() == 8 && !dComIfGs_isEventBit(0x2C01)) {
|
||||
return layer | 4;
|
||||
} else if (dComIfGs_isEventBit(0x3280)) {
|
||||
return layer | 2;
|
||||
} else if (dComIfGs_isEventBit(0x3B40)) {
|
||||
return layer | 6;
|
||||
}
|
||||
} else if (strcmp(dComIfGp_getStartStageName(), "kenroom") == 0) {
|
||||
if (dComIfGs_isEventBit(0x2C01) ||
|
||||
(dComIfGs_isEventBit(0x3802) && !dComIfGs_isEventBit(0x3280)))
|
||||
{
|
||||
return layer | 6;
|
||||
} else if (dComIfGs_getTriforceNum() == 8) {
|
||||
return layer | 4;
|
||||
} else if (dComIfGs_isEventBit(0x3802)) {
|
||||
return layer | 2;
|
||||
}
|
||||
} else if (strcmp(dComIfGp_getStartStageName(), "M2tower") == 0) {
|
||||
if (dComIfGs_isEventBit(0x2D01)) {
|
||||
return layer | 2;
|
||||
}
|
||||
} else if (strcmp(dComIfGp_getStartStageName(), "GanonK") == 0) {
|
||||
if (!dComIfGs_isEventBit(0x3B02)) {
|
||||
return 8;
|
||||
}
|
||||
} else if (strcmp(dComIfGp_getStartStageName(), "GTower") == 0 &&
|
||||
!dComIfGs_isEventBit(0x4002))
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
}
|
||||
|
||||
return layer;
|
||||
}
|
||||
|
||||
/* 8005286C-800528F4 .text createParticle__14dComIfG_play_cFv */
|
||||
@@ -262,8 +344,18 @@ void dComIfG_inf_c::ct() {
|
||||
}
|
||||
|
||||
/* 800531A8-8005326C .text dComIfG_changeOpeningScene__FP11scene_classs */
|
||||
void dComIfG_changeOpeningScene(scene_class*, s16) {
|
||||
/* Nonmatching */
|
||||
// matches with stringbase offset
|
||||
int dComIfG_changeOpeningScene(scene_class* i_scene, s16 i_procName) {
|
||||
dComIfGp_offEnableNextStage();
|
||||
|
||||
dComIfGp_setNextStage("sea_T", 0, 44, 0, 0.0f, 0, 1, 0);
|
||||
mDoAud_setSceneName(dComIfGp_getNextStageName(), dComIfGp_getNextStageRoomNo(),
|
||||
dComIfGp_getNextStageLayer());
|
||||
dComIfGs_setRestartRoomParam(0);
|
||||
|
||||
fopScnM_ChangeReq(i_scene, i_procName, 0, 30);
|
||||
fopScnM_ReRequest(i_procName, 0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 8005326C-800532D8 .text dComIfG_resetToOpening__FP11scene_class */
|
||||
@@ -272,36 +364,59 @@ void dComIfG_resetToOpening(scene_class*) {
|
||||
}
|
||||
|
||||
/* 800532D8-80053330 .text phase_1__FPc */
|
||||
void phase_1(char*) {
|
||||
/* Nonmatching */
|
||||
// matches with stringbase
|
||||
int phase_1(char* i_arcName) {
|
||||
return !dComIfG_setObjectRes(i_arcName, (u8)0, NULL) ? cPhs_ERROR_e : cPhs_NEXT_e;
|
||||
}
|
||||
|
||||
/* 80053330-80053388 .text phase_2__FPc */
|
||||
void phase_2(char*) {
|
||||
/* Nonmatching */
|
||||
int phase_2(char* i_arcName) {
|
||||
int syncStatus = dComIfG_syncObjectRes(i_arcName);
|
||||
|
||||
if (syncStatus < 0) {
|
||||
return cPhs_ERROR_e;
|
||||
} else {
|
||||
return syncStatus > 0 ? 0 : 2;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80053388-80053390 .text phase_3__FPc */
|
||||
int phase_3(char*) {
|
||||
int phase_3(char* i_arcName) {
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
/* 80053390-800533D0 .text dComIfG_resLoad__FP30request_of_phase_process_classPCc */
|
||||
void dComIfG_resLoad(request_of_phase_process_class*, const char*) {
|
||||
/* Nonmatching */
|
||||
int dComIfG_resLoad(request_of_phase_process_class* i_phase, const char* i_arcName) {
|
||||
static int (*l_method[3])(void*) = {(int (*)(void*))phase_1, (int (*)(void*))phase_2,
|
||||
(int (*)(void*))phase_3};
|
||||
|
||||
if (i_phase->id == cPhs_NEXT_e) {
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
return dComLbG_PhaseHandler(i_phase, l_method, (void*)i_arcName);
|
||||
}
|
||||
|
||||
/* 800533D0-8005347C .text dComIfG_resDelete__FP30request_of_phase_process_classPCc */
|
||||
void dComIfG_resDelete(request_of_phase_process_class*, const char*) {
|
||||
/* Nonmatching */
|
||||
// matches with stringbase
|
||||
int dComIfG_resDelete(request_of_phase_process_class* i_phase, const char* i_resName) {
|
||||
JUT_ASSERT(1048, i_phase->id != 1);
|
||||
|
||||
if (i_phase->id == cPhs_NEXT_e) {
|
||||
dComIfG_deleteObjectResMain(i_resName);
|
||||
i_phase->id = cPhs_INIT_e;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 8005347C-800534C4 .text dComIfGp_getReverb__Fi */
|
||||
void dComIfGp_getReverb(int) {
|
||||
s8 dComIfGp_getReverb(int) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800534C4-800535B8 .text dComIfGd_setSimpleShadow2__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj */
|
||||
/* 800534C4-800535B8 .text dComIfGd_setSimpleShadow2__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj
|
||||
*/
|
||||
void dComIfGd_setSimpleShadow2(cXyz*, f32, f32, cBgS_PolyInfo&, s16, f32, _GXTexObj*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
@@ -327,8 +442,28 @@ void dComIfGp_getRoomArrow(int) {
|
||||
}
|
||||
|
||||
/* 800537C8-8005388C .text dComIfGp_setNextStage__FPCcsScScfUliSc */
|
||||
void dComIfGp_setNextStage(const char*, s16, s8, s8, f32, u32, int, s8) {
|
||||
/* Nonmatching */
|
||||
void dComIfGp_setNextStage(const char* i_stageName, s16 i_point, s8 i_roomNo, s8 i_layer,
|
||||
f32 i_lastSpeed, u32 i_lastMode, int i_setPoint, s8 i_wipe) {
|
||||
g_dComIfG_gameInfo.play.setNextStage(i_stageName, i_roomNo, i_point, i_layer, i_wipe);
|
||||
|
||||
if (daPy_getPlayerLinkActorClass() != NULL) {
|
||||
u32 mode = daPy_getPlayerLinkActorClass()->field_0x2a0;
|
||||
|
||||
if (mode & 1) {
|
||||
i_lastMode |= 0x8000;
|
||||
}
|
||||
|
||||
i_lastMode |= daPy_getPlayerLinkActorClass()->field_0x354e << 0x10;
|
||||
|
||||
if (mode & 0x8000) {
|
||||
i_lastMode |= 0x4000;
|
||||
}
|
||||
}
|
||||
|
||||
g_dComIfG_gameInfo.info.getRestart().setLastSceneInfo(i_lastSpeed, i_lastMode);
|
||||
if (i_setPoint) {
|
||||
dComIfGs_setStartPoint(i_point);
|
||||
}
|
||||
}
|
||||
|
||||
/* 8005388C-80053918 .text dComIfGs_onStageTbox__Fii */
|
||||
@@ -366,8 +501,10 @@ void dComIfGs_checkGetItemNum(u8) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80054578-8005468C .text dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj */
|
||||
void dComIfGd_setShadow(u32, s8, J3DModel*, cXyz*, f32, f32, f32, f32, cBgS_PolyInfo&, dKy_tevstr_c*, s16, f32, _GXTexObj*) {
|
||||
/* 80054578-8005468C .text
|
||||
* dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj */
|
||||
void dComIfGd_setShadow(u32, s8, J3DModel*, cXyz*, f32, f32, f32, f32, cBgS_PolyInfo&,
|
||||
dKy_tevstr_c*, s16, f32, _GXTexObj*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -393,7 +530,12 @@ void dComIfGs_setGameStartStage() {
|
||||
|
||||
/* 80054C70-80054CC0 .text dComIfGs_gameStart__Fv */
|
||||
void dComIfGs_gameStart() {
|
||||
/* Nonmatching */
|
||||
dComIfGp_offEnableNextStage();
|
||||
|
||||
s8 roomNo = g_dComIfG_gameInfo.info.getPlayer().getPlayerReturnPlace().getRoomNo();
|
||||
s16 point = g_dComIfG_gameInfo.info.getPlayer().getPlayerReturnPlace().getPlayerStatus();
|
||||
char* name = g_dComIfG_gameInfo.info.getPlayer().getPlayerReturnPlace().getName();
|
||||
dComIfGp_setNextStage(name, point, roomNo, -1, 0.0f, 0, 1, 0);
|
||||
}
|
||||
|
||||
/* 80054CC0-80054E9C .text dComIfGs_copyPlayerRecollectionData__Fv */
|
||||
@@ -420,4 +562,3 @@ void dComIfGs_exchangePlayerRecollectionData() {
|
||||
void dComIfGs_setSelectEquip(int, u8) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user