This commit is contained in:
Donkey Kong 2023-04-28 18:05:52 +09:30
parent 6a40f3b401
commit 412c7eda16
8 changed files with 356 additions and 60 deletions

View File

@ -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)

View File

@ -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

1 version section function length matching
1375 us .code func_806E7C70 388 no
1376 us .code func_8070DC40 100 no
1377 us .code func_806A6468 268 no
1378 us .code func_806F386C 228 no yes
1379 us .code func_8065D170 60 yes
1380 us .code func_80692520 32 yes
1381 us .code func_806C7C10 132 yes
1750 us .code func_80601224 52 yes
1751 us .code func_80733A88 256 no
1752 us .code func_80641B00 204 no
1753 us .code func_806F3BEC 452 no yes
1754 us .code func_8070943C 40 yes
1755 us .code func_8067E43C 152 no
1756 us .code func_80639968 668 no
2894 us .code func_8064774C 232 no
2895 us .code func_8064EAB4 136 yes
2896 us .code func_80651B64 92 yes
2897 us .code func_806F39E8 516 no yes
2898 us .code func_806DC410 1644 no
2899 us .code func_8064A180 20 yes
2900 us .code func_806CF580 760 no
2947 us .code func_80605510 744 no
2948 us .code func_806FD9FC 144 no
2949 us .code func_8071B44C 212 no
2950 us .code func_806F2A40 520 no yes
2951 us .code func_806764D8 104 yes
2952 us .code func_80672328 632 no
2953 us .code func_80714660 8 yes

View File

@ -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

1 version section function length matching
1375 us .code func_806E7C70 388 no
1376 us .code func_8070DC40 100 no
1377 us .code func_806A6468 268 no
1378 us .code func_806F386C 228 no yes
1379 us .code func_8065D170 60 yes
1380 us .code func_80692520 32 yes
1381 us .code func_806C7C10 132 yes
1750 us .code func_80601224 52 yes
1751 us .code func_80733A88 256 no
1752 us .code func_80641B00 204 no
1753 us .code func_806F3BEC 452 no yes
1754 us .code func_8070943C 40 yes
1755 us .code func_8067E43C 152 no
1756 us .code func_80639968 668 no
2894 us .code func_8064774C 232 no
2895 us .code func_8064EAB4 136 yes
2896 us .code func_80651B64 92 yes
2897 us .code func_806F39E8 516 no yes
2898 us .code func_806DC410 1644 no
2899 us .code func_8064A180 20 yes
2900 us .code func_806CF580 760 no
2947 us .code func_80605510 744 no
2948 us .code func_806FD9FC 144 no
2949 us .code func_8071B44C 212 no
2950 us .code func_806F2A40 520 no yes
2951 us .code func_806764D8 104 yes
2952 us .code func_80672328 632 no
2953 us .code func_80714660 8 yes

View File

@ -17,7 +17,7 @@
<text x="38.5" y="14">global_asm</text>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="111.5" y="15" fill="#010101" fill-opacity=".3">18.2520%</text>
<text x="110.5" y="14">18.2520%</text>
<text x="111.5" y="15" fill="#010101" fill-opacity=".3">18.3914%</text>
<text x="110.5" y="14">18.3914%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -17,7 +17,7 @@
<text x="66.0" y="14">Donkey Kong 64 (US)</text>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">18.5092%</text>
<text x="165.5" y="14">18.5092%</text>
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">18.6134%</text>
<text x="165.5" y="14">18.6134%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -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;

View File

@ -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;

View File

@ -244,3 +244,4 @@ D_80758E60 = 0x80758E60;
D_807505B0 = 0x807505B0;
D_807503F0 = 0x807503F0;
D_8075A220 = 0x8075A220;
D_8075D798 = 0x8075D798;