-unsigned long wait_for_input(unsigned int interesting)\r
-{\r
- unsigned long ret;\r
- static int repeats = 0, wait = 20;\r
- int release = 0, i;\r
-\r
- if (repeats == 2) wait = 3;\r
- else if (repeats == 4) wait = 2;\r
- else if (repeats == 6) wait = 1;\r
-\r
- for (i = 0; i < wait && inp_prev == Framework_PollGetButtons(); i++) {\r
- if (i == 0) repeats++;\r
- Sleep(30);\r
- }\r
-\r
- while ( !((ret = Framework_PollGetButtons()) & interesting) ) {\r
- Sleep(50);\r
- release = 1;\r
- }\r
-\r
- if (release || ret != inp_prev) {\r
- repeats = 0;\r
- wait = 20;\r
- }\r
- if (wait > 6 && (ret&(BTN_UP|BTN_LEFT|BTN_DOWN|BTN_RIGHT|BTN_L|BTN_R)))\r
- wait = 6;\r
- inp_prev = ret;\r
-\r
- // we don't need diagonals in menus\r
- if ((ret&BTN_UP) && (ret&BTN_LEFT)) ret &= ~BTN_LEFT;\r
- if ((ret&BTN_UP) && (ret&BTN_RIGHT)) ret &= ~BTN_RIGHT;\r
- if ((ret&BTN_DOWN) && (ret&BTN_LEFT)) ret &= ~BTN_LEFT;\r
- if ((ret&BTN_DOWN) && (ret&BTN_RIGHT)) ret &= ~BTN_RIGHT;\r
-\r
- return ret;\r
-}\r
-\r
-\r