mirror of
https://github.com/zeldaret/tp
synced 2026-07-09 06:53:23 -04:00
d_bg_w done (#2169)
* ClassifyPlane matched * d_bg_w full match * remove asm
This commit is contained in:
@@ -17,7 +17,7 @@ class cXyz;
|
||||
struct cM3d_Range;
|
||||
struct Vec;
|
||||
|
||||
extern f32 G_CM3D_F_ABS_MIN;
|
||||
extern const f32 G_CM3D_F_ABS_MIN;
|
||||
|
||||
static void cM3d_InDivPos1(const Vec*, const Vec*, f32, Vec*);
|
||||
void cM3d_InDivPos2(const Vec*, const Vec*, f32, Vec*);
|
||||
|
||||
@@ -19,13 +19,12 @@ public:
|
||||
bool getCrossY(const cXyz&, f32*) const;
|
||||
bool getCrossYLessD(const Vec&, f32*) const;
|
||||
void Set(const cM3dGPla*);
|
||||
void GetNP();
|
||||
|
||||
virtual ~cM3dGPla() {}
|
||||
|
||||
f32 getPlaneFunc(const Vec* pPoint) const { return mD + VECDotProduct(&mNormal, pPoint); }
|
||||
const cXyz& GetNP() const { return mNormal; }
|
||||
const cXyz* i_GetNP() const { return &mNormal; }
|
||||
cXyz* GetNP() { return &mNormal; }
|
||||
const cXyz* GetNP() const { return &mNormal; }
|
||||
f32 GetD() const { return mD; }
|
||||
void SetupFrom3Vtx(const Vec* v1, const Vec* v2, const Vec* v3) {
|
||||
cM3d_CalcPla(v1, v2, v3, &mNormal, &mD);
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "d/bg/d_bg_s_gnd_chk.h"
|
||||
#include "d/bg/d_bg_s_roof_chk.h"
|
||||
#include "d/bg/d_bg_s_wtr_chk.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
|
||||
class fopAc_ac_c;
|
||||
|
||||
@@ -47,6 +48,12 @@ public:
|
||||
void ClrWallHDirect() { m_flags &= ~WALL_H_DIRECT; }
|
||||
bool ChkWallHit() { return m_flags & WALL_HIT; }
|
||||
s16 GetWallAngleY() { return m_wall_angle_y; }
|
||||
bool ChkWallHDirect() { return m_flags & WALL_H_DIRECT; }
|
||||
f32 GetWallHDirect() { return m_wall_h_direct; }
|
||||
f32 GetWallRR() { return m_wall_rr; }
|
||||
void SetWallHit() { m_flags |= WALL_HIT; }
|
||||
void SetWallAngleY(s16 i_angle) { m_wall_angle_y = i_angle; }
|
||||
cM3dGCir* GetCirP() { return &m_cir; }
|
||||
|
||||
void SetCir(cXyz& pos) { m_cir.Set(pos.x, pos.z, pos.y + GetWallH(), m_wall_r); }
|
||||
}; // Size: 0x40
|
||||
@@ -166,7 +173,23 @@ public:
|
||||
void SetWallNone() { m_flags |= WALL_NONE; }
|
||||
void OnLineCheckHit() { m_flags |= LINE_CHECK_HIT; }
|
||||
cM3dGCyl* GetWallBmdCylP() { return &m_wall_cyl; }
|
||||
fopAc_ac_c* getMyAc() { return m_my_ac; }
|
||||
|
||||
cM3dGCir* GetWallCirP(int index) {
|
||||
JUT_ASSERT(index <= m_tbl_size);
|
||||
return pm_acch_cir[index].GetCirP();
|
||||
}
|
||||
|
||||
f32 GetWallH(int i_no) { return pm_acch_cir[i_no].GetWallH(); }
|
||||
f32 GetWallR(int i_no) { return pm_acch_cir[i_no].GetWallR(); }
|
||||
bool ChkWallHDirect(int i_no) { return pm_acch_cir[i_no].ChkWallHDirect(); }
|
||||
f32 GetWallHDirect(int i_no) { return pm_acch_cir[i_no].GetWallHDirect(); }
|
||||
f32 GetWallRR(int i_no) { return pm_acch_cir[i_no].GetWallRR(); }
|
||||
void SetWallCirHit(int i_no) { pm_acch_cir[i_no].SetWallHit(); }
|
||||
void SetWallAngleY(int i_no, s16 i_angle) { pm_acch_cir[i_no].SetWallAngleY(i_angle); }
|
||||
|
||||
f32 GetCx() const { return pm_pos->x; }
|
||||
f32 GetCz() const { return pm_pos->z; }
|
||||
|
||||
// inline dupe
|
||||
void i_ClrGroundHit() { m_flags &= ~GROUND_HIT; }
|
||||
|
||||
@@ -171,7 +171,7 @@ public:
|
||||
/* 8007B084 */ virtual void ShdwDraw(cBgS_ShdwDraw*);
|
||||
virtual void CaptPoly(dBgS_CaptPoly&) = 0;
|
||||
virtual bool WallCorrect(dBgS_Acch*) = 0;
|
||||
virtual void WallCorrectSort(dBgS_Acch*) = 0;
|
||||
virtual bool WallCorrectSort(dBgS_Acch*) = 0;
|
||||
virtual bool RoofChk(dBgS_RoofChk*) = 0;
|
||||
virtual bool SplGrpChk(dBgS_SplGrpChk*) = 0;
|
||||
virtual bool SphChk(dBgS_SphChk*, void*) = 0;
|
||||
@@ -276,7 +276,7 @@ public:
|
||||
/* 8007E4A4 */ virtual void OffMoveFlag();
|
||||
/* 8007DAF8 */ virtual void CaptPoly(dBgS_CaptPoly&);
|
||||
/* 8007C484 */ virtual bool WallCorrect(dBgS_Acch*);
|
||||
/* 8007C910 */ virtual void WallCorrectSort(dBgS_Acch*);
|
||||
/* 8007C910 */ virtual bool WallCorrectSort(dBgS_Acch*);
|
||||
/* 8007D470 */ virtual bool RoofChk(dBgS_RoofChk*);
|
||||
/* 8007D830 */ virtual bool SplGrpChk(dBgS_SplGrpChk*);
|
||||
/* 8007DF00 */ virtual bool SphChk(dBgS_SphChk*, void*);
|
||||
|
||||
@@ -50,7 +50,7 @@ public:
|
||||
virtual void ShdwDraw(cBgS_ShdwDraw*) = 0;
|
||||
virtual void CaptPoly(dBgS_CaptPoly&) = 0;
|
||||
virtual bool WallCorrect(dBgS_Acch*) = 0;
|
||||
virtual void WallCorrectSort(dBgS_Acch*) = 0;
|
||||
virtual bool WallCorrectSort(dBgS_Acch*) = 0;
|
||||
virtual bool RoofChk(dBgS_RoofChk*) = 0;
|
||||
virtual bool SplGrpChk(dBgS_SplGrpChk*) = 0;
|
||||
virtual bool SphChk(dBgS_SphChk*, void*) = 0;
|
||||
|
||||
@@ -71,7 +71,7 @@ public:
|
||||
/* 8007F9A4 */ virtual void ShdwDraw(cBgS_ShdwDraw*);
|
||||
/* 8007FF1C */ virtual void CaptPoly(dBgS_CaptPoly&);
|
||||
/* 800811A0 */ virtual bool WallCorrect(dBgS_Acch*);
|
||||
/* 80080330 */ virtual void WallCorrectSort(dBgS_Acch*);
|
||||
/* 80080330 */ virtual bool WallCorrectSort(dBgS_Acch*);
|
||||
/* 80081E18 */ virtual bool RoofChk(dBgS_RoofChk*);
|
||||
/* 80082184 */ virtual bool SplGrpChk(dBgS_SplGrpChk*);
|
||||
/* 800824EC */ virtual bool SphChk(dBgS_SphChk*, void*);
|
||||
|
||||
Reference in New Issue
Block a user