Tons of labels

This commit is contained in:
Donkey Kong 2024-04-23 21:48:01 +09:30
parent edca33ee94
commit 9cdfce0dcf
40 changed files with 437 additions and 447 deletions

View File

@ -127,6 +127,13 @@ int gameIsInQuitGameMode(void);
s32 countSetFlags(s32 startIndex, s32 length, u8 flagType);
void changeCollectableCount(s32 HUDItemIndex, u8 playerIndex, s16 amount);
Chunk14 *func_global_asm_80630588(Chunk14 *arg0, Model2Model *arg1, u8 arg2, u8 *arg3);
void addActorRecolor(Actor *actor, s16 x, s16 y, s16 z, s32 alpha, s32 red, s32 green, s32 blue, s32);
Struct80717D84 *func_global_asm_80714D08(void *sprite, f32 scale, f32 x, f32 y, f32 z, Actor *actor, s32 arg6, s32 boneIndex, u8 arg8);
// TODO: Not 100% on return type
u8 getBonePosition(Actor *actor, s32 boneIndex, f32 *x, f32 *y, f32 *z);
@ -194,7 +201,6 @@ void func_global_asm_806EB744(void);
void func_global_asm_806EB8CC(void);
void func_global_asm_806EB964(void);
void func_global_asm_806EBA04(void);
// TODO: Signatures deduplicated up to here
void func_global_asm_806EBA74(void);
void func_global_asm_806EBAF4(void);
void func_global_asm_806EBB44(void);
@ -209,6 +215,7 @@ void func_global_asm_806EBF74(void);
void func_global_asm_806EBFD0(void);
void func_global_asm_806EC014(void);
void func_global_asm_806EC044(void);
// TODO: Signatures deduplicated up to here
void func_global_asm_806EC1A8(void);
void func_global_asm_806EC2CC(void);
void func_global_asm_806EC3BC(void);
@ -828,7 +835,7 @@ void func_global_asm_806E1630(void);
void func_global_asm_806CC948();
void func_global_asm_806CFECC(void);
void func_global_asm_806D2378();
void func_global_asm_806F4D70(u8 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4);
void func_global_asm_806F4D70(u8 playerIndex, f32 x, f32 y, f32 z, f32 arg4);
void func_global_asm_806D3608(void);
void func_global_asm_80685210(f32 arg0, s16 arg1, s16 arg2);
void func_global_asm_806F142C(Actor*);
@ -1235,7 +1242,7 @@ s32 func_global_asm_806FBB9C(s16 textureIndex);
void func_global_asm_80663C60(f32 *arg0, s16 arg1);
void func_global_asm_8072ED90(void);
u8 func_global_asm_8072F4A8(Actor *arg0, u8 arg1, f32 *arg2, f32 *arg3, f32 *arg4);
void func_global_asm_80730D60(s32 arg0, u8 arg1, u8 arg2, u8 arg3, void **arg4, void **arg5);
void func_global_asm_80730D60(Actor *arg0, u8 arg1, u8 arg2, u8 arg3, void **arg4, void **arg5);
s32 func_global_asm_8067B2C0(s32);
void func_global_asm_80678F64(Actor*);
s16 func_global_asm_8067AF74(Actor*);

View File

