81 |
81 |
82 #define AS(x, z) {x, 0, z} |
82 #define AS(x, z) {x, 0, z} |
83 #define AM(x, y, z, w) {x, y - x, z} |
83 #define AM(x, y, z, w) {x, y - x, z} |
84 |
84 |
85 static const VkMapping _vk_mapping[] = { |
85 static const VkMapping _vk_mapping[] = { |
86 // Pageup stuff + up/down |
86 /* Pageup stuff + up/down */ |
87 AM(VK_PRIOR,VK_DOWN, WKC_PAGEUP, WKC_DOWN), |
87 AM(VK_PRIOR,VK_DOWN, WKC_PAGEUP, WKC_DOWN), |
88 // Map letters & digits |
88 /* Map letters & digits */ |
89 AM('A','Z','A','Z'), |
89 AM('A','Z','A','Z'), |
90 AM('0','9','0','9'), |
90 AM('0','9','0','9'), |
91 |
91 |
92 AS(VK_ESCAPE, WKC_ESC), |
92 AS(VK_ESCAPE, WKC_ESC), |
93 AS(VK_PAUSE, WKC_PAUSE), |
93 AS(VK_PAUSE, WKC_PAUSE), |
96 |
96 |
97 AS(VK_SPACE, WKC_SPACE), |
97 AS(VK_SPACE, WKC_SPACE), |
98 AS(VK_RETURN, WKC_RETURN), |
98 AS(VK_RETURN, WKC_RETURN), |
99 AS(VK_TAB, WKC_TAB), |
99 AS(VK_TAB, WKC_TAB), |
100 |
100 |
101 // Function keys |
101 /* Function keys */ |
102 AM(VK_F1, VK_F12, WKC_F1, WKC_F12), |
102 AM(VK_F1, VK_F12, WKC_F1, WKC_F12), |
103 |
103 |
104 // Numeric part. |
104 /* Numeric part */ |
105 // What is the virtual keycode for numeric enter?? |
|
106 AM(VK_NUMPAD0, VK_NUMPAD9, WKC_NUM_0, WKC_NUM_9), |
105 AM(VK_NUMPAD0, VK_NUMPAD9, WKC_NUM_0, WKC_NUM_9), |
107 AS(VK_DIVIDE, WKC_NUM_DIV), |
106 AS(VK_DIVIDE, WKC_NUM_DIV), |
108 AS(VK_MULTIPLY, WKC_NUM_MUL), |
107 AS(VK_MULTIPLY, WKC_NUM_MUL), |
109 AS(VK_SUBTRACT, WKC_NUM_MINUS), |
108 AS(VK_SUBTRACT, WKC_NUM_MINUS), |
110 AS(VK_ADD, WKC_NUM_PLUS), |
109 AS(VK_ADD, WKC_NUM_PLUS), |
111 AS(VK_DECIMAL, WKC_NUM_DECIMAL) |
110 AS(VK_DECIMAL, WKC_NUM_DECIMAL), |
|
111 |
|
112 /* Other non-letter keys */ |
|
113 AS(0xBF, WKC_SLASH), |
|
114 AS(0xBA, WKC_SEMICOLON), |
|
115 AS(0xBB, WKC_EQUALS), |
|
116 AS(0xDB, WKC_L_BRACKET), |
|
117 AS(0xDC, WKC_BACKSLASH), |
|
118 AS(0xDD, WKC_R_BRACKET), |
|
119 |
|
120 AS(0xDE, WKC_SINGLEQUOTE), |
|
121 AS(0xBC, WKC_COMMA), |
|
122 AS(0xBD, WKC_MINUS), |
|
123 AS(0xBE, WKC_PERIOD) |
112 }; |
124 }; |
113 |
125 |
114 static uint MapWindowsKey(uint sym) |
126 static uint MapWindowsKey(uint sym) |
115 { |
127 { |
116 const VkMapping *map; |
128 const VkMapping *map; |
135 { |
147 { |
136 // allocate new dib section of the new size |
148 // allocate new dib section of the new size |
137 if (AllocateDibSection(w, h)) { |
149 if (AllocateDibSection(w, h)) { |
138 // mark all palette colors dirty |
150 // mark all palette colors dirty |
139 _pal_first_dirty = 0; |
151 _pal_first_dirty = 0; |
140 _pal_count_dirty = 255; |
152 _pal_count_dirty = 256; |
141 GameSizeChanged(); |
153 GameSizeChanged(); |
142 |
154 |
143 // redraw screen |
155 // redraw screen |
144 if (_wnd.running) { |
156 if (_wnd.running) { |
145 _screen.dst_ptr = _wnd.buffer_bits; |
157 _screen.dst_ptr = _wnd.buffer_bits; |