2021-03-28 22:49:05 +02:00
|
|
|
#ifndef C_BG_S_LIN_CHK_H
|
|
|
|
|
#define C_BG_S_LIN_CHK_H
|
|
|
|
|
|
2021-05-23 03:09:59 -07:00
|
|
|
#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"
|
2021-04-08 22:18:35 +02:00
|
|
|
|
2021-06-13 00:20:45 +02:00
|
|
|
class cBgS_LinChk : public cBgS_Chk, public cBgS_PolyInfo {
|
2022-11-11 10:09:48 -08:00
|
|
|
public:
|
|
|
|
|
/* 0x024 */ cM3dGLin mLin;
|
2021-05-23 03:09:59 -07:00
|
|
|
/* 0x040 */ cXyz field_0x40;
|
2024-10-27 00:35:25 -04:00
|
|
|
/* 0x04C */ u32 mStts;
|
2021-06-13 00:20:45 +02:00
|
|
|
/* 0x050 */ bool mPreWallChk;
|
|
|
|
|
/* 0x051 */ bool mPreGroundChk;
|
|
|
|
|
/* 0x052 */ bool mPreRoofChk;
|
2022-11-11 10:09:48 -08:00
|
|
|
/* 0x053 */ bool mFrontFlag;
|
|
|
|
|
/* 0x054 */ bool mBackFlag;
|
2021-05-23 03:09:59 -07:00
|
|
|
|
2024-10-27 00:35:25 -04:00
|
|
|
enum Status {
|
|
|
|
|
STTS_HIT = 0x10,
|
|
|
|
|
STTS_ROOF_OFF = 0x20000000,
|
|
|
|
|
STTS_WALL_OFF = 0x40000000,
|
|
|
|
|
STTS_GROUND_OFF = 0x80000000,
|
|
|
|
|
};
|
|
|
|
|
|
2021-04-08 22:18:35 +02:00
|
|
|
public:
|
2021-11-10 10:56:51 -08:00
|
|
|
cBgS_LinChk();
|
|
|
|
|
void ct();
|
2021-04-08 22:18:35 +02:00
|
|
|
void Set2(const cXyz*, const cXyz*, unsigned int);
|
2021-11-10 10:56:51 -08:00
|
|
|
void PreCalc();
|
2025-02-28 23:05:49 -08:00
|
|
|
cXyz& GetCross() { return mLin.GetEnd(); }
|
2021-11-10 10:56:51 -08:00
|
|
|
|
|
|
|
|
virtual ~cBgS_LinChk();
|
|
|
|
|
|
2024-10-27 00:35:25 -04:00
|
|
|
void ClrHit() { mStts &= ~STTS_HIT; }
|
|
|
|
|
void SetHit() { mStts |= STTS_HIT; }
|
|
|
|
|
u32 ChkHit() const { return mStts & STTS_HIT; }
|
2022-11-11 10:09:48 -08:00
|
|
|
void SetCross(const cXyz& pos) { mLin.SetEnd(pos); }
|
2022-12-19 11:06:32 -08:00
|
|
|
cXyz& i_GetCross() { return mLin.GetEnd(); }
|
2023-10-11 01:12:08 -07:00
|
|
|
cXyz* GetCrossP() { return &mLin.GetEndP(); }
|
2022-11-11 10:09:48 -08:00
|
|
|
cM3dGLin* GetLinP() { return &mLin; }
|
|
|
|
|
bool ChkBackFlag() const { return mBackFlag; }
|
2024-06-29 14:27:21 +03:00
|
|
|
void onBackFlag() { mBackFlag = true; }
|
2022-11-11 10:09:48 -08:00
|
|
|
bool ChkFrontFlag() const { return mFrontFlag; }
|
2024-06-29 14:27:21 +03:00
|
|
|
void onFrontFlag() { mFrontFlag = true; }
|
2022-11-11 10:09:48 -08:00
|
|
|
bool GetPreWallChk() const { return mPreWallChk; }
|
|
|
|
|
bool GetPreGroundChk() const { return mPreGroundChk; }
|
|
|
|
|
bool GetPreRoofChk() const { return mPreRoofChk; }
|
2024-01-08 12:10:05 +02:00
|
|
|
cXyz* GetStartP() { return &mLin.GetStartP(); }
|
2024-10-27 00:35:25 -04:00
|
|
|
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; }
|
2021-04-08 22:18:35 +02:00
|
|
|
};
|
2021-03-28 22:49:05 +02:00
|
|
|
|
|
|
|
|
#endif /* C_BG_S_LIN_CHK_H */
|