diff --git a/data/data_80B9BB0.s b/data/data_80B9BB0.s index c85c4a002..0410cd458 100644 --- a/data/data_80B9BB0.s +++ b/data/data_80B9BB0.s @@ -16,14 +16,7 @@ .align 2,0 .string "pksdir0\0" .align 2,0 - .string "pksdir0\0" - .align 2,0 - - .global gUnknown_80B9C60 -gUnknown_80B9C60: @ 80B9C60 - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 + diff --git a/data/data_80B9BB8_2.s b/data/data_80B9BB8_2.s index d3fc25429..025171ce9 100644 --- a/data/data_80B9BB8_2.s +++ b/data/data_80B9BB8_2.s @@ -2,16 +2,6 @@ .align 2,0 - .global gUnknown_80B9C9C -gUnknown_80B9C9C: @ 80B9C9C - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0xff, 0xff - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00 .string "pksdir0\0" .align 2,0 diff --git a/include/code_800DAC0.h b/include/code_800DAC0.h index 801ef319a..018adcb7e 100644 --- a/include/code_800DAC0.h +++ b/include/code_800DAC0.h @@ -3,17 +3,60 @@ #include "structs/sprite_oam.h" #include "structs/str_position.h" -#include "code_800E9A8.h" +#include "structs/code_800E9E4.h" -s32 sub_800E890(unkStruct_80416E0 *); +typedef struct unkStruct_80416E0 +{ + s32 unk0; + s32 unk4; + s32 dir; + DungeonPos pos1; + DungeonPos pos2; + s32 unk14; + u32 unk18; + unkStruct_2039DB0 spriteMasks; +} unkStruct_80416E0; -void sub_800DC14(s32); -bool8 sub_800E9A8(s32); -void sub_800DAC0(u32); +struct UnkStruct_8040094 +{ + u16 unk0; + s16 unk2; + DungeonPos unk4; + DungeonPos unk8; + s32 unkC; + s32 unk10; +}; + +void sub_800DAC0(u32 fileSelection); void sub_800DB7C(void); void sub_800DBBC(void); -bool8 sub_800E90C(DungeonPos *); +void sub_800DC14(s32 param_1); +s32 sub_800DC9C(s32 a0); +s32 sub_800E308(struct UnkStruct_8040094 *a0, DungeonPos *a1); +void sub_800E3AC(s32 a0, DungeonPos *pos, s32 a2); +s32 sub_800E448(u8 a0, DungeonPos *pos); +s32 sub_800E49C(u8 a0, DungeonPos *pos, DungeonPos posArray[4], bool8 a3, s32 a4); +s32 sub_800E52C(struct UnkStruct_8040094 *a0); +s32 sub_800E6D8(s32 a0); +s32 sub_800E700(s32 a0); +s32 sub_800E710(s32 a0_, s32 a1); +s32 sub_800E790(s32 a0_, s32 a1); +bool8 sub_800E7D0(u16 *param_1); +bool8 sub_800E838(u16 *param_1, s32 param_2); +s32 sub_800E890(unkStruct_80416E0 *param_1); void sub_800E8AC(s32 a0, DungeonPos *a1, DungeonPos *a2, s32 a3, unkStruct_2039DB0 *a4); +bool8 sub_800E90C(DungeonPos *param_1); +void sub_800E970(void); +bool8 sub_800E9A8(s32 a0); +bool8 sub_800E9E4(u32 param_1); +bool8 sub_800E9FC(u8 a0); +u8 sub_800EA44(unkStruct_800EA44 param_1, s32 param_2); +s32 sub_800EA84(struct UnkStruct_8040094 *a0); +void sub_800EB24(s32 param_1, DungeonPos *param_2, DungeonPos *param_3, s32 r5, s32 r4); +s32 sub_800EBC8(struct UnkStruct_8040094 *a0); +u8 sub_800EC74(void); +u8 sub_800EC84(s32 param_1); +u8 sub_800EC94(s32 param_1); #endif // GUARD_CODE_800DAC0_H diff --git a/include/code_800E9A8.h b/include/code_800E9A8.h deleted file mode 100644 index a38f275fc..000000000 --- a/include/code_800E9A8.h +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef GUARD_CODE_800E9A8_H -#define GUARD_CODE_800E9A8_H - -#include "structs/axdata.h" -#include "structs/sprite_oam.h" -#include "structs/str_position.h" -#include "structs/str_file_system.h" -#include "structs/str_8009A7C.h" - -struct unkStruct_203B0CC_x94 -{ - struct Struct_8009A7C sub; - s32 unk14; - s32 unk18; - s32 fill1C; - u8 unk20; -}; - -typedef struct unkStruct_80416E0 -{ - s32 unk0; - s32 unk4; - s32 dir; - DungeonPos pos1; - DungeonPos pos2; - s32 unk14; - u32 unk18; - unkStruct_2039DB0 spriteMasks; -} unkStruct_80416E0; - -struct unkStruct_203B0CC_sub -{ - // size: 0xD0 - u32 unk0; - s32 unk4; - s32 unk8; - unkStruct_80416E0 unkC; - u32 unk34; - u32 effectID; - s32 paletteNum; - s32 unk40; - s32 unk44; - s32 unk48; - u32 unk4C; - s32 unk50; - u8 unk54; - u8 unk55; - axdata unk58; - struct unkStruct_203B0CC_x94 unk94; - OpenedFile *unkB8; - DungeonPos unkBC; - DungeonPos unkC0; - s16 unkC4; - DungeonPos unkC8; - DungeonPos unkCC; -}; - -#define UNK_203B0CC_ARR_COUNT 0x20 - -struct unkStruct_203B0CC -{ - // size: 0x1A18 - struct unkStruct_203B0CC_sub unk0[UNK_203B0CC_ARR_COUNT]; - s32 unk1A00; - /* 0x1A04 */ u32 fileSelection; - s32 unk1A08; - s32 unk1A0C; - s32 unk1A10; - u16 unk1A14; -}; - -bool8 sub_800E9A8(s32 a0); -bool8 sub_800E9E4(u32); -bool8 sub_800E9FC(u8 a0); - -#endif diff --git a/include/structs/sprite_oam.h b/include/structs/sprite_oam.h index 6961cade8..f8fedf39a 100644 --- a/include/structs/sprite_oam.h +++ b/include/structs/sprite_oam.h @@ -13,6 +13,8 @@ typedef struct unkStruct_2039DB0 u16 unkA; // SpriteOAM attrib3 value } unkStruct_2039DB0; +#define DEFAULT_UNK_2039DB0_MASKS (unkStruct_2039DB0) {0xFFFF, 0xFFFF, 0xFFFF, 0, 0, 0} + // size: 0x8. Similar to struct OamData but unk6 is not copied to OAM typedef struct SpriteOAM { diff --git a/src/code_800DAC0.c b/src/code_800DAC0.c index f98141de5..e4d087065 100644 --- a/src/code_800DAC0.c +++ b/src/code_800DAC0.c @@ -1,8 +1,8 @@ #include "global.h" +#include "globaldata.h" +#include "code_800DAC0.h" #include "structs/axdata.h" #include "bg_control.h" -#include "code_800DAC0.h" -#include "code_800E9A8.h" #include "music_util.h" #include "code_803E724.h" #include "def_filearchives.h" @@ -17,7 +17,57 @@ #include "graphics_memory.h" #include "structs/code_800E9E4.h" -EWRAM_INIT struct unkStruct_203B0CC *gUnknown_203B0CC = NULL; +struct unkStruct_203B0CC_x94 +{ + struct Struct_8009A7C sub; + s32 unk14; + s32 unk18; + s32 fill1C; + u8 unk20; +}; + +struct unkStruct_203B0CC_sub +{ + // size: 0xD0 + u32 unk0; + s32 unk4; + s32 unk8; + unkStruct_80416E0 unkC; + u32 unk34; + u32 effectID; + s32 paletteNum; + s32 unk40; + s32 unk44; + s32 unk48; + u32 unk4C; + s32 unk50; + u8 unk54; + u8 unk55; + axdata unk58; + struct unkStruct_203B0CC_x94 unk94; + OpenedFile *unkB8; + DungeonPos unkBC; + DungeonPos unkC0; + s16 unkC4; + DungeonPos unkC8; + DungeonPos unkCC; +}; + +#define UNK_203B0CC_ARR_COUNT 32 + +struct unkStruct_203B0CC +{ + // size: 0x1A18 + struct unkStruct_203B0CC_sub unk0[UNK_203B0CC_ARR_COUNT]; + s32 unk1A00; + /* 0x1A04 */ u32 fileSelection; + s32 unk1A08; + s32 unk1A0C; + s32 unk1A10; + u16 unk1A14; +}; + +static EWRAM_INIT struct unkStruct_203B0CC *gUnknown_203B0CC = NULL; struct unkStruct_800F18C { @@ -25,24 +75,12 @@ struct unkStruct_800F18C u32 counter; }; -struct UnkStruct_8040094 -{ - u16 unk0; - s16 unk2; - DungeonPos unk4; - DungeonPos unk8; - s32 unkC; - s32 unk10; -}; - extern s16 gUnknown_2026E4E; -extern s32 sub_800E2C0(s32); -extern s32 sub_800E900(s32 a0); + extern void sub_8009BE4(void); extern void sub_800F204(OpenedFile *file); extern struct unkStruct_800F18C *sub_800F18C(s32); -extern void sub_800DCA8(struct unkStruct_203B0CC_sub *); extern void sub_800F034(void); extern void sub_800ED38(u32); extern void sub_800F078(); @@ -50,16 +88,23 @@ extern void sub_800ED64(); extern void sub_800ED80(); extern void sub_800F094(); extern void sub_809971C(u16 a0, const RGB *a1, int a2); +extern u32 sub_800F19C(s32); +extern OpenedFile *sub_800F1C0(u32 animType, s32 effectID); +extern void sub_800F15C(s32 effectID); +extern unkStruct_80C183C *sub_800ECD0(s32 param_1); -s32 sub_800E2B8(OpenedFile *a0); -OpenedFile *sub_800F1C0(u32 animType, s32 effectID); -s32 sub_800E2F0(void); -s32 sub_800E750(s32 a0, s32 a1); s32 sub_800E700(s32); -void sub_800F15C(s32 effectID); -unkStruct_80C183C *sub_800ECD0(s32 param_1); -extern const unkStruct_2039DB0 gUnknown_80B9C60; +static s32 sub_800E900(s32 a0); +static s32 sub_800E2C0(s32); +static s32 sub_800E2B8(OpenedFile *a0); +static s32 sub_800E2F0(void); +static s32 sub_800E750(s32 a0, s32 a1); +static s32 sub_800EBBC(s32 param_1); +static s32 sub_800EC68(s32 param_1); +static void sub_800DCA8(struct unkStruct_203B0CC_sub *); + +static const unkStruct_2039DB0 sDefaultSpriteMasks = DEFAULT_UNK_2039DB0_MASKS; void sub_800DAC0(u32 fileSelection) { @@ -73,7 +118,7 @@ void sub_800DAC0(u32 fileSelection) gUnknown_203B0CC = MemoryAlloc(sizeof(struct unkStruct_203B0CC), 0xb); MemoryClear8(gUnknown_203B0CC, sizeof(struct unkStruct_203B0CC)); gUnknown_203B0CC->fileSelection = fileSelection; - for (i = 0, ptr = &gUnknown_203B0CC->unk0[i]; i < 0x20; i++, ptr++) { + for (i = 0, ptr = &gUnknown_203B0CC->unk0[i]; i < UNK_203B0CC_ARR_COUNT; i++, ptr++) { ptr->unk4 = -1; } sub_800ED38(fileSelection); @@ -131,7 +176,7 @@ void sub_800DBBC(void) sub_800F094(); } -bool8 sub_800DCC0(void) +UNUSED static bool8 sub_800DC00(void) { return gUnknown_203B0CC != NULL; } @@ -173,7 +218,7 @@ s32 sub_800DC9C(s32 a0) return sub_800E900(a0); } -void sub_800DCA8(struct unkStruct_203B0CC_sub *param_1) +static void sub_800DCA8(struct unkStruct_203B0CC_sub *param_1) { param_1->unk4 = -1; param_1->unk54 = 0; @@ -183,7 +228,7 @@ void sub_800DCA8(struct unkStruct_203B0CC_sub *param_1) } } -void sub_800DCD0(struct unkStruct_203B0CC_sub *param_1) +static void sub_800DCD0(struct unkStruct_203B0CC_sub *param_1) { if (param_1->unk4C != -1 && param_1->unk50 == 0) { if (sub_8000728() != 2) { @@ -199,7 +244,7 @@ void sub_800DCD0(struct unkStruct_203B0CC_sub *param_1) #ifdef NONMATCHING // https://decomp.me/scratch/OBo48 -bool8 sub_800DD0C(struct unkStruct_203B0CC_sub *param_1, DungeonPos *posArg) +static bool8 sub_800DD0C(struct unkStruct_203B0CC_sub *param_1, DungeonPos *posArg) { struct axObject *axObj = ¶m_1->unk58; @@ -262,7 +307,7 @@ bool8 sub_800DD0C(struct unkStruct_203B0CC_sub *param_1, DungeonPos *posArg) } } #else -NAKED bool8 sub_800DD0C(struct unkStruct_203B0CC_sub *param_1, DungeonPos *posArg) +NAKED static bool8 sub_800DD0C(struct unkStruct_203B0CC_sub *param_1, DungeonPos *posArg) { asm_unified(" push {r4-r7,lr}\n" " mov r7, r8\n" @@ -426,7 +471,7 @@ NAKED bool8 sub_800DD0C(struct unkStruct_203B0CC_sub *param_1, DungeonPos *posAr } #endif // NONMATCHING -bool8 sub_800DE38(struct unkStruct_203B0CC_sub *a1) +static bool8 sub_800DE38(struct unkStruct_203B0CC_sub *a1) { s32 i; @@ -452,7 +497,7 @@ static inline const EfoFileData *GetFileEfo(struct unkStruct_203B0CC_sub *a0) return a0->unkB8->data; } -bool8 sub_800DE8C(struct unkStruct_203B0CC_sub *a0, DungeonPos *unused) +static bool8 sub_800DE8C(struct unkStruct_203B0CC_sub *a0, DungeonPos *unused) { s16 sp[4]; struct unkStruct_203B0CC_x94 *r8 = &a0->unk94; @@ -529,7 +574,7 @@ bool8 sub_800DE8C(struct unkStruct_203B0CC_sub *a0, DungeonPos *unused) return TRUE; } -void sub_800E0B4(struct unkStruct_203B0CC_sub *r5) +static void sub_800E0B4(struct unkStruct_203B0CC_sub *r5) { s32 r2; unkStruct_80B9CC4 *r6 = sub_800ECA4(r5->unkC.unk0); @@ -587,7 +632,7 @@ void sub_800E0B4(struct unkStruct_203B0CC_sub *r5) } } -s32 sub_800E208(s32 a0, unkStruct_80416E0 *a1) +static s32 sub_800E208(s32 a0, unkStruct_80416E0 *a1) { s32 i; struct unkStruct_203B0CC_sub *ptr = gUnknown_203B0CC->unk0; @@ -619,13 +664,13 @@ s32 sub_800E208(s32 a0, unkStruct_80416E0 *a1) return -1; } -s32 sub_800E2B8(OpenedFile *a0) +static s32 sub_800E2B8(OpenedFile *a0) { const EfoFileData *efo = a0->data; return efo->animCount; } -s32 sub_800E2C0(s32 a0) +static s32 sub_800E2C0(s32 a0) { if (a0 != -1) { s32 i; @@ -639,7 +684,7 @@ s32 sub_800E2C0(s32 a0) return -1; } -s32 sub_800E2F0(void) +static s32 sub_800E2F0(void) { s32 prev = gUnknown_203B0CC->unk1A00; gUnknown_203B0CC->unk1A00++; @@ -657,7 +702,7 @@ s32 sub_800E308(struct UnkStruct_8040094 *a0, DungeonPos *a1) .pos2 = a0->unk8, .unk14 = sub_800E750(a0->unk2, a0->unk0), .unk18 = 0xFFFF, - .spriteMasks = gUnknown_80B9C60, + .spriteMasks = sDefaultSpriteMasks, }; s32 retVal = sub_800E208(2, &sp); @@ -712,7 +757,7 @@ s32 sub_800E448(u8 a0, DungeonPos *pos) .pos2 = {0, 0}, .unk14 = -1, .unk18 = 0xFFFF, - .spriteMasks = gUnknown_80B9C60, + .spriteMasks = sDefaultSpriteMasks, }; return sub_800E208(3, &sp); } @@ -729,7 +774,7 @@ s32 sub_800E49C(u8 a0, DungeonPos *pos, DungeonPos posArray[4], bool8 a3, s32 a4 .pos2 = {0, 0}, .unk14 = -1, .unk18 = 0, - .spriteMasks = gUnknown_80B9C60, + .spriteMasks = sDefaultSpriteMasks, }; sp.unk18 = a4; @@ -779,7 +824,7 @@ s32 sub_800E52C(struct UnkStruct_8040094 *a0) curr->pos2.y += positions[i].y - 64; curr->unk14 = sub_800E750(a0->unk2, a0->unk0); curr->unk18 = 0xFFFF; - curr->spriteMasks = gUnknown_80B9C60; + curr->spriteMasks = sDefaultSpriteMasks; possibleRet = sub_800E208(1, curr); id = sub_800E2C0(possibleRet); if (id != -1) { @@ -806,7 +851,7 @@ s32 sub_800E52C(struct UnkStruct_8040094 *a0) .pos2 = a0->unk8, .unk14 = sub_800E750(a0->unk2, a0->unk0), .unk18 = 0xFFFF, - .spriteMasks = gUnknown_80B9C60, + .spriteMasks = sDefaultSpriteMasks, }; return sub_800E208(1, &sp); } @@ -861,7 +906,7 @@ s32 sub_800E710(s32 a0_, s32 a1) } // Literally the same as the func above. -s32 sub_800E750(s32 a0_, s32 a1) +static s32 sub_800E750(s32 a0_, s32 a1) { s32 i; s32 a0 = (s16) (a0_); @@ -894,26 +939,25 @@ s32 sub_800E790(s32 a0_, s32 a1) bool8 sub_800E7D0(u16 *param_1) { - int local_1c [4]; - bool8 flag; + s32 local_1c[4]; s32 index; + bool8 flag = FALSE; - flag = FALSE; local_1c[0] = sub_800ECB8(*param_1)->unk0; local_1c[1] = sub_800ECB8(*param_1)->unk2; local_1c[2] = sub_800ECB8(*param_1)->unk4; local_1c[3] = sub_800ECB8(*param_1)->unk6; - for(index = 0; index < 4; index++) - { + for (index = 0; index < 4; index++) { flag = (sub_800ECA4(local_1c[index])->animType == 4); - if(flag) break; + if (flag) + break; } return flag; } bool8 sub_800E838(u16 *param_1, s32 param_2) { - s32 local_1c [4]; + s32 local_1c[4]; local_1c[0] = sub_800ECB8(*param_1)->unk0; local_1c[1] = sub_800ECB8(*param_1)->unk2; @@ -941,7 +985,7 @@ void sub_800E8AC(s32 a0, DungeonPos *a1, DungeonPos *a2, s32 a3, unkStruct_2039D } } -s32 sub_800E900(s32 r0) +static s32 sub_800E900(s32 r0) { return sub_800ECA4(r0)->unk1c; } @@ -1048,3 +1092,125 @@ u8 sub_800EA44(unkStruct_800EA44 param_1, s32 param_2) return ret->unk10; } + +s32 sub_800EA84(struct UnkStruct_8040094 *a0) +{ + unkStruct_80416E0 sp = { + .unk0 = sub_800ECB8(a0->unk0)->unk0, + .unk4 = a0->unk10, + .dir = a0->unkC, + .pos1 = a0->unk4, + .pos2 = a0->unk8, + .unk14 = sub_800EBBC(sub_800ECB8(a0->unk0)->unk0), + .unk18 = 0xFFFF, + .spriteMasks = sDefaultSpriteMasks, + }; + return sub_800E208(5, &sp); +} + +UNUSED static void sub_800EAE4(s32 param_1, DungeonPos *param_2, DungeonPos *param_3) +{ + s32 idx = sub_800E2C0(param_1); + if (idx != -1) { + struct unkStruct_203B0CC_sub *a = &gUnknown_203B0CC->unk0[idx]; + a->unkC.pos1 = *param_2; + if (a->unkC.unk14 != -1) { + a->unkC.pos2 = *param_3; + } + else { + a->unkC.pos2.x = 0; + a->unkC.pos2.y = 0; + } + } +} + +void sub_800EB24(s32 param_1, DungeonPos *param_2, DungeonPos *param_3, s32 r5, s32 r4) +{ + s32 idx = sub_800E2C0(param_1); + if (idx != -1) { + struct unkStruct_203B0CC_sub *curStruct = &gUnknown_203B0CC->unk0[idx]; + if (curStruct->unkCC.x == 0 && curStruct->unkCC.y == 0) { + curStruct->unkC.pos1 = *param_2; + } + + if (curStruct->unk0 == 6) { + curStruct->unkC.unk18 = r5 + 1; + } + else if ((curStruct->unk8 % 8) == 0) { + s32 values[8] = {1, 1, 1, -1, -1, -1, 1, 1}; + curStruct->unkC.unk18 = r5 + values[r4 & 7]; + } + else { + curStruct->unkC.unk18 = r5 + 1; + } + + if (curStruct->unkC.unk14 != -1) { + curStruct->unkC.pos2 = *param_3; + } + else { + curStruct->unkC.pos2.x = 0; + curStruct->unkC.pos2.y = 0; + } + } +} + +static s32 sub_800EBBC(s32 param_1) +{ + unkStruct_80B9CC4 *ret = sub_800ECA4(param_1); + return ret->unk1c; +} + +s32 sub_800EBC8(struct UnkStruct_8040094 *a0) +{ + unkStruct_80416E0 sp = { + .unk0 = sub_800ECB8(a0->unk0)->unk4, + .unk4 = a0->unk10, + .dir = a0->unkC, + .pos1 = a0->unk4, + .pos2 = a0->unk8, + .unk14 = sub_800EC68(sub_800ECB8(a0->unk0)->unk4), + .unk18 = 0xFFFF, + .spriteMasks = sDefaultSpriteMasks, + }; + return sub_800E208(6, &sp); +} + +UNUSED static void sub_800EC28(u32 param_1, DungeonPos *param_2, DungeonPos *param_3) +{ + s32 idx = sub_800E2C0(param_1); + if (idx != -1) { + struct unkStruct_203B0CC_sub *struct203B0CC = &gUnknown_203B0CC->unk0[idx]; + + struct203B0CC->unkC.pos1 = *param_2; + if (struct203B0CC->unkC.unk14 != -1) { + struct203B0CC->unkC.pos2 = *param_3; + } + else { + struct203B0CC->unkC.pos2.x = 0; + struct203B0CC->unkC.pos2.y = 0; + } + } +} + +static s32 sub_800EC68(s32 param_1) +{ + unkStruct_80B9CC4 *ret = sub_800ECA4(param_1); + return ret->unk1c; +} + +u8 sub_800EC74(void) +{ + return sub_800F19C(1); +} + +u8 sub_800EC84(s32 param_1) +{ + unkStruct_80BDBC4 *ret = sub_800ECB8(param_1); + return ret->unk8; +} + +u8 sub_800EC94(s32 param_1) +{ + unkStruct_80BDBC4 *ret = sub_800ECB8(param_1); + return ret->unk9; +} diff --git a/src/code_800E9E4.c b/src/code_800E9E4.c index ccd26eee5..cb323fc01 100644 --- a/src/code_800E9E4.c +++ b/src/code_800E9E4.c @@ -1,18 +1,7 @@ #include "global.h" #include "structs/code_800E9E4.h" #include "code_800E9E4.h" -#include "code_800E9A8.h" -extern s32 sub_800E2C0(u32); -u32 sub_800F19C(s32); -s32 sub_800EBBC(s32); -s32 sub_800EC68(s32); - -extern struct unkStruct_203B0CC *gUnknown_203B0CC; - -extern unkStruct_80B9C60 gUnknown_80B9C60; - -extern s32 gUnknown_80B9C9C[8]; extern s16 gUnknown_80CE73C[20]; extern unkStruct_80CE37C gUnknown_80CE37C[1]; @@ -22,158 +11,6 @@ extern unkStruct_80B9CC4 gUnknown_80B9CC4[448]; extern unkStruct_80C183C gUnknown_80C183C[4336]; -unkStruct_80C183C *sub_800ECD0(s32 param_1); - - - - - -s32 sub_800E208(s32, unkStruct_800E208*); - -s32 sub_800EA84(s32 *param_1) -{ - unkStruct_800E208 stack[2]; - unkStruct_80BDBC4 *ret1; - u32 size; - ret1 = sub_800ECB8(param_1[0]); - - stack[1].unk00[0] = ret1->unk0; - stack[1].unk00[1] = param_1[4]; - stack[1].unk00[2] = param_1[3]; - stack[1].unk00[3] = param_1[1]; - stack[1].unk00[4] = param_1[2]; - - ret1 = sub_800ECB8(param_1[0]); - stack[1].unk00[5] = sub_800EBBC(ret1->unk0); - stack[1].unk00[6] = 0x0000ffff; - stack[1].unk1c = gUnknown_80B9C60; - - size = sizeof(unkStruct_800E208); - memcpy(&stack[0],&stack[1],size); - return sub_800E208(5, &stack[0]); -} - -UNUSED static void sub_800EAE4(s32 param_1, DungeonPos *param_2, DungeonPos *param_3) -{ - s32 idx = sub_800E2C0(param_1); - if (idx != -1) - { - struct unkStruct_203B0CC_sub *a; - a = &gUnknown_203B0CC->unk0[idx]; - a->unkC.pos1 = *param_2; - if (a->unkC.unk14 != -1) { - a->unkC.pos2 = *param_3; - } - else { - a->unkC.pos2.x = 0; - a->unkC.pos2.y = 0; - } - } -} - -void sub_800EB24(s32 param_1, DungeonPos *param_2, DungeonPos *param_3, s32 r5, s32 r4) -{ - s32 idx = sub_800E2C0(param_1); - if (idx != -1) { - struct unkStruct_203B0CC_sub *curStruct = &gUnknown_203B0CC->unk0[idx]; - if (curStruct->unkCC.x == 0 && curStruct->unkCC.y == 0) { - curStruct->unkC.pos1 = *param_2; - } - - if (curStruct->unk0 == 6) { - curStruct->unkC.unk18 = r5 + 1; - } - else if ((curStruct->unk8 % 8) == 0) { - s32 newStruct[8]; - memcpy(newStruct, gUnknown_80B9C9C, sizeof(s32) * 8); - curStruct->unkC.unk18 = r5 + newStruct[r4 & 7]; - } - else { - curStruct->unkC.unk18 = r5 + 1; - } - - if (curStruct->unkC.unk14 != -1) { - curStruct->unkC.pos2 = *param_3; - } - else { - curStruct->unkC.pos2.x = 0; - curStruct->unkC.pos2.y = 0; - } - } -} - -s32 sub_800EBBC(s32 param_1) -{ - unkStruct_80B9CC4 *ret = sub_800ECA4(param_1); - return ret->unk1c; -} - -s32 sub_800EBC8(s32 *param_1) -{ - unkStruct_800E208 stack[2]; - unkStruct_80BDBC4 *ret1; - u32 size; - ret1 = sub_800ECB8(param_1[0]); - - stack[1].unk00[0] = ret1->unk4; - stack[1].unk00[1] = param_1[4]; - stack[1].unk00[2] = param_1[3]; - stack[1].unk00[3] = param_1[1]; - stack[1].unk00[4] = param_1[2]; - - ret1 = sub_800ECB8(param_1[0]); - stack[1].unk00[5] = sub_800EC68(ret1->unk4); - stack[1].unk00[6] = 0x0000ffff; - stack[1].unk1c = gUnknown_80B9C60; - - size = sizeof(unkStruct_800E208); - memcpy(&stack[0],&stack[1],size); - return sub_800E208(6, &stack[0]); -} - -UNUSED static void sub_800EC28(u32 param_1, DungeonPos *param_2, DungeonPos *param_3) -{ - s32 idx; - idx = sub_800E2C0(param_1); - if (idx != -1) - { - struct unkStruct_203B0CC_sub *struct203B0CC; - struct203B0CC = &gUnknown_203B0CC->unk0[idx]; - struct203B0CC->unkC.pos1 = *param_2; - if (struct203B0CC->unkC.unk14 != -1) - { - struct203B0CC->unkC.pos2 = *param_3; - } - else - { - struct203B0CC->unkC.pos2.x = 0; - struct203B0CC->unkC.pos2.y = 0; - } - } -} - -s32 sub_800EC68(s32 param_1) -{ - unkStruct_80B9CC4 *ret = sub_800ECA4(param_1); - return ret->unk1c; -} - -u8 sub_800EC74(void) -{ - return sub_800F19C(1); -} - -u8 sub_800EC84(s32 param_1) -{ - unkStruct_80BDBC4 *ret = sub_800ECB8(param_1); - return ret->unk8; -} - -u8 sub_800EC94(s32 param_1) -{ - unkStruct_80BDBC4 *ret = sub_800ECB8(param_1); - return ret->unk9; -} // FILE SPLIT diff --git a/src/code_8041AD0.c b/src/code_8041AD0.c index e0e0636bf..5b3d7a90c 100644 --- a/src/code_8041AD0.c +++ b/src/code_8041AD0.c @@ -8,7 +8,6 @@ #include "structs/str_dungeon.h" #include "code_800558C.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "code_800ED38.h" #include "dungeon_vram.h" #include "code_803E724.h" @@ -38,7 +37,6 @@ extern const u8 *gPtrFeralFoundItemMessage[]; extern void sub_803ED30(u8, Entity *pokemon, u8, u8); extern u32 sub_806F62C(u32); -extern u32 sub_800DC9C(s32 a0); extern void PlaySoundEffect(u32); void EntityUpdateStatusSprites(Entity *entity); @@ -49,13 +47,11 @@ extern void sub_800DBBC(void); extern void sub_803EA10(void); extern void sub_8042E98(void); extern void sub_800EF28(u8); -extern u32 sub_800E448(u8, DungeonPos *); extern void sub_80429A0(Entity *); void sub_8042B34(s32 a0, s32 a1, s32 a2); extern bool8 sub_8042CC0(void); extern void sub_8042D7C(void); extern bool8 sub_8045888(Entity *); -extern u32 sub_800E49C(); extern void sub_800F15C(s32); extern void sub_800EF40(u8 r0, u8 r1); extern s32 sub_800E6D8(s32); @@ -1556,7 +1552,7 @@ void sub_8042B20(Entity *entity) sub_8042A84(0x1BC, entity, 0xE); } -static const unkStruct_2039DB0 gUnknown_80F683C = {0xFFFF, 0xFFFF, 0xFFFF, 0, 0, 0}; +static const unkStruct_2039DB0 gUnknown_80F683C = DEFAULT_UNK_2039DB0_MASKS; void sub_8042B34(s32 a0, s32 a1, s32 a2) { diff --git a/src/code_80848F0.c b/src/code_80848F0.c index 17b6328a8..75dccc19b 100644 --- a/src/code_80848F0.c +++ b/src/code_80848F0.c @@ -26,7 +26,6 @@ #include "math.h" #include "code_8004AA0.h" #include "bg_palette_buffer.h" -#include "code_800E9A8.h" #include "items.h" #include "code_800DAC0.h" #include "code_800ED38.h" @@ -1354,7 +1353,7 @@ u32 sub_8085EC8(s16 param_1,u32 param_2,u32 param_3,DungeonPos *param_4, bool32 local_40.pos2.x = 0; local_40.pos2.y = 0; local_40.unk18 = 0xffff; - local_40.spriteMasks = (unkStruct_2039DB0) {0xFFFF, 0xFFFF, 0xFFFF, 0, 0, 0}; + local_40.spriteMasks = DEFAULT_UNK_2039DB0_MASKS; uVar1 = sub_800E890(&local_40); if (param_5_bool8) { diff --git a/src/dungeon_cutscene_articuno.c b/src/dungeon_cutscene_articuno.c index 030dac008..2cfa63ddd 100644 --- a/src/dungeon_cutscene_articuno.c +++ b/src/dungeon_cutscene_articuno.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_celebi.c b/src/dungeon_cutscene_celebi.c index 105d5eafe..3e30ca0b1 100644 --- a/src/dungeon_cutscene_celebi.c +++ b/src/dungeon_cutscene_celebi.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_deoxys.c b/src/dungeon_cutscene_deoxys.c index 28a1bae1b..c0bbd885f 100644 --- a/src/dungeon_cutscene_deoxys.c +++ b/src/dungeon_cutscene_deoxys.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_empty_summit.c b/src/dungeon_cutscene_empty_summit.c index fee460b8b..d88aa534d 100644 --- a/src/dungeon_cutscene_empty_summit.c +++ b/src/dungeon_cutscene_empty_summit.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_entei.c b/src/dungeon_cutscene_entei.c index b37598b80..018612531 100644 --- a/src/dungeon_cutscene_entei.c +++ b/src/dungeon_cutscene_entei.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_groudon.c b/src/dungeon_cutscene_groudon.c index 5f875063b..8e2fc8696 100644 --- a/src/dungeon_cutscene_groudon.c +++ b/src/dungeon_cutscene_groudon.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_hooh.c b/src/dungeon_cutscene_hooh.c index 7df510bdc..31486e5f8 100644 --- a/src/dungeon_cutscene_hooh.c +++ b/src/dungeon_cutscene_hooh.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_jirachi.c b/src/dungeon_cutscene_jirachi.c index c0c2460cf..139989a63 100644 --- a/src/dungeon_cutscene_jirachi.c +++ b/src/dungeon_cutscene_jirachi.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_kyogre.c b/src/dungeon_cutscene_kyogre.c index cebe37fae..18a8df157 100644 --- a/src/dungeon_cutscene_kyogre.c +++ b/src/dungeon_cutscene_kyogre.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_latios.c b/src/dungeon_cutscene_latios.c index a10405104..f6985801c 100644 --- a/src/dungeon_cutscene_latios.c +++ b/src/dungeon_cutscene_latios.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_lugia.c b/src/dungeon_cutscene_lugia.c index e3de43bc0..9a27d92fd 100644 --- a/src/dungeon_cutscene_lugia.c +++ b/src/dungeon_cutscene_lugia.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_magma_cavern.c b/src/dungeon_cutscene_magma_cavern.c index 854e914ed..b7b60366f 100644 --- a/src/dungeon_cutscene_magma_cavern.c +++ b/src/dungeon_cutscene_magma_cavern.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_mankey.c b/src/dungeon_cutscene_mankey.c index e8451b11b..3fdc51517 100644 --- a/src/dungeon_cutscene_mankey.c +++ b/src/dungeon_cutscene_mankey.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_meanies.c b/src/dungeon_cutscene_meanies.c index 2e8b12e93..815b07721 100644 --- a/src/dungeon_cutscene_meanies.c +++ b/src/dungeon_cutscene_meanies.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_medicham.c b/src/dungeon_cutscene_medicham.c index be1f8c758..43aa9bdc1 100644 --- a/src/dungeon_cutscene_medicham.c +++ b/src/dungeon_cutscene_medicham.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_mewtwo.c b/src/dungeon_cutscene_mewtwo.c index 091c33581..bbf0f0a6a 100644 --- a/src/dungeon_cutscene_mewtwo.c +++ b/src/dungeon_cutscene_mewtwo.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_moltres.c b/src/dungeon_cutscene_moltres.c index 9b50096ca..c2399e3ee 100644 --- a/src/dungeon_cutscene_moltres.c +++ b/src/dungeon_cutscene_moltres.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_raikou.c b/src/dungeon_cutscene_raikou.c index 9d0866cbd..7b82200e1 100644 --- a/src/dungeon_cutscene_raikou.c +++ b/src/dungeon_cutscene_raikou.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_rayquaza.c b/src/dungeon_cutscene_rayquaza.c index 841fa688b..a0e8b9b4d 100644 --- a/src/dungeon_cutscene_rayquaza.c +++ b/src/dungeon_cutscene_rayquaza.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_regis.c b/src/dungeon_cutscene_regis.c index de00bedcf..3749c982d 100644 --- a/src/dungeon_cutscene_regis.c +++ b/src/dungeon_cutscene_regis.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_skarmory.c b/src/dungeon_cutscene_skarmory.c index aaf584dbe..fff15c183 100644 --- a/src/dungeon_cutscene_skarmory.c +++ b/src/dungeon_cutscene_skarmory.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_smeargle.c b/src/dungeon_cutscene_smeargle.c index 3048a0e30..76dec4ab6 100644 --- a/src/dungeon_cutscene_smeargle.c +++ b/src/dungeon_cutscene_smeargle.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_suicune.c b/src/dungeon_cutscene_suicune.c index 6f4f5a334..3777bd730 100644 --- a/src/dungeon_cutscene_suicune.c +++ b/src/dungeon_cutscene_suicune.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_cutscene_zapdos.c b/src/dungeon_cutscene_zapdos.c index d4d3a0d38..5c3b546a7 100644 --- a/src/dungeon_cutscene_zapdos.c +++ b/src/dungeon_cutscene_zapdos.c @@ -1,7 +1,6 @@ #include "global.h" #include "globaldata.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "dungeon_vram.h" #include "code_8041AD0.h" #include "code_804267C.h" diff --git a/src/dungeon_move.c b/src/dungeon_move.c index add3ac722..93726d78e 100644 --- a/src/dungeon_move.c +++ b/src/dungeon_move.c @@ -60,7 +60,6 @@ extern bool8 sub_8040BB0(Entity *entity, Move *move, bool8); extern void sub_8040DA0(Entity *entity, Move *move); extern u16 sub_80412E0(u16 moveId, u8 weather, u8 a2); extern void sub_800EF10(u16 r0); -extern s32 sub_800E710(s16 a0, u16 a1); extern void sub_800E3AC(s32 a0, DungeonPos *pos, s32 a2); extern void sub_8041168(Entity *entity, Entity *entity2, Move *,DungeonPos *); extern Entity *sub_80696A8(Entity *a0); diff --git a/src/dungeon_move_util.c b/src/dungeon_move_util.c index c3fbe7602..6f0dffd79 100644 --- a/src/dungeon_move_util.c +++ b/src/dungeon_move_util.c @@ -54,21 +54,10 @@ extern bool8 sub_8040BB0(Entity *entity, Move *move, bool8); extern void sub_8040DA0(Entity *entity, Move *move); extern u16 sub_80412E0(u16 moveId, u8 weather, u8 a2); extern void sub_800EF10(u16 r0); -extern s32 sub_800E710(s16 a0, u16 a1); extern void sub_800E3AC(s32 a0, DungeonPos *pos, s32 a2); extern void sub_8041168(Entity *entity, Entity *entity2, Move *,DungeonPos *); extern Entity *GetMonsterAtPos(DungeonPos *pos); extern s32 sub_800ED20(u16 param_1); -struct UnkStruct_sub_800E308_1 -{ - s16 unk0; - s16 unk2; - DungeonPos unk4; - DungeonPos unk8; - s32 unkC; - s32 unk10; -}; -extern s32 sub_800E308(struct UnkStruct_sub_800E308_1 *, DungeonPos *); static u8 ToItemID(u32 itemID); @@ -546,7 +535,7 @@ bool8 sub_8056468(Entity *entity, Move *move, const u8 *str, Entity **unkArray, s32 sub_8056564(Entity *entity, DungeonPos *pos, Move *move, s32 r4) { - struct UnkStruct_sub_800E308_1 unkSp1; + struct UnkStruct_8040094 unkSp1; DungeonPos unkSp2; EntityInfo *entInfo = GetEntInfo(entity); diff --git a/src/ground_sprite.c b/src/ground_sprite.c index de4fca3af..21ab80b66 100644 --- a/src/ground_sprite.c +++ b/src/ground_sprite.c @@ -791,7 +791,7 @@ bool8 sub_80A7094(struct UnkGroundSpriteStruct *ptr, PixelPos *r10, PixelPos *po ptr->unk58 = 0; } else if (ptr->unk5C == -1) { - unkStruct_2039DB0 unkSubStruct = {0xFFFF, 0xFFFF, 0xFFFF, 0, 0, 0}; + unkStruct_2039DB0 unkSubStruct = DEFAULT_UNK_2039DB0_MASKS; unkStruct_80416E0 unkStruct; sub_800EE5C(ptr->unk58); diff --git a/src/run_dungeon.c b/src/run_dungeon.c index 32ad3ff80..63f038ef9 100644 --- a/src/run_dungeon.c +++ b/src/run_dungeon.c @@ -11,7 +11,6 @@ #include "code_800558C.h" #include "graphics_memory.h" #include "code_800DAC0.h" -#include "code_800E9A8.h" #include "code_800E9E4.h" #include "code_800ED38.h" #include "code_803D110.h"