summaryrefslogtreecommitdiff
path: root/src/d/col/bg/d_bg_s_roof_chk.cpp
blob: 84a3c64d0c3a0f18a492ae2fd4d0abafdcee8520 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "d/col/bg/d_bg_s_roof_chk.h"

#include "d/col/bg/d_bg_s.h"

dBgS_ObjRoofChk dBgS_ObjRoofChk::sInstance;
f32 dBgS_ObjRoofChk::sRoofHeight;

dBgS_RoofChk::dBgS_RoofChk() {
    mPos.set(0.0f, 0.0f, 0.0f);
    mNowY = 0.0f;
    field_0x7C = 1;
    mPosCopy.set(0.0f, 0.0f, 0.0f);

    SetPolyPassChk(GetPolyPassChkInfo());
    SetGrpPassChk(GetGrpPassChkInfo());
}

dBgS_RoofChk::~dBgS_RoofChk() {}

void dBgS_RoofChk::SetPos(mVec3_c const *pPos) {
    mPos = *pPos;
}

dBgS_ObjRoofChk::dBgS_ObjRoofChk() {
    SetObj();
}

dBgS_ObjRoofChk::~dBgS_ObjRoofChk() {}

void dBgS_ObjRoofChk::ClearInstance() {
    sInstance.ClearPi();
}

// TODO: const reference?
bool dBgS_ObjRoofChk::CheckPos(const mVec3_c *pPos) {
    sInstance.SetPos(pPos);
    sRoofHeight = dBgS::GetInstance()->RoofChk(&sInstance);
    return (sRoofHeight != 1e9f);
}

dBgS_LinkRoofChk::dBgS_LinkRoofChk() {
    SetLink();
}

dBgS_LinkRoofChk::~dBgS_LinkRoofChk() {}