| 1157 | } |
| 1158 | |
| 1159 | S32 cb_dispatch(xBase*, xBase* to, U32 event, const F32* argf, xBase*) |
| 1160 | { |
| 1161 | shared.delay_events = true; |
| 1162 | ztalkbox& e = *(ztalkbox*)to; |
| 1163 | |
| 1164 | switch (event) |
| 1165 | { |
| 1166 | case eEventReset: |
| 1167 | case eEventSceneEnd: |
| 1168 | e.reset(); |
| 1169 | break; |
| 1170 | case eEventInvisible: |
| 1171 | case eEventFastInvisible: |
| 1172 | e.hide(); |
| 1173 | break; |
| 1174 | case eEventVisible: |
| 1175 | case eEventFastVisible: |
| 1176 | e.show(); |
| 1177 | break; |
| 1178 | case eEventStartConversation: |
| 1179 | { |
| 1180 | U32 textID = ((U32*)argf == NULL) ? 0 : *(U32*)argf; |
| 1181 | e.start_talk(textID, NULL, NULL); |
| 1182 | flush_triggered(); |
| 1183 | break; |
| 1184 | } |
| 1185 | case eEventEndConversation: |
| 1186 | e.stop_talk(); |
| 1187 | flush_triggered(); |
| 1188 | break; |
| 1189 | case eEventTalkBox_StopWait: |
| 1190 | if (argf == NULL) |
| 1191 | { |
| 1192 | stop_wait(e, NULL, 0); |
| 1193 | } |
| 1194 | else |
| 1195 | { |
| 1196 | stop_wait(e, argf, 4); |
| 1197 | } |
| 1198 | flush_triggered(); |
| 1199 | break; |
| 1200 | case eEventSetText: |
| 1201 | if ((U32*)argf != NULL) |
| 1202 | { |
| 1203 | e.set_text(*(U32*)argf); |
| 1204 | } |
| 1205 | break; |
| 1206 | case eEventAddText: |
| 1207 | if ((U32*)argf != NULL) |
| 1208 | { |
| 1209 | e.add_text(*(U32*)argf); |
| 1210 | } |
| 1211 | break; |
| 1212 | case eEventClearText: |
| 1213 | e.clear_text(); |
| 1214 | break; |
| 1215 | |
| 1216 | case eEventPadPressRight: |
nothing calls this directly
no test coverage detected