mirror of
https://gitlab.com/dk64_decomp/dk64.git
synced 2024-11-23 07:01:58 +00:00
38.0406%
This commit is contained in:
parent
e78e7219fe
commit
22ebf3347e
@ -510,7 +510,7 @@ void func_global_asm_806A7BDC(void);
|
||||
void func_global_asm_806A7EF0(void);
|
||||
void func_global_asm_806A8070(void);
|
||||
s32 func_global_asm_8070943C(void);
|
||||
s32 func_global_asm_80709344(s32 arg0);
|
||||
Gfx *func_global_asm_80709344(Gfx *dl);
|
||||
void func_global_asm_80709464(u8 playerIndex);
|
||||
void func_global_asm_80698FEC(void);
|
||||
void func_global_asm_8069900C(void);
|
||||
|
@ -48,8 +48,16 @@ typedef struct {
|
||||
|
||||
// Finally!!!
|
||||
typedef struct {
|
||||
f32 unk0;
|
||||
f32 unk4;
|
||||
union {
|
||||
f32 unk0;
|
||||
s32 unk0_s32;
|
||||
s32 *unk0_s32_ptr;
|
||||
};
|
||||
union {
|
||||
f32 unk4;
|
||||
s32 unk4_s32;
|
||||
s32 *unk4_s32_ptr;
|
||||
};
|
||||
f32 unk8;
|
||||
} Struct807F5FD4_unk0;
|
||||
|
||||
@ -287,6 +295,7 @@ typedef struct {
|
||||
s16 unk2;
|
||||
s16 unk4;
|
||||
s16 unk6;
|
||||
// Note: This is correctly sized, if you get references to unk8, use unk1C[1].unk0 instead
|
||||
} AnimationStateUnk1C;
|
||||
|
||||
// TODO: Fill this in properly
|
||||
@ -379,7 +388,10 @@ typedef struct {
|
||||
};
|
||||
f32 unkC; // Used
|
||||
f32 unk10; // Used
|
||||
f32 unk14; // Used
|
||||
union {
|
||||
f32 unk14; // Used
|
||||
s32 unk14_s32; // Used // TODO: We might have another aaD situation here...
|
||||
};
|
||||
s32 unk18;
|
||||
s32 unk1C;
|
||||
s32 unk20;
|
||||
|
@ -3016,7 +3016,7 @@ us,asm,func_global_asm_80642BF0,136,yes
|
||||
us,asm,func_global_asm_80737A4C,40,yes
|
||||
us,asm,func_global_asm_80666AF8,656,no
|
||||
us,asm,func_global_asm_8072E320,556,yes
|
||||
us,asm,func_global_asm_806C6BC8,1496,no
|
||||
us,asm,func_global_asm_806C6BC8,1492,yes
|
||||
us,asm,func_global_asm_805FF2F4,132,yes
|
||||
us,asm,func_global_asm_8062D1E0,140,no
|
||||
us,asm,func_global_asm_8060131C,132,yes
|
||||
|
|
@ -3016,7 +3016,7 @@ us,asm,func_global_asm_80642BF0,136,yes
|
||||
us,asm,func_global_asm_80737A4C,40,yes
|
||||
us,asm,func_global_asm_80666AF8,656,no
|
||||
us,asm,func_global_asm_8072E320,556,yes
|
||||
us,asm,func_global_asm_806C6BC8,1496,no
|
||||
us,asm,func_global_asm_806C6BC8,1492,yes
|
||||
us,asm,func_global_asm_805FF2F4,132,yes
|
||||
us,asm,func_global_asm_8062D1E0,140,no
|
||||
us,asm,func_global_asm_8060131C,132,yes
|
||||
|
|
@ -9,7 +9,7 @@
|
||||
</mask>
|
||||
<g mask="url(#anybadge_1)">
|
||||
<path fill="#555" d="M0 0h77v20H0z"/>
|
||||
<path fill="#c09000" d="M77 0h67v20H77z"/>
|
||||
<path fill="#c09100" d="M77 0h67v20H77z"/>
|
||||
<path fill="url(#b)" d="M0 0h144v20H0z"/>
|
||||
</g>
|
||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||
@ -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">37.5681%</text>
|
||||
<text x="110.5" y="14">37.5681%</text>
|
||||
<text x="111.5" y="15" fill="#010101" fill-opacity=".3">37.6896%</text>
|
||||
<text x="110.5" y="14">37.6896%</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@ -17,7 +17,7 @@
|
||||
<text x="66.0" y="14">Donkey Kong 64 (US)</text>
|
||||
</g>
|
||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">37.9498%</text>
|
||||
<text x="165.5" y="14">37.9498%</text>
|
||||
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">38.0406%</text>
|
||||
<text x="165.5" y="14">38.0406%</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -7,7 +7,7 @@ s32 func_global_asm_807085D0(s32, PlayerProgress *, CharacterProgress *, void *)
|
||||
|
||||
extern s8 D_global_asm_80744504;
|
||||
|
||||
s16 func_global_asm_80708DA4(s32 arg0, s16 arg1, CharacterChange* arg2);
|
||||
Gfx *func_global_asm_80708DA4(Gfx *dl, s16 arg1, CharacterChange* arg2);
|
||||
|
||||
typedef struct global_asm_struct_21 {
|
||||
f32 unk0;
|
||||
@ -75,7 +75,7 @@ void func_global_asm_80708C24(s32 arg0, CharacterChange *arg1, PlayerProgress *a
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_10D2D0/func_global_asm_80708DA4.s")
|
||||
|
||||
/*
|
||||
s16 func_global_asm_80708DA4(s32 arg0, s16 arg1, CharacterChange* arg2) {
|
||||
Gfx *func_global_asm_80708DA4(Gfx *dl, s16 arg1, CharacterChange* arg2) {
|
||||
CharacterProgress *sp38;
|
||||
PlayerProgress *sp28;
|
||||
s32 temp_a0;
|
||||
@ -87,10 +87,10 @@ s16 func_global_asm_80708DA4(s32 arg0, s16 arg1, CharacterChange* arg2) {
|
||||
temp_a0 = cc_number_of_players == 1;
|
||||
var_t0 = arg2->unk2E4;
|
||||
temp = arg2->unk2E2;
|
||||
if (temp_a0 == 0) {
|
||||
if (!temp_a0) {
|
||||
var_t0 = 0;
|
||||
}
|
||||
if (temp_a0 == 0) {
|
||||
if (!temp_a0) {
|
||||
func_global_asm_80708C24(arg1, arg2, sp28, sp38);
|
||||
arg2->unk2E2 &= 0xFFEA;
|
||||
}
|
||||
@ -146,14 +146,14 @@ s16 func_global_asm_80708DA4(s32 arg0, s16 arg1, CharacterChange* arg2) {
|
||||
}
|
||||
if (func_global_asm_805FCA64() || (arg2->unk2E2 & 0x80)) {
|
||||
if (arg2->unk2E4 != 0 || arg2->unk2E2 != 0) {
|
||||
arg0 = func_global_asm_807085D0(arg0, sp28, sp38, arg2);
|
||||
dl = func_global_asm_807085D0(dl, sp28, sp38, arg2);
|
||||
}
|
||||
}
|
||||
return arg0;
|
||||
return dl;
|
||||
}
|
||||
*/
|
||||
|
||||
s32 func_global_asm_80709344(s32 arg0) {
|
||||
Gfx *func_global_asm_80709344(Gfx *dl) {
|
||||
s16 i;
|
||||
for (i = 0; i < cc_number_of_players; i++) {
|
||||
if (character_change_array[i].does_player_exist) {
|
||||
@ -162,11 +162,11 @@ s32 func_global_asm_80709344(s32 arg0) {
|
||||
|| character_change_array[i].unk2E2)
|
||||
&& (D_global_asm_80744504 == 0))
|
||||
|| (character_change_array[i].unk2E2 & 0x10))) {
|
||||
arg0 = func_global_asm_80708DA4(arg0, i, &character_change_array[i]);
|
||||
dl = func_global_asm_80708DA4(dl, i, &character_change_array[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return arg0;
|
||||
return dl;
|
||||
}
|
||||
|
||||
// Segments per melon
|
||||
|
@ -1532,6 +1532,7 @@ void func_global_asm_8064A194(s32 arg0, s16 arg1, s32 arg2, s32 arg3) {
|
||||
func_global_asm_806418E8(*var_v0_2, 0xA, 0);
|
||||
}
|
||||
|
||||
// 64 bit stuff
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_478F0/func_global_asm_8064A258.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_478F0/func_global_asm_8064A804.s")
|
||||
|
@ -29,9 +29,134 @@ u8 func_global_asm_8067B450(void) {
|
||||
}
|
||||
*/
|
||||
|
||||
// Jumptable
|
||||
// Jumptable, close, regalloc
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_80150/func_global_asm_8067B4C8.s")
|
||||
|
||||
void func_global_asm_80613CA8(Actor*, s32, f32, f32);
|
||||
extern s32 D_global_asm_8071FBC8; // TODO: Type
|
||||
extern u8 D_global_asm_807FBDC4;
|
||||
|
||||
typedef struct {
|
||||
Actor *unk0;
|
||||
f32 unk4;
|
||||
f32 unk8;
|
||||
f32 unkC;
|
||||
f32 unk10;
|
||||
u8 unk14;
|
||||
u8 unk15;
|
||||
} AAD_8067B4C8;
|
||||
|
||||
typedef struct {
|
||||
u8 unk0[0xB0 - 0x0];
|
||||
f32 unkB0;
|
||||
f32 unkB4;
|
||||
f32 unkB8;
|
||||
} AAD_8067B4C8_2;
|
||||
|
||||
/*
|
||||
void func_global_asm_8067B4C8(void) {
|
||||
s32 i;
|
||||
AAD_8067B4C8 *aaD;
|
||||
AAD_8067B4C8_2 *aaD2;
|
||||
|
||||
aaD = current_actor_pointer->additional_actor_data;
|
||||
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {
|
||||
current_actor_pointer->animation_state->unk1C = malloc(2 * sizeof(AnimationStateUnk1C));
|
||||
|
||||
// 1
|
||||
current_actor_pointer->animation_state->unk1C[0].unk0 = 0x7F;
|
||||
current_actor_pointer->animation_state->unk1C[0].unk1 = 2;
|
||||
current_actor_pointer->animation_state->unk1C[0].unk2 = (u32)((current_actor_pointer->unk124->unk0 * 65536.0f) / 360.0f);
|
||||
current_actor_pointer->animation_state->unk1C[0].unk4 = 0;
|
||||
current_actor_pointer->animation_state->unk1C[0].unk6 = 0;
|
||||
|
||||
// 2
|
||||
current_actor_pointer->animation_state->unk1C[1].unk0 = 0;
|
||||
|
||||
aaD->unk4 = current_actor_pointer->unk124->unk4;
|
||||
aaD->unk8 = current_actor_pointer->unk124->unk8;
|
||||
aaD->unkC = current_actor_pointer->unk124->unkC;
|
||||
aaD->unk10 = current_actor_pointer->unk124->unk10;
|
||||
aaD->unk15 = current_actor_pointer->unk124->unk14_s32;
|
||||
if ((current_actor_pointer->unk124->unk18 == 1) && (func_global_asm_8067B450(current_actor_pointer) == 0)) {
|
||||
current_actor_pointer->control_state = 0x14;
|
||||
current_actor_pointer->noclip_byte = 1;
|
||||
current_actor_pointer->object_properties_bitfield &= 0xFFFF7FFF;
|
||||
current_actor_pointer->shadow_opacity = 0;
|
||||
}
|
||||
if (current_map == MAP_DK_ISLES_OVERWORLD) {
|
||||
current_actor_pointer->object_properties_bitfield |= 0x400;
|
||||
}
|
||||
if (current_map == MAP_CASTLE_KING_KUT_OUT) {
|
||||
current_actor_pointer->draw_distance = 0x226;
|
||||
}
|
||||
}
|
||||
if (D_global_asm_807FBB70.unk200 == 4) {
|
||||
aaD->unk0 = D_global_asm_807FBB70.unk1FC;
|
||||
current_actor_pointer->control_state = 1;
|
||||
aaD->unk14 = 0xA;
|
||||
current_actor_pointer->noclip_byte = 1;
|
||||
aaD->unk0->y_rotation = current_actor_pointer->y_rotation;
|
||||
playCutscene(NULL, aaD->unk15, 1);
|
||||
}
|
||||
switch (current_actor_pointer->control_state) {
|
||||
case 1:
|
||||
aaD->unk14--;
|
||||
if (aaD->unk14 == 6) {
|
||||
func_global_asm_80614D00(current_actor_pointer, 1.0f, 0.0f);
|
||||
func_global_asm_80613CA8(current_actor_pointer, 0x346, 0, 0);
|
||||
}
|
||||
if (aaD->unk14 == 0) {
|
||||
current_actor_pointer->control_state = 2;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
func_global_asm_80679200(aaD->unk0, current_actor_pointer, 0x40, 1, 0, NULL);
|
||||
aaD2 = aaD->unk0->additional_actor_data;
|
||||
aaD2->unkB0 = aaD->unk8;
|
||||
aaD2->unkB4 = aaD->unkC;
|
||||
aaD2->unkB8 = aaD->unk10;
|
||||
func_global_asm_8067AAB8(current_actor_pointer, aaD->unk0, current_actor_pointer->y_rotation, 0.0f, aaD->unk4);
|
||||
func_global_asm_80679290(current_actor_pointer, current_actor_pointer, 0x800, 2, 0, 0, 0xA);
|
||||
func_global_asm_80714998(2);
|
||||
func_global_asm_807149B8(1);
|
||||
func_global_asm_80714C08(&D_global_asm_8071FBC8, 2.0f, current_actor_pointer, 1, 2);
|
||||
playSoundAtPosition(current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position, 0x17, 0xFF, 0x7F, 0x19, 0x1E, 0.3f, 0);
|
||||
current_actor_pointer->control_state++;
|
||||
aaD->unk14 = 4;
|
||||
break;
|
||||
case 3:
|
||||
aaD->unk14--;
|
||||
if (aaD->unk14 == 0) {
|
||||
current_actor_pointer->control_state = 0;
|
||||
}
|
||||
break;
|
||||
case 20:
|
||||
for (i = 0; i < D_global_asm_807FBB70.unk254; i++) {
|
||||
if (D_global_asm_807FBB70.unk258[i] == 1) {
|
||||
current_actor_pointer->unk0 = 2;
|
||||
current_actor_pointer->control_state = 0x15;
|
||||
}
|
||||
}
|
||||
if (func_global_asm_8067B450(current_actor_pointer) != 0) {
|
||||
current_actor_pointer->shadow_opacity = 0xFF;
|
||||
current_actor_pointer->object_properties_bitfield |= 0x8000;
|
||||
current_actor_pointer->control_state = 0;
|
||||
}
|
||||
break;
|
||||
case 21:
|
||||
// TODO: Hmm
|
||||
current_actor_pointer->unk0 = current_actor_pointer->unk0 + 0xA;
|
||||
if (current_actor_pointer->shadow_opacity >= 0xF1) {
|
||||
current_actor_pointer->object_properties_bitfield |= 0x8000;
|
||||
current_actor_pointer->control_state = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
renderActor(current_actor_pointer, 0);
|
||||
}
|
||||
*/
|
||||
|
||||
void func_global_asm_8067BA3C(void) {
|
||||
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {
|
||||
current_actor_pointer->draw_distance = 2000;
|
||||
|
@ -553,8 +553,86 @@ void func_global_asm_80686340(void) {
|
||||
func_global_asm_80714A28(4);
|
||||
}
|
||||
|
||||
// close, float regalloc, stack, other minor stuff
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_89250/func_global_asm_80686390.s")
|
||||
|
||||
s32 func_global_asm_8068613C(void); // TODO: Signature
|
||||
extern s32 D_global_asm_8071FBF4;
|
||||
|
||||
/*
|
||||
void func_global_asm_80686390(Actor *arg0, f32 arg1, f32 x, f32 y, f32 z) {
|
||||
f32 scale;
|
||||
s32 sp34;
|
||||
f64 sp28;
|
||||
ActorAnimationState *temp_v0;
|
||||
f32 temp_f0_2;
|
||||
f32 temp_f10;
|
||||
f32 temp_f2;
|
||||
f32 temp_f2_2;
|
||||
f32 var_f0;
|
||||
f32 var_f12;
|
||||
s32 temp_t6;
|
||||
|
||||
if (arg0 != NULL) {
|
||||
temp_v0 = arg0->animation_state;
|
||||
if (temp_v0 != NULL) {
|
||||
scale = temp_v0->scale[1] / 0.15;
|
||||
} else {
|
||||
scale = 1.0;
|
||||
}
|
||||
if (arg0->unk6A & 4) {
|
||||
if ((arg0->y_velocity > -10.0f) || (arg0->unk6A & arg0->unk6C & 1)) {
|
||||
var_f0 = 0.0f;
|
||||
} else {
|
||||
var_f0 = arg0->unkA0 - arg0->y_position;
|
||||
}
|
||||
temp_f2 = (arg0->unkAC - arg0->floor) * 2.0f;
|
||||
if (var_f0 < temp_f2) {
|
||||
var_f12 = var_f0;
|
||||
} else {
|
||||
var_f12 = temp_f2;
|
||||
}
|
||||
if (var_f12 < 0.0f) {
|
||||
var_f0 = 0.0f;
|
||||
} else {
|
||||
if (var_f0 < temp_f2) {
|
||||
var_f12 = var_f0;
|
||||
} else {
|
||||
var_f12 = temp_f2;
|
||||
}
|
||||
var_f0 = var_f12;
|
||||
}
|
||||
if ((arg0->unk58 == ACTOR_PROJECTILE_ORANGE) || (arg0->unk58 == ACTOR_PROJECTILE_LIME)) {
|
||||
playSoundAtActorPosition(arg0, 0x2C7, 0xFF, 0x7F, 1);
|
||||
} else if (var_f0 < 10.0f) {
|
||||
playSoundAtActorPosition(arg0, 0x10, (var_f0 * 25.5), 0x7F, 1);
|
||||
} else if (var_f0 < 20.0f) {
|
||||
playSoundAtActorPosition(arg0, 0xF, 0xFF, 0x7F, 1);
|
||||
} else {
|
||||
func_global_asm_8068613C();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
scale = arg1;
|
||||
}
|
||||
func_global_asm_80686340();
|
||||
sp28 = scale;
|
||||
drawSpriteAtPosition(&D_global_asm_8071FBF4, sp28 * 0.3, x, y, z);
|
||||
func_global_asm_80686340();
|
||||
func_global_asm_8071496C(2);
|
||||
sp34 = rand();
|
||||
temp_f2_2 = sp28 * 0.05;
|
||||
temp_t6 = (u8)(30.0f * scale);
|
||||
temp_f0_2 = (u8)(15.0f * scale);
|
||||
temp_f10 = (rand() >> 0xF) % temp_t6;
|
||||
drawSpriteAtPosition(&D_global_asm_8071FBF4, temp_f2_2, (((sp34 >> 0xF) % temp_t6) + x) - temp_f0_2, y, (temp_f10 + z) - temp_f0_2);
|
||||
func_global_asm_80686340();
|
||||
func_global_asm_8071496C(4);
|
||||
sp34 = rand();
|
||||
drawSpriteAtPosition(&D_global_asm_8071FBF4, temp_f2_2, (((sp34 >> 0xF) % temp_t6) + x) - temp_f0_2, y, (((rand() >> 0xF) % temp_t6) + z) - temp_f0_2);
|
||||
}
|
||||
*/
|
||||
|
||||
void func_global_asm_8068696C(Actor *actor) {
|
||||
s32 i;
|
||||
for (i = 0; i < 0x10; i++) {
|
||||
|
@ -80,6 +80,7 @@ void func_global_asm_806B3420(void) {
|
||||
renderActor(current_actor_pointer, 0);
|
||||
}
|
||||
|
||||
// close
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_B7490/func_global_asm_806B3680.s")
|
||||
|
||||
s32 func_global_asm_8072AB74(u8, f32, f32, s32, f32);
|
||||
@ -95,30 +96,31 @@ extern f32 D_global_asm_8075B5D8;
|
||||
extern s32 D_global_asm_8075B5DC;
|
||||
|
||||
void func_global_asm_8066E9EC(Actor*, s32, f32);
|
||||
u8 func_global_asm_8072D13C(u8 arg0, s32 arg1);
|
||||
|
||||
/*
|
||||
void func_global_asm_806B3680(void) {
|
||||
f32 var_f14;
|
||||
f32 var_f12;
|
||||
f32 sp54;
|
||||
f32 dx;
|
||||
f32 dz;
|
||||
f32 scale;
|
||||
f32 sp54;
|
||||
f32 dy;
|
||||
s32 *sp44;
|
||||
s16 i;
|
||||
|
||||
var_f14 = current_actor_pointer->animation_state->scale_y * 800.0f;
|
||||
scale = current_actor_pointer->animation_state->scale_y * 800.0f;
|
||||
sp54 = D_global_asm_8075B5C4;
|
||||
if (current_map == MAP_CASTLE_KING_KUT_OUT) {
|
||||
if (!(player_pointer->unk6A & 4)) {
|
||||
var_f14 = 0.0f;
|
||||
scale = 0.0f;
|
||||
sp54 = D_global_asm_8075B5C8;
|
||||
} else {
|
||||
var_f14 = var_f14 * 0.75;
|
||||
scale = scale * 0.75;
|
||||
sp54 = D_global_asm_8075B5CC;
|
||||
}
|
||||
}
|
||||
var_f14 = var_f14 * var_f14;
|
||||
scale = scale * scale;
|
||||
initializeCharacterSpawnerActor();
|
||||
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {
|
||||
current_actor_pointer->unk64 |= 4;
|
||||
@ -131,7 +133,7 @@ void func_global_asm_806B3680(void) {
|
||||
dx = D_global_asm_807FDC94->x_position - current_actor_pointer->x_position;
|
||||
dy = D_global_asm_807FDC94->y_position - current_actor_pointer->y_position;
|
||||
dz = D_global_asm_807FDC94->z_position - current_actor_pointer->z_position;
|
||||
if (((dx * dx) + (dy * dy) + (dz * dz)) < var_f14) {
|
||||
if (((dx * dx) + (dy * dy) + (dz * dz)) < scale) {
|
||||
current_actor_pointer->control_state = 0x27;
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
}
|
||||
@ -156,19 +158,18 @@ void func_global_asm_806B3680(void) {
|
||||
case 0:
|
||||
playSoundAtActorPosition(current_actor_pointer, 0x1C2, 0xFF, 0x7F, 0);
|
||||
D_global_asm_807FDC90->unk30 = 2.0 * current_actor_pointer->animation_state->scale_y;
|
||||
current_actor_pointer->control_state_progress += 1;
|
||||
current_actor_pointer->control_state_progress++;
|
||||
// fallthrough
|
||||
case 1:
|
||||
// i = 0;
|
||||
if (current_actor_pointer->animation_state->scale_y < D_global_asm_807FDC90->unk30) {
|
||||
func_global_asm_807248B0(current_actor_pointer, current_actor_pointer->animation_state->scale_y * D_global_asm_8075B5D0);
|
||||
} else {
|
||||
sp44 = &D_global_asm_8071ABDC;
|
||||
for (i = 0; i < 0xC; i++) {
|
||||
for (i = 0; i != 0xC; i++) {
|
||||
func_global_asm_807149B8(1);
|
||||
func_global_asm_807149FC(2);
|
||||
func_global_asm_80714950(i + 0x0B020000);
|
||||
func_global_asm_8071498C(sp44);
|
||||
func_global_asm_8071498C(func_global_asm_8071ABDC);
|
||||
func_global_asm_80714998(1);
|
||||
drawSpriteAtPosition(&D_global_asm_8072073C, 2.0 * current_actor_pointer->animation_state->scale_y, current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position);
|
||||
}
|
||||
@ -178,7 +179,7 @@ void func_global_asm_806B3680(void) {
|
||||
func_global_asm_8066E9EC(current_actor_pointer, 1, current_actor_pointer->ledge_info_pointer->unkC * sp54);
|
||||
func_global_asm_8066EB40(current_actor_pointer, current_actor_pointer->ledge_info_pointer->unkC * sp54);
|
||||
current_actor_pointer->object_properties_bitfield &= ~4;
|
||||
current_actor_pointer->control_state_progress += 1;
|
||||
current_actor_pointer->control_state_progress++;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
@ -186,18 +187,19 @@ void func_global_asm_806B3680(void) {
|
||||
break;
|
||||
default:
|
||||
current_actor_pointer->control_state_progress++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
var_f12 = MIN(D_global_asm_807FDC90->unkC, current_actor_pointer->unkAC - current_actor_pointer->unk15E);
|
||||
func_global_asm_8072A920(var_f12, current_actor_pointer->control_state, 0, D_global_asm_807FDC90->unkA, var_f12, D_global_asm_807FDC90->unkE, 0x1E, D_global_asm_8075B5DC, 100.0f, 0x2040);
|
||||
func_global_asm_8072A920(current_actor_pointer->control_state, 0, D_global_asm_807FDC90->unkA, var_f12, D_global_asm_807FDC90->unkE, 0x1E, D_global_asm_8075B5DC, 100.0f, 0x2040);
|
||||
break;
|
||||
}
|
||||
if ((current_actor_pointer->control_state == 2) || (current_actor_pointer->control_state == 3)) {
|
||||
func_global_asm_8072D13C(current_actor_pointer->control_state, 1);
|
||||
switch (current_actor_pointer->control_state) {
|
||||
case 2:
|
||||
case 3:
|
||||
func_global_asm_8072D13C(current_actor_pointer->control_state, 1);
|
||||
}
|
||||
renderActor(current_actor_pointer, 0);
|
||||
}
|
||||
@ -380,8 +382,6 @@ void func_global_asm_806B4958(void) {
|
||||
|
||||
extern f32 D_global_asm_807502EC;
|
||||
|
||||
u8 func_global_asm_8072D13C(u8 arg0, s32 arg1);
|
||||
|
||||
void func_global_asm_806B49B0(u8 arg0, s16 arg1, s16 arg2) {
|
||||
Actor178 *a178;
|
||||
s32 pad2;
|
||||
|
@ -140,18 +140,13 @@ void func_global_asm_806C6BA0(void) {
|
||||
func_global_asm_806C6884(0xA, 0x14, 0x240);
|
||||
}
|
||||
|
||||
// Jumptable
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_CB230/func_global_asm_806C6BC8.s")
|
||||
|
||||
extern u8 D_global_asm_807FBD70;
|
||||
|
||||
/*
|
||||
void func_global_asm_806C6BC8(void) {
|
||||
u32 *temp;
|
||||
f32 sp54;
|
||||
f32 sp50;
|
||||
f32 sp4C;
|
||||
f32 sp48;
|
||||
f32 x;
|
||||
f32 y;
|
||||
f32 z;
|
||||
|
||||
initializeCharacterSpawnerActor();
|
||||
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {
|
||||
@ -173,32 +168,31 @@ void func_global_asm_806C6BC8(void) {
|
||||
current_actor_pointer->object_properties_bitfield &= ~0x400;
|
||||
}
|
||||
func_global_asm_8072881C(0, &D_global_asm_807FDC90->unk28);
|
||||
temp = current_actor_pointer->unk0;
|
||||
switch (current_actor_pointer->control_state) {
|
||||
case 0:
|
||||
if (D_global_asm_807FDC90->unk2C != 0) {
|
||||
sp54 = ((f32)D_global_asm_807FDC90->unk2C / D_global_asm_807FDC90->unk2E);
|
||||
getBonePosition(current_actor_pointer, 2, &sp50, &sp4C, &sp48);
|
||||
getBonePosition(current_actor_pointer, 2, &x, &y, &z);
|
||||
func_global_asm_807248B0(player_pointer, (sp54 * 0.13) + 0.02);
|
||||
player_pointer->x_position += ((sp50 - player_pointer->x_position) * 0.05);
|
||||
player_pointer->y_position += ((sp4C - player_pointer->y_position) * 0.05);
|
||||
player_pointer->z_position += ((sp48 - player_pointer->z_position) * 0.05);
|
||||
player_pointer->x_position += (x - player_pointer->x_position) * 0.05;
|
||||
player_pointer->y_position += (y - player_pointer->y_position) * 0.05;
|
||||
player_pointer->z_position += (z - player_pointer->z_position) * 0.05;
|
||||
D_global_asm_807FDC90->unk2C--;
|
||||
if (D_global_asm_807FDC90->unk2C == 0) {
|
||||
func_global_asm_805FF9AC(player_pointer->x_position, player_pointer->z_position, 0x33, 0, 0, 1);
|
||||
func_global_asm_805FF9AC(0x33, 0, 0, 1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 39:
|
||||
if (D_global_asm_807FDC90->unk2E != 0) {
|
||||
*temp += 2;
|
||||
current_actor_pointer->y_position += 2.0f;
|
||||
D_global_asm_807FDC90->unk2E--;
|
||||
func_global_asm_807248B0(
|
||||
current_actor_pointer,
|
||||
D_global_asm_807FDC90->unk30 + ((0.01 - D_global_asm_807FDC90->unk30) * ((f64)D_global_asm_807FDC90->unk2E / 150.0))
|
||||
);
|
||||
} else {
|
||||
*temp = 2;
|
||||
current_actor_pointer->control_state = 2;
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
}
|
||||
break;
|
||||
@ -208,12 +202,12 @@ void func_global_asm_806C6BC8(void) {
|
||||
func_global_asm_80614D00(current_actor_pointer, 0.0f, 0.0f);
|
||||
current_actor_pointer->control_state = 0;
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
playCutscene(current_actor_pointer, 0x18, 1);
|
||||
D_global_asm_807FDC90->unk2C = func_global_asm_8061CC30() - 0x1E;
|
||||
func_global_asm_8061CC30();
|
||||
D_global_asm_807FDC90->unk2C = playCutscene(current_actor_pointer, 0x18, 1) - 0x1E;
|
||||
D_global_asm_807FDC90->unk2E = D_global_asm_807FDC90->unk2C;
|
||||
current_actor_pointer->noclip_byte = 1;
|
||||
} else {
|
||||
switch (*temp) {
|
||||
switch (current_actor_pointer->control_state_progress) {
|
||||
case 5:
|
||||
func_global_asm_8072B324(current_actor_pointer, D_global_asm_807FDC9C->unkC);
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
@ -243,7 +237,7 @@ void func_global_asm_806C6BC8(void) {
|
||||
func_global_asm_8072DC7C(5);
|
||||
break;
|
||||
case 2:
|
||||
*temp = 0x3B;
|
||||
current_actor_pointer->control_state = 0x3B;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -251,4 +245,3 @@ void func_global_asm_806C6BC8(void) {
|
||||
}
|
||||
renderActor(current_actor_pointer, 0);
|
||||
}
|
||||
*/
|
||||
|
@ -466,8 +466,152 @@ Gfx *func_race_80026EE4(Gfx *dl, Actor *arg1) {
|
||||
return func_race_8002CAC8(dl, arg1, arg1->RaaD);
|
||||
}
|
||||
|
||||
// close
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_race_80026F04.s")
|
||||
|
||||
s32 func_global_asm_806F4DC0(s32, f32, u8, f32, f32, f32, f32);
|
||||
f32 func_race_8002D2C0(void *);
|
||||
extern u8 D_global_asm_807FBD70;
|
||||
|
||||
typedef struct {
|
||||
u8 unk0[0x26 - 0x0];
|
||||
u8 unk26; // Used
|
||||
u8 unk27;
|
||||
u8 unk28; // Used
|
||||
u8 unk29; // Used
|
||||
u8 unk2A; // Used
|
||||
u8 unk2B;
|
||||
u8 unk2C;
|
||||
u8 unk2D;
|
||||
u8 unk2E;
|
||||
u8 unk2F;
|
||||
Actor *unk30; // Used
|
||||
u8 unk34; // Used
|
||||
u8 unk35; // Used
|
||||
} AAD_80026F04;
|
||||
|
||||
typedef struct {
|
||||
u8 unk0; // Used
|
||||
u8 unk1;
|
||||
s16 unk2; // Used
|
||||
u8 unk4[0x20 - 0x4];
|
||||
f32 unk20; // Used
|
||||
f32 unk24; // Used
|
||||
u8 unk28[0x39 - 0x28];
|
||||
u8 unk39; // Used
|
||||
} A178_80026F04;
|
||||
|
||||
/*
|
||||
void func_race_80026F04(void) {
|
||||
f32 temp_f0;
|
||||
A178_80026F04 *a178;
|
||||
f32 x;
|
||||
f32 y;
|
||||
f32 z;
|
||||
f32 var_f12;
|
||||
s16 var_s0;
|
||||
s32 i;
|
||||
u16 temp_a0;
|
||||
AAD_80026F04 *aaD;
|
||||
s32 temp;
|
||||
|
||||
aaD = current_actor_pointer->additional_actor_data;
|
||||
a178 = current_actor_pointer->unk178;
|
||||
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {
|
||||
Struct807F5FD4_unk0 *temp7F5unk0 = &D_global_asm_807F5FD4->unk0;
|
||||
temp = (temp7F5unk0[a178->unk0].unk4_s32 - temp7F5unk0[a178->unk0].unk0_s32) / 12;
|
||||
aaD->unk2A = 3;
|
||||
current_actor_pointer->noclip_byte = 0x3C;
|
||||
a178->unk2 = func_race_8002578C(temp, 0);
|
||||
func_race_80026354(a178, aaD, 1);
|
||||
if ((gameIsInDKTVMode()) || (isFlagSet(0x12, FLAG_TYPE_TEMPORARY))) {
|
||||
setAction(0x4B, current_actor_pointer, aaD->unk28);
|
||||
} else {
|
||||
func_global_asm_806F397C(player_pointer, current_actor_pointer, 0, 0x4B);
|
||||
}
|
||||
func_global_asm_8066EA90(current_actor_pointer, 2);
|
||||
func_race_80026CA8();
|
||||
}
|
||||
if ((D_global_asm_807FBD70 == 5) && (a178->unk39 == 0)) {
|
||||
if (aaD->unk34 == 2) {
|
||||
func_global_asm_8072DB68(3);
|
||||
}
|
||||
a178->unk39 = 0x1E;
|
||||
}
|
||||
if (aaD->unk35 == 0) {
|
||||
if (aaD->unk34 == 1) {
|
||||
func_global_asm_806F8BC4(0xB, 1, 0);
|
||||
aaD->unk35++;
|
||||
} else if (aaD->unk34 == 5) {
|
||||
func_global_asm_806F8D58(0xB, 0);
|
||||
aaD->unk35++;
|
||||
}
|
||||
}
|
||||
if (aaD->unk34 == 1) {
|
||||
Actor *tempActor = aaD->unk30;
|
||||
RaceAdditionalActorData *tempRaaD = tempActor->RaaD;
|
||||
temp_a0 = tempRaaD->unk1C;
|
||||
if ((temp_a0 == 8) || (temp_a0 == 0x13)) {
|
||||
playSoundAtPosition(current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position, 0x187, 0xFF, 0x7F, 0, 0, 0.3f, 0);
|
||||
}
|
||||
func_race_80026D2C(aaD->unk26 * 1.5);
|
||||
} else if (aaD->unk34 < 5) {
|
||||
var_s0 = 0;
|
||||
if (aaD->unk26 != 0) {
|
||||
temp_f0 = func_race_8002D2C0(aaD);
|
||||
if (temp_f0 != 0.0f) {
|
||||
func_race_80026004(a178, 0x1E, (1.5f * temp_f0) + 1.5f);
|
||||
}
|
||||
aaD->unk26 = 0;
|
||||
}
|
||||
if (a178->unk39 != 0) {
|
||||
if (a178->unk39 > 10.0f) {
|
||||
var_s0 = (a178->unk39 - 10.0f) * 204.8f;
|
||||
a178->unk20 = func_global_asm_80612794(var_s0) * 300.0f;
|
||||
a178->unk24 = func_global_asm_80612794(var_s0 * 2) * 300.0f;
|
||||
} else {
|
||||
a178->unk20 = 0.0f;
|
||||
a178->unk24 = 0.0f;
|
||||
}
|
||||
}
|
||||
func_race_80026354(a178, aaD, 1);
|
||||
current_actor_pointer->y_position += 20.0f * func_global_asm_80612794(var_s0 * 0.5f);
|
||||
func_race_80026D2C(current_actor_pointer->unkB8);
|
||||
} else if (aaD->unk34 == 5) {
|
||||
current_actor_pointer->object_properties_bitfield &= ~4;
|
||||
current_actor_pointer->unkB8 = 0.0f;
|
||||
for (i = 0; i != 2; i++) {
|
||||
if (current_actor_pointer->unk6E[i] != -1) {
|
||||
func_global_asm_80605314(current_actor_pointer, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (aaD->unk29 != 0) {
|
||||
func_race_80026B20(aaD);
|
||||
}
|
||||
if (aaD->unk34 < 5) {
|
||||
if (aaD->unk34 == 2) {
|
||||
var_f12 = 10.0f;
|
||||
} else {
|
||||
var_f12 = -200.0f;
|
||||
}
|
||||
x = current_actor_pointer->x_position;
|
||||
y = current_actor_pointer->y_position + var_f12;
|
||||
z = current_actor_pointer->z_position;
|
||||
func_global_asm_806F4D70(aaD->unk28, x, y, z, 12.0f);
|
||||
func_global_asm_806F4DC0(0, y, aaD->unk28, (x + current_actor_pointer->unk88) * 0.5, y, (z + current_actor_pointer->unk90) * 0.5, 12.0f);
|
||||
}
|
||||
if (current_actor_pointer->object_properties_bitfield & 4) {
|
||||
func_global_asm_8068ECF4(1, 0xC8);
|
||||
func_global_asm_8068ECF4(2, 0xC8);
|
||||
}
|
||||
renderActor(current_actor_pointer, 0);
|
||||
if ((aaD->unk34 > 0) && (aaD->unk34 < 5)) {
|
||||
addActorToTextOverlayRenderArray(func_race_80026EE4, current_actor_pointer, 3);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
void func_race_800274C0(void) {
|
||||
AAD_race_800274C0 *sp4C;
|
||||
Actor178 *sp48;
|
||||
|
Loading…
Reference in New Issue
Block a user