core2/code_6A4B0.c progress

This commit is contained in:
Banjo Kazooie
2022-09-19 23:23:17 -05:00
parent f60c4b5fc9
commit ee6cd85a97
8 changed files with 568 additions and 44 deletions

View File

@@ -10,6 +10,8 @@ extern f32 func_802EC920(BKVertexList *);
extern void func_802C39D4(void);
extern bool func_80340020(s32, f32[3], f32[3], f32, s32, BKVertexList *, f32[3], f32[3]);
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 f32 func_8030A590(void);
@@ -942,7 +944,11 @@ void func_8032EE80(Cube *cube) {
}
}
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_A5BC0/func_8032F170.s")
s32 func_8032F170(Cube **arg0, void **arg1){
*arg0 = D_80383404;
*arg1 = D_80383408;
return D_8038340C;
}
#ifndef NONMATCHING
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_A5BC0/func_8032F194.s")
@@ -963,7 +969,7 @@ void func_8032F194(ActorMarker *marker, s32 position[3], Cube *cube) {
#ifndef NONMATCHING
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_A5BC0/func_8032F21C.s")
#else
void func_8032F21C(Cube *cube, s32 position[3], ActorMarker *marker, bool arg3) {
s32 func_8032F21C(Cube *cube, s32 position[3], ActorMarker *marker, bool arg3) {
ActorProp *sp1C;
u8 temp_t0;
u8 temp_t2;
@@ -1776,7 +1782,91 @@ s32 func_80331638(Cube *cube, f32 arg1[3], f32 arg2[3], f32 arg3, f32 arg4[3], s
}
#endif
#ifndef NONMATCHING
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_A5BC0/func_803319C0.s")
#else
Struct66s *func_803319C0(Cube *arg0, f32 arg1[3], f32 arg2, s32 arg3, f32 arg4[3], u32 arg5) {
Struct66s *var_s7;
Struct66s *var_v0;
s32 var_s3;
Prop *var_s0;
var_s7 = NULL;
var_s0 = arg0->prop2Ptr;\
for (var_s3 = arg0->prop2Cnt; var_s3 != 0; var_s3--, var_s0++) {
if (!var_s0->markerFlag && var_s0->unk8_1 && var_s0->unk8_4) {
ModelProp *mProp = &var_s0->modelProp;
BKModelBin *temp_v0_2;
BKCollisionList *temp_v0_3;
temp_v0_2 = func_8030A4B4(mProp->unk0_31);
if (temp_v0_2 != NULL) {
temp_v0_3 = func_8033A084(temp_v0_2);
if (temp_v0_3 != NULL) {
f32 spAC[3];
f32 spA0[3];
spAC[0] = (f32) mProp->unk4[0];
spAC[1] = (f32) mProp->unk4[1];
spAC[2] = (f32) mProp->unk4[2];
spA0[0] = 0.0f;
spA0[1] = (f32) (mProp->unk0_15 * 2);
spA0[2] = (f32) (mProp->unk0_7 * 2);
var_v0 = func_802E9DD8(temp_v0_3, func_8033A148(temp_v0_2), spAC, spA0, ((f32) mProp->unkA) / 100.0, arg1, arg2, arg3, arg4);
if (var_v0 != NULL) {
var_s7 = var_v0;
}
}
}
} else if (var_s0->markerFlag && var_s0->unk8_3 && var_s0->unk8_4) {
ActorProp *aProp = &var_s0->actorProp;
BKModelBin *temp_v0_2;
BKCollisionList *temp_v0_3;
Actor *temp_v0_6;
BKVertexList *temp_a1;
temp_v0_2 = func_80330DE4(aProp->marker);
if (temp_v0_2 != NULL) {
temp_v0_3 = func_8033A084(temp_v0_2);
if (temp_v0_3 != NULL) {
f32 sp88[3];
f32 sp7C[3];
temp_v0_6 = marker_getActor(aProp->marker);
temp_a1 = func_80330C74(temp_v0_6);
sp88[0] = (f32) aProp->x;
sp88[1] = (f32) aProp->y;
sp88[2] = (f32) aProp->z;
sp7C[0] = aProp->marker->pitch;
sp7C[1] = aProp->marker->yaw;
sp7C[2] = aProp->marker->roll;
var_v0 = func_802E9DD8(temp_v0_3, temp_a1, sp88, sp7C, temp_v0_6->scale, arg1, arg2, arg3, arg4);
if (var_v0 != 0) {
var_s7 = var_v0;
}
}
}
} else if (var_s0->markerFlag) {
ActorProp *aProp = &var_s0->actorProp;
Struct6Cs *temp_v0_7;
temp_v0_7 = aProp->marker->unk18;
if (temp_v0_7 != NULL) {
if (temp_v0_7->unk8 != NULL) {
var_v0 = temp_v0_7->unk8(aProp->marker, arg1, arg2, arg3, arg4);
if (var_v0 != 0) {
var_s7 = var_v0;
}
}
}
}
}
return var_s7;
}
#endif
f32 func_80331D20(BKSprite *sprite) {
BKSpriteFrame *frame;