@@ -32,6 +32,7 @@ int main(int argc, char* args[]) {
3232 bool clicked = false , refresh = true , constantRefresh = false ;
3333 bool fullInstruction = false , constantFullInstruction = false , progressBarAll = false ;
3434 Uint8 key; // For keyboard input
35+ bool shiftPressed = false ;
3536
3637 // Capturing cout in log file
3738 if (settings.console .log ) freopen (" log.txt" , " w" , stdout);
@@ -64,7 +65,7 @@ int main(int argc, char* args[]) {
6465 // Printing the settings
6566 cout << logger.getStringTime () << logger.info << " Settings:" << endl << settings << logger.reset << endl;
6667 // Render the window
67- RenderWindow window (" RISC-CPU SIMULATOR v1.1.0 " , settings.win .width , settings.win .height ,
68+ RenderWindow window (" RISC-CPU SIMULATOR v1.1.1 " , settings.win .width , settings.win .height ,
6869 flags, &logger, &settings, " res/icon-64.png" );
6970 SDL_ShowCursor (0 );
7071
@@ -303,25 +304,25 @@ int main(int argc, char* args[]) {
303304 case SDL_KEYDOWN:
304305 if (code >= SDL_SCANCODE_A && code <= SDL_SCANCODE_Z) {
305306 key = code + 93 ;
307+ if (shiftPressed) key -= 0x20 ;
306308 }
307- else if (code >= SDL_SCANCODE_1 && code <= SDL_SCANCODE_9) {
309+ else if (code >= SDL_SCANCODE_1 && code <= SDL_SCANCODE_9)
308310 key = code + 19 ;
309- }
310- else if (code >= SDL_SCANCODE_KP_1 && code <= SDL_SCANCODE_KP_9) {
311+ else if (code >= SDL_SCANCODE_KP_1 && code <= SDL_SCANCODE_KP_9)
311312 key = code - 40 ;
312- }
313- else if (code == SDL_SCANCODE_0 || code == SDL_SCANCODE_KP_0) {
313+ else if (code == SDL_SCANCODE_0 || code == SDL_SCANCODE_KP_0)
314314 key = ' 0' ;
315- }
316- else if (code == SDL_SCANCODE_RETURN || code == SDL_SCANCODE_KP_ENTER) {
315+ else if (code == SDL_SCANCODE_RETURN || code == SDL_SCANCODE_KP_ENTER)
317316 key = ' \r ' ;
318- }
319- else if (code == SDL_SCANCODE_SPACE || code == SDL_SCANCODE_KP_SPACE) {
317+ else if (code == SDL_SCANCODE_SPACE || code == SDL_SCANCODE_KP_SPACE)
320318 key = ' ' ;
321- }
319+ else if (!shiftPressed && (code == SDL_SCANCODE_LSHIFT || code == SDL_SCANCODE_RSHIFT))
320+ shiftPressed = true ;
322321 IOD.input (key);
323322 break ;
324323 case SDL_KEYUP:
324+ if (shiftPressed && (code == SDL_SCANCODE_LSHIFT || code == SDL_SCANCODE_RSHIFT))
325+ shiftPressed = false ;
325326 key = 0x0 ;
326327 IOD.input (key);
327328 break ;
@@ -475,32 +476,32 @@ int main(int argc, char* args[]) {
475476 case ' 8' : indexKey = 7 ; break ;
476477 case ' 9' : indexKey = 8 ; break ;
477478 case ' 0' : indexKey = 9 ; break ;
478- case ' q' : indexKey = 10 ; break ;
479- case ' w' : indexKey = 11 ; break ;
480- case ' e' : indexKey = 12 ; break ;
481- case ' r' : indexKey = 13 ; break ;
482- case ' t' : indexKey = 14 ; break ;
483- case ' y' : indexKey = 15 ; break ;
484- case ' u' : indexKey = 16 ; break ;
485- case ' i' : indexKey = 17 ; break ;
486- case ' o' : indexKey = 18 ; break ;
487- case ' p' : indexKey = 19 ; break ;
488- case ' a' : indexKey = 20 ; break ;
489- case ' s' : indexKey = 21 ; break ;
490- case ' d' : indexKey = 22 ; break ;
491- case ' f' : indexKey = 23 ; break ;
492- case ' g' : indexKey = 24 ; break ;
493- case ' h' : indexKey = 25 ; break ;
494- case ' j' : indexKey = 26 ; break ;
495- case ' k' : indexKey = 27 ; break ;
496- case ' l' : indexKey = 28 ; break ;
497- case ' z' : indexKey = 29 ; break ;
498- case ' x' : indexKey = 30 ; break ;
499- case ' c' : indexKey = 31 ; break ;
500- case ' v' : indexKey = 32 ; break ;
501- case ' b' : indexKey = 33 ; break ;
502- case ' n' : indexKey = 34 ; break ;
503- case ' m' : indexKey = 35 ; break ;
479+ case ' q' : case ' Q ' : indexKey = 10 ; break ;
480+ case ' w' : case ' W ' : indexKey = 11 ; break ;
481+ case ' e' : case ' E ' : indexKey = 12 ; break ;
482+ case ' r' : case ' R ' : indexKey = 13 ; break ;
483+ case ' t' : case ' T ' : indexKey = 14 ; break ;
484+ case ' y' : case ' Y ' : indexKey = 15 ; break ;
485+ case ' u' : case ' U ' : indexKey = 16 ; break ;
486+ case ' i' : case ' I ' : indexKey = 17 ; break ;
487+ case ' o' : case ' O ' : indexKey = 18 ; break ;
488+ case ' p' : case ' P ' : indexKey = 19 ; break ;
489+ case ' a' : case ' A ' : indexKey = 20 ; break ;
490+ case ' s' : case ' S ' : indexKey = 21 ; break ;
491+ case ' d' : case ' D ' : indexKey = 22 ; break ;
492+ case ' f' : case ' F ' : indexKey = 23 ; break ;
493+ case ' g' : case ' G ' : indexKey = 24 ; break ;
494+ case ' h' : case ' H ' : indexKey = 25 ; break ;
495+ case ' j' : case ' J ' : indexKey = 26 ; break ;
496+ case ' k' : case ' K ' : indexKey = 27 ; break ;
497+ case ' l' : case ' L ' : indexKey = 28 ; break ;
498+ case ' z' : case ' Z ' : indexKey = 29 ; break ;
499+ case ' x' : case ' X ' : indexKey = 30 ; break ;
500+ case ' c' : case ' C ' : indexKey = 31 ; break ;
501+ case ' v' : case ' V ' : indexKey = 32 ; break ;
502+ case ' b' : case ' B ' : indexKey = 33 ; break ;
503+ case ' n' : case ' N ' : indexKey = 34 ; break ;
504+ case ' m' : case ' M ' : indexKey = 35 ; break ;
504505 }
505506 for (Uint8 i = 0 ; i < 36 ; i++) {
506507 iodKeyEntities[i].setTexture (((i == indexKey) ? iodKeyPressedTexture : iodKeyTexture));
0 commit comments