1 // Copyright 2005 by Anthony Liekens anthony@liekens.net 2 3 #ifndef INPUT_H 4 #define INPUT_H 5 6 enum InputType 7 { 8 IT_NONE, 9 IT_KEYBOARD, 10 IT_MOUSEMOTION, 11 IT_MOUSEBUTTON, 12 IT_STICKMOTION, 13 IT_STICKBUTTON, 14 IT_STICKHAT // TODO: Not yet implemented. 15 }; 16 17 enum AxisDirection 18 { 19 AD_NEGATIVE, 20 AD_POSITIVE 21 }; 22 23 typedef struct Input 24 { 25 InputType inputType; 26 27 int id0; 28 int id1; 29 int id2; 30 }; 31 32 enum GameAction 33 { 34 GA_NULL, // Nothing. Dummy entry. 35 36 GA_SENSE_CANCEL, // Input mapping sense cancel. 37 GA_SENSE_COMPLETE, // Input mapping sense complete. 38 39 GA_TOGGLE_GRAB, // Toggles input grabbing for windowed mode 40 41 // General actions 42 GA_LEAVE, // Leave menu, game whatever. 43 GA_SCREENSHOT, // Make a screenshot. 44 GA_PAUSE, // Pause/Unpause the game. 45 GA_TOGGLE_FULLSCREEN, // Toggle between fullscreen and windowed mode. 46 47 GA_RESTART_ROUND, // Restart round. 48 GA_NEXT_ROUND, // Start next round. 49 50 // Game related actions 51 GA_SELECT_ALL, // Select all planets as source. 52 GA_TOGGLE_ENEMY_VISIBILITY, // Toggle between showing and hiding the enemy ships. 53 54 GA_SELECTION, 55 56 GA_CURSOR_UP, 57 GA_CURSOR_DOWN, 58 GA_CURSOR_LEFT, 59 GA_CURSOR_RIGHT, 60 61 GA_SELECT_NEAREST_PLANET, 62 GA_MOVE_TO_NEAREST_PLANET, 63 64 GA_SET_FLEET_STRENGTH_SINGLE, 65 GA_FLEET_STRENGTH_UP, 66 GA_FLEET_STRENGTH_DOWN, 67 68 GA_SET_FLEET_STRENGTH_10, 69 GA_SET_FLEET_STRENGTH_20, 70 GA_SET_FLEET_STRENGTH_30, 71 GA_SET_FLEET_STRENGTH_40, 72 GA_SET_FLEET_STRENGTH_50, 73 GA_SET_FLEET_STRENGTH_60, 74 GA_SET_FLEET_STRENGTH_70, 75 GA_SET_FLEET_STRENGTH_80, 76 GA_SET_FLEET_STRENGTH_90, 77 GA_SET_FLEET_STRENGTH_100, 78 79 }; 80 #define GA_FIRST (GA_TOGGLE_GRAB) 81 #define GA_COUNT (GA_SET_FLEET_STRENGTH_100+1) 82 83 class InputHandler { 84 85 public: 86 virtual void handle(GameAction ga, int value) = 0; 87 }; 88 89 #endif 90