diff --git a/include/structs.h b/include/structs.h index 66010fe..3536117 100644 --- a/include/structs.h +++ b/include/structs.h @@ -606,8 +606,13 @@ typedef struct player_additional_actor_data { s16 unk10; // Used s16 unk12; // Used s16 unk14; // Used - s8 unk16; - s8 unk17; // Used, set to current file selection? + union { + struct { + s8 unk16_s8; + s8 unk17; // Used, set to current file selection? + }; + s16 unk16; + }; u16 unk18; // Used u16 unk1A; f32 unk1C; // Used @@ -826,6 +831,9 @@ typedef struct player_additional_actor_data { u16 unk24C; // Used // TODO: s16? func_806CA1B4 uses this as u16 u16 unk24E; // Used // TODO: s16? func_806CA1B4 uses this as u16 s32 unk250; + s32 unk254; + f32 unk258; // Used + f32 unk25C; // Used } PlayerAdditionalActorData; //f32 at unk8 doesn't match with what's in structs.h (s16) diff --git a/progress/progress.global_asm.csv b/progress/progress.global_asm.csv index 041b5da..2854011 100644 --- a/progress/progress.global_asm.csv +++ b/progress/progress.global_asm.csv @@ -1375,7 +1375,7 @@ us,.code,func_806C90C4,512,yes us,.code,func_806E7C70,388,no us,.code,func_8070DC40,100,no us,.code,func_806A6468,268,no -us,.code,func_806F386C,228,no +us,.code,func_806F386C,228,yes us,.code,func_8065D170,60,yes us,.code,func_80692520,32,yes us,.code,func_806C7C10,132,yes @@ -1750,7 +1750,7 @@ us,.code,func_806B7660,68,yes us,.code,func_80601224,52,yes us,.code,func_80733A88,256,no us,.code,func_80641B00,204,no -us,.code,func_806F3BEC,452,no +us,.code,func_806F3BEC,452,yes us,.code,func_8070943C,40,yes us,.code,func_8067E43C,152,no us,.code,func_80639968,668,no @@ -2894,7 +2894,7 @@ us,.code,func_806EC8C4,208,no us,.code,func_8064774C,232,no us,.code,func_8064EAB4,136,yes us,.code,func_80651B64,92,yes -us,.code,func_806F39E8,516,no +us,.code,func_806F39E8,516,yes us,.code,func_806DC410,1644,no us,.code,func_8064A180,20,yes us,.code,func_806CF580,760,no @@ -2947,7 +2947,7 @@ us,.code,func_80737F40,152,no us,.code,func_80605510,744,no us,.code,func_806FD9FC,144,no us,.code,func_8071B44C,212,no -us,.code,func_806F2A40,520,no +us,.code,func_806F2A40,520,yes us,.code,func_806764D8,104,yes us,.code,func_80672328,632,no us,.code,func_80714660,8,yes diff --git a/progress/progress.total.csv b/progress/progress.total.csv index 9cecc55..385ee4e 100644 --- a/progress/progress.total.csv +++ b/progress/progress.total.csv @@ -1375,7 +1375,7 @@ us,.code,func_806C90C4,512,yes us,.code,func_806E7C70,388,no us,.code,func_8070DC40,100,no us,.code,func_806A6468,268,no -us,.code,func_806F386C,228,no +us,.code,func_806F386C,228,yes us,.code,func_8065D170,60,yes us,.code,func_80692520,32,yes us,.code,func_806C7C10,132,yes @@ -1750,7 +1750,7 @@ us,.code,func_806B7660,68,yes us,.code,func_80601224,52,yes us,.code,func_80733A88,256,no us,.code,func_80641B00,204,no -us,.code,func_806F3BEC,452,no +us,.code,func_806F3BEC,452,yes us,.code,func_8070943C,40,yes us,.code,func_8067E43C,152,no us,.code,func_80639968,668,no @@ -2894,7 +2894,7 @@ us,.code,func_806EC8C4,208,no us,.code,func_8064774C,232,no us,.code,func_8064EAB4,136,yes us,.code,func_80651B64,92,yes -us,.code,func_806F39E8,516,no +us,.code,func_806F39E8,516,yes us,.code,func_806DC410,1644,no us,.code,func_8064A180,20,yes us,.code,func_806CF580,760,no @@ -2947,7 +2947,7 @@ us,.code,func_80737F40,152,no us,.code,func_80605510,744,no us,.code,func_806FD9FC,144,no us,.code,func_8071B44C,212,no -us,.code,func_806F2A40,520,no +us,.code,func_806F2A40,520,yes us,.code,func_806764D8,104,yes us,.code,func_80672328,632,no us,.code,func_80714660,8,yes diff --git a/progress/progress_global_asm.svg b/progress/progress_global_asm.svg index 3cab847..9c5ce35 100644 --- a/progress/progress_global_asm.svg +++ b/progress/progress_global_asm.svg @@ -17,7 +17,7 @@ global_asm - 18.2520% - 18.2520% + 18.3914% + 18.3914% \ No newline at end of file diff --git a/progress/progress_total.svg b/progress/progress_total.svg index 6db6ef9..d74c6ca 100644 --- a/progress/progress_total.svg +++ b/progress/progress_total.svg @@ -17,7 +17,7 @@ Donkey Kong 64 (US) - 18.5092% - 18.5092% + 18.6134% + 18.6134% \ No newline at end of file diff --git a/src/bonus/code_2690.c b/src/bonus/code_2690.c index 1db84ad..045a8d1 100644 --- a/src/bonus/code_2690.c +++ b/src/bonus/code_2690.c @@ -101,16 +101,92 @@ void func_80690A28(s32, s32, f32, f32, f32, f32, f32, Actor *); extern f32 D_8002DD28; void func_800274A0(f32 arg0, f32 arg1, f32 arg2) { - Actor *temp_v0; - playSound(0x59, 0x7FFF, 63.0f, 1.0f, 0x1E, 0); - temp_v0 = current_actor_pointer; - func_806907F0(temp_v0->x_position, temp_v0->y_position - 10.0f, temp_v0->z_position); + func_806907F0(current_actor_pointer->x_position, current_actor_pointer->y_position - 10.0f, current_actor_pointer->z_position); func_80690A28(0x23, 1, 0.6f, arg0, arg1, arg2, D_8002DD28, current_actor_pointer); } #pragma GLOBAL_ASM("asm/nonmatchings/bonus/code_2690/func_80027548.s") +extern f64 D_8002DD30; +extern f64 D_8002DD38; +extern u16 D_807FD63C; + +typedef struct { + s32 unk0; + s32 unk4[1]; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + u8 unk18[1]; // Used + u8 unk19; + u8 unk1A; + u8 unk1B; + s16 unk1C; + s16 unk1E; // Used + s16 unk20; // Used + u8 unk22; // Used + u8 unk23; // Used + s16 unk24; + s8 unk26; // Used + s8 unk27; + s32 unk28; + s32 unk2C; +} AAD_80027548; + +f32 func_80611BB4(f32, f32); + +void func_80626F8C(f32, f32, f32, f32*, f32*, s32, f32, s32); +f32 func_8000AC60(f32); + +/* +// TODO: Very close, only thing left is the stack +u8 func_80027548(f32 arg0, f32 arg1, f32 arg2) { + f32 temp_f0; + f32 temp_f2; + s16 i; + f32 sp50; + f32 sp4C; + AAD_80027548 *aaD; + u8 sp40; + + aaD = current_actor_pointer->additional_actor_data; + sp40 = 0; + aaD->unk26 = 1; + func_80626F8C(arg0, arg1, arg2, &sp50, &sp4C, 0, 4.0f, 0); + aaD->unk1E = sp50; + aaD->unk20 = sp4C; + current_actor_pointer->y_rotation = func_806CC190(current_actor_pointer->y_rotation, func_80665DE0(arg0, arg2, current_actor_pointer->x_position, current_actor_pointer->z_position), 10.0f); + temp_f0 = current_actor_pointer->x_position - arg0; + temp_f2 = current_actor_pointer->z_position - arg2; + current_actor_pointer->z_rotation = func_806CC190(current_actor_pointer->z_rotation, ((func_80611BB4(current_actor_pointer->y_position - arg1, func_8000AC60((temp_f0 * temp_f0) + (temp_f2 * temp_f2))) * 2048.0) / D_8002DD30) + D_8002DD38, 5.0f); + if ((D_807FD63C & 0xE000) && (current_actor_pointer->control_state == 0)) { + sp40 = 1; + if (aaD->unk22 != 0) { + if ((aaD->unk23 != 0) && (aaD->unk18[0] == 0)) { + func_800274A0(arg0, arg1, arg2); + aaD->unk23--; + func_80715908(aaD->unk4[aaD->unk23]); + func_8060E7EC(0, 0xFF, 3); + aaD->unk4[aaD->unk23] = 0; + for (i = 0; i < aaD->unk23; i++) { + aaD->unk18[i] = 0xA; + } + } else if ((aaD->unk23 == 0) && (current_actor_pointer->control_state_progress == 0)) { + sp40 = 2; + current_actor_pointer->control_state_progress = 1; + } + } else if (aaD->unk23 < 5) { + aaD->unk23 = 5; + func_8002733C(aaD); + current_actor_pointer->control_state_progress = 0; + } + } + return sp40; +} +*/ + #pragma GLOBAL_ASM("asm/nonmatchings/bonus/code_2690/func_800277F8.s") typedef struct { @@ -166,7 +242,6 @@ typedef struct { u8 func_80027548(f32 arg0, f32 arg1, f32 arg2); u8 func_806FDB8C(s16, s32, s32, f32, f32, f32); void func_8061C464(Actor*, Actor*, s32, s32, s32, s32, s32, s32, s32, s32, f32); -f32 func_80611BB4(f32, f32); /* // TODO: Good progress made, doable @@ -384,16 +459,46 @@ void func_800284C0(void) { #pragma GLOBAL_ASM("asm/nonmatchings/bonus/code_2690/func_80028648.s") +typedef struct { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s16 unk18; + u8 unk1A; + u8 unk1B; // Used + u8 unk1C; // Used +} ARG0_80028648; + +typedef struct { + Actor* unk0; // Used + s32 unk4; + s32 unk8; + s32 unkC; + u8 unk10; + u8 unk11; // Used +} AAD_80028648; + +typedef struct { + Actor* unk0; // Used + s16 unk4; + s8 unk6; // Used + s8 unk7; + s16 unk8; // Used +} AAD_80028648_2; + /* -// TODO: Needs some structs -void func_80028648(void *arg0) { +// TODO: Pretty close +void func_80028648(ARG0_80028648 *arg0) { Actor *temp_s5; Actor *temp_v0; s32 i; u8 temp_v1; - void *temp_s2; + AAD_80028648 *temp_s2; Struct807F5FD4 *temp_s3; - void *temp_v0_2; + AAD_80028648_2 *temp_v0_2; for (i = 1; i < 7; i++) { if (func_80677FA8(0x12C, 0x15) != 0) { @@ -407,7 +512,7 @@ void func_80028648(void *arg0) { D_807FBB44->z_position = temp_s3->unk8; D_807FBB44->object_properties_bitfield |= 0x1000; D_807FBB44->y_rotation = 0x800; - arg0[i]->unk-4 = D_807FBB44; + arg0[i].unk0 = D_807FBB44; if (func_80677FA8(0x12D, 0x16) != 0) { temp_v0_2 = D_807FBB44->additional_actor_data; temp_v0_2->unk0 = D_807FBB44; diff --git a/src/global_asm/code_F56F0.c b/src/global_asm/code_F56F0.c index 5b20488..9237ac6 100644 --- a/src/global_asm/code_F56F0.c +++ b/src/global_asm/code_F56F0.c @@ -392,9 +392,58 @@ f32 func_806F1B90(f32 *arg0, f32 arg1) { #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_F56F0/func_806F2754.s") -#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_F56F0/func_806F2A40.s") +extern f64 D_8075D778; +extern f64 D_8075D780; +extern f32 D_8075D788; -#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_F56F0/func_806F2C48.s") +typedef struct { + s8 unk0; + u8 unk1; + u16 unk2; + u16 unk4; + s16 unk6; +} Struct806F2754; + +f32 func_80611BB4(f32, f32); + +/* +// TODO: Very close +void func_806F2754(Actor *arg0, Struct806F2754 *arg1, s32 *arg2) { + f32 dz; + s16 sp1A; + f32 temp_f0_2; + f32 dx; + s16 temp_t8; + s32 var_v0; + + dz = character_change_array[cc_player_index].look_at_eye_z - character_change_array[cc_player_index].look_at_at_z; + dx = character_change_array[cc_player_index].look_at_eye_x - character_change_array[cc_player_index].look_at_at_x; + sp1A = (arg0->PaaD->unk104->PaaD->unkB2 - arg0->y_rotation) - 0x800; + temp_f0_2 = func_80611BB4(character_change_array[cc_player_index].look_at_eye_y - character_change_array[cc_player_index].look_at_at_y, sqrtf((dz * dz) + (dx * dx))); + temp_t8 = sp1A & 0xFFF; + var_v0 = temp_t8; + if ((temp_t8 < 0xC00) && (temp_t8 >= 0x801)) { + var_v0 = 0xC00; + arg0->y_rotation = (arg0->y_rotation + temp_t8) - 0xC00; + } else if ((var_v0 >= 0x401) && (var_v0 < 0x800)) { + arg0->y_rotation = (arg0->y_rotation + var_v0) - 0x400; + var_v0 = 0x400; + } + arg1[*arg2].unk0 = -0x80; + arg1[*arg2].unk1 = 2; + arg1[*arg2].unk4 = (var_v0 / D_8075D780) * D_8075D778; + arg1[*arg2].unk2 = (temp_f0_2 / D_8075D788) * D_8075D778; + arg1[*arg2].unk6 = 0; + *arg2 += 1; +} +*/ + +extern f32 D_8075D78C; +extern f64 D_8075D790; +extern f32 D_8075D798; +extern f64 D_8075D7A0; +extern f64 D_8075D7A8; +extern f64 D_8075D7B0; typedef struct { u8 unk0; @@ -406,6 +455,117 @@ typedef struct { f32 unkC; } Struct806F2EDC; +void func_806F2A40(Actor *arg0, Struct806F2EDC *arg1, s32 *arg2) { + f32 var_f0; + f32 var_f12; + f32 var_f2; + f32 var_f6; + u8 temp_a0; + + var_f0 = extra_player_info_pointer->unk21E * D_8075D78C; + if (var_f0 < D_8075D790) { + var_f0 = D_8075D798; + } + switch (arg0->control_state) { + case 0x34: + case 0x84: + if (D_8075D7A0 < extra_player_info_pointer->unk25C) { + extra_player_info_pointer->unk258 = extra_player_info_pointer->unk258 * D_8075D7A8; + extra_player_info_pointer->unk25C = extra_player_info_pointer->unk25C * D_8075D7B0; + } else { + arg0->object_properties_bitfield &= 0xFFFF7FFF; + if (extra_player_info_pointer->unk21E != 0) { + extra_player_info_pointer->unk21E--; + } + arg0->shadow_opacity = 255.0f * var_f0; + } + var_f2 = extra_player_info_pointer->unk258; + var_f12 = extra_player_info_pointer->unk25C; + break; + default: + var_f12 = var_f0; + var_f2 = var_f0; + if (extra_player_info_pointer->unk21E < 0x1E) { + arg0->object_properties_bitfield |= 0x8000; + extra_player_info_pointer->unk21E += MIN(2,0x1E - extra_player_info_pointer->unk21E);; + extra_player_info_pointer->unk258 = 1.0f; + extra_player_info_pointer->unk25C = extra_player_info_pointer->unk258; + } + break; + } + arg1[*arg2].unk0 = 0; + arg1[*arg2].unk1 = 0xFF; + arg1[*arg2].unk4 = var_f2; + arg1[*arg2].unk8 = var_f12; + arg1[*arg2].unkC = var_f2; + *arg2 += 1; +} + +#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_F56F0/func_806F2C48.s") + +typedef struct { + u8 unk0; + u8 unk1; + s16 unk2; + s16 unk4; + s16 unk6; +} Struct806F2C48; + +/* +// TODO: Quite close +void func_806F2C48(Actor *arg0, Struct806F2C48 *arg1, s32 *arg2) { + f32 temp_f0; + f32 temp_f12; + s32 var_a3; + s8 temp_lo; + s32 var_v0; + s16 sp28; + u32 sp24; + + var_a3 = *arg2; + if (arg0->unk6A & 1) { + extra_player_info_pointer->unk16 += 2; + if (extra_player_info_pointer->unk16 >= 0x80) { + extra_player_info_pointer->unk16 = 0x7F; + } + } else { + extra_player_info_pointer->unk16 -= 2; + if (extra_player_info_pointer->unk16 < 0) { + extra_player_info_pointer->unk16 = 0; + } + } + if (extra_player_info_pointer->unk16 != 0) { + var_v0 = (0x400 - arg0->unkDE) & 0xFFF; + if (var_v0 >= 0x156) { + var_v0 = 0x155; + } + sp28 = func_806CC10C(arg0->y_rotation, (arg0->unkDC - 0x800) & 0xFFF); + sp24 = var_v0 * 0x10; + temp_f12 = func_80612790(sp28) * sp24; + temp_f0 = -func_80612794(sp28) * sp24; + temp_lo = (extra_player_info_pointer->unk16 * 6) / 10; + if (temp_lo != 0) { + arg1[var_a3].unk1 = 1; + arg1[var_a3].unk4 = 0; + arg1[var_a3].unk0 = temp_lo; + arg1[var_a3].unk2 = temp_f12; + arg1[var_a3].unk6 = temp_f0; + var_a3 += 1; + } + temp_lo = (extra_player_info_pointer->unk16 * 3) / 10; + if (temp_lo != 0) { + arg1[var_a3].unk1 = 2; + arg1[var_a3].unk4 = 0; + arg1[var_a3].unk0 = temp_lo; + arg1[var_a3].unk2 = temp_f12; + arg1[var_a3].unk6 = temp_f0; + var_a3 += 1; + } + } + *arg2 = var_a3; +} +*/ + void func_806F2EDC(s32 arg0, Struct806F2EDC *arg1, s32 *arg2, u8 arg3, u8 arg4, f32 arg5, f32 arg6) { f32 temp_f0; @@ -522,11 +682,26 @@ void func_806F37BC(Actor *arg0, Struct806F37BC *arg1) { void func_806F386C(u8, Actor*, Actor*, s16, u8); -#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_F56F0/func_806F386C.s") +typedef struct { + s16 unk0; // Used, X Position + s16 unk2; // Used, Y Position + s16 unk4; // Used, Z Position + s16 unk6; + u8 unk8; + u8 unk9; // Used + u8 unkA; + u8 unkB; + u8 unkC; + u8 unkD; + u8 unkE; + u8 unkF; + u8 unk10; + u8 unk11; +} Struct80753E90_unk4; typedef struct { s16 unk0; - s32 unk4; + Struct80753E90_unk4 *unk4; } Struct80753E90_2; // TODO: Same as GlobalASMStruct75? @@ -545,8 +720,6 @@ extern s16 D_807FD714; extern s16 D_807FD718; extern Actor *D_807FD71C; -/* -// TODO: Close void func_806F386C(u8 arg0, Actor *arg1, Actor *arg2, s16 arg3, u8 arg4) { PlayerAdditionalActorData *temp_v0; @@ -557,7 +730,7 @@ void func_806F386C(u8 arg0, Actor *arg1, Actor *arg2, s16 arg3, u8 arg4) { D_807FD710 = arg1; temp_v0->unk1F0 &= ~1; D_807FD714 = 0; - D_807FD708 = D_80753E90[arg0].unk4; + D_807FD708 = &D_80753E90->unk4[arg0]; D_807FD70C = D_807FD708->unk4; D_807FD718 = arg3; D_807FD71C = arg2; @@ -566,7 +739,6 @@ void func_806F386C(u8 arg0, Actor *arg1, Actor *arg2, s16 arg3, u8 arg4) { } } } -*/ typedef struct { s16 unk0; @@ -594,57 +766,67 @@ void func_806F397C(Actor *arg0, Actor *arg1, s16 arg2, s16 arg3) { D_807FD716 = 0; } -#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_F56F0/func_806F39E8.s") +extern f64 D_8075D810; +extern f64 D_8075D818; +extern f64 D_8075D820; +extern f64 D_8075D828; -#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_F56F0/func_806F3BEC.s") +void func_80611690(void*); + +void func_806F39E8(Actor *arg0, ExitData *arg1, u8 arg2) { + Struct80753E90_unk4 *temp_v0_2; + Struct80753E90_unk4 *temp; + Struct80753E90_2 *temp_v1; + + temp_v1 = &D_80753E90->unk4[D_80753E90->unk0]; + temp_v1->unk0 = 2; + temp_v1->unk4 = malloc(0x24); + func_80611690(temp_v1->unk4); + temp = &temp_v1->unk4[1]; + temp_v0_2 = temp_v1->unk4; + temp_v0_2->unk0 = arg1->x_pos; + temp_v0_2->unk2 = arg1->y_pos; + temp_v0_2->unk4 = arg1->z_pos; + temp_v0_2->unk9 = 0x32; + temp->unk0 = (func_80612794((arg1->angle / D_8075D810) * D_8075D818) * arg2) + arg1->x_pos; + temp->unk2 = arg1->y_pos; + temp->unk4 = (func_80612790((arg1->angle / D_8075D820) * D_8075D828) * arg2) + arg1->z_pos; + temp->unk9 = 0x32; + func_806F386C(D_80753E90->unk0, arg0, 0, 0, 0); + D_807FD716 = 0; + global_properties_bitfield |= 0x400; +} f32 func_80612794(s16); -typedef struct { - s16 unk0; // X Position - s16 unk2; // Y Position - s16 unk4; // Z Position - s16 unk6; - u8 unk8; - u8 unk9; // Used -} Struct806F3BEC; - -/* void func_806F3BEC(Actor *arg0, s16 arg1, s16 arg2, u8 arg3) { + Struct80753E90_unk4 *temp_v0_2; s16 sp3A; - f32 temp_f0; - f32 temp_f16; + Struct80753E90_unk4 *temp_t0; Struct80753E90_2 *temp_a1; - Struct806F3BEC *temp_t0; - void *temp_v0; - Struct806F3BEC *temp_v0_2; sp3A = func_80665DE0(arg1, arg2, arg0->x_position, arg0->z_position); - temp_a1 = &D_80753E90[0].unk4[D_80753E90[0].unk0]; + temp_a1 = &D_80753E90->unk4[D_80753E90->unk0]; if (arg0->control_state != 0x44) { temp_a1->unk0 = 2; - temp_v0 = malloc(0x24); - temp_a1->unk4 = temp_v0; - func_80611690(temp_v0); + temp_a1->unk4 = malloc(0x24); + func_80611690(temp_a1->unk4); + temp_t0 = &temp_a1->unk4[1]; temp_v0_2 = temp_a1->unk4; - temp_t0 = temp_v0_2 + 0x12; temp_v0_2->unk0 = arg0->x_position; temp_v0_2->unk2 = arg0->y_position; temp_v0_2->unk4 = arg0->z_position; temp_v0_2->unk9 = 0x28; - temp_f0 = func_80612794(sp3A); - temp_t0->unk0 = (temp_f0 * arg3) + arg0->x_position; + temp_t0->unk0 = (func_80612794(sp3A) * arg3) + arg0->x_position; temp_t0->unk2 = arg0->y_position; - temp_f16 = func_80612790(sp3A) * arg3; - temp_t0->unk4 = temp_f16 + arg0->z_position; + temp_t0->unk4 = (func_80612790(sp3A) * arg3) + arg0->z_position; temp_t0->unk9 = 0x28; - func_806F386C(D_80753E90[0].unk0, arg0, 0, 0, 0); + func_806F386C(D_80753E90->unk0, arg0, 0, 0, 0); D_807FD716 = 0; global_properties_bitfield |= 0x400; } } -*/ void func_806F3DB0(void) { D_807FD716 |= 2; diff --git a/symbol_addrs.global_asm.us.txt b/symbol_addrs.global_asm.us.txt index ad71756..c223dfe 100644 --- a/symbol_addrs.global_asm.us.txt +++ b/symbol_addrs.global_asm.us.txt @@ -244,3 +244,4 @@ D_80758E60 = 0x80758E60; D_807505B0 = 0x807505B0; D_807503F0 = 0x807503F0; D_8075A220 = 0x8075A220; +D_8075D798 = 0x8075D798;