core2/code_851D0.c done
This commit is contained in:
parent
fefa2b7093
commit
ceb24cd225
|
@ -1,4 +1,4 @@
|
|||
# banjo (92.5147%)
|
||||
# banjo (92.6466%)
|
||||
|
||||
<img src="./progress/progress_total.svg">
|
||||
|
||||
|
|
|
@ -187,7 +187,7 @@ void fxcommon2score_free(enum item_e, struct8s *);
|
|||
|
||||
struct7s *func_802FDE2C(s32);
|
||||
void func_802FE844(s32, struct8s *);
|
||||
void func_802FDEE0(s32, struct8s *, Gfx**, Mtx**, s32*);
|
||||
void func_802FDEE0(s32, struct8s *, Gfx**, Mtx**, Vtx **);
|
||||
void func_802FDDC4(s32, struct8s *);
|
||||
|
||||
struct7s *func_802FF090(enum item_e);
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
</mask>
|
||||
<g mask="url(#anybadge_1)">
|
||||
<path fill="#555" d="M0 0h44v20H0z"/>
|
||||
<path fill="#2ae000" d="M44 0h67v20H44z"/>
|
||||
<path fill="#29e000" d="M44 0h67v20H44z"/>
|
||||
<path fill="url(#b)" d="M0 0h111v20H0z"/>
|
||||
</g>
|
||||
<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>
|
||||
</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">90.7278%</text>
|
||||
<text x="77.5" y="14">90.7278%</text>
|
||||
<text x="78.5" y="15" fill="#010101" fill-opacity=".3">90.9578%</text>
|
||||
<text x="77.5" y="14">90.9578%</text>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
@ -9,7 +9,7 @@
|
|||
</mask>
|
||||
<g mask="url(#anybadge_1)">
|
||||
<path fill="#555" d="M0 0h150v20H0z"/>
|
||||
<path fill="#22e000" d="M150 0h67v20H150z"/>
|
||||
<path fill="#21e000" d="M150 0h67v20H150z"/>
|
||||
<path fill="url(#b)" d="M0 0h217v20H0z"/>
|
||||
</g>
|
||||
<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>
|
||||
</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">92.5147%</text>
|
||||
<text x="183.5" y="14">92.5147%</text>
|
||||
<text x="184.5" y="15" fill="#010101" fill-opacity=".3">92.6466%</text>
|
||||
<text x="183.5" y="14">92.6466%</text>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
@ -18,7 +18,7 @@ f32 func_802FB0E4(s32);
|
|||
|
||||
extern void *D_8036A010;
|
||||
extern void *D_8036A014;
|
||||
extern f32 D_8036A018[];
|
||||
extern s32 D_8036A018[];
|
||||
extern Gfx D_8036A030[];
|
||||
|
||||
|
||||
|
@ -93,96 +93,88 @@ f32 func_802FDE60(f32 arg0) {
|
|||
return arg0;
|
||||
}
|
||||
|
||||
#if 1
|
||||
#ifndef NONMATCHING
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_76D90/func_802FDEE0.s")
|
||||
#else
|
||||
void func_802FDEE0(s32 arg0, struct8s *arg1, Gfx **arg2, Mtx **arg3, s32 *arg4){
|
||||
void func_802FDEE0(s32 arg0, struct8s *arg1, Gfx **arg2, Mtx **arg3, Vtx **arg4){
|
||||
s32 var_v0;
|
||||
s32 var_v1;
|
||||
s32 sp13C;
|
||||
s32 sp138;
|
||||
s32 sp134;
|
||||
f32 sp130;
|
||||
f32 sp12C;
|
||||
f32 sp128;
|
||||
f32 sp124;
|
||||
s32 phi_a1;
|
||||
s32 phi_s4;
|
||||
s32 phi_v0;
|
||||
s32 phi_v1;
|
||||
f64 phi_f24;
|
||||
f32 temp_f30;
|
||||
s32 i;
|
||||
f64 var_f24;
|
||||
u32 sp118;
|
||||
f32 sp110;
|
||||
|
||||
if(!D_8036A010)
|
||||
return;
|
||||
|
||||
phi_a1 = (D_803815C0 == 2) ? ((D_8036A014) ? D_8036A014: D_8036A010) : D_8036A010;
|
||||
//func_80347FC0(arg2, phi_a1, 0, 0, 0, 0, 0, 2, 2, &sp13C, &sp138);
|
||||
func_8024C7B8(arg2, arg3);
|
||||
gSPDisplayList((*arg2)++, D_8036A030);
|
||||
phi_s4 = 2;
|
||||
for(sp134 = 0; sp134 < phi_a1; sp134++){
|
||||
|
||||
sp118 = D_803815C0 == 2;
|
||||
if (D_8036A010 != 0) {
|
||||
func_80347FC0(arg2, (sp118 ) ? (D_8036A014 != 0) ? D_8036A014 : D_8036A010 : D_8036A010, 0, 0, 0, 0, 0, 2, 2, &sp13C, &sp138);
|
||||
func_8024C7B8(arg2, arg3);
|
||||
gSPDisplayList((*arg2)++, D_8036A030);
|
||||
for(sp134 = 0; sp134 < (sp118) ? (D_8036A014 != 0) ? 2 : 1 : 6; sp134++){
|
||||
sp110 = D_8036A018[sp134] * -0x3C;
|
||||
gDPPipeSync((*arg2)++);
|
||||
if (sp118) {
|
||||
if (sp134 != 0) {
|
||||
func_80347FC0(arg2, D_8036A010, 0, 0, 0, 0, 0, 2, 2, &sp13C, &sp138);
|
||||
gDPSetPrimColor((*arg2)++, 0, 0, 0x00, 0x00, 0x00, (0xFF - D_803815E4));
|
||||
} else {
|
||||
gDPSetPrimColor((*arg2)++, 0, 0, 0x00, 0x00, 0x00, D_803815E4);
|
||||
}
|
||||
} else {
|
||||
if (D_803815D4 <= D_8036A018[sp134]) {
|
||||
gDPSetPrimColor((*arg2)++, 0, 0, 0x00, 0x00, 0x00, 0x50);
|
||||
}
|
||||
else{
|
||||
if ((D_803815EC != 0) && ((D_803815D4 - 1.0f) == D_8036A018[sp134])) {
|
||||
gDPSetPrimColor((*arg2)++, 0, 0, 0x00, 0x00, 0x00, D_803815E8);
|
||||
} else {
|
||||
gDPSetPrimColor((*arg2)++, 0, 0, 0x00, 0x00, 0x00, 0xFF);
|
||||
}
|
||||
}
|
||||
}
|
||||
sp128 = (244.0f - ((f32) D_80276588 / 2));
|
||||
sp124 = func_802FB0E4(arg1) + ((f32) D_8027658C / 2) - 246.0f;
|
||||
guTranslate(*arg3, sp128 * 4.0f, sp124 * 4.0f, 0.0f);
|
||||
gSPMatrix((*arg2)++, OS_K0_TO_PHYSICAL((*arg3)++), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
|
||||
guRotate(*arg3, func_802FDE60(D_803815D8 + D_803815DC), 0.0f, 0.0f, 1.0f);
|
||||
gSPMatrix((*arg2)++, OS_K0_TO_PHYSICAL((*arg3)++), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
|
||||
guScale(*arg3, D_803815E0, D_803815E0, D_803815E0);
|
||||
gSPMatrix((*arg2)++, OS_K0_TO_PHYSICAL((*arg3)++), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
|
||||
guTranslate(*arg3, -sp128 * 4.0f, -sp124 * 4.0f, 0.0f);
|
||||
gSPMatrix((*arg2)++, OS_K0_TO_PHYSICAL((*arg3)++), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
var_f24 = MIN(1.0, MAX(0.0, D_803815C8));
|
||||
sp130 = cosf(((D_803815CC + sp110) * 0.017453292519943295)) * (var_f24 * 24.5) * D_803815D0;
|
||||
var_f24 = MIN(1.0, MAX(0.0, D_803815C8));
|
||||
sp12C = sinf(((D_803815CC + sp110) * 0.017453292519943295))* (var_f24 * 24.5) * D_803815D0;
|
||||
gSPVertex((*arg2)++, *arg4, 4, 0);
|
||||
for(var_v1 = 0; var_v1 < 2; var_v1++){
|
||||
for(var_v0 = 0; var_v0 < 2; var_v0++, (*arg4)++){
|
||||
(*arg4)->v.ob[0] = ((((sp13C * D_803815D0) * var_v0) - ((sp13C * D_803815D0) / 2)) + (s32) (sp130 + sp128)) * 4.0f;
|
||||
(*arg4)->v.ob[1] = ((((sp138 * D_803815D0) / 2) - ((sp138 * D_803815D0) * var_v1)) + (s32) (sp12C + sp124)) * 4.0f;
|
||||
(*arg4)->v.ob[2] = -0x14;
|
||||
(*arg4)->v.tc[0] = (s16) ((sp13C - 1) * var_v0 << 9);
|
||||
(*arg4)->v.tc[1] = (s16) ((sp138 - 1) * var_v1 << 9);
|
||||
|
||||
}
|
||||
}
|
||||
gSP1Quadrangle((*arg2)++, 0, 1, 3, 2, 0);
|
||||
}
|
||||
gDPPipeSync((*arg2)++);
|
||||
if(D_803815C0 == 2){
|
||||
if(sp134 != 0){
|
||||
//func_80347FC0(arg2, D_8036A010, 0, 0, 0, 0, 0, phi_s4, phi_s4, &sp13C, &sp138);
|
||||
gDPSetPrimColor((*arg2)++, 0, 0, 0x00, 0x00, 0x00, (0xFF - D_803815E4)& 0xFF);
|
||||
}
|
||||
else{
|
||||
gDPSetPrimColor((*arg2)++, 0, 0, 0x00, 0x00, 0x00, D_803815E4 & 0xFF);
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(D_803815D4 < D_8036A018[sp134]){
|
||||
gDPSetPrimColor((*arg2)++, 0, 0, 0x00, 0x00, 0x00, 0x50);
|
||||
}else if(D_803815EC && (D_803815D4 - 1.0f) == D_8036A018[sp134]){
|
||||
gDPSetPrimColor((*arg2)++, 0, 0, 0x00, 0x00, 0x00, D_803815E8 & 0xFF);
|
||||
}else{
|
||||
gDPSetPrimColor((*arg2)++, 0, 0, 0x00, 0x00, 0x00, 0xFF);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//if statements here
|
||||
temp_f30 = 244.0f - ((f32) D_80276588 / 2.0f);
|
||||
sp124 = (func_802FB0E4(arg1) + ((f32) D_8027658C / 2.0f)) - 246.0f;
|
||||
guTranslate(*arg3, temp_f30 * 4.0f, sp124, 0);
|
||||
gSPMatrix((*arg2)++, 0x80000000 + (*arg3)++, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
|
||||
guRotate(*arg3, func_802FDE60(D_803815D8 + D_803815DC), 0, 0, 1.0f);
|
||||
gSPMatrix((*arg2)++, 0x80000000 + (*arg3)++, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
|
||||
guScale(*arg3, D_803815E0, D_803815E0, D_803815E0);
|
||||
gSPMatrix((*arg2)++, 0x80000000 + (*arg3)++, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
|
||||
guTranslate(*arg3, -temp_f30 * 4.0f, -sp124 * 4.0f, 0);
|
||||
gSPMatrix((*arg2)++, 0x80000000 + (*arg3)++, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
|
||||
phi_f24 = _76D90_MIN(_76D90_MAX(D_803815C8, 0.0),1.0);
|
||||
sp134 = temp_f18 = ((f64) cosf((f32) ((f64) (*(void *)0x803815CC + sp110) * D_803773B0)) * (phi_f24 * D_803773B8) * D_803815D0);
|
||||
gSPVertex((*arg2)++, *arg4, 4, 0);
|
||||
do{
|
||||
for(phi_v0 = 0; phi_v0 < phi_s4; phi_v0++){
|
||||
// temp_f24 = (f32) sp13C * D_803815D0;
|
||||
//(*arg4)->v.ob[0] = ((((temp_f24 * (f32) phi_v0) - (temp_f24 / 2.0f)) + temp_f14) * 4.0f);
|
||||
// temp_f30_2 = (f32) sp138 * D_803815D0;
|
||||
//(*arg4)->v.ob[1] = ((((temp_f30_2 * (f32) phi_v0) - (temp_f30_2 / 2.0f)) + temp_f14) * 4.0f);
|
||||
// (*arg4)->unk4 = (u16)-0x14;
|
||||
// (*arg4)->unk8 = (s16) (((sp13C - 1) * phi_v0) << 9);
|
||||
// (*arg4)->unkA = (s16) (((sp138 - 1) * phi_v1) << 9);
|
||||
// *arg4 = (void *) (*arg4 + 0x10);
|
||||
//(*arg4)++
|
||||
}// loop43
|
||||
phi_v1++;
|
||||
}while(phi_v1 != phi_s4); // loop42
|
||||
phi_a1 = (D_803815C0 == 2) ? ((D_8036A014) ? ++phi_s4: 1) : 6;
|
||||
gDPSetTextureLUT((*arg2)++, G_TT_NONE);
|
||||
gDPPipelineMode((*arg2)++, G_PM_NPRIMITIVE);
|
||||
func_8024C904(arg2, arg3);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//L802FE7A0
|
||||
//gSP1Quadrangle((*arg2)++, 0, 1, 3, 2, 0);
|
||||
gDPPipeSync((*arg2)++);
|
||||
gDPSetTextureLUT((*arg2)++, G_TT_NONE);
|
||||
gDPPipelineMode((*arg2)++, G_PM_NPRIMITIVE);
|
||||
func_8024C904(arg2, arg3, arg4);
|
||||
//L802FE7FC
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@ typedef struct {
|
|||
NodeProp *func_803049CC(enum actor_e actor_id, s32 arg1[3]);
|
||||
s32 func_80304FC4(enum actor_e *actor_id_list, NodeProp **node_list, s32 arg2);
|
||||
void cube_positionToIndices(s32 arg0[3], f32 arg1[3]);
|
||||
NodeProp *func_803080C8(s32 arg0);
|
||||
void func_80308984(void);
|
||||
void func_80308D2C(Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
void func_80308F0C(Cube *cube);
|
||||
|
@ -92,9 +93,9 @@ struct {
|
|||
|
||||
|
||||
u8 D_80381FE8[0x50];
|
||||
Cube *D_80382038[0x1C];
|
||||
s32 D_803820A8[3];
|
||||
s32 D_803820B4;
|
||||
Cube *D_80382038[0x1C]; //static?
|
||||
s32 D_803820A8[3]; //local static
|
||||
s32 D_803820B4; //local static
|
||||
s32 D_803820B8[0x20]; //ActorProp *, (maybe Prop *)
|
||||
s32 pad_80382138;
|
||||
s32 D_8038213C;
|
||||
|
@ -1827,90 +1828,56 @@ s32 func_803073CC(f32 arg0[3], s32 arg1, s32 arg2) {
|
|||
return -1;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80307504.s")
|
||||
// s32 func_80307504(f32 arg0[3], s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
|
||||
// s32 sp4C[3];
|
||||
// s32 sp40;
|
||||
// s32 temp_a0;
|
||||
// s32 temp_t3;
|
||||
// s32 temp_v0;
|
||||
// s32 temp_v0_2;
|
||||
// s32 temp_v0_4;
|
||||
// s32 temp_v0_5;
|
||||
// s32 temp_v1;
|
||||
// s32 var_a3;
|
||||
// u32 temp_t1;
|
||||
// u32 temp_t1_2;
|
||||
// u32 temp_v0_3;
|
||||
// u32 var_s0;
|
||||
// u32 var_s0_2;
|
||||
// Struct_core2_7AF80_2 *temp_s0;
|
||||
// void *temp_s1;
|
||||
s32 func_80307504(f32 arg0[3], s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
|
||||
Struct_core2_7AF80_2 *var_s0;
|
||||
Struct_core2_7AF80_1 *temp_s1;
|
||||
s32 min;
|
||||
s32 max;
|
||||
s32 sp4C[3];
|
||||
|
||||
// ml_vec3f_to_vec3w(sp4C, arg0);
|
||||
// // temp_s1 = D_8036A9C8[arg1].unk4;
|
||||
// if (D_80381FE8[D_8036A9C8[arg1].unk4] == 0) {
|
||||
// return -1;
|
||||
// }
|
||||
ml_vec3f_to_vec3w(sp4C, arg0);
|
||||
temp_s1 = &D_8036A9C8[arg1];
|
||||
if (D_80381FE8[temp_s1->unk4] == 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
// sp40 = arg4 & 1;
|
||||
// temp_s0 = &D_8036A9C8[arg1].unk8[arg2];
|
||||
// temp_t3 = arg3 / 2;
|
||||
// temp_v1 = sp4C[1] + temp_t3;
|
||||
// temp_a0 = sp4C[1] - temp_t3;
|
||||
// if (sp40) {
|
||||
// if (temp_s0->unk10_3 & arg4) {
|
||||
// if ((temp_v1 >= temp_s0->unk0[1]) && (temp_a0 < temp_s0->unk0[1])) {
|
||||
// if (func_80259328(&sp4C, temp_s0, temp_s0->unkC, sp40)) {
|
||||
// return arg2;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// goto block_14;
|
||||
// }
|
||||
// else{
|
||||
// if ((temp_s0->unk10_3 & arg4) && ((temp_s0->unk10_3 & 2) || ((temp_v0_2 = temp_s0->unk0[1], ((temp_v1 < temp_v0_2) == 0)) && (temp_a0 < temp_v0_2)))) {
|
||||
// if (func_80259328(&sp4C, temp_s0, temp_s0->unkC, sp40) != 0) {
|
||||
// return arg2;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// block_14:
|
||||
// temp_v0_3 = temp_s1->unk8;
|
||||
// if (var_a3 != 0) {
|
||||
// var_s0_2 = temp_v0_3;
|
||||
// if (temp_v0_3 < (u32) (temp_v0_3 + (temp_s1->unk0 * 0x14))) {
|
||||
// loop_16:
|
||||
// if (((u32) (var_s0_2->unk10 << 0x1C) >> 0x1D) & arg4) {
|
||||
// temp_v0_4 = var_s0_2->unk4;
|
||||
// if ((temp_v1 >= temp_v0_4) && (temp_a0 < temp_v0_4) && (func_80259328(&sp4C, (void *) var_s0_2, var_s0_2->unkC) != 0)) {
|
||||
// return (s32) (var_s0_2 - temp_s1->unk8) / 20;
|
||||
// }
|
||||
// }
|
||||
// var_s0_2 += 0x14;
|
||||
// if (var_s0_2 >= (u32) (temp_s1->unk8 + (temp_s1->unk0 * 0x14))) {
|
||||
// goto block_31;
|
||||
// }
|
||||
// goto loop_16;
|
||||
// }
|
||||
// goto block_31;
|
||||
// }
|
||||
// var_s0 = temp_v0_3;
|
||||
// if (temp_v0_3 < (u32) (temp_v0_3 + (temp_s1->unk0 * 0x14))) {
|
||||
// loop_24:
|
||||
// temp_t1_2 = (u32) (var_s0->unk10 << 0x1C) >> 0x1D;
|
||||
// if ((temp_t1_2 & arg4) && ((temp_t1_2 & 2) || ((temp_v0_5 = var_s0->unk4, ((temp_v1 < temp_v0_5) == 0)) && (temp_a0 < temp_v0_5))) && (func_80259328(&sp4C, (void *) var_s0, var_s0->unkC) != 0)) {
|
||||
// return (s32) (var_s0 - temp_s1->unk8) / 20;
|
||||
// }
|
||||
// var_s0 += 0x14;
|
||||
// if (var_s0 >= (u32) (temp_s1->unk8 + (temp_s1->unk0 * 0x14))) {
|
||||
// goto block_31;
|
||||
// }
|
||||
// goto loop_24;
|
||||
// }
|
||||
// block_31:
|
||||
// return -1;
|
||||
// }
|
||||
var_s0 = &temp_s1->unk8[arg2];
|
||||
max = sp4C[1] + arg3 / 2;
|
||||
min = sp4C[1] - arg3 / 2;
|
||||
if (arg4 & 1) {
|
||||
if (var_s0->unk10_3 & arg4) {
|
||||
if (!(max < var_s0->unk0[1]) && (min < var_s0->unk0[1])) {
|
||||
if (func_80259328(sp4C, var_s0->unk0, var_s0->unkC)) {
|
||||
return arg2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
if( (var_s0->unk10_3 & arg4))
|
||||
if( ((var_s0->unk10_3 & 2) || (!(max < var_s0->unk0[1]) && (min < var_s0->unk0[1]))))
|
||||
if( func_80259328(&sp4C, var_s0->unk0, var_s0->unkC))
|
||||
return arg2;
|
||||
}
|
||||
|
||||
if (arg4 & 1) {
|
||||
for(var_s0 = temp_s1->unk8; var_s0 < temp_s1->unk8 + temp_s1->unk0; var_s0++){
|
||||
if (var_s0->unk10_3 & arg4)
|
||||
if (!(max < var_s0->unk0[1]) && (min < var_s0->unk0[1]))
|
||||
if(func_80259328(&sp4C, var_s0, var_s0->unkC))
|
||||
return (var_s0 - temp_s1->unk8);
|
||||
}
|
||||
}
|
||||
else{
|
||||
for(var_s0 = temp_s1->unk8; var_s0 < temp_s1->unk8 + temp_s1->unk0; var_s0++){
|
||||
if ((var_s0->unk10_3 & arg4))
|
||||
if(((var_s0->unk10_3 & 2) || (!(max < var_s0->unk0[1]) && (min < var_s0->unk0[1]))))
|
||||
if(func_80259328(&sp4C, var_s0, var_s0->unkC))
|
||||
return var_s0 - temp_s1->unk8;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
bool func_803077FC(f32 arg0[3], s32 *arg1, s32 *arg2, s32 arg3, u32 arg4) {
|
||||
s32 sp3C[3];
|
||||
|
@ -2091,6 +2058,9 @@ u32 func_80307EA8(s32 arg0, s32 arg1[3], s32 *arg2, s32 *arg3) {
|
|||
u32 var_s4;
|
||||
NodeProp *temp_a0;
|
||||
Cube *temp_v0;
|
||||
static s32 D_803820A8[3];
|
||||
static s32 D_803820B4;
|
||||
|
||||
|
||||
var_s4 = 0;
|
||||
if (arg0 == 0) {
|
||||
|
@ -2101,23 +2071,22 @@ u32 func_80307EA8(s32 arg0, s32 arg1[3], s32 *arg2, s32 *arg3) {
|
|||
return 0;
|
||||
}
|
||||
while(var_s4 == 0){
|
||||
var_s2 = D_803820B4;
|
||||
if (D_80381FA0.max[0] < D_803820A8[0]) {
|
||||
return -1U;
|
||||
}
|
||||
|
||||
temp_v0 = cube_atIndices(D_803820A8);
|
||||
if ((temp_v0 != NULL) && (temp_v0->prop1Cnt != 0)) {
|
||||
*arg2 = temp_v0->prop1Ptr[var_s2].unk10_19;
|
||||
var_s4 = temp_v0->prop1Ptr[var_s2].unk10_31;
|
||||
*arg3 = temp_v0->prop1Ptr[var_s2].unk6.bit0;
|
||||
arg1[0] = temp_v0->prop1Ptr[var_s2].x;
|
||||
arg1[1] = temp_v0->prop1Ptr[var_s2].y;
|
||||
arg1[2] = temp_v0->prop1Ptr[var_s2].z;
|
||||
var_s2++;
|
||||
var_s4 = temp_v0->prop1Ptr[D_803820B4].unk10_31;
|
||||
*arg2 = temp_v0->prop1Ptr[D_803820B4].unk10_19;
|
||||
*arg3 = temp_v0->prop1Ptr[D_803820B4].unk6.bit0;
|
||||
arg1[0] = temp_v0->prop1Ptr[D_803820B4].x;
|
||||
arg1[1] = temp_v0->prop1Ptr[D_803820B4].y;
|
||||
arg1[2] = temp_v0->prop1Ptr[D_803820B4].z;
|
||||
D_803820B4++;
|
||||
}
|
||||
if ((temp_v0 == NULL) || (var_s2 >= temp_v0->prop1Cnt)) {
|
||||
var_s2 = 0;
|
||||
if ((temp_v0 == NULL) || (D_803820B4 >= temp_v0->prop1Cnt)) {
|
||||
D_803820B4 = 0;
|
||||
D_803820A8[2]++;
|
||||
if (D_80381FA0.max[2] < D_803820A8[2]) {
|
||||
D_803820A8[2] = D_80381FA0.min[2];
|
||||
|
@ -2132,14 +2101,38 @@ u32 func_80307EA8(s32 arg0, s32 arg1[3], s32 *arg2, s32 *arg3) {
|
|||
}
|
||||
}
|
||||
}
|
||||
D_803820B4 = var_s2;
|
||||
}
|
||||
|
||||
return var_s4;
|
||||
}
|
||||
#endif
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_803080C8.s")
|
||||
NodeProp *func_803080C8(s32 arg0) {
|
||||
s32 sp3C[3];
|
||||
u32 var_v1;
|
||||
Cube *temp_v0;
|
||||
|
||||
for(sp3C[1] = D_80381FA0.min[1]; sp3C[1] <= D_80381FA0.max[1]; sp3C[1]++){
|
||||
if(func_80305C30(sp3C[1] - D_80381FA0.min[1])){
|
||||
for(sp3C[0] = D_80381FA0.min[0]; sp3C[0] <= D_80381FA0.max[0]; sp3C[0]++){
|
||||
for(sp3C[2] = D_80381FA0.min[2]; sp3C[2] <= D_80381FA0.max[2]; sp3C[2]++){
|
||||
temp_v0 = cube_atIndices(&sp3C);
|
||||
if (temp_v0 != NULL) {
|
||||
for(var_v1 = 0; var_v1 < temp_v0->prop1Cnt; var_v1++){
|
||||
if (arg0 == temp_v0->prop1Ptr[var_v1].unk10_31) {
|
||||
D_8036A9DC = temp_v0;
|
||||
return &temp_v0->prop1Ptr[var_v1];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
D_8036A9DC = NULL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
UNK_TYPE(s32) func_80308224(void){
|
||||
return D_8036A9DC;
|
||||
|
@ -2178,44 +2171,50 @@ bool func_803082D8(Cube *arg0, s32 *arg1, bool arg2, bool arg3) {
|
|||
return var_a0;
|
||||
}
|
||||
|
||||
#ifndef NONMATCHING
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_803083B0.s")
|
||||
// s32 func_803083B0(s32 arg0) {
|
||||
// s32 temp_v0;
|
||||
// s32 var_v0;
|
||||
// Cube *var_s0;
|
||||
#else
|
||||
s32 func_803083B0(s32 arg0) {
|
||||
s32 temp_v0;
|
||||
s32 var_v0;
|
||||
bool var_a2;
|
||||
Cube *var_s0;
|
||||
static s32 D_80382140;
|
||||
static Cube *D_80382144;
|
||||
|
||||
// if (arg0 == -1) {
|
||||
// var_s0 = D_80381FA0.cube_list;
|
||||
// D_80382140 = 0;
|
||||
// var_v0 = 0;
|
||||
// goto block_12;
|
||||
// }
|
||||
// var_s0 = (u32) D_80382144;
|
||||
// if (D_80382140 < var_s0->prop2Cnt) {
|
||||
// temp_v0 = func_803082D8(var_s0, &D_80382140, NOT(arg0 < 0), arg0 & 1);
|
||||
// if (D_80382140 != 0) {
|
||||
// return temp_v0;
|
||||
// }
|
||||
// }
|
||||
// D_80382140 = 0;
|
||||
// loop_6:
|
||||
// loop_7:
|
||||
// var_s0 += 0xC;
|
||||
// if (var_s0 >= &D_80381FA0.cube_list[D_80381FA0.cubeCnt]) {
|
||||
// D_80382144 = (s32 *) var_s0;
|
||||
// return -1;
|
||||
// }
|
||||
// if (var_s0->prop2Cnt != 0) {
|
||||
// var_v0 = func_803082D8(var_s0, &D_80382140, NOT(arg0 < 0), arg0 & 1);
|
||||
// if (D_80382140 != 0) {
|
||||
// block_12:
|
||||
// D_80382144 = var_s0;
|
||||
// return var_v0;
|
||||
// }
|
||||
// goto loop_6;
|
||||
// }
|
||||
// goto loop_7;
|
||||
// }
|
||||
if (arg0 == -1) {
|
||||
D_80382144 = D_80381FA0.cube_list;
|
||||
D_80382140 = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
var_s0 = D_80382144;
|
||||
if (D_80382140 < D_80382144->prop2Cnt) {
|
||||
temp_v0 = func_803082D8(var_s0, &D_80382140, (arg0 < 0) ^ 1, arg0 & 1);
|
||||
if (D_80382140 != 0) {
|
||||
return temp_v0;
|
||||
}
|
||||
}
|
||||
D_80382140 = 0;
|
||||
loop_6:
|
||||
loop_7:
|
||||
var_s0++;
|
||||
if (var_s0 >= D_80381FA0.cube_list + D_80381FA0.cubeCnt) {
|
||||
D_80382144 = var_s0;
|
||||
return -1;
|
||||
}
|
||||
if (0 < var_s0->prop2Cnt) {
|
||||
var_v0 = func_803082D8(var_s0, &D_80382140, (arg0 < 0) ^ 1, arg0 & 1);
|
||||
if (D_80382140 != 0) {
|
||||
D_80382144 = var_s0;
|
||||
return var_v0;
|
||||
}
|
||||
goto loop_6;
|
||||
}
|
||||
goto loop_7;
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
enum actor_e func_803084F0(s32 arg0){
|
||||
s32 var_v1;
|
||||
|
|
|
@ -83,173 +83,28 @@ void func_8030C2D4(Gfx **gdl, Mtx **mptr, Vtx **vptr){
|
|||
func_80253640(gdl, D_803A5D00[func_8024BDA0()]);
|
||||
}
|
||||
|
||||
#ifndef NONMATCHING
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_851D0/func_8030C33C.s")
|
||||
#else
|
||||
void func_8030C33C(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
s32 sp80;
|
||||
s32 sp74;
|
||||
s32 sp70;
|
||||
s32 sp64;
|
||||
s32 sp60;
|
||||
s32 sp54;
|
||||
s32 sp50;
|
||||
s32 sp48;
|
||||
s32 sp40;
|
||||
s16 temp_s4;
|
||||
s16 temp_t4;
|
||||
s32 temp_a0;
|
||||
s32 temp_a1;
|
||||
s32 temp_a3;
|
||||
s32 temp_t6;
|
||||
s32 temp_t8;
|
||||
void *temp_a1_2;
|
||||
void *temp_a2;
|
||||
void *temp_s0;
|
||||
void *temp_s0_2;
|
||||
void *temp_s0_3;
|
||||
void *temp_s0_4;
|
||||
void *temp_s0_5;
|
||||
void *temp_s0_6;
|
||||
void *temp_s0_7;
|
||||
void *temp_s0_8;
|
||||
void *temp_s0_9;
|
||||
void *temp_s2;
|
||||
s32 phi_ra;
|
||||
s32 phi_t5;
|
||||
s32 phi_t4;
|
||||
s32 phi_t3;
|
||||
s32 phi_t2;
|
||||
s32 phi_t1;
|
||||
s32 phi_s3;
|
||||
s32 phi_s5;
|
||||
s16 phi_s6;
|
||||
s32 phi_v0;
|
||||
s16 phi_v1;
|
||||
s16 phi_s4;
|
||||
s16 phi_t4_2;
|
||||
s16 phi_v0_2;
|
||||
s16 phi_v1_2;
|
||||
s32 phi_v0_3;
|
||||
s32 phi_a0;
|
||||
s32 phi_s7;
|
||||
|
||||
s32 x, y;
|
||||
|
||||
gSPDisplayList((*gfx)++, D_8036C450);
|
||||
sp64 = 0x1F;
|
||||
sp54 = 0x130;
|
||||
sp74 = 0;
|
||||
phi_t4_2 = 0xB0;
|
||||
do {
|
||||
phi_ra = sp74 << 5;
|
||||
phi_t5 = (0x40 + 7);
|
||||
phi_t4 = (s32) phi_t4_2;
|
||||
phi_t3 = (s32) sp56;
|
||||
phi_t2 = (sp64 << 2) & 0xFFF;
|
||||
phi_t1 = (sp74 << 2) & 0xFFF;
|
||||
phi_s3 = 0;
|
||||
phi_s5 = 0x1F;
|
||||
phi_s6 = 0x188;
|
||||
phi_s4 = 0x108;
|
||||
phi_s7 = 0;
|
||||
loop_2:
|
||||
sp40 = phi_ra;
|
||||
sp80 = phi_t5;
|
||||
sp48 = phi_t4;
|
||||
sp50 = phi_t3;
|
||||
sp60 = phi_t2;
|
||||
sp70 = phi_t1;
|
||||
|
||||
// gDPLoadTextureTile((*gfx)++, &D_80382450, G_IM_FMT_IA, G_IM_SIZ_16b, 160, height, uls, ult, lrs, lrt, pal, cms, cmt, masks, maskt, shifts, shiftt)
|
||||
|
||||
gDPSetTextureImage((*gfx)++, G_IM_FMT_IA, G_IM_SIZ_16b, 160, D_80382450);
|
||||
// temp_a1 = (((0x40 + 7 >> 3) & 0x1FF) << 9) | 0xF5700000;
|
||||
// temp_s0_2->unk0 = temp_a1;
|
||||
// temp_s0_2->unk4 = 0x07080200;
|
||||
gDPSetTile((*gfx)++, G_IM_FMT_IA, G_IM_SIZ_32b, 427, 0x0101, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 1, 12, G_TX_NOMIRROR | G_TX_WRAP, 8, 7);
|
||||
gDPLoadSync((*gfx)++);
|
||||
// temp_a3 = ((phi_s3 * 4) & 0xFFF) << 0xC;
|
||||
// temp_a0 = ((phi_s5 * 4) & 0xFFF) << 0xC;
|
||||
// temp_s0_4->unk0 = (s32) (temp_a3 | 0xF4000000 | phi_t1);
|
||||
// temp_s0_4->unk4 = (s32) (temp_a0 | 0x07000000 | phi_t2);
|
||||
gDPLoadTile((*gfx)++, G_TX_LOADTILE, 0, 0, 0, 0);
|
||||
gDPPipeSync((*gfx)++);
|
||||
|
||||
// temp_s0_6->unk0 = temp_a1;
|
||||
// temp_s0_6->unk4 = 0x00080200;
|
||||
gDPSetTile((*gfx)++, G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0x0100, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOLOD);
|
||||
// temp_s0_7->unk4 = (s32) (temp_a0 | phi_t2);
|
||||
// temp_s0_7->unk0 = (s32) (temp_a3 | 0xF2000000 | phi_t1);
|
||||
gDPSetTileSize((*gfx)++, G_TX_RENDERTILE, 0, 0, 0, 0);
|
||||
temp_a1_2 = *gfx;
|
||||
*gfx = temp_a1_2 + 8;
|
||||
if ((s32) phi_s6 > 0) {
|
||||
phi_v1 = (s16) (phi_s7 + 0x188);
|
||||
} else {
|
||||
phi_v1 = 0;
|
||||
for (y = 0; y < 4; y++) {
|
||||
for(x = 0; x < 5; x++){
|
||||
gDPLoadTextureTile((*gfx)++, osVirtualToPhysical(D_80382450), G_IM_FMT_IA, G_IM_SIZ_16b, 160, 128,
|
||||
0x20*x, 0x20*y, 0x20*(x + 1) - 1, 0x20*(y + 1) - 1,
|
||||
0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP,
|
||||
G_TX_NOMASK, G_TX_NOMASK,
|
||||
G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPScisTextureRectangle((*gfx)++,
|
||||
(0x20*x + 0x42)*4, (0x20*y + 0x2C)*4,
|
||||
(0x20*(x + 1) + 0x42)*4, (0x20*(y + 1) + 0x2C)*4,
|
||||
0,
|
||||
0x20*x << 5, 0x20*y << 5,
|
||||
1 << 10, 1 << 10);
|
||||
}
|
||||
if (phi_t3 > 0) {
|
||||
phi_v0 = phi_t3;
|
||||
} else {
|
||||
phi_v0 = 0;
|
||||
}
|
||||
temp_a1_2->unk0 = (s32) ((phi_v0 & 0xFFF) | 0xE4000000 | ((phi_v1 & 0xFFF) << 0xC));
|
||||
if ((s32) phi_s4 > 0) {
|
||||
phi_v1_2 = phi_s4;
|
||||
} else {
|
||||
phi_v1_2 = 0;
|
||||
}
|
||||
if ((s32) phi_t4_2 > 0) {
|
||||
phi_v0_2 = phi_t4_2;
|
||||
} else {
|
||||
phi_v0_2 = 0;
|
||||
}
|
||||
temp_a1_2->unk4 = (s32) ((phi_v0_2 & 0xFFF) | ((phi_v1_2 & 0xFFF) << 0xC));
|
||||
temp_a2 = *gfx;
|
||||
*gfx = temp_a2 + 8;
|
||||
temp_a2->unk0 = 0xB4000000;
|
||||
phi_s5 += 0x20;
|
||||
if ((s32) phi_s4 < 0) {
|
||||
temp_t6 = (s32) (phi_s4 << 0xA) >> 7;
|
||||
if (temp_t6 < 0) {
|
||||
phi_a0 = temp_t6;
|
||||
} else {
|
||||
phi_a0 = 0;
|
||||
}
|
||||
} else {
|
||||
phi_a0 = 0;
|
||||
}
|
||||
if (phi_t4 < 0) {
|
||||
temp_t8 = (s32) (phi_t4_2 << 0xA) >> 7;
|
||||
if (temp_t8 < 0) {
|
||||
phi_v0_3 = temp_t8;
|
||||
} else {
|
||||
phi_v0_3 = 0;
|
||||
}
|
||||
} else {
|
||||
phi_v0_3 = 0;
|
||||
}
|
||||
temp_a2->unk4 = (s32) (((phi_ra - phi_v0_3) & 0xFFFF) | (((phi_s3 << 5) - phi_a0) << 0x10));
|
||||
temp_s0_8 = *gfx;
|
||||
temp_s4 = phi_s4 + 0x80;
|
||||
*gfx = temp_s0_8 + 8;
|
||||
temp_s0_8->unk0 = 0xB3000000;
|
||||
temp_s0_8->unk4 = 0x04000400;
|
||||
phi_s3 += 0x20;
|
||||
phi_s6 += 0x80;
|
||||
phi_s4 = temp_s4;
|
||||
phi_s7 += 0x80;
|
||||
if (temp_s4 != 0x388) {
|
||||
goto loop_2;
|
||||
}
|
||||
temp_t4 = phi_t4 + 0x80;
|
||||
sp74 += 0x20;
|
||||
sp54 += 0x80;
|
||||
sp64 += 0x20;
|
||||
phi_t4_2 = temp_t4;
|
||||
} while (temp_t4 != 0x2B0);
|
||||
}
|
||||
gSPDisplayList((*gfx)++, D_8036C4A8);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
s32 func_8030C704(void){
|
||||
|
|
|
@ -291,7 +291,7 @@ segments:
|
|||
- [0x83D70, c, gc/section] #DONE
|
||||
- [0x840D0, c, gc/sky] #DONE
|
||||
- [0x84470, c, gc/transition] #DONE
|
||||
- [0x851D0, c, code_851D0]
|
||||
- [0x851D0, c, code_851D0] #DONE
|
||||
- [0x857B0, c, code_857B0] #DONE
|
||||
- [0x85800, c, code_85800] #DONE
|
||||
- [0x87E30, c, code_87E30]
|
||||
|
|
Loading…
Reference in New Issue