mirror of
https://gitlab.com/dk64_decomp/dk64.git
synced 2024-11-23 07:01:58 +00:00
18.6134%
This commit is contained in:
parent
6a40f3b401
commit
412c7eda16
@ -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)
|
||||
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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 |
@ -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 |
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -244,3 +244,4 @@ D_80758E60 = 0x80758E60;
|
||||
D_807505B0 = 0x807505B0;
|
||||
D_807503F0 = 0x807503F0;
|
||||
D_8075A220 = 0x8075A220;
|
||||
D_8075D798 = 0x8075D798;
|
||||
|
Loading…
Reference in New Issue
Block a user