From bf9ae34b1286847fb854a55c2b4a47d98d9e737e Mon Sep 17 00:00:00 2001 From: Ryan Myers Date: Tue, 14 Sep 2021 21:32:44 -0400 Subject: [PATCH] unknown_0348C0.h --- src/particles.h | 1 + src/unknown_003260.c | 2 +- src/unknown_003260.h | 2 + src/unknown_008C40.h | 6 + src/unknown_00BC20.c | 6 +- src/unknown_00BC20.h | 4 +- src/unknown_0348C0.c | 499 ++------------------------------------ src/unknown_0348C0.h | 566 ++++++++++++++++++++++++++++++++++++++++++- src/unknown_043920.c | 9 +- src/unknown_043920.h | 3 + src/unknown_05CEF0.c | 1 + src/unknown_05CEF0.h | 1 - src/waves.c | 1 + src/waves.h | 10 + 14 files changed, 616 insertions(+), 495 deletions(-) create mode 100644 src/waves.h diff --git a/src/particles.h b/src/particles.h index 3fe1092b..d95201b2 100644 --- a/src/particles.h +++ b/src/particles.h @@ -129,5 +129,6 @@ void func_800B2260(unk800B2260 *arg0); void func_800AF134(unk800B2260 *arg0, s32 arg1, s32 arg2, s16 arg3, s16 arg4, s16 arg5); // Non Matching void func_800AF404(s32 arg0); // Non Matching void func_800B263C(unk800B2260_C *arg0); // Non Matching +void func_800AFC3C(Object *, s32); // Non Matching #endif diff --git a/src/unknown_003260.c b/src/unknown_003260.c index 9a28838d..c2aeb2f1 100644 --- a/src/unknown_003260.c +++ b/src/unknown_003260.c @@ -285,7 +285,7 @@ void func_80004668(ALBank *bnk, s16 sndIndx, u8, s32){ #endif //input typing not right (some type of struct) -void func_8000488C(u8 *arg0){ +void func_8000488C(u8 *arg0) { ALEvent sp_18; sp_18.type = 1024; ((u32*)(&sp_18))[1] = (u32) arg0; diff --git a/src/unknown_003260.h b/src/unknown_003260.h index 4d7bf3d4..efc9d383 100644 --- a/src/unknown_003260.h +++ b/src/unknown_003260.h @@ -83,5 +83,7 @@ extern s32 sfxVolumeSlider; extern s32 D_800DC6C4; void func_800049D8(void); +//Causes issues with its type +//void func_8000488C(u8 *arg0); #endif diff --git a/src/unknown_008C40.h b/src/unknown_008C40.h index 06e72195..ebf0de86 100644 --- a/src/unknown_008C40.h +++ b/src/unknown_008C40.h @@ -1,6 +1,12 @@ #ifndef _UNKNOWN_008C40_H_ #define _UNKNOWN_008C40_H_ +#include "types.h" + void func_80008168(void); +void func_80009558(u16, f32 x, f32 y, f32 z, s32, s32 *); // Non Matching +void func_80009968(f32, f32, f32, u8, u8, s32); // Non Matching +void func_800096D8(s32, f32, f32, f32); // Non Matching + #endif diff --git a/src/unknown_00BC20.c b/src/unknown_00BC20.c index ac85796f..cb6b1678 100644 --- a/src/unknown_00BC20.c +++ b/src/unknown_00BC20.c @@ -245,7 +245,7 @@ s32 D_8011B000; s32 D_8011B004; s32 D_8011B008; s32 D_8011B010[4]; -u32 *D_8011B020[10]; +Object *D_8011B020[10]; s32 D_8011B048[4]; s32 D_8011B058[4]; s32 D_8011B068[4]; @@ -300,7 +300,7 @@ GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000B38C.s") GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000B750.s") GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000BADC.s") -u32 *func_8000BF44(s32 arg0) { +Object *func_8000BF44(s32 arg0) { if (arg0 == -1) { arg0 = D_800DC760; } @@ -1868,7 +1868,7 @@ void run_object_loop_func(Object *obj, s32 arg1) { func_80039330(obj, arg1); break; case 64: - obj_loop_world_key(obj, arg1); + obj_loop_world_key(obj, arg1); //arg1=speed break; case 65: func_8003D3FC(obj, arg1); diff --git a/src/unknown_00BC20.h b/src/unknown_00BC20.h index 9d12bfd0..126eafe3 100644 --- a/src/unknown_00BC20.h +++ b/src/unknown_00BC20.h @@ -119,7 +119,7 @@ extern u16 D_800DC864; void free_tt_ghost_data(void); //unknown_043920.c f32 func_800707F8(s16); //? -u32 *func_8000BF44(s32 arg0); +Object *func_8000BF44(s32 arg0); void func_8000BF8C(void); void func_8000C460(void); void func_8000C604(void); @@ -211,6 +211,7 @@ void func_800228EC(s32 arg0); s8 func_8002341C(void); s32 func_80023568(void); s8 func_800235C0(void); +void func_800235D0(s32 arg0); void func_800238BC(Object *arg0); void run_object_loop_func(Object *obj, s32 arg1); void func_8002458C(s32 arg0); @@ -230,5 +231,6 @@ void func_8001D5E0(f32 arg0, f32 arg1, f32 arg2); s32 func_80014814(s32 *); void func_80015348(s32, s32); Object *func_8000EA54(unk80027FC4*, s32); +s32 func_8001F460(Object*, s32, Object*); #endif diff --git a/src/unknown_0348C0.c b/src/unknown_0348C0.c index 616194fd..926c4f8a 100644 --- a/src/unknown_0348C0.c +++ b/src/unknown_0348C0.c @@ -12,6 +12,17 @@ #include "menu.h" // For cheats #include "unknown_0ABDF0.h" #include "unknown_043920.h" +#include "unknown_06B2B0.h" +#include "audio.h" +#include "unknown_008C40.h" +#include "unknown_00BC20.h" +#include "particles.h" +#include "unknown_0255E0.h" +#include "font.h" +#include "unknown_032760.h" +#include "unknown_09F8F0.h" +#include "waves.h" +#include "unknown_003260.h" /************ .data ************/ @@ -121,19 +132,7 @@ s16 D_8011D4E2; /******************************/ -extern u32 osTvType; - -Settings *get_settings(); -Object_64 *func_800BE654(s16, f32, f32); -void func_80000FDC(s32, s32, f32); -void func_80009558(u16, f32 x, f32 y, f32 z, s32, s32 *); //unknown_008C40 -void func_80009968(f32, f32, f32, u8, u8, s32); -s32 func_8001F460(Object*, s32, Object*); -f32 func_800707C4(s16); -f32 func_800707F8(s16); - #ifdef NON_MATCHING - typedef struct LevelObjectEntry80033CC0 { LevelObjectEntryCommon common; u8 unk8; @@ -186,16 +185,6 @@ void func_80033F44(Object *arg0, s32 arg1) { GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80033F60.s") -typedef struct unk80034530 { - u8 pad0[0x8]; - u8 unk8; - u8 unk9; - s8 unkA; - s8 unkB; - u8 unkC; - u8 unkD; -} unk80034530; - void func_80034530(Object *arg0, unk80034530 *arg1) { Object_64 *temp; arg0->unk4C->unk14 = 0x22; @@ -230,13 +219,6 @@ void func_80034AF0(Object *arg0, u8 *arg1) { arg0->unk78 = arg1[8]; } -typedef struct unk80034B4C { - u8 pad0[0x18]; - s16 unk18; - u8 pad1A[0x5E]; - s32 unk78; -} unk80034B4C; - void func_80034B4C(unk80034B4C *arg0, s32 arg1) { arg0->unk18 += arg0->unk78 * arg1; } @@ -268,19 +250,6 @@ void func_80035640(s32 arg0, s32 arg1) { } -typedef struct unk8003564C { - s8 unk0; - s8 unk1; - s16 unk2; - s16 unk4; - s16 unk6; -} unk8003564C; - -typedef struct Object_64_8003564C { - u8 pad0[4]; - Object *unk4; -} Object_64_8003564C; - void func_8003564C(Object *arg0, s32 arg1) { unk8003564C sp20; Object *someObj; @@ -301,14 +270,6 @@ void func_8003564C(Object *arg0, s32 arg1) { } } -/* Size: 12 bytes */ -typedef struct LevelObjectEntry8003572C { - LevelObjectEntryCommon common; - u8 unk8; - u8 unk9; - u8 unkA; -} LevelObjectEntry8003572C; - void func_8003572C(Object *arg0, LevelObjectEntry8003572C *arg1) { f32 phi_f0 = arg1->unk9 & 0xFF; if (phi_f0 < 10) { @@ -344,14 +305,6 @@ void func_800357D4(Object *obj, s32 arg1) { obj->unk4C->unk13 = 0xFF; } -/* Size: 12 bytes */ -typedef struct LevelObjectEntry8003588C { - LevelObjectEntryCommon common; - u8 unk8; - u8 unk9; - u8 unkA; -} LevelObjectEntry8003588C; - void func_8003588C(Object *arg0, LevelObjectEntry8003588C *arg1) { Object_40 *obj40; f32 phi_f0; @@ -380,24 +333,11 @@ GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003596C.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80035AE8.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80035C50.s") -typedef struct unk80035E20 { - u8 pad0[0x40]; - s32 unk40; - u8 pad44[0x34]; - s32 unk78; - s32 unk7C; -} unk80035E20; - void func_80035E20(unk80035E20 *arg0, s32 arg1) { arg0->unk78 = 0; arg0->unk7C = arg0->unk40; } -typedef struct Object_64_80035E34 { - u8 pad0[0x1D6]; - s8 unk1D6; -} Object_64_80035E34; - void func_80035E34(Object *obj, s32 arg1) { Object *someObj; Object *someOtherObj; @@ -425,13 +365,6 @@ void func_80035E34(Object *obj, s32 arg1) { } } -typedef struct unk80035EF8 { - u8 pad0[0xA]; - s16 unkA; - s16 unkC; - s16 unkE; -} unk80035EF8; - void func_80035EF8(Object *arg0, unk80035EF8 *arg1) { f32 phi_f0; arg0->unk78 = (s32) arg1->unkE; @@ -445,24 +378,6 @@ void func_80035EF8(Object *arg0, unk80035EF8 *arg1) { arg0->scale = (f32) (arg0->descriptor_ptr->unkC * phi_f0); } -typedef struct Object_64_80035F6C { - s32 unk0; - s32 unk4; - s32 unk8; - s32 unkC; - s32 unk10; - s32 unk14; - s32 unk18; - s32 unk1C; - s16 *unk20; - u8 *unk24; -} Object_64_80035F6C; - -typedef struct Object_64_80035F6C_2 { - u8 pad0[3]; - s8 unk3; -} Object_64_80035F6C_2; - void func_80035F6C(Object *obj, s32 arg1) { s32 temp_t4; s32 temp_t5; @@ -513,7 +428,7 @@ GLOBAL_ASM("asm/non_matchings/unknown_032760/func_800361E0.s") void func_80036BCC(u16 arg0, s32 arg1) { if ((D_8011D4D8 != 0) && (arg1 & 1)) { - func_8000488C(D_8011D4D8); + func_8000488C(D_8011D4D8); //This is likely wrong and will need to be fixed D_8011D4D8 = 0; } if (D_8011D4D8 == 0) { @@ -524,12 +439,6 @@ void func_80036BCC(u16 arg0, s32 arg1) { GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80036C30.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_800370D4.s") -typedef struct unk80037578 { - u8 pad0[0x78]; - s32 unk78; - s32 unk7C; -} unk80037578; - void func_80037578(unk80037578 *arg0, u8 *arg1) { arg0->unk78 = arg1[9] * 2; arg0->unk7C = arg1[8]; @@ -554,38 +463,12 @@ void func_80037594(Object *obj, s32 arg1) { GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80037594.s") #endif -typedef struct unk80037624 { - u8 pad0[6]; - s16 unk6; -} unk80037624; - void func_80037624(unk80037624 *arg0, s32 arg1) { arg0->unk6 |= 0x4000; } GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003763C.s") -void func_800377E4(Object*, s32); - -/* Size: 12 bytes */ -typedef struct LevelObjectEntry800376E0 { - LevelObjectEntryCommon common; - s8 unk8; - s8 unk9; - s8 unkA; -} LevelObjectEntry800376E0; - -typedef struct Object_64_800376E0 { - s16 segmentId; - s16 unk2; - s16 unk4; - s16 unk6; - s16 unk8; - s16 unkA; -} Object_64_800376E0; - -s16 get_level_segment_index_from_position(f32, f32, f32); - void func_800376E0(Object *arg0, LevelObjectEntry800376E0 *arg1, s32 arg2) { Object_64_800376E0 *obj64; LevelModel *levelModel; @@ -620,16 +503,6 @@ void func_80037CE8(s32 arg0, s32 arg1) { func_8001F460(arg0, arg1, arg0); } -typedef struct unk80037D08_arg0_64 { - u8 pad0[0x2A]; - s16 unk2A; -} unk80037D08_arg0_64; - -typedef struct unk80037D08_arg0 { - u8 pad0[0x64]; - unk80037D08_arg0_64 *unk64; -} unk80037D08_arg0; - void func_80037D08(unk80037D08_arg0 *arg0, s32 arg1) { s32 phi_a0; unk80037D08_arg0_64 *sp18; @@ -658,15 +531,6 @@ void func_80037D6C(s32 arg0, s32 arg1) { GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80037D78.s") #ifdef NON_MATCHING - -// Not sure if Object_60 differs between objects yet. -typedef struct Object_60_800380F8 { - s32 unk0; - Object *unk4; - s32 pad8; - Object *unkC; -} Object_60_800380F8; - // Regalloc issues void func_800380F8(Object *obj, s32 arg1) { Object_60_800380F8 *obj60; @@ -729,17 +593,6 @@ void func_80038248(Object *arg0, s32 arg1) { } #ifdef NON_MATCHING - -void func_800096D8(s32, f32, f32, f32); - -typedef struct Object_64_8003827C { - u8 pad0[0x20]; - s32 unk20; - s16 unk24; - u8 pad28[0x12]; - s8 unk38; -} Object_64_8003827C; - // Regalloc issues void func_8003827C(Object *obj, s32 arg1) { Object_64_8003827C *obj64 = obj->unk64; @@ -768,13 +621,6 @@ void func_80038330(Object *obj, s32 arg1) { GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003833C.s") -typedef struct Object_64_80038710 { - u8 pad0[0x30]; - s8 unk30; - u8 pad31[0x13]; - s8 unk44; -} Object_64_80038710; - void func_80038710(Object *obj, s32 arg1) { s32 temp_v0; s32 phi_v1; @@ -799,11 +645,6 @@ void func_80038710(Object *obj, s32 arg1) { void func_800387C0(Object *obj, s32 arg1) { } -typedef struct Object_64_800387CC { - u8 pad0[0x148]; - Object *unk148; -} Object_64_800387CC; - void func_800387CC(Object *obj, s32 arg1) { Object *someObj; s32 temp_v0; @@ -834,10 +675,6 @@ void func_80038854(Object *arg0, u8 *arg1) { arg0->y_rotation = arg1[11] << 10; // Not sure about the values here. } -typedef struct Object_64_800388D4 { - s16 unk0; -} Object_64_800388D4; - void func_800388D4(Object *arg0, s32 arg1) { s16 temp_a0; Object_4C *obj4C; @@ -913,12 +750,6 @@ void func_80038AD4(Object *arg0, s32 arg1) { } #ifdef NON_MATCHING - -typedef struct unk80038B74 { - u8 pad0[8]; - s8 unk8; -} unk80038B74; - // regalloc issues void func_80038B74(Object *obj, unk80038B74 *arg1) { s32 temp; @@ -950,41 +781,18 @@ void func_80038D58(Object *arg0, s32 arg1) { } } -typedef struct Object_3C_80038DC4 { - u8 pad0[8]; - s8 unk8; -} Object_3C_80038DC4; - void func_80038DC4(Object *arg0, s32 arg1) { if (arg0->unk78 != 0) { Object_3C_80038DC4 *temp = arg0->unk3C_a.unk3C; if(arg0->unk4C->unk13 < 0x78) { func_8006F338(temp->unk8); arg0->unk78 = 0; - func_80001D04(0x30, 0, arg0); + func_80001D04(0x30, 0); func_80000FDC(0x12A, 0, 1.0f); } } } -typedef struct LevelObjectEntry80038E3C { - LevelObjectEntryCommon common; - u8 pad8[8]; - u8 unk10; - u8 unk11; - u8 pad12[6]; - s8 unk18; -} LevelObjectEntry80038E3C; - -typedef struct Object_64_80038E3C { - f32 unk0; - f32 unk4; - f32 unk8; - f32 unkC; - s32 unk10; - s8 unk14; -} Object_64_80038E3C; - void func_80038E3C(Object *obj, LevelObjectEntry80038E3C *arg1) { f32 phi_f0; Object_64_80038E3C *obj64; @@ -1012,11 +820,6 @@ void func_80038E3C(Object *obj, LevelObjectEntry80038E3C *arg1) { GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80038F58.s") -typedef struct unk80039160 { - u8 pad0[0x78]; - s32 unk78; -} unk80039160; - void func_80039160(unk80039160 *arg0, s8 *arg1) { arg0->unk78 = arg1[8]; func_80011390(); @@ -1026,13 +829,6 @@ void func_80039184(s32 arg0, s32 arg1) { } -typedef struct unk80039190 { - u16 unk0; - u8 pad2[0x76]; - s32 unk78; - s32 unk7C; -} unk80039190; - void func_80039190(unk80039190 *arg0, u8 *arg1) { s32 temp; arg0->unk78 = arg1[8]; @@ -1127,22 +923,6 @@ void func_8003AD28(s32 arg0, s32 arg1) { } -typedef struct LevelObjectEntry8003AD34 { - LevelObjectEntryCommon common; - u8 unk8; - u8 unk9; - u8 unkA; -} LevelObjectEntry8003AD34; - -typedef struct Object_64_8003AD34 { - f32 unk0; - f32 unk4; - f32 unk8; - f32 unkC; - s32 unk10; - s8 unk14; -} Object_64_8003AD34; - void func_8003AD34(Object *obj, LevelObjectEntry8003AD34 *arg1) { f32 phi_f0; Object_64_8003AD34 *obj64; @@ -1198,28 +978,6 @@ GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003B4BC.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003B7CC.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003B988.s") -typedef struct LevelObjectEntry8003C1E0 { - LevelObjectEntryCommon common; - u8 unk8; - u8 unk9; - u8 unkA; - u8 unkB; - u8 unkC; - u8 padD; - s8 unkE; -} LevelObjectEntry8003C1E0; - -typedef struct Object_64_8003C1E0 { - f32 unk0; - u8 pad4[4]; - s32 unk8; - u8 padC[3]; - s8 unkF; - u8 pad10[2]; - u8 unk12; - u8 unk13; -} Object_64_8003C1E0; - void func_8003C1E0(Object *obj, LevelObjectEntry8003C1E0 *arg1) { f32 temp_f0; Object_64_8003C1E0 *obj64; @@ -1281,7 +1039,7 @@ void func_8003CE64(Object *arg0, u8 *arg1) { void func_8003CEA0(Object *arg0, s32 arg1) { if (arg0->unk4C->unk13 < 0x2D) { - func_8001E344(arg0->unk78, arg0); + func_8001E344(arg0->unk78); } arg0->unk4C->unk13 = (u8)0xFF; } @@ -1294,11 +1052,6 @@ void func_8003CF0C(s32 arg0, s32 arg1) { } -typedef struct unk8003CF18 { - u8 pad1A[0x78]; - f32 unk78; -} unk8003CF18; - void func_8003CF18(unk8003CF18 *arg0, u8 *arg1) { f32 temp_f0; temp_f0 = arg1[8] * 8.0f; @@ -1324,7 +1077,7 @@ void func_8003CFE0(s32 arg0, u8 *arg1) { if (arg1[9] == 0xFF) { arg1[9] = func_8001C48C(arg0) & 0xFF; } - func_8001D1BC(arg1[9], arg1); + func_8001D1BC(arg1[9]); func_8001D1AC(); } @@ -1332,13 +1085,6 @@ void func_8003D02C(s32 arg0, s32 arg1) { } -typedef struct unk8003D038 { - u8 pad0[0x18]; - s16 unk18; - u8 pad1A[0x5E]; - s32 unk78; -} unk8003D038; - void func_8003D038(unk8003D038 *arg0, s8 *arg1) { arg0->unk18 = 0x78; arg0->unk78 = (arg1[8] - 1) & 3; @@ -1352,11 +1098,6 @@ void func_8003D2AC(s32 arg0, s32 arg1) { GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003D2B8.s") -typedef struct unk8003D3EC { - u8 pad0[0x18]; - u16 unk18; -} unk8003D3EC; - void func_8003D3EC(unk8003D3EC *arg0, s32 arg1) { arg0->unk18 = 0x64; } @@ -1416,11 +1157,6 @@ void func_8003DC5C(Object *obj, s32 arg1) { GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003DD14.s") -typedef struct unk8003DE74 { - u8 pad0[8]; - u8 unk8; -} unk8003DE74; - void func_8003DE74(Object *obj, unk8003DE74 *arg1) { Settings *settings; obj->unk4C->unk14 = 2; @@ -1435,13 +1171,6 @@ void func_8003DE74(Object *obj, unk8003DE74 *arg1) { gParticlePtrList_addObject(obj); } -#define WORLD_KEY_GRAB_CHECK_RADIUS 50 -#define SOUND_WORLD_KEY_GRAB 54 - -typedef struct Object_64_8003DF08 { - s16 unk0; -} Object_64_8003DF08; - /** * Rotates the key and checks to see if the player grabbed it. */ @@ -1489,7 +1218,7 @@ void func_8003E5C8(Object *arg0, s32 arg1) { arg0->unk4C->unk11 = 0; arg0->unk4C->unk10 = 0x18; arg0->unk4C->unk12 = 0; - arg0->unk78 = func_8000C8B4(0x1E0, arg0); + arg0->unk78 = func_8000C8B4(0x1E0); arg0->unk7C.word = 0; } @@ -1526,16 +1255,6 @@ GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003F0F8.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003F2E8.s") #ifdef NON_MATCHING - -typedef struct unk8003FC44 { - s8 unk0; - s8 unk1; - s16 unk2; - s16 unk4; - s16 unk6; - s8 unk7; -} unk8003FC44; - // Regalloc issues void func_8003FC44(f32 arg0, f32 arg1, f32 arg2, s32 arg3, s32 arg4, f32 arg5, s32 arg6) { Object *someObj; @@ -1565,46 +1284,6 @@ GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003FC44.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003FD68.s") -void func_800098A4(s32, s32, f32, f32, f32, s32, s32, s32, s32, s32, s32, s32, s32); - -typedef struct Object_64_8003FEF4 { - u8 unk0; - u8 pad1; - u16 unk2; - u16 unk4; - u16 unk6; - union { - struct { - u8 unk8; - u8 unk9; - u8 unkA; - u8 padB; - }; - s32 unk8_word; - }; - u8 unkC; - u8 unkD; - u8 unkE; - u8 unkF; - u8 unk10; - u8 unk11; - u8 unk12; -} Object_64_8003FEF4; - -typedef struct LevelObjectEntry8003FEF4 { - LevelObjectEntryCommon common; - u8 unk8; - u8 unk9; - u16 unkA; - u8 unkC; - u8 unkD; - u16 unkE; - u8 unk10; - u8 unk11; - u8 unk12; - u8 unk13; -} LevelObjectEntry8003FEF4; - void func_8003FEF4(Object *arg0, LevelObjectEntry8003FEF4 *arg1) { Object_64_8003FEF4 *obj64; @@ -1626,20 +1305,6 @@ void func_8003FEF4(Object *arg0, LevelObjectEntry8003FEF4 *arg1) { gParticlePtrList_addObject(arg0); } -typedef struct LevelObjectEntry8004001C { - LevelObjectEntryCommon common; - u8 unk8; - u8 unk9; - u8 unkA; -} LevelObjectEntry8004001C; - -typedef struct Object_64_8004001C { - u16 pad0; - s16 unk2; - u8 unk4; - u8 unk5; -} Object_64_8004001C; - void func_8004001C(Object *arg0, LevelObjectEntry8004001C *entry) { s32 temp; Object_64_8004001C *obj64 = (Object_64_8004001C*)arg0->unk64; @@ -1651,23 +1316,6 @@ void func_8004001C(Object *arg0, LevelObjectEntry8004001C *entry) { gParticlePtrList_addObject(arg0); } -/* Size: 12 bytes */ -typedef struct LevelObjectEntry800400A4 { - LevelObjectEntryCommon common; - s16 unk8; - s8 unkA; - s8 unkB; -} LevelObjectEntry800400A4; - -typedef struct Object_64_800400A4 { - s16 unk0; - s16 pad2; - s16 unk4; - s16 unk6; - s16 unk8; - s16 unkA; -} Object_64_800400A4; - void func_800400A4(Object *obj, LevelObjectEntry800400A4 *arg1, s32 arg2) { Object_64_800400A4 *obj64; LevelModel *levelModel; @@ -1693,12 +1341,7 @@ void func_800400A4(Object *obj, LevelObjectEntry800400A4 *arg1, s32 arg2) { GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80040148.s") -typedef struct unk800403A8 { - u8 pad0[0x64]; - s32 unk64; -} unk800403A8; - -void func_800403A8(unk800403A8 *arg0, s32 arg1, s32 arg2) { +void func_800403A8(Object *arg0, s32 arg1, s32 arg2) { arg0->unk64 = func_80031CAC(arg0, arg1); } @@ -1710,8 +1353,6 @@ void func_800403D8(Object *arg0, s32 arg1, s32 arg2) { arg0->unk4C->unk12 = 0; } -f32 func_800BEEB4(Object_64*); - void func_80040448(Object *arg0, s32 arg1) { if (arg0->unk64 != NULL) { arg0->y_position = func_800BEEB4(arg0->unk64); @@ -1719,14 +1360,6 @@ void func_80040448(Object *arg0, s32 arg1) { arg0->unk18 += arg1 * 8; } -/* Size: 12 bytes */ -typedef struct LevelObjectEntry8004049C { - LevelObjectEntryCommon common; - u8 unk8; - u8 unk9; - u8 unkA; -} LevelObjectEntry8004049C; - void func_8004049C(Object *arg0, LevelObjectEntry8004049C *arg1, s32 arg2) { f32 phi_f0; arg0->unk64 = func_800BE654(arg0->unk2E, arg0->x_position, arg0->z_position); @@ -1745,11 +1378,6 @@ void func_8004049C(Object *arg0, LevelObjectEntry8004049C *arg1, s32 arg2) { GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80040570.s") -typedef struct unk80040800 { - u8 pad0[0x78]; - f32 unk78; -} unk80040800; - void func_80040800(unk80040800 *arg0, s16 *arg1) { f32 temp = arg1[4]; temp *= temp; @@ -1769,7 +1397,7 @@ void func_8004094C(Object *arg0, s16 *arg1, s32 arg2) { } void func_800409A4(s32 arg0, s32 arg1, s32 arg2) { - func_800BF524(arg0); + func_800BF524(arg0); //waves.c } GLOBAL_ASM("asm/non_matchings/unknown_032760/func_800409C8.s") @@ -1777,24 +1405,6 @@ GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80040C54.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80041A90.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80041E80.s") -typedef struct unk80042014_arg0_64 { - u16 unk0; - u8 unk2; - u8 unk3; -} unk80042014_arg0_64; - -typedef struct unk80042014_arg0 { - u8 pad0[0x64]; - unk80042014_arg0_64 *unk64; -} unk80042014_arg0; - -typedef struct unk80042014_arg1 { - u8 pad0[8]; - u16 unk8; - u8 unkA; - u8 unkB; -} unk80042014_arg1; - void func_80042014(unk80042014_arg0 *arg0, unk80042014_arg1 *arg1) { unk80042014_arg0_64 *temp = arg0->unk64; temp->unk0 = arg1->unk8; @@ -1802,13 +1412,6 @@ void func_80042014(unk80042014_arg0 *arg0, unk80042014_arg1 *arg1) { temp->unk3 = arg1->unkB; } -typedef struct unk8004203C_arg1 { - u8 pad0[0x8]; - u8 unk8; - u8 unk9; - u16 unkA; -} unk8004203C_arg1; - void func_8004203C(Object *arg0, unk8004203C_arg1 *arg1) { func_800AF134(arg0->unk6C, arg1->unk9, arg1->unk8, 0, 0, 0); arg0->unk78 = arg1->unkA; @@ -1825,15 +1428,8 @@ void func_80042090(Object *arg0, s32 arg1) { } } -typedef struct unk8004210C { - u8 pad0[0x3C]; - s32 unk3C; - u8 pad40[0x24]; - s32 unk64; -} unk8004210C; - void func_8004210C(unk8004210C *arg0, s8 *arg1) { - arg0->unk64 = get_misc_asset(0x14) + (arg1[8] << 7); + arg0->unk64 = (s32)get_misc_asset(0x14) + (arg1[8] << 7); arg0->unk3C = 0; } @@ -1849,18 +1445,6 @@ void func_8004216C(s32 arg0, s32 arg1) { } -typedef struct unk80042178 { - u8 pad0[0x20]; -} unk80042178; - -s32 func_80016DE8(f32, f32, f32, f32, s32, unk80042178*); - -typedef struct Object_3C_80042178 { - u8 pad0[8]; - u16 unk8; - u16 unkA; -} Object_3C_80042178; - void func_80042178(Object *obj, s32 arg1) { s32 temp; Object_3C_80042178 *obj3C; @@ -1875,30 +1459,6 @@ void func_80042178(Object *obj, s32 arg1) { func_800AFC3C(obj, arg1); } -/* Size: 12 bytes */ -typedef struct LevelObjectEntry80042210 { - LevelObjectEntryCommon common; - s16 unk8; - u8 unkA; -} LevelObjectEntry80042210; - -typedef struct Object_64_80042210 { - f32 unk0; - f32 unk4; - f32 unk8; - f32 unkC; - f32 unk10; - u8 unk14; - u8 unk15; - u8 pad16[3]; - u8 unk19; - u8 pad1A[6]; - f32 unk20; - f32 unk24; - u8 pad28[8]; - f32 unk30; -} Object_64_80042210; - void func_80042210(Object *obj, LevelObjectEntry80042210 *arg1) { Object_64_80042210 *obj64; @@ -1927,15 +1487,6 @@ void func_80042210(Object *obj, LevelObjectEntry80042210 *arg1) { GLOBAL_ASM("asm/non_matchings/unknown_032760/func_800422F0.s") -typedef struct Object_64_80042998 { - u8 pad0[0x70]; - u8 unk70; - u8 pad71; - u8 unk72; - u8 pad73; - f32 unk74; -} Object_64_80042998; - void func_80042998(s32 arg0, s32 arg1) { Object *obj; Object_64_80042998 *obj64; @@ -1955,13 +1506,6 @@ void func_80042998(s32 arg0, s32 arg1) { } } -typedef struct unk80042A1C { - u8 pad0[0x78]; - f32 unk78; - s16 unk7C; - s16 unk7E; -} unk80042A1C; - void func_80042A1C(unk80042A1C *arg0, s8 *arg1) { arg0->unk78 = arg1[9] * 8.0f; arg0->unk78 *= arg0->unk78; @@ -1975,11 +1519,6 @@ void func_80042A1C(unk80042A1C *arg0, s8 *arg1) { GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80042A90.s") -typedef struct unk80042CD0 { - u8 pad0[0x18]; - s16 unk18; -} unk80042CD0; - void func_80042CD0(unk80042CD0 *arg0, s32 arg1) { func_8001F460(arg0, arg1, arg0); arg0->unk18 = (arg0->unk18 + (arg1 * 8)) & 0xFF; diff --git a/src/unknown_0348C0.h b/src/unknown_0348C0.h index 8851df86..12b317cc 100644 --- a/src/unknown_0348C0.h +++ b/src/unknown_0348C0.h @@ -2,6 +2,447 @@ #define _UNKNOWN_0348C0_H_ #include "types.h" +#include "structs.h" + +#define WORLD_KEY_GRAB_CHECK_RADIUS 50 +#define SOUND_WORLD_KEY_GRAB 54 + +typedef struct unk80034530 { + u8 pad0[0x8]; + u8 unk8; + u8 unk9; + s8 unkA; + s8 unkB; + u8 unkC; + u8 unkD; +} unk80034530; + +typedef struct unk80034B4C { + u8 pad0[0x18]; + s16 unk18; + u8 pad1A[0x5E]; + s32 unk78; +} unk80034B4C; + +typedef struct unk8003564C { + s8 unk0; + s8 unk1; + s16 unk2; + s16 unk4; + s16 unk6; +} unk8003564C; + +typedef struct Object_64_8003564C { + u8 pad0[4]; + Object *unk4; +} Object_64_8003564C; + +/* Size: 12 bytes */ +typedef struct LevelObjectEntry8003572C { + LevelObjectEntryCommon common; + u8 unk8; + u8 unk9; + u8 unkA; +} LevelObjectEntry8003572C; + +/* Size: 12 bytes */ +typedef struct LevelObjectEntry8003588C { + LevelObjectEntryCommon common; + u8 unk8; + u8 unk9; + u8 unkA; +} LevelObjectEntry8003588C; + +typedef struct unk80035E20 { + u8 pad0[0x40]; + s32 unk40; + u8 pad44[0x34]; + s32 unk78; + s32 unk7C; +} unk80035E20; + +typedef struct Object_64_80035E34 { + u8 pad0[0x1D6]; + s8 unk1D6; +} Object_64_80035E34; + +typedef struct unk80035EF8 { + u8 pad0[0xA]; + s16 unkA; + s16 unkC; + s16 unkE; +} unk80035EF8; + +typedef struct Object_64_80035F6C { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + s16 *unk20; + u8 *unk24; +} Object_64_80035F6C; + +typedef struct Object_64_80035F6C_2 { + u8 pad0[3]; + s8 unk3; +} Object_64_80035F6C_2; + +typedef struct unk80037578 { + u8 pad0[0x78]; + s32 unk78; + s32 unk7C; +} unk80037578; + +typedef struct unk80037624 { + u8 pad0[6]; + s16 unk6; +} unk80037624; + +/* Size: 12 bytes */ +typedef struct LevelObjectEntry800376E0 { + LevelObjectEntryCommon common; + s8 unk8; + s8 unk9; + s8 unkA; +} LevelObjectEntry800376E0; + +typedef struct Object_64_800376E0 { + s16 segmentId; + s16 unk2; + s16 unk4; + s16 unk6; + s16 unk8; + s16 unkA; +} Object_64_800376E0; + +typedef struct unk80037D08_arg0_64 { + u8 pad0[0x2A]; + s16 unk2A; +} unk80037D08_arg0_64; + +typedef struct unk80037D08_arg0 { + u8 pad0[0x64]; + unk80037D08_arg0_64 *unk64; +} unk80037D08_arg0; + +// Not sure if Object_60 differs between objects yet. +typedef struct Object_60_800380F8 { + s32 unk0; + Object *unk4; + s32 pad8; + Object *unkC; +} Object_60_800380F8; + +typedef struct Object_64_8003827C { + u8 pad0[0x20]; + s32 unk20; + s16 unk24; + u8 pad28[0x12]; + s8 unk38; +} Object_64_8003827C; + +typedef struct Object_64_80038710 { + u8 pad0[0x30]; + s8 unk30; + u8 pad31[0x13]; + s8 unk44; +} Object_64_80038710; + +typedef struct Object_64_800387CC { + u8 pad0[0x148]; + Object *unk148; +} Object_64_800387CC; + +typedef struct Object_64_800388D4 { + s16 unk0; +} Object_64_800388D4; + +typedef struct unk80038B74 { + u8 pad0[8]; + s8 unk8; +} unk80038B74; + +typedef struct Object_3C_80038DC4 { + u8 pad0[8]; + s8 unk8; +} Object_3C_80038DC4; + +typedef struct LevelObjectEntry80038E3C { + LevelObjectEntryCommon common; + u8 pad8[8]; + u8 unk10; + u8 unk11; + u8 pad12[6]; + s8 unk18; +} LevelObjectEntry80038E3C; + +typedef struct Object_64_80038E3C { + f32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; + s32 unk10; + s8 unk14; +} Object_64_80038E3C; + +typedef struct unk80039160 { + u8 pad0[0x78]; + s32 unk78; +} unk80039160; + +typedef struct unk80039190 { + u16 unk0; + u8 pad2[0x76]; + s32 unk78; + s32 unk7C; +} unk80039190; + +typedef struct LevelObjectEntry8003AD34 { + LevelObjectEntryCommon common; + u8 unk8; + u8 unk9; + u8 unkA; +} LevelObjectEntry8003AD34; + +typedef struct Object_64_8003AD34 { + f32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; + s32 unk10; + s8 unk14; +} Object_64_8003AD34; + +typedef struct LevelObjectEntry8003C1E0 { + LevelObjectEntryCommon common; + u8 unk8; + u8 unk9; + u8 unkA; + u8 unkB; + u8 unkC; + u8 padD; + s8 unkE; +} LevelObjectEntry8003C1E0; + +typedef struct Object_64_8003C1E0 { + f32 unk0; + u8 pad4[4]; + s32 unk8; + u8 padC[3]; + s8 unkF; + u8 pad10[2]; + u8 unk12; + u8 unk13; +} Object_64_8003C1E0; + +typedef struct unk8003CF18 { + u8 pad1A[0x78]; + f32 unk78; +} unk8003CF18; + +typedef struct unk8003D038 { + u8 pad0[0x18]; + s16 unk18; + u8 pad1A[0x5E]; + s32 unk78; +} unk8003D038; + +typedef struct unk8003D3EC { + u8 pad0[0x18]; + u16 unk18; +} unk8003D3EC; + +typedef struct unk8003DE74 { + u8 pad0[8]; + u8 unk8; +} unk8003DE74; + +typedef struct Object_64_8003DF08 { + s16 unk0; +} Object_64_8003DF08; + +typedef struct unk8003FC44 { + s8 unk0; + s8 unk1; + s16 unk2; + s16 unk4; + s16 unk6; + s8 unk7; +} unk8003FC44; + + +typedef struct Object_64_8003FEF4 { + u8 unk0; + u8 pad1; + u16 unk2; + u16 unk4; + u16 unk6; + union { + struct { + u8 unk8; + u8 unk9; + u8 unkA; + u8 padB; + }; + s32 unk8_word; + }; + u8 unkC; + u8 unkD; + u8 unkE; + u8 unkF; + u8 unk10; + u8 unk11; + u8 unk12; +} Object_64_8003FEF4; + +typedef struct LevelObjectEntry8003FEF4 { + LevelObjectEntryCommon common; + u8 unk8; + u8 unk9; + u16 unkA; + u8 unkC; + u8 unkD; + u16 unkE; + u8 unk10; + u8 unk11; + u8 unk12; + u8 unk13; +} LevelObjectEntry8003FEF4; + +typedef struct LevelObjectEntry8004001C { + LevelObjectEntryCommon common; + u8 unk8; + u8 unk9; + u8 unkA; +} LevelObjectEntry8004001C; + +typedef struct Object_64_8004001C { + u16 pad0; + s16 unk2; + u8 unk4; + u8 unk5; +} Object_64_8004001C; + +/* Size: 12 bytes */ +typedef struct LevelObjectEntry800400A4 { + LevelObjectEntryCommon common; + s16 unk8; + s8 unkA; + s8 unkB; +} LevelObjectEntry800400A4; + +typedef struct Object_64_800400A4 { + s16 unk0; + s16 pad2; + s16 unk4; + s16 unk6; + s16 unk8; + s16 unkA; +} Object_64_800400A4; + +/* Size: 12 bytes */ +typedef struct LevelObjectEntry8004049C { + LevelObjectEntryCommon common; + u8 unk8; + u8 unk9; + u8 unkA; +} LevelObjectEntry8004049C; + +typedef struct unk80040800 { + u8 pad0[0x78]; + f32 unk78; +} unk80040800; + +typedef struct unk80042014_arg0_64 { + u16 unk0; + u8 unk2; + u8 unk3; +} unk80042014_arg0_64; + +typedef struct unk80042014_arg0 { + u8 pad0[0x64]; + unk80042014_arg0_64 *unk64; +} unk80042014_arg0; + +typedef struct unk80042014_arg1 { + u8 pad0[8]; + u16 unk8; + u8 unkA; + u8 unkB; +} unk80042014_arg1; + +typedef struct unk8004210C { + u8 pad0[0x3C]; + s32 unk3C; + u8 pad40[0x24]; + s32 unk64; +} unk8004210C; + +typedef struct unk80042178 { + u8 pad0[0x20]; +} unk80042178; + +typedef struct Object_3C_80042178 { + u8 pad0[8]; + u16 unk8; + u16 unkA; +} Object_3C_80042178; + +typedef struct unk8004203C_arg1 { + u8 pad0[0x8]; + u8 unk8; + u8 unk9; + u16 unkA; +} unk8004203C_arg1; + +/* Size: 12 bytes */ +typedef struct LevelObjectEntry80042210 { + LevelObjectEntryCommon common; + s16 unk8; + u8 unkA; +} LevelObjectEntry80042210; + +typedef struct Object_64_80042210 { + f32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; + f32 unk10; + u8 unk14; + u8 unk15; + u8 pad16[3]; + u8 unk19; + u8 pad1A[6]; + f32 unk20; + f32 unk24; + u8 pad28[8]; + f32 unk30; +} Object_64_80042210; + +typedef struct Object_64_80042998 { + u8 pad0[0x70]; + u8 unk70; + u8 pad71; + u8 unk72; + u8 pad73; + f32 unk74; +} Object_64_80042998; + +typedef struct unk80042A1C { + u8 pad0[0x78]; + f32 unk78; + s16 unk7C; + s16 unk7E; +} unk80042A1C; + +typedef struct unk80042CD0 { + u8 pad0[0x18]; + s16 unk18; +} unk80042CD0; // Unsure about the signed/unsigned with these arrays. extern u16 D_800DC970[4]; @@ -19,5 +460,128 @@ extern s8 D_800DCA94[8]; extern s8 D_800DCA9C[12]; extern u16 D_800DCAA8[64]; extern u16 D_800DCB28[20]; +extern u32 osTvType; -#endif \ No newline at end of file +f32 func_800707C4(s16); // No idea where it's located +f32 func_800707F8(s16); // No idea where it's located +s32 get_random_number_from_range(s32, s32); // Non Matching src/unknown_070110.c +s32 func_8007066C(s32, s32); // Non Matching src/unknown_070110.c +s32 func_80016DE8(f32, f32, f32, f32, s32, unk80042178*); //unknown_00BC20.c Non Matching +// Yeah this one seems excessive, and it's Non Matching from src/unknown_008C40.c +void func_800098A4(s32, s32, f32, f32, f32, s32, s32, s32, s32, s32, s32, s32, s32); + +void func_80033F44(Object *arg0, s32 arg1); +void func_80034530(Object *arg0, unk80034530 *arg1); +void func_80034844(Object *arg0, s32 arg1); +void func_80034AF0(Object *arg0, u8 *arg1); +void func_80034B4C(unk80034B4C *arg0, s32 arg1); +void func_80034B68(s32 arg0, s32 arg1); +void func_80034E70(Object *arg0, u8 *arg1); +void func_8003522C(Object *arg0, s32 arg1); +void func_80035640(s32 arg0, s32 arg1); +void func_8003564C(Object *arg0, s32 arg1); +void func_8003572C(Object *arg0, LevelObjectEntry8003572C *arg1); +void func_800357D4(Object *obj, s32 arg1); +void func_8003588C(Object *arg0, LevelObjectEntry8003588C *arg1); +void func_80035E20(unk80035E20 *arg0, s32 arg1); +void func_80035E34(Object *obj, s32 arg1); +void func_80035EF8(Object *arg0, unk80035EF8 *arg1); +void func_80035F6C(Object *obj, s32 arg1); +void func_80036194(Object *arg0, s32 arg1); +void func_80036BCC(u16 arg0, s32 arg1); +void func_80037578(unk80037578 *arg0, u8 *arg1); +void func_80037624(unk80037624 *arg0, s32 arg1); +void func_800376E0(Object *arg0, LevelObjectEntry800376E0 *arg1, s32 arg2); +void func_80037CE8(s32 arg0, s32 arg1); +void func_80037D08(unk80037D08_arg0 *arg0, s32 arg1); +void func_80037D54(s32 arg0, s32 arg1); +void func_80037D60(s32 arg0, s32 arg1); +void func_80037D6C(s32 arg0, s32 arg1); +void func_8003818C(Object *arg0, s32 arg1); +void func_800381C0(s32 arg0, s32 arg1); +void func_800381E0(Object *arg0, s32 arg1); +void func_80038214(Object *arg0, s32 arg1); +void func_80038248(Object *arg0, s32 arg1); +void func_80038330(Object *obj, s32 arg1); +void func_80038710(Object *obj, s32 arg1); +void func_800387C0(Object *obj, s32 arg1); +void func_800387CC(Object *obj, s32 arg1); +void func_80038854(Object *arg0, u8 *arg1); +void func_800388D4(Object *arg0, s32 arg1); +void func_800389AC(s32 arg0, s32 arg1); +void func_800389B8(Object *obj, s32 arg1); +void func_80038A6C(s32 arg0, s32 arg1); +void func_80038A78(Object *arg0, s32 arg1); +void func_80038AC8(s32 arg0, s32 arg1); +void func_80038AD4(Object *arg0, s32 arg1); +void func_80038D58(Object *arg0, s32 arg1); +void func_80038DC4(Object *arg0, s32 arg1); +void func_80038E3C(Object *obj, LevelObjectEntry80038E3C *arg1); +void func_80039160(unk80039160 *arg0, s8 *arg1); +void func_80039184(s32 arg0, s32 arg1); +void func_80039190(unk80039190 *arg0, u8 *arg1); +void func_800391BC(s32 arg0, s32 arg1); +void func_800391C8(Object *arg0, s32 arg1); +void func_800391FC(Object *obj, s32 arg1); +void func_800392B8(Object *arg0, s32 arg1); +void func_80039320(s16 arg0); +void func_8003AC3C(u16 arg0, s32 arg1); +void func_8003ACA0(s32 arg0, s32 arg1); +f32 func_8003ACAC(void); +void func_8003ACBC(Object *arg0, u8 *arg1, s32 arg2); +void func_8003AD28(s32 arg0, s32 arg1); +void func_8003AD34(Object *obj, LevelObjectEntry8003AD34 *arg1); +void func_8003B058(Object *obj, LevelObjectEntry8003AD34 *arg1); +void func_8003C1E0(Object *obj, LevelObjectEntry8003C1E0 *arg1); +void func_8003C9EC(Object *arg0, u8 *arg1); +void func_8003CE64(Object *arg0, u8 *arg1); +void func_8003CEA0(Object *arg0, s32 arg1); +void func_8003CF00(s32 arg0, s32 arg1); +void func_8003CF0C(s32 arg0, s32 arg1); +void func_8003CF18(unk8003CF18 *arg0, u8 *arg1); +void func_8003CF58(Object *arg0, u8 *arg1); +void func_8003CF98(Object *arg0, s32 arg1); +void func_8003CFE0(s32 arg0, u8 *arg1); +void func_8003D02C(s32 arg0, s32 arg1); +void func_8003D038(unk8003D038 *arg0, s8 *arg1); +void func_8003D2AC(s32 arg0, s32 arg1); +void func_8003D3EC(unk8003D3EC *arg0, s32 arg1); +void func_8003D534(Object *arg0, s32 arg1); +void func_8003DBA0(Object *obj, s32 arg1); +void func_8003DC5C(Object *obj, s32 arg1); +void func_8003DE74(Object *obj, unk8003DE74 *arg1); +void obj_loop_world_key(Object *worldKeyObj, s32 speed); +void func_8003E5B0(s32 arg0, s32 arg1); +void func_8003E5BC(s32 arg0, s32 arg1); +void func_8003E5C8(Object *arg0, s32 arg1); +void func_8003E630(Object *arg0); +void func_8003F0D0(void); +void func_8003F0DC(void); +void func_8003FEF4(Object *arg0, LevelObjectEntry8003FEF4 *arg1); +void func_8004001C(Object *arg0, LevelObjectEntry8004001C *entry); +void func_800400A4(Object *obj, LevelObjectEntry800400A4 *arg1, s32 arg2); +void func_800403A8(Object *arg0, s32 arg1, s32 arg2); +void func_800403D8(Object *arg0, s32 arg1, s32 arg2); +void func_80040448(Object *arg0, s32 arg1); +void func_8004049C(Object *arg0, LevelObjectEntry8004049C *arg1, s32 arg2); +void func_800409A4(s32 arg0, s32 arg1, s32 arg2); +void func_80042014(unk80042014_arg0 *arg0, unk80042014_arg1 *arg1); +void func_8004203C(Object *arg0, unk8004203C_arg1 *arg1); +void func_80042090(Object *arg0, s32 arg1); +void func_8004210C(unk8004210C *arg0, s8 *arg1); +void func_80042150(s32 arg0, s32 arg1, s32 arg2); +void func_80042160(s32 arg0, s32 arg1); +void func_8004216C(s32 arg0, s32 arg1); +void func_80042178(Object *obj, s32 arg1); +void func_80042210(Object *obj, LevelObjectEntry80042210 *arg1); +void func_80042998(s32 arg0, s32 arg1); +void func_80042A1C(unk80042A1C *arg0, s8 *arg1); +void func_80042CD0(unk80042CD0 *arg0, s32 arg1); + +//Non Matching +void func_80037594(Object *obj, s32 arg1); +void func_800377E4(Object *obj, s32 arg1); +void func_800380F8(Object *obj, s32 arg1); +void func_8003827C(Object *obj, s32 arg1); + +#endif diff --git a/src/unknown_043920.c b/src/unknown_043920.c index 07d2d5c1..8eb4767d 100644 --- a/src/unknown_043920.c +++ b/src/unknown_043920.c @@ -11,6 +11,7 @@ #include "structs.h" #include "asset_sections.h" //#include "controller_pak.h" +#include "unknown_008C40.h" /* Size: 8 bytes */ typedef struct GhostHeader { @@ -741,9 +742,6 @@ void func_800570A4(Object *arg0, s32 arg1, s32 arg2) { } #ifdef NON_MATCHING - -void func_80009558(u16, f32 x, f32 y, f32 z, s32, s32 *); //unknown_008C40 - typedef struct Object_64_800570B8 { u8 pad0[3]; s8 unk3; @@ -882,10 +880,6 @@ GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80058B84.s") GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80058D5C.s") #ifdef NON_MATCHING - -s32 func_8007066C(s32, s32); -s16 get_level_segment_index_from_position(f32, f32, f32); - void func_80058F44(f32 arg0, Object *arg1, Object *arg2) { s32 temp0, temp1; temp0 = (s32)arg0; @@ -894,7 +888,6 @@ void func_80058F44(f32 arg0, Object *arg1, Object *arg2) { gCameraObject->z_rotation -= (gCameraObject->z_rotation * temp0) >> 4; gCameraObject->unk34 = get_level_segment_index_from_position(gCameraObject->x_position, arg2->unk3C_a.unk3C_f, gCameraObject->z_position); } - #else GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80058F44.s") #endif diff --git a/src/unknown_043920.h b/src/unknown_043920.h index 91be4840..0991889e 100644 --- a/src/unknown_043920.h +++ b/src/unknown_043920.h @@ -2,6 +2,7 @@ #define _UNKNOWN_043920_H_ #include "types.h" +#include "structs.h" extern s32 D_800DCB50; extern s16 D_800DCB54; @@ -48,4 +49,6 @@ extern s16 D_800DCDD4[4]; s32 func_80059B7C(s32 arg0, s32 arg1, s16 arg2, s16 arg3, s16 arg4); void func_8005A3D0(void); +void set_ghost_position_and_rotation(Object *obj); // Non Matching + #endif diff --git a/src/unknown_05CEF0.c b/src/unknown_05CEF0.c index fe2ab85e..0c424f8c 100644 --- a/src/unknown_05CEF0.c +++ b/src/unknown_05CEF0.c @@ -9,6 +9,7 @@ #include "audio.h" #include "unknown_00BC20.h" #include "unknown_005740.h" +#include "unknown_008C40.h" /************ .data ************/ diff --git a/src/unknown_05CEF0.h b/src/unknown_05CEF0.h index e8b8895b..60cda2b1 100644 --- a/src/unknown_05CEF0.h +++ b/src/unknown_05CEF0.h @@ -20,7 +20,6 @@ typedef struct unk8005D048 { extern s16 D_800DCDE0[16]; -void func_80009558(u16, f32 x, f32 y, f32 z, s32, s32 *); //unknown_008C40 s32 get_random_number_from_range(s32, s32); //? void func_8005C2F0(Object *object, unk8005C2F0 *arg1); diff --git a/src/waves.c b/src/waves.c index fcd34060..088e9ac2 100644 --- a/src/waves.c +++ b/src/waves.c @@ -1,6 +1,7 @@ /* The comment below is needed for this file to be picked up by generate_ld */ /* RAM_POS: 0x800B7D20 */ +#include "waves.h" #include "types.h" #include "macros.h" #include "libultra_internal.h" diff --git a/src/waves.h b/src/waves.h new file mode 100644 index 00000000..2c8060a0 --- /dev/null +++ b/src/waves.h @@ -0,0 +1,10 @@ +#ifndef _WAVES_H_ +#define _WAVES_H_ + +#include "types.h" +#include "structs.h" + +Object_64 *func_800BE654(s16, f32, f32); // Non Matching +f32 func_800BEEB4(Object_64 *); // Non Matching + +#endif