diff --git a/include/code_800E9E4.h b/include/code_800E9E4.h index 1bb1acfea..7cdfae283 100644 --- a/include/code_800E9E4.h +++ b/include/code_800E9E4.h @@ -4,11 +4,18 @@ typedef struct unkStruct_80B9CC4 { // size: 0x24 - s32 unk0; - s32 unk4; - u8 fill8[0x1c - 0x8]; + u32 animType; + s32 effectId; + s32 unk8; + s32 animId; + s32 unk10; + s32 unk14; + s8 unk18; + // padding: 3 bytes s32 unk1c; - u8 fill20[0x24 - 0x20]; + s8 unk20; + s8 loop; + // padding: 2 bytes } unkStruct_80B9CC4; typedef struct unkStruct_80BDBC4 diff --git a/src/code_800ED38.c b/src/code_800ED38.c index 9d85bf867..450577dd2 100644 --- a/src/code_800ED38.c +++ b/src/code_800ED38.c @@ -123,12 +123,15 @@ void sub_800EE5C(s32 r0) ret = sub_800ECA4(r0); if(r0 != 0) { - if((u32)(ret->unk0 - 1) > 1) - { - file = sub_800F1C0(ret->unk0, ret->unk4); + switch (ret->animType - 1) { + case 1 - 1: + case 2 - 1: + return; + default: + file = sub_800F1C0(ret->animType, ret->effectId); if(file) { - ret2 = sub_800F0F4(ret->unk0, ret->unk4); + ret2 = sub_800F0F4(ret->animType, ret->effectId); if(ret2 == -1) { sub_800F204(file); @@ -138,12 +141,11 @@ void sub_800EE5C(s32 r0) { sub_800F13C(ret2, file, ret); sub_800EDF0(ret2, (void *)file); - } else { sub_800F204(file); } - sub_800F15C(ret->unk4); + sub_800F15C(ret->effectId); } } } diff --git a/src/code_8042B34.c b/src/code_8042B34.c index 5425d6944..6e91388b9 100644 --- a/src/code_8042B34.c +++ b/src/code_8042B34.c @@ -108,7 +108,7 @@ void sub_8042B34(s32 a0, s32 a1, s32 a2) r8 = 0; } - sub_800F15C(sub_800ECA4(spStruct.unk0)->unk4); + sub_800F15C(sub_800ECA4(spStruct.unk0)->effectId); } }