@ -1269,7 +1269,7 @@ struct actor {
f32 y_velocity; // at 0xC0
f32 y_acceleration; // at 0xC4
f32 terminal_velocity; // at 0xC8
u8 unkCC; // Used
u8 unkCC; // Used, bone index?
u8 unkCD;
u8 unkCE;
u8 unkCF;

View File

@ -2288,7 +2288,6 @@ us,asm,func_global_asm_806FDF1C,56,yes
us,asm,func_global_asm_806F14BC,428,yes
us,asm,func_global_asm_8063643C,12,yes
us,asm,func_global_asm_806B63E0,44,yes
us,asm,func_global_asm_806F91B4,568,no
us,asm,func_global_asm_80641A78,136,yes
us,asm,func_global_asm_8072EE7C,256,yes
us,asm,func_global_asm_806B1EE8,32,yes
@ -2331,6 +2330,7 @@ us,asm,func_global_asm_8066EAEC,84,yes
us,asm,func_global_asm_8072DC7C,120,yes
us,asm,func_global_asm_80644A18,680,no
us,asm,func_global_asm_806D4010,556,yes
us,asm,changeCollectableCount,568,no
us,asm,func_global_asm_807300BC,844,no
us,asm,func_global_asm_80726E60,128,yes
us,asm,func_global_asm_80675180,180,no

1 version section function length matching
2288 us asm func_global_asm_806F14BC 428 yes
2289 us asm func_global_asm_8063643C 12 yes
2290 us asm func_global_asm_806B63E0 44 yes
us asm func_global_asm_806F91B4 568 no
2291 us asm func_global_asm_80641A78 136 yes
2292 us asm func_global_asm_8072EE7C 256 yes
2293 us asm func_global_asm_806B1EE8 32 yes
2330 us asm func_global_asm_8072DC7C 120 yes
2331 us asm func_global_asm_80644A18 680 no
2332 us asm func_global_asm_806D4010 556 yes
2333 us asm changeCollectableCount 568 no
2334 us asm func_global_asm_807300BC 844 no
2335 us asm func_global_asm_80726E60 128 yes
2336 us asm func_global_asm_80675180 180 no

View File

@ -2288,7 +2288,6 @@ us,asm,func_global_asm_806FDF1C,56,yes
us,asm,func_global_asm_806F14BC,428,yes
us,asm,func_global_asm_8063643C,12,yes
us,asm,func_global_asm_806B63E0,44,yes
us,asm,func_global_asm_806F91B4,568,no
us,asm,func_global_asm_80641A78,136,yes
us,asm,func_global_asm_8072EE7C,256,yes
us,asm,func_global_asm_806B1EE8,32,yes
@ -2331,6 +2330,7 @@ us,asm,func_global_asm_8066EAEC,84,yes
us,asm,func_global_asm_8072DC7C,120,yes
us,asm,func_global_asm_80644A18,680,no
us,asm,func_global_asm_806D4010,556,yes
us,asm,changeCollectableCount,568,no
us,asm,func_global_asm_807300BC,844,no
us,asm,func_global_asm_80726E60,128,yes
us,asm,func_global_asm_80675180,180,no

1 version section function length matching
2288 us asm func_global_asm_806F14BC 428 yes
2289 us asm func_global_asm_8063643C 12 yes
2290 us asm func_global_asm_806B63E0 44 yes
us asm func_global_asm_806F91B4 568 no
2291 us asm func_global_asm_80641A78 136 yes
2292 us asm func_global_asm_8072EE7C 256 yes
2293 us asm func_global_asm_806B1EE8 32 yes
2330 us asm func_global_asm_8072DC7C 120 yes
2331 us asm func_global_asm_80644A18 680 no
2332 us asm func_global_asm_806D4010 556 yes
2333 us asm changeCollectableCount 568 no
2334 us asm func_global_asm_807300BC 844 no
2335 us asm func_global_asm_80726E60 128 yes
2336 us asm func_global_asm_80675180 180 no

View File

@ -81,14 +81,14 @@ u8 func_bonus_80025480(Actor **arg0, u8 arg1) {
return D_bonus_8002D8B0[arg1][arg0[arg1]->unk15F];
}
void func_bonus_800254B0(s16 arg0, s16 arg1, s16 arg2, s16 arg3) {
void func_bonus_800254B0(s16 x, s16 y, s16 z, s16 count) {
s16 i;
for (i = 0; i < arg3; i++) {
for (i = 0; i < count; i++) {
func_global_asm_807149B8(1);
func_global_asm_8071498C(&func_global_asm_80717404);
func_global_asm_80714950(1);
drawSpriteAtPosition(D_global_asm_8074E880[((rand() >> 0xF) % 1000) % 3], 0.3f, arg0, arg1, arg2);
drawSpriteAtPosition(D_global_asm_8074E880[((rand() >> 0xF) % 1000) % 3], 0.3f, x, y, z);
}
}

View File

@ -107,9 +107,9 @@ typedef struct {
void func_bonus_8002733C(Struct8002733C *arg0) {
s16 i;
s16 var_s2;
s16 x;
var_s2 = 0x118;
x = 280;
for (i = 0; i < 5; i++) {
if (arg0->unk4[i] != NULL) {
func_global_asm_80715908(arg0->unk4[i]);
@ -121,8 +121,8 @@ void func_bonus_8002733C(Struct8002733C *arg0) {
func_global_asm_80714944(i * 3);
func_global_asm_8071498C(&func_global_asm_8071A038);
func_global_asm_80714950(&arg0->unk18[i]);
arg0->unk4[i] = drawSpriteAtPosition(&D_global_asm_8071FFD4, 1.0f, var_s2, 210.0f, -10.0f);
var_s2 -= 0x1E;
arg0->unk4[i] = drawSpriteAtPosition(&D_global_asm_8071FFD4, 1.0f, x, 210.0f, -10.0f);
x -= 30;
}
playSound(0x3E4, 0x7FFF, 63.0f, 1.0f, 5, 0);
}

View File

@ -148,20 +148,20 @@ void func_boss_8002A55C(u8 arg0, f32 arg1) {
}
void func_boss_8002A5CC(void) {
f32 sp6C;
f32 sp68;
f32 sp64;
f32 x;
f32 y;
f32 z;
s16 i;
getBonePosition(current_actor_pointer, 1, &sp6C, &sp68, &sp64);
sp6C += ((rand() >> 0xF) % 80) - 40;
sp68 += ((rand() >> 0xF) % 100) + 50;
sp64 += ((rand() >> 0xF) % 80) - 40;
getBonePosition(current_actor_pointer, 1, &x, &y, &z);
x += ((rand() >> 0xF) % 80) - 40;
y += ((rand() >> 0xF) % 100) + 50;
z += ((rand() >> 0xF) % 80) - 40;
func_global_asm_807149B8(1);
func_global_asm_8071498C(&func_global_asm_8071EDEC);
func_global_asm_80714950(current_actor_pointer);
changeActorColor(0xFF, 0xD7, 0x58, 0xFF);
drawSpriteAtPosition(&D_global_asm_80720120, 1.5f, sp6C, sp68, sp64);
drawSpriteAtPosition(&D_global_asm_80720120, 1.5f, x, y, z);
for (i = 0; i < 4; i++) {
func_global_asm_80714998(2);
func_global_asm_8071498C(&func_global_asm_8071720C);

View File

@ -363,7 +363,7 @@ void func_critter_80027DC0(void) {
current_actor_pointer->control_state_progress = 1;
func_global_asm_80604CBC(player_pointer, 0x104, 0x3C, 1, 1, 0xFF, 1.0f, 0);
func_global_asm_806F8BC4(6, 0, 0);
func_global_asm_806F91B4(6, extra_player_info_pointer->unk1A4, 999);
changeCollectableCount(6, extra_player_info_pointer->unk1A4, 999);
}
break;
case 3:

View File

@ -104,7 +104,6 @@ extern s16 D_global_asm_807FDB3E;
extern s16 D_global_asm_807FDB40;
extern s16 D_global_asm_807FDB42;
Struct80717D84 *func_global_asm_80714D08(void*, f32, f32, f32, f32, s32, s32, s32, u8);
void func_global_asm_80714A9C(void);
void func_global_asm_80718380(Struct80717D84 *arg0, s8 *arg1);
int func_global_asm_80717404(); // TODO: Signature
@ -250,29 +249,29 @@ void func_global_asm_80714A9C(void) {
D_global_asm_807FDB3A = 0x258;
}
Struct80717D84 *func_global_asm_80714B84(void *arg0, f32 arg1, s32 arg2, s32 arg3, u8 arg4) {
f32 sp3C;
f32 sp38;
f32 sp34;
func_global_asm_806335B0(arg2, 1, arg3, &sp3C, &sp38, &sp34);
return func_global_asm_80714D08(arg0, arg1, sp3C, sp38, sp34, 0, arg2, arg3, arg4);
}
Struct80717D84 *func_global_asm_80714C08(void *sprite, f32 scale, Actor *arg2, s32 arg3, u8 arg4) {
Struct80717D84 *func_global_asm_80714B84(void *sprite, f32 scale, s32 arg2, s32 boneIndex, u8 arg4) {
f32 x;
f32 y;
f32 z;
getBonePosition(arg2, arg3, &x, &y, &z);
if (!(arg2->object_properties_bitfield & 0x200) && (arg2->animation_state != NULL) && (D_global_asm_807FDB36 & 0x80)) {
func_global_asm_806335B0(arg2, 1, boneIndex, &x, &y, &z);
return func_global_asm_80714D08(sprite, scale, x, y, z, NULL, arg2, boneIndex, arg4);
}
Struct80717D84 *func_global_asm_80714C08(void *sprite, f32 scale, Actor *actor, s32 boneIndex, u8 arg4) {
f32 x;
f32 y;
f32 z;
getBonePosition(actor, boneIndex, &x, &y, &z);
if (!(actor->object_properties_bitfield & 0x200) && (actor->animation_state != NULL) && (D_global_asm_807FDB36 & 0x80)) {
func_global_asm_80714A38(0x40);
}
return func_global_asm_80714D08(sprite, scale, x, y, z, arg2, 0, arg3, arg4);
return func_global_asm_80714D08(sprite, scale, x, y, z, actor, 0, boneIndex, arg4);
}
Struct80717D84 *drawSpriteAtPosition(void* sprite, f32 scale, f32 x, f32 y, f32 z) {
return func_global_asm_80714D08(sprite, scale, x, y, z, 0, 0, 0, 0);
return func_global_asm_80714D08(sprite, scale, x, y, z, NULL, 0, 0, 0);
}
extern u8 D_global_asm_80750AB4;
@ -290,17 +289,17 @@ extern s16 D_global_asm_807FDB3C;
void func_global_asm_80714778(f32);
Struct80717D84 *func_global_asm_80714D08(void *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s32 arg6, s32 arg7, u8 arg8) {
Struct80717D84 *func_global_asm_80714D08(void *sprite, f32 scale, f32 x, f32 y, f32 z, Actor *actor, s32 arg6, s32 boneIndex, u8 arg8) {
Struct80717D84 *sp2C;
s32 i;
s32 var_v0;
Struct807FDB00 *var_s0;
func_global_asm_80714778(arg1);
func_global_asm_80714778(scale);
var_s0 = D_global_asm_807FDB00;
var_v0 = 0;
while (!var_v0 && var_s0 != NULL) {
if (arg0 == var_s0->unk0) {
if (sprite == var_s0->unk0) {
var_v0 = 1;
} else {
var_s0 = var_s0->next;
@ -320,22 +319,22 @@ Struct80717D84 *func_global_asm_80714D08(void *arg0, f32 arg1, f32 arg2, f32 arg
}
D_global_asm_807FDB08 = sp2C;
if (D_global_asm_807FDB1D != 0) {
arg2 *= 4.0f;
arg3 *= 4.0f;
arg4 *= 4.0f;
arg1 *= 4.0f;
x *= 4.0f;
y *= 4.0f;
z *= 4.0f;
scale *= 4.0f;
D_global_asm_807FDB20 *= 4.0f;
D_global_asm_807FDB24 *= 4.0f;
}
sp2C->unk340 = arg2;
sp2C->unk344 = arg3;
sp2C->unk348 = arg4;
sp2C->unk340 = x;
sp2C->unk344 = y;
sp2C->unk348 = z;
if (D_global_asm_807FDB28 != 0) {
sp2C->unk360 = D_global_asm_807FDB20;
sp2C->unk364 = D_global_asm_807FDB24;
} else {
sp2C->unk360 = arg1;
sp2C->unk364 = arg1;
sp2C->unk360 = scale;
sp2C->unk364 = scale;
}
if (D_global_asm_807FDB0F != 0) {
sp2C->unk36A = D_global_asm_807FDB0C;
@ -353,9 +352,9 @@ Struct80717D84 *func_global_asm_80714D08(void *arg0, f32 arg1, f32 arg2, f32 arg
sp2C->unk368 = D_global_asm_807FDB1A;
sp2C->unk380 = var_s0->unk8 * var_s0->unk9;
sp2C->unk334 = arg8;
sp2C->unk338 = arg5;
sp2C->unk338 = actor;
sp2C->unk33C = arg6;
sp2C->unk33E = arg7;
sp2C->unk33E = boneIndex;
sp2C->unk34E = D_global_asm_807FDB30;
sp2C->unk350 = D_global_asm_807FDB1C;
sp2C->unk351 = 0;
@ -421,7 +420,6 @@ void func_global_asm_807158C0(void) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_119370/func_global_asm_80715908.s")
/*
? func_global_asm_80630588(?, void *, ?, ? *);
extern s32 D_80000310;
extern void *D_global_asm_807FDB04;
extern void *D_global_asm_807FDB08;
@ -816,11 +814,11 @@ void func_global_asm_807180F4(s32 arg0, s32 arg1) {
func_global_asm_80716FB4(arg0, arg1);
}
void func_global_asm_80718124(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
void func_global_asm_80718124(f32 scale, f32 x, f32 y, f32 z) {
func_global_asm_807149B8(1);
func_global_asm_80714998(3);
func_global_asm_8071498C(&func_global_asm_80718380);
drawSpriteAtPosition(&D_global_asm_8071FEF4, arg0, arg1, arg2, arg3);
drawSpriteAtPosition(&D_global_asm_8071FEF4, scale, x, y, z);
}
void func_global_asm_80718188(Struct80717D84 *arg0, s8 *arg1) {
@ -1702,7 +1700,7 @@ extern s32 D_global_asm_8071FB54;
void func_global_asm_8071C24C(Struct80717D84 *arg0, u8 *arg1) {
s32 pad;
f32 sp50;
f32 y;
s16 sp48[3];
if (arg0->unk384 == NULL) {
@ -1717,10 +1715,10 @@ void func_global_asm_8071C24C(Struct80717D84 *arg0, u8 *arg1) {
arg0->unk340 += 1.0f;
arg0->unk344 += arg0->unk384_f32->unk0;
arg0->unk384_f32->unk0 -= D_global_asm_8075E9B8;
sp50 = arg0->unk344;
if (func_global_asm_80667110(arg0->unk340, arg0->unk348, &sp50) == 0) {
y = arg0->unk344;
if (func_global_asm_80667110(arg0->unk340, arg0->unk348, &y) == 0) {
*arg1 = 1;
} else if (arg0->unk344 < sp50) {
} else if (arg0->unk344 < y) {
if (arg0->unk384_f32->unk0 < 0.0) {
*arg1 = 1;
}
@ -1732,7 +1730,7 @@ void func_global_asm_8071C24C(Struct80717D84 *arg0, u8 *arg1) {
func_global_asm_80714950(1);
func_global_asm_8071498C(&func_global_asm_8071C004);
func_global_asm_80714944(7);
drawSpriteAtPosition(&D_global_asm_8071FB54, 0.667f, arg0->unk340, sp50 + 10.0f, arg0->unk348);
drawSpriteAtPosition(&D_global_asm_8071FB54, 0.667f, arg0->unk340, y + 10.0f, arg0->unk348);
}
createLight(arg0->unk340, arg0->unk344, arg0->unk348, 0.0f, 0.0f, 0.0f, 200.0f, 0, sp48[0], sp48[1], sp48[2]);
}
@ -2329,11 +2327,11 @@ void func_global_asm_8071EA24(Struct80717D84 *arg0, s32 arg1) {
void func_global_asm_8071EB70(Struct80717D84 *arg0, s32 arg1) {
f32 *var_v1;
f32 temp_f0_2;
f32 d;
f32 temp_f16;
f32 temp_f14;
f32 temp_f0;
f32 temp_f2;
f32 dz;
f32 dx;
f32 dy;
s32 var_f12; // Amazingly this is correct
temp_f16 = (arg0->unk35C * 3) / 4;
@ -2343,15 +2341,15 @@ void func_global_asm_8071EB70(Struct80717D84 *arg0, s32 arg1) {
*var_v1 = arg0->unk36D;
}
var_v1 = arg0->unk384;
temp_f0 = character_change_array->unk224 - arg0->unk348;
temp_f2 = character_change_array->unk21C - arg0->unk340;
temp_f14 = character_change_array->unk220 - arg0->unk344;
temp_f0_2 = sqrtf((temp_f0 * temp_f0) + ((temp_f2 * temp_f2) + (temp_f14 * temp_f14)));
if (temp_f0_2 < temp_f16) {
dx = character_change_array->unk224 - arg0->unk348;
dy = character_change_array->unk21C - arg0->unk340;
dz = character_change_array->unk220 - arg0->unk344;
d = sqrtf((dx * dx) + ((dy * dy) + (dz * dz)));
if (d < temp_f16) {
arg0->unk36D = *var_v1;
return;
}
var_f12 = (*var_v1 * ((temp_f0_2 - temp_f16) / (arg0->unk35C - temp_f16)));
var_f12 = (*var_v1 * ((d - temp_f16) / (arg0->unk35C - temp_f16)));
if (*var_v1 < var_f12) {
var_f12 = *var_v1;
}
@ -2360,15 +2358,15 @@ void func_global_asm_8071EB70(Struct80717D84 *arg0, s32 arg1) {
void func_global_asm_8071EDEC(Struct80717D84 *arg0, s32 arg1) {
f64 temp;
f32 sp34;
f32 sp30;
f32 sp2C;
f32 x;
f32 y;
f32 z;
getBonePosition(arg0->unk35C, 1, &sp34, &sp30, &sp2C);
getBonePosition(arg0->unk35C, 1, &x, &y, &z);
temp = D_global_asm_8075EAA0;
arg0->unk340 += (sp34 - arg0->unk340) * temp;
arg0->unk344 += (sp30 - arg0->unk344) * temp;
arg0->unk348 += (sp2C - arg0->unk348) * temp;
arg0->unk340 += (x - arg0->unk340) * temp;
arg0->unk344 += (y - arg0->unk344) * temp;
arg0->unk348 += (z - arg0->unk348) * temp;
}
void func_global_asm_8071EEA4(Struct80717D84 *arg0, s32 arg1) {

View File

@ -5,12 +5,12 @@ extern s32 D_global_asm_8071FB34;
extern s32 D_global_asm_8071FF18;
extern f64 D_global_asm_8075FF20;
void func_global_asm_806A5DF0(s32, f32, f32, f32, s32, s32, s32, s32);
void func_global_asm_806F91B4(u8, u8, s16);
s16 func_global_asm_806CC190(s16, s16, f32);
s16 func_global_asm_806CC190(s16, s16, f32);
extern f64 D_global_asm_8075FF38;
// doable, close
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_12E800/initializeCharacterSpawnerActor.s")
extern s8 D_global_asm_807FBB85;
@ -28,7 +28,6 @@ typedef struct {
void func_global_asm_806663F8(void);
/*
// TODO: Doable, very close!!!
void initializeCharacterSpawnerActor(void) {
EnemyInfo *temp_t9;
AAD_global_asm_80729B00 *temp_t7;
@ -660,19 +659,19 @@ void func_global_asm_8072DAA4(void) {
}
void func_global_asm_8072DB68(s32 arg0) {
u8 phi_v1;
s16 phi_s0;
u8 amount;
s16 i;
if (func_global_asm_806F8AD4(0xB, cc_player_index) >= 4) {
phi_v1 = 3;
amount = 3;
} else {
phi_v1 = func_global_asm_806F8AD4(0xB, cc_player_index);
amount = func_global_asm_806F8AD4(0xB, cc_player_index);
}
func_global_asm_806F91B4(0xB, cc_player_index, -phi_v1);
changeCollectableCount(0xB, cc_player_index, -amount);
func_global_asm_806F8BC4(0xB, 0, 0);
playSong(0x41, 1.0f);
for (phi_s0 = 0; phi_s0 < phi_v1; phi_s0++) {
func_global_asm_806A5DF0(0x36, player_pointer->x_position, player_pointer->y_position, player_pointer->z_position, (player_pointer->y_rotation + (phi_s0 * 0xC8)) - 0xC8, 1, -1, 0);
for (i = 0; i < amount; i++) {
func_global_asm_806A5DF0(0x36, player_pointer->x_position, player_pointer->y_position, player_pointer->z_position, (player_pointer->y_rotation + (i * 200)) - 200, 1, -1, 0);
}
}
@ -810,13 +809,13 @@ u8 func_global_asm_8072E22C(u16 arg0) {
return ((dx * dx) + (dy * dy) + (dz * dz)) < (arg0 * arg0);
}
void func_global_asm_8072E2B0(Actor *arg0, f32 *arg1, f32 *arg2, f32 *arg3) {
void func_global_asm_8072E2B0(Actor *arg0, f32 *x, f32 *y, f32 *z) {
if (arg0->unkCC) {
getBonePosition(arg0, arg0->unkCC, arg1, arg2, arg3);
getBonePosition(arg0, arg0->unkCC, x, y, z);
} else {
*arg1 = arg0->x_position;
*arg2 = arg0->y_position;
*arg3 = arg0->z_position;
*x = arg0->x_position;
*y = arg0->y_position;
*z = arg0->z_position;
}
}

View File

@ -2,7 +2,7 @@
#include "functions.h"
s32 func_global_asm_8063367C(s32, u8, s32);
s32 func_global_asm_80671D64(s32, s32);
s32 func_global_asm_80671D64(Actor*, s32);
void func_global_asm_8072F230(Actor*, u8, u8);
s32 func_global_asm_8061F2B8(f32, f32, f32, f32, f32, f32, f32, f32, f32, f32 *, f32 *, f32 *);
f32 func_global_asm_80627A00(f64, f32, f32, f32, f32);
@ -318,38 +318,38 @@ s32 func_global_asm_8072F8D4(GlobalASMStruct82 *arg0, s32 arg1, s16 arg2) {
}
f32 func_global_asm_8072FA14(Actor *arg0, PlayerAdditionalActorData *arg1, GlobalASMStruct82 *arg2, u8 arg3) {
u8 temp_t0;
u8 temp_t1;
f32 sp80;
f32 sp7C;
f32 sp78;
f32 sp74;
f32 sp70;
f32 sp6C;
u8 boneIndex1;
u8 boneIndex2;
f32 z2;
f32 y2;
f32 x2;
f32 z1;
f32 y1;
f32 x1;
f32 sp68;
f32 sp64;
f32 sp60;
f32 var_f2;
f32 sp58;
f32 sp54;
f32 sp50;
f32 x3;
f32 y3;
f32 z3;
temp_t0 = arg2->unk34[arg3].unk0;
temp_t1 = arg2->unk34[arg3].unk1;
boneIndex1 = arg2->unk34[arg3].unk0;
boneIndex2 = arg2->unk34[arg3].unk1;
switch (arg2->unk4) {
case 0:
getBonePosition(arg2->unk0, temp_t0, &sp6C, &sp70, &sp74);
getBonePosition(arg2->unk0, temp_t1, &sp78, &sp7C, &sp80);
getBonePosition(arg2->unk0, boneIndex1, &x1, &y1, &z1);
getBonePosition(arg2->unk0, boneIndex2, &x2, &y2, &z2);
break;
case 1:
case 2:
func_global_asm_806335B0(arg2->unk0, 1, temp_t0, &sp6C, &sp70, &sp74);
func_global_asm_806335B0(arg2->unk0, 1, temp_t1, &sp78, &sp7C, &sp80);
func_global_asm_806335B0(arg2->unk0, 1, boneIndex1, &x1, &y1, &z1);
func_global_asm_806335B0(arg2->unk0, 1, boneIndex2, &x2, &y2, &z2);
break;
}
getBonePosition(arg0, 1, &sp58, &sp54, &sp50);
func_global_asm_8061F2B8(sp58, sp54, sp50, sp6C, sp70, sp74, sp78, sp7C, sp80, &sp68, &sp64, &sp60);
var_f2 = (sp64 - sp70) / (sp7C - sp70);
getBonePosition(arg0, 1, &x3, &y3, &z3);
func_global_asm_8061F2B8(x3, y3, z3, x1, y1, z1, x2, y2, z2, &sp68, &sp64, &sp60);
var_f2 = (sp64 - y1) / (y2 - y1);
if (arg2->unk18 == 2 || arg2->unk18 == 3) {
if (arg3 == 0) {
if (var_f2 < 0.05) {
@ -402,26 +402,26 @@ void func_global_asm_8072FDD4(GlobalASMStruct82 *arg0, f32 arg1, s8 *arg2, f32 *
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_133A90/func_global_asm_80730408.s")
void func_global_asm_80730AEC(u8 arg0, f32 arg1, GlobalASMStruct82 *arg2, f32 *arg3, f32 *arg4, f32 *arg5) {
u8 sp7C[4];
u8 bones[4];
f32 sp4C[4][3];
sp7C[0] = arg2->unk34[MAX(arg0 - 1, 0)].unk0;
sp7C[1] = arg2->unk34[arg0].unk0;
sp7C[2] = arg2->unk34[arg0].unk1;
sp7C[3] = arg2->unk34[MIN((arg0 + 1), (arg2->unk7 - 1))].unk1;
bones[0] = arg2->unk34[MAX(arg0 - 1, 0)].unk0;
bones[1] = arg2->unk34[arg0].unk0;
bones[2] = arg2->unk34[arg0].unk1;
bones[3] = arg2->unk34[MIN((arg0 + 1), (arg2->unk7 - 1))].unk1;
switch (arg2->unk4) {
case 1:
case 2:
func_global_asm_806335B0(arg2->unk0, 1, sp7C[0], &sp4C[0][0], &sp4C[0][1], &sp4C[0][2]);
func_global_asm_806335B0(arg2->unk0, 1, sp7C[1], &sp4C[1][0], &sp4C[1][1], &sp4C[1][2]);
func_global_asm_806335B0(arg2->unk0, 1, sp7C[2], &sp4C[2][0], &sp4C[2][1], &sp4C[2][2]);
func_global_asm_806335B0(arg2->unk0, 1, sp7C[3], &sp4C[3][0], &sp4C[3][1], &sp4C[3][2]);
func_global_asm_806335B0(arg2->unk0, 1, bones[0], &sp4C[0][0], &sp4C[0][1], &sp4C[0][2]);
func_global_asm_806335B0(arg2->unk0, 1, bones[1], &sp4C[1][0], &sp4C[1][1], &sp4C[1][2]);
func_global_asm_806335B0(arg2->unk0, 1, bones[2], &sp4C[2][0], &sp4C[2][1], &sp4C[2][2]);
func_global_asm_806335B0(arg2->unk0, 1, bones[3], &sp4C[3][0], &sp4C[3][1], &sp4C[3][2]);
break;
case 0:
getBonePosition(arg2->unk0, sp7C[0], &sp4C[0][0], &sp4C[0][1], &sp4C[0][2]);
getBonePosition(arg2->unk0, sp7C[1], &sp4C[0][0], &sp4C[0][1], &sp4C[0][2]);
getBonePosition(arg2->unk0, sp7C[1], &sp4C[0][0], &sp4C[0][1], &sp4C[0][2]);
getBonePosition(arg2->unk0, sp7C[2], &sp4C[0][0], &sp4C[0][1], &sp4C[0][2]);
getBonePosition(arg2->unk0, bones[0], &sp4C[0][0], &sp4C[0][1], &sp4C[0][2]);
getBonePosition(arg2->unk0, bones[1], &sp4C[0][0], &sp4C[0][1], &sp4C[0][2]);
getBonePosition(arg2->unk0, bones[1], &sp4C[0][0], &sp4C[0][1], &sp4C[0][2]);
getBonePosition(arg2->unk0, bones[2], &sp4C[0][0], &sp4C[0][1], &sp4C[0][2]);
break;
}
*arg3 = func_global_asm_80627A00(arg1, sp4C[0][0], sp4C[1][0], sp4C[2][0], sp4C[3][0]);
@ -429,7 +429,7 @@ void func_global_asm_80730AEC(u8 arg0, f32 arg1, GlobalASMStruct82 *arg2, f32 *a
*arg5 = func_global_asm_80627A00(arg1, sp4C[0][2], sp4C[1][2], sp4C[2][2], sp4C[3][2]);
}
void func_global_asm_80730D60(s32 arg0, u8 arg1, u8 arg2, u8 arg3, void **arg4, void **arg5) {
void func_global_asm_80730D60(Actor *arg0, u8 arg1, u8 arg2, u8 arg3, void **arg4, void **arg5) {
switch (arg1) {
case 0:
*arg4 = func_global_asm_80671D64(arg0, arg2);

View File

@ -844,6 +844,7 @@ void func_global_asm_8062D1E0(Struct8062D1E0_arg0 *arg0, Struct8062D1E0_arg1 *ar
}
*/
// TODO: Any cleanup possible for this?
void func_global_asm_8062D26C(Actor *arg0) {
s32 sp1C;

View File

@ -994,8 +994,6 @@ void func_global_asm_806645B8(s16 arg0);
void func_global_asm_8066C904(OM2_unk28 *arg0);
Chunk14 *func_global_asm_80630588(Chunk14 *arg0, s32 arg1, u8 arg2, u8 *arg3);
void func_global_asm_806593C8(s32 arg0, s32 arg1);
void func_global_asm_80636074(ObjectModel2 *arg0);

View File

@ -838,15 +838,15 @@ void func_global_asm_80642844(s16 arg0, s16 arg1, Struct80642844 *arg2, s32 arg3
extern s32 D_global_asm_8071FC58;
void func_global_asm_80642940(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f32 var_f18;
f32 var_f4;
f32 var_f6;
f32 randomZOffset;
f32 randomYOffset;
f32 randomXOffset;
s32 i;
for (i = 0; i < 1; i++) {
var_f6 = (((func_global_asm_806119A0() / 10000U) % 200) / 10.0) - 10.0;
var_f4 = (((func_global_asm_806119A0() / 10000U) % 200) / 10.0) - 7.0;
var_f18 = (((func_global_asm_806119A0() / 10000U) % 200) / 10.0) - 10.0;
randomXOffset = (((func_global_asm_806119A0() / 10000U) % 200) / 10.0) - 10.0;
randomYOffset = (((func_global_asm_806119A0() / 10000U) % 200) / 10.0) - 7.0;
randomZOffset = (((func_global_asm_806119A0() / 10000U) % 200) / 10.0) - 10.0;
func_global_asm_807149B8(1);
func_global_asm_807149FC(2);
func_global_asm_80714950(0x64);
@ -854,9 +854,9 @@ void func_global_asm_80642940(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
drawSpriteAtPosition(
&D_global_asm_8071FC58,
0.5f,
D_global_asm_807F621C + var_f6,
D_global_asm_807F6220 + var_f4,
D_global_asm_807F6224 + var_f18
D_global_asm_807F621C + randomXOffset,
D_global_asm_807F6220 + randomYOffset,
D_global_asm_807F6224 + randomZOffset
);
}
createLight(D_global_asm_807F621C, D_global_asm_807F6220, D_global_asm_807F6224, 0.0f, 0.0f, 0.0f, 300.0f, 0, 0xA6, 0x30, 0xFF);

View File

@ -247,9 +247,9 @@ typedef struct {
void func_global_asm_806436E0(Struct806436E0_arg0 *arg0, s32 arg1, s32 arg2, s32 arg3) {
Struct807F5FD4_unk0 *temp_v0_2;
Struct806436E0_malloc *var_v1;
s32 sp34;
s32 sp30;
s32 sp2C;
s32 x;
s32 y;
s32 z;
s32 count;
if (arg0->unk0 == NULL) {
@ -266,14 +266,14 @@ void func_global_asm_806436E0(Struct806436E0_arg0 *arg0, s32 arg1, s32 arg2, s32
var_v1->unk4 = 0;
}
temp_v0_2 = &D_global_asm_807F5FD4->unk0[0][var_v1->unk4];
sp34 = temp_v0_2->unk0;
sp30 = temp_v0_2->unk4;
sp2C = temp_v0_2->unk8;
x = temp_v0_2->unk0;
y = temp_v0_2->unk4;
z = temp_v0_2->unk8;
func_global_asm_80714998(2);
func_global_asm_807149B8(1);
func_global_asm_80714950(0);
func_global_asm_8071498C(&func_global_asm_8071C004);
drawSpriteAtPosition(&D_global_asm_8071FB54, 0.667f, sp34, sp30 + 0xA, sp2C);
drawSpriteAtPosition(&D_global_asm_8071FB54, 0.667f, x, y + 10, z);
var_v1->unk0 = 0x19;
}
var_v1->unk0--;
@ -289,9 +289,9 @@ extern s32 D_global_asm_8071FE08; // TODO: Datatype
extern s32 D_global_asm_8071FE64;
extern s32 D_global_asm_8071FE88;
extern s32 D_global_asm_8071FEAC;
extern f32 D_global_asm_807F621C;
extern f32 D_global_asm_807F6220;
extern f32 D_global_asm_807F6224;
extern f32 D_global_asm_807F621C; // x
extern f32 D_global_asm_807F6220; // y
extern f32 D_global_asm_807F6224; // z
int func_global_asm_8071910C(); // TODO: Signature
@ -299,22 +299,22 @@ void func_global_asm_806438B8(s32 arg0, s16 arg1, s16 arg2, s16 arg3) {
s32 pad;
s32 temp_s0;
s32 i;
f32 sp60;
f32 sp5C;
f32 sp58;
f32 x;
f32 y;
f32 z;
if (arg2 == 1) {
func_global_asm_806335B0(arg1, 1, arg3, &sp60, &sp5C, &sp58);
func_global_asm_806335B0(arg1, 1, arg3, &x, &y, &z);
} else {
sp60 = D_global_asm_807F621C;
sp5C = D_global_asm_807F6220;
sp58 = D_global_asm_807F6224;
x = D_global_asm_807F621C;
y = D_global_asm_807F6220;
z = D_global_asm_807F6224;
}
func_global_asm_807149B8(0);
func_global_asm_807149FC(1);
func_global_asm_80714950(0x100C8);
func_global_asm_8071498C(&func_global_asm_8071A8B0);
drawSpriteAtPosition(&D_global_asm_8071FE08, 1.5f, sp60, sp5C, sp58);
drawSpriteAtPosition(&D_global_asm_8071FE08, 1.5f, x, y, z);
for (i = 0; i < 7; i++) {
temp_s0 = (s32)(func_global_asm_806119A0() / 10000U) % 3;
func_global_asm_807149B8(1);
@ -324,13 +324,13 @@ void func_global_asm_806438B8(s32 arg0, s16 arg1, s16 arg2, s16 arg3) {
func_global_asm_80714950(7);
switch (temp_s0) {
case 0:
drawSpriteAtPosition(&D_global_asm_8071FE64, 0.5f, sp60, sp5C, sp58);
drawSpriteAtPosition(&D_global_asm_8071FE64, 0.5f, x, y, z);
break;
case 1:
drawSpriteAtPosition(&D_global_asm_8071FE88, 0.5f, sp60, sp5C, sp58);
drawSpriteAtPosition(&D_global_asm_8071FE88, 0.5f, x, y, z);
break;
case 2:
drawSpriteAtPosition(&D_global_asm_8071FEAC, 0.5f, sp60, sp5C, sp58);
drawSpriteAtPosition(&D_global_asm_8071FEAC, 0.5f, x, y, z);
break;
}
}
@ -353,9 +353,9 @@ void func_global_asm_80643B24(s32 arg0, s16 arg1, s32 arg2, s32 arg3) {
}
}
extern f32 D_global_asm_807F621C;
extern f32 D_global_asm_807F6220;
extern f32 D_global_asm_807F6224;
extern f32 D_global_asm_807F621C; // x
extern f32 D_global_asm_807F6220; // y
extern f32 D_global_asm_807F6224; // z
extern s32 D_global_asm_807201D4;
typedef struct {
@ -857,9 +857,9 @@ extern f32 D_global_asm_807F6224;
void func_global_asm_80646DC4(s32 arg0, s16 arg1, s16 arg2, s16 arg3) {
s32 pad2;
f32 spB8;
f32 spB4;
f32 spB0;
f32 x;
f32 y;
f32 z;
s32 pad[6];
f32 var_f28;
s32 i;
@ -868,12 +868,12 @@ void func_global_asm_80646DC4(s32 arg0, s16 arg1, s16 arg2, s16 arg3) {
if (arg2 != 0) {
for (i = 1; i < 7; i++) {
func_global_asm_806335B0(arg1, 1, i, &spB8, &spB4, &spB0);
func_global_asm_806335B0(arg1, 1, i, &x, &y, &z);
func_global_asm_8071496C(i);
func_global_asm_807149B8(1);
func_global_asm_8071498C(&func_global_asm_8071BB14);
changeActorColor(0xFF, 0xFF, 0xFF, 0x96);
drawSpriteAtPosition(&D_global_asm_80720BE8, 1.5f, spB8, spB4, spB0);
drawSpriteAtPosition(&D_global_asm_80720BE8, 1.5f, x, y, z);
}
return;
}
@ -888,14 +888,14 @@ void func_global_asm_80646DC4(s32 arg0, s16 arg1, s16 arg2, s16 arg3) {
sp84[1] = i * 0x2A8;
sp84[2] = (rand() % 500) + 150;
if (arg3 == 0) {
func_global_asm_806335B0(arg1, 1, i, &spB8, &spB4, &spB0);
spB4 += 10.0;
func_global_asm_806335B0(arg1, 1, i, &x, &y, &z);
y += 10.0;
} else {
spB8 = ((func_global_asm_806119FC() * 30.0) + D_global_asm_807F621C) - 15.0;
spB4 = (func_global_asm_806119FC() * 40.0) + D_global_asm_807F6220;
spB0 = ((func_global_asm_806119FC() * 30.0) + D_global_asm_807F6224) - 15.0;
x = ((func_global_asm_806119FC() * 30.0) + D_global_asm_807F621C) - 15.0;
y = (func_global_asm_806119FC() * 40.0) + D_global_asm_807F6220;
z = ((func_global_asm_806119FC() * 30.0) + D_global_asm_807F6224) - 15.0;
}
func_global_asm_806891D8(0x5A, spB8, spB4, spB0, 0, var_f28, NULL, &sp84[0]);
func_global_asm_806891D8(0x5A, x, y, z, 0, var_f28, NULL, &sp84[0]);
}
}
@ -927,28 +927,28 @@ void func_global_asm_80647170(s32 arg0, s16 arg1, s16 arg2, s32 arg3) {
void func_global_asm_80647218(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
s32 i;
f32 rand1;
f32 rand2;
f32 rand3;
f32 rand4;
f32 randomXOffset;
f32 randomYOffset;
f32 randomZOffset;
f32 randomScaleOffset;
for (i = 0; i < 6; i++) {
rand1 = (f32)((func_global_asm_806119A0() / 1000U) % 20) - 10.0;
rand2 = (f32)((func_global_asm_806119A0() / 1000U) % 20) - 10.0;
rand3 = (f32)((func_global_asm_806119A0() / 1000U) % 20) - 10.0;
rand4 = (f32)((f32)(((func_global_asm_806119A0() / 1000U) % 50) - 25.0) / 50.0);
randomXOffset = (f32)((func_global_asm_806119A0() / 1000U) % 20) - 10.0;
randomYOffset = (f32)((func_global_asm_806119A0() / 1000U) % 20) - 10.0;
randomZOffset = (f32)((func_global_asm_806119A0() / 1000U) % 20) - 10.0;
randomScaleOffset = (f32)((f32)(((func_global_asm_806119A0() / 1000U) % 50) - 25.0) / 50.0);
func_global_asm_80714950(-0xAA);
func_global_asm_8071498C(func_global_asm_80717D4C);
func_global_asm_807149B8(1);
func_global_asm_80714998(3);
func_global_asm_8071496C(i << 1);
drawSpriteAtPosition(&D_global_asm_8071FFA0, (rand4) + 1.5, D_global_asm_807F621C + (rand1), D_global_asm_807F6220 + (rand2), D_global_asm_807F6224 + (rand3));
drawSpriteAtPosition(&D_global_asm_8071FFA0, (randomScaleOffset) + 1.5, D_global_asm_807F621C + (randomXOffset), D_global_asm_807F6220 + (randomYOffset), D_global_asm_807F6224 + (randomZOffset));
}
}
void func_global_asm_80647508(s32 arg0, s16 arg1, s32 arg2, s32 arg3) {
s32 sp34;
f32 sp30, sp2C, sp28;
f32 x, y, z;
sp34 = ((func_global_asm_806119A0() / 1000U) % 10) + 1;
func_global_asm_80714950(-0x28A - ((func_global_asm_806119A0() / 1000U) % 200));
@ -957,8 +957,8 @@ void func_global_asm_80647508(s32 arg0, s16 arg1, s32 arg2, s32 arg3) {
func_global_asm_80714998(9);
changeActorColor(0xFF, 0xFF, 0xFF, 0x64);
func_global_asm_80714944(5);
func_global_asm_806335B0(arg1, 1, sp34, &sp30, &sp2C, &sp28);
drawSpriteAtPosition(&D_global_asm_8071FFA0, 1.5f, sp30, sp2C - 70, sp28);
func_global_asm_806335B0(arg1, 1, sp34, &x, &y, &z);
drawSpriteAtPosition(&D_global_asm_8071FFA0, 1.5f, x, y - 70, z);
}
// Close
@ -1029,7 +1029,7 @@ int func_global_asm_8071910C(); // TODO: Signature
void func_global_asm_80647834(s32 arg0, s16 arg1, s32 arg2, s32 arg3) {
s32 i;
f32 temp;
f32 randomYOffset;
for (i = 0; i < 0xC; i++) {
func_global_asm_807149B8(1);
@ -1037,8 +1037,8 @@ void func_global_asm_80647834(s32 arg0, s16 arg1, s32 arg2, s32 arg3) {
func_global_asm_8071498C(func_global_asm_8071910C);
func_global_asm_80714998(2);
func_global_asm_80714950(4);
temp = ((func_global_asm_806119A0() / 1000U) % 80);
drawSpriteAtPosition(&D_global_asm_80720EA4, 1.0f, D_global_asm_807F621C, D_global_asm_807F6220 + temp, D_global_asm_807F6224);
randomYOffset = ((func_global_asm_806119A0() / 1000U) % 80);
drawSpriteAtPosition(&D_global_asm_80720EA4, 1.0f, D_global_asm_807F621C, D_global_asm_807F6220 + randomYOffset, D_global_asm_807F6224);
}
for (i = 1; i != 6; i++) {
func_global_asm_80714950(-0x78);
@ -1235,17 +1235,17 @@ typedef struct {
} Struct8064826C_arg0;
void func_global_asm_8064826C(Struct8064826C_arg0 *arg0, s32 arg1, s16 arg2, s32 arg3) {
s32 *sp3C;
void *sprite;
f32 sp38;
s32 pad2;
s32 pad;
f32 sp2C;
f32 sp28;
f32 xOffset;
f32 zOffset;
f32 temp_f0;
Struct8064826C_malloc *temp_v0;
sp2C = func_global_asm_80612794(((D_global_asm_807F622C + 90.0f) * 4096.0f) / 360.0f) * 15.0f;
sp28 = func_global_asm_80612790(((D_global_asm_807F622C + 90.0f) * 4096.0f) / 360.0f) * 15.0f;
xOffset = func_global_asm_80612794(((D_global_asm_807F622C + 90.0f) * 4096.0f) / 360.0f) * 15.0f;
zOffset = func_global_asm_80612790(((D_global_asm_807F622C + 90.0f) * 4096.0f) / 360.0f) * 15.0f;
if (arg0->unk0 == NULL) {
arg0->unk0 = malloc(sizeof(Struct8064826C_malloc));
temp_v0 = arg0->unk0;
@ -1257,16 +1257,16 @@ void func_global_asm_8064826C(Struct8064826C_arg0 *arg0, s32 arg1, s16 arg2, s32
func_global_asm_807149B8(1);
switch (arg2) {
case 0:
sp3C = &D_global_asm_80721200;
sprite = &D_global_asm_80721200;
break;
case 1:
sp3C = &D_global_asm_8072121C;
sprite = &D_global_asm_8072121C;
break;
case 2:
sp3C = &D_global_asm_80721250;
sprite = &D_global_asm_80721250;
break;
case 3:
sp3C = &D_global_asm_80721238;
sprite = &D_global_asm_80721238;
break;
}
sp38 = func_global_asm_80612794(temp_v0->unk0) * 0.1;
@ -1276,7 +1276,7 @@ void func_global_asm_8064826C(Struct8064826C_arg0 *arg0, s32 arg1, s16 arg2, s32
func_global_asm_80714A08(sp38 + 1.0, (f32)(temp_f0 * 0.1) + 1.0);
func_global_asm_807149A8(1400);
func_global_asm_80714A28(4);
drawSpriteAtPosition(sp3C, 0.0f, D_global_asm_807F621C + sp2C, (func_global_asm_80612794(temp_v0->unk8) * 10.0) + (D_global_asm_807F6220 + 80.0), D_global_asm_807F6224 + sp28);
drawSpriteAtPosition(sprite, 0.0f, D_global_asm_807F621C + xOffset, (func_global_asm_80612794(temp_v0->unk8) * 10.0) + (D_global_asm_807F6220 + 80.0), D_global_asm_807F6224 + zOffset);
temp_v0->unk8 += 0x64;
if ((D_global_asm_8076A068 % 12) == 0) {
func_global_asm_807149B8(1);
@ -1284,7 +1284,7 @@ void func_global_asm_8064826C(Struct8064826C_arg0 *arg0, s32 arg1, s16 arg2, s32
func_global_asm_8071498C(&func_global_asm_80716F10);
func_global_asm_807149A8(1400);
func_global_asm_80714A28(4);
drawSpriteAtPosition(&D_global_asm_8072126C, 2.0f, D_global_asm_807F621C + sp2C, D_global_asm_807F6220 + 30.0, D_global_asm_807F6224 + sp28);
drawSpriteAtPosition(&D_global_asm_8072126C, 2.0f, D_global_asm_807F621C + xOffset, D_global_asm_807F6220 + 30.0, D_global_asm_807F6224 + zOffset);
}
}
@ -1904,8 +1904,6 @@ u8 func_global_asm_8064BE58(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
/*
extern s32 D_global_asm_807552F0;
void func_global_asm_806F91B4(s32, u8, s32);
s32 func_global_asm_8064BE80(s32 arg0, s16 arg1, s16 arg2, s32 arg3) {
s32 playerIndex;
f32 temp;
@ -1915,7 +1913,7 @@ s32 func_global_asm_8064BE80(s32 arg0, s16 arg1, s16 arg2, s32 arg3) {
return 0;
}
if (func_global_asm_806F8AD4(1, playerIndex) != 0) {
func_global_asm_806F91B4(7, playerIndex, 1);
changeCollectableCount(7, playerIndex, 1);
temp = func_global_asm_806F8AD4(7, playerIndex);
temp /= D_global_asm_807552F0;
// temp *= 0.5f;
@ -2531,7 +2529,7 @@ void func_global_asm_8064E5C0(Struct8064E5C0_arg0 *arg0, s32 arg1, s32 arg2, s32
void func_global_asm_8064EA48(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (func_global_asm_806F8AD4(1, 0) >= 2) {
func_global_asm_806F8BC4(1, 0, 0);
func_global_asm_806F91B4(1, 0, -2);
changeCollectableCount(1, 0, -2);
// DK Arcade Level 3?
setFlag(0x83, TRUE, FLAG_TYPE_PERMANENT);
}

View File

@ -249,8 +249,6 @@ void func_global_asm_806524A0(s32 arg0, u8 arg1) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_55B20/func_global_asm_80652594.s")
Chunk14 *func_global_asm_80630588(Chunk14*, s32, s32, u8*);
/*
// TODO: Quite close
// Something to do with arg2? Loop condition? Break?

View File

@ -488,21 +488,21 @@ void func_global_asm_80666280(u8 arg0) {
void func_global_asm_80666428(Actor*, f32, f32, f32, void*, void*, void*, void*, u8);
void func_global_asm_80666290(Actor *arg0, void *arg1, void *arg2, void *arg3, void *arg4, u8 arg5) {
f32 sp3C;
f32 sp38;
f32 sp34;
void func_global_asm_80666290(Actor *actor, void *arg1, void *arg2, void *arg3, void *arg4, u8 arg5) {
f32 x;
f32 y;
f32 z;
D_global_asm_807F94BC = 0;
D_global_asm_807F94B3 = 0;
if (arg0->unkCC && !arg0->locked_to_pad && arg0->object_properties_bitfield & 0x10) {
getBonePosition(arg0, arg0->unkCC, &sp3C, &sp38, &sp34);
if (actor->unkCC && !actor->locked_to_pad && actor->object_properties_bitfield & 0x10) {
getBonePosition(actor, actor->unkCC, &x, &y, &z);
} else {
sp3C = arg0->x_position;
sp38 = arg0->unk8C;
sp34 = arg0->z_position;
x = actor->x_position;
y = actor->unk8C;
z = actor->z_position;
}
func_global_asm_80666428(arg0, sp3C, sp38, sp34, arg1, arg2, arg3, arg4, arg5);
func_global_asm_80666428(actor, x, y, z, arg1, arg2, arg3, arg4, arg5);
}
// BUG: Missing return?

View File

@ -414,16 +414,16 @@ extern s32 D_global_asm_8071FE88; // TODO: Datatype
extern s32 D_global_asm_8071FEAC; // TODO: Datatype
void func_global_asm_8067DCC0(void) {
f32 temp_f20;
f32 scale;
s32 temp_s0;
s32 i;
s32 pad;
temp_f20 = current_actor_pointer->animation_state->scale_y / 0.15;
scale = current_actor_pointer->animation_state->scale_y / 0.15;
func_global_asm_8060E7EC(0, 0xB4, 0xA);
func_global_asm_807149B8(0);
func_global_asm_807149FC(1);
drawSpriteAtPosition(&D_global_asm_8071FE08, temp_f20 * 0.75, current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position);
drawSpriteAtPosition(&D_global_asm_8071FE08, scale * 0.75, current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position);
playSoundAtActorPosition(current_actor_pointer, 0x23, 0xFF, 0x7F, 1);
for (i = 0; i < 7; i++) {
temp_s0 = (s32)(func_global_asm_806119A0() / 10000U) % 3;
@ -434,13 +434,13 @@ void func_global_asm_8067DCC0(void) {
func_global_asm_80714950(2);
switch (temp_s0) {
case 0:
drawSpriteAtPosition(&D_global_asm_8071FE64, temp_f20 * 0.25, current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position);
drawSpriteAtPosition(&D_global_asm_8071FE64, scale * 0.25, current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position);
break;
case 1:
drawSpriteAtPosition(&D_global_asm_8071FE88, temp_f20 * 0.25, current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position);
drawSpriteAtPosition(&D_global_asm_8071FE88, scale * 0.25, current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position);
break;
case 2:
drawSpriteAtPosition(&D_global_asm_8071FEAC, temp_f20 * 0.25, current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position);
drawSpriteAtPosition(&D_global_asm_8071FEAC, scale * 0.25, current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position);
break;
}
}
@ -450,37 +450,37 @@ extern s32 D_global_asm_80720120;
extern s32 D_global_asm_80720340;
extern s32 D_global_asm_8072038C;
void func_global_asm_8067DF44(f32 arg0, f32 arg1, f32 arg2, f32 arg3, u8 arg4, u8 arg5) {
void func_global_asm_8067DF44(f32 x, f32 y, f32 z, f32 arg3, u8 arg4, u8 arg5) {
f64 sp80;
f32 sp7C;
f32 temp_f20;
f32 temp_f22;
f32 temp_f24;
f32 randomZOffset;
f32 randomXOffset;
f32 randomYOffset;
s32 i;
if (arg5 != 0) {
playSoundAtPosition(arg0, arg1, arg2, 0xF6, 0xFF, 0x7F, 0x19, 0x1E, 0.3f, 0);
playSoundAtPosition(x, y, z, 0xF6, 0xFF, 0x7F, 0x19, 0x1E, 0.3f, 0);
}
func_global_asm_807149B8(1);
func_global_asm_8071498C(&func_global_asm_8071B89C);
drawSpriteAtPosition(&D_global_asm_80720120, 0.0f, arg0, arg1 + 5.0f, arg2);
drawSpriteAtPosition(&D_global_asm_80720120, 0.0f, x, y + 5.0f, z);
sp80 = arg3;
sp7C = arg3 * 1.5;
for (i = 0; i < 5; i++) {
temp_f22 = (((rand() >> 0xF) % 20) - 0xA) * arg3;
temp_f24 = (((rand() >> 0xF) % 20) - 0xA) * arg3;
temp_f20 = (((rand() >> 0xF) % 20) - 0xA) * arg3;
randomXOffset = (((rand() >> 0xF) % 20) - 0xA) * arg3;
randomYOffset = (((rand() >> 0xF) % 20) - 0xA) * arg3;
randomZOffset = (((rand() >> 0xF) % 20) - 0xA) * arg3;
func_global_asm_8071496C(4);
func_global_asm_807149B8(1);
func_global_asm_807149FC(1);
func_global_asm_8071498C(&func_global_asm_8071BB14);
drawSpriteAtPosition(&D_global_asm_80720340, sp7C, arg0 + temp_f22, arg1 + temp_f24, arg2 + temp_f20);
drawSpriteAtPosition(&D_global_asm_80720340, sp7C, x + randomXOffset, y + randomYOffset, z + randomZOffset);
}
func_global_asm_8071496C(4);
func_global_asm_807149B8(1);
func_global_asm_807149FC(1);
func_global_asm_8071498C(&func_global_asm_8071BB14);
drawSpriteAtPosition(&D_global_asm_80720340, sp7C, arg0, arg1, arg2);
drawSpriteAtPosition(&D_global_asm_80720340, sp7C, x, y, z);
if (arg4 != 0) {
for (i = 0; i < 0xC; i++) {
func_global_asm_807149B8(1);
@ -488,7 +488,7 @@ void func_global_asm_8067DF44(f32 arg0, f32 arg1, f32 arg2, f32 arg3, u8 arg4, u
func_global_asm_80714950(i + 0x0B020000);
func_global_asm_8071498C(&func_global_asm_8071ABDC);
func_global_asm_80714998(1);
drawSpriteAtPosition(&D_global_asm_8072038C, sp80 * 0.5, arg0, arg1, arg2);
drawSpriteAtPosition(&D_global_asm_8072038C, sp80 * 0.5, x, y, z);
}
}
}
@ -502,11 +502,11 @@ void func_global_asm_8067E278(u8 arg0, u8 arg1) {
arg1);
}
void func_global_asm_8067E2E4(Actor *arg0, u8 arg1, f32 arg2) {
f32 sp2C, sp28, sp24;
void func_global_asm_8067E2E4(Actor *actor, u8 boneIndex, f32 arg2) {
f32 x, y, z;
getBonePosition(current_actor_pointer, arg1, &sp2C, &sp28, &sp24);
func_global_asm_8067DF44(sp2C, sp28, sp24, arg2, 0, 1);
getBonePosition(current_actor_pointer, boneIndex, &x, &y, &z);
func_global_asm_8067DF44(x, y, z, arg2, 0, 1);
}
void func_global_asm_8067E348(void) {
@ -1228,11 +1228,13 @@ void func_global_asm_8068412C(void) {
func_global_asm_807149B8(1);
func_global_asm_807149A8(1000);
func_global_asm_80714A28(4);
drawSpriteAtPosition(&D_global_asm_8071FC8C,
1.3f,
current_actor_pointer->x_position,
current_actor_pointer->y_position + 13.0,
current_actor_pointer->z_position);
drawSpriteAtPosition(
&D_global_asm_8071FC8C,
1.3f,
current_actor_pointer->x_position,
current_actor_pointer->y_position + 13.0,
current_actor_pointer->z_position
);
if (func_global_asm_80689F2C()) {
current_actor_pointer->draw_distance = 2000;
} else {

View File

@ -143,40 +143,40 @@ void func_global_asm_80684900(u8 arg0) {
func_global_asm_80714C08(&D_global_asm_8072139C, (((rand() >> 0xF) % 50) / 80.0) + 0.1, current_actor_pointer, 8, 0);
}
void func_global_asm_80684A00(s16 arg0, s8 arg1) {
f32 sp3C, sp38, sp34, sp30;
void func_global_asm_80684A00(s16 boneIndex, s8 arg1) {
f32 x, y, z, scale;
sp30 = current_actor_pointer->animation_state->scale_y / 0.15;
getBonePosition(current_actor_pointer, arg0, &sp3C, &sp38, &sp34);
scale = current_actor_pointer->animation_state->scale_y / 0.15;
getBonePosition(current_actor_pointer, boneIndex, &x, &y, &z);
func_global_asm_80714950((((rand() >> 0xF) % 100) + 400) * arg1);
func_global_asm_8071498C(&func_global_asm_80717D4C);
func_global_asm_807149B8(1);
drawSpriteAtPosition(D_global_asm_8074E880[((rand() >> 0xF) % 1000) % 3],
sp30 * 0.8,
((rand() >> 0xF) % 20) + (sp3C - 10.0f),
sp38,
((rand() >> 0xF) % 20) + (sp34 - 10.0f)
scale * 0.8,
((rand() >> 0xF) % 20) + (x - 10.0f),
y,
((rand() >> 0xF) % 20) + (z - 10.0f)
);
}
void func_global_asm_80684BB0(s16 arg0, s16 arg1, s16 arg2) {
f32 sp54;
f32 sp50;
f32 sp4C;
f32 sp48;
void func_global_asm_80684BB0(s16 boneIndex, s16 arg1, s16 arg2) {
f32 x;
f32 y;
f32 z;
f32 scale;
sp48 = current_actor_pointer->animation_state->scale_y / 0.15;
getBonePosition(current_actor_pointer, arg0, &sp54, &sp50, &sp4C);
scale = current_actor_pointer->animation_state->scale_y / 0.15;
getBonePosition(current_actor_pointer, boneIndex, &x, &y, &z);
func_global_asm_80714950(arg1 + (arg2 << 0x10));
func_global_asm_8071498C(&func_global_asm_8071F2F8);
func_global_asm_807149B8(1);
func_global_asm_807149FC(MAX(2.0, arg2 * 0.02));
drawSpriteAtPosition(
D_global_asm_8074E880[((rand() >> 0xF) % 1000) % 3],
sp48 * 0.8,
((rand() >> 0xF) % 60) + (sp54 - 30.0f),
sp50,
((rand() >> 0xF) % 60) + (sp4C - 30.0f)
scale * 0.8,
((rand() >> 0xF) % 60) + (x - 30.0f),
y,
((rand() >> 0xF) % 60) + (z - 30.0f)
);
}
@ -226,14 +226,14 @@ void func_global_asm_80685020(u8 arg0, u8 arg1) {
int func_global_asm_8071910C();
void func_global_asm_806850D0(void) {
f32 temp_f20;
f32 scale;
s32 temp_s0;
temp_f20 = current_actor_pointer->animation_state->scale_y / 0.15;
scale = current_actor_pointer->animation_state->scale_y / 0.15;
func_global_asm_807149B8(0);
func_global_asm_807149FC(1);
drawSpriteAtPosition(&D_global_asm_8071FE08,
temp_f20 * 0.75,
scale * 0.75,
current_actor_pointer->x_position,
current_actor_pointer->y_position,
current_actor_pointer->z_position
@ -245,7 +245,7 @@ void func_global_asm_806850D0(void) {
func_global_asm_80714998(2);
func_global_asm_80714950(0);
drawSpriteAtPosition(&D_global_asm_8072073C,
temp_f20 * 0.15,
scale * 0.15,
current_actor_pointer->x_position,
current_actor_pointer->y_position,
current_actor_pointer->z_position
@ -264,7 +264,7 @@ void func_global_asm_80685210(f32 arg0, s16 arg1, s16 arg2) {
}
}
void func_global_asm_806852C4(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
void func_global_asm_806852C4(f32 scale, f32 x, f32 y, f32 z) {
s16 i;
for (i = 0; i < 8; i++) {
@ -272,7 +272,7 @@ void func_global_asm_806852C4(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
func_global_asm_80714950(i);
func_global_asm_807149B8(1);
changeActorColor(0xFF, 0xFF, 0xFF, 0xC8);
drawSpriteAtPosition(&D_global_asm_8071FFA0, arg0, arg1, arg2, arg3);
drawSpriteAtPosition(&D_global_asm_8071FFA0, scale, x, y, z);
}
}
@ -324,13 +324,13 @@ void func_global_asm_80685390(void) {
}
*/
void func_global_asm_80685520(f32 arg0, u8 arg1, f32 arg2, f32 arg3, f32 arg4) {
void func_global_asm_80685520(f32 scale, u8 arg1, f32 x, f32 y, f32 z) {
s32 temp_s0;
s32 i;
if (D_global_asm_80750AD0 == 0) {
if (arg1 > 0) {
func_global_asm_806852C4(arg0, arg2, arg3, arg4);
func_global_asm_806852C4(scale, x, y, z);
}
if (arg1 >= 2) {
for (i = 0; i < 8; i++) {
@ -339,7 +339,7 @@ void func_global_asm_80685520(f32 arg0, u8 arg1, f32 arg2, f32 arg3, f32 arg4) {
func_global_asm_807149B8(1);
func_global_asm_807149FC(-1);
changeActorColor(0xFF, 0xFF, 0xFF, 0xFF);
drawSpriteAtPosition(&D_global_asm_8071FF40, arg0 * 0.5, arg2, arg3, arg4);
drawSpriteAtPosition(&D_global_asm_8071FF40, scale * 0.5, x, y, z);
}
}
if (arg1 >= 3) {
@ -349,7 +349,7 @@ void func_global_asm_80685520(f32 arg0, u8 arg1, f32 arg2, f32 arg3, f32 arg4) {
func_global_asm_807149B8(1);
func_global_asm_807149FC(-1);
changeActorColor(0xFF, 0xFF, 0xFF, 0xFF);
drawSpriteAtPosition(D_global_asm_8074E880[i % 3], arg0, arg2, arg3, arg4);
drawSpriteAtPosition(D_global_asm_8074E880[i % 3], scale, x, y, z);
}
}
}
@ -382,18 +382,18 @@ void func_global_asm_8068588C(Actor *arg0, s16 arg1, f32 arg2, f32 arg3, f32 arg
func_global_asm_806858E8(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
}
void func_global_asm_806858E8(Actor *arg0, s16 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, s32 arg6) {
void func_global_asm_806858E8(Actor *arg0, s16 arg1, f32 scale, f32 x, f32 y, f32 z, s32 arg6) {
if (arg0 != NULL) {
if (arg1 != 0) {
getBonePosition(arg0, arg1, &arg3, &arg4, &arg5);
getBonePosition(arg0, arg1, &x, &y, &z);
}
}
func_global_asm_8071498C(&func_global_asm_80718080);
func_global_asm_80714950(arg6);
drawSpriteAtPosition(&D_global_asm_8071FFA0, arg2, arg3, arg4 + 5.0f, arg5)->unk338 = arg0;
drawSpriteAtPosition(&D_global_asm_8071FFA0, scale, x, y + 5.0f, z)->unk338 = arg0;
}
void func_global_asm_80685984(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
void func_global_asm_80685984(f32 scale, f32 x, f32 y, f32 z) {
s32 pad;
if (((rand() >> 0xF) % 100) >= 0x33) {
@ -402,18 +402,18 @@ void func_global_asm_80685984(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
func_global_asm_807149B8(1);
changeActorColor(0x9B, 0x9B, 0x9B, 0xC8);
func_global_asm_8071498C(&func_global_asm_80719EF4);
drawSpriteAtPosition(&D_global_asm_8071FFA0, arg0, (((rand() >> 0xF) % 100000) % 10) + (arg1 - 5.0f), arg2, (((rand() >> 0xF) % 100000) % 10) + (arg3 - 5.0f));
drawSpriteAtPosition(&D_global_asm_8071FFA0, scale, (((rand() >> 0xF) % 100000) % 10) + (x - 5.0f), y, (((rand() >> 0xF) % 100000) % 10) + (z - 5.0f));
}
}
void func_global_asm_80685B44(void *arg0, u8 arg1, f32 arg2, u8 arg3, u8 arg4, s16 arg5, s16 arg6, s16 arg7, s16 arg8) {
s8 temp_s0;
s8 temp_s4;
void func_global_asm_80685B44(void *sprite, u8 arg1, f32 scale, u8 arg3, u8 arg4, s16 arg5, s16 x, s16 y, s16 z) {
s8 randomZOffset;
s8 randomXOffset;
s16 i;
for (i = 0; i < arg3; i++) {
temp_s4 = (((rand() >> 0xF) % 32767) % (arg4 * 2)) + -arg4;
temp_s0 = (((rand() >> 0xF) % 32767) % (arg4 * 2)) + -arg4;
randomXOffset = (((rand() >> 0xF) % 32767) % (arg4 * 2)) + -arg4;
randomZOffset = (((rand() >> 0xF) % 32767) % (arg4 * 2)) + -arg4;
func_global_asm_80714950(-arg5 - ((rand() >> 0xF) % 80));
func_global_asm_8071498C(&func_global_asm_807180F4);
func_global_asm_807149B8(1);
@ -421,7 +421,7 @@ void func_global_asm_80685B44(void *arg0, u8 arg1, f32 arg2, u8 arg3, u8 arg4, s
if (arg1) {
func_global_asm_8071496C(arg1);
}
drawSpriteAtPosition(arg0, arg2, arg6 + temp_s4, arg7, arg8 + temp_s0);
drawSpriteAtPosition(sprite, scale, x + randomXOffset, y, z + randomZOffset);
}
}
@ -599,7 +599,7 @@ void func_global_asm_80686CF8(Actor *arg0) {
}
}
void func_global_asm_80686E40(f32 arg0, f32 arg1, f32 arg2, s32 arg3) {
void func_global_asm_80686E40(f32 x, f32 y, f32 z, s32 arg3) {
s32 i;
s32 var_s4;
s32 var_s5;
@ -620,7 +620,7 @@ void func_global_asm_80686E40(f32 arg0, f32 arg1, f32 arg2, s32 arg3) {
func_global_asm_8071498C(&func_global_asm_80717930);
func_global_asm_8071496C(i >> var_s4);
func_global_asm_80714950(arg3);
drawSpriteAtPosition(D_global_asm_8074E880[i % 3], 0.5f, arg0, arg1, arg2);
drawSpriteAtPosition(D_global_asm_8074E880[i % 3], 0.5f, x, y, z);
}
}
@ -724,12 +724,12 @@ void func_global_asm_806877C8(u8 arg0) {
}
void func_global_asm_8068780C(u8 arg0, u8 arg1, u8 arg2, u8 arg3) {
f32 sp74;
f32 sp70;
f32 sp6C;
f32 sp68;
f32 sp64;
f32 sp60;
f32 x1;
f32 y1;
f32 z1;
f32 x2;
f32 y2;
f32 z2;
f32 sp5C;
f32 sp58;
f32 sp54;
@ -737,15 +737,15 @@ void func_global_asm_8068780C(u8 arg0, u8 arg1, u8 arg2, u8 arg3) {
f32 sp4C;
f32 sp48;
u16 sp46; // Padding, not used
u8 sp45;
u8 sp44;
u8 boneIndex1;
u8 boneIndex2;
sp45 = (((rand() >> 0xF) % 32767) % ((arg1 - arg0) + 1)) + arg0;
sp44 = (((rand() >> 0xF) % 32767) % ((arg3 - arg2) + 1)) + arg2;
getBonePosition(current_actor_pointer, sp45, &sp74, &sp70, &sp6C);
getBonePosition(current_actor_pointer, sp44, &sp68, &sp64, &sp60);
func_global_asm_80626F8C(sp74, sp70, sp6C, &sp58, &sp54, 0, 1.0f, 0);
func_global_asm_80626F8C(sp68, sp64, sp60, &sp50, &sp4C, 0, 1.0f, 0);
boneIndex1 = (((rand() >> 0xF) % 32767) % ((arg1 - arg0) + 1)) + arg0;
boneIndex2 = (((rand() >> 0xF) % 32767) % ((arg3 - arg2) + 1)) + arg2;
getBonePosition(current_actor_pointer, boneIndex1, &x1, &y1, &z1);
getBonePosition(current_actor_pointer, boneIndex2, &x2, &y2, &z2);
func_global_asm_80626F8C(x1, y1, z1, &sp58, &sp54, 0, 1.0f, 0);
func_global_asm_80626F8C(x2, y2, z2, &sp50, &sp4C, 0, 1.0f, 0);
sp5C = ((func_global_asm_80665DE0(sp50, sp4C, sp58, sp54) * 0x168) / 4096) + 0x5A;
if (sp5C < 270.0f) {
sp5C += 180.0f;
@ -755,7 +755,7 @@ void func_global_asm_8068780C(u8 arg0, u8 arg1, u8 arg2, u8 arg3) {
func_global_asm_807149FC(1);
func_global_asm_80714950(sp5C);
func_global_asm_8071498C(&func_global_asm_8071E028);
drawSpriteAtPosition(&D_global_asm_80720B24, sp48 * 0.008, (sp74 + sp68) * 0.5, (sp70 + sp64) * 0.5, (sp6C + sp60) * 0.5);
drawSpriteAtPosition(&D_global_asm_80720B24, sp48 * 0.008, (x1 + x2) * 0.5, (y1 + y2) * 0.5, (z1 + z2) * 0.5);
if (((rand() >> 0xF) % 1000) & 1) {
func_global_asm_806595F0(1);
createLight(current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position, 0.0f, 0.0f, 0.0f, 150.0f, 0, 0x96, 0x64, 0xFF);

View File

@ -296,9 +296,9 @@ void func_global_asm_80690500(void) {
A178_80690500 *a178;
AAD_global_asm_80690500_unk104 *aaD_104;
u8 sp4B;
f32 sp44;
f32 sp40;
f32 sp3C;
f32 x;
f32 y;
f32 z;
aaD = current_actor_pointer->additional_actor_data;
a178 = current_actor_pointer->unk178;
@ -321,13 +321,13 @@ void func_global_asm_80690500(void) {
setAction(0x4C, current_actor_pointer, PaaD->unk1A4);
}
if (func_global_asm_8061CB50() == 0 || (func_global_asm_8061CB50() != 0 && player_pointer->unk6A & 0x100)) {
getBonePosition(current_actor_pointer, 1, &sp44, &sp40, &sp3C);
createLight(sp44, sp40, sp3C, 0.0f, 0.0f, 0.0f, 300.0f, 0, 0xFF, 0xFF, 0xFF);
getBonePosition(current_actor_pointer, 1, &x, &y, &z);
createLight(x, y, z, 0.0f, 0.0f, 0.0f, 300.0f, 0, 0xFF, 0xFF, 0xFF);
if (isFlagSet(0x6B, FLAG_TYPE_TEMPORARY) == 0) {
if (func_global_asm_8061CB50() != 0) {
if (player_pointer->unk6A & 0x100) {
getBonePosition(current_actor_pointer, 2, &sp44, &sp40, &sp3C);
func_global_asm_8070033C(sp44, sp40, sp3C, 0.0f, 0.0f, 0.0f, 0.0f, 0xFF, 0xFF, 0xFF);
getBonePosition(current_actor_pointer, 2, &x, &y, &z);
func_global_asm_8070033C(x, y, z, 0.0f, 0.0f, 0.0f, 0.0f, 0xFF, 0xFF, 0xFF);
}
}
if (func_global_asm_8061CB50() == 0) {
@ -407,13 +407,13 @@ void func_global_asm_80690AB0(s16 arg0, s16 arg1, s16 arg2, s16 arg3, f32 arg4,
func_global_asm_80690930(var_s0, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
}
void func_global_asm_80690BE8(s16 arg0, s16 arg1, f32 arg2, Actor *arg3, s32 arg4, f32 arg5, Actor *arg6) {
f32 sp34;
f32 sp30;
f32 sp2C;
void func_global_asm_80690BE8(s16 arg0, s16 arg1, f32 arg2, Actor *arg3, s32 boneIndex, f32 arg5, Actor *arg6) {
f32 x;
f32 y;
f32 z;
getBonePosition(arg3, arg4, &sp34, &sp30, &sp2C);
func_global_asm_80690A28(arg0, arg1, arg2, sp34, sp30, sp2C, arg5, arg6);
getBonePosition(arg3, boneIndex, &x, &y, &z);
func_global_asm_80690A28(arg0, arg1, arg2, x, y, z, arg5, arg6);
}
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_936B0/func_global_asm_80690C60.s")

View File

@ -570,9 +570,9 @@ void func_global_asm_806A0310(void) {
void func_global_asm_806A0330(void) {
s32 pad[8];
s32 i;
f32 sp68;
f32 sp64;
f32 sp60;
f32 x;
f32 y;
f32 z;
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {
current_actor_pointer->noclip_byte = 0x1C;
@ -600,12 +600,12 @@ void func_global_asm_806A0330(void) {
func_global_asm_8061F0B0(D_global_asm_807F5D10, 0xF, 0xF);
playSoundAtActorPosition(current_actor_pointer, 0x162, 0xE1, 0x3C, 1);
for (i = 1; i < 7; i++) {
getBonePosition(current_actor_pointer, i, &sp68, &sp64, &sp60);
getBonePosition(current_actor_pointer, i, &x, &y, &z);
func_global_asm_8071496C(i);
func_global_asm_807149B8(1);
func_global_asm_8071498C(&func_global_asm_8071BB14);
changeActorColor(0xFF, 0xFF, 0xFF, 0x96);
drawSpriteAtPosition(&D_global_asm_80720BE8, 1.5f, sp68, sp64, sp60);
drawSpriteAtPosition(&D_global_asm_80720BE8, 1.5f, x, y, z);
}
deleteActor(current_actor_pointer);
}

View File

@ -104,7 +104,7 @@ void func_global_asm_806A1ABC(void) {
extern s32 D_global_asm_8071FFA0;
void func_global_asm_806A1AC4(void) {
f32 temp_f20;
f32 randomScale;
s16 i;
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {
@ -152,13 +152,13 @@ void func_global_asm_806A1AC4(void) {
case 0:
if ((object_timer & 7) == 0) {
for (i = 0; i < 0xC; i++) {
temp_f20 = ((((rand() >> 0xF) % 32767) % 171) + 0x96) * 0.01;
randomScale = ((((rand() >> 0xF) % 32767) % 171) + 0x96) * 0.01;
func_global_asm_8071498C(&func_global_asm_8071E864);
func_global_asm_80714950(i);
func_global_asm_807149B8(1);
changeActorColor(0x8C, 0x8C, 0x8C, 0xFF);
func_global_asm_80714998(5);
drawSpriteAtPosition(&D_global_asm_8071FFA0, temp_f20, current_actor_pointer->x_position, current_actor_pointer->y_position + 50.0f, current_actor_pointer->z_position);
drawSpriteAtPosition(&D_global_asm_8071FFA0, randomScale, current_actor_pointer->x_position, current_actor_pointer->y_position + 50.0f, current_actor_pointer->z_position);
}
}
break;
@ -217,9 +217,9 @@ void func_global_asm_806A1FD8(void) {
AAD_global_asm_806A1FD8 *aaD;
s32 i;
u8 var_a1;
f32 sp54;
f32 sp50;
f32 sp4C;
f32 x;
f32 y;
f32 z;
Actor *temp_s0;
aaD = current_actor_pointer->additional_actor_data;
@ -230,7 +230,7 @@ void func_global_asm_806A1FD8(void) {
aaD->unk8 = current_actor_pointer->y_position;
current_actor_pointer->unk130 = 0x46;
current_actor_pointer->unk131 = 0x14;
if (isFlagSet(func_global_asm_80688C30(func_global_asm_80688E68(current_actor_pointer)), FLAG_TYPE_PERMANENT) != 0) {
if (isFlagSet(func_global_asm_80688C30(func_global_asm_80688E68(current_actor_pointer)), FLAG_TYPE_PERMANENT)) {
deleteActor(current_actor_pointer);
}
}
@ -255,8 +255,8 @@ void func_global_asm_806A1FD8(void) {
func_global_asm_8071498C(&func_global_asm_80717D4C);
func_global_asm_80714950(-0x64);
changeActorColor(0x64, 0x46, 0x1E, 0xFF);
getBonePosition(current_actor_pointer, i, &sp54, &sp50, &sp4C);
drawSpriteAtPosition(&D_global_asm_8071FF18, 2.0f, sp54, sp50 + 10.0, sp4C);
getBonePosition(current_actor_pointer, i, &x, &y, &z);
drawSpriteAtPosition(&D_global_asm_8071FF18, 2.0f, x, y + 10.0, z);
}
aaD->unk0 = 0xF;
playSoundAtActorPosition(current_actor_pointer, 0x1C1, 0xFF, 0x7F, 1);

View File

@ -107,7 +107,6 @@ void func_global_asm_806A4DDC(Actor *arg0);
void func_global_asm_806A5DF0(s16 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4, u8 arg5, s16 arg6, s32 arg7);
s32 func_global_asm_80723020(Actor *arg0, s32 arg1, s32 arg2, f32 arg3, f32 arg4, f32 arg5, u8 arg6);
void func_global_asm_806F91B4(s32 HUDItemIndex, u8 playerIndex, s16 amount);
void func_global_asm_80723484(s32, Actor*);
void func_global_asm_807149FC(s32 arg0);
@ -858,7 +857,7 @@ void func_global_asm_806A7600(void *arg0) {
setFlag(sp34->unk6, TRUE, FLAG_TYPE_PERMANENT);
}
func_global_asm_806F8BC4(0, 0, 0);
func_global_asm_806F91B4(0, 0, 0xA);
changeCollectableCount(0, 0, 10);
}
}
@ -910,7 +909,7 @@ void func_global_asm_806A7BDC(void) {
func_global_asm_80714C08(sp44.unk0[sp60], 0.2f, current_actor_pointer, 1, 0);
playSong(0x7F, 1.0f);
func_global_asm_806F8BC4(7, 0, 0);
func_global_asm_806F91B4(7, 0, func_global_asm_806F8EDC(7, 0));
changeCollectableCount(7, 0, func_global_asm_806F8EDC(7, 0));
}
if (!(object_timer & 0xF)) {
func_global_asm_807149B8(1);

View File

@ -56,20 +56,20 @@ void func_global_asm_806ADFE0(void) {
}
}
void func_global_asm_806AE2B0(s32 modelIndex, s16 arg1, s16 arg2, s16 arg3) {
f32 sp2C;
f32 sp28;
f32 sp24;
void func_global_asm_806AE2B0(s32 modelIndex, s16 arg1, s16 boneIndex, s16 arg3) {
f32 x;
f32 y;
f32 z;
if (spawnActor(ACTOR_KROSSBONES_HEAD, modelIndex)) {
getBonePosition(current_actor_pointer, arg2, &sp2C, &sp28, &sp24);
getBonePosition(current_actor_pointer, boneIndex, &x, &y, &z);
last_spawned_actor->floor = current_actor_pointer->floor;
last_spawned_actor->y_rotation = current_actor_pointer->y_rotation + arg1;
last_spawned_actor->unkEE = last_spawned_actor->y_rotation;
last_spawned_actor->unk168 = arg3;
last_spawned_actor->x_position = sp2C;
last_spawned_actor->y_position = sp28;
last_spawned_actor->z_position = sp24;
last_spawned_actor->x_position = x;
last_spawned_actor->y_position = y;
last_spawned_actor->z_position = z;
func_global_asm_807248B0(last_spawned_actor, current_actor_pointer->animation_state->scale_y);
}
}

View File

@ -8,13 +8,13 @@ extern s32 D_global_asm_80750600[];
// TODO: Are these correct?
extern s32 D_global_asm_8071FFA0;
void func_global_asm_806B11C0(u8 arg0) {
f32 sp3C, sp38, sp34;
void func_global_asm_806B11C0(u8 boneIndex) {
f32 x, y, z;
getBonePosition(current_actor_pointer, arg0, &sp3C, &sp38, &sp34);
func_global_asm_80685B44(&D_global_asm_8071FFA0, 0, 1.0f, 3, 5, 0x28, sp3C, current_actor_pointer->floor, sp34);
getBonePosition(current_actor_pointer, boneIndex, &x, &y, &z);
func_global_asm_80685B44(&D_global_asm_8071FFA0, 0, 1.0f, 3, 5, 0x28, x, current_actor_pointer->floor, z);
// spawnShockwave
func_global_asm_806846B4(sp3C, current_actor_pointer->floor, sp34, 0.05f, 0.04, current_actor_pointer, 0);
func_global_asm_806846B4(x, current_actor_pointer->floor, z, 0.05f, 0.04, current_actor_pointer, 0);
}
void func_global_asm_806B1290(void) {

View File

@ -20,7 +20,7 @@ void func_global_asm_806B9CB0() {
renderActor(current_actor_pointer, 0);
}
void func_global_asm_806B9CE0(u8 arg0, s8 arg1) {
void func_global_asm_806B9CE0(u8 arg0, s8 yOffset) {
switch (arg0) {
case 0:
func_global_asm_8071498C(&func_global_asm_8071720C);
@ -35,7 +35,7 @@ void func_global_asm_806B9CE0(u8 arg0, s8 arg1) {
D_global_asm_8074E880[((rand() >> 0xF) % 1000) % 3],
(((rand() >> 0xF) % 256) * 0.001953125) + 0.5,
((rand() >> 0xF) % 6) + (current_actor_pointer->x_position - 3.0f),
current_actor_pointer->y_position + arg1,
current_actor_pointer->y_position + yOffset,
((rand() >> 0xF) % 6) + (current_actor_pointer->z_position - 3.0f)
);
}

View File

@ -29,7 +29,6 @@ extern u16 D_global_asm_807FC930[];
void func_global_asm_8061C518(Actor*, Actor*, s32, s32, s32, s32, s32, s32, s32, s32, f32);
void func_global_asm_8061C600(Actor*, Actor*, s32, s32, s32, s32, s32, s32, s32, s32, f32);
void func_global_asm_806BF920(void);
void func_global_asm_806F91B4(s32, u8, s32);
int func_global_asm_807035C4(); // TODO: Signature
void func_global_asm_80718BF4(void);
int func_global_asm_807197B4(); // TODO: Signature
@ -152,7 +151,7 @@ void func_global_asm_806BE09C(void) {
if (!(object_timer & 3)) {
sp3C = &D_global_asm_807FC950->character_progress[*current_character_index];
D_global_asm_807FDC90->unk2C--;
func_global_asm_806F91B4(0, 0, -1);
changeCollectableCount(0, 0, -1);
sp3C->coloured_bananas_fed_to_tns[levelIndex]++;
for (i = 0; i < 5; i++) { count += D_global_asm_807FC950[0].character_progress[i].coloured_bananas_fed_to_tns[levelIndex]; }
if (count >= D_global_asm_807446C0[levelIndex]) {
@ -920,14 +919,14 @@ void func_global_asm_806C28B8(void) {
}
*/
void func_global_asm_806C2A64(u8 arg0, u8 arg1, u8 arg2, f32 arg3, f32 arg4, f32 arg5, void *arg6, f32 arg7) {
void func_global_asm_806C2A64(u8 arg0, u8 arg1, u8 arg2, f32 x, f32 y, f32 z, void *sprite, f32 scale) {
func_global_asm_807149A8(1000);
func_global_asm_80714998(0xFF);
func_global_asm_80714944(((rand() >> 0xF) % 32767) % 11);
changeActorColor(arg0, arg1, arg2, 0xFF);
func_global_asm_8071498C(&func_global_asm_80717D84);
func_global_asm_80714950(2);
drawSpriteAtPosition(arg6, arg7 * 0.2, arg3, arg4, arg5);
drawSpriteAtPosition(sprite, scale * 0.2, x, y, z);
}
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_C2A90/func_global_asm_806C2B2C.s")

View File

@ -59,8 +59,6 @@ extern ExitData D_global_asm_807FC908;
extern ExitData D_global_asm_807FC918;
extern s16 D_global_asm_807FC930[];
void func_global_asm_806F91B4(s32, u8, s32);
void func_global_asm_806C7B00(void) {
s16 i;
for (i = 0; i < 0xE; i++) {
@ -697,11 +695,11 @@ void func_global_asm_806C9AE0(void) {
D_global_asm_807FD56C = 0;
}
void func_global_asm_806C9C1C(s32 arg0) {
void func_global_asm_806C9C1C(s32 playerIndex) {
s32 i;
for (i = 0; i < 5; i++) {
func_global_asm_806F91B4(D_global_asm_80750B34[i], arg0, 9999);
changeCollectableCount(D_global_asm_80750B34[i], playerIndex, 9999);
}
func_global_asm_806F833C(0);
}

View File

@ -96,7 +96,6 @@ extern s16 D_global_asm_807FD584; // index into a ton of arrays
extern u8 D_global_asm_807FD586;
void func_global_asm_8062217C(Actor*, u8);
void func_global_asm_806F91B4(s32, s32, s16);
int func_global_asm_806FF358(); // TODO: Signature
int func_global_asm_806FF75C(); // TODO: Signature
void func_global_asm_80665160(Actor *, s16, s16);
@ -316,7 +315,7 @@ void func_global_asm_806CA2E4(void) {
current_actor_pointer->control_state = 0x2D;
current_actor_pointer->control_state_progress = 0;
func_global_asm_806F8BC4(5, 0, 0);
func_global_asm_806F91B4(5, extra_player_info_pointer->unk1A4, -1 * func_global_asm_806FA7A4(5));
changeCollectableCount(5, extra_player_info_pointer->unk1A4, -1 * func_global_asm_806FA7A4(5));
playAnimation(current_actor_pointer, 0x42);
playSoundAtActorPosition(current_actor_pointer, 0xF2, 0xFF, 0x7F, 0);
current_actor_pointer->unkB8 = 0.0f;
@ -388,7 +387,7 @@ void func_global_asm_806CB53C(void) {
}
if (!(D_global_asm_80750B54[current_actor_pointer->control_state].unk0 & 0x300) && !(extra_player_info_pointer->unk1F0 & 0x14000) && !func_global_asm_8061CB50()) {
if ((extra_player_info_pointer->unk1F4 & 0x10) == 0) {
func_global_asm_806F91B4(5, extra_player_info_pointer->unk1A4, -1);
changeCollectableCount(5, extra_player_info_pointer->unk1A4, -1);
}
}
} else {
@ -1266,23 +1265,23 @@ void func_global_asm_806CEE64(f32 arg0) {
}
void func_global_asm_806CEED8(void) {
f32 sp44; // 44
f32 sp40; // 40
f32 sp3C; // 3C
f32 sp38; // 38
f32 sp34; // 34
f32 sp30; // 30
f32 d; // 2C
f32 sp28; // 28
s32 sp24; // 24
s32 sp20; // 20
f32 x2;
f32 x1;
f32 y2;
f32 y1;
f32 z2;
f32 z1;
f32 dxz;
f32 dy;
s32 boneIndex1;
s32 boneIndex2;
func_global_asm_806CF2EC(&sp24, &sp20);
getBonePosition(current_actor_pointer, sp24, &sp40, &sp38, &sp30);
getBonePosition(current_actor_pointer, sp20, &sp44, &sp3C, &sp34);
sp28 = sp3C - sp38;
d = sqrtf(((sp34 - sp30) * (sp34 - sp30)) + ((sp44 - sp40) * (sp44 - sp40)));
extra_player_info_pointer->unk1BC = ((0.0 - (func_global_asm_80611BB4(sp28, d) * 57.29577637f)) + 270.0);
func_global_asm_806CF2EC(&boneIndex1, &boneIndex2);
getBonePosition(current_actor_pointer, boneIndex1, &x1, &y1, &z1);
getBonePosition(current_actor_pointer, boneIndex2, &x2, &y2, &z2);
dy = y2 - y1;
dxz = sqrtf(((z2 - z1) * (z2 - z1)) + ((x2 - x1) * (x2 - x1)));
extra_player_info_pointer->unk1BC = ((0.0 - (func_global_asm_80611BB4(dy, dxz) * 57.29577637f)) + 270.0);
}
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_CEAE0/func_global_asm_806CEFBC.s")
@ -2541,21 +2540,21 @@ void func_global_asm_806D25CC(void) {
}
void func_global_asm_806D266C(void) {
f32 sp2C, sp28, sp24;
f32 x, y, z;
func_global_asm_806D2378();
func_global_asm_806D25CC();
getBonePosition(current_actor_pointer, 3, &sp2C, &sp28, &sp24);
func_global_asm_806F4D70(cc_player_index, sp2C, sp28, sp24, 25.0f);
getBonePosition(current_actor_pointer, 3, &x, &y, &z);
func_global_asm_806F4D70(cc_player_index, x, y, z, 25.0f);
}
void func_global_asm_806D26D8(void) {
f32 sp2C, sp28, sp24;
f32 x, y, z;
func_global_asm_806D2378();
func_global_asm_806D25CC();
getBonePosition(current_actor_pointer, 2, &sp2C, &sp28, &sp24);
func_global_asm_806F4D70(cc_player_index, sp2C, sp28, sp24, 25.0f);
getBonePosition(current_actor_pointer, 2, &x, &y, &z);
func_global_asm_806F4D70(cc_player_index, x, y, z, 25.0f);
}
void func_global_asm_806D2744(s32 arg0) {

View File

@ -78,7 +78,6 @@ extern s32 D_global_asm_807FBB68;
extern f32 D_global_asm_807FBC58;
extern s16 D_global_asm_807FD584; // index into a ton of arrays
void func_global_asm_806F91B4(s32, s32, s16);
void func_global_asm_80665160(Actor *, s16, s16);
f32 func_global_asm_806CD898(f32 currentSpeed, f32 desiredSpeed, f32 boostAmount); // boostSpeed
void func_global_asm_806CEE64(f32);
@ -236,7 +235,7 @@ void func_global_asm_806D2E9C(void) {
if (func_global_asm_8061CB50() == 0) {
func_global_asm_806CC948();
if ((func_global_asm_806F8AD4(5, cc_player_index) != 0) && !(extra_player_info_pointer->unk1F0 & 0x10000)) {
func_global_asm_806F91B4(5, cc_player_index, -1);
changeCollectableCount(5, cc_player_index, -1);
}
}
renderActor(current_actor_pointer, 0);
@ -3132,7 +3131,7 @@ void func_global_asm_806DED44(void) {
func_global_asm_80709464(PaaD->unk1A4);
for (i = 0; i < 4; i++) {
func_global_asm_806F91B4(D_global_asm_80750FE0[i], 0, 9999);
changeCollectableCount(D_global_asm_80750FE0[i], 0, 9999);
func_global_asm_806F8BC4(D_global_asm_80750FE0[i], 0, 0);
}
}

View File

@ -39,7 +39,6 @@ extern u8 D_global_asm_807FC8B9;
extern s16 D_global_asm_807FD584; // index into a ton of arrays
extern f32 D_global_asm_807FD888;
void func_global_asm_806F91B4(s32, s32, s16);
f32 func_global_asm_806DFFA0(f32, s16, s16);
void func_global_asm_806EAB44(Actor *arg0, u8 arg1);
s32 handleInputsForControlState(s32 arg0);
@ -1702,7 +1701,7 @@ void func_global_asm_806E52D0(void) {
current_actor_pointer->noclip_byte = 1;
}
if (!temp_v1) {
func_global_asm_806F91B4(7, cc_player_index, -1);
changeCollectableCount(7, cc_player_index, -1);
}
}
if (!temp_v1) {

View File

@ -59,7 +59,6 @@ extern f32 D_global_asm_807FD888;
extern void func_global_asm_8068E474(void);
void func_global_asm_8061C2F0(Actor *, f32, f32, f32, f32, f32, f32, s32);
void func_global_asm_8062217C(Actor*, u8);
void func_global_asm_806F91B4(s32, s32, s16);
void func_global_asm_806EAB44(Actor *arg0, u8 arg1);
void func_global_asm_806CFECC(void);
s16 func_global_asm_8062773C(s32);
@ -857,7 +856,7 @@ void func_global_asm_806E9BA8(s32 arg0) {
playSound(0x263, 0x7FFF, 63.0f, 1.0f, 0xA, 0);
current_actor_pointer->control_state = arg0;
current_actor_pointer->control_state_progress = 0;
func_global_asm_806F91B4(6, cc_player_index, -1);
changeCollectableCount(6, cc_player_index, -1);
createLight(
character_change_array[cc_player_index].look_at_eye_x,
character_change_array[cc_player_index].look_at_eye_y,

View File

@ -9,9 +9,9 @@ extern s16 D_global_asm_807FD724;
extern u8 D_global_asm_80754238[];
typedef struct {
f32 unk0;
f32 unk4;
f32 unk8;
f32 unk0; // x
f32 unk4; // y
f32 unk8; // z
f32 unkC;
} Struct807FD740;
@ -25,12 +25,12 @@ void func_global_asm_806F4750() {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_F9450/func_global_asm_806F4778.s")
void func_global_asm_806F4D70(u8 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
D_global_asm_807FD740[arg0].unk0 = arg1;
D_global_asm_807FD740[arg0].unk4 = arg2;
D_global_asm_807FD740[arg0].unk8 = arg3;
D_global_asm_807FD740[arg0].unkC = arg4;
D_global_asm_807FD780[arg0] = NULL;
void func_global_asm_806F4D70(u8 playerIndex, f32 x, f32 y, f32 z, f32 arg4) {
D_global_asm_807FD740[playerIndex].unk0 = x;
D_global_asm_807FD740[playerIndex].unk4 = y;
D_global_asm_807FD740[playerIndex].unk8 = z;
D_global_asm_807FD740[playerIndex].unkC = arg4;
D_global_asm_807FD780[playerIndex] = NULL;
}
// close

View File

@ -606,10 +606,10 @@ u16 func_global_asm_806F8EDC(s32 HUDItemIndex, s32 playerIndex) {
}
// Close
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/hud/func_global_asm_806F91B4.s")
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/hud/changeCollectableCount.s")
/*
void func_global_asm_806F91B4(s32 HUDItemIndex, u8 playerIndex, s16 amount) {
void changeCollectableCount(s32 HUDItemIndex, u8 playerIndex, s16 amount) {
HUDDisplay *HUDItem;
CharacterProgress *sp48;
s32 maxItemCapacity;

View File

@ -54,8 +54,6 @@ void func_menu_80025FB4(MenuStruct1*, CharacterProgress*, s32);
void func_menu_80026B28(MenuStruct1*, CharacterProgress*, s32);
void func_menu_80026DAC(MenuStruct1*, CharacterProgress*, s32);
void func_global_asm_806F91B4(s32, s32, s16);
s32 func_menu_80025AF0(MenuStruct1 *arg0, s32 characterIndex) {
s32 phi_v1;
s32 phi_v0;
@ -170,9 +168,9 @@ void func_menu_80025E04(MenuStruct1 *arg0, CharacterProgress *arg1) {
}
break;
}
func_global_asm_806F91B4(1, 0, -arg0->unk4);
changeCollectableCount(1, 0, -arg0->unk4);
if (sp1E >= 0) {
func_global_asm_806F91B4(sp1E, 0, 9999);
changeCollectableCount(sp1E, 0, 9999);
}
func_global_asm_8060DEC8(); // saveTheGame()
}
@ -637,7 +635,7 @@ void func_menu_80026DAC(MenuStruct1 *arg0, CharacterProgress *arg1, s32 flagInde
temp2 = func_global_asm_806F8EDC(sp24, 0);
if (temp < temp2) {
loadText(current_actor_pointer, sp2C, sp28);
func_global_asm_806F91B4(sp24, 0, 999);
changeCollectableCount(sp24, 0, 999);
arg0->unkE = 0;
cutsceneIndex = 5;
}

View File

@ -89,7 +89,6 @@ void func_minecart_80024254(Struct80024254_arg0 *arg0) {
}
}
void func_global_asm_8072177C(Actor *, s16, s16, s16, s32, s32, s32, s32, s32);
void func_minecart_800253C0(void *, s16, u8);
extern s16 D_global_asm_80750AC4;
@ -125,9 +124,9 @@ void func_minecart_8002430C(u8 arg0, s32 arg1, s16 arg2, u8 arg3) {
f32 dx;
f32 dz;
f32 dy;
f32 sp60;
f32 sp5C;
f32 sp58;
f32 z;
f32 y;
f32 x;
aaD = current_actor_pointer->additional_actor_data;
PaaD = character_change_array->player_pointer->PaaD;
@ -198,30 +197,30 @@ void func_minecart_8002430C(u8 arg0, s32 arg1, s16 arg2, u8 arg3) {
func_global_asm_8068ECF4(6, 0xFF);
func_minecart_80024254(aaD);
func_minecart_800253C0(aaD, arg2, arg3);
getBonePosition(current_actor_pointer, 5, &sp58, &sp5C, &sp60);
func_global_asm_8072177C(current_actor_pointer, sp58, sp5C, sp60, 0xFF, 0xFF, 0xFF, 0xFF, 0);
func_global_asm_8072177C(aaD->unk4, sp58, sp5C, sp60, 0xFF, 0xFF, 0xFF, 0xFF, 0);
getBonePosition(current_actor_pointer, 5, &x, &y, &z);
addActorRecolor(current_actor_pointer, x, y, z, 0xFF, 0xFF, 0xFF, 0xFF, 0);
addActorRecolor(aaD->unk4, x, y, z, 0xFF, 0xFF, 0xFF, 0xFF, 0);
}
}
void func_minecart_80024768(void) {
f32 sp4C;
f32 sp48;
f32 sp44;
f32 sp40;
f32 sp3C;
f32 sp38;
f32 z2;
f32 y2;
f32 x2;
f32 z1;
f32 y1;
f32 x1;
if (extra_player_info_pointer->unk1F0 & 0x10000002) {
getBonePosition(current_actor_pointer, 2, &sp38, &sp3C, &sp40);
getBonePosition(current_actor_pointer, 1, &sp44, &sp48, &sp4C);
getBonePosition(current_actor_pointer, 2, &x1, &y1, &z1);
getBonePosition(current_actor_pointer, 1, &x2, &y2, &z2);
} else {
getBonePosition(current_actor_pointer, 1, &sp38, &sp3C, &sp40);
getBonePosition(current_actor_pointer, 2, &sp44, &sp48, &sp4C);
getBonePosition(current_actor_pointer, 1, &x1, &y1, &z1);
getBonePosition(current_actor_pointer, 2, &x2, &y2, &z2);
}
func_global_asm_8065A6F8(0xC8);
func_global_asm_8065A660(20.0f, 40.0f);
createLight(sp38, sp3C, sp40, sp44, sp48, sp4C, 0.0f, 1, 0xFF, 0xFF, 0xFF);
createLight(x1, y1, z1, x2, y2, z2, 0.0f, 1, 0xFF, 0xFF, 0xFF);
}
typedef struct {

View File

@ -107,11 +107,13 @@ void func_minecart_80026C54(void) {
func_global_asm_8071498C(&func_global_asm_80717D4C);
func_global_asm_807149B8(1);
func_global_asm_80714A28(4);
drawSpriteAtPosition(D_global_asm_8074E880[((rand() >> 0xF) % 1000) % 3],
drawSpriteAtPosition(
D_global_asm_8074E880[((rand() >> 0xF) % 1000) % 3],
0.5f,
((rand() >> 0xF) % 20) + (current_actor_pointer->x_position - 10.0f),
current_actor_pointer->y_position,
((rand() >> 0xF) % 20) + (current_actor_pointer->z_position - 10.0f));
((rand() >> 0xF) % 20) + (current_actor_pointer->z_position - 10.0f)
);
}
// Jumptable, huge
@ -200,8 +202,6 @@ void func_minecart_80027EE8(MinecartStruct1 *arg0) {
}
*/
s32 func_global_asm_8072177C(void *, s16, s16, s16, s32, s32, s32, s32, s32);
typedef struct {
u8 unk0[0x10 - 0x0];
s16 unk10;
@ -212,9 +212,9 @@ typedef struct {
void func_minecart_800280BC(void) {
A178_minecart_800280BC *sp54;
Struct807FBB70_unk278 *temp_v1;
f32 sp4C;
f32 sp48;
f32 sp44;
f32 z;
f32 y;
f32 x;
u8 *temp_v0_2;
sp54 = current_actor_pointer->unk178;
@ -254,8 +254,8 @@ void func_minecart_800280BC(void) {
func_global_asm_8068ECF4(6, 0xFF);
func_global_asm_8072B438(0x200);
func_minecart_800253C0(sp54, 0x7FFF, 0x23);
getBonePosition(current_actor_pointer, 5, &sp44, &sp48, &sp4C);
func_global_asm_8072177C(current_actor_pointer, sp44, sp48, sp4C, 0xFF, 0xFF, 0xFF, 0xFF, 0);
getBonePosition(current_actor_pointer, 5, &x, &y, &z);
addActorRecolor(current_actor_pointer, x, y, z, 0xFF, 0xFF, 0xFF, 0xFF, 0);
func_minecart_80027EE8(sp54);
break;
case 2:

View File

@ -53,7 +53,6 @@ void func_multiplayer_80025F84();
s32 func_multiplayer_80026BD8(s32);
void func_global_asm_806A5DF0(u16, f32, f32, f32, s32, s32, s32, s32);
void func_global_asm_806F91B4(s32, u8, s16);
void func_global_asm_806F54E0(u8, s32, s32);
extern int func_global_asm_8071F3C0(); // TODO: Signature
@ -570,31 +569,31 @@ void func_multiplayer_800268DC(Actor *arg0, PlayerAdditionalActorData *arg1, Pla
extra_player_info_pointer->unk21E = 0;
}
if ((D_global_asm_807552E8 == 3) || (D_global_asm_807552E8 == 5)) {
func_global_asm_806F91B4(1, arg1->unk1A4, -10);
changeCollectableCount(1, arg1->unk1A4, -10);
}
}
void func_multiplayer_8002698C(MultiplayerStruct0 *arg0) {
if (D_global_asm_807552E8 == 2) {
func_global_asm_806F91B4(1, arg0->unk1A4, -3);
changeCollectableCount(1, arg0->unk1A4, -3);
}
}
void func_multiplayer_800269C8(u8 arg0, s8 arg1) {
void func_multiplayer_800269C8(u8 playerIndex, s8 arg1) {
Actor *temp_s0;
struct_unknown_mp_aad* phi_v1;
s32 temp_v1;
s32 sp30;
PlayerProgress *temp_s1;
temp_s0 = character_change_array[arg0].player_pointer;
temp_s1 = &D_global_asm_807FC950[arg0];
temp_s0 = character_change_array[playerIndex].player_pointer;
temp_s1 = &D_global_asm_807FC950[playerIndex];
temp_v1 = temp_s1->health + temp_s1->unk2FD + arg1;
sp30 = temp_s1->unk2FA - temp_v1;
if ((func_global_asm_806F8AD4(1U, arg0) != 0) && ((temp_v1 <= 0) || (sp30 >= 2))) {
if ((func_global_asm_806F8AD4(1U, playerIndex) != 0) && ((temp_v1 <= 0) || (sp30 >= 2))) {
struct_unknown_mp_aad* aad = func_global_asm_8067ADB4(0x13E)->additional_actor_data;
aad->unk4C = 1;
func_global_asm_806F91B4(1, arg0, -0xA);
changeCollectableCount(1, playerIndex, -10);
if (D_global_asm_807552E8 == 5) {
func_multiplayer_80025F84();
}
@ -603,21 +602,21 @@ void func_multiplayer_800269C8(u8 arg0, s8 arg1) {
}
}
void func_multiplayer_80026B0C(s32 arg0) {
Actor *player = character_change_array[arg0].player_pointer;
void func_multiplayer_80026B0C(s32 playerIndex) {
Actor *player = character_change_array[playerIndex].player_pointer;
player->noclip_byte = 0xC;
switch (D_global_asm_807552E8) {
case 2:
func_global_asm_806F91B4(1, arg0, -3);
changeCollectableCount(1, playerIndex, -3);
break;
case 5:
func_global_asm_806F91B4(7, arg0, -0x40);
changeCollectableCount(7, playerIndex, -64);
// fallthrough
case 3:
func_multiplayer_800269C8(arg0, 0);
func_multiplayer_800269C8(playerIndex, 0);
break;
case 4:
func_global_asm_806F91B4(7, arg0, -1);
changeCollectableCount(7, playerIndex, -1);
break;
}
}

View File

@ -2,7 +2,6 @@
#include "functions.h"
f32 func_global_asm_80665E48(f32, f32, f32, f32);
s32 func_global_asm_8072177C(void *, s16, s16, s16, s32, s32, s32, s32, s32);
typedef struct {
u8 pad0[0x10 - 0x0];
@ -301,9 +300,9 @@ void func_race_80029054(void) {
A17C_race_80029054 *a17C;
Actor *temp;
A178_race_80029054 *sp48;
f32 sp44;
f32 sp40;
f32 sp3C;
f32 z;
f32 y;
f32 x;
a178 = current_actor_pointer->unk178;
a17C = current_actor_pointer->unk17C;
@ -322,10 +321,10 @@ void func_race_80029054(void) {
func_global_asm_8067E278(0, 1);
current_actor_pointer->control_state = 0x40;
}
getBonePosition(current_actor_pointer, 6, &sp3C, &sp40, &sp44);
func_global_asm_8072177C(current_actor_pointer, sp3C, sp40, sp44, 0xFF, 0xFF, 0xFF, 0xFF, 0);
getBonePosition(current_actor_pointer, 0xB, &sp3C, &sp40, &sp44);
func_global_asm_8072177C(current_actor_pointer, sp3C, sp40, sp44, 0xFF, 0xFF, 0xFF, 0xFF, 0);
getBonePosition(current_actor_pointer, 6, &x, &y, &z);
addActorRecolor(current_actor_pointer, x, y, z, 0xFF, 0xFF, 0xFF, 0xFF, 0);
getBonePosition(current_actor_pointer, 0xB, &x, &y, &z);
addActorRecolor(current_actor_pointer, x, y, z, 0xFF, 0xFF, 0xFF, 0xFF, 0);
func_race_80026354(a17C, a178, 1);
if (a178->unk34 == 0 && sp48->unk34 == 5) {
D_global_asm_807FDC9C[1].pad0[0] = 0;

View File

@ -210,6 +210,8 @@ __osViIntrCount = 0x80014FEC; // segment:dk64_boot
__osTimerCounter = 0x80014FF0; // segment:dk64_boot
__osEepPifRam = 0x800162E0; // segment:dk64_boot
addActorRecolor = 0x8072177C; // segment:global_asm
changeCollectableCount = 0x806F91B4; // segment:global_asm
getBonePosition = 0x80671C0C; // segment:global_asm
moveAndScaleActorToAnother = 0x8067B238; // segment:global_asm
getTextString = 0x8070E750; // segment:global_asm