OpenBarnyard
Loading...
Searching...
No Matches
ATreeManager.h
Go to the documentation of this file.
1
#pragma once
2
#include "
Render/ALockedMesh.h
"
3
#include "
Collision/ACollisionObjectSimple.h
"
4
#include "
Terrain/ATerrainLocator.h
"
5
6
#include <
Toshi/T2SList.h
>
7
8
class
ATreeManager
9
:
public
Toshi::TSingleton<ATreeManager>
10
{
11
public
:
12
struct
TreeInstance
13
: Toshi::T2SList<TreeInstance>
::Node
14
{
15
ATerrainLocatorList
*
pLocatorList
;
16
TUINT16
uiLocatorId
;
17
18
union
19
{
20
TUINT8
iTreeIndex
: 6;
21
TUINT
bFlag1
: 1;
22
TUINT
bFlag2
: 1;
23
};
24
25
TUINT
uiUnk3
;
26
27
ACollisionObjectSimple*
pSimpleCollisionObjects
=
TNULL
;
28
void
*
unk
=
TNULL
;
29
};
30
31
class
Model
32
{
33
public
:
34
friend
ATreeManager
;
35
36
public
:
37
Model
();
38
~Model
();
39
40
void
Load
(
const
TCHAR
* a_szModelName );
41
42
private
:
43
Toshi::TManagedModel* m_pManagedModel;
44
Toshi::TSceneObject* m_pSceneObject;
45
TUINT
m_uiID;
46
TINT
m_iNumFOBs;
47
Toshi::TMatrix44* m_pFOBMatrices;
48
TFLOAT
m_fUnk1;
49
TFLOAT
m_fRadius;
50
};
51
52
inline
static
constexpr
TINT
MAX_INSTANCES
= 1302;
53
54
public
:
55
ATreeManager
();
56
~ATreeManager
();
57
58
// Initialises models and returns TTRUE if succeded
59
TBOOL
Initialise
();
60
61
void
CreateInstances
(
ATerrainLocatorList
* a_pLocatorList );
62
63
void
Render
();
64
65
private
:
66
// ...
67
TINT
m_iNumTrunks;
68
Model
* m_pTrunks;
69
TINT
m_iNumFOBs;
70
Model
* m_pFOBs;
71
// ...
72
TreeInstance
m_aTreeInstances[
MAX_INSTANCES
];
73
Toshi::T2SList<TreeInstance> m_llUsedTreeInstances;
74
Toshi::T2SList<TreeInstance> m_llFreeTreeInstances;
75
ALockedMesh
m_aLockedMeshes[ 2 ];
76
// ...
77
TFLOAT
m_fUnk1;
78
TFLOAT
m_fUnk2;
79
TFLOAT
m_fUnk3;
80
TBOOL
m_bCreateCollision;
81
TBOOL
m_bFlag;
82
};
T2SList.h
TUINT16
uint16_t TUINT16
Definition
Typedefs.h:15
TUINT
unsigned int TUINT
Definition
Typedefs.h:8
TCHAR
char TCHAR
Definition
Typedefs.h:20
TUINT8
uint8_t TUINT8
Definition
Typedefs.h:17
TFLOAT
float TFLOAT
Definition
Typedefs.h:4
TNULL
#define TNULL
Definition
Typedefs.h:23
TINT
int TINT
Definition
Typedefs.h:7
TBOOL
bool TBOOL
Definition
Typedefs.h:6
ACollisionObjectSimple.h
ALockedMesh.h
ATerrainLocator.h
Node
ATreeManager::~ATreeManager
~ATreeManager()
Definition
ATreeManager.cpp:33
ATreeManager::ATreeManager
ATreeManager()
Definition
ATreeManager.cpp:21
ATreeManager::Initialise
TBOOL Initialise()
Definition
ATreeManager.cpp:38
ATreeManager::CreateInstances
void CreateInstances(ATerrainLocatorList *a_pLocatorList)
Definition
ATreeManager.cpp:169
ATreeManager::MAX_INSTANCES
static constexpr TINT MAX_INSTANCES
Definition
ATreeManager.h:52
ATreeManager::Render
void Render()
Definition
ATreeManager.cpp:331
ATreeManager::TreeInstance
Definition
ATreeManager.h:14
ATreeManager::TreeInstance::iTreeIndex
TUINT8 iTreeIndex
Definition
ATreeManager.h:20
ATreeManager::TreeInstance::uiLocatorId
TUINT16 uiLocatorId
Definition
ATreeManager.h:16
ATreeManager::TreeInstance::bFlag1
TUINT bFlag1
Definition
ATreeManager.h:21
ATreeManager::TreeInstance::bFlag2
TUINT bFlag2
Definition
ATreeManager.h:22
ATreeManager::TreeInstance::unk
void * unk
Definition
ATreeManager.h:28
ATreeManager::TreeInstance::pSimpleCollisionObjects
ACollisionObjectSimple * pSimpleCollisionObjects
Definition
ATreeManager.h:27
ATreeManager::TreeInstance::pLocatorList
ATerrainLocatorList * pLocatorList
Definition
ATreeManager.h:15
ATreeManager::TreeInstance::uiUnk3
TUINT uiUnk3
Definition
ATreeManager.h:25
ATreeManager::Model
Definition
ATreeManager.h:32
ATreeManager::Model::ATreeManager
friend ATreeManager
Definition
ATreeManager.h:34
ATreeManager::Model::Load
void Load(const TCHAR *a_szModelName)
Definition
ATreeManager.cpp:366
ATreeManager::Model::~Model
~Model()
Definition
ATreeManager.cpp:354
ATreeManager::Model::Model
Model()
Definition
ATreeManager.cpp:344
ALockedMesh
Definition
ALockedMesh.h:6
ATerrainLocatorList
Definition
ATerrainLocator.h:38
D:
_dev
OpenBarnyard
Source
OpenBarnyard
Source
Helpers
ATreeManager.h
Generated by
1.13.2