mirror of
https://github.com/pret/pokestadium.git
synced 2026-09-12 13:25:55 -05:00
3540B0 and 354CD0
This commit is contained in:
@@ -600,6 +600,62 @@ typedef struct unk_D_843AB940 {
|
||||
/* 0x038 */ unk_D_843AB940_038 unk_038[15];
|
||||
} unk_D_843AB940; // size = 0x434
|
||||
|
||||
typedef struct unk_D_843ACA10_01C {
|
||||
/* 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_843ACA10_01C; // size = 0x44
|
||||
|
||||
typedef struct unk_D_843ACA10 {
|
||||
/* 0x000 */ s16 unk_000;
|
||||
/* 0x002 */ s16 unk_002;
|
||||
/* 0x004 */ s16 unk_004;
|
||||
/* 0x006 */ s16 unk_006;
|
||||
/* 0x008 */ Color_RGB8 unk_008;
|
||||
/* 0x010 */ f32 unk_00C;
|
||||
/* 0x010 */ f32 unk_010;
|
||||
/* 0x014 */ Vtx* unk_014;
|
||||
/* 0x018 */ unk_D_8140E720* unk_018;
|
||||
/* 0x01C */ unk_D_843ACA10_01C unk_01C[15];
|
||||
/* 0x418 */ f32 unk_418;
|
||||
} unk_D_843ACA10; // size = 0x41C
|
||||
|
||||
typedef struct unk_D_843ADA80_040 {
|
||||
/* 0x00 */ u8 unk_00;
|
||||
/* 0x04 */ f32 unk_04;
|
||||
/* 0x08 */ f32 unk_08;
|
||||
/* 0x0C */ Vec3f unk_0C;
|
||||
/* 0x18 */ Vec3f unk_18;
|
||||
/* 0x24 */ Vec3f unk_24;
|
||||
/* 0x30 */ f32 unk_30;
|
||||
/* 0x34 */ f32 unk_34;
|
||||
/* 0x38 */ Vec3f unk_38;
|
||||
/* 0x44 */ Vec3f unk_44;
|
||||
} unk_D_843ADA80_040; // size = 0x50
|
||||
|
||||
typedef struct unk_D_843ADA80 {
|
||||
/* 0x000 */ s16 unk_000;
|
||||
/* 0x002 */ s16 unk_002;
|
||||
/* 0x004 */ s16 unk_004;
|
||||
/* 0x006 */ s16 unk_006;
|
||||
/* 0x008 */ s16 unk_008;
|
||||
/* 0x00A */ Color_RGB8 unk_00A;
|
||||
/* 0x010 */ f32 unk_010;
|
||||
/* 0x014 */ f32 unk_014;
|
||||
/* 0x018 */ f32 unk_018;
|
||||
/* 0x01C */ char unk01C[0x4];
|
||||
/* 0x020 */ Vtx* unk_020;
|
||||
/* 0x024 */ Vec3f unk_024;
|
||||
/* 0x030 */ char unk030[0x10];
|
||||
/* 0x040 */ unk_D_843ADA80_040 unk_040[10];
|
||||
} unk_D_843ADA80; // size = 0x360
|
||||
|
||||
extern unk_D_8438E7B0* D_84384570[];
|
||||
extern unk_D_8438FF70* D_84384578[];
|
||||
extern unk_D_8438FF70* D_84384580[];
|
||||
@@ -641,6 +697,7 @@ extern func_D_84390320 D_84388A50[];
|
||||
extern func_D_84390320 D_84388CA8[];
|
||||
extern u32 D_8438A648[];
|
||||
extern Gfx D_8438A980[];
|
||||
extern Gfx D_84389AE0[];
|
||||
|
||||
|
||||
extern u8 D_843C4DA4;
|
||||
@@ -1606,8 +1663,8 @@ void func_8432F9A8(s32 arg0);
|
||||
void func_8432F9B4(void);
|
||||
s32 func_8432F9C0(void);
|
||||
s32 func_8432F9CC(s32 arg0);
|
||||
void func_8432FA0C(void);
|
||||
void func_8432FA30(void);
|
||||
s32 func_8432FA0C(void);
|
||||
s32 func_8432FA30(void);
|
||||
void func_8432FA54(unk_D_84390010* arg0, s16 arg1, Vec3f* arg2);
|
||||
void func_8432FB38(Vec3f* arg0);
|
||||
void func_8432FB64(Vec3f* arg0);
|
||||
@@ -2641,13 +2698,21 @@ Gfx* func_84369388(Gfx* arg0);
|
||||
|
||||
|
||||
void func_843697F0(void);
|
||||
void func_84369950(f32, f32, f32, f32, f32, f32, s32, s32, s32, s32, f32, f32, f32, s32);
|
||||
void func_84369950(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_84369BF0(f32 arg0, Vec3f* arg1, f32 arg2);
|
||||
void func_84369C80(unk_D_843ACA10* arg0);
|
||||
s32 func_84369F0C(void);
|
||||
Gfx* func_84369FA0(Gfx*);
|
||||
Gfx* func_84369FA0(Gfx* arg0);
|
||||
|
||||
|
||||
void func_8436A410(void);
|
||||
void func_8436A540(f32, f32, f32, f32, f32, f32, s32, s32, s32, s32, f32, f32, f32, s32);
|
||||
void func_8436ABA8(void);
|
||||
Gfx* func_8436AC44(Gfx*);
|
||||
void func_8436A540(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_8436A808(f32 arg0, Vec3f* arg1, f32 arg2);
|
||||
void func_8436A890(unk_D_843ADA80* arg0);
|
||||
s32 func_8436ABA8(void);
|
||||
Gfx* func_8436AC44(Gfx* arg0);
|
||||
|
||||
|
||||
void func_8436B140(void);
|
||||
void func_8436B270(f32, f32, f32, f32, f32, f32, s32, s32, s32, s32, f32, f32, f32, s32);
|
||||
void func_8436B8D8(void);
|
||||
|
||||
@@ -811,12 +811,12 @@ s32 func_8432F9CC(s32 arg0) {
|
||||
return sp1C;
|
||||
}
|
||||
|
||||
void func_8432FA0C(void) {
|
||||
func_843081BC(D_843902EC);
|
||||
s32 func_8432FA0C(void) {
|
||||
return func_843081BC(D_843902EC);
|
||||
}
|
||||
|
||||
void func_8432FA30(void) {
|
||||
func_843081BC(D_843902F0);
|
||||
s32 func_8432FA30(void) {
|
||||
return func_843081BC(D_843902F0);
|
||||
}
|
||||
|
||||
void func_8432FA54(unk_D_84390010* arg0, s16 arg1, Vec3f* arg2) {
|
||||
|
||||
@@ -1,25 +1,263 @@
|
||||
#include "global.h"
|
||||
#include "fragment62.h"
|
||||
#include "src/6A40.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3540B0/func_843697F0.s")
|
||||
static unk_D_843ACA10 D_843ACA10[4];
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3540B0/func_84369950.s")
|
||||
static Gfx D_84389A00[] = {
|
||||
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_3540B0/func_84369BF0.s")
|
||||
void func_843697F0(void) {
|
||||
s32 i;
|
||||
s32 j;
|
||||
unk_D_843ACA10* var_v0 = &D_843ACA10[0];
|
||||
unk_D_843ACA10_01C* var_a0;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3540B0/func_84369C80.s")
|
||||
for (i = 0; i < 4; i++, var_v0++) {
|
||||
var_v0->unk_000 = 0;
|
||||
var_v0->unk_002 = 0;
|
||||
var_v0->unk_004 = 0;
|
||||
var_v0->unk_418 = 0.16f;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3540B0/func_84369F0C.s")
|
||||
var_a0 = &var_v0->unk_01C[0];
|
||||
for (j = 0; j < 15; j++, var_a0++) {
|
||||
var_a0->unk_00 = 0;
|
||||
var_a0->unk_04 = 1.0f;
|
||||
var_a0->unk_08 = 0.0f;
|
||||
var_a0->unk_0C.x = 0.0f;
|
||||
var_a0->unk_0C.y = 0.0f;
|
||||
var_a0->unk_0C.z = 0.0f;
|
||||
var_a0->unk_18.x = 0.0f;
|
||||
var_a0->unk_18.y = 0.0f;
|
||||
var_a0->unk_18.z = 0.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3540B0/func_84369FA0.s")
|
||||
void func_84369950(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) {
|
||||
s32 i;
|
||||
s32 j;
|
||||
unk_D_843ACA10* var_v1;
|
||||
unk_D_843ACA10_01C* var_s0;
|
||||
Vec3f sp64;
|
||||
Vec3f sp58;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3540B0/func_8436A410.s")
|
||||
sp64.x = arg0;
|
||||
sp64.y = arg1;
|
||||
sp64.z = arg2;
|
||||
sp58.x = arg3;
|
||||
sp58.y = arg4;
|
||||
sp58.z = arg5;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3540B0/func_8436A540.s")
|
||||
var_v1 = &D_843ACA10[0];
|
||||
for (i = 0; i < 4; i++, var_v1++) {
|
||||
if (var_v1->unk_000 == 0) {
|
||||
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_010 = argA;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3540B0/func_8436A808.s")
|
||||
if (func_8432FA0C() == 0xD) {
|
||||
var_v1->unk_418 = 0.08f;
|
||||
var_v1->unk_00C = argC * 0.5f;
|
||||
} else {
|
||||
var_v1->unk_418 = 0.16f;
|
||||
var_v1->unk_00C = argC;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3540B0/func_8436A890.s")
|
||||
var_v1->unk_018 = func_8432FD70(sp64, 2);
|
||||
if (arg3 < 0.0) {
|
||||
var_v1->unk_006 = -1;
|
||||
} else {
|
||||
var_v1->unk_006 = 1;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3540B0/func_8436ABA8.s")
|
||||
var_s0 = &var_v1->unk_01C[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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3540B0/func_8436AC44.s")
|
||||
void func_84369BF0(f32 arg0, Vec3f* arg1, f32 arg2) {
|
||||
UNUSED MtxF sp70;
|
||||
MtxF sp30;
|
||||
UNUSED s32 pad;
|
||||
|
||||
guRotateF(sp30.mf, (arg0 * 360.0) / 6.2831854820251465, 1.0f, 0.0f, 0.0f);
|
||||
guMtxXFMF(sp30.mf, 0.0f, 0.0f, arg2, &arg1->x, &arg1->y, &arg1->z);
|
||||
}
|
||||
|
||||
void func_84369C80(unk_D_843ACA10* arg0) {
|
||||
s32 i;
|
||||
unk_D_843ACA10_01C* var_s0 = &arg0->unk_01C[0];
|
||||
|
||||
for (i = 0; i < 15; i++, var_s0++) {
|
||||
if (i == 0) {
|
||||
var_s0->unk_24 = var_s0->unk_04;
|
||||
var_s0->unk_28 = var_s0->unk_08;
|
||||
|
||||
var_s0->unk_2C = var_s0->unk_0C;
|
||||
var_s0->unk_38 = var_s0->unk_18;
|
||||
|
||||
var_s0->unk_0C.x += var_s0->unk_18.x;
|
||||
var_s0->unk_0C.y += var_s0->unk_18.y;
|
||||
var_s0->unk_0C.z += var_s0->unk_18.z;
|
||||
|
||||
var_s0->unk_08 += arg0->unk_010;
|
||||
if (arg0->unk_006 > 0) {
|
||||
var_s0->unk_18.x += 0.4;
|
||||
if (var_s0->unk_18.x > 20.0) {
|
||||
var_s0->unk_18.x = 20.0f;
|
||||
}
|
||||
} else {
|
||||
var_s0->unk_18.x -= 0.4;
|
||||
if (var_s0->unk_18.x < -20.0) {
|
||||
var_s0->unk_18.x = -20.0f;
|
||||
}
|
||||
}
|
||||
|
||||
func_8432FDF0(arg0->unk_018, var_s0->unk_0C);
|
||||
|
||||
var_s0->unk_04 += 2.0;
|
||||
if (arg0->unk_00C < var_s0->unk_04) {
|
||||
var_s0->unk_04 = arg0->unk_00C;
|
||||
}
|
||||
} else {
|
||||
var_s0->unk_24 = var_s0->unk_04;
|
||||
var_s0->unk_28 = var_s0->unk_08;
|
||||
|
||||
var_s0->unk_2C = var_s0->unk_0C;
|
||||
var_s0->unk_38 = var_s0->unk_18;
|
||||
|
||||
var_s0->unk_0C = var_s0[-1].unk_2C;
|
||||
var_s0->unk_08 = var_s0[-1].unk_28;
|
||||
var_s0->unk_18 = var_s0[-1].unk_38;
|
||||
var_s0->unk_04 = var_s0[-1].unk_24;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s32 func_84369F0C(void) {
|
||||
s32 i;
|
||||
unk_D_843ACA10* var_s0 = &D_843ACA10[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_84369C80(var_s0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Gfx* func_84369FA0(Gfx* arg0) {
|
||||
s32 i;
|
||||
s32 j;
|
||||
s32 k;
|
||||
unk_D_843ACA10_01C* temp_s0;
|
||||
unk_D_843ACA10* var_s5;
|
||||
Vtx* var_s0;
|
||||
Vec3f sp154;
|
||||
UNUSED s32 pad[15];
|
||||
Mtx* temp_v0;
|
||||
Mtx sp100;
|
||||
Mtx spC0;
|
||||
s16 var_s3;
|
||||
|
||||
var_s5 = &D_843ACA10[0];
|
||||
for (i = 0; i < 4; i++, var_s5++) {
|
||||
if (var_s5->unk_000 == 1) {
|
||||
temp_s0 = &var_s5->unk_01C[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(&sp100, (temp_s0->unk_08 * -360.0f * var_s5->unk_006) / 6.2831854820251465,
|
||||
0x5A - (var_s5->unk_006 * 0x5A), 0.0f);
|
||||
guMtxCatL(&sp100, temp_v0, temp_v0);
|
||||
guScale(&spC0, var_s5->unk_418, var_s5->unk_418, var_s5->unk_418);
|
||||
guMtxCatL(&spC0, temp_v0, temp_v0);
|
||||
|
||||
gSPMatrix(arg0++, temp_v0, G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(arg0++, D_8438A980);
|
||||
gSPPopMatrix(arg0++, G_MTX_MODELVIEW);
|
||||
}
|
||||
|
||||
var_s5->unk_014 = func_80005F5C(sizeof(Vtx) * 30);
|
||||
|
||||
var_s0 = var_s5->unk_014;
|
||||
for (j = 0; j < 15; j++) {
|
||||
func_84369BF0(temp_s0->unk_08, &sp154, temp_s0->unk_04);
|
||||
|
||||
var_s3 = temp_s0->unk_0C.y + sp154.y;
|
||||
if (var_s3 < 0) {
|
||||
var_s3 = 0;
|
||||
}
|
||||
|
||||
var_s0->v.ob[0] = temp_s0->unk_0C.x + sp154.x;
|
||||
var_s0->v.ob[1] = var_s3;
|
||||
var_s0->v.ob[2] = temp_s0->unk_0C.z + sp154.z;
|
||||
var_s0->v.cn[0] = var_s5->unk_008.r;
|
||||
var_s0->v.cn[1] = var_s5->unk_008.g;
|
||||
var_s0->v.cn[2] = var_s5->unk_008.b;
|
||||
var_s0->v.cn[3] = temp_s0->unk_00;
|
||||
var_s0++;
|
||||
|
||||
func_84369BF0(temp_s0->unk_08 + 3.1415927f, &sp154, temp_s0->unk_04);
|
||||
|
||||
var_s3 = temp_s0->unk_0C.y + sp154.y;
|
||||
if (var_s3 < 0) {
|
||||
var_s3 = 0;
|
||||
}
|
||||
|
||||
var_s0->v.ob[0] = temp_s0->unk_0C.x + sp154.x;
|
||||
var_s0->v.ob[1] = var_s3;
|
||||
var_s0->v.ob[2] = temp_s0->unk_0C.z + sp154.z;
|
||||
var_s0->v.cn[0] = var_s5->unk_008.r;
|
||||
var_s0->v.cn[1] = var_s5->unk_008.g;
|
||||
var_s0->v.cn[2] = var_s5->unk_008.b;
|
||||
var_s0->v.cn[3] = temp_s0->unk_00;
|
||||
var_s0++;
|
||||
|
||||
temp_s0++;
|
||||
}
|
||||
|
||||
var_s0 = var_s5->unk_014;
|
||||
|
||||
gSPDisplayList(arg0++, D_84389A00);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
359
src/fragments/62/fragment62_354CD0.c
Normal file
359
src/fragments/62/fragment62_354CD0.c
Normal file
@@ -0,0 +1,359 @@
|
||||
#include "fragment62.h"
|
||||
#include "src/6A40.h"
|
||||
|
||||
static unk_D_843ADA80 D_843ADA80[50];
|
||||
|
||||
static Gfx D_84389A50[] = {
|
||||
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(),
|
||||
};
|
||||
static Vtx D_84389AA0[] = {
|
||||
VTX(-6, 0, -6, 2048, 0, 0xFF, 0xFF, 0xFF, 0x14),
|
||||
VTX(6, 0, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0x14),
|
||||
VTX(-6, 0, 6, 2048, 2048, 0xFF, 0xFF, 0xFF, 0x14),
|
||||
VTX(6, 0, 6, 0, 2048, 0xFF, 0xFF, 0xFF, 0x14),
|
||||
};
|
||||
Gfx D_84389AE0[] = {
|
||||
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_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2),
|
||||
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
|
||||
gsDPSetTexturePersp(G_TP_PERSP),
|
||||
gsDPSetTextureLUT(G_TT_NONE),
|
||||
gsDPSetTextureFilter(G_TF_BILERP),
|
||||
gsDPPipeSync(),
|
||||
gsSPVertex(D_84389AA0, 4, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
/*
|
||||
static Vtx D_8438A858[] = {
|
||||
VTX(1, -35, -35, 0, 0, 0x88, 0x00, 0x00, 0xFF),
|
||||
VTX(1, -50, 0, 0, 0, 0x88, 0x00, 0x00, 0xFF),
|
||||
VTX(1, 0, 0, 0, 0, 0x88, 0x00, 0x00, 0xFF),
|
||||
VTX(1, -50, 0, 0, 0, 0x1D, 0x8C, 0x00, 0xFF),
|
||||
VTX(1, -35, -35, 0, 0, 0x1D, 0xAE, 0xAE, 0xFF),
|
||||
VTX(200, 0, 0, 0, 0, 0x78, 0x00, 0x00, 0xFF),
|
||||
VTX(1, 0, -49, 0, 0, 0x88, 0x00, 0x00, 0xFF),
|
||||
VTX(1, 0, -49, 0, 0, 0x1D, 0x00, 0x8C, 0xFF),
|
||||
VTX(1, 35, -35, 0, 0, 0x88, 0x00, 0x00, 0xFF),
|
||||
VTX(1, 35, -35, 0, 0, 0x1D, 0x52, 0xAE, 0xFF),
|
||||
VTX(1, 50, 0, 0, 0, 0x88, 0x00, 0x00, 0xFF),
|
||||
VTX(1, 50, 0, 0, 0, 0x1D, 0x74, 0x00, 0xFF),
|
||||
VTX(1, 35, 35, 0, 0, 0x88, 0x00, 0x00, 0xFF),
|
||||
VTX(1, 35, 35, 0, 0, 0x1D, 0x52, 0x52, 0xFF),
|
||||
VTX(1, 0, 49, 0, 0, 0x88, 0x00, 0x00, 0xFF),
|
||||
VTX(1, 0, 49, 0, 0, 0x1D, 0x00, 0x74, 0xFF),
|
||||
VTX(1, -35, 35, 0, 0, 0x88, 0x00, 0x00, 0xFF),
|
||||
VTX(1, -35, 35, 0, 0, 0x1D, 0xAE, 0x52, 0xFF),
|
||||
};
|
||||
static u32 D_8438A978[] = {
|
||||
0x77777777,
|
||||
0x77777777,
|
||||
};
|
||||
static Gfx D_8438A980[] = {
|
||||
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_CULL_BACK |
|
||||
G_LIGHTING | G_SHADING_SMOOTH), gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON), gsDPPipeSync(),
|
||||
gsDPLoadTextureBlock_4b(D_8438A978, G_IM_FMT_I, 4, 4, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 2, 2,
|
||||
G_TX_NOLOD, G_TX_NOLOD), gsDPSetCombineMode(G_CC_BLENDIA, G_CC_BLENDIA), gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF,
|
||||
G_RM_AA_ZB_OPA_SURF2), gsDPSetPrimColor(0xFF, 0xFF, 197, 184, 122, 255), gsDPSetEnvColor(197, 184, 122, 255),
|
||||
gsSPVertex(D_8438A858, 18, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
|
||||
gsSP2Triangles(6, 0, 2, 0, 4, 7, 5, 0),
|
||||
gsSP2Triangles(8, 6, 2, 0, 7, 9, 5, 0),
|
||||
gsSP2Triangles(10, 8, 2, 0, 9, 11, 5, 0),
|
||||
gsSP2Triangles(12, 10, 2, 0, 11, 13, 5, 0),
|
||||
gsSP2Triangles(14, 12, 2, 0, 13, 15, 5, 0),
|
||||
gsSP2Triangles(16, 14, 2, 0, 15, 17, 5, 0),
|
||||
gsSP2Triangles(1, 16, 2, 0, 17, 3, 5, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
*/
|
||||
|
||||
void func_8436A410(void) {
|
||||
unk_D_843ADA80* var_v0 = &D_843ADA80[0];
|
||||
unk_D_843ADA80_040* var_a0;
|
||||
s32 i;
|
||||
s32 j;
|
||||
|
||||
for (i = 0; i < 50; i++, var_v0++) {
|
||||
var_v0->unk_000 = 0;
|
||||
var_v0->unk_004 = 0;
|
||||
var_v0->unk_006 = 0;
|
||||
|
||||
var_a0 = &var_v0->unk_040[0];
|
||||
|
||||
for (j = 0; j < 10; j++, var_a0++) {
|
||||
var_a0->unk_00 = 0;
|
||||
var_a0->unk_04 = 1.0f;
|
||||
var_a0->unk_08 = 0.0f;
|
||||
|
||||
var_a0->unk_0C.x = 0.0f;
|
||||
var_a0->unk_0C.y = 0.0f;
|
||||
var_a0->unk_0C.z = 0.0f;
|
||||
var_a0->unk_18.x = 0.0f;
|
||||
var_a0->unk_18.y = 0.0f;
|
||||
var_a0->unk_18.z = 0.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_8436A540(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_843ADA80* var_v1;
|
||||
unk_D_843ADA80_040* var_s0;
|
||||
s32 i;
|
||||
s32 j;
|
||||
Vec3f sp7C;
|
||||
Vec3f sp70;
|
||||
Vec3f sp64;
|
||||
f32 temp_fv1;
|
||||
|
||||
temp_fv1 = func_8432FCD4() * 0.5f;
|
||||
|
||||
sp7C.x = arg0;
|
||||
sp7C.y = (80.0f * temp_fv1) + arg1;
|
||||
sp7C.z = arg2;
|
||||
|
||||
sp70.x = arg3;
|
||||
sp70.y = arg4;
|
||||
sp70.z = arg5;
|
||||
|
||||
sp64.x = 0.0f;
|
||||
sp64.y = temp_fv1 * -2.0;
|
||||
sp64.z = 0.0f;
|
||||
|
||||
var_v1 = &D_843ADA80[0];
|
||||
|
||||
for (i = 0; i < 50; i++, var_v1++) {
|
||||
if (var_v1->unk_000 == 0) {
|
||||
var_v1->unk_000 = 1;
|
||||
var_v1->unk_002 = 0;
|
||||
var_v1->unk_004 = 0;
|
||||
var_v1->unk_006 = argD;
|
||||
var_v1->unk_00A.r = arg6;
|
||||
var_v1->unk_00A.g = arg7;
|
||||
var_v1->unk_00A.b = arg8;
|
||||
var_v1->unk_024 = sp7C;
|
||||
var_v1->unk_014 = argC;
|
||||
var_v1->unk_018 = argA;
|
||||
var_v1->unk_010 = temp_fv1;
|
||||
|
||||
if (arg0 > 0.0) {
|
||||
var_v1->unk_008 = -1;
|
||||
} else {
|
||||
var_v1->unk_008 = 1;
|
||||
}
|
||||
|
||||
var_s0 = var_v1->unk_040;
|
||||
for (j = 0; j < 10; j++, var_s0++) {
|
||||
var_s0->unk_00 = (arg9 * (9 - j)) / 10;
|
||||
var_s0->unk_04 = argB;
|
||||
var_s0->unk_08 = (RAND(120) * 6.2831855f) / 120.0;
|
||||
var_s0->unk_0C = sp7C;
|
||||
var_s0->unk_18 = sp70;
|
||||
var_s0->unk_24 = sp64;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_8436A808(f32 arg0, Vec3f* arg1, f32 arg2) {
|
||||
MtxF sp30;
|
||||
f32 temp_fv0 = (arg0 * 360.0) / 6.2831854820251465;
|
||||
|
||||
guRotateRPYF(sp30.mf, 90.0f, temp_fv0, temp_fv0);
|
||||
guMtxXFMF(sp30.mf, 0.0f, 0.0f, arg2, &arg1->x, &arg1->y, &arg1->z);
|
||||
}
|
||||
|
||||
void func_8436A890(unk_D_843ADA80* arg0) {
|
||||
s32 i;
|
||||
f32 temp_fs3 = arg0->unk_010;
|
||||
unk_D_843ADA80_040* var_s0 = &arg0->unk_040[0];
|
||||
|
||||
for (i = 0; i < 10; i++, var_s0++) {
|
||||
if (i == 0) {
|
||||
var_s0->unk_30 = var_s0->unk_04;
|
||||
var_s0->unk_34 = var_s0->unk_08;
|
||||
var_s0->unk_38 = var_s0->unk_0C;
|
||||
var_s0->unk_44 = var_s0->unk_18;
|
||||
|
||||
switch (arg0->unk_002) {
|
||||
case 0:
|
||||
var_s0->unk_0C.x += var_s0->unk_24.x;
|
||||
var_s0->unk_0C.y += var_s0->unk_24.y;
|
||||
var_s0->unk_0C.z += var_s0->unk_24.z;
|
||||
var_s0->unk_08 += arg0->unk_018;
|
||||
var_s0->unk_24.x += __sinf(var_s0->unk_08) * temp_fs3;
|
||||
var_s0->unk_24.z += __cosf(var_s0->unk_08) * temp_fs3;
|
||||
if (arg0->unk_004 >= 0x15) {
|
||||
arg0->unk_002 = 1;
|
||||
arg0->unk_004 = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
var_s0->unk_0C.x += var_s0->unk_18.x;
|
||||
var_s0->unk_0C.y += var_s0->unk_18.y;
|
||||
var_s0->unk_0C.z += var_s0->unk_18.z;
|
||||
var_s0->unk_08 += arg0->unk_018;
|
||||
if (arg0->unk_008 > 0) {
|
||||
var_s0->unk_18.x += 2.0;
|
||||
if (var_s0->unk_18.x > 20.0) {
|
||||
var_s0->unk_18.x = 20.0f;
|
||||
}
|
||||
} else {
|
||||
var_s0->unk_18.x -= 2.0;
|
||||
if (var_s0->unk_18.x < -20.0) {
|
||||
var_s0->unk_18.x = -20.0f;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
var_s0->unk_04 += 2.0;
|
||||
if (arg0->unk_014 < var_s0->unk_04) {
|
||||
var_s0->unk_04 = arg0->unk_014;
|
||||
}
|
||||
} else {
|
||||
var_s0->unk_30 = var_s0->unk_04;
|
||||
var_s0->unk_34 = var_s0->unk_08;
|
||||
|
||||
var_s0->unk_38 = var_s0->unk_0C;
|
||||
var_s0->unk_44 = var_s0->unk_18;
|
||||
|
||||
var_s0->unk_0C = var_s0[-1].unk_38;
|
||||
var_s0->unk_08 = var_s0[-1].unk_34;
|
||||
var_s0->unk_18 = var_s0[-1].unk_44;
|
||||
var_s0->unk_04 = var_s0[-1].unk_30;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s32 func_8436ABA8(void) {
|
||||
s32 i;
|
||||
unk_D_843ADA80* var_s0 = &D_843ADA80[0];
|
||||
|
||||
for (i = 0; i < 50; i++, var_s0++) {
|
||||
if (var_s0->unk_000 == 1) {
|
||||
var_s0->unk_004++;
|
||||
if ((var_s0->unk_002 == 1) && (var_s0->unk_006 < var_s0->unk_004)) {
|
||||
var_s0->unk_000 = 0;
|
||||
} else {
|
||||
func_8436A890(var_s0);
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Gfx* func_8436AC44(Gfx* arg0) {
|
||||
s32 i;
|
||||
s32 j;
|
||||
s32 k;
|
||||
unk_D_843ADA80_040* temp_s0;
|
||||
unk_D_843ADA80* var_s5;
|
||||
Vtx* var_s0;
|
||||
Vec3f sp184;
|
||||
UNUSED s32 pad[15];
|
||||
Mtx* temp_v0;
|
||||
Mtx sp100;
|
||||
Mtx spC0;
|
||||
f32 temp_fs1;
|
||||
s16 var_s3;
|
||||
f32 tmp;
|
||||
|
||||
gDPLoadTextureBlock(arg0++, D_843920C0[0x1E], G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP,
|
||||
G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
|
||||
|
||||
var_s5 = &D_843ADA80[0];
|
||||
for (i = 0; i < 50; i++, var_s5++) {
|
||||
if (var_s5->unk_000 == 1) {
|
||||
temp_s0 = &var_s5->unk_040[0];
|
||||
tmp = var_s5->unk_010;
|
||||
if (temp_s0->unk_0C.y > 0.0f) {
|
||||
temp_fs1 = (temp_s0->unk_08 * 360.0f) / 6.2831854820251465;
|
||||
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(&sp100, 90.0f, temp_fs1, temp_fs1);
|
||||
guMtxCatL(&sp100, temp_v0, temp_v0);
|
||||
guScale(&spC0, tmp, tmp, tmp);
|
||||
guMtxCatL(&spC0, temp_v0, temp_v0);
|
||||
|
||||
gSPMatrix(arg0++, temp_v0, G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(arg0++, D_84389AE0);
|
||||
gSPPopMatrix(arg0++, G_MTX_MODELVIEW);
|
||||
}
|
||||
|
||||
var_s5->unk_020 = func_80005F5C(0x140);
|
||||
|
||||
var_s0 = var_s5->unk_020;
|
||||
for (j = 0; j < 10; j++) {
|
||||
func_8436A808(temp_s0->unk_08, &sp184, temp_s0->unk_04 * tmp);
|
||||
|
||||
var_s3 = temp_s0->unk_0C.y + sp184.y;
|
||||
if (var_s3 < 0) {
|
||||
var_s3 = 0;
|
||||
}
|
||||
|
||||
var_s0->v.ob[0] = temp_s0->unk_0C.x + sp184.x;
|
||||
var_s0->v.ob[1] = var_s3;
|
||||
var_s0->v.ob[2] = temp_s0->unk_0C.z + sp184.z;
|
||||
var_s0->v.cn[0] = var_s5->unk_00A.r;
|
||||
var_s0->v.cn[1] = var_s5->unk_00A.g;
|
||||
var_s0->v.cn[2] = var_s5->unk_00A.b;
|
||||
var_s0->v.cn[3] = temp_s0->unk_00;
|
||||
var_s0++;
|
||||
|
||||
func_8436A808(temp_s0->unk_08 + 3.1415927f, &sp184, temp_s0->unk_04 * tmp);
|
||||
|
||||
var_s3 = temp_s0->unk_0C.y + sp184.y;
|
||||
if (var_s3 < 0) {
|
||||
var_s3 = 0;
|
||||
}
|
||||
|
||||
var_s0->v.ob[0] = temp_s0->unk_0C.x + sp184.x;
|
||||
var_s0->v.ob[1] = var_s3;
|
||||
var_s0->v.ob[2] = temp_s0->unk_0C.z + sp184.z;
|
||||
var_s0->v.cn[0] = var_s5->unk_00A.r;
|
||||
var_s0->v.cn[1] = var_s5->unk_00A.g;
|
||||
var_s0->v.cn[2] = var_s5->unk_00A.b;
|
||||
var_s0->v.cn[3] = temp_s0->unk_00;
|
||||
var_s0++;
|
||||
|
||||
temp_s0++;
|
||||
}
|
||||
|
||||
var_s0 = var_s5->unk_020;
|
||||
|
||||
gSPDisplayList(arg0++, D_84389A50);
|
||||
|
||||
for (k = 0; k < 9; k++) {
|
||||
gSPVertex(arg0++, var_s0, 4, 0);
|
||||
gSP2Triangles(arg0++, 0, 2, 1, 0, 2, 3, 1, 0);
|
||||
var_s0 += 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return arg0;
|
||||
}
|
||||
@@ -2179,6 +2179,7 @@
|
||||
- [0x352570, c, fragments/62/fragment62_352570]
|
||||
- [0x353370, c, fragments/62/fragment62_353370]
|
||||
- [0x3540B0, c, fragments/62/fragment62_3540B0]
|
||||
- [0x354CD0, c, fragments/62/fragment62_354CD0]
|
||||
- [0x355A00, c, fragments/62/fragment62_355A00]
|
||||
- [0x356730, c, fragments/62/fragment62_356730]
|
||||
- [0x357C30, c, fragments/62/fragment62_357C30]
|
||||
@@ -2209,7 +2210,9 @@
|
||||
- [0x374040, .data, fragments/62/fragment62_351F20]
|
||||
- [0x374170, .data, fragments/62/fragment62_352570]
|
||||
- [0x374270, .data, fragments/62/fragment62_353370]
|
||||
- [0x3742C0, data, fragments/62/fragment62_data]
|
||||
- [0x3742C0, .data, fragments/62/fragment62_3540B0]
|
||||
- [0x374310, .data, fragments/62/fragment62_354CD0]
|
||||
- [0x374420, data, fragments/62/fragment62_data]
|
||||
|
||||
- [0x3759C0, .rodata, fragments/62/fragment62_2EC3C0]
|
||||
- [0x375A60, .rodata, fragments/62/fragment62_2F3CB0]
|
||||
@@ -2242,8 +2245,8 @@
|
||||
- [0x378040, rodata, fragments/62/fragment62_rodata_378040]
|
||||
- [0x378070, .rodata, fragments/62/fragment62_352570]
|
||||
- [0x3780B0, .rodata, fragments/62/fragment62_353370]
|
||||
- [0x378100, rodata, fragments/62/fragment62_rodata_378100]
|
||||
- [0x378140, rodata, fragments/62/fragment62_rodata_378140]
|
||||
- [0x378100, .rodata, fragments/62/fragment62_3540B0]
|
||||
- [0x378140, .rodata, fragments/62/fragment62_354CD0]
|
||||
- [0x378170, rodata, fragments/62/fragment62_rodata_378170]
|
||||
- [0x3781A0, rodata, fragments/62/fragment62_rodata_3781A0]
|
||||
- [0x3781B0, rodata, fragments/62/fragment62_rodata_3781B0]
|
||||
@@ -2272,7 +2275,9 @@
|
||||
- {vram: 0x843A22C0, type: .bss, name: fragments/62/fragment62_3512D0}
|
||||
- {vram: 0x843AA880, type: .bss, name: fragments/62/fragment62_352570}
|
||||
- {vram: 0x843AB940, type: .bss, name: fragments/62/fragment62_353370}
|
||||
- {vram: 0x843ACA10, type: bss, name: fragments/62/fragment62_bss2}
|
||||
- {vram: 0x843ACA10, type: .bss, name: fragments/62/fragment62_3540B0}
|
||||
- {vram: 0x843ADA80, type: .bss, name: fragments/62/fragment62_354CD0}
|
||||
- {vram: 0x843B8340, type: bss, name: fragments/62/fragment62_bss2}
|
||||
|
||||
- name: fragment62_relocs
|
||||
type: code
|
||||
|
||||
Reference in New Issue
Block a user