Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/single_player_map/src/world_entities/npcs/generic_npc.h @ 8813

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

more npc functions

File size: 2.3 KB
RevLine 
[8514]1
2/*!
3 * @file generic_npc.h
4 * generic npc object
5 */
6
7#ifndef _GENERIC_ENTITY_H
8#define _GENERIC_ENTITY_H
9
10#include "npc.h"
11
12#include <string>
[8793]13
[8516]14#include "sound_source.h"
[8514]15
[8793]16#include "vector.h"
[8796]17#include "quaternion.h"
[8793]18
19
[8516]20namespace OrxSound{ class SoundSource; }
21namespace OrxSound{ class SoundBuffer; }
[8514]22
23class TiXmlElement;
[8802]24class Animation3D;
[8514]25
26
27class GenericNPC : public NPC
28{
29 public:
[8811]30  GenericNPC();
[8514]31  GenericNPC(const TiXmlElement* root);
32  virtual ~GenericNPC ();
33
34  void init();
35  virtual void loadParams(const TiXmlElement* root);
36
37  void setAnimation(int animationIndex, int animPlaybackMode);
[8516]38  /** sets the sound volume to @param vol: volume of the sound */
39  inline void setVolume(float vol) { this->soundVolume = vol; }
[8514]40
[8705]41
[8813]42  /* npc controlling functions */
[8705]43
[8813]44  /* walking functions */
[8783]45  float walkTo(const Vector& coordinate, const Quaternion& dir);
[8810]46  float walkTo(float x, float y, float z);
[8783]47  float walkTo(float x, float y, float z, float qu, float qx, float qy, float qz);
48  float walkTo(float x, float y, float qu, float qx, float qy, float qz);
[8514]49
[8813]50  /* running functions */
[8783]51  float runTo(const Vector& coordinate, const Quaternion& dir);
52  float runTo(float x, float y, float z, float qu, float qx, float qy, float qz);
53  float runTo(float x, float y, float qu, float qx, float qy, float qz);
54
[8813]55  /* couching functinos */
[8783]56  float crouchTo(const Vector& coordinate, const Quaternion& dir);
57  float crouchTo(float x, float y, float z, float qu, float qx, float qy, float qz);
58  float crouchTo(float x, float y, float qu, float qx, float qy, float qz);
59
[8813]60  /* some oriantation functions */
61  float lookAt(WorldEntity* worldEntity);
62
63  /* talking funcitons*/
[8796]64  float talkTo(WorldEntity* worldEntity, int dialogNr);
[8783]65
[8813]66  /* shooting functions */
67  void shootAt(WorldEntity* entity);
[8793]68
[8514]69
[8813]70  /* some generic control funtions */
71  void playAnimation(int animationIndex, int animPlaybackMode);
72  void playSound(std::string filename);
73  void playSound(int i);
74
75
[8514]76  virtual void tick (float time);
77
78
[8813]79  void destroy();
80
[8514]81 private:
[8516]82   OrxSound::SoundSource                   soundSource;
83   OrxSound::SoundBuffer*                  soundBuffer;
84   float                                   soundVolume;
[8793]85
86   Vector                                  destCoor;
87   Quaternion                              destDir;
[8802]88
89   Animation3D*                            currentAnim;
[8514]90};
91
92#endif /* _GENERIC_ENTITY_H */
Note: See TracBrowser for help on using the repository browser.