-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&(PBTN_UP|PBTN_LEFT|PBTN_DOWN|PBTN_RIGHT|PBTN_L|PBTN_R)))\r
- wait = 6;\r
- inp_prev = ret;\r
-\r
- // we don't need diagonals in menus\r
- if ((ret&PBTN_UP) && (ret&PBTN_LEFT)) ret &= ~PBTN_LEFT;\r
- if ((ret&PBTN_UP) && (ret&PBTN_RIGHT)) ret &= ~PBTN_RIGHT;\r
- if ((ret&PBTN_DOWN) && (ret&PBTN_LEFT)) ret &= ~PBTN_LEFT;\r
- if ((ret&PBTN_DOWN) && (ret&PBTN_RIGHT)) ret &= ~PBTN_RIGHT;\r
-\r
- return ret;\r
-}\r
-\r
-\r