This commit is contained in:
Donkey Kong 2023-05-24 03:52:09 +09:30
parent 0f90cf30ad
commit 22e735d8d5
24 changed files with 249 additions and 59 deletions

View File

@ -35,6 +35,8 @@ void func_80629174(void);
void func_80729B00(void);
void func_80665564(Actor *arg0, f32 arg1);
s16 func_80665DE0(f32, f32, f32, f32);
// TODO: Figure out why adding this here causes func_806CF42C to not match

View File

@ -1127,7 +1127,7 @@ struct actor {
u16 unk68;
u16 unk6A; // is_grounded?
u16 unk6C;
s16 unk6E;
s16 unk6E[1]; // TODO: How many elements?
s16 unk70;
u16 unk72;
f32 unk74;

View File

@ -73,7 +73,7 @@ us,.code,func_8063D1D8,176,yes
us,.code,func_8063D494,16,yes
us,.code,func_8063BBB0,784,no
us,.code,func_80650BBC,108,yes
us,.code,func_80605314,108,no
us,.code,func_80605314,108,yes
us,.code,func_806C1CCC,376,yes
us,.code,func_8062D2AC,68,yes
us,.code,func_80662110,72,yes
@ -2111,7 +2111,7 @@ us,.code,func_80726E60,128,yes
us,.code,func_80737CF4,312,yes
us,.code,func_806E709C,404,yes
us,.code,setFlag,288,yes
us,.code,func_80600C68,232,no
us,.code,func_80600C68,228,yes
us,.code,func_806EAC8C,48,yes
us,.code,func_80691930,176,yes
us,.code,func_80644EC8,504,no
@ -2757,7 +2757,7 @@ us,.code,func_807007B8,572,no
us,.code,func_80678B04,184,yes
us,.code,func_80627C5C,588,no
us,.code,func_8066EC6C,484,no
us,.code,func_806085DC,144,no
us,.code,func_806085DC,144,yes
us,.code,func_806011E4,64,yes
us,.code,func_806D37CC,224,yes
us,.code,func_80631F58,84,no
@ -2928,7 +2928,7 @@ us,.code,func_806761D0,28,yes
us,.code,func_806E9804,112,yes
us,.code,func_806D5B44,392,yes
us,.code,func_8060A500,268,no
us,.code,func_80600B10,172,no
us,.code,func_80600B10,172,yes
us,.code,func_80634E10,148,yes
us,.code,func_806C7228,8,yes
us,.code,func_80645D14,556,no
@ -2947,7 +2947,7 @@ us,.code,func_8066E990,92,yes
us,.code,func_806A2B80,16,yes
us,.code,func_8062C1C0,108,yes
us,.code,func_8070F2FC,628,no
us,.code,func_80600BBC,172,no
us,.code,func_80600BBC,172,yes
us,.code,func_806D8070,56,yes
us,.code,func_80671D64,156,no
us,.code,func_80737E90,20,yes

1 version section function length matching
73 us .code func_8063D494 16 yes
74 us .code func_8063BBB0 784 no
75 us .code func_80650BBC 108 yes
76 us .code func_80605314 108 no yes
77 us .code func_806C1CCC 376 yes
78 us .code func_8062D2AC 68 yes
79 us .code func_80662110 72 yes
2111 us .code func_80737CF4 312 yes
2112 us .code func_806E709C 404 yes
2113 us .code setFlag 288 yes
2114 us .code func_80600C68 232 228 no yes
2115 us .code func_806EAC8C 48 yes
2116 us .code func_80691930 176 yes
2117 us .code func_80644EC8 504 no
2757 us .code func_80678B04 184 yes
2758 us .code func_80627C5C 588 no
2759 us .code func_8066EC6C 484 no
2760 us .code func_806085DC 144 no yes
2761 us .code func_806011E4 64 yes
2762 us .code func_806D37CC 224 yes
2763 us .code func_80631F58 84 no
2928 us .code func_806E9804 112 yes
2929 us .code func_806D5B44 392 yes
2930 us .code func_8060A500 268 no
2931 us .code func_80600B10 172 no yes
2932 us .code func_80634E10 148 yes
2933 us .code func_806C7228 8 yes
2934 us .code func_80645D14 556 no
2947 us .code func_806A2B80 16 yes
2948 us .code func_8062C1C0 108 yes
2949 us .code func_8070F2FC 628 no
2950 us .code func_80600BBC 172 no yes
2951 us .code func_806D8070 56 yes
2952 us .code func_80671D64 156 no
2953 us .code func_80737E90 20 yes

View File

@ -73,7 +73,7 @@ us,.code,func_8063D1D8,176,yes
us,.code,func_8063D494,16,yes
us,.code,func_8063BBB0,784,no
us,.code,func_80650BBC,108,yes
us,.code,func_80605314,108,no
us,.code,func_80605314,108,yes
us,.code,func_806C1CCC,376,yes
us,.code,func_8062D2AC,68,yes
us,.code,func_80662110,72,yes
@ -2111,7 +2111,7 @@ us,.code,func_80726E60,128,yes
us,.code,func_80737CF4,312,yes
us,.code,func_806E709C,404,yes
us,.code,setFlag,288,yes
us,.code,func_80600C68,232,no
us,.code,func_80600C68,228,yes
us,.code,func_806EAC8C,48,yes
us,.code,func_80691930,176,yes
us,.code,func_80644EC8,504,no
@ -2757,7 +2757,7 @@ us,.code,func_807007B8,572,no
us,.code,func_80678B04,184,yes
us,.code,func_80627C5C,588,no
us,.code,func_8066EC6C,484,no
us,.code,func_806085DC,144,no
us,.code,func_806085DC,144,yes
us,.code,func_806011E4,64,yes
us,.code,func_806D37CC,224,yes
us,.code,func_80631F58,84,no
@ -2928,7 +2928,7 @@ us,.code,func_806761D0,28,yes
us,.code,func_806E9804,112,yes
us,.code,func_806D5B44,392,yes
us,.code,func_8060A500,268,no
us,.code,func_80600B10,172,no
us,.code,func_80600B10,172,yes
us,.code,func_80634E10,148,yes
us,.code,func_806C7228,8,yes
us,.code,func_80645D14,556,no
@ -2947,7 +2947,7 @@ us,.code,func_8066E990,92,yes
us,.code,func_806A2B80,16,yes
us,.code,func_8062C1C0,108,yes
us,.code,func_8070F2FC,628,no
us,.code,func_80600BBC,172,no
us,.code,func_80600BBC,172,yes
us,.code,func_806D8070,56,yes
us,.code,func_80671D64,156,no
us,.code,func_80737E90,20,yes

1 version section function length matching
73 us .code func_8063D494 16 yes
74 us .code func_8063BBB0 784 no
75 us .code func_80650BBC 108 yes
76 us .code func_80605314 108 no yes
77 us .code func_806C1CCC 376 yes
78 us .code func_8062D2AC 68 yes
79 us .code func_80662110 72 yes
2111 us .code func_80737CF4 312 yes
2112 us .code func_806E709C 404 yes
2113 us .code setFlag 288 yes
2114 us .code func_80600C68 232 228 no yes
2115 us .code func_806EAC8C 48 yes
2116 us .code func_80691930 176 yes
2117 us .code func_80644EC8 504 no
2757 us .code func_80678B04 184 yes
2758 us .code func_80627C5C 588 no
2759 us .code func_8066EC6C 484 no
2760 us .code func_806085DC 144 no yes
2761 us .code func_806011E4 64 yes
2762 us .code func_806D37CC 224 yes
2763 us .code func_80631F58 84 no
2928 us .code func_806E9804 112 yes
2929 us .code func_806D5B44 392 yes
2930 us .code func_8060A500 268 no
2931 us .code func_80600B10 172 no yes
2932 us .code func_80634E10 148 yes
2933 us .code func_806C7228 8 yes
2934 us .code func_80645D14 556 no
2947 us .code func_806A2B80 16 yes
2948 us .code func_8062C1C0 108 yes
2949 us .code func_8070F2FC 628 no
2950 us .code func_80600BBC 172 no yes
2951 us .code func_806D8070 56 yes
2952 us .code func_80671D64 156 no
2953 us .code func_80737E90 20 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">23.1492%</text>
<text x="110.5" y="14">23.1492%</text>
<text x="111.5" y="15" fill="#010101" fill-opacity=".3">23.2164%</text>
<text x="110.5" y="14">23.2164%</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">22.6526%</text>
<text x="165.5" y="14">22.6526%</text>
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">22.7029%</text>
<text x="165.5" y="14">22.7029%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -506,9 +506,114 @@ void func_80028648(ARG0_80028648 *arg0) {
#pragma GLOBAL_ASM("asm/nonmatchings/bonus/code_2690/func_8002881C.s")
// Doable, aaD
#pragma GLOBAL_ASM("asm/nonmatchings/bonus/code_2690/func_80028E3C.s")
extern s16 D_8002D8C0[];
extern f64 D_8002DD98;
extern f32 D_8002DDA0;
extern f32 D_8002DDA4;
extern f32 D_8002DDA8;
typedef struct {
Actor *unk0;
u8 unk4;
u8 unk5;
u8 unk6;
u8 unk7;
s32 unk8;
f32 unkC;
} AAD_80028E3C;
typedef struct {
s32 unk0;
s32 unk4;
s32 unk8;
f32 unkC;
s8 unk10;
} AAD_80028E3C_2;
void func_80608528(Actor*, s16, u8, s32, s32);
/*
// TODO: Very close
void func_80028E3C(void) {
AAD_80028E3C *aaD;
AAD_80028E3C_2 *aaD2;
f32 temp_f2;
f64 temp_f0;
f32 var_f0_2;
f32 var_f2;
s16 var_a3;
s32 var_a0;
aaD = current_actor_pointer->additional_actor_data;
aaD2 = aaD->unk0->additional_actor_data;
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {
current_actor_pointer->y_rotation = (rand() >> 0xF) % 4096;
current_actor_pointer->y_acceleration = -10.0f;
current_actor_pointer->unk6A &= 0xFFFE;
func_80613C48(current_actor_pointer, 0x688, 0.0f, 0.0f);
func_80614D00(current_actor_pointer, 1.0f, 0.0f);
}
if (aaD2->unk10 == -1) {
if (aaD->unk4 == 0) {
if (aaD2->unkC < 220.0f) {
if (aaD->unk5 == 0) {
var_a0 = 0x7F;
aaD->unk5 = 1;
var_a3 = aaD->unk6 % 3;
if ((aaD->unk6 / 3) != 0) {
var_a3 = 2 - var_a3;
var_a0 = 0x64;
}
func_806086CC(current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position, D_8002D8C0[var_a3], 0xFF, var_a0, 0, 0, 0.0f, 0);
}
if (aaD2->unkC < 40.0f) {
aaD->unk4 = 1;
func_806086CC(current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position, 0x1ED, 0xFF, 0x7F, 0, 0, 0.0f, 0);
func_80608528(current_actor_pointer, 0x76, 0xFF, 0x7F, 0x1E);
current_actor_pointer->unkEE = current_actor_pointer->y_rotation;
current_actor_pointer->unkB8 = 10.0f;
func_80614EBC(aaD->unk0, 0x1F7);
}
}
}
}
if (aaD->unk4 == 0) {
func_80671C0C(aaD->unk0, 1, &current_actor_pointer->x_position, &current_actor_pointer->y_position, &current_actor_pointer->z_position);
} else {
if (current_actor_pointer->unk6A & 1) {
if (!(current_actor_pointer->unk6C & 1)) {
f64 temp = D_8002DD98;
current_actor_pointer->y_velocity = aaD->unkC * D_8002DDA0;
func_80608528(current_actor_pointer, 0xFF, (u32)MAX(temp, -aaD->unkC * 1.5), 0x7F, 0xA);
}
}
current_actor_pointer->y_velocity += current_actor_pointer->y_acceleration;
aaD->unkC = current_actor_pointer->y_velocity;
func_8067ACB4(current_actor_pointer);
func_806651FC(current_actor_pointer);
func_80665564(current_actor_pointer, 0);
}
current_actor_pointer->y_rotation = current_actor_pointer->y_rotation + aaD2->unkC;
if (current_actor_pointer->y_rotation >= 0x1000) {
current_actor_pointer->y_rotation = current_actor_pointer->y_rotation - 0x1000;
}
temp_f2 = D_8002DDA4 / aaD2->unkC;
current_actor_pointer->x_rotation = func_80612794(current_actor_pointer->y_rotation) * -temp_f2;
current_actor_pointer->z_rotation = func_80612790(current_actor_pointer->y_rotation) * temp_f2;
temp_f2 = temp_f2 * D_8002DDA8;
if (temp_f2 < 1) {
var_f2 = 1;
} else {
var_f2 = MIN(2.5f, temp_f2);
}
func_80614D00(current_actor_pointer, var_f2, 0.0f);
func_806319C4(current_actor_pointer, 0);
}
*/
#pragma GLOBAL_ASM("asm/nonmatchings/bonus/code_2690/func_80029364.s")
// Displaylist stuff
@ -805,8 +910,7 @@ typedef struct {
} AAD_8002C8EC_2;
void func_8002C8EC(void) {
s32 twemp;
s32 twees[2];
s32 pad[3];
f32 sp40;
f32 sp3C;
f32 sp38;

View File

@ -1,11 +1,20 @@
#include <ultra64.h>
#include "functions.h"
typedef struct {
s32 unk0; // *next?
s32 (*unk4)(s32 a, s32 b, s32 c);
s32 unk8;
s32 unkC;
s32 unk10;
s32 unk14;
} Struct807452A0;
extern s32 D_807452A0;
extern Struct807452A0 *D_807452A0;
extern u32 D_8076A068;
void func_80600950(void) {
D_807452A0 = 0;
D_807452A0 = NULL;
}
s32 func_8060095C(s32 arg0, s32 *arg1, s32 *arg2) {
@ -17,11 +26,71 @@ s32 func_8060095C(s32 arg0, s32 *arg1, s32 *arg2) {
// malloc, small struct?
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_5650/func_8060098C.s")
// small struct
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_5650/func_80600B10.s")
void func_8061130C(void *);
// similar to above
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_5650/func_80600BBC.s")
void func_80600B10(void) {
s32 var_s1;
Struct807452A0 *var_s0;
// similar to above
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_5650/func_80600C68.s")
var_s0 = D_807452A0;
var_s1 = 0;
while (var_s0 != NULL && !var_s1) {
if (D_8076A068 >= (var_s0->unk8 & 0x7FFFFFFF)) {
var_s0->unk4(var_s0->unkC, var_s0->unk10, var_s0->unk14);
func_8061130C(var_s0);
var_s0 = var_s0->unk0;
} else {
var_s1 = 1;
}
}
D_807452A0 = var_s0;
}
void func_80600BBC(void *arg0) {
Struct807452A0 *var_s0;
Struct807452A0 *var_s1;
var_s0 = D_807452A0;
var_s1 = NULL;
while (var_s0 != NULL) {
if (arg0 == var_s0->unk4 || (arg0 == 0 && var_s0->unk8 & 0x80000000)) {
func_8061130C(var_s0);
var_s0 = var_s0->unk0;
if (var_s1 != NULL) {
var_s1->unk0 = var_s0;
} else {
D_807452A0 = var_s0;
}
} else {
var_s1 = var_s0;
var_s0 = var_s0->unk0;
}
}
}
void func_80600C68(void) {
Struct807452A0 *var_s0;
Struct807452A0 *var_s1;
s32 var_s2;
var_s0 = D_807452A0;
var_s1 = NULL;
var_s2 = FALSE;
while (var_s0 != NULL && !var_s2) {
if ((var_s0->unk8 & 0x7FFFFFFF) < D_8076A068) {
if (var_s0->unk8 & 0x80000000) {
if (var_s1 != NULL) {
var_s1->unk0 = var_s0->unk0;
} else {
D_807452A0 = var_s0->unk0;
}
func_8061130C(var_s0);
} else {
var_s1 = var_s0;
}
var_s0 = var_s0->unk0;
} else {
var_s2 = TRUE;
}
}
}

View File

@ -212,22 +212,17 @@ void func_80604C80(u8 arg0, u8 arg1) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_6710/func_80605044.s")
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_6710/func_80605314.s")
void func_80605380(s16);
/*
// TODO: Very close
void func_80605314(Actor *arg0, u8 arg1) {
if (arg0[arg1].unk6E >= 0) {
func_80605380(arg0[arg1].unk6E);
arg0[arg1].unk6E = -1;
if (arg0->unk6E[arg1] >= 0) {
func_80605380(arg0->unk6E[arg1]);
arg0->unk6E[arg1] = -1;
if (arg1 == 0) {
arg0->unk72 = 0;
}
}
}
*/
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_6710/func_80605380.s")
@ -248,7 +243,9 @@ void func_80608528(Actor *arg0, s16 arg1, u8 arg2, s16 arg3, u8 arg4) {
func_806086CC(arg0->x_position, arg0->y_position, arg0->z_position, arg1, arg2, arg3, arg4, 0x4B, D_80756DFC, var_v0);
}
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_6710/func_806085DC.s")
void func_806085DC(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5, f32 arg6) {
func_806086CC(D_807F6000[arg0].x_position, D_807F6000[arg0].y_position, D_807F6000[arg0].z_position, arg1, arg2, arg3, arg4, arg5, arg6, 0);
}
void func_8060956C(f32, f32, f32, s16, s32, f32, s32, s32);
@ -277,6 +274,33 @@ void func_8060A4D0(s32 arg0, f32 arg1) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_6710/func_8060A500.s")
extern f64 D_80756FF0;
extern f64 D_80756FF8;
/*
// TODO: probably needs rodata
void func_8060A500(void) {
f32 var_f12;
f64 temp_f20;
f64 temp_f22;
s8 i;
temp_f22 = D_80756FF0;
temp_f20 = D_80756FF8;
for (i = 0; i < 4; i++) {
if (D_80770598[i] != 0) {
D_80770568[D_80770598[i]] = D_80770568[D_80770598[i]] + ((D_80770578[i] - D_80770568[D_80770598[i]]) * temp_f20);
var_f12 = ABS(D_80770578[i] - D_80770568[D_80770598[i]]);
if (var_f12 < temp_f22) {
D_80770568[D_80770598[i]] = D_80770578[i];
D_80770598[i] = 0;
}
func_8060A398(i);
}
}
}
*/
void func_8060A60C(s32 arg0, f32 arg1) {
D_80770578[arg0] = arg1;
D_80770598[arg0] = 1;

View File

@ -247,7 +247,7 @@ s32 func_80678050(u16 arg0) {
newActor->unk114 = NULL;
newActor->unk118 = 0;
newActor->unk11C = NULL;
newActor->unk6E = -1;
newActor->unk6E[0] = -1;
newActor->unk70 = -1;
newActor->unk150 = NULL;
newActor->unk12C = -1;

View File

@ -3,7 +3,6 @@
void func_806319C4(Actor*, s32);
void func_8065D254(Actor*, s32, s32, s32, s32, s32, s32, s32, s32, s32, f32);
void func_80665564(Actor*, f32);
void func_80683AD8();
extern f64 D_80759560;
@ -85,7 +84,6 @@ void func_8067BD28(void) {
}
}
void func_80665564(Actor*, f32);
u8 func_8067BF84(s16 arg0, u8 *arg1, u8 *arg2, u8 *arg3);
void func_8067BDB8(void) {

View File

@ -99,7 +99,6 @@ void func_80697988(void) {
void func_8065D254(Actor *, s32, s32, s32, s32, s32, s32, s32, s32, s32, f32);
void func_806651FC(Actor *);
void func_80665564(Actor *, f32);
void func_8066E8E4(Actor *, f32, f32, f32, f32, s32);
extern s32 D_8071ABDC; // TODO: Datatype
extern s32 D_8071FBA0; // TODO: Datatype
@ -139,7 +138,7 @@ void func_80697CEC(void) {
aaD = current_actor_pointer->additional_actor_data;
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {
sp68 = D_807502C0;
current_actor_pointer->unk6E = -2;
current_actor_pointer->unk6E[0] = -2;
current_actor_pointer->unk6A &= ~1;
current_actor_pointer->unkEE = (current_actor_pointer->unk124->unk0 / D_8075A220) * D_8075A224;
current_actor_pointer->unkB8 = current_actor_pointer->unk124->unk4;

View File

@ -439,8 +439,6 @@ typedef struct {
s32 unk4;
} AAD_806A018C;
void func_80665564(Actor*, f32);
void func_806A018C(void) {
AAD_806A018C *temp_s1;

View File

@ -30,7 +30,6 @@ extern f32 D_8075AA70;
extern f32 D_8075AA74;
void func_80686A5C(Actor *arg0, f32 arg1, f32 arg2, s32 arg3);
void func_80665564(Actor *arg0, f32 arg1);
void func_806A6DB4(s32 arg0);
void func_8065D254(Actor *actor, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, f32 arg10);
void func_80686CF8(Actor *actor);

View File

@ -6,7 +6,6 @@ extern f32 D_8075AE20;
extern f64 D_8075AE28;
extern s32 D_8071FBC8;
void func_80665564(Actor*, f32);
void func_8065D254(Actor*, s32, s32, s32, s32, s32, s32, s32, s32, s32, f32);
void func_80612BC0(f32*, f32);

View File

@ -6,7 +6,6 @@
extern s32 D_8072030C;
extern f64 D_8075B3C0;
void func_80665564(Actor*, f32);
void func_806319C4(Actor*, s32);
/*

View File

@ -15,7 +15,6 @@ void func_80690A28(u8, s32, f32, f32, f32, f32, f32, Actor*);
s32 func_80726164(Actor*, s16, s16, s16, void*);
void func_806B3E7C();
void func_806653C0(Actor*, f32, f32);
void func_80665564(Actor*, f32);
void func_807248B0(Actor*, f32);
// Jumptable
@ -655,7 +654,7 @@ void func_806B54BC(void) {
temp_s1->unkC = current_actor_pointer->y_position;
temp_s1->unk12 = (func_806119A0() & 0xFF) + 0x78;
}
if ((current_actor_pointer->control_state != 0x37) && (current_actor_pointer->unk6E == -1)) {
if ((current_actor_pointer->control_state != 0x37) && (current_actor_pointer->unk6E[0] == -1)) {
func_80604CBC(current_actor_pointer, 0x10E, 0, 0, 0, 0xFF, 1.0f, 0);
}
switch (current_actor_pointer->control_state) {

View File

@ -159,10 +159,10 @@ void func_806B7EA0(void) {
temp_s0->unk14 = D_807FDC94->z_position;
D_807FDC90->unk2C = 0x14;
}
current_actor_pointer->unk6E++;
if (temp_s0->unk18 < current_actor_pointer->unk6E) {
current_actor_pointer->unk6E[0]++;
if (temp_s0->unk18 < current_actor_pointer->unk6E[0]) {
playSound(0x15B, 0x7FFF, 63.0f, 1.0f, 0, 0x80);
current_actor_pointer->unk6E = 0;
current_actor_pointer->unk6E[0] = 0;
if (temp_s0->unk18 > 2.0f) {
temp_s0->unk18 -= D_8075B898;
}

View File

@ -13,7 +13,6 @@ void func_806319C4(Actor*, s32);
void func_80724E48(u8);
void func_806F09F0(Actor*, u16);
void func_80665564(Actor*, f32);
void func_806651FC(Actor*);
void func_80724CA4(s32, s32);

View File

@ -595,7 +595,7 @@ void func_806CBE44(void) {
void func_806CBE90(void) {
if ((current_actor_pointer->unk6A & 0x21) == 1) {
if ((current_actor_pointer->unk6A & 0x200) != 0) {
if (current_actor_pointer->unk6E == -1) {
if (current_actor_pointer->unk6E[0] == -1) {
func_80604CBC(current_actor_pointer, 0x10D, 0, 1, 0, 0xFF, 1.0f, 0);
}
current_actor_pointer->control_state = 0xF;
@ -735,7 +735,6 @@ extern s16 D_80753A2C[];
void func_80665160(Actor *, s16, s16);
void func_806653C0(Actor *, f32, f32);
void func_80665564(Actor*, f32);
/*
// TODO: WIP, might need some more temp variables or split apart float operations into separate lines
@ -2480,7 +2479,7 @@ void func_806D2BD0(void) {
func_806CC8B8();
func_806319C4(current_actor_pointer, 0);
if (func_8061CB50()) {
if (current_actor_pointer->unk6E != -1) {
if (current_actor_pointer->unk6E[0] != -1) {
func_80605314(current_actor_pointer, 0);
}
}
@ -6301,7 +6300,7 @@ void func_806E384C(void) {
phi_f0 -= 65536;
}
phi_f0 /= 16;
if (current_actor_pointer->unk6E == -1) {
if (current_actor_pointer->unk6E[0] == -1) {
func_80604CBC(current_actor_pointer, 0x114, 0, 0, 0, 0xFF, 1.0f, 0);
}
current_actor_pointer->y_acceleration = D_807536E4[D_807FD584] + (-2 * D_807536E4[D_807FD584] * func_80612790(phi_f0));

View File

@ -373,7 +373,7 @@ u32 func_806119A0(void);
void func_80026D2C(f32 arg0) {
s16 temp;
s32 pad;
temp = D_80770628[current_actor_pointer->unk6E];
temp = D_80770628[current_actor_pointer->unk6E[0]];
D_80770B68[temp] = (arg0 / 20.0) + 1.0;
D_80770BC0[temp] = 1.0f;
temp = D_80770628[current_actor_pointer->unk70];

View File

@ -189,7 +189,7 @@ void func_80027C60(void) {
void func_800283D4(f32 arg0) {
s32 temp_a0;
temp_a0 = D_80770628[current_actor_pointer->unk6E];
temp_a0 = D_80770628[current_actor_pointer->unk6E[0]];
current_actor_pointer->unk74 = 1.0f;
D_80770B68[temp_a0] = (arg0 * D_8002FF84) + 1.0;
D_80770BC0[temp_a0] = 1.0f;
@ -513,8 +513,6 @@ void func_8002DB90(void) {
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_36B0/func_8002DC24.s")
void func_80665564(Actor*, f32);
/*
// TODO: Pretty close, datatype issue for RaaD->unk0 though
// Case 2 function call and default function call may be swapped

View File

@ -17,3 +17,5 @@ character_change_array = 0x807FC924;
cc_number_of_players = 0x807FC928;
cc_player_index = 0x807FC929;
extra_player_info_pointer = 0x807FD580;
D_8002DDA8 = 0x8002DDA8;

View File

@ -264,3 +264,5 @@ D_8075075C = 0x8075075C;
D_80752FEC = 0x80752FEC;
D_80758D40 = 0x80758D40;
D_80756FF8 = 0x80756FF8;