ogrebattle64/src/_ob_prized_reading.c

86 lines
1.8 KiB
C

#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;
}
}