Merge branch 'master' into otr

This commit is contained in:
KiritoDv
2024-04-08 18:05:46 -06:00
committed by Sonic Dreamcaster
507 changed files with 120585 additions and 57915 deletions
+1173 -949
View File
File diff suppressed because it is too large Load Diff
+896 -857
View File
File diff suppressed because it is too large Load Diff
+512 -431
View File
File diff suppressed because it is too large Load Diff
@@ -1,6 +1,12 @@
#include "global.h"
void func_800846F0(FrameBuffer* arg0) {
/*
* File: fox_blur.c
* System: Blur
* Description: Some unused blurring code.
*/
void func_blur_800846F0(FrameBuffer* arg0) {
s32 i;
s32 j;
u16* var_v0;
+61 -52
View File
@@ -2,18 +2,16 @@
s32 gBossFrameCount;
s32 D_boss_800C9E90[] = {
SEQ_ID_CO_BOSS_1 | SEQ_FLAG, SEQ_ID_ME_BOSS | SEQ_FLAG, SEQ_ID_SX_BOSS | SEQ_FLAG, SEQ_ID_A6_BOSS | SEQ_FLAG,
SEQ_ID_A6_BOSS | SEQ_FLAG, SEQ_ID_SY_BOSS | SEQ_FLAG, SEQ_ID_VE_BOSS | SEQ_FLAG, SEQ_ID_SO_BOSS | SEQ_FLAG,
SEQ_ID_ZO_BOSS | SEQ_FLAG, SEQ_ID_VE_BOSS | SEQ_FLAG, SEQ_ID_CO_BOSS_1 | SEQ_FLAG, SEQ_ID_MA_BOSS | SEQ_FLAG,
SEQ_ID_TI_BOSS | SEQ_FLAG, SEQ_ID_AQ_BOSS | SEQ_FLAG,
s32 gBossBgms[] = {
NA_BGM_BOSS_CO, NA_BGM_BOSS_ME, NA_BGM_BOSS_SX, NA_BGM_BOSS_A6, NA_BGM_BOSS_SB, NA_BGM_BOSS_SY, NA_BGM_BOSS_VE,
NA_BGM_BOSS_SO, NA_BGM_BOSS_ZO, NA_BGM_BOSS_VE, NA_BGM_BOSS_CO, NA_BGM_BOSS_MA, NA_BGM_BOSS_TI, NA_BGM_BOSS_AQ,
};
s32 PAD_boss_C9EC4[14] = { 0 };
const f32 D_boss_800D55D0[] = { 6000.0f, 18000.0f, -6000.0f, -18000.0f };
const f32 D_boss_800D55D0[] = { 6000.0f, 18000.0f, -6000.0f, -18000.0f }; // unused?
void func_boss_80042EC0(Boss* boss) {
void Boss_AwardBonus(Boss* this) {
s32 bonus;
f32 yOffset;
@@ -28,94 +26,105 @@ void func_boss_80042EC0(Boss* boss) {
} else {
bonus = 0;
}
if (bonus != 0) {
yOffset = 0.0f;
if (boss->obj.id == OBJ_BOSS_292) {
if (this->obj.id == OBJ_BOSS_CO_GRANGA) {
yOffset = 300.0f;
} else if (boss->obj.id == OBJ_BOSS_306) {
} else if (this->obj.id == OBJ_BOSS_TI_GORAS) {
yOffset = 200.0f;
}
BonusText_Display(boss->obj.pos.x, boss->obj.pos.y + yOffset, boss->obj.pos.z, bonus);
BonusText_Display(this->obj.pos.x, this->obj.pos.y + yOffset, this->obj.pos.z, bonus);
}
gHitCount += bonus + 1;
D_ctx_80177850 = 15;
}
void Boss299_Init(Boss* boss) {
void Boss299_Init(Boss299* this) {
/* Unimplemented */
}
void Boss299_Update(Boss* boss) {
void Boss299_Update(Boss299* this) {
/* Unimplemented */
}
void Boss299_Draw(Boss* boss) {
void Boss299_Draw(Boss299* this) {
/* Unimplemented */
}
void Boss300_Init(Boss* boss) {
void Boss300_Init(Boss300* this) {
/* Unimplemented */
}
void Boss300_Update(Boss* boss) {
void Boss300_Update(Boss300* this) {
/* Unimplemented */
}
void Boss300_Draw(Boss* boss) {
void Boss300_Draw(Boss300* this) {
/* Unimplemented */
}
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);
void Boss_SetupDebris(ActorDebris* this, 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(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_ACTOR_DEBRIS;
this->state = argB;
this->obj.pos.x = arg1;
this->obj.pos.y = arg2;
this->obj.pos.z = arg3;
this->obj.rot.x = arg4;
this->obj.rot.y = arg5;
this->obj.rot.z = arg6;
this->vel.x = arg7;
this->vel.y = arg8;
this->vel.z = arg9;
this->scale = argA;
this->timer_0BC = argC;
this->timer_0BE = 20;
Object_SetInfo(&this->info, this->obj.id);
if (gLevelType == LEVELTYPE_PLANET) {
actor->gravity = 0.5f;
this->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) {
void Boss_SpawnDebris(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--) {
for (i = (ARRAY_COUNT(gActors)) - 1; 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;
Boss_SetupDebris(&gActors[i], arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, argA, argB);
break;
}
}
}
void func_boss_80043188(Boss* boss) {
boss->info.unk_10 = 30000.0f;
void Boss_SetCullDistance(Boss* this) {
this->info.cullDistance = 30000.0f;
}
void func_boss_8004319C(Player* player, f32 arg1, f32 arg2, f32 arg3) {
void Boss_CompleteLevel(Player* player, f32 xPos, f32 yPos, f32 zPos) {
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;
gBossDeathCamAtZ = zPos + gPathProgress;
gBossDeathCamAtX = xPos;
gBossDeathCamAtY = yPos;
player->state_1C8 = PLAYERSTATE_1C8_LEVEL_COMPLETE;
player->csState = 10;
player->csTimer = 50;
player->csEventTimer = 50;
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) {
if (player->pos.x < player->xPath) {
player->unk_004 = -1.0f;
}
gPlayer[0].vel.x = 0.0f;
}
@@ -194,6 +194,7 @@ void func_col1_80097C88(Vec3f* norms, Vtx_tn* quad) {
__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];
@@ -205,17 +206,21 @@ void func_col1_80097C88(Vec3f* norms, Vtx_tn* quad) {
__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;
@@ -223,15 +228,18 @@ void func_col1_80097C88(Vec3f* norms, Vtx_tn* 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;
@@ -260,8 +268,10 @@ s32 func_col1_8009808C(Vec3f* pos, Vtx_tn* quad, Vec3f* normOut) {
__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);
@@ -277,6 +287,7 @@ s32 func_col1_8009808C(Vec3f* pos, Vtx_tn* quad, Vec3f* normOut) {
}
}
}
if (var_v1 == 0) {
test1 = TRINORM_Y(__vtx0, __vtx2, __pos);
if ((test1 >= 0.0f)) {
@@ -1,6 +1,6 @@
#include "global.h"
#include "fox_A4290_colheaders.c"
#include "fox_colheaders.c"
bool func_col2_800A36FC(Vec3f* objPos, Vec3f* colliderPos, CollisionHeader2* colHeader, Vec3f* hitDataOut);
bool func_col2_800A3A74(Vec3f* point, Vec3f** tri, Vec3f* normOut);
@@ -26,14 +26,18 @@ bool func_col2_800A36FC(Vec3f* objPos, Vec3f* colliderPos, CollisionHeader2* col
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 = LOAD_ASSET(colHeader->polys);
mesh = LOAD_ASSET(colHeader->mesh);
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]];
@@ -43,12 +47,15 @@ bool func_col2_800A36FC(Vec3f* objPos, Vec3f* colliderPos, CollisionHeader2* col
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 {
@@ -64,6 +71,7 @@ bool func_col2_800A36FC(Vec3f* objPos, Vec3f* colliderPos, CollisionHeader2* col
} 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);
@@ -72,6 +80,7 @@ bool func_col2_800A36FC(Vec3f* objPos, Vec3f* colliderPos, CollisionHeader2* col
} else {
hitDataOut->z = -Math_Atan2F_XY(norm.y, norm.x);
}
if ((objPos->y - hitDataOut->y <= 0.0f) || (gCurrentLevel == LEVEL_MACBETH)) {
sp38 = true;
}
@@ -106,6 +115,7 @@ bool func_col2_800A3A74(Vec3f* point, Vec3f** tri, Vec3f* normOut) {
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))) {
@@ -1,4 +1,3 @@
#include "structs.h"
#include "macros.h"
#include "variables.h"
#include "assets/ast_aquas.h"
@@ -13,23 +12,23 @@
#include "assets/ast_versus.h"
#include "assets/ast_zoness.h"
static Vec3f D_800D2920[16] = {
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] = {
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] = {
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] = {
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 },
@@ -39,70 +38,70 @@ CollisionHeader D_800D2B38[10] = {
{
{ -1128.0f, -1835.0f, -1202.0f },
{ 997.0f, 139.0f, 1360.0f },
79,
ARRAY_COUNT(D_ME_602FA9C),
D_ME_602FA9C,
D_ME_60300C8,
},
{
{ -3006.0f, -2274.0f, -4530.0f },
{ 3015.0f, 3348.0f, 5246.0f },
236,
ARRAY_COUNT(D_ME_60305DC),
D_ME_60305DC,
D_ME_603184C,
},
{
{ -152.0f, -200.0f, -152.0f },
{ 165.0f, 204.0f, 181.0f },
42,
ARRAY_COUNT(D_ME_6030208),
D_ME_6030208,
D_ME_6030550,
},
{
{ -1704.0f, -1006.0f, -4751.0f },
{ 1704.0f, 1030.0f, 4842.0f },
174,
ARRAY_COUNT(D_SY_6033070),
D_SY_6033070,
D_SY_6033E08,
},
{
{ -1308.0f, 0.0f, -1460.0f },
{ 1310.0f, 666.0f, 807.0f },
93,
ARRAY_COUNT(D_FO_600F60C),
D_FO_600F60C,
D_FO_600FD50,
},
{
{ -951.0f, 0.0f, -1075.0f },
{ 1075.0f, 1014.0f, 1075.0f },
22,
ARRAY_COUNT(D_FO_600F3F4),
D_FO_600F3F4,
D_FO_600F5AC,
},
{
{ -951.0f, 0.0f, -1075.0f },
{ 1075.0f, 384.0f, 1075.0f },
22,
ARRAY_COUNT(D_FO_600F1DC),
D_FO_600F1DC,
D_FO_600F394,
},
{
{ -1554.0f, -2.0f, -1401.0f },
{ 1554.0f, 590.0f, 1401.0f },
262,
ARRAY_COUNT(D_BO_6010294),
D_BO_6010294,
D_BO_601170C,
},
{
{ -1386.0f, -696.0f, -2274.0f },
{ 1386.0f, 1033.0f, 1833.0f },
316,
ARRAY_COUNT(D_SZ_6007558),
D_SZ_6007558,
D_SZ_6008E08,
},
{
{ -671.0f, 0.0f, -671.0f },
{ 671.0f, 648.0f, 671.0f },
250,
ARRAY_COUNT(D_VE2_6014FEC),
D_VE2_6014FEC,
D_VE2_6016374,
},
@@ -119,14 +118,14 @@ CollisionHeader2 D_800D2CA0[19] = {
{
{ -1220.0f, 0.0f, -1315.0f },
{ 1403.0f, 174.0f, 1308.0f },
13,
ARRAY_COUNT(D_CO_603F338),
D_CO_603F338,
D_CO_603F388,
},
{
{ -1311.0f, 0.0f, -1120.0f },
{ 1266.0f, 1465.0f, 1266.0f },
36,
ARRAY_COUNT(D_CO_603F40C),
D_CO_603F40C,
D_CO_603F4E4,
},
@@ -140,105 +139,105 @@ CollisionHeader2 D_800D2CA0[19] = {
{
{ -498.0f, -10.0f, -498.0f },
{ 498.0f, 705.0f, 498.0f },
4,
ARRAY_COUNT(D_versus_302EEE8),
D_versus_302EEE8,
D_versus_302EF00,
},
{
{ -1494.0f, -30.0f, -1494.0f },
{ 1494.0f, 2115.0f, 1494.0f },
4,
ARRAY_COUNT(D_versus_302EF6C),
D_versus_302EF6C,
D_versus_302EF84,
},
{
{ -623.0f, -10.0f, -623.0f },
{ 623.0f, 200.0f, 623.0f },
4,
ARRAY_COUNT(D_versus_302EFF0),
D_versus_302EFF0,
D_versus_302F008,
},
{
{ -488.0f, 0.0f, -568.0f },
{ 488.0f, 148.0f, 567.0f },
30,
ARRAY_COUNT(D_ZO_602CACC),
D_ZO_602CACC,
D_ZO_602CB80,
},
{
{ -900.0f, -110.0f, -1900.0f },
{ 900.0f, 190.0f, 100.0f },
2,
ARRAY_COUNT(D_MA_6030E74),
D_MA_6030E74,
D_MA_6030E80,
},
{
{ -900.0f, -100.0f, -1000.0f },
{ 900.0f, 250.0f, 100.0f },
2,
ARRAY_COUNT(D_MA_6030EB0),
D_MA_6030EB0,
D_MA_6030EBC,
},
{
{ -900.0f, -190.0f, -1900.0f },
{ 900.0f, 100.0f, 100.0f },
2,
ARRAY_COUNT(D_MA_6030EEC),
D_MA_6030EEC,
D_MA_6030EF8,
},
{
{ -500.0f, -250.0f, -1010.0f },
{ 500.0f, 100.0f, 100.0f },
2,
ARRAY_COUNT(D_MA_6030F28),
D_MA_6030F28,
D_MA_6030F34,
},
{
{ -1200.0f, 0.0f, -1800.0f },
{ 0.0f, 900.0f, 1500.0f },
4,
ARRAY_COUNT(D_MA_6030F64),
D_MA_6030F64,
D_MA_6030F7C,
},
{
{ -400.0f, 0.0f, -900.0f },
{ 400.0f, 0.0f, 0.0f },
2,
ARRAY_COUNT(D_MA_6030FC4),
D_MA_6030FC4,
D_MA_6030FD0,
},
{
{ -74.0f, 0.0f, -84.0f },
{ 74.0f, 125.0f, 84.0f },
30,
ARRAY_COUNT(D_AQ_60320B8),
D_AQ_60320B8,
D_AQ_603216C,
},
{
{ -1200.0f, 0.0f, -1315.0f },
{ 1403.0f, 200.0f, 1308.0f },
8,
ARRAY_COUNT(D_AQ_6031FB0),
D_AQ_6031FB0,
D_AQ_6031FE0,
},
{
{ -600.0f, 0.0f, -657.0f },
{ 701.0f, 100.0f, 654.0f },
8,
ARRAY_COUNT(D_AQ_6031FB0),
D_AQ_6031FB0,
D_AQ_603204C,
},
{
{ -2965.0f, -16.0f, -2965.0f },
{ 2965.0f, 544.0f, 2965.0f },
14,
ARRAY_COUNT(D_versus_302F044),
D_versus_302F044,
D_versus_302F098,
},
{
{ -814.0f, 0.0f, -691.0f },
{ 814.0f, 752.0f, 691.0f },
28,
ARRAY_COUNT(D_AQ_6032388),
D_AQ_6032388,
D_AQ_6032430,
},
+241 -211
View File
@@ -4,133 +4,147 @@
#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?
s32 gSceneId;
s32 gSceneSetup;
s32 gClearPlayerInfo; // some sort of flag
bool 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
s32 gNextGameStateTimer;
s32 gVsItemSpawnTimer;
OptionState gOptionMenuStatus;
s32 D_ctx_80177854; // pause-related state
s32 D_ctx_80177868; // some sort of state. pause-related?
s32 gPlayState;
s32 D_ctx_80177868; // some sort of state. pause-related? Also used by game over
LevelMode gLevelMode;
DrawMode gDrawMode;
s32 gPlayerNum;
s32 gCamCount;
/**
* gTeamShields[1] = Falco
* gTeamShields[2] = Slippy
* gTeamShields[3] = Peppy
*/
s32 gTeamShields[6];
s32 gSavedTeamShields[6];
s32 D_ctx_801778F0[6];
s32 gPrevPlanetSavedTeamShields[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;
u8 gMissionStatus;
f32 gGroundHeight;
f32 D_ctx_80177950; // Related to camera z-rotations? Only set to -1 in corneria intro, where it does nothing?
f32 gPlayerTurnRate;
f32 gPlayerTurnStickMod;
f32 gCsCamEyeX;
f32 gCsCamEyeY;
f32 gCsCamEyeZ;
f32 gCsCamAtX;
f32 gCsCamAtY;
f32 gCsCamAtZ;
Vec3f gPlayerCamEye;
Vec3f gPlayerCamAt;
Vec3f gPlayCamEye;
Vec3f gPlayCamAt;
bool gExpertMode;
s32 D_ctx_80177A10[10];
f32 D_ctx_80177A48[10];
s32 D_ctx_80177A10[10]; // work buffer
f32 D_ctx_80177A48[10]; // work buffer
s32 gCsFrameCount;
u8 D_ctx_80177A98;
u8 D_ctx_80177AB0;
u8 D_ctx_80177AC8;
s32 D_ctx_80177AE0;
u8 gDrawGround; // some sort of flag. Used in background
u8 gDrawBackdrop;
u8 gAqDrawMode;
s32 gTitleState;
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_80177C38?
s32 D_ctx_80177C38[6];
s32 D_ctx_80177C58[6];
u8 gSoundMode;
s32 gMapState;
s32 gMissionNumber;
/**
* 0x 00 FF 00 00 Peppy
* 0x 00 00 FF 00 Slippy
* 0x 00 00 00 FF Falco
*/
s32 gMissionTeamStatus[7];
s32 gMissionHitCount[7];
PlanetId gMissionPlanet[7];
s32 gMissionMedal[7];
#ifdef AVOID_UB
s32 gPlanetPathStatus[24];
#else
s32 gPlanetPathStatus[22]; // overruns gPrevPlanetTeamShields?
#endif
s32 gPrevPlanetTeamShields[6];
s32 D_ctx_80177C58[6]; // another saved team shields. maybe this is prev planet?
u8 gOptionSoundMode;
s32 gVolumeSettings[3];
u16 gBgmSeqId;
u8 gLevelType;
s32 D_ctx_80177CA0;
s32 gSavedObjectLoadIndex;
UNK_TYPE F_80177CA8;
f32 D_ctx_80177CB0;
f32 gSavedPathProgress;
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;
f32 gWaterLevel;
f32 gPathGroundScroll;
f32 gPathTexScroll;
f32 gPathVelZ;
f32 gPathProgress;
f32 gRadioPortraitScaleY;
f32 gRadioTextBoxScaleY;
f32 gRadioMsgRadioId;
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;
s32 gObjectLoadIndex;
s32 gPrevEventActorIndex;
s32 gFormationLeaderIndex;
s32 gRingPassCount;
Vec3f gFormationInitRot;
Vec3f gFormationInitPos;
UNK_TYPE F_80178020;
s32 D_ctx_8017812C;
s32 gGroundClipMode;
LevelId gCurrentLevel;
s32 D_ctx_8017827C;
s32 gLevelPhase;
s32 gBossActive;
s32 D_ctx_8017828C;
s32 D_ctx_80178294;
bool gKillEventActors;
s32 gUseDynaFloor;
s32 gRadioState;
s32 D_ctx_801782A4;
s32 D_Timer_801782AC;
s32 D_Timer_801782B4;
u8 D_play_800D3180[30] = {
s32 gCurrentRadioPortrait;
s32 gRadioStateTimer;
s32 gRadioMouthTimer;
u8 gLeveLClearStatus[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;
s32 D_ctx_801782C0; // set to 0, never used
s32 D_ctx_801782C8; // set to 0, never used
s32 D_ctx_801782D0; // set to 0, never used
s32 gRadioMsgCharIndex;
UNK_TYPE F_801782E0;
s32 D_ctx_801782E8;
s32 gRadioMsgId;
UNK_TYPE F_801782F0;
s32 D_ctx_801782F8;
s32 D_ctx_80178300;
u16* D_ctx_80178308;
ObjectInit* D_ctx_80178310;
bool gMsgCharIsPrinting;
bool gHideRadio;
u16* gRadioMsg;
ObjectInit* gLevelObjects;
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
s32 gFillScreenAlpha;
s32 gFillScreenRed;
s32 gFillScreenGreen;
s32 gFillScreenBlue;
s32 gFillScreenAlphaTarget;
s32 gFillScreenAlphaStep;
s32 gLight3R; // 2 lights second color
s32 gLight3G;
s32 gLight3B;
f32 gLight3Brightness; // 2 lights second color brightness
f32 gLight3x; // Vec3f?
f32 gLight3y;
f32 gLight3z;
s32 gFadeoutType;
u32 gPlayerGlareAlphas[4];
s32 gPlayerGlareReds[4];
s32 gPlayerGlareGreens[4];
s32 gPlayerGlareBlues[4];
UNK_TYPE D_ctx_801783C0[4]; // unused. player alpha targets?
f32 gSunViewX; // something x translate
f32 gSunViewY; // something y translate
s32 gFogNear; // near
s32 gFogFar; // far
UNK_TYPE F_801783E0;
UNK_TYPE F_801783E4;
UNK_TYPE F_801783E8;
@@ -143,111 +157,127 @@ 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 P_800D31A0 = 0;
s32 gStarCount;
f32 gStarWarpDistortion;
f32 gCOComplete2CamRotY;
UNK_TYPE F_8017841C;
f32 D_ctx_80178420;
f32 D_ctx_80178424;
f32 D_ctx_80178428;
f32 D_ctx_8017842C;
f32 D_ctx_80178430;
f32 gStarfieldX;
f32 gStarfieldY;
f32 gStarfieldRoll;
f32 gStarfieldScrollX; // starfield yaw?
f32 gStarfieldScrollY; // starfield roll?
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 gBossDeathCamAtX; //
f32 gBossDeathCamAtY;
f32 gBossDeathCamAtZ;
f32 gCsTeamTargetsX[3]; // x positions of certain actors (teammates?)
f32 gCsTeamTargetsY[3]; // y positions of certain actors (teammates?)
f32 gCsTeamTargetsZ[3]; // z positions of certain actors (teammates?)
f32 gCameraShakeY;
s32 gCameraShake;
s32 D_ctx_80178484;
bool D_ctx_80178488;
s32 D_ctx_80178484; // set to 100000 when pausing but not used
bool gLoadLevelObjects;
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;
#ifdef AVOID_UB
s32 D_ctx_80178494 = 0;
#else
s32 D_ctx_80178494; // Torpedoes have this set to their unk_5C. Were they shot2s at some point?
#endif
f32 gShotHitPosZ;
f32 gShotHitPosX;
f32 gShotHitPosY;
s32 gZoDodoraWaypointCount;
UNK_TYPE F_801784A8;
s32 D_ctx_801784AC;
GroundType gGroundType;
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
// light source 1. Used for most things
f32 gLight1xRot; // effective Vec3f
f32 gLight1yRot;
f32 gLight1zRot;
f32 gLight1xRotTarget; // effective Vec3f
f32 gLight1yRotTarget;
f32 gLight1zRotTarget;
f32 gEnvLightxRot; // effective Vec3f
f32 gEnvLightyRot;
f32 gEnvLightzRot;
s32 gLight1x; // Vec3i?
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
f32 gLight1rotStep;
// light source 2. used for Players
f32 gLight2xRot; // effective Vec3f
f32 gLight2yRot;
f32 gLight2zRot;
f32 gLight2xRotTarget; // effective Vec3f
f32 gLight2yRotTarget;
f32 gLight2zRotTarget;
s32 gLight2x; // Vec3i?
s32 gLight2y;
s32 gLight2z;
f32 D_ctx_80178510;
f32 gLight2rotStep;
// this section looks like a third light source. May have been for scenery shadows
UNK_TYPE F_801784514;
UNK_TYPE F_801784518;
UNK_TYPE F_80178451C;
f32 D_ctx_80178520; // effective Vec3f
f32 D_ctx_80178520; // effective Vec3f, set to env light rotation but unused
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;
f32 D_ctx_8017853C; // hitbox size modifier for player collisions. always 0.0f. seems out of place
s32 gLight2colorStep; // light 2 color step
s32 D_ctx_80178544; // light 3 color step?
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_ctx_80161A70; // Color32? start of bss
s32 gLight2RTarget; // Color32 light color 2 modifier?
s32 gLight2GTarget;
s32 gLight2BTarget;
s32 D_ctx_80161A70; // unused Color32, perhaps for third light? start of bss
s32 D_ctx_80161A74;
s32 D_ctx_80161A78;
s32 D_ctx_80161A7C;
s32 D_ctx_80161A7C; // unused Color32, perhaps targets for third light?
s32 D_ctx_80161A80;
s32 D_ctx_80161A84;
s32 D_ctx_80161A88;
s32 D_ctx_80161A8C;
GroundSurface gGroundSurface;
GroundSurface gSavedGroundSurface;
u8 gGoldRingCount[4];
u8 D_ctx_80161A94[4];
u8 gSavedGoldRingCount[4];
s32 gHitCount;
s32 gSavedHitCount;
s16 gLifeCount[4];
LaserStrength gLaserStrength[4];
s32 D_ctx_80161AB8;
s32 gCullObjects;
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];
Scenery gScenery[50];
Sprite gSprites[40];
Actor gActors[60];
Boss gBosses[4];
Effect gEffects[100];
@@ -256,106 +286,106 @@ 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];
s32 gMeMoraStatus[2];
f32 gMeMoraXpos[2][100];
f32 gMeMoraYpos[2][100];
f32 gMeMoraZpos[2][100];
f32 gMeMoraXrot[2][100];
f32 gMeMoraYrot[2][100];
f32 gMeMoraZrot[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
u16 gEnemyShotSpeed; // enemy shot speed?
u8 gShowLevelClearStatusScreen;
s32 gLevelStartStatusScreenTimer;
s32 gLevelClearScreenTimer; // timer for mission accomplished screen
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 D_ctx_80177850; // bonus text related. set to 15 but never read
s32 D_ctx_80177858[4]; // set to 3 but never used. related to VS mode customization?
PlayerForm gPlayerForms[4];
s32 gHandicap[4];
VsStage gVersusStage;
s32 D_ctx_801778A4;
s32 D_ctx_801778AC;
s32 D_ctx_801778C8;
s32 gVsPointsToWin;
s32 gVsMatchType;
s32 gVsTimeTrialLimit;
bool gVersusMode;
u16 gBoostButton[4];
u16 gBrakeButton[4];
u16 gShootButton[4];
u16 gBombButton[4];
f32 D_ctx_80177958[4];
s32 D_ctx_8017796C;
f32 D_ctx_80177958[4]; // set to 1.0f but never used
s32 gTeamLowHealthMsgTimer;
OSContPad* gInputHold;
OSContPad* gInputPress;
u8* D_ctx_80177984;
s32 D_ctx_80177990[4];
u8* gControllerRumble;
s32 D_ctx_80177990[4]; // these two are also rumble related
f32 D_ctx_801779A8[4];
u8 D_ctx_801779BC;
u8 gPauseEnabled;
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;
f32 gPathVelX;
f32 gPathVelY;
s32 gUturnDownTimers[4];
s32 gUturnBrakeTimers[4];
s32 gLoopDownTimers[4];
s32 gLoopBoostTimers[4];
f32 gMuzzleFlashScale[4];
f32 gShieldAlpha[4];
s32 gHasShield[4];
s32 gShieldTimer[4];
s32 gVsLockOnTimers[4][4];
u8 gStartAndrossFightTimer;
u8 gSoShieldsEmpty;
u8 gCoUturnCount;
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;
u8 gTiStartLandmaster;
u16 gControllerRumbleTimers[4];
u16 gPlayerScores[4];
s32 gCircleWipeFrame;
s32 gFovYMode; // sets camera field of view Y. initialized to 0 and never changed
s32 gTraining360MsgTimer;
s32 gTraining360MsgIndex;
s32 D_ctx_80177C94; // these save player parameters across the Venom -> Andross transition
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 gStarWolfTeamAlive[6];
s32 gSavedStarWolfTeamAlive[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 gRightWingFlashTimer[4];
s32 gLeftWingFlashTimer[4];
s32 gRightWingDebrisTimer[4];
s32 gLeftWingDebrisTimer[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];
s32 gVsPoints[4];
s32 gVsKills[4][10];
s32 gVsMatchWon;
bool gVsMatchStart;
bool gChangeTo360;
Vec3f gTeamArrowsViewPos[10];
f32 D_ctx_80177F20[65]; // Seem to be an early implementation of RadarMark
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;
f32* gStarOffsetsX;
f32* gStarOffsetsY;
u32* gStarFillColors;
UNK_TYPE F_801782A0;
Object_58* gObjects58;
Scenery360* gScenery360;
UNK_TYPE F_801782B0;
s32 D_ctx_801782B8;
s32 D_ctx_801782BC;
PosRot* D_ctx_801782C4;
f32* D_ctx_801782CC;
s32 gDrawSmallRocks;
s32 D_ctx_801782BC; // set to 0, never used
PosRot* gZoDodoraPosRots;
f32* D_ctx_801782CC; // arrays used for dynamic floor
f32* D_ctx_801782D4;
f32* D_ctx_801782DC;
f32* D_ctx_801782E4;
f32* D_ctx_801782EC;
UNK_TYPE F_801782F4;
s32 D_ctx_801782FC;
s32 gDynaFloorTimer; // timer related to dynamic floor
UNK_TYPE F_80178304;
UNK_TYPE F_8017830C;
UNK_TYPE F_80178314;
+1334 -1339
View File
File diff suppressed because it is too large Load Diff
+875 -675
View File
File diff suppressed because it is too large Load Diff
+9 -8
View File
@@ -2,23 +2,24 @@
#include "fox_edata_info.c"
f32* D_edata_800CF964[] = { NULL };
f32* D_edata_800CF964[] = { NULL }; // Likely a scrapped array of scenery shadow boxes
void func_edata_800594F0(Object_80* obj80) {
void Ve1Wall1_Draw(Ve1Wall1* this) {
RCP_SetupDL_57(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
Matrix_RotateY(gGfxMatrix, M_PI, 1);
Matrix_RotateY(gGfxMatrix, M_PI, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_VE1_6007D90);
gSPDisplayList(gMasterDisp++, aVe1Wall1DL);
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
}
void func_edata_800595D0(Object_80* obj80) {
void Ve1Wall2_Draw(Ve1Wall2* this) {
RCP_SetupDL_57(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
Matrix_RotateY(gGfxMatrix, M_PI, 1);
Matrix_RotateY(gGfxMatrix, M_PI, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_VE1_6007CF0);
gSPDisplayList(gMasterDisp++, aVe1Wall2DL);
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
}
void func_edata_800596B0(Actor* actor) {
void AndJamesTrigger_Draw(AndJamesTrigger* this) {
/* Unimplemented */
}
+447 -423
View File
@@ -1,3 +1,26 @@
/**
* Glossary:
*
* Level Prefixes:
* CO: Corneria
* ME: Meteo
* SX: Sector X
* SY: Sector Y
* SZ: Sector Z
* KA: Katina
* AQ: Aquas
* A6: Area 6
* FO: Fortuna
* SO: Solar
* MA: Macbeth
* TI: Titania
* BO: Bolse
* ZO: Zoness
* VE1: Venom 1
* VE2: Venom 2
* AND: Venom Andross
*/
#include "global.h"
#include "assets/ast_versus.h"
@@ -22,475 +45,476 @@
#include "assets/ast_area_6.h"
#include "assets/ast_zoness.h"
f32 D_edata_800CBE70[] = {
f32 gZoEnergyBallHitbox[] = {
1.0f, 0.0f, 50.0f, 0.0f, 25.0f, 0.0f, 25.0f,
};
f32 D_edata_800CBE8C[] = {
f32 gCubeHitbox100[] = {
1.0f, 0.0f, 50.0f, 0.0f, 50.0f, 0.0f, 50.0f,
};
f32 D_edata_800CBEA8[] = {
f32 gCubeHitbox150[] = {
1.0f, 0.0f, 75.0f, 0.0f, 75.0f, 0.0f, 75.0f,
};
f32 D_edata_800CBEC4[] = {
f32 gCubeHitbox200[] = {
1.0f, 0.0f, 100.0f, 0.0f, 100.0f, 0.0f, 100.0f,
};
f32 D_edata_800CBEE0[] = {
f32 gCubeHitbox300[] = {
// unused
1.0f, 0.0f, 150.0f, 0.0f, 150.0f, 0.0f, 150.0f,
};
f32 D_edata_800CBEFC[] = {
f32 gCubeHitbox400[] = {
1.0f, 0.0f, 200.0f, 0.0f, 200.0f, 0.0f, 200.0f,
};
f32 D_edata_800CBF18[] = {
f32 gItemRingCheckHitbox[] = {
1.0f, -113.0f, 61.0f, 98.0f, 100.0f, 0.0f, 219.0f,
};
f32 D_edata_800CBF34[] = {
f32 gNoHitbox[] = {
0.0f,
};
f32 D_edata_800CBF38[] = {
f32 gItemCheckpointHitbox[] = {
1.0f, -40.0f, 40.0f, 0.0f, 180.0f, 0.0f, 180.0f,
};
f32 D_edata_800CBF54[] = {
f32 gItemSupplyRingHitbox[] = {
1.0f, 0.0f, 120.0f, 0.0f, 120.0f, 0.0f, 120.0f,
};
f32 D_edata_800CBF70[] = {
f32 gMeteoWarpHitbox[] = {
1.0f, -40.0f, 100.0f, 0.0f, 100.0f, 0.0f, 100.0f,
};
f32 D_edata_800CBF8C[] = {
f32 gItemPathChangeHitbox[] = {
1.0f, 0.0f, 100.0f, 0.0f, 1200.0f, 0.0f, 1200.0f,
};
f32 D_edata_800CBFA8[] = {
f32 gItemLasersHitbox[] = {
1.0f, 0.0f, 120.0f, 0.0f, 120.0f, 0.0f, 120.0f, 0.0f,
};
f32 D_edata_800CBFC8[] = {
f32 gItemBombHitbox[] = {
1.0f, 0.0f, 120.0f, 0.0f, 120.0f, 0.0f, 120.0f,
};
f32 D_edata_800CBFE4[] = {
f32 gActorMissileSeekHitbox[] = {
1.0f, 0.0f, 40.0f, 0.0f, 40.0f, 0.0f, 40.0f,
};
f32 D_edata_800CC000[] = {
f32 gMeMoraHitbox[] = {
1.0f, 0.0f, 50.0f, 0.0f, 50.0f, 0.0f, 50.0f,
};
f32 D_edata_800CC01C[] = {
f32 gTeamHitbox[] = {
1.0f, 0.0f, 40.0f, 0.0f, 40.0f, 0.0f, 40.0f,
};
f32 D_edata_800CC038[] = {
f32 gActorAllRangeHItbox[] = {
1.0f, 0.0f, 40.0f, 0.0f, 40.0f, 0.0f, 40.0f,
};
f32 D_edata_800CC054[] = {
f32 aWzMeteor1Hitbox[] = {
1.0f, 0.0f, 140.0f, 0.0f, 170.0f, 0.0f, 140.0f,
};
f32 D_edata_800CC070[] = {
f32 aWzGateHitbox[] = {
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[] = {
f32 aWzPillar1Hitbox[] = {
1.0f, 0.0f, 140.0f, 0.0f, 140.0f, 0.0f, 1800.0f,
};
f32 D_edata_800CC0F0[] = {
f32 aWzPillar2Hitbox[] = {
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*) Obj39_Draw, 1, (ObjectFunc) Obj39_Update, 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*) Obj42_Draw, 1, (ObjectFunc) Obj42_Update, 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_VE1_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) Obj54_Update, 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*) Obj111_Draw, 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_FO_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*) Actor189_Draw, 1, (ObjectFunc) Actor189_Update, 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*) Actor194_Draw, 1, (ObjectFunc) Actor194_Update, 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*) Actor196_Draw, 1, (ObjectFunc) Actor196_Update, D_CO_603E5B4, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_ALLRANGE */ {(void*) ActorAllRange_Draw, 1, (ObjectFunc) ActorAllRange_Update, D_edata_800CC038, 20000.0f, 0, 1, 39, 1, 1.0f, 1 },
/* OBJ_ACTOR_TEAM_BOSS */ {(void*) ActorAllRange_Draw, 1, (ObjectFunc) ActorTeamBoss_Update, 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_EVENT */ {(void*) ActorEvent_Draw, 1, (ObjectFunc) ActorEvent_Update, D_edata_800CBF34, 2000.0f, 0, 1, 39, 0, 0.0f, 1 },
/* OBJ_ACTOR_201 */ {(void*) Actor201_Draw, 1, (ObjectFunc) Actor201_Update, D_ME_602F684, 100.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_202 */ {(void*) Actor202_Draw, 1, (ObjectFunc) Actor202_Update, D_ME_602F6A0, 100.0f, 0, 1, 39, 0, 180.0f, 1 },
/* OBJ_ACTOR_SLIPPY_SX */ {(void*) SectorX_8018F884, 1, (ObjectFunc) SectorX_8018F330, D_edata_800CBF34, 1000.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_ACTOR_204 */ {(void*) SectorY_Actor204_Draw, 1, (ObjectFunc) SectorY_Actor204_Update, 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*) Actor234_Draw, 1, (ObjectFunc) Actor234_Update, 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*) Actor237_Draw, 1, (ObjectFunc) Actor237_Update, 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_SUPPLIES */ {(void*) ActorSupplies_Draw, 1, (ObjectFunc) ActorSupplies_Update, 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*) Boss299_Draw, 2, (ObjectFunc) Boss299_Update, D_edata_800CBF34, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_300 */ {(void*) Boss300_Draw, 1, (ObjectFunc) Boss300_Update, 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*) ItemLasers_Draw, 1, (ObjectFunc) ItemLasers_Update, D_edata_800CBFA8, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_CHECKPOINT */ {(void*) ItemCheckpoint_Draw, 1, (ObjectFunc) ItemCheckpoint_Update, D_edata_800CBF38, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_SILVER_RING */ {(void*) ItemSilverRing_Draw, 1, (ObjectFunc) ItemSupplyRing_Update, D_edata_800CBF54, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_SILVER_STAR */ {(void*) ItemSilverStar_Draw, 1, (ObjectFunc) ItemSilverStar_Update, D_edata_800CBF54, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_METEO_WARP */ {(void*) ItemMeteoWarp_Draw, 1, (ObjectFunc) ItemMeteoWarp_Update, D_edata_800CBF70, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_BOMB */ {(void*) ItemBomb_Draw, 1, (ObjectFunc) ItemPickup_Update, 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) Item1up_Update, D_edata_800CBE8C, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_GOLD_RING */ {(void*) ItemGoldRing_Draw, 1, (ObjectFunc) ItemGoldRing_Update, D_edata_800CBF54, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_WING_REPAIR */ {(void*) D_arwing_3007650, 0, (ObjectFunc) ItemWingRepair_Update, D_edata_800CBFA8, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_TRAINING_RING */ {(void*) gItemTrainingRingDL, 0, (ObjectFunc) Training_ItemRing_Update, 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 },
ObjectInfo gObjectInfo[] = {
/* OBJ_SCENERY_CO_STONE_ARCH */ {(void*) aCoStoneArchDL, 0, (ObjectFunc) NULL, aCoStoneArchHitbox, 800.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUMP_1 */ {(void*) aCoBump1DL, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUMP_2 */ {(void*) aCoBump2DL, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUMP_3 */ {(void*) aCoBump3DL, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUMP_4 */ {(void*) aCoBump4DL, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUMP_5 */ {(void*) aCoBump5DL, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_HIGHWAY_1 */ {(void*) aCoHighway1DL, 0, (ObjectFunc) NULL, aCoHighway1Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_HIGHWAY_2 */ {(void*) aCoHighway2DL, 0, (ObjectFunc) NULL, aCoHighway2Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_HIGHWAY_3 */ {(void*) aCoHighway3DL, 0, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_HIGHWAY_4 */ {(void*) aCoHighway4DL, 0, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUILDING_1 */ {(void*) aCoBuilding1DL, 0, (ObjectFunc) NULL, aCoBuilding1Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUILDING_2 */ {(void*) aCoBuilding2DL, 0, (ObjectFunc) NULL, aCoBuilding2Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUILDING_3 */ {(void*) aCoBuilding3DL, 0, (ObjectFunc) NULL, aCoBuilding3Hitbox, 500.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUILDING_4 */ {(void*) aCoBuilding4DL, 0, (ObjectFunc) NULL, aCoBuilding4Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUILDING_5 */ {(void*) aCoBuilding5DL, 0, (ObjectFunc) SceneryRotateTowardsCamera, aCoBuilding5Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUILDING_6 */ {(void*) aCoBuilding6DL, 0, (ObjectFunc) SceneryRotateTowardsCamera, aCoBuilding6Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUILDING_7 */ {(void*) aCoBuilding7DL, 0, (ObjectFunc) SceneryRotateTowardsCamera, aCoBuilding7Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUILDING_8 */ {(void*) aCoBuilding8DL, 0, (ObjectFunc) SceneryRotateTowardsCamera, aCoBuilding8Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUILDING_ON_FIRE, */ {(void*) Corneria_CoBuildingOnFire_Draw, 1, (ObjectFunc) Corneria_CoBuildingOnFire_Update, aCoBuildingOnFireHitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_TOWER, */ {(void*) aCoTowerDL, 0, (ObjectFunc) NULL, aCoTowerHitbox, 100.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_ARCH_1, */ {(void*) aCoArch1DL, 0, (ObjectFunc) NULL, aCoArch1Hitbox, 500.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_ARCH_2, */ {(void*) aCoArch2DL, 0, (ObjectFunc) NULL, aCoArch2Hitbox, 400.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_ARCH_3, */ {(void*) aCoArch3DL, 0, (ObjectFunc) NULL, aCoArch3Hitbox, 400.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_RADAR_DISH, */ {(void*) aRadarDL, 0, (ObjectFunc) NULL, aCoRadarHitbox, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_HIGHWAY_5, */ {(void*) aCoHighway5DL, 0, (ObjectFunc) NULL, aCoHighway5Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_HIGHWAY_6, */ {(void*) aCoHighway6DL, 0, (ObjectFunc) NULL, aCoHighway6Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_HIGHWAY_7, */ {(void*) aCoHighway7DL, 0, (ObjectFunc) NULL, aCoHighway7Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_HIGHWAY_8, */ {(void*) aCoHighway8DL, 0, (ObjectFunc) NULL, aCoHighway8Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_HIGHWAY_9, */ {(void*) aCoHighway9DL, 0, (ObjectFunc) NULL, aCoHighway9Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_SKULL, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiSkullHitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_0, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib0Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_1, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib1Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_2, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib2Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_3, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib3Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_4, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib4Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_5, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib5Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_6, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib6Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_7, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib7Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_RIB_8, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib8Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_ME_TUNNEL, */ {(void*) MeteoTunnel_Draw, 1, (ObjectFunc) MeteoTunnel_Update, gNoHitbox, 6000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUILDING_9, */ {(void*) CoBuilding9_Draw, 1, (ObjectFunc) CoBuilding9_Update, aCoBuilding9Hitbox, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUILDING_10, */ {(void*) CoBuilding10_Draw, 1, (ObjectFunc) SceneryRotateTowardsCamera, aCoBuilding10Hitbox, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_IBEAM, */ {(void*) CoIBeam_Draw, 1, (ObjectFunc) CoIBeam_Update, aCoIBeamHitbox, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_ZO_ROCK, */ {(void*) aZoRockDL, 0, (ObjectFunc) NULL, aZoRockHitbox, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_ZO_OIL_RIG_1, */ {(void*) aZoOilRig1DL, 0, (ObjectFunc) NULL, aZoOilRig1Hitbox, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_ZO_OIL_RIG_2, */ {(void*) aZoOilRig2DL, 0, (ObjectFunc) NULL, aZoOilRig2Hitbox, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_ZO_OIL_RIG_3, */ {(void*) aZoOilRig3DL, 0, (ObjectFunc) NULL, aZoOilRig3Hitbox, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_ZO_ISLAND, */ {(void*) aZoIslandDL, 0, (ObjectFunc) NULL, aZoIslandHitbox, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_VE1_WALL_1, */ {(void*) Ve1Wall1_Draw, 1, (ObjectFunc) NULL, Ve1Wall1Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_VE1_WALL_2, */ {(void*) Ve1Wall2_Draw, 1, (ObjectFunc) NULL, aVe1Wall2Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_VE1_WALL_3, */ {(void*) aVe1SceneryWall3DL, 0, (ObjectFunc) NULL, aVe1SceneryWall3Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_VE1_HALLWAY_OBSTACLE, */ {(void*) aVe1HallwayObstacleDL, 0, (ObjectFunc) NULL, aVe1HallwayObstacleHitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_VE1_GENERATOR, */ {(void*) aVe1GeneratorDL, 0, (ObjectFunc) Venom1_Ve1Generator_Update, aVe1GeneratorHitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_VE1_WATCH_POST, */ {(void*) aVe1WatchPostDL, 0, (ObjectFunc) NULL, aVe1WatchPostHitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_WATERFALL, */ {(void*) aCoWaterfallDL, 0, (ObjectFunc) CoWaterfall_Update, aCoWaterfallHitbox, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_ROCKWALL, */ {(void*) aCoRockwallDL, 0, (ObjectFunc) NULL, aCoRockwallHitbox, 1000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_DOORS, */ {(void*) Corneria_CoDoors_Draw, 2, (ObjectFunc) Corneria_CoDoors_Update, aCoDoorsHitbox, 1000.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_PILLAR, */ {(void*) Titania_TiPillar_Draw, 1, (ObjectFunc) Titania_TiPillar_Update, aTiPillarHitbox, 800.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_TI_BRIDGE, */ {(void*) aTiBridgeDL, 0, (ObjectFunc) NULL, aTiBridgeHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_BUILDING_1, */ {(void*) aMaBuilding1DL, 0, (ObjectFunc) NULL, aMaBuilding1Hitbox, 300.0f, 0, 0, 5, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_BUILDING_2, */ {(void*) aMaBuilding2DL, 0, (ObjectFunc) NULL, aMaBuilding2Hitbox, 400.0f, 0, 0, 5, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_TOWER, */ {(void*) Macbeth_MaTower_Draw, 1, (ObjectFunc) NULL, aMaTowerHitbox, 200.0f, 0, 0, 5, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_WALL_1, */ {(void*) aMaWall1DL, 0, (ObjectFunc) NULL, gNoHitbox, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_GUILLOTINE_HOUSING, */ {(void*) aMaGuillotineHousingDL, 0, (ObjectFunc) NULL, aMaGuillotineHousingHitbox, 500.0f, 0, 0, 5, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_GUILLOTINE, */ {(void*) aMaGuillotine1DL, 0, (ObjectFunc) NULL, aMaGuillotineHitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_PROXIMITY_LIGHT, */ {(void*) Macbeth_MaProximityLight_Draw, 1, (ObjectFunc) NULL, aMaProximityLightHitbox, 400.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_WALL_2, */ {(void*) aMaWall2DL, 0, (ObjectFunc) NULL, aMaWall2Hitbox, 2500.0f, 0, 0, 5, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_WALL_3, */ {(void*) aMaWall3DL, 0, (ObjectFunc) NULL, aMaWall3Hitbox, 2000.0f, 0, 0, 5, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_WALL_4, */ {(void*) aMaWall4DL, 0, (ObjectFunc) NULL, aMaWall4Hitbox, 2500.0f, 0, 0, 5, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_TERRAIN_BUMP, */ {(void*) aMaTerrainBumpDL, 0, (ObjectFunc) NULL, aMaTerrainBumpHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_FLOOR_1, */ {(void*) aMaFloor1DL, 0, (ObjectFunc) NULL, aMaFloor1Hitbox, 1900.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_FLOOR_2, */ {(void*) aMaFloor2DL, 0, (ObjectFunc) NULL, aMaFloor2Hitbox, 1900.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_FLOOR_3, */ {(void*) aMaFloor3DL, 0, (ObjectFunc) NULL, aMaFloor3Hitbox, 1100.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_FLOOR_4, */ {(void*) aMaFloor4DL, 0, (ObjectFunc) NULL, aMaFloor4Hitbox, 1100.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_FLOOR_5, */ {(void*) aMaFloor5DL, 0, (ObjectFunc) NULL, aMaFloor5Hitbox, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_FLOOR_6, */ {(void*) aMaFloor6DL, 0, (ObjectFunc) NULL, aMaFloor6Hitbox, 3000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_WEAPONS_FACTORY, */ {(void*) aMaWeaponsFactoryDL, 0, (ObjectFunc) NULL, gNoHitbox, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_INDICATOR_SIGN, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, aMaIndicatorSignHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_DISTANCE_SIGN_1, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_DISTANCE_SIGN_2, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_DISTANCE_SIGN_3, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_DISTANCE_SIGN_4, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_DISTANCE_SIGN_5, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_TRAIN_STOP_BLOCK, */ {(void*) Macbeth_MaTrainStopBlock_Draw, 1, (ObjectFunc) Macbeth_MaTrainStopBlock_Update, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_RAILROAD_SWITCH_1, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_RAILROAD_SWITCH_2, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_RAILROAD_SWITCH_3, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_RAILROAD_SWITCH_4, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_RAILROAD_SWITCH_5, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_RAILROAD_SWITCH_6, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_RAILROAD_SWITCH_7, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_RAILROAD_SWITCH_8, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_TRAIN_TRACK_1, */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_TRAIN_TRACK_2, */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_TRAIN_TRACK_3, */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_TRAIN_TRACK_4, */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_TRAIN_TRACK_5, */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_TRAIN_TRACK_6, */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_TRAIN_TRACK_7, */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_TRAIN_TRACK_8, */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_TRAIN_TRACK_9 */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_TRAIN_TRACK_10 */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_TRAIN_TRACK_11 */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_TRAIN_TRACK_12 */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_SWITCH_TRACK */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) Macbeth_MaSwitchTrack_Update, aMaSwitchTrackHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_MA_TRAIN_TRACK_13 */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, aMaTrainTrack13Hitbox, 1300.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_SY_SHIP_1 */ {(void*) aSyShip1DL, 0, (ObjectFunc) NULL, aSyShip1Hitbox, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_SY_SHIP_2 */ {(void*) aSyShip2DL, 0, (ObjectFunc) NULL, aSyShip2Hitbox, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_SY_SHIP_3 */ {(void*) aSyShip3DL, 0, (ObjectFunc) NULL, aSyShip3Hitbox, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_SY_SHIP_3_DESTROYED */ {(void*) aSyShip3DestroyedDL, 0, (ObjectFunc) SectorY_SyShip3Destroyed_Update, aSyShip3DestroyedHitbox, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_SY_SHIP_4 */ {(void*) aSyShip4DL, 0, (ObjectFunc) NULL, aSyShip4Hitbox, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_SY_SHIP_DEBRIS */ {(void*) SyShipDebris_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_SY_SHIP_2_DESTROYED */ {(void*) aSyShip4DestroyedDL, 0, (ObjectFunc) SectorY_SyShip4Destroyed_Update, aSyShip4DestroyedHitbox, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SPRITE_SY_SHIP_2 */ {(void*) aSyShip2SpriteDL, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_SY_SHIP_3 */ {(void*) aSyShip3SpriteDL, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_SY_SHIP_MISSILE */ {(void*) aSyShipMissileDL, 0, (ObjectFunc) NULL, aSyShipMissileHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_SY_SHIP_WINDOWS */ {(void*) aSyShipWindowsDL, 0, (ObjectFunc) NULL, aSyShipWindowsHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_AQ_CORAL_REEF_1 */ {(void*) aAqCoralReef1DL, 0, (ObjectFunc) NULL, aAqCoralReef1Hitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_AQ_TUNNEL_1 */ {(void*) aAqTunnel1DL, 0, (ObjectFunc) NULL, aAqTunnel1Hitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_AQ_ARCH */ {(void*) aAqArchDL, 0, (ObjectFunc) NULL, aAqArchHitbox, 2000.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_AQ_CORAL_REEF_2 */ {(void*) aAqCoralReef2DL, 0, (ObjectFunc) NULL, aAqCoralReef2Hitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_AQ_ROCK */ {(void*) aAqRockDL, 0, (ObjectFunc) NULL, aAqRockHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_AQ_WALL_1 */ {(void*) aAqWall1DL, 0, (ObjectFunc) NULL, aAqWall1Hitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_AQ_ROOF */ {(void*) aAqRoofDL, 0, (ObjectFunc) NULL, aAqRoofHitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_AQ_BUMP_1 */ {(void*) aAqBump2DL, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_AQ_TUNNEL_2 */ {(void*) aAqTunnel2DL, 0, (ObjectFunc) NULL, aAqTunnel2Hitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_AQ_BUMP_2 */ {(void*) Aquas_AqBump2_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_VE1_TEMPLE_ENTRANCE */ {(void*) aVe1TempleEntranceDL, 0, (ObjectFunc) Venom1_Ve1TempleEntrance_Update, aVe1TempleEntranceHitbox, 1000.0f, 0, 0, 42, 0, 0.0f, 0 },
/* OBJ_SCENERY_VE1_TEMPLE_INTERIOR_1 */ {(void*) aVe1TempleInterior1DL, 0, (ObjectFunc) NULL, aVe1TempleInterior1Hitbox, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
/* OBJ_SCENERY_VE1_TEMPLE_INTERIOR_2 */ {(void*) aVe1TempleInterior2DL, 0, (ObjectFunc) NULL, aVe1TempleInterior2Hitbox, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
/* OBJ_SCENERY_VE1_TEMPLE_INTERIOR_3 */ {(void*) aVe1TempleInterior3DL, 0, (ObjectFunc) NULL, aVe1TempleInterior3Hitbox, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
/* OBJ_SCENERY_AND_PASSAGE */ {(void*) Andross_AndPassage_Draw, 1, (ObjectFunc) Andross_AndPassage_Update, aAndPassageHitbox, 500.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_AND_DOOR */ {(void*) Andross_AndDoor_Draw, 1, (ObjectFunc) Andross_AndDoor_Update, aAndDoorHitbox, 500.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_SCENERY_TR_BUILDING */ {(void*) aTrBuildingDL, 0, (ObjectFunc) NULL, aTrBuildingHitbox, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
/* OBJ_SCENERY_AND_PATH_INTERSECTION */ {(void*) aAndPathIntersectionDL, 0, (ObjectFunc) NULL, aAndPathIntersectionHitbox, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
/* OBJ_SCENERY_AND_PATH_WALLS */ {(void*) aAndPathWallsDL, 0, (ObjectFunc) NULL, aAndPathHitbox, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
/* OBJ_SCENERY_AND_PATH_EXIT */ {(void*) aAndPathExitDL, 0, (ObjectFunc) NULL, aAndPathHitbox, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
/* OBJ_SCENERY_AND_PATH_ENTRANCE */ {(void*) aAndPathEntranceDL, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 0, 1, 0.0f, 0 },
/* OBJ_SCENERY_VS_BUILDING_1 */ {(void*) aVsBuildingDL, 0, (ObjectFunc) NULL, aVsBuilding1Hibox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_VS_BUILDING_2 */ {(void*) aVsBuildingDL, 0, (ObjectFunc) NULL, aVsBuilding2Hibox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_VS_PYRAMID_1 */ {(void*) aVsPyramid1DL, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_VS_PYRAMID_2 */ {(void*) aVsPyramid2DL, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_VS_ARCH */ {(void*) aVsArchDL, 0, (ObjectFunc) NULL, aVsArchHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_VS_KA_FLBASE */ {(void*) aVsKaFlBaseDL, 0, (ObjectFunc) NULL, aVsKaFlBaseHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_VS_SPACE_JUNK_1 */ {(void*) aVsSpaceJunk1DL, 0, (ObjectFunc) NULL, aVsSpaceJunk1Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_VS_SPACE_JUNK_2 */ {(void*) aVsSpaceJunk2DL, 0, (ObjectFunc) NULL, aVsSpaceJunk2Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_VS_SPACE_JUNK_3 */ {(void*) aVsSpaceJunk3DL, 0, (ObjectFunc) NULL, aVsSpaceJunk3Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_LEVEL_OBJECTS */ {(void*) NULL, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_FO_MOUNTAIN_1 */ {(void*) aFoMountain1DL, 0, (ObjectFunc) NULL, aFoMountain1Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_FO_MOUNTAIN_2 */ {(void*) aFoMountain2DL, 0, (ObjectFunc) NULL, aFoMountain2Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_FO_MOUNTAIN_3 */ {(void*) aFoMountain3DL, 0, (ObjectFunc) NULL, aFoMountain3Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_FO_TOWER */ {(void*) aFoTowerDL, 0, (ObjectFunc) NULL, aFoTowerHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_BO_POLE */ {(void*) aBoPoleDL, 0, (ObjectFunc) NULL, aBoPoleHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_BO_BUILDING */ {(void*) aBoBuildingDL, 0, (ObjectFunc) NULL, aBoBuildingHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_KA_FLBASE */ {(void*) aKaFLBaseDL, 0, (ObjectFunc) NULL, aKaFrontlineBaseHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_UNK_155 */ {(void*) NULL, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_SY_SHOGUN_SHIP */ {(void*) SectorY_Scenery156_Draw, 1, (ObjectFunc) NULL, aSyScenery156Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_SZ_SPACE_JUNK_3 */ {(void*) aSzSpaceJunk3DL, 0, (ObjectFunc) NULL, aSzSpaceJunk3Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_SZ_SPACE_JUNK_1 */ {(void*) aSzSpaceJunk1DL, 0, (ObjectFunc) NULL, aSzSpaceJunk1Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_VE2_TOWER */ {(void*) aVe2TowerDL, 0, (ObjectFunc) NULL, aVe2TowerHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_VE2_MOUNTAIN */ {(void*) aVe2MountainDL, 0, (ObjectFunc) NULL, aVe2MountainHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_CO_POLE */ {(void*) aCoPoleDL, 0, (ObjectFunc) Sprite_UpdateDoodad, aCoPoleHitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_CO_TREE */ {(void*) aCoTreeDL, 0, (ObjectFunc) Sprite_UpdateDoodad, aCoTreeHitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_FO_POLE */ {(void*) aFoPoleDL, 0, (ObjectFunc) Sprite_UpdateDoodad, aFoPoleHitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_FOG_SHADOW */ {(void*) FogShadow_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 1800.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_CO_RUIN1 */ {(void*) aCoRuin1DL, 0, (ObjectFunc) NULL, gNoHitbox, -100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_CO_RUIN2 */ {(void*) aCoRuin2DL, 0, (ObjectFunc) NULL, gNoHitbox, -100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_167 */ {(void*) Sprite167_Draw, 1, (ObjectFunc) Sprite167_Update, gNoHitbox, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_168 */ {(void*) Sprite168_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_TI_CACTUS */ {(void*) aTiCactusDL, 0, (ObjectFunc) Titania_Cactus_Update, aTiCactusHitbox, 100.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SPRITE_CO_SMOKE */ {(void*) NULL, 1, (ObjectFunc) Corneria_CoSmoke_Update, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SPRITE_VE1_BOSS_TRIGGER1 */ {(void*) NULL, 1, (ObjectFunc) Venom1_BossTrigger1_Update, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SPRITE_VE1_BOSS_TRIGGER2 */ {(void*) NULL, 1, (ObjectFunc) Venom1_BossTrigger2_Update, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SPRITE_VE1_BOSS_TRIGGER3 */ {(void*) NULL, 1, (ObjectFunc) Venom1_BossTrigger3_Update, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SPRITE_VE1_BOSS_TRIGGER4 */ {(void*) NULL, 1, (ObjectFunc) Venom1_BossTrigger4_Update, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SPRITE_GFOX_TARGET */ {(void*) NULL, 1, (ObjectFunc) NULL, gNoHitbox, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ACTOR_CO_GARUDA_1 */ {(void*) Corneria_CoGaruda1_Draw, 2, (ObjectFunc) Corneria_CoGaruda1_Update, CoGarudaHitbox, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
/* OBJ_ACTOR_CO_GARUDA_2 */ {(void*) Corneria_CoGaruda2_Draw, 2, (ObjectFunc) Corneria_CoGaruda2_Update, CoGarudaHitbox, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
/* OBJ_ACTOR_CO_GARUDA_3 */ {(void*) Corneria_CoGaruda3_Draw, 2, (ObjectFunc) Corneria_CoGaruda3_Update, CoGarudaHitbox, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
/* OBJ_ACTOR_CO_GARUDA_DESTROY */ {(void*) Corneria_CoGarudaDestroy_Draw, 2, (ObjectFunc) Corneria_CoGarudaDestroy_Update, aCoGarudaDestroyHitbox, 500.0f, 0, 0, 39, 1, 0.0f, 1 },
/* OBJ_ACTOR_ME_MOLAR_ROCK */ {(void*) MeMolarRock_Draw, 1, (ObjectFunc) MeMolarRock_Update, gNoHitbox, 1000.0f, 0, 0, 39, 0, 0.0f, 1 },
/* OBJ_ACTOR_ME_METEOR_1 */ {(void*) aMeMeteor1DL, 0, (ObjectFunc) Meteo_MeMeteor1_Update, aMeMeteor1Hitbox, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_ME_METEOR_2 */ {(void*) MeMeteor2_Draw, 1, (ObjectFunc) Meteo_MeMeteor2_Update, aMeMeteor2Hitbox, 100.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_ME_METEOR_SHOWER_1 */ {(void*) Meteo_MeMeteorShower1_Draw, 1, (ObjectFunc) Meteo_MeteorShower_Update, gNoHitbox, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
/* OBJ_ACTOR_ME_METEOR_SHOWER_2 */ {(void*) Meteo_MeMeteorShower2_Draw, 1, (ObjectFunc) Meteo_MeteorShower_Update, gNoHitbox, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
/* OBJ_ACTOR_ME_METEOR_SHOWER_3 */ {(void*) Meteo_MeMeteorShower3_Draw, 1, (ObjectFunc) Meteo_MeteorShower_Update, gNoHitbox, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
/* OBJ_ACTOR_ME_LASER_CANNON_1 */ {(void*) MeLaserCannon1_Draw, 1, (ObjectFunc) Meteo_MeLaserCannon1_Update, aMeLaserCannon1Hitbox, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_ME_LASER_CANNON_2 */ {(void*) aMeLaserCannon2DL, 0, (ObjectFunc) Meteo_MeLaserCannon2_Update, aMeLaserCannon2Hitbox, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_AQ_UNK_188 */ {(void*) Aquas_Actor188_Draw, 1, (ObjectFunc) Aquas_Actor188_Update, aAqActor188Hitbox, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_DEBRIS */ {(void*) ActorDebris_Draw, 1, (ObjectFunc) ActorDebris_Update, gNoHitbox, 0.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_MISSILE_SEEK_TEAM */ {(void*) ActorMissileSeek_Draw, 1, (ObjectFunc) ActorMissileSeek_Update, gActorMissileSeekHitbox, 100.0f, 0, 1, 39, 0, 1.0f, 0 },
/* OBJ_MISSILE_SEEK_PLAYER */ {(void*) ActorMissileSeek_Draw, 1, (ObjectFunc) ActorMissileSeek_Update, gActorMissileSeekHitbox, 100.0f, 0, 1, 39, 0, 1.0f, 0 },
/* OBJ_ACTOR_CO_SKIBOT */ {(void*) CoSkibot_Draw, 1, (ObjectFunc) CoSkibot_Update, aCoActorSkibotHitbox, 200.0f, 0, 1, 39, 0, 50.0f, 1 },
/* OBJ_ACTOR_CO_RADAR */ {(void*) CoRadar_Draw, 1, (ObjectFunc) CoRadar_Update, aCoActorRadarHitbox, 100.0f, 0, 1, 39, 0, 0.0f, 0 },
/* OBJ_ACTOR_ME_MORA */ {(void*) MeMora_Draw, 1, (ObjectFunc) MeMora_Update, gMeMoraHitbox, 200.0f, 0, 1, 39, 0, 0.0f, 1 },
/* OBJ_ACTOR_CUTSCENE */ {(void*) ActorCutscene_Draw, 1, (ObjectFunc) ActorCutscene_Update, gNoHitbox, 20000.0f, 0, 1, 39, 0, 0.0f, 0 },
/* OBJ_ACTOR_CO_MOLE_MISSILE */ {(void*) CoMoleMissile_Draw, 1, (ObjectFunc) CoMoleMissile_Update, aCoMoleMissileHitbox, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_ALLRANGE */ {(void*) ActorAllRange_Draw, 1, (ObjectFunc) ActorAllRange_Update, gActorAllRangeHItbox, 20000.0f, 0, 1, 39, 1, 1.0f, 1 },
/* OBJ_ACTOR_TEAM_BOSS */ {(void*) ActorAllRange_Draw, 1, (ObjectFunc) ActorTeamBoss_Update, gTeamHitbox, 20000.0f, 0, 0, 39, 1, 0.0f, 0 },
/* OBJ_ACTOR_TEAM_ARWING */ {(void*) Andross_ActorTeamArwing_Draw, 1, (ObjectFunc) Andross_ActorTeamArwing_Update, gNoHitbox, 20000.0f, 0, 0, 39, 1, 0.0f, 0 },
/* OBJ_ACTOR_EVENT */ {(void*) ActorEvent_Draw, 1, (ObjectFunc) ActorEvent_Update, gNoHitbox, 2000.0f, 0, 1, 39, 0, 0.0f, 1 },
/* OBJ_ACTOR_ME_METEO_BALL */ {(void*) MeteoBall_Draw, 1, (ObjectFunc) MeteoBall_Update, aMeMeteoBallHitbox, 100.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_ME_HOPBOT */ {(void*) MeHopBot_Draw, 1, (ObjectFunc) MeHopBot_Update, aMeHopBotHitbox, 100.0f, 0, 1, 39, 0, 180.0f, 1 },
/* OBJ_ACTOR_SX_SLIPPY */ {(void*) SectorX_SxSlippy_Draw, 1, (ObjectFunc) SectorX_SxSlippy_Update, gNoHitbox, 1000.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_ACTOR_SY_ROBOT */ {(void*) SectorY_SyRobot_Draw, 1, (ObjectFunc) SectorY_SyRobot_Update, aSyRobotHitbox, 1000.0f, 0, 0, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_MA_LOCOMOTIVE */ {(void*) Macbeth_Train_Draw, 1, (ObjectFunc) Macbeth_MaLocomotive_Update, aMaLocomotiveHitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_MA_TRAIN_CAR_1 */ {(void*) Macbeth_Train_Draw, 1, (ObjectFunc) Macbeth_MaTrainCar1_Update, aMaTrainCar1Hitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_207 */ {(void*) Macbeth_Actor207_Draw, 2, (ObjectFunc) Macbeth_Actor207_Update, aMaActor207Hitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_MA_TRAIN_CAR_2 */ {(void*) Macbeth_Train_Draw, 1, (ObjectFunc) Macbeth_MaTrainCar2_Update, aMaTrainCar2Hitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_MA_TRAIN_CAR_3 */ {(void*) Macbeth_Train_Draw, 1, (ObjectFunc) Macbeth_MaTrainCar3_Update, aMaTrainCar3Hitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_MA_TRAIN_CAR_4 */ {(void*) Macbeth_Train_Draw, 1, (ObjectFunc) Macbeth_MaTrainCar4_Update, aMaTrainCar4Hitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_MA_TRAIN_CAR_5 */ {(void*) Macbeth_Train_Draw, 1, (ObjectFunc) Macbeth_MaTrainCar5_Update, aMaTrainCar5Hitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_MA_TRAIN_CAR_6 */ {(void*) Macbeth_Train_Draw, 1, (ObjectFunc) Macbeth_MaTrainCar6_Update, aMaTrainCar6Hitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_MA_TRAIN_CAR_7 */ {(void*) Macbeth_Train_Draw, 1, (ObjectFunc) Macbeth_MaTrainCar7_Update, aMaTrainCar7Hitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_MA_RAILROAD_SWITCH */ {(void*) Macbeth_MaRailroadSwitch_Draw, 1, (ObjectFunc) Macbeth_MaRailroadSwitch_Update, aMaMaRailroadSwitchHitbox, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_MA_BOULDER */ {(void*) Macbeth_MaBoulder_Draw, 1, (ObjectFunc) Macbeth_MaBoulder_Update, aMaBoulderHitbox, 300.0f, 0, 1, 40, 1, 0.0f, 1 },
/* OBJ_ACTOR_MA_HORIZONTAL_LOCK_BAR */ {(void*) Macbeth_MaHorizontalLockBar_Draw, 1, (ObjectFunc) Macbeth_MaHorizontalLockBar_Update, aMaHorizontalLockBarHitbox, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_MA_VERTICAL_LOCK_BAR */ {(void*) Macbeth_MaVerticalLockBar_Draw, 1, (ObjectFunc) Macbeth_MaVerticalLockBar_Update, aMaVerticalLockBarHitbox, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_MA_BARRIER */ {(void*) Macbeth_MaBarrier_Draw, 1, (ObjectFunc) Macbeth_MaBarrier_Update, aMaBarrierHitbox, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_MA_FALLING_BOULDER */ {(void*) Macbeth_MaFallingBoulder_Draw, 1, (ObjectFunc) Macbeth_MaFallingBoulder_Update, aMaFallingBoulderHitbox, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_MA_BOMBDROP */ {(void*) Macbeth_MaBombDrop_Draw, 1, (ObjectFunc) Macbeth_MaBombDrop_Update, aMaBombDropHitbox, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_MA_SPEAR */ {(void*) Macbeth_MaSpear_Draw, 1, (ObjectFunc) Macbeth_MaSpear_Update, aMaSpearHitbox, 300.0f, 0, 0, 40, 1, 1.0f, 0 },
/* OBJ_ACTOR_MA_SHOCK_BOX */ {(void*) Macbeth_MaShockBox_Draw, 1, (ObjectFunc) Macbeth_MaShockBox_Update, aMaShockBoxHitbox, 300.0f, 0, 0, 40, 1, 1.0f, 0 },
/* OBJ_ACTOR_MA_RAILWAY_SIGNAL */ {(void*) Macbeth_MaRailwaySignal_Draw, 1, (ObjectFunc) Macbeth_MaRailwaySignal_Update, aMaRailwaySignalHitbox, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_TI_TERRAIN */ {(void*) NULL, 1, (ObjectFunc) Titania_TiTerrain_Update, gNoHitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_ACTOR_TI_LANDMINE */ {(void*) aTi1LandmineDL, 0, (ObjectFunc) Titania_TiLandmine_Update, aTi1LandmineHitbox, 50.0f, 0, 0, 39, 1, 1.0f, 0 },
/* OBJ_ACTOR_TI_DESERT_ROVER */ {(void*) Titania_TiDesertRover_Draw, 1, (ObjectFunc) Titania_TiDesertRover_Update, aTiDesertRoverHitbox, 300.0f, 0, 0, 39, 1, 70.0f, 1 },
/* OBJ_ACTOR_TI_DELPHOR */ {(void*) Titania_TiDelphor_Draw, 1, (ObjectFunc) Titania_TiDelphor_Update, aTiDelphorHitbox, 0.0f, 0, 0, 39, 1, 0.0f, 0 },
/* OBJ_ACTOR_TI_DELPHOR_HEAD */ {(void*) Titania_TiDelphorHead_Draw, 1, (ObjectFunc) Titania_TiDelphorHead_Update, aTiDelphorHeadHitbox, 0.0f, 0, 0, 39, 1, 1.0f, 1 },
/* OBJ_ACTOR_TI_DESERT_CRAWLER */ {(void*) Titania_TiDesertCrawler_Draw, 1, (ObjectFunc) Titania_TiDesertCrawler_Update, aTiDesertCrawlerHitbox, 1000.0f, 0, 0, 20, 1, 0.0f, 1 },
/* OBJ_ACTOR_TI_BOULDER */ {(void*) Titania_TiBoulder_Draw, 1, (ObjectFunc) Titania_TiBoulder_Update, aTiBoulderHitbox, 0.0f, 0, 1, 39, 1, 0.0f, 1 },
/* OBJ_ACTOR_TI_BOMB */ {(void*) Titania_TiBomb_Draw, 1, (ObjectFunc) Titania_TiBomb_Update, aTiBombHitbox, 0.0f, 0, 0, 39, 1, 0.0f, 1 },
/* OBJ_ACTOR_TI_RASCO */ {(void*) Titania_TiRasco_Draw, 1, (ObjectFunc) Titania_TiRasco_Update, aTiRascoHitbox, 0.0f, 0, 0, 39, 1, 20.0f, 1 },
/* OBJ_ACTOR_TI_FEKUDA */ {(void*) Titania_TiFekuda_Draw, 1, (ObjectFunc) Titania_TiFekuda_Update, aTiFekudaHitbox, 200.0f, 0, 0, 39, 1, 1.0f, 1 },
/* OBJ_ACTOR_TI_GREAT_FOX */ {(void*) TiGreatFox_Draw, 1, (ObjectFunc) TiGreatFox_Update, gNoHitbox, 2000.0f, 0, 0, 39, 0, 0.0f, 5 },
/* OBJ_ACTOR_ZO_BIRD */ {(void*) Zoness_ZoBird_Draw, 2, (ObjectFunc) Zoness_ZoBird_Update, aZoBirdHitbox, 1000.0f, 0, 1, 40, 0, 1.0f, 1 },
/* OBJ_ACTOR_ZO_DODORA */ {(void*) Zoness_ZoDodora_Draw, 1, (ObjectFunc) Zoness_ZoDodora_Update, aZoDodoraHitbox, 5000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_UNK_237 */ {(void*) Actor237_Draw, 1, (ObjectFunc) Actor237_Update, gNoHitbox, 200.0f, 0, 0, 40, 0, 0.0f, 2 },
/* OBJ_ACTOR_ZO_FISH */ {(void*) Zoness_ZoFish_Draw, 2, (ObjectFunc) Zoness_ZoFish_Update, gCubeHitbox100, 200.0f, 0, 1, 40, 0, 1.0f, 1 },
/* OBJ_ACTOR_ZO_DODORA_WP_COUNT */ {(void*) NULL, 1, (ObjectFunc) NULL, gNoHitbox, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ACTOR_ZO_Z_GULL */ {(void*) Zoness_ZGull_Draw, 1, (ObjectFunc) Zoness_ZGull_Update, gCubeHitbox100, 1500.0f, 0, 1, 40, 0, 20.0f, 0 },
/* OBJ_ACTOR_ZO_ENERGY_BALL */ {(void*) Zoness_ZoEnergyBall_Draw, 1, (ObjectFunc) Zoness_ZoEnergyBall_Update, gZoEnergyBallHitbox, 1500.0f, 0, 1, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_ZO_TROIKA */ {(void*) Zoness_ZoTroika_Draw, 2, (ObjectFunc) Zoness_ZoTroika_Update, aZoTroikaHitbox, 500.0f, 0, 0, 40, 0, 1.0f, 0 },
/* OBJ_ACTOR_ZO_SHRIMP */ {(void*) Zoness_ZoShrimp_Draw, 2, (ObjectFunc) Zoness_ZoShrimp_Update, gCubeHitbox100, 0.0f, 0, 1, 40, 0, 1.0f, 1 },
/* OBJ_ACTOR_ZO_OBNEMA */ {(void*) Zoness_ZoObnema_Draw, 2, (ObjectFunc) Zoness_ZoObnema_Update, aZoObnemaHitbox, 2000.0f, 0, 0, 40, 0, 50.0f, 0 },
/* OBJ_ACTOR_ZO_BALL */ {(void*) Zoness_ZoBall_Draw, 1, (ObjectFunc) Zoness_ZoBall_Update, gCubeHitbox100, 200.0f, 0, 0, 40, 0, 1.0f, 0 },
/* OBJ_ACTOR_ZO_MINE */ {(void*) Zoness_ZoMine_Draw, 1, (ObjectFunc) Zoness_ZoMine_Update, gCubeHitbox100, 2000.0f, 0, 0, 40, 0, 1.0f, 0 },
/* OBJ_ACTOR_ZO_BARRIER */ {(void*) Zoness_ZoBarrier_Draw, 1, (ObjectFunc) Zoness_ZoBarrier_Update, aZoBarrierHitbox, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_ZO_CRANE_MAGNET */ {(void*) Zoness_ZoCraneMagnet_Draw, 1, (ObjectFunc) Zoness_ZoCraneMagnet_Update, gCubeHitbox150, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_SPIKEBALL */ {(void*) Zoness_ZoSpikeBall_Draw, 1, (ObjectFunc) Zoness_ZoSpikeBall_Update, gCubeHitbox200, 5000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_ZO_TANKER */ {(void*) Zoness_ZoTanker_Draw, 1, (ObjectFunc) Zoness_ZoTanker_Update, aZoTankerHitbox, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_ZO_CONTAINER */ {(void*) Zoness_ZoContainer_Draw, 2, (ObjectFunc) Zoness_ZoContainer_Update, aZoContainerHitbox, 1000.0f, 0, 0, 40, 0, 1.0f, 1 },
/* OBJ_ACTOR_ZO_RADARBUOY */ {(void*) Zoness_ZoRadarBuoy_Draw, 1, (ObjectFunc) Zoness_ZoRadarBuoy_Update, aZoRadarBuoyHitbox, 200.0f, 0, 0, 40, 0, 80.0f, 1 },
/* OBJ_ACTOR_ZO_SUPPLYCRANE */ {(void*) Zoness_ZoSupplyCrane_Draw, 1, (ObjectFunc) Zoness_ZoSupplyCrane_Update, aZoSupplyCraneHitbox, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_ZO_SEARCHLIGHT */ {(void*) Zoness_ZoSearchLight_Draw, 1, (ObjectFunc) Zoness_ZoSearchLight_Update, aZoSearchLightHitbox, 300.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ACTOR_255 */ {(void*) Aquas_Actor255_Draw, 1, (ObjectFunc) Aquas_Actor255_Update, aAqActor255Hitbox, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_256 */ {(void*) Aquas_Actor256_Draw, 1, (ObjectFunc) Aquas_Actor256_Update, aAqActor256Hitbox, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_257 */ {(void*) Aquas_Actor257_Draw, 1, (ObjectFunc) Aquas_Actor257_Update, aAqActor257Hitbox, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_AQ_PEARL */ {(void*) Aquas_AqPearl_Draw, 1, (ObjectFunc) Aquas_AqPearl_Update, gCubeHitbox100, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_AQ_ANGLERFISH */ {(void*) Aquas_AqAnglerFish_Draw, 2, (ObjectFunc) Aquas_AqAnglerFish_Update, aAqAnglerFishHitbox, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_AQ_GAROA */ {(void*) Aquas_AqGaroa_Draw, 2, (ObjectFunc) Aquas_AqGaroa_Update, aAqGaroaHitbox, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_AQ_SCULPIN */ {(void*) Aquas_AqSculpin_Draw, 2, (ObjectFunc) Aquas_AqSculpin_Update, aAqSculpinHitbox, 300.0f, 0, 0, 40, 0, 0.0f, 1 },
/* OBJ_ACTOR_AQ_SPINDLYFISH */ {(void*) Aquas_AqSpindlyFish_Draw, 2, (ObjectFunc) Aquas_AqSpindlyFish_Update, aAqSpindlyFishHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_AQ_SQUID */ {(void*) Aquas_AqSquid_Draw, 2, (ObjectFunc) Aquas_AqSquid_Update, aAqSquidHitbox, 200.0f, 0, 0, 40, 0, 0.0f, 1 },
/* OBJ_ACTOR_AQ_SEAWEED */ {(void*) Aquas_AqSeaweed_Draw, 1, (ObjectFunc) Aquas_AqSeaweed_Update, gCubeHitbox100, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ACTOR_AQ_BOULDER */ {(void*) Aquas_AqBoulder_Draw, 1, (ObjectFunc) Aquas_AqBoulder_Update, aAqBoulderHitbox, 200.0f, 0, 0, 40, 0, 0.0f, 1 },
/* OBJ_ACTOR_AQ_CORAL */ {(void*) Aquas_AqCoral_Draw, 2, (ObjectFunc) Aquas_AqCoral_Update, aAqCoralHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ACTOR_AQ_JELLYFISH */ {(void*) Aquas_AqJellyfish_Draw, 2, (ObjectFunc) Aquas_AqJellyfish_Update, aAqJellyfishHitbox, 800.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_AQ_FISHGROUP */ {(void*) Aquas_AqFishGroup_Draw, 1, (ObjectFunc) Aquas_AqFishGroup_Update, aAqFishGroupHitbox, 10000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ACTOR_AQ_STONE_COLUMN */ {(void*) Aquas_AqStoneColumn_Draw, 1, (ObjectFunc) Aquas_AqStoneColumn_Update, aAqStoneColumnHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_AQ_OYSTER */ {(void*) Aquas_AqOyster_Draw, 1, (ObjectFunc) Aquas_AqOyster_Update, aAqOysterHitbox, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_BO_SHIELD_REACTOR */ {(void*) BoShieldReactor_Draw, 2, (ObjectFunc) BoShieldReactor_Update, aBoShieldReactorHitbox, 0.0f, 0, 0, 39, 0, 730.0f, 1 },
/* OBJ_ACTOR_BO_LASER_CANNON */ {(void*) BoLaserCannon_Draw, 1, (ObjectFunc) BoLaserCannon_Update, aBoLaserCannonHitbox, 0.0f, 0, 0, 39, 0, 150.0f, 1 },
/* OBJ_ACTOR_FO_RADAR */ {(void*) Fortuna_FoRadar_Draw, 2, (ObjectFunc) Fortuna_FoRadar_Update, aFoRadarHitbox, 0.0f, 0, 0, 39, 0, 220.0f, 1 },
/* OBJ_ACTOR_SZ_SPACE_JUNK */ {(void*) SectorZ_SpaceJunkDraw, 1, (ObjectFunc) SectorZ_SpaceJunkUpdate, gCubeHitbox200, 0.0f, 0, 0, 39, 0, 1.0f, 0 },
/* OBJ_ACTOR_SO_ROCK_1 */ {(void*) Solar_SoRock_Draw, 1, (ObjectFunc) Solar_SoRock_Update, gCubeHitbox100, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_SO_ROCK_2 */ {(void*) Solar_SoRock_Draw, 1, (ObjectFunc) Solar_SoRock_Update, gCubeHitbox100, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_SO_ROCK_3 */ {(void*) Solar_SoRock_Draw, 1, (ObjectFunc) Solar_SoRock_Update, gCubeHitbox200, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_SO_WAVE */ {(void*) NULL, 1, (ObjectFunc) Solar_SoWave_Update, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 1 },
/* OBJ_ACTOR_SO_PROMINENCE */ {(void*) NULL, 1, (ObjectFunc) Solar_SoProminence_Update, gNoHitbox, 1000.0f, 0, 0, 0, 0, 0.0f, 1 },
/* OBJ_ACTOR_VE1_PILLAR_1 */ {(void*) aVe1Pillar1DL, 0, (ObjectFunc) Venom1_Ve1Pillar1_Update, aVe1Pillar1Hitbox, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_VE1_PILLAR_2 */ {(void*) Venom1_Ve1Pillar2_Draw, 1, (ObjectFunc) Venom1_Pillar2_3_Update, aVe1Pillar2Hitbox, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_VE1_PILLAR_3 */ {(void*) aVe1Pillar3DL, 0, (ObjectFunc) Venom1_Pillar2_3_Update, aVe1Pillar3Hitbox, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_VE1_PILLAR_4 */ {(void*) aVe1Pillar4DL, 0, (ObjectFunc) Venom1_Ve1Pillar4_Update, aVe1Pillar4Hitbox, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_VE1_MONKEY_STATUE */ {(void*) Venom1_Ve1MonkeyStatue_Draw, 1, (ObjectFunc) Venom1_Ve1MonkeyStatue_Update, aVe1MonkeyStatueHitbox, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_AND_LASER_EMITTER */ {(void*) Andross_AndLaserEmitter_Draw, 1, (ObjectFunc) Andross_AndLaserEmitter_Update, gCubeHitbox100, 1000.0f, 0, 0, 20, 0, 1.0f, 1 },
/* OBJ_ACTOR_AND_BRAIN_WASTE */ {(void*) Andross_AndBrainWaste_Draw, 1, (ObjectFunc) Andross_AndBrainWaste_Update, gCubeHitbox100, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
/* OBJ_ACTOR_AND_EXPLOSION */ {(void*) NULL, 1, (ObjectFunc) Andross_AndExplosion_Update, gNoHitbox, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_AND_RADIO */ {(void*) NULL, 1, (ObjectFunc) Andross_AndRadio_Update, gNoHitbox, 1000.0f, 0, 0, 20, 1, 0.0f, 0 },
/* OBJ_ACTOR_AND_JAMES_TRIGGER */ {(void*) AndJamesTrigger_Draw, 1, (ObjectFunc) Andross_AndJamesTrigger_Update, gNoHitbox, 1000.0f, 0, 0, 20, 1, 0.0f, 0 },
/* OBJ_ACTOR_AND_BOSS_TIMER_SET */ {(void*) NULL, 1, (ObjectFunc) Andross_AndBossTimer_Update, gNoHitbox, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
/* OBJ_ACTOR_SUPPLIES */ {(void*) ActorSupplies_Draw, 1, (ObjectFunc) ActorSupplies_Update, gCubeHitbox150, 1000.0f, 0, 0, 0, 0, 1.0f, 0 },
/* OBJ_BOSS_CO_GRANGA */ {(void*) Corneria_CoGranga_Draw, 2, (ObjectFunc) Corneria_CoGranga_Update, aCoGrangaHitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_CO_CARRIER */ {(void*) Corneria_CoCarrier_Draw, 1, (ObjectFunc) Corneria_CoCarrier_Update, aCoCarrierHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_CO_CARRIER_LEFT */ {(void*) Corneria_CoCarrierLeft_Draw, 1, (ObjectFunc) Corneria_CarrierLeft_Update, aCoCarrierLeftHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_CO_CARRIER_UPPER */ {(void*) Corneria_CoCarrierUpper_Draw, 1, (ObjectFunc) Corneria_CarrierUpper_Update, aCoCarrierUpperHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_CO_CARRIER_BOTTOM */ {(void*) Corneria_CoCarrierBottom_Draw, 1, (ObjectFunc) Corneria_CarrierBottom_Update, aCoCarrierBottomHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_ME_CRUSHER */ {(void*) Meteo_MeCrusher_Draw, 1, (ObjectFunc) Meteo_MeCrusher_Update, aMeCrusherHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_ME_CRUSHER_SHIELD */ {(void*) Meteo_MeCrusherShield_Draw, 1, (ObjectFunc) Meteo_MeCrusherShield_Update, aMeCrusherShieldHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_UNK_299 */ {(void*) Boss299_Draw, 2, (ObjectFunc) Boss299_Update, gNoHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_UNK_300 */ {(void*) Boss300_Draw, 1, (ObjectFunc) Boss300_Update, gNoHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_AQ_UNK_301 */ {(void*) Aquas_Boss301_Draw, 1, (ObjectFunc) Aquas_Boss301_Update, aBoss301Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_A6_GORGON */ {(void*) Area6_A6Gorgon_Draw, 1, (ObjectFunc) Area6_A6Gorgon_Update, aA6GorgonHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_SX_SPYBORG */ {(void*) SectorX_SxSpyborg_Draw, 2, (ObjectFunc) SectorX_SxSpyborg_Update, aSxSpyborgHitbox, 20000.0f, 0, 0, 20, 0, 0.0f, 10 },
/* OBJ_BOSS_SX_SPYBORG_LEFT_ARM */ {(void*) SectorX_SxSpyborgLeftArm_Draw, 2, (ObjectFunc) SectorX_SxSpyborgLeftArm_Update, aSxSpyborgLeftArmHitbox, 1000.0f, 0, 0, 20, 0, 0.0f, 10 },
/* OBJ_BOSS_SX_SPYBORG_RIGHT_ARM */ {(void*) SectorX_SxSpyborgRightArm_Draw, 2, (ObjectFunc) SectorX_SxSpyborgRightArm_Update, aSxSpyborgRightArmHitbox, 1000.0f, 0, 0, 20, 0, 0.0f, 10 },
/* OBJ_BOSS_TI_GORAS */ {(void*) Titania_TiGoras_Draw, 1, (ObjectFunc) Titania_TiGoras_Update, aTiGorasHitbox, 1000.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_ZO_SARUMARINE */ {(void*) Zoness_ZoSarumarine_Draw, 2, (ObjectFunc) Zoness_ZoSarumarine_Update, aZoSarumarineHitbox, 1000.0f, 0, 0, 40, 0, 1.0f, 10 },
/* OBJ_BOSS_FO_BASE */ {(void*) FoBase_Draw, 1, (ObjectFunc) FoBase_Update, aFoBaseHitbox, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_BO_BASE */ {(void*) BoBase_Draw, 1, (ObjectFunc) BoBase_Update, gNoHitbox, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_BO_BASE_SHIELD */ {(void*) BoBaseShield_Draw, 1, (ObjectFunc) BoBaseShield_Update, gNoHitbox, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_BO_BASE_CORE */ {(void*) Bolse_BoBaseCore_Draw, 2, (ObjectFunc) Bolse_BoBaseCore_Update, aBoBaseCoreHitbox, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_VE2_BASE */ {(void*) Venom2_Ve2Base_Draw, 2, (ObjectFunc) Venom2_Ve2Base_Update, aVe2BaseHitbox, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_SZ_GREAT_FOX */ {(void*) SectorZ_SzGreatFox_Draw, 1, (ObjectFunc) SectorZ_SzGreatFox_Update, aSzGreatFoxHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_SY_SHOGUN */ {(void*) SectorY_SyShogun_Draw, 2, (ObjectFunc) SectorY_SyShogun_Update, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_SO_VULKAIN */ {(void*) Solar_SoVulkain_Draw, 2, (ObjectFunc) Solar_SoVulkain_Update, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_KA_SAUCERER */ {(void*) Katina_KaSaucerer_Draw, 1, (ObjectFunc) Katina_KaSaucerer_Update, aKaSaucererHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_KA_FLBASE */ {(void*) Katina_KaFrontlineBase_Draw, 1, (ObjectFunc) Katina_KaFrontlineBase_Update, aKaFrontlineBaseHitbox, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_AQ_BACOON */ {(void*) Aquas_AqBacoon_Draw, 2, (ObjectFunc) Aquas_AqBacoon_Update, aAqBacoonHitbox, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_VE1_GOLEMECH */ {(void*) Venom1_Ve1Golemech_Draw, 1, (ObjectFunc) Venom1_Ve1Golemech_Update, aVe1GolemechHitbox, 3000.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_AND_ANDROSS */ {(void*) Andross_AndAndross_Draw, 2, (ObjectFunc) Andross_AndAndross_Update, aAndAndrossHitbox, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_AND_BRAIN */ {(void*) Andross_AndBrain_Draw, 1, (ObjectFunc) Andross_AndBrain_Update, aAndBrainHitbox, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_ITEM_LASERS */ {(void*) ItemLasers_Draw, 1, (ObjectFunc) ItemLasers_Update, gItemLasersHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_CHECKPOINT */ {(void*) ItemCheckpoint_Draw, 1, (ObjectFunc) ItemCheckpoint_Update, gItemCheckpointHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_SILVER_RING */ {(void*) ItemSilverRing_Draw, 1, (ObjectFunc) ItemSupplyRing_Update, gItemSupplyRingHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_SILVER_STAR */ {(void*) ItemSilverStar_Draw, 1, (ObjectFunc) ItemSilverStar_Update, gItemSupplyRingHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_METEO_WARP */ {(void*) ItemMeteoWarp_Draw, 1, (ObjectFunc) ItemMeteoWarp_Update, gMeteoWarpHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_BOMB */ {(void*) ItemBomb_Draw, 1, (ObjectFunc) ItemPickup_Update, gItemBombHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_PATH_SPLIT_X */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, gItemPathChangeHitbox, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_PATH_TURN_LEFT */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, gItemPathChangeHitbox, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_PATH_TURN_RIGHT */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, gItemPathChangeHitbox, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_PATH_SPLIT_Y */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, gItemPathChangeHitbox, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_PATH_TURN_UP */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, gItemPathChangeHitbox, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_PATH_TURN_DOWN */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, gItemPathChangeHitbox, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_RING_CHECK */ {(void*) NULL, 1, (ObjectFunc) ItemRingCheck_Update, gItemRingCheckHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_1UP */ {(void*) D_1022120, 0, (ObjectFunc) Item1up_Update, gCubeHitbox100, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_GOLD_RING */ {(void*) ItemGoldRing_Draw, 1, (ObjectFunc) ItemGoldRing_Update, gItemSupplyRingHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_WING_REPAIR */ {(void*) aArwingItemLasersDL, 0, (ObjectFunc) ItemWingRepair_Update, gItemLasersHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_TRAINING_RING */ {(void*) aItemTrainingRingDL, 0, (ObjectFunc) Training_ItemRing_Update, aItemTrainingRingHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_FIRE_SMOKE_1 */ {(void*) Effect_FireSmoke_Draw, 1, (ObjectFunc) Effect_Effect339_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_FIRE_SMOKE_2 */ {(void*) Effect_FireSmoke_Draw, 1, (ObjectFunc) Effect_Effect340_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_FIRE_SMOKE_3 */ {(void*) Effect_FireSmoke_Draw, 1, (ObjectFunc) Effect_Effect341_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_SMOKE_1 */ {(void*) Effect_Effect342_Draw, 1, (ObjectFunc) Effect_Effect342_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_SMOKE_2 */ {(void*) Effect_Effect343_Draw, 1, (ObjectFunc) Effect_Effect343_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_EXPLOSION_MARK_1 */ {(void*) Effect_Effect344_Draw, 1, (ObjectFunc) Effect_Effect344_Update, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_LASER_MARK_1 */ {(void*) Effect_Effect345_Draw, 1, (ObjectFunc) Effect_Effect345_Update, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_346 */ {(void*) Effect_Effect346_Draw, 1, (ObjectFunc) Effect_Effect346_Update, NULL, -200.0f, 1, 0, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_347 */ {(void*) Effect_Effect347_Draw, 1, (ObjectFunc) Effect_Effect347_Update, NULL, 100.0f, 1, 0, 40, 0, 0.0f, 0 },
/* OBJ_EFFECT_348 */ {(void*) Effect_Effect348_Draw, 1, (ObjectFunc) Effect_Effect348_Update, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_349 */ {(void*) NULL, 1, (ObjectFunc) Effect_Effect349_Update, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_350 */ {(void*) NULL, 1, (ObjectFunc) Effect_Effect350_Update, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_351 */ {(void*) Effect_Effect351_Draw, 1, (ObjectFunc) Effect_Effect351_Update, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_CLOUDS */ {(void*) Effect_Clouds_Draw, 1, (ObjectFunc) Effect_Clouds_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_ENEMY_LASER_1 */ {(void*) Effect_Effect353_Draw, 1, (ObjectFunc) Effect_Effect353_354_Update, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
/* OBJ_EFFECT_354 */ {(void*) SectorY_Effect354_Draw, 1, (ObjectFunc) Effect_Effect353_354_Update, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
/* OBJ_EFFECT_355 */ {(void*) Effect_Effect355_Draw, 1, (ObjectFunc) Effect_Effect355_Update, NULL, 100.0f, 1, 0, 20, 1, 0.0f, 0 },
/* OBJ_EFFECT_356 */ {(void*) Effect_Effect356_Draw, 1, (ObjectFunc) Effect_Effect356_Update, NULL, 100.0f, 1, 0, 20, 0, 0.0f, 0 },
/* OBJ_EFFECT_357 */ {(void*) Effect_Effect357_Draw, 1, (ObjectFunc) Effect_Effect357_Update, NULL, 100.0f, 0, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_KA_ENERGY_PARTICLES */ {(void*) Katina_LaserEnergyParticlesDraw, 1, (ObjectFunc) Katina_LaserEnergyParticlesUpdate, NULL, 100.0f, 1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_359 */ {(void*) Effect_Effect359_Draw, 1, (ObjectFunc) Effect_Effect359_Update, NULL, -100.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_360 */ {(void*) Effect_Effect360_361_362_Draw, 1, (ObjectFunc) Effect_Effect360_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_361 */ {(void*) Effect_Effect360_361_362_Draw, 1, (ObjectFunc) Effect_Effect361_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_362 */ {(void*) Effect_Effect360_361_362_Draw, 1, (ObjectFunc) Effect_Effect362_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_363 */ {(void*) Aquas_Effect363_Draw, 1, (ObjectFunc) Aquas_Effect363_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_364 */ {(void*) Effect_Effect364_Draw, 1, (ObjectFunc) Effect_Effect364_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_365 */ {(void*) Effect_Effect365_Draw, 1, (ObjectFunc) Effect_Effect365_Update, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_366 */ {(void*) Effect_Effect366_Draw, 1, (ObjectFunc) Aquas_Effect366_Update, NULL, 100.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_367 */ {(void*) Effect_Effect367_Draw, 1, (ObjectFunc) Effect_Effect367_Update, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_368 */ {(void*) Titania_Effect368_Draw, 1, (ObjectFunc) Titania_Effect368_Update, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_369 */ {(void*) Meteo_Effect369_Draw, 1, (ObjectFunc) Meteo_Effect369_Update, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
/* OBJ_EFFECT_370 */ {(void*) Meteo_Effect370_Draw, 1, (ObjectFunc) Meteo_Effect370_Update, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
/* OBJ_EFFECT_371 */ {(void*) Meteo_Effect371_Draw, 1, (ObjectFunc) Meteo_Effect371_Update, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
/* OBJ_EFFECT_372 */ {(void*) Effect_Effect372_Draw, 1, (ObjectFunc) Effect_Effect372_Update, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_TIMED_SFX */ {(void*) NULL, 1, (ObjectFunc) Effect_TimedSfx_Update, NULL, 500.0f, 0, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_374 */ {(void*) Effect_Effect374_Draw, 1, (ObjectFunc) Effect_Effect374_Update, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
/* OBJ_EFFECT_375 */ {(void*) Effect_Effect375_Draw, 1, (ObjectFunc) Effect_Effect375_Update, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_376 */ {(void*) Effect_Effect376_Draw, 1, (ObjectFunc) Effect_Effect376_Update, NULL, -200.0f, 1, 0, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_377 */ {(void*) Effect_Effect377_Draw, 1, (ObjectFunc) Effect_Effect377_Update, NULL, 100.0f, 1, 0, 20, 0, 0.0f, 0 },
/* OBJ_EFFECT_378 */ {(void*) Macbeth_Effect378_Draw, 1, (ObjectFunc) Macbeth_Effect378_Update, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
/* OBJ_EFFECT_379 */ {(void*) Macbeth_Effect379_Draw, 1, (ObjectFunc) Macbeth_Effect379_Update, NULL, 100.0f, 1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_380 */ {(void*) Macbeth_Effect380_Draw, 1, (ObjectFunc) Macbeth_Effect380_Update, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
/* OBJ_EFFECT_381 */ {(void*) Effect_Effect382_Draw, 1, (ObjectFunc) Effect_Effect381_Update, NULL, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_382 */ {(void*) NULL, 1, (ObjectFunc) Effect_Effect382_Update, NULL, 200.0f, 0, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_383 */ {(void*) Effect_Effect383_Draw, 1, (ObjectFunc) Effect_Effect383_Update, NULL, 10000.0f, 0, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_384 */ {(void*) Effect_Effect384_Draw, 1, (ObjectFunc) Effect_Effect384_Update, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_385 */ {(void*) Effect_Effect385_Draw, 1, (ObjectFunc) Effect_Effect385_Update, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_386 */ {(void*) NULL, 1, (ObjectFunc) Effect_Effect386_Update, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_387 */ {(void*) NULL, 1, (ObjectFunc) Effect_Effect387_Update, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_388 */ {(void*) Effect_Effect388_Draw, 1, (ObjectFunc) Effect_Effect388_Update, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_389 */ {(void*) Effect_Effect389_Draw, 1, (ObjectFunc) Effect_Effect389_Update, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_390 */ {(void*) NULL, 1, (ObjectFunc) Effect_Effect390_Update, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_391 */ {(void*) Effect_Effect391_Draw, 1, (ObjectFunc) Effect_Effect391_Update, NULL, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_392 */ {(void*) Solar_Effect392_Draw, 1, (ObjectFunc) Solar_Effect392_Update, NULL, 300.0f, 1, 2, 10, 0, 0.0f, 0 },
/* OBJ_EFFECT_393 */ {(void*) Effect_Effect393_Draw, 1, (ObjectFunc) Effect_Effect393_Update, NULL, 300.0f, 1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_394 */ {(void*) Effect_Effect394_Draw, 1, (ObjectFunc) Effect_Effect394_Update, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_395 */ {(void*) Effect_Effect395_Draw, 1, (ObjectFunc) Effect_Effect395_Update, NULL, 300.0f, 0, 1, 40, 0, 0.0f, 0 },
/* OBJ_EFFECT_396 */ {(void*) Andross_Effect396_Draw, 1, (ObjectFunc) Andross_Effect396_Update, NULL, 2000.0f, 0, 1, 40, 2, 0.0f, 0 },
/* OBJ_EFFECT_397 */ {(void*) Bolse_Effect397_Draw, 1, (ObjectFunc) Bolse_Effect397_Update, NULL, 2000.0f, 0, 1, 20, 0, 0.0f, 0 },
/* OBJ_EFFECT_398 */ {(void*) Effect_Effect398_Draw, 1, (ObjectFunc) Effect_Effect398_Update, NULL, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_EFFECT_399 */ {(void*) Effect_Effect399_Draw, 1, (ObjectFunc) Effect_Effect399_Update, NULL, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
};
// clang-format on
+905 -747
View File
File diff suppressed because it is too large Load Diff
+1868 -1841
View File
File diff suppressed because it is too large Load Diff
+1682 -1456
View File
File diff suppressed because it is too large Load Diff
+1949 -1844
View File
File diff suppressed because it is too large Load Diff
+23 -23
View File
@@ -1,26 +1,26 @@
#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 Wipe_Horizontal(s32 frame) {
Graphics_FillRectangle(&gMasterDisp, 0, 0, frame, SCREEN_HEIGHT, 0, 0, 0, 255);
Graphics_FillRectangle(&gMasterDisp, SCREEN_WIDTH - frame, 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 Wipe_Vertical(s32 frame) {
Graphics_FillRectangle(&gMasterDisp, 0, 0, SCREEN_WIDTH, frame, 0, 0, 0, 255);
Graphics_FillRectangle(&gMasterDisp, 0, SCREEN_HEIGHT - frame, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0, 0, 255);
}
void func_fade_80084488(s32 arg0) {
s32 var_s1;
void Wipe_Circular(s32 frame) {
s32 angle;
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_Translate(gGfxMatrix, 0.0f, 0.0f, -150.0f, MTXF_NEW);
for (angle = 0; angle < MIN(360, frame * 15); angle += 15) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, MIN((frame - (angle / 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_RotateZ(gGfxMatrix, angle * M_DTOR, MTXF_APPLY);
Matrix_Scale(gGfxMatrix, 0.53f, 1.0f, 1.0f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_Gfx_800D9688);
Matrix_Pop(&gGfxMatrix);
@@ -28,20 +28,20 @@ void func_fade_80084488(s32 arg0) {
Matrix_Pop(&gGfxMatrix);
}
void func_fade_80084688(s32 arg0, s32 arg1) {
if (arg1 != 0) {
switch (arg0) {
case 0:
func_fade_80084488(arg1);
void Wipe_Draw(WipeMode mode, s32 frame) {
if (frame != 0) {
switch (mode) {
case WIPE_CIRCULAR:
Wipe_Circular(frame);
break;
case 1:
func_fade_80084370(arg1);
case WIPE_HORIZONTAL:
Wipe_Horizontal(frame);
break;
case 2:
func_fade_800843FC(arg1);
case WIPE_VERTICAL:
Wipe_Vertical(frame);
break;
default:
(void) "そのような フェード は ない (%d)\n"; // There is no such fade
PRINTF("そのような フェード は ない (%d)\n"); // There is no such fade
break;
}
}
+389 -309
View File
@@ -2,51 +2,52 @@
#include "global.h"
#include "sf64dma.h"
#include "assets/ast_logo.h"
#include "mods.h"
f32 D_game_80161A10;
f32 D_game_80161A14;
f32 gNextVsViewScale;
f32 gVsViewScale;
s32 gPlayerInactive[4];
s32 D_game_80161A28;
u8 D_game_80161A2C;
u16 D_game_80161A2E;
s32 gVsMenuSelection;
u8 gShowHud;
u16 gNextLevelPhase;
u16 gNextLevel;
GameState gNextGameState;
u16 D_game_80161A34;
u16 gNextGameState;
u16 gLastGameState;
u16 gBgColor;
u8 gBlurAlpha;
u8 D_game_80161A39;
f32 D_game_80161A3C;
f32 D_game_80161A40;
f32 D_game_80161A44;
u8 gGameStandby;
f32 gFovY;
f32 gProjectNear;
f32 gProjectFar;
s32 D_game_800D2860[4] = { true, true, true, true };
s32 D_game_800D2870 = 0;
static s32 sVsCameraULx[] = { 0, SCREEN_WIDTH / 2, 0, SCREEN_WIDTH / 2 };
static s32 sVsCameraLRx[] = { SCREEN_WIDTH / 2 - 1, SCREEN_WIDTH - 1, SCREEN_WIDTH / 2 - 1, SCREEN_WIDTH - 1 };
static s32 sVsCameraULy[] = { 0, 0, SCREEN_HEIGHT / 2, SCREEN_HEIGHT / 2 };
static s32 sVsCameraLRy[] = { SCREEN_HEIGHT / 2 - 1, SCREEN_HEIGHT / 2 - 1, SCREEN_HEIGHT - 1, SCREEN_HEIGHT - 1 };
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,
bool gShowReticles[4] = { true, true, true, true };
bool D_game_800D2870 = false;
s32 sVsCameraULx[] = { 0, SCREEN_WIDTH / 2, 0, SCREEN_WIDTH / 2 };
s32 sVsCameraLRx[] = { SCREEN_WIDTH / 2 - 1, SCREEN_WIDTH - 1, SCREEN_WIDTH / 2 - 1, SCREEN_WIDTH - 1 };
s32 sVsCameraULy[] = { 0, 0, SCREEN_HEIGHT / 2, SCREEN_HEIGHT / 2 };
s32 sVsCameraLRy[] = { SCREEN_HEIGHT / 2 - 1, SCREEN_HEIGHT / 2 - 1, SCREEN_HEIGHT - 1, SCREEN_HEIGHT - 1 };
s32 sLevelSceneIds[] = {
/* LEVEL_CORNERIA */ SCENE_CORNERIA,
/* LEVEL_METEO */ SCENE_METEO,
/* LEVEL_SECTOR_X */ SCENE_SECTOR_X,
/* LEVEL_AREA_6 */ SCENE_AREA_6,
/* LEVEL_UNK_4 */ SCENE_UNK_4,
/* LEVEL_SECTOR_Y */ SCENE_SECTOR_Y,
/* LEVEL_VENOM_1 */ SCENE_VENOM_1,
/* LEVEL_SOLAR */ SCENE_SOLAR,
/* LEVEL_ZONESS */ SCENE_ZONESS,
/* LEVEL_VENOM_ANDROSS */ SCENE_VENOM_ANDROSS,
/* LEVEL_TRAINING */ SCENE_TRAINING,
/* LEVEL_MACBETH */ SCENE_MACBETH,
/* LEVEL_TITANIA */ SCENE_TITANIA,
/* LEVEL_AQUAS */ SCENE_AQUAS,
/* LEVEL_FORTUNA */ SCENE_FORTUNA,
/* LEVEL_UNK_15 */ SCENE_TITLE,
/* LEVEL_KATINA */ SCENE_KATINA,
/* LEVEL_BOLSE */ SCENE_BOLSE,
/* LEVEL_SECTOR_Z */ SCENE_SECTOR_Z,
/* LEVEL_VENOM_2 */ SCENE_VENOM_2,
/* LEVEL_VERSUS */ SCENE_VERSUS,
};
void Game_Initialize(void) {
@@ -54,21 +55,33 @@ void Game_Initialize(void) {
Rand_Init();
Rand_SetSeed(1, 29000, 9876);
gGameState = GSTATE_BOOT;
D_Timer_8017783C = 0;
#ifdef MODS_BOOT_STATE
gNextGameState = GSTATE_INIT;
if (Save_Read() != 0) {
#ifdef AVOID_UB
gSaveFile.save = gDefaultSave;
gSaveFile.backup = gDefaultSave;
#else
gSaveFile = *((SaveFile*) &gDefaultSave);
#endif
Save_Write();
}
#endif
gNextGameStateTimer = 0;
gBgColor = 0;
gBlurAlpha = 255;
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;
gFovY = 45.0f;
gProjectNear = 10.0f;
gProjectFar = 12800.0f;
gNextVsViewScale = gVsViewScale = 0.0f;
gSceneId = SCENE_LOGO;
gSceneSetup = 0;
Load_InitDmaAndMsg();
gGameStandby = true;
}
void Game_SetGameState(void) {
D_game_80161A14 = D_game_80161A10;
gVsViewScale = gNextVsViewScale;
if (gNextGameState == GSTATE_NONE) {
return;
@@ -77,62 +90,63 @@ void Game_SetGameState(void) {
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;
Play_Setup();
gPlayState = PLAY_STANDBY;
gLevelPhase = gNextLevelPhase;
gNextLevelPhase = 0;
if ((gLevelPhase != 0) && (gCurrentLevel != LEVEL_VENOM_ANDROSS)) {
D_ctx_8017782C = false;
}
break;
case GSTATE_MAP:
D_ctx_80177B40 = 0;
gMapState = 0;
break;
case GSTATE_GAME_OVER:
D_ctx_80177868 = 0;
break;
}
Memory_FreeAll();
func_play_800A6148();
Play_ClearObjectData();
gGameState = gNextGameState;
D_Timer_8017783C = 3;
D_360_8015F924 = 0;
gNextGameStateTimer = 3;
gAllRangeCheckpoint = 0;
gNextGameState = GSTATE_NONE;
gOverlayStage = 0;
gSceneSetup = 0;
gFillScreenColor = gBgColor = 0;
D_ctx_80177D20 = 0.0f;
if ((gCurrentLevel == LEVEL_VENOM_2) && (D_ctx_8017827C == 2)) {
gPathProgress = 0.0f;
if ((gCurrentLevel == LEVEL_VENOM_2) && (gLevelPhase == 2)) {
gFillScreenColor = gBgColor = 0xFFFF; // 248, 248, 248
D_ctx_80178348 = D_ctx_80178350 = D_ctx_80178354 = 255;
gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 255;
} else {
D_ctx_80178348 = D_ctx_80178350 = D_ctx_80178354 = 0;
gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 0;
Audio_FadeOutAll(1);
}
D_ctx_80178340 = 255;
D_ctx_80178380[0] = 0;
gFillScreenAlpha = 255;
gPlayerGlareAlphas[0] = 0;
gRadioState = 0;
D_ctx_80178428 = 0.0f;
gStarfieldRoll = 0.0f;
gBlurAlpha = 255;
gDrawMode = DRAWMODE_0;
gDrawMode = DRAW_NONE;
Audio_ClearVoice();
Audio_SetBaseSfxReverb(0);
Audio_SetEnvSfxReverb(0);
}
bool func_game_800A1B6C(void) {
bool Game_ChangeScene(void) {
static u8 sHoldTimer = 0;
static u8 sOverlaySelect = 99;
static u8 sCurrentOverlay = 99;
static u8 sCurrentStage = 99;
static u8 sSceneSelect = SCENE_LOGO;
static u8 sCurrentSceneId = SCENE_LOGO;
static u8 sCurrentSetup = SCENE_LOGO;
if (gOverlaySetup != sCurrentOverlay) {
if (gSceneId != sCurrentSceneId) {
sHoldTimer = 2;
sCurrentOverlay = gOverlaySetup;
sCurrentSceneId = gSceneId;
}
if (sHoldTimer == 0) {
sOverlaySelect = sCurrentOverlay;
sCurrentStage = gOverlayStage;
sSceneSelect = sCurrentSceneId;
sCurrentSetup = gSceneSetup;
}
Overlay_Load(sOverlaySelect, sCurrentStage);
Load_SceneSetup(sSceneSelect, sCurrentSetup);
if (sHoldTimer) {
sHoldTimer--;
@@ -141,248 +155,274 @@ bool func_game_800A1B6C(void) {
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);
void Game_InitMasterDL(Gfx** dList) {
gSPDisplayList((*dList)++, gRcpInitDL);
gDPSetScissor((*dList)++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN,
SCREEN_HEIGHT - SCREEN_MARGIN);
gDPSetDepthImage((*dList)++, &gZBuffer);
gDPSetColorImage((*dList)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, &gZBuffer);
gDPSetFillColor((*dList)++, FILL_COLOR(GPACK_ZDZ(G_MAXFBZ, 0)));
gDPFillRectangle((*dList)++, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN - 1,
SCREEN_HEIGHT - SCREEN_MARGIN - 1);
gDPSetColorImage((*dList)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, gFrameBuffer);
if (gBlurAlpha < 255) {
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,
gDPPipeSync((*dList)++);
gDPSetCycleType((*dList)++, G_CYC_1CYCLE);
gDPSetCombineMode((*dList)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
gDPSetRenderMode((*dList)++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
gDPSetPrimColor((*dList)++, 0x00, 0x00, RGBA16_RED(gBgColor) * 8, RGBA16_GRN(gBgColor) * 8,
RGBA16_BLU(gBgColor) * 8, gBlurAlpha);
} else {
gDPSetFillColor((*arg0)++, FILL_COLOR(gBgColor | 1));
gDPSetFillColor((*dList)++, FILL_COLOR(gBgColor | 1));
}
gDPFillRectangle((*arg0)++, 8, 8, SCREEN_WIDTH - 8 - 1, SCREEN_HEIGHT - 8);
gDPPipeSync((*arg0)++);
gDPSetColorDither((*arg0)++, G_CD_MAGICSQ);
gDPFillRectangle((*dList)++, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN - 1,
SCREEN_HEIGHT - SCREEN_MARGIN);
gDPPipeSync((*dList)++);
gDPSetColorDither((*dList)++, 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 Game_InitStandbyDL(Gfx** dList) {
gSPDisplayList((*dList)++, gRcpInitDL);
gDPSetScissor((*dList)++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT * 3);
gDPSetFillColor((*dList)++, FILL_COLOR(0x0001));
gDPSetColorImage((*dList)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, gFrameBuffers[0].data);
gDPFillRectangle((*dList)++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT * 3 - 1);
gDPPipeSync((*dList)++);
gDPSetColorDither((*dList)++, G_CD_MAGICSQ);
}
void func_game_800A1F44(void) {
void Game_InitFullViewport(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) {}
void Game_InitViewport(Gfx** dList, u8 camCount, u8 camIndex) {
switch (camCount) {
case 4:
switch (camIndex) {
case 0:
gViewport->vp.vscale[0] = SCREEN_WIDTH * (gVsViewScale - 1.0f) * 2;
gViewport->vp.vscale[1] = SCREEN_HEIGHT * (gVsViewScale - 1.0f) * 2;
gViewport->vp.vscale[2] = G_MAXZ / 2;
gViewport->vp.vscale[3] = 0;
gViewport->vp.vtrans[0] = SCREEN_WIDTH * (2.0f - gVsViewScale) * 2;
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * (2.0f - gVsViewScale) * 2;
gViewport->vp.vtrans[2] = G_MAXZ / 2;
gViewport->vp.vtrans[3] = 0;
gDPSetScissor((*dList)++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH / 2,
SCREEN_HEIGHT / 2);
break;
case 1:
gViewport->vp.vscale[0] = SCREEN_WIDTH * (gVsViewScale - 1.0f) * 2;
gViewport->vp.vscale[1] = SCREEN_HEIGHT * (gVsViewScale - 1.0f) * 2;
gViewport->vp.vscale[2] = G_MAXZ / 2;
gViewport->vp.vscale[3] = 0;
gViewport->vp.vtrans[0] = SCREEN_WIDTH * gVsViewScale * 2;
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * (2.0f - gVsViewScale) * 2;
gViewport->vp.vtrans[2] = G_MAXZ / 2;
gViewport->vp.vtrans[3] = 0;
gDPSetScissor((*dList)++, G_SC_NON_INTERLACE, SCREEN_WIDTH / 2, SCREEN_MARGIN,
SCREEN_WIDTH - SCREEN_MARGIN, SCREEN_HEIGHT / 2);
break;
case 2:
gViewport->vp.vscale[0] = SCREEN_WIDTH * (gVsViewScale - 1.0f) * 2;
gViewport->vp.vscale[1] = SCREEN_HEIGHT * (gVsViewScale - 1.0f) * 2;
gViewport->vp.vscale[2] = G_MAXZ / 2;
gViewport->vp.vscale[3] = 0;
gViewport->vp.vtrans[0] = SCREEN_WIDTH * (2.0f - gVsViewScale) * 2;
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * gVsViewScale * 2;
gViewport->vp.vtrans[2] = G_MAXZ / 2;
gViewport->vp.vtrans[3] = 0;
gDPSetScissor((*dList)++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_HEIGHT / 2, SCREEN_WIDTH / 2,
SCREEN_HEIGHT - SCREEN_MARGIN);
break;
case 3:
gViewport->vp.vscale[0] = SCREEN_WIDTH * (gVsViewScale - 1.0f) * 2;
gViewport->vp.vscale[1] = SCREEN_HEIGHT * (gVsViewScale - 1.0f) * 2;
gViewport->vp.vscale[2] = G_MAXZ / 2;
gViewport->vp.vscale[3] = 0;
gViewport->vp.vtrans[0] = SCREEN_WIDTH * gVsViewScale * 2;
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * gVsViewScale * 2;
gViewport->vp.vtrans[2] = G_MAXZ / 2;
gViewport->vp.vtrans[3] = 0;
gDPSetScissor((*dList)++, G_SC_NON_INTERLACE, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
SCREEN_WIDTH - SCREEN_MARGIN, SCREEN_HEIGHT - SCREEN_MARGIN);
break;
default:
Game_InitFullViewport();
break;
}
break;
case 1:
default:
Game_InitFullViewport();
break;
}
gSPViewport((*arg0)++, gViewport++);
gSPViewport((*dList)++, gViewport++);
}
void func_game_800A24DC(s32 arg0) {
void Game_Draw(s32 playerNum) {
switch (gDrawMode) {
case DRAWMODE_0:
case DRAW_NONE:
break;
case DRAWMODE_1:
func_bg_8003DAF0();
OvlMenu_CallFunction(104, NULL);
case DRAW_TITLE:
Background_DrawStarfield();
OvlMenu_CallFunction(OVLCALL_TITLE_DRAW, NULL);
break;
case DRAWMODE_2:
func_bg_8003DAF0();
OvlMenu_CallFunction(108, NULL);
case DRAW_OPTION:
Background_DrawStarfield();
OvlMenu_CallFunction(OVLCALL_OPTION_DRAW, NULL);
break;
case DRAW_MAP:
func_bg_8003DAF0();
OvlMenu_CallFunction(106, NULL);
Background_DrawStarfield();
OvlMenu_CallFunction(OVLCALL_MAP_DRAW, NULL);
break;
case DRAWMODE_4:
gPlayerNum = arg0;
func_display_80057D00();
case DRAW_PLAY:
gPlayerNum = playerNum;
Display_Update();
break;
case DRAWMODE_5:
func_bg_8003DAF0();
OvlMenu_CallFunction(110, NULL);
case DRAW_UNK_MAP: // likely game over
Background_DrawStarfield();
OvlMenu_CallFunction(OVLCALL_UNKMAP_DRAW, NULL);
break;
case DRAWMODE_6:
case DRAW_UNK_VS:
func_versus_800C2190();
break;
case DRAWMODE_7:
gPlayerNum = arg0;
func_800A3CA0();
case DRAW_UNK_7:
gPlayerNum = playerNum;
func_pause_800A3CA0();
break;
case DRAWMODE_8:
func_bg_8003DAF0();
gPlayerNum = arg0;
Ending_8018AAC4();
case DRAW_ENDING:
Background_DrawStarfield();
gPlayerNum = playerNum;
Ending_Draw();
break;
}
}
void func_game_800A25DC(void) {
void Game_SetScene(void) {
switch (gGameState) {
case GSTATE_INIT:
gOverlaySetup = OVL_SETUP_TITLE;
gOverlayStage = 0;
gSceneId = SCENE_TITLE;
gSceneSetup = 0;
break;
case GSTATE_TITLE:
gOverlaySetup = OVL_SETUP_TITLE;
gOverlayStage = 0;
gSceneId = SCENE_TITLE;
gSceneSetup = 0;
break;
case GSTATE_MENU:
gOverlaySetup = OVL_SETUP_MENU;
gOverlayStage = 0;
gSceneId = SCENE_MENU;
gSceneSetup = 0;
break;
case GSTATE_MAP:
gOverlaySetup = OVL_SETUP_MAP;
gOverlayStage = 0;
gSceneId = SCENE_MAP;
gSceneSetup = 0;
return;
case GSTATE_VS_INIT:
gOverlaySetup = OVL_SETUP_VERSUS;
gSceneId = SCENE_VERSUS;
break;
case GSTATE_PLAY:
gOverlaySetup = sOverlaySetups[gCurrentLevel];
gSceneId = sLevelSceneIds[gCurrentLevel];
break;
case GSTATE_GAME_OVER:
gOverlaySetup = OVL_SETUP_GAME_OVER;
gOverlayStage = 0;
gSceneId = SCENE_GAME_OVER;
gSceneSetup = 0;
break;
case GSTATE_CREDITS:
gOverlaySetup = OVL_SETUP_CREDITS;
case GSTATE_ENDING:
gSceneId = SCENE_CREDITS;
break;
}
}
void Game_Update(void) {
s32 i;
u8 spBB;
u8 var_v0_3;
u8 partialFill;
u8 soundMode;
Game_SetGameState();
if (D_game_80161A39) {
func_game_800A1E68(&gUnkDisp1);
D_game_80161A39 = false;
if (gGameStandby) {
Game_InitStandbyDL(&gUnkDisp1);
gGameStandby = 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--;
Game_InitMasterDL(&gUnkDisp1);
Game_SetScene();
if (Game_ChangeScene() != true) {
Lib_InitPerspective(&gUnkDisp1);
Game_InitViewport(&gUnkDisp1, gCamCount, 0);
if (gNextGameStateTimer != 0) {
gNextGameStateTimer--;
}
switch (gGameState) {
case GSTATE_BOOT:
D_Timer_8017783C = 2;
gNextGameStateTimer = 2;
gGameState++;
break;
case GSTATE_BOOT_WAIT:
if (D_Timer_8017783C == 0) {
if (gNextGameStateTimer == 0) {
gGameState++;
}
break;
case GSTATE_SHOW_LOGO:
RCP_SetupDL(&gMasterDisp, 0x4C);
RCP_SetupDL(&gMasterDisp, SETUPDL_76);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
TextureRect_8bIA(&gMasterDisp, gNintendoLogo, 128, 74, 100.0f, 86.0f, 1.0f, 1.0f);
Lib_TextureRect_IA8(&gMasterDisp, gNintendoLogo, 128, 74, 100.0f, 86.0f, 1.0f, 1.0f);
gGameState++;
break;
case GSTATE_CHECK_SAVE:
if (Save_Read() != 0) {
#ifdef AVOID_UB
gSaveFile.save = gDefaultSave;
gSaveFile.backup = gDefaultSave;
#else
gSaveFile = *((SaveFile*) &gDefaultSave);
#endif
Save_Write();
}
gGameState++;
Timer_CreateTask(MSEC_TO_CYCLES(1000), Timer_Increment, (s32*) &gGameState, 1);
/* fallthrough */
case GSTATE_LOGO_WAIT:
RCP_SetupDL(&gMasterDisp, 0x4C);
RCP_SetupDL(&gMasterDisp, SETUPDL_76);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
TextureRect_8bIA(&gMasterDisp, gNintendoLogo, 128, 74, 100.0f, 86.0f, 1.0f, 1.0f);
Lib_TextureRect_IA8(&gMasterDisp, gNintendoLogo, 128, 74, 100.0f, 86.0f, 1.0f, 1.0f);
break;
case GSTATE_START:
gGameState = GSTATE_INIT;
gOverlaySetup = OVL_SETUP_TITLE;
gOverlayStage = 0;
gSceneId = SCENE_TITLE;
gSceneSetup = 0;
break;
case GSTATE_INIT:
gGameState = GSTATE_TITLE;
D_ctx_80177AE0 = 1;
D_ctx_80177824 = 1;
gTitleState = 1;
gClearPlayerInfo = true;
Memory_FreeAll();
func_play_800A6148();
Play_ClearObjectData();
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;
gPathProgress = 0.0f;
D_hud_8016170C = gCsFrameCount = gShowLevelClearStatusScreen = gLevelStartStatusScreenTimer =
gLevelClearScreenTimer = gVsMatchState = gVersusMode = gTitleState = gStarCount = gMapState =
gPlayState = gOptionMenuStatus = gDrawMode = gShowBossHealth = gShowHud = gBgColor =
gFillScreenAlpha = 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;
D_ctx_80177C9C = D_ctx_80177CA4 = D_play_80161A5C = gLastGameState = GSTATE_NONE;
#ifdef MODS_BOOT_STATE
gNextGameState = MODS_BOOT_STATE;
#endif
for (i = 0; i < 4; i++) {
gBoostButton[i] = L_CBUTTONS;
gBrakeButton[i] = D_CBUTTONS;
@@ -392,153 +432,193 @@ void Game_Update(void) {
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;
gPlayerForms[i] = FORM_ARWING;
gShowReticles[i] = true;
gPlayerGlareAlphas[i] = 0;
}
gVersusStage = 0;
D_ctx_801778A4 = 3;
gVsPointsToWin = 3;
gBlurAlpha = 255;
for (i = 0; i < 30; i++) {
D_play_800D3180[i] = 0;
for (i = 0; i < ARRAY_COUNT(gLeveLClearStatus); i++) {
gLeveLClearStatus[i] = 0;
}
gExpertMode = false;
gSoundMode = gSaveFile.save.data.soundMode;
switch (gSoundMode) {
gOptionSoundMode = gSaveFile.save.data.soundMode;
switch (gOptionSoundMode) {
case OPTIONSOUND_STEREO:
var_v0_3 = SOUNDMODE_STEREO;
soundMode = SOUNDMODE_STEREO;
break;
case OPTIONSOUND_MONO:
var_v0_3 = SOUNDMODE_MONO;
soundMode = SOUNDMODE_MONO;
break;
case OPTIONSOUND_HEADSET:
var_v0_3 = SOUNDMODE_HEADSET;
soundMode = SOUNDMODE_HEADSET;
break;
default:
gSoundMode = OPTIONSOUND_STEREO;
var_v0_3 = SOUNDMODE_STEREO;
gOptionSoundMode = OPTIONSOUND_STEREO;
soundMode = 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;
SEQCMD_SET_SOUND_MODE(soundMode);
gVolumeSettings[AUDIO_TYPE_MUSIC] = gSaveFile.save.data.musicVolume;
gVolumeSettings[AUDIO_TYPE_VOICE] = gSaveFile.save.data.voiceVolume;
gVolumeSettings[AUDIO_TYPE_SFX] = gSaveFile.save.data.sfxVolume;
if (gVolumeSettings[AUDIO_TYPE_MUSIC] > 99) {
gVolumeSettings[AUDIO_TYPE_MUSIC] = 99;
}
if (gVolumeSettings[1] > 99) {
gVolumeSettings[1] = 99;
if (gVolumeSettings[AUDIO_TYPE_VOICE] > 99) {
gVolumeSettings[AUDIO_TYPE_VOICE] = 99;
}
if (gVolumeSettings[2] > 99) {
gVolumeSettings[2] = 99;
if (gVolumeSettings[AUDIO_TYPE_SFX] > 99) {
gVolumeSettings[AUDIO_TYPE_SFX] = 99;
}
func_8001D8A8(0, gVolumeSettings[0]);
func_8001D8A8(1, gVolumeSettings[1]);
func_8001D8A8(2, gVolumeSettings[2]);
Audio_SetVolume(AUDIO_TYPE_MUSIC, gVolumeSettings[AUDIO_TYPE_MUSIC]);
Audio_SetVolume(AUDIO_TYPE_VOICE, gVolumeSettings[AUDIO_TYPE_VOICE]);
Audio_SetVolume(AUDIO_TYPE_SFX, gVolumeSettings[AUDIO_TYPE_SFX]);
break;
case GSTATE_TITLE:
OvlMenu_CallFunction(103, NULL);
OvlMenu_CallFunction(OVLCALL_TITLE_UPDATE, NULL);
break;
case GSTATE_MENU:
OvlMenu_CallFunction(107, NULL);
OvlMenu_CallFunction(OVLCALL_OPTION_UPDATE, NULL);
break;
case GSTATE_MAP:
Map_8019E8D0();
Map_Main();
break;
case GSTATE_VS_INIT:
func_versus_800C20B0();
Versus_StartMatch();
break;
case GSTATE_PLAY:
func_play_800B86CC();
Play_Main();
break;
case GSTATE_GAME_OVER:
OvlMenu_CallFunction(109, NULL);
OvlMenu_CallFunction(OVLCALL_GAME_OVER_UPDATE, NULL);
break;
case GSTATE_CREDITS:
gDrawMode = DRAWMODE_8;
Ending_8018A96C();
case GSTATE_ENDING:
gDrawMode = DRAW_ENDING;
Ending_Main();
break;
default:
break;
}
func_game_800A24DC(0);
Game_Draw(0);
if (gCamCount == 2) {
func_game_800A1FB0(&gMasterDisp, gCamCount, 1);
func_game_800A24DC(1);
Game_InitViewport(&gMasterDisp, gCamCount, 1);
Game_Draw(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);
gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN,
SCREEN_HEIGHT - SCREEN_MARGIN);
} else if ((gCamCount == 4) && (gDrawMode != DRAW_NONE)) {
Game_InitViewport(&gMasterDisp, gCamCount, 3);
Game_Draw(3);
Game_InitViewport(&gMasterDisp, gCamCount, 2);
Game_Draw(2);
Game_InitViewport(&gMasterDisp, gCamCount, 1);
Game_Draw(1);
gDPPipeSync(gMasterDisp++);
gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, 8, 8, SCREEN_WIDTH - 8, SCREEN_HEIGHT - 8);
gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN,
SCREEN_HEIGHT - SCREEN_MARGIN);
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);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 0);
gDPFillRectangle(gMasterDisp++, SCREEN_WIDTH / 2 - 2 - 1, SCREEN_MARGIN, SCREEN_WIDTH / 2 + 2,
SCREEN_HEIGHT - SCREEN_MARGIN);
gDPFillRectangle(gMasterDisp++, SCREEN_MARGIN, SCREEN_HEIGHT / 2 - 2 - 1, SCREEN_WIDTH - SCREEN_MARGIN,
SCREEN_HEIGHT / 2 + 2);
if (gLevelType == LEVELTYPE_PLANET) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x0, 0, 0, 0, 255);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 255);
} else {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x0, 100, 100, 255, 255);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 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);
gDPFillRectangle(gMasterDisp++, SCREEN_WIDTH / 2 - 1 - 1, SCREEN_MARGIN, SCREEN_WIDTH / 2 + 1,
SCREEN_HEIGHT - SCREEN_MARGIN);
gDPFillRectangle(gMasterDisp++, SCREEN_MARGIN, SCREEN_HEIGHT / 2 - 1 - 1, SCREEN_WIDTH - SCREEN_MARGIN,
SCREEN_HEIGHT / 2 + 1);
func_hud_8008CB8C();
HUD_8008CB8C();
}
spBB = 0;
partialFill = false;
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();
Graphics_FillRectangle(&gMasterDisp, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, gPlayerGlareReds[0],
gPlayerGlareGreens[0], gPlayerGlareBlues[0], gPlayerGlareAlphas[0]);
if ((gDrawMode == DRAW_PLAY) || (gDrawMode == DRAW_ENDING)) {
Radio_Draw();
if (gShowHud) {
HUD_Draw();
HUD_EdgeArrows_Update();
}
func_hud_8008DE68();
HUD_DrawBossHealth();
}
} else {
for (i = 0; i < gCamCount; i++) {
if (gPlayer[i].timer_224 != 0) {
if (gPlayer[i].dmgEffectTimer != 0) {
Graphics_FillRectangle(&gMasterDisp, sVsCameraULx[i], sVsCameraULy[i], sVsCameraLRx[i],
sVsCameraLRy[i], D_ctx_80178348, D_ctx_80178350, D_ctx_80178354,
D_ctx_80178340);
spBB = 1;
sVsCameraLRy[i], gFillScreenRed, gFillScreenGreen, gFillScreenBlue,
gFillScreenAlpha);
partialFill = true;
} else {
Graphics_FillRectangle(&gMasterDisp, sVsCameraULx[i], sVsCameraULy[i], sVsCameraLRx[i],
sVsCameraLRy[i], D_ctx_80178390[i], D_ctx_801783A0[i], D_ctx_801783B0[i],
D_ctx_80178380[i]);
sVsCameraLRy[i], gPlayerGlareReds[i], gPlayerGlareGreens[i],
gPlayerGlareBlues[i], gPlayerGlareAlphas[i]);
}
}
}
func_bg_80040CDC();
func_hud_8008865C();
func_360_8002E548();
Background_dummy_80040CDC();
HUD_DrawStatusScreens();
AllRange_DrawCountdown();
if ((gGameState == GSTATE_PLAY) && gVersusMode) {
func_versus_800C1ED4();
Versus_Draw();
}
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);
Wipe_Draw(WIPE_CIRCULAR, gCircleWipeFrame);
if (!partialFill) {
Graphics_FillRectangle(&gMasterDisp, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, gFillScreenRed,
gFillScreenGreen, gFillScreenBlue, gFillScreenAlpha);
}
func_80016A50();
Audio_dummy_80016A50();
#if MODS_RAM_MOD == 1
RamMod_Update();
#endif
#if MODS_FPS_COUNTER == 1
Play_RenderFps();
#endif
#if MODS_SPAWNER == 1
Spawner();
#endif
}
}
Actor* func_game_800A3608(ObjectId objId) {
Actor* actor = gActors;
#if MODS_FPS_COUNTER == 1
#include "../mods/fpscounter.c"
#endif
#if MODS_RAM_MOD == 1
#include "../mods/object_ram.c"
#endif
#if MODS_SPAWNER == 1
#include "../mods/spawner.c"
#endif
Actor* Game_SpawnActor(ObjectId objId) {
Actor* actor = &gActors[0];
s32 i;
for (i = 0; i < ARRAY_COUNT(gActors); i++, actor++) {
+2102 -2084
View File
File diff suppressed because it is too large Load Diff
+73 -75
View File
@@ -1,13 +1,11 @@
#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 = {
Scene sCurrentScene = {
NO_OVERLAY,
{ /* 0x1 */ NO_SEGMENT,
/* 0x2 */ NO_SEGMENT,
@@ -26,16 +24,16 @@ OverlayInit sCurrentOverlay = {
/* 0xF */ NO_SEGMENT },
};
void Overlay_LoadSegment(void* vRomAddress, void* dest, ptrdiff_t size) {
void Load_RomFile(void* vRomAddress, void* dest, ptrdiff_t size) {
s32 i;
Lib_FillScreen(true);
sFillTimer = 3;
D_game_80161A39 = true;
gGameStandby = true;
}
u8 Overlay_Init(OverlayInit* ovlInit) {
u8 Load_SceneFiles(Scene* scene) {
sCurrentOverlay = *ovlInit;
sCurrentScene = *scene;
return true;
// u8* ramPtr = SEGMENT_VRAM_START(ovl_i1);
@@ -85,109 +83,109 @@ u8 Overlay_Init(OverlayInit* ovlInit) {
// return changeOvl;
}
u8 Overlay_Load(u8 ovlSetup, u8 ovlStage) {
u8 changeOvl;
u8 Load_SceneSetup(u8 sceneId, u8 sceneSetup) {
u8 changeScene;
switch (ovlSetup) {
case OVL_SETUP_TITLE:
changeOvl = Overlay_Init(&sOvlmenu_Title[ovlStage]);
if (changeOvl == true) {
Audio_SetAudioSpec(0, 0x16);
switch (sceneId) {
case SCENE_TITLE:
changeScene = Load_SceneFiles(&sOvlmenu_Title[sceneSetup]);
if (changeScene == true) {
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_22);
}
break;
case OVL_SETUP_MENU:
changeOvl = Overlay_Init(&sOvlmenu_Option[ovlStage]);
case SCENE_MENU:
changeScene = Load_SceneFiles(&sOvlmenu_Option[sceneSetup]);
break;
case OVL_SETUP_MAP:
changeOvl = Overlay_Init(&sOvlmenu_Map[ovlStage]);
case SCENE_MAP:
changeScene = Load_SceneFiles(&sOvlmenu_Map[sceneSetup]);
break;
case OVL_SETUP_GAME_OVER:
changeOvl = Overlay_Init(&sOvlmenu_GameOver[ovlStage]);
case SCENE_GAME_OVER:
changeScene = Load_SceneFiles(&sOvlmenu_GameOver[sceneSetup]);
break;
case OVL_SETUP_CORNERIA:
changeOvl = Overlay_Init(&sOvli1_Corneria[ovlStage]);
case SCENE_CORNERIA:
changeScene = Load_SceneFiles(&sOvli1_Corneria[sceneSetup]);
break;
case OVL_SETUP_METEO:
changeOvl = Overlay_Init(&sOvli2_Meteo[ovlStage]);
case SCENE_METEO:
changeScene = Load_SceneFiles(&sOvli2_Meteo[sceneSetup]);
break;
case OVL_SETUP_TITANIA:
changeOvl = Overlay_Init(&sOvli5_Titania[ovlStage]);
case SCENE_TITANIA:
changeScene = Load_SceneFiles(&sOvli5_Titania[sceneSetup]);
break;
case OVL_SETUP_SECTOR_X:
changeOvl = Overlay_Init(&sOvli2_SectorX[ovlStage]);
case SCENE_SECTOR_X:
changeScene = Load_SceneFiles(&sOvli2_SectorX[sceneSetup]);
break;
case OVL_SETUP_SECTOR_Z:
changeOvl = Overlay_Init(&sOvli4_SectorZ[ovlStage]);
case SCENE_SECTOR_Z:
changeScene = Load_SceneFiles(&sOvli4_SectorZ[sceneSetup]);
break;
case OVL_SETUP_AQUAS:
changeOvl = Overlay_Init(&sOvli3_Aquas[ovlStage]);
case SCENE_AQUAS:
changeScene = Load_SceneFiles(&sOvli3_Aquas[sceneSetup]);
break;
case OVL_SETUP_AREA_6:
changeOvl = Overlay_Init(&sOvli3_Area6[ovlStage]);
case SCENE_AREA_6:
changeScene = Load_SceneFiles(&sOvli3_Area6[sceneSetup]);
break;
case OVL_SETUP_FORTUNA:
changeOvl = Overlay_Init(&sOvli4_Fortuna[ovlStage]);
case SCENE_FORTUNA:
changeScene = Load_SceneFiles(&sOvli4_Fortuna[sceneSetup]);
break;
case OVL_SETUP_UNK_4:
changeOvl = Overlay_Init(&sOvli3_Unk4[ovlStage]);
case SCENE_UNK_4:
changeScene = Load_SceneFiles(&sOvli3_Unk4[sceneSetup]);
break;
case OVL_SETUP_SECTOR_Y:
changeOvl = Overlay_Init(&sOvli6_SectorY[ovlStage]);
case SCENE_SECTOR_Y:
changeScene = Load_SceneFiles(&sOvli6_SectorY[sceneSetup]);
break;
case OVL_SETUP_SOLAR:
changeOvl = Overlay_Init(&sOvli3_Solar[ovlStage]);
case SCENE_SOLAR:
changeScene = Load_SceneFiles(&sOvli3_Solar[sceneSetup]);
break;
case OVL_SETUP_ZONESS:
changeOvl = Overlay_Init(&sOvli3_Zoness[ovlStage]);
case SCENE_ZONESS:
changeScene = Load_SceneFiles(&sOvli3_Zoness[sceneSetup]);
break;
case OVL_SETUP_VENOM_ANDROSS:
changeOvl = Overlay_Init(&sOvli6_Andross[ovlStage]);
case SCENE_VENOM_ANDROSS:
changeScene = Load_SceneFiles(&sOvli6_Andross[sceneSetup]);
break;
case OVL_SETUP_TRAINING:
changeOvl = Overlay_Init(&sOvli1_Training[ovlStage]);
case SCENE_TRAINING:
changeScene = Load_SceneFiles(&sOvli1_Training[sceneSetup]);
break;
case OVL_SETUP_VENOM_1:
changeOvl = Overlay_Init(&sOvli1_Venom1[ovlStage]);
case SCENE_VENOM_1:
changeScene = Load_SceneFiles(&sOvli1_Venom1[sceneSetup]);
break;
case OVL_SETUP_VENOM_2:
changeOvl = Overlay_Init(&sOvli6_Venom2[ovlStage]);
case SCENE_VENOM_2:
changeScene = Load_SceneFiles(&sOvli6_Venom2[sceneSetup]);
break;
case OVL_SETUP_20:
changeOvl = Overlay_Init(&sOvli2_Setup20[ovlStage]);
case SCENE_20:
changeScene = Load_SceneFiles(&sOvli2_Setup20[sceneSetup]);
break;
case OVL_SETUP_BOLSE:
changeOvl = Overlay_Init(&sOvli4_Bolse[ovlStage]);
case SCENE_BOLSE:
changeScene = Load_SceneFiles(&sOvli4_Bolse[sceneSetup]);
break;
case OVL_SETUP_KATINA:
changeOvl = Overlay_Init(&sOvli4_Katina[ovlStage]);
case SCENE_KATINA:
changeScene = Load_SceneFiles(&sOvli4_Katina[sceneSetup]);
break;
case OVL_SETUP_MACBETH:
changeOvl = Overlay_Init(&sOvli5_Macbeth[ovlStage]);
case SCENE_MACBETH:
changeScene = Load_SceneFiles(&sOvli5_Macbeth[sceneSetup]);
break;
case OVL_SETUP_VERSUS:
changeOvl = Overlay_Init(&sOvli2_Versus[ovlStage]);
if (changeOvl == true) {
// Audio_SetAudioSpec(3, 0x310);
case SCENE_VERSUS:
changeScene = Load_SceneFiles(&sOvli2_Versus[sceneSetup]);
if (changeScene == true) {
// AUDIO_SET_SPEC_ALT(SFXCHAN_3, AUDIOSPEC_16);
}
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);
case SCENE_LOGO:
changeScene = Load_SceneFiles(&sNoOvl_Logo[sceneSetup]); // Logo does not load an overlay file
if (changeScene == true) {
// AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_MA);
}
break;
case OVL_SETUP_CREDITS:
changeOvl = Overlay_Init(&sOvlending_Ending[ovlStage]);
case SCENE_CREDITS:
changeScene = Load_SceneFiles(&sOvlending_Ending[sceneSetup]);
break;
default:
(void) "DMA MODE ERROR %d\n";
changeOvl = false;
PRINTF("DMA MODE ERROR %d\n");
changeScene = false;
break;
}
return changeOvl;
return changeScene;
}
void Overlay_InitDma(void) {
void Load_InitDmaAndMsg(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));
// Load_RomFile(SEGMENT_ROM_START(ast_radio), SEGMENT_VRAM_START(ast_radio), SEGMENT_ROM_SIZE(ast_radio));
}
+70 -70
View File
@@ -16,7 +16,7 @@
#define ROM_SEGMENT(file) \
NO_SEGMENT
OverlayInit sNoOvl_Logo[1] = {
Scene sNoOvl_Logo[1] = {
{ NO_OVERLAY,
{ /* 0x1 */ NO_SEGMENT,
/* 0x2 */ NO_SEGMENT,
@@ -35,13 +35,13 @@ OverlayInit sNoOvl_Logo[1] = {
/* 0xF */ ROM_SEGMENT(ast_logo) } },
};
OverlayInit sOvlending_Ending[6] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ NO_SEGMENT,
/* 0x7 */ ROM_SEGMENT(ast_ending),
/* 0x8 */ NO_SEGMENT,
@@ -57,7 +57,7 @@ OverlayInit sOvlending_Ending[6] = {
/* 0x2 */ NO_SEGMENT,
/* 0x3 */ NO_SEGMENT,
/* 0x4 */ NO_SEGMENT,
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_title),
/* 0x7 */ ROM_SEGMENT(ast_ending),
/* 0x8 */ ROM_SEGMENT(ast_ending_award_front),
@@ -73,7 +73,7 @@ OverlayInit sOvlending_Ending[6] = {
/* 0x2 */ NO_SEGMENT,
/* 0x3 */ NO_SEGMENT,
/* 0x4 */ NO_SEGMENT,
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_title),
/* 0x7 */ ROM_SEGMENT(ast_ending),
/* 0x8 */ ROM_SEGMENT(ast_ending_award_back),
@@ -89,7 +89,7 @@ OverlayInit sOvlending_Ending[6] = {
/* 0x2 */ NO_SEGMENT,
/* 0x3 */ NO_SEGMENT,
/* 0x4 */ NO_SEGMENT,
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_title),
/* 0x7 */ ROM_SEGMENT(ast_ending),
/* 0x8 */ ROM_SEGMENT(ast_ending_expert),
@@ -105,7 +105,7 @@ OverlayInit sOvlending_Ending[6] = {
/* 0x2 */ NO_SEGMENT,
/* 0x3 */ NO_SEGMENT,
/* 0x4 */ NO_SEGMENT,
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_title),
/* 0x7 */ ROM_SEGMENT(ast_ending),
/* 0x8 */ NO_SEGMENT,
@@ -121,7 +121,7 @@ OverlayInit sOvlending_Ending[6] = {
/* 0x2 */ NO_SEGMENT,
/* 0x3 */ ROM_SEGMENT(ast_arwing),
/* 0x4 */ NO_SEGMENT,
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ NO_SEGMENT,
/* 0x7 */ ROM_SEGMENT(ast_ending),
/* 0x8 */ ROM_SEGMENT(ast_ending_expert),
@@ -134,13 +134,13 @@ OverlayInit sOvlending_Ending[6] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvlmenu_Title[1] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_title),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -153,13 +153,13 @@ OverlayInit sOvlmenu_Title[1] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvlmenu_Option[1] = {
Scene sOvlmenu_Option[1] = {
{ OVERLAY_OFFSETS(ovl_menu),
{ /* 0x1 */ NO_SEGMENT,
/* 0x2 */ NO_SEGMENT,
/* 0x3 */ NO_SEGMENT,
/* 0x4 */ NO_SEGMENT,
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_map),
/* 0x7 */ ROM_SEGMENT(ast_vs_menu),
/* 0x8 */ ROM_SEGMENT(ast_option),
@@ -172,13 +172,13 @@ OverlayInit sOvlmenu_Option[1] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvlmenu_Map[1] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_map),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -191,13 +191,13 @@ OverlayInit sOvlmenu_Map[1] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvlmenu_GameOver[1] = {
Scene sOvlmenu_GameOver[1] = {
{ OVERLAY_OFFSETS(ovl_menu),
{ /* 0x1 */ NO_SEGMENT,
/* 0x2 */ NO_SEGMENT,
/* 0x3 */ NO_SEGMENT,
/* 0x4 */ NO_SEGMENT,
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ NO_SEGMENT,
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -210,13 +210,13 @@ OverlayInit sOvlmenu_GameOver[1] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli1_Corneria[1] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_corneria),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -229,13 +229,13 @@ OverlayInit sOvli1_Corneria[1] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli2_Meteo[2] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_meteo),
/* 0x7 */ ROM_SEGMENT(ast_warp_zone),
/* 0x8 */ NO_SEGMENT,
@@ -251,7 +251,7 @@ OverlayInit sOvli2_Meteo[2] = {
/* 0x2 */ ROM_SEGMENT(ast_bg_space),
/* 0x3 */ ROM_SEGMENT(ast_arwing),
/* 0x4 */ ROM_SEGMENT(ast_enmy_space),
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_meteo),
/* 0x7 */ ROM_SEGMENT(ast_warp_zone),
/* 0x8 */ NO_SEGMENT,
@@ -264,13 +264,13 @@ OverlayInit sOvli2_Meteo[2] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli5_Titania[6] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_titania),
/* 0x7 */ ROM_SEGMENT(ast_7_ti_1),
/* 0x8 */ NO_SEGMENT,
@@ -286,7 +286,7 @@ OverlayInit sOvli5_Titania[6] = {
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
/* 0x3 */ ROM_SEGMENT(ast_landmaster),
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_titania),
/* 0x7 */ ROM_SEGMENT(ast_7_ti_2),
/* 0x8 */ NO_SEGMENT,
@@ -302,7 +302,7 @@ OverlayInit sOvli5_Titania[6] = {
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
/* 0x3 */ ROM_SEGMENT(ast_landmaster),
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_titania),
/* 0x7 */ ROM_SEGMENT(ast_7_ti_2),
/* 0x8 */ ROM_SEGMENT(ast_8_ti),
@@ -318,7 +318,7 @@ OverlayInit sOvli5_Titania[6] = {
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
/* 0x3 */ ROM_SEGMENT(ast_landmaster),
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_titania),
/* 0x7 */ ROM_SEGMENT(ast_7_ti_2),
/* 0x8 */ ROM_SEGMENT(ast_8_ti),
@@ -334,7 +334,7 @@ OverlayInit sOvli5_Titania[6] = {
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
/* 0x3 */ ROM_SEGMENT(ast_landmaster),
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_titania),
/* 0x7 */ ROM_SEGMENT(ast_7_ti_2),
/* 0x8 */ ROM_SEGMENT(ast_8_ti),
@@ -350,7 +350,7 @@ OverlayInit sOvli5_Titania[6] = {
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
/* 0x3 */ ROM_SEGMENT(ast_landmaster),
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_titania),
/* 0x7 */ ROM_SEGMENT(ast_7_ti_2),
/* 0x8 */ ROM_SEGMENT(ast_8_ti),
@@ -363,13 +363,13 @@ OverlayInit sOvli5_Titania[6] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli2_SectorX[2] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_sector_x),
/* 0x7 */ ROM_SEGMENT(ast_warp_zone),
/* 0x8 */ NO_SEGMENT,
@@ -385,7 +385,7 @@ OverlayInit sOvli2_SectorX[2] = {
/* 0x2 */ ROM_SEGMENT(ast_bg_space),
/* 0x3 */ ROM_SEGMENT(ast_arwing),
/* 0x4 */ ROM_SEGMENT(ast_enmy_space),
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_sector_x),
/* 0x7 */ ROM_SEGMENT(ast_warp_zone),
/* 0x8 */ NO_SEGMENT,
@@ -398,13 +398,13 @@ OverlayInit sOvli2_SectorX[2] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli4_SectorZ[1] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_sector_z),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -417,13 +417,13 @@ OverlayInit sOvli4_SectorZ[1] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli3_Aquas[1] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_aquas),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -436,13 +436,13 @@ OverlayInit sOvli3_Aquas[1] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli3_Area6[1] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_area_6),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -455,13 +455,13 @@ OverlayInit sOvli3_Area6[1] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli4_Fortuna[2] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_fortuna),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -477,7 +477,7 @@ OverlayInit sOvli4_Fortuna[2] = {
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
/* 0x3 */ ROM_SEGMENT(ast_arwing),
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_fortuna),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -490,13 +490,13 @@ OverlayInit sOvli4_Fortuna[2] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli3_Unk4[1] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_area_6),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -509,13 +509,13 @@ OverlayInit sOvli3_Unk4[1] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli6_SectorY[1] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_sector_y),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -528,13 +528,13 @@ OverlayInit sOvli6_SectorY[1] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli3_Solar[1] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_solar),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -547,13 +547,13 @@ OverlayInit sOvli3_Solar[1] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli3_Zoness[1] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_zoness),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -566,13 +566,13 @@ OverlayInit sOvli3_Zoness[1] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli1_Venom1[1] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_venom_1),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -585,13 +585,13 @@ OverlayInit sOvli1_Venom1[1] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli6_Andross[1] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_venom_2),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -604,13 +604,13 @@ OverlayInit sOvli6_Andross[1] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli6_Venom2[2] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_venom_2),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -626,7 +626,7 @@ OverlayInit sOvli6_Venom2[2] = {
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
/* 0x3 */ ROM_SEGMENT(ast_arwing),
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_venom_2),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -639,13 +639,13 @@ OverlayInit sOvli6_Venom2[2] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli2_Setup20[1] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_ve1_boss),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -658,13 +658,13 @@ OverlayInit sOvli2_Setup20[1] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli4_Bolse[1] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_bolse),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -677,13 +677,13 @@ OverlayInit sOvli4_Bolse[1] = {
/* 0xF */ ROM_SEGMENT(ast_star_wolf) } },
};
OverlayInit sOvli4_Katina[1] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_katina),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -696,13 +696,13 @@ OverlayInit sOvli4_Katina[1] = {
/* 0xF */ ROM_SEGMENT(ast_star_wolf) } },
};
OverlayInit sOvli5_Macbeth[2] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_macbeth),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -718,7 +718,7 @@ OverlayInit sOvli5_Macbeth[2] = {
/* 0x2 */ ROM_SEGMENT(ast_bg_planet),
/* 0x3 */ ROM_SEGMENT(ast_landmaster),
/* 0x4 */ ROM_SEGMENT(ast_enmy_planet),
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_macbeth),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -731,13 +731,13 @@ OverlayInit sOvli5_Macbeth[2] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sOvli1_Training[1] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ ROM_SEGMENT(ast_training),
/* 0x7 */ NO_SEGMENT,
/* 0x8 */ NO_SEGMENT,
@@ -750,13 +750,13 @@ OverlayInit sOvli1_Training[1] = {
/* 0xF */ ROM_SEGMENT(ast_star_wolf) } },
};
OverlayInit sOvli2_Versus[2] = {
Scene 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),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ NO_SEGMENT,
/* 0x7 */ ROM_SEGMENT(ast_vs_menu),
/* 0x8 */ NO_SEGMENT,
@@ -772,7 +772,7 @@ OverlayInit sOvli2_Versus[2] = {
/* 0x2 */ ROM_SEGMENT(ast_bg_space),
/* 0x3 */ ROM_SEGMENT(ast_versus),
/* 0x4 */ ROM_SEGMENT(ast_enmy_space),
/* 0x5 */ ROM_SEGMENT(ast_font),
/* 0x5 */ ROM_SEGMENT(ast_text),
/* 0x6 */ NO_SEGMENT,
/* 0x7 */ ROM_SEGMENT(ast_vs_menu),
/* 0x8 */ NO_SEGMENT,
@@ -785,7 +785,7 @@ OverlayInit sOvli2_Versus[2] = {
/* 0xF */ NO_SEGMENT } },
};
OverlayInit sUnused_Overlay[1] = {
Scene sOvlUnused_Unk[1] = {
{ OVERLAY_OFFSETS(ovl_unused),
{ /* 0x1 */ NO_SEGMENT,
/* 0x2 */ NO_SEGMENT,
+44 -33
View File
@@ -32,7 +32,7 @@ s32 Message_GetWidth(u16* msgPtr) {
u16* msgChar = LOAD_ASSET(msgPtr);
while (*msgChar != MSGCHAR_END) {
if (*msgChar > 15 || *msgChar == 12) {
if ((*msgChar >= MSGCHAR_CLF) || (*msgChar == MSGCHAR_SPC)) {
width++;
}
msgChar++;
@@ -48,7 +48,7 @@ s32 Message_GetCharCount(u16* msgPtr) {
return 0;
}
while (*msgChar != NULL) {
while (*msgChar != MSGCHAR_END) {
count++;
msgChar++;
}
@@ -56,8 +56,7 @@ s32 Message_GetCharCount(u16* msgPtr) {
}
void Message_DisplayChar(Gfx** gfxPtr, u16 msgChar, s32 xpos, s32 ypos) {
const char* mChar = gTextCharTextures[msgChar >> 2];
gDPLoadTextureBlock_4b((*gfxPtr)++, mChar, G_IM_FMT_CI, 16, 13, msgChar & 3,
gDPLoadTextureBlock_4b((*gfxPtr)++, gTextCharTextures[msgChar >> 2], G_IM_FMT_CI, 16, 13, msgChar % 4U,
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, 64, 0,
@@ -68,13 +67,17 @@ bool Message_DisplayText(Gfx** gfxPtr, u16* msgPtr, s32 xPos, s32 yPos, s32 len)
s32 xChar = xPos;
s32 yChar = yPos;
s32 i;
s32 print = false;
bool print;
msgPtr = LOAD_ASSET(msgPtr);
gDPSetPrimColor((*gfxPtr)++, 0x00, 0x00, 255, 255, 255, 255);
gDPSetTextureLUT((*gfxPtr)++, G_TT_RGBA16);
gDPLoadTLUT((*gfxPtr)++, 64, 256, gTextCharPalettes);
#ifdef AVOID_UB
print = false;
#endif
// 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]) {
@@ -110,7 +113,7 @@ bool Message_DisplayText(Gfx** gfxPtr, u16* msgPtr, s32 xPos, s32 yPos, s32 len)
case MSGCHAR_PRI3:
case MSGCHAR_QSP:
case MSGCHAR_HSP:
case MSGCHAR_NPF:
case MSGCHAR_NXT:
break;
}
}
@@ -118,8 +121,8 @@ bool Message_DisplayText(Gfx** gfxPtr, u16* msgPtr, s32 xPos, s32 yPos, s32 len)
}
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 x = xPos;
s32 y = yPos;
s32 i;
msgPtr = LOAD_ASSET(msgPtr);
@@ -129,24 +132,29 @@ void Message_DisplayScrollingText(Gfx** gfxPtr, u16* msgPtr, s32 xPos, s32 yPos,
for (i = 0; msgPtr[i] != 0 && i < len; i++) {
switch (msgPtr[i]) {
case MSGCHAR_NWL:
var_s2 = xPos;
var_s4 += 15;
x = xPos;
y += 15;
break;
case MSGCHAR_QSP:
var_s2 += 2;
x += 2;
break;
case MSGCHAR_HSP:
var_s2 += 3;
x += 3;
break;
case MSGCHAR_SPC:
var_s2 += 7;
x += 7;
break;
default:
if ((yRangeLo < var_s4) && (var_s4 < yRangeHi)) {
Message_DisplayChar(gfxPtr, msgPtr[i], var_s2, var_s4);
if ((yRangeLo < y) && (y < yRangeHi)) {
Message_DisplayChar(gfxPtr, msgPtr[i], x, y);
}
var_s2 += 7;
x += 7;
break;
case MSGCHAR_NP2:
case MSGCHAR_NP3:
case MSGCHAR_NP4:
@@ -157,7 +165,7 @@ void Message_DisplayScrollingText(Gfx** gfxPtr, u16* msgPtr, s32 xPos, s32 yPos,
case MSGCHAR_PRI1:
case MSGCHAR_PRI2:
case MSGCHAR_PRI3:
case MSGCHAR_NPF:
case MSGCHAR_NXT:
break;
}
}
@@ -165,28 +173,31 @@ void Message_DisplayScrollingText(Gfx** gfxPtr, u16* msgPtr, s32 xPos, s32 yPos,
bool Message_IsPrintingChar(u16* msgPtr, s32 charPos) {
s32 i;
s32 print;
bool print;
msgPtr = LOAD_ASSET(msgPtr);
#ifdef AVOID_UB
print = false;
#endif
// 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:
case MSGCHAR_NWL:
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_SPC:
case MSGCHAR_QSP:
case MSGCHAR_HSP:
case MSGCHAR_NXT:
break;
default:
print = true;
@@ -1,45 +1,52 @@
#include "global.h"
void func_800A3CA0(void) {
/*
* File: fox_pause.c
* System: Pause
* Description: Some unused pause code.
*/
void func_pause_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_LookAt(gGfxMatrix, gCsCamEyeX, gCsCamEyeY, gCsCamEyeZ, gCsCamAtX, gCsCamAtY, gCsCamAtZ, 0.0f, 1.0f, 0.0f,
MTXF_APPLY);
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -200.0f, MTXF_APPLY);
Matrix_RotateY(gGfxMatrix, gControllerPress[gPlayerNum].stick_x * M_DTOR, MTXF_APPLY);
Matrix_RotateX(gGfxMatrix, gControllerPress[gPlayerNum].stick_y * M_DTOR, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
RCP_SetupDL_23();
// Missing DList
Matrix_Pop(&gGfxMatrix);
}
void func_800A3E00(void) {
void func_pause_800A3E00(void) {
switch (D_ctx_80177868) {
case 0:
if (D_Timer_8017783C == 0) {
if (gNextGameStateTimer == 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;
gDrawMode = DRAW_UNK_7;
gCsCamEyeX = gCsCamEyeY = gCsCamEyeZ = gCsCamAtX = gCsCamAtY = 0.0f;
gCsCamAtZ = -10.0f;
break;
case 2:
if ((gControllerPress[0].button & START_BUTTON) || (gControllerPress[1].button & START_BUTTON)) {
func_8001D638(0);
Audio_PlayPauseSfx(0);
D_ctx_80177868 = 3;
gDrawMode = DRAWMODE_0;
func_play_800A5844();
D_Timer_8017783C = 0;
gDrawMode = DRAW_NONE;
Play_Setup();
gNextGameStateTimer = 0;
}
break;
case 3:
if (D_Timer_8017783C == 0) {
D_ctx_80177854 = 2;
if (gNextGameStateTimer == 0) {
gPlayState = PLAY_UPDATE;
}
break;
}
+3469 -2876
View File
File diff suppressed because it is too large Load Diff
+383 -370
View File
File diff suppressed because it is too large Load Diff
-1
View File
@@ -1,5 +1,4 @@
#include "global.h"
#include "fox_rcp_setup.c"
u8 D_80178580[0x190];
+88
View File
@@ -2,6 +2,7 @@
Gfx gRcpSetupDLs[][9] = {
{
/* SETUPDL_0 */
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),
@@ -15,6 +16,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_1 */
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),
@@ -28,6 +30,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_2 */
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),
@@ -41,6 +44,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_3 */
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),
@@ -54,6 +58,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_4 */
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),
@@ -67,6 +72,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_5 */
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),
@@ -80,6 +86,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_6 */
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),
@@ -93,6 +100,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_7 */
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),
@@ -106,6 +114,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_8 */
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),
@@ -119,6 +128,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_9 */
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),
@@ -132,6 +142,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_10 */
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),
@@ -146,6 +157,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_11 */
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),
@@ -159,6 +171,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_12 */
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),
@@ -172,6 +185,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_13 */
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),
@@ -185,6 +199,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_14 */
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),
@@ -198,6 +213,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_15 */
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),
@@ -211,6 +227,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_16 */
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),
@@ -224,6 +241,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_17 */
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),
@@ -237,6 +255,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_18 */
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),
@@ -250,6 +269,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_19 */
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),
@@ -263,6 +283,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_20 */
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),
@@ -276,6 +297,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_21 */
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),
@@ -289,6 +311,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_22 */
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),
@@ -302,6 +325,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_23 */
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),
@@ -315,6 +339,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_24 */
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),
@@ -328,6 +353,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_25 */
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),
@@ -341,6 +367,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_26 */
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),
@@ -357,6 +384,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_27 */
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),
@@ -370,6 +398,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_28 */
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),
@@ -384,6 +413,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_29 */
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),
@@ -397,6 +427,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_30 */
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),
@@ -410,6 +441,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_31 */
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),
@@ -424,6 +456,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_32 */
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),
@@ -437,6 +470,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_33 */
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),
@@ -450,6 +484,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_34 */
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),
@@ -463,6 +498,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_35 */
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),
@@ -477,6 +513,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_36 */
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),
@@ -490,6 +527,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_37 */
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),
@@ -503,6 +541,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_38 */
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),
@@ -517,6 +556,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_39 */
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),
@@ -530,6 +570,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_40 */
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),
@@ -543,6 +584,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_41 */
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),
@@ -556,6 +598,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_42 */
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),
@@ -569,6 +612,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_43 */
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),
@@ -582,6 +626,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_44 */
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),
@@ -595,6 +640,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_45 */
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),
@@ -608,6 +654,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_46 */
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),
@@ -621,6 +668,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_47 */
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),
@@ -634,6 +682,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_48 */
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),
@@ -647,6 +696,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_49 */
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),
@@ -661,6 +711,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_50 */
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),
@@ -674,6 +725,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_51 */
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),
@@ -689,6 +741,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_52 */
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),
@@ -702,6 +755,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_53 */
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),
@@ -715,6 +769,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_54 */
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),
@@ -728,6 +783,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_55 */
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),
@@ -741,6 +797,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_56 */
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),
@@ -754,6 +811,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_57 */
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),
@@ -767,6 +825,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_58 */
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),
@@ -780,6 +839,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_59 */
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),
@@ -793,6 +853,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_60 */
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),
@@ -806,6 +867,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_61 */
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),
@@ -819,6 +881,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_62 */
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),
@@ -832,6 +895,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_63 */
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),
@@ -846,6 +910,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_64 */
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),
@@ -859,6 +924,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_65 */
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),
@@ -872,6 +938,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_66 */
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),
@@ -885,6 +952,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_67 */
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),
@@ -899,6 +967,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_68 */
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),
@@ -913,6 +982,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_69 */
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),
@@ -927,6 +997,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_70 */
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),
@@ -943,6 +1014,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_71 */
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),
@@ -958,6 +1030,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_72 */
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),
@@ -975,6 +1048,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_73 */
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),
@@ -988,6 +1062,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_74 */
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),
@@ -1001,6 +1076,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_75 */
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),
@@ -1014,6 +1090,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_76 */
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),
@@ -1027,6 +1104,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_77 */
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),
@@ -1041,6 +1119,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_78 */
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),
@@ -1054,6 +1133,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_79 */
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),
@@ -1067,6 +1147,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_80 */
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),
@@ -1080,6 +1161,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_81 */
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),
@@ -1093,6 +1175,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_82 */
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),
@@ -1109,6 +1192,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_83 */
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),
@@ -1122,6 +1206,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_84 */
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),
@@ -1135,6 +1220,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_85 */
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),
@@ -1148,6 +1234,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_86 */
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),
@@ -1164,6 +1251,7 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
/* SETUPDL_87 */
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),
+25 -15
View File
@@ -1,7 +1,7 @@
#include "global.h"
void Graphics_NMIWipe(void) {
static s16 D_800D4A80 = 0;
static s16 sWipeBarLength = 0;
s32 i;
gViewport->vp.vscale[0] = SCREEN_WIDTH * 2;
@@ -14,24 +14,34 @@ void Graphics_NMIWipe(void) {
gViewport->vp.vtrans[3] = 0;
gSPViewport(gMasterDisp++, gViewport);
gDPPipeSync(gMasterDisp++);
gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, 8, 8, SCREEN_WIDTH - 8, SCREEN_HEIGHT - 8);
gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN,
SCREEN_HEIGHT - SCREEN_MARGIN);
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) {
Graphics_FillRectangle(&gMasterDisp, SCREEN_MARGIN, SCREEN_MARGIN,
MIN(SCREEN_WIDTH - 2 * SCREEN_MARGIN, sWipeBarLength) + SCREEN_MARGIN,
SCREEN_HEIGHT / 4 + SCREEN_MARGIN / 2, 0, 0, 0, 255);
Graphics_FillRectangle(
&gMasterDisp, SCREEN_WIDTH - SCREEN_MARGIN - MIN(SCREEN_WIDTH - 2 * SCREEN_MARGIN, sWipeBarLength),
SCREEN_HEIGHT / 4 + SCREEN_MARGIN / 2, SCREEN_WIDTH - SCREEN_MARGIN, SCREEN_HEIGHT / 2, 0, 0, 0, 255);
Graphics_FillRectangle(&gMasterDisp, SCREEN_MARGIN, SCREEN_HEIGHT / 2,
MIN(SCREEN_WIDTH - 2 * SCREEN_MARGIN, sWipeBarLength) + SCREEN_MARGIN,
3 * SCREEN_HEIGHT / 4 - SCREEN_MARGIN / 2, 0, 0, 0, 255);
Graphics_FillRectangle(&gMasterDisp,
SCREEN_WIDTH - SCREEN_MARGIN - MIN(SCREEN_WIDTH - 2 * SCREEN_MARGIN, sWipeBarLength),
3 * SCREEN_HEIGHT / 4 - SCREEN_MARGIN / 2, SCREEN_WIDTH - SCREEN_MARGIN,
SCREEN_HEIGHT - SCREEN_MARGIN, 0, 0, 0, 255);
if (sWipeBarLength == 0) {
AudioThread_PreNMIReset();
}
D_800D4A80 += 45;
if (D_800D4A80 >= 485) {
osViBlack(1);
gStopTasks = 1;
sWipeBarLength += SCREEN_WIDTH / 7;
if (sWipeBarLength >= SCREEN_WIDTH * 85 / 8 / 7) { // Why 85 / 8 == 3400 / 320 == 10.625? Has to do with NMI timing?
osViBlack(true);
gStopTasks = true;
}
for (i = 0; i < MAXCONTROLLERS; i++) {
gControllerRumble[i] = 0;
D_80137E84[i] = 0;
gControllerRumbleEnabled[i] = 0;
gControllerRumbleFlags[i] = 0;
}
}
+9 -4
View File
@@ -56,18 +56,23 @@ s32 Save_Read(void) {
gSaveFile = gSaveIOBuffer;
if (gSaveFile.save.checksum == Save_Checksum(&gSaveFile.save)) {
(void) "EEPROM ROM[0] 正常\n";
PRINTF("EEPROM ROM[0] 正常\n");
return 0;
}
#ifdef AVOID_UB
for (i = 0; i < sizeof(SaveData); i++) {
#else
for (i = 0; i <= sizeof(SaveData); i++) { // should be <, but gets overwritten immediately.
#endif
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";
PRINTF("EEPROM ROM[1 正常\n");
return 0;
} else {
PRINTF("EEPROM ROM[0] & ROM[1] 異常\n");
return -1;
}
(void) "EEPROM ROM[0] & ROM[1] 異常\n";
return -1;
}
+7 -7
View File
@@ -9,7 +9,7 @@ Vtx D_Vtx_800D94A0[] = {
};
Gfx D_Gfx_800D94D0[] = {
// used in fox_ti for the triangular light rays before firing his lazor
// used in fox_ti for the triangular light rays before firing his laser
gsSPVertex(D_Vtx_800D94A0, 3, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSPEndDisplayList(),
@@ -42,7 +42,7 @@ Vtx D_Vtx_800D9658[] = {
};
Gfx D_Gfx_800D9688[] = {
// used fox_fade for unused spinning fade
// used in fox_fade for unused spinning fade
gsSPVertex(D_Vtx_800D9658, 3, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSPEndDisplayList(),
@@ -208,7 +208,7 @@ u16 D_Tex_800D99F8[1024] = {
0xFFFF, 0xFFFF,
};
u16 D_Tex_800DA1F8[1024] = {
u16 aCoHighwayShadowTex[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,
@@ -345,19 +345,19 @@ Gfx D_Gfx_800DAB80[] = {
gsSPEndDisplayList(),
};
Vtx D_Vtx_800DABE0[] = {
Vtx aCoHighwayShadowVTX[] = {
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[] = {
Gfx aCoHighwayShadowDL[] = {
// 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),
gsDPLoadTileTexture(aCoHighwayShadowTex, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8),
gsSPVertex(aCoHighwayShadowVTX, 4, 0),
gsSP1Triangle(0, 2, 1, 0),
gsSP1Triangle(0, 3, 2, 0),
gsSPEndDisplayList(),
+176 -147
View File
@@ -1,5 +1,5 @@
#include "global.h"
#include "assets/ast_font.h"
#include "assets/ast_text.h"
char D_801619A0[100];
@@ -25,49 +25,49 @@ s32 Graphics_Printf(const char* fmt, ...) {
return 0;
}
void Texture_Scroll(u16* texture, s32 width, s32 height, u8 mode) {
void Lib_Texture_Scroll(u16* texture, s32 width, s32 height, u8 mode) {
u16* pixel = SEGMENTED_TO_VIRTUAL(texture);
u16 tempPxl;
s32 u;
s32 v;
return;
// LTodo: [HD-Textures] This is broken
u16* temp_t0 = LOAD_ASSET(texture);
u16 temp_a3;
s32 var_a0;
s32 var_t4;
switch (mode) {
case 0:
for (var_a0 = 0; var_a0 < width; var_a0++) {
temp_a3 = temp_t0[var_a0];
for (var_t4 = 1; var_t4 < height; var_t4++) {
temp_t0[(var_t4 - 1) * width + var_a0] = temp_t0[(var_t4) *width + var_a0];
for (u = 0; u < width; u++) {
tempPxl = pixel[u];
for (v = 1; v < height; v++) {
pixel[(v - 1) * width + u] = pixel[(v) *width + u];
}
temp_t0[(height - 1) * width + var_a0] = temp_a3;
pixel[(height - 1) * width + u] = tempPxl;
}
break;
case 1:
for (var_a0 = 0; var_a0 < width; var_a0++) {
temp_a3 = temp_t0[(height - 1) * width + var_a0];
for (var_t4 = height - 2; var_t4 >= 0; var_t4--) {
temp_t0[(var_t4 + 1) * width + var_a0] = temp_t0[(var_t4) *width + var_a0];
for (u = 0; u < width; u++) {
tempPxl = pixel[(height - 1) * width + u];
for (v = height - 2; v >= 0; v--) {
pixel[(v + 1) * width + u] = pixel[(v) *width + u];
}
temp_t0[var_a0] = temp_a3;
pixel[u] = tempPxl;
}
break;
case 2:
for (var_t4 = 0; var_t4 < height; var_t4++) {
temp_a3 = temp_t0[var_t4 * width + width - 1];
for (var_a0 = width - 2; var_a0 >= 0; var_a0--) {
temp_t0[var_t4 * width + var_a0 + 1] = temp_t0[var_t4 * width + var_a0];
for (v = 0; v < height; v++) {
tempPxl = pixel[v * width + width - 1];
for (u = width - 2; u >= 0; u--) {
pixel[v * width + u + 1] = pixel[v * width + u];
}
temp_t0[var_t4 * width] = temp_a3;
pixel[v * width] = tempPxl;
}
break;
case 3:
for (var_t4 = 0; var_t4 < height; var_t4++) {
temp_a3 = temp_t0[var_t4 * width];
for (var_a0 = 1; var_a0 < width; var_a0++) {
temp_t0[var_t4 * width + var_a0 - 1] = temp_t0[var_t4 * width + var_a0];
for (v = 0; v < height; v++) {
tempPxl = pixel[v * width];
for (u = 1; u < width; u++) {
pixel[v * width + u - 1] = pixel[v * width + u];
}
temp_t0[var_t4 * width + width - 1] = temp_a3;
pixel[v * width + width - 1] = tempPxl;
}
break;
}
@@ -76,59 +76,64 @@ void Texture_Scroll(u16* texture, s32 width, s32 height, u8 mode) {
gSPInvalidateTexCache(gMasterDisp++, NULL);
}
void Texture_Mottle(u16* dst, u16* src, u8 mode) {
void Lib_Texture_Mottle(u16* dst, u16* src, u8 mode) {
s32 u;
s32 v;
u8* dst8;
u8* src8;
s32 offset;
return;
s32 var_v1;
s32 var_s3;
u8* var_s0_2;
u8* var_s4_2;
s32 temp_ft3;
// LTodo: [HD-Textures] This is broken
dst = LOAD_ASSET(dst);
src = LOAD_ASSET(src);
switch (mode) {
case 2:
for (var_s3 = 0; var_s3 < 32 * 32; var_s3 += 32) {
temp_ft3 = 3.0f * __sinf((s32) (((var_s3 / 32) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 32));
for (var_v1 = 0; var_v1 < 32; var_v1++) {
dst[var_s3 + (temp_ft3 + var_v1) % 32U] = src[var_s3 + var_v1];
for (v = 0; v < 32 * 32; v += 32) {
offset = 3.0f * __sinf((s32) (((v / 32) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 32));
for (u = 0; u < 32; u++) {
dst[v + (offset + u) % 32U] = src[v + u];
}
}
break;
case 3:
for (var_s3 = 0; var_s3 < 22 * 64; var_s3 += 64) {
temp_ft3 = __sinf((s32) (((var_s3 / 64) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 8));
for (var_v1 = 0; var_v1 < 64; var_v1++) {
dst[var_s3 + (temp_ft3 + var_v1) % 64U] = src[var_s3 + var_v1];
for (v = 0; v < 22 * 64; v += 64) { // should be 32 * 64?
offset = __sinf((s32) (((v / 64) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 8));
for (u = 0; u < 64; u++) {
dst[v + (offset + u) % 64U] = src[v + u];
}
}
break;
case 1:
for (var_s3 = 0; var_s3 < 16 * 16; var_s3 += 16) {
temp_ft3 = 2.0f * __sinf((s32) (((var_s3 / 16) + (gGameFrameCount / 2)) % 16U) * (2 * M_PI / 16));
for (var_v1 = 0; var_v1 < 16; var_v1++) {
dst[var_s3 + (temp_ft3 + var_v1) % 16U] = src[var_s3 + var_v1];
for (v = 0; v < 16 * 16; v += 16) {
offset = 2.0f * __sinf((s32) (((v / 16) + (gGameFrameCount / 2)) % 16U) * (2 * M_PI / 16));
for (u = 0; u < 16; u++) {
dst[v + (offset + u) % 16U] = src[v + u];
}
}
break;
case 0:
for (var_s3 = 0; var_s3 < 32 * 32; var_s3 += 32) {
temp_ft3 = 2.0f * __sinf((s32) (((var_s3 / 32) + (gGameFrameCount / 2)) % 32U) * (2 * M_PI / 32));
for (var_v1 = 0; var_v1 < 32; var_v1++) {
dst[var_s3 + (temp_ft3 + var_v1) % 32U] = src[var_s3 + var_v1];
for (v = 0; v < 32 * 32; v += 32) {
offset = 2.0f * __sinf((s32) (((v / 32) + (gGameFrameCount / 2)) % 32U) * (2 * M_PI / 32));
for (u = 0; u < 32; u++) {
dst[v + (offset + u) % 32U] = src[v + u];
}
}
break;
case 5:
var_s0_2 = (u8*) dst;
var_s4_2 = (u8*) src;
for (var_s3 = 0; var_s3 < 64 * 64; var_s3 += 64) {
temp_ft3 = 4.0f * __sinf((s32) (((var_s3 / 64) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 32));
for (var_v1 = 0; var_v1 < 64; var_v1++) {
var_s0_2[var_s3 + (temp_ft3 + var_v1) % 64U] = var_s4_2[var_s3 + var_v1];
dst8 = (u8*) dst;
src8 = (u8*) src;
for (v = 0; v < 64 * 64; v += 64) {
offset = 4.0f * __sinf((s32) (((v / 64) + (gGameFrameCount / 4)) % 32U) * (2 * M_PI / 32));
for (u = 0; u < 64; u++) {
dst8[v + (offset + u) % 64U] = src8[v + u];
}
}
break;
}
// LTodo: we should only invalidate one texture
@@ -174,18 +179,18 @@ void Animation_DrawLimb(s32 mode, Limb* limb, Limb** skeleton, Vec3f* jointTable
override = overrideLimbDraw(limbIndex - 1, &dList, &trans, &rot, data);
}
if (!override) {
Matrix_Translate(gCalcMatrix, trans.x, trans.y, trans.z, 1);
Matrix_RotateZ(gCalcMatrix, rot.z * M_DTOR, 1);
Matrix_RotateY(gCalcMatrix, rot.y * M_DTOR, 1);
Matrix_RotateX(gCalcMatrix, rot.x * M_DTOR, 1);
Matrix_Translate(gCalcMatrix, trans.x, trans.y, trans.z, MTXF_APPLY);
Matrix_RotateZ(gCalcMatrix, rot.z * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, rot.y * M_DTOR, MTXF_APPLY);
Matrix_RotateX(gCalcMatrix, rot.x * M_DTOR, MTXF_APPLY);
if (dList != NULL) {
if (mode >= 2) {
Matrix_MultVec3f(gCalcMatrix, &origin, &pos);
if (mode != 5) {
func_edisplay_8005F670(&pos);
Display_SetSecondLight(&pos);
}
}
Matrix_Mult(gGfxMatrix, gCalcMatrix, 1);
Matrix_Mult(gGfxMatrix, gCalcMatrix, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, dList);
}
@@ -237,12 +242,12 @@ void Animation_DrawSkeleton(s32 mode, Limb** skeletonSegment, Vec3f* jointTable,
override = overrideLimbDraw(rootIndex - 1, &dList, &baseTrans, &baseRot, data);
}
if (override == 0) {
Matrix_Translate(gCalcMatrix, baseTrans.x, baseTrans.y, baseTrans.z, 1);
Matrix_RotateZ(gCalcMatrix, baseRot.z * M_DTOR, 1);
Matrix_RotateY(gCalcMatrix, baseRot.y * M_DTOR, 1);
Matrix_RotateX(gCalcMatrix, baseRot.x * M_DTOR, 1);
Matrix_Translate(gCalcMatrix, baseTrans.x, baseTrans.y, baseTrans.z, MTXF_APPLY);
Matrix_RotateZ(gCalcMatrix, baseRot.z * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, baseRot.y * M_DTOR, MTXF_APPLY);
Matrix_RotateX(gCalcMatrix, baseRot.x * M_DTOR, MTXF_APPLY);
if (dList != NULL) {
Matrix_Mult(gGfxMatrix, gCalcMatrix, 1);
Matrix_Mult(gGfxMatrix, gCalcMatrix, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, dList);
}
@@ -256,13 +261,13 @@ void Animation_DrawSkeleton(s32 mode, Limb** skeletonSegment, Vec3f* jointTable,
}
Matrix_Pop(&gCalcMatrix);
if (mode >= 2) {
Matrix_Mult(gGfxMatrix, gCalcMatrix, 1);
Matrix_Mult(gGfxMatrix, gCalcMatrix, MTXF_APPLY);
}
}
s16 Animation_GetFrameData(Animation* anim, s32 frame, Vec3f* frameTable) {
Animation* animation = LOAD_ASSET(anim);
u16 var4 = animation->limbCount;
s16 Animation_GetFrameData(Animation* animationSegmemt, s32 frame, Vec3f* frameTable) {
Animation* animation = SEGMENTED_TO_VIRTUAL(animationSegmemt);
u16 limbCount = animation->limbCount;
JointKey* key = SEGMENTED_TO_VIRTUAL(animation->jointKey);
u16* frameData = SEGMENTED_TO_VIRTUAL(animation->frameData);
s32 i;
@@ -276,7 +281,7 @@ s16 Animation_GetFrameData(Animation* anim, s32 frame, Vec3f* frameTable) {
frameTable->z = (s16) temp;
frameTable++, key++;
for (i = 1; i <= var4; i++, key++, frameTable++) {
for (i = 1; i <= limbCount; i++, key++, frameTable++) {
temp = (frame < key->xLen) ? frameData[key->x + frame] : frameData[key->x];
frameTable->x = temp * 360.0f / 65536.0f;
temp = (frame < key->yLen) ? frameData[key->y + frame] : frameData[key->y];
@@ -284,7 +289,7 @@ s16 Animation_GetFrameData(Animation* anim, s32 frame, Vec3f* frameTable) {
temp = (frame < key->zLen) ? frameData[key->z + frame] : frameData[key->z];
frameTable->z = temp * 360.0f / 65536.0f;
}
return var4 + 1;
return limbCount + 1;
}
s32 Animation_GetFrameCount(Animation* anim) {
@@ -372,19 +377,19 @@ void Animation_GetSkeletonBoundingBox(Limb** skeletonSegment, Animation* animati
} else {
var_t6 = frameData[(s16) key[1].z];
}
Matrix_RotateZ(gGfxMatrix, (((s32) var_t6 * 360.0f) / 65536.0f) * M_DTOR, 0);
Matrix_RotateZ(gGfxMatrix, (((s32) var_t6 * 360.0f) / 65536.0f) * M_DTOR, MTXF_NEW);
if (frame < (s16) key[1].yLen) {
var_t6 = frameData[(s16) key[1].y + frame];
} else {
var_t6 = frameData[(s16) key[1].y];
}
Matrix_RotateY(gGfxMatrix, (((s32) var_t6 * 360.0f) / 65536.0f) * M_DTOR, 1);
Matrix_RotateY(gGfxMatrix, (((s32) var_t6 * 360.0f) / 65536.0f) * M_DTOR, MTXF_APPLY);
if (frame < (s16) key[1].xLen) {
var_t6 = frameData[(s16) key[1].x + frame];
} else {
var_t6 = frameData[(s16) key[1].x];
}
Matrix_RotateX(gGfxMatrix, (((s32) var_t6 * 360.0f) / 65536.0f) * M_DTOR, 1);
Matrix_RotateX(gGfxMatrix, (((s32) var_t6 * 360.0f) / 65536.0f) * M_DTOR, MTXF_APPLY);
vtxFound = false;
if (limb->dList != NULL) {
Animation_FindBoundingBox(limb->dList, 8192, min, max, &vtxFound, &vtxCount, &vtxList);
@@ -528,8 +533,8 @@ s32 Math_PursueVec3f(Vec3f* pos, Vec3f* target, Vec3f* rot, f32 stepSize, f32 sc
targetRotX = Math_RadToDeg(-Math_Atan2F(diff.y, sqrtf(SQ(diff.x) + SQ(diff.z))));
Math_SmoothStepToAngle(&rot->y, targetRotY, scaleTurn, maxTurn, 0.0f);
Math_SmoothStepToAngle(&rot->x, targetRotX, scaleTurn, maxTurn, 0.0f);
Matrix_RotateY(&worldTransform, rot->y * M_DTOR, 0);
Matrix_RotateX(&worldTransform, rot->x * M_DTOR, 1);
Matrix_RotateY(&worldTransform, rot->y * M_DTOR, MTXF_NEW);
Matrix_RotateX(&worldTransform, rot->x * M_DTOR, MTXF_APPLY);
localStep.z = stepSize;
Matrix_MultVec3fNoTranslate(&worldTransform, &localStep, &worldStep);
@@ -544,8 +549,8 @@ s32 Math_PursueVec3f(Vec3f* pos, Vec3f* target, Vec3f* rot, f32 stepSize, f32 sc
return (VEC3F_MAG(&diff)) < dist;
}
void TextureRect_4bCI(Gfx** gfxPtr, void* texture, void* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
void Lib_TextureRect_CI4(Gfx** gfxPtr, u8* texture, u16* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
gDPLoadTLUT_pal16((*gfxPtr)++, 0, palette);
gDPLoadTextureBlock_4b((*gfxPtr)++, texture, G_IM_FMT_CI, width, height, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
@@ -554,8 +559,8 @@ void TextureRect_4bCI(Gfx** gfxPtr, void* texture, void* palette, u32 width, u32
(s32) (1.0f / yScale * 1024.0f));
}
void TextureRect_4bCI_Flip(Gfx** gfxPtr, void* texture, void* palette, u32 width, u32 height, f32 xPos, f32 yPos,
f32 xScale, f32 yScale) {
void Lib_TextureRect_CI4_Flip(Gfx** gfxPtr, u8* texture, u16* palette, u32 width, u32 height, f32 xPos, f32 yPos,
f32 xScale, f32 yScale) {
gDPLoadTLUT_pal16((*gfxPtr)++, 0, palette);
gDPLoadTextureBlock_4b((*gfxPtr)++, texture, G_IM_FMT_CI, width, height, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
@@ -564,8 +569,8 @@ void TextureRect_4bCI_Flip(Gfx** gfxPtr, void* texture, void* palette, u32 width
G_TX_RENDERTILE, 0, 0, (s32) (1.0f / xScale * 1024.0f), (s32) (1.0f / yScale * 1024.0f));
}
void TextureRect_4bCI_MirX(Gfx** gfxPtr, void* texture, void* palette, u32 width, u32 height, f32 xPos, f32 yPos,
f32 xScale, f32 yScale) {
void Lib_TextureRect_CI4_MirX(Gfx** gfxPtr, u8* texture, u16* palette, u32 width, u32 height, f32 xPos, f32 yPos,
f32 xScale, f32 yScale) {
gDPLoadTLUT_pal16((*gfxPtr)++, 0, palette);
gDPLoadTextureBlock_4b((*gfxPtr)++, texture, G_IM_FMT_CI, width, height, 0, G_TX_MIRROR | G_TX_WRAP,
G_TX_MIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
@@ -574,8 +579,8 @@ void TextureRect_4bCI_MirX(Gfx** gfxPtr, void* texture, void* palette, u32 width
(u16) (s32) (-1.0f / xScale * 1024.0f), (s32) (1.0f / yScale * 1024.0f));
}
void TextureRect_4bCI_MirY(Gfx** gfxPtr, void* texture, void* palette, u32 width, u32 height, f32 xPos, f32 yPos,
f32 xScale, f32 yScale) {
void Lib_TextureRect_CI4_MirY(Gfx** gfxPtr, u8* texture, u16* palette, u32 width, u32 height, f32 xPos, f32 yPos,
f32 xScale, f32 yScale) {
gDPLoadTLUT_pal16((*gfxPtr)++, 0, palette);
gDPLoadTextureBlock_4b((*gfxPtr)++, texture, G_IM_FMT_CI, width, height, 0, G_TX_MIRROR | G_TX_WRAP,
G_TX_MIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
@@ -584,8 +589,8 @@ void TextureRect_4bCI_MirY(Gfx** gfxPtr, void* texture, void* palette, u32 width
(s32) (1.0f / xScale * 1024.0f), (u16) (s32) (-1.0f / yScale * 1024.0f));
}
void TextureRect_8bCI(Gfx** gfxPtr, void* texture, void* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
void Lib_TextureRect_CI8(Gfx** gfxPtr, u8* texture, u16* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
gDPLoadTLUT_pal256((*gfxPtr)++, palette);
gDPLoadTextureBlock((*gfxPtr)++, texture, G_IM_FMT_CI, G_IM_SIZ_8b, width, height, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
@@ -594,7 +599,7 @@ void TextureRect_8bCI(Gfx** gfxPtr, void* texture, void* palette, u32 width, u32
(s32) (1.0f / yScale * 1024.0f));
}
void TextureRect_16bRGBA(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
void Lib_TextureRect_RGBA16(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
gDPSetTileCustom((*gfxPtr)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, width, height, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
@@ -604,11 +609,11 @@ void TextureRect_16bRGBA(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32
gDPLoadTile((*gfxPtr)++, G_TX_LOADTILE, 0, 0, width - 1 << 2, height - 1 << 2);
gSPTextureRectangle((*gfxPtr)++, (s32) (xPos * 4.0f), (s32) (yPos * 4.0f), (s32) ((xPos + width * xScale) * 4.0f),
(s32) ((yPos + height * yScale) * 4.0f), 0, 0, 0, (s32) (1.0f / xScale * 1024.0f),
(s32) ((yPos + height * yScale) * 4.0f), G_TX_RENDERTILE, 0, 0, (s32) (1.0f / xScale * 1024.0f),
(s32) (1.0f / yScale * 1024.0f));
}
void TextureRect_16bRGBA_MirX(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
void Lib_TextureRect_RGBA16_MirX(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
gDPSetTileCustom((*gfxPtr)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, width, height, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
@@ -622,7 +627,7 @@ void TextureRect_16bRGBA_MirX(Gfx** gfxPtr, void* texture, u32 width, u32 height
(u16) (s32) (-1.0f / xScale * 1024.0f), (s32) (1.0f / yScale * 1024.0f));
}
void TextureRect_8bIA(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale) {
void Lib_TextureRect_IA8(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale) {
gDPSetTileCustom((*gfxPtr)++, G_IM_FMT_IA, G_IM_SIZ_8b, width, height, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
@@ -631,12 +636,12 @@ void TextureRect_8bIA(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 xP
gDPLoadTile((*gfxPtr)++, G_TX_LOADTILE, 0, 0, width - 1 << 2, height - 1 << 2);
gSPTextureRectangle((*gfxPtr)++, (s32) (xPos * 4.0f), (s32) (yPos * 4.0f), (s32) ((xPos + width * xScale) * 4.0f),
(s32) ((yPos + height * yScale) * 4.0f), 0, 0, 0, (s32) (1.0f / xScale * 1024.0f),
(s32) ((yPos + height * yScale) * 4.0f), G_TX_RENDERTILE, 0, 0, (s32) (1.0f / xScale * 1024.0f),
(s32) (1.0f / yScale * 1024.0f));
}
void TextureRect_8bIA_FilpMirX(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
void Lib_TextureRect_IA8_FlipMirX(Gfx** gfxPtr, u8* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
gDPLoadTextureBlock((*gfxPtr)++, texture, G_IM_FMT_IA, G_IM_SIZ_8b, width, height, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
gSPTextureRectangleFlip((*gfxPtr)++, (s32) (xPos * 4.0f), (s32) (yPos * 4.0f),
@@ -645,8 +650,8 @@ void TextureRect_8bIA_FilpMirX(Gfx** gfxPtr, void* texture, u32 width, u32 heigh
(s32) (1.0f / xScale * 1024.0f));
}
void TextureRect_8bIA_FilpMirY(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
void Lib_TextureRect_IA8_FlipMirY(Gfx** gfxPtr, u8* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
gDPLoadTextureBlock((*gfxPtr)++, texture, G_IM_FMT_IA, G_IM_SIZ_8b, width, height, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
gSPTextureRectangleFlip((*gfxPtr)++, (s32) (xPos * 4.0f), (s32) (yPos * 4.0f),
@@ -655,8 +660,8 @@ void TextureRect_8bIA_FilpMirY(Gfx** gfxPtr, void* texture, u32 width, u32 heigh
(u16) (s32) (-1.0f / xScale * 1024.0f));
}
void TextureRect_8bIA_MirX(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
void Lib_TextureRect_IA8_MirX(Gfx** gfxPtr, u8* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
gDPLoadTextureBlock((*gfxPtr)++, texture, G_IM_FMT_IA, G_IM_SIZ_8b, width, height, 0, 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)++, (s32) (xPos * 4.0f), (s32) (yPos * 4.0f), (s32) ((xPos + width * xScale) * 4.0f),
@@ -664,8 +669,8 @@ void TextureRect_8bIA_MirX(Gfx** gfxPtr, void* texture, u32 width, u32 height, f
(u16) (s32) (-1.0f / xScale * 1024.0f), (s32) (1.0f / yScale * 1024.0f));
}
void TextureRect_8bIA_MirY(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
void Lib_TextureRect_IA8_MirY(Gfx** gfxPtr, u8* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
gDPLoadTextureBlock((*gfxPtr)++, texture, G_IM_FMT_IA, G_IM_SIZ_8b, width, height, 0, 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)++, (s32) (xPos * 4.0f), (s32) (yPos * 4.0f), (s32) ((xPos + width * xScale) * 4.0f),
@@ -673,7 +678,8 @@ void TextureRect_8bIA_MirY(Gfx** gfxPtr, void* texture, u32 width, u32 height, f
(s32) (1.0f / xScale * 1024.0f), (u16) (s32) (-1.0f / yScale * 1024.0f));
}
void TextureRect_16bIA(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale) {
void Lib_TextureRect_IA16(Gfx** gfxPtr, u16* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
gDPLoadTextureBlock((*gfxPtr)++, texture, G_IM_FMT_IA, G_IM_SIZ_16b, width, height, 0, 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)++, (s32) (xPos * 4.0f), (s32) (yPos * 4.0f), (s32) ((xPos + width * xScale) * 4.0f),
@@ -681,8 +687,8 @@ void TextureRect_16bIA(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 x
(s32) (1.0f / yScale * 1024.0f));
}
void TextureRect_16bIA_MirX(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
void Lib_TextureRect_IA16_MirX(Gfx** gfxPtr, u16* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
gDPLoadTextureBlock((*gfxPtr)++, texture, G_IM_FMT_IA, G_IM_SIZ_16b, width, height, 0, G_TX_MIRROR | G_TX_WRAP,
G_TX_MIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
gSPTextureRectangle((*gfxPtr)++, (s32) (xPos * 4.0f), (s32) (yPos * 4.0f), (s32) ((xPos + width * xScale) * 4.0f),
@@ -690,8 +696,8 @@ void TextureRect_16bIA_MirX(Gfx** gfxPtr, void* texture, u32 width, u32 height,
(u16) (s32) (-1.0f / xScale * 1024.0f), (s32) (1.0f / yScale * 1024.0f));
}
void TextureRect_16bIA_MirY(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
void Lib_TextureRect_IA16_MirY(Gfx** gfxPtr, u16* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
gDPLoadTextureBlock((*gfxPtr)++, texture, G_IM_FMT_IA, G_IM_SIZ_16b, width, height, 0, G_TX_MIRROR | G_TX_WRAP,
G_TX_MIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
gSPTextureRectangle((*gfxPtr)++, (s32) (xPos * 4.0f), (s32) (yPos * 4.0f), (s32) ((xPos + width * xScale) * 4.0f),
@@ -699,8 +705,8 @@ void TextureRect_16bIA_MirY(Gfx** gfxPtr, void* texture, u32 width, u32 height,
(s32) (1.0f / xScale * 1024.0f), (u16) (s32) (-1.0f / yScale * 1024.0f));
}
void TextureRect_16bIA_MirXY(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
void Lib_TextureRect_IA16_MirXY(Gfx** gfxPtr, u16* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
gDPLoadTextureBlock((*gfxPtr)++, texture, G_IM_FMT_IA, G_IM_SIZ_16b, width, height, 0, G_TX_MIRROR | G_TX_WRAP,
G_TX_MIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
gSPTextureRectangle((*gfxPtr)++, (s32) (xPos * 4.0f), (s32) (yPos * 4.0f), (s32) ((xPos + width * xScale) * 4.0f),
@@ -708,8 +714,8 @@ void TextureRect_16bIA_MirXY(Gfx** gfxPtr, void* texture, u32 width, u32 height,
(u16) (s32) (-1.0f / xScale * 1024.0f), (u16) (s32) (-1.0f / yScale * 1024.0f));
}
void TextureRect_32bRGBA(Gfx** gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
void Lib_TextureRect_RGBA32(Gfx** gfxPtr, u32* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale,
f32 yScale) {
gDPLoadTextureBlock((*gfxPtr)++, texture, G_IM_FMT_RGBA, G_IM_SIZ_32b, width, height, 0, 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)++, (s32) (xPos * 4.0f), (s32) (yPos * 4.0f), (s32) ((xPos + width * xScale) * 4.0f),
@@ -733,8 +739,8 @@ void Graphics_FillRectangle(Gfx** gfxPtr, s32 ulx, s32 uly, s32 lrx, s32 lry, u8
void Math_Vec3fFromAngles(Vec3f* step, f32 xRot, f32 yRot, f32 stepsize) {
Vec3f sp1C;
Matrix_RotateY(gCalcMatrix, yRot * M_DTOR, 0);
Matrix_RotateX(gCalcMatrix, xRot * M_DTOR, 1);
Matrix_RotateY(gCalcMatrix, yRot * M_DTOR, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, xRot * M_DTOR, MTXF_APPLY);
sp1C.x = sp1C.y = 0.0f;
sp1C.z = stepsize;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp1C, step);
@@ -782,7 +788,7 @@ u16* Graphics_SetupTextureRender(Gfx** gfxPtr, u8 width, u8 height) {
gDPSetFillColor((*gfxPtr)++, FILL_COLOR(gBgColor | 1));
gDPFillRectangle((*gfxPtr)++, 0, 0, width - 1, height - 1);
gDPPipeSync((*gfxPtr)++);
guPerspective(gGfxMtx, &norm, D_game_80161A3C, (f32) width / height, 10.0f, 12800.0f, 1.0f);
guPerspective(gGfxMtx, &norm, gFovY, (f32) width / height, 10.0f, 12800.0f, 1.0f);
gSPPerspNormalize((*gfxPtr)++, norm);
gSPMatrix((*gfxPtr)++, gGfxMtx++, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(gGfxMtx, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -12800.0f, 0.0f, 1.0f, 0.0f);
@@ -804,19 +810,19 @@ void Graphics_DisplayHUDNumber(s32 xPos, s32 yPos, s32 number) {
place = 1000000;
for (place = 1000000; place != 1; place /= 10) {
if ((number / place != 0) || (startNumber == true)) {
TextureRect_4bCI(&gMasterDisp, hudNumberTex[number / place], hudNumberPal[number / place], 16, 8, xPos,
yPos, 1.0f, 1.0f);
Lib_TextureRect_CI4(&gMasterDisp, hudNumberTex[number / place], hudNumberPal[number / place], 16, 8, xPos,
yPos, 1.0f, 1.0f);
startNumber = true;
xPos += 9;
number %= place;
}
}
TextureRect_4bCI(&gMasterDisp, hudNumberTex[number / place], hudNumberPal[number / place], 16, 8, xPos, yPos, 1.0f,
1.0f);
Lib_TextureRect_CI4(&gMasterDisp, hudNumberTex[number / place], hudNumberPal[number / place], 16, 8, xPos, yPos,
1.0f, 1.0f);
}
u8* sSmallNumberTex[] = { D_5000000, D_5000080, D_5000100, D_5000180, D_5000200,
D_5000280, D_5000300, D_5000380, D_5000400, D_5000480 };
u8* sSmallNumberTex[] = { aSmallText_0, aSmallText_1, aSmallText_2, aSmallText_3, aSmallText_4,
aSmallText_5, aSmallText_6, aSmallText_7, aSmallText_8, aSmallText_9 };
void Graphics_DisplaySmallNumber(s32 xPos, s32 yPos, s32 number) {
s32 place;
@@ -826,35 +832,40 @@ void Graphics_DisplaySmallNumber(s32 xPos, s32 yPos, s32 number) {
place = 1000000;
for (place = 1000000; place != 1; place /= 10) {
if ((number / place != 0) || (startNumber == true)) {
TextureRect_8bIA(&gMasterDisp, sSmallNumberTex[number / place], 16, 8, xPos, yPos, 1.0f, 1.0f);
Lib_TextureRect_IA8(&gMasterDisp, sSmallNumberTex[number / place], 16, 8, xPos, yPos, 1.0f, 1.0f);
startNumber = true;
xPos += 9;
number %= place;
}
}
TextureRect_8bIA(&gMasterDisp, sSmallNumberTex[number / place], 16, 8, xPos, yPos, 1.0f, 1.0f);
Lib_TextureRect_IA8(&gMasterDisp, sSmallNumberTex[number / place], 16, 8, xPos, yPos, 1.0f, 1.0f);
}
char sSmallChars[] = " ABCDEFGHIJKLMNOPQRSTUVWXYZ!:-.0123456789";
char sLargeChars[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ. 0123456789st-";
u8 sLargeCharWidths[] = { 15, 14, 14, 13, 13, 13, 14, 14, 5, 12, 14, 12, 16, 14, 15, 13, 16, 14, 13, 13, 13,
16, 17, 17, 16, 13, 5, 16, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 10, 9, 14, 0 };
void* sLargeCharTex[] = {
D_5008020, D_5008110, D_5008200, D_50082F0, D_50083E0, D_50084D0, D_50085C0, D_50086B0, D_50087A0,
D_5008890, D_5008980, D_5008A70, D_5008B60, D_5008C50, D_5008D40, D_5008E30, D_5008F20, D_5009010,
D_5009100, D_50091F0, D_50092E0, D_50093D0, D_50094C0, D_50096A0, D_5009880, D_5009A60, D_5009DB0,
NULL, D_5009F60, D_500A050, D_500A140, D_500A230, D_500A320, D_500A410, D_500A500, D_500A5F0,
D_500A6E0, D_500A7D0, D_5009B50, D_5009C40, D_5009970,
u8* sLargeCharTex[] = {
aLargeText_A, aLargeText_B, aLargeText_C, aLargeText_D, aLargeText_E, aLargeText_F, aLargeText_G,
aLargeText_H, aLargeText_I, aLargeText_J, aLargeText_K, aLargeText_L, aLargeText_M, aLargeText_N,
aSmallText_O, aLargeText_P, aLargeText_Q, aLargeText_R, aLargeText_S, aLargeText_T, aLargeText_U,
aLargeText_V, aLargeText_W, aLargeText_X, aLargeText_Y, aLargeText_Z, aLargeText_DOT, NULL,
aLargeText_0, aLargeText_1, aLargeText_2, aLargeText_3, aLargeText_4, aLargeText_5, aLargeText_6,
aLargeText_7, aLargeText_8, aLargeText_9, aLargeText_s_, aLargeText_t_, aLargeText_HYPHEN,
};
void* sLargeNumberTex[] = {
D_5009F60, D_500A050, D_500A140, D_500A230, D_500A320, D_500A410, D_500A500, D_500A5F0, D_500A6E0, D_500A7D0,
u8* sLargeNumberTex[] = {
aLargeText_0, aLargeText_1, aLargeText_2, aLargeText_3, aLargeText_4,
aLargeText_5, aLargeText_6, aLargeText_7, aLargeText_8, aLargeText_9,
};
void* sSmallCharTex[] = { NULL, D_50070C0, D_5007100, D_5007180, D_50071C0, D_5007200, D_5007510,
D_5007550, D_5007590, D_50075D0, D_5007610, D_5007650, D_5007F60, D_5007FA0,
D_5007FE0, D_5009D30, D_5009D70, D_5009EA0, D_5009EE0, D_5009F20, D_500B380,
D_500B440, D_500B480, D_500B4C0, D_500B500, D_500B540, D_500B5C0, D_5007140,
D_500B400, D_500B580, D_500B3C0, D_5000000, D_5000080, D_5000100, D_5000180,
D_5000200, D_5000280, D_5000300, D_5000380, D_5000400, D_5000480 };
u8* sSmallCharTex[] = { NULL, aSmallText_A, aSmallText_B, aSmallText_C, aSmallText_D,
aSmallText_E, aSmallText_F, aSmallText_G, aSmallText_H, aSmallText_I,
aSmallText_J, aSmallText_K, aSmallText_L, aSmallText_M, aSmallText_N,
aSmallText_o_, aSmallText_p, aSmallText_q, aSmallText_r, aSmallText_s,
aSmallText_T, aSmallText_U, aSmallText_V, aSmallText_W, aSmallText_X,
aSmallText_Y, aSmallText_Z, aSmallTextExclamMark, aSmallText_COLON, aSmallText_HYPHEN,
aSmallText_DOT, aSmallText_0, aSmallText_1, aSmallText_2, aSmallText_3,
aSmallText_4, aSmallText_5, aSmallText_6, aSmallText_7, aSmallText_8,
aSmallText_9 };
void Graphics_DisplayLargeText(s32 xPos, s32 yPos, f32 xScale, f32 yScale, char* text) {
u32 charIndex;
@@ -979,7 +990,8 @@ void Graphics_DisplayLargeText(s32 xPos, s32 yPos, f32 xScale, f32 yScale, char*
if ((text[0] == 'W') || (text[0] == 'X')) {
width = 32;
}
TextureRect_8bIA(&gMasterDisp, sLargeCharTex[charIndex], width, 15, xPosCurrent, yPos, xScale, yScale);
Lib_TextureRect_IA8(&gMasterDisp, sLargeCharTex[charIndex], width, 15, xPosCurrent, yPos, xScale,
yScale);
}
startPrint = true;
xPosCurrent += (sLargeCharWidths[charIndex] * xScale) + 2.0f;
@@ -1120,13 +1132,13 @@ void Graphics_DisplayLargeNumber(s32 xPos, s32 yPos, s32 number) {
place = 1000000;
for (place = 1000000; place != 1; place /= 10) {
if ((number / place != 0) || (startNumber == true)) {
TextureRect_8bIA(&gMasterDisp, sLargeNumberTex[number / place], 16, 15, xPos, yPos, 1.0f, 1.0f);
Lib_TextureRect_IA8(&gMasterDisp, sLargeNumberTex[number / place], 16, 15, xPos, yPos, 1.0f, 1.0f);
startNumber = true;
xPos += 13;
number %= place;
}
}
TextureRect_8bIA(&gMasterDisp, sLargeNumberTex[number / place], 16, 15, xPos, yPos, 1.0f, 1.0f);
Lib_TextureRect_IA8(&gMasterDisp, sLargeNumberTex[number / place], 16, 15, xPos, yPos, 1.0f, 1.0f);
}
void Graphics_DisplaySmallText(s32 xPos, s32 yPos, f32 xScale, f32 yScale, char* text) {
@@ -1134,17 +1146,34 @@ void Graphics_DisplaySmallText(s32 xPos, s32 yPos, f32 xScale, f32 yScale, char*
f32 xPosCurrent = xPos;
s32 width;
if (text != NULL) {
while (text[0] != 0) {
var_t0 = 0;
while ((var_t0 < ARRAY_COUNT(sSmallChars)) && sSmallChars[var_t0] != text[0]) {
var_t0++;
while (text[0] != 0) {
var_t0 = 0;
while ((var_t0 < ARRAY_COUNT(sSmallChars)) && sSmallChars[var_t0] != text[0]) {
var_t0++;
}
if (sSmallChars[var_t0] == text[0]) {
if (sSmallCharTex[var_t0] != NULL) {
width = 8;
if (var_t0 > 30) {
width = 16;
}
Lib_TextureRect_IA8(&gMasterDisp, sSmallCharTex[var_t0], width, 8, xPosCurrent, yPos, xScale, yScale);
if (1) {}
}
if (sSmallChars[var_t0] == text[0]) {
if (sSmallCharTex[var_t0] != NULL) {
width = 8;
if (var_t0 > 30) {
width = 16;
switch (text[0]) {
case '!':
case ':':
case 'I':
xPosCurrent += 4.0f * xScale;
break;
case '-':
xPosCurrent += 6.0f * xScale;
break;
default:
if (var_t0 >= 30) {
xPosCurrent += 9.0f * xScale;
} else {
xPosCurrent += 8.0f * xScale;
}
TextureRect_8bIA(&gMasterDisp, sSmallCharTex[var_t0], width, 8, xPosCurrent, yPos, xScale, yScale);
if (1) {}
@@ -1191,7 +1220,7 @@ s32 Graphics_GetSmallTextWidth(char* text) {
xPos += 6.0f;
break;
default:
if (charIndex > 29) {
if (charIndex >= 30) {
xPos += 9.0f;
} else {
xPos += 8.0f;
+573 -557
View File
File diff suppressed because it is too large Load Diff
+626 -664
View File
File diff suppressed because it is too large Load Diff