func_802E81CC() match, core2/code_5FD90.c done
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# banjo (96.4497%)
|
# banjo (96.5443%)
|
||||||
|
|
||||||
<img src="./progress/progress_total.svg">
|
<img src="./progress/progress_total.svg">
|
||||||
|
|
||||||
|
@@ -708,7 +708,7 @@ segments:
|
|||||||
- [0xFB3520, c, code_5DBC0] #DONE
|
- [0xFB3520, c, code_5DBC0] #DONE
|
||||||
- [0xFB5460, c, code_5FB00] #DONE
|
- [0xFB5460, c, code_5FB00] #DONE
|
||||||
- [0xFB56E0, c, code_5FD80] #DONE
|
- [0xFB56E0, c, code_5FD80] #DONE
|
||||||
- [0xFB56F0, c, code_5FD90]
|
- [0xFB56F0, c, code_5FD90] #DONE
|
||||||
- [0xFB8930, c, code_62FD0] #DONE
|
- [0xFB8930, c, code_62FD0] #DONE
|
||||||
- [0xFB8A30, c, code_630D0] #DONE
|
- [0xFB8A30, c, code_630D0] #DONE
|
||||||
- [0xFB8D70, c, code_63410] #DONE
|
- [0xFB8D70, c, code_63410] #DONE
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
</mask>
|
</mask>
|
||||||
<g mask="url(#anybadge_1)">
|
<g mask="url(#anybadge_1)">
|
||||||
<path fill="#555" d="M0 0h44v20H0z"/>
|
<path fill="#555" d="M0 0h44v20H0z"/>
|
||||||
<path fill="#14e000" d="M44 0h67v20H44z"/>
|
<path fill="#13e000" d="M44 0h67v20H44z"/>
|
||||||
<path fill="url(#b)" d="M0 0h111v20H0z"/>
|
<path fill="url(#b)" d="M0 0h111v20H0z"/>
|
||||||
</g>
|
</g>
|
||||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
<text x="22.0" y="14">core2</text>
|
<text x="22.0" y="14">core2</text>
|
||||||
</g>
|
</g>
|
||||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
<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">95.5478%</text>
|
<text x="78.5" y="15" fill="#010101" fill-opacity=".3">95.7127%</text>
|
||||||
<text x="77.5" y="14">95.5478%</text>
|
<text x="77.5" y="14">95.7127%</text>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@@ -9,7 +9,7 @@
|
|||||||
</mask>
|
</mask>
|
||||||
<g mask="url(#anybadge_1)">
|
<g mask="url(#anybadge_1)">
|
||||||
<path fill="#555" d="M0 0h150v20H0z"/>
|
<path fill="#555" d="M0 0h150v20H0z"/>
|
||||||
<path fill="#10e000" d="M150 0h67v20H150z"/>
|
<path fill="#0fe000" d="M150 0h67v20H150z"/>
|
||||||
<path fill="url(#b)" d="M0 0h217v20H0z"/>
|
<path fill="url(#b)" d="M0 0h217v20H0z"/>
|
||||||
</g>
|
</g>
|
||||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
<text x="75.0" y="14">Banjo-Kazooie (us.v10)</text>
|
<text x="75.0" y="14">Banjo-Kazooie (us.v10)</text>
|
||||||
</g>
|
</g>
|
||||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
<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">96.4497%</text>
|
<text x="184.5" y="15" fill="#010101" fill-opacity=".3">96.5443%</text>
|
||||||
<text x="183.5" y="14">96.4497%</text>
|
<text x="183.5" y="14">96.5443%</text>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -8,6 +8,7 @@ extern void func_80252C08(f32[3],f32[3], f32, f32[3]);
|
|||||||
extern void func_80252CC4(f32[3],s32, f32, s32);
|
extern void func_80252CC4(f32[3],s32, f32, s32);
|
||||||
extern f32 func_802560D0(f32[3], f32[3], f32[3]);
|
extern f32 func_802560D0(f32[3], f32[3], f32[3]);
|
||||||
extern f32 func_802EC920(BKVertexList *);
|
extern f32 func_802EC920(BKVertexList *);
|
||||||
|
extern void func_8033D5D0(f32 arg0[3], f32 arg1[3], f32 margin, f32 min[3], f32 max[3]);
|
||||||
|
|
||||||
#define ABS_F(s) (((s) >= 0.0f) ? (s) : -(s))
|
#define ABS_F(s) (((s) >= 0.0f) ? (s) : -(s))
|
||||||
|
|
||||||
@@ -442,153 +443,109 @@ int func_802E805C(BKCollisionList *collision_list, BKVertexList *vtxList, f32 ar
|
|||||||
return sp34;
|
return sp34;
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 func_802E81CC(BKCollisionList *collision_list, BKVertexList *vtx_list, f32 arg2[3], f32 arg3[3], f32[3], f32, s32, s32 *, s32 *);
|
s32 func_802E81CC(BKCollisionList *collisionList, BKVertexList *vertexList, f32 arg2[3], f32 arg3[3], f32 arg4[3], f32 arg5, s32 flagFilter, s32 *arg7, s32 *arg8) {
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_5FD90/func_802E81CC.s")
|
BKCollisionGeo **spD4;
|
||||||
// s32 func_802E81CC(BKCollisionList *collision_list, BKVertexList *vtx_list, f32 arg2[3], f32 arg3[3], f32 arg4[3], f32 arg5, s32 flags, s32 *arg7, s32 *arg8) {
|
BKCollisionGeo **spD0;
|
||||||
// BKCollisionGeo **spD4;
|
BKCollisionGeo **spCC;
|
||||||
// BKCollisionGeo **spD0;
|
f32 spC0[3];
|
||||||
// BKCollisionGeo **spCC;
|
BKCollisionTri *start_tri;
|
||||||
// f32 spC0[3];
|
BKCollisionTri *end_tri;
|
||||||
// f32 spAC[3];
|
f32 spAC[3];
|
||||||
// f32 spA0[3];
|
f32 spA0[3];
|
||||||
// //pad8C;
|
BKCollisionTri *i_tri;
|
||||||
// f32 sp80[3];
|
Vtx *vertex_pool;
|
||||||
// f32 sp74[3];
|
Vtx *i_vtx;
|
||||||
// Struct_core2_5FD90_0 *var_s2;
|
s32 i;
|
||||||
// ? *var_t0;
|
s32 j;
|
||||||
// ? *var_v0;
|
f32 sp80[3];
|
||||||
// f32 *temp_v0;
|
f32 sp74[3];
|
||||||
// f32 *var_a0;
|
Struct_core2_5FD90_0 *var_s2;
|
||||||
// f32 *var_a1;
|
f32 temp_f0;
|
||||||
// f32 *var_v1_3;
|
|
||||||
// f32 temp_f0;
|
|
||||||
// f32 temp_f0_2;
|
|
||||||
// f32 temp_f0_3;
|
|
||||||
// f32 temp_f0_4;
|
|
||||||
// f32 temp_f0_5;
|
|
||||||
// f32 temp_f12;
|
|
||||||
// f32 temp_f12_2;
|
|
||||||
// f32 temp_f14;
|
|
||||||
// f32 temp_f16;
|
|
||||||
// f32 temp_f18;
|
|
||||||
// f32 temp_f20;
|
|
||||||
// f32 temp_f2;
|
|
||||||
// f32 temp_f2_2;
|
|
||||||
// f32 temp_f2_3;
|
|
||||||
// BKCollisionTri *temp_v0_2;
|
|
||||||
// s16 *var_a3;
|
|
||||||
// BKCollisionTri *i_tri;
|
|
||||||
// s16 *var_v1_2;
|
|
||||||
// s16 var_t8;
|
|
||||||
// Vtx *vertices;
|
|
||||||
// s32 var_a0_2;
|
|
||||||
// s32 var_a2;
|
|
||||||
// s32 var_t1;
|
|
||||||
// s32 var_v1;
|
|
||||||
// u32 temp_t9;
|
|
||||||
// BKCollisionTri *temp_s7;
|
|
||||||
// BKCollisionGeo *temp_v1;
|
|
||||||
// void *var_t0_2;
|
|
||||||
// void *var_v0_2;
|
|
||||||
// s32 i;
|
|
||||||
|
|
||||||
// func_8033D5D0(arg2, arg3, arg5, &spAC, &spA0);
|
|
||||||
// temp_f0 = func_802EC920(vtx_list);
|
|
||||||
// for(var_v1 = 0; var_v1 < 3; var_v1++){
|
|
||||||
// if ((spA0[var_v1] <= -temp_f0) || (temp_f0 <= spAC[var_v1])) {
|
|
||||||
// return 0;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// func_802E6DEC(collision_list, spAC, spA0, &spD4, &spCC);
|
|
||||||
// vertices = vtxList_getVertices(vtx_list);
|
|
||||||
// var_s2 = &D_8037EAD0;
|
|
||||||
// spD0 = spD4;
|
|
||||||
// if (spD4 < spCC) {
|
|
||||||
// do{
|
|
||||||
// temp_v1 = *spD0;
|
|
||||||
// temp_v0_2 = (temp_v1->start_tri_index * sizeof(BKCollisionTri)) + (s32)collision_list + (collision_list->unk10 * 4) + sizeof(BKCollisionList);
|
|
||||||
// temp_s7 = temp_v0_2 + temp_v1->tri_count;
|
|
||||||
// for(i_tri = temp_v0_2; i_tri < temp_s7; i_tri++){
|
|
||||||
// if ((i_tri->flags & flags) == 0) {
|
|
||||||
// for(var_a2 = 0; var_a2 < 3; var_a2++){
|
|
||||||
// for(var_a0_2 = 0; var_a0_2 < 3; var_a0_2++)
|
|
||||||
// var_s2->unk24.unk4[var_a2][var_a0_2] = (f32) vertices[i_tri->unk0[var_a2]].v.ob[var_a0_2];
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// var_t1 = 1;
|
|
||||||
// var_t0_2 = var_s2 + 0xC;
|
|
||||||
// sp80[0] = var_s2->unk24.unk4[0][0];
|
|
||||||
// sp80[1] = var_s2->unk24.unk4[0][1];
|
|
||||||
// sp80[2] = var_s2->unk24.unk4[0][2];
|
|
||||||
// sp74[0] = var_s2->unk24.unk4[0][0];
|
|
||||||
// sp74[1] = var_s2->unk24.unk4[0][1];
|
|
||||||
// sp74[2] = var_s2->unk24.unk4[0][2];
|
|
||||||
// for(var_t1 = 0; var_t1 < 3; var_t1++){
|
|
||||||
// var_a1 = &sp80;
|
|
||||||
// var_v1_3 = &sp74;
|
|
||||||
// for(i = 0; i < 3; i++){
|
|
||||||
// if ( var_s2->unk24.unk4[i][0] < sp80[i]) {
|
|
||||||
// sp80[i] = var_s2->unk24.unk4[i][0];
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (sp74[i] < var_s2->unk24.unk4[i][1]) {
|
func_8033D5D0(arg2, arg3, arg5, spAC, spA0);
|
||||||
// sp80[i] = var_s2->unk24.unk4[i][1];
|
temp_f0 = func_802EC920(vertexList);
|
||||||
// }
|
for(i = 0; i < 3; i++){
|
||||||
// }
|
if ((spA0[i] <= -temp_f0) || (temp_f0 <= spAC[i])) {
|
||||||
// }
|
return 0;
|
||||||
|
}
|
||||||
// if ( !((spA0[0] < sp80[0]) || (sp74[0] < spAC[0]))
|
}
|
||||||
// && !((spA0[1] < sp80[1]) || (sp74[1] < spAC[1]))
|
func_802E6DEC(collisionList, spAC, spA0, &spD4, &spCC);
|
||||||
// && !((spA0[2] < sp80[2]) || (sp74[2] < spAC[2]))
|
vertex_pool = vtxList_getVertices(vertexList);
|
||||||
// ) {
|
var_s2 = D_8037EAD0;
|
||||||
// var_s2->unk0[0] = var_s2->unk24.unk4[1][0] - var_s2->unk24.unk4[0][0];
|
for(spD0 = spD4; spD0 < spCC; spD0++){
|
||||||
// var_s2->unk0[1] = var_s2->unk24.unk4[1][1] - var_s2->unk24.unk4[0][1];
|
start_tri = (BKCollisionTri *)((BKCollisionGeo *)(collisionList + 1) + collisionList->unk10) + (*spD0)->start_tri_index;
|
||||||
// var_s2->unk0[2] = var_s2->unk24.unk4[1][2] - var_s2->unk24.unk4[0][2];
|
end_tri = start_tri + (*spD0)->tri_count;
|
||||||
// var_s2->unkC[0] = var_s2->unk24.unk4[2][0] - var_s2->unk24.unk4[0][0];
|
for(i_tri = start_tri; i_tri < end_tri; i_tri++){
|
||||||
// var_s2->unkC[1] = var_s2->unk24.unk4[2][1] - var_s2->unk24.unk4[0][1];
|
if (!(i_tri->flags & flagFilter)) {
|
||||||
// var_s2->unkC[2] = var_s2->unk24.unk4[2][2] - var_s2->unk24.unk4[0][2];
|
for(i = 0; i < 3; i++){
|
||||||
// var_s2->unk18[0] = (var_s2->unk0[1] * var_s2->unkC[2]) - (var_s2->unkC[1] *var_s2->unk0[2]);
|
i_vtx = vertex_pool + i_tri->unk0[i];
|
||||||
// var_s2->unk18[1] = (var_s2->unk0[2] * var_s2->unkC[0]) - (var_s2->unkC[2] * var_s2->unk0[0]);
|
for(j = 0; j < 3; j++){
|
||||||
// var_s2->unk18[2] = (var_s2->unk0[0] * var_s2->unkC[1]) - (var_s2->unkC[0] * var_s2->unk0[1]);
|
var_s2->unk28[i][j] = i_vtx->v.ob[j];
|
||||||
// ml_vec3f_normalize( var_s2->unk18);
|
}
|
||||||
// if (i_tri->flags & 0x10000) {
|
}
|
||||||
// spC0[0] = arg2[0] - var_s2->unk24.unk4[0];
|
sp80[0] = var_s2->unk28[0][0];\
|
||||||
// spC0[1] = arg2[1] - var_s2->unk24.unk4[1];
|
sp80[1] = var_s2->unk28[0][1];\
|
||||||
// spC0[2] = arg2[2] - var_s2->unk24.unk4[2];
|
sp80[2] = var_s2->unk28[0][2];
|
||||||
// if (((spC0[0]*var_s2->unk18[0]) + (spC0[0]*var_s2->unk18[0]) + (spC0[0]*var_s2->unk18[0])) < 0.0f) {
|
|
||||||
// var_s2->unk18[0] = -var_s2->unk18[0];
|
sp74[0] = var_s2->unk28[0][0];\
|
||||||
// var_s2->unk18[1] = -var_s2->unk18[1];
|
sp74[1] = var_s2->unk28[0][1];\
|
||||||
// var_s2->unk18[2] = -var_s2->unk18[2];
|
sp74[2] = var_s2->unk28[0][2];
|
||||||
// }
|
for(i = 1; i < 3; i++){
|
||||||
// goto block_31;
|
for(j = 0; j < 3; j++){
|
||||||
// }
|
if (var_s2->unk28[i][j] < sp80[j]) {
|
||||||
// if (!(((var_s2->unk18[0]*arg4[0]) + (var_s2->unk18[1]*arg4[1]) + (var_s2->unk18[2]*arg4[2])) > 0.0f)) {
|
sp80[j] = var_s2->unk28[i][j];
|
||||||
// block_31:
|
}
|
||||||
// var_s2++;
|
|
||||||
// var_s2->unk24.unk0 = i_tri;
|
if (sp74[j] < var_s2->unk28[i][j]) {
|
||||||
// if ((var_s2 - D_8037EAD0) < 0x65) {
|
sp74[j] = var_s2->unk28[i][j];
|
||||||
// goto block_32;
|
}
|
||||||
// }
|
}
|
||||||
// } else {
|
}
|
||||||
// goto block_32;
|
|
||||||
// }
|
if ((spA0[0] < sp80[0]) || (sp74[0] < spAC[0])) continue;
|
||||||
// } else {
|
if ((spA0[1] < sp80[1]) || (sp74[1] < spAC[1])) continue;
|
||||||
// goto block_32;
|
if ((spA0[2] < sp80[2]) || (sp74[2] < spAC[2])) continue;
|
||||||
// }
|
|
||||||
// } else {
|
var_s2->unk0[0] = var_s2->unk28[1][0] - var_s2->unk28[0][0];
|
||||||
// block_32:
|
var_s2->unk0[1] = var_s2->unk28[1][1] - var_s2->unk28[0][1];
|
||||||
// i_tri++;
|
var_s2->unk0[2] = var_s2->unk28[1][2] - var_s2->unk28[0][2];
|
||||||
// if ((u32) i_tri < (u32) temp_s7) {
|
|
||||||
// goto loop_8;
|
var_s2->unkC[0] = var_s2->unk28[2][0] - var_s2->unk28[0][0];
|
||||||
// }
|
var_s2->unkC[1] = var_s2->unk28[2][1] - var_s2->unk28[0][1];
|
||||||
// }
|
var_s2->unkC[2] = var_s2->unk28[2][2] - var_s2->unk28[0][2];
|
||||||
// }
|
|
||||||
// }while(((var_s2 - D_8037EAD0) < 0x65) && (spD0 += 4 < spCC));
|
var_s2->unk18[0] = (var_s2->unk0[1] * var_s2->unkC[2]) - (var_s2->unk0[2] * var_s2->unkC[1]);
|
||||||
// }
|
var_s2->unk18[1] = (var_s2->unk0[2] * var_s2->unkC[0]) - (var_s2->unk0[0] * var_s2->unkC[2]);
|
||||||
// *arg7 = (s32) D_8037EAD0;
|
var_s2->unk18[2] = (var_s2->unk0[0] * var_s2->unkC[1]) - (var_s2->unk0[1] * var_s2->unkC[0]);
|
||||||
// *arg8 = (s32) var_s2;
|
ml_vec3f_normalize( var_s2->unk18);
|
||||||
// return var_s2 - D_8037EAD0 > 0;
|
if (i_tri->flags & 0x10000) {
|
||||||
// }
|
spC0[0] = arg2[0] - var_s2->unk28[0][0];
|
||||||
|
spC0[1] = arg2[1] - var_s2->unk28[0][1];
|
||||||
|
spC0[2] = arg2[2] - var_s2->unk28[0][2];
|
||||||
|
if (((spC0[0]*var_s2->unk18[0]) + (spC0[1]*var_s2->unk18[1]) + (spC0[2]*var_s2->unk18[2])) < 0.0f) {
|
||||||
|
var_s2->unk18[0] = -var_s2->unk18[0];\
|
||||||
|
var_s2->unk18[1] = -var_s2->unk18[1];\
|
||||||
|
var_s2->unk18[2] = -var_s2->unk18[2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if (((var_s2->unk18[0]*arg4[0]) + (var_s2->unk18[1]*arg4[1]) + (var_s2->unk18[2]*arg4[2])) > 0.0f)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
var_s2->unk24 = i_tri;
|
||||||
|
var_s2++;
|
||||||
|
if ((var_s2 - D_8037EAD0) > 100)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((var_s2 - D_8037EAD0) > 100)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
*arg7 = (s32) D_8037EAD0;
|
||||||
|
*arg8 = (s32) var_s2;
|
||||||
|
return var_s2 - D_8037EAD0 > 0;
|
||||||
|
}
|
||||||
|
|
||||||
Struct_core2_5FD90_0 *func_802E879C(Struct_core2_5FD90_0 *arg0, Struct_core2_5FD90_0 *arg1, f32 arg2[3], f32 arg3, f32 arg4[3]) {
|
Struct_core2_5FD90_0 *func_802E879C(Struct_core2_5FD90_0 *arg0, Struct_core2_5FD90_0 *arg1, f32 arg2[3], f32 arg3, f32 arg4[3]) {
|
||||||
s32 i;
|
s32 i;
|
||||||
|
Reference in New Issue
Block a user