Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/world_entities/npcs/mover.h @ 10644

Last change on this file since 10644 was 10643, checked in by bknecht, 18 years ago

improvements by landauf on bsp, rotor and wireframe (does build, should work)

File size: 2.6 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 setStayOpenTime(float time) { this->stayOpenTime = time; }
38        void setOpeningSoundFile(const std::string& fileName);
39        void setOpenedSoundFile(const std::string& fileName);
40        void setMovingSoundFile(const std::string& fileName);
41        void setClosingSoundFile(const std::string& fileName);
42        void setClosedSoundFile(const std::string& fileName);
43
44        virtual void tick(float dt);
45
46    private:
47        bool checkOpen(float dt);
48        bool checkClosed(float dt);
49        bool checkPlayerInActionRadius();
50   
51        OrxSound::SoundSource       soundSource_starting;
52        OrxSound::SoundSource       soundSource_moving;
53        OrxSound::SoundSource       soundSource_ending;
54        OrxSound::SoundBuffer       soundBuffer_opening;
55        OrxSound::SoundBuffer       soundBuffer_opened;
56        OrxSound::SoundBuffer       soundBuffer_moving;
57        OrxSound::SoundBuffer       soundBuffer_closing;
58        OrxSound::SoundBuffer       soundBuffer_closed;
59
60        Vector                      targetCoordinates;          //!< the target coordinates
61        Vector                      originCoordinates;          //!< the origin coordinates
62        float                       actionRadius;               //!< the action-radius
63        float                       actionTime;                 //!< the action-time
64        int                         state;                      //!< the state of the mover
65        float                       stayOpenTime;               //!< waiting time while opened
66        float                       openTime;                   //!< time since opened
67};
68
69#endif  /* _MOVER_H */
70
71
72
Note: See TracBrowser for help on using the repository browser.