summaryrefslogtreecommitdiffstats
path: root/game/code/render/Loaders/instparticlesystemloader.h
blob: f9d083190f216b61155ace9d6dde2a4b73228cf0 (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
//===========================================================================
// Copyright (C) 2002 Radical Entertainment Ltd.  All rights reserved.
//
// Component:   InstParticleSystemLoader
//
// Description: Loads particle systems (and also breakable objects)
//
// Authors:     Michael Riegger
//
//===========================================================================

// Recompilation protection flag.
#ifndef INSTPARTICLESYSTEMLOADER_H
#define INSTPARTICLESYSTEMLOADER_H


//===========================================================================
// Nested Includes
//===========================================================================

#include <render/Loaders/IWrappedLoader.h>


//===========================================================================
// Forward References
//===========================================================================

//===========================================================================
// Constants, Typedefs, and Macro Definitions (needed by external clients)
//===========================================================================

//===========================================================================
// Interface Definitions
//===========================================================================

//===========================================================================
//
// Description: 
//      Generally, describe what behaviour this class possesses that
//      clients can rely on, and the actions that this service
//      guarantees to clients.
//
// Constraints:
//      Describe here what you require of the client which uses or
//      has this class - essentially, the converse of the description
//      above. A constraint is an expression of some semantic
//      condition that must be preserved, an invariant of a class or
//      relationship that must be preserved while the system is in a
//      steady state.
//
//===========================================================================
class InstParticleSystemLoader
: public tSimpleChunkHandler,
  public IWrappedLoader
{
    public:
        InstParticleSystemLoader();
        virtual ~InstParticleSystemLoader();

    ///////////////////////////////////////////////////////////////////////
    // 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:
        // These methods defined as private and not implemented ensure that
        // clients will not be able to use them.  For example, we will
        // disallow InstParticleSystemLoader from being copied and assigned.
        InstParticleSystemLoader( const InstParticleSystemLoader& );
        InstParticleSystemLoader& operator=( const InstParticleSystemLoader& );
};

#endif