summaryrefslogtreecommitdiffstats
path: root/game/code/sound/avatar/soundavatar.h
blob: 3ea676a4e5e2522185541d05d5207a603dc380fe (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
//=============================================================================
// Copyright (C) 2002 Radical Entertainment Ltd.  All rights reserved.
//
// File:        soundavatar.h
//
// Description: Declaration of SoundAvatar class, which maintains a reference
//              to an avatar for which sounds are to be created, and directs
//              the playing of sound as either vehicle- or character-based,
//              whichever is appropriate at the time.
//
// History:     30/06/2002 + Created -- Darren
//
//=============================================================================

#ifndef SOUNDAVATAR_H
#define SOUNDAVATAR_H

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

#include <sound/avatar/vehiclesoundplayer.h>

#include <events/eventlistener.h>

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

class Avatar;

//=============================================================================
//
// Synopsis:    SoundAvatar
//
//=============================================================================

class SoundAvatar : public EventListener
{
    public:
        SoundAvatar( Avatar* avatarObj );
        virtual ~SoundAvatar();

        void HandleEvent( EventEnum id, void* pEventData );

        void UpdateOncePerFrame( unsigned int elapsedTime );

    private:
        //Prevent wasteful constructor creation.
        SoundAvatar();
        SoundAvatar( const SoundAvatar& original );
        SoundAvatar& operator=( const SoundAvatar& rhs );
        
        void syncCarSoundState();

        //
        // Avatar object that we're going to keep an eye on
        //
        Avatar* m_avatar;

        //
        // Is the player in the car?
        //
        bool m_isInCar;

        //
        // Object for playing vehicle sounds
        VehicleSoundPlayer m_vehicleSoundPlayer;

        //
        // Timer for character sprinting
        //
        unsigned int m_turboTimer;
};


#endif // SOUNDAVATAR_H