blob: a53f18456021b98425cb8fe8a5c41682b3344680 (
plain) (
blame)
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
100
101
102
103
104
|
//===========================================================================
// Copyright (C) 2002 Radical Entertainment Ltd. All rights reserved.
//
// Component: breakableobjectloader
//
// Description: Loads breakable objects
//
// Authors: Michael Riegger
//
//===========================================================================
// Recompilation protection flag.
#ifndef BREAKABLEOBJECTLOADER_H
#define BREAKABLEOBJECTLOADER_H
//===========================================================================
// Nested Includes
//===========================================================================
#include <render/Loaders/IWrappedLoader.h>
//===========================================================================
// Forward References
//===========================================================================
class tAnimatedObjectFactoryLoader;
class tAnimatedObjectLoader;
class tFrameControllerLoader;
class tCompositeDrawableLoader;
class tGeometryLoader;
class tSkeletonLoader;
class tAnimationLoader;
class tParticleSystemLoader;
class tParticleSystemFactoryLoader;
//===========================================================================
// Constants, Typedefs, and Macro Definitions (needed by external clients)
//===========================================================================
//===========================================================================
// Interface Definitions
//===========================================================================
//===========================================================================
//
// Description:
// Loads breakableobject chunks. Essentially just a tAnimatedObjectFactory thats
// cloned off N times.
//
// Constraints:
//
//===========================================================================
class BreakableObjectLoader
: public tSimpleChunkHandler,
public IWrappedLoader
{
public:
BreakableObjectLoader();
virtual ~BreakableObjectLoader();
///////////////////////////////////////////////////////////////////////
// IWrappedLoader
///////////////////////////////////////////////////////////////////////
virtual void SetRegdListener( ChunkListenerCallback* pListenerCB,
int iUserData );
virtual void ModRegdListener( ChunkListenerCallback* pListenerCB,
int iUserData );
///////////////////////////////////////////////////////////////////////
// tSimpleChunkHandler
///////////////////////////////////////////////////////////////////////
virtual tEntity* LoadObject(tChunkFile* file, tEntityStore* store);
protected:
private:
tAnimatedObjectFactoryLoader* mpFactoryLoader;
tAnimatedObjectLoader* mpAnimObjectLoader;
tFrameControllerLoader* mpControllerLoader;
tCompositeDrawableLoader* mpCompDrawLoader;
tGeometryLoader* mpP3DGeoLoader;
tSkeletonLoader* mpSkelLoader;
tAnimationLoader* mpAnimLoader;
tParticleSystemLoader* mpParticleSystemLoader;
tParticleSystemFactoryLoader* mpParticleSystemFactoryLoader;
private:
// These methods defined as private and not implemented ensure that
// clients will not be able to use them. For example, we will
// disallow BreakableObjectLoader from being copied and assigned.
BreakableObjectLoader( const BreakableObjectLoader& );
BreakableObjectLoader& operator=( const BreakableObjectLoader& );
};
#endif
|