mirror of
https://github.com/HarbourMasters/Starship
synced 2026-08-15 05:10:26 -04:00
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,38 @@
|
||||
#include "global.h"
|
||||
|
||||
void func_800846F0(FrameBuffer* arg0) {
|
||||
s32 i;
|
||||
s32 j;
|
||||
u16* var_v0;
|
||||
s32 sp60[5];
|
||||
s32 sp4C[5];
|
||||
s32 sp38[5];
|
||||
|
||||
for (i = 0; i < gSysFrameCount % SCREEN_HEIGHT; i++) {
|
||||
var_v0 = SCREEN_WIDTH * i + arg0->data;
|
||||
for (j = 0; j < gSysFrameCount % SCREEN_WIDTH; j++, var_v0++) {
|
||||
sp60[1] = RGBA16_RED(var_v0[0]);
|
||||
sp4C[1] = RGBA16_GRN(var_v0[0]);
|
||||
sp38[1] = RGBA16_BLU(var_v0[0]);
|
||||
|
||||
sp60[2] = RGBA16_RED(var_v0[1]);
|
||||
sp4C[2] = RGBA16_GRN(var_v0[1]);
|
||||
sp38[2] = RGBA16_BLU(var_v0[1]);
|
||||
|
||||
sp60[3] = RGBA16_RED(var_v0[SCREEN_WIDTH]);
|
||||
sp4C[3] = RGBA16_GRN(var_v0[SCREEN_WIDTH]);
|
||||
sp38[3] = RGBA16_BLU(var_v0[SCREEN_WIDTH]);
|
||||
|
||||
sp60[4] = RGBA16_RED(var_v0[SCREEN_WIDTH + 1]);
|
||||
sp4C[4] = RGBA16_GRN(var_v0[SCREEN_WIDTH + 1]);
|
||||
sp38[4] = RGBA16_BLU(var_v0[SCREEN_WIDTH + 1]);
|
||||
|
||||
sp60[0] = (sp60[1] + sp60[2] + sp60[3] + sp60[4]) / 4;
|
||||
sp4C[0] = (sp4C[1] + sp4C[2] + sp4C[3] + sp4C[4]) / 4;
|
||||
sp38[0] = (sp38[1] + sp38[2] + sp38[3] + sp38[4]) / 4;
|
||||
|
||||
var_v0[0] = (sp60[0] << 0xB) | (sp4C[0] << 0x6) | (sp38[0] << 0x1);
|
||||
}
|
||||
}
|
||||
osWritebackDCacheAll();
|
||||
}
|
||||
@@ -0,0 +1,631 @@
|
||||
#include "global.h"
|
||||
|
||||
f32 __dx1;
|
||||
f32 __dx2;
|
||||
f32 __dy1;
|
||||
f32 __dy2;
|
||||
f32 __dz1;
|
||||
f32 __dz2;
|
||||
f32 __vtx0_x;
|
||||
f32 __vtx0_y;
|
||||
f32 __vtx0_z;
|
||||
f32 __vtx1_x;
|
||||
f32 __vtx1_y;
|
||||
f32 __vtx1_z;
|
||||
f32 __vtx2_x;
|
||||
f32 __vtx2_y;
|
||||
f32 __vtx2_z;
|
||||
f32 __vtx3_x;
|
||||
f32 __vtx3_y;
|
||||
f32 __vtx3_z;
|
||||
f32 __pos_x;
|
||||
f32 __pos_z;
|
||||
|
||||
#define TRINORM_X(A, B, C) ((B##_y - A##_y) * (C##_z - B##_z) - (B##_z - A##_z) * (C##_y - B##_y))
|
||||
#define TRINORM_Y(A, B, C) ((B##_z - A##_z) * (C##_x - B##_x) - (B##_x - A##_x) * (C##_z - B##_z))
|
||||
#define TRINORM_Z(A, B, C) ((B##_x - A##_x) * (C##_y - B##_y) - (B##_y - A##_y) * (C##_x - B##_x))
|
||||
|
||||
// Calculate the directed plane that contains the ordered triangle tri, given as an array of Vec3s
|
||||
void func_col1_80097380(PlaneF* plane, Vec3s** tri) {
|
||||
Vec3s a;
|
||||
Vec3s b;
|
||||
Vec3s c;
|
||||
s32 new_var;
|
||||
Vec3s* tri2 = *tri;
|
||||
|
||||
a.x = (*tri)->x;
|
||||
a.y = tri2->y; // fake
|
||||
a.z = (*tri)->z;
|
||||
tri++;
|
||||
b.x = (*tri)->x;
|
||||
b.y = (*tri)->y;
|
||||
b.z = (*tri)->z;
|
||||
tri++;
|
||||
c.x = (*tri)->x;
|
||||
c.y = (*tri)->y;
|
||||
c.z = (*tri)->z;
|
||||
tri++;
|
||||
|
||||
__dx1 = b.x - a.x;
|
||||
__dx2 = c.x - b.x;
|
||||
__dy1 = b.y - a.y;
|
||||
do {
|
||||
__dy2 = c.y - b.y;
|
||||
__dz1 = b.z - a.z;
|
||||
__dz2 = c.z - b.z;
|
||||
} while (0); // wut
|
||||
|
||||
plane->normal.x = (__dy1 * __dz2) - (__dz1 * __dy2);
|
||||
plane->normal.y = (__dz1 * __dx2) - (__dx1 * __dz2);
|
||||
plane->normal.z = (__dx1 * __dy2) - (__dy1 * __dx2);
|
||||
plane->dist =
|
||||
-a.x * b.y * c.z - b.x * c.y * a.z - c.x * a.y * b.z + a.x * c.y * b.z + b.x * a.y * c.z + c.x * b.y * a.z;
|
||||
}
|
||||
|
||||
// Calculate the directed plane that contains the ordered triangle tri, given as an array of Vec3s. Duplicate of
|
||||
// previous
|
||||
void func_col1_80097558(PlaneF* plane, Vec3s** tri) {
|
||||
Vec3s a;
|
||||
Vec3s b;
|
||||
Vec3s c;
|
||||
s32 new_var;
|
||||
Vec3s* tri2 = *tri;
|
||||
|
||||
a.x = (*tri)->x;
|
||||
a.y = tri2->y; // fake
|
||||
a.z = (*tri)->z;
|
||||
tri++;
|
||||
b.x = (*tri)->x;
|
||||
b.y = (*tri)->y;
|
||||
b.z = (*tri)->z;
|
||||
tri++;
|
||||
c.x = (*tri)->x;
|
||||
c.y = (*tri)->y;
|
||||
c.z = (*tri)->z;
|
||||
tri++;
|
||||
|
||||
__dx1 = b.x - a.x;
|
||||
__dx2 = c.x - b.x;
|
||||
__dy1 = b.y - a.y;
|
||||
do {
|
||||
__dy2 = c.y - b.y;
|
||||
__dz1 = b.z - a.z;
|
||||
__dz2 = c.z - b.z;
|
||||
} while (0); // wut
|
||||
|
||||
plane->normal.x = (__dy1 * __dz2) - (__dz1 * __dy2);
|
||||
plane->normal.y = (__dz1 * __dx2) - (__dx1 * __dz2);
|
||||
plane->normal.z = (__dx1 * __dy2) - (__dy1 * __dx2);
|
||||
plane->dist =
|
||||
-a.x * b.y * c.z - b.x * c.y * a.z - c.x * a.y * b.z + a.x * c.y * b.z + b.x * a.y * c.z + c.x * b.y * a.z;
|
||||
}
|
||||
|
||||
// Calculate the normal vector of an ordered triangle, given as a Vec3f array
|
||||
void func_col1_80097730(Vec3f* norm, Vec3f* tri) {
|
||||
__vtx0_x = tri->x;
|
||||
__vtx0_y = tri->y;
|
||||
__vtx0_z = tri->z;
|
||||
tri++;
|
||||
|
||||
__vtx1_x = tri->x;
|
||||
__vtx1_y = tri->y;
|
||||
__vtx1_z = tri->z;
|
||||
tri++;
|
||||
|
||||
__vtx2_x = tri->x;
|
||||
__vtx2_y = tri->y;
|
||||
__vtx2_z = tri->z;
|
||||
|
||||
__dx1 = __vtx1_x - __vtx0_x;
|
||||
__dx2 = __vtx2_x - __vtx1_x;
|
||||
__dy1 = __vtx1_y - __vtx0_y;
|
||||
__dy2 = __vtx2_y - __vtx1_y;
|
||||
__dz1 = __vtx1_z - __vtx0_z;
|
||||
__dz2 = __vtx2_z - __vtx1_z;
|
||||
norm->x = (__dy1 * __dz2) - (__dz1 * __dy2);
|
||||
norm->y = (__dz1 * __dx2) - (__dx1 * __dz2);
|
||||
norm->z = (__dx1 * __dy2) - (__dy1 * __dx2);
|
||||
}
|
||||
|
||||
// Calculate the normal vector of an ordered triangle, given as integer coordinates
|
||||
void func_col1_800978C4(Vec3f* norm, s32 ax, s32 ay, s32 az, s32 bx, s32 by, s32 bz, s32 cx, s32 cy, s32 cz) {
|
||||
__dx1 = bx - ax;
|
||||
__dx2 = cx - bx;
|
||||
__dy1 = by - ay;
|
||||
__dy2 = cy - by;
|
||||
__dz1 = bz - az;
|
||||
__dz2 = cz - bz;
|
||||
|
||||
norm->x = (__dy1 * __dz2) - (__dz1 * __dy2);
|
||||
norm->y = (__dz1 * __dx2) - (__dx1 * __dz2);
|
||||
norm->z = (__dx1 * __dy2) - (__dy1 * __dx2);
|
||||
}
|
||||
|
||||
// Calculate the normal vector of an ordered triangle, given as vertices
|
||||
void func_col1_800979E8(Vtx_tn* tri) {
|
||||
s32 i;
|
||||
Vec3f temp;
|
||||
f32 temp_fv0;
|
||||
|
||||
tri++;
|
||||
tri--; // fake and weird
|
||||
|
||||
__vtx0_x = tri[0].ob[0];
|
||||
__vtx0_y = tri[0].ob[1];
|
||||
__vtx0_z = tri[0].ob[2];
|
||||
__vtx1_x = tri[1].ob[0];
|
||||
__vtx1_y = tri[1].ob[1];
|
||||
__vtx1_z = tri[1].ob[2];
|
||||
__vtx2_x = tri[2].ob[0];
|
||||
__vtx2_y = tri[2].ob[1];
|
||||
__vtx2_z = tri[2].ob[2];
|
||||
|
||||
__dx1 = __vtx1_x - __vtx0_x;
|
||||
__dx2 = __vtx2_x - __vtx1_x;
|
||||
__dy1 = __vtx1_y - __vtx0_y;
|
||||
__dy2 = __vtx2_y - __vtx1_y;
|
||||
__dz1 = __vtx1_z - __vtx0_z;
|
||||
__dz2 = __vtx2_z - __vtx1_z;
|
||||
|
||||
temp.x = (__dy1 * __dz2) - (__dz1 * __dy2);
|
||||
temp.y = (__dz1 * __dx2) - (__dx1 * __dz2);
|
||||
temp.z = (__dx1 * __dy2) - (__dy1 * __dx2);
|
||||
temp_fv0 = VEC3F_MAG(&temp);
|
||||
if (temp_fv0 != 0.0f) {
|
||||
temp.x = temp.x * 127.0f / temp_fv0;
|
||||
temp.y = temp.y * 127.0f / temp_fv0;
|
||||
temp.z = temp.z * 127.0f / temp_fv0;
|
||||
for (i = 0; i < 3; i++) {
|
||||
tri->n[0] = temp.x;
|
||||
tri->n[1] = temp.y;
|
||||
tri->n[2] = temp.z;
|
||||
tri++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// calculate the normal vectors of the two ordered triangles in a quad
|
||||
void func_col1_80097C88(Vec3f* norms, Vtx_tn* quad) {
|
||||
f32 temp_fv0;
|
||||
|
||||
__vtx0_x = quad[3].ob[0];
|
||||
__vtx0_y = quad[3].ob[1];
|
||||
__vtx0_z = quad[3].ob[2];
|
||||
__vtx1_x = quad->ob[0];
|
||||
__vtx1_y = quad->ob[1];
|
||||
__vtx1_z = quad->ob[2];
|
||||
quad++;
|
||||
__vtx2_x = quad->ob[0];
|
||||
__vtx2_y = quad->ob[1];
|
||||
__vtx2_z = quad->ob[2];
|
||||
|
||||
__dx1 = __vtx1_x - __vtx0_x;
|
||||
__dx2 = __vtx2_x - __vtx1_x;
|
||||
__dy1 = __vtx1_y - __vtx0_y;
|
||||
__dy2 = __vtx2_y - __vtx1_y;
|
||||
__dz1 = __vtx1_z - __vtx0_z;
|
||||
__dz2 = __vtx2_z - __vtx1_z;
|
||||
norms->x = (__dy1 * __dz2) - (__dz1 * __dy2);
|
||||
norms->y = (__dz1 * __dx2) - (__dx1 * __dz2);
|
||||
norms->z = (__dx1 * __dy2) - (__dy1 * __dx2);
|
||||
temp_fv0 = VEC3F_MAG(norms);
|
||||
if (temp_fv0 != 0.0f) {
|
||||
norms->x = (norms->x / temp_fv0) * 127.0f;
|
||||
norms->y = (norms->y / temp_fv0) * 127.0f;
|
||||
norms->z = (norms->z / temp_fv0) * 127.0f;
|
||||
}
|
||||
norms++;
|
||||
quad++;
|
||||
__vtx1_x = __vtx2_x;
|
||||
__vtx1_y = __vtx2_y;
|
||||
__vtx1_z = __vtx2_z;
|
||||
|
||||
__vtx2_x = quad->ob[0];
|
||||
__vtx2_y = quad->ob[1];
|
||||
__vtx2_z = quad->ob[2];
|
||||
__dx1 = __vtx1_x - __vtx0_x;
|
||||
__dx2 = __vtx2_x - __vtx1_x;
|
||||
__dy1 = __vtx1_y - __vtx0_y;
|
||||
__dy2 = __vtx2_y - __vtx1_y;
|
||||
__dz1 = __vtx1_z - __vtx0_z;
|
||||
__dz2 = __vtx2_z - __vtx1_z;
|
||||
norms->x = (__dy1 * __dz2) - (__dz1 * __dy2);
|
||||
norms->y = (__dz1 * __dx2) - (__dx1 * __dz2);
|
||||
norms->z = (__dx1 * __dy2) - (__dy1 * __dx2);
|
||||
temp_fv0 = VEC3F_MAG(norms);
|
||||
if (temp_fv0 != 0.0f) {
|
||||
norms->x = (norms->x / temp_fv0) * 127.0f;
|
||||
norms->y = (norms->y / temp_fv0) * 127.0f;
|
||||
norms->z = (norms->z / temp_fv0) * 127.0f;
|
||||
}
|
||||
}
|
||||
|
||||
// check if the projection of pos onto either ordered triangle of quad lies within that triangle
|
||||
// If it does and lies on the positive side, return which triangle it's within and that triangle's normal
|
||||
s32 func_col1_8009808C(Vec3f* pos, Vtx_tn* quad, Vec3f* normOut) {
|
||||
f32 temp_fv0;
|
||||
s32 var_v1 = 0;
|
||||
f32 test1;
|
||||
f32 test2;
|
||||
|
||||
__vtx0_x = quad[0].ob[0];
|
||||
__vtx0_y = quad[0].ob[1];
|
||||
__vtx0_z = quad[0].ob[2];
|
||||
__vtx1_x = quad[1].ob[0];
|
||||
__vtx1_y = quad[1].ob[1];
|
||||
__vtx1_z = quad[1].ob[2];
|
||||
__vtx2_x = quad[2].ob[0];
|
||||
__vtx2_y = quad[2].ob[1];
|
||||
__vtx2_z = quad[2].ob[2];
|
||||
__vtx3_x = quad[3].ob[0];
|
||||
__vtx3_y = quad[3].ob[1];
|
||||
__vtx3_z = quad[3].ob[2];
|
||||
__pos_x = pos->x;
|
||||
__pos_z = pos->z;
|
||||
test1 = TRINORM_Y(__vtx0, __vtx1, __pos);
|
||||
if (test1 >= 0.0f) {
|
||||
test1 = TRINORM_Y(__vtx1, __vtx2, __pos);
|
||||
if (test1 >= 0.0f) {
|
||||
test1 = TRINORM_Y(__vtx2, __vtx0, __pos);
|
||||
if (test1 >= 0.0f) {
|
||||
normOut->x = TRINORM_X(__vtx0, __vtx1, __vtx2);
|
||||
normOut->y = TRINORM_Y(__vtx0, __vtx1, __vtx2);
|
||||
normOut->z = TRINORM_Z(__vtx0, __vtx1, __vtx2);
|
||||
if ((normOut->x != 0.0f) || (normOut->y != 0.0f) || (normOut->z != 0.0f)) {
|
||||
var_v1 = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (var_v1 == 0) {
|
||||
test1 = TRINORM_Y(__vtx0, __vtx2, __pos);
|
||||
if ((test1 >= 0.0f)) {
|
||||
test1 = TRINORM_Y(__vtx2, __vtx3, __pos);
|
||||
if (test1 >= 0.0f) {
|
||||
test1 = TRINORM_Y(__vtx3, __vtx0, __pos);
|
||||
if (test1 >= 0.0f) {
|
||||
normOut->x = TRINORM_X(__vtx0, __vtx2, __vtx3);
|
||||
normOut->y = TRINORM_Y(__vtx0, __vtx2, __vtx3);
|
||||
normOut->z = TRINORM_Z(__vtx0, __vtx2, __vtx3);
|
||||
if ((normOut->x != 0.0f) || (normOut->y != 0.0f) || (normOut->z != 0.0f)) {
|
||||
var_v1 = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (var_v1 != 0) {
|
||||
temp_fv0 = VEC3F_MAG(normOut);
|
||||
if (temp_fv0 == 0) {
|
||||
return 0;
|
||||
}
|
||||
normOut->x = (normOut->x / temp_fv0) * 127.0f;
|
||||
normOut->y = (normOut->y / temp_fv0) * 127.0f;
|
||||
normOut->z = (normOut->z / temp_fv0) * 127.0f;
|
||||
}
|
||||
return var_v1;
|
||||
}
|
||||
|
||||
// check if vec lies within tri when projected to the xz-plane
|
||||
bool func_col1_800985CC(Vec3f* vec, Vtx_tn* tri) {
|
||||
f32 sp24;
|
||||
f32 sp20;
|
||||
|
||||
__pos_x = __vtx0_x = tri->ob[0];
|
||||
__pos_z = __vtx0_z = tri->ob[2];
|
||||
tri++;
|
||||
__vtx1_x = tri->ob[0];
|
||||
__vtx1_z = tri->ob[2];
|
||||
__vtx2_x = vec->x;
|
||||
__vtx2_z = vec->z;
|
||||
tri++;
|
||||
|
||||
sp24 = TRINORM_Y(__vtx0, __vtx1, __vtx2);
|
||||
|
||||
__vtx0_x = tri->ob[0];
|
||||
__vtx0_z = tri->ob[2];
|
||||
sp20 = TRINORM_Y(__vtx1, __vtx0, __vtx2);
|
||||
|
||||
if (SIGN_OF(sp24) != SIGN_OF(sp20)) {
|
||||
return false;
|
||||
}
|
||||
sp24 = TRINORM_Y(__vtx0, __pos, __vtx2);
|
||||
|
||||
if (SIGN_OF(sp24) != SIGN_OF(sp20)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// PlaneF from normal and point
|
||||
void func_col1_80098860(PlaneF* plane, Vec3f* point, Vec3f* normal) {
|
||||
plane->normal.x = normal->x;
|
||||
plane->normal.y = normal->y;
|
||||
plane->normal.z = normal->z;
|
||||
plane->dist = -normal->x * point->x - normal->y * point->y - normal->z * point->z;
|
||||
}
|
||||
|
||||
// y dist to closest point on plane
|
||||
s32 func_col1_800988B4(Vec3f* vec, PlaneF* plane) {
|
||||
return (-plane->normal.x * vec->x - plane->normal.z * vec->z - plane->dist) / plane->normal.y;
|
||||
}
|
||||
|
||||
// z dist to closest point on plane
|
||||
s32 func_col1_800988F8(Vec3f* vec, PlaneF* plane) {
|
||||
return (-plane->normal.x * vec->x - plane->normal.y * vec->y - plane->dist) / plane->normal.z;
|
||||
}
|
||||
|
||||
// x dist to closest point on plane
|
||||
s32 func_col1_8009893C(Vec3f* vec, PlaneF* plane) {
|
||||
return (-plane->normal.y * vec->y - plane->normal.z * vec->z - plane->dist) / plane->normal.x;
|
||||
}
|
||||
|
||||
#define INTSIGN_OF(x) ((((x) >= 1.0f) || ((x) <= -1.0f)) ? (f32) SIGN_OF(x) : 0.0f)
|
||||
|
||||
// checks if the projection of pos onto the plane of tri lies within tri and it is on the same side as the normal.
|
||||
bool func_col1_80098980(Vec3f* pos, Vec3s** tri, Vec3f* normal) {
|
||||
s32 normSignY;
|
||||
s32 normSignZ;
|
||||
s32 signCross;
|
||||
s32 normSignX;
|
||||
f32 cross;
|
||||
s32 var_v1;
|
||||
Vec3s* pad;
|
||||
f32 t0x;
|
||||
f32 t0y;
|
||||
f32 t0z;
|
||||
f32 t1x;
|
||||
f32 t1y;
|
||||
f32 t1z;
|
||||
f32 t2x;
|
||||
f32 t2y;
|
||||
f32 t2z;
|
||||
f32 xPos;
|
||||
f32 yPos;
|
||||
f32 zPos;
|
||||
f32 d01x;
|
||||
f32 d12x;
|
||||
f32 d20x;
|
||||
f32 d01y;
|
||||
f32 d12y;
|
||||
f32 d20y;
|
||||
f32 d01z;
|
||||
f32 d12z;
|
||||
f32 d20z;
|
||||
|
||||
var_v1 = false;
|
||||
|
||||
pad = *tri++;
|
||||
if (1) { // some sort of macro?
|
||||
t0x = pad->x;
|
||||
t0y = pad->y;
|
||||
t0z = pad->z;
|
||||
|
||||
pad = *tri++;
|
||||
|
||||
t1x = pad->x;
|
||||
t1y = pad->y;
|
||||
t1z = pad->z;
|
||||
|
||||
pad = *tri++;
|
||||
|
||||
t2x = pad->x;
|
||||
t2y = pad->y;
|
||||
t2z = pad->z;
|
||||
|
||||
xPos = pos->x;
|
||||
yPos = pos->y;
|
||||
zPos = pos->z;
|
||||
|
||||
d01x = t1x - t0x;
|
||||
d12x = t2x - t1x;
|
||||
d20x = t0x - t2x;
|
||||
d01y = t1y - t0y;
|
||||
d12y = t2y - t1y;
|
||||
d20y = t0y - t2y;
|
||||
d01z = t1z - t0z;
|
||||
d12z = t2z - t1z;
|
||||
d20z = t0z - t2z;
|
||||
|
||||
normSignX = SIGN_OF(normal->x);
|
||||
normSignY = SIGN_OF(normal->y);
|
||||
normSignZ = SIGN_OF(normal->z);
|
||||
}
|
||||
|
||||
cross = ((zPos - t1z) * d01y) - (d01z * (yPos - t1y));
|
||||
signCross = INTSIGN_OF(cross);
|
||||
if ((normSignX == 0) || (signCross == normSignX) || (signCross == 0)) {
|
||||
cross = ((zPos - t2z) * d12y) - (d12z * (yPos - t2y));
|
||||
signCross = INTSIGN_OF(cross);
|
||||
if ((normSignX == 0) || (signCross == normSignX) || (signCross == 0)) {
|
||||
cross = ((zPos - t0z) * d20y) - (d20z * (yPos - t0y));
|
||||
signCross = INTSIGN_OF(cross);
|
||||
if ((normSignX == 0) || (signCross == normSignX) || (signCross == 0)) {
|
||||
cross = ((xPos - t1x) * d01z) - (d01x * (zPos - t1z));
|
||||
signCross = INTSIGN_OF(cross);
|
||||
if ((normSignY == 0) || (signCross == normSignY) || (signCross == 0)) {
|
||||
cross = ((xPos - t2x) * d12z) - (d12x * (zPos - t2z));
|
||||
signCross = INTSIGN_OF(cross);
|
||||
if ((normSignY == 0) || (signCross == normSignY) || (signCross == 0)) {
|
||||
cross = ((xPos - t0x) * d20z) - (d20x * (zPos - t0z));
|
||||
signCross = INTSIGN_OF(cross);
|
||||
if ((normSignY == 0) || (signCross == normSignY) || (signCross == 0)) {
|
||||
cross = ((yPos - t1y) * d01x) - (d01y * (xPos - t1x));
|
||||
signCross = INTSIGN_OF(cross);
|
||||
if ((normSignZ == 0) || (signCross == normSignZ) || (signCross == 0)) {
|
||||
cross = ((yPos - t2y) * d12x) - (d12y * (xPos - t2x));
|
||||
signCross = INTSIGN_OF(cross);
|
||||
if ((normSignZ == 0) || (signCross == normSignZ) || (signCross == 0)) {
|
||||
cross = ((yPos - t0y) * d20x) - (d20y * (xPos - t0x));
|
||||
signCross = INTSIGN_OF(cross);
|
||||
if ((normSignZ == 0) || (signCross == 0) || (signCross == normSignZ)) {
|
||||
var_v1 = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return var_v1;
|
||||
}
|
||||
|
||||
bool func_80099254(Vec3f* objPos, Vec3f* colliderPos, Vec3f* objVel, CollisionHeader* colHeader, Vec3f* hitPosOut,
|
||||
f32* hitAnglesOut) {
|
||||
Vec3s* polyVtxPos[3];
|
||||
Vec3f objRel;
|
||||
s32 pad11C;
|
||||
s32 pad118;
|
||||
PlaneF polyPlane;
|
||||
f32 tempf;
|
||||
s32 didHit = false;
|
||||
s32 swapBuff;
|
||||
CollisionPoly* colPoly;
|
||||
Vec3s* mesh;
|
||||
s32 polyCount;
|
||||
f32 speed;
|
||||
s32 i;
|
||||
Vec3f hitPosRel;
|
||||
s32 padD8;
|
||||
s32 polyMinX;
|
||||
s32 polyMaxX;
|
||||
s32 polyMinY;
|
||||
s32 polyMaxY;
|
||||
s32 polyMinZ;
|
||||
s32 polyMaxZ;
|
||||
s32 objMinX;
|
||||
s32 objMaxX;
|
||||
s32 objMinY;
|
||||
s32 objMaxY;
|
||||
s32 objMinZ;
|
||||
s32 objMaxZ;
|
||||
Vec3f min;
|
||||
Vec3f max;
|
||||
|
||||
hitPosOut->x = hitPosOut->y = hitPosOut->z = hitAnglesOut[0] = hitAnglesOut[1] = 0.0f;
|
||||
objRel.x = objPos->x - colliderPos->x;
|
||||
objRel.y = objPos->y - colliderPos->y;
|
||||
objRel.z = objPos->z - colliderPos->z;
|
||||
min.x = colHeader->min.x;
|
||||
min.y = colHeader->min.y;
|
||||
min.z = colHeader->min.z;
|
||||
max.x = colHeader->max.x;
|
||||
max.y = colHeader->max.y;
|
||||
max.z = colHeader->max.z;
|
||||
|
||||
// check if object is outside the collision's bounding box
|
||||
if ((objRel.x < min.x) || (objRel.y < min.y) || (objRel.z < min.z) || (max.x < objRel.x) || (max.y < objRel.y) ||
|
||||
((max.z < objRel.z))) {
|
||||
return false;
|
||||
}
|
||||
if ((objVel->x == 0.0f) && (objVel->y == 0.0f) && (objVel->z == 0.0f)) {
|
||||
objVel->y = -5.0f;
|
||||
}
|
||||
|
||||
// find the bounding box of the object's movement from the last frame to this one.
|
||||
objMinX = objRel.x;
|
||||
objMinY = objRel.y;
|
||||
objMinZ = objRel.z;
|
||||
objMaxX = objRel.x - objVel->x;
|
||||
objMaxY = objRel.y - objVel->y;
|
||||
objMaxZ = objRel.z - objVel->z;
|
||||
|
||||
if (objMaxX < objMinX) {
|
||||
swapBuff = objMaxX;
|
||||
objMaxX = objMinX;
|
||||
objMinX = swapBuff;
|
||||
}
|
||||
if (objMaxY < objMinY) {
|
||||
swapBuff = objMaxY;
|
||||
objMaxY = objMinY;
|
||||
objMinY = swapBuff;
|
||||
}
|
||||
|
||||
if (objMaxZ < objMinZ) {
|
||||
swapBuff = objMaxZ;
|
||||
objMaxZ = objMinZ;
|
||||
objMinZ = swapBuff;
|
||||
}
|
||||
|
||||
colPoly = SEGMENTED_TO_VIRTUAL(colHeader->polys);
|
||||
mesh = SEGMENTED_TO_VIRTUAL(colHeader->mesh);
|
||||
polyCount = colHeader->polyCount;
|
||||
speed = VEC3F_MAG(objVel);
|
||||
|
||||
for (i = 0; i < polyCount; i++, colPoly++) {
|
||||
polyVtxPos[0] = &mesh[colPoly->tri.vtx[0]];
|
||||
polyVtxPos[1] = &mesh[colPoly->tri.vtx[1]];
|
||||
polyVtxPos[2] = &mesh[colPoly->tri.vtx[2]];
|
||||
Math_MinMax(&polyMinX, &polyMaxX, polyVtxPos[0]->x, polyVtxPos[1]->x, polyVtxPos[2]->x);
|
||||
Math_MinMax(&polyMinY, &polyMaxY, polyVtxPos[0]->y, polyVtxPos[1]->y, polyVtxPos[2]->y);
|
||||
Math_MinMax(&polyMinZ, &polyMaxZ, polyVtxPos[0]->z, polyVtxPos[1]->z, polyVtxPos[2]->z);
|
||||
|
||||
// check if bounding boxes of the object's movement and the collision polygon overlap
|
||||
if ((objMinX < polyMaxX) && (objMaxX > polyMinX) && (objMinY < polyMaxY) && (objMaxY > polyMinY) &&
|
||||
(objMinZ < polyMaxZ) && (objMaxZ > polyMinZ)) {
|
||||
polyPlane.normal.x = colPoly->plane.normal.x;
|
||||
polyPlane.normal.y = colPoly->plane.normal.y;
|
||||
polyPlane.normal.z = colPoly->plane.normal.z;
|
||||
polyPlane.dist = colPoly->plane.dist;
|
||||
|
||||
// check if object is on the "back" side of the polygon
|
||||
if ((DOT_XYZ(&polyPlane.normal, &objRel) + polyPlane.dist) <= 0.0f) {
|
||||
|
||||
// calculate the normal component of velocity
|
||||
tempf = DOT_XYZ(&polyPlane.normal, objVel);
|
||||
|
||||
// check if the angle between the normal and velocity is > 90. That is, the object was moving toward the
|
||||
// front of the polygon
|
||||
if (Math_FAcosF(tempf / (VEC3F_MAG(&polyPlane.normal) * speed)) > DEG_TO_RAD(90.0f)) {
|
||||
// Calculate the time since the plane was crossed. Reusing the temp is required to match
|
||||
tempf = (DOT_XYZ(&polyPlane.normal, &objRel) + polyPlane.dist) / tempf;
|
||||
|
||||
// find the point where the object crossed the plane of the polygon
|
||||
hitPosRel.x = objRel.x - (objVel->x * tempf);
|
||||
hitPosRel.y = objRel.y - (objVel->y * tempf);
|
||||
hitPosRel.z = objRel.z - (objVel->z * tempf);
|
||||
|
||||
// check if that point is within the polygon
|
||||
if (func_col1_80098980(&hitPosRel, polyVtxPos, &polyPlane.normal) == true) {
|
||||
hitPosOut->x = colliderPos->x + hitPosRel.x;
|
||||
hitPosOut->y = colliderPos->y + hitPosRel.y;
|
||||
hitPosOut->z = colliderPos->z + hitPosRel.z;
|
||||
if (polyPlane.normal.x != 0.0) {
|
||||
polyPlane.normal.x = -polyPlane.dist / polyPlane.normal.x;
|
||||
}
|
||||
if (polyPlane.normal.y != 0.0f) {
|
||||
polyPlane.normal.y = -polyPlane.dist / polyPlane.normal.y;
|
||||
}
|
||||
if (polyPlane.normal.z != 0.0f) {
|
||||
polyPlane.normal.z = -polyPlane.dist / polyPlane.normal.z;
|
||||
}
|
||||
hitAnglesOut[0] = Math_Atan2F_XY(polyPlane.normal.y, polyPlane.normal.z);
|
||||
if (polyPlane.normal.z != 0.0f) {
|
||||
hitAnglesOut[1] = -Math_Atan2F_XY(
|
||||
__sinf(Math_Atan2F_XY(polyPlane.normal.y, polyPlane.normal.z)) * polyPlane.normal.z,
|
||||
polyPlane.normal.x);
|
||||
} else if (hitAnglesOut[0] >= M_PI) {
|
||||
hitAnglesOut[1] = Math_Atan2F_XY(polyPlane.normal.y, polyPlane.normal.x);
|
||||
} else {
|
||||
hitAnglesOut[1] = -Math_Atan2F_XY(polyPlane.normal.y, polyPlane.normal.x);
|
||||
}
|
||||
|
||||
didHit = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return didHit;
|
||||
}
|
||||
|
||||
bool func_col1_800998FC(Vec3f* objPos, Vec3f* colliderPos, Vec3f* objVel, s32 colId, Vec3f* hitPosOut,
|
||||
f32* hitAnglesOut) {
|
||||
return func_80099254(objPos, colliderPos, objVel, SEGMENTED_TO_VIRTUAL(&D_800D2B38[colId]), hitPosOut,
|
||||
hitAnglesOut);
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
#include "global.h"
|
||||
|
||||
#include "fox_A4290_colheaders.c"
|
||||
|
||||
bool func_col2_800A36FC(Vec3f* objPos, Vec3f* colliderPos, CollisionHeader2* colHeader, Vec3f* hitDataOut);
|
||||
bool func_col2_800A3A74(Vec3f* point, Vec3f** tri, Vec3f* normOut);
|
||||
|
||||
bool func_col2_800A3690(Vec3f* objPos, Vec3f* colliderPos, s32 colId, Vec3f* hitDataOut) {
|
||||
return func_col2_800A36FC(objPos, colliderPos, SEGMENTED_TO_VIRTUAL(&D_800D2CA0[colId]), hitDataOut);
|
||||
}
|
||||
|
||||
bool func_col2_800A36FC(Vec3f* objPos, Vec3f* colliderPos, CollisionHeader2* colHeader, Vec3f* hitDataOut) {
|
||||
Vec3f objRelPos;
|
||||
PlaneF triPlane;
|
||||
bool above;
|
||||
s32 i;
|
||||
s32 j;
|
||||
Vec3f* tri[3];
|
||||
Vec3f norm;
|
||||
Vec3f vtx;
|
||||
s32 sp38 = false;
|
||||
s32 count;
|
||||
Triangle* polys;
|
||||
Vec3f* mesh;
|
||||
|
||||
objRelPos.x = objPos->x - colliderPos->x;
|
||||
objRelPos.y = objPos->y - colliderPos->y;
|
||||
objRelPos.z = objPos->z - colliderPos->z;
|
||||
if ((objRelPos.x < colHeader->min.x) || (objRelPos.y < colHeader->min.y) || (objRelPos.z < colHeader->min.z) ||
|
||||
(colHeader->max.x < objRelPos.x) || (colHeader->max.y < objRelPos.y) || (colHeader->max.z < objRelPos.z)) {
|
||||
return false;
|
||||
}
|
||||
above = false;
|
||||
count = colHeader->polyCount;
|
||||
polys = SEGMENTED_TO_VIRTUAL(colHeader->polys);
|
||||
mesh = SEGMENTED_TO_VIRTUAL(colHeader->mesh);
|
||||
for (i = 0; i < count; i++, polys++) {
|
||||
for (j = 0; j < 3; j++) {
|
||||
tri[j] = &mesh[polys->vtx[j]];
|
||||
}
|
||||
above = func_col2_800A3A74(&objRelPos, tri, &norm);
|
||||
if (above) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (above) {
|
||||
vtx.x = tri[0]->x;
|
||||
vtx.y = tri[0]->y;
|
||||
vtx.z = tri[0]->z;
|
||||
func_col1_80098860(&triPlane, &vtx, &norm);
|
||||
hitDataOut->y = func_col1_800988B4(&objRelPos, &triPlane);
|
||||
if (triPlane.normal.x != 0.0f) {
|
||||
norm.x = -triPlane.dist / triPlane.normal.x;
|
||||
} else {
|
||||
norm.x = 0.0f;
|
||||
}
|
||||
if (triPlane.normal.y != 0.0f) {
|
||||
norm.y = -triPlane.dist / triPlane.normal.y;
|
||||
} else {
|
||||
norm.y = 0.0f;
|
||||
}
|
||||
if (triPlane.normal.z != 0.0f) {
|
||||
norm.z = -triPlane.dist / triPlane.normal.z;
|
||||
} else {
|
||||
norm.z = 0.0f;
|
||||
}
|
||||
hitDataOut->x = Math_Atan2F_XY(norm.y, norm.z);
|
||||
if (norm.z != 0.0f) {
|
||||
hitDataOut->z = -Math_Atan2F_XY(__sinf(Math_Atan2F_XY(norm.y, norm.z)) * norm.z, norm.x);
|
||||
} else if (hitDataOut->x >= M_PI) {
|
||||
hitDataOut->z = Math_Atan2F_XY(norm.y, norm.x);
|
||||
} else {
|
||||
hitDataOut->z = -Math_Atan2F_XY(norm.y, norm.x);
|
||||
}
|
||||
if ((objPos->y - hitDataOut->y <= 0.0f) || (gCurrentLevel == LEVEL_MACBETH)) {
|
||||
sp38 = true;
|
||||
}
|
||||
}
|
||||
return sp38;
|
||||
}
|
||||
|
||||
// Checks if point is above the triangle tri. If so, puts the triangle normal in normOut
|
||||
bool func_col2_800A3A74(Vec3f* point, Vec3f** tri, Vec3f* normOut) {
|
||||
s32 pad;
|
||||
f32 temp1;
|
||||
bool ret = false;
|
||||
f32 temp_fv0;
|
||||
Vec3f vtx1;
|
||||
Vec3f vtx2;
|
||||
Vec3f vtx3;
|
||||
f32 ptx;
|
||||
f32 ptz;
|
||||
|
||||
vtx1.x = (*tri)->x;
|
||||
vtx1.y = (*tri)->y;
|
||||
vtx1.z = (*tri)->z;
|
||||
tri++;
|
||||
vtx2.x = (*tri)->x;
|
||||
vtx2.y = (*tri)->y;
|
||||
vtx2.z = (*tri)->z;
|
||||
tri++;
|
||||
vtx3.x = (*tri)->x;
|
||||
vtx3.y = (*tri)->y;
|
||||
vtx3.z = (*tri)->z;
|
||||
tri++;
|
||||
|
||||
ptx = point->x;
|
||||
ptz = point->z;
|
||||
temp1 = ((vtx2.z - vtx1.z) * (ptx - vtx2.x)) - ((vtx2.x - vtx1.x) * (ptz - vtx2.z));
|
||||
if (temp1 >= 0.0f) {
|
||||
if (((vtx3.x - vtx2.x) * (ptz - vtx3.z)) <= ((vtx3.z - vtx2.z) * (ptx - vtx3.x))) {
|
||||
if (((vtx1.x - vtx3.x) * (ptz - vtx1.z)) <= ((vtx1.z - vtx3.z) * (ptx - vtx1.x))) {
|
||||
ret = true;
|
||||
normOut->x = ((vtx2.y - vtx1.y) * (vtx3.z - vtx2.z)) - ((vtx2.z - vtx1.z) * (vtx3.y - vtx2.y));
|
||||
normOut->y = ((vtx2.z - vtx1.z) * (vtx3.x - vtx2.x)) - ((vtx2.x - vtx1.x) * (vtx3.z - vtx2.z));
|
||||
normOut->z = ((vtx2.x - vtx1.x) * (vtx3.y - vtx2.y)) - ((vtx2.y - vtx1.y) * (vtx3.x - vtx2.x));
|
||||
if ((normOut->x != 0.0f) || (normOut->y != 0.0f) || (normOut->z != 0.0f)) {
|
||||
temp_fv0 = VEC3F_MAG(normOut);
|
||||
if (temp_fv0 != 0) {
|
||||
normOut->x = (normOut->x / temp_fv0) * 127.0f;
|
||||
normOut->y = (normOut->y / temp_fv0) * 127.0f;
|
||||
normOut->z = (normOut->z / temp_fv0) * 127.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@@ -0,0 +1,245 @@
|
||||
#include "structs.h"
|
||||
#include "macros.h"
|
||||
#include "variables.h"
|
||||
#include "assets/ast_aquas.h"
|
||||
#include "assets/ast_bolse.h"
|
||||
#include "assets/ast_meteo.h"
|
||||
#include "assets/ast_corneria.h"
|
||||
#include "assets/ast_macbeth.h"
|
||||
#include "assets/ast_venom_2.h"
|
||||
#include "assets/ast_fortuna.h"
|
||||
#include "assets/ast_sector_y.h"
|
||||
#include "assets/ast_sector_z.h"
|
||||
#include "assets/ast_versus.h"
|
||||
#include "assets/ast_zoness.h"
|
||||
|
||||
static Vec3f D_800D2920[16] = {
|
||||
{ 1075.0f, 0.0f, 0.0f }, { 746.0f, 0.0f, -746.0f }, { 202.0f, 361.0f, -202.0f }, { 0.0f, 0.0f, -1075.0f },
|
||||
{ 291.0f, 558.0f, 0.0f }, { 0.0f, 354.0f, -291.0f }, { 202.0f, 594.0f, 202.0f }, { 772.0f, 0.0f, 622.0f },
|
||||
{ 0.0f, 473.0f, 291.0f }, { 144.0f, 0.0f, 1075.0f }, { -202.0f, 461.0f, 202.0f }, { -515.0f, 0.0f, 746.0f },
|
||||
{ -291.0f, 453.0f, 0.0f }, { -372.0f, 390.0f, -281.0f }, { -951.0f, 0.0f, 0.0f }, { -746.0f, 0.0f, -746.0f },
|
||||
};
|
||||
static Triangle D_800D29E0[22] = {
|
||||
{ 0, 1, 2 }, { 2, 1, 3 }, { 4, 2, 5 }, { 3, 5, 2 }, { 2, 4, 0 }, { 4, 6, 7 },
|
||||
{ 7, 0, 4 }, { 6, 4, 5 }, { 7, 6, 8 }, { 8, 9, 7 }, { 8, 10, 11 }, { 10, 8, 6 },
|
||||
{ 11, 9, 8 }, { 12, 10, 6 }, { 6, 13, 12 }, { 14, 12, 13 }, { 10, 12, 14 }, { 14, 11, 10 },
|
||||
{ 5, 13, 6 }, { 5, 3, 15 }, { 15, 13, 5 }, { 13, 15, 14 },
|
||||
};
|
||||
static Triangle D_800D2A64[13] = {
|
||||
{ 0, 1, 2 }, { 2, 3, 4 }, { 2, 5, 0 }, { 4, 5, 2 }, { 4, 3, 6 }, { 4, 7, 5 }, { 8, 7, 4 },
|
||||
{ 4, 6, 8 }, { 7, 8, 9 }, { 0, 7, 9 }, { 5, 7, 0 }, { 9, 10, 0 }, { 10, 1, 0 },
|
||||
};
|
||||
static Vec3f D_800D2AB4[11] = {
|
||||
{ -218.0f, 131.0f, 0.0f }, { -435.0f, 0.0f, 0.0f }, { -336.0f, 0.0f, 218.0f }, { 0.0f, 0.0f, 435.0f },
|
||||
{ 0.0f, 160.0f, 218.0f }, { -168.0f, 131.0f, 109.0f }, { 336.0f, 0.0f, 218.0f }, { 0.0f, 174.0f, 0.0f },
|
||||
{ 435.0f, 0.0f, -204.0f }, { 0.0f, 0.0f, -435.0f }, { -318.0f, 0.0f, -218.0f },
|
||||
};
|
||||
|
||||
CollisionHeader D_800D2B38[10] = {
|
||||
{
|
||||
{ -1128.0f, -1835.0f, -1202.0f },
|
||||
{ 997.0f, 139.0f, 1360.0f },
|
||||
79,
|
||||
D_ME_602FA9C,
|
||||
D_ME_60300C8,
|
||||
},
|
||||
{
|
||||
{ -3006.0f, -2274.0f, -4530.0f },
|
||||
{ 3015.0f, 3348.0f, 5246.0f },
|
||||
236,
|
||||
D_ME_60305DC,
|
||||
D_ME_603184C,
|
||||
},
|
||||
{
|
||||
{ -152.0f, -200.0f, -152.0f },
|
||||
{ 165.0f, 204.0f, 181.0f },
|
||||
42,
|
||||
D_ME_6030208,
|
||||
D_ME_6030550,
|
||||
},
|
||||
{
|
||||
{ -1704.0f, -1006.0f, -4751.0f },
|
||||
{ 1704.0f, 1030.0f, 4842.0f },
|
||||
174,
|
||||
D_SY_6033070,
|
||||
D_SY_6033E08,
|
||||
},
|
||||
{
|
||||
{ -1308.0f, 0.0f, -1460.0f },
|
||||
{ 1310.0f, 666.0f, 807.0f },
|
||||
93,
|
||||
D_FO_600F60C,
|
||||
D_FO_600FD50,
|
||||
},
|
||||
{
|
||||
{ -951.0f, 0.0f, -1075.0f },
|
||||
{ 1075.0f, 1014.0f, 1075.0f },
|
||||
22,
|
||||
D_FO_600F3F4,
|
||||
D_FO_600F5AC,
|
||||
},
|
||||
{
|
||||
{ -951.0f, 0.0f, -1075.0f },
|
||||
{ 1075.0f, 384.0f, 1075.0f },
|
||||
22,
|
||||
D_FO_600F1DC,
|
||||
D_FO_600F394,
|
||||
},
|
||||
{
|
||||
{ -1554.0f, -2.0f, -1401.0f },
|
||||
{ 1554.0f, 590.0f, 1401.0f },
|
||||
262,
|
||||
D_BO_6010294,
|
||||
D_BO_601170C,
|
||||
},
|
||||
{
|
||||
{ -1386.0f, -696.0f, -2274.0f },
|
||||
{ 1386.0f, 1033.0f, 1833.0f },
|
||||
316,
|
||||
D_SZ_6007558,
|
||||
D_SZ_6008E08,
|
||||
},
|
||||
{
|
||||
{ -671.0f, 0.0f, -671.0f },
|
||||
{ 671.0f, 648.0f, 671.0f },
|
||||
250,
|
||||
D_VE2_6014FEC,
|
||||
D_VE2_6016374,
|
||||
},
|
||||
};
|
||||
|
||||
CollisionHeader2 D_800D2CA0[19] = {
|
||||
{
|
||||
{ -951.0f, 0.0f, -1075.0f },
|
||||
{ 1075.0f, 594.0f, 1075.0f },
|
||||
ARRAY_COUNT(D_800D29E0),
|
||||
D_800D29E0,
|
||||
D_800D2920,
|
||||
},
|
||||
{
|
||||
{ -1220.0f, 0.0f, -1315.0f },
|
||||
{ 1403.0f, 174.0f, 1308.0f },
|
||||
13,
|
||||
D_CO_603F338,
|
||||
D_CO_603F388,
|
||||
},
|
||||
{
|
||||
{ -1311.0f, 0.0f, -1120.0f },
|
||||
{ 1266.0f, 1465.0f, 1266.0f },
|
||||
36,
|
||||
D_CO_603F40C,
|
||||
D_CO_603F4E4,
|
||||
},
|
||||
{
|
||||
{ -435.0f, -10.0f, -435.0f },
|
||||
{ 435.0f, 174.0f, 435.0f },
|
||||
ARRAY_COUNT(D_800D2A64),
|
||||
D_800D2A64,
|
||||
D_800D2AB4,
|
||||
},
|
||||
{
|
||||
{ -498.0f, -10.0f, -498.0f },
|
||||
{ 498.0f, 705.0f, 498.0f },
|
||||
4,
|
||||
D_versus_302EEE8,
|
||||
D_versus_302EF00,
|
||||
},
|
||||
{
|
||||
{ -1494.0f, -30.0f, -1494.0f },
|
||||
{ 1494.0f, 2115.0f, 1494.0f },
|
||||
4,
|
||||
D_versus_302EF6C,
|
||||
D_versus_302EF84,
|
||||
},
|
||||
{
|
||||
{ -623.0f, -10.0f, -623.0f },
|
||||
{ 623.0f, 200.0f, 623.0f },
|
||||
4,
|
||||
D_versus_302EFF0,
|
||||
D_versus_302F008,
|
||||
},
|
||||
{
|
||||
{ -488.0f, 0.0f, -568.0f },
|
||||
{ 488.0f, 148.0f, 567.0f },
|
||||
30,
|
||||
D_ZO_602CACC,
|
||||
D_ZO_602CB80,
|
||||
},
|
||||
{
|
||||
{ -900.0f, -110.0f, -1900.0f },
|
||||
{ 900.0f, 190.0f, 100.0f },
|
||||
2,
|
||||
D_MA_6030E74,
|
||||
D_MA_6030E80,
|
||||
},
|
||||
{
|
||||
{ -900.0f, -100.0f, -1000.0f },
|
||||
{ 900.0f, 250.0f, 100.0f },
|
||||
2,
|
||||
D_MA_6030EB0,
|
||||
D_MA_6030EBC,
|
||||
},
|
||||
{
|
||||
{ -900.0f, -190.0f, -1900.0f },
|
||||
{ 900.0f, 100.0f, 100.0f },
|
||||
2,
|
||||
D_MA_6030EEC,
|
||||
D_MA_6030EF8,
|
||||
},
|
||||
{
|
||||
{ -500.0f, -250.0f, -1010.0f },
|
||||
{ 500.0f, 100.0f, 100.0f },
|
||||
2,
|
||||
D_MA_6030F28,
|
||||
D_MA_6030F34,
|
||||
},
|
||||
{
|
||||
{ -1200.0f, 0.0f, -1800.0f },
|
||||
{ 0.0f, 900.0f, 1500.0f },
|
||||
4,
|
||||
D_MA_6030F64,
|
||||
D_MA_6030F7C,
|
||||
},
|
||||
{
|
||||
{ -400.0f, 0.0f, -900.0f },
|
||||
{ 400.0f, 0.0f, 0.0f },
|
||||
2,
|
||||
D_MA_6030FC4,
|
||||
D_MA_6030FD0,
|
||||
},
|
||||
{
|
||||
{ -74.0f, 0.0f, -84.0f },
|
||||
{ 74.0f, 125.0f, 84.0f },
|
||||
30,
|
||||
D_AQ_60320B8,
|
||||
D_AQ_603216C,
|
||||
},
|
||||
{
|
||||
{ -1200.0f, 0.0f, -1315.0f },
|
||||
{ 1403.0f, 200.0f, 1308.0f },
|
||||
8,
|
||||
D_AQ_6031FB0,
|
||||
D_AQ_6031FE0,
|
||||
},
|
||||
{
|
||||
{ -600.0f, 0.0f, -657.0f },
|
||||
{ 701.0f, 100.0f, 654.0f },
|
||||
8,
|
||||
D_AQ_6031FB0,
|
||||
D_AQ_603204C,
|
||||
},
|
||||
{
|
||||
{ -2965.0f, -16.0f, -2965.0f },
|
||||
{ 2965.0f, 544.0f, 2965.0f },
|
||||
14,
|
||||
D_versus_302F044,
|
||||
D_versus_302F098,
|
||||
},
|
||||
{
|
||||
{ -814.0f, 0.0f, -691.0f },
|
||||
{ 814.0f, 752.0f, 691.0f },
|
||||
28,
|
||||
D_AQ_6032388,
|
||||
D_AQ_6032430,
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,46 @@
|
||||
#include "global.h"
|
||||
|
||||
void func_800A3CA0(void) {
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Matrix_LookAt(gGfxMatrix, gCsCamEyeX, gCsCamEyeY, gCsCamEyeZ, gCsCamAtX, gCsCamAtY, gCsCamAtZ, 0.0f, 1.0f, 0.0f, 1);
|
||||
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -200.0f, 1);
|
||||
Matrix_RotateY(gGfxMatrix, gControllerPress[gPlayerNum].stick_x * M_DTOR, 1);
|
||||
Matrix_RotateX(gGfxMatrix, gControllerPress[gPlayerNum].stick_y * M_DTOR, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
RCP_SetupDL_23();
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
}
|
||||
|
||||
void func_800A3E00(void) {
|
||||
switch (D_ctx_80177868) {
|
||||
case 0:
|
||||
if (D_Timer_8017783C == 0) {
|
||||
D_ctx_80177868 = 1;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
D_ctx_80177868 = 2;
|
||||
gDrawMode = DRAWMODE_7;
|
||||
gCsCamAtY = 0.0f;
|
||||
gCsCamAtX = gCsCamAtY;
|
||||
gCsCamEyeZ = gCsCamAtX;
|
||||
gCsCamEyeY = gCsCamEyeZ;
|
||||
gCsCamEyeX = gCsCamEyeY;
|
||||
gCsCamAtZ = -10.0f;
|
||||
break;
|
||||
case 2:
|
||||
if ((gControllerPress[0].button & START_BUTTON) || (gControllerPress[1].button & START_BUTTON)) {
|
||||
func_8001D638(0);
|
||||
D_ctx_80177868 = 3;
|
||||
gDrawMode = DRAWMODE_0;
|
||||
func_play_800A5844();
|
||||
D_Timer_8017783C = 0;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (D_Timer_8017783C == 0) {
|
||||
D_ctx_80177854 = 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
+1145
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,117 @@
|
||||
#include "global.h"
|
||||
|
||||
s32 gBossFrameCount;
|
||||
|
||||
s32 D_boss_800C9E90[28] = {
|
||||
0x8012, 0x8013, 0x8015, 0x8017, 0x8017, 0x8019, 0x8018, 0x801B, 0x8016, 0x8018, 0x8012, 0x8020, 0x8014, 0x801E,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
};
|
||||
|
||||
const f32 D_boss_800D55D0[] = { 6000.0f, 18000.0f, -6000.0f, -18000.0f };
|
||||
|
||||
void func_boss_80042EC0(Boss* boss) {
|
||||
s32 bonus;
|
||||
f32 yOffset;
|
||||
|
||||
if (gBossFrameCount < 3840) {
|
||||
bonus = 10;
|
||||
} else if (gBossFrameCount < 5760) {
|
||||
bonus = 5;
|
||||
} else if (gBossFrameCount < 7680) {
|
||||
bonus = 2;
|
||||
} else if (gBossFrameCount < 9600) {
|
||||
bonus = 1;
|
||||
} else {
|
||||
bonus = 0;
|
||||
}
|
||||
if (bonus != 0) {
|
||||
yOffset = 0.0f;
|
||||
if (boss->obj.id == OBJ_BOSS_292) {
|
||||
yOffset = 300.0f;
|
||||
} else if (boss->obj.id == OBJ_BOSS_306) {
|
||||
yOffset = 200.0f;
|
||||
}
|
||||
BonusText_Display(boss->obj.pos.x, boss->obj.pos.y + yOffset, boss->obj.pos.z, bonus);
|
||||
}
|
||||
gHitCount += bonus + 1;
|
||||
D_ctx_80177850 = 15;
|
||||
}
|
||||
|
||||
void func_boss_80042FAC(Boss* boss) {
|
||||
}
|
||||
|
||||
void func_boss_80042FB8(Boss* boss) {
|
||||
}
|
||||
|
||||
void func_boss_80042FC4(Boss* boss) {
|
||||
}
|
||||
|
||||
void func_boss_80042FD0(Boss* boss) {
|
||||
}
|
||||
|
||||
void func_boss_80042FDC(Boss* boss) {
|
||||
}
|
||||
|
||||
void func_boss_80042FE8(Boss* boss) {
|
||||
}
|
||||
|
||||
void func_boss_80042FF4(Actor* actor, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8,
|
||||
f32 arg9, f32 argA, s32 argB, s32 argC) {
|
||||
Actor_Initialize(actor);
|
||||
actor->obj.status = OBJ_INIT;
|
||||
actor->obj.id = OBJ_ACTOR_189;
|
||||
actor->state = argB;
|
||||
actor->obj.pos.x = arg1;
|
||||
actor->obj.pos.y = arg2;
|
||||
actor->obj.pos.z = arg3;
|
||||
actor->obj.rot.x = arg4;
|
||||
actor->obj.rot.y = arg5;
|
||||
actor->obj.rot.z = arg6;
|
||||
actor->vel.x = arg7;
|
||||
actor->vel.y = arg8;
|
||||
actor->vel.z = arg9;
|
||||
actor->scale = argA;
|
||||
actor->timer_0BC = argC;
|
||||
actor->timer_0BE = 20;
|
||||
Object_SetInfo(&actor->info, actor->obj.id);
|
||||
if (gLevelType == LEVELTYPE_PLANET) {
|
||||
actor->gravity = 0.5f;
|
||||
}
|
||||
}
|
||||
|
||||
void func_boss_800430DC(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8,
|
||||
f32 arg9, s32 argA, s32 argB) {
|
||||
s32 i;
|
||||
|
||||
for (i = 59; i >= 0; i--) {
|
||||
if (gActors[i].obj.status == OBJ_FREE) {
|
||||
func_boss_80042FF4(&gActors[i], arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, argA, argB);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_boss_80043188(Boss* boss) {
|
||||
boss->info.unk_10 = 30000.0f;
|
||||
}
|
||||
|
||||
void func_boss_8004319C(Player* player, f32 arg1, f32 arg2, f32 arg3) {
|
||||
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM, 80);
|
||||
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 80);
|
||||
|
||||
gCsFrameCount = 0;
|
||||
D_ctx_80178448 = arg3 + D_ctx_80177D20;
|
||||
D_ctx_80178440 = arg1;
|
||||
D_ctx_80178444 = arg2;
|
||||
|
||||
player->state_1C8 = PLAYERSTATE_1C8_7;
|
||||
player->unk_1D0 = 10;
|
||||
player->timer_1F8 = 50;
|
||||
player->timer_1FC = 50;
|
||||
player->unk_000 = 0.0f;
|
||||
player->unk_004 = 1.0f;
|
||||
if (player->pos.x < player->unk_0AC) {
|
||||
player->unk_004 = -1.0f;
|
||||
}
|
||||
gPlayer[0].vel.x = 0.0f;
|
||||
}
|
||||
@@ -0,0 +1,368 @@
|
||||
#include "prevent_context_reordering.h"
|
||||
#include "sys.h"
|
||||
#include "sf64level.h"
|
||||
#include "sf64object.h"
|
||||
#include "sf64player.h"
|
||||
|
||||
s32 gOverlaySetup;
|
||||
s32 gOverlayStage;
|
||||
s32 D_ctx_80177824; // some sort of flag
|
||||
s32 D_ctx_8017782C; // some sort of flag. all range related?
|
||||
GameState gGameState;
|
||||
s32 D_Timer_8017783C; // next game state timer?
|
||||
s32 D_ctx_80177844; // timer for vs item spawn
|
||||
OptionState gOptionMenuStatus;
|
||||
s32 D_ctx_80177854; // pause-related state
|
||||
s32 D_ctx_80177868; // some sort of state. pause-related?
|
||||
LevelMode gLevelMode;
|
||||
DrawMode gDrawMode;
|
||||
s32 gPlayerNum;
|
||||
s32 gCamCount;
|
||||
s32 gTeamShields[6];
|
||||
s32 gSavedTeamShields[6];
|
||||
UNK_TYPE D_ctx_801778F0[6];
|
||||
s32 gTeamDamage[6];
|
||||
u8 D_ctx_80177930; // next planet path
|
||||
f32 gGroundLevel;
|
||||
f32 D_ctx_80177950;
|
||||
f32 D_ctx_80177968;
|
||||
f32 D_ctx_80177970;
|
||||
f32 gCsCamEyeX;
|
||||
f32 gCsCamEyeY;
|
||||
f32 gCsCamEyeZ;
|
||||
f32 gCsCamAtX;
|
||||
f32 gCsCamAtY;
|
||||
f32 gCsCamAtZ;
|
||||
Vec3f D_ctx_801779D8;
|
||||
Vec3f D_ctx_801779E8;
|
||||
bool gExpertMode;
|
||||
s32 D_ctx_80177A10[10];
|
||||
f32 D_ctx_80177A48[10];
|
||||
s32 gCsFrameCount;
|
||||
u8 D_ctx_80177A98;
|
||||
u8 D_ctx_80177AB0;
|
||||
u8 D_ctx_80177AC8;
|
||||
s32 D_ctx_80177AE0;
|
||||
s32 gMainController;
|
||||
s32 D_ctx_80177B40;
|
||||
s32 gCurrentPlanet; // D_ctx_80177B48 // Arrow pointer?
|
||||
s32 D_ctx_80177B50[7];
|
||||
s32 D_ctx_80177B70[7];
|
||||
PlanetId D_ctx_80177B90[7];
|
||||
s32 D_ctx_80177BB0[7];
|
||||
s32 D_ctx_80177BD8[22]; // overruns D_ctx_80177C30?
|
||||
s32 D_ctx_80177C38[6];
|
||||
s32 D_ctx_80177C58[6];
|
||||
u8 gSoundMode;
|
||||
s32 gVolumeSettings[3];
|
||||
u16 D_ctx_80177C90;
|
||||
u8 gLevelType;
|
||||
s32 D_ctx_80177CA0;
|
||||
UNK_TYPE F_80177CA8;
|
||||
f32 D_ctx_80177CB0;
|
||||
UNK_TYPE F_80177CB8;
|
||||
f32 D_ctx_80177CC0;
|
||||
f32 D_ctx_80177CC8;
|
||||
f32 D_ctx_80177CE8;
|
||||
f32 D_ctx_80177D08;
|
||||
f32 D_ctx_80177D20;
|
||||
f32 D_ctx_80177D38;
|
||||
f32 D_ctx_80177D50;
|
||||
f32 D_ctx_80177D68;
|
||||
UNK_TYPE F_80177D80;
|
||||
UNK_TYPE F_80177DE8;
|
||||
s32 gGameFrameCount;
|
||||
s32 D_ctx_80177DC8;
|
||||
s32 D_ctx_80177E70;
|
||||
s32 D_ctx_80177E78;
|
||||
s32 D_ctx_80177E80;
|
||||
Vec3f D_ctx_80177E88;
|
||||
Vec3f D_ctx_80177F10;
|
||||
UNK_TYPE F_80178020;
|
||||
s32 D_ctx_8017812C;
|
||||
LevelId gCurrentLevel;
|
||||
s32 D_ctx_8017827C;
|
||||
s32 gBossActive;
|
||||
s32 D_ctx_8017828C;
|
||||
s32 D_ctx_80178294;
|
||||
s32 gRadioState;
|
||||
s32 D_ctx_801782A4;
|
||||
s32 D_Timer_801782AC;
|
||||
s32 D_Timer_801782B4;
|
||||
u8 D_play_800D3180[30] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
s32 D_ctx_801782C0;
|
||||
s32 D_ctx_801782C8;
|
||||
s32 D_ctx_801782D0;
|
||||
s32 D_ctx_801782D8;
|
||||
UNK_TYPE F_801782E0;
|
||||
s32 D_ctx_801782E8;
|
||||
UNK_TYPE F_801782F0;
|
||||
s32 D_ctx_801782F8;
|
||||
s32 D_ctx_80178300;
|
||||
u16* D_ctx_80178308;
|
||||
ObjectInit* D_ctx_80178310;
|
||||
UNK_TYPE F_80178318;
|
||||
s32 gFogRed;
|
||||
s32 gFogGreen;
|
||||
s32 gFogBlue;
|
||||
s32 gFogAlpha;
|
||||
s32 D_ctx_80178340; // alpha something
|
||||
s32 D_ctx_80178348; // red something
|
||||
s32 D_ctx_80178350; // green something
|
||||
s32 D_ctx_80178354; // blue something
|
||||
s32 D_ctx_80178358; // alpha target
|
||||
s32 D_ctx_8017835C; // alpha step
|
||||
s32 D_ctx_80178360; // 2 lights second color
|
||||
s32 D_ctx_80178364;
|
||||
s32 D_ctx_80178368;
|
||||
f32 D_ctx_8017836C; // 2 lights second color brightness
|
||||
f32 D_ctx_80178370; // Vec3f?
|
||||
f32 D_ctx_80178374;
|
||||
f32 D_ctx_80178378;
|
||||
s32 D_ctx_8017837C;
|
||||
u32 D_ctx_80178380[4]; // player alphas
|
||||
s32 D_ctx_80178390[4]; // player reds
|
||||
s32 D_ctx_801783A0[4]; // player greens
|
||||
s32 D_ctx_801783B0[4]; // player alphas
|
||||
UNK_TYPE D_ctx_801783C0[4];
|
||||
f32 D_ctx_801783D0; // something x translate
|
||||
f32 D_ctx_801783D4; // something y translate
|
||||
s32 gFogNear; // near
|
||||
s32 gFogFar; // far
|
||||
UNK_TYPE F_801783E0;
|
||||
UNK_TYPE F_801783E4;
|
||||
UNK_TYPE F_801783E8;
|
||||
UNK_TYPE F_801783EC;
|
||||
UNK_TYPE F_801783F0;
|
||||
UNK_TYPE F_801783F4;
|
||||
UNK_TYPE F_801783F8;
|
||||
UNK_TYPE F_801783FC;
|
||||
UNK_TYPE F_80178400;
|
||||
UNK_TYPE F_80178404;
|
||||
UNK_TYPE F_80178408;
|
||||
UNK_TYPE F_8017840C;
|
||||
s32 D_ctx_80178410;
|
||||
f32 D_ctx_80178414;
|
||||
f32 D_ctx_80178418;
|
||||
UNK_TYPE F_8017841C;
|
||||
f32 D_ctx_80178420;
|
||||
f32 D_ctx_80178424;
|
||||
f32 D_ctx_80178428;
|
||||
f32 D_ctx_8017842C;
|
||||
f32 D_ctx_80178430;
|
||||
UNK_TYPE F_80178434;
|
||||
UNK_TYPE F_80178438;
|
||||
UNK_TYPE F_8017843C;
|
||||
f32 D_ctx_80178440;
|
||||
f32 D_ctx_80178444;
|
||||
f32 D_ctx_80178448;
|
||||
f32 D_ctx_80178450[3];
|
||||
f32 D_ctx_80178460[3];
|
||||
f32 D_ctx_80178470[3];
|
||||
f32 D_ctx_8017847C;
|
||||
s32 D_ctx_80178480;
|
||||
s32 D_ctx_80178484;
|
||||
bool D_ctx_80178488;
|
||||
UNK_TYPE F_8017848C;
|
||||
UNK_TYPE F_80178490;
|
||||
s32 D_ctx_80178494;
|
||||
f32 D_ctx_80178498;
|
||||
f32 D_ctx_8017849C;
|
||||
f32 D_ctx_801784A0;
|
||||
s32 D_ctx_801784A4;
|
||||
UNK_TYPE F_801784A8;
|
||||
s32 D_ctx_801784AC;
|
||||
UNK_TYPE F_801784B0;
|
||||
UNK_TYPE F_801784B4;
|
||||
f32 D_ctx_801784B8; // effective Vec3f
|
||||
f32 D_ctx_801784BC;
|
||||
f32 D_ctx_801784C0;
|
||||
f32 D_ctx_801784C4; // effective Vec3f
|
||||
f32 D_ctx_801784C8;
|
||||
f32 D_ctx_801784CC;
|
||||
f32 D_ctx_801784D0; // effective Vec3f
|
||||
f32 D_ctx_801784D4;
|
||||
f32 D_ctx_801784D8;
|
||||
s32 gLight1x; // Vec3i light direction
|
||||
s32 gLight1y;
|
||||
s32 gLight1z;
|
||||
f32 D_ctx_801784E8;
|
||||
f32 D_ctx_801784EC; // effective Vec3f?
|
||||
f32 D_ctx_801784F0;
|
||||
f32 D_ctx_801784F4;
|
||||
f32 D_ctx_801784F8; // effective Vec3f
|
||||
f32 D_ctx_801784FC;
|
||||
f32 D_ctx_80178500;
|
||||
s32 gLight2x; // Vec3i light direction alternate
|
||||
s32 gLight2y;
|
||||
s32 gLight2z;
|
||||
f32 D_ctx_80178510;
|
||||
UNK_TYPE F_801784514;
|
||||
UNK_TYPE F_801784518;
|
||||
UNK_TYPE F_80178451C;
|
||||
f32 D_ctx_80178520; // effective Vec3f
|
||||
f32 D_ctx_80178524;
|
||||
f32 D_ctx_80178528;
|
||||
UNK_TYPE F_80178452C;
|
||||
UNK_TYPE F_801784530;
|
||||
UNK_TYPE F_801784534;
|
||||
f32 D_ctx_80178538;
|
||||
f32 D_ctx_8017853C;
|
||||
s32 D_ctx_80178540;
|
||||
s32 D_ctx_80178544;
|
||||
s32 gLight1R; // Color32 light color 1
|
||||
s32 gLight1G;
|
||||
s32 gLight1B;
|
||||
s32 gAmbientR; // Color32 ambient color
|
||||
s32 gAmbientG;
|
||||
s32 gAmbientB;
|
||||
UNK_TYPE F_80178560;
|
||||
s32 gLight2R; // Color32 light color 2
|
||||
s32 gLight2G;
|
||||
s32 gLight2B;
|
||||
UNK_TYPE P_800D31A0 = 0;
|
||||
s32 D_ctx_80178570; // Color32 light color 2 modifier?
|
||||
s32 D_ctx_80178574;
|
||||
s32 D_ctx_80178578;
|
||||
s32 D_80161A70; // Color32? start of bss
|
||||
s32 D_80161A74;
|
||||
s32 D_80161A78;
|
||||
s32 D_80161A7C;
|
||||
s32 D_80161A80;
|
||||
s32 D_80161A84;
|
||||
s32 D_80161A88;
|
||||
s32 D_80161A8C;
|
||||
u8 gGoldRingCount[4];
|
||||
u8 D_80161A94[4];
|
||||
s32 gHitCount;
|
||||
s32 gSavedHitCount;
|
||||
s16 gLifeCount[4];
|
||||
LaserStrength gLaserStrength[4];
|
||||
s32 D_80161AB8;
|
||||
UNK_TYPE F_80161AC0[4];
|
||||
UNK_TYPE F_80161AD0[4];
|
||||
UNK_TYPE F_80161AE0[4];
|
||||
UNK_TYPE F_80161AF0[4];
|
||||
UNK_TYPE P_800D31A4 = 0;
|
||||
Object_80 gObjects80[50];
|
||||
Object_4C gObjects4C[40];
|
||||
Actor gActors[60];
|
||||
Boss gBosses[4];
|
||||
Effect gEffects[100];
|
||||
Item gItems[20];
|
||||
PlayerShot gPlayerShots[16];
|
||||
TexturedLine gTexturedLines[100];
|
||||
RadarMark gRadarMarks[65];
|
||||
BonusText gBonusText[10];
|
||||
s32 D_ctx_80176550[2];
|
||||
f32 D_ctx_80176558[2][100];
|
||||
f32 D_ctx_80176878[2][100];
|
||||
f32 D_ctx_80176B98[2][100];
|
||||
f32 D_ctx_80176EB8[2][100];
|
||||
f32 D_ctx_801771D8[2][100];
|
||||
f32 D_ctx_80177500[2][100];
|
||||
UNK_TYPE P_800D31A8 = 0;
|
||||
u16 D_ctx_80177828; // enemy shot speed?
|
||||
u8 D_ctx_80177830; // show level complete status overlay
|
||||
s32 D_ctx_80177838; // level clear related
|
||||
s32 D_ctx_80177840; // timer for mission accomplished scrren
|
||||
s32 gBossHealthBar;
|
||||
s32 D_ctx_80177850; // bonus text related. set to 15 but never read
|
||||
s32 D_ctx_80177858[4];
|
||||
s32 D_ctx_80177870[4];
|
||||
s32 gHandicap[4];
|
||||
VsStage gVersusStage;
|
||||
s32 D_ctx_801778A4;
|
||||
s32 D_ctx_801778AC;
|
||||
s32 D_ctx_801778C8;
|
||||
bool gVersusMode;
|
||||
u16 gBoostButton[4];
|
||||
u16 gBrakeButton[4];
|
||||
u16 gShootButton[4];
|
||||
u16 gBombButton[4];
|
||||
f32 D_ctx_80177958[4];
|
||||
s32 D_ctx_8017796C;
|
||||
OSContPad* gInputHold;
|
||||
OSContPad* gInputPress;
|
||||
u8* D_ctx_80177984;
|
||||
s32 D_ctx_80177990[4];
|
||||
f32 D_ctx_801779A8[4];
|
||||
u8 D_ctx_801779BC;
|
||||
s32 gChargeTimers[4];
|
||||
f32 D_ctx_801779E4;
|
||||
f32 D_ctx_801779F4;
|
||||
s32 D_Timer_80177A00[4];
|
||||
s32 D_Timer_80177A38[4];
|
||||
s32 D_Timer_80177A70[4];
|
||||
s32 D_Timer_80177A88[4];
|
||||
f32 D_ctx_80177AA0[4];
|
||||
f32 D_ctx_80177AB8[4];
|
||||
s32 D_ctx_80177AD0[4];
|
||||
s32 D_ctx_80177AE8[4];
|
||||
s32 D_ctx_80177B00[4][4];
|
||||
u8 D_Timer_80177B44;
|
||||
u8 D_ctx_80177B4C;
|
||||
u8 D_ctx_80177B6C;
|
||||
u8 gGreatFoxIntact;
|
||||
u8 D_ctx_80177BAC;
|
||||
u16 D_Timer_80177BD0[4];
|
||||
u16 D_ctx_80177C30[4];
|
||||
s32 D_ctx_80177C50;
|
||||
s32 D_ctx_80177C70;
|
||||
s32 D_ctx_80177C78;
|
||||
s32 D_ctx_80177C8C;
|
||||
s32 D_ctx_80177C94;
|
||||
s32 D_ctx_80177C9C;
|
||||
s32 D_ctx_80177CA4;
|
||||
s32 D_ctx_80177CAC;
|
||||
s32 D_ctx_80177CB4;
|
||||
s32 D_ctx_80177CBC;
|
||||
s32 D_ctx_80177CC4;
|
||||
s32 D_ctx_80177CD0[6];
|
||||
s32 D_ctx_80177CF0[6];
|
||||
s32 gRightWingHealth[4];
|
||||
s32 gLeftWingHealth[4];
|
||||
s32 D_ctx_80177D40[4];
|
||||
s32 D_ctx_80177D58[4];
|
||||
s32 D_ctx_80177D70[4];
|
||||
s32 D_ctx_80177D88[4];
|
||||
s32 gBombCount[4];
|
||||
s32 D_ctx_80177DB8[4];
|
||||
s32 D_ctx_80177DD0[4][10];
|
||||
s32 D_ctx_80177E74;
|
||||
s32 D_ctx_80177E7C;
|
||||
s32 D_ctx_80177E84;
|
||||
Vec3f D_ctx_80177E98[10];
|
||||
f32 D_ctx_80177F20[65];
|
||||
f32 D_ctx_80178028[65];
|
||||
f32 D_ctx_80178130[65];
|
||||
u8 D_ctx_80178238[65];
|
||||
Player* gPlayer;
|
||||
f32* D_ctx_80178288;
|
||||
f32* D_ctx_80178290;
|
||||
u32* D_ctx_80178298;
|
||||
UNK_TYPE F_801782A0;
|
||||
Object_58* gObjects58;
|
||||
UNK_TYPE F_801782B0;
|
||||
s32 D_ctx_801782B8;
|
||||
s32 D_ctx_801782BC;
|
||||
PosRot* D_ctx_801782C4;
|
||||
f32* D_ctx_801782CC;
|
||||
f32* D_ctx_801782D4;
|
||||
f32* D_ctx_801782DC;
|
||||
f32* D_ctx_801782E4;
|
||||
f32* D_ctx_801782EC;
|
||||
UNK_TYPE F_801782F4;
|
||||
s32 D_ctx_801782FC;
|
||||
UNK_TYPE F_80178304;
|
||||
UNK_TYPE F_8017830C;
|
||||
UNK_TYPE F_80178314;
|
||||
UNK_TYPE F_8017831C;
|
||||
UNK_TYPE F_80178324;
|
||||
UNK_TYPE F_8017832C;
|
||||
UNK_TYPE F_80178334;
|
||||
UNK_TYPE F_8017833C;
|
||||
UNK_TYPE F_80178344;
|
||||
UNK_TYPE F_8017834C;
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,24 @@
|
||||
#include "global.h"
|
||||
|
||||
#include "fox_edata_info.c"
|
||||
|
||||
f32* D_edata_800CF964[] = { NULL };
|
||||
|
||||
void func_edata_800594F0(Object_80* obj80) {
|
||||
RCP_SetupDL_57(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
|
||||
Matrix_RotateY(gGfxMatrix, M_PI, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_VE1_6007D90);
|
||||
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
|
||||
}
|
||||
|
||||
void func_edata_800595D0(Object_80* obj80) {
|
||||
RCP_SetupDL_57(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
|
||||
Matrix_RotateY(gGfxMatrix, M_PI, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_VE1_6007CF0);
|
||||
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
|
||||
}
|
||||
|
||||
void func_edata_800596B0(Actor* actor) {
|
||||
}
|
||||
@@ -0,0 +1,496 @@
|
||||
#include "global.h"
|
||||
|
||||
#include "assets/ast_versus.h"
|
||||
#include "assets/ast_arwing.h"
|
||||
#include "assets/ast_corneria.h"
|
||||
#include "assets/ast_meteo.h"
|
||||
#include "assets/ast_bolse.h"
|
||||
#include "assets/ast_training.h"
|
||||
#include "assets/ast_sector_x.h"
|
||||
#include "assets/ast_sector_y.h"
|
||||
#include "assets/ast_sector_z.h"
|
||||
#include "assets/ast_aquas.h"
|
||||
#include "assets/ast_macbeth.h"
|
||||
#include "assets/ast_venom_1.h"
|
||||
#include "assets/ast_venom_2.h"
|
||||
#include "assets/ast_titania.h"
|
||||
#include "assets/ast_katina.h"
|
||||
#include "assets/ast_fortuna.h"
|
||||
#include "assets/ast_7_ti_1.h"
|
||||
#include "assets/ast_andross.h"
|
||||
#include "assets/ast_ve1_boss.h"
|
||||
#include "assets/ast_area_6.h"
|
||||
#include "assets/ast_zoness.h"
|
||||
|
||||
f32 D_edata_800CBE70[] = {
|
||||
1.0f, 0.0f, 50.0f, 0.0f, 25.0f, 0.0f, 25.0f,
|
||||
};
|
||||
f32 D_edata_800CBE8C[] = {
|
||||
1.0f, 0.0f, 50.0f, 0.0f, 50.0f, 0.0f, 50.0f,
|
||||
};
|
||||
f32 D_edata_800CBEA8[] = {
|
||||
1.0f, 0.0f, 75.0f, 0.0f, 75.0f, 0.0f, 75.0f,
|
||||
};
|
||||
f32 D_edata_800CBEC4[] = {
|
||||
1.0f, 0.0f, 100.0f, 0.0f, 100.0f, 0.0f, 100.0f,
|
||||
};
|
||||
f32 D_edata_800CBEE0[] = {
|
||||
1.0f, 0.0f, 150.0f, 0.0f, 150.0f, 0.0f, 150.0f,
|
||||
};
|
||||
f32 D_edata_800CBEFC[] = {
|
||||
1.0f, 0.0f, 200.0f, 0.0f, 200.0f, 0.0f, 200.0f,
|
||||
};
|
||||
f32 D_edata_800CBF18[] = {
|
||||
1.0f, -113.0f, 61.0f, 98.0f, 100.0f, 0.0f, 219.0f,
|
||||
};
|
||||
f32 D_edata_800CBF34[] = {
|
||||
0.0f,
|
||||
};
|
||||
f32 D_edata_800CBF38[] = {
|
||||
1.0f, -40.0f, 40.0f, 0.0f, 180.0f, 0.0f, 180.0f,
|
||||
};
|
||||
f32 D_edata_800CBF54[] = {
|
||||
1.0f, 0.0f, 120.0f, 0.0f, 120.0f, 0.0f, 120.0f,
|
||||
};
|
||||
f32 D_edata_800CBF70[] = {
|
||||
1.0f, -40.0f, 100.0f, 0.0f, 100.0f, 0.0f, 100.0f,
|
||||
};
|
||||
f32 D_edata_800CBF8C[] = {
|
||||
1.0f, 0.0f, 100.0f, 0.0f, 1200.0f, 0.0f, 1200.0f,
|
||||
};
|
||||
f32 D_edata_800CBFA8[] = {
|
||||
1.0f, 0.0f, 120.0f, 0.0f, 120.0f, 0.0f, 120.0f, 0.0f,
|
||||
};
|
||||
f32 D_edata_800CBFC8[] = {
|
||||
1.0f, 0.0f, 120.0f, 0.0f, 120.0f, 0.0f, 120.0f,
|
||||
};
|
||||
f32 D_edata_800CBFE4[] = {
|
||||
1.0f, 0.0f, 40.0f, 0.0f, 40.0f, 0.0f, 40.0f,
|
||||
};
|
||||
f32 D_edata_800CC000[] = {
|
||||
1.0f, 0.0f, 50.0f, 0.0f, 50.0f, 0.0f, 50.0f,
|
||||
};
|
||||
f32 D_edata_800CC01C[] = {
|
||||
1.0f, 0.0f, 40.0f, 0.0f, 40.0f, 0.0f, 40.0f,
|
||||
};
|
||||
f32 D_edata_800CC038[] = {
|
||||
1.0f, 0.0f, 40.0f, 0.0f, 40.0f, 0.0f, 40.0f,
|
||||
};
|
||||
f32 D_edata_800CC054[] = {
|
||||
1.0f, 0.0f, 140.0f, 0.0f, 170.0f, 0.0f, 140.0f,
|
||||
};
|
||||
f32 D_edata_800CC070[] = {
|
||||
4.0f, 0.0f, 140.0f, -675.0f, 140.0f, 0.0f, 810.0f, 0.0f, 140.0f, 675.0f, 140.0f, 0.0f, 810.0f,
|
||||
0.0f, 140.0f, 0.0f, 810.0f, 675.0f, 140.0f, 0.0f, 140.0f, 0.0f, 810.0f, -675.0f, 140.0f,
|
||||
};
|
||||
f32 D_edata_800CC0D4[] = {
|
||||
1.0f, 0.0f, 140.0f, 0.0f, 140.0f, 0.0f, 1800.0f,
|
||||
};
|
||||
f32 D_edata_800CC0F0[] = {
|
||||
2.0f, 0.0f, 140.0f, 0.0f, 140.0f, 0.0f, 1800.0f, 1.0f, 141.0f, 1.0f, 1800.0f, 1.0f, 140.0f,
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
ObjectInfo D_edata_800CC124[0x190] = {
|
||||
/* OBJ_80_0, */ {(void*) D_CO_6015F00, 0, (ObjectFunc) NULL, D_CO_603E3E0, 800.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_80_1, */ {(void*) D_CO_602E9E0, 0, (ObjectFunc) NULL, D_edata_800CBF34, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_2, */ {(void*) D_CO_601BEC0, 0, (ObjectFunc) NULL, D_edata_800CBF34, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_3, */ {(void*) D_CO_602E7A0, 0, (ObjectFunc) NULL, D_edata_800CBF34, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_4, */ {(void*) D_CO_60244A0, 0, (ObjectFunc) NULL, D_edata_800CBF34, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_5, */ {(void*) D_CO_602E570, 0, (ObjectFunc) NULL, D_edata_800CBF34, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_6, */ {(void*) D_CO_60132B0, 0, (ObjectFunc) NULL, D_CO_603DCA4, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_7, */ {(void*) D_CO_602E080, 0, (ObjectFunc) NULL, D_CO_603DD40, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_8, */ {(void*) D_CO_60164F0, 0, (ObjectFunc) NULL, D_edata_800CBF34, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_9, */ {(void*) D_CO_6014500, 0, (ObjectFunc) NULL, D_edata_800CBF34, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_10, */ {(void*) D_CO_602D5F0, 0, (ObjectFunc) NULL, D_CO_603DDF0, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_80_11, */ {(void*) D_CO_601A7D0, 0, (ObjectFunc) NULL, D_CO_603DE8C, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_80_12, */ {(void*) D_CO_6014B50, 0, (ObjectFunc) NULL, D_CO_603DEF4, 500.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_80_13, */ {(void*) D_CO_6016580, 0, (ObjectFunc) NULL, D_CO_603DF8C, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_80_14, */ {(void*) D_CO_601B560, 0, (ObjectFunc) func_enmy_80066EA8, D_CO_603DFDC, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_80_15, */ {(void*) D_CO_60361F0, 0, (ObjectFunc) func_enmy_80066EA8, D_CO_603E014, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_80_16, */ {(void*) D_CO_6018E80, 0, (ObjectFunc) func_enmy_80066EA8, D_CO_603E030, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_80_17, */ {(void*) D_CO_6035F10, 0, (ObjectFunc) func_enmy_80066EA8, D_CO_603E09C, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_80_18, */ {(void*) Corneria_8018753C, 1, (ObjectFunc) Corneria_80187530, D_CO_603E98C, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_80_19, */ {(void*) D_CO_60153B0, 0, (ObjectFunc) NULL, D_CO_603E118, 100.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_80_20, */ {(void*) D_CO_601F5A0, 0, (ObjectFunc) NULL, D_CO_603E14C, 500.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_80_21, */ {(void*) D_CO_60137B0, 0, (ObjectFunc) NULL, D_CO_603E1B4, 400.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_80_22, */ {(void*) D_CO_6006A80, 0, (ObjectFunc) NULL, D_CO_603E21C, 400.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_80_23, */ {(void*) D_CO_6016270, 0, (ObjectFunc) NULL, D_CO_603E4A0, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_24, */ {(void*) D_CO_6010E00, 0, (ObjectFunc) NULL, D_CO_603E9EC, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_25, */ {(void*) D_CO_6014670, 0, (ObjectFunc) NULL, D_CO_603EA08, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_26, */ {(void*) D_CO_6010A50, 0, (ObjectFunc) NULL, D_CO_603EA74, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_27, */ {(void*) D_CO_60143E0, 0, (ObjectFunc) NULL, D_CO_603EAE0, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_28, */ {(void*) D_CO_6014A20, 0, (ObjectFunc) NULL, D_CO_603EB0C, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_29, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_60064FC, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_30, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006518, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_31, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006564, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_32, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_60065B0, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_33, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_60065FC, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_34, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006648, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_35, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006694, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_36, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_60066E0, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_37, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_600672C, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_38, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006778, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_39, */ {(void*) func_edisplay_80059AEC, 1, (ObjectFunc) func_enmy2_8006D350, D_edata_800CBF34, 6000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_40, */ {(void*) func_edisplay_80059F68, 1, (ObjectFunc) func_enmy_80066D5C, D_CO_603E4A4, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_41, */ {(void*) func_edisplay_80059FDC, 1, (ObjectFunc) func_enmy_80066EA8, D_CO_603E4DC, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_42, */ {(void*) func_edisplay_80059BBC, 1, (ObjectFunc) func_enmy2_8006B95C, D_CO_603E514, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_43, */ {(void*) D_ZO_6024AC0, 0, (ObjectFunc) NULL, D_ZO_602B9EC, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_44, */ {(void*) D_ZO_600F560, 0, (ObjectFunc) NULL, D_ZO_602BA20, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_45, */ {(void*) D_ZO_600EC90, 0, (ObjectFunc) NULL, D_ZO_602BAE4, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_46, */ {(void*) D_ZO_600E820, 0, (ObjectFunc) NULL, D_ZO_602BBD8, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_47, */ {(void*) D_ZO_601FCB0, 0, (ObjectFunc) NULL, D_ZO_602BC54, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_48, */ {(void*) func_edata_800594F0, 1, (ObjectFunc) NULL, D_VE1_601B4E0, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_49, */ {(void*) func_edata_800595D0, 1, (ObjectFunc) NULL, D_VE1_601B4FC, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_50, */ {(void*) D_VE1_6007410, 0, (ObjectFunc) NULL, D_VE1_601B518, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_51, */ {(void*) D_VE1_6006F50, 0, (ObjectFunc) NULL, D_VE1_601B584, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_52, */ {(void*) D_VE1_6005780, 0, (ObjectFunc) Venom1_80193540, D_VE1_601B5F4, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_53, */ {(void*) D_AQ_6003610, 0, (ObjectFunc) NULL, D_VE1_601B644, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_54, */ {(void*) D_CO_6000E00, 0, (ObjectFunc) func_enmy2_8006AA98, D_CO_603E0EC, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_55, */ {(void*) D_CO_6013B50, 0, (ObjectFunc) NULL, D_CO_603E88C, 1000.0f, 0, 0, 41, 0, 0.0f, 0 },
|
||||
/* OBJ_80_56, */ {(void*) Corneria_8018F31C, 2, (ObjectFunc) Corneria_8018F044, D_CO_603E8A8, 1000.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_80_57, */ {(void*) Titania_8018F8B8, 1, (ObjectFunc) Titania_8018F4D8, D_TI_6006BF0, 800.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_58, */ {(void*) D_TI1_700BE00, 0, (ObjectFunc) NULL, D_TI_6006C44, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_59, */ {(void*) D_MA_6024010, 0, (ObjectFunc) NULL, D_MA_603626C, 300.0f, 0, 0, 5, 0, 0.0f, 0 },
|
||||
/* OBJ_80_60, */ {(void*) D_MA_6027180, 0, (ObjectFunc) NULL, D_MA_6036288, 400.0f, 0, 0, 5, 0, 0.0f, 0 },
|
||||
/* OBJ_80_61, */ {(void*) Macbeth_801A2A78, 1, (ObjectFunc) NULL, D_MA_60362A4, 200.0f, 0, 0, 5, 0, 0.0f, 0 },
|
||||
/* OBJ_80_62, */ {(void*) D_MA_60270E0, 0, (ObjectFunc) NULL, D_edata_800CBF34, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_63, */ {(void*) D_MA_6013960, 0, (ObjectFunc) NULL, D_MA_6036894, 500.0f, 0, 0, 5, 0, 0.0f, 0 },
|
||||
/* OBJ_80_64, */ {(void*) D_MA_600AF40, 0, (ObjectFunc) NULL, D_MA_60368E0, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_65, */ {(void*) Macbeth_801A6608, 1, (ObjectFunc) NULL, D_MA_6036724, 400.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_66, */ {(void*) D_MA_601F1D0, 0, (ObjectFunc) NULL, D_MA_60362D8, 2500.0f, 0, 0, 5, 0, 0.0f, 0 },
|
||||
/* OBJ_80_67, */ {(void*) D_MA_60238F0, 0, (ObjectFunc) NULL, D_MA_6036328, 2000.0f, 0, 0, 5, 0, 0.0f, 0 },
|
||||
/* OBJ_80_68, */ {(void*) D_MA_601B7C0, 0, (ObjectFunc) NULL, D_MA_60362F4, 2500.0f, 0, 0, 5, 0, 0.0f, 0 },
|
||||
/* OBJ_80_69, */ {(void*) D_MA_6030500, 0, (ObjectFunc) NULL, D_MA_6036370, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_70, */ {(void*) D_MA_602DAE0, 0, (ObjectFunc) NULL, D_MA_603638C, 1900.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_71, */ {(void*) D_MA_6027900, 0, (ObjectFunc) NULL, D_MA_60363B8, 1900.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_72, */ {(void*) D_MA_602DB80, 0, (ObjectFunc) NULL, D_MA_60363E4, 1100.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_73, */ {(void*) D_MA_6030630, 0, (ObjectFunc) NULL, D_MA_6036410, 1100.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_74, */ {(void*) D_MA_602DC20, 0, (ObjectFunc) NULL, D_MA_603643C, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_75, */ {(void*) D_MA_601B0D0, 0, (ObjectFunc) NULL, D_MA_6036760, 3000.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_76, */ {(void*) D_MA_60075D0, 0, (ObjectFunc) NULL, D_edata_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_77, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, D_MA_6036344, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_78, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, D_edata_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_79, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, D_edata_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_80, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, D_edata_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_81, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, D_edata_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_82, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, D_edata_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_83, */ {(void*) Macbeth_801A3240, 1, (ObjectFunc) Macbeth_801A2DD8, D_edata_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_84, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, D_edata_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_85, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, D_edata_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_86, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, D_edata_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_87, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, D_edata_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_88, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, D_edata_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_89, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, D_edata_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_90, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, D_edata_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_91, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, D_edata_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_92, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, D_edata_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_93, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, D_edata_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_94, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, D_edata_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_95, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, D_edata_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_96, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, D_edata_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_97, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, D_edata_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_98, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, D_edata_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_99, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, D_edata_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_100 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, D_edata_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_101 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, D_edata_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_102 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, D_edata_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_103 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, D_edata_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_104 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) Macbeth_801A0BD8, D_MA_6036594, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_105 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, D_MA_6036204, 1300.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_106 */ {(void*) D_SY_60097E0, 0, (ObjectFunc) NULL, D_SY_6034478, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
|
||||
/* OBJ_80_107 */ {(void*) D_SY_601D730, 0, (ObjectFunc) NULL, D_SY_603450C, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
|
||||
/* OBJ_80_108 */ {(void*) D_SY_60102C0, 0, (ObjectFunc) NULL, D_SY_6034588, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
|
||||
/* OBJ_80_109 */ {(void*) D_SY_60036A0, 0, (ObjectFunc) SectorY_801A4E44, D_SY_6034664, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
|
||||
/* OBJ_80_110 */ {(void*) D_SY_6005360, 0, (ObjectFunc) NULL, D_SY_6034770, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
|
||||
/* OBJ_80_111 */ {(void*) func_enmy2_80074F90, 1, (ObjectFunc) NULL, D_edata_800CBF34, 2000.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_112 */ {(void*) D_SY_600F6C0, 0, (ObjectFunc) SectorY_801A52B8, D_SY_60347F0, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
|
||||
/* OBJ_80_113 */ {(void*) D_SY_601B610, 0, (ObjectFunc) NULL, D_edata_800CBF34, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_114 */ {(void*) D_SY_601C6A0, 0, (ObjectFunc) NULL, D_edata_800CBF34, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_115 */ {(void*) D_SY_60188D0, 0, (ObjectFunc) NULL, D_SY_603486C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_116 */ {(void*) D_SY_60034D0, 0, (ObjectFunc) NULL, D_SY_60347D4, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_117 */ {(void*) D_AQ_60231C0, 0, (ObjectFunc) NULL, D_AQ_6030C60, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_118 */ {(void*) D_AQ_6011EE0, 0, (ObjectFunc) NULL, D_AQ_6030C7C, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
|
||||
/* OBJ_80_119 */ {(void*) D_AQ_6015730, 0, (ObjectFunc) NULL, D_AQ_6030D74, 2000.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_80_120 */ {(void*) D_AQ_601DE60, 0, (ObjectFunc) NULL, D_AQ_6030DF8, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_121 */ {(void*) D_AQ_602B4C0, 0, (ObjectFunc) NULL, D_AQ_6030E14, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_122 */ {(void*) D_AQ_600EE10, 0, (ObjectFunc) NULL, D_AQ_6030E30_Hitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
|
||||
/* OBJ_80_123 */ {(void*) D_AQ_60120F0, 0, (ObjectFunc) NULL, D_AQ_6030E4C, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
|
||||
/* OBJ_80_124 */ {(void*) D_AQ_600EEF0, 0, (ObjectFunc) NULL, D_edata_800CBF34, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
|
||||
/* OBJ_80_125 */ {(void*) D_AQ_600BF80, 0, (ObjectFunc) NULL, D_AQ_6030E68, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
|
||||
/* OBJ_80_126 */ {(void*) Aquas_801BE1FC, 1, (ObjectFunc) NULL, D_edata_800CBF34, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
|
||||
/* OBJ_80_127 */ {(void*) D_VE1_9005C80, 0, (ObjectFunc) Venom1_801924A8, D_VE1_601B678, 1000.0f, 0, 0, 42, 0, 0.0f, 0 },
|
||||
/* OBJ_80_128 */ {(void*) D_VE1_9003F50, 0, (ObjectFunc) NULL, D_VE1_601B6C4, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
|
||||
/* OBJ_80_129 */ {(void*) D_VE1_900F060, 0, (ObjectFunc) NULL, D_VE1_601B710, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
|
||||
/* OBJ_80_130 */ {(void*) D_VE1_900F1D0, 0, (ObjectFunc) NULL, D_VE1_601B75C, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
|
||||
/* OBJ_80_131 */ {(void*) Andross_801935D4, 1, (ObjectFunc) Andross_8019356C, D_ANDROSS_C038BD8, 500.0f, 0, 0, 41, 0, 0.0f, 0 },
|
||||
/* OBJ_80_132 */ {(void*) Andross_8019350C, 1, (ObjectFunc) Andross_80193380, D_ANDROSS_C038A48, 500.0f, 0, 0, 41, 0, 0.0f, 0 },
|
||||
/* OBJ_80_133 */ {(void*) D_TR_60030F0, 0, (ObjectFunc) NULL, D_TR_6009CC4, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
|
||||
/* OBJ_80_134 */ {(void*) D_VE2_6003000, 0, (ObjectFunc) NULL, D_ANDROSS_C038BA4, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
|
||||
/* OBJ_80_135 */ {(void*) D_TI_6006890, 0, (ObjectFunc) NULL, D_ANDROSS_C038B40, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
|
||||
/* OBJ_80_136 */ {(void*) D_VE2_6002990, 0, (ObjectFunc) NULL, D_ANDROSS_C038B40, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
|
||||
/* OBJ_80_137 */ {(void*) D_VE2_6004170, 0, (ObjectFunc) NULL, D_edata_800CBF34, 0.0f, 0, 0, 0, 1, 0.0f, 0 },
|
||||
/* OBJ_80_138 */ {(void*) D_versus_3017600, 0, (ObjectFunc) NULL, D_versus_302EE64, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_139 */ {(void*) D_versus_3017600, 0, (ObjectFunc) NULL, D_versus_302EE80, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_140 */ {(void*) D_versus_30173C0, 0, (ObjectFunc) NULL, D_edata_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_141 */ {(void*) D_versus_30174E0, 0, (ObjectFunc) NULL, D_edata_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_142 */ {(void*) D_versus_301B080, 0, (ObjectFunc) NULL, D_versus_302EE9C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_143 */ {(void*) D_versus_3016B00, 0, (ObjectFunc) NULL, D_versus_302EE00, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_144 */ {(void*) D_versus_3013780, 0, (ObjectFunc) NULL, D_versus_302ED4C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_145 */ {(void*) D_versus_3013580, 0, (ObjectFunc) NULL, D_versus_302ED98, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_146 */ {(void*) D_versus_3012ED0, 0, (ObjectFunc) NULL, D_versus_302EDB4, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_147 */ {(void*) NULL, 0, (ObjectFunc) NULL, D_edata_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_80_148 */ {(void*) D_FO_60079B0, 0, (ObjectFunc) NULL, D_FO_600FF80, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_149 */ {(void*) D_FO_6007D80, 0, (ObjectFunc) NULL, D_FO_600FFA0, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_150 */ {(void*) D_FO_6006310, 0, (ObjectFunc) NULL, D_FO_600FFC0, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_151 */ {(void*) D_TI_60066E0, 0, (ObjectFunc) NULL, D_FO_600FEB8, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_152 */ {(void*) D_BO_600F4C0, 0, (ObjectFunc) NULL, D_BO_6011C10, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_153 */ {(void*) D_BO_600B8B0, 0, (ObjectFunc) NULL, D_BO_6011C48, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_154 */ {(void*) D_KA_600BAF0, 0, (ObjectFunc) NULL, D_KA_601115C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_155 */ {(void*) NULL, 0, (ObjectFunc) NULL, D_edata_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_156 */ {(void*) SectorY_80197CB8, 1, (ObjectFunc) NULL, D_SY_6034368, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_157 */ {(void*) D_SZ_6001DA0, 0, (ObjectFunc) NULL, D_SZ_600924C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_158 */ {(void*) D_SZ_6001360, 0, (ObjectFunc) NULL, D_SZ_60092E8, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_159 */ {(void*) D_VE2_6008370, 0, (ObjectFunc) NULL, D_VE2_601668C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_80_160 */ {(void*) D_VE2_6010960, 0, (ObjectFunc) NULL, D_VE2_6016714, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_4C_161 */ {(void*) D_CO_602F7C0, 0, (ObjectFunc) func_enmy_80068FE0, D_CO_603E468, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_4C_162 */ {(void*) D_CO_601C9B0, 0, (ObjectFunc) func_enmy_80068FE0, D_CO_603E484, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_4C_163 */ {(void*) D_FO_600A420, 0, (ObjectFunc) func_enmy_80068FE0, D_FO_600FE9C, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_4C_164 */ {(void*) func_edisplay_80059C40, 1, (ObjectFunc) NULL, D_edata_800CBF34, 1800.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_4C_165 */ {(void*) D_CO_602DCA0, 0, (ObjectFunc) NULL, D_edata_800CBF34, -100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_4C_166 */ {(void*) D_CO_601F500, 0, (ObjectFunc) NULL, D_edata_800CBF34, -100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_4C_167 */ {(void*) func_edisplay_80059C34, 1, (ObjectFunc) func_enmy_80066E8C, D_edata_800CBF34, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_4C_168 */ {(void*) func_edisplay_80059850, 1, (ObjectFunc) NULL, D_edata_800CBF34, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_4C_169 */ {(void*) D_TI_60023B0, 0, (ObjectFunc) Titania_8018F038, D_TI_60068BC, 100.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_4C_170 */ {(void*) NULL, 1, (ObjectFunc) Corneria_801875A4, D_edata_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_4C_171 */ {(void*) NULL, 1, (ObjectFunc) Venom1_801922DC, D_edata_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_4C_172 */ {(void*) NULL, 1, (ObjectFunc) Venom1_80192358, D_edata_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_4C_173 */ {(void*) NULL, 1, (ObjectFunc) Venom1_801923C0, D_edata_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_4C_174 */ {(void*) NULL, 1, (ObjectFunc) Venom1_8019243C, D_edata_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_4C_175 */ {(void*) NULL, 1, (ObjectFunc) NULL, D_edata_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_176 */ {(void*) Corneria_8018BAAC, 2, (ObjectFunc) Corneria_8018AED0, D_CO_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
|
||||
/* OBJ_ACTOR_177 */ {(void*) Corneria_8018BBA4, 2, (ObjectFunc) Corneria_8018B15C, D_CO_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
|
||||
/* OBJ_ACTOR_178 */ {(void*) Corneria_8018BBF8, 2, (ObjectFunc) Corneria_8018B418, D_CO_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
|
||||
/* OBJ_ACTOR_179 */ {(void*) Corneria_8018BD7C, 2, (ObjectFunc) Corneria_8018B58C, D_CO_603E604, 500.0f, 0, 0, 39, 1, 0.0f, 1 },
|
||||
/* OBJ_ACTOR_180 */ {(void*) func_edisplay_8005B6A4, 1, (ObjectFunc) func_enmy_80066A80, D_edata_800CBF34, 1000.0f, 0, 0, 39, 0, 0.0f, 1 },
|
||||
/* OBJ_ACTOR_181 */ {(void*) D_ME_6018C00, 0, (ObjectFunc) Meteo_8018756C, D_ME_602F6EC, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_182 */ {(void*) func_edisplay_8005B71C, 1, (ObjectFunc) Meteo_80187650, D_ME_602F708, 100.0f, 0, 1, 39, 0, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_183 */ {(void*) Meteo_8018DA6C, 1, (ObjectFunc) Meteo_8018D9EC, D_edata_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
|
||||
/* OBJ_ACTOR_184 */ {(void*) Meteo_8018DAEC, 1, (ObjectFunc) Meteo_8018D9EC, D_edata_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
|
||||
/* OBJ_ACTOR_185 */ {(void*) Meteo_8018DB6C, 1, (ObjectFunc) Meteo_8018D9EC, D_edata_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
|
||||
/* OBJ_ACTOR_186 */ {(void*) func_edisplay_8005B7CC, 1, (ObjectFunc) Meteo_8018795C, D_ME_602F724, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_187 */ {(void*) D_ME_6018450, 0, (ObjectFunc) Meteo_801877C4, D_ME_602F740, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_188 */ {(void*) Aquas_801BEC74, 1, (ObjectFunc) Aquas_801BEC68, D_AQ_6030BE0, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_189 */ {(void*) func_edisplay_8005A094, 1, (ObjectFunc) func_enmy2_8006C008, D_edata_800CBF34, 0.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_190 */ {(void*) func_edisplay_8005B848, 1, (ObjectFunc) func_enmy_800656D4, D_edata_800CBFE4, 100.0f, 0, 1, 39, 0, 1.0f, 0 },
|
||||
/* OBJ_ACTOR_191 */ {(void*) func_edisplay_8005B848, 1, (ObjectFunc) func_enmy_800656D4, D_edata_800CBFE4, 100.0f, 0, 1, 39, 0, 1.0f, 0 },
|
||||
/* OBJ_ACTOR_192 */ {(void*) func_edisplay_8005B9A4, 1, (ObjectFunc) func_enmy_8006654C, D_CO_603E54C, 200.0f, 0, 1, 39, 0, 50.0f, 1 },
|
||||
/* OBJ_ACTOR_193 */ {(void*) func_edisplay_8005BA30, 1, (ObjectFunc) func_enmy_800669A0, D_CO_603E598, 100.0f, 0, 1, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_194 */ {(void*) func_enmy2_8006B74C, 1, (ObjectFunc) func_enmy2_8006B094, D_edata_800CC000, 200.0f, 0, 1, 39, 0, 0.0f, 1 },
|
||||
/* OBJ_ACTOR_195 */ {(void*) func_demo_8004FEC0, 1, (ObjectFunc) func_demo_8004F8AC, D_edata_800CBF34, 20000.0f, 0, 1, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_196 */ {(void*) func_edisplay_80059BF0, 1, (ObjectFunc) func_enmy2_8006BB78, D_CO_603E5B4, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_197 */ {(void*) func_360_80035448, 1, (ObjectFunc) func_360_800319AC, D_edata_800CC038, 20000.0f, 0, 1, 39, 1, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_198 */ {(void*) func_360_80035448, 1, (ObjectFunc) func_hud_80092EC0, D_edata_800CC01C, 20000.0f, 0, 0, 39, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_199 */ {(void*) Andross_80188448, 1, (ObjectFunc) Andross_801880E4, D_edata_800CBF34, 20000.0f, 0, 0, 39, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_200 */ {(void*) func_enmy2_80074FF0, 1, (ObjectFunc) func_enmy2_80072594, D_edata_800CBF34, 2000.0f, 0, 1, 39, 0, 0.0f, 1 },
|
||||
/* OBJ_ACTOR_201 */ {(void*) func_edisplay_800598E8, 1, (ObjectFunc) func_enmy2_8006AC08, D_ME_602F684, 100.0f, 0, 1, 39, 0, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_202 */ {(void*) func_edisplay_80059A24, 1, (ObjectFunc) func_enmy2_8006AD18, D_ME_602F6A0, 100.0f, 0, 1, 39, 0, 180.0f, 1 },
|
||||
/* OBJ_ACTOR_203 */ {(void*) SectorX_8018F884, 1, (ObjectFunc) SectorX_8018F330, D_edata_800CBF34, 1000.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_204 */ {(void*) SectorY_801A4CB0, 1, (ObjectFunc) SectorY_801A3BD4, D_SY_603405C, 1000.0f, 0, 0, 39, 0, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_205 */ {(void*) Macbeth_801A12C4, 1, (ObjectFunc) Macbeth_8019C778, D_MA_60359C8, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_206 */ {(void*) Macbeth_801A12C4, 1, (ObjectFunc) Macbeth_801AC438, D_MA_6035A48, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_207 */ {(void*) Macbeth_801AC294, 2, (ObjectFunc) Macbeth_801A7E7C, D_MA_603677C, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_208 */ {(void*) Macbeth_801A12C4, 1, (ObjectFunc) Macbeth_8019EA60, D_MA_6035A14, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_209 */ {(void*) Macbeth_801A12C4, 1, (ObjectFunc) Macbeth_8019D700, D_MA_6035AE0, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_210 */ {(void*) Macbeth_801A12C4, 1, (ObjectFunc) Macbeth_8019CE88, D_MA_6035D9C, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_211 */ {(void*) Macbeth_801A12C4, 1, (ObjectFunc) Macbeth_8019E410, D_MA_6035E04, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_212 */ {(void*) Macbeth_801A12C4, 1, (ObjectFunc) Macbeth_8019FF9C, D_MA_60360C0, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_213 */ {(void*) Macbeth_801A12C4, 1, (ObjectFunc) Macbeth_8019EE68, D_MA_6036154, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_214 */ {(void*) Macbeth_801A43BC, 1, (ObjectFunc) Macbeth_801A3E98, D_MA_6036458, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_215 */ {(void*) Macbeth_801A4A64, 1, (ObjectFunc) Macbeth_801A46A0, D_MA_60364C0, 300.0f, 0, 1, 40, 1, 0.0f, 1 },
|
||||
/* OBJ_ACTOR_216 */ {(void*) Macbeth_801A5F90, 1, (ObjectFunc) Macbeth_801A5E54, D_MA_60366EC, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_217 */ {(void*) Macbeth_801A6100, 1, (ObjectFunc) Macbeth_801A5FD0, D_MA_6036708, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_218 */ {(void*) Macbeth_801A6540, 1, (ObjectFunc) Macbeth_801A6144, D_MA_6036728, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_219 */ {(void*) Macbeth_801A68EC, 1, (ObjectFunc) Macbeth_801A67C8, D_MA_6036744, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_220 */ {(void*) Macbeth_801ADAC8, 1, (ObjectFunc) Macbeth_801AD6F0, D_MA_6036930, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_221 */ {(void*) Macbeth_801AE2C0, 1, (ObjectFunc) Macbeth_801ADD68, D_MA_603694C, 300.0f, 0, 0, 40, 1, 1.0f, 0 },
|
||||
/* OBJ_ACTOR_222 */ {(void*) Macbeth_801AEEFC, 1, (ObjectFunc) Macbeth_801AEC04, D_MA_6036968, 300.0f, 0, 0, 40, 1, 1.0f, 0 },
|
||||
/* OBJ_ACTOR_223 */ {(void*) Macbeth_801A54E8, 1, (ObjectFunc) Macbeth_801A4B24, D_MA_60364DC, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_224 */ {(void*) NULL, 1, (ObjectFunc) Titania_80189194, D_edata_800CBF34, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_225 */ {(void*) D_TI1_700AB70, 0, (ObjectFunc) Titania_8018AB44, D_TI_60064AC, 50.0f, 0, 0, 39, 1, 1.0f, 0 },
|
||||
/* OBJ_ACTOR_226 */ {(void*) Titania_80189AFC, 1, (ObjectFunc) Titania_801895B8, D_TI_60064C8, 300.0f, 0, 0, 39, 1, 70.0f, 1 },
|
||||
/* OBJ_ACTOR_227 */ {(void*) Titania_8018E5B4, 1, (ObjectFunc) Titania_8018E54C, D_TI_60067C4, 0.0f, 0, 0, 39, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_228 */ {(void*) Titania_8018EF14, 1, (ObjectFunc) Titania_8018E5F8, D_TI_6006808, 0.0f, 0, 0, 39, 1, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_229 */ {(void*) Titania_8018E2D8, 1, (ObjectFunc) Titania_8018C8A8, D_TI_6006A3C, 1000.0f, 0, 0, 20, 1, 0.0f, 1 },
|
||||
/* OBJ_ACTOR_230 */ {(void*) Titania_8018AABC, 1, (ObjectFunc) Titania_8018A544, D_TI_600683C, 0.0f, 0, 1, 39, 1, 0.0f, 1 },
|
||||
/* OBJ_ACTOR_231 */ {(void*) Titania_8018BE84, 1, (ObjectFunc) Titania_8018B9D0, D_TI_6006858, 0.0f, 0, 0, 39, 1, 0.0f, 1 },
|
||||
/* OBJ_ACTOR_232 */ {(void*) Titania_8018B6AC, 1, (ObjectFunc) Titania_8018B268, D_TI_6006890, 0.0f, 0, 0, 39, 1, 20.0f, 1 },
|
||||
/* OBJ_ACTOR_233 */ {(void*) Titania_8018A1C0, 1, (ObjectFunc) Titania_80189CC8, D_TI_60068F0, 200.0f, 0, 0, 39, 1, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_234 */ {(void*) func_enmy2_80077218, 1, (ObjectFunc) func_enmy2_800771CC, D_edata_800CBF34, 2000.0f, 0, 0, 39, 0, 0.0f, 5 },
|
||||
/* OBJ_ACTOR_235 */ {(void*) Zoness_80190430, 2, (ObjectFunc) Zoness_801904CC, D_ZO_602C294, 1000.0f, 0, 1, 40, 0, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_236 */ {(void*) Zoness_80190F08, 1, (ObjectFunc) Zoness_80190A00, D_ZO_602BC58, 5000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_237 */ {(void*) func_enmy2_8006A978, 1, (ObjectFunc) func_enmy2_8006A96C, D_edata_800CBF34, 200.0f, 0, 0, 40, 0, 0.0f, 2 },
|
||||
/* OBJ_ACTOR_238 */ {(void*) Zoness_801914C4, 2, (ObjectFunc) Zoness_80191010, D_edata_800CBE8C, 200.0f, 0, 1, 40, 0, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_239 */ {(void*) NULL, 1, (ObjectFunc) NULL, D_edata_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_240 */ {(void*) Zoness_80191B4C, 1, (ObjectFunc) Zoness_80191680, D_edata_800CBE8C, 1500.0f, 0, 1, 40, 0, 20.0f, 0 },
|
||||
/* OBJ_ACTOR_241 */ {(void*) Zoness_80191DB0, 1, (ObjectFunc) Zoness_80191BC4, D_edata_800CBE70, 1500.0f, 0, 1, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_242 */ {(void*) Zoness_80191FFC, 2, (ObjectFunc) Zoness_80192094, D_ZO_602BE3C, 500.0f, 0, 0, 40, 0, 1.0f, 0 },
|
||||
/* OBJ_ACTOR_243 */ {(void*) Zoness_80192C18, 2, (ObjectFunc) Zoness_80192834, D_edata_800CBE8C, 0.0f, 0, 1, 40, 0, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_244 */ {(void*) Zoness_80193240, 2, (ObjectFunc) Zoness_80192E64, D_ZO_602BE58, 2000.0f, 0, 0, 40, 0, 50.0f, 0 },
|
||||
/* OBJ_ACTOR_245 */ {(void*) Zoness_8019983C, 1, (ObjectFunc) Zoness_8019969C, D_edata_800CBE8C, 200.0f, 0, 0, 40, 0, 1.0f, 0 },
|
||||
/* OBJ_ACTOR_246 */ {(void*) Zoness_80199E24, 1, (ObjectFunc) Zoness_80199A28, D_edata_800CBE8C, 2000.0f, 0, 0, 40, 0, 1.0f, 0 },
|
||||
/* OBJ_ACTOR_247 */ {(void*) Zoness_8019D3C4, 1, (ObjectFunc) Zoness_8019D15C, D_ZO_602BFC4, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_248 */ {(void*) Zoness_8019A1FC, 1, (ObjectFunc) Zoness_80199F10, D_edata_800CBEA8, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_249 */ {(void*) Zoness_8019ACCC, 1, (ObjectFunc) Zoness_8019A5D4, D_edata_800CBEC4, 5000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_250 */ {(void*) Zoness_8019B7DC, 1, (ObjectFunc) Zoness_8019B548, D_ZO_602C1D4, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_251 */ {(void*) Zoness_8019BDE0, 2, (ObjectFunc) Zoness_8019B854, D_ZO_602C218, 1000.0f, 0, 0, 40, 0, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_252 */ {(void*) Zoness_8019C1CC, 1, (ObjectFunc) Zoness_8019BE48, D_ZO_602C234, 200.0f, 0, 0, 40, 0, 80.0f, 1 },
|
||||
/* OBJ_ACTOR_253 */ {(void*) Zoness_8019C83C, 1, (ObjectFunc) Zoness_8019C454, D_ZO_602C250, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_254 */ {(void*) Zoness_8019CE58, 1, (ObjectFunc) Zoness_8019CBEC, D_ZO_602C2B0, 300.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_255 */ {(void*) Aquas_801AE168, 1, (ObjectFunc) Aquas_801AD6C0, D_AQ_6030BFC, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_256 */ {(void*) Aquas_801AEB44, 1, (ObjectFunc) Aquas_801AE3D8, D_AQ_6030C18, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_257 */ {(void*) Aquas_801B099C, 1, (ObjectFunc) Aquas_801AFA5C, D_AQ_6030C44, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_258 */ {(void*) Aquas_801B0EC0, 1, (ObjectFunc) Aquas_801B0B60, D_edata_800CBE8C, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_259 */ {(void*) Aquas_801B619C, 2, (ObjectFunc) Aquas_801B638C, D_AQ_6031398, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_260 */ {(void*) Aquas_801B90DC, 2, (ObjectFunc) Aquas_801B7C78, D_AQ_60313CC, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_261 */ {(void*) Aquas_801B504C, 2, (ObjectFunc) Aquas_801B50E8, D_AQ_6031400, 300.0f, 0, 0, 40, 0, 0.0f, 1 },
|
||||
/* OBJ_ACTOR_262 */ {(void*) Aquas_801B7A24, 2, (ObjectFunc) Aquas_801B6FF8, D_AQ_603144C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_263 */ {(void*) Aquas_801BA108, 2, (ObjectFunc) Aquas_801B91A4, D_AQ_6031480, 200.0f, 0, 0, 40, 0, 0.0f, 1 },
|
||||
/* OBJ_ACTOR_264 */ {(void*) Aquas_801BA4E4, 1, (ObjectFunc) Aquas_801BA26C, D_edata_800CBE8C, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_265 */ {(void*) Aquas_801BAD7C, 1, (ObjectFunc) Aquas_801BA6A4, D_AQ_6031500, 200.0f, 0, 0, 40, 0, 0.0f, 1 },
|
||||
/* OBJ_ACTOR_266 */ {(void*) Aquas_801BB204, 2, (ObjectFunc) Aquas_801BADF8, D_AQ_6031538, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_267 */ {(void*) Aquas_801BC930, 2, (ObjectFunc) Aquas_801BB79C, D_AQ_6031554, 800.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_268 */ {(void*) Aquas_801BDE6C, 1, (ObjectFunc) Aquas_801BD54C, D_AQ_6031570, 10000.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_269 */ {(void*) Aquas_801BD264, 1, (ObjectFunc) Aquas_801BC9A0, D_AQ_6030D20, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_270 */ {(void*) Aquas_801BEB1C, 1, (ObjectFunc) Aquas_801BE3F8, D_AQ_60314C8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_271 */ {(void*) func_360_8002E694, 2, (ObjectFunc) func_360_8002E670, D_BO_6011B24, 0.0f, 0, 0, 39, 0, 730.0f, 1 },
|
||||
/* OBJ_ACTOR_272 */ {(void*) func_360_8002E6DC, 1, (ObjectFunc) func_360_8002E6B8, D_BO_6011BF4, 0.0f, 0, 0, 39, 0, 150.0f, 1 },
|
||||
/* OBJ_ACTOR_273 */ {(void*) Fortuna_80188FE4, 2, (ObjectFunc) Fortuna_80188AD0, D_FO_600FF30, 0.0f, 0, 0, 39, 0, 220.0f, 1 },
|
||||
/* OBJ_ACTOR_274 */ {(void*) SectorZ_8019E3A8, 1, (ObjectFunc) SectorZ_8019E234, D_edata_800CBEC4, 0.0f, 0, 0, 39, 0, 1.0f, 0 },
|
||||
/* OBJ_ACTOR_275 */ {(void*) Solar_8019F7AC, 1, (ObjectFunc) Solar_8019F20C, D_edata_800CBE8C, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_276 */ {(void*) Solar_8019F7AC, 1, (ObjectFunc) Solar_8019F20C, D_edata_800CBE8C, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_277 */ {(void*) Solar_8019F7AC, 1, (ObjectFunc) Solar_8019F20C, D_edata_800CBEC4, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_278 */ {(void*) NULL, 1, (ObjectFunc) Solar_8019EA7C, D_edata_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 1 },
|
||||
/* OBJ_ACTOR_279 */ {(void*) NULL, 1, (ObjectFunc) Solar_801A003C, D_edata_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 1 },
|
||||
/* OBJ_ACTOR_280 */ {(void*) D_VE1_900DD20, 0, (ObjectFunc) Venom1_80192518, D_VE1_601B7F8, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_281 */ {(void*) Venom1_80192E2C, 1, (ObjectFunc) Venom1_80192CD4, D_VE1_601B830, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_282 */ {(void*) D_VE1_901DA50, 0, (ObjectFunc) Venom1_80192CD4, D_VE1_601B868, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_283 */ {(void*) D_VE1_9023AD0, 0, (ObjectFunc) Venom1_80192EB0, D_VE1_601B8A0, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_284 */ {(void*) Venom1_801934D0, 1, (ObjectFunc) Venom1_801933DC, D_VE1_601B8D8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_285 */ {(void*) Andross_80193244, 1, (ObjectFunc) Andross_80192E94, D_edata_800CBE8C, 1000.0f, 0, 0, 20, 0, 1.0f, 1 },
|
||||
/* OBJ_ACTOR_286 */ {(void*) Andross_80188660, 1, (ObjectFunc) Andross_80188528, D_edata_800CBE8C, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_287 */ {(void*) NULL, 1, (ObjectFunc) Andross_80189724, D_edata_800CBF34, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_288 */ {(void*) NULL, 1, (ObjectFunc) Andross_801893B8, D_edata_800CBF34, 1000.0f, 0, 0, 20, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_289 */ {(void*) func_edata_800596B0, 1, (ObjectFunc) Andross_80189470, D_edata_800CBF34, 1000.0f, 0, 0, 20, 1, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_290 */ {(void*) NULL, 1, (ObjectFunc) Andross_8018933C, D_edata_800CBF34, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
|
||||
/* OBJ_ACTOR_291 */ {(void*) func_enmy_80067874, 1, (ObjectFunc) func_enmy_8006753C, D_edata_800CBEA8, 1000.0f, 0, 0, 0, 0, 1.0f, 0 },
|
||||
/* OBJ_BOSS_292 */ {(void*) Corneria_8018AA74, 2, (ObjectFunc) Corneria_80189058, D_CO_603E620, 20000.0f, 0, 0, 40, 1, 0.0f, 10 },
|
||||
/* OBJ_BOSS_293 */ {(void*) Corneria_8018ECAC, 1, (ObjectFunc) Corneria_8018C19C, D_CO_603E840, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_294 */ {(void*) Corneria_8018ED78, 1, (ObjectFunc) Corneria_8018DDAC, D_CO_603E714, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_295 */ {(void*) Corneria_8018EE84, 1, (ObjectFunc) Corneria_8018E290, D_CO_603E748, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_296 */ {(void*) Corneria_8018EF90, 1, (ObjectFunc) Corneria_8018E76C, D_CO_603E7C4, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_297 */ {(void*) Meteo_8018BACC, 1, (ObjectFunc) Meteo_8018978C, D_ME_602F75C, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_298 */ {(void*) Meteo_801887D0, 1, (ObjectFunc) Meteo_80188344, D_ME_602FA50, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_299 */ {(void*) func_boss_80042FC4, 2, (ObjectFunc) func_boss_80042FB8, D_edata_800CBF34, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_300 */ {(void*) func_boss_80042FE8, 1, (ObjectFunc) func_boss_80042FDC, D_edata_800CBF34, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_301 */ {(void*) Aquas_801BEC5C, 1, (ObjectFunc) Aquas_801BEC50, D_AQ_6030B10, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_A6 */ {(void*) Area6_8018C54C, 1, (ObjectFunc) Area6_80187944, D_A6_6028454, 2000.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_303 */ {(void*) SectorX_80193434, 2, (ObjectFunc) SectorX_80190078, D_SX_6032550, 20000.0f, 0, 0, 20, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_304 */ {(void*) SectorX_8018FF84, 2, (ObjectFunc) SectorX_8018FE38, D_SX_6032488, 1000.0f, 0, 0, 20, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_305 */ {(void*) SectorX_80190020, 2, (ObjectFunc) SectorX_8018FF20, D_SX_60324EC, 1000.0f, 0, 0, 20, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_306 */ {(void*) Titania_801982A8, 1, (ObjectFunc) Titania_80197A94,D_TI_801B83A8, 1000.0f, 0, 0, 40, 1, 0.0f, 10 },
|
||||
/* OBJ_BOSS_ZO */ {(void*) Zoness_801949DC, 2, (ObjectFunc) Zoness_80194A84, D_ZO_602C044, 1000.0f, 0, 0, 40, 0, 1.0f, 10 },
|
||||
/* OBJ_BOSS_308 */ {(void*) func_hud_8008FE78, 1, (ObjectFunc) func_hud_800907C4, D_FO_600FFE0, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
|
||||
/* OBJ_BOSS_309 */ {(void*) func_360_8002E604, 1, (ObjectFunc) func_360_8002E5E0, D_edata_800CBF34, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
|
||||
/* OBJ_BOSS_310 */ {(void*) func_360_8002E64C, 1, (ObjectFunc) func_360_8002E628, D_edata_800CBF34, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
|
||||
/* OBJ_BOSS_311 */ {(void*) Bolse_80191AFC, 2, (ObjectFunc) Bolse_801912FC, D_BO_6011C80, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
|
||||
/* OBJ_BOSS_312 */ {(void*) Venom2_80196288, 2, (ObjectFunc) Venom2_80196210, D_VE2_60166F4, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
|
||||
/* OBJ_BOSS_313 */ {(void*) SectorZ_8019E98C, 1, (ObjectFunc) SectorZ_8019E454, D_SZ_6009388, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_314 */ {(void*) SectorY_8019E2C4, 2, (ObjectFunc) SectorY_8019C888, D_edata_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_SO */ {(void*) Solar_801A71B8, 2, (ObjectFunc) Solar_801A5B3C, D_edata_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_316 */ {(void*) Katina_801968F4, 1, (ObjectFunc) Katina_801946C4, D_KA_6011058, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_317 */ {(void*) Katina_80193B1C, 1, (ObjectFunc) Katina_80193718, D_KA_601115C, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
|
||||
/* OBJ_BOSS_AQ */ {(void*) Aquas_801B4D84, 2, (ObjectFunc) Aquas_801B134C, D_AQ_6030F74, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_319 */ {(void*) Venom1_801985E4, 1, (ObjectFunc) Venom1_80194398,D_VE1_8019A9B8, 3000.0f, 0, 0, 40, 1, 0.0f, 10 },
|
||||
/* OBJ_BOSS_320 */ {(void*) Andross_801928C8, 2, (ObjectFunc) Andross_8018DBF0, D_ANDROSS_C038DC0, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_BOSS_321 */ {(void*) Andross_8018B8C0, 1, (ObjectFunc) Andross_80189B70, D_ANDROSS_C038F24, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
|
||||
/* OBJ_ITEM_LASERS */ {(void*) func_edisplay_8005CC9C, 1, (ObjectFunc) func_enmy_80067F6C, D_edata_800CBFA8, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ITEM_CHECKPOINT */ {(void*) func_edisplay_8005C5F0, 1, (ObjectFunc) func_enmy_80068914, D_edata_800CBF38, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ITEM_SILVER_RING */ {(void*) func_edisplay_8005C900, 1, (ObjectFunc) func_enmy_80068020, D_edata_800CBF54, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ITEM_SILVER_STAR */ {(void*) func_edisplay_8005C9C0, 1, (ObjectFunc) func_enmy_800685D8, D_edata_800CBF54, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ITEM_METEO_WARP */ {(void*) func_edisplay_8005CDA8, 1, (ObjectFunc) func_enmy_80068688, D_edata_800CBF70, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ITEM_BOMB */ {(void*) func_edisplay_8005CB44, 1, (ObjectFunc) func_enmy_80067BEC, D_edata_800CBFC8, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ITEM_328 */ {(void*) NULL, 1, (ObjectFunc) func_enmy_80068C88, D_edata_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ITEM_329 */ {(void*) NULL, 1, (ObjectFunc) func_enmy_80068C88, D_edata_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ITEM_330 */ {(void*) NULL, 1, (ObjectFunc) func_enmy_80068C88, D_edata_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ITEM_331 */ {(void*) NULL, 1, (ObjectFunc) func_enmy_80068C88, D_edata_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ITEM_332 */ {(void*) NULL, 1, (ObjectFunc) func_enmy_80068C88, D_edata_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ITEM_333 */ {(void*) NULL, 1, (ObjectFunc) func_enmy_80068C88, D_edata_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ITEM_334 */ {(void*) NULL, 1, (ObjectFunc) func_enmy_80068C48, D_edata_800CBF18, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ITEM_1UP */ {(void*) D_1022120, 0, (ObjectFunc) func_enmy_80067B1C, D_edata_800CBE8C, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ITEM_GOLD_RING */ {(void*) func_edisplay_8005CA80, 1, (ObjectFunc) func_enmy_800685F8, D_edata_800CBF54, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ITEM_WING_REPAIR */ {(void*) D_arwing_3007650, 0, (ObjectFunc) func_enmy_80068618, D_edata_800CBFA8, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_ITEM_TRAINING_RING */ {(void*) gItemTrainingRingDL, 0, (ObjectFunc) Training_80198968, D_TR_6009CFC, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_339 */ {(void*) func_effect_8007D55C, 1, (ObjectFunc) func_effect_8007D2F4, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_340 */ {(void*) func_effect_8007D55C, 1, (ObjectFunc) func_effect_8007D748, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_341 */ {(void*) func_effect_8007D55C, 1, (ObjectFunc) func_effect_8007D8A8, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_342 */ {(void*) func_effect_8007E330, 1, (ObjectFunc) func_effect_8007E298, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_343 */ {(void*) func_effect_8007CAF0, 1, (ObjectFunc) func_effect_8007C9E0, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_344 */ {(void*) func_effect_8007868C, 1, (ObjectFunc) func_effect_8007E014, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_345 */ {(void*) func_effect_8007879C, 1, (ObjectFunc) func_effect_8007E258, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_346 */ {(void*) func_effect_800788B0, 1, (ObjectFunc) func_effect_8007F438, NULL, -200.0f, 1, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_347 */ {(void*) func_effect_800783C0, 1, (ObjectFunc) func_effect_8007B758, NULL, 100.0f, 1, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_348 */ {(void*) func_effect_80078A64, 1, (ObjectFunc) func_effect_8007F6B0, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_349 */ {(void*) NULL, 1, (ObjectFunc) func_effect_8007F958, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_350 */ {(void*) NULL, 1, (ObjectFunc) func_effect_8007FBE0, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_351 */ {(void*) func_effect_80078438, 1, (ObjectFunc) func_effect_8007E3E4, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_352 */ {(void*) func_effect_800784B4, 1, (ObjectFunc) func_effect_8007B62C, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_353 */ {(void*) func_effect_80078B8C, 1, (ObjectFunc) func_effect_8007FE88, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_354 */ {(void*) SectorY_80197C64, 1, (ObjectFunc) func_effect_8007FE88, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_355 */ {(void*) func_effect_80078AEC, 1, (ObjectFunc) func_effect_800802B8, NULL, 100.0f, 1, 0, 20, 1, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_356 */ {(void*) func_effect_80078C84, 1, (ObjectFunc) func_effect_800802F8, NULL, 100.0f, 1, 0, 20, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_357 */ {(void*) func_effect_800798F0, 1, (ObjectFunc) func_effect_8007968C, NULL, 100.0f, 0, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_358 */ {(void*) Katina_80192A68, 1, (ObjectFunc) Katina_80192984, NULL, 100.0f, 1, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_359 */ {(void*) func_effect_8007AA60, 1, (ObjectFunc) func_effect_8007A994, NULL, -100.0f, 1, 2, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_360 */ {(void*) func_effect_8007BEE8, 1, (ObjectFunc) func_effect_8007BE54, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_361 */ {(void*) func_effect_8007BEE8, 1, (ObjectFunc) func_effect_8007BDE0, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_362 */ {(void*) func_effect_8007BEE8, 1, (ObjectFunc) func_effect_8007BCE8, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_363 */ {(void*) func_hud_80094BBC, 1, (ObjectFunc) func_hud_80094954, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_364 */ {(void*) func_effect_8007B9DC, 1, (ObjectFunc) func_effect_8007B960, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_365 */ {(void*) func_effect_8007E5CC, 1, (ObjectFunc) func_effect_8007E45C, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_366 */ {(void*) func_effect_80078550, 1, (ObjectFunc) Aquas_801AC918, NULL, 100.0f, 1, 2, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_367 */ {(void*) func_effect_80078604, 1, (ObjectFunc) func_effect_8007E648, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_368 */ {(void*) Titania_80188FA8, 1, (ObjectFunc) Titania_80188F60, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_369 */ {(void*) Meteo_8018DCE4, 1, (ObjectFunc) Meteo_80188CAC, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_370 */ {(void*) Meteo_8018DBEC, 1, (ObjectFunc) Meteo_80188FAC, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_371 */ {(void*) Meteo_8018DE14, 1, (ObjectFunc) Meteo_80189114, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_372 */ {(void*) func_effect_80077A00, 1, (ObjectFunc) func_effect_8007AB50, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_373 */ {(void*) NULL, 1, (ObjectFunc) func_effect_8007A748, NULL, 500.0f, 0, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_374 */ {(void*) func_effect_8007DED4, 1, (ObjectFunc) func_effect_8007DB70, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_375 */ {(void*) func_effect_8007DAE4, 1, (ObjectFunc) func_effect_8007DA58, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_376 */ {(void*) func_effect_80078CE8, 1, (ObjectFunc) func_effect_80080360, NULL, -200.0f, 1, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_377 */ {(void*) func_effect_80078BE0, 1, (ObjectFunc) func_effect_800802D8, NULL, 100.0f, 1, 0, 20, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_378 */ {(void*) Macbeth_801A5AF0, 1, (ObjectFunc) Macbeth_801A57D0, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_379 */ {(void*) Macbeth_801AEAA0, 1, (ObjectFunc) Macbeth_801AE87C, NULL, 100.0f, 1, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_380 */ {(void*) Macbeth_801A5D68, 1, (ObjectFunc) Macbeth_801A5B4C, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_381 */ {(void*) func_effect_80077A7C, 1, (ObjectFunc) func_effect_8007B0F4, NULL, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_382 */ {(void*) NULL, 1, (ObjectFunc) func_effect_8007B040, NULL, 200.0f, 0, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_383 */ {(void*) func_effect_8007A3C0, 1, (ObjectFunc) func_effect_8007A28C, NULL, 10000.0f, 0, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_384 */ {(void*) func_effect_80077B84, 1, (ObjectFunc) func_effect_8007B3B8, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_385 */ {(void*) func_effect_80078038, 1, (ObjectFunc) func_effect_8007B5C0, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_386 */ {(void*) NULL, 1, (ObjectFunc) func_effect_8007C250, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_387 */ {(void*) NULL, 1, (ObjectFunc) func_effect_8007C8C4, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_388 */ {(void*) func_effect_80077B78, 1, (ObjectFunc) func_effect_8007B670, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_389 */ {(void*) func_effect_800780F8, 1, (ObjectFunc) func_effect_8007B67C, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_390 */ {(void*) NULL, 1, (ObjectFunc) func_effect_8007C50C, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_391 */ {(void*) func_effect_80083B8C, 1, (ObjectFunc) func_effect_800837EC, NULL, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_392 */ {(void*) Solar_801A0AF0, 1, (ObjectFunc) Solar_801A0120, NULL, 300.0f, 1, 2, 10, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_393 */ {(void*) func_effect_80078F78, 1, (ObjectFunc) func_effect_80078EBC, NULL, 300.0f, 1, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_394 */ {(void*) func_effect_80080D04, 1, (ObjectFunc) func_effect_80080ACC, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_395 */ {(void*) func_effect_80082F78, 1, (ObjectFunc) func_effect_80081C5C, NULL, 300.0f, 0, 1, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_396 */ {(void*) Andross_8018CF98, 1, (ObjectFunc) Andross_8018CAD4, NULL, 2000.0f, 0, 1, 40, 2, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_397 */ {(void*) Bolse_80191180, 1, (ObjectFunc) Bolse_80191054, NULL, 2000.0f, 0, 1, 20, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_398 */ {(void*) func_effect_8008092C, 1, (ObjectFunc) func_effect_8008040C, NULL, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_EFFECT_399 */ {(void*) func_effect_80084194, 1, (ObjectFunc) func_effect_80083FA8, NULL, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
};
|
||||
// clang-format on
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,48 @@
|
||||
#include "global.h"
|
||||
|
||||
void func_fade_80084370(s32 arg0) {
|
||||
Graphics_FillRectangle(&gMasterDisp, 0, 0, arg0, SCREEN_HEIGHT, 0, 0, 0, 255);
|
||||
Graphics_FillRectangle(&gMasterDisp, SCREEN_WIDTH - arg0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0, 0, 255);
|
||||
}
|
||||
|
||||
void func_fade_800843FC(s32 arg0) {
|
||||
Graphics_FillRectangle(&gMasterDisp, 0, 0, SCREEN_WIDTH, arg0, 0, 0, 0, 255);
|
||||
Graphics_FillRectangle(&gMasterDisp, 0, SCREEN_HEIGHT - arg0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0, 0, 255);
|
||||
}
|
||||
|
||||
void func_fade_80084488(s32 arg0) {
|
||||
s32 var_s1;
|
||||
|
||||
RCP_SetupDL_12();
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -150.0f, 0);
|
||||
for (var_s1 = 0; var_s1 < MIN(360, arg0 * 15); var_s1 += 15) {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, MIN((arg0 - (var_s1 / 15)) * 15, 255));
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Matrix_RotateZ(gGfxMatrix, var_s1 * M_DTOR, 1);
|
||||
Matrix_Scale(gGfxMatrix, 0.53f, 1.0f, 1.0f, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_Gfx_800D9688);
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
}
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
}
|
||||
|
||||
void func_fade_80084688(s32 arg0, s32 arg1) {
|
||||
if (arg1 != 0) {
|
||||
switch (arg0) {
|
||||
case 0:
|
||||
func_fade_80084488(arg1);
|
||||
break;
|
||||
case 1:
|
||||
func_fade_80084370(arg1);
|
||||
break;
|
||||
case 2:
|
||||
func_fade_800843FC(arg1);
|
||||
break;
|
||||
default:
|
||||
(void) "そのような フェード は ない (%d)\n"; // There is no such fade
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,564 @@
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "global.h"
|
||||
#include "sf64dma.h"
|
||||
#include "assets/ast_logo.h"
|
||||
|
||||
f32 D_game_80161A10;
|
||||
f32 D_game_80161A14;
|
||||
s32 gPlayerInactive[4];
|
||||
s32 D_game_80161A28;
|
||||
u8 D_game_80161A2C;
|
||||
u16 D_game_80161A2E;
|
||||
u16 gNextLevel;
|
||||
u16 gNextGameState;
|
||||
u16 D_game_80161A34;
|
||||
u16 gBgColor;
|
||||
u8 gBlurAlpha;
|
||||
u8 D_game_80161A39;
|
||||
f32 D_game_80161A3C;
|
||||
f32 D_game_80161A40;
|
||||
f32 D_game_80161A44;
|
||||
|
||||
s32 D_game_800D2860[4] = { true, true, true, true };
|
||||
s32 D_game_800D2870 = 0;
|
||||
static s32 D_game_800D2874[] = { 0, 160, 0, 160 };
|
||||
static s32 D_game_800D2884[] = { 159, 319, 159, 319 };
|
||||
static s32 D_game_800D2894[] = { 0, 0, 120, 120 };
|
||||
static s32 D_game_800D28A4[] = { 119, 119, 239, 239 };
|
||||
static s32 sOverlaySetups[] = {
|
||||
/* LEVEL_CORNERIA */ OVL_SETUP_CORNERIA,
|
||||
/* LEVEL_METEO */ OVL_SETUP_METEO,
|
||||
/* LEVEL_SECTOR_X */ OVL_SETUP_SECTOR_X,
|
||||
/* LEVEL_AREA_6 */ OVL_SETUP_AREA_6,
|
||||
/* LEVEL_UNK_4 */ OVL_SETUP_UNK_4,
|
||||
/* LEVEL_SECTOR_Y */ OVL_SETUP_SECTOR_Y,
|
||||
/* LEVEL_VENOM_1 */ OVL_SETUP_VENOM_1,
|
||||
/* LEVEL_SOLAR */ OVL_SETUP_SOLAR,
|
||||
/* LEVEL_ZONESS */ OVL_SETUP_ZONESS,
|
||||
/* LEVEL_VENOM_ANDROSS */ OVL_SETUP_VENOM_ANDROSS,
|
||||
/* LEVEL_TRAINING */ OVL_SETUP_TRAINING,
|
||||
/* LEVEL_MACBETH */ OVL_SETUP_MACBETH,
|
||||
/* LEVEL_TITANIA */ OVL_SETUP_TITANIA,
|
||||
/* LEVEL_AQUAS */ OVL_SETUP_AQUAS,
|
||||
/* LEVEL_FORTUNA */ OVL_SETUP_FORTUNA,
|
||||
/* LEVEL_UNK_15 */ OVL_SETUP_TITLE,
|
||||
/* LEVEL_KATINA */ OVL_SETUP_KATINA,
|
||||
/* LEVEL_BOLSE */ OVL_SETUP_BOLSE,
|
||||
/* LEVEL_SECTOR_Z */ OVL_SETUP_SECTOR_Z,
|
||||
/* LEVEL_VENOM_2 */ OVL_SETUP_VENOM_2,
|
||||
/* LEVEL_VERSUS */ OVL_SETUP_VERSUS,
|
||||
};
|
||||
|
||||
void Game_Initialize(void) {
|
||||
Memory_FreeAll();
|
||||
Rand_Init();
|
||||
Rand_SetSeed(1, 29000, 9876);
|
||||
gGameState = GSTATE_BOOT;
|
||||
D_Timer_8017783C = 0;
|
||||
gBgColor = 0;
|
||||
gBlurAlpha = 0xFF;
|
||||
D_game_80161A3C = 45.0f;
|
||||
D_game_80161A40 = 10.0f;
|
||||
D_game_80161A44 = 12800.0f;
|
||||
D_game_80161A10 = D_game_80161A14 = 0.0f;
|
||||
gOverlaySetup = OVL_SETUP_LOGO;
|
||||
gOverlayStage = 0;
|
||||
Overlay_InitDma();
|
||||
D_game_80161A39 = true;
|
||||
}
|
||||
|
||||
void Game_SetGameState(void) {
|
||||
D_game_80161A14 = D_game_80161A10;
|
||||
|
||||
if (gNextGameState == GSTATE_NONE) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (gNextGameState) {
|
||||
case GSTATE_PLAY:
|
||||
gCurrentLevel = gNextLevel;
|
||||
func_play_800A5844();
|
||||
D_ctx_80177854 = 0;
|
||||
D_ctx_8017827C = D_game_80161A2E;
|
||||
D_game_80161A2E = 0;
|
||||
if ((D_ctx_8017827C != 0) && (gCurrentLevel != LEVEL_VENOM_ANDROSS)) {
|
||||
D_ctx_8017782C = 0;
|
||||
}
|
||||
break;
|
||||
case GSTATE_MAP:
|
||||
D_ctx_80177B40 = 0;
|
||||
break;
|
||||
case GSTATE_GAME_OVER:
|
||||
D_ctx_80177868 = 0;
|
||||
break;
|
||||
}
|
||||
Memory_FreeAll();
|
||||
func_play_800A6148();
|
||||
gGameState = gNextGameState;
|
||||
D_Timer_8017783C = 3;
|
||||
D_360_8015F924 = 0;
|
||||
gNextGameState = GSTATE_NONE;
|
||||
gOverlayStage = 0;
|
||||
gFillScreenColor = gBgColor = 0;
|
||||
D_ctx_80177D20 = 0.0f;
|
||||
if ((gCurrentLevel == LEVEL_VENOM_2) && (D_ctx_8017827C == 2)) {
|
||||
gFillScreenColor = gBgColor = 0xFFFF; // 248, 248, 248
|
||||
D_ctx_80178348 = D_ctx_80178350 = D_ctx_80178354 = 255;
|
||||
} else {
|
||||
D_ctx_80178348 = D_ctx_80178350 = D_ctx_80178354 = 0;
|
||||
Audio_FadeOutAll(1);
|
||||
}
|
||||
D_ctx_80178340 = 255;
|
||||
D_ctx_80178380[0] = 0;
|
||||
gRadioState = 0;
|
||||
D_ctx_80178428 = 0.0f;
|
||||
gBlurAlpha = 255;
|
||||
gDrawMode = DRAWMODE_0;
|
||||
Audio_ClearVoice();
|
||||
Audio_SetBaseSfxReverb(0);
|
||||
}
|
||||
|
||||
bool func_game_800A1B6C(void) {
|
||||
static u8 sHoldTimer = 0;
|
||||
static u8 sOverlaySelect = 99;
|
||||
static u8 sCurrentOverlay = 99;
|
||||
static u8 sCurrentStage = 99;
|
||||
|
||||
if (gOverlaySetup != sCurrentOverlay) {
|
||||
sHoldTimer = 2;
|
||||
sCurrentOverlay = gOverlaySetup;
|
||||
}
|
||||
if (sHoldTimer == 0) {
|
||||
sOverlaySelect = sCurrentOverlay;
|
||||
sCurrentStage = gOverlayStage;
|
||||
}
|
||||
Overlay_Load(sOverlaySelect, sCurrentStage);
|
||||
|
||||
if (sHoldTimer) {
|
||||
sHoldTimer--;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void func_game_800A1C14(Gfx** arg0) {
|
||||
gSPDisplayList((*arg0)++, gRcpInitDL);
|
||||
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, 8, 8, SCREEN_WIDTH - 8, SCREEN_HEIGHT - 8);
|
||||
gDPSetDepthImage((*arg0)++, &gZBuffer);
|
||||
gDPSetColorImage((*arg0)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, &gZBuffer);
|
||||
gDPSetFillColor((*arg0)++, FILL_COLOR(GPACK_ZDZ(G_MAXFBZ, 0)));
|
||||
gDPFillRectangle((*arg0)++, 8, 8, SCREEN_WIDTH - 8 - 1, SCREEN_HEIGHT - 8 - 1);
|
||||
gDPSetColorImage((*arg0)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, gFrameBuffer);
|
||||
|
||||
if (gBlurAlpha < 0xFF) {
|
||||
gDPPipeSync((*arg0)++);
|
||||
gDPSetCycleType((*arg0)++, G_CYC_1CYCLE);
|
||||
gDPSetCombineMode((*arg0)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
|
||||
gDPSetRenderMode((*arg0)++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
|
||||
gDPSetPrimColor((*arg0)++, 0x00, 0x00, RGBA16_RED(gBgColor) * 8, RGBA16_GRN(gBgColor) * 8,
|
||||
RGBA16_BLU(gBgColor) * 8, gBlurAlpha);
|
||||
} else {
|
||||
gDPSetFillColor((*arg0)++, FILL_COLOR(gBgColor | 1));
|
||||
}
|
||||
gDPFillRectangle((*arg0)++, 8, 8, SCREEN_WIDTH - 8 - 1, SCREEN_HEIGHT - 8);
|
||||
gDPPipeSync((*arg0)++);
|
||||
gDPSetColorDither((*arg0)++, G_CD_MAGICSQ);
|
||||
}
|
||||
|
||||
void func_game_800A1E68(Gfx** arg0) {
|
||||
gSPDisplayList((*arg0)++, gRcpInitDL);
|
||||
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT * 3);
|
||||
gDPSetFillColor((*arg0)++, FILL_COLOR(0x0001));
|
||||
gDPSetColorImage((*arg0)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, gFrameBuffers[0].data);
|
||||
gDPFillRectangle((*arg0)++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT * 3 - 1);
|
||||
gDPPipeSync((*arg0)++);
|
||||
gDPSetColorDither((*arg0)++, G_CD_MAGICSQ);
|
||||
}
|
||||
|
||||
void func_game_800A1F44(void) {
|
||||
gViewport->vp.vscale[0] = gViewport->vp.vtrans[0] = SCREEN_WIDTH * 2;
|
||||
gViewport->vp.vscale[1] = gViewport->vp.vtrans[1] = SCREEN_HEIGHT * 2;
|
||||
gViewport->vp.vscale[2] = gViewport->vp.vtrans[2] = G_MAXZ / 2;
|
||||
gViewport->vp.vscale[3] = gViewport->vp.vtrans[3] = 0;
|
||||
}
|
||||
|
||||
void func_game_800A1FB0(Gfx** arg0, u8 arg1, u8 arg2) {
|
||||
if ((arg1 != 1) && (arg1 == 4)) {
|
||||
switch (arg2) {
|
||||
case 0:
|
||||
gViewport->vp.vscale[0] = SCREEN_WIDTH * (D_game_80161A14 - 1.0f) * 2;
|
||||
gViewport->vp.vscale[1] = SCREEN_HEIGHT * (D_game_80161A14 - 1.0f) * 2;
|
||||
gViewport->vp.vscale[2] = G_MAXZ / 2;
|
||||
gViewport->vp.vscale[3] = 0;
|
||||
gViewport->vp.vtrans[0] = SCREEN_WIDTH * (2.0f - D_game_80161A14) * 2;
|
||||
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * (2.0f - D_game_80161A14) * 2;
|
||||
gViewport->vp.vtrans[2] = G_MAXZ / 2;
|
||||
gViewport->vp.vtrans[3] = 0;
|
||||
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, 8, 8, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2);
|
||||
break;
|
||||
case 1:
|
||||
gViewport->vp.vscale[0] = SCREEN_WIDTH * (D_game_80161A14 - 1.0f) * 2;
|
||||
gViewport->vp.vscale[1] = SCREEN_HEIGHT * (D_game_80161A14 - 1.0f) * 2;
|
||||
gViewport->vp.vscale[2] = G_MAXZ / 2;
|
||||
gViewport->vp.vscale[3] = 0;
|
||||
gViewport->vp.vtrans[0] = SCREEN_WIDTH * D_game_80161A14 * 2;
|
||||
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * (2.0f - D_game_80161A14) * 2;
|
||||
gViewport->vp.vtrans[2] = G_MAXZ / 2;
|
||||
gViewport->vp.vtrans[3] = 0;
|
||||
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, SCREEN_WIDTH / 2, 8, SCREEN_WIDTH - 8, SCREEN_HEIGHT / 2);
|
||||
break;
|
||||
case 2:
|
||||
gViewport->vp.vscale[0] = SCREEN_WIDTH * (D_game_80161A14 - 1.0f) * 2;
|
||||
gViewport->vp.vscale[1] = SCREEN_HEIGHT * (D_game_80161A14 - 1.0f) * 2;
|
||||
gViewport->vp.vscale[2] = G_MAXZ / 2;
|
||||
gViewport->vp.vscale[3] = 0;
|
||||
gViewport->vp.vtrans[0] = SCREEN_WIDTH * (2.0f - D_game_80161A14) * 2;
|
||||
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * D_game_80161A14 * 2;
|
||||
gViewport->vp.vtrans[2] = G_MAXZ / 2;
|
||||
gViewport->vp.vtrans[3] = 0;
|
||||
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, 8, SCREEN_HEIGHT / 2, SCREEN_WIDTH / 2, SCREEN_HEIGHT - 8);
|
||||
break;
|
||||
case 3:
|
||||
gViewport->vp.vscale[0] = SCREEN_WIDTH * (D_game_80161A14 - 1.0f) * 2;
|
||||
gViewport->vp.vscale[1] = SCREEN_HEIGHT * (D_game_80161A14 - 1.0f) * 2;
|
||||
gViewport->vp.vscale[2] = G_MAXZ / 2;
|
||||
gViewport->vp.vscale[3] = 0;
|
||||
gViewport->vp.vtrans[0] = SCREEN_WIDTH * D_game_80161A14 * 2;
|
||||
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * D_game_80161A14 * 2;
|
||||
gViewport->vp.vtrans[2] = G_MAXZ / 2;
|
||||
gViewport->vp.vtrans[3] = 0;
|
||||
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2, SCREEN_WIDTH - 8,
|
||||
SCREEN_HEIGHT - 8);
|
||||
break;
|
||||
default:
|
||||
func_game_800A1F44();
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
func_game_800A1F44();
|
||||
if (1) {}
|
||||
}
|
||||
gSPViewport((*arg0)++, gViewport++);
|
||||
}
|
||||
|
||||
void func_game_800A24DC(s32 arg0) {
|
||||
switch (gDrawMode) {
|
||||
case DRAWMODE_0:
|
||||
break;
|
||||
case DRAWMODE_1:
|
||||
func_bg_8003DAF0();
|
||||
OvlMenu_CallFunction(104, NULL);
|
||||
break;
|
||||
case DRAWMODE_2:
|
||||
func_bg_8003DAF0();
|
||||
OvlMenu_CallFunction(108, NULL);
|
||||
break;
|
||||
case DRAW_MAP:
|
||||
func_bg_8003DAF0();
|
||||
OvlMenu_CallFunction(106, NULL);
|
||||
break;
|
||||
case DRAWMODE_4:
|
||||
gPlayerNum = arg0;
|
||||
func_display_80057D00();
|
||||
break;
|
||||
case DRAWMODE_5:
|
||||
func_bg_8003DAF0();
|
||||
OvlMenu_CallFunction(110, NULL);
|
||||
break;
|
||||
case DRAWMODE_6:
|
||||
func_versus_800C2190();
|
||||
break;
|
||||
case DRAWMODE_7:
|
||||
gPlayerNum = arg0;
|
||||
func_800A3CA0();
|
||||
break;
|
||||
case DRAWMODE_8:
|
||||
func_bg_8003DAF0();
|
||||
gPlayerNum = arg0;
|
||||
Ending_8018AAC4();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void func_game_800A25DC(void) {
|
||||
switch (gGameState) {
|
||||
case GSTATE_INIT:
|
||||
gOverlaySetup = OVL_SETUP_TITLE;
|
||||
gOverlayStage = 0;
|
||||
break;
|
||||
case GSTATE_TITLE:
|
||||
gOverlaySetup = OVL_SETUP_TITLE;
|
||||
gOverlayStage = 0;
|
||||
break;
|
||||
case GSTATE_MENU:
|
||||
gOverlaySetup = OVL_SETUP_MENU;
|
||||
gOverlayStage = 0;
|
||||
break;
|
||||
case GSTATE_MAP:
|
||||
gOverlaySetup = OVL_SETUP_MAP;
|
||||
gOverlayStage = 0;
|
||||
return;
|
||||
case GSTATE_VS_INIT:
|
||||
gOverlaySetup = OVL_SETUP_VERSUS;
|
||||
break;
|
||||
case GSTATE_PLAY:
|
||||
gOverlaySetup = sOverlaySetups[gCurrentLevel];
|
||||
break;
|
||||
case GSTATE_GAME_OVER:
|
||||
gOverlaySetup = OVL_SETUP_GAME_OVER;
|
||||
gOverlayStage = 0;
|
||||
break;
|
||||
case GSTATE_CREDITS:
|
||||
gOverlaySetup = OVL_SETUP_CREDITS;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Game_Update(void) {
|
||||
s32 i;
|
||||
u8 spBB;
|
||||
u8 var_v0_3;
|
||||
|
||||
Game_SetGameState();
|
||||
if (D_game_80161A39) {
|
||||
func_game_800A1E68(&gUnkDisp1);
|
||||
D_game_80161A39 = false;
|
||||
return;
|
||||
}
|
||||
func_game_800A1C14(&gUnkDisp1);
|
||||
func_game_800A25DC();
|
||||
if (func_game_800A1B6C() != true) {
|
||||
Lib_Perspective(&gUnkDisp1);
|
||||
func_game_800A1FB0(&gUnkDisp1, gCamCount, 0);
|
||||
if (D_Timer_8017783C != 0) {
|
||||
D_Timer_8017783C--;
|
||||
}
|
||||
switch (gGameState) {
|
||||
case GSTATE_BOOT:
|
||||
D_Timer_8017783C = 2;
|
||||
gGameState++;
|
||||
break;
|
||||
case GSTATE_BOOT_WAIT:
|
||||
if (D_Timer_8017783C == 0) {
|
||||
gGameState++;
|
||||
}
|
||||
break;
|
||||
case GSTATE_SHOW_LOGO:
|
||||
RCP_SetupDL(&gMasterDisp, 0x4C);
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
|
||||
TextureRect_8bIA(&gMasterDisp, &gNintendoLogo[128 * 16 * 0], 128, 16, 100.0f, 86.0f, 1.0f, 1.0f);
|
||||
TextureRect_8bIA(&gMasterDisp, &gNintendoLogo[128 * 16 * 1], 128, 16, 100.0f, 102.0f, 1.0f, 1.0f);
|
||||
TextureRect_8bIA(&gMasterDisp, &gNintendoLogo[128 * 16 * 2], 128, 16, 100.0f, 118.0f, 1.0f, 1.0f);
|
||||
TextureRect_8bIA(&gMasterDisp, &gNintendoLogo[128 * 16 * 3], 128, 16, 100.0f, 134.0f, 1.0f, 1.0f);
|
||||
TextureRect_8bIA(&gMasterDisp, &gNintendoLogo[128 * 16 * 4], 128, 10, 100.0f, 150.0f, 1.0f, 1.0f);
|
||||
gGameState++;
|
||||
break;
|
||||
case GSTATE_CHECK_SAVE:
|
||||
if (Save_Read() != 0) {
|
||||
gSaveFile = *((SaveFile*) &gDefaultSave);
|
||||
Save_Write();
|
||||
}
|
||||
gGameState++;
|
||||
Timer_CreateTask(MSEC_TO_CYCLES(1000), Timer_Increment, (s32*) &gGameState, 1);
|
||||
/* fallthrough */
|
||||
case GSTATE_LOGO_WAIT:
|
||||
RCP_SetupDL(&gMasterDisp, 0x4C);
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
|
||||
TextureRect_8bIA(&gMasterDisp, &gNintendoLogo[128 * 16 * 0], 128, 16, 100.0f, 86.0f, 1.0f, 1.0f);
|
||||
TextureRect_8bIA(&gMasterDisp, &gNintendoLogo[128 * 16 * 1], 128, 16, 100.0f, 102.0f, 1.0f, 1.0f);
|
||||
TextureRect_8bIA(&gMasterDisp, &gNintendoLogo[128 * 16 * 2], 128, 16, 100.0f, 118.0f, 1.0f, 1.0f);
|
||||
TextureRect_8bIA(&gMasterDisp, &gNintendoLogo[128 * 16 * 3], 128, 16, 100.0f, 134.0f, 1.0f, 1.0f);
|
||||
TextureRect_8bIA(&gMasterDisp, &gNintendoLogo[128 * 16 * 4], 128, 10, 100.0f, 150.0f, 1.0f, 1.0f);
|
||||
break;
|
||||
case GSTATE_START:
|
||||
gGameState = GSTATE_INIT;
|
||||
gOverlaySetup = OVL_SETUP_TITLE;
|
||||
gOverlayStage = 0;
|
||||
break;
|
||||
case GSTATE_INIT:
|
||||
gGameState = GSTATE_TITLE;
|
||||
D_ctx_80177AE0 = 1;
|
||||
D_ctx_80177824 = 1;
|
||||
Memory_FreeAll();
|
||||
func_play_800A6148();
|
||||
gCamCount = 1;
|
||||
gLifeCount[0] = 2;
|
||||
D_ctx_80177D20 = 0.0f;
|
||||
D_hud_8016170C = gCsFrameCount = D_ctx_80177830 = D_ctx_80177838 = D_ctx_80177840 = D_versus_80178754 =
|
||||
gVersusMode = D_ctx_80177AE0 = D_ctx_80178410 = D_ctx_80177B40 = D_ctx_80177854 =
|
||||
gOptionMenuStatus = gDrawMode = gShowBossHealth = D_game_80161A2C = gBgColor = D_ctx_80178340 =
|
||||
0;
|
||||
gNextGameState = D_ctx_80177C94 = D_ctx_80177CAC = D_ctx_80177CB4 = D_ctx_80177CBC = D_ctx_80177CC4 =
|
||||
D_ctx_80177C9C = D_ctx_80177CA4 = D_play_80161A5C = D_game_80161A34 = 0;
|
||||
for (i = 0; i < 4; i++) {
|
||||
gBoostButton[i] = L_CBUTTONS;
|
||||
gBrakeButton[i] = D_CBUTTONS;
|
||||
gShootButton[i] = A_BUTTON;
|
||||
gBombButton[i] = B_BUTTON;
|
||||
|
||||
D_ctx_80177958[i] = 1.0f;
|
||||
|
||||
D_ctx_80177858[i] = 3;
|
||||
D_ctx_80177870[i] = 0;
|
||||
D_game_800D2860[i] = true;
|
||||
D_ctx_80178380[i] = 0;
|
||||
}
|
||||
gVersusStage = 0;
|
||||
D_ctx_801778A4 = 3;
|
||||
gBlurAlpha = 255;
|
||||
for (i = 0; i < 30; i++) {
|
||||
D_play_800D3180[i] = 0;
|
||||
}
|
||||
gExpertMode = false;
|
||||
gSoundMode = gSaveFile.save.data.soundMode;
|
||||
switch (gSoundMode) {
|
||||
case OPTIONSOUND_STEREO:
|
||||
var_v0_3 = SOUNDMODE_STEREO;
|
||||
break;
|
||||
case OPTIONSOUND_MONO:
|
||||
var_v0_3 = SOUNDMODE_MONO;
|
||||
break;
|
||||
case OPTIONSOUND_HEADSET:
|
||||
var_v0_3 = SOUNDMODE_HEADSET;
|
||||
break;
|
||||
default:
|
||||
gSoundMode = OPTIONSOUND_STEREO;
|
||||
var_v0_3 = SOUNDMODE_STEREO;
|
||||
break;
|
||||
}
|
||||
SEQCMD_SET_SOUND_MODE(var_v0_3);
|
||||
gVolumeSettings[0] = gSaveFile.save.data.musicVolume;
|
||||
gVolumeSettings[1] = gSaveFile.save.data.voiceVolume;
|
||||
gVolumeSettings[2] = gSaveFile.save.data.sfxVolume;
|
||||
if (gVolumeSettings[0] > 99) {
|
||||
gVolumeSettings[0] = 99;
|
||||
}
|
||||
if (gVolumeSettings[1] > 99) {
|
||||
gVolumeSettings[1] = 99;
|
||||
}
|
||||
if (gVolumeSettings[2] > 99) {
|
||||
gVolumeSettings[2] = 99;
|
||||
}
|
||||
func_8001D8A8(0, gVolumeSettings[0]);
|
||||
func_8001D8A8(1, gVolumeSettings[1]);
|
||||
func_8001D8A8(2, gVolumeSettings[2]);
|
||||
break;
|
||||
case GSTATE_TITLE:
|
||||
OvlMenu_CallFunction(103, NULL);
|
||||
break;
|
||||
case GSTATE_MENU:
|
||||
OvlMenu_CallFunction(107, NULL);
|
||||
break;
|
||||
case GSTATE_MAP:
|
||||
Map_8019E8D0();
|
||||
break;
|
||||
case GSTATE_VS_INIT:
|
||||
func_versus_800C20B0();
|
||||
break;
|
||||
case GSTATE_PLAY:
|
||||
func_play_800B86CC();
|
||||
break;
|
||||
case GSTATE_GAME_OVER:
|
||||
OvlMenu_CallFunction(109, NULL);
|
||||
break;
|
||||
case GSTATE_CREDITS:
|
||||
gDrawMode = DRAWMODE_8;
|
||||
Ending_8018A96C();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
func_game_800A24DC(0);
|
||||
if (gCamCount == 2) {
|
||||
func_game_800A1FB0(&gMasterDisp, gCamCount, 1);
|
||||
func_game_800A24DC(1);
|
||||
gDPPipeSync(gMasterDisp++);
|
||||
gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, 8, 8, SCREEN_WIDTH - 8, SCREEN_HEIGHT - 8);
|
||||
} else if ((gCamCount == 4) && (gDrawMode != DRAWMODE_0)) {
|
||||
func_game_800A1FB0(&gMasterDisp, gCamCount, 3);
|
||||
func_game_800A24DC(3);
|
||||
func_game_800A1FB0(&gMasterDisp, gCamCount, 2);
|
||||
func_game_800A24DC(2);
|
||||
func_game_800A1FB0(&gMasterDisp, gCamCount, 1);
|
||||
func_game_800A24DC(1);
|
||||
gDPPipeSync(gMasterDisp++);
|
||||
gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, 8, 8, SCREEN_WIDTH - 8, SCREEN_HEIGHT - 8);
|
||||
gDPSetColorDither(gMasterDisp++, G_CD_NOISE);
|
||||
gDPSetAlphaDither(gMasterDisp++, G_AD_NOISE);
|
||||
gDPSetCycleType(gMasterDisp++, G_CYC_1CYCLE);
|
||||
gDPSetCombineMode(gMasterDisp++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
|
||||
gDPSetRenderMode(gMasterDisp++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x0, 0, 0, 0, 0);
|
||||
gDPFillRectangle(gMasterDisp++, SCREEN_WIDTH / 2 - 3, 8, SCREEN_WIDTH / 2 + 2, SCREEN_HEIGHT - 8);
|
||||
gDPFillRectangle(gMasterDisp++, 8, SCREEN_HEIGHT / 2 - 3, SCREEN_WIDTH - 8, SCREEN_HEIGHT / 2 + 2);
|
||||
|
||||
if (gLevelType == LEVELTYPE_PLANET) {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x0, 0, 0, 0, 255);
|
||||
} else {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x0, 100, 100, 255, 255);
|
||||
}
|
||||
gDPFillRectangle(gMasterDisp++, SCREEN_WIDTH / 2 - 2, 8, SCREEN_WIDTH / 2 + 1, SCREEN_HEIGHT - 8);
|
||||
gDPFillRectangle(gMasterDisp++, 8, SCREEN_HEIGHT / 2 - 2, SCREEN_WIDTH - 8, SCREEN_HEIGHT / 2 + 1);
|
||||
|
||||
func_hud_8008CB8C();
|
||||
}
|
||||
spBB = 0;
|
||||
if (gCamCount == 1) {
|
||||
Graphics_FillRectangle(&gMasterDisp, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, D_ctx_80178390[0],
|
||||
D_ctx_801783A0[0], D_ctx_801783B0[0], D_ctx_80178380[0]);
|
||||
if ((gDrawMode == DRAWMODE_4) || (gDrawMode == DRAWMODE_8)) {
|
||||
func_radio_800BB5D0();
|
||||
if (D_game_80161A2C != 0) {
|
||||
func_hud_8008FA84();
|
||||
func_hud_8008CA44();
|
||||
}
|
||||
func_hud_8008DE68();
|
||||
}
|
||||
} else {
|
||||
for (i = 0; i < gCamCount; i++) {
|
||||
if (gPlayer[i].timer_224 != 0) {
|
||||
|
||||
Graphics_FillRectangle(&gMasterDisp, D_game_800D2874[i], D_game_800D2894[i], D_game_800D2884[i],
|
||||
D_game_800D28A4[i], D_ctx_80178348, D_ctx_80178350, D_ctx_80178354,
|
||||
D_ctx_80178340);
|
||||
spBB = 1;
|
||||
} else {
|
||||
Graphics_FillRectangle(&gMasterDisp, D_game_800D2874[i], D_game_800D2894[i], D_game_800D2884[i],
|
||||
D_game_800D28A4[i], D_ctx_80178390[i], D_ctx_801783A0[i], D_ctx_801783B0[i],
|
||||
D_ctx_80178380[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
func_bg_80040CDC();
|
||||
func_hud_8008865C();
|
||||
func_360_8002E548();
|
||||
if ((gGameState == GSTATE_PLAY) && gVersusMode) {
|
||||
func_versus_800C1ED4();
|
||||
}
|
||||
func_fade_80084688(0, D_ctx_80177C50);
|
||||
if (spBB == 0) {
|
||||
Graphics_FillRectangle(&gMasterDisp, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, D_ctx_80178348,
|
||||
D_ctx_80178350, D_ctx_80178354, D_ctx_80178340);
|
||||
}
|
||||
func_80016A50();
|
||||
}
|
||||
}
|
||||
|
||||
Actor* func_game_800A3608(ObjectId objId) {
|
||||
Actor* actor = gActors;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(gActors); i++, actor++) {
|
||||
if (actor->obj.status == OBJ_FREE) {
|
||||
Actor_Initialize(actor);
|
||||
actor->obj.status = OBJ_INIT;
|
||||
actor->obj.id = objId;
|
||||
Object_SetInfo(&actor->info, actor->obj.id);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == ARRAY_COUNT(gActors)) {
|
||||
actor = NULL;
|
||||
}
|
||||
return actor;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,201 @@
|
||||
#include "global.h"
|
||||
#include "sf64dma.h"
|
||||
|
||||
#define SEGMENT_SIZE(segment) ((ptrdiff_t) ((uintptr_t) (segment).end - (uintptr_t) (segment).start))
|
||||
|
||||
u8 sFillTimer = 3;
|
||||
|
||||
#include "fox_load_inits.c"
|
||||
|
||||
OverlayInit sCurrentOverlay = {
|
||||
NO_OVERLAY,
|
||||
{ /* 0x1 */ NO_SEGMENT,
|
||||
/* 0x2 */ NO_SEGMENT,
|
||||
/* 0x3 */ NO_SEGMENT,
|
||||
/* 0x4 */ NO_SEGMENT,
|
||||
/* 0x5 */ NO_SEGMENT,
|
||||
/* 0x6 */ NO_SEGMENT,
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT },
|
||||
};
|
||||
|
||||
void Overlay_LoadSegment(void* vRomAddress, void* dest, ptrdiff_t size) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; gDmaTable[i].pRom.end != NULL; i++) {
|
||||
if (gDmaTable[i].vRomAddress == vRomAddress) {
|
||||
if (gDmaTable[i].compFlag == 0) {
|
||||
Lib_DmaRead(gDmaTable[i].pRom.start, dest, size);
|
||||
} else {
|
||||
Lib_FillScreen(true);
|
||||
sFillTimer = 3;
|
||||
D_game_80161A39 = true;
|
||||
Lib_DmaRead(gDmaTable[i].pRom.start, gFrameBuffers, SEGMENT_SIZE(gDmaTable[i].pRom));
|
||||
Mio0_Decompress(gFrameBuffers, dest);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u8 Overlay_Init(OverlayInit* ovlInit) {
|
||||
u8* ramPtr = SEGMENT_VRAM_START(ovl_i1);
|
||||
u8 segment;
|
||||
u8 changeOvl = false;
|
||||
|
||||
if (ovlInit->ovl.rom.start == (0, sCurrentOverlay.ovl.rom.start)) { // fake because D_800CBDD4 is probably 2D array
|
||||
ramPtr = ramPtr + SEGMENT_SIZE(ovlInit->ovl.rom);
|
||||
ramPtr = ramPtr + SEGMENT_SIZE(ovlInit->ovl.bss);
|
||||
} else {
|
||||
sCurrentOverlay.ovl.rom.start = ovlInit->ovl.rom.start;
|
||||
sCurrentOverlay.ovl.rom.end = ramPtr;
|
||||
if (ovlInit->ovl.rom.start != 0) {
|
||||
changeOvl = true;
|
||||
Overlay_LoadSegment(ovlInit->ovl.rom.start, ramPtr, SEGMENT_SIZE(ovlInit->ovl.rom));
|
||||
ramPtr = ramPtr + SEGMENT_SIZE(ovlInit->ovl.rom);
|
||||
bzero(ovlInit->ovl.bss.start, SEGMENT_SIZE(ovlInit->ovl.bss));
|
||||
ramPtr = ramPtr + SEGMENT_SIZE(ovlInit->ovl.bss);
|
||||
}
|
||||
}
|
||||
segment = 0;
|
||||
while ((segment < 15) && (ovlInit->assets[segment].start == sCurrentOverlay.assets[segment].start) &&
|
||||
changeOvl == 0) {
|
||||
if (ovlInit->assets[segment].start != 0) {
|
||||
gSegments[segment + 1] = K0_TO_PHYS(ramPtr);
|
||||
gSPSegment(gUnkDisp1++, segment + 1, K0_TO_PHYS(ramPtr));
|
||||
ramPtr = ramPtr + SEGMENT_SIZE(ovlInit->assets[segment]);
|
||||
}
|
||||
segment += 1;
|
||||
}
|
||||
for (segment; segment < 15; segment += 1) {
|
||||
sCurrentOverlay.assets[segment].start = ovlInit->assets[segment].start;
|
||||
sCurrentOverlay.assets[segment].end = ramPtr;
|
||||
if (ovlInit->assets[segment].start != 0) {
|
||||
gSegments[segment + 1] = K0_TO_PHYS(ramPtr);
|
||||
gSPSegment(gUnkDisp1++, segment + 1, K0_TO_PHYS(ramPtr));
|
||||
Overlay_LoadSegment(ovlInit->assets[segment].start, ramPtr, SEGMENT_SIZE(ovlInit->assets[segment]));
|
||||
ramPtr = ramPtr + SEGMENT_SIZE(ovlInit->assets[segment]);
|
||||
}
|
||||
}
|
||||
|
||||
if (sFillTimer != 0) {
|
||||
sFillTimer--;
|
||||
} else if (gStartNMI == 0) {
|
||||
Lib_FillScreen(false);
|
||||
}
|
||||
return changeOvl;
|
||||
}
|
||||
|
||||
u8 Overlay_Load(u8 ovlSetup, u8 ovlStage) {
|
||||
u8 changeOvl;
|
||||
|
||||
switch (ovlSetup) {
|
||||
case OVL_SETUP_TITLE:
|
||||
changeOvl = Overlay_Init(&sOvlmenu_Title[ovlStage]);
|
||||
if (changeOvl == true) {
|
||||
Audio_SetAudioSpec(0, 0x16);
|
||||
}
|
||||
break;
|
||||
case OVL_SETUP_MENU:
|
||||
changeOvl = Overlay_Init(&sOvlmenu_Option[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_MAP:
|
||||
changeOvl = Overlay_Init(&sOvlmenu_Map[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_GAME_OVER:
|
||||
changeOvl = Overlay_Init(&sOvlmenu_GameOver[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_CORNERIA:
|
||||
changeOvl = Overlay_Init(&sOvli1_Corneria[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_METEO:
|
||||
changeOvl = Overlay_Init(&sOvli2_Meteo[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_TITANIA:
|
||||
changeOvl = Overlay_Init(&sOvli5_Titania[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_SECTOR_X:
|
||||
changeOvl = Overlay_Init(&sOvli2_SectorX[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_SECTOR_Z:
|
||||
changeOvl = Overlay_Init(&sOvli4_SectorZ[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_AQUAS:
|
||||
changeOvl = Overlay_Init(&sOvli3_Aquas[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_AREA_6:
|
||||
changeOvl = Overlay_Init(&sOvli3_Area6[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_FORTUNA:
|
||||
changeOvl = Overlay_Init(&sOvli4_Fortuna[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_UNK_4:
|
||||
changeOvl = Overlay_Init(&sOvli3_Unk4[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_SECTOR_Y:
|
||||
changeOvl = Overlay_Init(&sOvli6_SectorY[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_SOLAR:
|
||||
changeOvl = Overlay_Init(&sOvli3_Solar[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_ZONESS:
|
||||
changeOvl = Overlay_Init(&sOvli3_Zoness[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_VENOM_ANDROSS:
|
||||
changeOvl = Overlay_Init(&sOvli6_Andross[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_TRAINING:
|
||||
changeOvl = Overlay_Init(&sOvli1_Training[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_VENOM_1:
|
||||
changeOvl = Overlay_Init(&sOvli1_Venom1[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_VENOM_2:
|
||||
changeOvl = Overlay_Init(&sOvli6_Venom2[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_20:
|
||||
changeOvl = Overlay_Init(&sOvli2_Setup20[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_BOLSE:
|
||||
changeOvl = Overlay_Init(&sOvli4_Bolse[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_KATINA:
|
||||
changeOvl = Overlay_Init(&sOvli4_Katina[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_MACBETH:
|
||||
changeOvl = Overlay_Init(&sOvli5_Macbeth[ovlStage]);
|
||||
break;
|
||||
case OVL_SETUP_VERSUS:
|
||||
changeOvl = Overlay_Init(&sOvli2_Versus[ovlStage]);
|
||||
if (changeOvl == true) {
|
||||
Audio_SetAudioSpec(3, 0x310);
|
||||
}
|
||||
break;
|
||||
case OVL_SETUP_LOGO:
|
||||
changeOvl = Overlay_Init(&sNoOvl_Logo[ovlStage]); // Logo does not load an overlay file
|
||||
if (changeOvl == true) {
|
||||
Audio_SetAudioSpec(0, 0xE);
|
||||
}
|
||||
break;
|
||||
case OVL_SETUP_CREDITS:
|
||||
changeOvl = Overlay_Init(&sOvlending_Ending[ovlStage]);
|
||||
break;
|
||||
default:
|
||||
(void) "DMA MODE ERROR %d\n";
|
||||
changeOvl = false;
|
||||
break;
|
||||
}
|
||||
return changeOvl;
|
||||
}
|
||||
|
||||
void Overlay_InitDma(void) {
|
||||
Lib_DmaRead(SEGMENT_ROM_START(dma_table), SEGMENT_VRAM_START(dma_table), SEGMENT_ROM_SIZE(dma_table));
|
||||
Overlay_LoadSegment(SEGMENT_ROM_START(ast_radio), SEGMENT_VRAM_START(ast_radio), SEGMENT_ROM_SIZE(ast_radio));
|
||||
}
|
||||
@@ -0,0 +1,810 @@
|
||||
#include "sf64dma.h"
|
||||
|
||||
#define NO_SEGMENT \
|
||||
{ NULL, NULL }
|
||||
|
||||
#define OVERLAY_OFFSETS(file) \
|
||||
{ \
|
||||
{ SEGMENT_ROM_START(file), SEGMENT_ROM_END(file) }, { SEGMENT_BSS_START(file), SEGMENT_BSS_END(file) }, \
|
||||
{ SEGMENT_TEXT_START(file), SEGMENT_TEXT_END(file) }, { \
|
||||
SEGMENT_DATA_START(file), SEGMENT_RODATA_END(file) \
|
||||
} \
|
||||
}
|
||||
|
||||
#define NO_OVERLAY \
|
||||
{ \
|
||||
{ NULL, NULL }, { NULL, NULL }, { NULL, NULL }, { \
|
||||
NULL, NULL \
|
||||
} \
|
||||
}
|
||||
|
||||
#define ROM_SEGMENT(file) \
|
||||
{ SEGMENT_ROM_START(file), SEGMENT_ROM_END(file) }
|
||||
|
||||
OverlayInit sNoOvl_Logo[1] = {
|
||||
{ NO_OVERLAY,
|
||||
{ /* 0x1 */ NO_SEGMENT,
|
||||
/* 0x2 */ NO_SEGMENT,
|
||||
/* 0x3 */ NO_SEGMENT,
|
||||
/* 0x4 */ NO_SEGMENT,
|
||||
/* 0x5 */ NO_SEGMENT,
|
||||
/* 0x6 */ NO_SEGMENT,
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ ROM_SEGMENT(ast_logo) } },
|
||||
};
|
||||
|
||||
OverlayInit sOvlending_Ending[6] = {
|
||||
{ OVERLAY_OFFSETS(ovl_ending),
|
||||
{ /* 0x1 */ NO_SEGMENT,
|
||||
/* 0x2 */ NO_SEGMENT,
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ NO_SEGMENT,
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ NO_SEGMENT,
|
||||
/* 0x7 */ ROM_SEGMENT(ast_ending),
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ ROM_SEGMENT(ast_allies),
|
||||
/* 0xE */ ROM_SEGMENT(ast_great_fox),
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
{ OVERLAY_OFFSETS(ovl_ending),
|
||||
{ /* 0x1 */ NO_SEGMENT,
|
||||
/* 0x2 */ NO_SEGMENT,
|
||||
/* 0x3 */ NO_SEGMENT,
|
||||
/* 0x4 */ NO_SEGMENT,
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_title),
|
||||
/* 0x7 */ ROM_SEGMENT(ast_ending),
|
||||
/* 0x8 */ ROM_SEGMENT(ast_ending_award_front),
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
{ OVERLAY_OFFSETS(ovl_ending),
|
||||
{ /* 0x1 */ NO_SEGMENT,
|
||||
/* 0x2 */ NO_SEGMENT,
|
||||
/* 0x3 */ NO_SEGMENT,
|
||||
/* 0x4 */ NO_SEGMENT,
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_title),
|
||||
/* 0x7 */ ROM_SEGMENT(ast_ending),
|
||||
/* 0x8 */ ROM_SEGMENT(ast_ending_award_back),
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
{ OVERLAY_OFFSETS(ovl_ending),
|
||||
{ /* 0x1 */ NO_SEGMENT,
|
||||
/* 0x2 */ NO_SEGMENT,
|
||||
/* 0x3 */ NO_SEGMENT,
|
||||
/* 0x4 */ NO_SEGMENT,
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_title),
|
||||
/* 0x7 */ ROM_SEGMENT(ast_ending),
|
||||
/* 0x8 */ ROM_SEGMENT(ast_ending_expert),
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
{ OVERLAY_OFFSETS(ovl_ending),
|
||||
{ /* 0x1 */ NO_SEGMENT,
|
||||
/* 0x2 */ NO_SEGMENT,
|
||||
/* 0x3 */ NO_SEGMENT,
|
||||
/* 0x4 */ NO_SEGMENT,
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_title),
|
||||
/* 0x7 */ ROM_SEGMENT(ast_ending),
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ ROM_SEGMENT(ast_great_fox),
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
{ OVERLAY_OFFSETS(ovl_ending),
|
||||
{ /* 0x1 */ NO_SEGMENT,
|
||||
/* 0x2 */ NO_SEGMENT,
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ NO_SEGMENT,
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ NO_SEGMENT,
|
||||
/* 0x7 */ ROM_SEGMENT(ast_ending),
|
||||
/* 0x8 */ ROM_SEGMENT(ast_ending_expert),
|
||||
/* 0x9 */ ROM_SEGMENT(ast_font_3d),
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ ROM_SEGMENT(ast_great_fox),
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvlmenu_Title[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_menu),
|
||||
{ /* 0x1 */ NO_SEGMENT,
|
||||
/* 0x2 */ NO_SEGMENT,
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ NO_SEGMENT,
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_title),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ ROM_SEGMENT(ast_great_fox),
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvlmenu_Option[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_menu),
|
||||
{ /* 0x1 */ NO_SEGMENT,
|
||||
/* 0x2 */ NO_SEGMENT,
|
||||
/* 0x3 */ NO_SEGMENT,
|
||||
/* 0x4 */ NO_SEGMENT,
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_map),
|
||||
/* 0x7 */ ROM_SEGMENT(ast_vs_menu),
|
||||
/* 0x8 */ ROM_SEGMENT(ast_option),
|
||||
/* 0x9 */ ROM_SEGMENT(ast_font_3d),
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvlmenu_Map[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_menu),
|
||||
{ /* 0x1 */ NO_SEGMENT,
|
||||
/* 0x2 */ NO_SEGMENT,
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ NO_SEGMENT,
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_map),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ ROM_SEGMENT(ast_font_3d),
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvlmenu_GameOver[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_menu),
|
||||
{ /* 0x1 */ NO_SEGMENT,
|
||||
/* 0x2 */ NO_SEGMENT,
|
||||
/* 0x3 */ NO_SEGMENT,
|
||||
/* 0x4 */ NO_SEGMENT,
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ NO_SEGMENT,
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ ROM_SEGMENT(ast_andross),
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli1_Corneria[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i1),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_corneria),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli2_Meteo[2] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i2),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_space),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_space),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_meteo),
|
||||
/* 0x7 */ ROM_SEGMENT(ast_warp_zone),
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ ROM_SEGMENT(ast_great_fox),
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
{ OVERLAY_OFFSETS(ovl_i2),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_space),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_space),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_meteo),
|
||||
/* 0x7 */ ROM_SEGMENT(ast_warp_zone),
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ ROM_SEGMENT(ast_great_fox),
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli5_Titania[6] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i5),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_landmaster),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_titania),
|
||||
/* 0x7 */ ROM_SEGMENT(ast_7_ti_1),
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ ROM_SEGMENT(ast_great_fox),
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
{ OVERLAY_OFFSETS(ovl_i5),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_landmaster),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_titania),
|
||||
/* 0x7 */ ROM_SEGMENT(ast_7_ti_2),
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
{ OVERLAY_OFFSETS(ovl_i5),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_landmaster),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_titania),
|
||||
/* 0x7 */ ROM_SEGMENT(ast_7_ti_2),
|
||||
/* 0x8 */ ROM_SEGMENT(ast_8_ti),
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
{ OVERLAY_OFFSETS(ovl_i5),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_landmaster),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_titania),
|
||||
/* 0x7 */ ROM_SEGMENT(ast_7_ti_2),
|
||||
/* 0x8 */ ROM_SEGMENT(ast_8_ti),
|
||||
/* 0x9 */ ROM_SEGMENT(ast_9_ti),
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
{ OVERLAY_OFFSETS(ovl_i5),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_landmaster),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_titania),
|
||||
/* 0x7 */ ROM_SEGMENT(ast_7_ti_2),
|
||||
/* 0x8 */ ROM_SEGMENT(ast_8_ti),
|
||||
/* 0x9 */ ROM_SEGMENT(ast_9_ti),
|
||||
/* 0xA */ ROM_SEGMENT(ast_A_ti),
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
{ OVERLAY_OFFSETS(ovl_i5),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_landmaster),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_titania),
|
||||
/* 0x7 */ ROM_SEGMENT(ast_7_ti_2),
|
||||
/* 0x8 */ ROM_SEGMENT(ast_8_ti),
|
||||
/* 0x9 */ ROM_SEGMENT(ast_9_ti),
|
||||
/* 0xA */ ROM_SEGMENT(ast_A_ti),
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ ROM_SEGMENT(ast_great_fox),
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli2_SectorX[2] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i2),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_space),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_space),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_sector_x),
|
||||
/* 0x7 */ ROM_SEGMENT(ast_warp_zone),
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ ROM_SEGMENT(ast_allies),
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
{ OVERLAY_OFFSETS(ovl_i2),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_space),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_space),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_sector_x),
|
||||
/* 0x7 */ ROM_SEGMENT(ast_warp_zone),
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ ROM_SEGMENT(ast_allies),
|
||||
/* 0xE */ ROM_SEGMENT(ast_great_fox),
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli4_SectorZ[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i4),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_space),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_space),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_sector_z),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ ROM_SEGMENT(ast_allies),
|
||||
/* 0xE */ ROM_SEGMENT(ast_great_fox),
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli3_Aquas[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i3),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_blue_marine),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_aquas),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ ROM_SEGMENT(ast_great_fox),
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli3_Area6[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i3),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_space),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_space),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_area_6),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ ROM_SEGMENT(ast_great_fox),
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli4_Fortuna[2] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i4),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_fortuna),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ ROM_SEGMENT(ast_star_wolf) } },
|
||||
{ OVERLAY_OFFSETS(ovl_i4),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_fortuna),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ ROM_SEGMENT(ast_great_fox),
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli3_Unk4[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i3),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_space),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_space),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_area_6),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ ROM_SEGMENT(ast_great_fox),
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli6_SectorY[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i6),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_space),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_space),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_sector_y),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli3_Solar[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i3),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_solar),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ ROM_SEGMENT(ast_allies),
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli3_Zoness[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i3),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_zoness),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ ROM_SEGMENT(ast_allies),
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli1_Venom1[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i1),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_venom_1),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ ROM_SEGMENT(ast_ve1_boss),
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ ROM_SEGMENT(ast_allies),
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli6_Andross[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i6),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ NO_SEGMENT,
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_venom_2),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ ROM_SEGMENT(ast_andross),
|
||||
/* 0xD */ ROM_SEGMENT(ast_allies),
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli6_Venom2[2] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i6),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_venom_2),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ ROM_SEGMENT(ast_star_wolf) } },
|
||||
{ OVERLAY_OFFSETS(ovl_i6),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_venom_2),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ ROM_SEGMENT(ast_great_fox),
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli2_Setup20[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i2),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_ve1_boss),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli4_Bolse[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i4),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_space),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_space),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_bolse),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ ROM_SEGMENT(ast_star_wolf) } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli4_Katina[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i4),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_katina),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ ROM_SEGMENT(ast_allies),
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ ROM_SEGMENT(ast_star_wolf) } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli5_Macbeth[2] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i5),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_landmaster),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_macbeth),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ ROM_SEGMENT(ast_allies),
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
{ OVERLAY_OFFSETS(ovl_i5),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_landmaster),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_macbeth),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ ROM_SEGMENT(ast_great_fox),
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli1_Training[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i1),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_arwing),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ ROM_SEGMENT(ast_training),
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ ROM_SEGMENT(ast_star_wolf) } },
|
||||
};
|
||||
|
||||
OverlayInit sOvli2_Versus[2] = {
|
||||
{ OVERLAY_OFFSETS(ovl_i2),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_versus),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ NO_SEGMENT,
|
||||
/* 0x7 */ ROM_SEGMENT(ast_vs_menu),
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
{ OVERLAY_OFFSETS(ovl_i2),
|
||||
{ /* 0x1 */ ROM_SEGMENT(ast_common),
|
||||
/* 0x2 */ ROM_SEGMENT(ast_bg_space),
|
||||
/* 0x3 */ ROM_SEGMENT(ast_versus),
|
||||
/* 0x4 */ ROM_SEGMENT(ast_enmy_space),
|
||||
/* 0x5 */ ROM_SEGMENT(ast_font),
|
||||
/* 0x6 */ NO_SEGMENT,
|
||||
/* 0x7 */ ROM_SEGMENT(ast_vs_menu),
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
|
||||
OverlayInit sUnused_Overlay[1] = {
|
||||
{ OVERLAY_OFFSETS(ovl_unused),
|
||||
{ /* 0x1 */ NO_SEGMENT,
|
||||
/* 0x2 */ NO_SEGMENT,
|
||||
/* 0x3 */ NO_SEGMENT,
|
||||
/* 0x4 */ NO_SEGMENT,
|
||||
/* 0x5 */ NO_SEGMENT,
|
||||
/* 0x6 */ NO_SEGMENT,
|
||||
/* 0x7 */ NO_SEGMENT,
|
||||
/* 0x8 */ NO_SEGMENT,
|
||||
/* 0x9 */ NO_SEGMENT,
|
||||
/* 0xA */ NO_SEGMENT,
|
||||
/* 0xB */ NO_SEGMENT,
|
||||
/* 0xC */ NO_SEGMENT,
|
||||
/* 0xD */ NO_SEGMENT,
|
||||
/* 0xE */ NO_SEGMENT,
|
||||
/* 0xF */ NO_SEGMENT } },
|
||||
};
|
||||
@@ -0,0 +1,189 @@
|
||||
#include "global.h"
|
||||
|
||||
u16* Message_PtrFromId(u16 msgId) {
|
||||
s32 i;
|
||||
MsgLookup* lookup = gMsgLookup;
|
||||
|
||||
while (lookup->msgId != -1) {
|
||||
if (lookup->msgId == msgId) {
|
||||
return lookup->msgPtr;
|
||||
}
|
||||
lookup++;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
u16 Message_IdFromPtr(u16* msgPtr) {
|
||||
s32 i;
|
||||
MsgLookup* lookup = gMsgLookup;
|
||||
|
||||
while (lookup->msgPtr != NULL) {
|
||||
if (lookup->msgPtr == msgPtr) {
|
||||
return lookup->msgId;
|
||||
}
|
||||
lookup++;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
s32 Message_GetWidth(u16* msgPtr) {
|
||||
s32 width = 0;
|
||||
u16* msgChar = msgPtr;
|
||||
|
||||
while (*msgChar != MSGCHAR_END) {
|
||||
if (*msgChar > 15 || *msgChar == 12) {
|
||||
width++;
|
||||
}
|
||||
msgChar++;
|
||||
}
|
||||
return width;
|
||||
}
|
||||
|
||||
s32 Message_GetCharCount(u16* msgPtr) {
|
||||
s32 count = 0;
|
||||
u16* msgChar = msgPtr;
|
||||
|
||||
while (*msgChar != 0) {
|
||||
count++;
|
||||
msgChar++;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
void Message_DisplayChar(Gfx** gfxPtr, u16 msgChar, s32 xpos, s32 ypos) {
|
||||
gDPLoadTextureBlock_4b((*gfxPtr)++, gTextCharTextures[msgChar >> 2], G_IM_FMT_CI, 16, 13, msgChar & 3,
|
||||
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
gSPTextureRectangle((*gfxPtr)++, xpos << 2, ypos << 2, (xpos + 13) << 2, (ypos + 13) << 2, G_TX_RENDERTILE, 0x40, 0,
|
||||
0x400, 0x400);
|
||||
}
|
||||
|
||||
bool Message_DisplayText(Gfx** gfxPtr, u16* msgPtr, s32 xPos, s32 yPos, s32 len) {
|
||||
s32 xChar = xPos;
|
||||
s32 yChar = yPos;
|
||||
s32 i;
|
||||
s32 print;
|
||||
|
||||
gDPSetPrimColor((*gfxPtr)++, 0x00, 0x00, 255, 255, 255, 255);
|
||||
gDPSetTextureLUT((*gfxPtr)++, G_TT_RGBA16);
|
||||
gDPLoadTLUT((*gfxPtr)++, 64, 0x100, gTextCharPalettes);
|
||||
|
||||
// bug: if the for loop is skipped, print is never initialized
|
||||
for (i = 0; msgPtr[i] != MSGCHAR_END && i < len; i++) {
|
||||
print = false;
|
||||
switch (msgPtr[i]) {
|
||||
case MSGCHAR_NWL:
|
||||
xChar = xPos;
|
||||
yChar += 13;
|
||||
break;
|
||||
case MSGCHAR_CLF:
|
||||
case MSGCHAR_CUP:
|
||||
case MSGCHAR_CRT:
|
||||
case MSGCHAR_CDN:
|
||||
gDPSetPrimColor((*gfxPtr)++, 0x00, 0x00, 255, 255, 0, 255);
|
||||
Message_DisplayChar(gfxPtr, msgPtr[i], xChar, yChar);
|
||||
xChar += 14;
|
||||
print = true;
|
||||
gDPSetPrimColor((*gfxPtr)++, 0x00, 0x00, 255, 255, 255, 255);
|
||||
break;
|
||||
case MSGCHAR_SPC:
|
||||
default:
|
||||
Message_DisplayChar(gfxPtr, msgPtr[i], xChar, yChar);
|
||||
xChar += 7;
|
||||
print = true;
|
||||
break;
|
||||
case MSGCHAR_NP2:
|
||||
case MSGCHAR_NP3:
|
||||
case MSGCHAR_NP4:
|
||||
case MSGCHAR_NP5:
|
||||
case MSGCHAR_NP6:
|
||||
case MSGCHAR_NP7:
|
||||
case MSGCHAR_PRI0:
|
||||
case MSGCHAR_PRI1:
|
||||
case MSGCHAR_PRI2:
|
||||
case MSGCHAR_PRI3:
|
||||
case MSGCHAR_QSP:
|
||||
case MSGCHAR_HSP:
|
||||
case MSGCHAR_NPF:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return print;
|
||||
}
|
||||
|
||||
void Message_DisplayScrollingText(Gfx** gfxPtr, u16* msgPtr, s32 xPos, s32 yPos, s32 yRangeHi, s32 yRangeLo, s32 len) {
|
||||
s32 var_s2 = xPos;
|
||||
s32 var_s4 = yPos;
|
||||
s32 i;
|
||||
|
||||
gDPSetTextureLUT((*gfxPtr)++, G_TT_RGBA16);
|
||||
gDPLoadTLUT((*gfxPtr)++, 64, 0x100, gTextCharPalettes);
|
||||
|
||||
for (i = 0; msgPtr[i] != 0 && i < len; i++) {
|
||||
switch (msgPtr[i]) {
|
||||
case MSGCHAR_NWL:
|
||||
var_s2 = xPos;
|
||||
var_s4 += 15;
|
||||
break;
|
||||
case MSGCHAR_QSP:
|
||||
var_s2 += 2;
|
||||
break;
|
||||
case MSGCHAR_HSP:
|
||||
var_s2 += 3;
|
||||
break;
|
||||
case MSGCHAR_SPC:
|
||||
var_s2 += 7;
|
||||
break;
|
||||
default:
|
||||
if ((yRangeLo < var_s4) && (var_s4 < yRangeHi)) {
|
||||
Message_DisplayChar(gfxPtr, msgPtr[i], var_s2, var_s4);
|
||||
}
|
||||
var_s2 += 7;
|
||||
break;
|
||||
case MSGCHAR_NP2:
|
||||
case MSGCHAR_NP3:
|
||||
case MSGCHAR_NP4:
|
||||
case MSGCHAR_NP5:
|
||||
case MSGCHAR_NP6:
|
||||
case MSGCHAR_NP7:
|
||||
case MSGCHAR_PRI0:
|
||||
case MSGCHAR_PRI1:
|
||||
case MSGCHAR_PRI2:
|
||||
case MSGCHAR_PRI3:
|
||||
case MSGCHAR_NPF:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool Message_IsPrintingChar(u16* msgPtr, s32 charPos) {
|
||||
s32 i;
|
||||
s32 print;
|
||||
|
||||
// bug: if the for loop is skipped, print is never initialized
|
||||
for (i = 0; msgPtr[i] != 0 && i < charPos; i++) {
|
||||
print = false;
|
||||
switch (msgPtr[i]) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
case 8:
|
||||
case 9:
|
||||
case 10:
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
case 14:
|
||||
case 15:
|
||||
break;
|
||||
default:
|
||||
print = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return print;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
#include "gfx.h"
|
||||
|
||||
// clang-format off
|
||||
|
||||
u16 gTextCharPalettes[4][16] = {
|
||||
{
|
||||
0x0000, 0xFFFF, 0x0000, 0xFFFF,
|
||||
0x0000, 0xFFFF, 0x0000, 0xFFFF,
|
||||
0x0000, 0xFFFF, 0x0000, 0xFFFF,
|
||||
0x0000, 0xFFFF, 0x0000, 0xFFFF,
|
||||
},
|
||||
{
|
||||
0x0000, 0x0000, 0xFFFF, 0xFFFF,
|
||||
0x0000, 0x0000, 0xFFFF, 0xFFFF,
|
||||
0x0000, 0x0000, 0xFFFF, 0xFFFF,
|
||||
0x0000, 0x0000, 0xFFFF, 0xFFFF,
|
||||
},
|
||||
{
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
},
|
||||
{
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
}
|
||||
};
|
||||
|
||||
// clang-format on
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,891 @@
|
||||
/*
|
||||
* File: fox_title.c
|
||||
* System: Radio
|
||||
* Description: Starfox Radio Handler
|
||||
*/
|
||||
|
||||
#include "global.h"
|
||||
#include "assets/ast_allies.h"
|
||||
#include "assets/ast_corneria.h"
|
||||
#include "assets/ast_meteo.h"
|
||||
#include "assets/ast_training.h"
|
||||
#include "assets/ast_sector_x.h"
|
||||
#include "assets/ast_sector_y.h"
|
||||
#include "assets/ast_macbeth.h"
|
||||
#include "assets/ast_star_wolf.h"
|
||||
#include "assets/ast_great_fox.h"
|
||||
#include "assets/ast_area_6.h"
|
||||
#include "assets/ast_title.h"
|
||||
#include "assets/ast_zoness.h"
|
||||
|
||||
u16** D_radio_80178720;
|
||||
s32 D_radio_80178724;
|
||||
s32 D_radio_80178728;
|
||||
s32 D_radio_8017872C;
|
||||
f32 D_radio_80178730;
|
||||
f32 D_radio_80178734;
|
||||
f32 D_radio_80178738;
|
||||
f32 D_radio_8017873C;
|
||||
f32 D_radio_80178740;
|
||||
|
||||
s32 gCurrentMsgPri = 0;
|
||||
|
||||
void func_radio_800BA760(void) {
|
||||
RCP_SetupDL_36();
|
||||
if (D_ctx_80177D50 == 1.3f) {
|
||||
D_ctx_801782F8 = Message_IsPrintingChar(D_ctx_80178308, D_ctx_801782D8);
|
||||
}
|
||||
}
|
||||
|
||||
s32 func_radio_800BA7BC(u16* msg, s32 priority) {
|
||||
if (priority == gCurrentMsgPri) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (priority < gCurrentMsgPri) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (gCurrentMsgPri < priority) {
|
||||
gCurrentMsgPri = priority;
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
||||
void Radio_PlayMessage(u16* msg, RadioCharacterId character) {
|
||||
s32 var_v1;
|
||||
s32 temp_v0;
|
||||
s32 priority;
|
||||
|
||||
switch (msg[0]) {
|
||||
default:
|
||||
case MSGCHAR_PRI0:
|
||||
priority = 0;
|
||||
break;
|
||||
case MSGCHAR_PRI1:
|
||||
priority = 1;
|
||||
break;
|
||||
case MSGCHAR_PRI2:
|
||||
priority = 2;
|
||||
break;
|
||||
case MSGCHAR_PRI3:
|
||||
priority = 3;
|
||||
break;
|
||||
}
|
||||
|
||||
if (gGameState == GSTATE_PLAY) {
|
||||
if ((character == RCID_FALCO) || (character == RCID_SLIPPY) || (character == RCID_PEPPY)) {
|
||||
if (character == RCID_FALCO) {
|
||||
var_v1 = 1;
|
||||
}
|
||||
if (character == RCID_SLIPPY) {
|
||||
var_v1 = 2;
|
||||
}
|
||||
if (character == RCID_PEPPY) {
|
||||
var_v1 = 3;
|
||||
}
|
||||
if ((gTeamShields[var_v1] <= 0) && (gTeamShields[var_v1] != -2)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((gRadioState != 0) && (func_radio_800BA7BC(msg, priority) == 1)) {
|
||||
return;
|
||||
}
|
||||
|
||||
gCurrentMsgPri = priority;
|
||||
D_ctx_80177D68 = character;
|
||||
|
||||
if (gExpertMode && ((character == RCID_FOX) || (character == RCID_FOX_RED))) {
|
||||
D_ctx_80177D68 = RCID_FOX_EXPERT;
|
||||
}
|
||||
|
||||
if (gCurrentLevel == LEVEL_VENOM_2) {
|
||||
switch (character) {
|
||||
case RCID_WOLF:
|
||||
D_ctx_80177D68 = RCID_WOLF_2;
|
||||
break;
|
||||
case RCID_PIGMA:
|
||||
D_ctx_80177D68 = RCID_PIGMA_2;
|
||||
break;
|
||||
case RCID_LEON:
|
||||
D_ctx_80177D68 = RCID_LEON_2;
|
||||
break;
|
||||
case RCID_ANDREW:
|
||||
D_ctx_80177D68 = RCID_ANDREW_2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
D_ctx_80178308 = msg;
|
||||
gRadioState = 100;
|
||||
|
||||
switch (gGameState) {
|
||||
case GSTATE_TITLE:
|
||||
case GSTATE_CREDITS:
|
||||
D_radio_8017872C = 176;
|
||||
D_radio_80178728 = 85;
|
||||
D_radio_80178730 = 80.0f;
|
||||
D_radio_80178734 = 174.0f;
|
||||
D_radio_80178738 = 4.63f;
|
||||
D_radio_8017873C = 32.0f;
|
||||
D_radio_80178740 = 174.0f;
|
||||
break;
|
||||
case GSTATE_PLAY:
|
||||
D_radio_8017872C = 180;
|
||||
D_radio_80178728 = 79;
|
||||
D_radio_80178730 = 74.0f;
|
||||
D_radio_80178734 = 178.0f;
|
||||
D_radio_80178738 = 4.53f;
|
||||
D_radio_8017873C = 26.0f;
|
||||
D_radio_80178740 = 178.0f;
|
||||
break;
|
||||
}
|
||||
|
||||
D_ctx_801782E8 = Message_IdFromPtr(msg);
|
||||
Audio_PlayVoice(D_ctx_801782E8);
|
||||
}
|
||||
|
||||
s32 D_radio_80178744;
|
||||
|
||||
void func_radio_800BAAE8(void) {
|
||||
static f32 D_800D4A74 = -1.0f;
|
||||
u16* sp44;
|
||||
s32 mirror;
|
||||
s32 i;
|
||||
f32 sp38;
|
||||
f32 temp_fa0;
|
||||
s32 j;
|
||||
|
||||
D_radio_80178744 = 0;
|
||||
|
||||
mirror = false;
|
||||
|
||||
switch (D_ctx_801782A4) {
|
||||
case RCID_FOX_RED:
|
||||
D_radio_80178744 = 1;
|
||||
/* fallthrough */
|
||||
case RCID_FOX:
|
||||
sp44 = D_10050E0;
|
||||
break;
|
||||
case RCID_FOX_RED_OPEN:
|
||||
D_radio_80178744 = 1;
|
||||
/* fallthrough */
|
||||
case RCID_FOX_OPEN:
|
||||
sp44 = D_1006000;
|
||||
break;
|
||||
case RCID_FOX_EXPERT:
|
||||
sp44 = D_1006F20;
|
||||
break;
|
||||
case RCID_FOX_EXPERT_OPEN:
|
||||
sp44 = D_1007E40;
|
||||
break;
|
||||
case RCID_FALCO_RED:
|
||||
D_radio_80178744 = 1;
|
||||
/* fallthrough */
|
||||
case RCID_FALCO:
|
||||
sp44 = D_10032A0;
|
||||
break;
|
||||
case RCID_FALCO_RED_OPEN:
|
||||
D_radio_80178744 = 1;
|
||||
/* fallthrough */
|
||||
case RCID_FALCO_OPEN:
|
||||
sp44 = D_10041C0;
|
||||
break;
|
||||
case RCID_SLIPPY_RED:
|
||||
D_radio_80178744 = 1;
|
||||
/* fallthrough */
|
||||
case RCID_SLIPPY:
|
||||
sp44 = D_100D900;
|
||||
break;
|
||||
case RCID_SLIPPY_RED_OPEN:
|
||||
D_radio_80178744 = 1;
|
||||
/* fallthrough */
|
||||
case RCID_SLIPPY_OPEN:
|
||||
sp44 = D_100E820;
|
||||
break;
|
||||
case RCID_PEPPY_RED:
|
||||
D_radio_80178744 = 1;
|
||||
/* fallthrough */
|
||||
case RCID_PEPPY:
|
||||
sp44 = D_100BAC0;
|
||||
break;
|
||||
case RCID_PEPPY_RED_OPEN:
|
||||
D_radio_80178744 = 1;
|
||||
/* fallthrough */
|
||||
case RCID_PEPPY_OPEN:
|
||||
sp44 = D_100C9E0;
|
||||
break;
|
||||
case RCID_WOLF:
|
||||
sp44 = D_STAR_WOLF_F00B580;
|
||||
break;
|
||||
case RCID_WOLF_OPEN:
|
||||
sp44 = D_STAR_WOLF_F00C4A0;
|
||||
break;
|
||||
case RCID_PIGMA:
|
||||
sp44 = D_STAR_WOLF_F003C80;
|
||||
break;
|
||||
case RCID_PIGMA_OPEN:
|
||||
sp44 = D_STAR_WOLF_F004BA0;
|
||||
break;
|
||||
case RCID_LEON:
|
||||
sp44 = D_STAR_WOLF_F007900;
|
||||
break;
|
||||
case RCID_LEON_OPEN:
|
||||
sp44 = D_STAR_WOLF_F008820;
|
||||
break;
|
||||
case RCID_ANDREW:
|
||||
sp44 = D_STAR_WOLF_F000000;
|
||||
break;
|
||||
case RCID_ANDREW_OPEN:
|
||||
sp44 = D_STAR_WOLF_F000F20;
|
||||
break;
|
||||
case RCID_WOLF_2:
|
||||
sp44 = D_STAR_WOLF_F00D3C0;
|
||||
break;
|
||||
case RCID_WOLF_2_OPEN:
|
||||
sp44 = D_STAR_WOLF_F00E2E0;
|
||||
break;
|
||||
case RCID_PIGMA_2:
|
||||
sp44 = D_STAR_WOLF_F005AC0;
|
||||
break;
|
||||
case RCID_PIGMA_2_OPEN:
|
||||
sp44 = D_STAR_WOLF_F0069E0;
|
||||
break;
|
||||
case RCID_LEON_2:
|
||||
sp44 = D_STAR_WOLF_F009740;
|
||||
break;
|
||||
case RCID_LEON_2_OPEN:
|
||||
sp44 = D_STAR_WOLF_F00A660;
|
||||
break;
|
||||
case RCID_ANDREW_2:
|
||||
sp44 = D_STAR_WOLF_F001E40;
|
||||
break;
|
||||
case RCID_ANDREW_2_OPEN:
|
||||
sp44 = D_STAR_WOLF_F002D60;
|
||||
break;
|
||||
case RCID_BOSS_CORNERIA:
|
||||
sp44 = D_CO_6026420;
|
||||
break;
|
||||
case RCID_BOSS_CORNERIA_OPEN:
|
||||
sp44 = D_CO_6027340;
|
||||
break;
|
||||
case RCID_BOSS_CORNERIA2:
|
||||
sp44 = D_CO_60245E0;
|
||||
break;
|
||||
case RCID_BOSS_CORNERIA2_OPEN:
|
||||
sp44 = D_CO_6025500;
|
||||
break;
|
||||
case RCID_BOSS_METEO:
|
||||
sp44 = D_ME_601C8E0;
|
||||
break;
|
||||
case RCID_BOSS_METEO_OPEN:
|
||||
sp44 = D_ME_601D800;
|
||||
break;
|
||||
case RCID_BOSS_AREA6:
|
||||
sp44 = D_A6_60047E0;
|
||||
break;
|
||||
case RCID_BOSS_AREA6_OPEN:
|
||||
sp44 = D_A6_6005700;
|
||||
break;
|
||||
case RCID_CAIMAN_AREA6:
|
||||
sp44 = D_A6_60029A0;
|
||||
break;
|
||||
case RCID_CAIMAN_AREA6_OPEN:
|
||||
sp44 = D_A6_60038C0;
|
||||
break;
|
||||
case RCID_BOSS_ZONESS:
|
||||
sp44 = D_ZO_6014510;
|
||||
break;
|
||||
case RCID_BOSS_ZONESS_OPEN:
|
||||
sp44 = D_ZO_6015430;
|
||||
break;
|
||||
case RCID_BOSS_SECTORX:
|
||||
sp44 = D_SX_6020FB0;
|
||||
break;
|
||||
case RCID_BOSS_SECTORX_OPEN:
|
||||
sp44 = D_SX_6021ED0;
|
||||
break;
|
||||
case RCID_BOSS_SECTORY:
|
||||
sp44 = D_SY_6018F30;
|
||||
break;
|
||||
case RCID_BOSS_SECTORY_OPEN:
|
||||
sp44 = D_SY_6019E50;
|
||||
break;
|
||||
case RCID_BOSS_MACBETH:
|
||||
sp44 = D_MA_6010C20;
|
||||
break;
|
||||
case RCID_BOSS_MACBETH_OPEN:
|
||||
sp44 = D_MA_6011B40;
|
||||
break;
|
||||
case RCID_ROB64_RED:
|
||||
D_radio_80178744 = 1;
|
||||
/* fallthrough */
|
||||
case RCID_ROB64:
|
||||
case RCID_ROB64_2:
|
||||
sp44 = D_1009C80;
|
||||
break;
|
||||
case RCID_ROB64_RED_OPEN:
|
||||
D_radio_80178744 = 1;
|
||||
/* fallthrough */
|
||||
case RCID_ROB64_OPEN:
|
||||
case RCID_ROB64_2_OPEN:
|
||||
sp44 = D_100ABA0;
|
||||
break;
|
||||
case RCID_KATT:
|
||||
sp44 = D_D003DF0;
|
||||
break;
|
||||
case RCID_KATT_OPEN:
|
||||
sp44 = D_D004D10;
|
||||
break;
|
||||
case RCID_ANDROSS_RED:
|
||||
case RCID_ANDROSS:
|
||||
sp44 = D_D000170;
|
||||
if ((gGameState == GSTATE_PLAY) && (gCurrentLevel == LEVEL_AREA_6)) {
|
||||
sp44 = D_A6_6000B60;
|
||||
}
|
||||
D_radio_80178744 = 1;
|
||||
break;
|
||||
case RCID_ANDROSS_RED_OPEN:
|
||||
case RCID_ANDROSS_OPEN:
|
||||
sp44 = D_D001090;
|
||||
if ((gGameState == GSTATE_PLAY) && (gCurrentLevel == LEVEL_AREA_6)) {
|
||||
sp44 = D_A6_6001A80;
|
||||
}
|
||||
D_radio_80178744 = 1;
|
||||
break;
|
||||
case RCID_JAMES:
|
||||
sp44 = D_D005C30;
|
||||
break;
|
||||
case RCID_JAMES_OPEN:
|
||||
sp44 = D_D006B50;
|
||||
break;
|
||||
case RCID_BILL:
|
||||
sp44 = D_D001FB0;
|
||||
break;
|
||||
case RCID_BILL_OPEN:
|
||||
sp44 = D_D002ED0;
|
||||
break;
|
||||
case RCID_GEN_PEPPER:
|
||||
sp44 = D_D007A70;
|
||||
break;
|
||||
case RCID_GEN_PEPPER_OPEN:
|
||||
sp44 = D_D008990;
|
||||
break;
|
||||
case RCID_ROB64_TITLE:
|
||||
sp44 = D_GREAT_FOX_E00E100;
|
||||
break;
|
||||
case RCID_ROB64_TITLE_OPEN:
|
||||
sp44 = D_GREAT_FOX_E00F020;
|
||||
break;
|
||||
case RCID_GEN_PEPPER_TITLE:
|
||||
sp44 = D_GREAT_FOX_E00FF40;
|
||||
break;
|
||||
case RCID_GEN_PEPPER_TITLE_OPEN:
|
||||
sp44 = D_GREAT_FOX_E010E60;
|
||||
break;
|
||||
case RCID_TR:
|
||||
sp44 = D_TR_6000900;
|
||||
break;
|
||||
case RCID_TR_OPEN:
|
||||
sp44 = D_TR_6001820;
|
||||
break;
|
||||
case RCID_STATIC_FLIP:
|
||||
mirror = true;
|
||||
/* fallthrough */
|
||||
case RCID_STATIC:
|
||||
switch (gGameState) {
|
||||
default:
|
||||
sp44 = NULL;
|
||||
break;
|
||||
case GSTATE_PLAY:
|
||||
sp44 = D_1008D60;
|
||||
break;
|
||||
case GSTATE_TITLE:
|
||||
case GSTATE_CREDITS:
|
||||
sp44 = gTitleRadioStatic;
|
||||
break;
|
||||
}
|
||||
if (((s32) D_ctx_80177D68 == RCID_ANDROSS) || ((s32) D_ctx_80177D68 == RCID_ANDROSS_RED)) {
|
||||
D_radio_80178744 = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if ((sp44 != NULL) && (D_ctx_80177D38 != 0.0f)) {
|
||||
temp_fa0 = (2.0f * D_ctx_80177D38) + D_radio_80178740;
|
||||
if ((D_radio_80178740 + 20.0f) <= temp_fa0) {
|
||||
D_800D4A74 = 1.0f;
|
||||
}
|
||||
if (temp_fa0 <= D_radio_80178740) {
|
||||
D_800D4A74 = -1.0f;
|
||||
}
|
||||
sp38 = D_ctx_80177D38 * 20.0f * D_800D4A74;
|
||||
RCP_SetupDL_76();
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
|
||||
|
||||
if (mirror) {
|
||||
for (i = 0, j = 0; i < 2; i++, j += 880) {
|
||||
TextureRect_16bRGBA_MirX(&gMasterDisp, &sp44[j], 44, 20, D_radio_8017873C,
|
||||
D_radio_80178740 + 20.0f + sp38 + (i * 20.0f * D_ctx_80177D38), 1.0f,
|
||||
D_ctx_80177D38);
|
||||
}
|
||||
TextureRect_16bRGBA_MirX(&gMasterDisp, &sp44[2 * 880], 44, 4, D_radio_8017873C,
|
||||
D_radio_80178740 + 20.0f + sp38 + (40.0f * D_ctx_80177D38), 1.0f, D_ctx_80177D38);
|
||||
} else {
|
||||
for (i = 0, j = 0; i < 2; i++, j += 880) {
|
||||
TextureRect_16bRGBA(&gMasterDisp, &sp44[j], 44, 20, D_radio_8017873C,
|
||||
D_radio_80178740 + 20.0f + sp38 + (i * 20.0f * D_ctx_80177D38), 1.0f,
|
||||
D_ctx_80177D38);
|
||||
}
|
||||
TextureRect_16bRGBA(&gMasterDisp, &sp44[2 * 880], 44, 4, D_radio_8017873C,
|
||||
D_radio_80178740 + 20.0f + sp38 + (40.0f * D_ctx_80177D38), 1.0f, D_ctx_80177D38);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_radio_800BB388(void) {
|
||||
static f32 D_800D4A78 = -1.0f;
|
||||
f32 temp_fa0;
|
||||
u8* sp38;
|
||||
u16* sp34;
|
||||
f32 sp30;
|
||||
|
||||
if ((gGameState != GSTATE_MAP) && (D_ctx_80177D50 != 0.0f)) {
|
||||
temp_fa0 = (D_ctx_80177D50 / 0.26f) * 3.0f;
|
||||
if ((D_radio_80178734 + 16.0f) <= temp_fa0 + D_radio_80178734) {
|
||||
D_800D4A78 = 1.0f;
|
||||
}
|
||||
if (temp_fa0 + D_radio_80178734 <= D_radio_80178734) {
|
||||
D_800D4A78 = -1.0f;
|
||||
}
|
||||
sp30 = temp_fa0 * D_800D4A78;
|
||||
RCP_SetupDL(&gMasterDisp, 0x55);
|
||||
switch (gGameState) {
|
||||
case GSTATE_TITLE:
|
||||
case GSTATE_CREDITS:
|
||||
sp38 = D_TITLE_601D750;
|
||||
sp34 = D_TITLE_601DB50;
|
||||
break;
|
||||
case GSTATE_PLAY:
|
||||
sp38 = D_1013170;
|
||||
sp34 = D_1013570;
|
||||
break;
|
||||
}
|
||||
if (D_radio_80178744 == 1) {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 25, 25, 170);
|
||||
} else {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 60, 60, 255, 170);
|
||||
}
|
||||
TextureRect_8bCI(&gMasterDisp, sp38, sp34, 32, 32, D_radio_80178730, D_radio_80178734 + 16.0f + sp30,
|
||||
D_radio_80178738, D_ctx_80177D50);
|
||||
}
|
||||
if (D_ctx_80177D50 == 1.3f) {
|
||||
RCP_SetupDL(&gMasterDisp, 0x55);
|
||||
D_ctx_801782F8 =
|
||||
Message_DisplayText(&gMasterDisp, D_ctx_80178308, D_radio_80178728, D_radio_8017872C, D_ctx_801782D8);
|
||||
}
|
||||
}
|
||||
|
||||
s32 D_radio_80178748;
|
||||
s32 D_radio_8017874C;
|
||||
|
||||
void func_radio_800BB5D0(void) {
|
||||
s32 var_v1;
|
||||
s32 temp_ft0;
|
||||
u32 temp_v0;
|
||||
s32 fakeTemp;
|
||||
|
||||
if ((D_ctx_80177854 == 100) && (gGameState != GSTATE_CREDITS)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (D_Timer_801782AC > 0) {
|
||||
D_Timer_801782AC--;
|
||||
}
|
||||
|
||||
if (D_Timer_801782B4 > 0) {
|
||||
D_Timer_801782B4--;
|
||||
}
|
||||
|
||||
switch (gRadioState) {
|
||||
case 100:
|
||||
D_radio_80178748 = 1;
|
||||
D_ctx_801782A4 = 1000;
|
||||
gRadioState = 1;
|
||||
D_ctx_801782D8 = 0;
|
||||
D_ctx_80177D38 = 0.0f;
|
||||
D_ctx_80177D50 = 0.0f;
|
||||
D_radio_8017874C = 0;
|
||||
if (gCamCount != 1) {
|
||||
gRadioState = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
D_ctx_80177D38 += 0.25f;
|
||||
if (D_ctx_80177D38 == 1.0f) {
|
||||
gRadioState++;
|
||||
D_Timer_801782AC = 10;
|
||||
}
|
||||
D_ctx_801782A4 = 2;
|
||||
if (gGameFrameCount & 1) {
|
||||
D_ctx_801782A4 = 3;
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (D_Timer_801782AC == 0) {
|
||||
gRadioState++;
|
||||
D_Timer_801782AC = 10;
|
||||
}
|
||||
D_ctx_801782A4 = 2;
|
||||
if (gGameFrameCount & 1) {
|
||||
D_ctx_801782A4 = 3;
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
if (D_Timer_801782AC == 0) {
|
||||
gRadioState++;
|
||||
temp_v0 = Message_GetWidth(D_ctx_80178308);
|
||||
if (D_80137E78 == 3) {
|
||||
D_Timer_801782AC = temp_v0 + 16;
|
||||
} else {
|
||||
D_Timer_801782AC = (2 * temp_v0) + 16;
|
||||
}
|
||||
if ((gGameState == GSTATE_TITLE) || (gGameState == GSTATE_CREDITS)) {
|
||||
D_Timer_801782AC = temp_v0 * 2;
|
||||
}
|
||||
}
|
||||
D_ctx_801782A4 = (s32) D_ctx_80177D68;
|
||||
D_ctx_80177D50 += 0.26f;
|
||||
if (D_ctx_80177D50 > 1.3f) {
|
||||
D_ctx_80177D50 = 1.3f;
|
||||
}
|
||||
break;
|
||||
|
||||
case 31:
|
||||
gRadioState++;
|
||||
D_Timer_801782AC = 80 - D_Timer_801782AC;
|
||||
break;
|
||||
|
||||
case 32:
|
||||
if (Audio_GetCurrentVoice() == 0) {
|
||||
D_radio_80178724++;
|
||||
D_ctx_80178308 = D_radio_80178720[D_radio_80178724];
|
||||
Audio_PlayVoice(Message_IdFromPtr(D_ctx_80178308));
|
||||
D_ctx_801782D8 = 0;
|
||||
D_radio_8017874C = 0;
|
||||
D_Timer_801782AC = 80;
|
||||
D_Timer_801782AC = Message_GetWidth(D_ctx_80178308) * 2;
|
||||
gRadioState = 4;
|
||||
}
|
||||
break;
|
||||
|
||||
case 4:
|
||||
if ((Audio_GetCurrentVoice() == 0) && (D_Timer_801782AC == 0)) {
|
||||
D_Timer_801782AC = 10;
|
||||
D_ctx_801782A4 = (s32) D_ctx_80177D68;
|
||||
gRadioState = 6;
|
||||
}
|
||||
D_ctx_801782A4 = (s32) D_ctx_80177D68;
|
||||
if (D_Timer_801782B4 > 0) {
|
||||
D_ctx_801782A4 = (s32) D_ctx_80177D68 + 1;
|
||||
}
|
||||
|
||||
if (!D_80137E78) {}
|
||||
|
||||
if (1) {
|
||||
fakeTemp = 0;
|
||||
}
|
||||
|
||||
if (!(fakeTemp)) {
|
||||
temp_v0 = Audio_GetCurrentVoiceStatus();
|
||||
|
||||
if (D_ctx_801782D8 < 60) {
|
||||
if (D_ctx_80178308[D_ctx_801782D8 + 1] == MSGCHAR_NPF) {
|
||||
if (temp_v0 == 0) {
|
||||
gRadioState = 31;
|
||||
}
|
||||
} else {
|
||||
D_ctx_801782D8++;
|
||||
}
|
||||
}
|
||||
|
||||
if (D_radio_8017874C != 0) {
|
||||
if ((D_ctx_801782E8 >= 23000) && (D_ctx_801782E8 < 23033)) {
|
||||
if (D_ctx_801782F8 != 0) {
|
||||
D_Timer_801782B4 = 2;
|
||||
AUDIO_PLAY_SFX(0x49000017, gDefaultSfxSource, 4);
|
||||
}
|
||||
} else if (temp_v0 == 1) {
|
||||
D_Timer_801782B4 = 2;
|
||||
} else {
|
||||
D_Timer_801782B4 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
D_radio_8017874C ^= 1;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
if (D_Timer_801782AC == 0) {
|
||||
gRadioState++;
|
||||
D_Timer_801782AC = 10;
|
||||
}
|
||||
D_ctx_801782A4 = (s32) D_ctx_80177D68;
|
||||
break;
|
||||
|
||||
case 6:
|
||||
if (D_Timer_801782AC == 0) {
|
||||
if (gGameState == GSTATE_CREDITS) {
|
||||
Audio_ClearVoice();
|
||||
} else {
|
||||
Audio_PlayVoice(0);
|
||||
}
|
||||
gRadioState++;
|
||||
}
|
||||
D_ctx_801782A4 = 2;
|
||||
if (gGameFrameCount & 1) {
|
||||
D_ctx_801782A4 = 3;
|
||||
}
|
||||
D_ctx_80177D50 -= 0.26f;
|
||||
if (D_ctx_80177D50 < 0.0f) {
|
||||
D_ctx_80177D50 = 0.0f;
|
||||
}
|
||||
break;
|
||||
|
||||
case 7:
|
||||
D_ctx_80177D38 -= 0.25f;
|
||||
if (D_ctx_80177D38 == 0) {
|
||||
D_ctx_80178300 = 0;
|
||||
gCurrentMsgPri = 0;
|
||||
gRadioState = 0;
|
||||
}
|
||||
D_ctx_801782A4 = 2;
|
||||
if (gGameFrameCount & 1) {
|
||||
D_ctx_801782A4 = 3;
|
||||
}
|
||||
break;
|
||||
|
||||
case 8:
|
||||
D_ctx_801782A4 = (s32) D_ctx_80177D68;
|
||||
D_ctx_80177D50 = 1.3f;
|
||||
D_ctx_80177D38 = 1.0f;
|
||||
break;
|
||||
|
||||
case 0:
|
||||
break;
|
||||
}
|
||||
|
||||
if (((gRadioState > 0) && (gRadioState != 100)) && (D_ctx_80178300 == 0)) {
|
||||
func_radio_800BAAE8();
|
||||
func_radio_800BB388();
|
||||
|
||||
temp_ft0 = (s32) D_ctx_80177D68;
|
||||
|
||||
if (((temp_ft0 == RCID_FALCO) || (temp_ft0 == RCID_SLIPPY)) || (temp_ft0 == RCID_PEPPY)) {
|
||||
if (temp_ft0 == RCID_FALCO) {
|
||||
var_v1 = 1;
|
||||
}
|
||||
if (temp_ft0 == RCID_SLIPPY) {
|
||||
var_v1 = 2;
|
||||
}
|
||||
if (temp_ft0 == RCID_PEPPY) {
|
||||
var_v1 = 3;
|
||||
}
|
||||
if ((gTeamShields[var_v1] <= 0) && (gGameFrameCount & 4) && (gTeamShields[var_v1] != -2) &&
|
||||
(D_ctx_801782A4 != 2) && (D_ctx_801782A4 != 3) && (D_ctx_801782A4 != 1000)) {
|
||||
RCP_SetupDL(&gMasterDisp, 0x4C);
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 0, 255);
|
||||
Graphics_DisplaySmallText(31, 167, 1.0f, 1.0f, "DOWN");
|
||||
func_hud_80084B94(1);
|
||||
}
|
||||
if (((D_ctx_801782A4 != 2) && (D_ctx_801782A4 != 3)) && (D_ctx_801782A4 != 1000)) {
|
||||
func_hud_80086110(22.0f, 165.0f, gTeamShields[var_v1]);
|
||||
}
|
||||
}
|
||||
|
||||
temp_ft0 = (s32) D_ctx_80177D68;
|
||||
|
||||
if ((temp_ft0 == RCID_WOLF) || (temp_ft0 == RCID_PIGMA) || (temp_ft0 == RCID_LEON) ||
|
||||
(temp_ft0 == RCID_ANDREW) || (temp_ft0 == RCID_WOLF_2) || (temp_ft0 == RCID_PIGMA_2) ||
|
||||
(temp_ft0 == RCID_LEON_2) || (temp_ft0 == RCID_ANDREW_2)) {
|
||||
switch (temp_ft0) {
|
||||
case RCID_WOLF:
|
||||
|
||||
case RCID_WOLF_2:
|
||||
var_v1 = 4;
|
||||
break;
|
||||
|
||||
case RCID_LEON:
|
||||
|
||||
case RCID_LEON_2:
|
||||
var_v1 = 5;
|
||||
break;
|
||||
|
||||
case RCID_PIGMA:
|
||||
|
||||
case RCID_PIGMA_2:
|
||||
var_v1 = 6;
|
||||
break;
|
||||
|
||||
case RCID_ANDREW:
|
||||
|
||||
case RCID_ANDREW_2:
|
||||
var_v1 = 7;
|
||||
break;
|
||||
|
||||
default:
|
||||
var_v1 = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
if ((gActors[var_v1].obj.status != OBJ_ACTIVE) && (gGameFrameCount & 4) &&
|
||||
(gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) && (D_ctx_801782A4 != 2) && (D_ctx_801782A4 != 3) &&
|
||||
(D_ctx_801782A4 != 1000)) {
|
||||
RCP_SetupDL(&gMasterDisp, 0x4C);
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 0, 255);
|
||||
Graphics_DisplaySmallText(31, 167, 1.0f, 1.0f, "DOWN");
|
||||
}
|
||||
if (((D_ctx_801782A4 != 2) && (D_ctx_801782A4 != 3)) && (D_ctx_801782A4 != 1000)) {
|
||||
func_hud_80086110(22.0f, 165.0f, gActors[var_v1].health * 2.55f);
|
||||
}
|
||||
}
|
||||
if (((D_ctx_801782A4 != 2) && (D_ctx_801782A4 != 3)) && (D_ctx_801782A4 != 1000)) {
|
||||
func_hud_8008AD94();
|
||||
}
|
||||
}
|
||||
|
||||
if (D_ctx_80178300 == 1) {
|
||||
func_radio_800BA760();
|
||||
}
|
||||
}
|
||||
|
||||
void func_radio_800BC040(void) {
|
||||
if (D_ctx_80177854 != 100) {
|
||||
if (D_Timer_801782AC > 0) {
|
||||
D_Timer_801782AC--;
|
||||
}
|
||||
if (D_Timer_801782B4 > 0) {
|
||||
D_Timer_801782B4--;
|
||||
}
|
||||
|
||||
switch (gRadioState) {
|
||||
case 100:
|
||||
D_ctx_801782A4 = 1000;
|
||||
gRadioState = 1;
|
||||
D_ctx_80177D38 = 0.0f;
|
||||
D_ctx_80177D50 = 0.0f;
|
||||
D_ctx_801782D8 = Message_GetWidth(D_ctx_80178308);
|
||||
if (gCamCount != 1) {
|
||||
gRadioState = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
D_ctx_80177D38 += 0.02f;
|
||||
if (D_ctx_80177D38 == 0.04f) {
|
||||
gRadioState++;
|
||||
D_Timer_801782AC = 5;
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (D_Timer_801782AC == 0) {
|
||||
gRadioState++;
|
||||
D_Timer_801782AC = 5;
|
||||
}
|
||||
|
||||
D_ctx_801782A4 = 2;
|
||||
|
||||
if (gGameFrameCount & 1) {
|
||||
D_ctx_801782A4 = 3;
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
if (D_Timer_801782AC == 0) {
|
||||
gRadioState++;
|
||||
D_Timer_801782AC = 5;
|
||||
|
||||
if (gGameState == GSTATE_TITLE) {
|
||||
D_Timer_801782AC = 30;
|
||||
}
|
||||
}
|
||||
|
||||
D_ctx_801782A4 = (s32) D_ctx_80177D68;
|
||||
D_ctx_80177D50 += 0.015f;
|
||||
|
||||
if (D_ctx_80177D50 > 0.07f) {
|
||||
D_ctx_80177D50 = 0.07f;
|
||||
}
|
||||
break;
|
||||
|
||||
case 4:
|
||||
if (D_Timer_801782AC == 0) {
|
||||
gRadioState++;
|
||||
D_Timer_801782AC = 10;
|
||||
}
|
||||
break;
|
||||
|
||||
case 5:
|
||||
if (D_Timer_801782AC == 0) {
|
||||
gRadioState++;
|
||||
D_Timer_801782AC = 5;
|
||||
}
|
||||
D_ctx_801782A4 = (s32) D_ctx_80177D68;
|
||||
break;
|
||||
|
||||
case 6:
|
||||
if (D_Timer_801782AC == 0) {
|
||||
Audio_PlayVoice(0);
|
||||
gRadioState++;
|
||||
}
|
||||
|
||||
D_ctx_801782A4 = 2;
|
||||
|
||||
if (gGameFrameCount & 1) {
|
||||
D_ctx_801782A4 = 3;
|
||||
}
|
||||
|
||||
D_ctx_80177D50 -= 0.015f;
|
||||
|
||||
if (D_ctx_80177D50 < 0.0f) {
|
||||
D_ctx_80177D50 = 0.0f;
|
||||
}
|
||||
break;
|
||||
|
||||
case 7:
|
||||
D_ctx_80177D38 -= 0.02f;
|
||||
if (D_ctx_80177D38 == 0) {
|
||||
gRadioState = 0;
|
||||
D_Timer_801782AC = 5;
|
||||
}
|
||||
D_ctx_801782A4 = 2;
|
||||
if (gGameFrameCount & 1) {
|
||||
D_ctx_801782A4 = 3;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0:
|
||||
break;
|
||||
}
|
||||
|
||||
if ((gRadioState > 0) && (gRadioState != 100)) {
|
||||
func_radio_800BAAE8();
|
||||
func_radio_800BB388();
|
||||
if (((s32) D_ctx_80177D68 == RCID_FALCO) || ((s32) D_ctx_80177D68 == RCID_SLIPPY) ||
|
||||
((s32) D_ctx_80177D68 == RCID_PEPPY)) {
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
RCP_SetupDL_36();
|
||||
Matrix_Translate(gGfxMatrix, -150.0f, -115.0f, -443.0f, 1);
|
||||
Matrix_Scale(gGfxMatrix, 0.068f, 0.068f, 1.0f, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gPlayerNum = 0;
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,261 @@
|
||||
#include "global.h"
|
||||
|
||||
#include "fox_rcp_setup.c"
|
||||
|
||||
u8 D_80178580[0x190];
|
||||
void* D_80178710;
|
||||
|
||||
void RCP_SetupDL(Gfx** gfxP, s16 i) {
|
||||
gSPDisplayList((*gfxP)++, &((Gfx*) gRcpSetupDLs)[i * 9]);
|
||||
}
|
||||
|
||||
void RCP_SetFog(Gfx** gfxP, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gDPSetFogColor((*gfxP)++, r, g, b, a);
|
||||
gSPFogPosition((*gfxP)++, near, far);
|
||||
}
|
||||
|
||||
void dummy_800B8F08(void) {
|
||||
}
|
||||
|
||||
void dummy_800B8F10(void) {
|
||||
}
|
||||
|
||||
void RCP_SetupDL_0(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_0]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_1(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_1]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_11(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_11]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_12(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_12]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_2(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_2]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_3(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_3]);
|
||||
gDPSetFogColor(gMasterDisp++, r, g, b, a);
|
||||
gSPFogPosition(gMasterDisp++, near, far);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_4(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_4]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_7(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_7]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_9(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_9]);
|
||||
gDPSetFogColor(gMasterDisp++, r, g, b, a);
|
||||
gSPFogPosition(gMasterDisp++, near, far);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_8(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_8]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_13(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_13]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_14(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_14]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_17(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_17]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_36(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_36]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_52(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_52]);
|
||||
gDPSetFogColor(gMasterDisp++, r, g, b, a);
|
||||
gSPFogPosition(gMasterDisp++, near, far);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_62(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_62]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_37(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_37]);
|
||||
gDPSetFogColor(gMasterDisp++, r, g, b, a);
|
||||
gSPFogPosition(gMasterDisp++, near, far);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_18(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_18]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_20(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_20]);
|
||||
gDPSetFogColor(gMasterDisp++, r, g, b, a);
|
||||
gSPFogPosition(gMasterDisp++, near, far);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_19(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_19]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_21(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_21]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_33(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_33]);
|
||||
gDPSetFogColor(gMasterDisp++, r, g, b, a);
|
||||
gSPFogPosition(gMasterDisp++, near, far);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_34(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_34]);
|
||||
gDPSetFogColor(gMasterDisp++, r, g, b, a);
|
||||
gSPFogPosition(gMasterDisp++, near, far);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_40(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_40]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_42(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_42]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_43(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_43]);
|
||||
gDPSetFogColor(gMasterDisp++, r, g, b, a);
|
||||
gSPFogPosition(gMasterDisp++, near, far);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_60(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_60]);
|
||||
gDPSetFogColor(gMasterDisp++, r, g, b, a);
|
||||
gSPFogPosition(gMasterDisp++, near, far);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_47(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_47]);
|
||||
gDPSetFogColor(gMasterDisp++, r, g, b, a);
|
||||
gSPFogPosition(gMasterDisp++, near, far);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_66(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_66]);
|
||||
gDPSetFogColor(gMasterDisp++, r, g, b, a);
|
||||
gSPFogPosition(gMasterDisp++, near, far);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_55(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_55]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_57(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_57]);
|
||||
gDPSetFogColor(gMasterDisp++, r, g, b, a);
|
||||
gSPFogPosition(gMasterDisp++, near, far);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_45(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_45]);
|
||||
gDPSetFogColor(gMasterDisp++, r, g, b, a);
|
||||
gSPFogPosition(gMasterDisp++, near, far);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_46(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_46]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_41(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_41]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_64(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_64]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_64_2(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_64]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_23(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_23]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_29(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_29]);
|
||||
gDPSetFogColor(gMasterDisp++, r, g, b, a);
|
||||
gSPFogPosition(gMasterDisp++, near, far);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_30(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_30]);
|
||||
gDPSetFogColor(gMasterDisp++, r, g, b, a);
|
||||
gSPFogPosition(gMasterDisp++, near, far);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_27(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_27]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_32(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_32]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_73(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_73]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_76(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_76]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_74(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_74]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_78(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_78]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_81(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_81]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_48(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_48]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_68(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_68]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_49(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_49]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_44(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_44]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_50(void) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_50]);
|
||||
}
|
||||
|
||||
void RCP_SetupDL_61(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) {
|
||||
gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_61]);
|
||||
gDPSetFogColor(gMasterDisp++, r, g, b, a);
|
||||
gSPFogPosition(gMasterDisp++, near, far);
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
#include "gfx.h"
|
||||
|
||||
Gfx gRcpInitDL[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN |
|
||||
G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH),
|
||||
gsSPSetOtherMode(G_SETOTHERMODE_L, G_MDSFT_ALPHACOMPARE, 3, G_AC_NONE | G_ZS_PIXEL),
|
||||
gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2),
|
||||
gsSPSetOtherModeHi(G_AD_NOISE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE |
|
||||
G_TD_CLAMP | G_TP_PERSP | G_CYC_FILL | G_PM_NPRIMITIVE),
|
||||
gsSPClipRatio(FRUSTRATIO_1),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,37 @@
|
||||
#include "global.h"
|
||||
|
||||
void Graphics_NMIWipe(void) {
|
||||
static s16 D_800D4A80 = 0;
|
||||
s32 i;
|
||||
|
||||
gViewport->vp.vscale[0] = SCREEN_WIDTH * 2;
|
||||
gViewport->vp.vscale[1] = SCREEN_HEIGHT * 2;
|
||||
gViewport->vp.vscale[2] = G_MAXZ / 2;
|
||||
gViewport->vp.vscale[3] = 0;
|
||||
gViewport->vp.vtrans[0] = SCREEN_WIDTH * 2;
|
||||
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * 2;
|
||||
gViewport->vp.vtrans[2] = G_MAXZ / 2;
|
||||
gViewport->vp.vtrans[3] = 0;
|
||||
gSPViewport(gMasterDisp++, gViewport);
|
||||
gDPPipeSync(gMasterDisp++);
|
||||
gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, 8, 8, SCREEN_WIDTH - 8, SCREEN_HEIGHT - 8);
|
||||
|
||||
Graphics_FillRectangle(&gMasterDisp, 8, 8, MIN(304, D_800D4A80) + 8, 64, 0, 0, 0, 255);
|
||||
Graphics_FillRectangle(&gMasterDisp, SCREEN_WIDTH - 8 - MIN(304, D_800D4A80), 64, SCREEN_WIDTH - 8, 120, 0, 0, 0,
|
||||
255);
|
||||
Graphics_FillRectangle(&gMasterDisp, 8, 120, MIN(304, D_800D4A80) + 8, 176, 0, 0, 0, 255);
|
||||
Graphics_FillRectangle(&gMasterDisp, SCREEN_WIDTH - 8 - MIN(304, D_800D4A80), 176, SCREEN_WIDTH - 8, 232, 0, 0, 0,
|
||||
255);
|
||||
if (D_800D4A80 == 0) {
|
||||
AudioThread_PreNMIReset();
|
||||
}
|
||||
D_800D4A80 += 45;
|
||||
if (D_800D4A80 >= 485) {
|
||||
osViBlack(1);
|
||||
gStopTasks = 1;
|
||||
}
|
||||
for (i = 0; i < MAXCONTROLLERS; i++) {
|
||||
gControllerRumble[i] = 0;
|
||||
D_80137E84[i] = 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
#include "global.h"
|
||||
|
||||
SaveFile gSaveFile;
|
||||
Save gDefaultSave = {
|
||||
{
|
||||
// Replace with SaveData once that struct is complete
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x02, 0x03, 0x04, 0x00, 0x63, 0x63, 0x63, 0x46, 0x4F, 0x58, 0x50, 0x45, 0x50, 0x53, 0x4C, 0x50, 0x46,
|
||||
0x41, 0x4C, 0x57, 0x4C, 0x46, 0x4C, 0x4F, 0x4E, 0x50, 0x49, 0x47, 0x41, 0x4E, 0x52, 0x42, 0x49, 0x4C,
|
||||
0x4B, 0x41, 0x54, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x90, 0x09, 0x57, 0x09, 0xB7, 0x09, 0x87,
|
||||
0x09, 0x37, 0x09, 0x17, 0x09, 0xF7, 0x5A, 0x90, 0x09, 0x54, 0x09, 0x64, 0x09, 0xD4, 0x09, 0x74, 0x09,
|
||||
0x14, 0x09, 0xF4, 0x50, 0x90, 0x09, 0x02, 0x09, 0xC2, 0x09, 0x42, 0x09, 0xA2, 0x09, 0x22, 0x09, 0xE2,
|
||||
0x46, 0x90, 0x09, 0x01, 0x09, 0xC1, 0x09, 0x41, 0x09, 0xA1, 0x09, 0x21, 0x09, 0xE1, 0x3C, 0x90, 0x09,
|
||||
0x05, 0x09, 0xC5, 0x09, 0x45, 0x09, 0xA5, 0x09, 0x25, 0x09, 0xE5, 0x32, 0x90, 0x04, 0x03, 0x09, 0xC3,
|
||||
0x09, 0x43, 0x09, 0xA3, 0x09, 0x23, 0x09, 0xE3, 0x28, 0x90, 0x01, 0x06, 0x02, 0xC6, 0x09, 0x46, 0x09,
|
||||
0xA6, 0x09, 0x26, 0x09, 0xE6, 0x1E, 0x90, 0x01, 0x02, 0x01, 0xC4, 0x01, 0x47, 0x08, 0xA5, 0x09, 0x23,
|
||||
0x09, 0xE6, 0x14, 0x90, 0x01, 0x03, 0x01, 0xC5, 0x01, 0x47, 0x01, 0xA4, 0x06, 0x22, 0x09, 0xE1, 0x0A,
|
||||
0x90, 0x01, 0x07, 0x01, 0xC4, 0x01, 0x44, 0x01, 0xA2, 0x01, 0x21, 0x04, 0xE5, 0xFF, 0x09, 0x01, 0x02,
|
||||
0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
|
||||
},
|
||||
0,
|
||||
};
|
||||
|
||||
u16 Save_Checksum(Save* arg0) {
|
||||
u16 var_v1;
|
||||
s32 i;
|
||||
|
||||
for (i = 0, var_v1 = 0; i < sizeof(SaveData); i++) {
|
||||
var_v1 ^= arg0->raw[i];
|
||||
var_v1 <<= 1;
|
||||
var_v1 = (var_v1 & 0xFE) | ((var_v1 >> 8) & 1);
|
||||
}
|
||||
|
||||
var_v1 = (var_v1 & 0xFF) | 0x9500;
|
||||
|
||||
return var_v1;
|
||||
}
|
||||
|
||||
s32 Save_Write(void) {
|
||||
void* sp1C;
|
||||
|
||||
gSaveFile.save.checksum = Save_Checksum(&gSaveFile.save);
|
||||
gSaveFile.backup = gSaveFile.save;
|
||||
gSaveIOBuffer = gSaveFile;
|
||||
osSendMesg(&gSerialThreadMsgQueue, (OSMesg) SI_WRITE_SAVE, OS_MESG_PRI_NORMAL);
|
||||
osRecvMesg(&gSaveMsgQueue, &sp1C, OS_MESG_BLOCK);
|
||||
if (sp1C != (OSMesg) SI_SAVE_SUCCESS) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
s32 Save_Read(void) {
|
||||
void* sp24;
|
||||
s32 i;
|
||||
|
||||
osSendMesg(&gSerialThreadMsgQueue, (OSMesg) SI_READ_SAVE, OS_MESG_PRI_NORMAL);
|
||||
osRecvMesg(&gSaveMsgQueue, &sp24, OS_MESG_BLOCK);
|
||||
if ((s32) sp24 != SI_SAVE_SUCCESS) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
gSaveFile = gSaveIOBuffer;
|
||||
|
||||
if (gSaveFile.save.checksum == Save_Checksum(&gSaveFile.save)) {
|
||||
(void) "EEPROM ROM[0] 正常\n";
|
||||
return 0;
|
||||
}
|
||||
for (i = 0; i <= sizeof(SaveData); i++) { // should be <, but gets overwritten immediately.
|
||||
gSaveFile.save.raw[i] = gSaveFile.backup.raw[i];
|
||||
}
|
||||
gSaveFile.save.checksum = gSaveFile.backup.checksum;
|
||||
|
||||
if (gSaveFile.save.checksum == Save_Checksum(&gSaveFile.save)) {
|
||||
(void) "EEPROM ROM[1] 正常\n";
|
||||
return 0;
|
||||
}
|
||||
(void) "EEPROM ROM[0] & ROM[1] 異常\n";
|
||||
return -1;
|
||||
}
|
||||
@@ -0,0 +1,364 @@
|
||||
#include "gfx.h"
|
||||
|
||||
u16 D_Tex_800D99F8[];
|
||||
|
||||
Vtx D_Vtx_800D94A0[] = {
|
||||
VTX(10, 5, 0, 0, 0, 255, 255, 255, 255),
|
||||
VTX(0, 0, 0, 0, 0, 255, 255, 255, 255),
|
||||
VTX(10, -5, 0, 0, 0, 255, 255, 255, 255),
|
||||
};
|
||||
|
||||
Gfx D_Gfx_800D94D0[] = {
|
||||
// used in fox_ti for the triangular light rays before firing his lazor
|
||||
gsSPVertex(D_Vtx_800D94A0, 3, 0),
|
||||
gsSP1Triangle(0, 1, 2, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Vtx D_Vtx_800D94E8[] = {
|
||||
VTX(-1, 1, -1, 0, 0, 0, 0, 127, 255), VTX(-1, -1, -1, 0, 991, 0, 0, 127, 255),
|
||||
VTX(1, -1, -1, 991, 991, 0, 0, 127, 255), VTX(1, 1, -1, 991, 0, 0, 0, 127, 255),
|
||||
VTX(1, 1, 1, 0, 0, 0, 0, 127, 255), VTX(1, -1, 1, 0, 991, 0, 0, 127, 255),
|
||||
VTX(-1, -1, 1, 991, 991, 0, 0, 127, 255), VTX(-1, 1, 1, 991, 0, 0, 0, 127, 255),
|
||||
VTX(-1, -1, 1, 0, 0, 0, 0, 127, 255), VTX(-1, -1, -1, 0, 991, 0, 0, 127, 255),
|
||||
VTX(1, -1, -1, 991, 991, 0, 0, 127, 255), VTX(1, -1, 1, 991, 0, 0, 0, 127, 255),
|
||||
VTX(1, 1, 1, 0, 0, 0, 0, 127, 255), VTX(1, 1, -1, 0, 991, 0, 0, 127, 255),
|
||||
VTX(-1, 1, -1, 991, 991, 0, 0, 127, 255), VTX(-1, 1, 1, 991, 0, 0, 0, 127, 255),
|
||||
};
|
||||
|
||||
Gfx D_Gfx_800D95E8[] = {
|
||||
// unused
|
||||
gsSPVertex(D_Vtx_800D94E8, 16, 0), gsSP1Triangle(2, 1, 0, 0), gsSP1Triangle(3, 2, 0, 0),
|
||||
gsSP1Triangle(6, 5, 4, 0), gsSP1Triangle(7, 6, 4, 0), gsSP1Triangle(5, 2, 3, 0),
|
||||
gsSP1Triangle(4, 5, 3, 0), gsSP1Triangle(1, 6, 7, 0), gsSP1Triangle(0, 1, 7, 0),
|
||||
gsSP1Triangle(8, 9, 10, 0), gsSP1Triangle(8, 10, 11, 0), gsSP1Triangle(12, 13, 14, 0),
|
||||
gsSP1Triangle(12, 14, 15, 0), gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Vtx D_Vtx_800D9658[] = {
|
||||
VTX(0, 0, 0, 0, 0, 255, 255, 255, 255),
|
||||
VTX(0, 100, 0, 0, 0, 255, 255, 255, 255),
|
||||
VTX(-50, 100, 0, 0, 0, 255, 255, 255, 255),
|
||||
};
|
||||
|
||||
Gfx D_Gfx_800D9688[] = {
|
||||
// used fox_fade for unused spinning fade
|
||||
gsSPVertex(D_Vtx_800D9658, 3, 0),
|
||||
gsSP1Triangle(0, 1, 2, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Vtx D_Vtx_800D96A0[] = {
|
||||
VTX(-100, 200, 0, 0, 0, 255, 255, 255, 255),
|
||||
VTX(0, 0, 0, 0, 0, 0, 255, 255, 255),
|
||||
VTX(100, 200, 0, 0, 0, 0, 0, 0, 255),
|
||||
};
|
||||
|
||||
Gfx D_Gfx_800D96D0[] = {
|
||||
// unused
|
||||
gsSPVertex(D_Vtx_800D96A0, 3, 0),
|
||||
gsSP1Triangle(0, 1, 2, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Vec3s D_Unk_800D96E8[] = {
|
||||
// unused
|
||||
{ -100, 100, -100 }, { -100, 100, 100 }, { 100, 100, 100 }, { 100, 100, -100 },
|
||||
{ -100, -100, -100 }, { -100, -100, 100 }, { 100, -100, 100 }, { 100, -100, -100 },
|
||||
};
|
||||
Triangle D_Unk_800D9718[] = {
|
||||
// unused
|
||||
{ 0, 1, 2 }, { 0, 2, 3 }, { 5, 4, 7 }, { 5, 7, 6 }, { 1, 5, 6 }, { 1, 6, 2 },
|
||||
{ 3, 7, 4 }, { 3, 4, 0 }, { 2, 6, 7 }, { 2, 7, 3 }, { 0, 4, 5 }, { 0, 5, 1 },
|
||||
};
|
||||
|
||||
Vtx D_Vtx_800D9760[] = {
|
||||
VTX(-1, 1, -1, 0, 0, 0, 0, 127, 255), VTX(-1, -1, -1, 0, 991, 0, 0, 127, 255),
|
||||
VTX(1, -1, -1, 991, 991, 0, 0, 127, 255), VTX(1, 1, -1, 991, 0, 0, 0, 127, 255),
|
||||
VTX(1, 1, 1, 0, 0, 0, 0, 127, 255), VTX(1, -1, 1, 0, 991, 0, 0, 127, 255),
|
||||
VTX(-1, -1, 1, 991, 991, 0, 0, 127, 255), VTX(-1, 1, 1, 991, 0, 0, 0, 127, 255),
|
||||
VTX(-1, -1, 1, 0, 0, 0, 0, 127, 255), VTX(-1, -1, -1, 0, 991, 0, 0, 127, 255),
|
||||
VTX(1, -1, -1, 991, 991, 0, 0, 127, 255), VTX(1, -1, 1, 991, 0, 0, 0, 127, 255),
|
||||
VTX(1, 1, 1, 0, 0, 0, 0, 127, 255), VTX(1, 1, -1, 0, 991, 0, 0, 127, 255),
|
||||
VTX(-1, 1, -1, 991, 991, 0, 0, 127, 255), VTX(-1, 1, 1, 991, 0, 0, 0, 127, 255),
|
||||
};
|
||||
|
||||
Gfx D_Gfx_800D9860[] = {
|
||||
// unused
|
||||
gsDPSetupTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 5, 5,
|
||||
G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTileTexture(D_Tex_800D99F8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32),
|
||||
gsSPVertex(D_Vtx_800D9760, 16, 0),
|
||||
gsSP1Triangle(2, 1, 0, 0),
|
||||
gsSP1Triangle(3, 2, 0, 0),
|
||||
gsSP1Triangle(6, 5, 4, 0),
|
||||
gsSP1Triangle(7, 6, 4, 0),
|
||||
gsSP1Triangle(5, 2, 3, 0),
|
||||
gsSP1Triangle(4, 5, 3, 0),
|
||||
gsSP1Triangle(1, 6, 7, 0),
|
||||
gsSP1Triangle(0, 1, 7, 0),
|
||||
gsSP1Triangle(8, 9, 10, 0),
|
||||
gsSP1Triangle(8, 10, 11, 0),
|
||||
gsSP1Triangle(12, 13, 14, 0),
|
||||
gsSP1Triangle(12, 14, 15, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Vtx D_Vtx_800D9910[] = {
|
||||
VTX(-11, -11, 0, 0, 255, 0, 127, 0, 0),
|
||||
VTX(11, -11, 0, 255, 255, 0, 127, 0, 0),
|
||||
VTX(11, 11, 0, 255, 0, 0, 127, 0, 0),
|
||||
VTX(-11, 11, 0, 0, 0, 0, 127, 0, 0),
|
||||
};
|
||||
|
||||
Vtx D_Vtx_800D9950[] = {
|
||||
VTX(80, 0, -120, 256, 0, 0, 127, 9, 255),
|
||||
VTX(-79, 0, -120, 0, 0, 0, 127, 255, 0),
|
||||
VTX(-79, 0, 119, 0, 256, 0, 127, 255, 0),
|
||||
VTX(80, 0, 119, 256, 256, 0, 127, 255, 0),
|
||||
};
|
||||
|
||||
Gfx D_Gfx_800D9990[] = {
|
||||
// unused
|
||||
gsDPSetPrimColor(0, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
gsDPSetupTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8, 0, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 3, 3,
|
||||
G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTileTexture(D_Tex_800D99F8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8),
|
||||
gsSPVertex(D_Vtx_800D9950, 4, 0),
|
||||
gsSP1Triangle(1, 2, 3, 0),
|
||||
gsSP1Triangle(1, 3, 0, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
u16 D_Tex_800D99F8[1024] = {
|
||||
// used in fox_hud
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF,
|
||||
};
|
||||
|
||||
u16 D_Tex_800DA1F8[1024] = {
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001,
|
||||
};
|
||||
|
||||
Gfx D_Gfx_800DA9F8[] = {
|
||||
// unused
|
||||
gsDPSetupTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8, 0, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 3, 3,
|
||||
G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTileTexture(D_Tex_800D99F8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8),
|
||||
gsSPVertex(D_Vtx_800D9910, 4, 0),
|
||||
gsSP1Triangle(0, 1, 2, 0),
|
||||
gsSP1Triangle(0, 2, 3, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Vtx D_Vtx_800DAA58[] = {
|
||||
VTX(-100, 0, -100, 0, 255, 0, 120, 0, 0),
|
||||
VTX(-100, 0, 100, 255, 255, 0, 120, 0, 0),
|
||||
VTX(100, 0, 100, 255, 0, 0, 120, 0, 0),
|
||||
VTX(100, 0, -100, 0, 0, 0, 120, 0, 0),
|
||||
};
|
||||
|
||||
Gfx D_Gfx_800DAA98[] = {
|
||||
// unused
|
||||
gsDPSetupTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8, 0, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 3, 3,
|
||||
G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTileTexture(D_Tex_800D99F8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8),
|
||||
gsSPVertex(D_Vtx_800DAA58, 4, 0),
|
||||
gsSP1Triangle(0, 1, 2, 0),
|
||||
gsSP1Triangle(0, 2, 3, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Vtx D_Vtx_800DAAF8[] = {
|
||||
VTX(-500, -90, 0, 0, 255, 255, 255, 255, 255),
|
||||
VTX(500, -90, 0, 255, 255, 255, 255, 255, 255),
|
||||
VTX(0, 1000, 0, 255, 0, 255, 255, 255, 255),
|
||||
};
|
||||
|
||||
Gfx D_Gfx_800DAB28[] = {
|
||||
// unused
|
||||
gsSPVertex(D_Vtx_800DAAF8, 3, 0),
|
||||
gsSP1Triangle(0, 1, 2, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Vtx D_Vtx_800DAB40[] = {
|
||||
VTX(-20, 1000, 0, 0, 255, 0, 0, 127, 0),
|
||||
VTX(50, 0, 0, 255, 255, 0, 0, 127, 0),
|
||||
VTX(-50, 0, 0, 255, 0, 0, 0, 127, 0),
|
||||
VTX(20, 1000, 0, 0, 255, 0, 0, 127, 0),
|
||||
};
|
||||
|
||||
Gfx D_Gfx_800DAB80[] = {
|
||||
// unused
|
||||
gsDPSetupTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8, 0, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 3, 3,
|
||||
G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTileTexture(D_Tex_800D99F8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8),
|
||||
gsSPVertex(D_Vtx_800DAB40, 4, 0),
|
||||
gsSP1Triangle(0, 2, 1, 0),
|
||||
gsSP1Triangle(0, 1, 3, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Vtx D_Vtx_800DABE0[] = {
|
||||
VTX(-170, 0, -170, 0, 255, 0, 127, 0, 0),
|
||||
VTX(170, 0, -170, 255, 255, 0, 127, 0, 0),
|
||||
VTX(170, 0, 170, 255, 0, 0, 127, 0, 0),
|
||||
VTX(-179, 0, 170, 0, 0, 0, 127, 0, 0),
|
||||
};
|
||||
|
||||
Gfx D_Gfx_800DAC20[] = {
|
||||
// used in fox_edisplay
|
||||
gsDPSetupTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8, 0, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 3, 3,
|
||||
G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTileTexture(D_Tex_800DA1F8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8),
|
||||
gsSPVertex(D_Vtx_800DABE0, 4, 0),
|
||||
gsSP1Triangle(0, 2, 1, 0),
|
||||
gsSP1Triangle(0, 3, 2, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,166 @@
|
||||
#include "gfx.h"
|
||||
|
||||
Vtx D_Vtx_800DAC80[] = {
|
||||
VTX(0, 0, 0, 0, 0, 0, 0, 0, 255),
|
||||
VTX(0, 0, -1, 0, 1984, 0, 0, 0, 255),
|
||||
};
|
||||
|
||||
Gfx D_Gfx_800DACA0[] = {
|
||||
// unused
|
||||
gsSPVertex(D_Vtx_800DAC80, 2, 0),
|
||||
gsSPLine3D(0, 1, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
u16 D_Tex_800DACB8[] = {
|
||||
// used in fox_tank for landmaster wheels
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x294B, 0x294B, 0x294B, 0x4A51, 0x4A51, 0x4A51, 0x4A51,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x294B, 0x294B, 0x294B, 0x7BDD, 0x7BDD,
|
||||
0xD671, 0xD671, 0x4A51, 0x4A51, 0x4A51, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x294B, 0x294B, 0x7BDD,
|
||||
0x7BDD, 0x7BDD, 0x0001, 0x0001, 0x0843, 0x0843, 0xD671, 0xD671, 0xD671, 0x4A51, 0x4A51, 0x4A51, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B,
|
||||
0x294B, 0x7BDD, 0x7BDD, 0x0001, 0x0001, 0x0001, 0x18C7, 0x0001, 0x0001, 0x318D, 0x0843, 0x0843, 0x0843, 0xD671,
|
||||
0xD671, 0x4A51, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x294B, 0x294B, 0x7BDD, 0x0001, 0x0001, 0x0843, 0x0843, 0x18C7, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x318D, 0x1085, 0x1085, 0x0843, 0x0843, 0xD671, 0x4A51, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x294B, 0x7BDD, 0x0001, 0x18C7, 0x18C7, 0x0843, 0x0843, 0x18C7,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x318D, 0x1085, 0x1085, 0x318D, 0x318D, 0x0843, 0xD671, 0x4A51, 0x4A51, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x294B, 0x7BDD, 0x0001, 0x18C7, 0x0001,
|
||||
0x0001, 0x18C7, 0x0843, 0x0843, 0x18C7, 0x0001, 0x0001, 0x318D, 0x1085, 0x1085, 0x318D, 0x0001, 0x0001, 0x318D,
|
||||
0x0843, 0xD671, 0x4A51, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x7BDD,
|
||||
0x0001, 0x18C7, 0x0001, 0x0001, 0x0001, 0x0001, 0x18C7, 0x0843, 0x0843, 0x294B, 0x4A51, 0x1085, 0x1085, 0x318D,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x318D, 0x0843, 0xD671, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x294B, 0x294B, 0x7BDD, 0x0001, 0x18C7, 0x0001, 0x0001, 0x0001, 0x0001, 0x18C7, 0x0843, 0x0843, 0x39CF,
|
||||
0x6B17, 0x1085, 0x1085, 0x318D, 0x0001, 0x0001, 0x0001, 0x0001, 0x318D, 0x0843, 0xD671, 0x4A51, 0x4A51, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x7BDD, 0x0001, 0x0843, 0x0843, 0x18C7, 0x0001, 0x0001, 0x2909,
|
||||
0x1085, 0x0843, 0x420F, 0x420F, 0x739B, 0x739B, 0x1085, 0x2107, 0x420F, 0x0001, 0x0001, 0x318D, 0x1085, 0x1085,
|
||||
0x0843, 0xD671, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x294B, 0x7BDD, 0x0001, 0x0843, 0x0843,
|
||||
0x0843, 0x18C7, 0x18C7, 0x1085, 0x2109, 0x420F, 0x0001, 0x0001, 0x0001, 0x0001, 0x739B, 0x41CF, 0x2107, 0x318D,
|
||||
0x318D, 0x1085, 0x1085, 0x1085, 0x0843, 0xD671, 0x4A51, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x294B,
|
||||
0x7BDD, 0x0001, 0x18C7, 0x18C7, 0x0843, 0x0843, 0x0843, 0x0843, 0x420F, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x739B, 0x1085, 0x1085, 0x1085, 0x1085, 0x318D, 0x318D, 0x0843, 0xD671, 0x4A51, 0x4A51, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x294B, 0x7BDD, 0x0001, 0x18C7, 0x0001, 0x0001, 0x18C7, 0x0843, 0x0843, 0x420F, 0x0001, 0x0001,
|
||||
0x0001, 0x6B5B, 0x6B5B, 0x0001, 0x0001, 0x0001, 0x739B, 0x1085, 0x1085, 0x318D, 0x0001, 0x0001, 0x318D, 0x0843,
|
||||
0xD671, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x7BDD, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B,
|
||||
0x39CF, 0x420F, 0x0001, 0x0001, 0x6B5B, 0xFFFF, 0xFFFF, 0x6B5B, 0x0001, 0x0001, 0x739B, 0x6B17, 0x4A51, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0843, 0xD671, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x7BDD, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x294B, 0x39CF, 0x420F, 0x0001, 0x0001, 0x6B5B, 0xFFFF, 0xFFFF, 0x6B5B, 0x0001, 0x0001,
|
||||
0x739B, 0x6B17, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x0843, 0xD671, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x294B, 0x7BDD, 0x0001, 0x18C7, 0x0001, 0x0001, 0x18C7, 0x0843, 0x0843, 0x420F, 0x0001, 0x0001, 0x0001, 0x6B5B,
|
||||
0x6B5B, 0x0001, 0x0001, 0x0001, 0x739B, 0x1085, 0x1085, 0x318D, 0x0001, 0x0001, 0x318D, 0x0843, 0xD671, 0x4A51,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x294B, 0x7BDD, 0x0001, 0x18C7, 0x18C7, 0x0843, 0x0843, 0x0843, 0x0843,
|
||||
0x420F, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x739B, 0x1085, 0x1085, 0x1085, 0x1085, 0x318D, 0x318D,
|
||||
0x0843, 0xD671, 0x4A51, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x294B, 0x7BDD, 0x0001, 0x0843, 0x0843,
|
||||
0x0843, 0x18C7, 0x18C7, 0x1085, 0x2109, 0x420F, 0x0001, 0x0001, 0x0001, 0x0001, 0x739B, 0x41CF, 0x2107, 0x318D,
|
||||
0x318D, 0x1085, 0x1085, 0x1085, 0x0843, 0xD671, 0x4A51, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B,
|
||||
0x7BDD, 0x0001, 0x0843, 0x0843, 0x18C7, 0x0001, 0x0001, 0x2909, 0x1085, 0x0843, 0x420F, 0x420F, 0x739B, 0x739B,
|
||||
0x1085, 0x2107, 0x420F, 0x0001, 0x0001, 0x318D, 0x1085, 0x1085, 0x0843, 0xD671, 0x4A51, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x294B, 0x294B, 0x7BDD, 0x0001, 0x18C7, 0x0001, 0x0001, 0x0001, 0x0001, 0x18C7, 0x0843,
|
||||
0x0843, 0x39CF, 0x6B17, 0x1085, 0x1085, 0x318D, 0x0001, 0x0001, 0x0001, 0x0001, 0x318D, 0x0843, 0xD671, 0x4A51,
|
||||
0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x7BDD, 0x0001, 0x18C7, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x18C7, 0x0843, 0x0843, 0x294B, 0x4A51, 0x1085, 0x1085, 0x318D, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x318D, 0x0843, 0xD671, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x294B,
|
||||
0x7BDD, 0x0001, 0x18C7, 0x0001, 0x0001, 0x18C7, 0x0843, 0x0843, 0x18C7, 0x0001, 0x0001, 0x318D, 0x1085, 0x1085,
|
||||
0x318D, 0x0001, 0x0001, 0x318D, 0x0843, 0xD671, 0x4A51, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x294B, 0x294B, 0x7BDD, 0x0001, 0x18C7, 0x18C7, 0x0843, 0x0843, 0x18C7, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x318D, 0x1085, 0x1085, 0x318D, 0x318D, 0x0843, 0xD671, 0x4A51, 0x4A51, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x294B, 0x7BDD, 0x0001, 0x0001, 0x0843,
|
||||
0x0843, 0x18C7, 0x0001, 0x0001, 0x0001, 0x0001, 0x318D, 0x1085, 0x1085, 0x0843, 0x0843, 0xD671, 0x4A51, 0x4A51,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B,
|
||||
0x294B, 0x7BDD, 0x7BDD, 0x0001, 0x0001, 0x0001, 0x18C7, 0x0001, 0x0001, 0x318D, 0x0843, 0x0843, 0x0843, 0xD671,
|
||||
0xD671, 0x4A51, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x294B, 0x294B, 0x7BDD, 0x7BDD, 0x7BDD, 0x0001, 0x0001, 0x0843, 0x0843,
|
||||
0xD671, 0xD671, 0xD671, 0x4A51, 0x4A51, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x294B, 0x294B, 0x294B, 0x294B,
|
||||
0x7BDD, 0x7BDD, 0xD671, 0xD671, 0x4A51, 0x4A51, 0x4A51, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x294B, 0x294B, 0x294B, 0x294B, 0x4A51, 0x4A51, 0x4A51, 0x4A51, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
|
||||
0x0001, 0x0001,
|
||||
};
|
||||
|
||||
u8 D_Tex_800DB4B8[] = {
|
||||
// used in fox_ma for train wheels
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
|
||||
0x09, 0x0A, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0B, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x0F, 0x14, 0x15, 0x0C, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x16, 0x17, 0x0E, 0x0F,
|
||||
0x0F, 0x10, 0x12, 0x18, 0x18, 0x19, 0x0F, 0x1A, 0x1B, 0x1C, 0x0C, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x0B, 0x0C, 0x0D, 0x1D, 0x1E, 0x0F, 0x0F, 0x1F, 0x20, 0x20, 0x20, 0x20,
|
||||
0x1F, 0x21, 0x22, 0x0D, 0x23, 0x23, 0x24, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x25, 0x09, 0x26, 0x27, 0x14, 0x1A, 0x28, 0x0F, 0x1F, 0x20, 0x20, 0x20, 0x20, 0x1F, 0x0F, 0x29, 0x2A, 0x2B, 0x15,
|
||||
0x17, 0x2C, 0x2D, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x01, 0x09, 0x2F, 0x30, 0x03, 0x31, 0x32,
|
||||
0x21, 0x0F, 0x33, 0x1F, 0x20, 0x20, 0x1F, 0x33, 0x28, 0x34, 0x30, 0x35, 0x36, 0x37, 0x34, 0x38, 0x39, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x15, 0x3A, 0x3B, 0x3C, 0x3C, 0x05, 0x34, 0x28, 0x0F, 0x0F, 0x33, 0x1F, 0x1F,
|
||||
0x33, 0x3C, 0x3D, 0x3E, 0x10, 0x3F, 0x04, 0x40, 0x3C, 0x41, 0x14, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x16,
|
||||
0x42, 0x34, 0x43, 0x1F, 0x1F, 0x3C, 0x3C, 0x44, 0x45, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x3C, 0x3C, 0x40, 0x3D, 0x45,
|
||||
0x1F, 0x1F, 0x45, 0x3D, 0x3B, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x25, 0x36, 0x40, 0x46, 0x12, 0x45, 0x1F,
|
||||
0x3C, 0x3C, 0x47, 0x45, 0x45, 0x45, 0x45, 0x3C, 0x45, 0x45, 0x28, 0x45, 0x46, 0x12, 0x45, 0x1F, 0x45, 0x48, 0x26,
|
||||
0x0B, 0x00, 0x00, 0x00, 0x0B, 0x0A, 0x26, 0x49, 0x3D, 0x46, 0x4A, 0x12, 0x1F, 0x3C, 0x4B, 0x45, 0x4C, 0x4D, 0x4D,
|
||||
0x4D, 0x4D, 0x4C, 0x45, 0x45, 0x45, 0x4E, 0x4F, 0x12, 0x1F, 0x44, 0x49, 0x16, 0x0A, 0x0B, 0x00, 0x00, 0x0C, 0x16,
|
||||
0x15, 0x42, 0x34, 0x3C, 0x50, 0x4E, 0x3C, 0x3C, 0x3C, 0x51, 0x20, 0x20, 0x52, 0x53, 0x52, 0x20, 0x20, 0x54, 0x45,
|
||||
0x45, 0x4E, 0x4E, 0x45, 0x55, 0x2F, 0x56, 0x26, 0x1C, 0x0C, 0x16, 0x57, 0x58, 0x49, 0x59, 0x10, 0x40, 0x3D, 0x3C,
|
||||
0x3C, 0x3C, 0x18, 0x52, 0x53, 0x46, 0x5A, 0x5A, 0x46, 0x53, 0x52, 0x20, 0x5B, 0x45, 0x45, 0x45, 0x45, 0x3D, 0x5C,
|
||||
0x35, 0x5D, 0x58, 0x01, 0x27, 0x5E, 0x5F, 0x3D, 0x60, 0x05, 0x47, 0x3D, 0x61, 0x62, 0x18, 0x4D, 0x4E, 0x63, 0x64,
|
||||
0x65, 0x65, 0x66, 0x67, 0x4E, 0x4D, 0x20, 0x54, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x68, 0x69, 0x6A, 0x3F,
|
||||
0x6B, 0x11, 0x1F, 0x6C, 0x3D, 0x3D, 0x0F, 0x6D, 0x20, 0x5A, 0x4A, 0x65, 0x12, 0x6E, 0x6E, 0x12, 0x6F, 0x70, 0x5A,
|
||||
0x20, 0x71, 0x45, 0x45, 0x45, 0x72, 0x1F, 0x11, 0x48, 0x45, 0x31, 0x73, 0x72, 0x11, 0x20, 0x20, 0x1F, 0x03, 0x3D,
|
||||
0x62, 0x20, 0x4D, 0x63, 0x74, 0x75, 0x3E, 0x4B, 0x4B, 0x76, 0x77, 0x78, 0x67, 0x4D, 0x20, 0x79, 0x45, 0x72, 0x1F,
|
||||
0x20, 0x20, 0x11, 0x48, 0x60, 0x7A, 0x11, 0x18, 0x20, 0x20, 0x20, 0x74, 0x3D, 0x19, 0x20, 0x4E, 0x4A, 0x7B, 0x76,
|
||||
0x45, 0x45, 0x45, 0x45, 0x76, 0x7C, 0x70, 0x7D, 0x20, 0x19, 0x45, 0x1F, 0x20, 0x20, 0x20, 0x20, 0x12, 0x7E, 0x07,
|
||||
0x11, 0x20, 0x20, 0x20, 0x20, 0x5D, 0x3D, 0x7F, 0x20, 0x4E, 0x80, 0x81, 0x3E, 0x45, 0x45, 0x45, 0x45, 0x3E, 0x7B,
|
||||
0x80, 0x7D, 0x20, 0x19, 0x45, 0x1F, 0x20, 0x20, 0x20, 0x20, 0x7F, 0x04, 0x82, 0x83, 0x12, 0x20, 0x20, 0x1F, 0x6C,
|
||||
0x3D, 0x7F, 0x20, 0x4D, 0x84, 0x85, 0x6E, 0x3F, 0x3C, 0x3C, 0x3F, 0x6E, 0x86, 0x4A, 0x4D, 0x18, 0x62, 0x45, 0x72,
|
||||
0x1F, 0x20, 0x20, 0x1F, 0x72, 0x60, 0x59, 0x87, 0x6E, 0x12, 0x11, 0x6C, 0x3D, 0x47, 0x88, 0x6D, 0x20, 0x5A, 0x89,
|
||||
0x8A, 0x75, 0x72, 0x72, 0x7F, 0x8B, 0x80, 0x5A, 0x20, 0x6D, 0x8C, 0x45, 0x45, 0x72, 0x1F, 0x1F, 0x72, 0x45, 0x32,
|
||||
0x2F, 0x87, 0x87, 0x3D, 0x4B, 0x47, 0x44, 0x45, 0x8D, 0x19, 0x18, 0x52, 0x5A, 0x70, 0x8E, 0x8B, 0x8B, 0x6F, 0x8F,
|
||||
0x5A, 0x52, 0x18, 0x7F, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x04, 0x30, 0x90, 0x15, 0x2A, 0x91, 0x92, 0x28, 0x44,
|
||||
0x45, 0x45, 0x45, 0x45, 0x19, 0x18, 0x52, 0x50, 0x93, 0x94, 0x94, 0x93, 0x50, 0x52, 0x18, 0x7F, 0x45, 0x45, 0x45,
|
||||
0x45, 0x3D, 0x55, 0x33, 0x42, 0x58, 0x17, 0x95, 0x23, 0x17, 0x96, 0x60, 0x43, 0x3C, 0x1F, 0x11, 0x3C, 0x45, 0x7F,
|
||||
0x20, 0x20, 0x52, 0x53, 0x53, 0x52, 0x20, 0x97, 0x98, 0x45, 0x45, 0x11, 0x11, 0x45, 0x34, 0x36, 0x14, 0x15, 0x16,
|
||||
0x23, 0x00, 0x0C, 0x26, 0x22, 0x04, 0x45, 0x5A, 0x12, 0x45, 0x11, 0x45, 0x45, 0x98, 0x6D, 0x20, 0x20, 0x20, 0x20,
|
||||
0x99, 0x4B, 0x45, 0x45, 0x67, 0x12, 0x45, 0x1F, 0x3D, 0x29, 0x2A, 0x1C, 0x0A, 0x0B, 0x00, 0x0B, 0x9A, 0x14, 0x9B,
|
||||
0x45, 0x46, 0x4A, 0x12, 0x1F, 0x45, 0x45, 0x45, 0x45, 0x5B, 0x98, 0x19, 0x19, 0x45, 0x45, 0x45, 0x45, 0x46, 0x4A,
|
||||
0x12, 0x1F, 0x45, 0x60, 0x90, 0x23, 0x0B, 0x00, 0x00, 0x0B, 0x0C, 0x9C, 0x37, 0x45, 0x3C, 0x50, 0x50, 0x3C, 0x45,
|
||||
0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3C, 0x5F, 0x5F, 0x45, 0x50, 0x50, 0x45, 0x45, 0x9D, 0x9E, 0x9F,
|
||||
0x00, 0x00, 0x00, 0x0B, 0x0C, 0x23, 0x1B, 0x10, 0x45, 0x45, 0x45, 0x43, 0x04, 0x43, 0x45, 0x45, 0x72, 0x1F, 0x1F,
|
||||
0x72, 0x45, 0x43, 0x60, 0x82, 0x05, 0x45, 0x45, 0x3C, 0x04, 0x6B, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x0C,
|
||||
0x09, 0xA0, 0x60, 0x3F, 0x60, 0x10, 0x98, 0x5F, 0x45, 0x72, 0x1F, 0x20, 0x20, 0x1F, 0x45, 0x44, 0x05, 0x33, 0x30,
|
||||
0x73, 0x03, 0x83, 0x0E, 0xA1, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xA2, 0x1C, 0x17, 0x14, 0x90, 0x49,
|
||||
0xA3, 0xA4, 0x45, 0x1F, 0x20, 0x20, 0x20, 0x20, 0x1F, 0x45, 0x40, 0x3B, 0x6A, 0x27, 0x27, 0x58, 0x0D, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xA5, 0x0A, 0x1C, 0x9C, 0xA6, 0xA7, 0x76, 0x45, 0x1F, 0x20, 0x20,
|
||||
0x20, 0x20, 0x1F, 0x45, 0x05, 0xA8, 0x15, 0x23, 0x23, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0C, 0x16, 0x26, 0x27, 0xA8, 0x45, 0x72, 0x1F, 0x20, 0x20, 0x1F, 0x72, 0x44, 0x10, 0x5E,
|
||||
0x1C, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B,
|
||||
0x0A, 0x09, 0x90, 0x68, 0x45, 0x72, 0x98, 0x98, 0x72, 0x45, 0x10, 0x1B, 0xA9, 0x23, 0xAA, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x3A, 0x49, 0x05,
|
||||
0x76, 0x3E, 0x10, 0x30, 0x27, 0x15, 0x0B, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
u16 D_TLUT_800DB4B8[] = {
|
||||
// 176 color palette for above. Duplicate of D_MA_6023788
|
||||
0x08D1, 0x3219, 0x7425, 0xADB1, 0xDF3B, 0xD6F9, 0xD739, 0xC675, 0x8CEB, 0x4ADF, 0x2197, 0x1113, 0x1955, 0x429F,
|
||||
0x9531, 0xE77F, 0xBE35, 0x8429, 0x94AB, 0xCE79, 0x7429, 0x5321, 0x321B, 0x5B65, 0x0843, 0xAD73, 0xB637, 0x84AD,
|
||||
0x3A5D, 0x6C29, 0xADF7, 0x7BE5, 0x0001, 0xCEFB, 0x8CEF, 0x29D9, 0x2195, 0x3A5B, 0x429D, 0x5B63, 0xDF3D, 0xA5B3,
|
||||
0x6BE7, 0x52E1, 0x5363, 0x42DF, 0x0911, 0x7427, 0x9D2F, 0x8CED, 0x9D71, 0xADB3, 0xC677, 0x94ED, 0x952F, 0xB635,
|
||||
0x846B, 0x325B, 0x7C29, 0xADF3, 0xF7BF, 0xEF7D, 0xD6B9, 0xDEFB, 0xE77D, 0xE73D, 0x84AB, 0xEFBD, 0xF7FF, 0xFFFF,
|
||||
0x0849, 0xEFBF, 0xC635, 0x8CAB, 0x3195, 0xEF7F, 0x739F, 0x0005, 0x084B, 0x39D5, 0x0009, 0x1087, 0x0003, 0x0007,
|
||||
0xB5B5, 0xCEB7, 0x4A9D, 0x4AE1, 0x63A5, 0x952D, 0x108B, 0xD6BB, 0xBE33, 0x8469, 0x94EF, 0xE73B, 0xCEB9, 0xE7BF,
|
||||
0xC639, 0x2111, 0x529B, 0x6321, 0x4A5B, 0x210F, 0xB639, 0x63A3, 0x7C69, 0xADB5, 0xB5B1, 0x4A55, 0xAD71, 0x5ADD,
|
||||
0x3193, 0x4A57, 0xBDF3, 0xA5B1, 0x73A5, 0xA52D, 0xCE77, 0xA52F, 0x6B63, 0xD6BD, 0xB633, 0x94AD, 0x8C6B, 0x0847,
|
||||
0xCEF9, 0x9CEF, 0x39D7, 0x9CED, 0xB5F3, 0xB5F5, 0x2951, 0x8427, 0x7BE7, 0xCF3F, 0xBE39, 0x4217, 0x73A3, 0x6B61,
|
||||
0xDF3F, 0xDF7F, 0x5ADF, 0x2953, 0x7C6B, 0x9D73, 0xC6BB, 0x108D, 0x18CF, 0x29D7, 0xA5B5, 0x18C7, 0xBDF5, 0x5299,
|
||||
0x21D9, 0xD6FB, 0x5323, 0xC6B9, 0x742B, 0x1155, 0x6BE9, 0x5BA5, 0x21D7, 0x9D2D, 0xDEF9, 0x1997, 0x5B21, 0x6BE5,
|
||||
0xA571, 0x63A7, 0x0913, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE, 0xFFFE,
|
||||
};
|
||||
Reference in New Issue
Block a user