mirror of
https://gitlab.com/dk64_decomp/dk64.git
synced 2024-11-23 07:01:58 +00:00
33.7595%
This commit is contained in:
parent
8437f5f531
commit
328c1a98fd
@ -536,7 +536,7 @@ segments:
|
||||
- [0x21ABD00, rodata] # code_3840
|
||||
- [0x21ABF20, .rodata, code_52B0]
|
||||
- [0x21AC060, rodata] # code_6240
|
||||
- [0x21AC350, rodata] # code_8520
|
||||
- [0x21AC350, .rodata, code_8520]
|
||||
- [0x21AC3D0, .rodata, code_9230]
|
||||
- [0x21AC4C0, rodata] # code_9C60
|
||||
- [0x21AC800, rodata] # code_C920
|
||||
|
@ -1915,10 +1915,10 @@ typedef struct global_asm_struct_12 {
|
||||
} GlobalASMStruct12;
|
||||
|
||||
typedef struct {
|
||||
u8 pad0[0x6 - 0x0];
|
||||
u8 pad0[0x4 - 0x0];
|
||||
s16 unk4;
|
||||
s16 unk6;
|
||||
u8 unk8;
|
||||
u8 unk9;
|
||||
s16 unk8;
|
||||
union {
|
||||
u8 unkA_u8[2];
|
||||
u16 unkA_u16;
|
||||
|
@ -47,7 +47,7 @@ us,.boss,func_boss_80030EC4,3036,no
|
||||
us,.boss,func_boss_8002531C,72,yes
|
||||
us,.boss,func_boss_8002DCE0,156,yes
|
||||
us,.boss,func_boss_80030888,140,yes
|
||||
us,.boss,func_boss_8002C964,2252,no
|
||||
us,.boss,func_boss_8002C964,2244,yes
|
||||
us,.boss,func_boss_8002DD7C,136,yes
|
||||
us,.boss,func_boss_80027BA8,2224,no
|
||||
us,.boss,func_boss_8002E82C,396,yes
|
||||
|
|
@ -3928,7 +3928,7 @@ us,.boss,func_boss_80030EC4,3036,no
|
||||
us,.boss,func_boss_8002531C,72,yes
|
||||
us,.boss,func_boss_8002DCE0,156,yes
|
||||
us,.boss,func_boss_80030888,140,yes
|
||||
us,.boss,func_boss_8002C964,2252,no
|
||||
us,.boss,func_boss_8002C964,2244,yes
|
||||
us,.boss,func_boss_8002DD7C,136,yes
|
||||
us,.boss,func_boss_80027BA8,2224,no
|
||||
us,.boss,func_boss_8002E82C,396,yes
|
||||
|
|
@ -9,7 +9,7 @@
|
||||
</mask>
|
||||
<g mask="url(#anybadge_1)">
|
||||
<path fill="#555" d="M0 0h38v20H0z"/>
|
||||
<path fill="#c03c00" d="M38 0h67v20H38z"/>
|
||||
<path fill="#c04800" d="M38 0h67v20H38z"/>
|
||||
<path fill="url(#b)" d="M0 0h105v20H0z"/>
|
||||
</g>
|
||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||
@ -17,7 +17,7 @@
|
||||
<text x="19.0" y="14">boss</text>
|
||||
</g>
|
||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||
<text x="72.5" y="15" fill="#010101" fill-opacity=".3">15.4977%</text>
|
||||
<text x="71.5" y="14">15.4977%</text>
|
||||
<text x="72.5" y="15" fill="#010101" fill-opacity=".3">18.6317%</text>
|
||||
<text x="71.5" y="14">18.6317%</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@ -9,7 +9,7 @@
|
||||
</mask>
|
||||
<g mask="url(#anybadge_1)">
|
||||
<path fill="#555" d="M0 0h132v20H0z"/>
|
||||
<path fill="#c08100" d="M132 0h67v20H132z"/>
|
||||
<path fill="#c08200" d="M132 0h67v20H132z"/>
|
||||
<path fill="url(#b)" d="M0 0h199v20H0z"/>
|
||||
</g>
|
||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||
@ -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">33.6228%</text>
|
||||
<text x="165.5" y="14">33.6228%</text>
|
||||
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">33.7595%</text>
|
||||
<text x="165.5" y="14">33.7595%</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -72,5 +72,180 @@ void func_boss_8002C8B4(void) {
|
||||
current_actor_pointer);
|
||||
}
|
||||
|
||||
// Jumptable
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/boss/code_8520/func_boss_8002C964.s")
|
||||
extern u8 D_global_asm_807FBB85;
|
||||
extern u8 D_global_asm_807FBD70;
|
||||
|
||||
typedef struct {
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
s16 unk4;
|
||||
} A178_8002C964;
|
||||
|
||||
void func_global_asm_8072AB74(s32, f32, f32, s32, f32);
|
||||
|
||||
void func_boss_8002C964(void) {
|
||||
A178_8002C964 *a178;
|
||||
f64 yScale;
|
||||
|
||||
a178 = current_actor_pointer->unk178;
|
||||
func_global_asm_80729B00();
|
||||
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {
|
||||
func_boss_8002C748(0);
|
||||
func_boss_8002C748(1);
|
||||
D_global_asm_807FDC98->unk30 = 2.5f;
|
||||
D_global_asm_807FDC98->unk46 &= 0xFFF7;
|
||||
D_global_asm_807FDC98->unk46 |= 0x200;
|
||||
current_actor_pointer->object_properties_bitfield |= 0x400;
|
||||
current_actor_pointer->unk132 = 4;
|
||||
current_actor_pointer->control_state = 0x1E;
|
||||
func_global_asm_807248B0(current_actor_pointer, 2.0 * current_actor_pointer->animation_state->scale[0]);
|
||||
func_global_asm_806AD9AC();
|
||||
}
|
||||
if (((D_global_asm_807FBD70 == 9) || (D_global_asm_807FBB85 != 0)) && (current_actor_pointer->control_state != 0x37)) {
|
||||
if (isFlagSet(0xF7, FLAG_TYPE_PERMANENT) != 0) {
|
||||
func_global_asm_8067E278(0, 1);
|
||||
current_actor_pointer->control_state = 0x40;
|
||||
} else {
|
||||
playCutscene(current_actor_pointer, 6, 1);
|
||||
current_actor_pointer->y_velocity = 200.0f;
|
||||
func_global_asm_8072D714(D_global_asm_807FBD6C, 0x2F7);
|
||||
}
|
||||
}
|
||||
switch (current_actor_pointer->control_state) {
|
||||
case 0x28:
|
||||
switch (current_actor_pointer->control_state_progress) {
|
||||
case 0:
|
||||
playCutscene(current_actor_pointer, 8, 1);
|
||||
func_global_asm_80614EBC(current_actor_pointer, 0);
|
||||
func_global_asm_80613C48(current_actor_pointer, 0x589, 0.0f, 0.0f);
|
||||
D_global_asm_807FDC90->unk2C = 0;
|
||||
current_actor_pointer->control_state_progress = 1;
|
||||
current_actor_pointer->noclip_byte = 1;
|
||||
func_global_asm_806086CC(current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position, 0x2FC, 0xFF, 0x7F, 0, 0, 0.0f, 0);
|
||||
// fallthrough
|
||||
case 1:
|
||||
D_global_asm_807FDC90->unk2C += 8;
|
||||
if (D_global_asm_807FDC90->unk2C >= 0x259) {
|
||||
current_actor_pointer->control_state_progress = 2;
|
||||
}
|
||||
current_actor_pointer->y_position += 2.0f;
|
||||
current_actor_pointer->y_rotation += D_global_asm_807FDC90->unk2C;
|
||||
yScale = current_actor_pointer->animation_state->scale[1];
|
||||
func_global_asm_807248B0(current_actor_pointer, ((0.3 - yScale) * 0.05) + yScale);
|
||||
break;
|
||||
case 2:
|
||||
D_global_asm_807FDC90->unk2C -= 0x14;
|
||||
if (D_global_asm_807FDC90->unk2C < 0) {
|
||||
D_global_asm_807FDC90->unk2C = 0;
|
||||
}
|
||||
current_actor_pointer->y_rotation += D_global_asm_807FDC90->unk2C;
|
||||
if (func_global_asm_80629148() != 0) {
|
||||
current_actor_pointer->control_state_progress = 3;
|
||||
current_actor_pointer->object_properties_bitfield &= ~4;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (func_global_asm_80629148() != 0) {
|
||||
current_actor_pointer->unk15E = 0xA;
|
||||
D_global_asm_807FDC90->unk28 |= 0x8000;
|
||||
current_actor_pointer->unk132 = 1;
|
||||
current_actor_pointer->control_state = 0x23;
|
||||
func_global_asm_8072B324(current_actor_pointer, D_global_asm_807FDC9C->unkD);
|
||||
current_actor_pointer->noclip_byte = 0x24;
|
||||
func_global_asm_80614EBC(current_actor_pointer, 0x2F4);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x1E:
|
||||
switch (current_actor_pointer->control_state_progress) {
|
||||
case 0:
|
||||
if (func_global_asm_80629148() != 0) {
|
||||
D_global_asm_807FDC90->unk28 |= 0x8000;
|
||||
current_actor_pointer->control_state_progress = 1;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if ((current_actor_pointer->y_position - current_actor_pointer->floor) > 300.0f) {
|
||||
current_actor_pointer->y_position -= 10.0f;
|
||||
} else {
|
||||
D_global_asm_807FDC90->unk28 |= 0x8000;
|
||||
current_actor_pointer->control_state_progress = 3;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (func_global_asm_80629148() != 0) {
|
||||
current_actor_pointer->control_state = 0x27;
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
func_global_asm_80626110(D_global_asm_807F5D10, 0, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x27:
|
||||
current_actor_pointer->y_rotation = func_global_asm_806CC190(current_actor_pointer->y_rotation, func_global_asm_80665DE0(D_global_asm_807FDC94->x_position, D_global_asm_807FDC94->z_position, current_actor_pointer->x_position, current_actor_pointer->z_position), 8.0f);
|
||||
switch (current_actor_pointer->control_state_progress) {
|
||||
case 0:
|
||||
func_boss_8002C5F4();
|
||||
current_actor_pointer->control_state_progress = 1;
|
||||
break;
|
||||
case 1:
|
||||
if ((func_global_asm_80726D7C(2) == 0) && (func_global_asm_80726D7C(3) == 0) && (func_global_asm_80726D7C(4) == 0)) {
|
||||
current_actor_pointer->control_state_progress = 2;
|
||||
D_global_asm_807FDC90->unk2C = 0x96;
|
||||
D_global_asm_807FDC90->unk28 |= 0x8000;
|
||||
current_actor_pointer->unk132 = 8;
|
||||
func_global_asm_80614EBC(current_actor_pointer, 0x2FA);
|
||||
}
|
||||
if ((func_global_asm_8061CB50() == 0) && (((rand() >> 0xF) % 1000) >= 0x3E4)) {
|
||||
func_global_asm_80614EBC(current_actor_pointer, 0x2FD);
|
||||
current_actor_pointer->control_state_progress = 3;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if ((D_global_asm_807FDC90->unk2C != 0) && (D_global_asm_807FBD70 != 4)) {
|
||||
D_global_asm_807FDC90->unk2C--;
|
||||
} else {
|
||||
if (D_global_asm_807FBD70 == 4) {
|
||||
func_global_asm_80614EBC(current_actor_pointer, 0x2FC);
|
||||
func_global_asm_8072D9D4();
|
||||
a178->unk2 = 0x96;
|
||||
a178->unk4 = 0x800;
|
||||
current_actor_pointer->unkEE = current_actor_pointer->y_rotation;
|
||||
if (current_actor_pointer->health == 1) {
|
||||
current_actor_pointer->control_state = 0x28;
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
}
|
||||
}
|
||||
current_actor_pointer->unk132 = 4;
|
||||
D_global_asm_807FDC90->unk28 |= 0x8000;
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
current_actor_pointer->control_state_progress = 1;
|
||||
func_boss_8002C8B4();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x23:
|
||||
func_global_asm_8072AB74(0x23, D_global_asm_807FDC94->x_position, D_global_asm_807FDC94->z_position, 0, 0.0f);
|
||||
break;
|
||||
case 0x37:
|
||||
func_global_asm_806AD260(0x2F7, 1, 0);
|
||||
break;
|
||||
}
|
||||
if (a178->unk2 > 0) {
|
||||
a178->unk0 = (a178->unk2) * func_global_asm_80612794(a178->unk4);
|
||||
a178->unk4 += 0x32;
|
||||
a178->unk2--;
|
||||
current_actor_pointer->z_rotation = -a178->unk0;
|
||||
current_actor_pointer->x_position = (func_global_asm_80612794(current_actor_pointer->unkEE) * a178->unk0) + D_global_asm_807FDC9C->unk4;
|
||||
current_actor_pointer->z_position = (func_global_asm_80612790(current_actor_pointer->unkEE) * a178->unk0) + D_global_asm_807FDC9C->unk8;
|
||||
current_actor_pointer->y_position = D_global_asm_807FDC9C->unk6 - sqrtf(0x1C390 - (a178->unk0 * a178->unk0));
|
||||
}
|
||||
if (D_global_asm_807FDC90->unk28 & 0x8000) {
|
||||
func_boss_8002C7CC();
|
||||
}
|
||||
func_global_asm_806319C4(current_actor_pointer, 0);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user