Starshatter_Open
Open source Starshatter engine
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
KeyMap.h
Go to the documentation of this file.
1 /* Project Starshatter 4.6
2  Destroyer Studios LLC
3  Copyright © 1997-2006. All Rights Reserved.
4 
5  SUBSYSTEM: Stars.exe
6  FILE: KeyMap.h
7  AUTHOR: John DiCamillo
8 
9 
10  OVERVIEW
11  ========
12  Keyboard Mapping
13 */
14 
15 #ifndef KeyMap_h
16 #define KeyMap_h
17 
18 #include "Types.h"
19 #include "Geometry.h"
20 #include "MotionController.h"
21 
22 // +--------------------------------------------------------------------+
23 
24 class KeyMap
25 {
26 public:
27  KeyMap();
28  virtual ~KeyMap();
29 
30  int DefaultKeyMap(int max_keys = 256);
31  int LoadKeyMap(const char* filename, int max_keys = 256);
32  int SaveKeyMap(const char* filename, int max_keys = 256);
33 
35 
36  int GetCategory(int i);
37  const char* DescribeAction(int i);
38  const char* DescribeKey(int i);
39  int FindMapIndex(int act);
40 
41  static const char* DescribeKey(int vk, int shift, int joy);
42  static int GetMappableVKey(int n);
43 
44  int GetNumKeys() { return nkeys; }
45  KeyMapEntry* GetMapping() { return map; }
46  KeyMapEntry* GetKeyMap(int i) { return &map[i]; }
47  KeyMapEntry* GetDefault(int i) { return &defmap[i]; }
48 
49  void Bind(int a, int k, int s);
50 
51  static int GetKeyAction(const char* act_str);
52  static int GetKeyActionIndex(int act);
53  static int GetKeyKey(const char* key_str);
54  static int GetKeyKeyIndex(int key);
55 
56 protected:
57  int BuildDefaultKeyMap();
58 
61  int nkeys;
62 };
63 
64 // +--------------------------------------------------------------------+
65 
66 
67 const int KEY_EXIT = 0 + KEY_USER_BASE;
68 const int KEY_PAUSE = 1 + KEY_USER_BASE;
69 const int KEY_NEXT_VIEW = 2 + KEY_USER_BASE;
74 const int KEY_AUTO_NAV = 7 + KEY_USER_BASE;
77 const int KEY_TIME_SKIP = 10 + KEY_USER_BASE;
78 
80 
81 const int KEY_THROTTLE_UP = 15 + KEY_USER_BASE;
88 const int KEY_DROP_ORBIT = 22 + KEY_USER_BASE;
89 
90 const int KEY_HUD_INST = 23 + KEY_USER_BASE;
91 const int KEY_CAM_BRIDGE = 24 + KEY_USER_BASE;
92 const int KEY_CAM_CHASE = 25 + KEY_USER_BASE;
93 const int KEY_CAM_EXTERN = 26 + KEY_USER_BASE;
94 const int KEY_HUD_MODE = 27 + KEY_USER_BASE;
95 const int KEY_HUD_COLOR = 28 + KEY_USER_BASE;
96 const int KEY_HUD_WARN = 29 + KEY_USER_BASE;
97 const int KEY_NAV_DLG = 30 + KEY_USER_BASE;
98 const int KEY_WEP_DLG = 31 + KEY_USER_BASE;
99 const int KEY_FLT_DLG = 32 + KEY_USER_BASE;
100 const int KEY_ENG_DLG = 33 + KEY_USER_BASE;
101 
102 const int KEY_ZOOM_WIDE = 34 + KEY_USER_BASE;
103 const int KEY_ZOOM_IN = 35 + KEY_USER_BASE;
104 const int KEY_ZOOM_OUT = 36 + KEY_USER_BASE;
113 const int KEY_CAM_DROP = 45 + KEY_USER_BASE;
114 
116 const int KEY_RADIO_MENU = 51 + KEY_USER_BASE;
118 const int KEY_MFD1 = 53 + KEY_USER_BASE;
119 const int KEY_MFD2 = 54 + KEY_USER_BASE;
120 const int KEY_MFD3 = 55 + KEY_USER_BASE;
121 const int KEY_MFD4 = 56 + KEY_USER_BASE;
122 
128 const int KEY_EMCON_PLUS = 65 + KEY_USER_BASE;
130 
131 const int KEY_SHIELDS_UP = 67 + KEY_USER_BASE;
135 const int KEY_DECOY = 71 + KEY_USER_BASE;
136 const int KEY_ECM_TOGGLE = 72 + KEY_USER_BASE;
139 
146 
147 const int KEY_AUGMENTER = 81 + KEY_USER_BASE;
149 
150 const int KEY_CAM_VIRT = 85 + KEY_USER_BASE;
155 
166 
168 const int KEY_CHAT_TEAM = 101 + KEY_USER_BASE;
169 const int KEY_CHAT_WING = 102 + KEY_USER_BASE;
170 const int KEY_CHAT_UNIT = 103 + KEY_USER_BASE;
171 
172 const int KEY_COMMAND_MODE = 104 + KEY_USER_BASE;
174 
175 /*** For Debug Convenience Only: ***/
176 const int KEY_INC_STARDATE = 120 + KEY_USER_BASE;
177 const int KEY_DEC_STARDATE = 121 + KEY_USER_BASE;
178 /***/
179 
180 #endif KeyMap_h
181