mirror of
https://github.com/pret/pokestadium.git
synced 2026-09-30 05:50:51 -05:00
352570
This commit is contained in:
@@ -545,6 +545,33 @@ typedef struct unk_D_843A22C0 {
|
||||
/* 0x038 */ unk_D_843A22C0_038 unk_038[10];
|
||||
} unk_D_843A22C0; // size = 0x358
|
||||
|
||||
typedef struct unk_D_843AA880_034 {
|
||||
/* 0x00 */ u8 unk_00;
|
||||
/* 0x04 */ f32 unk_04;
|
||||
/* 0x08 */ f32 unk_08;
|
||||
/* 0x0C */ Vec3f unk_0C;
|
||||
/* 0x18 */ Vec3f unk_18;
|
||||
/* 0x24 */ f32 unk_24;
|
||||
/* 0x28 */ f32 unk_28;
|
||||
/* 0x2C */ Vec3f unk_2C;
|
||||
/* 0x38 */ Vec3f unk_38;
|
||||
} unk_D_843AA880_034; // size = 0x44
|
||||
|
||||
typedef struct unk_D_843AA880 {
|
||||
/* 0x000 */ s16 unk_000;
|
||||
/* 0x002 */ s16 unk_002;
|
||||
/* 0x004 */ s16 unk_004;
|
||||
/* 0x006 */ s16 unk_006;
|
||||
/* 0x008 */ Color_RGB8 unk_008;
|
||||
/* 0x00C */ f32 unk_00C;
|
||||
/* 0x010 */ f32 unk_010;
|
||||
/* 0x014 */ f32 unk_014;
|
||||
/* 0x018 */ Vtx* unk_018;
|
||||
/* 0x01C */ Vec3f unk_01C;
|
||||
/* 0x028 */ char unk028[0xC];
|
||||
/* 0x034 */ unk_D_843AA880_034 unk_034[15];
|
||||
} unk_D_843AA880; // size = 0x430
|
||||
|
||||
extern unk_D_8438E7B0* D_84384570[];
|
||||
extern unk_D_8438FF70* D_84384578[];
|
||||
extern unk_D_8438FF70* D_84384580[];
|
||||
@@ -2565,10 +2592,15 @@ Gfx* func_843670C8(Gfx* arg0);
|
||||
|
||||
Gfx* func_84367660(Gfx* arg0, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3, f32 arg4, u8 arg5, u8 arg6, u8 arg7, u8 arg8);
|
||||
|
||||
|
||||
void func_84367CB0(void);
|
||||
void func_84367E2C(f32, f32, f32, f32, f32, f32, s32, s32, s32, s32, f32, f32, f32, s32);
|
||||
void func_84367E2C(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, u8 arg6, u8 arg7, u8 arg8, u8 arg9, f32 argA, f32 argB, f32 argC, s16 argD);
|
||||
void func_84368080(f32 arg0, Vec3f* arg1, f32 arg2, f32 arg3);
|
||||
void func_84368140(unk_D_843AA880* arg0);
|
||||
s32 func_843684CC(void);
|
||||
Gfx* func_84368560(Gfx*);
|
||||
Gfx* func_84368560(Gfx* arg0);
|
||||
|
||||
|
||||
void func_84368AB0(void);
|
||||
void func_84368C04(f32, f32, f32, f32, f32, f32, s32, s32, s32, s32, f32, f32, f32, s32);
|
||||
s32 func_843692E8(void);
|
||||
|
||||
@@ -552,7 +552,6 @@ void func_84360EFC(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, s
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
void func_843612F8(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, s16 arg6, u8 arg7, u8 arg8, u8 arg9,
|
||||
u8 argA, f32 argB, f32 argC, f32 argD, s16 argE) {
|
||||
unk_D_84398F50* var_v0;
|
||||
@@ -562,13 +561,9 @@ void func_843612F8(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, s
|
||||
Vec3f spBC;
|
||||
Vec3f spB0;
|
||||
s32 temp_fp;
|
||||
s32 temp_s2;
|
||||
s32 temp_s3;
|
||||
s32 temp_s5;
|
||||
s32 temp_s6;
|
||||
s32 temp_s7;
|
||||
f32 idx1;
|
||||
f32 idx2;
|
||||
|
||||
spBC.x = arg0;
|
||||
spBC.y = arg1;
|
||||
@@ -598,33 +593,27 @@ void func_843612F8(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, s
|
||||
temp_s6 = RAND(20) + 2;
|
||||
temp_fp = RAND(10) + 4;
|
||||
|
||||
for (j = 0, temp_s2 = temp_s6, temp_s3 = temp_s5; j < 20; j++) {
|
||||
for (j = 0; j < 20; j++) {
|
||||
var_s0->unk_00 = j;
|
||||
var_s0->unk_04 = argA;
|
||||
var_s0->unk_08 = argC;
|
||||
var_s0->unk_0C = 0.0f;
|
||||
var_s0->unk_10 = spBC;
|
||||
|
||||
idx1 = ((temp_s2 % (temp_fp + 20)) * TWO_PI) / (temp_fp + 20);
|
||||
idx2 = ((temp_s3 % temp_s7) * TWO_PI) / temp_s7;
|
||||
|
||||
var_s0->unk_10.y += 5.0 * __sinf(idx2) * __sinf(idx1);
|
||||
var_s0->unk_10.z += 5.0 * __cosf(idx2) * __cosf(idx1);
|
||||
var_s0->unk_10.y += 5.0 * __sinf((((temp_s5 + j) % temp_s7) * TWO_PI) / temp_s7) *
|
||||
__sinf((((temp_s6 + j) % (temp_fp + 20)) * TWO_PI) / (temp_fp + 20));
|
||||
var_s0->unk_10.z += 5.0 * __cosf((((temp_s5 + j) % temp_s7) * TWO_PI) / temp_s7) *
|
||||
__cosf((((temp_s6 + j) % (temp_fp + 20)) * TWO_PI) / (temp_fp + 20));
|
||||
var_s0->unk_1C = spB0;
|
||||
|
||||
var_s0->unk_10.x += var_s0->unk_1C.x * ((j * 0.5) - (s32)(j * 0.5));
|
||||
|
||||
temp_s2++;
|
||||
temp_s3++;
|
||||
var_s0++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_34A420/func_843612F8.s")
|
||||
#endif
|
||||
|
||||
void func_843616B0(f32 arg0, UNUSED Vec3f* arg1, Vec3f* arg2, f32 arg3, UNUSED f32 arg4, UNUSED f32 arg5,
|
||||
UNUSED f32 arg6) {
|
||||
|
||||
@@ -93,38 +93,42 @@ Gfx* func_84367660(Gfx* arg0, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3, f32 arg4, u
|
||||
gDPPipeSync(arg0++);
|
||||
gDPSetEnvColor(arg0++, arg5, arg6, arg7, arg8);
|
||||
|
||||
a3_x = arg4 * sp130;
|
||||
a3_y = arg4 * sp12C;
|
||||
a3_z = arg4 * sp128;
|
||||
|
||||
temp_v1 = sp1E8;
|
||||
|
||||
tmp1 = arg4 * sp130;
|
||||
tmp2 = arg4 * sp12C;
|
||||
tmp3 = arg4 * sp128;
|
||||
if (a3_z) {}
|
||||
|
||||
temp_v1->v.ob[0] = tmp1 * 2.0f + a1_x;
|
||||
temp_v1->v.ob[1] = tmp2 * 2.0f + a1_y;
|
||||
temp_v1->v.ob[2] = tmp3 * 2.0f + a1_z;
|
||||
tmp1 = a2_y - a3_y * 2.0f;
|
||||
|
||||
temp_v1->v.ob[0] = a3_x * 2.0f + a1_x;
|
||||
temp_v1->v.ob[1] = a3_y * 2.0f + a1_y;
|
||||
temp_v1->v.ob[2] = a3_z * 2.0f + a1_z;
|
||||
temp_v1++;
|
||||
|
||||
temp_v1->v.ob[0] = tmp1 * 2.0f + a2_x;
|
||||
temp_v1->v.ob[1] = tmp2 * 2.0f + a2_y;
|
||||
temp_v1->v.ob[2] = tmp3 * 2.0f + a2_z;
|
||||
temp_v1->v.ob[0] = a3_x * 2.0f + a2_x;
|
||||
temp_v1->v.ob[1] = a3_y * 2.0f + a2_y;
|
||||
temp_v1->v.ob[2] = a3_z * 2.0f + a2_z;
|
||||
temp_v1++;
|
||||
|
||||
sp8C = (a1_x * 1.2f) + (-a2_x * 0.2f);
|
||||
sp88 = (a1_y * 1.2f) + (-a2_y * 0.2f);
|
||||
sp84 = (a1_z * 1.2f) + (-a2_z * 0.2f);
|
||||
sp8C = (-a2_x * 0.2f) + (a1_x * 1.2f);
|
||||
sp88 = (-a2_y * 0.2f) + (a1_y * 1.2f);
|
||||
sp84 = (-a2_z * 0.2f) + (a1_z * 1.2f);
|
||||
|
||||
sp80 = (a2_x * 1.2f) - (a1_x * 0.2f);
|
||||
sp7C = (a2_y * 1.2f) - (a1_y * 0.2f);
|
||||
sp78 = (a2_z * 1.2f) - (a1_z * 0.2f);
|
||||
|
||||
temp_v1->v.ob[0] = tmp1 + sp8C;
|
||||
temp_v1->v.ob[1] = tmp2 + sp88;
|
||||
temp_v1->v.ob[2] = tmp3 + sp84;
|
||||
temp_v1->v.ob[0] = a3_x + sp8C;
|
||||
temp_v1->v.ob[1] = a3_y + sp88;
|
||||
temp_v1->v.ob[2] = a3_z + sp84;
|
||||
temp_v1++;
|
||||
|
||||
temp_v1->v.ob[0] = tmp1 + sp80;
|
||||
temp_v1->v.ob[1] = tmp2 + sp7C;
|
||||
temp_v1->v.ob[2] = tmp3 + sp78;
|
||||
temp_v1->v.ob[0] = a3_x + sp80;
|
||||
temp_v1->v.ob[1] = a3_y + sp7C;
|
||||
temp_v1->v.ob[2] = a3_z + sp78;
|
||||
temp_v1++;
|
||||
|
||||
temp_v1->v.ob[0] = a1_x;
|
||||
@@ -137,24 +141,24 @@ Gfx* func_84367660(Gfx* arg0, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3, f32 arg4, u
|
||||
temp_v1->v.ob[2] = a2_z;
|
||||
temp_v1++;
|
||||
|
||||
temp_v1->v.ob[0] = sp8C - tmp1;
|
||||
temp_v1->v.ob[1] = sp88 - tmp2;
|
||||
temp_v1->v.ob[2] = sp84 - tmp3;
|
||||
temp_v1->v.ob[0] = sp8C - a3_x;
|
||||
temp_v1->v.ob[1] = sp88 - a3_y;
|
||||
temp_v1->v.ob[2] = sp84 - a3_z;
|
||||
temp_v1++;
|
||||
|
||||
temp_v1->v.ob[0] = sp80 - tmp1;
|
||||
temp_v1->v.ob[1] = sp7C - tmp2;
|
||||
temp_v1->v.ob[2] = sp78 - tmp3;
|
||||
temp_v1->v.ob[0] = sp80 - a3_x;
|
||||
temp_v1->v.ob[1] = sp7C - a3_y;
|
||||
temp_v1->v.ob[2] = sp78 - a3_z;
|
||||
temp_v1++;
|
||||
|
||||
temp_v1->v.ob[0] = a1_x - tmp1 * 2.0f;
|
||||
temp_v1->v.ob[1] = a1_y - tmp2 * 2.0f;
|
||||
temp_v1->v.ob[2] = a1_z - tmp3 * 2.0f;
|
||||
temp_v1->v.ob[0] = a1_x - a3_x * 2.0f;
|
||||
temp_v1->v.ob[1] = a1_y - a3_y * 2.0f;
|
||||
temp_v1->v.ob[2] = a1_z - a3_z * 2.0f;
|
||||
temp_v1++;
|
||||
|
||||
temp_v1->v.ob[0] = a2_x - tmp1 * 2.0f;
|
||||
temp_v1->v.ob[1] = a2_y - tmp2 * 2.0f;
|
||||
temp_v1->v.ob[2] = a2_z - tmp3 * 2.0f;
|
||||
temp_v1->v.ob[0] = a2_x - a3_x * 2.0f;
|
||||
temp_v1->v.ob[1] = tmp1;
|
||||
temp_v1->v.ob[2] = a2_z - a3_z * 2.0f;
|
||||
temp_v1++;
|
||||
|
||||
guTranslate(sp1DC, 0.0f, 0.0f, 0.0f);
|
||||
|
||||
@@ -1,13 +1,301 @@
|
||||
#include "global.h"
|
||||
#include "fragment62.h"
|
||||
#include "src/6A40.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_352570/func_84367CB0.s")
|
||||
static unk_D_843AA880 D_843AA880[4];
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_352570/func_84367E2C.s")
|
||||
static Vtx D_843898B0[] = {
|
||||
VTX(-30, 0, -20, 2048, 0, 0xFF, 0xFF, 0xFF, 0xC8),
|
||||
VTX(10, 0, -20, 0, 0, 0xFF, 0xFF, 0xFF, 0xC8),
|
||||
VTX(-30, 0, 20, 2048, 2048, 0xFF, 0xFF, 0xFF, 0xC8),
|
||||
VTX(10, 0, 20, 0, 2048, 0xFF, 0xFF, 0xFF, 0xC8),
|
||||
};
|
||||
static Gfx D_843898F0[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN |
|
||||
G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH | G_CLIPPING | 0x0040F9FA),
|
||||
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH),
|
||||
gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetRenderMode(G_RM_ZB_XLU_SURF, G_RM_ZB_XLU_SURF2),
|
||||
gsDPSetCombineMode(G_CC_BLENDIA, G_CC_BLENDIA),
|
||||
gsDPSetPrimColor(0, 0, 255, 255, 255, 255),
|
||||
gsDPSetEnvColor(255, 255, 255, 255),
|
||||
gsSPVertex(0x843898B0, 4, 0),
|
||||
gsSP2Triangles(0, 2, 1, 0, 2, 3, 1, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
static Gfx D_84389958[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN |
|
||||
G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH | G_CLIPPING | 0x0040F9FA),
|
||||
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH),
|
||||
gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetRenderMode(G_RM_ZB_XLU_SURF, G_RM_ZB_XLU_SURF2),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsDPSetColorDither(G_CD_NOISE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_352570/func_84368080.s")
|
||||
void func_84367CB0(void) {
|
||||
s32 i;
|
||||
s32 j;
|
||||
f32 temp_fa0;
|
||||
unk_D_843AA880* var_a2;
|
||||
unk_D_843AA880_034* var_v0;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_352570/func_84368140.s")
|
||||
temp_fa0 = func_8432FCD4() * 0.75f;
|
||||
var_a2 = &D_843AA880[0];
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_352570/func_843684CC.s")
|
||||
for (i = 0; i < 4; i++, var_a2++) {
|
||||
var_a2->unk_000 = 0;
|
||||
var_a2->unk_002 = 0;
|
||||
var_a2->unk_004 = 0;
|
||||
var_a2->unk_00C = temp_fa0;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_352570/func_84368560.s")
|
||||
var_v0 = &var_a2->unk_034[0];
|
||||
for (j = 0; j < 15; j++, var_v0++) {
|
||||
var_v0->unk_00 = 0;
|
||||
var_v0->unk_04 = 1.0f;
|
||||
var_v0->unk_08 = 0.0f;
|
||||
var_v0->unk_0C.z = var_v0->unk_0C.y = var_v0->unk_0C.x = 0.0f;
|
||||
var_v0->unk_18.z = var_v0->unk_18.y = var_v0->unk_18.x = 0.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_84367E2C(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, u8 arg6, u8 arg7, u8 arg8, u8 arg9,
|
||||
f32 argA, f32 argB, f32 argC, s16 argD) {
|
||||
unk_D_843AA880* var_v1;
|
||||
unk_D_843AA880_034* var_s0;
|
||||
s32 i;
|
||||
s32 j;
|
||||
Vec3f sp64;
|
||||
Vec3f sp58;
|
||||
|
||||
sp64.x = arg0;
|
||||
sp64.y = arg1;
|
||||
sp64.z = arg2;
|
||||
var_v1 = &D_843AA880[0];
|
||||
|
||||
for (i = 0; i < 4; i++, var_v1++) {
|
||||
if (var_v1->unk_000 == 0) {
|
||||
f32 tmp = var_v1->unk_00C;
|
||||
|
||||
var_v1->unk_000 = 1;
|
||||
var_v1->unk_002 = 0;
|
||||
|
||||
var_v1->unk_004 = argD;
|
||||
var_v1->unk_008.r = arg6;
|
||||
var_v1->unk_008.g = arg7;
|
||||
var_v1->unk_008.b = arg8;
|
||||
var_v1->unk_01C = sp64;
|
||||
var_v1->unk_010 = argC;
|
||||
var_v1->unk_014 = argA;
|
||||
|
||||
sp58.x = arg3;
|
||||
sp58.y = arg4 * tmp;
|
||||
sp58.z = arg5 * tmp;
|
||||
|
||||
if (arg3 < 0.0) {
|
||||
var_v1->unk_006 = -1;
|
||||
} else {
|
||||
var_v1->unk_006 = 1;
|
||||
}
|
||||
|
||||
var_s0 = &var_v1->unk_034[0];
|
||||
for (j = 0; j < 15; j++, var_s0++) {
|
||||
var_s0->unk_00 = (arg9 * (0xE - j)) / 15;
|
||||
var_s0->unk_04 = argB;
|
||||
var_s0->unk_08 = (RAND(120) * 6.2831855f) / 120.0;
|
||||
var_s0->unk_0C = sp64;
|
||||
var_s0->unk_18 = sp58;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_84368080(f32 arg0, Vec3f* arg1, f32 arg2, f32 arg3) {
|
||||
MtxF spB0;
|
||||
MtxF sp70;
|
||||
MtxF sp30;
|
||||
UNUSED s32 pad;
|
||||
|
||||
guScaleF(sp30.mf, arg3, arg3, arg3);
|
||||
guRotateF(sp70.mf, (arg0 * 360.0) / 6.2831854820251465, 1.0f, 0.0f, 0.0f);
|
||||
guMtxCatF(sp30.mf, sp70.mf, spB0.mf);
|
||||
guMtxXFMF(spB0.mf, 0.0f, 0.0f, arg2, &arg1->x, &arg1->y, &arg1->z);
|
||||
}
|
||||
|
||||
void func_84368140(unk_D_843AA880* arg0) {
|
||||
unk_D_843AA880_034* var_v0 = &arg0->unk_034[0];
|
||||
s32 i;
|
||||
f32 temp_fa0;
|
||||
f32 temp_fa1;
|
||||
|
||||
for (i = 0; i < 15; i++, var_v0++) {
|
||||
if (i == 0) {
|
||||
var_v0->unk_24 = var_v0->unk_04;
|
||||
var_v0->unk_28 = var_v0->unk_08;
|
||||
var_v0->unk_2C = var_v0->unk_0C;
|
||||
var_v0->unk_38 = var_v0->unk_18;
|
||||
|
||||
var_v0->unk_0C.x += var_v0->unk_18.x;
|
||||
var_v0->unk_0C.y += var_v0->unk_18.y;
|
||||
var_v0->unk_0C.z += var_v0->unk_18.z;
|
||||
|
||||
var_v0->unk_08 += arg0->unk_014;
|
||||
if (arg0->unk_006 < 0) {
|
||||
var_v0->unk_18.x += 1.5;
|
||||
if (var_v0->unk_18.x > 20.0) {
|
||||
var_v0->unk_18.x = 20.0f;
|
||||
}
|
||||
} else {
|
||||
var_v0->unk_18.x -= 1.5;
|
||||
if (var_v0->unk_18.x < -20.0) {
|
||||
var_v0->unk_18.x = -20.0f;
|
||||
}
|
||||
}
|
||||
|
||||
if (arg0->unk_002 < 0xF) {
|
||||
temp_fa0 = ((0xF - arg0->unk_002) * 0.03) / 15.0;
|
||||
temp_fa1 = (arg0->unk_002 * 0.15) / 15.0;
|
||||
var_v0->unk_18.y += (arg0->unk_01C.y - var_v0->unk_0C.y) * temp_fa0;
|
||||
var_v0->unk_18.z += (arg0->unk_01C.z - var_v0->unk_0C.z) * temp_fa0;
|
||||
var_v0->unk_0C.y += (arg0->unk_01C.y - var_v0->unk_0C.y) * temp_fa1;
|
||||
var_v0->unk_0C.z += (arg0->unk_01C.z - var_v0->unk_0C.z) * temp_fa1;
|
||||
} else {
|
||||
var_v0->unk_18.y += (arg0->unk_01C.y - var_v0->unk_0C.y) * 0.03;
|
||||
var_v0->unk_18.z += (arg0->unk_01C.z - var_v0->unk_0C.z) * 0.03;
|
||||
var_v0->unk_0C.y += (arg0->unk_01C.y - var_v0->unk_0C.y) * 0.15;
|
||||
var_v0->unk_0C.z += (arg0->unk_01C.z - var_v0->unk_0C.z) * 0.15;
|
||||
}
|
||||
|
||||
var_v0->unk_04 += 2.0;
|
||||
if (arg0->unk_010 < var_v0->unk_04) {
|
||||
var_v0->unk_04 = arg0->unk_010;
|
||||
}
|
||||
} else {
|
||||
var_v0->unk_24 = var_v0->unk_04;
|
||||
var_v0->unk_28 = var_v0->unk_08;
|
||||
|
||||
var_v0->unk_2C = var_v0->unk_0C;
|
||||
var_v0->unk_38 = var_v0->unk_18;
|
||||
|
||||
var_v0->unk_0C = var_v0[-1].unk_2C;
|
||||
var_v0->unk_08 = var_v0[-1].unk_28;
|
||||
var_v0->unk_18 = var_v0[-1].unk_38;
|
||||
var_v0->unk_04 = var_v0[-1].unk_24;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s32 func_843684CC(void) {
|
||||
s32 i;
|
||||
unk_D_843AA880* var_s0 = &D_843AA880[0];
|
||||
|
||||
for (i = 0; i < 4; i++, var_s0++) {
|
||||
if (var_s0->unk_000 == 1) {
|
||||
var_s0->unk_002 += 1;
|
||||
if (var_s0->unk_004 < var_s0->unk_002) {
|
||||
var_s0->unk_000 = 0;
|
||||
} else {
|
||||
func_84368140(var_s0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Gfx* func_84368560(Gfx* arg0) {
|
||||
s32 i;
|
||||
s32 j;
|
||||
s32 k;
|
||||
unk_D_843AA880* var_s4;
|
||||
unk_D_843AA880_034* temp_s0;
|
||||
Mtx* temp_v0;
|
||||
Vec3f sp134;
|
||||
Vtx* var_s0;
|
||||
Mtx spF0;
|
||||
Mtx spB0;
|
||||
s16 var_s3;
|
||||
UNUSED s32 pad;
|
||||
|
||||
gDPPipeSync(arg0++);
|
||||
gDPLoadTextureBlock_4b(arg0++, D_843920C0[0x49], G_IM_FMT_I, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP,
|
||||
G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
|
||||
|
||||
var_s4 = &D_843AA880[0];
|
||||
for (i = 0; i < 4; i++, var_s4++) {
|
||||
if (var_s4->unk_000 == 1) {
|
||||
guScale(&spB0, var_s4->unk_00C, var_s4->unk_00C, var_s4->unk_00C);
|
||||
temp_s0 = &var_s4->unk_034[0];
|
||||
|
||||
if (temp_s0->unk_0C.y > 0.0f) {
|
||||
temp_v0 = func_80005F5C(sizeof(Mtx) * 1);
|
||||
guTranslate(temp_v0, temp_s0->unk_0C.x, temp_s0->unk_0C.y, temp_s0->unk_0C.z);
|
||||
guRotateRPY(&spF0, (temp_s0->unk_08 * -360.0f * var_s4->unk_006) / 6.2831854820251465,
|
||||
(var_s4->unk_006 * 0x5A) + 0x5A, 0.0f);
|
||||
guMtxCatL(&spF0, temp_v0, temp_v0);
|
||||
guMtxCatL(&spB0, temp_v0, temp_v0);
|
||||
|
||||
gSPMatrix(arg0++, temp_v0, G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(arg0++, D_843898F0);
|
||||
gSPPopMatrix(arg0++, G_MTX_MODELVIEW);
|
||||
}
|
||||
|
||||
var_s4->unk_018 = func_80005F5C(sizeof(Vtx) * 30);
|
||||
var_s0 = var_s4->unk_018;
|
||||
|
||||
for (j = 0; j < 15; j++) {
|
||||
func_84368080(temp_s0->unk_08, &sp134, temp_s0->unk_04, var_s4->unk_00C);
|
||||
var_s3 = temp_s0->unk_0C.y + sp134.y;
|
||||
if (var_s3 < 0) {
|
||||
var_s3 = 0;
|
||||
}
|
||||
|
||||
var_s0->v.ob[0] = temp_s0->unk_0C.x + sp134.x;
|
||||
var_s0->v.ob[1] = var_s3;
|
||||
var_s0->v.ob[2] = temp_s0->unk_0C.z + sp134.z;
|
||||
var_s0->v.cn[0] = var_s4->unk_008.r;
|
||||
var_s0->v.cn[1] = var_s4->unk_008.g;
|
||||
var_s0->v.cn[2] = var_s4->unk_008.b;
|
||||
var_s0->v.cn[3] = temp_s0->unk_00;
|
||||
var_s0++;
|
||||
|
||||
func_84368080(temp_s0->unk_08 + M_PI_F, &sp134, temp_s0->unk_04, var_s4->unk_00C);
|
||||
|
||||
var_s3 = temp_s0->unk_0C.y + sp134.y;
|
||||
if (var_s3 < 0) {
|
||||
var_s3 = 0;
|
||||
}
|
||||
var_s0->v.ob[0] = temp_s0->unk_0C.x + sp134.x;
|
||||
var_s0->v.ob[1] = var_s3;
|
||||
var_s0->v.ob[2] = temp_s0->unk_0C.z + sp134.z;
|
||||
var_s0->v.cn[0] = var_s4->unk_008.r;
|
||||
var_s0->v.cn[1] = var_s4->unk_008.g;
|
||||
var_s0->v.cn[2] = var_s4->unk_008.b;
|
||||
var_s0->v.cn[3] = temp_s0->unk_00;
|
||||
var_s0++;
|
||||
|
||||
temp_s0++;
|
||||
}
|
||||
|
||||
var_s0 = var_s4->unk_018;
|
||||
|
||||
gSPDisplayList(arg0++, D_84389958);
|
||||
|
||||
for (k = 0; k < 14; k++) {
|
||||
gSPVertex(arg0++, var_s0, 4, 0);
|
||||
gSP2Triangles(arg0++, 0, 2, 1, 0, 2, 3, 1, 0);
|
||||
var_s0 += 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return arg0;
|
||||
}
|
||||
|
||||
@@ -2207,7 +2207,8 @@
|
||||
- [0x373E20, .data, fragments/62/fragment62_3502D0]
|
||||
- [0x373F50, .data, fragments/62/fragment62_3512D0]
|
||||
- [0x374040, .data, fragments/62/fragment62_351F20]
|
||||
- [0x374170, data, fragments/62/fragment62_data]
|
||||
- [0x374170, .data, fragments/62/fragment62_352570]
|
||||
- [0x374270, data, fragments/62/fragment62_data]
|
||||
|
||||
- [0x3759C0, .rodata, fragments/62/fragment62_2EC3C0]
|
||||
- [0x375A60, .rodata, fragments/62/fragment62_2F3CB0]
|
||||
@@ -2238,7 +2239,7 @@
|
||||
- [0x377FE0, .rodata, fragments/62/fragment62_3502D0]
|
||||
- [0x378000, .rodata, fragments/62/fragment62_3512D0]
|
||||
- [0x378040, rodata, fragments/62/fragment62_rodata_378040]
|
||||
- [0x378070, rodata, fragments/62/fragment62_rodata_378070]
|
||||
- [0x378070, .rodata, fragments/62/fragment62_352570]
|
||||
- [0x3780B0, rodata, fragments/62/fragment62_rodata_3780B0]
|
||||
- [0x378140, rodata, fragments/62/fragment62_rodata_378140]
|
||||
- [0x378170, rodata, fragments/62/fragment62_rodata_378170]
|
||||
@@ -2267,7 +2268,8 @@
|
||||
- {vram: 0x8439E680, type: .bss, name: fragments/62/fragment62_34F1A0}
|
||||
- {vram: 0x843A06A0, type: .bss, name: fragments/62/fragment62_3502D0}
|
||||
- {vram: 0x843A22C0, type: .bss, name: fragments/62/fragment62_3512D0}
|
||||
- {vram: 0x843AA880, type: bss, name: fragments/62/fragment62_bss2}
|
||||
- {vram: 0x843AA880, type: .bss, name: fragments/62/fragment62_352570}
|
||||
- {vram: 0x843AB940, type: bss, name: fragments/62/fragment62_bss2}
|
||||
|
||||
- name: fragment62_relocs
|
||||
type: code
|
||||
|
||||
Reference in New Issue
Block a user