c_bg_s work

This commit is contained in:
Jasper St. Pierre
2023-11-12 17:15:07 -08:00
parent bf3f3011f1
commit 8b0d90d95c
9 changed files with 67 additions and 20 deletions
+1 -1
View File
@@ -55,7 +55,7 @@ public:
s32 GetTriGrp(int, int) const;
s32 GetGrpToRoomId(int, int) const;
cM3dGPla* GetTriPla(int, int) const;
bool GetTriPnt(cBgS_PolyInfo&, cXyz*, cXyz*, cXyz*) const;
void GetTriPnt(cBgS_PolyInfo&, cXyz*, cXyz*, cXyz*) const;
void ShdwDraw(cBgS_ShdwDraw*);
s32 GetGrpInf(cBgS_PolyInfo&, int) const;
+3 -3
View File
@@ -20,11 +20,11 @@ public:
void SetNowY(f32 y) { mNowY = y; }
cXyz* GetPointP() { return &m_pos; }
u32 GetWallPrecheck() const { return mWallPrecheck; }
void OffWall() { mFlags &= ~2; }
void OffWall() { mFlag &= ~2; }
private:
public:
/* 0x24 */ cXyz m_pos;
/* 0x30 */ u32 mFlags;
/* 0x30 */ u32 mFlag;
/* 0x34 */ f32 mNowY;
/* 0x38 */ u32 mWallPrecheck;
/* 0x3C */ u32 mGndPrecheck;
+5 -5
View File
@@ -10,7 +10,7 @@ class cBgS_LinChk : public cBgS_Chk, public cBgS_PolyInfo {
public:
/* 0x024 */ cM3dGLin mLin;
/* 0x040 */ cXyz field_0x40;
/* 0x04C */ u32 field_0x4c;
/* 0x04C */ u32 mFlag;
/* 0x050 */ bool mPreWallChk;
/* 0x051 */ bool mPreGroundChk;
/* 0x052 */ bool mPreRoofChk;
@@ -26,10 +26,10 @@ public:
virtual ~cBgS_LinChk() {}
void ClrHit() { field_0x4c &= ~0x10; }
void SetHit() { field_0x4c |= 0x10; }
u32 ChkHit() const { return field_0x4c & 0x10; }
void ClrSttsRoofOff() { field_0x4c &= ~0x20000000; }
void ClrHit() { mFlag &= ~0x10; }
void SetHit() { mFlag |= 0x10; }
u32 ChkHit() const { return mFlag & 0x10; }
void ClrSttsRoofOff() { mFlag &= ~0x20000000; }
void SetCross(const cXyz& pos) { mLin.SetEnd(pos); }
cXyz& i_GetCross() { return mLin.GetEnd(); }
cM3dGLin* GetLinP() { return &mLin; }
@@ -2,6 +2,7 @@
#define C_BG_S_POLY_INFO_H
#include "dolphin/types.h"
#include "JSystem/JUtility/JUTAssert.h"
#include "global.h"
class cBgW;
@@ -25,6 +26,12 @@ public:
void SetPolyInfo(const cBgS_PolyInfo& other) {
*this = other;
}
void SetActorInfo(int bg_index, void* bgw, unsigned int actor_id) {
JUT_ASSERT(0x59, 0 <= bg_index);
mBgIndex = bg_index;
mpBgW = (cBgW*)bgw;
mActorId = actor_id;
}
bool ChkSafe(const void* bgw, unsigned int pid) {
if (mpBgW == bgw && mActorId == pid)
return true;
+2 -2
View File
@@ -139,12 +139,12 @@ public:
bool Set(cBgD_t*, u32, f32(*)[3][4]);
void RwgLineCheck(u16, cBgS_LinChk*);
void LineCheckRp(cBgS_LinChk*, int);
void LineCheckGrpRp(cBgS_LinChk*, int, int);
bool LineCheckGrpRp(cBgS_LinChk*, int, int);
bool RwgGroundCheckCommon(f32, u16, cBgS_GndChk*);
bool RwgGroundCheckGnd(u16, cBgS_GndChk*);
bool RwgGroundCheckWall(u16, cBgS_GndChk*);
void GroundCrossRp(cBgS_GndChk*, int);
void GroundCrossGrpRp(cBgS_GndChk*, int, int);
bool GroundCrossGrpRp(cBgS_GndChk*, int, int);
void CopyOldMtx();
void Move();
void RwgShdwDraw(int, cBgS_ShdwDraw*);