diff --git a/README.md b/README.md index 2844d4a4..6ce4035f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# banjo (94.0107%) +# banjo (94.1800%) diff --git a/progress/progress_core2.svg b/progress/progress_core2.svg index 9100d635..de5e1694 100644 --- a/progress/progress_core2.svg +++ b/progress/progress_core2.svg @@ -9,7 +9,7 @@ - + @@ -17,7 +17,7 @@ core2 - 92.6430% - 92.6430% + 92.9382% + 92.9382% \ No newline at end of file diff --git a/progress/progress_total.svg b/progress/progress_total.svg index ad110aa5..052ea6c8 100644 --- a/progress/progress_total.svg +++ b/progress/progress_total.svg @@ -9,7 +9,7 @@ - + @@ -17,7 +17,7 @@ Banjo-Kazooie (us.v10) - 94.0107% - 94.0107% + 94.1800% + 94.1800% \ No newline at end of file diff --git a/src/core2/ch/jinjo.c b/src/core2/ch/jinjo.c index 22e91a4e..58f980d2 100644 --- a/src/core2/ch/jinjo.c +++ b/src/core2/ch/jinjo.c @@ -77,7 +77,6 @@ void func_802CDC9C(Actor *this, s16 arg1){ this->yaw = tmpf; } - void func_802CDD3C(Actor * this){ ActorLocal_Jinjo *localPtr = &this->jinjo; if(localPtr->unkC != 0){ @@ -86,7 +85,6 @@ void func_802CDD3C(Actor * this){ } } -#ifdef NONMATCHING void func_802CDD78(Actor * this){ f32 sp7C[3]; f32 sp70[3]; @@ -98,14 +96,17 @@ void func_802CDD78(Actor * this){ // f32 sp5C; ActorLocal_Jinjo *local; //= &this->jinjo; //sp34 f32 sp58 = time_getDelta(); + s32 i; int sp50; + f32 *sp30; + //f32 sp4C; //unused f32 sp40[3]; //s32 sp3C; //s32 sp38; - f32 *sp30; + f32 tmp_f0; - s32 i; + local = &this->jinjo; if(!this->initialized){ @@ -123,7 +124,9 @@ void func_802CDD78(Actor * this){ func_8028E964(sp7C); func_80257F18(sp30, sp7C, &sp6C); sp64 = (this->yaw * 182.04444); - sp66 = sp64 - (s32)(sp6C*182.04444); + // sp66 = sp64 - (s32)(sp6C*182.04444); + sp66 = (s32) (sp6C * 182.04444); + sp66 = sp64 - sp66; sp60 = func_8028AED4(sp30, 55.0f); switch(this->state){ @@ -189,26 +192,26 @@ void func_802CDD78(Actor * this){ case 7: case 8: sp50 = this->state == 7; - if(!sp50 || 0.8 < animctrl_getAnimTimer(this->animctrl)){//L802CE158 + if(!sp50 || 0.1 < animctrl_getAnimTimer(this->animctrl)){//L802CE158 player_getVelocity(sp70); - sp70[0] *= sp58*6.0f; - sp70[1] *= sp58*6.0f; + sp70[0] *= sp58*6.0f;\ + sp70[1] *= sp58*6.0f;\ sp70[2] *= sp58*6.0f; - sp70[0] += sp7C[0]; - sp70[1] += sp7C[1]; - sp70[2] += sp7C[2]; - sp70[0] -= this->position_x; - sp70[1] -= this->position_y; + sp70[0] = sp70[0] + sp7C[0];\ + sp70[1] = sp70[1] + sp7C[1];\ + sp70[2] = sp70[2] + sp7C[2]; + sp70[0] -= this->position_x;\ + sp70[1] -= this->position_y;\ sp70[2] -= this->position_z; sp70[0] *= sp58*3.0f; sp70[1] *= sp58*3.0f; sp70[2] *= sp58*3.0f; - this->position_x += sp70[0]; - this->position_y += sp70[1]; - this->position_z += sp70[2]; - if(sp50 || animctrl_getAnimTimer(this->animctrl) < 0.3){ + this->position_x = this->position_x + sp70[0]; + this->position_y = this->position_y + sp70[1]; + this->position_z = this->position_z + sp70[2]; + if(sp50 || animctrl_getAnimTimer(this->animctrl) < 0.8){ for(i = 0; i < 4; i++){ - if(randf() < 0.2){ + if(randf() < 0.3){ func_8033E73C(this->marker, i + 5, func_80329904); func_8033E3F0(8, this->marker->unk14_21); } //L802CE2C4 @@ -217,13 +220,13 @@ void func_802CDD78(Actor * this){ } if(sp50){ - if(animctrl_getAnimTimer(this->animctrl) < 0.9) + if(animctrl_getAnimTimer(this->animctrl) < 0.2) func_802CDC9C(this, sp66); if(actor_animationIsAt(this, 0.1f)){ local->unkC = func_802F9AA8(SFX_18_BIGBUTT_SLIDE); func_802F9EC4(local->unkC, sp30, 500, 2000); - func_802F9F80(local->unkC, 0.0f, 0x50061c46, 0.0f); + func_802F9F80(local->unkC, 0.0f, 9e+09, 0.0f); func_802FA0B0(local->unkC, 0); func_8025A6EC(COMUSIC_43_ENTER_LEVEL_GLITTER, 0x7FFF); func_8025AABC(COMUSIC_43_ENTER_LEVEL_GLITTER); @@ -256,9 +259,9 @@ void func_802CDD78(Actor * this){ }//L802CE518 if(actor_animationIsAt(this,0.85f)){ - if(local->unk4){ - func_802F9D38(); - local->unk4 = 0; + if(local->unkC){ + func_802F9D38(local->unkC); + local->unkC = 0; } func_8030E4E4(SFX_19_BANJO_LANDING_08); func_8025A7DC(COMUSIC_43_ENTER_LEVEL_GLITTER); @@ -278,7 +281,7 @@ void func_802CDD78(Actor * this){ } break; }//L802CE5F0 - if(this->state < 4 && !(((sp66 >= 0)? sp66: -sp66) <= 0x100)){ + if(this->state < 4 && !(((sp66 >= 0)? sp66: -sp66) <= 0x1000)){ func_80328B8C(this, 4, 0.0f, -1); actor_playAnimationOnce(this); }//L802CE630 @@ -298,7 +301,7 @@ void func_802CDD78(Actor * this){ if(local->unk8){ func_8030E988(SFX_17_JINJO_WHISTLE, 1.0f, 22000, sp30, 120.0f, 1200.0f); }else{ - FUNC_8030E8B4(SFX_27_JINJO_HI, 1.0f, 22000, sp30, 120, 1200); + FUNC_8030E8B4(SFX_17_JINJO_WHISTLE, 1.0f, 22000, sp30, 120, 1200); } } break; @@ -307,7 +310,7 @@ void func_802CDD78(Actor * this){ if(local->unk8){ func_8030E988(SFX_27_JINJO_HI, 1.0f, 22000, sp30, 120.0f, 1200.0f); }else{ - FUNC_8030E8B4(SFX_17_JINJO_WHISTLE, 1.0f, 22000, sp30, 120, 1200); + FUNC_8030E8B4(SFX_27_JINJO_HI, 1.0f, 22000, sp30, 120, 1200); } } break; @@ -316,6 +319,3 @@ void func_802CDD78(Actor * this){ } }//L802CE7CC } -#else -#pragma GLOBAL_ASM("asm/nonmatchings/core2/ch/jinjo/func_802CDD78.s") -#endif \ No newline at end of file diff --git a/subyaml/core2.us.v10.yaml b/subyaml/core2.us.v10.yaml index 53e27728..a91bc4d3 100644 --- a/subyaml/core2.us.v10.yaml +++ b/subyaml/core2.us.v10.yaml @@ -189,7 +189,7 @@ segments: - [0x440B0, c, code_440B0] #DONE - [0x45310, c, code_45310] #DONE - [0x468E0, c, ch/code_468E0] #DONE - - [0x46BC0, c, ch/jinjo] + - [0x46BC0, c, ch/jinjo] #DONE - [0x47850, c, ch/beehive] #DONE - [0x47BD0, c, code_47BD0] #DONE - [0x49570, c, ch/soundsource] #DONE