Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/cleanup/src/world_entities/npcs/mover.h @ 10633

Last change on this file since 10633 was 10487, checked in by patrick, 18 years ago

patches from x3n

File size: 2.4 KB
Line 
1/*!
2 * @file mover.h
3 *  Mover is an object which moves from its origin to relatively given coordinates
4 *  within a given action-time as soon as the player enters the action-radius.
5 */
6
7#ifndef _MOVER_H
8#define _MOVER_H
9
10/* INCLUDES */
11#include "world_entity.h"
12
13#include "sound_buffer.h"
14#include "sound_source.h"
15
16//! A Class to handle a Mover
17class Mover : public WorldEntity
18{
19    ObjectListDeclaration(Mover);
20    public:
21        typedef enum MoverState {
22            Closed        = 0,
23            Opening       = 1,
24            Open          = 2,
25            Closing       = 3,
26            Locked        = 4
27        };
28
29        Mover(const TiXmlElement* root = NULL);
30        virtual ~Mover();
31
32        virtual void loadParams(const TiXmlElement* root);
33
34        void setTargetCoordinates(float x, float y, float z) { this->targetCoordinates = Vector(x,y,z); }
35        void setActionRadius(float radius) { this->actionRadius = radius; }
36        void setActionTime(float time) { this->actionTime = time; }
37        void setOpeningSoundFile(const std::string& fileName);
38        void setOpenedSoundFile(const std::string& fileName);
39        void setMovingSoundFile(const std::string& fileName);
40        void setClosingSoundFile(const std::string& fileName);
41        void setClosedSoundFile(const std::string& fileName);
42
43        virtual void tick(float dt);
44
45    private:
46        bool checkOpen(float dt);
47        bool checkClosed(float dt);
48        bool checkPlayerInActionRadius();
49   
50        OrxSound::SoundSource       soundSource_starting;
51        OrxSound::SoundSource       soundSource_moving;
52        OrxSound::SoundSource       soundSource_ending;
53        OrxSound::SoundBuffer       soundBuffer_opening;
54        OrxSound::SoundBuffer       soundBuffer_opened;
55        OrxSound::SoundBuffer       soundBuffer_moving;
56        OrxSound::SoundBuffer       soundBuffer_closing;
57        OrxSound::SoundBuffer       soundBuffer_closed;
58
59        Vector                      targetCoordinates;          //!< the target coordinates
60        Vector                      originCoordinates;          //!< the origin coordinates
61        float                       actionRadius;               //!< the action-radius
62        float                       actionTime;                 //!< the action-time
63        int                         state;                      //!< the state of the mover
64};
65
66#endif  /* _MOVER_H */
67
68
69
Note: See TracBrowser for help on using the repository browser.