summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpetrie911 <69443847+petrie911@users.noreply.github.com>2023-12-09 12:53:24 -0600
committerGitHub <noreply@github.com>2023-12-09 15:53:24 -0300
commitc9e58a815d452a731fc4e3e1e89fc712c087fd87 (patch)
treee45cc691b2a077f623ca5a130b450e0fd0c69b96
parent392305e9195d4b9a1eebf767d3de60d0ad4c607c (diff)
97F80, A4290, and A48B0 matching, started bss import on engine. (#47)
* stuff * three whole files * format * format and such * one cleanup
-rw-r--r--include/functions.h9
-rw-r--r--include/macros.h4
-rw-r--r--include/structs.h42
-rw-r--r--include/variables.h18
-rw-r--r--linker_scripts/us/symbol_addrs.txt32
-rw-r--r--src/main/fox_52730.c18
-rw-r--r--src/main/fox_97F80.c595
-rw-r--r--src/main/fox_A24B0.c16
-rw-r--r--src/main/fox_A4290.c129
-rw-r--r--src/main/fox_A4290_colheaders.c232
-rw-r--r--src/main/fox_A48A0.c47
-rw-r--r--src/main/fox_display.c2
-rw-r--r--src/main/fox_edata_1C.c800
-rw-r--r--src/main/fox_edisplay.c19
-rw-r--r--src/main/fox_enmy1.c29
-rw-r--r--src/main/fox_radio.c18
-rw-r--r--src/main/fox_rcp.c3
-rw-r--r--src/main/main.c2
-rw-r--r--src/main/sf_97F80.c31
-rw-r--r--src/main/sf_A4290.c7
-rw-r--r--src/main/sf_A48A0.c5
-rw-r--r--src/main/sf_A4B50.c20
-rw-r--r--yamls/us/main.yaml45
23 files changed, 1592 insertions, 531 deletions
diff --git a/include/functions.h b/include/functions.h
index 557d5df3..1b0fee09 100644
--- a/include/functions.h
+++ b/include/functions.h
@@ -85,6 +85,7 @@ void func_8001AF40(s32);
void func_8001D1C8(s32, s32);
void func_8001D400(s32);
void func_8001D444(u8, u16, u8, u8);
+void func_8001D638(u8);
void func_8001DA90(u8);
void func_8001DBD0(s32);
void func_8001DC6C(u8, u16);
@@ -471,7 +472,9 @@ void func_80094954(Object_8C*);
void func_80094BBC(Object_8C*);
void func_80094D20(f32, f32);
-// sf_97F80
+// fox_97F80
+void func_80098860(Plane *plane, Vec3f *point, Vec3f *normal);
+s32 func_800988B4(Vec3f *vec, Plane *plane);
s32 func_800998FC(Vec3f*, Vec3f*, Vec3f*, s32, Vec3f*, f32*);
// fox_A24B0
@@ -488,9 +491,9 @@ void func_800A25DC(void);
Object_2F4 *func_800A3608(s32);
// fox_A4290
-s32 func_800A3690(Vec3f*, Vec3f*, s32, Vec3f*);
+bool func_800A3690(Vec3f*, Vec3f*, s32, Vec3f*);
-// sf_A48A0
+// fox_A48A0
void func_800A3CA0(void);
// sf_A4B50
diff --git a/include/macros.h b/include/macros.h
index b9e2f49a..29e91e10 100644
--- a/include/macros.h
+++ b/include/macros.h
@@ -7,9 +7,11 @@
#define SEGMENTED_TO_VIRTUAL(segment) ((void*)OS_PHYSICAL_TO_K0(gSegments[((uintptr_t)(segment)<<4)>>0x1C]+(((uintptr_t)(segment))&0xFFFFFF)))
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
-#define SQ(x) ((x) * (x))
+#define SIGN_OF(x) (((x) > 0) ? 1 : ((x) == 0) ? 0 : -1)
+#define SQ(x) ((x) * (x))
#define VEC3F_SQ(vec) (SQ((vec).x) + SQ((vec).y) + SQ((vec).z))
+#define DOT_XYZ(a, b) ((a).x * (b).x + (a).y * (b).y + (a).z * (b).z)
#define USEC_TO_CYCLES(n) (((u64)(n)*(osClockRate/15625LL))/(1000000LL/15625LL))
#define MSEC_TO_CYCLES(n) (USEC_TO_CYCLES((n) * 1000LL))
diff --git a/include/structs.h b/include/structs.h
index ab09fcdd..3aea496b 100644
--- a/include/structs.h
+++ b/include/structs.h
@@ -6,6 +6,34 @@
#define UNK_TYPE s32
+typedef struct {
+ Vec3f normal;
+ f32 dist;
+} Plane;
+
+typedef struct {
+ s16 vtx[3];
+ s16 unk_06;
+ Vec3s normal;
+ s32 dist;
+} CollisionPoly;
+
+typedef struct {
+ Vec3f min;
+ Vec3f max;
+ s32 polyCount;
+ CollisionPoly* polys;
+ Vec3s* mesh;
+} CollisionHeader; // size = 0x24
+
+typedef struct {
+ Vec3f min;
+ Vec3f max;
+ s32 polyCount;
+ s16 (*polys)[3];
+ Vec3f* mesh;
+} CollisionHeader2; // size = 0x24
+
typedef void (*TimerAction)(s32*, s32);
typedef struct {
@@ -315,17 +343,15 @@ typedef struct {
/* 0x10 */ Vec3f rot;
} Object; // size = 0x1C
+typedef void (*ObjectFunc)(Object*);
+
typedef struct {
- union {
- /* 0x00 */ void* drawVoid; // Have the first option be a void type to silence warnings about the wrong type in the initialization of this object.
- /* 0x00 */ void (*draw)(Object*); // argument must have object type.
- /* 0x00 */ Gfx* drawGfx; //Can be dlist.
+ /* 0x00 */ union {
+ ObjectFunc draw;
+ Gfx* dList;
};
/* 0x00 */ u8 drawType;
- union {
- /* 0x08 */ void* actionVoid; // Have the first option be a void type to silence warnings about the wrong type in the initialization of this object.
- /* 0x08 */ void (*action)(Object*); // argument must have object type. But it can be one of many different types of objects.
- };
+ /* 0x08 */ ObjectFunc action; // argument must have object type.
/* 0x0C */ f32* unk_0C; // some sort of script?
/* 0x10 */ f32 unk_10; // z coordinate of something
/* 0x14 */ s16 unk_14; // can be -1, 0, 1
diff --git a/include/variables.h b/include/variables.h
index 8c5586a4..77ca44ba 100644
--- a/include/variables.h
+++ b/include/variables.h
@@ -203,6 +203,8 @@ extern s32 D_800D2884[];
extern s32 D_800D2894[];
extern s32 D_800D28A4[];
extern s32 D_800D28B4[];
+extern CollisionHeader D_800D2B38[];
+extern CollisionHeader2 D_800D2CA0[];
extern u8 D_800D3180[0x1E]; // might be bigger? at least 0x21
extern s32 D_800D4A70;
extern Save gDefaultSave;
@@ -226,7 +228,7 @@ extern s32 D_801613A0;
// fox_52730
extern Vec3f D_801613B0[];
-extern Vec3f D_801613E0[2];
+extern Vec3f D_801613E0[];
extern s16 D_80161410;
extern Matrix D_80161418[4];
extern Vec3f D_80161518[4];
@@ -276,10 +278,7 @@ extern s32 D_801617B8;
extern s32 D_80161810[];
extern s32 D_80161900[];
-extern s32 D_80161910[0x10]; // part of previous or next?
-
-// sf_97F80
-extern f32 D_80161950;
+extern s32 D_80161910[0x10]; // part of sf_hud or fox_97F80?
// fox_display
extern char D_801619A0[100];
@@ -425,6 +424,7 @@ extern f32 D_80177D08;
extern s32 D_80177D10[];
extern f32 D_80177D20;
extern s32 D_80177D28[];
+extern f32 D_80177D38;
extern s32 D_80177D40[];
extern f32 D_80177D50;
extern s32 D_80177D58[];
@@ -453,6 +453,8 @@ extern u32* D_80178298;
extern s32 D_8017829C;
extern s32 D_801782A4;
extern Object_58 *D_801782A8;
+extern s32 D_801782AC;
+extern s32 D_801782B4;
extern s32 D_801782B8;
extern s32 D_801782BC;
extern s32 D_801782C0;
@@ -543,9 +545,9 @@ extern s32 D_80178570;
extern s32 D_80178574;
extern s32 D_80178578;
-// file split -- part of radio? rcp?
-extern s32 D_80178580;
-extern s32 *D_80178710;
+// fox_rcp?
+extern u8 D_80178580[];
+extern void *D_80178710;
//fox_radio
extern u16** D_80178720;
diff --git a/linker_scripts/us/symbol_addrs.txt b/linker_scripts/us/symbol_addrs.txt
index b6f64530..b4d1392c 100644
--- a/linker_scripts/us/symbol_addrs.txt
+++ b/linker_scripts/us/symbol_addrs.txt
@@ -13,6 +13,11 @@ gFrameBuffers = 0x8038F800;
gDmaTable = 0x80178A70; //size:0x5A0
D_80178A70 = 0x80178A78; //ignore:true
+D_80161A18 = 0x80161A18;//size:0x10
+D_801615D0 = 0x801615D0;//size:0xC
+D_801615E0 = 0x801615E0;//size:0xC
+
+D_80161578 = 0x80161578;//size:0x30
D_80161AA8 = 0x80161AA8;//size:0x10
D_800CA23C = 0x800CA23C;//size:0x18
D_800CA26C = 0x800CA26C;//size:0x20
@@ -44,6 +49,33 @@ D_800CBDD4 = 0x800CBDD4; //size:0x98
D_800D55D0 = 0x800D55D0; //type:f32
+// vec97_0 = 0x80161950; //type:Vec3f size:0xC
+// vec97_1 = 0x8016195C; //type:Vec3f size:0xC
+// __vtx0_ = 0x80161968; //type:Vec3f size:0xC
+// __vtx1_ = 0x80161974; //type:Vec3f size:0xC
+// __vtx2_ = 0x80161980; //type:Vec3f size:0xC
+// __vtx3_ = 0x8016198C; //type:Vec3f size:0xC
+__dx1 = 0x80161950;
+__dx2 = 0x80161954;
+__dy1 = 0x80161958;
+__dy2 = 0x8016195C;
+__dz1 = 0x80161960;
+__dz2 = 0x80161964;
+__vtx0_x = 0x80161968;
+__vtx0_y = 0x8016196C;
+__vtx0_z = 0x80161970;
+__vtx1_x = 0x80161974;
+__vtx1_y = 0x80161978;
+__vtx1_z = 0x8016197C;
+__vtx2_x = 0x80161980;
+__vtx2_y = 0x80161984;
+__vtx2_z = 0x80161988;
+__vtx3_x = 0x8016198C;
+__vtx3_y = 0x80161990;
+__vtx3_z = 0x80161994;
+__pos_x = 0x80161998;//type:f32
+__pos_z = 0x8016199C;//type:f32
+
Save_Checksum = 0x800C2FB0;
Save_Write = 0x800C3084;
Save_Read = 0x800C3194;
diff --git a/src/main/fox_52730.c b/src/main/fox_52730.c
index 017c3ff0..32f4059e 100644
--- a/src/main/fox_52730.c
+++ b/src/main/fox_52730.c
@@ -1,14 +1,14 @@
#include "global.h"
-#define D_3016CC0 0x03016CC0
-#define D_3003CE0 0x03003CE0
-#define D_3001C90 0x03001C90
-#define D_1024570 0x01024570
-#define D_10246D0 0x010246D0
-#define D_1024410 0x01024410
-#define D_D000000 0x0D000000
-#define D_D00B5C0 0x0D00B5C0
-#define D_D00B720 0x0D00B720
+Vec3f D_801613B0[4];
+Vec3f D_801613E0[4];
+s16 D_80161410;
+Matrix D_80161418[4];
+Vec3f D_80161518[4];
+Vec3f D_80161548[4];
+Vec3f D_80161578[4];
+f32 D_801615A8[4];
+f32 D_801615B8[4];
s32 D_800CA220 = 0;
u8 D_800CA224[] = { 0, 0, 0, 0 };
diff --git a/src/main/fox_97F80.c b/src/main/fox_97F80.c
new file mode 100644
index 00000000..dedf9610
--- /dev/null
+++ b/src/main/fox_97F80.c
@@ -0,0 +1,595 @@
+#include "global.h"
+
+static f32 __dx1;
+static f32 __dx2;
+static f32 __dy1;
+static f32 __dy2;
+static f32 __dz1;
+static f32 __dz2;
+static f32 __vtx0_x;
+static f32 __vtx0_y;
+static f32 __vtx0_z;
+static f32 __vtx1_x;
+static f32 __vtx1_y;
+static f32 __vtx1_z;
+static f32 __vtx2_x;
+static f32 __vtx2_y;
+static f32 __vtx2_z;
+static f32 __vtx3_x;
+static f32 __vtx3_y;
+static f32 __vtx3_z;
+static f32 __pos_x;
+static f32 __pos_z;
+
+#define TRINORM_X(A, B, C) ((B##_y - A##_y) * (C##_z - B##_z) - (B##_z - A##_z) * (C##_y - B##_y))
+#define TRINORM_Y(A, B, C) ((B##_z - A##_z) * (C##_x - B##_x) - (B##_x - A##_x) * (C##_z - B##_z))
+#define TRINORM_Z(A, B, C) ((B##_x - A##_x) * (C##_y - B##_y) - (B##_y - A##_y) * (C##_x - B##_x))
+
+void func_80097380(Plane* plane, Vec3s** tri) {
+ Vec3s a;
+ Vec3s b;
+ Vec3s c;
+ s32 new_var;
+ Vec3s* tri2 = *tri;
+
+ a.x = (*tri)->x;
+ a.y = tri2->y; // fake
+ a.z = (*tri)->z;
+ tri++;
+ b.x = (*tri)->x;
+ b.y = (*tri)->y;
+ b.z = (*tri)->z;
+ tri++;
+ c.x = (*tri)->x;
+ c.y = (*tri)->y;
+ c.z = (*tri)->z;
+ tri++;
+
+ __dx1 = b.x - a.x;
+ __dx2 = c.x - b.x;
+ __dy1 = b.y - a.y;
+ do {
+ __dy2 = c.y - b.y;
+ __dz1 = b.z - a.z;
+ __dz2 = c.z - b.z;
+ } while (0); // wut
+
+ plane->normal.x = (__dy1 * __dz2) - (__dz1 * __dy2);
+ plane->normal.y = (__dz1 * __dx2) - (__dx1 * __dz2);
+ plane->normal.z = (__dx1 * __dy2) - (__dy1 * __dx2);
+ plane->dist =
+ -a.x * b.y * c.z - b.x * c.y * a.z - c.x * a.y * b.z + a.x * c.y * b.z + b.x * a.y * c.z + c.x * b.y * a.z;
+}
+
+void func_80097558(Plane* plane, Vec3s** tri) {
+ Vec3s a;
+ Vec3s b;
+ Vec3s c;
+ s32 new_var;
+ Vec3s* tri2 = *tri;
+
+ a.x = (*tri)->x;
+ a.y = tri2->y; // fake
+ a.z = (*tri)->z;
+ tri++;
+ b.x = (*tri)->x;
+ b.y = (*tri)->y;
+ b.z = (*tri)->z;
+ tri++;
+ c.x = (*tri)->x;
+ c.y = (*tri)->y;
+ c.z = (*tri)->z;
+ tri++;
+
+ __dx1 = b.x - a.x;
+ __dx2 = c.x - b.x;
+ __dy1 = b.y - a.y;
+ do {
+ __dy2 = c.y - b.y;
+ __dz1 = b.z - a.z;
+ __dz2 = c.z - b.z;
+ } while (0); // wut
+
+ plane->normal.x = (__dy1 * __dz2) - (__dz1 * __dy2);
+ plane->normal.y = (__dz1 * __dx2) - (__dx1 * __dz2);
+ plane->normal.z = (__dx1 * __dy2) - (__dy1 * __dx2);
+ plane->dist =
+ -a.x * b.y * c.z - b.x * c.y * a.z - c.x * a.y * b.z + a.x * c.y * b.z + b.x * a.y * c.z + c.x * b.y * a.z;
+}
+
+void func_80097730(Vec3f* norm, Vec3f* tri) {
+ __vtx0_x = tri->x;
+ __vtx0_y = tri->y;
+ __vtx0_z = tri->z;
+ tri++;
+
+ __vtx1_x = tri->x;
+ __vtx1_y = tri->y;
+ __vtx1_z = tri->z;
+ tri++;
+
+ __vtx2_x = tri->x;
+ __vtx2_y = tri->y;
+ __vtx2_z = tri->z;
+
+ __dx1 = __vtx1_x - __vtx0_x;
+ __dx2 = __vtx2_x - __vtx1_x;
+ __dy1 = __vtx1_y - __vtx0_y;
+ __dy2 = __vtx2_y - __vtx1_y;
+ __dz1 = __vtx1_z - __vtx0_z;
+ __dz2 = __vtx2_z - __vtx1_z;
+ norm->x = (__dy1 * __dz2) - (__dz1 * __dy2);
+ norm->y = (__dz1 * __dx2) - (__dx1 * __dz2);
+ norm->z = (__dx1 * __dy2) - (__dy1 * __dx2);
+}
+
+void func_800978C4(Vec3f* norm, s32 ax, s32 ay, s32 az, s32 bx, s32 by, s32 bz, s32 cx, s32 cy, s32 cz) {
+ __dx1 = bx - ax;
+ __dx2 = cx - bx;
+ __dy1 = by - ay;
+ __dy2 = cy - by;
+ __dz1 = bz - az;
+ __dz2 = cz - bz;
+
+ norm->x = (__dy1 * __dz2) - (__dz1 * __dy2);
+ norm->y = (__dz1 * __dx2) - (__dx1 * __dz2);
+ norm->z = (__dx1 * __dy2) - (__dy1 * __dx2);
+}
+
+void func_800979E8(Vtx_tn* tri) {
+ s32 i;
+ Vec3f temp;
+ f32 temp_fv0;
+
+ tri++;
+ tri--; // fake and weird
+
+ __vtx0_x = tri[0].ob[0];
+ __vtx0_y = tri[0].ob[1];
+ __vtx0_z = tri[0].ob[2];
+ __vtx1_x = tri[1].ob[0];
+ __vtx1_y = tri[1].ob[1];
+ __vtx1_z = tri[1].ob[2];
+ __vtx2_x = tri[2].ob[0];
+ __vtx2_y = tri[2].ob[1];
+ __vtx2_z = tri[2].ob[2];
+
+ __dx1 = __vtx1_x - __vtx0_x;
+ __dx2 = __vtx2_x - __vtx1_x;
+ __dy1 = __vtx1_y - __vtx0_y;
+ __dy2 = __vtx2_y - __vtx1_y;
+ __dz1 = __vtx1_z - __vtx0_z;
+ __dz2 = __vtx2_z - __vtx1_z;
+
+ temp.x = (__dy1 * __dz2) - (__dz1 * __dy2);
+ temp.y = (__dz1 * __dx2) - (__dx1 * __dz2);
+ temp.z = (__dx1 * __dy2) - (__dy1 * __dx2);
+ temp_fv0 = sqrtf(VEC3F_SQ(temp));
+ if (temp_fv0 != 0.0f) {
+ temp.x = temp.x * 127.0f / temp_fv0;
+ temp.y = temp.y * 127.0f / temp_fv0;
+ temp.z = temp.z * 127.0f / temp_fv0;
+ for (i = 0; i < 3; i++) {
+ tri->n[0] = temp.x;
+ tri->n[1] = temp.y;
+ tri->n[2] = temp.z;
+ tri++;
+ }
+ }
+}
+
+void func_80097C88(Vec3f* norms, Vtx_tn* quad) {
+ f32 temp_fv0;
+
+ __vtx0_x = quad[3].ob[0];
+ __vtx0_y = quad[3].ob[1];
+ __vtx0_z = quad[3].ob[2];
+ __vtx1_x = quad->ob[0];
+ __vtx1_y = quad->ob[1];
+ __vtx1_z = quad->ob[2];
+ quad++;
+ __vtx2_x = quad->ob[0];
+ __vtx2_y = quad->ob[1];
+ __vtx2_z = quad->ob[2];
+
+ __dx1 = __vtx1_x - __vtx0_x;
+ __dx2 = __vtx2_x - __vtx1_x;
+ __dy1 = __vtx1_y - __vtx0_y;
+ __dy2 = __vtx2_y - __vtx1_y;
+ __dz1 = __vtx1_z - __vtx0_z;
+ __dz2 = __vtx2_z - __vtx1_z;
+ norms->x = (__dy1 * __dz2) - (__dz1 * __dy2);
+ norms->y = (__dz1 * __dx2) - (__dx1 * __dz2);
+ norms->z = (__dx1 * __dy2) - (__dy1 * __dx2);
+ temp_fv0 = sqrtf(SQ(norms->x) + SQ(norms->y) + SQ(norms->z));
+ if (temp_fv0 != 0.0f) {
+ norms->x = (norms->x / temp_fv0) * 127.0f;
+ norms->y = (norms->y / temp_fv0) * 127.0f;
+ norms->z = (norms->z / temp_fv0) * 127.0f;
+ }
+ norms++;
+ quad++;
+ __vtx1_x = __vtx2_x;
+ __vtx1_y = __vtx2_y;
+ __vtx1_z = __vtx2_z;
+
+ __vtx2_x = quad->ob[0];
+ __vtx2_y = quad->ob[1];
+ __vtx2_z = quad->ob[2];
+ __dx1 = __vtx1_x - __vtx0_x;
+ __dx2 = __vtx2_x - __vtx1_x;
+ __dy1 = __vtx1_y - __vtx0_y;
+ __dy2 = __vtx2_y - __vtx1_y;
+ __dz1 = __vtx1_z - __vtx0_z;
+ __dz2 = __vtx2_z - __vtx1_z;
+ norms->x = (__dy1 * __dz2) - (__dz1 * __dy2);
+ norms->y = (__dz1 * __dx2) - (__dx1 * __dz2);
+ norms->z = (__dx1 * __dy2) - (__dy1 * __dx2);
+ temp_fv0 = sqrtf(SQ(norms->x) + SQ(norms->y) + SQ(norms->z));
+ 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;
+ }
+}
+
+s32 func_8009808C(Vec3f* pos, Vtx_tn* quad, Vec3f* norm) {
+ f32 temp_fv0;
+ s32 var_v1 = 0;
+ f32 test1;
+ f32 test2;
+
+ __vtx0_x = quad[0].ob[0];
+ __vtx0_y = quad[0].ob[1];
+ __vtx0_z = quad[0].ob[2];
+ __vtx1_x = quad[1].ob[0];
+ __vtx1_y = quad[1].ob[1];
+ __vtx1_z = quad[1].ob[2];
+ __vtx2_x = quad[2].ob[0];
+ __vtx2_y = quad[2].ob[1];
+ __vtx2_z = quad[2].ob[2];
+ __vtx3_x = quad[3].ob[0];
+ __vtx3_y = quad[3].ob[1];
+ __vtx3_z = quad[3].ob[2];
+ __pos_x = pos->x;
+ __pos_z = pos->z;
+ test1 = TRINORM_Y(__vtx0, __vtx1, __pos);
+ if (test1 >= 0.0f) {
+ test1 = TRINORM_Y(__vtx1, __vtx2, __pos);
+ if (test1 >= 0.0f) {
+ test1 = TRINORM_Y(__vtx2, __vtx0, __pos);
+ if (test1 >= 0.0f) {
+ norm->x = TRINORM_X(__vtx0, __vtx1, __vtx2);
+ norm->y = TRINORM_Y(__vtx0, __vtx1, __vtx2);
+ norm->z = TRINORM_Z(__vtx0, __vtx1, __vtx2);
+ if ((norm->x != 0.0f) || (norm->y != 0.0f) || (norm->z != 0.0f)) {
+ var_v1 = 1;
+ }
+ }
+ }
+ }
+ if (var_v1 == 0) {
+ test1 = TRINORM_Y(__vtx0, __vtx2, __pos);
+ if ((test1 >= 0.0f)) {
+ test1 = TRINORM_Y(__vtx2, __vtx3, __pos);
+ if (test1 >= 0.0f) {
+ test1 = TRINORM_Y(__vtx3, __vtx0, __pos);
+ if (test1 >= 0.0f) {
+ norm->x = TRINORM_X(__vtx0, __vtx2, __vtx3);
+ norm->y = TRINORM_Y(__vtx0, __vtx2, __vtx3);
+ norm->z = TRINORM_Z(__vtx0, __vtx2, __vtx3);
+ if ((norm->x != 0.0f) || (norm->y != 0.0f) || (norm->z != 0.0f)) {
+ var_v1 = 2;
+ }
+ }
+ }
+ }
+ }
+
+ if (var_v1 != 0) {
+ temp_fv0 = sqrtf(SQ(norm->x) + SQ(norm->y) + SQ(norm->z));
+ if (temp_fv0 == 0) {
+ return 0;
+ }
+ norm->x = (norm->x / temp_fv0) * 127.0f;
+ norm->y = (norm->y / temp_fv0) * 127.0f;
+ norm->z = (norm->z / temp_fv0) * 127.0f;
+ }
+ return var_v1;
+}
+
+s32 func_800985CC(Vec3f* vec, Vtx_tn* tri) {
+ f32 sp24;
+ f32 sp20;
+
+ __pos_x = __vtx0_x = tri->ob[0];
+ __pos_z = __vtx0_z = tri->ob[2];
+ tri++;
+ __vtx1_x = tri->ob[0];
+ __vtx1_z = tri->ob[2];
+ __vtx2_x = vec->x;
+ __vtx2_z = vec->z;
+ tri++;
+
+ sp24 = TRINORM_Y(__vtx0, __vtx1, __vtx2);
+
+ __vtx0_x = tri->ob[0];
+ __vtx0_z = tri->ob[2];
+ sp20 = TRINORM_Y(__vtx1, __vtx0, __vtx2);
+
+ if (SIGN_OF(sp24) != SIGN_OF(sp20)) {
+ return 0;
+ }
+ sp24 = TRINORM_Y(__vtx0, __pos, __vtx2);
+
+ if (SIGN_OF(sp24) != SIGN_OF(sp20)) {
+ return 0;
+ }
+ return 1;
+}
+
+void func_80098860(Plane* plane, Vec3f* point, Vec3f* normal) {
+ plane->normal.x = normal->x;
+ plane->normal.y = normal->y;
+ plane->normal.z = normal->z;
+ plane->dist = -normal->x * point->x - normal->y * point->y - normal->z * point->z;
+}
+
+s32 func_800988B4(Vec3f* vec, Plane* plane) {
+ return (-plane->normal.x * vec->x - plane->normal.z * vec->z - plane->dist) / plane->normal.y;
+}
+
+s32 func_800988F8(Vec3f* vec, Plane* plane) {
+ return (-plane->normal.x * vec->x - plane->normal.y * vec->y - plane->dist) / plane->normal.z;
+}
+
+s32 func_8009893C(Vec3f* vec, Plane* plane) {
+ return (-plane->normal.y * vec->y - plane->normal.z * vec->z - plane->dist) / plane->normal.x;
+}
+
+#define INTSIGN_OF(x) ((((x) >= 1.0f) || ((x) <= -1.0f)) ? (f32) SIGN_OF(x) : 0.0f)
+
+s32 func_80098980(Vec3f* out, Vec3s** tri, Vec3f* vec) {
+ s32 signa2y;
+ s32 signa2z;
+ s32 signCross;
+ s32 signa2x;
+ f32 cross;
+ s32 var_v1;
+ Vec3s* pad;
+ f32 t0x;
+ f32 t0y;
+ f32 t0z;
+ f32 t1x;
+ f32 t1y;
+ f32 t1z;
+ f32 t2x;
+ f32 t2y;
+ f32 t2z;
+ f32 a0x;
+ f32 a0y;
+ f32 a0z;
+ f32 d01x;
+ f32 d12x;
+ f32 d20x;
+ f32 d01y;
+ f32 d12y;
+ f32 d20y;
+ f32 d01z;
+ f32 d12z;
+ f32 d20z;
+
+ var_v1 = 0;
+
+ pad = *tri++;
+ if (1) { // some sort of macro?
+ t0x = pad->x;
+ t0y = pad->y;
+ t0z = pad->z;
+
+ pad = *tri++;
+
+ t1x = pad->x;
+ t1y = pad->y;
+ t1z = pad->z;
+
+ pad = *tri++;
+
+ t2x = pad->x;
+ t2y = pad->y;
+ t2z = pad->z;
+
+ a0x = out->x;
+ a0y = out->y;
+ a0z = out->z;
+
+ d01x = t1x - t0x;
+ d12x = t2x - t1x;
+ d20x = t0x - t2x;
+ d01y = t1y - t0y;
+ d12y = t2y - t1y;
+ d20y = t0y - t2y;
+ d01z = t1z - t0z;
+ d12z = t2z - t1z;
+ d20z = t0z - t2z;
+
+ signa2x = SIGN_OF(vec->x);
+ signa2y = SIGN_OF(vec->y);
+ signa2z = SIGN_OF(vec->z);
+ }
+
+ cross = ((a0z - t1z) * d01y) - (d01z * (a0y - t1y));
+ signCross = INTSIGN_OF(cross);
+ if ((signa2x == 0) || (signCross == signa2x) || (signCross == 0)) {
+ cross = ((a0z - t2z) * d12y) - (d12z * (a0y - t2y));
+ signCross = INTSIGN_OF(cross);
+ if ((signa2x == 0) || (signCross == signa2x) || (signCross == 0)) {
+ cross = ((a0z - t0z) * d20y) - (d20z * (a0y - t0y));
+ signCross = INTSIGN_OF(cross);
+ if ((signa2x == 0) || (signCross == signa2x) || (signCross == 0)) {
+ cross = ((a0x - t1x) * d01z) - (d01x * (a0z - t1z));
+ signCross = INTSIGN_OF(cross);
+ if ((signa2y == 0) || (signCross == signa2y) || (signCross == 0)) {
+ cross = ((a0x - t2x) * d12z) - (d12x * (a0z - t2z));
+ signCross = INTSIGN_OF(cross);
+ if ((signa2y == 0) || (signCross == signa2y) || (signCross == 0)) {
+ cross = ((a0x - t0x) * d20z) - (d20x * (a0z - t0z));
+ signCross = INTSIGN_OF(cross);
+ if ((signa2y == 0) || (signCross == signa2y) || (signCross == 0)) {
+ cross = ((a0y - t1y) * d01x) - (d01y * (a0x - t1x));
+ signCross = INTSIGN_OF(cross);
+ if ((signa2z == 0) || (signCross == signa2z) || (signCross == 0)) {
+ cross = ((a0y - t2y) * d12x) - (d12y * (a0x - t2x));
+ signCross = INTSIGN_OF(cross);
+ if ((signa2z == 0) || (signCross == signa2z) || (signCross == 0)) {
+ cross = ((a0y - t0y) * d20x) - (d20y * (a0x - t0x));
+ signCross = INTSIGN_OF(cross);
+ if ((signa2z == 0) || (signCross == 0) || (signCross == signa2z)) {
+ var_v1 = 1;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return var_v1;
+}
+
+s32 func_80099254(Vec3f* arg0, Vec3f* arg1, Vec3f* arg2, CollisionHeader* arg3, Vec3f* arg4, f32* arg5) {
+ Vec3s* sp12C[3];
+ Vec3f temp_V3f1;
+ s32 pad11C;
+ s32 pad118;
+ Plane sp108;
+ f32 temp_fs0;
+ s32 sp100 = false;
+ s32 temp_v0;
+ CollisionPoly* var_s0;
+ Vec3s* temp_s2;
+ s32 spF0;
+ f32 spEC;
+ s32 i;
+ Vec3f spDC;
+ f32* padD8;
+ s32 spD4;
+ s32 spD0;
+ s32 spCC;
+ s32 spC8;
+ s32 spC4;
+ s32 spC0;
+ s32 spBC;
+ s32 spB8;
+ s32 spB4;
+ s32 spB0;
+ s32 spAC;
+ s32 spA8;
+ Vec3f min;
+ Vec3f max;
+
+ arg4->x = arg4->y = arg4->z = arg5[0] = arg5[1] = 0.0f;
+ temp_V3f1.x = arg0->x - arg1->x;
+ temp_V3f1.y = arg0->y - arg1->y;
+ temp_V3f1.z = arg0->z - arg1->z;
+ min.x = arg3->min.x;
+ min.y = arg3->min.y;
+ min.z = arg3->min.z;
+ max.x = arg3->max.x;
+ max.y = arg3->max.y;
+ max.z = arg3->max.z;
+
+ if ((temp_V3f1.x < min.x) || (temp_V3f1.y < min.y) || (temp_V3f1.z < min.z) || (max.x < temp_V3f1.x) ||
+ (max.y < temp_V3f1.y) || ((max.z < temp_V3f1.z))) {
+ return 0;
+ }
+ if ((arg2->x == 0.0f) && (arg2->y == 0.0f) && (arg2->z == 0.0f)) {
+ arg2->y = -5.0f;
+ }
+ spBC = temp_V3f1.x;
+ spB4 = temp_V3f1.y;
+ spAC = temp_V3f1.z;
+ spB8 = temp_V3f1.x - arg2->x;
+ spB0 = temp_V3f1.y - arg2->y;
+ spA8 = temp_V3f1.z - arg2->z;
+
+ if (spB8 < spBC) {
+ temp_v0 = spB8;
+ spB8 = spBC;
+ spBC = temp_v0;
+ }
+ if (spB0 < spB4) {
+ temp_v0 = spB0;
+ spB0 = spB4;
+ spB4 = temp_v0;
+ }
+
+ if (spA8 < spAC) {
+ temp_v0 = spA8;
+ spA8 = spAC;
+ spAC = temp_v0;
+ }
+
+ var_s0 = SEGMENTED_TO_VIRTUAL(arg3->polys);
+ temp_s2 = SEGMENTED_TO_VIRTUAL(arg3->mesh);
+ spF0 = arg3->polyCount;
+ spEC = sqrtf(SQ(arg2->x) + SQ(arg2->y) + SQ(arg2->z));
+
+ for (i = 0; i < spF0; i++, var_s0++) {
+ sp12C[0] = &temp_s2[var_s0->vtx[0]];
+ sp12C[1] = &temp_s2[var_s0->vtx[1]];
+ sp12C[2] = &temp_s2[var_s0->vtx[2]];
+ Math_MinMax(&spD4, &spD0, sp12C[0]->x, sp12C[1]->x, sp12C[2]->x);
+ Math_MinMax(&spCC, &spC8, sp12C[0]->y, sp12C[1]->y, sp12C[2]->y);
+ Math_MinMax(&spC4, &spC0, sp12C[0]->z, sp12C[1]->z, sp12C[2]->z);
+ if ((spBC < spD0) && (spD4 < spB8) && (spB4 < spC8) && (spCC < spB0) && (spAC < spC0) && (spC4 < spA8)) {
+ sp108.normal.x = var_s0->normal.x;
+ sp108.normal.y = var_s0->normal.y;
+ sp108.normal.z = var_s0->normal.z;
+ sp108.dist = var_s0->dist;
+ if ((DOT_XYZ(sp108.normal, temp_V3f1) + sp108.dist) <= 0.0f) {
+ temp_fs0 = sp108.normal.x * arg2->x + sp108.normal.y * arg2->y + sp108.normal.z * arg2->z;
+ if (Math_FAcosF(temp_fs0 / (sqrtf(VEC3F_SQ(sp108.normal)) * spEC)) > 1.5707964f) {
+ temp_fs0 = (DOT_XYZ(sp108.normal, temp_V3f1) + sp108.dist) / temp_fs0;
+ spDC.x = temp_V3f1.x - (arg2->x * temp_fs0);
+ spDC.y = temp_V3f1.y - (arg2->y * temp_fs0);
+ spDC.z = temp_V3f1.z - (arg2->z * temp_fs0);
+ if (func_80098980(&spDC, sp12C, &sp108.normal) == 1) {
+ arg4->x = arg1->x + spDC.x;
+ arg4->y = arg1->y + spDC.y;
+ arg4->z = arg1->z + spDC.z;
+ if (sp108.normal.x != 0.0) {
+ sp108.normal.x = -sp108.dist / sp108.normal.x;
+ }
+ if (sp108.normal.y != 0.0f) {
+ sp108.normal.y = -sp108.dist / sp108.normal.y;
+ }
+ if (sp108.normal.z != 0.0f) {
+ sp108.normal.z = -sp108.dist / sp108.normal.z;
+ }
+ arg5[0] = Math_Atan2F_XY(sp108.normal.y, sp108.normal.z);
+ if (sp108.normal.z != 0.0f) {
+ arg5[1] =
+ -Math_Atan2F_XY(__sinf(Math_Atan2F_XY(sp108.normal.y, sp108.normal.z)) * sp108.normal.z,
+ sp108.normal.x);
+ } else if (arg5[0] >= 3.1415927f) {
+ arg5[1] = Math_Atan2F_XY(sp108.normal.y, sp108.normal.x);
+ } else {
+ arg5[1] = -Math_Atan2F_XY(sp108.normal.y, sp108.normal.x);
+ }
+
+ sp100 = 1;
+ break;
+ }
+ }
+ }
+ }
+ }
+ return sp100;
+}
+
+s32 func_800998FC(Vec3f* arg0, Vec3f* arg1, Vec3f* arg2, s32 arg3, Vec3f* arg4, f32* arg5) {
+ return func_80099254(arg0, arg1, arg2, SEGMENTED_TO_VIRTUAL(&D_800D2B38[arg3]), arg4, arg5);
+}
diff --git a/src/main/fox_A24B0.c b/src/main/fox_A24B0.c
index ff5876b5..fd1cae1b 100644
--- a/src/main/fox_A24B0.c
+++ b/src/main/fox_A24B0.c
@@ -3,6 +3,22 @@
extern void func_80187520(s32, void*);
+f32 D_80161A10;
+f32 D_80161A14;
+s32 D_80161A18[4];
+s32 D_80161A28;
+u8 D_80161A2C;
+u16 D_80161A2E;
+u16 D_80161A30;
+u16 D_80161A32;
+u16 D_80161A34;
+u16 D_80161A36;
+u8 D_80161A38;
+u8 D_80161A39;
+f32 D_80161A3C;
+f32 D_80161A40;
+f32 D_80161A44;
+
s32 D_800D2860[4] = { 1, 1, 1, 1 };
s32 D_800D2870 = 0;
s32 D_800D2874[] = { 0, 160, 0, 160 };
diff --git a/src/main/fox_A4290.c b/src/main/fox_A4290.c
new file mode 100644
index 00000000..03bfbddc
--- /dev/null
+++ b/src/main/fox_A4290.c
@@ -0,0 +1,129 @@
+#include "global.h"
+
+#include "fox_A4290_colheaders.c"
+
+bool func_800A36FC(Vec3f* arg0, Vec3f* arg1, CollisionHeader2* arg2, Vec3f* arg3);
+bool func_800A3A74(Vec3f*, Vec3f** arg1, Vec3f*);
+
+bool func_800A3690(Vec3f* arg0, Vec3f* arg1, s32 arg2, Vec3f* arg3) {
+ return func_800A36FC(arg0, arg1, SEGMENTED_TO_VIRTUAL(&D_800D2CA0[arg2]), arg3);
+}
+
+bool func_800A36FC(Vec3f* arg0, Vec3f* arg1, CollisionHeader2* arg2, Vec3f* arg3) {
+ Vec3f sp7C;
+ Plane sp6C;
+ s32 var_v1;
+ s32 i;
+ s32 j;
+ Vec3f* sp54[3];
+ Vec3f sp48;
+ Vec3f sp3C;
+ s32 sp38 = false;
+ s32 sp34;
+ s16(*sp30)[3];
+ Vec3f* sp2C;
+
+ sp7C.x = arg0->x - arg1->x;
+ sp7C.y = arg0->y - arg1->y;
+ sp7C.z = arg0->z - arg1->z;
+ if ((sp7C.x < arg2->min.x) || (sp7C.y < arg2->min.y) || (sp7C.z < arg2->min.z) || (arg2->max.x < sp7C.x) ||
+ (arg2->max.y < sp7C.y) || (arg2->max.z < sp7C.z)) {
+ return false;
+ }
+ var_v1 = false;
+ sp34 = arg2->polyCount;
+ sp30 = SEGMENTED_TO_VIRTUAL(arg2->polys);
+ sp2C = SEGMENTED_TO_VIRTUAL(arg2->mesh);
+ for (i = 0; i < sp34; i++, sp30++) {
+ for (j = 0; j < 3; j++) {
+ sp54[j] = &sp2C[(*sp30)[j]];
+ }
+ var_v1 = func_800A3A74(&sp7C, sp54, &sp48);
+ if (var_v1) {
+ break;
+ }
+ }
+ if (var_v1) {
+ sp3C.x = sp54[0]->x;
+ sp3C.y = sp54[0]->y;
+ sp3C.z = sp54[0]->z;
+ func_80098860(&sp6C, &sp3C, &sp48);
+ arg3->y = func_800988B4(&sp7C, &sp6C);
+ if (sp6C.normal.x != 0.0f) {
+ sp48.x = -sp6C.dist / sp6C.normal.x;
+ } else {
+ sp48.x = 0.0f;
+ }
+ if (sp6C.normal.y != 0.0f) {
+ sp48.y = -sp6C.dist / sp6C.normal.y;
+ } else {
+ sp48.y = 0.0f;
+ }
+ if (sp6C.normal.z != 0.0f) {
+ sp48.z = -sp6C.dist / sp6C.normal.z;
+ } else {
+ sp48.z = 0.0f;
+ }
+ arg3->x = Math_Atan2F_XY(sp48.y, sp48.z);
+ if (sp48.z != 0.0f) {
+ arg3->z = -Math_Atan2F_XY(__sinf(Math_Atan2F_XY(sp48.y, sp48.z)) * sp48.z, sp48.x);
+ } else if (arg3->x >= 3.1415927f) {
+ arg3->z = Math_Atan2F_XY(sp48.y, sp48.x);
+ } else {
+ arg3->z = -Math_Atan2F_XY(sp48.y, sp48.x);
+ }
+ if ((arg0->y <= arg3->y) || (D_80178234 == 11)) {
+ sp38 = true;
+ }
+ }
+ return sp38;
+}
+
+s32 func_800A3A74(Vec3f* arg0, Vec3f** arg1, Vec3f* arg2) {
+ s32 pad;
+ f32 temp1;
+ s32 var_v1;
+ f32 temp_fv0;
+ Vec3f sp44;
+ Vec3f sp38;
+ Vec3f sp2C;
+ f32 sp28;
+ f32 sp24;
+
+ var_v1 = 0;
+ sp44.x = (*arg1)->x;
+ sp44.y = (*arg1)->y;
+ sp44.z = (*arg1)->z;
+ arg1++;
+ sp38.x = (*arg1)->x;
+ sp38.y = (*arg1)->y;
+ sp38.z = (*arg1)->z;
+ arg1++;
+ sp2C.x = (*arg1)->x;
+ sp2C.y = (*arg1)->y;
+ sp2C.z = (*arg1)->z;
+ arg1++;
+
+ sp28 = arg0->x;
+ sp24 = arg0->z;
+ temp1 = ((sp38.z - sp44.z) * (sp28 - sp38.x)) - ((sp38.x - sp44.x) * (sp24 - sp38.z));
+ if (temp1 >= 0.0f) {
+ if (((sp2C.x - sp38.x) * (sp24 - sp2C.z)) <= ((sp2C.z - sp38.z) * (sp28 - sp2C.x))) {
+ if (((sp44.x - sp2C.x) * (sp24 - sp44.z)) <= ((sp44.z - sp2C.z) * (sp28 - sp44.x))) {
+ var_v1 = 1;
+ arg2->x = ((sp38.y - sp44.y) * (sp2C.z - sp38.z)) - ((sp38.z - sp44.z) * (sp2C.y - sp38.y));
+ arg2->y = ((sp38.z - sp44.z) * (sp2C.x - sp38.x)) - ((sp38.x - sp44.x) * (sp2C.z - sp38.z));
+ arg2->z = ((sp38.x - sp44.x) * (sp2C.y - sp38.y)) - ((sp38.y - sp44.y) * (sp2C.x - sp38.x));
+ if ((arg2->x != 0.0f) || (arg2->y != 0.0f) || (arg2->z != 0.0f)) {
+ temp_fv0 = sqrtf(SQ(arg2->x) + SQ(arg2->y) + SQ(arg2->z));
+ if (temp_fv0 != 0) {
+ arg2->x = (arg2->x / temp_fv0) * 127.0f;
+ arg2->y = (arg2->y / temp_fv0) * 127.0f;
+ arg2->z = (arg2->z / temp_fv0) * 127.0f;
+ }
+ }
+ }
+ }
+ }
+ return var_v1;
+}
diff --git a/src/main/fox_A4290_colheaders.c b/src/main/fox_A4290_colheaders.c
new file mode 100644
index 00000000..32d219ac
--- /dev/null
+++ b/src/main/fox_A4290_colheaders.c
@@ -0,0 +1,232 @@
+#include "structs.h"
+
+static Vec3f D_800D2920[16] = {
+ { 1075.0f, 0.0f, 0.0f }, { 746.0f, 0.0f, -746.0f }, { 202.0f, 361.0f, -202.0f }, { 0.0f, 0.0f, -1075.0f },
+ { 291.0f, 558.0f, 0.0f }, { 0.0f, 354.0f, -291.0f }, { 202.0f, 594.0f, 202.0f }, { 772.0f, 0.0f, 622.0f },
+ { 0.0f, 473.0f, 291.0f }, { 144.0f, 0.0f, 1075.0f }, { -202.0f, 461.0f, 202.0f }, { -515.0f, 0.0f, 746.0f },
+ { -291.0f, 453.0f, 0.0f }, { -372.0f, 390.0f, -281.0f }, { -951.0f, 0.0f, 0.0f }, { -746.0f, 0.0f, -746.0f },
+};
+static s16 D_800D29E0[22][3] = {
+ { 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 s16 D_800D2A64[13][3] = {
+ { 0, 1, 2 }, { 2, 3, 4 }, { 2, 5, 0 }, { 4, 5, 2 }, { 4, 3, 6 }, { 4, 7, 5 }, { 8, 7, 4 },
+ { 4, 6, 8 }, { 7, 8, 9 }, { 0, 7, 9 }, { 5, 7, 0 }, { 9, 10, 0 }, { 10, 1, 0 },
+};
+static Vec3f D_800D2AB4[11] = {
+ { -218.0f, 131.0f, 0.0f }, { -435.0f, 0.0f, 0.0f }, { -336.0f, 0.0f, 218.0f }, { 0.0f, 0.0f, 435.0f },
+ { 0.0f, 160.0f, 218.0f }, { -168.0f, 131.0f, 109.0f }, { 336.0f, 0.0f, 218.0f }, { 0.0f, 174.0f, 0.0f },
+ { 435.0f, 0.0f, -204.0f }, { 0.0f, 0.0f, -435.0f }, { -318.0f, 0.0f, -218.0f },
+};
+
+CollisionHeader D_800D2B38[10] = {
+ {
+ { -1128.0f, -1835.0f, -1202.0f },
+ { 997.0f, 139.0f, 1360.0f },
+ 79,
+ 0x0602FA9C,
+ 0x060300C8,
+ },
+ {
+ { -3006.0f, -2274.0f, -4530.0f },
+ { 3015.0f, 3348.0f, 5246.0f },
+ 236,
+ 0x060305DC,
+ 0x0603184C,
+ },
+ {
+ { -152.0f, -200.0f, -152.0f },
+ { 165.0f, 204.0f, 181.0f },
+ 42,
+ 0x06030208,
+ 0x06030550,
+ },
+ {
+ { -1704.0f, -1006.0f, -4751.0f },
+ { 1704.0f, 1030.0f, 4842.0f },
+ 174,
+ 0x06033070,
+ 0x06033E08,
+ },
+ {
+ { -1308.0f, 0.0f, -1460.0f },
+ { 1310.0f, 666.0f, 807.0f },
+ 93,
+ 0x0600F60C,
+ 0x0600FD50,
+ },
+ {
+ { -951.0f, 0.0f, -1075.0f },
+ { 1075.0f, 1014.0f, 1075.0f },
+ 22,
+ 0x0600F3F4,
+ 0x0600F5AC,
+ },
+ {
+ { -951.0f, 0.0f, -1075.0f },
+ { 1075.0f, 384.0f, 1075.0f },
+ 22,
+ 0x0600F1DC,
+ 0x0600F394,
+ },
+ {
+ { -1554.0f, -2.0f, -1401.0f },
+ { 1554.0f, 590.0f, 1401.0f },
+ 262,
+ 0x06010294,
+ 0x0601170C,
+ },
+ {
+ { -1386.0f, -696.0f, -2274.0f },
+ { 1386.0f, 1033.0f, 1833.0f },
+ 316,
+ 0x06007558,
+ 0x06008E08,
+ },
+ {
+ { -671.0f, 0.0f, -671.0f },
+ { 671.0f, 648.0f, 671.0f },
+ 250,
+ 0x06014FEC,
+ 0x06016374,
+ },
+};
+
+CollisionHeader2 D_800D2CA0[19] = {
+ {
+ { -951.0f, 0.0f, -1075.0f },
+ { 1075.0f, 594.0f, 1075.0f },
+ 22,
+ D_800D29E0,
+ D_800D2920,
+ },
+ {
+ { -1220.0f, 0.0f, -1315.0f },
+ { 1403.0f, 174.0f, 1308.0f },
+ 13,
+ 0x0603F338,
+ 0x0603F388,
+ },
+ {
+ { -1311.0f, 0.0f, -1120.0f },
+ { 1266.0f, 1465.0f, 1266.0f },
+ 36,
+ 0x0603F40C,
+ 0x0603F4E4,
+ },
+ {
+ { -435.0f, -10.0f, -435.0f },
+ { 435.0f, 174.0f, 435.0f },
+ 13,
+ D_800D2A64,
+ D_800D2AB4,
+ },
+ {
+ { -498.0f, -10.0f, -498.0f },
+ { 498.0f, 705.0f, 498.0f },
+ 4,
+ 0x0302EEE8,
+ 0x0302EF00,
+ },
+ {
+ { -1494.0f, -30.0f, -1494.0f },
+ { 1494.0f, 2115.0f, 1494.0f },
+ 4,
+ 0x0302EF6C,
+ 0x0302EF84,
+ },
+ {
+ { -623.0f, -10.0f, -623.0f },
+ { 623.0f, 200.0f, 623.0f },
+ 4,
+ 0x0302EFF0,
+ 0x0302F008,
+ },
+ {
+ { -488.0f, 0.0f, -568.0f },
+ { 488.0f, 148.0f, 567.0f },
+ 30,
+ 0x0602CACC,
+ 0x0602CB80,
+ },
+ {
+ { -900.0f, -110.0f, -1900.0f },
+ { 900.0f, 190.0f, 100.0f },
+ 2,
+ 0x06030E74,
+ 0x06030E80,
+ },
+ {
+ { -900.0f, -100.0f, -1000.0f },
+ { 900.0f, 250.0f, 100.0f },
+ 2,
+ 0x06030EB0,
+ 0x06030EBC,
+ },
+ {
+ { -900.0f, -190.0f, -1900.0f },
+ { 900.0f, 100.0f, 100.0f },
+ 2,
+ 0x06030EEC,
+ 0x06030EF8,
+ },
+ {
+ { -500.0f, -250.0f, -1010.0f },
+ { 500.0f, 100.0f, 100.0f },
+ 2,
+ 0x06030F28,
+ 0x06030F34,
+ },
+ {
+ { -1200.0f, 0.0f, -1800.0f },
+ { 0.0f, 900.0f, 1500.0f },
+ 4,
+ 0x06030F64,
+ 0x06030F7C,
+ },
+ {
+ { -400.0f, 0.0f, -900.0f },
+ { 400.0f, 0.0f, 0.0f },
+ 2,
+ 0x06030FC4,
+ 0x06030FD0,
+ },
+ {
+ { -74.0f, 0.0f, -84.0f },
+ { 74.0f, 125.0f, 84.0f },
+ 30,
+ 0x060320B8,
+ 0x0603216C,
+ },
+ {
+ { -1200.0f, 0.0f, -1315.0f },
+ { 1403.0f, 200.0f, 1308.0f },
+ 8,
+ 0x06031FB0,
+ 0x06031FE0,
+ },
+ {
+ { -600.0f, 0.0f, -657.0f },
+ { 701.0f, 100.0f, 654.0f },
+ 8,
+ 0x06031FB0,
+ 0x0603204C,
+ },
+ {
+ { -2965.0f, -16.0f, -2965.0f },
+ { 2965.0f, 544.0f, 2965.0f },
+ 14,
+ 0x0302F044,
+ 0x0302F098,
+ },
+ {
+ { -814.0f, 0.0f, -691.0f },
+ { 814.0f, 752.0f, 691.0f },
+ 28,
+ 0x06032388,
+ 0x06032430,
+ },
+};
diff --git a/src/main/fox_A48A0.c b/src/main/fox_A48A0.c
new file mode 100644
index 00000000..797d95e4
--- /dev/null
+++ b/src/main/fox_A48A0.c
@@ -0,0 +1,47 @@
+#include "global.h"
+
+void func_800A3CA0(void) {
+ Matrix_Push(&gGfxMatrix);
+ Matrix_LookAt(gGfxMatrix, D_80177978, D_80177980, D_80177988, D_801779A0, D_801779B8, D_801779C0, 0.0f, 1.0f, 0.0f,
+ 1);
+ Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -200.0f, 1);
+ Matrix_RotateY(gGfxMatrix, gChangedInput[D_801778A0].stick_x * 0.017453292f, 1);
+ Matrix_RotateX(gGfxMatrix, gChangedInput[D_801778A0].stick_y * 0.017453292f, 1);
+ Matrix_SetGfxMtx(&gMasterDisp);
+ RCP_SetupDL_23();
+ Matrix_Pop(&gGfxMatrix);
+}
+
+void func_800A3E00(void) {
+ switch (D_80177868) {
+ case 0:
+ if (D_8017783C == 0) {
+ D_80177868 = 1;
+ }
+ break;
+ case 1:
+ D_80177868 = 2;
+ D_80177898 = 7;
+ D_801779B8 = 0.0f;
+ D_801779A0 = D_801779B8;
+ D_80177988 = D_801779A0;
+ D_80177980 = D_80177988;
+ D_80177978 = D_80177980;
+ D_801779C0 = -10.0f;
+ break;
+ case 2:
+ if ((gChangedInput[0].button & START_BUTTON) || (gChangedInput[1].button & START_BUTTON)) {
+ func_8001D638(0);
+ D_80177868 = 3;
+ D_80177898 = 0;
+ func_800A5844();
+ D_8017783C = 0;
+ }
+ break;
+ case 3:
+ if (D_8017783C == 0) {
+ D_80177854 = 2;
+ }
+ break;
+ }
+}
diff --git a/src/main/fox_display.c b/src/main/fox_display.c
index c782101f..a7a59cbf 100644
--- a/src/main/fox_display.c
+++ b/src/main/fox_display.c
@@ -1,5 +1,7 @@
#include "global.h"
+char D_801619A0[100];
+
char* Graphics_ClearPrintBuffer(char* buf, s32 fill, s32 len) {
s32 i;
char* ptr = buf;
diff --git a/src/main/fox_edata_1C.c b/src/main/fox_edata_1C.c
index 6298db84..1afececf 100644
--- a/src/main/fox_edata_1C.c
+++ b/src/main/fox_edata_1C.c
@@ -325,405 +325,405 @@ f32 D_800CC038[] = {
// clang-format off
ObjectStruct_1C D_800CC124[0x190] = {
- { D_6015F00, 0, NULL, D_603E3E0, 800.0f, 0, 0, 39, 0, 0.0f, 0 },
- { D_602E9E0, 0, NULL, D_800CBF34, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_601BEC0, 0, NULL, D_800CBF34, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_602E7A0, 0, NULL, D_800CBF34, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_60244A0, 0, NULL, D_800CBF34, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_602E570, 0, NULL, D_800CBF34, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_60132B0, 0, NULL, D_603DCA4, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_602E080, 0, NULL, D_603DD40, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_60164F0, 0, NULL, D_800CBF34, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6014500, 0, NULL, D_800CBF34, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_602D5F0, 0, NULL, D_603DDF0, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- { D_601A7D0, 0, NULL, D_603DE8C, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- { D_6014B50, 0, NULL, D_603DEF4, 500.0f, 0, 0, 39, 0, 0.0f, 0 },
- { D_6016580, 0, NULL, D_603DF8C, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- { D_601B560, 0, func_80066EA8, D_603DFDC, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- { D_60361F0, 0, func_80066EA8, D_603E014, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- { D_6018E80, 0, func_80066EA8, D_603E030, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- { D_6035F10, 0, func_80066EA8, D_603E09C, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- { func_8018753C, 1, func_80187530, D_603E98C, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- { D_60153B0, 0, NULL, D_603E118, 100.0f, 0, 0, 39, 0, 0.0f, 0 },
- { D_601F5A0, 0, NULL, D_603E14C, 500.0f, 0, 0, 39, 0, 0.0f, 0 },
- { D_60137B0, 0, NULL, D_603E1B4, 400.0f, 0, 0, 39, 0, 0.0f, 0 },
- { D_6006A80, 0, NULL, D_603E21C, 400.0f, 0, 0, 39, 0, 0.0f, 0 },
- { D_6016270, 0, NULL, D_603E4A0, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6010E00, 0, NULL, D_603E9EC, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6014670, 0, NULL, D_603EA08, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6010A50, 0, NULL, D_603EA74, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_60143E0, 0, NULL, D_603EAE0, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6014A20, 0, NULL, D_603EB0C, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059B20, 1, func_800652CC, D_60064FC, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059B20, 1, func_800652CC, D_6006518, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059B20, 1, func_800652CC, D_6006564, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059B20, 1, func_800652CC, D_60065B0, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059B20, 1, func_800652CC, D_60065FC, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059B20, 1, func_800652CC, D_6006648, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059B20, 1, func_800652CC, D_6006694, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059B20, 1, func_800652CC, D_60066E0_f32, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059B20, 1, func_800652CC, D_600672C, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059B20, 1, func_800652CC, D_6006778, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059AEC, 1, func_8006D350, D_800CBF34, 6000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059F68, 1, func_80066D5C, D_603E4A4, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059FDC, 1, func_80066EA8, D_603E4DC, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059BBC, 1, func_8006B95C, D_603E514, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6024AC0, 0, NULL, D_602B9EC, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_600F560, 0, NULL, D_602BA20, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_600EC90, 0, NULL, D_602BAE4, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_600E820, 0, NULL, D_602BBD8, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_601FCB0, 0, NULL, D_602BC54, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_800594F0, 1, NULL, D_601B4E0, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_800595D0, 1, NULL, D_601B4FC, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6007410, 0, NULL, D_601B518, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6006F50, 0, NULL, D_601B584, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6005780, 0, func_80193540, D_601B5F4, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6003610, 0, NULL, D_601B644, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6000E00, 0, func_8006AA98, D_603E0EC, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6013B50, 0, NULL, D_603E88C, 1000.0f, 0, 0, 41, 0, 0.0f, 0 },
- { func_8018F31C, 2, func_8018F044, D_603E8A8, 1000.0f, 0, 0, 39, 0, 0.0f, 0 },
- { func_8018F8B8, 1, func_8018F4D8, D_6006BF0, 800.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_700BE00, 0, NULL, D_6006C44, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6024010, 0, NULL, D_603626C, 300.0f, 0, 0, 5, 0, 0.0f, 0 },
- { D_6027180, 0, NULL, D_6036288, 400.0f, 0, 0, 5, 0, 0.0f, 0 },
- { func_801A2A78, 1, NULL, D_60362A4, 200.0f, 0, 0, 5, 0, 0.0f, 0 },
- { D_60270E0, 0, NULL, D_800CBF34, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { D_6013960, 0, NULL, D_6036894, 500.0f, 0, 0, 5, 0, 0.0f, 0 },
- { D_600AF40, 0, NULL, D_60368E0, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_801A6608, 1, NULL, D_6036724, 400.0f, 0, 0, 0, 0, 0.0f, 0 },
- { D_601F1D0, 0, NULL, D_60362D8, 2500.0f, 0, 0, 5, 0, 0.0f, 0 },
- { D_60238F0, 0, NULL, D_6036328, 2000.0f, 0, 0, 5, 0, 0.0f, 0 },
- { D_601B7C0, 0, NULL, D_60362F4, 2500.0f, 0, 0, 5, 0, 0.0f, 0 },
- { D_6030500, 0, NULL, D_6036370, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { D_602DAE0, 0, NULL, D_603638C, 1900.0f, 0, 0, 0, 0, 0.0f, 0 },
- { D_6027900, 0, NULL, D_60363B8, 1900.0f, 0, 0, 0, 0, 0.0f, 0 },
- { D_602DB80, 0, NULL, D_60363E4, 1100.0f, 0, 0, 0, 0, 0.0f, 0 },
- { D_6030630, 0, NULL, D_6036410, 1100.0f, 0, 0, 0, 0, 0.0f, 0 },
- { D_602DC20, 0, NULL, D_603643C, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
- { D_601B0D0, 0, NULL, D_6036760, 3000.0f, 0, 0, 0, 0, 0.0f, 0 },
- { D_60075D0, 0, NULL, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A2B24, 1, NULL, D_6036344, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A2B24, 1, NULL, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A2B24, 1, NULL, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A2B24, 1, NULL, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A2B24, 1, NULL, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A2B24, 1, NULL, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A3240, 1, func_801A2DD8, D_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A2B24, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A2B24, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A2B24, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A2B24, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A2B24, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A2B24, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A2B24, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A2B24, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A23AC, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A23AC, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A23AC, 1, NULL, D_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A23AC, 1, NULL, D_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A23AC, 1, NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A23AC, 1, NULL, D_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A23AC, 1, NULL, D_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A23AC, 1, NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A23AC, 1, NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A23AC, 1, NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A23AC, 1, NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A23AC, 1, NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A23AC, 1, func_801A0BD8, D_6036594, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A23AC, 1, NULL, D_6036204, 1300.0f, 0, 0, 0, 0, 0.0f, 0 },
- { D_60097E0, 0, NULL, D_6034478, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
- { D_601D730, 0, NULL, D_603450C, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
- { D_60102C0, 0, NULL, D_6034588, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
- { D_60036A0, 0, func_801A4E44, D_6034664, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
- { D_6005360, 0, NULL, D_6034770, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
- { func_80074F90, 1, NULL, D_800CBF34, 2000.0f, 0, 0, 0, 0, 0.0f, 0 },
- { D_600F6C0, 0, func_801A52B8, D_60347F0, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
- { D_601B610, 0, NULL, D_800CBF34, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_601C6A0, 0, NULL, D_800CBF34, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_60188D0, 0, NULL, D_603486C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_60034D0, 0, NULL, D_60347D4, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_60231C0, 0, NULL, D_6030C60, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6011EE0, 0, NULL, D_6030C7C, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
- { D_6015730, 0, NULL, D_6030D74, 2000.0f, 0, 0, 39, 0, 0.0f, 0 },
- { D_601DE60, 0, NULL, D_6030DF8, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_602B4C0, 0, NULL, D_6030E14, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_600EE10, 0, NULL, D_6030E30, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
- { D_60120F0, 0, NULL, D_6030E4C, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
- { D_600EEF0, 0, NULL, D_800CBF34, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
- { D_600BF80, 0, NULL, D_6030E68, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
- { func_801BE1FC, 1, NULL, D_800CBF34, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
- { D_9005C80, 0, func_801924A8, D_601B678, 1000.0f, 0, 0, 42, 0, 0.0f, 0 },
- { D_9003F50, 0, NULL, D_601B6C4, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
- { D_900F060, 0, NULL, D_601B710, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
- { D_900F1D0, 0, NULL, D_601B75C, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
- { func_801935D4, 1, func_8019356C, D_C038BD8, 500.0f, 0, 0, 41, 0, 0.0f, 0 },
- { func_8019350C, 1, func_80193380, D_C038A48, 500.0f, 0, 0, 41, 0, 0.0f, 0 },
- { D_60030F0, 0, NULL, D_6009CC4, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
- { D_6003000, 0, NULL, D_C038BA4, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
- { D_6006890_Gfx, 0, NULL, D_C038B40, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
- { D_6002990, 0, NULL, D_C038B40, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
- { D_6004170, 0, NULL, D_800CBF34, 0.0f, 0, 0, 0, 1, 0.0f, 0 },
- { D_3017600, 0, NULL, D_302EE64, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_3017600, 0, NULL, D_302EE80, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_30173C0, 0, NULL, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_30174E0, 0, NULL, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_301B080, 0, NULL, D_302EE9C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_3016B00, 0, NULL, D_302EE00, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_3013780, 0, NULL, D_302ED4C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_3013580, 0, NULL, D_302ED98, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_3012ED0, 0, NULL, D_302EDB4, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { NULL, 0, NULL, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
- { D_60079B0, 0, NULL, D_600FF80, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6007D80, 0, NULL, D_600FFA0, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6006310, 0, NULL, D_600FFC0, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_60066E0_Gfx, 0, NULL, D_600FEB8, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_600F4C0, 0, NULL, D_6011C10, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_600B8B0, 0, NULL, D_6011C48, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_600BAF0, 0, NULL, D_601115C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { NULL, 0, NULL, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80197CB8, 1, NULL, D_6034368, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6001DA0, 0, NULL, D_600924C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6001360, 0, NULL, D_60092E8, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6008370, 0, NULL, D_601668C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_6010960, 0, NULL, D_6016714, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_602F7C0, 0, func_80068FE0, D_603E468, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_601C9B0, 0, func_80068FE0, D_603E484, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_600A420, 0, func_80068FE0, D_600FE9C, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059C40, 1, NULL, D_800CBF34, 1800.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_602DCA0, 0, NULL, D_800CBF34, -100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_601F500, 0, NULL, D_800CBF34, -100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059C34, 1, func_80066E8C, D_800CBF34, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80059850, 1, NULL, D_800CBF34, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { D_60023B0, 0, func_8018F038, D_60068BC, 100.0f, 0, 0, 0, 0, 0.0f, 0 },
- { NULL, 1, func_801875A4, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
- { NULL, 1, func_801922DC, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
- { NULL, 1, func_80192358, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
- { NULL, 1, func_801923C0, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
- { NULL, 1, func_8019243C, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
- { NULL, 1, NULL, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_8018BAAC, 2, func_8018AED0, D_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
- { func_8018BBA4, 2, func_8018B15C, D_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
- { func_8018BBF8, 2, func_8018B418, D_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
- { func_8018BD7C, 2, func_8018B58C, D_603E604, 500.0f, 0, 0, 39, 1, 0.0f, 1 },
- { func_8005B6A4, 1, func_80066A80, D_800CBF34, 1000.0f, 0, 0, 39, 0, 0.0f, 1 },
- { D_6018C00, 0, func_8018756C, D_602F6EC, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
- { func_8005B71C, 1, func_80187650, D_602F708, 100.0f, 0, 1, 39, 0, 1.0f, 1 },
- { func_8018DA6C, 1, func_8018D9EC, D_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
- { func_8018DAEC, 1, func_8018D9EC, D_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
- { func_8018DB6C, 1, func_8018D9EC, D_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
- { func_8005B7CC, 1, func_8018795C, D_602F724, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
- { D_6018450, 0, func_801877C4, D_602F740, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
- { func_801BEC74, 1, func_801BEC68, D_6030BE0, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
- { func_8005A094, 1, func_8006C008, D_800CBF34, 0.0f, 0, 0, 39, 0, 0.0f, 0 },
- { func_8005B848, 1, func_800656D4, D_800CBFE4, 100.0f, 0, 1, 39, 0, 1.0f, 0 },
- { func_8005B848, 1, func_800656D4, D_800CBFE4, 100.0f, 0, 1, 39, 0, 1.0f, 0 },
- { func_8005B9A4, 1, func_8006654C, D_603E54C, 200.0f, 0, 1, 39, 0, 50.0f, 1 },
- { func_8005BA30, 1, func_800669A0, D_603E598, 100.0f, 0, 1, 39, 0, 0.0f, 0 },
- { func_8006B74C, 1, func_8006B094, D_800CC000, 200.0f, 0, 1, 39, 0, 0.0f, 1 },
- { func_8004FEC0, 1, func_8004F8AC, D_800CBF34, 20000.0f, 0, 1, 39, 0, 0.0f, 0 },
- { func_80059BF0, 1, func_8006BB78, D_603E5B4, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
- { func_80035448, 1, func_800319AC, D_800CC038, 20000.0f, 0, 1, 39, 1, 1.0f, 1 },
- { func_80035448, 1, func_80092EC0, D_800CC01C, 20000.0f, 0, 0, 39, 1, 0.0f, 0 },
- { func_80188448, 1, func_801880E4, D_800CBF34, 20000.0f, 0, 0, 39, 1, 0.0f, 0 },
- { func_80074FF0, 1, func_80072594, D_800CBF34, 2000.0f, 0, 1, 39, 0, 0.0f, 1 },
- { func_800598E8, 1, func_8006AC08, D_602F684, 100.0f, 0, 1, 39, 0, 1.0f, 1 },
- { func_80059A24, 1, func_8006AD18, D_602F6A0, 100.0f, 0, 1, 39, 0, 180.0f, 1 },
- { func_8018F884, 1, func_8018F330, D_800CBF34, 1000.0f, 0, 0, 39, 0, 0.0f, 0 },
- { func_801A4CB0, 1, func_801A3BD4, D_603405C, 1000.0f, 0, 0, 39, 0, 1.0f, 1 },
- { func_801A12C4, 1, func_8019C778, D_60359C8, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_801A12C4, 1, func_801AC438, D_6035A48, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_801AC294, 2, func_801A7E7C, D_603677C, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_801A12C4, 1, func_8019EA60, D_6035A14, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_801A12C4, 1, func_8019D700, D_6035AE0, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_801A12C4, 1, func_8019CE88, D_6035D9C, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_801A12C4, 1, func_8019E410, D_6035E04, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_801A12C4, 1, func_8019FF9C, D_60360C0, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_801A12C4, 1, func_8019EE68, D_6036154, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_801A43BC, 1, func_801A3E98, D_6036458, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_801A4A64, 1, func_801A46A0, D_60364C0, 300.0f, 0, 1, 40, 1, 0.0f, 1 },
- { func_801A5F90, 1, func_801A5E54, D_60366EC, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_801A6100, 1, func_801A5FD0, D_6036708, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_801A6540, 1, func_801A6144, D_6036728, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_801A68EC, 1, func_801A67C8, D_6036744, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_801ADAC8, 1, func_801AD6F0, D_6036930, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_801AE2C0, 1, func_801ADD68, D_603694C, 300.0f, 0, 0, 40, 1, 1.0f, 0 },
- { func_801AEEFC, 1, func_801AEC04, D_6036968, 300.0f, 0, 0, 40, 1, 1.0f, 0 },
- { func_801A54E8, 1, func_801A4B24, D_60364DC, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
- { NULL, 1, func_80189194, D_800CBF34, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- { D_700AB70, 0, func_8018AB44, D_60064AC, 50.0f, 0, 0, 39, 1, 1.0f, 0 },
- { func_80189AFC, 1, func_801895B8, D_60064C8, 300.0f, 0, 0, 39, 1, 70.0f, 1 },
- { func_8018E5B4, 1, func_8018E54C, D_60067C4, 0.0f, 0, 0, 39, 1, 0.0f, 0 },
- { func_8018EF14, 1, func_8018E5F8, D_6006808, 0.0f, 0, 0, 39, 1, 1.0f, 1 },
- { func_8018E2D8, 1, func_8018C8A8, D_6006A3C, 1000.0f, 0, 0, 20, 1, 0.0f, 1 },
- { func_8018AABC, 1, func_8018A544, D_600683C, 0.0f, 0, 1, 39, 1, 0.0f, 1 },
- { func_8018BE84, 1, func_8018B9D0, D_6006858, 0.0f, 0, 0, 39, 1, 0.0f, 1 },
- { func_8018B6AC, 1, func_8018B268, D_6006890_f32, 0.0f, 0, 0, 39, 1, 20.0f, 1 },
- { func_8018A1C0, 1, func_80189CC8, D_60068F0, 200.0f, 0, 0, 39, 1, 1.0f, 1 },
- { func_80077218, 1, func_800771CC, D_800CBF34, 2000.0f, 0, 0, 39, 0, 0.0f, 5 },
- { func_80190430, 2, func_801904CC, D_602C294, 1000.0f, 0, 1, 40, 0, 1.0f, 1 },
- { func_80190F08, 1, func_80190A00, D_602BC58, 5000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_8006A978, 1, func_8006A96C, D_800CBF34, 200.0f, 0, 0, 40, 0, 0.0f, 2 },
- { func_801914C4, 2, func_80191010, D_800CBE8C, 200.0f, 0, 1, 40, 0, 1.0f, 1 },
- { NULL, 1, NULL, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_80191B4C, 1, func_80191680, D_800CBE8C, 1500.0f, 0, 1, 40, 0, 20.0f, 0 },
- { func_80191DB0, 1, func_80191BC4, D_800CBE70, 1500.0f, 0, 1, 40, 0, 0.0f, 0 },
- { func_80191FFC, 2, func_80192094, D_602BE3C, 500.0f, 0, 0, 40, 0, 1.0f, 0 },
- { func_80192C18, 2, func_80192834, D_800CBE8C, 0.0f, 0, 1, 40, 0, 1.0f, 1 },
- { func_80193240, 2, func_80192E64, D_602BE58, 2000.0f, 0, 0, 40, 0, 50.0f, 0 },
- { func_8019983C, 1, func_8019969C, D_800CBE8C, 200.0f, 0, 0, 40, 0, 1.0f, 0 },
- { func_80199E24, 1, func_80199A28, D_800CBE8C, 2000.0f, 0, 0, 40, 0, 1.0f, 0 },
- { func_8019D3C4, 1, func_8019D15C, D_602BFC4, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_8019A1FC, 1, func_80199F10, D_800CBEA8, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_8019ACCC, 1, func_8019A5D4, D_800CBEC4, 5000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_8019B7DC, 1, func_8019B548, D_602C1D4, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_8019BDE0, 2, func_8019B854, D_602C218, 1000.0f, 0, 0, 40, 0, 1.0f, 1 },
- { func_8019C1CC, 1, func_8019BE48, D_602C234, 200.0f, 0, 0, 40, 0, 80.0f, 1 },
- { func_8019C83C, 1, func_8019C454, D_602C250, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_8019CE58, 1, func_8019CBEC, D_602C2B0, 300.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801AE168, 1, func_801AD6C0, D_6030BFC, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_801AEB44, 1, func_801AE3D8, D_6030C18, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_801B099C, 1, func_801AFA5C, D_6030C44, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_801B0EC0, 1, func_801B0B60, D_800CBE8C, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_801B619C, 2, func_801B638C, D_6031398, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_801B90DC, 2, func_801B7C78, D_60313CC, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_801B504C, 2, func_801B50E8, D_6031400, 300.0f, 0, 0, 40, 0, 0.0f, 1 },
- { func_801B7A24, 2, func_801B6FF8, D_603144C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_801BA108, 2, func_801B91A4, D_6031480, 200.0f, 0, 0, 40, 0, 0.0f, 1 },
- { func_801BA4E4, 1, func_801BA26C, D_800CBE8C, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801BAD7C, 1, func_801BA6A4, D_6031500, 200.0f, 0, 0, 40, 0, 0.0f, 1 },
- { func_801BB204, 2, func_801BADF8, D_6031538, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801BC930, 2, func_801BB79C, D_6031554, 800.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_801BDE6C, 1, func_801BD54C, D_6031570, 10000.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801BD264, 1, func_801BC9A0, D_6030D20, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_801BEB1C, 1, func_801BE3F8, D_60314C8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_8002E694, 2, func_8002E670, D_6011B24, 0.0f, 0, 0, 39, 0, 730.0f, 1 },
- { func_8002E6DC, 1, func_8002E6B8, D_6011BF4, 0.0f, 0, 0, 39, 0, 150.0f, 1 },
- { func_80188FE4, 2, func_80188AD0, D_600FF30, 0.0f, 0, 0, 39, 0, 220.0f, 1 },
- { func_8019E3A8, 1, func_8019E234, D_800CBEC4, 0.0f, 0, 0, 39, 0, 1.0f, 0 },
- { func_8019F7AC, 1, func_8019F20C, D_800CBE8C, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
- { func_8019F7AC, 1, func_8019F20C, D_800CBE8C, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
- { func_8019F7AC, 1, func_8019F20C, D_800CBEC4, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
- { NULL, 1, func_8019EA7C, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 1 },
- { NULL, 1, func_801A003C, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 1 },
- { D_900DD20, 0, func_80192518, D_601B7F8, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_80192E2C, 1, func_80192CD4, D_601B830, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
- { D_901DA50, 0, func_80192CD4, D_601B868, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
- { D_9023AD0, 0, func_80192EB0, D_601B8A0, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
- { func_801934D0, 1, func_801933DC, D_601B8D8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80193244, 1, func_80192E94, D_800CBE8C, 1000.0f, 0, 0, 20, 0, 1.0f, 1 },
- { func_80188660, 1, func_80188528, D_800CBE8C, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
- { NULL, 1, func_80189724, D_800CBF34, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
- { NULL, 1, func_801893B8, D_800CBF34, 1000.0f, 0, 0, 20, 1, 0.0f, 0 },
- { func_800596B0, 1, func_80189470, D_800CBF34, 1000.0f, 0, 0, 20, 1, 0.0f, 0 },
- { NULL, 1, func_8018933C, D_800CBF34, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
- { func_80067874, 1, func_8006753C, D_800CBEA8, 1000.0f, 0, 0, 0, 0, 1.0f, 0 },
- { func_8018AA74, 2, func_80189058, D_603E620, 20000.0f, 0, 0, 40, 1, 0.0f, 10 },
- { func_8018ECAC, 1, func_8018C19C, D_603E840, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_8018ED78, 1, func_8018DDAC, D_603E714, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_8018EE84, 1, func_8018E290, D_603E748, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_8018EF90, 1, func_8018E76C, D_603E7C4, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_8018BACC, 1, func_8018978C, D_602F75C, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_801887D0, 1, func_80188344, D_602FA50, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_80042FC4, 2, func_80042FB8, D_800CBF34, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_80042FE8, 1, func_80042FDC, D_800CBF34, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_801BEC5C, 1, func_801BEC50, D_6030B10, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_8018C54C, 1, func_80187944, D_6028454, 2000.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_80193434, 2, func_80190078, D_6032550, 20000.0f, 0, 0, 20, 0, 0.0f, 10 },
- { func_8018FF84, 2, func_8018FE38, D_6032488, 1000.0f, 0, 0, 20, 0, 0.0f, 10 },
- { func_80190020, 2, func_8018FF20, D_60324EC, 1000.0f, 0, 0, 20, 0, 0.0f, 10 },
- { func_801982A8, 1, func_80197A94,D_E6A810_801B83A8, 1000.0f, 0, 0, 40, 1, 0.0f, 10 },
- { func_801949DC, 2, func_80194A84, D_602C044, 1000.0f, 0, 0, 40, 0, 1.0f, 10 },
- { func_8008FE78, 1, func_800907C4, D_600FFE0, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
- { func_8002E604, 1, func_8002E5E0, D_800CBF34, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
- { func_8002E64C, 1, func_8002E628, D_800CBF34, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
- { func_80191AFC, 2, func_801912FC, D_6011C80, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
- { func_80196288, 2, func_80196210, D_60166F4, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
- { func_8019E98C, 1, func_8019E454, D_6009388, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_8019E2C4, 2, func_8019C888, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_801A71B8, 2, func_801A5B3C, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_801968F4, 1, func_801946C4, D_6011058, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_80193B1C, 1, func_80193718, D_601115C, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
- { func_801B4D84, 2, func_801B134C, D_6030F74, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_801985E4, 1, func_80194398,D_DF4260_8019A9B8, 3000.0f, 0, 0, 40, 1, 0.0f, 10 },
- { func_801928C8, 2, func_8018DBF0, D_C038DC0, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_8018B8C0, 1, func_80189B70, D_C038F24, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
- { func_8005CC9C, 1, func_80067F6C, D_800CBFA8, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_8005C5F0, 1, func_80068914, D_800CBF38, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_8005C900, 1, func_80068020, D_800CBF54, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_8005C9C0, 1, func_800685D8, D_800CBF54, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_8005CDA8, 1, func_80068688, D_800CBF70, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_8005CB44, 1, func_80067BEC, D_800CBFC8, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
- { NULL, 1, func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { NULL, 1, func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { NULL, 1, func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { NULL, 1, func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { NULL, 1, func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { NULL, 1, func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { NULL, 1, func_80068C48, D_800CBF18, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
- { D_1022120, 0, func_80067B1C, D_800CBE8C, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_8005CA80, 1, func_800685F8, D_800CBF54, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
- { D_3007650, 0, func_80068618, D_800CBFA8, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
- { D_6006140, 0, func_80198968, D_6009CFC, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_8007D55C, 1, func_8007D2F4, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
- { func_8007D55C, 1, func_8007D748, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
- { func_8007D55C, 1, func_8007D8A8, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
- { func_8007E330, 1, func_8007E298, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
- { func_8007CAF0, 1, func_8007C9E0, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
- { func_8007868C, 1, func_8007E014, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
- { func_8007879C, 1, func_8007E258, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
- { func_800788B0, 1, func_8007F438, NULL, -200.0f, 1, 0, 0, 0, 0.0f, 0 },
- { func_800783C0, 1, func_8007B758, NULL, 100.0f, 1, 0, 40, 0, 0.0f, 0 },
- { func_80078A64, 1, func_8007F6B0, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
- { NULL, 1, func_8007F958, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
- { NULL, 1, func_8007FBE0, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
- { func_80078438, 1, func_8007E3E4, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
- { func_800784B4, 1, func_8007B62C, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
- { func_80078B8C, 1, func_8007FE88, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
- { func_80197C64, 1, func_8007FE88, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
- { func_80078AEC, 1, func_800802B8, NULL, 100.0f, 1, 0, 20, 1, 0.0f, 0 },
- { func_80078C84, 1, func_800802F8, NULL, 100.0f, 1, 0, 20, 0, 0.0f, 0 },
- { func_800798F0, 1, func_8007968C, NULL, 100.0f, 0, 1, 0, 0, 0.0f, 0 },
- { func_80192A68, 1, func_80192984, NULL, 100.0f, 1, 1, 0, 0, 0.0f, 0 },
- { func_8007AA60, 1, func_8007A994, NULL, -100.0f, 1, 2, 0, 0, 0.0f, 0 },
- { func_8007BEE8, 1, func_8007BE54, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
- { func_8007BEE8, 1, func_8007BDE0, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
- { func_8007BEE8, 1, func_8007BCE8, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
- { func_80094BBC, 1, func_80094954, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
- { func_8007B9DC, 1, func_8007B960, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
- { func_8007E5CC, 1, func_8007E45C, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
- { func_80078550, 1, func_801AC918, NULL, 100.0f, 1, 2, 0, 0, 0.0f, 0 },
- { func_80078604, 1, func_8007E648, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
- { func_80188FA8, 1, func_80188F60, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
- { func_8018DCE4, 1, func_80188CAC, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
- { func_8018DBEC, 1, func_80188FAC, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
- { func_8018DE14, 1, func_80189114, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
- { func_80077A00, 1, func_8007AB50, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
- { NULL, 1, func_8007A748, NULL, 500.0f, 0, 1, 0, 0, 0.0f, 0 },
- { func_8007DED4, 1, func_8007DB70, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
- { func_8007DAE4, 1, func_8007DA58, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
- { func_80078CE8, 1, func_80080360, NULL, -200.0f, 1, 0, 0, 0, 0.0f, 0 },
- { func_80078BE0, 1, func_800802D8, NULL, 100.0f, 1, 0, 20, 0, 0.0f, 0 },
- { func_801A5AF0, 1, func_801A57D0, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
- { func_801AEAA0, 1, func_801AE87C, NULL, 100.0f, 1, 1, 0, 0, 0.0f, 0 },
- { func_801A5D68, 1, func_801A5B4C, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
- { func_80077A7C, 1, func_8007B0F4, NULL, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { NULL, 1, func_8007B040, NULL, 200.0f, 0, 1, 0, 0, 0.0f, 0 },
- { func_8007A3C0, 1, func_8007A28C, NULL, 10000.0f, 0, 1, 0, 0, 0.0f, 0 },
- { func_80077B84, 1, func_8007B3B8, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
- { func_80078038, 1, func_8007B5C0, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
- { NULL, 1, func_8007C250, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
- { NULL, 1, func_8007C8C4, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
- { func_80077B78, 1, func_8007B670, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
- { func_800780F8, 1, func_8007B67C, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
- { NULL, 1, func_8007C50C, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
- { func_80083B8C, 1, func_800837EC, NULL, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- { func_801A0AF0, 1, func_801A0120, NULL, 300.0f, 1, 2, 10, 0, 0.0f, 0 },
- { func_80078F78, 1, func_80078EBC, NULL, 300.0f, 1, 1, 0, 0, 0.0f, 0 },
- { func_80080D04, 1, func_80080ACC, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
- { func_80082F78, 1, func_80081C5C, NULL, 300.0f, 0, 1, 40, 0, 0.0f, 0 },
- { func_8018CF98, 1, func_8018CAD4, NULL, 2000.0f, 0, 1, 40, 2, 0.0f, 0 },
- { func_80191180, 1, func_80191054, NULL, 2000.0f, 0, 1, 20, 0, 0.0f, 0 },
- { func_8008092C, 1, func_8008040C, NULL, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- { func_80084194, 1, func_80083FA8, NULL, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6015F00, 0, (ObjectFunc) NULL, D_603E3E0, 800.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) D_602E9E0, 0, (ObjectFunc) NULL, D_800CBF34, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_601BEC0, 0, (ObjectFunc) NULL, D_800CBF34, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_602E7A0, 0, (ObjectFunc) NULL, D_800CBF34, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_60244A0, 0, (ObjectFunc) NULL, D_800CBF34, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_602E570, 0, (ObjectFunc) NULL, D_800CBF34, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_60132B0, 0, (ObjectFunc) NULL, D_603DCA4, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_602E080, 0, (ObjectFunc) NULL, D_603DD40, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_60164F0, 0, (ObjectFunc) NULL, D_800CBF34, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6014500, 0, (ObjectFunc) NULL, D_800CBF34, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_602D5F0, 0, (ObjectFunc) NULL, D_603DDF0, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) D_601A7D0, 0, (ObjectFunc) NULL, D_603DE8C, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) D_6014B50, 0, (ObjectFunc) NULL, D_603DEF4, 500.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) D_6016580, 0, (ObjectFunc) NULL, D_603DF8C, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) D_601B560, 0, (ObjectFunc) func_80066EA8, D_603DFDC, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) D_60361F0, 0, (ObjectFunc) func_80066EA8, D_603E014, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) D_6018E80, 0, (ObjectFunc) func_80066EA8, D_603E030, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) D_6035F10, 0, (ObjectFunc) func_80066EA8, D_603E09C, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) func_8018753C, 1, (ObjectFunc) func_80187530, D_603E98C, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) D_60153B0, 0, (ObjectFunc) NULL, D_603E118, 100.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) D_601F5A0, 0, (ObjectFunc) NULL, D_603E14C, 500.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) D_60137B0, 0, (ObjectFunc) NULL, D_603E1B4, 400.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) D_6006A80, 0, (ObjectFunc) NULL, D_603E21C, 400.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) D_6016270, 0, (ObjectFunc) NULL, D_603E4A0, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6010E00, 0, (ObjectFunc) NULL, D_603E9EC, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6014670, 0, (ObjectFunc) NULL, D_603EA08, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6010A50, 0, (ObjectFunc) NULL, D_603EA74, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_60143E0, 0, (ObjectFunc) NULL, D_603EAE0, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6014A20, 0, (ObjectFunc) NULL, D_603EB0C, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059B20, 1, (ObjectFunc) func_800652CC, D_60064FC, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059B20, 1, (ObjectFunc) func_800652CC, D_6006518, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059B20, 1, (ObjectFunc) func_800652CC, D_6006564, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059B20, 1, (ObjectFunc) func_800652CC, D_60065B0, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059B20, 1, (ObjectFunc) func_800652CC, D_60065FC, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059B20, 1, (ObjectFunc) func_800652CC, D_6006648, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059B20, 1, (ObjectFunc) func_800652CC, D_6006694, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059B20, 1, (ObjectFunc) func_800652CC, D_60066E0_f32, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059B20, 1, (ObjectFunc) func_800652CC, D_600672C, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059B20, 1, (ObjectFunc) func_800652CC, D_6006778, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059AEC, 1, (ObjectFunc) func_8006D350, D_800CBF34, 6000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059F68, 1, (ObjectFunc) func_80066D5C, D_603E4A4, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059FDC, 1, (ObjectFunc) func_80066EA8, D_603E4DC, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059BBC, 1, (ObjectFunc) func_8006B95C, D_603E514, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6024AC0, 0, (ObjectFunc) NULL, D_602B9EC, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_600F560, 0, (ObjectFunc) NULL, D_602BA20, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_600EC90, 0, (ObjectFunc) NULL, D_602BAE4, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_600E820, 0, (ObjectFunc) NULL, D_602BBD8, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_601FCB0, 0, (ObjectFunc) NULL, D_602BC54, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_800594F0, 1, (ObjectFunc) NULL, D_601B4E0, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_800595D0, 1, (ObjectFunc) NULL, D_601B4FC, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6007410, 0, (ObjectFunc) NULL, D_601B518, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6006F50, 0, (ObjectFunc) NULL, D_601B584, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6005780, 0, (ObjectFunc) func_80193540, D_601B5F4, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6003610, 0, (ObjectFunc) NULL, D_601B644, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6000E00, 0, (ObjectFunc) func_8006AA98, D_603E0EC, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6013B50, 0, (ObjectFunc) NULL, D_603E88C, 1000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ {(void*) func_8018F31C, 2, (ObjectFunc) func_8018F044, D_603E8A8, 1000.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) func_8018F8B8, 1, (ObjectFunc) func_8018F4D8, D_6006BF0, 800.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_700BE00, 0, (ObjectFunc) NULL, D_6006C44, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6024010, 0, (ObjectFunc) NULL, D_603626C, 300.0f, 0, 0, 5, 0, 0.0f, 0 },
+ {(void*) D_6027180, 0, (ObjectFunc) NULL, D_6036288, 400.0f, 0, 0, 5, 0, 0.0f, 0 },
+ {(void*) func_801A2A78, 1, (ObjectFunc) NULL, D_60362A4, 200.0f, 0, 0, 5, 0, 0.0f, 0 },
+ {(void*) D_60270E0, 0, (ObjectFunc) NULL, D_800CBF34, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) D_6013960, 0, (ObjectFunc) NULL, D_6036894, 500.0f, 0, 0, 5, 0, 0.0f, 0 },
+ {(void*) D_600AF40, 0, (ObjectFunc) NULL, D_60368E0, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_801A6608, 1, (ObjectFunc) NULL, D_6036724, 400.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) D_601F1D0, 0, (ObjectFunc) NULL, D_60362D8, 2500.0f, 0, 0, 5, 0, 0.0f, 0 },
+ {(void*) D_60238F0, 0, (ObjectFunc) NULL, D_6036328, 2000.0f, 0, 0, 5, 0, 0.0f, 0 },
+ {(void*) D_601B7C0, 0, (ObjectFunc) NULL, D_60362F4, 2500.0f, 0, 0, 5, 0, 0.0f, 0 },
+ {(void*) D_6030500, 0, (ObjectFunc) NULL, D_6036370, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) D_602DAE0, 0, (ObjectFunc) NULL, D_603638C, 1900.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) D_6027900, 0, (ObjectFunc) NULL, D_60363B8, 1900.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) D_602DB80, 0, (ObjectFunc) NULL, D_60363E4, 1100.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) D_6030630, 0, (ObjectFunc) NULL, D_6036410, 1100.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) D_602DC20, 0, (ObjectFunc) NULL, D_603643C, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) D_601B0D0, 0, (ObjectFunc) NULL, D_6036760, 3000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) D_60075D0, 0, (ObjectFunc) NULL, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A2B24, 1, (ObjectFunc) NULL, D_6036344, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A2B24, 1, (ObjectFunc) NULL, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A2B24, 1, (ObjectFunc) NULL, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A2B24, 1, (ObjectFunc) NULL, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A2B24, 1, (ObjectFunc) NULL, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A2B24, 1, (ObjectFunc) NULL, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A3240, 1, (ObjectFunc) func_801A2DD8, D_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A2B24, 1, (ObjectFunc) NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A2B24, 1, (ObjectFunc) NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A2B24, 1, (ObjectFunc) NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A2B24, 1, (ObjectFunc) NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A2B24, 1, (ObjectFunc) NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A2B24, 1, (ObjectFunc) NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A2B24, 1, (ObjectFunc) NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A2B24, 1, (ObjectFunc) NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A23AC, 1, (ObjectFunc) NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A23AC, 1, (ObjectFunc) NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A23AC, 1, (ObjectFunc) NULL, D_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A23AC, 1, (ObjectFunc) NULL, D_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A23AC, 1, (ObjectFunc) NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A23AC, 1, (ObjectFunc) NULL, D_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A23AC, 1, (ObjectFunc) NULL, D_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A23AC, 1, (ObjectFunc) NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A23AC, 1, (ObjectFunc) NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A23AC, 1, (ObjectFunc) NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A23AC, 1, (ObjectFunc) NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A23AC, 1, (ObjectFunc) NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A23AC, 1, (ObjectFunc) func_801A0BD8, D_6036594, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A23AC, 1, (ObjectFunc) NULL, D_6036204, 1300.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) D_60097E0, 0, (ObjectFunc) NULL, D_6034478, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ {(void*) D_601D730, 0, (ObjectFunc) NULL, D_603450C, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ {(void*) D_60102C0, 0, (ObjectFunc) NULL, D_6034588, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ {(void*) D_60036A0, 0, (ObjectFunc) func_801A4E44, D_6034664, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ {(void*) D_6005360, 0, (ObjectFunc) NULL, D_6034770, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ {(void*) func_80074F90, 1, (ObjectFunc) NULL, D_800CBF34, 2000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) D_600F6C0, 0, (ObjectFunc) func_801A52B8, D_60347F0, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ {(void*) D_601B610, 0, (ObjectFunc) NULL, D_800CBF34, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_601C6A0, 0, (ObjectFunc) NULL, D_800CBF34, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_60188D0, 0, (ObjectFunc) NULL, D_603486C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_60034D0, 0, (ObjectFunc) NULL, D_60347D4, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_60231C0, 0, (ObjectFunc) NULL, D_6030C60, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6011EE0, 0, (ObjectFunc) NULL, D_6030C7C, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ {(void*) D_6015730, 0, (ObjectFunc) NULL, D_6030D74, 2000.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) D_601DE60, 0, (ObjectFunc) NULL, D_6030DF8, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_602B4C0, 0, (ObjectFunc) NULL, D_6030E14, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_600EE10, 0, (ObjectFunc) NULL, D_6030E30, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ {(void*) D_60120F0, 0, (ObjectFunc) NULL, D_6030E4C, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ {(void*) D_600EEF0, 0, (ObjectFunc) NULL, D_800CBF34, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ {(void*) D_600BF80, 0, (ObjectFunc) NULL, D_6030E68, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ {(void*) func_801BE1FC, 1, (ObjectFunc) NULL, D_800CBF34, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ {(void*) D_9005C80, 0, (ObjectFunc) func_801924A8, D_601B678, 1000.0f, 0, 0, 42, 0, 0.0f, 0 },
+ {(void*) D_9003F50, 0, (ObjectFunc) NULL, D_601B6C4, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
+ {(void*) D_900F060, 0, (ObjectFunc) NULL, D_601B710, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
+ {(void*) D_900F1D0, 0, (ObjectFunc) NULL, D_601B75C, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
+ {(void*) func_801935D4, 1, (ObjectFunc) func_8019356C, D_C038BD8, 500.0f, 0, 0, 41, 0, 0.0f, 0 },
+ {(void*) func_8019350C, 1, (ObjectFunc) func_80193380, D_C038A48, 500.0f, 0, 0, 41, 0, 0.0f, 0 },
+ {(void*) D_60030F0, 0, (ObjectFunc) NULL, D_6009CC4, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
+ {(void*) D_6003000, 0, (ObjectFunc) NULL, D_C038BA4, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
+ {(void*) D_6006890_Gfx, 0, (ObjectFunc) NULL, D_C038B40, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
+ {(void*) D_6002990, 0, (ObjectFunc) NULL, D_C038B40, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
+ {(void*) D_6004170, 0, (ObjectFunc) NULL, D_800CBF34, 0.0f, 0, 0, 0, 1, 0.0f, 0 },
+ {(void*) D_3017600, 0, (ObjectFunc) NULL, D_302EE64, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_3017600, 0, (ObjectFunc) NULL, D_302EE80, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_30173C0, 0, (ObjectFunc) NULL, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_30174E0, 0, (ObjectFunc) NULL, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_301B080, 0, (ObjectFunc) NULL, D_302EE9C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_3016B00, 0, (ObjectFunc) NULL, D_302EE00, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_3013780, 0, (ObjectFunc) NULL, D_302ED4C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_3013580, 0, (ObjectFunc) NULL, D_302ED98, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_3012ED0, 0, (ObjectFunc) NULL, D_302EDB4, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) NULL, 0, (ObjectFunc) NULL, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) D_60079B0, 0, (ObjectFunc) NULL, D_600FF80, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6007D80, 0, (ObjectFunc) NULL, D_600FFA0, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6006310, 0, (ObjectFunc) NULL, D_600FFC0, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_60066E0_Gfx, 0, (ObjectFunc) NULL, D_600FEB8, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_600F4C0, 0, (ObjectFunc) NULL, D_6011C10, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_600B8B0, 0, (ObjectFunc) NULL, D_6011C48, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_600BAF0, 0, (ObjectFunc) NULL, D_601115C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) NULL, 0, (ObjectFunc) NULL, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80197CB8, 1, (ObjectFunc) NULL, D_6034368, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6001DA0, 0, (ObjectFunc) NULL, D_600924C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6001360, 0, (ObjectFunc) NULL, D_60092E8, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6008370, 0, (ObjectFunc) NULL, D_601668C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_6010960, 0, (ObjectFunc) NULL, D_6016714, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_602F7C0, 0, (ObjectFunc) func_80068FE0, D_603E468, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_601C9B0, 0, (ObjectFunc) func_80068FE0, D_603E484, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_600A420, 0, (ObjectFunc) func_80068FE0, D_600FE9C, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059C40, 1, (ObjectFunc) NULL, D_800CBF34, 1800.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_602DCA0, 0, (ObjectFunc) NULL, D_800CBF34, -100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_601F500, 0, (ObjectFunc) NULL, D_800CBF34, -100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059C34, 1, (ObjectFunc) func_80066E8C, D_800CBF34, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80059850, 1, (ObjectFunc) NULL, D_800CBF34, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) D_60023B0, 0, (ObjectFunc) func_8018F038, D_60068BC, 100.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_801875A4, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_801922DC, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_80192358, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_801923C0, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_8019243C, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) NULL, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_8018BAAC, 2, (ObjectFunc) func_8018AED0, D_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
+ {(void*) func_8018BBA4, 2, (ObjectFunc) func_8018B15C, D_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
+ {(void*) func_8018BBF8, 2, (ObjectFunc) func_8018B418, D_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
+ {(void*) func_8018BD7C, 2, (ObjectFunc) func_8018B58C, D_603E604, 500.0f, 0, 0, 39, 1, 0.0f, 1 },
+ {(void*) func_8005B6A4, 1, (ObjectFunc) func_80066A80, D_800CBF34, 1000.0f, 0, 0, 39, 0, 0.0f, 1 },
+ {(void*) D_6018C00, 0, (ObjectFunc) func_8018756C, D_602F6EC, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
+ {(void*) func_8005B71C, 1, (ObjectFunc) func_80187650, D_602F708, 100.0f, 0, 1, 39, 0, 1.0f, 1 },
+ {(void*) func_8018DA6C, 1, (ObjectFunc) func_8018D9EC, D_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
+ {(void*) func_8018DAEC, 1, (ObjectFunc) func_8018D9EC, D_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
+ {(void*) func_8018DB6C, 1, (ObjectFunc) func_8018D9EC, D_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
+ {(void*) func_8005B7CC, 1, (ObjectFunc) func_8018795C, D_602F724, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
+ {(void*) D_6018450, 0, (ObjectFunc) func_801877C4, D_602F740, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
+ {(void*) func_801BEC74, 1, (ObjectFunc) func_801BEC68, D_6030BE0, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
+ {(void*) func_8005A094, 1, (ObjectFunc) func_8006C008, D_800CBF34, 0.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) func_8005B848, 1, (ObjectFunc) func_800656D4, D_800CBFE4, 100.0f, 0, 1, 39, 0, 1.0f, 0 },
+ {(void*) func_8005B848, 1, (ObjectFunc) func_800656D4, D_800CBFE4, 100.0f, 0, 1, 39, 0, 1.0f, 0 },
+ {(void*) func_8005B9A4, 1, (ObjectFunc) func_8006654C, D_603E54C, 200.0f, 0, 1, 39, 0, 50.0f, 1 },
+ {(void*) func_8005BA30, 1, (ObjectFunc) func_800669A0, D_603E598, 100.0f, 0, 1, 39, 0, 0.0f, 0 },
+ {(void*) func_8006B74C, 1, (ObjectFunc) func_8006B094, D_800CC000, 200.0f, 0, 1, 39, 0, 0.0f, 1 },
+ {(void*) func_8004FEC0, 1, (ObjectFunc) func_8004F8AC, D_800CBF34, 20000.0f, 0, 1, 39, 0, 0.0f, 0 },
+ {(void*) func_80059BF0, 1, (ObjectFunc) func_8006BB78, D_603E5B4, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
+ {(void*) func_80035448, 1, (ObjectFunc) func_800319AC, D_800CC038, 20000.0f, 0, 1, 39, 1, 1.0f, 1 },
+ {(void*) func_80035448, 1, (ObjectFunc) func_80092EC0, D_800CC01C, 20000.0f, 0, 0, 39, 1, 0.0f, 0 },
+ {(void*) func_80188448, 1, (ObjectFunc) func_801880E4, D_800CBF34, 20000.0f, 0, 0, 39, 1, 0.0f, 0 },
+ {(void*) func_80074FF0, 1, (ObjectFunc) func_80072594, D_800CBF34, 2000.0f, 0, 1, 39, 0, 0.0f, 1 },
+ {(void*) func_800598E8, 1, (ObjectFunc) func_8006AC08, D_602F684, 100.0f, 0, 1, 39, 0, 1.0f, 1 },
+ {(void*) func_80059A24, 1, (ObjectFunc) func_8006AD18, D_602F6A0, 100.0f, 0, 1, 39, 0, 180.0f, 1 },
+ {(void*) func_8018F884, 1, (ObjectFunc) func_8018F330, D_800CBF34, 1000.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) func_801A4CB0, 1, (ObjectFunc) func_801A3BD4, D_603405C, 1000.0f, 0, 0, 39, 0, 1.0f, 1 },
+ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019C778, D_60359C8, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_801A12C4, 1, (ObjectFunc) func_801AC438, D_6035A48, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_801AC294, 2, (ObjectFunc) func_801A7E7C, D_603677C, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019EA60, D_6035A14, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019D700, D_6035AE0, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019CE88, D_6035D9C, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019E410, D_6035E04, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019FF9C, D_60360C0, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019EE68, D_6036154, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_801A43BC, 1, (ObjectFunc) func_801A3E98, D_6036458, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_801A4A64, 1, (ObjectFunc) func_801A46A0, D_60364C0, 300.0f, 0, 1, 40, 1, 0.0f, 1 },
+ {(void*) func_801A5F90, 1, (ObjectFunc) func_801A5E54, D_60366EC, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_801A6100, 1, (ObjectFunc) func_801A5FD0, D_6036708, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_801A6540, 1, (ObjectFunc) func_801A6144, D_6036728, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_801A68EC, 1, (ObjectFunc) func_801A67C8, D_6036744, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_801ADAC8, 1, (ObjectFunc) func_801AD6F0, D_6036930, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_801AE2C0, 1, (ObjectFunc) func_801ADD68, D_603694C, 300.0f, 0, 0, 40, 1, 1.0f, 0 },
+ {(void*) func_801AEEFC, 1, (ObjectFunc) func_801AEC04, D_6036968, 300.0f, 0, 0, 40, 1, 1.0f, 0 },
+ {(void*) func_801A54E8, 1, (ObjectFunc) func_801A4B24, D_60364DC, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_80189194, D_800CBF34, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ {(void*) D_700AB70, 0, (ObjectFunc) func_8018AB44, D_60064AC, 50.0f, 0, 0, 39, 1, 1.0f, 0 },
+ {(void*) func_80189AFC, 1, (ObjectFunc) func_801895B8, D_60064C8, 300.0f, 0, 0, 39, 1, 70.0f, 1 },
+ {(void*) func_8018E5B4, 1, (ObjectFunc) func_8018E54C, D_60067C4, 0.0f, 0, 0, 39, 1, 0.0f, 0 },
+ {(void*) func_8018EF14, 1, (ObjectFunc) func_8018E5F8, D_6006808, 0.0f, 0, 0, 39, 1, 1.0f, 1 },
+ {(void*) func_8018E2D8, 1, (ObjectFunc) func_8018C8A8, D_6006A3C, 1000.0f, 0, 0, 20, 1, 0.0f, 1 },
+ {(void*) func_8018AABC, 1, (ObjectFunc) func_8018A544, D_600683C, 0.0f, 0, 1, 39, 1, 0.0f, 1 },
+ {(void*) func_8018BE84, 1, (ObjectFunc) func_8018B9D0, D_6006858, 0.0f, 0, 0, 39, 1, 0.0f, 1 },
+ {(void*) func_8018B6AC, 1, (ObjectFunc) func_8018B268, D_6006890_f32, 0.0f, 0, 0, 39, 1, 20.0f, 1 },
+ {(void*) func_8018A1C0, 1, (ObjectFunc) func_80189CC8, D_60068F0, 200.0f, 0, 0, 39, 1, 1.0f, 1 },
+ {(void*) func_80077218, 1, (ObjectFunc) func_800771CC, D_800CBF34, 2000.0f, 0, 0, 39, 0, 0.0f, 5 },
+ {(void*) func_80190430, 2, (ObjectFunc) func_801904CC, D_602C294, 1000.0f, 0, 1, 40, 0, 1.0f, 1 },
+ {(void*) func_80190F08, 1, (ObjectFunc) func_80190A00, D_602BC58, 5000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_8006A978, 1, (ObjectFunc) func_8006A96C, D_800CBF34, 200.0f, 0, 0, 40, 0, 0.0f, 2 },
+ {(void*) func_801914C4, 2, (ObjectFunc) func_80191010, D_800CBE8C, 200.0f, 0, 1, 40, 0, 1.0f, 1 },
+ {(void*) NULL, 1, (ObjectFunc) NULL, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_80191B4C, 1, (ObjectFunc) func_80191680, D_800CBE8C, 1500.0f, 0, 1, 40, 0, 20.0f, 0 },
+ {(void*) func_80191DB0, 1, (ObjectFunc) func_80191BC4, D_800CBE70, 1500.0f, 0, 1, 40, 0, 0.0f, 0 },
+ {(void*) func_80191FFC, 2, (ObjectFunc) func_80192094, D_602BE3C, 500.0f, 0, 0, 40, 0, 1.0f, 0 },
+ {(void*) func_80192C18, 2, (ObjectFunc) func_80192834, D_800CBE8C, 0.0f, 0, 1, 40, 0, 1.0f, 1 },
+ {(void*) func_80193240, 2, (ObjectFunc) func_80192E64, D_602BE58, 2000.0f, 0, 0, 40, 0, 50.0f, 0 },
+ {(void*) func_8019983C, 1, (ObjectFunc) func_8019969C, D_800CBE8C, 200.0f, 0, 0, 40, 0, 1.0f, 0 },
+ {(void*) func_80199E24, 1, (ObjectFunc) func_80199A28, D_800CBE8C, 2000.0f, 0, 0, 40, 0, 1.0f, 0 },
+ {(void*) func_8019D3C4, 1, (ObjectFunc) func_8019D15C, D_602BFC4, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_8019A1FC, 1, (ObjectFunc) func_80199F10, D_800CBEA8, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_8019ACCC, 1, (ObjectFunc) func_8019A5D4, D_800CBEC4, 5000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_8019B7DC, 1, (ObjectFunc) func_8019B548, D_602C1D4, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_8019BDE0, 2, (ObjectFunc) func_8019B854, D_602C218, 1000.0f, 0, 0, 40, 0, 1.0f, 1 },
+ {(void*) func_8019C1CC, 1, (ObjectFunc) func_8019BE48, D_602C234, 200.0f, 0, 0, 40, 0, 80.0f, 1 },
+ {(void*) func_8019C83C, 1, (ObjectFunc) func_8019C454, D_602C250, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_8019CE58, 1, (ObjectFunc) func_8019CBEC, D_602C2B0, 300.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801AE168, 1, (ObjectFunc) func_801AD6C0, D_6030BFC, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_801AEB44, 1, (ObjectFunc) func_801AE3D8, D_6030C18, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_801B099C, 1, (ObjectFunc) func_801AFA5C, D_6030C44, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_801B0EC0, 1, (ObjectFunc) func_801B0B60, D_800CBE8C, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_801B619C, 2, (ObjectFunc) func_801B638C, D_6031398, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_801B90DC, 2, (ObjectFunc) func_801B7C78, D_60313CC, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_801B504C, 2, (ObjectFunc) func_801B50E8, D_6031400, 300.0f, 0, 0, 40, 0, 0.0f, 1 },
+ {(void*) func_801B7A24, 2, (ObjectFunc) func_801B6FF8, D_603144C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_801BA108, 2, (ObjectFunc) func_801B91A4, D_6031480, 200.0f, 0, 0, 40, 0, 0.0f, 1 },
+ {(void*) func_801BA4E4, 1, (ObjectFunc) func_801BA26C, D_800CBE8C, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801BAD7C, 1, (ObjectFunc) func_801BA6A4, D_6031500, 200.0f, 0, 0, 40, 0, 0.0f, 1 },
+ {(void*) func_801BB204, 2, (ObjectFunc) func_801BADF8, D_6031538, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801BC930, 2, (ObjectFunc) func_801BB79C, D_6031554, 800.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_801BDE6C, 1, (ObjectFunc) func_801BD54C, D_6031570, 10000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801BD264, 1, (ObjectFunc) func_801BC9A0, D_6030D20, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_801BEB1C, 1, (ObjectFunc) func_801BE3F8, D_60314C8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_8002E694, 2, (ObjectFunc) func_8002E670, D_6011B24, 0.0f, 0, 0, 39, 0, 730.0f, 1 },
+ {(void*) func_8002E6DC, 1, (ObjectFunc) func_8002E6B8, D_6011BF4, 0.0f, 0, 0, 39, 0, 150.0f, 1 },
+ {(void*) func_80188FE4, 2, (ObjectFunc) func_80188AD0, D_600FF30, 0.0f, 0, 0, 39, 0, 220.0f, 1 },
+ {(void*) func_8019E3A8, 1, (ObjectFunc) func_8019E234, D_800CBEC4, 0.0f, 0, 0, 39, 0, 1.0f, 0 },
+ {(void*) func_8019F7AC, 1, (ObjectFunc) func_8019F20C, D_800CBE8C, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
+ {(void*) func_8019F7AC, 1, (ObjectFunc) func_8019F20C, D_800CBE8C, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
+ {(void*) func_8019F7AC, 1, (ObjectFunc) func_8019F20C, D_800CBEC4, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
+ {(void*) NULL, 1, (ObjectFunc) func_8019EA7C, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 1 },
+ {(void*) NULL, 1, (ObjectFunc) func_801A003C, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 1 },
+ {(void*) D_900DD20, 0, (ObjectFunc) func_80192518, D_601B7F8, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_80192E2C, 1, (ObjectFunc) func_80192CD4, D_601B830, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) D_901DA50, 0, (ObjectFunc) func_80192CD4, D_601B868, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) D_9023AD0, 0, (ObjectFunc) func_80192EB0, D_601B8A0, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) func_801934D0, 1, (ObjectFunc) func_801933DC, D_601B8D8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80193244, 1, (ObjectFunc) func_80192E94, D_800CBE8C, 1000.0f, 0, 0, 20, 0, 1.0f, 1 },
+ {(void*) func_80188660, 1, (ObjectFunc) func_80188528, D_800CBE8C, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_80189724, D_800CBF34, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_801893B8, D_800CBF34, 1000.0f, 0, 0, 20, 1, 0.0f, 0 },
+ {(void*) func_800596B0, 1, (ObjectFunc) func_80189470, D_800CBF34, 1000.0f, 0, 0, 20, 1, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_8018933C, D_800CBF34, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
+ {(void*) func_80067874, 1, (ObjectFunc) func_8006753C, D_800CBEA8, 1000.0f, 0, 0, 0, 0, 1.0f, 0 },
+ {(void*) func_8018AA74, 2, (ObjectFunc) func_80189058, D_603E620, 20000.0f, 0, 0, 40, 1, 0.0f, 10 },
+ {(void*) func_8018ECAC, 1, (ObjectFunc) func_8018C19C, D_603E840, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_8018ED78, 1, (ObjectFunc) func_8018DDAC, D_603E714, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_8018EE84, 1, (ObjectFunc) func_8018E290, D_603E748, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_8018EF90, 1, (ObjectFunc) func_8018E76C, D_603E7C4, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_8018BACC, 1, (ObjectFunc) func_8018978C, D_602F75C, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_801887D0, 1, (ObjectFunc) func_80188344, D_602FA50, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_80042FC4, 2, (ObjectFunc) func_80042FB8, D_800CBF34, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_80042FE8, 1, (ObjectFunc) func_80042FDC, D_800CBF34, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_801BEC5C, 1, (ObjectFunc) func_801BEC50, D_6030B10, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_8018C54C, 1, (ObjectFunc) func_80187944, D_6028454, 2000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_80193434, 2, (ObjectFunc) func_80190078, D_6032550, 20000.0f, 0, 0, 20, 0, 0.0f, 10 },
+ {(void*) func_8018FF84, 2, (ObjectFunc) func_8018FE38, D_6032488, 1000.0f, 0, 0, 20, 0, 0.0f, 10 },
+ {(void*) func_80190020, 2, (ObjectFunc) func_8018FF20, D_60324EC, 1000.0f, 0, 0, 20, 0, 0.0f, 10 },
+ {(void*) func_801982A8, 1, (ObjectFunc) func_80197A94,D_E6A810_801B83A8, 1000.0f, 0, 0, 40, 1, 0.0f, 10 },
+ {(void*) func_801949DC, 2, (ObjectFunc) func_80194A84, D_602C044, 1000.0f, 0, 0, 40, 0, 1.0f, 10 },
+ {(void*) func_8008FE78, 1, (ObjectFunc) func_800907C4, D_600FFE0, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
+ {(void*) func_8002E604, 1, (ObjectFunc) func_8002E5E0, D_800CBF34, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
+ {(void*) func_8002E64C, 1, (ObjectFunc) func_8002E628, D_800CBF34, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
+ {(void*) func_80191AFC, 2, (ObjectFunc) func_801912FC, D_6011C80, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
+ {(void*) func_80196288, 2, (ObjectFunc) func_80196210, D_60166F4, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
+ {(void*) func_8019E98C, 1, (ObjectFunc) func_8019E454, D_6009388, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_8019E2C4, 2, (ObjectFunc) func_8019C888, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_801A71B8, 2, (ObjectFunc) func_801A5B3C, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_801968F4, 1, (ObjectFunc) func_801946C4, D_6011058, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_80193B1C, 1, (ObjectFunc) func_80193718, D_601115C, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
+ {(void*) func_801B4D84, 2, (ObjectFunc) func_801B134C, D_6030F74, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_801985E4, 1, (ObjectFunc) func_80194398,D_DF4260_8019A9B8, 3000.0f, 0, 0, 40, 1, 0.0f, 10 },
+ {(void*) func_801928C8, 2, (ObjectFunc) func_8018DBF0, D_C038DC0, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_8018B8C0, 1, (ObjectFunc) func_80189B70, D_C038F24, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ {(void*) func_8005CC9C, 1, (ObjectFunc) func_80067F6C, D_800CBFA8, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_8005C5F0, 1, (ObjectFunc) func_80068914, D_800CBF38, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_8005C900, 1, (ObjectFunc) func_80068020, D_800CBF54, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_8005C9C0, 1, (ObjectFunc) func_800685D8, D_800CBF54, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_8005CDA8, 1, (ObjectFunc) func_80068688, D_800CBF70, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_8005CB44, 1, (ObjectFunc) func_80067BEC, D_800CBFC8, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_80068C48, D_800CBF18, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) D_1022120, 0, (ObjectFunc) func_80067B1C, D_800CBE8C, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_8005CA80, 1, (ObjectFunc) func_800685F8, D_800CBF54, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) D_3007650, 0, (ObjectFunc) func_80068618, D_800CBFA8, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) D_6006140, 0, (ObjectFunc) func_80198968, D_6009CFC, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_8007D55C, 1, (ObjectFunc) func_8007D2F4, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+ {(void*) func_8007D55C, 1, (ObjectFunc) func_8007D748, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+ {(void*) func_8007D55C, 1, (ObjectFunc) func_8007D8A8, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+ {(void*) func_8007E330, 1, (ObjectFunc) func_8007E298, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+ {(void*) func_8007CAF0, 1, (ObjectFunc) func_8007C9E0, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+ {(void*) func_8007868C, 1, (ObjectFunc) func_8007E014, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_8007879C, 1, (ObjectFunc) func_8007E258, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_800788B0, 1, (ObjectFunc) func_8007F438, NULL, -200.0f, 1, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_800783C0, 1, (ObjectFunc) func_8007B758, NULL, 100.0f, 1, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80078A64, 1, (ObjectFunc) func_8007F6B0, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_8007F958, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_8007FBE0, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_80078438, 1, (ObjectFunc) func_8007E3E4, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_800784B4, 1, (ObjectFunc) func_8007B62C, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+ {(void*) func_80078B8C, 1, (ObjectFunc) func_8007FE88, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
+ {(void*) func_80197C64, 1, (ObjectFunc) func_8007FE88, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
+ {(void*) func_80078AEC, 1, (ObjectFunc) func_800802B8, NULL, 100.0f, 1, 0, 20, 1, 0.0f, 0 },
+ {(void*) func_80078C84, 1, (ObjectFunc) func_800802F8, NULL, 100.0f, 1, 0, 20, 0, 0.0f, 0 },
+ {(void*) func_800798F0, 1, (ObjectFunc) func_8007968C, NULL, 100.0f, 0, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_80192A68, 1, (ObjectFunc) func_80192984, NULL, 100.0f, 1, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_8007AA60, 1, (ObjectFunc) func_8007A994, NULL, -100.0f, 1, 2, 0, 0, 0.0f, 0 },
+ {(void*) func_8007BEE8, 1, (ObjectFunc) func_8007BE54, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+ {(void*) func_8007BEE8, 1, (ObjectFunc) func_8007BDE0, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+ {(void*) func_8007BEE8, 1, (ObjectFunc) func_8007BCE8, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+ {(void*) func_80094BBC, 1, (ObjectFunc) func_80094954, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+ {(void*) func_8007B9DC, 1, (ObjectFunc) func_8007B960, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+ {(void*) func_8007E5CC, 1, (ObjectFunc) func_8007E45C, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_80078550, 1, (ObjectFunc) func_801AC918, NULL, 100.0f, 1, 2, 0, 0, 0.0f, 0 },
+ {(void*) func_80078604, 1, (ObjectFunc) func_8007E648, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_80188FA8, 1, (ObjectFunc) func_80188F60, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_8018DCE4, 1, (ObjectFunc) func_80188CAC, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
+ {(void*) func_8018DBEC, 1, (ObjectFunc) func_80188FAC, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
+ {(void*) func_8018DE14, 1, (ObjectFunc) func_80189114, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
+ {(void*) func_80077A00, 1, (ObjectFunc) func_8007AB50, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_8007A748, NULL, 500.0f, 0, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_8007DED4, 1, (ObjectFunc) func_8007DB70, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
+ {(void*) func_8007DAE4, 1, (ObjectFunc) func_8007DA58, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_80078CE8, 1, (ObjectFunc) func_80080360, NULL, -200.0f, 1, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_80078BE0, 1, (ObjectFunc) func_800802D8, NULL, 100.0f, 1, 0, 20, 0, 0.0f, 0 },
+ {(void*) func_801A5AF0, 1, (ObjectFunc) func_801A57D0, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
+ {(void*) func_801AEAA0, 1, (ObjectFunc) func_801AE87C, NULL, 100.0f, 1, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_801A5D68, 1, (ObjectFunc) func_801A5B4C, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
+ {(void*) func_80077A7C, 1, (ObjectFunc) func_8007B0F4, NULL, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_8007B040, NULL, 200.0f, 0, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_8007A3C0, 1, (ObjectFunc) func_8007A28C, NULL, 10000.0f, 0, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_80077B84, 1, (ObjectFunc) func_8007B3B8, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_80078038, 1, (ObjectFunc) func_8007B5C0, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_8007C250, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_8007C8C4, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_80077B78, 1, (ObjectFunc) func_8007B670, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_800780F8, 1, (ObjectFunc) func_8007B67C, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 },
+ {(void*) NULL, 1, (ObjectFunc) func_8007C50C, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_80083B8C, 1, (ObjectFunc) func_800837EC, NULL, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ {(void*) func_801A0AF0, 1, (ObjectFunc) func_801A0120, NULL, 300.0f, 1, 2, 10, 0, 0.0f, 0 },
+ {(void*) func_80078F78, 1, (ObjectFunc) func_80078EBC, NULL, 300.0f, 1, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_80080D04, 1, (ObjectFunc) func_80080ACC, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
+ {(void*) func_80082F78, 1, (ObjectFunc) func_80081C5C, NULL, 300.0f, 0, 1, 40, 0, 0.0f, 0 },
+ {(void*) func_8018CF98, 1, (ObjectFunc) func_8018CAD4, NULL, 2000.0f, 0, 1, 40, 2, 0.0f, 0 },
+ {(void*) func_80191180, 1, (ObjectFunc) func_80191054, NULL, 2000.0f, 0, 1, 20, 0, 0.0f, 0 },
+ {(void*) func_8008092C, 1, (ObjectFunc) func_8008040C, NULL, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ {(void*) func_80084194, 1, (ObjectFunc) func_80083FA8, NULL, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
};
// clang-format on
diff --git a/src/main/fox_edisplay.c b/src/main/fox_edisplay.c
index f165e6b9..a3e96372 100644
--- a/src/main/fox_edisplay.c
+++ b/src/main/fox_edisplay.c
@@ -1,5 +1,12 @@
#include "global.h"
+Vec3f D_801615D0;
+Vec3f D_801615E0;
+s32 D_801615EC;
+Matrix D_801615F0;
+UnkStruct_D_80161630 D_80161630;
+s32 D_80161670[4];
+
char D_800CF970[] = "$Id: fox_edisplay.c,v 1.196 1997/05/08 08:31:50 morita Exp $";
void func_800596C0(void) {
@@ -937,7 +944,7 @@ void func_8005D654(Object_80* arg0, s32 arg1) {
if (arg1 < 0) {
func_800596C0();
}
- gSPDisplayList(gMasterDisp++, arg0->unk_1C.draw);
+ gSPDisplayList(gMasterDisp++, arg0->unk_1C.dList);
RCP_SetupDL_29(D_80178320, D_80178328, D_80178330, D_80178338, D_801783D8, D_801783DC);
} else {
if (arg0->obj.id == 8) {
@@ -950,7 +957,7 @@ void func_8005D654(Object_80* arg0, s32 arg1) {
if (arg1 < 0) {
func_800596C0();
}
- gSPDisplayList(gMasterDisp++, arg0->unk_1C.draw);
+ gSPDisplayList(gMasterDisp++, arg0->unk_1C.dList);
if (arg0->obj.id == 8) {
RCP_SetupDL_29(D_80178320, D_80178328, D_80178330, D_80178338, D_801783D8, D_801783DC);
}
@@ -967,7 +974,7 @@ void func_8005D8B8(Object_4C* arg0, s32 arg1) {
func_8005D008(&arg0->obj, 0);
arg0->obj.pos.y -= D_8017847C;
if (arg0->unk_1C.drawType == 0) {
- gSPDisplayList(gMasterDisp++, arg0->unk_1C.draw);
+ gSPDisplayList(gMasterDisp++, arg0->unk_1C.dList);
} else if (arg0->unk_1C.draw != NULL) {
arg0->unk_1C.draw(&arg0->obj);
}
@@ -1000,7 +1007,7 @@ void func_8005D954(Object_2F4* arg0) {
func_8005D008(&arg0->obj, arg0->unk_01C.drawType);
}
if (arg0->unk_01C.drawType == 0) {
- gSPDisplayList(gMasterDisp++, arg0->unk_01C.draw);
+ gSPDisplayList(gMasterDisp++, arg0->unk_01C.dList);
func_8005F1EC(&arg0->unk_100);
} else {
arg0->unk_01C.draw(&arg0->obj);
@@ -1251,7 +1258,7 @@ void func_8005E7B8(Object_6C* arg0, s32 arg1) {
Matrix_RotateZ(gGfxMatrix, arg0->obj.rot.z * M_DTOR, 1);
Matrix_SetGfxMtx(&gMasterDisp);
if (arg0->unk_1C.drawType == 0) {
- gSPDisplayList(gMasterDisp++, arg0->unk_1C.draw);
+ gSPDisplayList(gMasterDisp++, arg0->unk_1C.dList);
} else {
arg0->unk_1C.draw(&arg0->obj);
}
@@ -1450,7 +1457,7 @@ void func_8005F2F4(Object_58* arg0) {
} else {
Matrix_RotateY(gGfxMatrix, arg0->obj.rot.y * M_DTOR, 1);
Matrix_SetGfxMtx(&gMasterDisp);
- gSPDisplayList(gMasterDisp++, arg0->unk_1C.draw);
+ gSPDisplayList(gMasterDisp++, arg0->unk_1C.dList);
}
}
}
diff --git a/src/main/fox_enmy1.c b/src/main/fox_enmy1.c
index 27b8bbba..e8f99818 100644
--- a/src/main/fox_enmy1.c
+++ b/src/main/fox_enmy1.c
@@ -1,5 +1,8 @@
#include "global.h"
+s32 D_80161680;
+u8 D_80161684;
+
ObjectInit* D_800CFDA0[] = {
0x060371A4, 0x06026CC4, 0x0602A164, 0x06023F64, 0x060287A4, 0x0602E4F4, 0x06007E74,
0x0601F234, 0x06026714, 0x0C035154, 0x06006AA4, 0x06031000, 0x06006C60, 0x0602E5C8,
@@ -707,23 +710,23 @@ s32 func_8006326C(Vec3f* arg0, Vec3f* arg1, s32 arg2, Object* arg3) {
sp50.x = arg3->pos.x;
sp50.y = arg3->pos.y;
sp50.z = arg3->pos.z;
- if ((arg2 == 0xB4) || (arg2 == 0x95) || (arg2 == 0x96) || (arg2 == 0x134) || (arg2 == 0x139) ||
- (arg2 == 0x138) || (arg2 == 0x135) || (arg2 == 0x27)) {
+ if ((arg2 == 180) || (arg2 == 149) || (arg2 == 150) || (arg2 == 308) || (arg2 == 313) || (arg2 == 312) ||
+ (arg2 == 309) || (arg2 == 39)) {
var_s1 = 0;
- if (arg2 == 0x138) {
+ if (arg2 == 312) {
var_s1 = 9;
}
- if (arg2 == 0x27) {
+ if (arg2 == 39) {
var_s1 = 1;
- } else if (arg2 == 0x134) {
+ } else if (arg2 == 308) {
var_s1 = 4;
- } else if (arg2 == 0x135) {
+ } else if (arg2 == 309) {
var_s1 = 7;
- } else if (arg2 == 0x95) {
+ } else if (arg2 == 149) {
var_s1 = 5;
- } else if (arg2 == 0x96) {
+ } else if (arg2 == 150) {
var_s1 = 6;
- } else if (arg2 == 0x139) {
+ } else if (arg2 == 313) {
var_s1 = 8;
}
if (func_800998FC(&sp5C, &sp50, arg1, var_s1, &sp44, &sp30) > 0) {
@@ -737,14 +740,14 @@ s32 func_8006326C(Vec3f* arg0, Vec3f* arg1, s32 arg2, Object* arg3) {
if (arg2 == 3) {
var_s1 = 3;
}
- if (arg2 == 0x8C) {
+ if (arg2 == 140) {
var_s1 = 4;
}
- if (arg2 == 0x8D) {
+ if (arg2 == 141) {
var_s1 = 6;
}
- if (arg2 == 0x75) {
- var_s1 = 0xE;
+ if (arg2 == 117) {
+ var_s1 = 14;
} else if ((arg2 == 4) || (arg2 == 5)) {
var_s1 = 1;
}
diff --git a/src/main/fox_radio.c b/src/main/fox_radio.c
index 4adece38..41533692 100644
--- a/src/main/fox_radio.c
+++ b/src/main/fox_radio.c
@@ -1,10 +1,16 @@
#include "global.h"
-extern f32 D_80177D38;
-extern s32 D_801782AC;
-extern s32 D_801782B4;
-extern s32 D_80178744;
-extern s32 D_80178748;
+u16** D_80178720;
+s32 D_80178724;
+s32 D_80178728;
+s32 D_8017872C;
+f32 D_80178730;
+f32 D_80178734;
+f32 D_80178738;
+f32 D_8017873C;
+f32 D_80178740;
+s32 D_80178744;
+s32 D_80178748;
s32 D_800D4A70 = 0;
@@ -700,7 +706,7 @@ void func_800BB5D0(void) {
}
}
#else
-extern s32 D_8017874C;
+s32 D_8017874C;
void func_800BB5D0(void);
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/fox_radio/func_800BB5D0.s")
#endif
diff --git a/src/main/fox_rcp.c b/src/main/fox_rcp.c
index 425210b0..2cff7f57 100644
--- a/src/main/fox_rcp.c
+++ b/src/main/fox_rcp.c
@@ -2,6 +2,9 @@
#include "fox_rcp_setup.c"
+u8 D_80178580[0x190];
+void* D_80178710;
+
void RCP_SetupDL(Gfx** gfxP, s16 i) {
gSPDisplayList((*gfxP)++, &((Gfx*) gSetupDLs)[i * 9]);
}
diff --git a/src/main/main.c b/src/main/main.c
index 2fe65ecf..fbf01a9a 100644
--- a/src/main/main.c
+++ b/src/main/main.c
@@ -242,7 +242,7 @@ void Graphics_InitializeTask(u32 frameCount) {
gGfxMatrix = &sGfxMatrixStack[0];
gCalcMatrix = &sCalcMatrixStack[0];
- D_80178710 = &D_80178580;
+ D_80178710 = &D_80178580[0];
}
void Main_SetVIMode(void) {
diff --git a/src/main/sf_97F80.c b/src/main/sf_97F80.c
deleted file mode 100644
index 37282435..00000000
--- a/src/main/sf_97F80.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "common.h"
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_97F80/func_80097380.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_97F80/func_80097558.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_97F80/func_80097730.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_97F80/func_800978C4.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_97F80/func_800979E8.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_97F80/func_80097C88.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_97F80/func_8009808C.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_97F80/func_800985CC.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_97F80/func_80098860.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_97F80/func_800988B4.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_97F80/func_800988F8.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_97F80/func_8009893C.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_97F80/func_80098980.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_97F80/func_80099254.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_97F80/func_800998FC.s")
diff --git a/src/main/sf_A4290.c b/src/main/sf_A4290.c
deleted file mode 100644
index a54947d6..00000000
--- a/src/main/sf_A4290.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "common.h"
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_A4290/func_800A3690.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_A4290/func_800A36FC.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_A4290/func_800A3A74.s")
diff --git a/src/main/sf_A48A0.c b/src/main/sf_A48A0.c
deleted file mode 100644
index 753939ec..00000000
--- a/src/main/sf_A48A0.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "common.h"
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_A48A0/func_800A3CA0.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_A48A0/func_800A3E00.s")
diff --git a/src/main/sf_A4B50.c b/src/main/sf_A4B50.c
index 0c0a7c88..e6f00718 100644
--- a/src/main/sf_A4B50.c
+++ b/src/main/sf_A4B50.c
@@ -336,7 +336,7 @@ void func_800A5338(void) {
var_s0->obj.rot.y = D_80178310[j].unk_C;
func_800612B8(&var_s0->unk_1C, var_s0->obj.id);
if (var_s0->obj.id == 1) {
- var_s0->unk_1C.drawGfx = D_6020760;
+ var_s0->unk_1C.dList = D_6020760;
}
var_s0++;
}
@@ -1221,15 +1221,15 @@ bool func_800A8054(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f
var_s0 = 1;
break;
case 0x78:
- var_s0 = 0x12;
+ var_s0 = 18;
var_v0 = true;
break;
case 0x7C:
- var_s0 = 0xF;
+ var_s0 = 15;
var_v0 = true;
break;
case 0x7E:
- var_s0 = 0x10;
+ var_s0 = 16;
var_v0 = true;
break;
case 0x2F:
@@ -1246,7 +1246,7 @@ bool func_800A8054(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f
var_v0 = true;
break;
case 0x8F:
- var_s0 = 0x11;
+ var_s0 = 17;
var_v0 = true;
break;
case 0x8C:
@@ -1258,7 +1258,7 @@ bool func_800A8054(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f
var_v0 = true;
break;
case 0x75:
- var_s0 = 0xE;
+ var_s0 = 14;
var_v0 = true;
break;
case 0x46:
@@ -1270,19 +1270,19 @@ bool func_800A8054(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f
var_v0 = true;
break;
case 0x47:
- var_s0 = 0xA;
+ var_s0 = 10;
var_v0 = true;
break;
case 0x49:
- var_s0 = 0xB;
+ var_s0 = 11;
var_v0 = true;
break;
case 0x43:
- var_s0 = 0xC;
+ var_s0 = 12;
var_v0 = true;
break;
case 0x4A:
- var_s0 = 0xD;
+ var_s0 = 13;
var_v0 = true;
break;
case 0x76:
diff --git a/yamls/us/main.yaml b/yamls/us/main.yaml
index ccb6b88b..70a8c627 100644
--- a/yamls/us/main.yaml
+++ b/yamls/us/main.yaml
@@ -184,11 +184,11 @@
- [0x77E40, c, sf_77E40]
- [0x84F70, c, fox_84F70]
- [0x85530, c, sf_hud]
- - [0x97F80, c, sf_97F80]
+ - [0x97F80, c, fox_97F80]
- [0x9A580, c, fox_display]
- [0xA24B0, c, fox_A24B0]
- - [0xA4290, c, sf_A4290]
- - [0xA48A0, c, sf_A48A0]
+ - [0xA4290, c, fox_A4290]
+ - [0xA48A0, c, fox_A48A0]
- [0xA4B50, c, sf_A4B50]
- [0xB99D0, c, fox_rcp]
- [0xBB360, c, fox_radio]
@@ -277,7 +277,7 @@
- [0xD2570, data, sf_hud]
- [0xD31D0, .data, fox_display]
- [0xD3460, .data, fox_A24B0]
- - [0xD3520, data, sf_A48A0]
+ - [0xD3520, .data, fox_A4290]
- [0xD3B50, data, sf_A4B50]
- [0xD3DB0, .data, fox_rcp]
- [0xD5670, .data, fox_radio]
@@ -299,11 +299,11 @@
- [0xD7E30, .rodata, sf_77E40]
- [0xD82F0, .rodata, fox_84F70]
- [0xD8320, .rodata, sf_hud]
- - [0xD8DE0, .rodata, sf_97F80]
+ - [0xD8DE0, .rodata, fox_97F80]
- [0xD8DF0, .rodata, fox_display]
- [0xD8E50, .rodata, fox_A24B0]
- - [0xD8ED0, .rodata, sf_A4290]
- - [0xD8EE0, .rodata, sf_A48A0]
+ - [0xD8ED0, .rodata, fox_A4290]
+ - [0xD8EE0, .rodata, fox_A48A0]
- [0xD8EF0, .rodata, sf_A4B50]
- [0xD97F0, .rodata, fox_radio]
- [0xD9E50, .rodata, sf_versus]
@@ -354,22 +354,21 @@
- { start: 0xDE480, type: bss, vram: 0x8015F480, name: ../libultra/rmon/rmonmain }
# Game engine bss
- - { start: 0xDE480, type: bss, vram: 0x8015F900, name: engine }
- # - { start: 0xDE480, type: bss, vram: 0x8015F900, name: sf_2EFE0 }
- # - { start: 0xDE480, type: bss, vram: 0x8015F950, name: sf_36930 }
- # - { start: 0xDE480, type: bss, vram: 0x801613A0, name: sf_43AC0 }
- # - { start: 0xDE480, type: bss, vram: 0x801613B0, name: fox_52730 }
- # - { start: 0xDE480, type: bss, vram: 0x801615D0, name: fox_edisplay }
- # - { start: 0xDE480, type: bss, vram: 0x80161680, name: fox_enmy1 }
- # - { start: 0xDE480, type: bss, vram: 0x80161690, name: sf_6B3B0 }
- # - { start: 0xDE480, type: bss, vram: 0x801616A0, name: sf_hud }
- # - { start: 0xDE480, type: bss, vram: 0x80161950, name: sf_97F80 }
- # - { start: 0xDE480, type: bss, vram: 0x801619A0, name: fox_display }
- # - { start: 0xDE480, type: bss, vram: 0x80161A10, name: fox_A24B0 }
- # - { start: 0xDE480, type: bss, vram: 0x80161A50, name: sf_A4B50 }
- # - { start: 0xDE480, type: bss, vram: 0x80178580, name: fox_rcp }
- # - { start: 0xDE480, type: bss, vram: 0x80178720, name: fox_radio }
- # - { start: 0xDE480, type: bss, vram: 0x80178750, name: sf_versus }
+ - { start: 0xDE480, type: bss, vram: 0x8015F900, name: sf_2EFE0 }
+ - { start: 0xDE480, type: bss, vram: 0x8015F950, name: sf_36930 }
+ - { start: 0xDE480, type: bss, vram: 0x801613A0, name: sf_43AC0 }
+ - { start: 0xDE480, type: .bss, vram: 0x801613B0, name: fox_52730 }
+ - { start: 0xDE480, type: .bss, vram: 0x801615D0, name: fox_edisplay }
+ - { start: 0xDE480, type: .bss, vram: 0x80161680, name: fox_enmy1 }
+ - { start: 0xDE480, type: bss, vram: 0x80161690, name: sf_6B3B0 }
+ - { start: 0xDE480, type: bss, vram: 0x801616A0, name: sf_hud }
+ - { start: 0xDE480, type: .bss, vram: 0x80161950, name: fox_97F80 }
+ - { start: 0xDE480, type: .bss, vram: 0x801619A0, name: fox_display }
+ - { start: 0xDE480, type: .bss, vram: 0x80161A10, name: fox_A24B0 }
+ - { start: 0xDE480, type: bss, vram: 0x80161A50, name: sf_A4B50 }
+ - { start: 0xDE480, type: .bss, vram: 0x80178580, name: fox_rcp }
+ - { start: 0xDE480, type: .bss, vram: 0x80178720, name: fox_radio }
+ - { start: 0xDE480, type: bss, vram: 0x80178750, name: sf_versus }
- { start: 0xDE480, type: .bss, vram: 0x80178870, name: fox_save }
- name: dma_table