summaryrefslogtreecommitdiff
path: root/include/d/d_bg_s_lin_chk.h
blob: 96ef100f0d9614d18052255b88ea4e0be4295d87 (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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#ifndef D_BG_D_BG_S_LIN_CHK_H
#define D_BG_D_BG_S_LIN_CHK_H

#include "SSystem/SComponent/c_bg_s_lin_chk.h"
#include "d/d_bg_s_chk.h"

class fopAc_ac_c;

class dBgS_LinChk : public cBgS_LinChk, public dBgS_Chk {
public:
    dBgS_LinChk() {
        SetPolyPassChk(GetPolyPassChkInfo());
        SetGrpPassChk(GetGrpPassChkInfo());
    }
    void Set(cXyz* pi_start, cXyz* pi_end, fopAc_ac_c* pi_actor);

    virtual ~dBgS_LinChk() {}

    /* 0x00 cBgS_LinChk */
    /* 0x58 dBgS_Chk */
};  // Size: 0x6C

class dBgS_LinkLinChk : public dBgS_LinChk {
public:
    dBgS_LinkLinChk() { SetLink(); }

    virtual ~dBgS_LinkLinChk() {}
};  // Size: 0x6C

class dBgS_RopeLinChk : public dBgS_LinChk {
public:
    dBgS_RopeLinChk() { SetRope(); }

    virtual ~dBgS_RopeLinChk() {}
};

class dBgS_BoomerangLinChk : public dBgS_LinChk {
public:
    dBgS_BoomerangLinChk() { SetBoomerang(); }

    virtual ~dBgS_BoomerangLinChk() {}
};

class dBgS_ArrowLinChk : public dBgS_LinChk {
public:
    dBgS_ArrowLinChk() {
        SetArrow(); // Don't check arrows
        OnYoganGrp(); // Check lava
        OnNormalGrp();
    }

    virtual ~dBgS_ArrowLinChk() {}
};

class dBgS_ObjLinChk : public dBgS_LinChk {
public:
    dBgS_ObjLinChk() { SetObj(); }

    virtual ~dBgS_ObjLinChk() {}
};

class dBgS_BombLinChk : public dBgS_LinChk {
public:
    dBgS_BombLinChk();

    virtual ~dBgS_BombLinChk();
};

class dBgS_CamLinChk : public dBgS_LinChk {
public:
    dBgS_CamLinChk() {
        mbCamThrough = true;
    }

    virtual ~dBgS_CamLinChk() {}
};

class dBgS_CamLinChk_NorWtr : public dBgS_CamLinChk {
public:
    dBgS_CamLinChk_NorWtr() {
        OnWaterGrp();
        OnNormalGrp();
    }

    virtual ~dBgS_CamLinChk_NorWtr() {}
};

class dBgS_MirLightLinChk : public dBgS_LinChk {
public:
    dBgS_MirLightLinChk() {
        SetArrow(); // "Arrow" also covers light
        OnAll();
        OnLightGrp();
    }

    virtual ~dBgS_MirLightLinChk() {}
};

#endif /* D_BG_D_BG_S_LIN_CHK_H */