forked from derandark/DungeonViewerAC
-
Notifications
You must be signed in to change notification settings - Fork 0
/
EnvCell.h
70 lines (54 loc) · 1.82 KB
/
EnvCell.h
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
#pragma once
#include "ObjCache.h"
#include "ObjCell.h"
class CSurface;
class CPhysicsObj;
class CEnvironment;
class CCellStruct;
class CCellPortal;
class CPolygon;
class CEnvCell : public CObjCell
{
public:
CEnvCell();
~CEnvCell();
static DBObj* Allocator();
static void Destroyer(DBObj*);
static CEnvCell* Get(DWORD ID);
static void Release(CEnvCell *);
void Destroy();
BOOL UnPack(BYTE **ppData, ULONG iSize);
void calc_clip_planes();
void init_static_objects();
BOOL point_in_cell(const Vector& point);
DWORD m_SurfaceCount; // 0xC4 / 0xE8
CSurface** m_Surfaces; // 0xC8 / 0xEC
CCellStruct* m_CellStruct; // 0xCC / 0xF0
CEnvironment* m_Environment; // 0xD0 / 0xF4
DWORD m_PortalCount; // 0xD4 / 0xF8
CCellPortal* m_Portals; // 0xD8 / 0xFC
DWORD m_StaticObjCount; // 0xDC / 0x100
DWORD* m_StaticObjIDs; // 0xE0 / 0x104
Frame* m_StaticObjFrames; // 0xE4 / 0x108
CPhysicsObj** m_StaticObjs; // 0xE8 / 0x10C
LPVOID m_PolyLights; // 0xEC / 0x110
DWORD m_114; // 0xF0 / 0x114
DWORD m_118; // 0xF4 / 0x118
LPVOID m_11C; // 0xF8 / 0x11C
DWORD m_120; // 0xFC / 0x120
DWORD m_124; // 0x100 / 0x124
DWORD m_128; // 0x104 / 0x128
};
class CCellPortal
{
public:
CCellPortal();
~CCellPortal();
BOOL UnPack(DWORD LandBlock, WORD *PolyIndex, BYTE **ppData, ULONG iSize);
DWORD m_CellID;
DWORD m_04;
CPolygon* m_PortalPoly; // 0x08
DWORD m_0C;
long m_10;
BOOL m_14;
};