summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTyler McGavran <tyler.taggerung@gmail.com>2023-09-05 17:49:55 -0400
committerGitHub <noreply@github.com>2023-09-05 15:49:55 -0600
commit9c661125bebeb10fbd6cdeeabe6c7754bd72ced7 (patch)
tree277b13db58adb5e614f9c144351811e140234597 /src
parent7f7ecc5854b5dcf23160a0da25488a7ef07b98a5 (diff)
Small matches, nothing super special (#400)
Signed-off-by: Taggerung <tyler.taggerung@email.com>
Diffstat (limited to 'src')
-rw-r--r--src/code_80057C60.c25
-rw-r--r--src/code_80057C60.h24
-rw-r--r--src/code_80071F00.c265
-rw-r--r--src/code_80071F00.h18
4 files changed, 115 insertions, 217 deletions
diff --git a/src/code_80057C60.c b/src/code_80057C60.c
index d7595ec3d..798f93755 100644
--- a/src/code_80057C60.c
+++ b/src/code_80057C60.c
@@ -2186,31 +2186,6 @@ void func_8005C6B4(s8 arg0, s16* arg1, s16* arg2, s16* arg3) {
}
}
-void func_8005C674(s8, s16*, s16*, s16*);
-void func_8005C980();
-
-extern s32 D_80165590;
-extern s32 D_80165594;
-extern s32 D_80165598;
-extern s32 D_8016559C;
-extern s32 D_801655A4;
-extern s32 D_801655AC;
-extern s32 D_801655B4;
-extern s32 D_801655BC;
-extern s32 D_801655C4;
-extern s32 D_801655CC;
-extern s32 D_801655D8;
-extern s32 D_801655E8;
-extern s32 D_801655F8;
-extern s32 D_80165608;
-extern s32 D_80165618;
-extern s32 D_80165628;
-extern s8 D_801658A8;
-extern s32 D_8018D2AC;
-extern s32 D_8018D400;
-extern s32 D_8018D40C;
-extern s32 D_8018D410;
-
void func_8005C728(void) {
s16 sp26;
s16 sp24;
diff --git a/src/code_80057C60.h b/src/code_80057C60.h
index b3eceb8b0..4cd9d2069 100644
--- a/src/code_80057C60.h
+++ b/src/code_80057C60.h
@@ -83,6 +83,7 @@ void func_8005C654(s32*);
void func_8005C65C(s32);
void func_8005C6B4(s8, s16*, s16*, s16*);
void func_8005C728(void);
+void func_8005C980(void);
void func_8005CB60(s32, s32);
void func_8005D0FC(s32);
@@ -312,6 +313,29 @@ extern s16 D_8018CF98[];
extern Camera *D_8018CF14;
extern Player *D_8018CF1C;
+
+extern s32 D_80165590;
+extern s32 D_80165594;
+extern s32 D_80165598;
+extern s32 D_8016559C;
+extern s32 D_801655A4;
+extern s32 D_801655AC;
+extern s32 D_801655B4;
+extern s32 D_801655BC;
+extern s32 D_801655C4;
+extern s32 D_801655CC;
+extern s32 D_801655D8;
+extern s32 D_801655E8;
+extern s32 D_801655F8;
+extern s32 D_80165608;
+extern s32 D_80165618;
+extern s32 D_80165628;
+extern s8 D_801658A8;
+extern s32 D_8018D2AC;
+extern s32 D_8018D400;
+extern s32 D_8018D40C;
+extern s32 D_8018D410;
+
extern s32 D_8018D120;
extern s32 D_8018D170;
extern s32 D_8018D178;
diff --git a/src/code_80071F00.c b/src/code_80071F00.c
index e4e6b72d6..69d7a426f 100644
--- a/src/code_80071F00.c
+++ b/src/code_80071F00.c
@@ -3773,24 +3773,11 @@ u8 func_8007AF78(UNUSED s32 arg0, s16 arg1) {
return gen_random_item(arg1, 1);
}
-/**
- * todo: verify that these two variables are fake ptrs.
- * As seen below, they were replaced with gLapCountByPlayerId and gGPCurrentRaceRankByPlayerId
- *
- * Notice how matching with the two variables below required two s16s. The lapcount gets cast to s16 to match.
-typedef struct {
- s16 val;
- s16 pad;
-} a;
-extern a D_80164392[];
-extern a D_801643BA[];
-*/
-
s16 func_8007AFB0(s32 objectIndex, s32 arg1) {
UNUSED s32 pad[3];
s16 randomItem;
- randomItem = (s16) func_8007AF40((s16) gLapCountByPlayerId[arg1], (s16) gGPCurrentRaceRankByPlayerId[arg1]);
+ randomItem = func_8007AF40(gLapCountByPlayerId[arg1], gGPCurrentRaceRankByPlayerId[arg1]);
if (D_8018CA70[arg1].itemOverride != 0) {
randomItem = (s16) D_8018CA70[arg1].itemOverride;
@@ -3802,83 +3789,61 @@ s16 func_8007AFB0(s32 objectIndex, s32 arg1) {
return randomItem;
}
-#ifdef MIPS_TO_C
-//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
-extern ? D_80164392;
-extern ? D_801643BA;
-extern s32 gItemWindowObjectByPlayerId;
+#ifdef NON_MATCHING
+// https://decomp.me/scratch/yWKlx
+// More stupid register allocation nonsense
-s32 func_8007B040(s32 objectIndex, s32 arg1) {
- s32 sp64;
- s32 sp60;
- Player *sp38;
- s16 temp_a1;
- s16 temp_t0_2;
- s32 *var_a0;
- s32 temp_a0;
- s32 temp_t0;
- s32 temp_v0;
+s32 func_8007B040(s32 objectIndex, s32 playerId) {
+ s16 stackPadding;
s32 temp_v1;
s32 var_a3;
s32 var_t3;
+ s32 temp_a0;
+ s32 var_v1;
+ s32 sp50[4];
+ s32 sp40[4];
s32 var_v1_2;
- struct_80165C18_entry *temp_a3;
- struct_80165C18_entry *temp_a3_2;
- struct_80165C18_entry *temp_s0;
- u16 temp_v0_2;
- u8 var_v1;
+ Player *sp38;
+ s16 temp_a1;
var_a3 = 0;
var_t3 = 0;
if (gModeSelection == GRAND_PRIX) {
if (random_int(0x0064U) < 0x51) {
- temp_v0 = arg1 * 4;
- var_v1 = func_8007AF40((s32) *(&D_80164392 + temp_v0), *(&D_801643BA + temp_v0));
+ var_v1 = func_8007AF40(gLapCountByPlayerId[playerId], gGPCurrentRaceRankByPlayerId[playerId]);
} else {
- sp60 = 0;
- func_800C9060(arg1 & 0xFF, 0x1900A058U);
- var_v1 = (u8) sp60;
+ var_v1 = 0;
+ func_800C9060(playerId, 0x1900A058U);
}
var_t3 = 1;
- temp_a3 = &D_80165C18[objectIndex];
- temp_a3->unk_0A2 = (s16) var_v1;
- temp_a3->unk_0D2 = (s8) var_v1;
+ D_80165C18[objectIndex].unk_0A2 = var_v1;
+ D_80165C18[objectIndex].unk_0D2 = var_v1;
} else {
- temp_t0 = gPlayerCountSelection1;
- var_v1_2 = 0;
- if (temp_t0 > 0) {
- var_a0 = &gItemWindowObjectByPlayerId;
- do {
- if (var_v1_2 != arg1) {
- temp_a1 = D_80165C18[*var_a0].unk_0A4;
- if (temp_a1 != 0) {
- (&sp50[0])[var_a3] = var_v1_2;
- (&sp40[0])[var_a3] = (s32) temp_a1;
- var_a3 += 1;
- }
+ for (var_v1_2 = 0; var_v1_2 < gPlayerCountSelection1; var_v1_2++) {
+ temp_a0 = gItemWindowObjectByPlayerId[var_v1_2];
+ if (var_v1_2 != playerId) {
+ if (D_80165C18[temp_a0].unk_0A4 != 0) {
+ sp50[var_a3] = var_v1_2;
+ sp40[var_a3] = D_80165C18[temp_a0].unk_0A4;
+ var_a3 += 1;
}
- var_v1_2 += 1;
- var_a0 += 4;
- } while (var_v1_2 < temp_t0);
+ }
}
if (var_a3 != 0) {
- temp_v0_2 = random_int(var_a3 & 0xFFFF);
- temp_v1 = (&sp50[0])[temp_v0_2];
- temp_t0_2 = (&sp40[0])[temp_v0_2].unk2;
- temp_a3_2 = &D_80165C18[objectIndex];
- temp_a3_2->unk_0D1 = (s8) temp_v1;
- temp_a3_2->unk_0A2 = temp_t0_2;
- temp_a3_2->unk_0D2 = (s8) temp_t0_2;
- temp_a0 = (&gItemWindowObjectByPlayerId)[temp_v1];
+ var_v1 = random_int(var_a3);
+ temp_v1 = sp50[var_v1];
+ D_80165C18[objectIndex].unk_0D1 = temp_v1;
+ temp_a1 = sp40[var_v1];
+ D_80165C18[objectIndex].unk_0A2 = temp_a1;
+ D_80165C18[objectIndex].unk_0D2 = temp_a1;
+ temp_a0 = gItemWindowObjectByPlayerId[temp_v1];
sp38 = &gPlayerOne[temp_v1];
- sp64 = temp_a0;
func_800722A4(temp_a0, 1);
- temp_s0 = &D_80165C18[temp_a0];
- temp_s0->unk_0A4 = 0;
+ D_80165C18[temp_a0].unk_0A4 = 0;
sp38->unk_010 = 0;
if (func_80072320(temp_a0, 2) != 0) {
- func_800722CC(sp64, 2);
- temp_s0->unk_098 = 0;
+ func_800722CC(temp_a0, 2);
+ D_80165C18[temp_a0].unk_098 = 0;
}
var_t3 = 1;
}
@@ -3931,50 +3896,11 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007B254.s")
#endif
#ifdef MIPS_TO_C
-//generated by m2c commit 44f261a363c51a295be8efe3d7ca7f4d2c967e9b on Dec-30-2022
-? func_8007AC9C(s32); /* extern */
-s8 func_8007AFB0(s32, s32); /* extern */
-s32 func_8007B040(s32, s32); /* extern */
+//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-05-2023
? func_8007B254(s32, s32); /* extern */
-? func_800C8F80(u8, ?); /* extern */
-? func_800C9018(u8, ?); /* extern */
extern s8 D_80165888;
-static s32 *gItemWindowTLUTs[0x10] = {
- (s32 *) gTLUTItemWindowNone,
- (s32 *) gTLUTItemWindowBanana,
- (s32 *) gTLUTItemWindowBananaBunch,
- (s32 *) gTLUTItemWindowGreenShell,
- (s32 *) gTLUTItemWindowTripleGreenShell,
- (s32 *) gTLUTItemWindowRedShell,
- (s32 *) gTLUTItemWindowTripleRedShell,
- (s32 *) gTLUTItemWindowBlueShell,
- (s32 *) gTLUTItemWindowThunderBolt,
- (s32 *) gTLUTItemWindowFakeItemBox,
- (s32 *) gTLUTItemWindowStar,
- (s32 *) gTLUTItemWindowBoo,
- (s32 *) gTLUTItemWindowMushroom,
- (s32 *) gTLUTItemWindowDoubleMushroom,
- (s32 *) gTLUTItemWindowTripleMushroom,
- (s32 *) gTLUTItemWindowSuperMushroom,
-};
-static s8 *gItemWindowTextures[0x10] = {
- gTextureItemWindowNone,
- gTextureItemWindowBanana,
- gTextureItemWindowBananaBunch,
- gTextureItemWindowGreenShell,
- gTextureItemWindowTripleGreenShell,
- gTextureItemWindowRedShell,
- gTextureItemWindowTripleRedShell,
- gTextureItemWindowBlueShell,
- gTextureItemWindowThunderBolt,
- gTextureItemWindowFakeItemBox,
- gTextureItemWindowStar,
- gTextureItemWindowBoo,
- gTextureItemWindowMushroom,
- gTextureItemWindowDoubleMushroom,
- gTextureItemWindowTripleMushroom,
- gTextureItemWindowSuperMushroom,
-};
+static u8 *gItemWindowTLUTs[0x10];
+static u8 *gItemWindowTextures[0x10];
void func_8007B34C(s32 playerId) {
s32 sp40;
@@ -4080,7 +4006,7 @@ void func_8007B34C(s32 playerId) {
break;
case 11:
if (gActiveScreenMode == 0) {
- if (s16_step_down_towards((playerId * 0x84) + 0x48 + D_8018CA70, 0, 4) != 0) {
+ if (s16_step_down_towards(&D_8018CA70[playerId].slideItemBoxY, 0, 4) != 0) {
func_80072488(temp_s0);
}
} else if (gActiveScreenMode == 3) {
@@ -4099,7 +4025,7 @@ void func_8007B34C(s32 playerId) {
func_80072488(temp_s0);
}
}
- } else if (s16_step_down_towards((playerId * 0x84) + 0x46 + D_8018CA70, 0, 8) != 0) {
+ } else if (s16_step_down_towards(&D_8018CA70[playerId].slideItemBoxX, 0, 8) != 0) {
func_80072488(temp_s0);
}
break;
@@ -4145,7 +4071,7 @@ void func_8007B34C(s32 playerId) {
break;
}
if (func_80072320(temp_s0, 2) != 0) {
- temp_v0 = (u16) sp2C->unk_098;
+ temp_v0 = sp2C->unk_098;
if (temp_v0 == 0) {
func_8007AC9C(playerId);
} else {
@@ -4753,52 +4679,36 @@ void func_8007CA70(void) {
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007CA70.s")
#endif
-#ifdef MIPS_TO_C
-//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-09-2023
-? func_8007CA70(); /* extern */
-extern ? D_8018BFD0;
-static Vtx D_800E4470; /* unable to generate initializer */
-static Vtx D_800E44B0; /* unable to generate initializer */
-
void func_8007CC00(void) {
- Player *temp_s3;
- f32 temp_f20;
- f32 temp_f20_2;
- s32 *var_s4;
- s32 temp_s2;
- s32 temp_t4;
- s8 temp_v0;
- struct_80165C18_entry *temp_s0;
+ u16 temp_t4;
+ s32 someIndex;
+ s32 objectIndex;
+ Player *player;
+ Camera *camera;
+ struct_80165C18_entry *object;
func_8007CA70();
- var_s4 = D_8018BFA8;
- do {
- temp_s2 = *var_s4;
- temp_s0 = &D_80165C18[temp_s2];
- if (temp_s0->unk_0A6 != 0) {
- func_8007C684(temp_s2);
- func_8008B78C(temp_s2);
- temp_v0 = temp_s0->unk_0D1;
- temp_t4 = (0x8000 - camera1[temp_v0].rot[1]) & 0xFFFF;
- temp_s3 = &gPlayerOne[temp_v0];
- temp_f20 = coss(temp_t4 & 0xFFFF);
- temp_s0->pos[0] = (temp_s3->pos[0] + (temp_f20 * (temp_s0->unk_010[0] + temp_s0->unk_028[0]))) - ((temp_s0->unk_028[2] + temp_s0->unk_010[2]) * sins(temp_t4 & 0xFFFF));
- temp_s0->pos[1] = (f32) ((f64) temp_s0->unk_028[1] + (6.5 + (f64) temp_s3->unk_074 + (f64) temp_s0->unk_010[1]));
- temp_f20_2 = sins(temp_t4 & 0xFFFF);
- temp_s0->pos[2] = ((temp_s0->unk_028[2] + temp_s0->unk_010[2]) * coss(temp_t4 & 0xFFFF)) + (temp_s3->pos[2] + (temp_f20_2 * (temp_s0->unk_010[0] + temp_s0->unk_028[0])));
- func_8007C550(temp_s2);
- if (func_8007223C(temp_s2, 0x00000080) != 0) {
- temp_s0->unk_074 = &D_800E44B0;
+ for (someIndex = 0; someIndex < NUM_BOOS; someIndex++) {
+ objectIndex = D_8018BFA8[someIndex];
+ object = &D_80165C18[objectIndex];
+ if (object->unk_0A6 != 0) {
+ func_8007C684(objectIndex);
+ func_8008B78C(objectIndex);
+ player = &gPlayerOne[object->unk_0D1];
+ camera = &camera1[object->unk_0D1];
+ temp_t4 = (0x8000 - camera->rot[1]);
+ object->pos[0] = player->pos[0] + (coss(temp_t4) * (object->unk_010[0] + object->unk_028[0])) - (sins(temp_t4) * (object->unk_010[2] + object->unk_028[2]));
+ object->pos[1] = 6.5 + player->unk_074 + object->unk_010[1] + object->unk_028[1];
+ object->pos[2] = player->pos[2] + (sins(temp_t4) * (object->unk_010[0] + object->unk_028[0])) + (coss(temp_t4) * (object->unk_010[2] + object->unk_028[2]));
+ func_8007C550(objectIndex);
+ if (func_8007223C(objectIndex, 0x00000080) != 0) {
+ object->unk_074 = D_800E44B0;
} else {
- temp_s0->unk_074 = &D_800E4470;
+ object->unk_074 = D_800E4470;
}
}
- var_s4 += 4;
- } while (var_s4 != &D_8018BFD0);
+ }
}
-#else
-GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007CC00.s")
-#endif
void func_8007CE0C(s32 objectIndex) {
struct_80165C18_entry *temp_s0;
@@ -7232,35 +7142,17 @@ void func_80082E5C(void) {
}
}
-#ifdef MIPS_TO_C
-//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
-struct _struct_D_800E5DF4_0x8 {
- /* 0x0 */ s16 unk0; /* inferred */
- /* 0x2 */ s16 unk2; /* inferred */
- /* 0x4 */ s16 unk4; /* inferred */
- /* 0x6 */ u16 unk6; /* inferred */
-}; /* size = 0x8 */
-
-extern ? D_06014794;
-extern ? D_06014798;
-extern f32 D_8018D01C;
-static struct _struct_D_800E5DF4_0x8 D_800E5DF4[0]; /* unable to generate initializer */
-
+#ifdef NON_MATCHING
+// https://decomp.me/scratch/RquH0
+// Gollygee I sure love register allocation :^)
void func_80082F1C(s32 objectIndex, s32 arg1) {
- struct _struct_D_800E5DF4_0x8 *sp24;
- struct _struct_D_800E5DF4_0x8 *temp_v0_2;
- struct_80165C18_entry *temp_v0;
-
- temp_v0 = &D_80165C18[objectIndex];
- temp_v0->unk_070 = (s32) &D_06014798;
- temp_v0->unk_074 = (s32) &D_06014794;
- temp_v0->sizeScaling = 0.027f;
+ D_80165C18[objectIndex].unk_070 = D_06014798;
+ D_80165C18[objectIndex].unk_074 = D_06014794;
+ D_80165C18[objectIndex].sizeScaling = 0.027f;
func_80072488(objectIndex);
- temp_v0_2 = &D_800E5DF4[arg1];
- sp24 = temp_v0_2;
- func_8008B7D4(objectIndex, (f32) temp_v0_2->unk0 * D_8018D01C, (f32) temp_v0_2->unk2, (f32) temp_v0_2->unk4);
+ func_8008B7D4(objectIndex, D_800E5DF4[arg1].pos[0] * D_8018D01C, D_800E5DF4[arg1].pos[1], D_800E5DF4[arg1].pos[2]);
func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f);
- func_8008B888(objectIndex, 0U, temp_v0_2->unk6, 0U);
+ func_8008B888(objectIndex, 0U, D_800E5DF4[arg1].rot, 0U);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80082F1C.s")
@@ -7285,7 +7177,7 @@ void func_80083080(void) {
s32 objectIndex;
s32 var_s1;
- for (var_s1 = 0; var_s1 < 4; var_s1++) {
+ for (var_s1 = 0; var_s1 < NUM_YV_FLAG_POLES; var_s1++) {
objectIndex = D_80183EA0[var_s1];
if (D_80165C18[objectIndex].unk_0A6 != 0) {
func_80083018(objectIndex, var_s1);
@@ -8159,17 +8051,11 @@ void func_80085878(s32 objectIndex, s32 arg1) {
func_80072488(objectIndex);
}
-#ifdef MIPS_TO_C
-//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-10-2023
-extern s32 D_8018D40C;
-
void func_800859C8(s32 objectIndex, s32 arg1) {
- s16 temp_v0;
struct_80165C18_entry *temp_s0;
temp_s0 = &D_80165C18[objectIndex];
- temp_v0 = temp_s0->unk_0A6;
- switch (temp_v0) { /* irregular */
+ switch (temp_s0->unk_0A6) { /* irregular */
case 0:
break;
case 1:
@@ -8184,9 +8070,6 @@ void func_800859C8(s32 objectIndex, s32 arg1) {
}
func_80074344(objectIndex, &temp_s0->unk_044, -0.8f, 0.8f, 0.03f, 0, -1);
}
-#else
-GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800859C8.s")
-#endif
void func_80085AA8(void) {
s32 temp_s2;
diff --git a/src/code_80071F00.h b/src/code_80071F00.h
index 862b81efa..305708f77 100644
--- a/src/code_80071F00.h
+++ b/src/code_80071F00.h
@@ -5,6 +5,8 @@
#include "common_structs.h"
#include "camera.h"
+#define NUM_YV_FLAG_POLES 4
+
// This struct is used by a lot of different objects
// Stars, clouds, exahust smoke (I think?)
typedef struct {
@@ -12,6 +14,11 @@ typedef struct {
u16 id;
} StarSpawn;
+typedef struct {
+ Vec3s pos;
+ u16 rot;
+} YVFlagPoleSpawn;
+
void func_80077D5C(s32);
s32 find_unused_obj_index(s32*);
void func_80071F6C(s32*);
@@ -204,6 +211,8 @@ void func_8007AC9C(s32);
u8 gen_random_item(s16, s16);
u8 func_8007AF40(s16, s16);
u8 func_8007AF78(s32, s16);
+s16 func_8007AFB0(s32, s32);
+s32 func_8007B040(s32, s32);
void func_8007B34C(s32);
void func_8007BB9C(s32);
void func_8007BBBC(s32);
@@ -212,6 +221,7 @@ void func_8007BDA8(void);
void func_8007BDE0(s32);
void func_8007BEC8(s32);
void func_8007BFB0(s32);
+void func_8007CA70(void);
void func_8007CC00(void);
void func_8007C280(void);
void func_8007C2F8(s32);
@@ -393,6 +403,8 @@ extern u8 d_course_moo_moo_farm_mole_frames[][2048];
// From Yoshi Valley course data, haven't created a .h file for it yet
extern u8 gTLUTHedgehog[];
+extern animation_type_2 *D_06014794[];
+extern u32 D_06014798[];
extern u8 gTextureHedgehog[];
// From Frappe Snowland course data, haven't created a .h file for it yet
@@ -404,7 +416,7 @@ extern u8 gTextureSnowmanBody[];
// From Sherbet Land course data, haven't created a .h file for it yet
extern u32 D_06008EB0[]; // d_course_sherbet_land_unk_data1
-extern animation_type_2 D_06009AC8[]; // d_course_sherbet_land_unk_data11
+extern animation_type_2 *D_06009AC8[]; // d_course_sherbet_land_unk_data11
extern u8 d_course_sherbet_land_ice[];
// From Rainbow Road course data, haven't created a .h file for it yet
@@ -429,6 +441,8 @@ extern u8 *D_8018C028;
// I think the entires in this array are way over-sized
extern u8 D_80183FA8[4][0x2000];
+extern YVFlagPoleSpawn D_800E5DF4[NUM_YV_FLAG_POLES];
+
// Something related to the rotation(?) of ice in Sherbet Land
extern u16 D_801657A2;
@@ -464,5 +478,7 @@ extern Gfx D_0B008A90[];
// The other entries appear to be unused.
// data/data_code_80071F00_2.s
extern Vec3s D_800E634C[3]; // static?
+extern Vtx D_800E4470[];
+extern Vtx D_800E44B0[];
#endif