summaryrefslogtreecommitdiffstats
path: root/game/code/ai/actor/actoranimation.h
blob: 6b26ff80a2caba4510287767baca25d5b2746bdd (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
//===========================================================================
// Copyright (C) 2002 Radical Entertainment Ltd.  All rights reserved.
//
// Component:   ActorAnimation
//
// Description: Actor animation driver
//
// Authors:     Michael Riegger
//
//===========================================================================

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


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

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

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


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

//===========================================================================
//
// Description: 
//      A class that Actors can use to have a hardcoded, procedural animation implementation
//      instead of a long memory-expensive one exported from Maya
//
// Constraints:
//
//
//===========================================================================
class ActorAnimation
{
    public:
        ActorAnimation(){}
        virtual ~ActorAnimation(){ }
        virtual void SetState( int state )=0;
        // Apply animation, return true/false indicating whether or not the returned animation is different
        // from the given one
        virtual bool Update( const rmt::Matrix& currTransform, rmt::Matrix* newTransform, float deltaTime, tCompositeDrawable* = NULL )=0;

    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 ActorAnimation from being copied and assigned.
};

class StatePropDSGProcAnimator
{
public:
    StatePropDSGProcAnimator() {};
    virtual ~StatePropDSGProcAnimator() {};
    virtual void Advance( float Deltams ) {};
    virtual void UpdateForRender( tCompositeDrawable* Drawable ) {};
};

#endif