Improve command key layout.
authorMatthew Mondor <mmondor@pulsar-zone.net>
Tue, 11 Apr 2023 04:55:44 +0000 (04:55 +0000)
committerMatthew Mondor <mmondor@pulsar-zone.net>
Tue, 11 Apr 2023 04:55:44 +0000 (04:55 +0000)
README.md
curblaster.6
src/draw.cpp
src/main.cpp

index f267336..056caf5 100644 (file)
--- a/README.md
+++ b/README.md
@@ -18,15 +18,15 @@ Written to assuage my longing for my long-deceased Amiga.
 
 # CONTROLS
 
-Movement: Arrow keys
+Movement: Arrow keys, IJKL or 8462
 
-Shoot: Z
+Shoot: Space
 
 Shield toggle: S
 
 Smart bomb: A
 
-Pause: Space
+Pause: P
 
 Quit: Q
 
index 2844040..8cecf74 100644 (file)
@@ -15,15 +15,15 @@ Written to assuage my longing for my long-deceased Amiga.
 
 .SH CONTROLS
 
-Movement: Arrow keys
+Movement: Arrow keys, IJKL or 8462
 .PP
-Shoot: Z
+Shoot: Space
 .PP
 Shield toggle: S
 .PP
 Smart bomb: A
 .PP
-Pause: Space
+Pause: P
 .PP
 Quit: Q
 
index 8229db7..5d4a499 100644 (file)
@@ -96,11 +96,11 @@ void draw_board(int score, int lives, int level, int shieldsleft, int missile){
 }
 
 void display_controls(){
-  mvprintw(1,21,"Movement: Arrow keys");
-  mvprintw(1,46,"Shoot: Z");
-  mvprintw(2,46,"Shield toggle: S");
-  mvprintw(3,46,"Smart bomb: A");
-  mvprintw(2,21,"Pause: Space");
-  mvprintw(3,21,"Quit: Q");
+  mvprintw(1,20,"Movement: Arrows/IJKL/8462");
+  mvprintw(1,47,"Shoot: Space");
+  mvprintw(2,47,"Shield toggle: S");
+  mvprintw(3,47,"Smart bomb: A");
+  mvprintw(2,20,"Pause: P");
+  mvprintw(3,20,"Quit: Q");
   mvprintw(5,18,"See \'man curblaster\' for complete documentation");
 };
index 6e4688d..e7bbfb7 100644 (file)
@@ -1074,20 +1074,22 @@ int main(int argc, char *argv[]){
     input = frame_getch();
  
     //quit
-    if(input=='q'){
+    if(input=='q' || input=='Q'){
     char quit;
     clear();
     printw("Really quit (y/n) ? ");
     refresh();
-    for (quit = ERR; quit != 'y' && quit != 'n'; quit = block_getch()) ;
-    if(quit=='y'){
+    for (quit = ERR;
+        quit != 'y' && quit != 'n' && quit != 'Y' && quit != 'N';
+        quit = block_getch()) ;
+    if(quit=='y' || quit=='Y'){
       printw("\nBye Bye!\n");
       loopvar=1;       
     };
     };
 
     //check for/toggle shield
-    if(input=='s'){
+    if(input=='s' || input=='S'){
       if(shieldup==0){
        if(shieldsleft>=1){
          shieldup=1;
@@ -1135,22 +1137,27 @@ int main(int argc, char *argv[]){
     case KEY_UP:
     case '8': /* FALLTHROUGH */
     case 'i': /* FALLTHROUGH */
+    case 'I': /* FALLTHROUGH */
            input = 8;
            break;
     case KEY_DOWN:
     case '2': /* FALLTHROUGH */
     case 'k': /* FALLTHROUGH */
+    case 'K': /* FALLTHROUGH */
     case 'm': /* FALLTHROUGH */
+    case 'M': /* FALLTHROUGH */
            input = 2;
            break;
     case KEY_LEFT:
     case '4': /* FALLTHROUGH */
     case 'j': /* FALLTHROUGH */
+    case 'J': /* FALLTHROUGH */
            input = 4;
            break;
     case KEY_RIGHT:
     case '6': /* FALLTHROUGH */
     case 'l': /* FALLTHROUGH */
+    case 'L': /* FALLTHROUGH */
            input = 6;
            break;
     case '5': /* Apparently unused */
@@ -1162,11 +1169,11 @@ int main(int argc, char *argv[]){
     };
 
     //pause_game
-    if(input==' '){
+    if(input=='p' || input=='P'){
       pause_game = 0;
-      while(pause_game!=' '){
+      while(pause_game!='p' && pause_game!='P'){
        display_controls();
-       mvprintw(10,25,"Paused.  Press SPACE to continue. ");
+       mvprintw(10,25,"Paused.  Press p to resume. ");
        refresh();
        pause_game = block_getch();
       };
@@ -1252,7 +1259,7 @@ int main(int argc, char *argv[]){
       };
     };
     //check for / process player fire
-    if(input=='z'){
+    if(input==' '){
       //we fired
       //if laser, do that
       if(laser>0){
@@ -1380,7 +1387,7 @@ int main(int argc, char *argv[]){
   
   
     //check for / process smartbomb
-    if(input=='a'&&smartbombs>=1){
+    if((input=='a' || input=='A') && smartbombs >= 1){
       smartbombs--;
       for(int landerloop = 0; landerloop<landermax; landerloop++){
         if(landers[landerloop].active==1){