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