#include "common.h" INCLUDE_ASM(const s32, "_ob_prized_reading", func_8008A260); void func_8008A334(void) { func_8008B1D0(&D_800A9FF8); } void __start_copy_global_controller_data(void) { osSendMesg(&MQ_800E9BF0, NULL, OS_MESG_BLOCK); } void __end_copy_global_controller_data(void) { osRecvMesg(&MQ_800E9BF0, NULL, OS_MESG_BLOCK); } s32 __read_controller(OSContPad* data, u32 flags) { s32 res; res = osContStartReadData(&MQ_CONTROLLER); if(res != 0) return res; osRecvMesg(&MQ_CONTROLLER, NULL, OS_MESG_BLOCK); if (!(flags & D_800C4B30)) { func_8008A354(); osContGetReadData(data); func_8008A37C(); return 0; } return 0; } s32 __real_read_controller(void) { s32 var_v0; var_v0 = osContStartQuery(&MQ_CONTROLLER); if (var_v0 == 0) { osRecvMesg(&MQ_CONTROLLER, NULL, OS_MESG_BLOCK); osContGetQuery(__GLOBAL_CONT_STATUS); return 0; } else { return var_v0; } } s32 __calls_read_controller_0(s16* arg0) { if (D_800C4B30 == 0) { osRecvMesg(&MQ_800C4A00, NULL, 0); __read_controller(&__GLOBAL_CONTROLLER_DATA, 1); if (D_800A9FE0 != NULL) { D_800A9FE0(*arg0); } osSendMesg(&MQ_800C4A00, NULL, 0); } return 0; } typedef struct { /* 0x0 */ u8 field_0x0[0xc]; /* 0xC */ OSContPad* data; } Arg___calls_read_controller_1; void __calls_read_controller_1(Arg___calls_read_controller_1* arg) { __read_controller(arg->data, 0); } s32 __calls_read_controller_2(s16* arg0) { s32 var_v0; osRecvMesg(&MQ_800C4A00, NULL, 0); var_v0 = __read_controller(&__GLOBAL_CONTROLLER_DATA, 0); if (var_v0 == 0) { if (D_800A9FE0 != NULL) { D_800A9FE0(*arg0); } return 0; } else { return var_v0; } }