Index: src/gfx.h =================================================================== --- src/gfx.h (revision 10450) +++ src/gfx.h (working copy) @@ -80,6 +80,21 @@ /* 0-9 are mapped to 48-57 * A-Z are mapped to 65-90 * a-z are mapped to 97-122 */ + + /* Other keys, corresponding to their ascii values */ + WKC_SLASH = 47, // / Forward slash + WKC_SEMICOLON = 59, // ; Semicolon + WKC_EQUALS = 61, // = Equals + WKC_L_BRACKET = 91, // [ Left square bracket + WKC_BACKSLASH = 92, // \ Backslash + WKC_R_BRACKET = 93, // ] Right square bracket + + /* Other keys of which their ascii value is already taken + * - use unused ascii value not present on keyboard directly */ + WKC_SINGLEQUOTE = 58, // ' Single quote + WKC_COMMA = 60, // , Comma + WKC_PERIOD = 62, // . Period + WKC_MINUS = 95, // - Minus }; enum GameModes { Index: src/video/cocoa_v.mm =================================================================== --- src/video/cocoa_v.mm (revision 10450) +++ src/video/cocoa_v.mm (working copy) @@ -330,7 +330,21 @@ AS(QZ_KP_MINUS, WKC_NUM_MINUS), AS(QZ_KP_PLUS, WKC_NUM_PLUS), AS(QZ_KP_ENTER, WKC_NUM_ENTER), - AS(QZ_KP_PERIOD, WKC_NUM_DECIMAL) + AS(QZ_KP_PERIOD, WKC_NUM_DECIMAL), + + //Other non-letter keys + AS(QZ_SLASH, WKC_SLASH), + AS(QZ_SEMICOLON, WKC_SEMICOLON), + AS(QZ_EQUALS, WKC_EQUALS), + AS(QZ_LEFTBRACKET, WKC_L_BRACKET), + AS(QZ_BACKSLASH, WKC_BACKSLASH), + AS(QZ_RIGHTBRACKET, WKC_R_BRACKET), + + AS(QZ_QUOTE, WKC_SINGLEQUOTE), + AS(QZ_COMMA, WKC_COMMA), + AS(QZ_MINUS, WKC_MINUS), + AS(QZ_PERIOD, WKC_PERIOD) + }; Index: src/video/sdl_v.cpp =================================================================== --- src/video/sdl_v.cpp (revision 10450) +++ src/video/sdl_v.cpp (working copy) @@ -276,7 +276,21 @@ AS(SDLK_KP_MINUS, WKC_NUM_MINUS), AS(SDLK_KP_PLUS, WKC_NUM_PLUS), AS(SDLK_KP_ENTER, WKC_NUM_ENTER), - AS(SDLK_KP_PERIOD, WKC_NUM_DECIMAL) + AS(SDLK_KP_PERIOD, WKC_NUM_DECIMAL), + + //Other non-letter keys + AS(SDLK_SLASH, WKC_SLASH), + AS(SDLK_SEMICOLON, WKC_SEMICOLON), + AS(SDLK_EQUALS, WKC_EQUALS), + AS(SDLK_LEFTBRACKET, WKC_L_BRACKET), + AS(SDLK_BACKSLASH, WKC_BACKSLASH), + AS(SDLK_RIGHTBRACKET, WKC_R_BRACKET), + + AS(SDLK_QUOTE, WKC_SINGLEQUOTE), + AS(SDLK_COMMA, WKC_COMMA), + AS(SDLK_MINUS, WKC_MINUS), + AS(SDLK_PERIOD, WKC_PERIOD) + }; static uint32 ConvertSdlKeyIntoMy(SDL_keysym *sym) Index: src/video/win32_v.cpp =================================================================== --- src/video/win32_v.cpp (revision 10450) +++ src/video/win32_v.cpp (working copy) @@ -108,7 +108,20 @@ AS(VK_MULTIPLY, WKC_NUM_MUL), AS(VK_SUBTRACT, WKC_NUM_MINUS), AS(VK_ADD, WKC_NUM_PLUS), - AS(VK_DECIMAL, WKC_NUM_DECIMAL) + AS(VK_DECIMAL, WKC_NUM_DECIMAL), + + //Other non-letter keys + AS(0xBF, WKC_SLASH), + AS(0xBA, WKC_SEMICOLON), + AS(0xBB, WKC_EQUALS), + AS(0xDB, WKC_L_BRACKET), + AS(0xDC, WKC_BACKSLASH), + AS(0xDD, WKC_R_BRACKET), + + AS(0xDE, WKC_SINGLEQUOTE), + AS(0xBC, WKC_COMMA), + AS(0xBD, WKC_MINUS), + AS(0xBE, WKC_PERIOD) }; static uint MapWindowsKey(uint sym) Index: src/main_gui.cpp =================================================================== --- src/main_gui.cpp (revision 10450) +++ src/main_gui.cpp (working copy) @@ -1884,7 +1884,11 @@ case WKC_SHIFT | WKC_F2: ShowVehicleListWindow(_local_player, VEH_ROAD); break; case WKC_SHIFT | WKC_F3: ShowVehicleListWindow(_local_player, VEH_SHIP); break; case WKC_SHIFT | WKC_F4: ShowVehicleListWindow(_local_player, VEH_AIRCRAFT); break; + case WKC_NUM_PLUS: /* Fall through */ + case WKC_EQUALS: /* Fall through */ case WKC_SHIFT | WKC_F5: ToolbarZoomInClick(w); break; + case WKC_NUM_MINUS: /* Fall through */ + case WKC_MINUS: /* Fall through */ case WKC_SHIFT | WKC_F6: ToolbarZoomOutClick(w); break; case WKC_SHIFT | WKC_F7: if (CanBuildVehicleInfrastructure(VEH_TRAIN)) ShowBuildRailToolbar(_last_built_railtype, -1); break; case WKC_SHIFT | WKC_F8: ShowBuildRoadToolbar(_last_built_roadtype); break; @@ -1897,6 +1901,8 @@ case WKC_CTRL | WKC_ALT | 'C': if (!_networking) ShowCheatWindow(); break; case 'A': if (CanBuildVehicleInfrastructure(VEH_TRAIN)) ShowBuildRailToolbar(_last_built_railtype, 4); break; /* Invoke Autorail */ case 'L': ShowTerraformToolbar(); break; + case 'M': ShowSmallMap(); break; + case 'V': ShowExtraViewPortWindow(); break; default: return; } e->we.keypress.cont = false;