| 117 | } |
| 118 | |
| 119 | static void GUI_Mentat_HelpListLoop(void) |
| 120 | { |
| 121 | uint16 key; |
| 122 | |
| 123 | for (key = 0; key != 0x8001; sleepIdle()) { |
| 124 | Widget *w = g_widgetMentatTail; |
| 125 | |
| 126 | GUI_Mentat_Animation(0); |
| 127 | |
| 128 | key = GUI_Widget_HandleEvents(w); |
| 129 | |
| 130 | if ((key & 0x800) != 0) key = 0; |
| 131 | |
| 132 | if (key == 0x8001) break; |
| 133 | |
| 134 | key &= 0x80FF; |
| 135 | |
| 136 | s_selectMentatHelp = true; |
| 137 | |
| 138 | switch (key) { |
| 139 | case 0x0053: |
| 140 | case 0x0060: /* NUMPAD 8 / ARROW UP */ |
| 141 | case 0x0453: |
| 142 | case 0x0460: |
| 143 | if (s_selectedHelpSubject != 0) { |
| 144 | GUI_Mentat_List_Click(GUI_Widget_Get_ByIndex(w, s_selectedHelpSubject + 2)); |
| 145 | break; |
| 146 | } |
| 147 | |
| 148 | GUI_Widget_Scrollbar_ArrowUp_Click(g_widgetMentatScrollbar); |
| 149 | break; |
| 150 | |
| 151 | case 0x0054: |
| 152 | case 0x0062: /* NUMPAD 2 / ARROW DOWN */ |
| 153 | case 0x0454: |
| 154 | case 0x0462: |
| 155 | if (s_selectedHelpSubject < 10) { |
| 156 | GUI_Mentat_List_Click(GUI_Widget_Get_ByIndex(w, s_selectedHelpSubject + 4)); |
| 157 | break; |
| 158 | } |
| 159 | |
| 160 | GUI_Widget_Scrollbar_ArrowDown_Click(g_widgetMentatScrollbar); |
| 161 | break; |
| 162 | |
| 163 | case 0x0055: |
| 164 | case 0x0065: /* NUMPAD 9 / PAGE UP */ |
| 165 | case 0x0455: |
| 166 | case 0x0465: { |
| 167 | uint8 i; |
| 168 | for (i = 0; i < 11; i++) GUI_Widget_Scrollbar_ArrowUp_Click(g_widgetMentatScrollbar); |
| 169 | } break; |
| 170 | |
| 171 | case 0x0056: |
| 172 | case 0x0067: /* NUMPAD 3 / PAGE DOWN */ |
| 173 | case 0x0456: |
| 174 | case 0x0467: { |
| 175 | uint8 i; |
| 176 | for (i = 0; i < 11; i++) GUI_Widget_Scrollbar_ArrowDown_Click(g_widgetMentatScrollbar); |
no test coverage detected