--- bobobot-preview2-old/src/bobobot.c Sat Mar 27 17:23:57 1999 +++ bobobot-preview2/src/bobobot.c Sat Mar 27 18:14:15 1999 @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -84,12 +85,12 @@ /* Keyboard mapping: */ -#define KEYBD_LEFT "Left" -#define KEYBD_RIGHT "Right" -#define KEYBD_UP "Up" -#define KEYBD_DOWN "Down" -#define KEYBD_JUMP " " -#define KEYBD_FIRE "Z" +#define KEYBD_LEFT XK_Left /*"Left"*/ +#define KEYBD_RIGHT XK_Right /*"Right"*/ +#define KEYBD_UP XK_Up /*"Up"*/ +#define KEYBD_DOWN XK_Down /*"Down"*/ +#define KEYBD_JUMP XK_space /*" "*/ +#define KEYBD_FIRE XK_z /*"Z"*/ #define KEY_LEFT 0 #define KEY_RIGHT 1 @@ -1200,7 +1201,8 @@ int menu(void) { XEvent event; - char key[1024]; + /*char key[1024];*/ + int key; KeySym keysym; XComposeStatus composestatus; struct timeval now, then; @@ -1345,26 +1347,26 @@ gettimeofday(&then, NULL); - strcpy(key, ""); + key = XK_VoidSymbol; #ifdef JOYSTICK read(js_fd, &js, JS_RETURN); if (js.x < 64 && ojsx >= 64) - strcpy(key, KEYBD_LEFT); + key = KEYBD_LEFT; else if (js.x > 192 && ojsx <= 192) - strcpy(key, KEYBD_RIGHT); + key = KEYBD_RIGHT; if (js.y < 64 && ojsy >= 64) - strcpy(key, KEYBD_UP); + key = KEYBD_UP; else if (js.y > 192 && ojsy <= 192) - strcpy(key, KEYBD_DOWN); + key = KEYBD_DOWN; ojsx = js.x; ojsy = js.y; if (js.buttons) - strcpy(key, "space"); + key = XK_space; #endif @@ -1378,14 +1380,10 @@ { /* Get the key's name: */ - XLookupString(&event.xkey, key, 1, &keysym, - &composestatus); + key = XLookupKeysym((XKeyEvent *)&event, 0); - if (XKeysymToString(keysym) != NULL) - strcpy(key, XKeysymToString(keysym)); - - if (strcasecmp(key, "Q") == 0) + if (key == XK_q) { /* Q: Quit: */ @@ -1397,10 +1395,10 @@ if (quit_mode == 0 && seen_metal_effect != 1 && seen_metal_effect != 2) { - if (strcasecmp(key, "space") == 0 || - strcasecmp(key, "Enter") == 0 || - strcasecmp(key, "Return") == 0 || - strcasecmp(key, "B") == 0) + if (key == XK_space || + key == XK_KP_Enter || + key == XK_Return || + key == XK_b) { /* Space: Start */ @@ -1409,14 +1407,14 @@ if (levels_won[level - 1] == 0) done = True; - if (strcasecmp(key, "B") == 0) + if (key == XK_b) goto_boss = 1; } } - if (strcasecmp(key, KEYBD_UP) == 0 || - strcasecmp(key, "KP_8") == 0) + if (key == KEYBD_UP || + key == XK_KP_8) { y--; @@ -1425,10 +1423,10 @@ zz = 0; } - else if (strcasecmp(key, KEYBD_DOWN) == 0 || - strcasecmp(key, "F31") == 0 || - strcasecmp(key, "KP_5") == 0 || - strcasecmp(key, "KP_2") == 0) + else if (key == KEYBD_DOWN || + key == XK_F31 || + key == XK_KP_5 || + key == XK_KP_2) { y++; @@ -1437,8 +1435,8 @@ zz = 0; } - else if (strcasecmp(key, KEYBD_LEFT) == 0 || - strcasecmp(key, "KP_4") == 0) + else if (key == KEYBD_LEFT || + key == XK_KP_4) { x--; @@ -1447,8 +1445,8 @@ zz = 0; } - else if (strcasecmp(key, KEYBD_RIGHT) == 0 || - strcasecmp(key, "KP_6") == 0) + else if (key == KEYBD_RIGHT || + key == XK_KP_6) { x++; @@ -1460,12 +1458,12 @@ } else { - if (strcasecmp(key, "Y") == 0) + if (key == XK_y) { quit = 1; done = True; } - else if (strcasecmp(key, "N") == 0) + else if (key == XK_n) quit_mode = 0; } @@ -1699,7 +1697,8 @@ gravity; long time_padding; XEvent event; - char key[1024], tempstr[1024]; + int key; + char /*key[1024],*/ tempstr[1024]; KeySym keysym; XComposeStatus composestatus; struct timeval now, then; @@ -1784,7 +1783,7 @@ /* Get and handle events: */ - strcpy(key, ""); + key = XK_VoidSymbol; goweaponscreen = 0; #ifdef JOYSTICK @@ -1834,13 +1833,9 @@ { /* Get the key's name: */ - XLookupString(&event.xkey, key, 1, &keysym, - &composestatus); + key = XLookupKeysym((XKeyEvent *)&event, 0); - if (XKeysymToString(keysym) != NULL) - strcpy(key, XKeysymToString(keysym)); - - if (strcasecmp(key, "Q") == 0 && event.type == KeyPress) + if (key == XK_q && event.type == KeyPress) { /* Q: Abort: */ @@ -1853,8 +1848,8 @@ } - if ((strcasecmp(key, "Tab") == 0 || - strcasecmp(key, "Escape") == 0) && + if ((key == XK_Tab || + key == XK_Escape) && event.type == KeyPress) { /* Tab / Escape: Pause / Change weapon: */ @@ -1862,44 +1857,44 @@ goweaponscreen = 1; } - if (strcasecmp(key, KEYBD_UP) == 0 || - strcasecmp(key, "KP_8") == 0) + if (key == KEYBD_UP || + key == XK_KP_8) { /* Up: Nothing??? */ key_holds[KEY_JUMP] = event.type; } - else if (strcasecmp(key, KEYBD_DOWN) == 0 || - strcasecmp(key, "F31") == 0 || - strcasecmp(key, "KP_5") == 0 || - strcasecmp(key, "KP_2") == 0) + else if (key == KEYBD_DOWN || + key == XK_F31 /* why? */ || + key == XK_KP_5 || + key == XK_KP_2) { /* Down: Nothing??? */ key_holds[KEY_DOWN] = event.type; } - else if (strcasecmp(key, KEYBD_LEFT) == 0 || - strcasecmp(key, "KP_4") == 0) + else if (key == KEYBD_LEFT || + key == XK_KP_4) { /* Left: Move left */ key_holds[KEY_LEFT] = event.type; } - else if (strcasecmp(key, KEYBD_RIGHT) == 0 || - strcasecmp(key, "KP_6") == 0) + else if (key == KEYBD_RIGHT || + key == XK_KP_6) { /* Right: Move right */ key_holds[KEY_RIGHT] = event.type; } - else if (strcasecmp(key, KEYBD_FIRE) == 0) + else if (key == KEYBD_FIRE) { /* Z: Fire */ key_holds[KEY_FIRE] = event.type; } - else if (strcasecmp(key, KEYBD_JUMP) == 0|| - strcasecmp(key, "Space") == 0) + else if (key == KEYBD_JUMP || + key == XK_KP_Space) { /* Space: Jump */ @@ -7892,7 +7887,8 @@ void weaponscreen(void) { XEvent event; - char key[1024]; + /*char key[1024];*/ + int key; KeySym keysym; XComposeStatus composestatus; struct timeval now, then; @@ -7982,7 +7978,7 @@ /* Get and handle events: */ - strcpy(key, ""); + key = XK_VoidSymbol; while (XPending(display)) { @@ -7992,11 +7988,7 @@ { /* Get the key's name: */ - XLookupString(&event.xkey, key, 1, &keysym, - &composestatus); - - if (XKeysymToString(keysym) != NULL) - strcpy(key, XKeysymToString(keysym)); + key = XLookupKeysym((XKeyEvent *)&event, 0); } } @@ -8005,17 +7997,17 @@ read(js_fd, &js, JS_RETURN); if (js.x < 64 && ojsx >= 64) - strcpy(key, KEYBD_LEFT); + key = KEYBD_LEFT; else if (js.x > 192 && ojsx <= 192) - strcpy(key, KEYBD_RIGHT); + key = KEYBD_RIGHT; if (js.y < 64 && ojsy >= 64) - strcpy(key, KEYBD_UP); + key = KEYBD_UP; else if (js.y > 192 && ojsy <= 192) - strcpy(key, KEYBD_DOWN); + key = KEYBD_DOWN; if (js.buttons && ojsb == 0) - strcpy(key, "space"); + key = XK_space; ojsx = js.x; ojsy = js.y; @@ -8023,7 +8015,7 @@ #endif - if (strcasecmp(key, "Q") == 0) + if (key == XK_q) { /* Q: Abort: */ @@ -8033,12 +8025,12 @@ } - if (strcasecmp(key, "Tab") == 0 || - strcasecmp(key, "Escape") == 0 || - strcasecmp(key, KEYBD_FIRE) == 0 || - strcasecmp(key, "Space") == 0 || - strcasecmp(key, "Return") == 0 || - strcasecmp(key, "Enter") == 0) + if (key == XK_Tab || + key == XK_Escape || + key == KEYBD_FIRE || + key == XK_KP_Space || + key == XK_Return || + key == XK_KP_Enter) { /* Tab / Escape / Space / Return: Return to game: */ @@ -8046,8 +8038,8 @@ } - if (strcasecmp(key, KEYBD_UP) == 0 || - strcasecmp(key, "KP_8") == 0) + if (key == KEYBD_UP || + key == XK_KP_8) { /* Up: */ @@ -8061,10 +8053,10 @@ while (player.selected_weapon != 0 && levels_won[player.selected_weapon - 1] == 0); } - else if (strcasecmp(key, KEYBD_DOWN) == 0 || - strcasecmp(key, "F31") == 0 || - strcasecmp(key, "KP_5") == 0 || - strcasecmp(key, "KP_2") == 0) + else if (key == KEYBD_DOWN || + key == XK_F31 || + key == XK_KP_5 || + key == XK_KP_2) { /* Down: */