core2/code_7AF80.c progress
This commit is contained in:
@@ -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="#3ee000" d="M44 0h67v20H44z"/>
|
<path fill="#3be000" 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">86.1156%</text>
|
<text x="78.5" y="15" fill="#010101" fill-opacity=".3">86.8047%</text>
|
||||||
<text x="77.5" y="14">86.1156%</text>
|
<text x="77.5" y="14">86.8047%</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="#39e000" d="M150 0h67v20H150z"/>
|
<path fill="#37e000" 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">87.3005%</text>
|
<text x="184.5" y="15" fill="#010101" fill-opacity=".3">87.6959%</text>
|
||||||
<text x="183.5" y="14">87.3005%</text>
|
<text x="183.5" y="14">87.6959%</text>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -60,9 +60,6 @@ void func_802403F0(void);
|
|||||||
void amgrStartThread(void);
|
void amgrStartThread(void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
extern s32 D_80000300;
|
|
||||||
|
|
||||||
s32 D_80275770 = 0;
|
s32 D_80275770 = 0;
|
||||||
s32 D_80275774 = 0;
|
s32 D_80275774 = 0;
|
||||||
u8 D_80275778 = 0;
|
u8 D_80275778 = 0;
|
||||||
@@ -288,7 +285,7 @@ void func_8023FB1C(void){
|
|||||||
D_8027D000 = (u8 *) malloc(0x21000);
|
D_8027D000 = (u8 *) malloc(0x21000);
|
||||||
bzero(D_8027D000, 0x21000);
|
bzero(D_8027D000, 0x21000);
|
||||||
alHeapInit(&D_8027CFF0, D_8027D000, 0x21000);
|
alHeapInit(&D_8027CFF0, D_8027D000, 0x21000);
|
||||||
if(D_80000300 != 1)
|
if(osTvType != OS_TV_NTSC)
|
||||||
osViClock = 0x2e6025c;
|
osViClock = 0x2e6025c;
|
||||||
func_8023FBB8();
|
func_8023FBB8();
|
||||||
func_80335220();
|
func_80335220();
|
||||||
|
@@ -3,8 +3,6 @@
|
|||||||
#include "variables.h"
|
#include "variables.h"
|
||||||
|
|
||||||
|
|
||||||
extern s32 D_80000300;
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
s32 unk0;
|
s32 unk0;
|
||||||
s32 unk4;
|
s32 unk4;
|
||||||
@@ -75,7 +73,7 @@ s32 D_8027FC18;
|
|||||||
s32 D_8027FC1C;
|
s32 D_8027FC1C;
|
||||||
s32 D_8027FC20;
|
s32 D_8027FC20;
|
||||||
s32 D_8027FC24;
|
s32 D_8027FC24;
|
||||||
u8 pad_8027FC28[0x7F8];
|
u8 pad_8027FC28[2040]; //stack for thread D_80280428;
|
||||||
OSThread D_80280428;
|
OSThread D_80280428;
|
||||||
Struct_Core1_8C50_s * D_802805D8[20];
|
Struct_Core1_8C50_s * D_802805D8[20];
|
||||||
volatile s32 D_80280628;
|
volatile s32 D_80280628;
|
||||||
@@ -395,7 +393,7 @@ void func_8024730C(void){
|
|||||||
|
|
||||||
if(!D_802806D4){
|
if(!D_802806D4){
|
||||||
D_802806D4 = TRUE;
|
D_802806D4 = TRUE;
|
||||||
if(D_80000300 != TRUE){
|
if(osTvType != OS_TV_NTSC){
|
||||||
osViSetMode(&D_802759A8);
|
osViSetMode(&D_802759A8);
|
||||||
} else {
|
} else {
|
||||||
osViSetMode(&D_802759F8);
|
osViSetMode(&D_802759F8);
|
||||||
@@ -413,6 +411,7 @@ void func_80247380(void){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//resetproc
|
||||||
void func_802473B4(void *arg0){
|
void func_802473B4(void *arg0){
|
||||||
OSMesg msg = NULL;
|
OSMesg msg = NULL;
|
||||||
do{
|
do{
|
||||||
@@ -436,6 +435,7 @@ void func_802473B4(void *arg0){
|
|||||||
}while(1);
|
}while(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//resetThreadCreate
|
||||||
void func_80247560(void){
|
void func_80247560(void){
|
||||||
u64 *tmp_v0;
|
u64 *tmp_v0;
|
||||||
osCreateMesgQueue(&D_8027FB60, &D_8027FB78, 20);
|
osCreateMesgQueue(&D_8027FB60, &D_8027FB78, 20);
|
||||||
|
@@ -66,7 +66,7 @@ void func_8024BE30(void){
|
|||||||
|
|
||||||
func_8024C428();
|
func_8024C428();
|
||||||
osCreateViManager(0xfe);
|
osCreateViManager(0xfe);
|
||||||
if(D_80000300 != 1)
|
if(osTvType != OS_TV_NTSC)
|
||||||
osViSetMode(&D_80275CD0); //PAL
|
osViSetMode(&D_80275CD0); //PAL
|
||||||
else
|
else
|
||||||
osViSetMode(&D_80275C80); //NTSC
|
osViSetMode(&D_80275C80); //NTSC
|
||||||
|
@@ -44,8 +44,8 @@ void func_80308EC8(void);
|
|||||||
|
|
||||||
/* .data */
|
/* .data */
|
||||||
|
|
||||||
extern void *D_8036ABA0;
|
|
||||||
extern void *D_8036ABA4;
|
|
||||||
|
|
||||||
extern ActorInfo D_803675F0;
|
extern ActorInfo D_803675F0;
|
||||||
extern ActorInfo D_80367838;
|
extern ActorInfo D_80367838;
|
||||||
@@ -69,9 +69,11 @@ extern u8 D_8036A9E4[];
|
|||||||
extern s16 D_8036ABD4;
|
extern s16 D_8036ABD4;
|
||||||
|
|
||||||
|
|
||||||
|
extern s16 *D_8036ABA0;
|
||||||
extern s16 D_8036ABAC[];
|
extern s16 *D_8036ABA4;
|
||||||
extern s16 D_8036ABC0[];
|
extern s32 D_8036ABA8; //max index of D_8036ABA4
|
||||||
|
extern s16 D_8036ABAC[];
|
||||||
|
extern s16 D_8036ABC0[];
|
||||||
|
|
||||||
/* .rodata */
|
/* .rodata */
|
||||||
|
|
||||||
@@ -79,10 +81,10 @@ extern s16 D_8036ABC0[];
|
|||||||
struct {
|
struct {
|
||||||
Cube *cube_list;
|
Cube *cube_list;
|
||||||
f32 unk4;
|
f32 unk4;
|
||||||
s32 min[3];
|
s32 min[3]; //8
|
||||||
s32 max[3];
|
s32 max[3]; //14
|
||||||
s32 stride[2];
|
s32 stride[2]; //20
|
||||||
s32 cubeCnt;
|
s32 cubeCnt;
|
||||||
s32 unk2C;
|
s32 unk2C;
|
||||||
s32 width[3];
|
s32 width[3];
|
||||||
// s32 unk34;
|
// s32 unk34;
|
||||||
@@ -92,8 +94,11 @@ struct {
|
|||||||
s32 unk44;
|
s32 unk44;
|
||||||
} D_80381FA0;
|
} D_80381FA0;
|
||||||
|
|
||||||
|
|
||||||
u8 D_80381FE8[0x50];
|
u8 D_80381FE8[0x50];
|
||||||
Cube *D_80382038[0x20];
|
Cube *D_80382038[0x1C];
|
||||||
|
s32 D_803820A8[3];
|
||||||
|
s32 D_803820B4;
|
||||||
s32 D_803820B8[0x20]; //ActorProp *, (maybe Prop *)
|
s32 D_803820B8[0x20]; //ActorProp *, (maybe Prop *)
|
||||||
s32 pad_80382138;
|
s32 pad_80382138;
|
||||||
s32 D_8038213C;
|
s32 D_8038213C;
|
||||||
@@ -110,9 +115,6 @@ void func_80301F10(Cube *cube, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
|||||||
func_8032D510(cube, gfx, mtx, vtx);
|
func_8032D510(cube, gfx, mtx, vtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NONMATCHING
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80301F50.s")
|
|
||||||
#else
|
|
||||||
void func_80301F50(Gfx **gfx, Mtx **mtx, Vtx **vtx, s32 arg3[3], s32 arg4[3], s32 arg5[3]) {
|
void func_80301F50(Gfx **gfx, Mtx **mtx, Vtx **vtx, s32 arg3[3], s32 arg4[3], s32 arg5[3]) {
|
||||||
s32 sp54;
|
s32 sp54;
|
||||||
s32 sp50;
|
s32 sp50;
|
||||||
@@ -121,103 +123,125 @@ void func_80301F50(Gfx **gfx, Mtx **mtx, Vtx **vtx, s32 arg3[3], s32 arg4[3], s3
|
|||||||
Cube *sp44;
|
Cube *sp44;
|
||||||
Cube *var_fp;
|
Cube *var_fp;
|
||||||
|
|
||||||
sp44 = D_80381FA0.cube_list + arg4[1]*D_80381FA0.stride[0];
|
sp50 = arg4[1];
|
||||||
for(sp50 = arg4[1]; sp50 < arg3[1]; sp50++) {
|
sp44 = D_80381FA0.cube_list + sp50*D_80381FA0.stride[0];
|
||||||
var_fp = sp44 + arg4[0];
|
while(sp50 < arg3[1]) {
|
||||||
for(sp54 = arg4[0]; sp54 < arg3[0]; sp54++) {
|
sp54 = arg4[0];
|
||||||
|
var_fp = sp44 + sp54;
|
||||||
var_s0 = var_fp + arg4[2]*D_80381FA0.stride[1];
|
while(sp54 < arg3[0]) {
|
||||||
for(var_s1 = arg4[2]; var_s1 < arg3[2]; var_s1++) {
|
var_s1 = arg4[2];
|
||||||
|
var_s0 = var_fp + var_s1*D_80381FA0.stride[1];
|
||||||
|
while(var_s1 < arg3[2]) {
|
||||||
if ((var_s0->prop2Cnt != 0) && func_8024D9B0(var_s0) != 0) {
|
if ((var_s0->prop2Cnt != 0) && func_8024D9B0(var_s0) != 0) {
|
||||||
func_80301F10(var_s0, gfx, mtx, vtx);
|
func_80301F10(var_s0, gfx, mtx, vtx);
|
||||||
}
|
}
|
||||||
|
var_s1++;
|
||||||
var_s0 += D_80381FA0.stride[1];
|
var_s0 += D_80381FA0.stride[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
var_s0 = var_fp + arg5[2]*D_80381FA0.stride[1];
|
var_s1 = arg5[2];
|
||||||
for(var_s1 = arg5[2]; var_s1 >= arg3[2]; var_s1--) {
|
var_s0 = var_fp + var_s1*D_80381FA0.stride[1];
|
||||||
|
while( var_s1 >= arg3[2]) {
|
||||||
if ((var_s0->prop2Cnt != 0) && func_8024D9B0(var_s0) != 0) {
|
if ((var_s0->prop2Cnt != 0) && func_8024D9B0(var_s0) != 0) {
|
||||||
func_80301F10(var_s0, gfx, mtx, vtx);
|
func_80301F10(var_s0, gfx, mtx, vtx);
|
||||||
}
|
}
|
||||||
|
var_s1--;
|
||||||
var_s0 -= D_80381FA0.stride[1];
|
var_s0 -= D_80381FA0.stride[1];
|
||||||
}
|
}
|
||||||
|
sp54++;
|
||||||
var_fp++;
|
var_fp++;
|
||||||
}
|
}
|
||||||
|
|
||||||
var_fp = sp44 + arg5[0];
|
sp54 = arg5[0];
|
||||||
for(sp54 = arg5[0]; sp54 >= arg3[0]; sp54--) {
|
var_fp = sp44 + sp54;
|
||||||
var_s0 = var_fp + arg4[2]*D_80381FA0.stride[1];
|
while(sp54 >= arg3[0]) {
|
||||||
for(var_s1 = arg4[2]; var_s1 < arg3[2]; var_s1++) {
|
var_s1 = arg4[2];
|
||||||
|
var_s0 = var_fp + var_s1*D_80381FA0.stride[1];
|
||||||
|
while(var_s1 < arg3[2]) {
|
||||||
if ((var_s0->prop2Cnt != 0) && func_8024D9B0(var_s0) != 0) {
|
if ((var_s0->prop2Cnt != 0) && func_8024D9B0(var_s0) != 0) {
|
||||||
func_80301F10(var_s0, gfx, mtx, vtx);
|
func_80301F10(var_s0, gfx, mtx, vtx);
|
||||||
}
|
}
|
||||||
|
var_s1++;
|
||||||
var_s0 += D_80381FA0.stride[1];
|
var_s0 += D_80381FA0.stride[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
var_s0 = var_fp + arg5[2]*D_80381FA0.stride[1];
|
var_s1 = arg5[2];
|
||||||
for(var_s1 = arg5[2]; var_s1 >= arg3[2]; var_s1--) {
|
var_s0 = var_fp + var_s1*D_80381FA0.stride[1];
|
||||||
|
while(var_s1 >= arg3[2]) {
|
||||||
if ((var_s0->prop2Cnt != 0) && func_8024D9B0(var_s0) != 0) {
|
if ((var_s0->prop2Cnt != 0) && func_8024D9B0(var_s0) != 0) {
|
||||||
func_80301F10(var_s0, gfx, mtx, vtx);
|
func_80301F10(var_s0, gfx, mtx, vtx);
|
||||||
}
|
}
|
||||||
|
var_s1--;
|
||||||
var_s0 -= D_80381FA0.stride[1];
|
var_s0 -= D_80381FA0.stride[1];
|
||||||
}
|
}
|
||||||
|
sp54--;
|
||||||
var_fp--;
|
var_fp--;
|
||||||
}
|
}
|
||||||
|
sp50++;
|
||||||
sp44 += D_80381FA0.stride[0];
|
sp44 += D_80381FA0.stride[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
sp44 = D_80381FA0.cube_list + arg5[1]*D_80381FA0.stride[0];
|
sp50 = arg5[1];
|
||||||
for(sp50 = arg5[1]; sp50 >= arg3[1]; sp50--) {
|
sp44 = D_80381FA0.cube_list + sp50*D_80381FA0.stride[0];
|
||||||
|
while(sp50 >= arg3[1]) {
|
||||||
|
|
||||||
var_fp = sp44 + arg4[0];
|
sp54 = arg4[0];
|
||||||
for(sp54 = arg4[0]; sp54 < arg3[0]; sp54++) {
|
var_fp = sp44 + sp54;
|
||||||
|
while(sp54 < arg3[0]) {
|
||||||
|
|
||||||
var_s0 = var_fp + arg4[2]*D_80381FA0.stride[1];
|
var_s1 = arg4[2];
|
||||||
for(var_s1 = arg4[2]; var_s1 < arg3[2]; var_s1++) {
|
var_s0 = var_fp + var_s1*D_80381FA0.stride[1];
|
||||||
|
while( var_s1 < arg3[2]) {
|
||||||
if ((var_s0->prop2Cnt != 0) && func_8024D9B0(var_s0) != 0) {
|
if ((var_s0->prop2Cnt != 0) && func_8024D9B0(var_s0) != 0) {
|
||||||
func_80301F10(var_s0, gfx, mtx, vtx);
|
func_80301F10(var_s0, gfx, mtx, vtx);
|
||||||
}
|
}
|
||||||
|
var_s1++;
|
||||||
var_s0 += D_80381FA0.stride[1];
|
var_s0 += D_80381FA0.stride[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
var_s0 = var_fp + arg5[2]*D_80381FA0.stride[1];
|
var_s1 = arg5[2];
|
||||||
for(var_s1 = arg5[2]; var_s1 >= arg3[2]; var_s1--) {
|
var_s0 = var_fp + var_s1*D_80381FA0.stride[1];
|
||||||
|
while( var_s1 >= arg3[2]) {
|
||||||
if ((var_s0->prop2Cnt != 0) && func_8024D9B0(var_s0) != 0) {
|
if ((var_s0->prop2Cnt != 0) && func_8024D9B0(var_s0) != 0) {
|
||||||
func_80301F10(var_s0, gfx, mtx, vtx);
|
func_80301F10(var_s0, gfx, mtx, vtx);
|
||||||
}
|
}
|
||||||
|
var_s1--;
|
||||||
var_s0 -= D_80381FA0.stride[1];
|
var_s0 -= D_80381FA0.stride[1];
|
||||||
}
|
}
|
||||||
|
sp54++;
|
||||||
var_fp++;
|
var_fp++;
|
||||||
}
|
}
|
||||||
|
|
||||||
var_fp = sp44 + arg5[0];
|
sp54 = arg5[0];
|
||||||
for(sp54 = arg5[0]; sp54 >= arg3[0]; sp54--) {
|
var_fp = sp44 + sp54;
|
||||||
|
while(sp54 >= arg3[0]) {
|
||||||
var_s0 = var_fp + arg4[2]*D_80381FA0.stride[1];
|
var_s1 = arg4[2];
|
||||||
for(var_s1 = arg4[2]; var_s1 < arg3[2]; var_s1++) {
|
var_s0 = var_fp + var_s1*D_80381FA0.stride[1];
|
||||||
|
while(var_s1 < arg3[2]) {
|
||||||
if ((var_s0->prop2Cnt != 0) && func_8024D9B0(var_s0) != 0) {
|
if ((var_s0->prop2Cnt != 0) && func_8024D9B0(var_s0) != 0) {
|
||||||
func_80301F10(var_s0, gfx, mtx, vtx);
|
func_80301F10(var_s0, gfx, mtx, vtx);
|
||||||
}
|
}
|
||||||
|
var_s1++;
|
||||||
var_s0 += D_80381FA0.stride[1];
|
var_s0 += D_80381FA0.stride[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
var_s0 = var_fp + arg5[2]*D_80381FA0.stride[1];
|
var_s1 = arg5[2];
|
||||||
for(var_s1 = arg5[2]; var_s1 >= arg3[2]; var_s1--) {
|
var_s0 = var_fp + var_s1*D_80381FA0.stride[1];
|
||||||
|
while(var_s1 >= arg3[2]) {
|
||||||
if ((var_s0->prop2Cnt != 0) && func_8024D9B0(var_s0) != 0) {
|
if ((var_s0->prop2Cnt != 0) && func_8024D9B0(var_s0) != 0) {
|
||||||
func_80301F10(var_s0, gfx, mtx, vtx);
|
func_80301F10(var_s0, gfx, mtx, vtx);
|
||||||
}
|
}
|
||||||
|
var_s1--;
|
||||||
var_s0 -= D_80381FA0.stride[1];
|
var_s0 -= D_80381FA0.stride[1];
|
||||||
}
|
}
|
||||||
|
sp54--;
|
||||||
var_fp--;
|
var_fp--;
|
||||||
}
|
}
|
||||||
|
sp50--;
|
||||||
sp44 -= D_80381FA0.stride[0];
|
sp44 -= D_80381FA0.stride[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef NONMATCHING
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80302634.s")
|
|
||||||
#else
|
|
||||||
void func_80302634(Gfx **gfx, Mtx **mtx, Vtx **vtx, s32 arg3[3], s32 arg4[3], s32 arg5[3]) {
|
void func_80302634(Gfx **gfx, Mtx **mtx, Vtx **vtx, s32 arg3[3], s32 arg4[3], s32 arg5[3]) {
|
||||||
s32 sp54;
|
s32 sp54;
|
||||||
s32 sp50;
|
s32 sp50;
|
||||||
@@ -226,9 +250,11 @@ void func_80302634(Gfx **gfx, Mtx **mtx, Vtx **vtx, s32 arg3[3], s32 arg4[3], s3
|
|||||||
Cube *sp44;
|
Cube *sp44;
|
||||||
Cube *var_fp;
|
Cube *var_fp;
|
||||||
|
|
||||||
sp44 = D_80381FA0.cube_list + arg4[1]*D_80381FA0.stride[0];
|
sp50 = arg4[1];
|
||||||
for(sp50 = arg4[1]; sp50 < arg3[1]; sp50++) {
|
sp44 = D_80381FA0.cube_list + sp50*D_80381FA0.stride[0];
|
||||||
var_s0 = sp44 + arg4[2]*D_80381FA0.stride[1];
|
while(sp50 < arg3[1]) {
|
||||||
|
sp54 = arg4[2];
|
||||||
|
var_s0 = sp44 + sp54*D_80381FA0.stride[1];
|
||||||
for(sp54 = arg4[2]; sp54 < arg3[2]; sp54++) {
|
for(sp54 = arg4[2]; sp54 < arg3[2]; sp54++) {
|
||||||
var_fp = var_s0 + arg4[0];
|
var_fp = var_s0 + arg4[0];
|
||||||
for(var_s1 = arg4[0]; var_s1 < arg3[0]; var_s1++) {
|
for(var_s1 = arg4[0]; var_s1 < arg3[0]; var_s1++) {
|
||||||
@@ -248,7 +274,8 @@ void func_80302634(Gfx **gfx, Mtx **mtx, Vtx **vtx, s32 arg3[3], s32 arg4[3], s3
|
|||||||
var_s0 += D_80381FA0.stride[1];
|
var_s0 += D_80381FA0.stride[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
var_s0 = sp44 + arg5[2]*D_80381FA0.stride[1];
|
sp54 = arg5[2];
|
||||||
|
var_s0 = sp44 + sp54*D_80381FA0.stride[1];
|
||||||
for(sp54 = arg5[2]; sp54 >= arg3[2]; sp54--) {
|
for(sp54 = arg5[2]; sp54 >= arg3[2]; sp54--) {
|
||||||
var_fp = var_s0 + arg4[0];
|
var_fp = var_s0 + arg4[0];
|
||||||
for(var_s1 = arg4[0]; var_s1 < arg3[0]; var_s1++) {
|
for(var_s1 = arg4[0]; var_s1 < arg3[0]; var_s1++) {
|
||||||
@@ -267,12 +294,15 @@ void func_80302634(Gfx **gfx, Mtx **mtx, Vtx **vtx, s32 arg3[3], s32 arg4[3], s3
|
|||||||
}
|
}
|
||||||
var_s0 -= D_80381FA0.stride[1];
|
var_s0 -= D_80381FA0.stride[1];
|
||||||
}
|
}
|
||||||
|
sp50++;
|
||||||
sp44 += D_80381FA0.stride[0];
|
sp44 += D_80381FA0.stride[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
sp44 = D_80381FA0.cube_list + arg5[1]*D_80381FA0.stride[0];
|
sp50 = arg5[1];
|
||||||
for(sp50 = arg4[1]; sp50 >= arg3[1]; sp50--) {
|
sp44 = D_80381FA0.cube_list + sp50*D_80381FA0.stride[0];
|
||||||
var_s0 = sp44 + arg4[2]*D_80381FA0.stride[1];
|
while(sp50 >= arg3[1]) {
|
||||||
|
sp54 = arg4[2];
|
||||||
|
var_s0 = sp44 + sp54*D_80381FA0.stride[1];
|
||||||
for(sp54 = arg4[2]; sp54 < arg3[2]; sp54++) {
|
for(sp54 = arg4[2]; sp54 < arg3[2]; sp54++) {
|
||||||
var_fp = var_s0 + arg4[0];
|
var_fp = var_s0 + arg4[0];
|
||||||
for(var_s1 = arg4[0]; var_s1 < arg3[0]; var_s1++) {
|
for(var_s1 = arg4[0]; var_s1 < arg3[0]; var_s1++) {
|
||||||
@@ -292,7 +322,8 @@ void func_80302634(Gfx **gfx, Mtx **mtx, Vtx **vtx, s32 arg3[3], s32 arg4[3], s3
|
|||||||
var_s0 += D_80381FA0.stride[1];
|
var_s0 += D_80381FA0.stride[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
var_s0 = sp44 + arg5[2]*D_80381FA0.stride[1];
|
sp54 = arg5[2];
|
||||||
|
var_s0 = sp44 + sp54*D_80381FA0.stride[1];
|
||||||
for(sp54 = arg5[2]; sp54 >= arg3[2]; sp54--) {
|
for(sp54 = arg5[2]; sp54 >= arg3[2]; sp54--) {
|
||||||
var_fp = var_s0 + arg4[0];
|
var_fp = var_s0 + arg4[0];
|
||||||
for(var_s1 = arg4[0]; var_s1 < arg3[0]; var_s1++) {
|
for(var_s1 = arg4[0]; var_s1 < arg3[0]; var_s1++) {
|
||||||
@@ -311,10 +342,10 @@ void func_80302634(Gfx **gfx, Mtx **mtx, Vtx **vtx, s32 arg3[3], s32 arg4[3], s3
|
|||||||
}
|
}
|
||||||
var_s0 -= D_80381FA0.stride[1];
|
var_s0 -= D_80381FA0.stride[1];
|
||||||
}
|
}
|
||||||
|
sp50--;
|
||||||
sp44 -= D_80381FA0.stride[0];
|
sp44 -= D_80381FA0.stride[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void func_80302C94(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
void func_80302C94(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||||
f32 sp6C[3];
|
f32 sp6C[3];
|
||||||
@@ -1250,21 +1281,94 @@ void func_8030578C(void){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_803058C0.s")
|
s32 func_803058C0(f32 arg0) {
|
||||||
|
return ((arg0 >= 0.0f) ? arg0 / 1000 : (arg0 / 1000) - 1.0f) - D_80381FA0.min[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef NONMATCHING
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80305924.s")
|
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80305924.s")
|
||||||
|
#else
|
||||||
|
s16 *func_80305924(void) {
|
||||||
|
s32 var_v1;
|
||||||
|
s16 *temp_a0;
|
||||||
|
s16 *var_v0;
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80305990.s")
|
temp_a0 = (s16*) malloc(D_8036ABA8 * sizeof(s16));
|
||||||
|
for(var_v1 = 0; var_v1 < D_8036ABA8; var_v1++){
|
||||||
|
var_v0 = temp_a0 + var_v1;
|
||||||
|
*var_v0 = 0;
|
||||||
|
}
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80305BD4.s")
|
return temp_a0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80305C30.s")
|
void func_80305990(s32 arg0) {
|
||||||
|
s32 sp1C[3];
|
||||||
|
s16 *temp_v0;
|
||||||
|
Cube *cube;
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80305C84.s")
|
D_8036ABA8 = (D_80381FA0.max[1] - D_80381FA0.min[1]) + 1;
|
||||||
|
if ((arg0 == 0) && (D_8036ABA0 == NULL)) {
|
||||||
|
D_8036ABA0 = func_80305924();
|
||||||
|
}
|
||||||
|
if ((arg0 == 1) && (D_8036ABA4 == NULL)) {
|
||||||
|
D_8036ABA4 = func_80305924();
|
||||||
|
}
|
||||||
|
for(sp1C[1] = 0; sp1C[1] <= D_80381FA0.max[1] - D_80381FA0.min[1]; sp1C[1]++){
|
||||||
|
for(sp1C[0] = 0; sp1C[0] <= D_80381FA0.max[0] - D_80381FA0.min[0]; sp1C[0]++){
|
||||||
|
for(sp1C[2] = 0; sp1C[2] <= D_80381FA0.max[2] - D_80381FA0.min[2]; sp1C[2]++){
|
||||||
|
cube = D_80381FA0.cube_list + sp1C[0] + sp1C[1]*D_80381FA0.stride[0] + sp1C[2]*D_80381FA0.stride[1];
|
||||||
|
if ((arg0 == 0) && (cube->prop1Ptr != NULL)) {
|
||||||
|
temp_v0 = D_8036ABA0 + sp1C[1];
|
||||||
|
*temp_v0 += cube->prop1Cnt;
|
||||||
|
}
|
||||||
|
if ((arg0 == 1) && (cube->prop2Ptr != NULL)) {
|
||||||
|
temp_v0 = D_8036ABA4 + sp1C[1];
|
||||||
|
*temp_v0 += cube->prop2Cnt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80305CD8.s")
|
void func_80305BD4(void){
|
||||||
|
if(D_8036ABA0 != NULL){
|
||||||
|
free(D_8036ABA0);
|
||||||
|
D_8036ABA0 = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80305D14.s")
|
if(D_8036ABA4 != NULL){
|
||||||
|
free(D_8036ABA4);
|
||||||
|
D_8036ABA4 = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
D_8036ABA8 = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool func_80305C30(s32 arg0){
|
||||||
|
if(!((arg0 >= 0) && (arg0 < D_8036ABA8)))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return ((D_8036ABA0[arg0] != 0)) ? 1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool func_80305C84(s32 arg0){
|
||||||
|
if(!((arg0 >= 0) && (arg0 < D_8036ABA8)))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return ((D_8036ABA4[arg0] != 0)) ? 1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void func_80305CD8(s32 arg0, s32 arg1){
|
||||||
|
if((arg0 >= 0) && (arg0 < D_8036ABA8)){
|
||||||
|
D_8036ABA4[arg0] += arg1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool func_80305D14(void){
|
||||||
|
return (D_8036ABA4 != NULL) ? TRUE : FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
void func_80305D38(void){
|
void func_80305D38(void){
|
||||||
D_8036A9BC = malloc(0);
|
D_8036A9BC = malloc(0);
|
||||||
@@ -1310,9 +1414,77 @@ void func_80305D38(void){
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80305F04.s")
|
void func_80305F04(s32 *arg0, Struct_core2_7AF80_1 **arg1) {
|
||||||
|
bool continue_loop;
|
||||||
|
Struct_core2_7AF80_2 *b_elem;
|
||||||
|
Struct_core2_7AF80_1 *b_list;
|
||||||
|
Struct_core2_7AF80_2 *a_elem;
|
||||||
|
Struct_core2_7AF80_1 *a_list;
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_803062D0.s")
|
if ((D_8036A9BC != NULL) && (D_8036A9B8 != 0)) {
|
||||||
|
for(a_list = *arg1; a_list < *arg1 + *arg0; a_list++){
|
||||||
|
for(b_list = a_list + 1; b_list < *arg1 + *arg0; b_list++) {
|
||||||
|
//same types and neither A or B are empty
|
||||||
|
if ((a_list->unk4 == b_list->unk4) && (a_list->unk0 != 0) && (b_list->unk0 != 0)) {
|
||||||
|
|
||||||
|
continue_loop = TRUE;
|
||||||
|
for(a_elem = a_list->unk8; (a_elem < a_list->unk8 + a_list->unk0) && continue_loop; a_elem++){
|
||||||
|
for(b_elem = b_list->unk8; (b_elem < b_list->unk8 + b_list->unk0) && continue_loop; b_elem++) {
|
||||||
|
if ((((a_elem->unk0[0] - b_elem->unk0[0]) * (a_elem->unk0[0] - b_elem->unk0[0])) + ((a_elem->unk0[2] - b_elem->unk0[2]) * (a_elem->unk0[2] - b_elem->unk0[2]))) < ((a_elem->unkC + b_elem->unkC) * (a_elem->unkC + b_elem->unkC))) {
|
||||||
|
//concat b_list to end of a_list
|
||||||
|
a_list->unk8 = (Struct_core2_7AF80_2 *) realloc(a_list->unk8, (a_list->unk0 + b_list->unk0)*sizeof(Struct_core2_7AF80_2));
|
||||||
|
memcpy(a_list->unk8 + a_list->unk0, b_list->unk8, b_list->unk0 * sizeof(Struct_core2_7AF80_2));
|
||||||
|
a_list->unk0 = (s32) (a_list->unk0 + b_list->unk0);
|
||||||
|
|
||||||
|
b_list->unk0 = 0;
|
||||||
|
free(b_list->unk8);
|
||||||
|
b_list->unk8 = NULL;
|
||||||
|
|
||||||
|
b_list = a_list;
|
||||||
|
continue_loop = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//remove empty lists
|
||||||
|
for(a_list = *arg1; a_list < *arg1 + *arg0; a_list++){
|
||||||
|
if (a_list->unk0 == 0) { //A is empty
|
||||||
|
continue_loop = TRUE;
|
||||||
|
for(b_list = a_list + 1; (b_list < *arg1 + *arg0) && continue_loop; b_list++){
|
||||||
|
if (b_list->unk0 != 0) { //B is not empty
|
||||||
|
//swap A an B
|
||||||
|
memcpy(a_list, b_list, sizeof(Struct_core2_7AF80_1));
|
||||||
|
b_list->unk0 = 0;
|
||||||
|
b_list->unk8 = NULL;
|
||||||
|
|
||||||
|
continue_loop = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//find first empty list (end)
|
||||||
|
for(a_list = *arg1; (a_list < *arg1 + *arg0) && (a_list->unk0 != 0); a_list++) { }
|
||||||
|
|
||||||
|
*arg0 = (a_list - *arg1); //count
|
||||||
|
*arg1 = (Struct_core2_7AF80_1 *)realloc((void *) *arg1, *arg0 * sizeof(Struct_core2_7AF80_1)); //ptr
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void func_803062D0(void) {
|
||||||
|
Cube* var_s0;
|
||||||
|
|
||||||
|
for (var_s0 = D_80381FA0.cube_list; var_s0 < (D_80381FA0.cube_list + D_80381FA0.cubeCnt); var_s0++) {
|
||||||
|
func_803303B8(var_s0);
|
||||||
|
}
|
||||||
|
func_80305F04(&D_8036A9B8, &D_8036A9BC);
|
||||||
|
func_80305F04(&D_8036A9C4, &D_8036A9C8);
|
||||||
|
func_80305F04(&D_8036A9D0, &D_8036A9D4);
|
||||||
|
}
|
||||||
|
|
||||||
void func_80306390(void){
|
void func_80306390(void){
|
||||||
D_8036A9C0 = D_8036A9BC - 1;
|
D_8036A9C0 = D_8036A9BC - 1;
|
||||||
@@ -1552,7 +1724,41 @@ s32 func_80306DDC(Struct_core2_7AF80_2 *arg0) {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80306EF4.s")
|
s32 func_80306EF4(s32 arg0[3], s32 arg1, u32 arg2) {
|
||||||
|
s32 temp_s4;
|
||||||
|
s32 temp_s6;
|
||||||
|
Struct_core2_7AF80_2 *var_s0;
|
||||||
|
Struct_core2_7AF80_1 *var_s1;
|
||||||
|
|
||||||
|
temp_s4 = arg0[1] + arg1 / 2;
|
||||||
|
temp_s6 = arg0[1] - arg1 / 2;
|
||||||
|
for(var_s1 = D_8036A9C8; var_s1 < D_8036A9C8 + D_8036A9C4; var_s1++) {
|
||||||
|
if (D_80381FE8[var_s1->unk4] != 0) {
|
||||||
|
if (arg2 & 1) {
|
||||||
|
var_s0 = var_s1->unk8;
|
||||||
|
for(var_s0 = var_s1->unk8; var_s0 < var_s1->unk8 + var_s1->unk0; var_s0++){
|
||||||
|
if( (var_s0->unk10_3 & arg2)
|
||||||
|
&& (temp_s4 >= var_s0->unk0[1]) && (temp_s6 < var_s0->unk0[1])
|
||||||
|
&& (func_80259328(arg0, (void *) var_s0, var_s0->unkC))
|
||||||
|
) {
|
||||||
|
return var_s1 - D_8036A9C8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
for(var_s0 = var_s1->unk8; var_s0 < var_s1->unk8 + var_s1->unk0; var_s0++){
|
||||||
|
if( (var_s0->unk10_3 & arg2)
|
||||||
|
&& ((var_s0->unk10_3 & 2) || ((temp_s4 >= var_s0->unk0[1]) && (temp_s6 < var_s0->unk0[1])))
|
||||||
|
&& (func_80259328(arg0, (void *) var_s0, var_s0->unkC))
|
||||||
|
) {
|
||||||
|
return var_s1 - D_8036A9C8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
s32 func_80307164(Struct_core2_7AF80_2 *arg0) {
|
s32 func_80307164(Struct_core2_7AF80_2 *arg0) {
|
||||||
Struct_core2_7AF80_1 *phi_v1;
|
Struct_core2_7AF80_1 *phi_v1;
|
||||||
@@ -1665,7 +1871,7 @@ bool func_80307390(s32 arg0, s32 arg1) {
|
|||||||
// return -1;
|
// return -1;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
bool func_803077FC(f32 arg0[3], s32 *arg1, s32 *arg2, s32 arg3, s32 arg4) {
|
bool func_803077FC(f32 arg0[3], s32 *arg1, s32 *arg2, s32 arg3, u32 arg4) {
|
||||||
s32 sp3C[3];
|
s32 sp3C[3];
|
||||||
|
|
||||||
sp3C[0] = (s32) arg0[0];
|
sp3C[0] = (s32) arg0[0];
|
||||||
@@ -1698,10 +1904,84 @@ bool func_803077FC(f32 arg0[3], s32 *arg1, s32 *arg2, s32 arg3, s32 arg4) {
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef NONMATCHING
|
||||||
Cube *func_80307948(s32 arg0[3]);
|
Cube **func_80307948(s32 arg0[3]);
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80307948.s")
|
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80307948.s")
|
||||||
|
#else
|
||||||
|
Cube **func_80307948(s32 arg0[3]) {
|
||||||
|
s32 sp34[3];
|
||||||
|
s32 sp24[3];
|
||||||
|
// ? *var_a2;
|
||||||
|
s32 *var_a1;
|
||||||
|
Cube *var_t2;
|
||||||
|
s32 *var_v0;
|
||||||
|
s32 temp_a0;
|
||||||
|
s32 temp_a1;
|
||||||
|
s32 temp_a1_2;
|
||||||
|
s32 temp_a2;
|
||||||
|
s32 temp_a2_2;
|
||||||
|
s32 temp_lo;
|
||||||
|
s32 temp_t0;
|
||||||
|
s32 temp_t0_2;
|
||||||
|
s32 temp_t5;
|
||||||
|
s32 temp_t6;
|
||||||
|
s32 temp_t6_2;
|
||||||
|
s32 temp_t7;
|
||||||
|
s32 temp_t7_2;
|
||||||
|
s32 temp_t8;
|
||||||
|
s32 temp_t9;
|
||||||
|
s32 temp_v0;
|
||||||
|
s32 temp_v1;
|
||||||
|
s32 var_a0;
|
||||||
|
s32 var_a0_2;
|
||||||
|
s32 var_a3;
|
||||||
|
s32 var_t1;
|
||||||
|
s32 var_v0_2;
|
||||||
|
s32 var_v1;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
for(i = 0; i < 3; i++){
|
||||||
|
sp34[i] = ((arg0[i] >= 0) ? (arg0[i] / 1000) : ((arg0[i]/1000) - 1)) - D_80381FA0.min[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
var_v1 = 0;
|
||||||
|
if( (sp34[0] > 0) && (sp34[0] < (D_80381FA0.width[0] - 1))
|
||||||
|
&& (sp34[1] > 0) && (sp34[1] < (D_80381FA0.width[1] - 1))
|
||||||
|
&& (sp34[2] > 0) && (sp34[2] < (D_80381FA0.width[2] - 1))
|
||||||
|
) {
|
||||||
|
for(sp24[0] = sp34[0] - 1; sp24[0] < sp34[0] + 2; sp24[0]++){
|
||||||
|
for(sp24[1] = sp34[1] - 1; sp24[1] < sp34[1] + 2; sp24[1]++){
|
||||||
|
for(sp24[2] = sp34[2] - 1; sp24[2] < sp34[2] + 2; sp24[2]++){
|
||||||
|
temp_lo = sp24[0] + (sp24[1] * D_80381FA0.stride[0]) + (sp24[2] * D_80381FA0.stride[1]);
|
||||||
|
if (var_t2[temp_lo].unk0_4) {
|
||||||
|
D_80382038[var_v1++] = D_80381FA0.cube_list + temp_lo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for(sp24[0] = sp34[0] - 1; sp24[0] < sp34[0] + 2; sp24[0]++){
|
||||||
|
if ((sp24[0] >= 0) && (sp24[0] < D_80381FA0.width[0])) {
|
||||||
|
for(sp24[1] = sp34[1] - 1; sp24[1] < sp34[1] + 2; sp24[1]++){
|
||||||
|
if ((sp24[1] >= 0) && (sp24[1] < D_80381FA0.width[1])) {
|
||||||
|
for(sp24[2] = sp34[2] - 1; sp24[2] < sp34[2] + 2; sp24[2]++){
|
||||||
|
if ((sp24[2] >= 0) && (sp24[2] < D_80381FA0.width[2])) {
|
||||||
|
temp_lo = sp24[0] + (sp24[1] * D_80381FA0.stride[0]) + (sp24[2] * D_80381FA0.stride[1]);
|
||||||
|
if (D_80381FA0.cube_list[temp_lo].unk0_4) {
|
||||||
|
D_80382038[var_v1] = D_80381FA0.cube_list + temp_lo;
|
||||||
|
var_v1++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
D_80382038[var_v1] = NULL;
|
||||||
|
return D_80382038;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80307CA0.s")
|
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80307CA0.s")
|
||||||
// void func_80307CA0(ActorMarker *marker) {
|
// void func_80307CA0(ActorMarker *marker) {
|
||||||
@@ -1758,7 +2038,65 @@ u32 func_80307E1C(void) {
|
|||||||
return phi_v1;
|
return phi_v1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef NONMATCHING
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80307EA8.s")
|
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_80307EA8.s")
|
||||||
|
#else
|
||||||
|
u32 func_80307EA8(s32 arg0, s32 arg1[3], s32 *arg2, s32 *arg3) {
|
||||||
|
s32 temp_lo;
|
||||||
|
s32 temp_t1;
|
||||||
|
s32 temp_t6;
|
||||||
|
s32 temp_t6_2;
|
||||||
|
u32 var_s2;
|
||||||
|
u32 var_s4;
|
||||||
|
NodeProp *temp_a0;
|
||||||
|
Cube *temp_v0;
|
||||||
|
|
||||||
|
var_s4 = 0;
|
||||||
|
if (arg0 == 0) {
|
||||||
|
D_803820A8[0] = (s32) D_80381FA0.min[0];
|
||||||
|
D_803820A8[1] = (s32) D_80381FA0.min[1];
|
||||||
|
D_803820A8[2] = (s32) D_80381FA0.min[2];
|
||||||
|
D_803820B4 = 0;
|
||||||
|
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++;
|
||||||
|
}
|
||||||
|
if ((temp_v0 == NULL) || (var_s2 >= temp_v0->prop1Cnt)) {
|
||||||
|
var_s2 = 0;
|
||||||
|
D_803820A8[2]++;
|
||||||
|
if (D_80381FA0.max[2] < D_803820A8[2]) {
|
||||||
|
D_803820A8[2] = D_80381FA0.min[2];
|
||||||
|
D_803820A8[1]++;
|
||||||
|
if (D_80381FA0.max[1] < D_803820A8[1]) {
|
||||||
|
D_803820A8[1] = D_80381FA0.min[1];
|
||||||
|
D_803820A8[0]++;
|
||||||
|
if (D_80381FA0.max[0] < D_803820A8[0]) {
|
||||||
|
D_803820B4 = 0;
|
||||||
|
return (var_s4 != 0) ? var_s4 : -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
D_803820B4 = var_s2;
|
||||||
|
}
|
||||||
|
|
||||||
|
return var_s4;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_803080C8.s")
|
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_7AF80/func_803080C8.s")
|
||||||
|
|
||||||
@@ -1929,11 +2267,11 @@ void func_803086B4(void) {
|
|||||||
};
|
};
|
||||||
if (func_8023DB5C() & 1) {
|
if (func_8023DB5C() & 1) {
|
||||||
if (D_8036ABA0 != NULL) {
|
if (D_8036ABA0 != NULL) {
|
||||||
D_8036ABA0 = defrag(D_8036ABA0);
|
D_8036ABA0 = (s16*) defrag(D_8036ABA0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (D_8036ABA4 != NULL) {
|
if (D_8036ABA4 != NULL) {
|
||||||
D_8036ABA4 = defrag(D_8036ABA4);
|
D_8036ABA4 = (s16*) defrag(D_8036ABA4);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (D_8036A9BC != NULL) {
|
if (D_8036A9BC != NULL) {
|
||||||
|
Reference in New Issue
Block a user