Main Page | Modules | Namespace List | Class Hierarchy | Compound List | File List | Compound Members | File Members

userinput.h

Go to the documentation of this file.
00001 /*****************************************************************************
00002  * $Id: userinput.h,v 1.1 2003/07/16 11:42:15 schou Exp $
00003  * Author: Jakob Schou Jensen <schou@sourceforge.net>
00004  * Licence: GPL
00005  *
00006  * Description: User input handling
00007  *
00008  ****************************************************************************/
00009 
00015 #ifndef USERINPUT_H
00016 #define USERINPUT_H
00017 
00018 #include <SDL/SDL.h>
00019 #include <adsoio.h>
00020 
00021 #define UI_MAX_HANDLERS 16
00022 
00023 void processEvents();
00024 
00027 struct KeyboardHandler {
00030   virtual bool onKeyEvent(SDLKey key) = 0;
00031   virtual ~KeyboardHandler(){}
00032 };
00033 
00035 class UserInput {
00036   KeyboardHandler *handlerList[UI_MAX_HANDLERS];
00037   int handlerCount;
00038 
00039   void openMenuPage(int p);
00040   void handleKeyDown(SDL_keysym *keysym);
00041   void handleKeyUp(SDL_keysym *keysym);
00042   void handleMouseMotion(SDL_MouseMotionEvent *mme);
00043   void handleMouseButton(SDL_MouseButtonEvent *mbe);
00044 
00045 public:
00046   // Keyboard movement
00047   int key_left;
00048   int key_right;
00049   int key_forward;
00050   int key_back;
00051   int key_shoot;
00052 
00053   // Mouse input
00054   int mouse_delta_x;
00055   int mouse_delta_y;
00056   int mouse_left;
00057   int mouse_right;
00058 
00059   void processEvents(); 
00060 
00063   void addHandler(KeyboardHandler *h){
00064     if(handlerCount<UI_MAX_HANDLERS) handlerList[handlerCount++] = h;
00065     else iFatal("Maximum keyboard handlers exceeded");
00066   }
00067   UserInput(){
00068     key_left=0;
00069     key_right=0;
00070     key_forward=0;
00071     key_back=0;
00072     key_shoot=0;
00073     mouse_delta_x = 0;
00074     mouse_delta_y = 0;
00075     mouse_left = 0;
00076     mouse_right = 0;
00077 
00078     handlerCount = 0;
00079   }
00080 };
00081 
00082 extern UserInput userInput;
00083 
00084 #endif
00085 

Generated on Mon Jul 21 10:44:47 2003 for Rover by doxygen 1.3.2