tp/include/SSystem/SComponent/c_bg_s_lin_chk.h

58 lines
1.9 KiB
C++

#ifndef C_BG_S_LIN_CHK_H
#define C_BG_S_LIN_CHK_H
#include "SSystem/SComponent/c_bg_s_chk.h"
#include "SSystem/SComponent/c_bg_s_poly_info.h"
#include "SSystem/SComponent/c_m3d_g_lin.h"
class cBgS_LinChk : public cBgS_Chk, public cBgS_PolyInfo {
public:
/* 0x024 */ cM3dGLin mLin;
/* 0x040 */ cXyz field_0x40;
/* 0x04C */ u32 mStts;
/* 0x050 */ bool mPreWallChk;
/* 0x051 */ bool mPreGroundChk;
/* 0x052 */ bool mPreRoofChk;
/* 0x053 */ bool mFrontFlag;
/* 0x054 */ bool mBackFlag;
enum Status {
STTS_HIT = 0x10,
STTS_ROOF_OFF = 0x20000000,
STTS_WALL_OFF = 0x40000000,
STTS_GROUND_OFF = 0x80000000,
};
public:
cBgS_LinChk();
void ct();
void Set2(const cXyz*, const cXyz*, unsigned int);
void PreCalc();
cXyz& GetCross() { return mLin.GetEnd(); }
virtual ~cBgS_LinChk();
void ClrHit() { mStts &= ~STTS_HIT; }
void SetHit() { mStts |= STTS_HIT; }
u32 ChkHit() const { return mStts & STTS_HIT; }
void SetCross(const cXyz& pos) { mLin.SetEnd(pos); }
cXyz* GetCrossP() { return &mLin.GetEndP(); }
cM3dGLin* GetLinP() { return &mLin; }
bool ChkBackFlag() const { return mBackFlag; }
void OnBackFlag() { mBackFlag = true; }
bool ChkFrontFlag() const { return mFrontFlag; }
void OnFrontFlag() { mFrontFlag = true; }
bool GetPreWallChk() const { return mPreWallChk; }
bool GetPreGroundChk() const { return mPreGroundChk; }
bool GetPreRoofChk() const { return mPreRoofChk; }
cXyz* GetStartP() { return &mLin.GetStartP(); }
void ClrSttsRoofOff() { mStts &= ~STTS_ROOF_OFF; }
void SetSttsRoofOff() { mStts |= STTS_ROOF_OFF; }
void ClrSttsWallOff() { mStts &= ~STTS_WALL_OFF; }
void SetSttsWallOff() { mStts |= STTS_WALL_OFF; }
void ClrSttsGroundOff() { mStts &= ~STTS_GROUND_OFF; }
void SetSttsGroundOff() { mStts |= STTS_GROUND_OFF; }
};
#endif /* C_BG_S_LIN_CHK_H */