Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

obj_face.h

Go to the documentation of this file.
00001 #ifndef __OBJECTFACE_H
00002 #define __OBJECTFACE_H
00003 
00004 class FacingInterface
00005 {
00006 protected:
00007   Object* obj;
00008   int dir;
00009   bool allow_setting; /* allow externals setting direction? default: NO */
00010   void SetDir( int new_dir ); /* convenience function: emits EVT_CHGFACE */
00011 public:
00012   FacingInterface( Object* _obj, int _dir, bool _allow_setting ):
00013     obj( _obj ),
00014     dir( _dir ),
00015     allow_setting( _allow_setting ) {}
00016   virtual ~FacingInterface() {}
00017   virtual void Event( int evt ) {} 
00018   int Direction() { return dir; }
00019   void SetDirection( int new_dir ); 
00020 };
00021 
00022 class FacePassive: public FacingInterface
00023 {
00024 public:
00025   FacePassive( Object* _obj, int _dir ):
00026     FacingInterface( _obj, _dir, true ) {}
00027   virtual ~FacePassive() {}
00028   virtual void Event( int evt ) {}
00029   void SetDirection( int new_dir ) { dir = new_dir; }
00030 };
00031 
00032 // Whenever there is a bounce,
00033 // reverse facing.
00034 class FaceBouncing: public FacingInterface
00035 {
00036 public:
00037   FaceBouncing( Object* _obj, int _dir ):
00038     FacingInterface( _obj, _dir, false ) {}
00039   virtual ~FaceBouncing() {}
00040   virtual void Event( int evt );
00041 };
00042 
00043 // Whenever there is a bounce,
00044 // reverse facing, but always in an
00045 // upwards direction.
00046 class FaceFrog: public FacingInterface
00047 {
00048 public:
00049   FaceFrog( Object* _obj, int _dir ):
00050     FacingInterface( _obj, _dir, false ) {}
00051   virtual ~FaceFrog() {}
00052   virtual void Event( int evt );
00053 };
00054 
00055 // When the player presses right or left,
00056 // select the appropriate facing.
00057 class FacePlayer: public FacingInterface
00058 {
00059 public:
00060   FacePlayer( Object* _obj, int _dir ):
00061     FacingInterface( _obj, _dir, false ) {}
00062   virtual ~FacePlayer() {}
00063   virtual void Event( int evt );
00064 };
00065 
00066 // Rotate facing continuously.
00067 class FaceRotate: public FacingInterface
00068 {
00069 private:
00070   bool cwise;            
00071   int duration;          
00072   int count;             
00073 public:
00074   FaceRotate( Object* _obj, int _dir, bool _cwise, int _ms ):
00075     FacingInterface( _obj, _dir, false ),
00076     cwise( _cwise ),
00077     duration( _ms ), count( _ms ) {}
00078   virtual ~FaceRotate() {}  
00079   virtual void Event( int evt ); 
00080 };
00081 
00082 #endif // __OBJECTFACE_H

Generated on Sun Mar 2 18:50:27 2003 for eounicorn by doxygen1.3-rc3