static bool acceptable_id (const std::string&a) { if (!a.length() ) return false; for (size_t i = 0; i < a.length(); ++i) if (!acceptable_char (a[i]) ) return false; return true; }
void key_box(const char ktext [], int command) { rectfill(display, 200, 240, 400, 290, COL_OUTLINE); rect(display, 201, 241, 399, 289, COL_COL1); textprintf_centre_ex(display, font, 300, 257, -1, -1, ktext); vsync(); blit(display, screen, 0, 0, 100, 0, 600, 600); int inputted = KEY_ESC; int i; int anykey = 0; char holding = 1; do { do { thing ++; } while (ticked == 0); ticked = 0; key_wait --; anykey = 0; for (i = KEY_A; i < KEY_CAPSLOCK + 1; i ++) { if (key [i]) { anykey = 1; } } if (anykey == 0) holding = 0; // if (key_wait > 0) // continue; if (holding == 0) { for (i = KEY_A; i < KEY_CAPSLOCK + 1; i ++) { if (key [i]) { inputted = i; holding = 1; } } } // while(acceptable_char(inputted) == 0); if (acceptable_char(inputted) != 0) break; } while (TRUE); player.key [command] = inputted; key_wait = 10; }