FS2_Open
Open source remastering of the Freespace 2 engine
key.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) Volition, Inc. 1999. All rights reserved.
3  *
4  * All source code herein is the property of Volition, Inc. You may not sell
5  * or otherwise commercially exploit the source or things you created based on the
6  * source.
7  *
8 */
9 
10 
11 
12 #ifndef _KEY_H
13 #define _KEY_H
14 
15 /*
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 */
20 
21 #include "globalincs/pstypes.h"
22 
23 #define NUM_KEYS 256
24 
25 extern int shifted_ascii_table[];
26 extern int ascii_table[];
27 
29 
30 // O/S level hooks...
31 void key_init();
32 void key_level_init();
33 void key_lost_focus();
34 void key_got_focus();
35 void key_mark( uint code, int state, uint latency );
36 int key_getch();
37 int key_peekkey();
38 void key_flush();
39 
40 // Routines/data you can access:
41 //NOT USED! extern fix key_down_time( uint code );
42 float key_down_timef( uint code );
43 
44 int key_to_ascii(int keycode );
45 int key_inkey();
46 
47 // global flag that will enable/disable the backspace key from stopping execution
48 //extern int Backspace_debug;
49 
51 int key_down_count(int scancode);
52 int key_up_count(int scancode);
53 int key_checkch();
54 int key_check(int key);
55 
56 // Put "key" back in the input buffer.
57 void key_outkey(int key);
58 
59 extern int Cheats_enabled;
60 extern int Key_normal_game;
61 
62 #define KEY_SHIFTED 0x1000
63 #define KEY_ALTED 0x2000
64 #define KEY_CTRLED 0x4000
65 #define KEY_DEBUGGED 0x8000
66 #define KEY_DEBUGGED1 0x0800 // Cheat bit in release version of game.
67 #define KEY_MASK 0x00FF
68 
69 #define KEY_DEBUG_KEY 0x29 // KEY_LAPOSTRO (shifted = tilde, near upper-left of keyboard)
70 
71 #define KEY_0 0x0B
72 #define KEY_1 0x02
73 #define KEY_2 0x03
74 #define KEY_3 0x04
75 #define KEY_4 0x05
76 #define KEY_5 0x06
77 #define KEY_6 0x07
78 #define KEY_7 0x08
79 #define KEY_8 0x09
80 #define KEY_9 0x0A
81 
82 #define KEY_A 0x1E
83 #define KEY_B 0x30
84 #define KEY_C 0x2E
85 #define KEY_D 0x20
86 #define KEY_E 0x12
87 #define KEY_F 0x21
88 #define KEY_G 0x22
89 #define KEY_H 0x23
90 #define KEY_I 0x17
91 #define KEY_J 0x24
92 #define KEY_K 0x25
93 #define KEY_L 0x26
94 #define KEY_M 0x32
95 #define KEY_N 0x31
96 #define KEY_O 0x18
97 #define KEY_P 0x19
98 #define KEY_Q 0x10
99 #define KEY_R 0x13
100 #define KEY_S 0x1F
101 #define KEY_T 0x14
102 #define KEY_U 0x16
103 #define KEY_V 0x2F
104 #define KEY_W 0x11
105 #define KEY_X 0x2D
106 #define KEY_Y 0x15
107 #define KEY_Z 0x2C
108 
109 #define KEY_MINUS 0x0C
110 #define KEY_EQUAL 0x0D
111 #define KEY_DIVIDE 0x35
112 #define KEY_SLASH 0x2B
113 #define KEY_SLASH_UK 0x56
114 #define KEY_COMMA 0x33
115 #define KEY_PERIOD 0x34
116 #define KEY_SEMICOL 0x27
117 
118 #define KEY_LBRACKET 0x1A
119 #define KEY_RBRACKET 0x1B
120 
121 #define KEY_RAPOSTRO 0x28
122 #define KEY_LAPOSTRO 0x29
123 
124 #define KEY_ESC 0x01
125 #define KEY_ENTER 0x1C
126 #define KEY_BACKSP 0x0E
127 #define KEY_TAB 0x0F
128 #define KEY_SPACEBAR 0x39
129 
130 #define KEY_NUMLOCK 0x45
131 #define KEY_SCROLLOCK 0x46
132 #define KEY_CAPSLOCK 0x3A
133 
134 #define KEY_LSHIFT 0x2A
135 #define KEY_RSHIFT 0x36
136 
137 #define KEY_LALT 0x38
138 #define KEY_RALT 0xB8
139 
140 #define KEY_LCTRL 0x1D
141 #define KEY_RCTRL 0x9D
142 
143 #define KEY_F1 0x3B
144 #define KEY_F2 0x3C
145 #define KEY_F3 0x3D
146 #define KEY_F4 0x3E
147 #define KEY_F5 0x3F
148 #define KEY_F6 0x40
149 #define KEY_F7 0x41
150 #define KEY_F8 0x42
151 #define KEY_F9 0x43
152 #define KEY_F10 0x44
153 #define KEY_F11 0x57
154 #define KEY_F12 0x58
155 
156 #define KEY_PAD0 0x52
157 #define KEY_PAD1 0x4F
158 #define KEY_PAD2 0x50
159 #define KEY_PAD3 0x51
160 #define KEY_PAD4 0x4B
161 #define KEY_PAD5 0x4C
162 #define KEY_PAD6 0x4D
163 #define KEY_PAD7 0x47
164 #define KEY_PAD8 0x48
165 #define KEY_PAD9 0x49
166 #define KEY_PADMINUS 0x4A
167 #define KEY_PADPLUS 0x4E
168 #define KEY_PADPERIOD 0x53
169 #define KEY_PADDIVIDE 0xB5
170 #define KEY_PADMULTIPLY 0x37
171 #define KEY_PADENTER 0x9C
172 
173 #define KEY_INSERT 0xD2
174 #define KEY_HOME 0xC7
175 #define KEY_PAGEUP 0xC9
176 #define KEY_DELETE 0xd3
177 #define KEY_END 0xCF
178 #define KEY_PAGEDOWN 0xD1
179 #define KEY_UP 0xC8
180 #define KEY_DOWN 0xD0
181 #define KEY_LEFT 0xCB
182 #define KEY_RIGHT 0xCD
183 
184 #define KEY_PRINT_SCRN 0xB7
185 #define KEY_PAUSE 0x45 //DOS: 0x61
186 #define KEY_BREAK 0xc6
187 
188 /*
189 #ifdef __cplusplus
190 }
191 #endif
192 */
193 
194 #endif
int key_getch()
Definition: key.cpp:514
int Key_normal_game
Definition: key.cpp:101
int Cheats_enabled
Definition: key.cpp:100
void key_lost_focus()
Definition: key.cpp:917
int ascii_table[]
Definition: key.cpp:72
int key_down_count(int scancode)
Definition: key.cpp:653
int key
float key_down_timef(uint code)
Definition: key.cpp:568
HWND DWORD code
Definition: vddraw.h:425
int key_check(int key)
Definition: key.cpp:689
void key_got_focus()
Definition: key.cpp:924
unsigned int uint
Definition: pstypes.h:64
void key_mark(uint code, int state, uint latency)
Definition: key.cpp:697
int key_up_count(int scancode)
Definition: key.cpp:672
ubyte keyd_pressed[NUM_KEYS]
Definition: key.cpp:42
void key_level_init()
Definition: key.cpp:909
void key_outkey(int key)
Definition: key.cpp:445
void key_flush()
Definition: key.cpp:356
unsigned char ubyte
Definition: pstypes.h:62
int key_to_ascii(int keycode)
Definition: key.cpp:336
int key_inkey()
Definition: key.cpp:424
int key_checkch()
Definition: key.cpp:401
int shifted_ascii_table[]
Definition: key.cpp:83
#define NUM_KEYS
Definition: key.h:23
uint key_get_shift_status()
Definition: key.cpp:532
void key_init()
Definition: key.cpp:864
int key_peekkey()
Definition: key.cpp:496