ogrebattle64/include/common.h

484 lines
13 KiB
C

#ifndef __COMMON_H__
#define __COMMON_H__
#include "PR/os.h"
#include "include_asm.h"
#include <ultra64.h>
extern OSDevMgr __osPiDevMgr;
extern OSPiHandle *__osCurrentHandle[2];
extern OSMesgQueue piEventQueue;
extern OSMesg piEventBuf[1];
extern u32 __osGetCause(void);
extern void __osSetCause(u32);
extern u32 __osGetCompare(void);
extern void __osSetCompare(u32);
extern u32 __osGetConfig(void);
extern void __osSetConfig(u32);
extern void __osSetCount(u32);
extern u32 __osGetSR(void);
extern void __osSetSR(u32);
extern u32 __osDisableInt(void);
extern void __osRestoreInt(u32);
#include "libmus.h"
typedef u8 bool;
#define false 0
#define true 1
#define MAX_BYTES_TO_READ 512
#define ARRAY_LENGTH(x) ((sizeof(x)) / (sizeof(x[0])))
#include "character.h"
#include "item.h"
#include "ability.h"
#include "class.h"
typedef struct {
/* 0x00 */ s32 field_0x0;
/* 0x04 */ s32 field_0x4;
/* 0x08 */ s32 field_0x8;
/* 0x0c */ s32 field_0xc;
/* 0x10 */ s32 field_0x10;
/* 0x14 */ s32 field_0x14;
/* 0x18 */ s32 field_0x18;
/* 0x1C */ s32 field_0x1c;
/* 0x20 */ s32 field_0x20;
/* 0x24 */ unsigned long handle;
/* 0x28 */ s32 field_0x28;
/* 0x2C */ s32 field_0x2c;
/* 0x30 */ s32 field_0x30;
/* 0x34 */ s32 field_0x34;
/* 0x38 */ s32 field_0x38;
/* 0x3C */ s32 field_0x3c;
/* 0x40 */ s32 field_0x40;
/* 0x44 */ s32 field_0x44;
/* 0x48 */ void* dst_addr;
/* 0x4C */ s32 field_0x4c;
} SomethingMusic; // size:0x50
typedef struct {
/* 0x0 */ void* next;
/* 0x4 */ OSMesgQueue* mq;
/* 0x8 */ s16 flags;
/* 0xa */ s16 field_0xa;
/* 0xc */ s32 field_0xc;
} Stack__dma_load_loop; // size:0x10
typedef struct {
/* 0x00 */ OSMesgQueue field_0x0;
/* 0x30 */ u8 field_0x30[0x58];
/* 0x88 */ OSMesgQueue field_0x70;
/* 0x74 */ u8 field_0x74[0x20];
/* 0xa8 */ OSMesgQueue field_0xa8;
} Unk0;
extern SomethingMusic* __MAYBE_SONG_ARRAY_800A8218[7];
extern void* musCurrentPtrBank;
extern void* D_800B1828;
extern s32 D_800E8B14;
extern Unk0 MQ_800E8B4C;
extern s32 __SCREEN_IS_NOT_BLACK;
extern s32 D_800A9EB0;
extern s32 D_800A9EE0;
extern s32 D_800C4B20;
extern void* D_800C4CE0;
extern s32 D_A9EF0;
extern s32 D_800C4B30;
extern OSPiHandle* CART_HANDLE;
extern OSMesgQueue MQ_800BE030;
extern OSMesg OSMESG_800BE048[0x32];
extern OSThread THREAD_CONTROLLER;
extern s32 __SCREEN_IS_NOT_BLACK;
extern OSMesg D_800BBE60[8];
extern OSMesgQueue MQ_CONTROLLER;
extern OSMesgQueue MQ_800E7988;
extern OSThread THREAD_CONTROLLER;
extern OSPiHandle* PTR_CART_ROM_HANDLE;
extern s32 D_800C4B30;
extern OSMesgQueue MQ_CONTROLLER;
extern OSMesgQueue MQ_800E9BF0;
extern u8 D_800A9FF8;
extern OSContStatus __GLOBAL_CONT_STATUS[MAXCONTROLLERS];
extern OSMesgQueue MQ_CONTROLLER;
extern void (*D_800A9FE0)(s16);
extern OSMesgQueue MQ_800C4A00;
extern OSContPad __GLOBAL_CONTROLLER_DATA;
extern u8 D_800AA040;
extern void (*SWAP_BUFFER_FUNC_800A9E8C)(void** buffers);
extern void (*D_800AA090)(s32);
extern void (*D_800AA094)();
extern s32 D_800E79A4;
extern OSMesgQueue MQ_800C4C28;
extern OSMesg OSMESG_800BE1A0[8];
extern u8 SP_THREAD_800BE1C0[1];
extern OSThread THREAD_800BE1C0;
extern void* D_800AA41C;
extern u8 D_594284;
extern void (*SWAP_BUFFER_FUNC)(void** buffers);
extern Stack__dma_load_loop *D_800E9178[0];
extern u8 __MAIN_NOT_NULL_INF_LOOP;
extern OSMesgQueue MQ_800B9C40;
extern s8 D_800E918D;
extern void romCopy(u32 devAddr, void* dramAddr, u32 size, s32 direction);
extern void romCopy_512(const void* src, void* dst, u32 len);
extern void __calls_romCopy_8009DA50(u8* src, u8* dst, u32 len);
extern void Stack__dma_load_loop_new(Stack__dma_load_loop* arg0, OSMesgQueue* arg1, s16 flags);
extern void Stack__dma_load_loop_delete(Stack__dma_load_loop* arg0);
extern void obInitializePi();
extern void __set_black();
extern void __calls_osViBlack(bool black);
extern void __start_thread_800B9C88();
extern void __start_thread_800BE1C0();
extern void func_80089804(s32*, s32, s32, s32);
extern void func_80089A10();
extern void func_80089AB0(s32*, s32);
extern void __osViSwapBuffer_3(void** buffers);
extern void set_swap_buffer_func(void (*arg0)(void**));
extern s32 func_80089CF8(s16 arg0, s32 arg1);
extern void __controller_thread_80089D9C(void*);
extern void __start_copy_global_controller_data(void);
extern void __end_copy_global_controller_data(void);
extern s32 __read_controller(OSContPad* data, u32 flags);
extern s32 __real_read_controller(void);
extern s32 __calls_read_controller_0(s16* arg0);
extern void func_8008A354();
extern void func_8008A37C();
extern void func_8008B130(u8*);
extern void func_8008B1D0(u8*);
extern void __start_thread_800BE1C0(void);
extern void __thread_8008AFE0(void*);
extern void func_8008949C(void** buffers);
extern void func_8008350C();
extern void func_8008B1D0(u8*);
typedef struct {
/* 0x00 */ u8* dst;
/* 0x04 */ u8* field_0x4;
/* 0x08 */ u8* src_start;
/* 0x0c */ u8* src_end;
/* 0x10 */ u8* bss_start;
/* 0x14 */ u8* bss_end;
/* 0x18 */ u8* text_start;
/* 0x1c */ u8* text_end;
/* 0x20 */ u8* data_start;
/* 0x24 */ u8* data_end;
} OverlayEntry; // size:0x28
extern u8* __SOME_OVERLAY_ID_ARRAY[11];
extern OverlayEntry __SOME_OVERLAY_TABLE[11];
extern u8* func_80076188(void);
extern void func_80076194(void);
extern void func_800761A4(void);
extern void __loads_overlay_array(s32 arg0);
extern u8 __get_overlay_index(s32 arg0);
extern void func_80076324(s32 arg0);
extern void func_800E9C20(void);
extern s8 D_800AEE72;
extern s16 D_800C4A18;
extern s16 D_800C4AD8;
extern s16 D_800C4BCA;
extern s16 D_800C4C08;
extern s16 D_800E7A1C;
extern s16 D_800E7D68;
extern void func_80073164(u8 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5, s16 arg6);
extern s8 D_800A81F0;
typedef struct {
/* 0x00 */ void(*field_0x0)(u32, void*, u32, s32);
/* 0x04 */ void* field_0x4;
/* 0x08 */ u32 field_0x8;
/* 0x0c */ u32 field_0xc;
/* 0x10 */ u32 field_0x10;
/* 0x14 */ u32 field_0x14;
/* 0x18 */ u32 field_0x18;
/* 0x1c */ u32 field_0x1c;
/* 0x20 */ u32 field_0x20;
} Arg_800712C4;
typedef struct {
/* 0x00 */ Arg_800712C4* field_0x0;
/* 0x04 */ Arg_800712C4* field_0x4;
/* 0x08 */ Arg_800712C4* field_0x8;
/* 0x0c */ Arg_800712C4* field_0xc;
/* 0x10 */ Arg_800712C4* field_0x10;
/* 0x14 */ Arg_800712C4* field_0x14;
} Unk_800A81C0; // size:0x18
extern Unk_800A81C0 D_800A81C0[2];
extern void func_800712C4(Arg_800712C4*);
extern u8 D_80197168[0x10];
extern s32 D_80196F58;
extern u8 D_801951A1;
extern u8 D_80197AE7[8];
extern void func_80186160(void);
extern void func_80186178(void);
extern void func_80186190(s32 arg0, s32 arg1);
extern s32 func_80186210(s32 arg0);
extern s32 func_80186240(s32 arg0);
extern void func_80186284(s32 arg0);
extern void func_80186290(void);
extern void func_801862A8(void);
extern const char STR_CREATING_NEW_DATA[];
extern const char STR_CREATING_A_NEW_FILE[];
extern const char STR_ADDING_NEW_DATA[];
extern const char STR_buSave_SAVING[];
extern const char STR_UNUSEDMALLOCNO_INSUFFICIENT_MEMORY[];
extern const char STR_LHa___s_s__s[];
extern const char STR_Error[];
extern const char STR_Fatal_error[];
extern const char STR_Invalid_header_LHarc_file_[];
extern const char STR_rb[];
extern const char STR_wb[];
extern const char STR_Unknown_method_skiped[];
extern const char STR_EMPTY[];
extern void AddHeap(void* start, u32 length);
extern void __some_logging(const char* format, ...);
extern void main_(void*);
extern void __idle_start_4_threads(s32, s32);
extern void (*D_800E7A18)();
extern void boot(void);
extern void idle(void* arg);
extern OSThread THREAD_FIRST_DMA_LOAD;
extern u8 SP_THREAD_FIRST_DMA_LOAD[];
extern OSThread THREAD_IDLE;
extern u8 SP_THREAD_IDLE[];
extern void* __GLOBAL_WITH__inc_menu_timer[];
extern void* D_8018FB0C[];
extern void* D_8018FAF8[];
extern void* D_8018FAE4[];
extern s32 __inc_menu_timer();
extern void func_801707F4();
extern void func_8017223C(s32);
extern void func_80172368();
extern void func_80172394();
extern void __resets_menu_timer(void);
extern u16 D_800C4C26;
extern u16 D_8018F1A2;
extern s32 D_8018FB34;
extern void func_801D0840(void);
extern void func_80198080(s32);
extern void func_80173610(void);
extern void func_801B00B0(void);
extern void func_8016C814(void);
extern void func_801C889C(s32 arg0);
extern void func_8007337C(void);
extern void func_801C8864(void);
extern u8 D_800A872C;
extern CharacterSlot CHARACTER_SLOT[0x64];
#define RANK_NONE 0
#define RANK_UNIT_LEADER 1
#define RANK_LEGION_LEADER 2
extern struct {
/* 0x0 */ u8 field_0x0;
/* 0x1 */ u8 field_0x1;
/* 0x2 */ u8 field_0x2;
/* 0x3 */ u8 field_0x3;
/* 0x4 */ u8 field_0x4;
/* 0x5 */ u8 field_0x5;
} D_8018ECE4[]; // size:0x6
extern struct {
/* 0x00 */ char battalion_name[0x14];
/* 0x14 */ s32 field_0x14;
/* 0x18 */ s16 field_0x18;
/* 0x1a */ u16 field_0x1a;
/* 0x1c */ u8 field_0x1c;
/* 0x1d */ u8 field_0x1d;
/* 0x1e */ u8 field_0x1e;
/* 0x1f */ u8 field_0x1f;
/* 0x20 */ u8 field_0x20;
/* 0x21*/ u8 field_0x21;
/* 0x22 */ u8 field_0x22;
/* 0x23 */ u8 field_0x23;
/* 0x24 */ u8 field_0x24;
/* 0x25 */ u8 field_0x25;
/* 0x26 */ u8 field_0x26;
/* 0x27 */ u8 field_0x27;
/* 0x28 */ u8 field_0x28;
/* 0x29 */ u8 field_0x29;
/* 0x2a */ u8 field_0x2a;
/* 0x2b */ u8 field_0x2b;
/* 0x2c */ u8 field_0x2c;
/* 0x2d */ u8 field_0x2d;
/* 0x2e */ u8 field_0x2e;
/* 0x2f */ u8 field_0x2f;
/* 0x30 */ u8 field_0x30;
/* 0x31 */ u8 field_0x31;
/* 0x32 */ u8 field_0x32;
/* 0x33 */ u8 field_0x33;
/* 0x34 */ u8 field_0x34;
/* 0x35 */ u8 field_0x35;
/* 0x36 */ u8 field_0x36;
/* 0x37 */ u8 field_0x37;
/* 0x38 */ u8 field_0x38;
/* 0x39 */ u8 field_0x39;
/* 0x3a */ u8 field_0x3a;
/* 0x3b */ u8 field_0x3b;
/* 0x3c */ u8 field_0x3c;
/* 0x3d */ u8 field_0x3d;
/* 0x3e */ u8 field_0x3e;
/* 0x3f */ u8 field_0x3f;
/* 0x40 */ u8 field_0x40;
/* 0x41 */ u8 field_0x41;
/* 0x42 */ u8 field_0x42;
/* 0x43 */ u8 field_0x43;
/* 0x44 */ s16 field_0x44;
/* 0x46 */ s16 field_0x46;
/* 0x48 */ s16 field_0x48;
/* 0x4a */ s16 field_0x4a;
/* 0x4b */ u8 field_0x4b;
/* 0x4c */ s8 field_0x4c;
/* 0x4d */ s8 field_0x4d;
/* 0x4e */ s8 field_0x4e;
/* 0x4f */ u8 field_0x4f;
/* 0x50 */ u8 field_0x50;
/* 0x51 */ u8 field_0x51;
/* 0x52 */ u8 field_0x52;
/* 0x53 */ u8 field_0x53;
/* 0x54 */ u8 field_0x54;
/* 0x55 */ u8 field_0x55;
/* 0x56 */ u8 field_0x56;
/* 0x57 */ u8 field_0x57;
/* 0x58 */ u8 field_0x58;
/* 0x59 */ u8 field_0x59;
/* 0x5a */ u8 field_0x5a;
/* 0x5b */ u8 field_0x5b;
/* 0x5c */ u8 field_0x5c;
/* 0x5d */ u8 field_0x5d;
/* 0x5e */ u8 field_0x5e;
/* 0x5f */ u8 field_0x5f;
/* 0x60 */ u8 field_0x60;
/* 0x61 */ u8 field_0x61;
/* 0x62 */ u8 field_0x62;
/* 0x63 */ u8 field_0x63;
/* 0x64 */ u8 field_0x64;
/* 0x65 */ u8 field_0x65;
/* 0x66 */ u8 field_0x66;
/* 0x67 */ u8 field_0x67;
/* 0x68 */ u8 field_0x68;
/* 0x69 */ u8 field_0x69;
/* 0x6a */ u8 field_0x6a;
/* 0x6b */ u8 field_0x6b;
/* 0x6c */ u8 field_0x6c;
/* 0x6d */ u8 field_0x6d;
/* 0x6e */ u8 field_0x6e;
/* 0x6f */ u8 field_0x6f;
/* 0x70 */ u8 field_0x70;
/* 0x71 */ u8 field_0x71;
/* 0x72 */ u8 field_0x72;
/* 0x73 */ u8 field_0x73;
/* 0x74 */ u8 field_0x74;
/* 0x75 */ u8 field_0x75;
/* 0x76 */ u8 field_0x76;
/* 0x77 */ u8 field_0x77;
/* 0x78 */ u8 field_0x78;
/* 0x79 */ u8 field_0x79;
/* 0x7a */ u8 field_0x7a;
/* 0x7b */ u8 field_0x7b;
/* 0x7c */ u8 field_0x7c;
/* 0x7d */ u8 field_0x7d;
/* 0x7e */ u8 field_0x7e;
/* 0x7f */ u8 field_0x7f;
/* 0x80 */ u8 field_0x80;
/* 0x81 */ u8 field_0x81;
/* 0x82 */ u8 field_0x82;
/* 0x83 */ u8 field_0x83;
/* 0x84 */ u8 field_0x84;
/* 0x85 */ u8 field_0x85;
/* 0x86 */ u8 field_0x86;
/* 0x87 */ u8 field_0x87;
/* 0x88 */ u8 field_0x88;
/* 0x89 */ u8 field_0x89;
/* 0x8a */ u8 field_0x8a;
/* 0x8b */ u8 field_0x8b;
/* 0x8c */ u8 field_0x8c;
/* 0x8d */ u8 field_0x8d;
/* 0x8e */ u8 field_0x8e;
/* 0x8f */ u8 field_0x8f;
/* 0x91 */ s8 field_0x91;
/* 0x92 */ u8 field_0x92;
/* 0x93 */ u8 field_0x93;
} __CONTAINS_BATTALION_NAME; // size:0x94
extern char DEFAULT_BATTALION_NAME[];
extern musConfig __MUS_CONFIG_8010A710;
extern OSIoMesg __MUS_MEM_800B186C[];
extern void *__virtual_mem_alloc(u32);
extern void *__MusIntMemMalloc(s32 size);
extern ALHeap D_800B1A70;
extern void __character_initialise(CharacterSlot *arg0, u8 level);
extern u16 character_get_item(CharacterSlot* character, u8 slot);
extern void __character_handle_levelup(CharacterSlot *slot);
#endif