mirror of
https://github.com/encounter/ac-decomp.git
synced 2026-03-30 10:57:04 -07:00
60 lines
1.5 KiB
C
60 lines
1.5 KiB
C
#ifndef FAULT_H
|
|
#define FAULT_H
|
|
#include "types.h"
|
|
#include "dolphin/os/OSInterrupt.h"
|
|
#include "libultra/libultra.h"
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"{
|
|
#endif
|
|
|
|
#define FAULT_MIN_PRIORITY 0
|
|
|
|
#define FAULT_STAGE_POST 0
|
|
#define FAULT_STAGE_PRE 1
|
|
|
|
#define FAULT_FLAG_POSTEXCEPTION (1 << FAULT_STAGE_POST)
|
|
#define FAULT_FLAG_PREEXCEPTION (1 << FAULT_STAGE_PRE)
|
|
|
|
#define FAULT_FLAG_SKIP_DRAW_SEPARATOR (1 << 2)
|
|
#define FAULT_FLAG_SKIP_DRAW_CALLBACK_INFO (1 << 3)
|
|
|
|
#define FAULT_PAD_READ_SUCCESS 0
|
|
#define FAULT_PAD_READ_FAILED -1
|
|
|
|
typedef void (*FaultCallback)(const char* msg, u32 param);
|
|
typedef struct fault_client_s fault_client;
|
|
|
|
struct fault_client_s {
|
|
fault_client* next;
|
|
FaultCallback callback;
|
|
const char* msg;
|
|
u32 param;
|
|
u8 priority;
|
|
u8 flags;
|
|
};
|
|
|
|
typedef struct {
|
|
u8 _0, _1, _2, _3;
|
|
u8 num_clients;
|
|
fault_client* first_client;
|
|
} fault;
|
|
|
|
|
|
extern void fault_AddClientEx(fault_client* client, FaultCallback callback, const char* msg, u32 param, u8 priority, u8 flags);
|
|
extern void fault_AddClient(fault_client* client, FaultCallback callback, const char* msg, u32 param);
|
|
extern void fault_Printf(const char* msg, ...);
|
|
static void fault_DrawUpdate();
|
|
extern void fault_WaitTime(u32 waitTime);
|
|
extern int fault_ReadPad(u32* outTriggers, u32* outButtons);
|
|
static void fault_CallBackFunc(int stage);
|
|
|
|
extern void fault_Init();
|
|
static void my_PreExceptionCallback();
|
|
static void my_PostExceptionCallback();
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|