func_80341D5C

This commit is contained in:
Banjo Kazooie
2024-05-05 17:38:30 -05:00
parent e139aac86c
commit 861e460347
5 changed files with 54 additions and 50 deletions

View File

@@ -1,4 +1,4 @@
# banjo (98.9690%)
# banjo (98.9919%)
<img src="./progress/progress_total.svg">

View File

@@ -17,7 +17,7 @@
<text x="22.0" y="14">core2</text>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="78.5" y="15" fill="#010101" fill-opacity=".3">98.4207%</text>
<text x="77.5" y="14">98.4207%</text>
<text x="78.5" y="15" fill="#010101" fill-opacity=".3">98.4605%</text>
<text x="77.5" y="14">98.4605%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -17,7 +17,7 @@
<text x="75.0" y="14">Banjo-Kazooie (us.v10)</text>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="184.5" y="15" fill="#010101" fill-opacity=".3">98.9690%</text>
<text x="183.5" y="14">98.9690%</text>
<text x="184.5" y="15" fill="#010101" fill-opacity=".3">98.9919%</text>
<text x="183.5" y="14">98.9919%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -94,27 +94,32 @@ void mapSavestate_save(enum map_e map){
#define AS_BOOL(expr) ((expr)? TRUE : FALSE)
void mapSavestate_apply(enum map_e map_id) {
s32 var_s0 = 0x1F;
u32* t;
u32 aligned_index;
s32 iBit = 0;
u32* flag_ptr;
u32* word_ptr;
ActorListSaveState *actor_list_ptr;
u32 bit_value;
if(D_8037E650[map_id] == NULL)
return;
t = reinterpret_cast(u32*, D_8037E650[map_id]);
mapSpecificFlags_setAll(*t);
var_s0++;
flag_ptr = reinterpret_cast(u32*, D_8037E650[map_id]);
mapSpecificFlags_setAll(*flag_ptr);
iBit += 8 * sizeof(u32);
func_80308230(1);
func_803083B0(-1);
while (func_803083B0( AS_BOOL(((u32*)D_8037E650[map_id])[var_s0 >> 5] & (1 << (var_s0 & 0x1f)))) != -1) {
var_s0++;
while (
bit_value = AS_BOOL((((u32*)D_8037E650[map_id])[iBit >> 5] & (1 << (iBit & 0x1f)))),
func_803083B0(bit_value) != -1
) {
iBit++;
}
func_80308230(0);
aligned_index = ((var_s0 + ((1 << 7) - 1)) >> 7);
func_8032A09C(D_8037E650[map_id], (ActorListSaveState *)D_8037E650[map_id] + (aligned_index << 2));
free((void *)D_8037E650[map_id] );
actor_list_ptr = (ActorListSaveState *)D_8037E650[map_id] + (((iBit + (0x80 - 1)) >> 7) * 4);
func_8032A09C(D_8037E650[map_id], actor_list_ptr);
free((void*)D_8037E650[map_id] );
D_8037E650[map_id] = NULL;
}

View File

@@ -495,41 +495,40 @@ s32 func_80341C78(s32 arg0[3]) {
return -1;
}
#ifndef NONMATCHING
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_B9770/func_80341D5C.s")
#else
s32 func_80341D5C(s32 arg0[3], s32 arg1[3]){
int i, j;
struct56s *a0;
f32 (*a2)[3];
f32 spC[3];
f32 sp0[3];
spC[0] = (f32)arg0[0];
spC[1] = (f32)arg0[1];
spC[2] = (f32)arg0[2];
sp0[0] = (f32)arg1[0];
sp0[1] = (f32)arg1[1];
sp0[2] = (f32)arg1[2];
for(i = 0; i < D_80371E78; i++){
a2 = D_80371E70[i]->unk8;
for(j = 0; j < D_80371E70[i]->unk0; j++){
if( spC[0] == a2[j][0]
&& spC[1] == a2[j][1]
&& spC[2] == a2[j][2]
&& sp0[0] == a2[j +1][0]
&& sp0[1] == a2[j +1][1]
&& sp0[2] == a2[j +1][2]
){
return i;
}
}
s32 func_80341D5C(s32 arg0[3], s32 arg1[3])
{
int i;
int j;
struct56s *a0;
f32 (*a2)[3];
f32 spC[3];
f32 sp0[3];
struct56s *new_var;
spC[0] = (f32) arg0[0];
spC[1] = (f32) arg0[1];
spC[2] = (f32) arg0[2];
sp0[0] = (f32) arg1[0];
sp0[1] = (f32) arg1[1];
sp0[2] = (f32) arg1[2];
for (i = 0; i < D_80371E78; i++)
{
a2 = a0 + 1;
new_var = D_80371E70[i];
a0 = new_var;
a2 = a0 + 1;
for (j = 0; j < new_var->unk0; j++)
{
if (((spC[0] == a2[j][0]) && (spC[1] == a2[j][1]) && (spC[2] == a2[j][2])) \
&& ((sp0[0] == a2[j + 1][0]) && (sp0[1] == a2[j + 1][1]) && (sp0[2] == a2[j + 1][2])))
{
return i;
}
}
return -1;
}
return -1;
}
#endif
s32 func_80341EC4(f32 arg0[3]){
s32 sp1C[3];