From fff563a3f081c0119f7add94a0cb880f2a82a12f Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Fri, 23 Aug 2024 18:28:26 -0500 Subject: [PATCH] func_80308984 match --- README.md | 2 +- progress/progress_core2.svg | 4 ++-- progress/progress_total.svg | 6 +++--- src/core2/code_7AF80.c | 43 ++++++++++++++++++++----------------- 4 files changed, 29 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 8144e762..d8c1a78a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# banjo (99.1902%) +# banjo (99.2497%) diff --git a/progress/progress_core2.svg b/progress/progress_core2.svg index 3a1480c2..f73bac9e 100644 --- a/progress/progress_core2.svg +++ b/progress/progress_core2.svg @@ -17,7 +17,7 @@ core2 - 98.5886% - 98.5886% + 98.6923% + 98.6923% \ No newline at end of file diff --git a/progress/progress_total.svg b/progress/progress_total.svg index 0b716bb0..374af5ef 100644 --- a/progress/progress_total.svg +++ b/progress/progress_total.svg @@ -9,7 +9,7 @@ - + @@ -17,7 +17,7 @@ Banjo-Kazooie (us.v10) - 99.1902% - 99.1902% + 99.2497% + 99.2497% \ No newline at end of file diff --git a/src/core2/code_7AF80.c b/src/core2/code_7AF80.c index 9cf129e4..43706546 100644 --- a/src/core2/code_7AF80.c +++ b/src/core2/code_7AF80.c @@ -2359,47 +2359,51 @@ void func_8030895C(s32 arg0){ D_8036ABD4++; } -#ifndef NONMATCHING -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80308984.s") -#else void func_80308984(void) { Cube *iCube; s16 temp_s4; s32 sp54; s32 sp50; + u32 padding[2]; NodeProp *iNode; s32 i; Cube *jCube; NodeProp *jNode; - D_8036ABD4 = 0; - sp54 = 0xF4240; + sp54 = 1000000; sp50 = 0; - for(i = 0; (u32)D_8036ABAC[i] != -1; i++){ - sp54 = (D_8036ABAC[i] < sp54)? D_8036ABAC[i] : sp54; - sp50 = (sp50 < D_8036ABAC[i])? D_8036ABAC[i] : sp50; + + for(i = 0; D_8036ABAC[i] != -1; i++){ + if (D_8036ABAC[i] < sp54) { + sp54 = D_8036ABAC[i]; + } + if (D_8036ABAC[i] > sp50) { + sp50 = D_8036ABAC[i]; + } } + for(iCube = D_80381FA0.cube_list; iCube < D_80381FA0.cube_list + D_80381FA0.cubeCnt; iCube++){ for(iNode = iCube->prop1Ptr; iNode < iCube->prop1Ptr + iCube->prop1Cnt; iNode++){ - if (iNode->unk6.bit6 == 6 && !iNode->unk6.bit0){ - if((iNode->unk8 >= (u32)sp54) && ((u32)sp50 >= iNode->unk8)) { - for(i = 0; iNode->unk8 != (u32)D_8036ABAC[i] && -1 != (u32)D_8036ABAC[i]; i++){ + if (iNode->unk6.bit6 == 6 && iNode->unk6.bit0 == 0){ + u32 tmp = iNode->unk8; + + if(tmp >= sp54 && tmp <= sp50) { + for(i = 0; D_8036ABAC[i] != tmp && D_8036ABAC[i] != -1; i++){ } - if(-1 != (u32)D_8036ABAC[i]){ + + if(D_8036ABAC[i] != -1){ temp_s4 = D_8036ABD4; func_8030895C(iCube - D_80381FA0.cube_list); func_8030895C(0); - for(jCube = iCube; jCube < D_80381FA0.cube_list + D_80381FA0.cubeCnt; jCube++){ + + for(jCube = D_80381FA0.cube_list; jCube < D_80381FA0.cube_list + D_80381FA0.cubeCnt; jCube++){ for(jNode = jCube->prop1Ptr; jNode < jCube->prop1Ptr + jCube->prop1Cnt; jNode++){ - if( - jNode->unk6.bit6 == 6 - && !jNode->unk6.bit0 - && jNode->unk8 == D_8036ABC0[i] - ) { + if (jNode->unk6.bit6 == 6 && jNode->unk6.bit0 == 0 && jNode->unk8 == D_8036ABC0[i]) { func_8030895C(jCube - D_80381FA0.cube_list); - D_80382150[temp_s4]++; + D_80382150[temp_s4 + 1]++; + jNode = jCube->prop1Ptr + jCube->prop1Cnt; } } } @@ -2409,7 +2413,6 @@ void func_80308984(void) { } } } -#endif void func_80308D2C(Gfx **gfx, Mtx **mtx, Vtx **vtx) { s32 phi_s4;