mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-10 14:23:50 -04:00
d_bg_s_movebg_actor OK (#23)
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#include "d/d_drawlist.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "d/d_bg_w.h"
|
||||
|
||||
class mDoExt_MtxCalcOldFrame;
|
||||
class daPy_matAnm_c;
|
||||
@@ -242,11 +243,6 @@ struct MagicArmorAuraEntry {
|
||||
|
||||
class daPy_anmIndex_c;
|
||||
|
||||
class dBgW {
|
||||
public:
|
||||
enum PushPullLabel {};
|
||||
};
|
||||
|
||||
class daPy_lk_c : public daPy_py_c {
|
||||
public:
|
||||
enum HEAP_TYPE {};
|
||||
|
||||
+39
-35
@@ -1,9 +1,10 @@
|
||||
#ifndef D_BG_D_BG_S_H
|
||||
#define D_BG_D_BG_S_H
|
||||
|
||||
#include "global.h"
|
||||
#include "SSystem/SComponent/c_sxyz.h"
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
#include "d/d_bg_w.h"
|
||||
#include "global.h"
|
||||
|
||||
class cBgS_LinChk;
|
||||
class cBgS_GndChk;
|
||||
@@ -12,7 +13,6 @@ class cM3dGPla;
|
||||
class cBgS_ShdwDraw;
|
||||
class dBgW;
|
||||
class fopAc_ac_c;
|
||||
class dBgW_Base;
|
||||
class dBgS_Acch;
|
||||
class dBgS_RoofChk;
|
||||
class dBgS_SplGrpChk;
|
||||
@@ -20,19 +20,19 @@ class dBgS_SphChk;
|
||||
|
||||
class cBgS_ChkElm {
|
||||
public:
|
||||
/* 0x00 */ dBgW_Base* m_bgw_base_ptr;
|
||||
/* 0x00 */ cBgW* m_bgw_base_ptr;
|
||||
/* 0x04 */ bool m_used;
|
||||
/* 0x08 */ u32 m_actor_id;
|
||||
/* 0x0C */ fopAc_ac_c* m_actor_ptr;
|
||||
/* 0x10 vtable */
|
||||
|
||||
public:
|
||||
cBgS_ChkElm() { this->Init(); }
|
||||
cBgS_ChkElm() { Init(); }
|
||||
void Init();
|
||||
void Release();
|
||||
|
||||
virtual ~cBgS_ChkElm() {}
|
||||
virtual void Regist2(dBgW_Base*, unsigned int, void*);
|
||||
virtual void Regist2(cBgW*, u32, void*);
|
||||
|
||||
bool ChkUsed() const { return m_used; }
|
||||
}; // Size: 0x14
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
f32 GroundCross(cBgS_GndChk*);
|
||||
static void* ConvDzb(void*);
|
||||
fopAc_ac_c* GetActorPointer(int) const;
|
||||
dBgW_Base* GetBgWPointer(cBgS_PolyInfo&) const;
|
||||
cBgW* GetBgWPointer(cBgS_PolyInfo&) const;
|
||||
bool ChkPolySafe(cBgS_PolyInfo&);
|
||||
void GetTriGrp(int, int) const;
|
||||
void GetGrpToRoomId(int, int) const;
|
||||
@@ -76,43 +76,47 @@ class dBgS : public cBgS {
|
||||
public:
|
||||
dBgS() {}
|
||||
~dBgS() {}
|
||||
|
||||
void Ct();
|
||||
void Dt();
|
||||
void ClrMoveFlag();
|
||||
void Move();
|
||||
bool Regist(dBgW_Base*, fopAc_ac_c*);
|
||||
bool ChkMoveBG(cBgS_PolyInfo const&);
|
||||
bool ChkMoveBG_NoDABg(cBgS_PolyInfo const&);
|
||||
s32 GetExitId(cBgS_PolyInfo const&);
|
||||
s32 GetPolyColor(cBgS_PolyInfo const&);
|
||||
BOOL GetHorseNoEntry(cBgS_PolyInfo const&);
|
||||
int GetSpecialCode(cBgS_PolyInfo const&);
|
||||
int GetMagnetCode(cBgS_PolyInfo const&);
|
||||
int GetMonkeyBarsCode(cBgS_PolyInfo const&);
|
||||
u32 GetUnderwaterRoofCode(cBgS_PolyInfo const&);
|
||||
s32 GetWallCode(cBgS_PolyInfo const&);
|
||||
int GetPolyAtt0(cBgS_PolyInfo const&);
|
||||
int GetPolyAtt1(cBgS_PolyInfo const&);
|
||||
int GetGroundCode(cBgS_PolyInfo const&);
|
||||
s32 GetCamMoveBG(cBgS_PolyInfo const&);
|
||||
s32 GetRoomCamId(cBgS_PolyInfo const&);
|
||||
s32 GetRoomPathId(cBgS_PolyInfo const&);
|
||||
s32 GetRoomPathPntNo(cBgS_PolyInfo const&);
|
||||
u8 GetGrpSoundId(cBgS_PolyInfo const&);
|
||||
u32 ChkGrpInf(cBgS_PolyInfo const&, u32);
|
||||
s32 GetRoomId(cBgS_PolyInfo const&);
|
||||
bool GetPolyAttackThrough(cBgS_PolyInfo const&);
|
||||
u32 ChkPolyHSStick(cBgS_PolyInfo const&);
|
||||
bool Regist(cBgW*, fopAc_ac_c*);
|
||||
bool ChkMoveBG(cBgS_PolyInfo&);
|
||||
bool ChkMoveBG_NoDABg(cBgS_PolyInfo&);
|
||||
int GetPolyId0(int, int, int, u32, u32);
|
||||
int GetPolyCamId(int, int);
|
||||
int GetMtrlSndId(cBgS_PolyInfo&);
|
||||
int GetExitId(cBgS_PolyInfo&);
|
||||
int GetPolyColor(cBgS_PolyInfo&);
|
||||
int GetGrpRoomInfId(cBgS_PolyInfo&);
|
||||
u8 GetGrpSoundId(cBgS_PolyInfo&);
|
||||
u32 ChkGrpInf(cBgS_PolyInfo&, u32);
|
||||
int GetPolyId1(int, int, int, u32, u32);
|
||||
void GetLinkNo(cBgS_PolyInfo&);
|
||||
int GetWallCode(cBgS_PolyInfo&);
|
||||
int GetSpecialCode(cBgS_PolyInfo&);
|
||||
void GetAttributeCodeDirect(cBgS_PolyInfo&);
|
||||
void GetAttributeCode(cBgS_PolyInfo&);
|
||||
void GetGroundCode(cBgS_PolyInfo&);
|
||||
void GetPolyId2(int, int, int, u32, u32);
|
||||
int GetCamMoveBG(cBgS_PolyInfo&);
|
||||
int GetRoomCamId(cBgS_PolyInfo&);
|
||||
int GetRoomPathId(cBgS_PolyInfo&);
|
||||
int GetRoomPathPntNo(cBgS_PolyInfo&);
|
||||
int GetRoomId(cBgS_PolyInfo&);
|
||||
u32 ChkPolyHSStick(cBgS_PolyInfo&);
|
||||
void LineCrossNonMoveBG(cBgS_LinChk*);
|
||||
void WallCorrect(dBgS_Acch*);
|
||||
void WallCorrectSort(dBgS_Acch*);
|
||||
f32 RoofChk(dBgS_RoofChk*);
|
||||
bool SplGrpChk(dBgS_SplGrpChk*);
|
||||
bool SphChk(dBgS_SphChk*, void*);
|
||||
void MoveBgCrrPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*, bool, bool);
|
||||
void MoveBgTransPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*);
|
||||
void MoveBgMatrixCrrPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*);
|
||||
void RideCallBack(cBgS_PolyInfo const&, fopAc_ac_c*);
|
||||
void ArrowStickCallBack(cBgS_PolyInfo const&, fopAc_ac_c*, cXyz&);
|
||||
void WallCrrPos(dBgS_CrrPos*);
|
||||
void MoveBgCrrPos(cBgS_PolyInfo&, bool, cXyz*, csXyz*, csXyz*);
|
||||
void MoveBgTransPos(cBgS_PolyInfo&, bool, cXyz*, csXyz*, csXyz*);
|
||||
void MoveBgMatrixCrrPos(cBgS_PolyInfo&, bool, cXyz*, csXyz*, csXyz*);
|
||||
void RideCallBack(cBgS_PolyInfo&, fopAc_ac_c*);
|
||||
void PushPullCallBack(cBgS_PolyInfo&, fopAc_ac_c*, short, dBgW::PushPullLabel);
|
||||
|
||||
bool WaterChk(dBgS_SplGrpChk* chk) { return SplGrpChk(chk); }
|
||||
}; // Size: 0x1404
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
#ifndef D_BG_S_MOVEBG_ACTOR_H
|
||||
#define D_BG_S_MOVEBG_ACTOR_H
|
||||
|
||||
#include "SSystem/SComponent/c_bg_s_poly_info.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class dBgW;
|
||||
typedef void (*MoveBGActor_SetFunc)(dBgW*, void*, cBgS_PolyInfo&, bool, cXyz*, csXyz*,
|
||||
csXyz*);
|
||||
|
||||
class dBgS_MoveBgActor : public fopAc_ac_c {
|
||||
public:
|
||||
/* 0x290 */ dBgW* mpBgW;
|
||||
/* 0x294 */ Mtx mBgMtx;
|
||||
|
||||
dBgS_MoveBgActor();
|
||||
int MoveBGCreateHeap();
|
||||
int MoveBGCreate(char const*, int, MoveBGActor_SetFunc, u32);
|
||||
int MoveBGDelete();
|
||||
int MoveBGExecute();
|
||||
|
||||
int MoveBGDraw() { return Draw(); }
|
||||
|
||||
virtual int CreateHeap() { return 1; }
|
||||
virtual int Create() { return 1; }
|
||||
virtual int Execute(Mtx**) { return 1; }
|
||||
virtual int Draw() { return 1; }
|
||||
virtual int Delete() { return 1; }
|
||||
virtual int IsDelete() { return 1; }
|
||||
virtual int ToFore() { return 1; }
|
||||
virtual int ToBack() { return 1; }
|
||||
|
||||
static const char* m_name;
|
||||
static int m_dzb_id;
|
||||
static MoveBGActor_SetFunc m_set_func;
|
||||
};
|
||||
|
||||
#endif /* D_BG_S_MOVEBG_ACTOR_H */
|
||||
@@ -0,0 +1,64 @@
|
||||
#ifndef D_BG_W_H
|
||||
#define D_BG_W_H
|
||||
|
||||
#include "SSystem/SComponent/c_bg_w.h"
|
||||
|
||||
class dBgS_Acch;
|
||||
class cM3dGPla;
|
||||
class dBgS_RoofChk;
|
||||
class dBgS_SplGrpChk;
|
||||
class dBgS_SphChk;
|
||||
class cM3dGTri;
|
||||
class dBgS_CrrPos;
|
||||
|
||||
class dBgW;
|
||||
typedef void (*dBgW_CrrFunc)(dBgW*, void*, cBgS_PolyInfo&, bool, cXyz*, csXyz*, csXyz*);
|
||||
|
||||
class dBgW : public cBgW {
|
||||
public:
|
||||
enum PushPullLabel {};
|
||||
|
||||
dBgW();
|
||||
|
||||
void Move();
|
||||
void positionWallCorrect(dBgS_Acch*, f32, cM3dGPla&, cXyz*, f32);
|
||||
void RwgWallCorrect(dBgS_Acch*, u16);
|
||||
void WallCorrectRp(dBgS_Acch*, int);
|
||||
void WallCorrectGrpRp(dBgS_Acch*, int, int);
|
||||
void RwgRoofChk(u16, dBgS_RoofChk*);
|
||||
void RoofChkRp(dBgS_RoofChk*, int);
|
||||
void RoofChkGrpRp(dBgS_RoofChk*, int, int);
|
||||
void RwgSplGrpChk(u16, dBgS_SplGrpChk*);
|
||||
void SplGrpChkRp(dBgS_SplGrpChk*, int);
|
||||
void SplGrpChkGrpRp(dBgS_SplGrpChk*, int, int);
|
||||
void RwgSphChk(u16, dBgS_SphChk*, void*);
|
||||
void SphChkRp(dBgS_SphChk*, void*, int);
|
||||
void SphChkGrpRp(dBgS_SphChk*, void*, int, int);
|
||||
void positionWallCrrPos(cM3dGTri&, dBgS_CrrPos*, cXyz*, f32, f32);
|
||||
void RwgWallCrrPos(u16, dBgS_CrrPos*);
|
||||
void WallCrrPosRp(dBgS_CrrPos*, int);
|
||||
void WallCrrPosGrpRp(dBgS_CrrPos*, int, int);
|
||||
void WallCrrPos(dBgS_CrrPos*);
|
||||
void ChangeAttributeCodeByPathPntNo(int, u32);
|
||||
|
||||
virtual ~dBgW() {}
|
||||
virtual void ChkPolyThrough(int, cBgS_PolyPassChk*);
|
||||
virtual void ChkShdwDrawThrough(int, cBgS_PolyPassChk*);
|
||||
virtual void ChkGrpThrough(int, cBgS_GrpPassChk*, int);
|
||||
virtual void CrrPos(cBgS_PolyInfo&, void*, bool, cXyz*, csXyz*, csXyz*);
|
||||
virtual void TransPos(cBgS_PolyInfo&, void*, bool, cXyz*, csXyz*, csXyz*);
|
||||
virtual void MatrixCrrPos(cBgS_PolyInfo&, void*, bool, cXyz*, csXyz*, csXyz*);
|
||||
|
||||
void SetCrrFunc(dBgW_CrrFunc func) { m_crr_func = func; }
|
||||
|
||||
/* 0xA8 */ dBgW_CrrFunc m_crr_func;
|
||||
/* 0xAC */ s16 mOldRotY;
|
||||
/* 0xAE */ s16 mRotYDelta;
|
||||
/* 0xB0 */ void* mpRideCb;
|
||||
/* 0xB4 */ void* mpPushPullCb;
|
||||
/* 0xB8 */ s16 mRoomNo;
|
||||
/* 0xBA */ u8 mFlag;
|
||||
/* 0xBB */ u8 mRoomNo2;
|
||||
};
|
||||
|
||||
#endif /* D_BG_W_H */
|
||||
Reference in New Issue
Block a user