The first commit
This commit is contained in:
153
src/core2/code_72060.c
Normal file
153
src/core2/code_72060.c
Normal file
@@ -0,0 +1,153 @@
|
||||
#include <ultra64.h>
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
typedef struct {
|
||||
u8 pad0[0xC];
|
||||
f32 unkC[3];
|
||||
}Struct_core2_72060_0;
|
||||
|
||||
extern void func_80251B5C(f32, f32, f32);
|
||||
extern void func_80251F8C(f32);
|
||||
extern void func_8025208C(f32);
|
||||
extern void func_80252A38(f32, f32, f32);
|
||||
|
||||
extern struct4Cs * D_80369280;
|
||||
extern s32 D_80369284;
|
||||
extern void * D_80369288;
|
||||
extern s32 D_8036928C;
|
||||
extern Gfx D_80369290[];
|
||||
|
||||
extern f32 D_80377350;
|
||||
extern f32 D_80377354;
|
||||
|
||||
extern f32 D_80381050[3];
|
||||
extern f32 D_80381060;
|
||||
extern f32 D_80381064;
|
||||
extern f32 D_80381070[3];
|
||||
extern f32 D_80381080[3];
|
||||
extern s32 D_8038108C;
|
||||
extern Gfx *D_80381090;
|
||||
extern Struct_core2_72060_0 *D_80381094;
|
||||
|
||||
void func_802F8FF0(void){
|
||||
D_80369284 = 0;
|
||||
}
|
||||
|
||||
void func_802F8FFC(void){
|
||||
if(D_80369280){
|
||||
free(D_80369280->unk1C);
|
||||
func_8033BD20(&D_80369288);
|
||||
free(D_80369280);
|
||||
D_80369280 = NULL;
|
||||
D_80369284 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void func_802F9054(void){
|
||||
func_802F8FFC();
|
||||
D_80369280 = (struct4Cs *) malloc(sizeof(struct4Cs));
|
||||
D_80369280->unk0[0] = D_80369280->unk0[1] = D_80369280->unk0[2] = 0.0f;
|
||||
D_80369280->unkC[0] = D_80369280->unkC[1] = D_80369280->unkC[2] = 0.0f;
|
||||
D_8036928C = 0;
|
||||
D_80369280->unk1C = malloc(100*sizeof(struct4Ds));
|
||||
D_80369280->unk18 = 0;
|
||||
D_80369288 = assetcache_get(0x8a1); //2D_light
|
||||
}
|
||||
|
||||
void func_802F90F4(void){
|
||||
if(D_80369280)
|
||||
D_80369280->unk18 = 1;
|
||||
}
|
||||
|
||||
void func_802F9114(void){
|
||||
if(D_80369280)
|
||||
D_80369280->unk18 = 2;
|
||||
}
|
||||
|
||||
void func_802F9134(s32 gfx){
|
||||
D_80369284 = D_80369284 - 1;
|
||||
if(gfx < D_80369284){
|
||||
func_80254630(D_80369280->unk1C + gfx, D_80369280->unk1C + D_80369284, sizeof(struct4Ds));
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_72060/func_802F919C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_72060/func_802F962C.s")
|
||||
// void func_802F962C(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
// u32 temp_s0_3;
|
||||
// u32 temp_s0_4;
|
||||
// void *temp_s0;
|
||||
// void *temp_s0_2;
|
||||
// void *temp_s3;
|
||||
// void *temp_s3_2;
|
||||
// void *temp_s4;
|
||||
// void *temp_s4_2;
|
||||
// void *temp_v1;
|
||||
// void *temp_v1_2;
|
||||
// void *temp_v1_3;
|
||||
// void *phi_s0;
|
||||
// void *phi_s0_2;
|
||||
|
||||
// if ((D_80369280 != NULL) && (D_80369284 != 0)) {
|
||||
// func_8024C5CC(D_80381050);
|
||||
// func_8024C764(D_80381060);
|
||||
// temp_v1 = D_80369288;
|
||||
// D_80381090 = temp_v1 + temp_v1->unkC + 8;
|
||||
// temp_s3 = temp_v1 + temp_v1->unk10;
|
||||
// D_8038108C = func_802EC920(temp_s3);
|
||||
// func_80349AD0();
|
||||
// gSPSegment((*gfx)++, 0x01, osVirtualToPhysical(temp_s3 + 0x18));
|
||||
// gSPSegment((*gfx)++, 0x02, osVirtualToPhysical(temp_v1_2 + temp_v1_2->unk8 + 0x18));
|
||||
// gSPSetGeometryMode((*gfx)++, G_ZBUFFER);
|
||||
// gSPDisplayList((*gfx)++, D_80369290);
|
||||
// gSPSegment((*gfx)++, 0x03, osVirtualToPhysical(&D_803692B0));
|
||||
|
||||
// temp_v1_3 = D_80369288;
|
||||
// D_80381094 = temp_v1_3 + temp_v1_3->unk4;
|
||||
// temp_s0_3 = D_80369280->unk1C;
|
||||
// phi_s0 = (void *) temp_s0_3;
|
||||
// if (temp_s0_3 < (u32) (temp_s0_3 + (D_80369284 * 0x18))) {
|
||||
// do {
|
||||
// phi_s0_2 = phi_s0;
|
||||
// if ((func_802F989C(gfx, mtx, phi_s0) == 0) && (phi_s0->unk4 < D_8038104C)) {
|
||||
// func_802F9134((s32) (phi_s0 - D_80369280->unk1C) / 24);
|
||||
// phi_s0_2 = phi_s0 - 0x18;
|
||||
// }
|
||||
// temp_s0_4 = phi_s0_2 + 0x18;
|
||||
// phi_s0 = (void *) temp_s0_4;
|
||||
// } while (temp_s0_4 < (u32) (D_80369280->unk1C + (D_80369284 * 0x18)));
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
#ifndef NONMATCHING
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_72060/func_802F989C.s")
|
||||
#else
|
||||
bool func_802F989C(Gfx **gfx, Mtx **mtx, f32 arg2[3]) {
|
||||
|
||||
D_80381070[0] = arg2[0] - D_80381050[0];\
|
||||
D_80381070[1] = arg2[1] - D_80381050[1];\
|
||||
D_80381070[2] = arg2[2] - D_80381050[2];
|
||||
if( ((-17000.0f < D_80381070[0]) &&(D_80381070[0] < 17000.0f))
|
||||
&& (arg2[1] > -200.0f)
|
||||
&& ((-17000.0f < D_80381070[2]) && (D_80381070[2] < 17000.0f))
|
||||
&& func_8024DB50(arg2, D_8038108C)
|
||||
) {
|
||||
func_80251B5C(D_80381070[0], D_80381070[1], D_80381070[2]);
|
||||
mlMtxApply(*mtx);
|
||||
func_80252434(&D_80381080, D_80381094->unkC);
|
||||
func_80251B5C(D_80381080[0], D_80381080[1], D_80381080[2]);
|
||||
func_8025208C(D_80381064);
|
||||
func_80251F8C(D_80381060);
|
||||
func_80252A38(-(D_80381094->unkC[0]), -(D_80381094->unkC[1]), -(D_80381094->unkC[2]));
|
||||
mlMtxApply(*mtx);
|
||||
gSPMatrix((*gfx)++, (*mtx)++, G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList((*gfx)++, osVirtualToPhysical(D_80381090));
|
||||
gSPPopMatrix((*gfx)++, G_MTX_MODELVIEW);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
Reference in New Issue
Block a user