mirror of
https://gitlab.com/dk64_decomp/dk64.git
synced 2024-11-23 07:01:58 +00:00
40.2377%
This commit is contained in:
parent
b4e732039a
commit
b1eedb1d11
@ -41,7 +41,7 @@ us,.boss,func_boss_80024524,68,yes
|
||||
us,.boss,func_boss_8002413C,452,no
|
||||
us,.boss,func_boss_8002FEC0,180,yes
|
||||
us,.boss,func_boss_80031AA0,4200,no
|
||||
us,.boss,func_boss_8002EA7C,1668,no
|
||||
us,.boss,func_boss_8002EA7C,1668,yes
|
||||
us,.boss,func_boss_8003340C,152,yes
|
||||
us,.boss,func_boss_80030EC4,3036,no
|
||||
us,.boss,func_boss_8002531C,72,yes
|
||||
|
|
@ -4235,7 +4235,7 @@ us,.boss,func_boss_80024524,68,yes
|
||||
us,.boss,func_boss_8002413C,452,no
|
||||
us,.boss,func_boss_8002FEC0,180,yes
|
||||
us,.boss,func_boss_80031AA0,4200,no
|
||||
us,.boss,func_boss_8002EA7C,1668,no
|
||||
us,.boss,func_boss_8002EA7C,1668,yes
|
||||
us,.boss,func_boss_8003340C,152,yes
|
||||
us,.boss,func_boss_80030EC4,3036,no
|
||||
us,.boss,func_boss_8002531C,72,yes
|
||||
|
|
@ -9,7 +9,7 @@
|
||||
</mask>
|
||||
<g mask="url(#anybadge_1)">
|
||||
<path fill="#555" d="M0 0h38v20H0z"/>
|
||||
<path fill="#c05f00" d="M38 0h67v20H38z"/>
|
||||
<path fill="#c06800" 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">24.8441%</text>
|
||||
<text x="71.5" y="14">24.8441%</text>
|
||||
<text x="72.5" y="15" fill="#010101" fill-opacity=".3">27.1654%</text>
|
||||
<text x="71.5" y="14">27.1654%</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="#c09a00" d="M132 0h67v20H132z"/>
|
||||
<path fill="#c09b00" 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">40.1365%</text>
|
||||
<text x="165.5" y="14">40.1365%</text>
|
||||
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">40.2377%</text>
|
||||
<text x="165.5" y="14">40.2377%</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -114,6 +114,260 @@ void func_boss_80027A30(Struct80027A30_arg0 *arg0, u8 *arg1) {
|
||||
// Jumptable, 2224 bytes of code
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/boss/KRoolGeneric/func_boss_80027BA8.s")
|
||||
|
||||
extern u8 D_global_asm_8076A0B1;
|
||||
extern s8 D_global_asm_8076A0B3;
|
||||
|
||||
typedef struct BossUnkPaaD178 {
|
||||
u8 pad0[0x4];
|
||||
s16 unk4;
|
||||
u8 pad6[0x8 - 0x6];
|
||||
s16 unk8[6]; // Unsure of array size
|
||||
u8 pad14;
|
||||
u8 unk15;
|
||||
u8 unk16;
|
||||
u8 pad17;
|
||||
u8 unk18[];
|
||||
} BossUnkPaaD178;
|
||||
|
||||
typedef struct BossUnkPaaD17C {
|
||||
u8 unk0;
|
||||
} BossUnkPaaD17C;
|
||||
|
||||
/*
|
||||
u8 func_boss_80027BA8(u8 *arg0, u16 arg1, f32 arg2) {
|
||||
BossUnkPaaD178 *temp_s0;
|
||||
PlayerAdditionalActorData *temp_v1;
|
||||
u8 sp2F;
|
||||
u8 sp2E;
|
||||
s16 temp_a0;
|
||||
s32 cutscene;
|
||||
|
||||
temp_v1 = player_pointer->PaaD;
|
||||
temp_s0 = current_actor_pointer->unk178;
|
||||
sp2E = FALSE;
|
||||
sp2F = TRUE;
|
||||
switch (current_actor_pointer->control_state) {
|
||||
case 0x54:
|
||||
sp2F = FALSE;
|
||||
if (current_actor_pointer->control_state_progress) {
|
||||
if (func_global_asm_80629148()) {
|
||||
sp2F = TRUE;
|
||||
}
|
||||
} else {
|
||||
func_global_asm_80629174();
|
||||
sp2F = FALSE;
|
||||
current_actor_pointer->control_state_progress = 1;
|
||||
}
|
||||
break;
|
||||
case 0x5F:
|
||||
playCutscene(current_actor_pointer, arg0[temp_s0->unk15++], 1);
|
||||
break;
|
||||
case 0x5E:
|
||||
if (is_cutscene_active == 1) {
|
||||
sp2F = TRUE;
|
||||
func_global_asm_8061D4E4(temp_v1->unk104);
|
||||
sp2F = TRUE;
|
||||
}
|
||||
D_global_asm_8076A0B3 = 0;
|
||||
current_actor_pointer->object_properties_bitfield &= ~4;
|
||||
D_global_asm_8076A0B1 |= 0x10;
|
||||
temp_s0->unk15++;
|
||||
temp_s0->unk4 = (arg0[temp_s0->unk15] * 0x1E);
|
||||
break;
|
||||
case 0x5D:
|
||||
temp_s0->unk15++;
|
||||
sp2F = TRUE;
|
||||
func_global_asm_8072B324(current_actor_pointer, arg0[temp_s0->unk15]);
|
||||
sp2F = TRUE;
|
||||
break;
|
||||
case 0x5C:
|
||||
((BossUnkPaaD17C *)current_actor_pointer->unk17C)->unk0 = arg0[temp_s0->unk15++];
|
||||
break;
|
||||
case 0x5A:
|
||||
sp2F = TRUE;
|
||||
loadText(current_actor_pointer, arg0[temp_s0->unk15], arg0[temp_s0->unk15 + 1]);
|
||||
sp2F = TRUE;
|
||||
temp_s0->unk15 += 2;
|
||||
break;
|
||||
case 0x42:
|
||||
block_16:
|
||||
sp2F = sp2F;
|
||||
func_global_asm_8072AB74(0x42U, D_global_asm_807FDC90->unkA, D_global_asm_807FDC90->unkE, arg1, arg2);
|
||||
if (func_global_asm_8072D13C(current_actor_pointer->control_state, 0) == 0) {
|
||||
default:
|
||||
sp2F = FALSE;
|
||||
}
|
||||
break;
|
||||
case 0x69:
|
||||
D_global_asm_807FDC90->unk1A |= 0x20;
|
||||
break;
|
||||
case 0x6D:
|
||||
break;
|
||||
case 0x58:
|
||||
current_actor_pointer->object_properties_bitfield |= 4;
|
||||
break;
|
||||
case 0x59:
|
||||
current_actor_pointer->object_properties_bitfield &= ~4;
|
||||
break;
|
||||
case 0x51:
|
||||
sp2F = TRUE;
|
||||
playActorAnimation(current_actor_pointer, arg0[temp_s0->unk15 + 1] + (arg0[temp_s0->unk15] << 8));
|
||||
sp2F = TRUE;
|
||||
temp_s0->unk15 += 2;
|
||||
break;
|
||||
case 0x55:
|
||||
sp2F = FALSE;
|
||||
if (current_actor_pointer->control_state_progress == 0) {
|
||||
temp_s0->unk8[0] = arg0[temp_s0->unk15 + 1] + (arg0[temp_s0->unk15] << 8);
|
||||
temp_s0->unk15 += 2;
|
||||
current_actor_pointer->control_state_progress = 1;
|
||||
} else {
|
||||
temp_s0->unk8[0]--;
|
||||
if (temp_s0->unk8[0] == 0) {
|
||||
sp2F = TRUE;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 0x23:
|
||||
if (current_actor_pointer->control_state_progress == 0) {
|
||||
temp_s0->unk15++;
|
||||
temp_s0->unk8[0] = arg0[temp_s0->unk15];
|
||||
current_actor_pointer->control_state_progress = 1;
|
||||
sp2F = FALSE;
|
||||
func_global_asm_8072B324(current_actor_pointer, D_global_asm_807FDC9C->unkD);
|
||||
sp2F = sp2F;
|
||||
} else {
|
||||
sp2F = FALSE;
|
||||
func_global_asm_8072AB74(0x23U, D_global_asm_807FDC90->unk4->x_position, D_global_asm_807FDC90->unk4->z_position, arg1, arg2);
|
||||
sp2F = FALSE;
|
||||
temp_s0->unk8[0]--;
|
||||
if ((temp_s0->unk8[0] == 0) || (temp_v1->unk1F0 & 0x80000)) {
|
||||
temp_v1->unk1F0 &= 0xFFF7FFFF;
|
||||
sp2F = TRUE;
|
||||
func_global_asm_8072B324(current_actor_pointer, D_global_asm_807FDC9C->unkC);
|
||||
sp2F = TRUE;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 0x52:
|
||||
if (!(current_actor_pointer->unk6A & 1)) {
|
||||
sp2F = FALSE;
|
||||
}
|
||||
break;
|
||||
case 0x53:
|
||||
if (current_actor_pointer->control_state_progress == 0) {
|
||||
sp2F = FALSE;
|
||||
}
|
||||
break;
|
||||
case 0x4F:
|
||||
temp_s0->unk16 = temp_s0->unk15;
|
||||
break;
|
||||
case 0x50:
|
||||
temp_s0->unk15 = temp_s0->unk16;
|
||||
break;
|
||||
case 0x66:
|
||||
if (D_global_asm_807FDC90->unk1A & 8) {
|
||||
temp_s0->unk15 = temp_s0->unk16;
|
||||
}
|
||||
break;
|
||||
case 0x63:
|
||||
if (temp_s0->unk8[arg0[temp_s0->unk15]] != 0) {
|
||||
temp_s0->unk8[arg0[temp_s0->unk15]]--;
|
||||
sp2F = FALSE;
|
||||
break;
|
||||
}
|
||||
temp_s0->unk15++;
|
||||
break;
|
||||
case 0x62:
|
||||
temp_s0->unk8[arg0[temp_s0->unk15]] = arg0[temp_s0->unk15 + 1];
|
||||
temp_s0->unk15 += 2;
|
||||
sp2E = TRUE;
|
||||
break;
|
||||
case 0x64:
|
||||
temp_s0->unk18[arg0[temp_s0->unk15]] = arg0[temp_s0->unk15 + 1];
|
||||
temp_s0->unk15 += 2;
|
||||
sp2E = TRUE;
|
||||
break;
|
||||
case 0x68:
|
||||
D_global_asm_807FDC90->unk1A &= 0xFFEF;
|
||||
sp2E = TRUE;
|
||||
break;
|
||||
case 0x65:
|
||||
D_global_asm_807FDC90->unk2C = arg0[temp_s0->unk15]++;
|
||||
sp2E = TRUE;
|
||||
break;
|
||||
case 0x67:
|
||||
func_boss_80027950(temp_s0, arg0);
|
||||
sp2F = FALSE;
|
||||
current_actor_pointer->control_state = 0x42;
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
goto block_16;
|
||||
case 0x4C:
|
||||
func_boss_80027A30(temp_s0, arg0);
|
||||
sp2F = FALSE;
|
||||
current_actor_pointer->control_state = 0x42;
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
goto block_16;
|
||||
case 0x4B:
|
||||
D_global_asm_807FDC90->unk25++;
|
||||
if (arg0[temp_s0->unk15 + 1] < D_global_asm_807FDC90->unk25) {
|
||||
D_global_asm_807FDC90->unk25 = arg0[temp_s0->unk15];
|
||||
}
|
||||
temp_s0->unk15 += 2;
|
||||
sp2F = FALSE;
|
||||
current_actor_pointer->control_state = 0x42;
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
goto block_16;
|
||||
case 0x41:
|
||||
sp2F = FALSE;
|
||||
D_global_asm_807FDC90->unk25 = arg0[temp_s0->unk15++];
|
||||
current_actor_pointer->control_state = 0x42;
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
goto block_16;
|
||||
case 0x49:
|
||||
case 0x4A:
|
||||
sp2F = FALSE;
|
||||
switch (current_actor_pointer->control_state_progress) {
|
||||
case 0:
|
||||
current_actor_pointer->shadow_opacity -= 0xA;
|
||||
if (current_actor_pointer->shadow_opacity < 0) {
|
||||
current_actor_pointer->shadow_opacity = 0;
|
||||
current_actor_pointer->control_state_progress += 1;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (current_actor_pointer->control_state == 0x49) {
|
||||
D_global_asm_807FDC90->unk25 = arg0[temp_s0->unk15++];
|
||||
} else {
|
||||
sp2F = FALSE;
|
||||
func_boss_80027950(temp_s0, arg0);
|
||||
}
|
||||
sp2F = FALSE;
|
||||
func_global_asm_8072D13C(0x49U, 0);
|
||||
sp2F = FALSE;
|
||||
current_actor_pointer->x_position = (f32) D_global_asm_807FDC90->unkA;
|
||||
current_actor_pointer->z_position = (f32) D_global_asm_807FDC90->unkE;
|
||||
current_actor_pointer->control_state_progress++;
|
||||
break;
|
||||
case 2:
|
||||
current_actor_pointer->shadow_opacity += 0xA;
|
||||
if (current_actor_pointer->shadow_opacity >= 0x100) {
|
||||
current_actor_pointer->shadow_opacity = 0xFF;
|
||||
sp2F = TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (sp2F) {
|
||||
current_actor_pointer->control_state = arg0[temp_s0->unk15++];
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
}
|
||||
return sp2E;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
void func_boss_80028458(void) {
|
||||
func_global_asm_805FF8F8();
|
||||
}
|
||||
|
@ -85,5 +85,158 @@ void func_boss_8002EA14(void) {
|
||||
func_global_asm_8072B324(current_actor_pointer, D_global_asm_807FDC9C->unkC + (sp1C->unk14 * 0xA) + 0xF);
|
||||
}
|
||||
|
||||
// Jumptable
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/boss/KRoolLanky/func_boss_8002EA7C.s")
|
||||
u8 func_boss_80027BA8(u8 *, u16, f32);
|
||||
u8 func_global_asm_8061CB98(u8);
|
||||
s32 func_global_asm_8072881C(s32, s32 *);
|
||||
void func_global_asm_8072A450(void);
|
||||
extern u8 *D_boss_80035A80[4];
|
||||
|
||||
typedef struct KRoolLankyAAD178 {
|
||||
Actor *unk0;
|
||||
u8 pad4[0x14 - 0x4];
|
||||
u8 unk14;
|
||||
u8 unk15;
|
||||
} KRoolLankyAAD178;
|
||||
|
||||
void func_boss_8002EA7C(void) {
|
||||
KRoolLankyAAD178 *temp_t0;
|
||||
u8 *sp28;
|
||||
|
||||
temp_t0 = current_actor_pointer->unk178;
|
||||
sp28 = D_boss_80035A80[temp_t0->unk14];
|
||||
initializeCharacterSpawnerActor();
|
||||
func_boss_80028878(sp28);
|
||||
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {
|
||||
current_actor_pointer->unk146_s16 = 1;
|
||||
current_actor_pointer->control_state = 0x1E;
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
current_actor_pointer->unkCC = 1;
|
||||
func_global_asm_80724CA4(2, 1);
|
||||
func_boss_8002DC60();
|
||||
current_actor_pointer->y_acceleration = 0.0f;
|
||||
}
|
||||
if ((player_pointer->control_state == 0x48) && !(D_global_asm_807FDC90->unk1A & 0x8000)) {
|
||||
playCutscene(current_actor_pointer, 0, 1);
|
||||
D_global_asm_807FDC90->unk1A |= 0x8000;
|
||||
}
|
||||
if ((func_global_asm_8061CB98(0) == 0) && ((func_global_asm_8061CB98(1) == 0)) && ((player_pointer->control_state != 0x67) || (current_actor_pointer->control_state != 0x42))) {
|
||||
switch (current_actor_pointer->control_state) {
|
||||
case 0x2B:
|
||||
switch (current_actor_pointer->control_state_progress) {
|
||||
case 0:
|
||||
func_global_asm_8072B324(current_actor_pointer, 0);
|
||||
playCutscene(player_pointer, 9, 1);
|
||||
func_boss_8002E9B8(0x3F5, 0x679);
|
||||
current_actor_pointer->control_state_progress += 1;
|
||||
break;
|
||||
case 2:
|
||||
func_global_asm_8072B324(current_actor_pointer, D_global_asm_807FDC9C->unkD);
|
||||
func_boss_8002E9B8(0x3F4, 0x678);
|
||||
current_actor_pointer->control_state_progress += 1;
|
||||
break;
|
||||
case 3:
|
||||
if (D_global_asm_807FBB70.unk1B != 0) {
|
||||
current_actor_pointer->control_state = 0x31;
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
} else if (D_global_asm_807FBB70.unk200 == 2) {
|
||||
func_boss_8002E7A0(NULL);
|
||||
current_actor_pointer->control_state = 0x2C;
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
}
|
||||
func_global_asm_8072AB74(0x23U, D_global_asm_807FDC94->x_position, D_global_asm_807FDC94->z_position, 0U, 0.0f);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x2C:
|
||||
if (current_actor_pointer->control_state_progress == 0) {
|
||||
setAction(0x36, current_actor_pointer, 0U);
|
||||
func_boss_8002EA14();
|
||||
current_actor_pointer->control_state = 0x42;
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
}
|
||||
break;
|
||||
case 0x1E:
|
||||
temp_t0->unk14 = 0U;
|
||||
temp_t0->unk15 = 0U;
|
||||
current_actor_pointer->control_state = sp28[temp_t0->unk15++];
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
break;
|
||||
case 0x0:
|
||||
switch (current_actor_pointer->control_state_progress) {
|
||||
case 0:
|
||||
func_boss_8002E9B8(0x3F5, 0x679);
|
||||
current_actor_pointer->control_state_progress++;
|
||||
break;
|
||||
case 2:
|
||||
func_boss_8002EA14();
|
||||
current_actor_pointer->control_state = sp28[temp_t0->unk15++];
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
func_global_asm_8066EB40(player_pointer, player_pointer->ledge_info_pointer->unkC * 2);
|
||||
func_global_asm_8066E5F8(player_pointer, 6, 1U);
|
||||
func_global_asm_8066E5F8(player_pointer, 7, 1U);
|
||||
func_global_asm_8066E5F8(player_pointer, 8, 1U);
|
||||
func_global_asm_8066E5F8(player_pointer, 9, 1U);
|
||||
func_global_asm_8066E5F8(player_pointer, 0xA, 1U);
|
||||
func_global_asm_8066E5F8(player_pointer, 0xB, 1U);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x31:
|
||||
switch (current_actor_pointer->control_state_progress) {
|
||||
case 0:
|
||||
if (temp_t0->unk14 == 3) {
|
||||
current_actor_pointer->control_state = 0x37;
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
} else {
|
||||
playActorAnimation(current_actor_pointer, 0x3F2);
|
||||
playActorAnimation(temp_t0->unk0, 0x3F1);
|
||||
func_global_asm_8072B324(current_actor_pointer, 0);
|
||||
current_actor_pointer->control_state_progress += 1;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
func_global_asm_8072AB74(0U, 0.0f, 0.0f, 0x310U, 0.0f);
|
||||
break;
|
||||
case 2:
|
||||
func_boss_8002E7A0(NULL);
|
||||
func_boss_8002EA14();
|
||||
temp_t0->unk15 = 0U;
|
||||
temp_t0->unk14++;
|
||||
sp28 = D_boss_80035A80[temp_t0->unk14];
|
||||
current_actor_pointer->control_state = sp28[temp_t0->unk15++];
|
||||
current_actor_pointer->control_state_progress = 0;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x37:
|
||||
switch (current_actor_pointer->control_state_progress) {
|
||||
case 0:
|
||||
deleteActor(temp_t0->unk0);
|
||||
playActorAnimation(current_actor_pointer, 0);
|
||||
playCutscene(current_actor_pointer, 5, 1);
|
||||
current_actor_pointer->control_state_progress += 1;
|
||||
break;
|
||||
case 1:
|
||||
if (func_global_asm_80629148() != 0) {
|
||||
func_global_asm_805FF158(0U);
|
||||
func_global_asm_805FF378(MAP_KROOL_FIGHT_TINY_PHASE, 0);
|
||||
current_actor_pointer->control_state_progress += 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
func_boss_80027BA8(sp28, 0x10, 0.0f);
|
||||
break;
|
||||
}
|
||||
} else if (current_actor_pointer->animation_state->unk64 == 0x406) {
|
||||
func_global_asm_80614D00(current_actor_pointer, 0.0f, 0.0f);
|
||||
}
|
||||
func_global_asm_8072A450();
|
||||
if (func_global_asm_8072881C(0, &D_global_asm_807FDC90->unk28) != 0) {
|
||||
func_global_asm_8072881C(0x81, &D_global_asm_807FDC90->unk28);
|
||||
}
|
||||
renderActor(current_actor_pointer, 0U);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user