diff --git a/README.md b/README.md index b9c7b9d3..4ee39a4c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# banjo (89.0203%) +# banjo (89.1860%) diff --git a/include/enums.h b/include/enums.h index 235d137c..9acb8311 100644 --- a/include/enums.h +++ b/include/enums.h @@ -1537,8 +1537,8 @@ enum actor_e ACTOR_53_RED_ARROW, ACTOR_54_RED_QUESTION_MARK, ACTOR_55_RED_X, - - ACTOR_57_ORANGE_PAD = 0x57, + ACTOR_56_SHRAPNEL, + ACTOR_57_ORANGE_PAD, ACTOR_59_JUJU = 0x59, ACTOR_5A_JIGGY_IN_HAND, @@ -2689,8 +2689,8 @@ enum asset_e ASSET_3E9_MODEL_RED_ARROW, ASSET_3EA_MODEL_RED_X, ASSET_3EB_MODEL_RED_QUESTION_MARK, - // 3ec Shrapnel - ASSET_3ED_MODEL_BUZZBOMB = 0x3ED, + ASSET_3EC_MODEL_SHRAPNEL, + ASSET_3ED_MODEL_BUZZBOMB, ASSET_3EE_TANKTUP, ASSET_3EF_MODEL_TANKTUP_LEG_FL, ASSET_3F0_MODEL_TANKTUP_LEG_BL, @@ -3024,9 +3024,9 @@ enum asset_e // 537 Flight Pad Yellow Fragment // 538 Jiggy Podium (Beta?) // 539 Brentilda - // 53a Shrapnel Eye (Upon Death) - // 53b Shrapnel Spike (Upon Death) - // 53c Shrapnel Metal Plate (Upon Death) + ASSET_53A_MODEL_SHRAPNAL_PIECE_EYE = 0x53A, + ASSET_53B_MODEL_SHRAPNAL_PIECE_SPIKE, + ASSET_53C_MODEL_SHRAPNAL_PIECE_PLATE, // 53d Gruntilda On Broomstick // 53e Gnawty's Bed // 53f Gnawty's Shelves @@ -3730,8 +3730,8 @@ enum marker_e{ MARKER_62_RED_ARROW, MARKER_63_RED_QUESTION_MARK, MARKER_64_RED_X, - - MARKER_66_ORANGE_PAD = 0x66, + MARKER_65_SHRAPNEL, + MARKER_66_ORANGE_PAD, MARKER_67_JUJU = 0x67, MARKER_69_CHUMP_FISH = 0x69, diff --git a/progress/progress_core2.svg b/progress/progress_core2.svg index e3622874..8ef15ff2 100644 --- a/progress/progress_core2.svg +++ b/progress/progress_core2.svg @@ -9,7 +9,7 @@ - + @@ -17,7 +17,7 @@ core2 - 87.8758% - 87.8758% + 88.1647% + 88.1647% \ No newline at end of file diff --git a/progress/progress_total.svg b/progress/progress_total.svg index 3c0a2c49..2270e27c 100644 --- a/progress/progress_total.svg +++ b/progress/progress_total.svg @@ -9,7 +9,7 @@ - + @@ -17,7 +17,7 @@ Banjo-Kazooie (us.v10) - 89.0203% - 89.0203% + 89.1860% + 89.1860% \ No newline at end of file diff --git a/src/core2/code_49A70.c b/src/core2/code_49A70.c index 2bf03d1a..2c268df8 100644 --- a/src/core2/code_49A70.c +++ b/src/core2/code_49A70.c @@ -7,48 +7,128 @@ extern f32 func_80309B24(f32[3]); /* .h */ -void func_802D10A4(Actor *this); +void chshrapnel_update(Actor *this); typedef struct { s32 unk0; }ActorLocal_core2_49A70; - /* .data */ -extern ActorAnimationInfo D_803673C0[]; -extern ActorInfo D_80367404 = { - 0x65, 0x56, 0x3EC, - 0x1, D_803673C0, - func_802D10A4, func_80326224, func_80325888, - 2500, 0x333, 0.0f, 0 +ActorAnimationInfo D_803673C0[] = { + {0, 0.0f}, + {0x1F4, 1.0f}, + {0x1F4, 1.0f}, + {0x92, 0.75f}, + {0x92, 0.75f}, + {0x1F4, 1.0f}, + {0x1F4, 1.0f} }; -/* .rodata */ -extern f32 D_80376640; -extern f64 D_80376648; -extern f64 D_80376650; -extern f64 D_80376658; +s32 D_803673F8[3] = {0xDE, 0xA7, 0x71}; + +ActorInfo D_80367404 = { + MARKER_65_SHRAPNEL, ACTOR_56_SHRAPNEL, ASSET_3EC_MODEL_SHRAPNEL, + 0x1, D_803673C0, + chshrapnel_update, func_80326224, func_80325888, + 2500, 0x333, 0.0f, 0 +}; /* .code */ void func_802D0A00(Actor *this) { this->unk28 = randf2(1.5f, 2.3f); } -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_49A70/func_802D0A38.s") +void func_802D0A38(Actor *this){ + if(this->unk38_31 != 0){ + this->unk38_31--; + } + else{ + if(func_80329530(this, 600) && func_803292E0(this)){ + this->unk28 = 0.0f; + func_80328B8C(this, 2, 0.0f, 1); + } + } +} -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_49A70/func_802D0AB8.s") +void func_802D0AB8(Actor *this) { + func_80328B8C(this, 1, 0.0f, 0); + func_802D0A00(this); + func_80328CEC(this, (s32) this->yaw_moving, 0x87, 0xAF); + this->unk38_31 = 0x1E; +} -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_49A70/func_802D0B24.s") +void func_802D0B24(s32 arg0){ + Actor *this = reinterpret_cast(Actor *, arg0); + func_8032813C(0xF3, this->unk1C, 0); +} -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_49A70/func_802D0B54.s") +void func_802D0B54(Actor *this) { + ParticleEmitter *temp_v0; -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_49A70/func_802D0CB4.s") + func_802BB3DC(0, 60.0f, 0.9f); + temp_v0 = partEmitList_pushNew(1U); + particleEmitter_setSprite(temp_v0, ASSET_4A0_SPRITE_EXPLOSION); + func_802EFA5C(temp_v0, 0.1f, 0.2f); + func_802EFA70(temp_v0, 8); + particleEmitter_setStartingFrameRange(temp_v0, 0, 0); + particleEmitter_setParticleFramerateRange(temp_v0, 4.0f, 4.0f); + particleEmitter_setParticleSpawnPositionRange(temp_v0, 0.0f, 200.0f, 0.0f, 0.0f, 200.0f, 0.0f); + particleEmitter_setPosition(temp_v0, this->position); + func_802EFB70(temp_v0, 3.0f, 3.0f); + func_802EFB84(temp_v0, 8.0f, 8.0f); + func_802EFEC0(temp_v0, 0.5f, 0.5f); + particleEmitter_setParticleVelocityRange(temp_v0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); + particleEmitter_emitN(temp_v0, 1); +} -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_49A70/func_802D0DDC.s") -extern void func_802D0F30(ActorMarker *marker, ActorMarker *other_marker); -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_49A70/func_802D0F30.s") +void func_802D0CB4(Actor *this) { + ParticleEmitter *temp_v0; + temp_v0 = partEmitList_pushNew(6U); + particleEmitter_setSprite(temp_v0, ASSET_70E_SPRITE_SMOKE_2); + func_802EFA5C(temp_v0, 0.05f, 0.1f); + particleEmitter_setStartingFrameRange(temp_v0, 0, 7); + particleEmitter_setPosition(temp_v0, this->position); + func_802EFB70(temp_v0, 1.0f, 1.5f); + func_802EFB84(temp_v0, 2.0f, 3.0f); + particleEmitter_setParticleSpawnPositionRange(temp_v0, -75.0f, 25.0f, -75.0f, 75.0f, 75.0f, 75.0f); + particleEmitter_setParticleVelocityRange(temp_v0, -70.0f, 50.0f, -70.0f, 70.0f, 100.0f, 70.0f); + func_802EFFA8(temp_v0, &D_803673F8); + func_802EFEC0(temp_v0, 3.0f, 4.0f); + particleEmitter_emitN(temp_v0, 6); +} + +void func_802D0DDC(Actor *this, enum model_e model_id, s32 n) { + ParticleEmitter *temp_v0; + + temp_v0 = partEmitList_pushNew(n); + particleEmitter_setParticleAccelerationRange(temp_v0, 0.0f, -800.0f, 0.0f, 0.0f, -800.0f, 0.0f); + func_802EF9F8(temp_v0, 0.6f); + func_802EFA18(temp_v0, 1); + particleEmitter_setModel(temp_v0, model_id); + particleEmitter_setPosition(temp_v0, this->position); + func_802EFB70(temp_v0, 0.05f, 2.0f); + func_802EFE24(temp_v0, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); + particleEmitter_setSpawnIntervalRange(temp_v0, 0.0f, 0.01f); + func_802EFEC0(temp_v0, 10.0f, 10.0f); + particleEmitter_setParticleVelocityRange(temp_v0, -500.0f, 400.0f, -500.0f, 500.0f, 800.0f, 500.0f); + particleEmitter_emitN(temp_v0, n); +} + +void func_802D0F30(ActorMarker *marker, ActorMarker *other_marker) { + Actor *this; + + this = marker_getActor(marker); + FUNC_8030E8B4(SFX_1B_EXPLOSION_1, 1.0f, 32736, this->position, 1250, 2500); + func_802C3C88((GenMethod_1)func_802D0B24, reinterpret_cast(s32, this)); + func_802D0B54(this); + func_802D0CB4(this); + func_802D0DDC(this, ASSET_53A_MODEL_SHRAPNAL_PIECE_EYE, 2); + func_802D0DDC(this, ASSET_53B_MODEL_SHRAPNAL_PIECE_SPIKE, 8); + func_802D0DDC(this, ASSET_53C_MODEL_SHRAPNAL_PIECE_PLATE, 8); + marker_despawn(marker); +} void func_802D0FC8(Actor *this) { this->unk4C += time_getDelta(); @@ -64,13 +144,9 @@ void func_802D0FC8(Actor *this) { } } -#ifndef NONMATCHING -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_49A70/func_802D10A4.s") -#else -void func_802D10A4(Actor *this) { +void chshrapnel_update(Actor *this) { f32 tick; f32 player_position[3]; - f32 var_f2; tick = time_getDelta(); if (!this->initialized) { @@ -99,8 +175,7 @@ void func_802D10A4(Actor *this) { this->yaw_moving = (f32) func_80329784(this); func_80328FB0(this, 4.0f); if (func_80329480(this)) { - var_f2 = ABS(player_position[1] - this->unk1C[1]); - if (250.0 > var_f2) { + if (250.0 > ABS(player_position[1] - this->unk1C[1])) { func_80328A84(this, 3); actor_loopAnimation(this); FUNC_8030E8B4(SFX_C4_TWINKLY_MUNCHER_GRR, 0.6f, 32750, this->position, 1250, 2500); @@ -113,8 +188,7 @@ void func_802D10A4(Actor *this) { this->yaw_moving = (f32) func_80329784(this); func_80328FB0(this, this->unk28 / 2); this->unk28 = MIN( 50.0, (this->unk28 + tick)); - var_f2 = ABS(player_position[1] - this->unk1C[1]); - if ((250.0 <= var_f2) || !func_80329054(this, 0)) { + if ((250.0 <= ABS(player_position[1] - this->unk1C[1])) || !func_80329054(this, 0)) { func_802D0AB8(this); } break; @@ -126,4 +200,3 @@ void func_802D10A4(Actor *this) { break; } } -#endif diff --git a/src/core2/code_9E370.c b/src/core2/code_9E370.c index 879de7b6..2dc2897d 100644 --- a/src/core2/code_9E370.c +++ b/src/core2/code_9E370.c @@ -1158,13 +1158,13 @@ void func_80328478(f32 arg0[3], f32 arg1, f32 arg2){ #ifndef NONMATCHING #pragma GLOBAL_ASM("asm/nonmatchings/core2/code_9E370/func_80328508.s") #else -bool func_80328508(Actor * arg0, u32 arg1){ +bool func_80328508(Actor * arg0, s32 arg1){ ActorAnimationInfo *animInfo; arg0->state = arg1; - if(arg0->unk18 == NULL) + if(arg0->unk18 != NULL) return 0; - + animInfo = &arg0->unk18[arg1]; if(animInfo->index != NULL){ diff --git a/src/core2/code_ABC00.c b/src/core2/code_ABC00.c index f7e560d3..5a48a15f 100644 --- a/src/core2/code_ABC00.c +++ b/src/core2/code_ABC00.c @@ -12,12 +12,17 @@ extern void func_80347CF4(Struct81s *); extern void func_80347DD0(Struct81s *, Gfx **, Mtx **, Vtx **); extern void func_80347DE4(Struct81s *); +void func_80347E34(Struct81s*); +void func_80347E60(Struct81s*); +void func_80347FA4(Struct81s *, Gfx**, Mtx **, Vtx **); +void func_80347FB8(Struct81s*); + typedef struct { - void (*unk0)(void **); - void (*unk4)(void **); - void (*unk8)(void **, Gfx**, Mtx **, Vtx **); - void (*unkC)(void **); + void (*unk0)(Struct81s *); + void (*unk4)(Struct81s *); + void (*unk8)(Struct81s *, Gfx**, Mtx **, Vtx **); + void (*unkC)(Struct81s *); Struct81s unk10; }Struct_core2_ABC00_0; @@ -25,8 +30,109 @@ void func_803331D8(enum jiggy_e, f32[3]); void func_803332D0(Actor *); /* .data */ -extern u8 D_8036E830; -extern Struct_core2_ABC00_0 D_8036E834[]; +u8 D_8036E830 = 0; +Struct_core2_ABC00_0 D_8036E834[] = { + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x7, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x4, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x4, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x7, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x15, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x4, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x7, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347CC8, func_80347CF4, func_80347DD0, func_80347DE4, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0xC, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x7, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0xC, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x9, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x8, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x9, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x7, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x12, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0x1E, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0xC, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0xC, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0xC, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0xC, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x7, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x8, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x8, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347E34, func_80347E60, func_80347FA4, func_80347FB8, {0x4, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, + {func_80347B54, func_80347B80, func_80347C5C, func_80347C70, {0, NULL, {0.0f, 0.0f, 0.0f}, NULL, NULL}}, +}; /* .bss */ s32 D_80383560; @@ -166,9 +272,19 @@ void func_80333270(enum jiggy_e jiggy_id, f32 position[3], void (*method)(Actor ptr->unk10.unk18 = other_marker; } +#ifndef NONMATCHING void func_803332D0(Actor *); #pragma GLOBAL_ASM("asm/nonmatchings/core2/code_ABC00/func_803332D0.s") - +#else +void func_803332D0(Actor * arg0){ + // s32 indx = func_802C8088(arg0) - 1; + // s32 size = 0x2C; + Struct_core2_ABC00_0 *ptr = D_8036E834 + (func_802C8088(arg0) - 1); + Struct81s *sp18 = &ptr->unk10; + ptr->unkC(sp18); + sp18->marker = NULL; +} +#endif void func_80333334(enum jiggy_e jiggy_id) { Struct_core2_ABC00_0 *temp_v0; diff --git a/src/core2/code_AC520.c b/src/core2/code_AC520.c index 7716d1f8..a46b57a5 100644 --- a/src/core2/code_AC520.c +++ b/src/core2/code_AC520.c @@ -22,9 +22,6 @@ typedef struct struct_22_s{ u8 pad35[0x3]; } Struct_core2_AC520_0;//size 0x38 -/* .data */ -extern s32 D_8036F970[3]; - /* .bss */ struct { vector(Struct_core2_AC520_0) *unk0; @@ -225,6 +222,7 @@ s32 func_80333C78(s32 arg0){ } void func_80333D48(BKVertexList *arg0, f32 position[3], f32 rotation[3], f32 scale, s32 arg4, BKVertexList *arg5) { + static s32 D_8036F970[3] = {0, 0, 0}; Vtx *i_ptr; Vtx *end_ptr; Vtx *ref_ptr; diff --git a/src/core2/code_B5E00.c b/src/core2/code_B5E00.c index 3188c4d0..8e1e0113 100644 --- a/src/core2/code_B5E00.c +++ b/src/core2/code_B5E00.c @@ -31,9 +31,6 @@ void func_8033CE14(s32 gamenum){ func_8033CD90(D_80383F00[gamenum]); } -#ifndef NONMATCHING -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_B5E00/func_8033CE40.s") -#else void func_8033CE40(void) { s32 i; s32 var_s0; @@ -41,16 +38,18 @@ void func_8033CE40(void) { D_80383F04 = -1; - sp48[3] = 0; - for(i = 0; i < 3; i++){ - D_80383F00[i] = -1; - sp48[i] = 0; + sp48[3] = i = 0; + if (sp48[3] < 3) { + for(i = i; i < 3; i++) { + D_80383F00[i] = -1; + sp48[i] = 0; + i++; i--; //do nothing + } } // sp48[3] = 0; // D_80383F00[3] = -1; for(var_s0 = 0; var_s0 < 4; var_s0++){ - if( (func_8033CD90(var_s0) == 0) - && (D_80383F00[D_80383D20[var_s0].unk1 - 1] == -1)) { + if( (func_8033CD90(var_s0) == 0) && (D_80383F00[D_80383D20[var_s0].unk1 - 1] == -1)) { D_80383F00[D_80383D20[var_s0].unk1 - 1] = var_s0; sp48[var_s0] = 1; } else { @@ -67,7 +66,6 @@ void func_8033CE40(void) { } } } -#endif s32 func_8033CFD4(s32 gamenum){ s32 next; diff --git a/subyaml/core2.us.v10.yaml b/subyaml/core2.us.v10.yaml index c418e22d..20d8bdd2 100644 --- a/subyaml/core2.us.v10.yaml +++ b/subyaml/core2.us.v10.yaml @@ -325,7 +325,7 @@ segments: - [0xA4D00, c, code_A4D00] #DONE - [0xA5BC0, c, code_A5BC0] - [0xABC00, c, code_ABC00] - - [0xAC520, c, code_AC520] + - [0xAC520, c, code_AC520] #DONE - [0xAD110, c, code_AD110] #DONE - [0xAD5B0, c, code_AD5B0] #DONE - [0xAE290, c, code_AE290] #DONE @@ -335,7 +335,7 @@ segments: - [0xB3580, c, code_B3580] #DONE - [0xB3A80, c, code_B3A80] - [0xB5040, c, code_B5040] #DONE - - [0xB5E00, c, code_B5E00] + - [0xB5E00, c, code_B5E00] #DONE - [0xB62B0, c, code_B62B0] #DONE - [0xB6640, c, code_B6640] #DONE - [0xB66D0, c, string] #DONE @@ -485,7 +485,7 @@ segments: - [0xE0330, .data, ch/beehive] - [0xE0380, bin, data_E0380] - [0xE03B0, .data, ch/soundsource] - - [0xE0430, bin, data_E0430] + - [0xE0430, .data, code_49A70] - [0xE04A0, .data, ch/gloop] - [0xE0500, bin, data_E0500] - [0xE05A0, .data, code_4BD70] @@ -562,7 +562,8 @@ segments: - [0xE7640, .data, code_A4D00] - [0xE7820, bin, data_E7820] - [0xE7870, .data, code_A5BC0] - - [0xE78A0, bin, data_E78A0] + - [0xE78A0, .data, code_ABC00] + - [0xE89E0, .data, code_AC520] - [0xE89F0, bin, data_E89F0] # .data, code_AD110] - [0xE92C0, bin, data_E92C0] - [0xE9B30, .data, code_B62B0]