func_803311D4() match
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# banjo (97.2689%)
|
# banjo (97.3403%)
|
||||||
|
|
||||||
<img src="./progress/progress_total.svg">
|
<img src="./progress/progress_total.svg">
|
||||||
|
|
||||||
|
@@ -28,18 +28,24 @@ typedef struct sprite_prop_s{
|
|||||||
} SpriteProp;
|
} SpriteProp;
|
||||||
|
|
||||||
typedef struct model_prop_s{
|
typedef struct model_prop_s{
|
||||||
u16 unk0_31:12;
|
union{
|
||||||
u16 pad0_19:4;
|
u16 unk0;
|
||||||
|
struct{
|
||||||
|
u16 unk0_31:12;
|
||||||
|
u16 pad0_19:4;
|
||||||
|
};
|
||||||
|
};
|
||||||
u8 unk0_15;
|
u8 unk0_15;
|
||||||
u8 unk0_7;
|
u8 unk0_7;
|
||||||
s16 unk4[3];
|
s16 unk4[3];
|
||||||
u8 unkA; //scale * 100.0
|
u8 unkA;
|
||||||
u8 padB_7 :2;
|
u8 padB_7 :2;
|
||||||
u8 unkB_5 :1;
|
u8 unkB_5 :1;
|
||||||
u8 unkB_4 :1;
|
u8 unkB_4 :1;
|
||||||
u8 padB_3 :4;
|
u8 padB_3 :4;
|
||||||
} ModelProp;
|
} ModelProp;
|
||||||
|
|
||||||
|
|
||||||
typedef struct actor_prop_s{
|
typedef struct actor_prop_s{
|
||||||
struct actorMarker_s* marker;
|
struct actorMarker_s* marker;
|
||||||
s16 x;
|
s16 x;
|
||||||
|
@@ -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">96.1093%</text>
|
<text x="78.5" y="15" fill="#010101" fill-opacity=".3">96.2338%</text>
|
||||||
<text x="77.5" y="14">96.1093%</text>
|
<text x="77.5" y="14">96.2338%</text>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@@ -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">97.2689%</text>
|
<text x="184.5" y="15" fill="#010101" fill-opacity=".3">97.3403%</text>
|
||||||
<text x="183.5" y="14">97.2689%</text>
|
<text x="183.5" y="14">97.3403%</text>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -12,6 +12,7 @@ extern bool func_80340020(s32, f32[3], f32[3], f32, s32, BKVertexList *, f32[3],
|
|||||||
extern void func_80340200(s32, f32[3], f32[3], f32, s32, s32, BKVertexList *, s32);
|
extern void func_80340200(s32, f32[3], f32[3], f32, s32, s32, BKVertexList *, s32);
|
||||||
extern s32 func_802E9DD8(BKCollisionList *collisionList, BKVertexList *vtxList, f32 arg2[3], f32 *arg3, f32 arg4, f32 arg5[3], f32 arg6, f32 arg7[3], s32 arg8);
|
extern s32 func_802E9DD8(BKCollisionList *collisionList, BKVertexList *vtxList, f32 arg2[3], f32 *arg3, f32 arg4, f32 arg5[3], f32 arg6, f32 arg7[3], s32 arg8);
|
||||||
extern void *func_802EBAE0(UNK_TYPE(s32), f32 position[3], f32 rotation[3], f32 scale, UNK_TYPE(s32), UNK_TYPE(s32), UNK_TYPE(s32), f32, UNK_TYPE(s32));
|
extern void *func_802EBAE0(UNK_TYPE(s32), f32 position[3], f32 rotation[3], f32 scale, UNK_TYPE(s32), UNK_TYPE(s32), UNK_TYPE(s32), f32, UNK_TYPE(s32));
|
||||||
|
extern int func_802E805C(BKCollisionList *, BKVertexList *, f32[3], f32[3], f32, f32[3], f32[3], f32[3], u32);
|
||||||
|
|
||||||
|
|
||||||
extern f32 func_8030A590(void);
|
extern f32 func_8030A590(void);
|
||||||
@@ -1592,53 +1593,33 @@ bool func_80331158(ActorMarker *arg0, s32 arg1, s32 arg2) {
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NONMATCHING
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_A5BC0/func_803311D4.s")
|
|
||||||
#else
|
|
||||||
extern int func_802E805C(BKCollisionList *, BKVertexList *, f32[3], f32[3], f32, f32[3], f32[3], f32[3], u32);
|
|
||||||
s32 func_803311D4(Cube *arg0, f32 *arg1, f32 *arg2, f32 *arg3, u32 arg4) {
|
s32 func_803311D4(Cube *arg0, f32 *arg1, f32 *arg2, f32 *arg3, u32 arg4) {
|
||||||
f32 spAC[3];
|
Actor *temp_s2_2;
|
||||||
f32 spA0[3];
|
|
||||||
f32 sp88[3];
|
|
||||||
f32 sp7C[3];
|
|
||||||
Actor *temp_s2_2;
|
|
||||||
Actor *temp_v0_6;
|
|
||||||
ActorMarker *temp_a0;
|
ActorMarker *temp_a0;
|
||||||
ActorMarker *temp_a0_2;
|
|
||||||
BKModelBin *temp_v0_2;
|
|
||||||
BKModelBin *temp_v0_3;
|
|
||||||
BKModelBin *var_a0;
|
BKModelBin *var_a0;
|
||||||
BKModelBin *var_s0;
|
BKModelBin *var_s0 = NULL;
|
||||||
BKModelBin *var_v0_2;
|
|
||||||
BKVertexList *temp_a1;
|
BKVertexList *temp_a1;
|
||||||
Prop *var_s1;
|
Prop *var_s1;
|
||||||
Struct6Cs *temp_v0_8;
|
f32 spAC[3];
|
||||||
f32 var_f10;
|
f32 spA0[3];
|
||||||
f32 var_f4;
|
BKCollisionList *temp_s0;
|
||||||
f32 var_f6;
|
|
||||||
s32 (*temp_v1_2)(struct actorMarker_s *, f32 [3], f32, f32 [3], s32);
|
|
||||||
s32 temp_s0;
|
|
||||||
s32 temp_s0_2;
|
s32 temp_s0_2;
|
||||||
BKCollisionList *temp_s2;
|
BKCollisionList *temp_s2;
|
||||||
s32 temp_v0;
|
|
||||||
s32 temp_v0_4;
|
f32 sp88[3];
|
||||||
s32 temp_v0_5;
|
f32 sp7C[3];
|
||||||
s32 temp_v0_7;
|
|
||||||
s32 temp_v1;
|
|
||||||
s32 var_s6;
|
s32 var_s6;
|
||||||
s32 var_v0;
|
s32 var_v0;
|
||||||
u32 temp_t3;
|
|
||||||
u32 temp_t6;
|
|
||||||
u32 temp_t9;
|
|
||||||
u32 var_s5;
|
u32 var_s5;
|
||||||
|
|
||||||
var_s5 = arg0->prop2Cnt;
|
|
||||||
var_s6 = 0;
|
var_s6 = 0;
|
||||||
var_s1 = arg0->prop2Ptr;
|
for(var_s1 = arg0->prop2Ptr, var_s5 = arg0->prop2Cnt; var_s5 > 0; var_s5--, var_s1++) {
|
||||||
for(var_s5 = arg0->prop2Cnt; var_s5 > 0; var_s5--) {
|
if(var_s1);
|
||||||
|
|
||||||
if (!var_s1->markerFlag && var_s1->unk8_1 && var_s1->unk8_4) { //ModelProp
|
if (!var_s1->markerFlag && var_s1->unk8_1 && var_s1->unk8_4) { //ModelProp
|
||||||
var_s0 = func_8030A4B4(var_s1->modelProp.unk0_31);
|
var_s0 = func_8030A4B4(((u32)var_s1->modelProp.unk0 >> 0x4));
|
||||||
if ((var_s0 != NULL) || (func_8028F280() && ((var_s0 = func_8030A428(var_s1->modelProp.unk0_31)) != NULL))) {
|
if ((var_s0 != NULL) || (func_8028F280() && ((var_s0 = func_8030A428(((u32)var_s1->modelProp.unk0 >> 0x4))) != NULL))) {
|
||||||
temp_s2 = func_8033A084(var_s0);
|
temp_s2 = func_8033A084(var_s0);
|
||||||
if (temp_s2 != 0) {
|
if (temp_s2 != 0) {
|
||||||
spAC[0] = (f32) var_s1->modelProp.unk4[0];
|
spAC[0] = (f32) var_s1->modelProp.unk4[0];
|
||||||
@@ -1647,63 +1628,62 @@ s32 func_803311D4(Cube *arg0, f32 *arg1, f32 *arg2, f32 *arg3, u32 arg4) {
|
|||||||
spA0[0] = 0.0f;
|
spA0[0] = 0.0f;
|
||||||
spA0[1] = (f32) (var_s1->modelProp.unk0_15 * 2);
|
spA0[1] = (f32) (var_s1->modelProp.unk0_15 * 2);
|
||||||
spA0[2] = (f32) (var_s1->modelProp.unk0_7 * 2);
|
spA0[2] = (f32) (var_s1->modelProp.unk0_7 * 2);
|
||||||
var_v0 = func_802E805C(temp_s2, func_8033A148(var_s0), spAC, spA0, var_s1->modelProp.unkA / 100.0, arg1, arg2, arg3, arg4);
|
var_v0 = func_802E805C(temp_s2, func_8033A148(var_s0), spAC, spA0, (f32)var_s1->modelProp.unkA / 100.0, arg1, arg2, arg3, arg4);
|
||||||
if (var_v0 != 0) {
|
if (var_v0 != 0) {
|
||||||
var_s6 = var_v0;
|
var_s6 = var_v0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (var_s1->markerFlag && var_s1->unk8_3 && var_s1->unk8_4 && !func_80331158(var_s1->actorProp.marker, arg1, arg2)) {
|
} else if (var_s1->markerFlag && var_s1->unk8_3 && var_s1->unk8_4 && !func_80331158(var_s1->actorProp.marker, arg1, arg2)) {
|
||||||
temp_a0 = var_s1->actorProp.marker;
|
if (!(var_s1->actorProp.marker->unk3E_0 && (marker_getActor(var_s1->actorProp.marker)->unk3C & 0x008000000))) {
|
||||||
if (temp_a0->collidable && (marker_getActor(temp_a0)->unk3C & 0x000010000)) {
|
|
||||||
var_a0 = func_80330B1C(var_s1->actorProp.marker);
|
|
||||||
} else {
|
|
||||||
var_a0 = func_80330DE4(var_s1->actorProp.marker);
|
var_a0 = func_80330DE4(var_s1->actorProp.marker);
|
||||||
|
} else {
|
||||||
|
var_a0 = func_80330B1C(var_s1->actorProp.marker);
|
||||||
}
|
}
|
||||||
if (var_a0 == NULL && func_8028F280(var_a0)) {
|
|
||||||
var_a0 = func_80330B1C(var_s1->actorProp.marker);
|
if(var_a0 != NULL || (func_8028F280() && (var_a0 = func_80330B1C(var_s1->actorProp.marker), TRUE))){
|
||||||
}
|
temp_s0 = func_8033A084(var_a0);
|
||||||
temp_s0 = func_8033A084(var_a0);
|
if (temp_s0 != 0) {
|
||||||
if (temp_s0 != 0) {
|
temp_s2_2 = marker_getActor(var_s1->actorProp.marker);
|
||||||
temp_s2_2 = marker_getActor(var_s1->actorProp.marker);
|
temp_a1 = func_80330C74(temp_s2_2);
|
||||||
temp_a1 = func_80330C74(temp_s2_2);
|
sp88[0] = (f32) var_s1->actorProp.x;
|
||||||
sp88[0] = (f32) var_s1->actorProp.x;
|
sp88[1] = (f32) var_s1->actorProp.y;
|
||||||
sp88[1] = (f32) var_s1->actorProp.y;
|
sp88[2] = (f32) var_s1->actorProp.z;
|
||||||
sp88[2] = (f32) var_s1->actorProp.z;
|
sp7C[0] = (f32) var_s1->actorProp.marker->pitch;
|
||||||
sp7C[0] = (f32) var_s1->actorProp.marker->pitch;
|
sp7C[1] = (f32) var_s1->actorProp.marker->yaw;
|
||||||
sp7C[1] = (f32) var_s1->actorProp.marker->yaw;
|
sp7C[2] = (f32) var_s1->actorProp.marker->roll;
|
||||||
sp7C[2] = (f32) var_s1->actorProp.marker->roll;
|
temp_s0_2 = func_802E805C(temp_s0, temp_a1, &sp88, &sp7C, temp_s2_2->scale, arg1, arg2, arg3, arg4);
|
||||||
temp_s0_2 = func_802E805C(temp_s0, temp_a1, &sp88, &sp7C, temp_s2_2->scale, arg1, arg2, arg3, arg4);
|
if ((temp_s0_2 != 0) && (func_8029453C())) {
|
||||||
if ((temp_s0_2 != 0) && (func_8029453C() != 0)) {
|
func_80330B1C(var_s1->actorProp.marker);
|
||||||
func_80330B1C(var_s1->actorProp.marker);
|
if (var_s1->actorProp.marker->unk50 != 0) {
|
||||||
if (var_s1->actorProp.marker->unk50 != 0) {
|
D_80383410[0] = arg2[0];
|
||||||
D_80383410[0] = (f32) arg2[0];
|
D_80383410[1] = arg2[1];
|
||||||
D_80383410[1] = (f32) arg2[1];
|
D_80383410[2] = arg2[2];
|
||||||
D_80383410[2] = (f32) arg2[2];
|
D_8038341C = var_s1->actorProp.marker;
|
||||||
D_8038341C = var_s1->actorProp.marker;
|
if ((temp_s0_2 && temp_s0_2) && temp_s0_2)
|
||||||
D_80383420 = temp_s0_2;
|
{
|
||||||
|
}
|
||||||
|
D_80383420 = temp_s0_2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (temp_s0_2 != 0) {
|
||||||
|
var_s6 = temp_s0_2;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (temp_s0_2 != 0) {
|
|
||||||
var_s6 = temp_s0_2;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (var_s1->markerFlag) {
|
} else if (var_s1->markerFlag) {
|
||||||
temp_a0_2 = var_s1->actorProp.marker;
|
if (var_s1->actorProp.marker->unk18 != NULL) {
|
||||||
if (temp_a0_2->unk18 != NULL) {
|
if (var_s1->actorProp.marker->unk18->unk0 != NULL) {
|
||||||
if (temp_a0_2->unk18->unk0 != NULL) {
|
var_v0 = var_s1->actorProp.marker->unk18->unk0(var_s1->actorProp.marker, arg1, arg2, arg3, arg4);
|
||||||
var_v0 = temp_a0_2->unk18->unk0(temp_a0_2, arg1, arg2, arg3, arg4);
|
|
||||||
if (var_v0 != 0) {
|
if (var_v0 != 0) {
|
||||||
var_s6 = var_v0;
|
var_s6 = var_v0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var_s1++;
|
|
||||||
}
|
}
|
||||||
return var_s6;
|
return var_s6;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef NONMATCHING
|
#ifndef NONMATCHING
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_A5BC0/func_80331638.s")
|
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_A5BC0/func_80331638.s")
|
||||||
|
Reference in New Issue
Block a user