From 73cdddeb657de210b87010b5365811acd954ade6 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Fri, 26 Jul 2024 11:14:07 -0500 Subject: [PATCH 1/2] Do most of m439dll Several symbols and any data referenced still need to be dumped. --- config/GMPE01_00/rels/m439Dll/symbols.txt | 24 +- src/REL/m439Dll/main.c | 2054 +++++++++++++++++++++ 2 files changed, 2067 insertions(+), 11 deletions(-) create mode 100644 src/REL/m439Dll/main.c diff --git a/config/GMPE01_00/rels/m439Dll/symbols.txt b/config/GMPE01_00/rels/m439Dll/symbols.txt index dac370b7..04d69746 100644 --- a/config/GMPE01_00/rels/m439Dll/symbols.txt +++ b/config/GMPE01_00/rels/m439Dll/symbols.txt @@ -260,28 +260,29 @@ lbl_1_data_73CC = .data:0x000073CC; // type:object size:0x28 lbl_1_data_73F4 = .data:0x000073F4; // type:object size:0x28 lbl_1_data_741C = .data:0x0000741C; // type:object size:0x70 data:float lbl_1_data_748C = .data:0x0000748C; // type:object size:0x140 -lbl_1_data_75CC = .data:0x000075CC; // type:object size:0x14 +lbl_1_data_75CC = .data:0x000075CC; // type:object size:0x14 data:float lbl_1_data_75E0 = .data:0x000075E0; // type:object size:0x10 data:4byte lbl_1_data_75F0 = .data:0x000075F0; // type:object size:0xC data:float lbl_1_data_75FC = .data:0x000075FC; // type:object size:0xC data:float lbl_1_data_7608 = .data:0x00007608; // type:object size:0x4 -lbl_1_data_760C = .data:0x0000760C; // type:object size:0xC -lbl_1_data_7618 = .data:0x00007618; // type:object size:0xC -lbl_1_data_7624 = .data:0x00007624; // type:object size:0x24 +lbl_1_data_760C = .data:0x0000760C; // type:object size:0xC data:float +lbl_1_data_7618 = .data:0x00007618; // type:object size:0xC data:float +lbl_1_data_7624 = .data:0x00007624; // type:object size:0x23 data:string lbl_1_data_7648 = .data:0x00007648; // type:object size:0x4 data:4byte lbl_1_data_764C = .data:0x0000764C; // type:object size:0x4 data:4byte jumptable_1_data_7650 = .data:0x00007650; // type:object size:0x28 scope:local lbl_1_data_7678 = .data:0x00007678; // type:object size:0x1C data:string lbl_1_data_7694 = .data:0x00007694; // type:object size:0x1C -lbl_1_data_76B0 = .data:0x000076B0; // type:object size:0x58 -lbl_1_data_7708 = .data:0x00007708; // type:object size:0x30 -lbl_1_data_7738 = .data:0x00007738; // type:object size:0x5C +lbl_1_data_76B0 = .data:0x000076B0; // type:object size:0x58 data:float +lbl_1_data_7708 = .data:0x00007708; // type:object size:0x30 data:float +lbl_1_data_7738 = .data:0x00007738; // type:object size:0x3C data:2byte +lbl_1_data_7774 = .data:0x00007774; // type:object size:0x20 data:4byte lbl_1_data_7794 = .data:0x00007794; // type:object size:0x4 lbl_1_data_7798 = .data:0x00007798; // type:object size:0x4 data:4byte lbl_1_data_779C = .data:0x0000779C; // type:object size:0x4 data:4byte lbl_1_data_77A0 = .data:0x000077A0; // type:object size:0x28 -lbl_1_data_77C8 = .data:0x000077C8; // type:object size:0x70 -lbl_1_data_7838 = .data:0x00007838; // type:object size:0x1C +lbl_1_data_77C8 = .data:0x000077C8; // type:object size:0x70 data:float +lbl_1_data_7838 = .data:0x00007838; // type:object size:0x1C data:2byte lbl_1_data_7854 = .data:0x00007854; // type:object size:0x6 data:string lbl_1_data_785A = .data:0x0000785A; // type:object size:0x6 data:string lbl_1_data_7860 = .data:0x00007860; // type:object size:0x8 data:string @@ -295,7 +296,7 @@ lbl_1_data_788E = .data:0x0000788E; // type:object size:0x6 data:string lbl_1_data_7894 = .data:0x00007894; // type:object size:0x6 data:string lbl_1_data_789A = .data:0x0000789A; // type:object size:0x6 data:string lbl_1_data_78A0 = .data:0x000078A0; // type:object size:0x20 -lbl_1_data_78C0 = .data:0x000078C0; // type:object size:0x30 +lbl_1_data_78C0 = .data:0x000078C0; // type:object size:0x30 data:float lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x20 @@ -319,7 +320,8 @@ lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x4 data:4byte lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:4byte lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x10 data:4byte -lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x8 data:4byte +lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x4 data:4byte +lbl_1_bss_164 = .bss:0x00000164; // type:object size:0x4 data:4byte lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x4 data:4byte lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x4 data:4byte lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x4 data:4byte diff --git a/src/REL/m439Dll/main.c b/src/REL/m439Dll/main.c new file mode 100644 index 00000000..df209f90 --- /dev/null +++ b/src/REL/m439Dll/main.c @@ -0,0 +1,2054 @@ +#include "game/object.h" +#include "game/objsub.h" +#include "game/hsfman.h" +#include "game/hsfanim.h" +#include "game/hsfmotion.h" +#include "game/hsfdraw.h" + +#include "game/init.h" + +#include "game/esprite.h" + +#include "game/audio.h" +#include "game/chrman.h" +#include "game/wipe.h" +#include "game/minigame_seq.h" +#include "game/gamework_data.h" +#include "game/sprite.h" +#include "game/frand.h" +#include "game/pad.h" + +#include "ext_math.h" + +#include "rel_sqrt_consts.h" + +typedef struct camera_params { + float zoom; + Vec pos; + Vec rot; +} CameraViewParams; + +CameraViewParams lbl_1_data_741C[] = { + { + 4775, + -2800, 0, -7700, + 343, 20, 0, + }, + { + 5000, + 0, 0, 0, + 290, 0, 0, + }, + { + 2800, + 0, 0, -7600, + 347, 0, 0, + }, + { + 2800, + 0, 0, -7600, + 290, 0, 0 + } +}; + + +typedef struct struct_data_748C { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC[2]; +} StructData748C; + +StructData748C lbl_1_data_748C[16] = { + { + 0, + -1, + 1, + { 1, 0 } + }, + { + 1, + 0, + 2, + { 2, 3 } + }, + { + 2, + 1, + 1, + { 4, 0 } + }, + { + 2, + 1, + 1, + { 5, 0 } + }, + { + 3, + 2, + 2, + { 6, 7 } + }, + { + 3, + 3, + 2, + { 8, 9 } + }, + { + 4, + 4, + 1, + { 10, 0 } + }, + { + 4, + 4, + 1, + { 11, 0 } + }, + { + 4, + 5, + 1, + { 12, 0 } + }, + { + 4, + 5, + 1, + { 13, 0 } + }, + { + 5, + 6, + 0, + { 0, 0 } + }, + { + 5, + 7, + 0, + { 0, 0 } + }, + { + 5, + 8, + 0, + { 0, 0 } + }, + { + 5, + 9, + 0, + { 0, 0 } + } +}; + +float lbl_1_data_75CC[5] = { -700, -2200, -3600, -5200, -6600 }; +s32 lbl_1_data_75E0[4] = { 1, 2, 4, 8 }; +Vec lbl_1_data_75F0 = { 700, 2500, -700 }; +Vec lbl_1_data_75FC = { 0, 0, 0 }; +GXColor lbl_1_data_7608 = { 255, 255, 255, 255 }; +Vec lbl_1_data_760C = { 700, 2500, -700 }; +Vec lbl_1_data_7618 = { 0, 1, 0 }; + + +omObjData *lbl_1_bss_170; +omObjData *lbl_1_bss_16C; +omObjData *lbl_1_bss_168; +u32 lbl_1_bss_164; +u32 lbl_1_bss_160; +s32 lbl_1_bss_150[4]; +s32 lbl_1_bss_14C; +s32 lbl_1_bss_148; +s32 lbl_1_bss_144; +s32 lbl_1_bss_140; +s16 lbl_1_bss_13C; +s16 lbl_1_bss_13A; +s16 lbl_1_bss_132[4]; +s16 lbl_1_bss_130; +s16 lbl_1_bss_12E; +s16 lbl_1_bss_12C; +Process *lbl_1_bss_128; +void *lbl_1_bss_11C[3]; +Vec lbl_1_bss_F8[3]; +Vec lbl_1_bss_D4[3]; +Mtx lbl_1_bss_44[3]; +AnimData *lbl_1_bss_40; +Vec lbl_1_bss_34; +s16 lbl_1_bss_32; +s16 lbl_1_bss_30; +s16 lbl_1_bss_10[16]; +StructData748C *lbl_1_bss_C; +StructData748C *lbl_1_bss_8; +s16 pad_05_00000000_bss[4]; + +void fn_1_384(omObjData *object); +void fn_1_A18(Process *objman); +void fn_1_49C8(Process *objman); +void fn_1_5BA0(Process *objman); +void fn_1_73F4(Process *objman); + +void fn_1_6C08(omObjData *object); + + +void ObjectSetup(void) +{ + Process *objman; + s16 light; + + CameraData *camera = &Hu3DCamera[0]; + OSReport("******* M439ObjectSetup *********\n"); + objman = omInitObjMan(50, 8192); + omGameSysInit(objman); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 10, 100, 15000, 1.2); + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + lbl_1_bss_168 = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); + lbl_1_bss_168->work[0] = 1; + lbl_1_bss_34.x = lbl_1_data_75FC.x-lbl_1_data_75F0.x; + lbl_1_bss_34.y = lbl_1_data_75FC.y-lbl_1_data_75F0.y; + lbl_1_bss_34.z = lbl_1_data_75FC.z-lbl_1_data_75F0.z; + VECNormalize(&lbl_1_bss_34, &lbl_1_bss_34); + light = Hu3DGLightCreateV(&lbl_1_data_75F0, &lbl_1_bss_34, &lbl_1_data_7608); + Hu3DGLightInfinitytSet(light); + Hu3DGLightStaticSet(light, 1); + Hu3DShadowCreate(20, 200, 10000); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&lbl_1_data_760C, &lbl_1_data_7618, &lbl_1_data_75FC); + HuAudSndGrpSet(65); + lbl_1_bss_170 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_384); + lbl_1_bss_16C = omAddObjEx(objman, 10, 0, 0, -1, fn_1_6C08); + fn_1_A18(objman); + fn_1_49C8(objman); + fn_1_5BA0(objman); + fn_1_73F4(objman); +} + +void fn_1_364(s32 arg0) +{ + lbl_1_bss_160 = arg0; +} + +s32 fn_1_374(void) +{ + return lbl_1_bss_160; +} + +void fn_1_408(omObjData *object); + +void fn_1_384(omObjData *object) +{ + fn_1_364(0); + lbl_1_bss_14C = 60; + lbl_1_bss_12E = 60; + lbl_1_bss_12C = 60; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_408; +} + +s32 lbl_1_data_7648 = -1; +s32 lbl_1_data_764C = -1; + +void fn_1_9BC(omObjData *object); + +s32 fn_1_B7C(void); +void fn_1_C00(void); + +void fn_1_408(omObjData *object) +{ + switch(fn_1_374()) { + case 0: + if(lbl_1_bss_14C == 60) { + HuAudFXPlay(1797); + } + if(--lbl_1_bss_14C == 0) { + fn_1_364(1); + lbl_1_bss_14C = 120; + } + break; + + case 1: + if(--lbl_1_bss_14C == 0) { + WipeColorSet(0, 0, 0); + fn_1_364(2); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + } + break; + + case 2: + if(!WipeStatGet()) { + fn_1_364(3); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + lbl_1_data_764C = HuAudFXPlay(1798); + } + break; + + case 3: + if(!WipeStatGet()) { + fn_1_364(4); + lbl_1_bss_32 = MGSeqStartCreate(); + + } + break; + + case 4: + if(!MGSeqStatGet(lbl_1_bss_32)) { + fn_1_364(5); + lbl_1_bss_30 = MGSeqTimerCreate(60); + } + if(lbl_1_data_7648 < 0 && (MGSeqStatGet(lbl_1_bss_32) & 0x10)) { + lbl_1_data_7648 = HuAudSeqPlay(75); + } + break; + + case 5: + if(--lbl_1_bss_12C == 0) { + lbl_1_bss_12E--; + MGSeqParamSet(lbl_1_bss_30, 1, lbl_1_bss_12E); + lbl_1_bss_12C = 60; + } + if(lbl_1_bss_130 >= 3 || lbl_1_bss_12E == 0) { + fn_1_364(6); + lbl_1_bss_32 = MGSeqFinishCreate(); + HuAudSeqFadeOut(lbl_1_data_7648, 100); + } + break; + + case 6: + if(lbl_1_bss_30 >= 0) { + MGSeqParamSet(lbl_1_bss_30, 2, -1); + lbl_1_bss_30 = -1; + } + if(!MGSeqStatGet(lbl_1_bss_32)) { + fn_1_364(7); + lbl_1_bss_14C = 60; + } + break; + + case 7: + if(fn_1_B7C() && --lbl_1_bss_14C == 0) { + fn_1_C00(); + fn_1_364(9); + if(lbl_1_bss_130) { + HuAudSStreamPlay(1); + } else { + HuAudSStreamPlay(4); + } + lbl_1_bss_14C = 210; + } + break; + + case 9: + if(--lbl_1_bss_14C == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + WipeColorSet(255, 255, 255); + HuAudFXStop(lbl_1_data_764C); + object->func = fn_1_9BC; + } + break; + } + if(lbl_1_bss_13A) { + s32 i; + for(i=0; ifunc = fn_1_9BC; + } +} + +void fn_1_B20(void); +void fn_1_5CAC(void); + +void fn_1_9BC(omObjData *object) +{ + if(!WipeStatGet()) { + fn_1_B20(); + fn_1_5CAC(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + OSReport("******* M439Exit *********\n"); + + } +} + +void fn_1_D0C(omObjData *object); + +void fn_1_A18(Process *objman) +{ + s32 i; + lbl_1_bss_150[0] = lbl_1_bss_150[1] = lbl_1_bss_150[2] = lbl_1_bss_150[3] = -1; + lbl_1_bss_148 = 0; + lbl_1_bss_13C = 0; + lbl_1_bss_13A = 0; + lbl_1_bss_130 = 0; + omMakeGroupEx(objman, 0, 4); + for(i=0; i<4; i++) { + omAddObjEx(objman, 5, 3, 50, 0, fn_1_D0C); + } + lbl_1_bss_40 = HuSprAnimRead(HuDataReadNum(0x460016, MEMORY_DEFAULT_NUM)); + +} + +void fn_1_4978(omObjData *object); + +void fn_1_B20(void) +{ + omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + s32 i; + for(i=0; i<4; i++) { + fn_1_4978(objList[i]); + + } +} + +typedef struct work_d0c { + u16 unk0_field0 : 1; + u16 unk0_field1 : 1; + u16 unk0_field2 : 1; + u16 unk0_field3 : 1; + u16 unk0_field4 : 1; + u16 unk0_field5 : 1; + u16 unk0_field6 : 1; + u16 unk0_field7 : 1; + u16 unk0_field8 : 1; + s16 unk2; + s16 unk4; + s8 unk6; + s8 unk7; + u16 unk8; + u16 unkA; + s16 unkC; + s16 unkE; + s16 unk10; + s16 unk12; + Vec unk14; + Vec unk20; + s32 unk2C; + u32 unk30; + float unk34; + float unk38; + s16 unk3C; + s16 unk3E; + float unk40; + s16 unk44; + s16 unk46; + float unk48; + float unk4C; + Vec unk50; + Vec unk5C; + Vec unk68; + Vec unk74; + u16 unk80; + Vec unk84; + float unk90; + float unk94; + Vec unk98; + float unkA4; + float unkA8; +} WorkD0C; + +s32 fn_1_B7C(void) +{ + omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + s32 i; + for(i=0; i<4; i++) { + WorkD0C *work = objList[i]->data; + if(!work->unk0_field7) { + return 0; + } + } + return 1; +} + +void fn_1_C00(void) +{ + omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + s32 i; + if(lbl_1_bss_13C == 0) { + for(i=0; i<4; i++) { + GWPlayerCoinWinSet(i, 3); + } + } else { + for(i=0; i<4; i++) { + WorkD0C *work = objList[i]->data; + if(!work->unk0_field0) { + GWPlayerCoinWinSet(i, lbl_1_bss_13C); + } + } + } +} + +s32 lbl_1_data_7694[7] = { + 0x5F0000, + 0x5F0002, + 0x5F0003, + 0x5F0014, + 0x5F0050, + 0x5F0017, + 0x5F0072 +}; + +void fn_1_4528(ModelData *model, ParticleData *particle, Mtx matrix); + +void fn_1_2BB4(omObjData *object); + +void fn_1_D0C(omObjData *object) +{ + WorkD0C *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkD0C), MEMORY_DEFAULT_NUM); + u32 i; + s32 charNo; + object->data = work; + memset(work, 0, sizeof(WorkD0C)); + work->unk2 = lbl_1_bss_148++; + work->unk4 = GWPlayerCfg[work->unk2].pad_idx; + charNo = GWPlayerCfg[work->unk2].character; + work->unkC = charNo; + work->unkE = GWPlayerCfg[work->unk2].diff; + work->unk10 = GWPlayerCfg[work->unk2].group; + object->model[0] = CharModelCreate(charNo, 8); + if(work->unk2 == 0) { + Hu3DModelShadowSet(object->model[0]); + } + Hu3DModelCameraSet(object->model[0], lbl_1_data_75E0[work->unk2]); + work->unk2C = 0; + work->unk30 = 0x40000001; + for(i=0; i<7; i++) { + object->motion[i] = CharModelMotionCreate(work->unkC, lbl_1_data_7694[i]); + } + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + CharModelVoiceEnableSet(work->unkC, object->motion[4], 0); + CharModelDataClose(work->unkC); + object->model[1] = Hu3DModelCreateFile(0x460012); + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelCameraSet(object->model[1], lbl_1_data_75E0[work->unk2]); + work->unk0_field3 = 1; + work->unk44 = 0; + work->unk46 = 0; + work->unk40 = 1000; + work->unk14.x = 0; + work->unk94 = work->unkA4 = 0.5f; + object->rot.y = 180; + object->model[2] = Hu3DParticleCreate(lbl_1_bss_40, 10); + Hu3DParticleHookSet(object->model[2], fn_1_4528); + Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelCameraSet(object->model[2], lbl_1_data_75E0[work->unk2]); + object->func = fn_1_2BB4; +} + +float fn_1_1024(float arg0, float arg1, float arg2) +{ + float temp_f31 = fmod(arg1-arg0, 360); + float temp_f30; + if(temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + if(temp_f31 > 180.0f) { + temp_f31 -= 360.0f; + } + temp_f30 = fmod(arg0+(arg2*temp_f31), 360.0); + if(temp_f30 < 0.0f) { + temp_f30 += 360.0f; + } + return temp_f30; +} + +float lbl_1_data_76B0[11][2] = { + -180, -230, + -260, -150, + -300, 0, + -260, 150, + -150, 260, + -1e-50, 300, + 150, 260, + 260, 150, + 300, -1e-50, + 260, -150, + 180, -230 +}; + +s32 fn_1_1128(Vec *arg0) +{ + float sp20[2]; + float sp18[2]; + float sp10[2]; + float temp_f29; + + u32 i; + for(i=0; i<10; i++) { + s32 temp_r30 = i+1; + + float temp_f26; + sp20[0] = lbl_1_data_76B0[temp_r30][0]-lbl_1_data_76B0[i][0]; + sp20[1] = lbl_1_data_76B0[temp_r30][1]-lbl_1_data_76B0[i][1]; + temp_f26 = (((arg0->z*sp20[1])+((arg0->x*sp20[0])-(sp20[0]*lbl_1_data_76B0[i][0])))-(sp20[1]*lbl_1_data_76B0[i][1]))/((sp20[0]*sp20[0])+(sp20[1]*sp20[1])); + if(temp_f26 >= 0.0f && temp_f26 < 1.0f) { + sp10[0] = lbl_1_data_76B0[i][0]+(sp20[0]*temp_f26); + sp10[1] = lbl_1_data_76B0[i][1]+(sp20[1]*temp_f26); + sp18[0] = arg0->x-sp10[0]; + sp18[1] = arg0->z-sp10[1]; + temp_f29 = sqrtf((sp18[0]*sp18[0])+(sp18[1]*sp18[1])); + if(temp_f29 < 130.0f) { + if(temp_f29 != 0.0f) { + sp18[0] /= temp_f29; + sp18[1] /= temp_f29; + } else { + sp18[0] = 0; + sp18[1] = 1; + } + arg0->x = sp10[0]+(130.0f*sp18[0]); + arg0->z = sp10[1]+(130.0f*sp18[1]); + } + } + } + for(i=0; i<11; i++) { + sp20[0] = arg0->x-lbl_1_data_76B0[i][0]; + sp20[1] = arg0->z-lbl_1_data_76B0[i][1]; + temp_f29 = sqrtf((sp20[0]*sp20[0])+(sp20[1]*sp20[1])); + if(temp_f29 < 130.0f) { + if(temp_f29 != 0.0f) { + sp20[0] /= temp_f29; + sp20[1] /= temp_f29; + } else { + sp20[0] = 0; + sp20[1] = 1; + } + arg0->x = lbl_1_data_76B0[i][0]+(130.0f*sp20[0]); + arg0->z = lbl_1_data_76B0[i][1]+(130.0f*sp20[1]); + } + } +} + + +float lbl_1_data_7708[3][2][2] = { + -99.8, -1431.8, 77.2, -1437.8, + -1499.8, -4571.8, -1322.8, -4577.8, + 1300.2, -4571.8, 1477.2, -4577.8 +}; + +s32 fn_1_16B0(Vec *arg0) +{ + s32 i; + for(i=0; i<3; i++) { + float sp20[2]; + float sp18[2]; + float sp10[2]; + float temp_f29; + float temp_f26; + s32 j; + sp20[0] = lbl_1_data_7708[i][1][0]-lbl_1_data_7708[i][0][0]; + sp20[1] = lbl_1_data_7708[i][1][1]-lbl_1_data_7708[i][0][1]; + temp_f26 = (((arg0->z*sp20[1])+((arg0->x*sp20[0])-(sp20[0]*lbl_1_data_7708[i][0][0])))-(sp20[1]*lbl_1_data_7708[i][0][1]))/((sp20[0]*sp20[0])+(sp20[1]*sp20[1])); + if(temp_f26 >= 0.0f && temp_f26 < 1.0f) { + sp10[0] = lbl_1_data_7708[i][0][0]+(sp20[0]*temp_f26); + sp10[1] = lbl_1_data_7708[i][0][1]+(sp20[1]*temp_f26); + sp18[0] = arg0->x-sp10[0]; + sp18[1] = arg0->z-sp10[1]; + temp_f29 = sqrtf((sp18[0]*sp18[0])+(sp18[1]*sp18[1])); + if(temp_f29 < 50.0f) { + if(temp_f29 != 0.0f) { + sp18[0] /= temp_f29; + sp18[1] /= temp_f29; + } else { + sp18[0] = 0; + sp18[1] = 1; + } + arg0->x = sp10[0]+(50.0f*sp18[0]); + arg0->z = sp10[1]+(50.0f*sp18[1]); + } + } + for(j=0; j<2; j++) { + sp20[0] = arg0->x-lbl_1_data_7708[i][j][0]; + sp20[1] = arg0->z-lbl_1_data_7708[i][j][1]; + temp_f29 = sqrtf((sp20[0]*sp20[0])+(sp20[1]*sp20[1])); + if(temp_f29 < 50.0f) { + if(temp_f29 != 0.0f) { + sp20[0] /= temp_f29; + sp20[1] /= temp_f29; + } else { + sp20[0] = 0; + sp20[1] = 1; + } + arg0->x = lbl_1_data_7708[i][j][0]+(50.0f*sp20[0]); + arg0->z = lbl_1_data_7708[i][j][1]+(50.0f*sp20[1]); + } + } + } +} + +extern Vec *lbl_1_data_1014[][2]; +extern u16 lbl_1_data_1074[]; +extern float *lbl_1_data_108C[]; + + +float fn_1_1C54(s32 arg0, Vec *arg1, Vec *arg2) +{ + Vec *temp_r31; + Vec *temp_r30; + s32 i; + Vec sp24; + Vec sp18; + s32 sp14 = -1; + float sp10 = 1000; + float *temp_r28 = lbl_1_data_108C[arg0]; + VECSubtract(arg2, arg1, &sp18); + temp_r31 = lbl_1_data_1014[arg0][0]; + temp_r30 = lbl_1_data_1014[arg0][1]; + for(i=0; ix*sp24.x)+(sp18.y*sp24.y)-(temp_r31->y*sp24.y)+(sp18.z*sp24.z)-(temp_r31->z*sp24.z))/temp_f31; + VECSubtract(&temp_r30[1], &temp_r30[0], &sp24); + temp_f31 = VECMag2Point(&sp24); + if(temp_f31 == 0.0f) { + continue; + } + temp_f28 = ((sp18.x*sp24.x)-(temp_r30->x*sp24.x)+(sp18.y*sp24.y)-(temp_r30->y*sp24.y)+(sp18.z*sp24.z)-(temp_r30->z*sp24.z))/temp_f31; + temp_f30 = 0.5f*(temp_f29+temp_f28); + if(temp_f30 < 0.0f || temp_f30 >= 1.0f) { + continue; + } else { + return temp_r28[i]+(temp_f30*(temp_r28[i+1]-temp_r28[i])); + + } + } + return -1; +} + +void fn_1_1F3C(s32 arg0, Vec *arg1, float arg2, float arg3, Vec *arg4) +{ + float *temp_r30 = lbl_1_data_108C[arg0]; + s32 i; + for(i=0; ix+(temp_f31*sp8.x); + sp20.y = temp_r29->y+(temp_f31*sp8.y); + sp20.z = temp_r29->z+(temp_f31*sp8.z); + VECSubtract(&temp_r28[1], &temp_r28[0], &sp8); + sp14.x = temp_r28->x+(temp_f31*sp8.x); + sp14.y = temp_r28->y+(temp_f31*sp8.y); + sp14.z = temp_r28->z+(temp_f31*sp8.z); + arg4->x = (arg1->x+sp20.x)+(arg3*(sp14.x-sp20.x)); + arg4->y = (arg1->y+sp20.y)+(arg3*(sp14.y-sp20.y)); + arg4->z = (arg1->z+sp20.z)+(arg3*(sp14.z-sp20.z)); + } +} + +float fn_1_2184(s32 arg0, float arg1) +{ + float *temp_r30 = lbl_1_data_108C[arg0]; + s32 i; + for(i=0; i= lbl_1_data_1074[arg0]-1) { + return -1; + } else { + return temp_r30[i+1]-temp_r30[i]; + } +} + +s16 lbl_1_data_7738[10][3] = { + 1, 0, 0, + 2, 1, 2, + 2, 3, 4, + 1, 5, 0, + 1, 6, 0, + 1, 7, 0, + 1, 8, 0, + 1, 9, 0, + 1, 10, 0, + 1, 11, 0 +}; + +s32 lbl_1_data_7774[8] = { + 0x005F0000, + 0x005F0001, + 0x005F0002, + 0x005F0003, + 0x005F0014, + 0x005F0050, + 0x005F0017, + 0x005F0018 +}; + +typedef struct work_5cb0 { + s16 unk0; + Vec unk4; + StructData748C unk10; +} Work5CB0; + + +void fn_1_223C(omObjData *object) +{ + float temp_f29; + WorkD0C *temp_r31; + Work5CB0 *temp_r18; + Vec sp58; + s32 sp18; + omObjData **sp14; + temp_r31 = object->data; + if(temp_r31->unk0_field4) { + temp_r31->unk0_field4 = 0; + sp14 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); + temp_r18 = sp14[temp_r31->unk2]->data; + sp18 = temp_r18[temp_r31->unk44].unk0; + temp_r31->unk80 = lbl_1_data_7738[sp18][((lbl_1_data_7738[sp18][0]*frand8()) >> 8)+1]; + temp_r31->unk84 = temp_r18[temp_r31->unk44].unk4; + temp_r31->unk90 = fn_1_1C54(temp_r31->unk80, &temp_r31->unk84, &object->trans); + if(temp_r31->unk90 < 0.0f) { + temp_r31->unk90 = 105.0f; + } + temp_r31->unk90 += 20.0f; + } else { + if(temp_r31->unk0_field5) { + temp_r31->unk94 = temp_r31->unkA4 = 0.5f; + temp_r31->unk0_field5 = 0; + temp_r31->unk0_field6 = 1; + } else { + VECSubtract(&temp_r31->unk98, &object->trans, &sp58); + if(VECMag(&sp58) < 20.0f) { + temp_r31->unk90 += 20.0f; + temp_r31->unk0_field6 = 0; + } + } + } + if(object->trans.z < -500.0f && !temp_r31->unk0_field6 && frand8() == 0) { + temp_r31->unkA4 = (0.55f*((((s32)frand() & 0x1FF)-256.0f)/256.0f))+0.5f; + } + temp_r31->unk94 += 0.05f*(temp_r31->unkA4-temp_r31->unk94); + fn_1_1F3C(temp_r31->unk80, &temp_r31->unk84, temp_r31->unk90, temp_r31->unk94, &temp_r31->unk98); + if(temp_r31->unk98.z > temp_r31->unk40) { + temp_r31->unk98.z = temp_r31->unk40; + } + VECSubtract(&temp_r31->unk98, &object->trans, &sp58); + VECNormalize(&sp58, &sp58); + temp_f29 = 10.0+(((18.0+(6.0f*temp_r31->unkE))*fn_1_2184(temp_r31->unk80, temp_r31->unk90))/200.0); + if(temp_f29 > 72) { + temp_f29 = 72; + } + temp_r31->unk6 = sp58.x*temp_f29; + temp_r31->unk7 = -sp58.z*temp_f29; +} + +void fn_1_2C84(omObjData *object); + +s32 fn_1_62E0(float arg0); + +void fn_1_2BB4(omObjData *object) +{ + WorkD0C *work = object->data; + Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelPosSet(object->model[1], CenterM[work->unk2].x, CenterM[work->unk2].y, CenterM[work->unk2].z); + if(fn_1_374() == 3) { + Hu3DModelAttrSet(object->model[1], 1); + object->func = fn_1_2C84; + } +} + +typedef struct work_4aa8 { + u8 unk0 : 1; + s16 unk2; + s16 unk4; + float unk8[2]; + float unk10; + float unk14[4]; + s16 unk24; + s16 unk26; + Vec unk28; + Vec unk34; + Vec unk40; +} Work4AA8; + + +void fn_1_3C1C(omObjData *object); +s32 fn_1_6328(omObjData *object); +s32 fn_1_67B4(Vec *arg0, s32 arg1, s32 arg2, Vec *arg3, Vec *arg4); + +void fn_1_2C84(omObjData *object) +{ + WorkD0C *temp_r31; + s32 temp_r29; + s32 temp_r28; + omObjData *temp_r27; + u32 temp_r26; + omObjData **temp_r25; + Work4AA8 *temp_r24; + ParticleData *temp_r23; + float temp_f31; + float temp_f30; + float temp_f28; + float temp_f26; + float temp_f25; + float temp_f23; + + Vec spC; + temp_r31 = object->data; + temp_r28 = temp_r31->unk2C; + temp_f25 = temp_r31->unk34; + temp_r26 = temp_r31->unk30; + if(fn_1_374() >= 6 && !temp_r31->unk0_field2) { + temp_r31->unk0_field7 = 1; + temp_r31->unk12 = 2; + temp_r31->unk3E = 120; + object->func = fn_1_3C1C; + return; + } + if(fn_1_374() < 5) { + return; + } + switch(temp_r31->unk12){ + case 0: + if(GWPlayerCfg[temp_r31->unk2].iscom == 0) { + temp_r31->unk6 = HuPadStkX[temp_r31->unk4]; + temp_r31->unk7 = HuPadStkY[temp_r31->unk4]; + temp_r31->unk8 = HuPadBtn[temp_r31->unk4]; + temp_r31->unkA = HuPadBtnDown[temp_r31->unk4]; + } else { + temp_r31->unk8 = temp_r31->unkA = 0; + temp_r31->unk6 = temp_r31->unk7 = 0; + fn_1_223C(object); + } + temp_f31 = temp_r31->unk6; + temp_f30 = -(float)temp_r31->unk7; + temp_f26 = VECMagPoint(temp_f31, temp_f30, 0); + if(temp_f26 > 0.0f) { + temp_f31 /= temp_f26; + temp_f30 /= temp_f26; + if(temp_f26 > 72) { + temp_f26 = 72; + } + temp_f23 = (10.0f*temp_f26)/72.0f; + temp_r31->unk20.x = temp_f31*temp_f23; + temp_r31->unk20.z = temp_f30*temp_f23; + temp_r31->unk14.y = temp_f23; + object->rot.y = fn_1_1024(object->rot.y, atan2d(temp_r31->unk20.x, temp_r31->unk20.z), 0.2f); + if(temp_r31->unk14.y < 7.5f) { + temp_r28 = 1; + temp_f25 = temp_r31->unk14.y/7.5f; + } else { + temp_r28 = 2; + temp_f25 = temp_r31->unk14.y/10.0f; + } + } else { + temp_r31->unk20.x = temp_r31->unk20.z = 0; + temp_r28 = 0; + temp_f25 = 1; + } + VECAdd(&object->trans, &temp_r31->unk20, &object->trans); + fn_1_1128(&object->trans); + fn_1_16B0(&object->trans); + if(object->trans.z > temp_r31->unk40) { + object->trans.z = temp_r31->unk40; + } else { + if(object->trans.z < -7300) { + temp_r31->unk0_field0 = 1; + temp_r31->unk0_field7 = 1; + temp_r31->unk12 = 0; + if(lbl_1_bss_130 == 0) { + temp_r31->unk0_field8 = 1; + } + lbl_1_bss_132[lbl_1_bss_13A++] = temp_r31->unk2; + object->func = fn_1_3C1C; + return; + } + } + if(fn_1_67B4(&object->trans, temp_r31->unk2, temp_r31->unk44, &temp_r31->unk5C, &temp_r31->unk74) && !temp_r31->unk0_field6) { + temp_r31->unk0_field2 = 1; + temp_r31->unk0_field1 = 1; + temp_r31->unk0_field5 = 1; + temp_r31->unk0_field3 = 0; + temp_r31->unk50.x = object->trans.x; + temp_r31->unk50.y = object->trans.y; + temp_r31->unk50.z = object->trans.z; + temp_r31->unk68.y = -2000; + temp_r31->unk12 = 2; + temp_r31->unk3E = 12; + temp_r23 = Hu3DData[object->model[2]].unk_120; + temp_r23->unk_00 = 0; + VECSubtract(&temp_r31->unk5C, &object->trans, &temp_r23->unk_04); + Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelPosSet(object->model[2], object->trans.x, object->trans.y, object->trans.z); + temp_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 2); + temp_r25[temp_r31->unk2]->work[3] = 1; + } else { + spC.x = CenterM[temp_r31->unk2].x; + spC.z = CenterM[temp_r31->unk2].z; + spC.x += 0.1f*(object->trans.x-spC.x); + spC.z += 0.1f*(object->trans.z-spC.z); + temp_r29 = fn_1_62E0(spC.z-350.0f); + if(temp_r29 != temp_r31->unk46 && temp_r29 > 1 && temp_r29 < 6) { + spC.z = lbl_1_data_75CC[temp_r29-1]+350.0f; + } else { + temp_r29 = fn_1_62E0(spC.z+350.0f); + if(temp_r29 != temp_r31->unk46 && temp_r31->unk46 > 1 && temp_r31->unk46 < 6) { + spC.z = lbl_1_data_75CC[temp_r31->unk46-1]-350.0f; + } + } + CenterM[temp_r31->unk2].x = spC.x; + CenterM[temp_r31->unk2].z = spC.z; + temp_r29 = fn_1_62E0(object->trans.z); + if(temp_r29 != temp_r31->unk46) { + temp_r31->unk46 = temp_r29; + temp_r31->unk44 = fn_1_6328(object); + temp_r31->unk0_field4 = 01; + if(temp_r29 > 1 && temp_r29 < 6) { + temp_r31->unk12++; + temp_r31->unk3E = 30; + temp_r31->unk48 = CenterM[temp_r31->unk2].z; + temp_r31->unk4C = object->trans.z-350.0f; + temp_r31->unk40 = lbl_1_data_75CC[temp_r31->unk46-1]; + } + } + } + break; + + case 1: + if(--temp_r31->unk3E == 0) { + temp_r31->unk12 = 0; + } + CenterM[temp_r31->unk2].z = temp_r31->unk48+((temp_r31->unk4C-temp_r31->unk48)*cosd((temp_r31->unk3E*90.0f)/30.0f)); + temp_r28 = 0; + temp_f25 = 1; + break; + + case 2: + temp_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 2); + temp_r27 = temp_r25[temp_r31->unk2]; + temp_r24 = temp_r27->data; + switch(temp_r24->unk4) { + case 1: + temp_f28 = 1.0f-(temp_r24->unk24/90.0f); + object->trans.x = temp_r31->unk50.x+(temp_f28*(temp_r31->unk5C.x-temp_r31->unk50.x)); + object->trans.y = 100+(-2000.0f*(temp_f28-0.1f))*(temp_f28-0.1f); + object->trans.z = temp_r31->unk50.z+(temp_f28*(temp_r31->unk5C.z-temp_r31->unk50.z)); + temp_r28 = 3; + temp_r26 = 0; + break; + + case 2: + case 3: + if(temp_r24->unk0) { + object->trans.x = temp_r27->trans.x; + object->trans.y = temp_r27->trans.y-150; + object->trans.z = temp_r27->trans.z; + temp_r28 = 4; + temp_r26 = 0; + } else { + if(temp_r31->unk3E) { + temp_r31->unk3E--; + } + temp_f28 = sind((temp_r31->unk3E/30.0f)*90.0f); + object->trans.x = temp_r31->unk74.x-(temp_f28*(temp_r31->unk74.x-temp_r31->unk68.x)); + object->trans.y = temp_r31->unk74.y-(temp_f28*(temp_r31->unk74.y-temp_r31->unk68.y)); + object->trans.z = temp_r31->unk74.z-(temp_f28*(temp_r31->unk74.z-temp_r31->unk68.z)); + temp_r28 = 0; + temp_r26 = 0x40000001; + } + break; + } + if(!temp_r31->unk0_field1) { + temp_r31->unk0_field2 = 0; + temp_r31->unk12 = 0; + temp_r31->unk20.y = 0; + } + break; + } + if((temp_r28 >= 0 && temp_r28 != temp_r31->unk2C) || temp_r26 != temp_r31->unk30) { + temp_r31->unk2C = temp_r28; + temp_r31->unk30 = temp_r26; + CharModelMotionShiftSet(temp_r31->unkC, object->motion[temp_r31->unk2C], 0, 8, temp_r26); + } + CharModelMotionSpeedSet(temp_r31->unkC, temp_f25); + temp_r31->unk34 = temp_f25; + if(temp_r31->unk2 == 0) { + Hu3DShadowData.unk_20.x = object->trans.x; + Hu3DShadowData.unk_20.y = object->trans.y; + Hu3DShadowData.unk_20.z = object->trans.z; + Hu3DShadowData.unk_14.x = 700+Hu3DShadowData.unk_20.x; + Hu3DShadowData.unk_14.y = 2500+Hu3DShadowData.unk_20.y; + Hu3DShadowData.unk_14.z = Hu3DShadowData.unk_20.z-700; + } else { + lbl_1_bss_D4[temp_r31->unk2-1].x = object->trans.x; + lbl_1_bss_D4[temp_r31->unk2-1].y = object->trans.y; + lbl_1_bss_D4[temp_r31->unk2-1].z = object->trans.z; + lbl_1_bss_F8[temp_r31->unk2-1].x = 700+lbl_1_bss_D4[temp_r31->unk2-1].x; + lbl_1_bss_F8[temp_r31->unk2-1].y = 2500+lbl_1_bss_D4[temp_r31->unk2-1].y; + lbl_1_bss_F8[temp_r31->unk2-1].z = lbl_1_bss_D4[temp_r31->unk2-1].z-700; + } +} + +void fn_1_3C1C(omObjData *object) +{ + WorkD0C *temp_r31; + s32 temp_r29; + u32 temp_r28; + float temp_f29; + temp_r31 = object->data; + temp_r29 = temp_r31->unk2C; + temp_f29 = temp_r31->unk34; + temp_r28 = temp_r31->unk30; + switch(temp_r31->unk12) { + case 0: + if(object->trans.z > -7600.0f) { + object->trans.z -= 3.75f; + } else { + temp_r31->unk12++; + } + object->rot.y = fn_1_1024(object->rot.y, 180.0f, 0.2f); + temp_r29 = 1; + temp_f29 = 1.0f; + temp_r28 = 0x40000001; + break; + + case 1: + if(fn_1_374() >= 9) { + temp_r29 = (temp_r31->unk0_field8) ? 5 : 6; + temp_f29 = 1.0f; + temp_r28 = 0; + } else { + object->rot.y = fn_1_1024(object->rot.y, 0.0f, 0.2f); + temp_r29 = 0; + temp_f29 = 1.0f; + temp_r28 = 0x40000001; + } + break; + + case 2: + if(--temp_r31->unk3E == 0 || fn_1_374() == 7) { + temp_r31->unk12 = 1; + } + temp_r29 = 0; + temp_f29 = 1.0f; + temp_r28 = 0x40000001; + break; + } + if(temp_r31->unk0_field0) { + CZoomM[temp_r31->unk2] += (lbl_1_data_741C[2].zoom-CZoomM[temp_r31->unk2])*0.1f; + CenterM[temp_r31->unk2].x += (object->trans.x-CenterM[temp_r31->unk2].x)*0.1f; + CenterM[temp_r31->unk2].y += ((object->trans.y+100)-CenterM[temp_r31->unk2].y)*0.1f; + CenterM[temp_r31->unk2].z += (object->trans.z-CenterM[temp_r31->unk2].z)*0.1f; + CRotM[temp_r31->unk2].x += (lbl_1_data_741C[2].rot.x-CRotM[temp_r31->unk2].x)*0.1f; + CRotM[temp_r31->unk2].y += (lbl_1_data_741C[2].rot.y-CRotM[temp_r31->unk2].y)*0.1f; + CRotM[temp_r31->unk2].z += (lbl_1_data_741C[2].rot.z-CRotM[temp_r31->unk2].z)*0.1f; + Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelPosSet(object->model[1], object->trans.x, object->trans.y+200, object->trans.z); + } else { + CZoomM[temp_r31->unk2] += (lbl_1_data_741C[3].zoom-CZoomM[temp_r31->unk2])*0.1f; + CenterM[temp_r31->unk2].x += (object->trans.x-CenterM[temp_r31->unk2].x)*0.1f; + CenterM[temp_r31->unk2].y += ((object->trans.y+100)-CenterM[temp_r31->unk2].y)*0.1f; + CenterM[temp_r31->unk2].z += (object->trans.z-CenterM[temp_r31->unk2].z)*0.1f; + CRotM[temp_r31->unk2].x += (lbl_1_data_741C[3].rot.x-CRotM[temp_r31->unk2].x)*0.1f; + CRotM[temp_r31->unk2].y += (lbl_1_data_741C[3].rot.y-CRotM[temp_r31->unk2].y)*0.1f; + CRotM[temp_r31->unk2].z += (lbl_1_data_741C[3].rot.z-CRotM[temp_r31->unk2].z)*0.1f; + } + if((temp_r29 >= 0 && temp_r29 != temp_r31->unk2C) || temp_r28 != temp_r31->unk30) { + temp_r31->unk2C = temp_r29; + temp_r31->unk30 = temp_r28; + CharModelMotionShiftSet(temp_r31->unkC, object->motion[temp_r31->unk2C], 0, 8, temp_r28); + } + CharModelMotionSpeedSet(temp_r31->unkC, temp_f29); + temp_r31->unk34 = temp_f29; +} + +void fn_1_4528(ModelData *model, ParticleData *particle, Mtx matrix) +{ + float temp_f31; + float temp_f30; + float temp_f29; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + if(particle->unk_00 == 0) { + particle->unk_00 = 1; + temp_r31 = particle->unk_48; + temp_f29 = atan2d(particle->unk_04.x, particle->unk_04.z); + for(temp_r29=0; temp_r29unk_30; temp_r31++, temp_r29++) { + temp_r31->unk2C = ((20.0f*frand8())+50.0f)/256.0f; + temp_f31 = (frand8()*360.0f)/256.0f; + temp_r31->unk34.x = 100.0f*(0.2f*sind(temp_f31)); + temp_r31->unk34.y = 0; + temp_r31->unk34.z = 100.0f*(0.2f*cosd(temp_f31)); + temp_f30 = ((frand8()*2.5f)/256.0f)+(5.0f/3.0f); + temp_f31 = temp_f29+(30.0f*(((s32)frand() & 0x1FF)-256.0f)/256.0f); + temp_r31->unk08.x = temp_f30*sind(temp_f31); + temp_r31->unk08.z = temp_f30*cosd(temp_f31); + temp_r31->unk08.y = (frand8()*(50.0f/3.0f))/256.0f; + temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 255; + } + } + temp_r28 = 0; + temp_r31 = particle->unk_48; + for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { + if(temp_r31->unk34.y < -2000.0f) { + temp_r28++; + } else { + temp_r31->unk08.y += -0.50000006f; + temp_r31->unk34.x += temp_r31->unk08.x; + temp_r31->unk34.y += temp_r31->unk08.y; + temp_r31->unk34.z += temp_r31->unk08.z; + } + } + if(temp_r28 == particle->unk_30) { + model->attr |= 0x1; + } + DCStoreRangeNoSync(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); +} + +void fn_1_4978(omObjData *object) +{ + WorkD0C *work = object->data; + if(object->data != NULL) { + HuMemDirectFree(object->data); + object->data = NULL; + } +} + +void fn_1_4AA8(omObjData *object); + +void fn_1_49C8(Process *objman) +{ + s32 i; + lbl_1_bss_140 = 0; + omMakeGroupEx(objman, 2, 4); + for(i=0; i<4; i++) { + omAddObjEx(objman, 6, 4, 50, 2, fn_1_4AA8); + } +} + +void fn_1_5B9C(omObjData *object); + +void fn_1_4A4C(void) +{ + omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 2); + s32 i; + for(i=0; i<4; i++) { + fn_1_5B9C(objList[i]); + } +} + +s32 lbl_1_data_7794[1] = { 0x460014 }; + +void fn_1_4CC0(omObjData *object); +void fn_1_4F54(omObjData *object); + +void fn_1_4AA8(omObjData *object) +{ + Work4AA8 *work; + u32 i; + work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work4AA8), MEMORY_DEFAULT_NUM); + object->data = work; + memset(work, 0, sizeof(Work4AA8)); + work->unk2 = lbl_1_bss_140; + object->model[0] = Hu3DModelCreateFile(0x460013); + Hu3DModelCameraSet(object->model[0], lbl_1_data_75E0[lbl_1_bss_140]); + Hu3DModelAttrSet(object->model[0], 1); + for(i=0; i<1; i++) { + object->motion[i] = Hu3DJointMotionFile(object->model[0], lbl_1_data_7794[i]); + + } + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + object->trans.y = 500; + object->scale.x = object->scale.y = object->scale.z = 0.25f; + if(work->unk2 == 0) { + object->trans.x = -1800; + object->trans.y = 50; + object->trans.z = -8500; + object->rot.y = -90; + object->func = fn_1_4CC0; + Hu3DMotionSpeedSet(object->model[0], 2.0f); + work->unk24 = 60; + } else { + object->func = fn_1_4F54; + } + lbl_1_bss_140++; +} + +s32 lbl_1_data_7798 = 2; +s32 lbl_1_data_779C = -1; + +void fn_1_4CC0(omObjData *object) +{ + Work4AA8 *work = object->data; + float pan; + Vec pos2D; + if(42.0f == work->unk24) { + HuAudFXPlay(1795); + } + if(work->unk24 == 0) { + object->trans.x -= 25.0f; + } else { + if(--work->unk24 == 0) { + lbl_1_data_779C = HuAudFXPlay(1796); + lbl_1_data_7798--; + } + } + if(lbl_1_data_779C >= 0) { + if(HuAudFXStatusGet(lbl_1_data_779C) == 0) { + if(lbl_1_data_7798 > 0) { + lbl_1_data_779C = HuAudFXPlay(1796); + lbl_1_data_7798--; + } else { + lbl_1_data_779C = -1; + } + } + if(lbl_1_data_779C >= 0) { + Hu3D3Dto2D(&object->trans, 1, &pos2D); + pan = 64.0f+((32.0f*pos2D.x)/576.0f); + if(pan < 32.0f) { + pan = 32.0f; + } else if(pan > 96.0f) { + pan = 96.0f; + } + HuAudFXPanning(lbl_1_data_779C, pan); + } + } + Hu3DModelAttrReset(object->model[0], 1); + if(fn_1_374() == 3) { + Hu3DMotionSpeedSet(object->model[0], 1.0f); + Hu3DModelAttrSet(object->model[0], 1); + object->func = fn_1_4F54; + } +} + +void fn_1_71EC(Vec *arg0, Vec *arg1, float arg2); + +void fn_1_4F54(omObjData *object) +{ + Work4AA8 *work = object->data; + omObjData **temp_r29; + WorkD0C *temp_r28; + Vec sp4C; + Vec sp40; + switch(work->unk4) { + case 0: + if(object->work[3]) { + work->unk4++; + work->unk24 = work->unk26 = 90; + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + object->trans.x = work->unk28.x = temp_r29[work->unk2]->trans.x; + object->trans.y = work->unk28.y = 2000; + object->trans.z = work->unk28.z = temp_r29[work->unk2]->trans.z-100; + object->rot.y = 180; + Hu3DModelAttrReset(object->model[0], 1); + } + break; + + case 1: + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + work->unk34.x = temp_r29[work->unk2]->trans.x; + work->unk34.y = 1500; + work->unk34.z = temp_r29[work->unk2]->trans.z; + work->unk40.x = temp_r29[work->unk2]->trans.x; + work->unk40.y = temp_r29[work->unk2]->trans.y; + work->unk40.z = temp_r29[work->unk2]->trans.z; + fn_1_71EC(&work->unk28, &sp40, 1.0f-((float)work->unk24/(float)work->unk26)); + VECSubtract(&sp40, &object->trans, &sp4C); + object->rot.x = fn_1_1024(object->rot.x, atan2d(-sp4C.y, VECMagXZ(&sp4C)), 0.2f); + object->rot.y = fn_1_1024(object->rot.y, atan2d(sp4C.x, sp4C.z), 0.2f); + object->trans.x = sp40.x; + object->trans.y = sp40.y; + object->trans.z = sp40.z; + if(--work->unk24 == 0) { + work->unk0 = 1; + work->unk4++; + work->unk24 = 90; + work->unk10 = (200.0f-object->trans.y)/work->unk24; + object->rot.x = 0; + } + if(60.0f == work->unk24) { + HuAudFXPlay(1796); + } + break; + + case 2: + object->trans.y += work->unk10; + if(--work->unk24 == 0) { + work->unk4++; + work->unk24 = work->unk26 = 48; + work->unk28.x = object->trans.x; + work->unk28.y = object->trans.y; + work->unk28.z = object->trans.z; + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r28 = temp_r29[work->unk2]->data; + work->unk34.x = temp_r28->unk50.x; + work->unk34.y = 250; + work->unk34.z = temp_r28->unk50.z; + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r28 = temp_r29[work->unk2]->data; + temp_r28->unk0_field3 = 1; + VECSubtract(&work->unk34, &work->unk28, &sp4C); + VECNormalize(&sp4C, &sp4C); + VECScale(&sp4C, &work->unk40, 2000.0f); + work->unk40.y = 300; + VECAdd(&work->unk28, &work->unk40, &work->unk40); + + } + break; + + case 3: + fn_1_71EC(&work->unk28, &sp40, 1.0f-((float)work->unk24/(float)work->unk26)); + VECSubtract(&sp40, &object->trans, &sp4C); + object->rot.x = fn_1_1024(object->rot.x, atan2d(-sp4C.y, VECMagXZ(&sp4C)), 0.2f); + object->rot.y = fn_1_1024(object->rot.y, atan2d(sp4C.x, sp4C.z), 0.2f); + object->trans.x = sp40.x; + object->trans.y = sp40.y; + object->trans.z = sp40.z; + if(--work->unk24 == 0) { + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r28 = temp_r29[work->unk2]->data; + temp_r28->unk0_field1 = 0; + work->unk4 = 0; + object->work[3] = 0; + Hu3DModelAttrSet(object->model[0], 1); + } + if(work->unk24 == (int)(work->unk26-12.0f)) { + work->unk0 = 0; + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r28 = temp_r29[work->unk2]->data; + temp_r28->unk68.x = object->trans.x; + temp_r28->unk68.y = object->trans.y; + temp_r28->unk68.z = object->trans.z; + } + break; + } +} + +void fn_1_5B9C(omObjData *object) +{ + +} + +s32 lbl_1_data_77A0[10] = { + 0x00460000, + 0x00460001, + 0x00460002, + 0x00460003, + 0x00460004, + 0x00460005, + 0x00460006, + 0x00460007, + 0x00460008, + 0x00460009 +}; + +void fn_1_5CB0(omObjData *object); +void fn_1_6520(omObjData *object); + +void fn_1_5BA0(Process *objman) +{ + s32 i; + lbl_1_bss_144 = 0; + omMakeGroupEx(objman, 1, 4); + for(i=0; i<4; i++) { + omAddObjEx(objman, 10, 28, 0, 1, fn_1_5CB0); + } + for(i=0; i<10; i++) { + lbl_1_bss_10[i] = Hu3DModelCreateFile(lbl_1_data_77A0[i]); + Hu3DModelAttrSet(lbl_1_bss_10[i], 1); + } + omAddObjEx(objman, 10, 4, 0, 1, fn_1_6520); +} + +void fn_1_5CAC(void) +{ + +} + +float lbl_1_data_77C8[][2] = { + 0, 0, + 0, -700, + -1400, -2200, + 1400, -2200, + -1400, -3600, + 1400, -3600, + -2800, -5200, + 0, -5200, + 0, -5200, + 2800, -5200, + -2800, -6600, + 0, -6600, + 0, -6600, + 2800, -6600 +}; + +s16 lbl_1_data_7838[] = { + 0, 1, -1, -1, + 2, 2, -1, -1, + -1, -1, 3, 3, + 3, 3 +}; + +void fn_1_6068(omObjData *object); + +void fn_1_5CB0(omObjData *object) +{ + u16 sp8[6] = { + 4, 7, 5, 8, 6, 9 + }; + char *sp14[10][2] = { + "road0", NULL, + "road1", "bridge1", + "road2", "bridge2", + "road3", NULL, + "road4", NULL, + "road5", NULL, + "road6", NULL, + "road7", NULL, + "road8", NULL, + "road9", NULL + }; + Work5CB0 *work; + s32 i; + s32 temp; + s32 temp_r27; + s32 temp_r26; + s32 temp_r25; + s32 temp_r24; + omSetStatBit(object, 0x100); + work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work5CB0)*14, MEMORY_DEFAULT_NUM); + object->data = work; + memset(work, 0, sizeof(Work5CB0)*14); + for(i=0; i<100; i++) { + temp_r27 = ((frand8()*3) >> 8)*2; + temp_r25 = ((frand8()*3) >> 8)*2; + temp = sp8[temp_r27]; + sp8[temp_r27] = sp8[temp_r25]; + sp8[temp_r25] = temp; + temp_r27 = (((frand8()*3) >> 8)*2)+1; + temp_r25 = (((frand8()*3) >> 8)*2)+1; + temp = sp8[temp_r27]; + sp8[temp_r27] = sp8[temp_r25]; + sp8[temp_r25] = temp; + } + for(i=0; i<100; i++) { + temp_r27 = ((frand8()*3) >> 8)*2; + temp = sp8[temp_r27+1]; + sp8[temp_r27+1] = sp8[temp_r27]; + sp8[temp_r27] = temp; + } + temp_r24 = 0; + for(i=0; i<14; i++, work++) { + temp_r26 = lbl_1_data_7838[i]; + if(temp_r26 < 0) { + temp_r26 = sp8[temp_r24++]; + } + object->model[i] = Hu3DModelLink(lbl_1_bss_10[temp_r26]); + Hu3DModelPosSet(object->model[i], lbl_1_data_77C8[i][0], 0, lbl_1_data_77C8[i][1]); + Hu3DModelAttrReset(object->model[i], 1); + for(temp=0; temp<2; temp++) { + if(sp14[temp_r26][temp]) { + Hu3DModelShadowMapObjSet(object->model[i], sp14[temp_r26][temp]); + } + } + work->unk0 = temp_r26; + work->unk4.x = lbl_1_data_77C8[i][0]; + work->unk4.y = 0; + work->unk4.z = lbl_1_data_77C8[i][1]; + memcpy(&work->unk10, &lbl_1_data_748C[i], sizeof(StructData748C)); + + } + object->work[0] = lbl_1_bss_144; + lbl_1_bss_144++; + object->func = fn_1_6068; +} + +void fn_1_6120(omObjData *object); + +void fn_1_6068(omObjData *object) +{ + s32 i; + for(i=0; i<14; i++) { + if(object->work[0] == 0 && i == 10) { + Hu3DModelCameraSet(object->model[i], lbl_1_data_75E0[0]); + } else { + Hu3DModelCameraSet(object->model[i], 0); + } + } + if(fn_1_374() == 3) { + object->func = fn_1_6120; + } +} + +void fn_1_6120(omObjData *object) +{ + s32 i; + WorkD0C *temp_r29; + omObjData **temp_r28; + Work5CB0 *work = object->data; + s16 sp8[14]; + for(i=0; i<14; i++) { + sp8[i] = 0; + } + temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r29 = temp_r28[object->work[0]]->data; + lbl_1_bss_C = &work[temp_r29->unk44].unk10; + sp8[temp_r29->unk44] |= lbl_1_data_75E0[object->work[0]]; + if(lbl_1_bss_C->unk4 >= 0) { + sp8[lbl_1_bss_C->unk4] |= lbl_1_data_75E0[object->work[0]]; + } + for(i=0; iunk8; i++) { + sp8[lbl_1_bss_C->unkC[i]] |= lbl_1_data_75E0[object->work[0]]; + } + for(i=0; i<14; i++) { + Hu3DModelCameraSet(object->model[i], sp8[i]); + } +} + +s32 fn_1_62E0(float arg0) +{ + s32 i; + for(i=0; i<5; i++) { + if(arg0 > lbl_1_data_75CC[i]) { + break; + } + } + return i; +} + +s32 fn_1_6328(omObjData *object) +{ + WorkD0C *work = object->data; + omObjData **temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); + Work5CB0 *temp_r29 = temp_r28[work->unk2]->data; + s32 i; + ModelData *temp_r26; + s32 temp_r25; + float temp_f31; + float temp_f30; + lbl_1_bss_8 = &temp_r29[work->unk44].unk10; + if(lbl_1_bss_8->unk8 > 0 && work->unk46 == temp_r29[lbl_1_bss_8->unkC[0]].unk10.unk0) { + temp_r25 = -1; + temp_f30 = 9999; + for(i=0; iunk8; i++) { + temp_r26 = &Hu3DData[temp_r28[work->unk2]->model[lbl_1_bss_8->unkC[i]]]; + temp_f31 = fabs(object->trans.x-temp_r26->pos.x); + if(temp_f31 < temp_f30) { + temp_f30 = temp_f31; + temp_r25 = lbl_1_bss_8->unkC[i]; + } + } + (void)i; + return temp_r25; + } else { + if(work->unk46 == temp_r29[lbl_1_bss_8->unk4].unk10.unk0) { + return lbl_1_bss_8->unk4; + } else { + return -1; + } + } +} + +s32 lbl_1_data_78A0[8] = { + 0x0046000A, + 0x0046000B, + 0x0046000C, + 0x0046000D, + 0x0046000E, + 0x0046000F, + 0x00460010, + 0x00460011 +}; + +Vec lbl_1_data_78C0[4] = { + { -2800, 0, -7700 }, + { 0, 0, -7700 }, + { 0, 0, -7700 }, + { 2800, 0, -7700 } +}; + +void fn_1_661C(omObjData *object); + +void fn_1_6520(omObjData *object) +{ + s32 i; + omSetStatBit(object, 0x100); + for(i=0; imdlcnt; i++) { + object->model[i] = Hu3DModelCreateFile(lbl_1_data_78A0[GWPlayerCfg[i].character]); + Hu3DModelCameraSet(object->model[i], lbl_1_data_75E0[i]); + Hu3DModelClusterAttrSet(object->model[i], 0, 0xC0000001); + Hu3DModelAttrSet(object->model[i], 1); + } + object->func = fn_1_661C; +} + +void fn_1_66BC(omObjData *object); + +void fn_1_661C(omObjData *object) +{ + Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelPosSet(object->model[0], -2800, 0, -7700); + if(fn_1_374() == 3) { + Hu3DModelAttrSet(object->model[0], 1); + object->func = fn_1_66BC; + } +} + +void fn_1_66BC(omObjData *object) +{ + omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + s32 i; + for(i=0; i<4; i++) { + WorkD0C *work = objList[i]->data; + if(work->unk44 >= 10 && work->unk44 <= 13) { + s32 goalNo = work->unk44-10; + Hu3DModelPosSet(object->model[i], lbl_1_data_78C0[goalNo].x, lbl_1_data_78C0[goalNo].y, lbl_1_data_78C0[goalNo].z); + Hu3DModelAttrReset(object->model[i], 1); + } else { + Hu3DModelAttrSet(object->model[i], 1); + } + } +} + +extern u16 lbl_1_data_73B8[]; +extern Vec **lbl_1_data_73CC[]; + +extern s32 *lbl_1_data_73F4[]; + +s32 fn_1_67B4(Vec *arg0, s32 arg1, s32 arg2, Vec *arg3, Vec *arg4) +{ + omObjData **temp_r21 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); + Work5CB0 *temp_r28 = temp_r21[arg1]->data; + s32 i; + s32 temp_r25; + + Vec sp34; + VECSubtract(arg0, &temp_r28[arg2].unk4, &sp34); + temp_r25 = temp_r28[arg2].unk0; + for(i=0; ix*sp28.x)+(sp34.y*sp28.y)-(temp_r29->y*sp28.y)+(sp34.z*sp28.z)-(temp_r29->z*sp28.z))/temp_f30; + arg3->x = (temp_r31[0].x+temp_r28[arg2].unk4.x)+(temp_f31*(temp_r31[1].x-temp_r31[0].x)); + arg3->y = (temp_r31[0].y+temp_r28[arg2].unk4.y)+(temp_f31*(temp_r31[1].y-temp_r31[0].y)); + arg3->z = (temp_r31[0].z+temp_r28[arg2].unk4.z)+(temp_f31*(temp_r31[1].z-temp_r31[0].z)); + arg4->x = (temp_r30[0].x+temp_r28[arg2].unk4.x)+(temp_f31*(temp_r30[1].x-temp_r30[0].x)); + arg4->y = (temp_r30[0].y+temp_r28[arg2].unk4.y)+(temp_f31*(temp_r30[1].y-temp_r30[0].y)); + arg4->z = (temp_r30[0].z+temp_r28[arg2].unk4.z)+(temp_f31*(temp_r30[1].z-temp_r30[0].z)); + return 1; + } + } + return 0; +} + +void fn_1_6CD0(s32 arg0, s32 arg1); +void fn_1_6DEC(omObjData *object); + +void fn_1_6C08(omObjData *object) +{ + fn_1_6CD0(0, 0); + object->work[3] = espEntry(0x460015, 32768, 0); + espPosSet(object->work[3], 288, 240); + espDispOff(object->work[3]); + espScaleSet(object->work[3], 2.0f, 2.0f); + espColorSet(object->work[3], 0, 0, 0); + object->func = fn_1_6DEC; +} + +void fn_1_6CD0(s32 arg0, s32 arg1) +{ + CZoomM[arg0] = lbl_1_data_741C[arg1].zoom; + CenterM[arg0].x = lbl_1_data_741C[arg1].pos.x; + CenterM[arg0].y = lbl_1_data_741C[arg1].pos.y; + CenterM[arg0].z = lbl_1_data_741C[arg1].pos.z; + CRotM[arg0].x = lbl_1_data_741C[arg1].rot.x; + CRotM[arg0].y = lbl_1_data_741C[arg1].rot.y; + CRotM[arg0].z = lbl_1_data_741C[arg1].rot.z; +} + +void fn_1_6DEC(omObjData *object) +{ + CameraData *camera = &Hu3DCamera[0]; + s32 i; + switch(object->work[0]) { + case 0: + if(fn_1_374() <= 3) { + CRotM[0].y -= 10.0f/60.0f; + } + if(fn_1_374() == 3) { + Hu3DCameraCreate(15); + Hu3DCameraPerspectiveSet(15, 10, 20, 25000, 1.2); + Hu3DCameraViewportSet(1, 0, 0, 320, 240, 0, 1); + Hu3DCameraViewportSet(2, 320, 0, 320, 240, 0, 1); + Hu3DCameraViewportSet(4, 0, 240, 320, 240, 0, 1); + Hu3DCameraViewportSet(8, 320, 240, 320, 240, 0, 1); + Hu3DCameraScissorSet(1, 0, 0, 320, 240); + Hu3DCameraScissorSet(2, 320, 0, 640, 240); + Hu3DCameraScissorSet(4, 0, 240, 320, 480); + Hu3DCameraScissorSet(8, 320, 240, 640, 480); + for(i=0; i<4; i++) { + fn_1_6CD0(i, 1); + } + lbl_1_bss_168->work[0] = 4; + object->work[0]++; + espDispOn(object->work[3]); + } + break; + } +} + +float fn_1_7190(float arg0, float arg1, float arg2, float arg3) +{ + float temp_f31 = 1.0f-arg3; + return (arg0*(temp_f31*temp_f31))+((2.0f*temp_f31)*arg3*arg1)+(arg2*(arg3*arg3)); + +} + +void fn_1_71EC(Vec *arg0, Vec *arg1, float arg2) +{ + arg1->x = fn_1_7190(arg0[0].x, arg0[1].x, arg0[2].x, arg2); + arg1->y = fn_1_7190(arg0[0].y, arg0[1].y, arg0[2].y, arg2); + arg1->z = fn_1_7190(arg0[0].z, arg0[1].z, arg0[2].z, arg2); +} + +void fn_1_7578(s16 layer); + +void fn_1_73F4(Process *objman) +{ + s32 i; + s32 dataSize = Hu3DShadowData.unk_02*Hu3DShadowData.unk_02; + lbl_1_bss_128 = objman; + for(i=0; i<3; i++) { + lbl_1_bss_11C[i] = HuMemDirectMallocNum(HEAP_SYSTEM, dataSize, MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_11C[i], 0, dataSize); + lbl_1_bss_D4[i].x = Hu3DShadowData.unk_20.x; + lbl_1_bss_D4[i].y = Hu3DShadowData.unk_20.y; + lbl_1_bss_D4[i].z = Hu3DShadowData.unk_20.z; + lbl_1_bss_F8[i].x = Hu3DShadowData.unk_14.x; + lbl_1_bss_F8[i].y = Hu3DShadowData.unk_14.y; + lbl_1_bss_F8[i].z = Hu3DShadowData.unk_14.z; + } + Hu3DLayerHookSet(0, fn_1_7578); + +} + +void fn_1_77E4(s32 shadowNo); + +void fn_1_7578(s16 layer) +{ + omObjData **playerList; + s32 i; + s32 dataSize = Hu3DShadowData.unk_02*Hu3DShadowData.unk_02; + if(fn_1_374() < 3) { + return; + } + if(Hu3DCameraNo == 0) { + WorkD0C *playerWork; + GXDrawDone(); + playerList = omGetGroupMemberListEx(lbl_1_bss_128, 0); + if(Hu3DData[playerList[0]->model[0]].attr & 0x4) { + Hu3DModelShadowReset(playerList[0]->model[0]); + } + for(i=0; i<3; i++) { + playerWork = playerList[i+1]->data; + if(playerWork->unk0_field3) { + Hu3DModelShadowSet(playerList[i+1]->model[0]); + } + fn_1_77E4(i); + GXDrawDone(); + DCFlushRangeNoSync(lbl_1_bss_11C[i], dataSize); + if(playerWork->unk0_field3) { + Hu3DModelShadowReset(playerList[i+1]->model[0]); + } + } + playerWork = playerList[0]->data; + if(playerWork->unk0_field3) { + Hu3DModelShadowSet(playerList[0]->model[0]); + } else { + memset(Hu3DShadowData.unk_04, 0, dataSize); + DCFlushRangeNoSync(Hu3DShadowData.unk_04, dataSize); + } + if(Hu3DShadowCamBit < 1) { + Hu3DShadowCamBit = 1; + } + } else { + MTXCopy(lbl_1_bss_44[Hu3DCameraNo-1], Hu3DShadowData.unk_38); + memcpy(Hu3DShadowData.unk_04, lbl_1_bss_11C[Hu3DCameraNo-1], dataSize); + DCFlushRangeNoSync(Hu3DShadowData.unk_04, dataSize); + } +} + +void fn_1_77E4(s32 shadowNo) +{ + ModelData *model; + s32 dataSize; + s16 i; + Mtx transform[3]; + Mtx44 proj; + GXColor clearColor = { 0, 0, 0, 0 }; + + Hu3DDrawPreInit(); + GXSetCopyClear(clearColor, 0xFFFFFF); + MTXPerspective(proj, Hu3DShadowData.unk_08.x, 1.2f, Hu3DShadowData.unk_08.y, Hu3DShadowData.unk_08.z); + GXSetProjection(proj, GX_PERSPECTIVE); + if(Hu3DShadowData.unk_02 <= 240) { + GXSetScissor(2, 2, (Hu3DShadowData.unk_02*2)-4, (Hu3DShadowData.unk_02*2)-4); + GXSetViewport(0, 0, Hu3DShadowData.unk_02*2, Hu3DShadowData.unk_02*2, 0, 1); + dataSize = (Hu3DShadowData.unk_02/2)*(Hu3DShadowData.unk_02/2); + } else { + GXSetScissor(1, 1, Hu3DShadowData.unk_02-2, Hu3DShadowData.unk_02-2); + GXSetViewport(0, 0, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 0, 1); + dataSize = Hu3DShadowData.unk_02*Hu3DShadowData.unk_02; + } + MTXLookAt(Hu3DCameraMtx, &lbl_1_bss_F8[shadowNo], &Hu3DShadowData.unk_2C, &lbl_1_bss_D4[shadowNo]); + MTXCopy(Hu3DCameraMtx, lbl_1_bss_44[shadowNo]); + model = &Hu3DData[0]; + shadowModelDrawF = 1; + GXInvalidateTexAll(); + GXSetFog(0, 0, 0, 0, 0, BGColor); + for(i=0; i<512; i++, model++) { + s32 clusterF; + if(model->hsfData && (model->attr & 0x4) && (model->attr & 0x1) == 0 && (model->attr & 0x8000) == 0) { + if(model->attr & 0x8) { + clusterF = 0; + if(model->unk_08 != -1) { + Hu3DMotionExec(i, model->unk_08, model->unk_64, 0); + } + if(model->unk_0C != -1) { + Hu3DSubMotionExec(i); + } + if(model->unk_0A != -1) { + Hu3DMotionExec(i, model->unk_0A, model->unk_74, 1); + } + if(model->attr & 0x400) { + ClusterMotionExec(model); + clusterF = 1; + } + if(model->unk_0E != -1) { + if(model->unk_08 == -1) { + Hu3DMotionExec(i, model->unk_0E, model->unk_94, 0); + } else { + Hu3DMotionExec(i, model->unk_0E, model->unk_94, 1); + } + } + if((model->attr & 0x90) == 0 || (model->motion_attr & 0x40000002) == 0) { + clusterF = 1; + InitVtxParm(model->hsfData); + if(model->unk_0E != -1) { + ShapeProc(model->hsfData); + } + if(model->attr & 0x400) { + ClusterProc(model); + } + if(model->hsfData->cenvCnt) { + EnvelopeProc(model->hsfData); + } + PPCSync(); + } + model->attr |= 0x800; + } + mtxRot(transform[0], model->rot.x, model->rot.y, model->rot.z); + MTXScale(transform[2], model->scale.x, model->scale.y, model->scale.z); + MTXConcat(transform[0], transform[2], transform[2]); + mtxTransCat(transform[2], model->pos.x, model->pos.y, model->pos.z); + MTXConcat(Hu3DCameraMtx, transform[2], transform[1]); + MTXConcat(transform[1], model->unk_F0, transform[1]); + Hu3DDraw(model, transform[1], &model->scale); + } + } + Hu3DDrawPost(); + shadowModelDrawF = 0; + if(Hu3DShadowData.unk_02 <= 240) { + GXSetTexCopySrc(0, 0, Hu3DShadowData.unk_02*2, Hu3DShadowData.unk_02*2); + GXSetTexCopyDst(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_CTF_R8, GX_TRUE); + } else { + GXSetTexCopySrc(0, 0, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02); + GXSetTexCopyDst(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_CTF_R8, GX_FALSE); + } + GXCopyTex(lbl_1_bss_11C[shadowNo], GX_TRUE); + GXSetViewport(0, 0, RenderMode->fbWidth, RenderMode->xfbHeight, 0, 1); + GXSetScissor(0, 0, RenderMode->fbWidth, RenderMode->efbHeight); + MTXOrtho(proj, 0, 1, 0, 1, 0, 1); + GXSetProjection(proj, GX_ORTHOGRAPHIC); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_U8, 0); + GXSetTevColor(GX_TEVREG0, BGColor); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(0); + MTXIdentity(transform[1]); + GXLoadPosMtxImm(transform[1], GX_PNMTX0); + GXSetZMode(GX_FALSE, GX_ALWAYS, GX_TRUE); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3u8(0, 0, 0); + GXPosition3u8(1, 0, 0); + GXPosition3u8(1, 1, 0); + GXPosition3u8(0, 1, 0); +} \ No newline at end of file From 6de023447cc533dfa7f3257c98bf5974dbfdef68 Mon Sep 17 00:00:00 2001 From: kabiskac Date: Fri, 26 Jul 2024 19:20:38 +0200 Subject: [PATCH 2/2] Complete m439Dll --- configure.py | 142 +- include/REL/m439data.h | 2843 ++++++++++++++++++++++++++++++++++++++++ src/REL/m439Dll/main.c | 36 +- 3 files changed, 2928 insertions(+), 93 deletions(-) create mode 100644 include/REL/m439data.h diff --git a/configure.py b/configure.py index 0520b41d..11e873de 100644 --- a/configure.py +++ b/configure.py @@ -822,7 +822,7 @@ config.libs = [ }, ), Rel( - "m401Dll", #Manta Rings + "m401Dll", # Manta Rings objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m401Dll/main.c"), @@ -830,13 +830,13 @@ config.libs = [ }, ), Rel( - "m402Dll", #Slime Time + "m402Dll", # Slime Time objects={ Object(Matching, "REL/m402Dll/main.c"), }, ), Rel( - "m403Dll", #Booksquirm + "m403Dll", # Booksquirm objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m403Dll/main.c"), @@ -844,20 +844,20 @@ config.libs = [ }, ), Rel( - "m404Dll", #Trace Race + "m404Dll", # Trace Race objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m404Dll/main.c"), }, ), Rel( - "m405Dll", #Mario Medley + "m405Dll", # Mario Medley objects={ Object(Matching, "REL/m405Dll/main.c"), }, ), Rel( - "m406Dll", #Avalanche! + "m406Dll", # Avalanche! objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m406Dll/main.c"), @@ -866,7 +866,7 @@ config.libs = [ }, ), Rel( - "m407dll", #Domination + "m407dll", # Domination objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m407dll/player.c"), @@ -880,7 +880,7 @@ config.libs = [ }, ), Rel( - "m408Dll", #Paratrooper Plunge + "m408Dll", # Paratrooper Plunge objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m408Dll/main.c"), @@ -890,7 +890,7 @@ config.libs = [ }, ), Rel( - "m409Dll", #Toad's Quick Draw + "m409Dll", # Toad's Quick Draw objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m409Dll/main.c"), @@ -899,7 +899,7 @@ config.libs = [ }, ), Rel( - "m410Dll", #Three Throw + "m410Dll", # Three Throw objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m410Dll/main.c"), @@ -909,35 +909,35 @@ config.libs = [ }, ), Rel( - "m411Dll", #Photo Finish + "m411Dll", # Photo Finish objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m411Dll/main.c"), }, ), Rel( - "m412Dll", #Mr. Blizzard's Brigade + "m412Dll", # Mr. Blizzard's Brigade objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m412Dll/main.c"), }, ), Rel( - "m413Dll", #Bob-omb Breakers + "m413Dll", # Bob-omb Breakers objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m413Dll/main.c"), }, ), Rel( - "m414Dll", #Long Claw of the Law + "m414Dll", # Long Claw of the Law objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m414Dll/main.c"), }, ), Rel( - "m415Dll", #Stamp Out! + "m415Dll", # Stamp Out! objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m415Dll/main.c"), @@ -945,7 +945,7 @@ config.libs = [ }, ), Rel( - "m416Dll", #Candlelight Flight + "m416Dll", # Candlelight Flight objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m416Dll/main.c"), @@ -953,7 +953,7 @@ config.libs = [ }, ), Rel( - "m417Dll", #Makin' Waves + "m417Dll", # Makin' Waves objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m417Dll/main.c"), @@ -963,21 +963,21 @@ config.libs = [ }, ), Rel( - "m418Dll", #Hide and Go BOOM! + "m418Dll", # Hide and Go BOOM! objects={ Object(NonMatching, "REL/m418Dll/main.c"), Object(NonMatching, "REL/m418Dll/sequence.c"), }, ), Rel( - "m419Dll", #Tree Stomp + "m419Dll", # Tree Stomp objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m419Dll/main.c"), }, ), Rel( - "m420dll", #Fish n' Drips + "m420dll", # Fish n' Drips objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m420dll/main.c"), @@ -987,7 +987,7 @@ config.libs = [ }, ), Rel( - "m421Dll", #Hop or Pop + "m421Dll", # Hop or Pop objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m421Dll/main.c"), @@ -996,21 +996,21 @@ config.libs = [ }, ), Rel( - "m422Dll", #Money Belts + "m422Dll", # Money Belts objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m422Dll/main.c"), }, ), Rel( - "m423Dll", #GOOOOOOOAL!! + "m423Dll", # GOOOOOOOAL!! objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m423Dll/main.c"), }, ), Rel( - "m424Dll", #Blame it on the Crane + "m424Dll", # Blame it on the Crane objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m424Dll/main.c"), @@ -1020,7 +1020,7 @@ config.libs = [ }, ), Rel( - "m425Dll", #The Great Deflate + "m425Dll", # The Great Deflate objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m425Dll/main.c"), @@ -1028,14 +1028,14 @@ config.libs = [ }, ), Rel( - "m426Dll", #Revers-a-Bomb + "m426Dll", # Revers-a-Bomb objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m426Dll/main.c"), }, ), Rel( - "m427Dll", #Right Oar Left? + "m427Dll", # Right Oar Left? objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m427Dll/main.c"), @@ -1044,7 +1044,7 @@ config.libs = [ }, ), Rel( - "m428Dll", #Cliffhangers + "m428Dll", # Cliffhangers objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m428Dll/main.c"), @@ -1053,13 +1053,13 @@ config.libs = [ }, ), Rel( - "m429Dll", #Team Treasure Trek + "m429Dll", # Team Treasure Trek objects={ Object(Matching, "REL/m429Dll/main.c"), }, ), Rel( - "m430Dll", #Pair-a-sailing + "m430Dll", # Pair-a-sailing objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m430Dll/main.c"), @@ -1068,7 +1068,7 @@ config.libs = [ }, ), Rel( - "m431Dll", #Order Up + "m431Dll", # Order Up objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m431Dll/main.c"), @@ -1076,13 +1076,13 @@ config.libs = [ }, ), Rel( - "m432Dll", #Dungeon Duos + "m432Dll", # Dungeon Duos objects={ Object(NonMatching, "REL/m432Dll/main.c"), }, ), Rel( - "m433Dll", #Beach Volley Folly + "m433Dll", # Beach Volley Folly objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m433Dll/main.c"), @@ -1091,7 +1091,7 @@ config.libs = [ }, ), Rel( - "m434Dll", #Cheep Cheep Sweep + "m434Dll", # Cheep Cheep Sweep objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m434Dll/main.c"), @@ -1101,28 +1101,28 @@ config.libs = [ }, ), Rel( - "m435Dll", #Darts of Doom + "m435Dll", # Darts of Doom objects={ Object(NonMatching, "REL/m435Dll/main.c"), Object(NonMatching, "REL/m435Dll/sequence.c"), }, ), Rel( - "m436Dll", #Fruits of Doom + "m436Dll", # Fruits of Doom objects={ Object(NonMatching, "REL/m436Dll/main.c"), Object(NonMatching, "REL/m436Dll/sequence.c"), }, ), Rel( - "m437Dll", #Balloon of Doom + "m437Dll", # Balloon of Doom objects={ Object(NonMatching, "REL/m437Dll/main.c"), Object(NonMatching, "REL/m437Dll/sequence.c"), }, ), Rel( - "m438Dll", #Chain Chomp Fever + "m438Dll", # Chain Chomp Fever objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m438Dll/main.c"), @@ -1131,14 +1131,14 @@ config.libs = [ }, ), Rel( - "m439Dll", #Paths of Peril + "m439Dll", # Paths of Peril objects={ Object(Matching, "REL/executor.c"), - Object(NonMatching, "REL/m439Dll/main.c"), + Object(Matching, "REL/m439Dll/main.c"), }, ), Rel( - "m440Dll", #Bowser's Bigger Blast + "m440Dll", # Bowser's Bigger Blast objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m440Dll/main.c"), @@ -1146,13 +1146,13 @@ config.libs = [ }, ), Rel( - "m441Dll", #Butterfly Blitz + "m441Dll", # Butterfly Blitz objects={ Object(NonMatching, "REL/m441Dll/main.c"), }, ), Rel( - "m442Dll", #Barrel Baron + "m442Dll", # Barrel Baron objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m442Dll/main.c"), @@ -1160,7 +1160,7 @@ config.libs = [ }, ), Rel( - "m443Dll", #Mario Speedwagons + "m443Dll", # Mario Speedwagons objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m443Dll/main.c"), @@ -1169,7 +1169,7 @@ config.libs = [ }, ), Rel( - "m444dll", #Reversal of Fortune + "m444dll", # Reversal of Fortune objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m444dll/main.c"), @@ -1179,14 +1179,14 @@ config.libs = [ }, ), Rel( - "m445Dll", #Bowser Bop + "m445Dll", # Bowser Bop objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m445Dll/main.c"), }, ), Rel( - "m446dll", #Mystic Match 'Em + "m446dll", # Mystic Match 'Em objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m446Dll/main.c"), @@ -1200,7 +1200,7 @@ config.libs = [ }, ), Rel( - "m447dll", #Archaeologuess + "m447dll", # Archaeologuess objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m447dll/main.c"), @@ -1212,33 +1212,33 @@ config.libs = [ }, ), Rel( - "m448Dll", #Goomba's Chip Flip + "m448Dll", # Goomba's Chip Flip objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m448Dll/main.c"), }, ), Rel( - "m449Dll", #Kareening Koopa + "m449Dll", # Kareening Koopa objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m449Dll/main.c"), }, ), Rel( - "m450Dll", #The Final Battle! + "m450Dll", # The Final Battle! objects={ Object(NonMatching, "REL/m450Dll/main.c"), }, ), Rel( - "m451Dll", #Jigsaw Jitters + "m451Dll", # Jigsaw Jitters objects={ Object(Matching, "REL/m451Dll/m451.c"), }, ), Rel( - "m453Dll", #Challenge Booksquirm + "m453Dll", # Challenge Booksquirm objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m453Dll/main.c"), @@ -1247,7 +1247,7 @@ config.libs = [ }, ), Rel( - "m455Dll", #Rumble Fishing + "m455Dll", # Rumble Fishing objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m455Dll/main.c"), @@ -1255,7 +1255,7 @@ config.libs = [ }, ), Rel( - "m456Dll", #Take a Breather + "m456Dll", # Take a Breather objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m456Dll/main.c"), @@ -1263,28 +1263,28 @@ config.libs = [ }, ), Rel( - "m457Dll", #Bowser Wrestling + "m457Dll", # Bowser Wrestling objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m457Dll/main.c"), }, ), Rel( - "m458Dll", #Panels of Doom + "m458Dll", # Panels of Doom objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m458Dll/main.c"), }, ), Rel( - "m459dll", #Mushroom Medic + "m459dll", # Mushroom Medic objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m459dll/main.c"), }, ), Rel( - "m460Dll", #Doors of Doom + "m460Dll", # Doors of Doom objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m460Dll/main.c"), @@ -1294,21 +1294,21 @@ config.libs = [ }, ), Rel( - "m461Dll", #Bob-omb X-ing + "m461Dll", # Bob-omb X-ing objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m461Dll/main.c"), }, ), Rel( - "m462Dll", #Goomba Stomp + "m462Dll", # Goomba Stomp objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m462Dll/main.c"), }, ), Rel( - "m463Dll", #Panel Panic 9 Player + "m463Dll", # Panel Panic 9 Player objects={ Object(NonMatching, "REL/m463Dll/main.c"), }, @@ -1471,7 +1471,7 @@ config.libs = [ }, ), Rel( - "w01Dll", #Toad's Midway Madness + "w01Dll", # Toad's Midway Madness objects={ Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w01Dll/main.c"), @@ -1480,7 +1480,7 @@ config.libs = [ }, ), Rel( - "w02Dll", #Goomba's Greedy Gala + "w02Dll", # Goomba's Greedy Gala objects={ Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w02Dll/main.c"), @@ -1493,7 +1493,7 @@ config.libs = [ }, ), Rel( - "w03Dll", #Shy Guy's Jungle Jam + "w03Dll", # Shy Guy's Jungle Jam objects={ Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w03Dll/main.c"), @@ -1506,7 +1506,7 @@ config.libs = [ }, ), Rel( - "w04Dll", #Boo's Haunted Bash + "w04Dll", # Boo's Haunted Bash objects={ Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w04Dll/main.c"), @@ -1518,7 +1518,7 @@ config.libs = [ }, ), Rel( - "w05Dll", #Koopa's Seaside Soiree + "w05Dll", # Koopa's Seaside Soiree objects={ Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w05Dll/main.c"), @@ -1530,7 +1530,7 @@ config.libs = [ }, ), Rel( - "w06Dll", #Bowser's Gnarly Party + "w06Dll", # Bowser's Gnarly Party objects={ Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w06Dll/main.c"), @@ -1542,7 +1542,7 @@ config.libs = [ }, ), Rel( - "w10Dll", #Tutorial board + "w10Dll", # Tutorial board objects={ Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w10Dll/main.c"), @@ -1552,14 +1552,14 @@ config.libs = [ }, ), Rel( - "w20Dll", #Mega Board Mayhem + "w20Dll", # Mega Board Mayhem objects={ Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w20Dll/main.c"), }, ), Rel( - "w21Dll", #Mini Board Mad Dash + "w21Dll", # Mini Board Mad Dash objects={ Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w21Dll/main.c"), diff --git a/include/REL/m439data.h b/include/REL/m439data.h new file mode 100644 index 00000000..1a58fd03 --- /dev/null +++ b/include/REL/m439data.h @@ -0,0 +1,2843 @@ +#ifndef M439DATA_H +#define M439DATA_H + +#include "dolphin/mtx/GeoTypes.h" + +Vec lbl_1_data_0[2] = { { -60.0f, 0.0f, 0.0f }, { -60.0f, 0.0f, -800.0f } }; +Vec lbl_1_data_18[2] = { { 60.0f, 0.0f, -5.0f }, { 60.0f, 0.0f, -805.0f } }; +float lbl_1_data_30[2] = { 0.0f, 800.0f }; +Vec lbl_1_data_38[0xB] = { + { -60.0f, 0.0f, 100.0f }, + { -60.0f, 0.0f, -530.0f }, + { -240.0f, 0.0f, -560.0f }, + { -500.0f, 0.0f, -690.0f }, + { -880.0f, 0.0f, -680.0f }, + { -1380.0f, 0.0f, -600.0f }, + { -1480.0f, 0.0f, -680.0f }, + { -1560.0f, 0.0f, -870.0f }, + { -1560.0f, 0.0f, -1200.0f }, + { -1460.0f, 0.0f, -1400.0f }, + { -1460.0f, 0.0f, -1600.0f }, +}; +Vec lbl_1_data_BC[0xB] = { + { 60.0f, 0.0f, 100.0f }, + { 60.0f, 0.0f, -630.0f }, + { -210.0f, 0.0f, -670.0f }, + { -500.0f, 0.0f, -810.0f }, + { -880.0f, 0.0f, -800.0f }, + { -1330.0f, 0.0f, -720.0f }, + { -1370.0f, 0.0f, -750.0f }, + { -1440.0f, 0.0f, -900.0f }, + { -1440.0f, 0.0f, -1200.0f }, + { -1340.0f, 0.0f, -1400.0f }, + { -1340.0f, 0.0f, -1600.0f }, +}; +float lbl_1_data_140[0xB] = { + 0.0f, + 680.0f, + 907.70593f, + 1214.0554f, + 1594.187f, + 2075.8767f, + 2164.8992f, + 2350.7083f, + 2665.7083f, + 2889.315f, + 3089.315f, +}; +Vec lbl_1_data_16C[0xC] = { + { -60.0f, 0.0f, 100.0f }, + { -60.0f, 0.0f, -630.0f }, + { 160.0f, 0.0f, -710.0f }, + { 500.0f, 0.0f, -610.0f }, + { 900.0f, 0.0f, -610.0f }, + { 1100.0f, 0.0f, -720.0f }, + { 1340.0f, 0.0f, -720.0f }, + { 1370.0f, 0.0f, -750.0f }, + { 1440.0f, 0.0f, -900.0f }, + { 1440.0f, 0.0f, -1200.0f }, + { 1340.0f, 0.0f, -1400.0f }, + { 1340.0f, 0.0f, -1600.0f }, +}; +Vec lbl_1_data_1FC[0xC] = { + { 60.0f, 0.0f, 100.0f }, + { 60.0f, 0.0f, -530.0f }, + { 160.0f, 0.0f, -565.0f }, + { 500.0f, 0.0f, -490.0f }, + { 900.0f, 0.0f, -490.0f }, + { 1100.0f, 0.0f, -600.0f }, + { 1370.0f, 0.0f, -600.0f }, + { 1470.0f, 0.0f, -660.0f }, + { 1560.0f, 0.0f, -870.0f }, + { 1560.0f, 0.0f, -1200.0f }, + { 1460.0f, 0.0f, -1400.0f }, + { 1460.0f, 0.0f, -1595.0f }, +}; +float lbl_1_data_28C[0xC] = { + 0.0f, + 680.0f, + 850.0184f, + 1201.097f, + 1601.097f, + 1829.3513f, + 2084.3513f, + 2163.4082f, + 2360.3855f, + 2675.3855f, + 2898.9922f, + 3096.4922f, +}; +Vec lbl_1_data_2BC[0xE] = { + { -60.0f, 0.0f, 100.0f }, + { -60.0f, 0.0f, -230.0f }, + { -40.0f, 0.0f, -350.0f }, + { -40.0f, 0.0f, -550.0f }, + { -65.0f, 0.0f, -780.0f }, + { -400.0f, 0.0f, -780.0f }, + { -600.0f, 0.0f, -715.0f }, + { -1200.0f, 0.0f, -715.0f }, + { -1440.0f, 0.0f, -810.0f }, + { -1460.0f, 0.0f, -1050.0f }, + { -1400.0f, 0.0f, -1200.0f }, + { -1400.0f, 0.0f, -1350.0f }, + { -1460.0f, 0.0f, -1500.0f }, + { -1460.0f, 0.0f, -1700.0f }, +}; +Vec lbl_1_data_364[0xE] = { + { 60.0f, 0.0f, 100.0f }, + { 60.0f, 0.0f, -230.0f }, + { 70.0f, 0.0f, -350.0f }, + { 70.0f, 0.0f, -550.0f }, + { 50.0f, 0.0f, -900.0f }, + { -400.0f, 0.0f, -900.0f }, + { -600.0f, 0.0f, -835.0f }, + { -1200.0f, 0.0f, -835.0f }, + { -1340.0f, 0.0f, -900.0f }, + { -1340.0f, 0.0f, -1050.0f }, + { -1280.0f, 0.0f, -1200.0f }, + { -1280.0f, 0.0f, -1350.0f }, + { -1340.0f, 0.0f, -1500.0f }, + { -1340.0f, 0.0f, -1700.0f }, +}; +float lbl_1_data_40C[0xE] = { + 0.0f, + 330.0f, + 450.93387f, + 650.93384f, + 941.8054f, + 1334.3054f, + 1544.6028f, + 2144.6028f, + 2350.758f, + 2546.0144f, + 2707.5693f, + 2857.5693f, + 3019.1243f, + 3219.1243f, +}; +Vec lbl_1_data_444[0xF] = { + { -60.0f, 0.0f, 100.0f }, + { -60.0f, 0.0f, -230.0f }, + { -40.0f, 0.0f, -350.0f }, + { -40.0f, 0.0f, -550.0f }, + { -40.0f, 0.0f, -785.0f }, + { 110.0f, 0.0f, -925.0f }, + { 600.0f, 0.0f, -910.0f }, + { 900.0f, 0.0f, -840.0f }, + { 1200.0f, 0.0f, -910.0f }, + { 1330.0f, 0.0f, -920.0f }, + { 1340.0f, 0.0f, -1050.0f }, + { 1280.0f, 0.0f, -1200.0f }, + { 1280.0f, 0.0f, -1350.0f }, + { 1340.0f, 0.0f, -1500.0f }, + { 1340.0f, 0.0f, -1700.0f }, +}; +Vec lbl_1_data_4F8[0xF] = { + { 60.0f, 0.0f, 100.0f }, + { 60.0f, 0.0f, -230.0f }, + { 70.0f, 0.0f, -350.0f }, + { 70.0f, 0.0f, -550.0f }, + { 75.0f, 0.0f, -765.0f }, + { 140.0f, 0.0f, -800.0f }, + { 600.0f, 0.0f, -790.0f }, + { 900.0f, 0.0f, -720.0f }, + { 1200.0f, 0.0f, -790.0f }, + { 1440.0f, 0.0f, -810.0f }, + { 1460.0f, 0.0f, -1050.0f }, + { 1400.0f, 0.0f, -1200.0f }, + { 1400.0f, 0.0f, -1350.0f }, + { 1460.0f, 0.0f, -1500.0f }, + { 1460.0f, 0.0f, -1700.0f }, +}; +float lbl_1_data_5AC[0xF] = { + 0.0f, + 330.0f, + 450.93387f, + 650.93384f, + 875.94775f, + 1014.55695f, + 1489.7213f, + 1797.7798f, + 2105.8381f, + 2291.4453f, + 2477.0525f, + 2638.6074f, + 2788.6074f, + 2950.1624f, + 3150.1624f, +}; +Vec lbl_1_data_5E8[2] = { { -60.0f, 0.0f, 100.0f }, { -60.0f, 0.0f, -1000.0f } }; +Vec lbl_1_data_600[2] = { { 60.0f, 0.0f, 105.0f }, { 60.0f, 0.0f, -995.0f } }; +float lbl_1_data_618[2] = { 0.0f, 1100.0f }; +Vec lbl_1_data_620[0xE] = { + { -60.0f, 0.0f, 100.0f }, + { -60.0f, 0.0f, -210.0f }, + { 400.0f, 0.0f, -210.0f }, + { 400.0f, 0.0f, -690.0f }, + { 220.0f, 0.0f, -690.0f }, + { 220.0f, 0.0f, -340.0f }, + { -460.0f, 0.0f, -340.0f }, + { -460.0f, 0.0f, -710.0f }, + { -210.0f, 0.0f, -710.0f }, + { -210.0f, 0.0f, -890.0f }, + { -460.0f, 0.0f, -890.0f }, + { -460.0f, 0.0f, -1270.0f }, + { -60.0f, 0.0f, -1270.0f }, + { -60.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_6C8[0xE] = { + { 60.0f, 0.0f, 105.0f }, + { 60.0f, 0.0f, -90.0f }, + { 520.0f, 0.0f, -90.0f }, + { 520.0f, 0.0f, -810.0f }, + { 100.0f, 0.0f, -810.0f }, + { 100.0f, 0.0f, -460.0f }, + { -340.0f, 0.0f, -460.0f }, + { -340.0f, 0.0f, -590.0f }, + { -90.0f, 0.0f, -590.0f }, + { -90.0f, 0.0f, -1010.0f }, + { -340.0f, 0.0f, -1010.0f }, + { -340.0f, 0.0f, -1150.0f }, + { 60.0f, 0.0f, -1150.0f }, + { 60.0f, 0.0f, -1500.0f }, +}; +float lbl_1_data_770[0xE] = { + 0.0f, + 252.5f, + 712.5f, + 1312.5f, + 1612.5f, + 1962.5f, + 2522.5f, + 2772.5f, + 3022.5f, + 3322.5f, + 3572.5f, + 3832.5f, + 4232.5f, + 4522.5f, +}; +Vec lbl_1_data_7A8[0x12] = { + { -60.0f, 0.0f, 100.0f }, + { -60.0f, 0.0f, -100.0f }, + { -460.0f, 0.0f, -100.0f }, + { -460.0f, 0.0f, -510.0f }, + { 90.0f, 0.0f, -510.0f }, + { 90.0f, 0.0f, -760.0f }, + { 340.0f, 0.0f, -760.0f }, + { 340.0f, 0.0f, -890.0f }, + { -40.0f, 0.0f, -890.0f }, + { -40.0f, 0.0f, -690.0f }, + { -460.0f, 0.0f, -690.0f }, + { -460.0f, 0.0f, -790.0f }, + { -560.0f, 0.0f, -790.0f }, + { -560.0f, 0.0f, -1210.0f }, + { -460.0f, 0.0f, -1210.0f }, + { -460.0f, 0.0f, -1310.0f }, + { -60.0f, 0.0f, -1310.0f }, + { -60.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_880[0x12] = { + { 60.0f, 0.0f, 100.0f }, + { 60.0f, 0.0f, -220.0f }, + { -340.0f, 0.0f, -220.0f }, + { -340.0f, 0.0f, -390.0f }, + { 210.0f, 0.0f, -390.0f }, + { 210.0f, 0.0f, -640.0f }, + { 460.0f, 0.0f, -640.0f }, + { 460.0f, 0.0f, -1010.0f }, + { -160.0f, 0.0f, -1010.0f }, + { -160.0f, 0.0f, -810.0f }, + { -340.0f, 0.0f, -810.0f }, + { -345.0f, 0.0f, -910.0f }, + { -440.0f, 0.0f, -910.0f }, + { -440.0f, 0.0f, -1090.0f }, + { -340.0f, 0.0f, -1090.0f }, + { -340.0f, 0.0f, -1190.0f }, + { 60.0f, 0.0f, -1190.0f }, + { 60.0f, 0.0f, -1500.0f }, +}; +float lbl_1_data_958[0x12] = { + 0.0f, + 260.0f, + 660.0f, + 950.0f, + 1500.0f, + 1750.0f, + 2000.0f, + 2250.0f, + 2750.0f, + 2950.0f, + 3250.0f, + 3350.0312f, + 3447.5312f, + 3747.5312f, + 3847.5312f, + 3947.5312f, + 4347.5312f, + 4597.5312f, +}; +Vec lbl_1_data_9A0[0x10] = { + { -60.0f, 0.0f, 100.0f }, + { -60.0f, 0.0f, -90.0f }, + { -360.0f, 0.0f, -90.0f }, + { -360.0f, 0.0f, -710.0f }, + { 60.0f, 0.0f, -710.0f }, + { 60.0f, 0.0f, -510.0f }, + { 260.0f, 0.0f, -510.0f }, + { 260.0f, 0.0f, -310.0f }, + { 490.0f, 0.0f, -310.0f }, + { 490.0f, 0.0f, -590.0f }, + { 390.0f, 0.0f, -590.0f }, + { 390.0f, 0.0f, -890.0f }, + { -360.0f, 0.0f, -890.0f }, + { -360.0f, 0.0f, -1310.0f }, + { -60.0f, 0.0f, -1310.0f }, + { -60.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_A60[0x10] = { + { 60.0f, 0.0f, 100.0f }, + { 60.0f, 0.0f, -210.0f }, + { -240.0f, 0.0f, -210.0f }, + { -240.0f, 0.0f, -590.0f }, + { -60.0f, 0.0f, -590.0f }, + { -60.0f, 0.0f, -390.0f }, + { 140.0f, 0.0f, -390.0f }, + { 140.0f, 0.0f, -190.0f }, + { 610.0f, 0.0f, -190.0f }, + { 610.0f, 0.0f, -710.0f }, + { 510.0f, 0.0f, -710.0f }, + { 510.0f, 0.0f, -1010.0f }, + { -240.0f, 0.0f, -1010.0f }, + { -240.0f, 0.0f, -1190.0f }, + { 60.0f, 0.0f, -1190.0f }, + { 60.0f, 0.0f, -1500.0f }, +}; +float lbl_1_data_B20[0x10] = { + 0.0f, + 250.0f, + 550.0f, + 1050.0f, + 1350.0f, + 1550.0f, + 1750.0f, + 1950.0f, + 2300.0f, + 2700.0f, + 2800.0f, + 3100.0f, + 3850.0f, + 4150.0f, + 4450.0f, + 4700.0f, +}; +Vec lbl_1_data_B60[0x10] = { + { -60.0f, 0.0f, 100.0f }, + { -60.0f, 0.0f, 0.0f }, + { -60.0f, 0.0f, -230.0f }, + { -270.0f, 0.0f, -390.0f }, + { -410.0f, 0.0f, -470.0f }, + { -410.0f, 0.0f, -620.0f }, + { -300.0f, 0.0f, -715.0f }, + { -140.0f, 0.0f, -670.0f }, + { -90.0f, 0.0f, -710.0f }, + { -30.0f, 0.0f, -890.0f }, + { -180.0f, 0.0f, -1070.0f }, + { -180.0f, 0.0f, -1180.0f }, + { -70.0f, 0.0f, -1240.0f }, + { -60.0f, 0.0f, -1300.0f }, + { -60.0f, 0.0f, -1400.0f }, + { -60.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_C20[0x10] = { + { 60.0f, 0.0f, 100.0f }, + { 60.0f, 0.0f, 0.0f }, + { 40.0f, 0.0f, -280.0f }, + { -220.0f, 0.0f, -470.0f }, + { -310.0f, 0.0f, -520.0f }, + { -320.0f, 0.0f, -545.0f }, + { -290.0f, 0.0f, -615.0f }, + { -130.0f, 0.0f, -560.0f }, + { -10.0f, 0.0f, -640.0f }, + { 70.0f, 0.0f, -920.0f }, + { -70.0f, 0.0f, -1100.0f }, + { -70.0f, 0.0f, -1130.0f }, + { 15.0f, 0.0f, -1180.0f }, + { 60.0f, 0.0f, -1300.0f }, + { 60.0f, 0.0f, -1400.0f }, + { 60.0f, 0.0f, -1500.0f }, +}; +float lbl_1_data_CE0[0x10] = { + 0.0f, + 100.0f, + 355.196f, + 648.1977f, + 780.29614f, + 867.9389f, + 976.13434f, + 1143.7649f, + 1247.8081f, + 1488.2245f, + 1719.3629f, + 1789.3629f, + 1901.306f, + 1995.4137f, + 2095.4136f, + 2195.4136f, +}; +Vec lbl_1_data_D20[0xE] = { + { -60.0f, 0.0f, 100.0f }, + { -60.0f, 0.0f, 0.0f }, + { -60.0f, 0.0f, -100.0f }, + { -40.0f, 0.0f, -220.0f }, + { 190.0f, 0.0f, -470.0f }, + { 140.0f, 0.0f, -510.0f }, + { -190.0f, 0.0f, -530.0f }, + { -190.0f, 0.0f, -760.0f }, + { -295.0f, 0.0f, -970.0f }, + { -210.0f, 0.0f, -1055.0f }, + { -110.0f, 0.0f, -1160.0f }, + { -60.0f, 0.0f, -1230.0f }, + { -60.0f, 0.0f, -1400.0f }, + { -60.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_DC8[0xE] = { + { 60.0f, 0.0f, 100.0f }, + { 60.0f, 0.0f, 0.0f }, + { 60.0f, 0.0f, -100.0f }, + { 60.0f, 0.0f, -160.0f }, + { 320.0f, 0.0f, -465.0f }, + { 160.0f, 0.0f, -610.0f }, + { -105.0f, 0.0f, -620.0f }, + { -105.0f, 0.0f, -780.0f }, + { -195.0f, 0.0f, -950.0f }, + { -140.0f, 0.0f, -990.0f }, + { -25.0f, 0.0f, -1115.0f }, + { 60.0f, 0.0f, -1210.0f }, + { 60.0f, 0.0f, -1400.0f }, + { 60.0f, 0.0f, -1500.0f }, +}; +float lbl_1_data_E70[0xE] = { + 0.0f, + 100.0f, + 200.0f, + 290.55386f, + 660.7312f, + 800.6642f, + 1098.5421f, + 1293.5421f, + 1507.0983f, + 1600.94f, + 1758.3606f, + 1864.9556f, + 2044.9556f, + 2144.9556f, +}; +Vec lbl_1_data_EA8[0xD] = { + { -60.0f, 0.0f, 100.0f }, + { -60.0f, 0.0f, 0.0f }, + { -60.0f, 0.0f, -100.0f }, + { -45.0f, 0.0f, -220.0f }, + { 40.0f, 0.0f, -345.0f }, + { -60.0f, 0.0f, -490.0f }, + { -60.0f, 0.0f, -750.0f }, + { 170.0f, 0.0f, -925.0f }, + { 130.0f, 0.0f, -1050.0f }, + { -10.0f, 0.0f, -1075.0f }, + { -60.0f, 0.0f, -1200.0f }, + { -60.0f, 0.0f, -1400.0f }, + { -60.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_F44[0xD] = { + { 60.0f, 0.0f, 100.0f }, + { 60.0f, 0.0f, 0.0f }, + { 60.0f, 0.0f, -100.0f }, + { 60.0f, 0.0f, -180.0f }, + { 140.0f, 0.0f, -340.0f }, + { 30.0f, 0.0f, -520.0f }, + { 30.0f, 0.0f, -690.0f }, + { 265.0f, 0.0f, -885.0f }, + { 200.0f, 0.0f, -1130.0f }, + { 70.0f, 0.0f, -1160.0f }, + { 60.0f, 0.0f, -1200.0f }, + { 60.0f, 0.0f, -1400.0f }, + { 60.0f, 0.0f, -1500.0f }, +}; +float lbl_1_data_FE0[0xD] = { + 0.0f, + 100.0f, + 200.0f, + 300.28085f, + 464.9396f, + 658.4112f, + 873.4112f, + 1170.5328f, + 1362.8379f, + 1500.6104f, + 1588.3956f, + 1788.3956f, + 1888.3956f, +}; +Vec *lbl_1_data_1014[0xC][2] = { + { lbl_1_data_0, lbl_1_data_18 }, + { lbl_1_data_38, lbl_1_data_BC }, + { lbl_1_data_16C, lbl_1_data_1FC }, + { lbl_1_data_2BC, lbl_1_data_364 }, + { lbl_1_data_444, lbl_1_data_4F8 }, + { lbl_1_data_5E8, lbl_1_data_600 }, + { lbl_1_data_620, lbl_1_data_6C8 }, + { lbl_1_data_7A8, lbl_1_data_880 }, + { lbl_1_data_9A0, lbl_1_data_A60 }, + { lbl_1_data_B60, lbl_1_data_C20 }, + { lbl_1_data_D20, lbl_1_data_DC8 }, + { lbl_1_data_EA8, lbl_1_data_F44 }, +}; +u16 lbl_1_data_1074[0xC] = { 2, 0xB, 0xC, 0xE, 0xF, 2, 0xE, 0x12, 0x10, 0x10, 0xE, 0xD }; +float *lbl_1_data_108C[0xC] = { + lbl_1_data_30, + lbl_1_data_140, + lbl_1_data_28C, + lbl_1_data_40C, + lbl_1_data_5AC, + lbl_1_data_618, + lbl_1_data_770, + lbl_1_data_958, + lbl_1_data_B20, + lbl_1_data_CE0, + lbl_1_data_E70, + lbl_1_data_FE0, +}; +Vec lbl_1_data_10BC[0x2B] = { + { 70.0f, 0.0f, -800.0f }, + { 70.0f, 0.0f, -700.0f }, + { 70.0f, 0.0f, -640.0f }, + { 65.0f, 0.0f, -620.0f }, + { 65.0f, 0.0f, -590.0f }, + { 70.0f, 0.0f, -570.0f }, + { 70.0f, 0.0f, -450.0f }, + { 75.0f, 0.0f, -440.0f }, + { 75.0f, 0.0f, -430.0f }, + { 70.0f, 0.0f, -420.0f }, + { 80.0f, 0.0f, -390.0f }, + { 80.0f, 0.0f, -380.0f }, + { 80.0f, 0.0f, -325.0f }, + { 225.0f, 0.0f, -225.0f }, + { 300.0f, 0.0f, -95.0f }, + { 320.0f, 0.0f, 0.0f }, + { 305.0f, 0.0f, 80.0f }, + { 250.0f, 0.0f, 145.0f }, + { 230.0f, 0.0f, 230.0f }, + { 170.0f, 0.0f, 280.0f }, + { 100.0f, 0.0f, 315.0f }, + { 0.0f, 0.0f, 330.0f }, + { -100.0f, 0.0f, 300.0f }, + { -150.0f, 0.0f, 240.0f }, + { -225.0f, 0.0f, 225.0f }, + { -300.0f, 0.0f, 100.0f }, + { -330.0f, 0.0f, 0.0f }, + { -320.0f, 0.0f, -110.0f }, + { -260.0f, 0.0f, -160.0f }, + { -235.0f, 0.0f, -235.0f }, + { -85.0f, 0.0f, -325.0f }, + { -85.0f, 0.0f, -380.0f }, + { -80.0f, 0.0f, -390.0f }, + { -80.0f, 0.0f, -420.0f }, + { -75.0f, 0.0f, -430.0f }, + { -75.0f, 0.0f, -440.0f }, + { -70.0f, 0.0f, -450.0f }, + { -70.0f, 0.0f, -570.0f }, + { -65.0f, 0.0f, -590.0f }, + { -65.0f, 0.0f, -620.0f }, + { -70.0f, 0.0f, -640.0f }, + { -70.0f, 0.0f, -700.0f }, + { -70.0f, 0.0f, -800.0f }, +}; +Vec lbl_1_data_12C0[0x2B] = { + { 350.0f, 0.0f, -800.0f }, + { 350.0f, 0.0f, -700.0f }, + { 350.0f, 0.0f, -640.0f }, + { 350.0f, 0.0f, -620.0f }, + { 350.0f, 0.0f, -590.0f }, + { 350.0f, 0.0f, -570.0f }, + { 400.0f, 0.0f, -495.0f }, + { 410.0f, 0.0f, -475.0f }, + { 415.0f, 0.0f, -465.0f }, + { 420.0f, 0.0f, -445.0f }, + { 435.0f, 0.0f, -430.0f }, + { 435.0f, 0.0f, -415.0f }, + { 475.0f, 0.0f, -400.0f }, + { 535.0f, 0.0f, -340.0f }, + { 630.0f, 0.0f, -170.0f }, + { 660.0f, 0.0f, 0.0f }, + { 685.0f, 0.0f, 160.0f }, + { 640.0f, 0.0f, 260.0f }, + { 565.0f, 0.0f, 485.0f }, + { 465.0f, 0.0f, 505.0f }, + { 215.0f, 0.0f, 660.0f }, + { 0.0f, 0.0f, 690.0f }, + { -160.0f, 0.0f, 640.0f }, + { -300.0f, 0.0f, 560.0f }, + { -365.0f, 0.0f, 490.0f }, + { -620.0f, 0.0f, 250.0f }, + { -630.0f, 0.0f, 0.0f }, + { -560.0f, 0.0f, -240.0f }, + { -500.0f, 0.0f, -290.0f }, + { -415.0f, 0.0f, -350.0f }, + { -375.0f, 0.0f, -395.0f }, + { -360.0f, 0.0f, -415.0f }, + { -355.0f, 0.0f, -425.0f }, + { -350.0f, 0.0f, -445.0f }, + { -350.0f, 0.0f, -455.0f }, + { -350.0f, 0.0f, -465.0f }, + { -350.0f, 0.0f, -475.0f }, + { -350.0f, 0.0f, -570.0f }, + { -350.0f, 0.0f, -590.0f }, + { -350.0f, 0.0f, -615.0f }, + { -350.0f, 0.0f, -640.0f }, + { -350.0f, 0.0f, -700.0f }, + { -350.0f, 0.0f, -800.0f }, +}; +Vec lbl_1_data_14C4[0x2B] = { + { 0.0f, 0.0f, -800.0f }, + { 0.0f, 0.0f, -700.0f }, + { 0.0f, 0.0f, -640.0f }, + { 0.0f, 0.0f, -620.0f }, + { 0.0f, 0.0f, -590.0f }, + { 0.0f, 0.0f, -570.0f }, + { 0.0f, 0.0f, -450.0f }, + { 0.0f, 0.0f, -440.0f }, + { 0.0f, 0.0f, -430.0f }, + { 0.0f, 0.0f, -420.0f }, + { 0.0f, 0.0f, -390.0f }, + { 0.0f, 0.0f, -380.0f }, + { 0.0f, 0.0f, -295.0f }, + { 125.0f, 0.0f, -130.0f }, + { 165.0f, 0.0f, -55.0f }, + { 175.0f, 0.0f, 0.0f }, + { 160.0f, 0.0f, 45.0f }, + { 135.0f, 0.0f, 80.0f }, + { 130.0f, 0.0f, 130.0f }, + { 95.0f, 0.0f, 160.0f }, + { 55.0f, 0.0f, 180.0f }, + { 0.0f, 0.0f, 190.0f }, + { -55.0f, 0.0f, 175.0f }, + { -85.0f, 0.0f, 135.0f }, + { -130.0f, 0.0f, 125.0f }, + { -165.0f, 0.0f, 55.0f }, + { -185.0f, 0.0f, 0.0f }, + { -175.0f, 0.0f, -60.0f }, + { -140.0f, 0.0f, -100.0f }, + { -105.0f, 0.0f, -165.0f }, + { 0.0f, 0.0f, -295.0f }, + { 0.0f, 0.0f, -380.0f }, + { 0.0f, 0.0f, -390.0f }, + { 0.0f, 0.0f, -420.0f }, + { 0.0f, 0.0f, -430.0f }, + { 0.0f, 0.0f, -440.0f }, + { 0.0f, 0.0f, -450.0f }, + { 0.0f, 0.0f, -570.0f }, + { 0.0f, 0.0f, -590.0f }, + { 0.0f, 0.0f, -620.0f }, + { 0.0f, 0.0f, -640.0f }, + { 0.0f, 0.0f, -700.0f }, + { 0.0f, 0.0f, -800.0f }, +}; +Vec *lbl_1_data_16C8[3] = { lbl_1_data_10BC, lbl_1_data_12C0, lbl_1_data_14C4 }; +s32 lbl_1_data_16D4 = 0x2B; +Vec lbl_1_data_16D8[0x27] = { + { -1335.0f, 0.0f, -1600.0f }, + { -1335.0f, 0.0f, -1400.0f }, + { -1430.0f, 0.0f, -1200.0f }, + { -1430.0f, 0.0f, -900.0f }, + { -1360.0f, 0.0f, -760.0f }, + { -1330.0f, 0.0f, -730.0f }, + { -1210.0f, 0.0f, -750.0f }, + { -1080.0f, 0.0f, -790.0f }, + { -880.0f, 0.0f, -810.0f }, + { -700.0f, 0.0f, -830.0f }, + { -600.0f, 0.0f, -820.0f }, + { -500.0f, 0.0f, -820.0f }, + { -380.0f, 0.0f, -780.0f }, + { -260.0f, 0.0f, -700.0f }, + { -210.0f, 0.0f, -700.0f }, + { -180.0f, 0.0f, -720.0f }, + { -140.0f, 0.0f, -750.0f }, + { 0.0f, 0.0f, -760.0f }, + { 110.0f, 0.0f, -740.0f }, + { 160.0f, 0.0f, -720.0f }, + { 210.0f, 0.0f, -720.0f }, + { 270.0f, 0.0f, -700.0f }, + { 300.0f, 0.0f, -710.0f }, + { 330.0f, 0.0f, -710.0f }, + { 350.0f, 0.0f, -700.0f }, + { 380.0f, 0.0f, -670.0f }, + { 460.0f, 0.0f, -640.0f }, + { 500.0f, 0.0f, -620.0f }, + { 900.0f, 0.0f, -620.0f }, + { 950.0f, 0.0f, -620.0f }, + { 1000.0f, 0.0f, -675.0f }, + { 1100.0f, 0.0f, -730.0f }, + { 1200.0f, 0.0f, -720.0f }, + { 1335.0f, 0.0f, -730.0f }, + { 1360.0f, 0.0f, -760.0f }, + { 1430.0f, 0.0f, -900.0f }, + { 1430.0f, 0.0f, -1200.0f }, + { 1330.0f, 0.0f, -1400.0f }, + { 1330.0f, 0.0f, -1600.0f }, +}; +Vec lbl_1_data_18AC[0x27] = { + { -1170.0f, 0.0f, -1600.0f }, + { -1170.0f, 0.0f, -1400.0f }, + { -1170.0f, 0.0f, -1200.0f }, + { -1170.0f, 0.0f, -1010.0f }, + { -1160.0f, 0.0f, -980.0f }, + { -1135.0f, 0.0f, -960.0f }, + { -1115.0f, 0.0f, -965.0f }, + { -1070.0f, 0.0f, -990.0f }, + { -875.0f, 0.0f, -1055.0f }, + { -700.0f, 0.0f, -1000.0f }, + { -600.0f, 0.0f, -1000.0f }, + { -500.0f, 0.0f, -975.0f }, + { -380.0f, 0.0f, -935.0f }, + { -260.0f, 0.0f, -935.0f }, + { -210.0f, 0.0f, -935.0f }, + { -180.0f, 0.0f, -965.0f }, + { -140.0f, 0.0f, -995.0f }, + { 0.0f, 0.0f, -1005.0f }, + { 110.0f, 0.0f, -985.0f }, + { 160.0f, 0.0f, -965.0f }, + { 210.0f, 0.0f, -965.0f }, + { 270.0f, 0.0f, -935.0f }, + { 300.0f, 0.0f, -945.0f }, + { 330.0f, 0.0f, -945.0f }, + { 350.0f, 0.0f, -935.0f }, + { 380.0f, 0.0f, -905.0f }, + { 460.0f, 0.0f, -820.0f }, + { 500.0f, 0.0f, -800.0f }, + { 900.0f, 0.0f, -800.0f }, + { 930.0f, 0.0f, -800.0f }, + { 1000.0f, 0.0f, -820.0f }, + { 1100.0f, 0.0f, -820.0f }, + { 1165.0f, 0.0f, -795.0f }, + { 1215.0f, 0.0f, -820.0f }, + { 1250.0f, 0.0f, -860.0f }, + { 1250.0f, 0.0f, -900.0f }, + { 1250.0f, 0.0f, -1200.0f }, + { 1180.0f, 0.0f, -1400.0f }, + { 1180.0f, 0.0f, -1600.0f }, +}; +Vec lbl_1_data_1A80[0x27] = { + { -1400.0f, 0.0f, -1600.0f }, + { -1400.0f, 0.0f, -1400.0f }, + { -1480.0f, 0.0f, -1200.0f }, + { -1480.0f, 0.0f, -885.0f }, + { -1425.0f, 0.0f, -715.0f }, + { -1355.0f, 0.0f, -660.0f }, + { -1205.0f, 0.0f, -680.0f }, + { -1080.0f, 0.0f, -715.0f }, + { -880.0f, 0.0f, -735.0f }, + { -700.0f, 0.0f, -755.0f }, + { -600.0f, 0.0f, -750.0f }, + { -500.0f, 0.0f, -750.0f }, + { -380.0f, 0.0f, -705.0f }, + { -260.0f, 0.0f, -630.0f }, + { -210.0f, 0.0f, -620.0f }, + { -180.0f, 0.0f, -625.0f }, + { -140.0f, 0.0f, -640.0f }, + { 0.0f, 0.0f, -645.0f }, + { 110.0f, 0.0f, -635.0f }, + { 160.0f, 0.0f, -635.0f }, + { 210.0f, 0.0f, -635.0f }, + { 270.0f, 0.0f, -620.0f }, + { 300.0f, 0.0f, -620.0f }, + { 330.0f, 0.0f, -620.0f }, + { 350.0f, 0.0f, -620.0f }, + { 380.0f, 0.0f, -600.0f }, + { 460.0f, 0.0f, -555.0f }, + { 500.0f, 0.0f, -550.0f }, + { 900.0f, 0.0f, -550.0f }, + { 950.0f, 0.0f, -555.0f }, + { 1025.0f, 0.0f, -605.0f }, + { 1100.0f, 0.0f, -660.0f }, + { 1210.0f, 0.0f, -650.0f }, + { 1355.0f, 0.0f, -660.0f }, + { 1420.0f, 0.0f, -705.0f }, + { 1480.0f, 0.0f, -885.0f }, + { 1480.0f, 0.0f, -1200.0f }, + { 1400.0f, 0.0f, -1400.0f }, + { 1400.0f, 0.0f, -1600.0f }, +}; +Vec lbl_1_data_1C54[0x18] = { + { 1470.0f, 0.0f, -1590.0f }, + { 1470.0f, 0.0f, -1400.0f }, + { 1570.0f, 0.0f, -1200.0f }, + { 1570.0f, 0.0f, -870.0f }, + { 1480.0f, 0.0f, -655.0f }, + { 1375.0f, 0.0f, -590.0f }, + { 1220.0f, 0.0f, -580.0f }, + { 1100.0f, 0.0f, -590.0f }, + { 1060.0f, 0.0f, -530.0f }, + { 1005.0f, 0.0f, -500.0f }, + { 950.0f, 0.0f, -480.0f }, + { 900.0f, 0.0f, -480.0f }, + { 500.0f, 0.0f, -480.0f }, + { 460.0f, 0.0f, -475.0f }, + { 350.0f, 0.0f, -530.0f }, + { 285.0f, 0.0f, -530.0f }, + { 210.0f, 0.0f, -535.0f }, + { 160.0f, 0.0f, -540.0f }, + { 120.0f, 0.0f, -525.0f }, + { 110.0f, 0.0f, -430.0f }, + { 80.0f, 0.0f, -340.0f }, + { 80.0f, 0.0f, -240.0f }, + { 70.0f, 0.0f, -170.0f }, + { 70.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_1D74[0x18] = { + { 1620.0f, 0.0f, -1600.0f }, + { 1620.0f, 0.0f, -1400.0f }, + { 1830.0f, 0.0f, -1190.0f }, + { 1830.0f, 0.0f, -820.0f }, + { 1620.0f, 0.0f, -525.0f }, + { 1500.0f, 0.0f, -420.0f }, + { 1280.0f, 0.0f, -380.0f }, + { 1160.0f, 0.0f, -400.0f }, + { 1110.0f, 0.0f, -400.0f }, + { 1045.0f, 0.0f, -380.0f }, + { 990.0f, 0.0f, -355.0f }, + { 900.0f, 0.0f, -375.0f }, + { 500.0f, 0.0f, -375.0f }, + { 470.0f, 0.0f, -360.0f }, + { 425.0f, 0.0f, -355.0f }, + { 395.0f, 0.0f, -340.0f }, + { 355.0f, 0.0f, -345.0f }, + { 320.0f, 0.0f, -335.0f }, + { 295.0f, 0.0f, -325.0f }, + { 290.0f, 0.0f, -305.0f }, + { 310.0f, 0.0f, -260.0f }, + { 310.0f, 0.0f, -230.0f }, + { 300.0f, 0.0f, -170.0f }, + { 300.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_1E94[0x18] = { + { 1400.0f, 0.0f, -1600.0f }, + { 1400.0f, 0.0f, -1400.0f }, + { 1480.0f, 0.0f, -1200.0f }, + { 1480.0f, 0.0f, -885.0f }, + { 1420.0f, 0.0f, -705.0f }, + { 1355.0f, 0.0f, -660.0f }, + { 1210.0f, 0.0f, -650.0f }, + { 1100.0f, 0.0f, -660.0f }, + { 1025.0f, 0.0f, -605.0f }, + { 950.0f, 0.0f, -555.0f }, + { 925.0f, 0.0f, -550.0f }, + { 900.0f, 0.0f, -550.0f }, + { 500.0f, 0.0f, -550.0f }, + { 460.0f, 0.0f, -555.0f }, + { 345.0f, 0.0f, -620.0f }, + { 280.0f, 0.0f, -620.0f }, + { 210.0f, 0.0f, -635.0f }, + { 115.0f, 0.0f, -635.0f }, + { 30.0f, 0.0f, -580.0f }, + { 0.0f, 0.0f, -430.0f }, + { 0.0f, 0.0f, -340.0f }, + { 0.0f, 0.0f, -240.0f }, + { 0.0f, 0.0f, -170.0f }, + { 0.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_1FB4[0x14] = { + { -70.0f, 0.0f, 100.0f }, + { -70.0f, 0.0f, -170.0f }, + { -75.0f, 0.0f, -240.0f }, + { -90.0f, 0.0f, -340.0f }, + { -130.0f, 0.0f, -430.0f }, + { -150.0f, 0.0f, -520.0f }, + { -260.0f, 0.0f, -550.0f }, + { -380.0f, 0.0f, -630.0f }, + { -500.0f, 0.0f, -680.0f }, + { -600.0f, 0.0f, -680.0f }, + { -700.0f, 0.0f, -690.0f }, + { -880.0f, 0.0f, -670.0f }, + { -1080.0f, 0.0f, -650.0f }, + { -1210.0f, 0.0f, -610.0f }, + { -1385.0f, 0.0f, -590.0f }, + { -1490.0f, 0.0f, -670.0f }, + { -1570.0f, 0.0f, -865.0f }, + { -1570.0f, 0.0f, -1200.0f }, + { -1470.0f, 0.0f, -1400.0f }, + { -1470.0f, 0.0f, -1600.0f }, +}; +Vec lbl_1_data_20A4[0x14] = { + { -300.0f, 0.0f, 100.0f }, + { -300.0f, 0.0f, -170.0f }, + { -280.0f, 0.0f, -220.0f }, + { -280.0f, 0.0f, -270.0f }, + { -355.0f, 0.0f, -280.0f }, + { -400.0f, 0.0f, -320.0f }, + { -440.0f, 0.0f, -345.0f }, + { -520.0f, 0.0f, -410.0f }, + { -625.0f, 0.0f, -445.0f }, + { -720.0f, 0.0f, -460.0f }, + { -860.0f, 0.0f, -460.0f }, + { -1000.0f, 0.0f, -425.0f }, + { -1190.0f, 0.0f, -280.0f }, + { -1440.0f, 0.0f, -280.0f }, + { -1560.0f, 0.0f, -460.0f }, + { -1680.0f, 0.0f, -570.0f }, + { -1750.0f, 0.0f, -820.0f }, + { -1750.0f, 0.0f, -1200.0f }, + { -1640.0f, 0.0f, -1400.0f }, + { -1640.0f, 0.0f, -1595.0f }, +}; +Vec lbl_1_data_2194[0x14] = { + { 0.0f, 0.0f, 100.0f }, + { 0.0f, 0.0f, -170.0f }, + { 0.0f, 0.0f, -240.0f }, + { 0.0f, 0.0f, -330.0f }, + { 0.0f, 0.0f, -430.0f }, + { -45.0f, 0.0f, -600.0f }, + { -255.0f, 0.0f, -625.0f }, + { -380.0f, 0.0f, -705.0f }, + { -500.0f, 0.0f, -750.0f }, + { -600.0f, 0.0f, -750.0f }, + { -700.0f, 0.0f, -755.0f }, + { -880.0f, 0.0f, -735.0f }, + { -1080.0f, 0.0f, -715.0f }, + { -1205.0f, 0.0f, -680.0f }, + { -1355.0f, 0.0f, -660.0f }, + { -1425.0f, 0.0f, -715.0f }, + { -1480.0f, 0.0f, -885.0f }, + { -1480.0f, 0.0f, -1200.0f }, + { -1400.0f, 0.0f, -1400.0f }, + { -1400.0f, 0.0f, -1600.0f }, +}; +Vec *lbl_1_data_2284[9] = { + lbl_1_data_16D8, + lbl_1_data_18AC, + lbl_1_data_1A80, + lbl_1_data_1C54, + lbl_1_data_1D74, + lbl_1_data_1E94, + lbl_1_data_1FB4, + lbl_1_data_20A4, + lbl_1_data_2194, +}; +s32 lbl_1_data_22A8[3] = { 0x27, 0x18, 0x14 }; +Vec lbl_1_data_22B4[0x1F] = { + { 1470.0f, 0.0f, -1700.0f }, + { 1470.0f, 0.0f, -1600.0f }, + { 1470.0f, 0.0f, -1500.0f }, + { 1410.0f, 0.0f, -1350.0f }, + { 1410.0f, 0.0f, -1200.0f }, + { 1470.0f, 0.0f, -1050.0f }, + { 1470.0f, 0.0f, -895.0f }, + { 1470.0f, 0.0f, -850.0f }, + { 1450.0f, 0.0f, -800.0f }, + { 1410.0f, 0.0f, -780.0f }, + { 1360.0f, 0.0f, -780.0f }, + { 1200.0f, 0.0f, -780.0f }, + { 1000.0f, 0.0f, -710.0f }, + { 800.0f, 0.0f, -710.0f }, + { 600.0f, 0.0f, -780.0f }, + { 400.0f, 0.0f, -780.0f }, + { 270.0f, 0.0f, -790.0f }, + { 190.0f, 0.0f, -780.0f }, + { 150.0f, 0.0f, -770.0f }, + { 140.0f, 0.0f, -765.0f }, + { 130.0f, 0.0f, -730.0f }, + { 100.0f, 0.0f, -700.0f }, + { 90.0f, 0.0f, -640.0f }, + { 80.0f, 0.0f, -620.0f }, + { 80.0f, 0.0f, -550.0f }, + { 80.0f, 0.0f, -470.0f }, + { 85.0f, 0.0f, -410.0f }, + { 85.0f, 0.0f, -290.0f }, + { 70.0f, 0.0f, -230.0f }, + { 70.0f, 0.0f, 0.0f }, + { 70.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_2428[0x1F] = { + { 1620.0f, 0.0f, -1700.0f }, + { 1620.0f, 0.0f, -1600.0f }, + { 1620.0f, 0.0f, -1500.0f }, + { 1600.0f, 0.0f, -1350.0f }, + { 1600.0f, 0.0f, -1200.0f }, + { 1635.0f, 0.0f, -1050.0f }, + { 1650.0f, 0.0f, -745.0f }, + { 1645.0f, 0.0f, -685.0f }, + { 1620.0f, 0.0f, -630.0f }, + { 1565.0f, 0.0f, -585.0f }, + { 1500.0f, 0.0f, -550.0f }, + { 1200.0f, 0.0f, -495.0f }, + { 1000.0f, 0.0f, -570.0f }, + { 830.0f, 0.0f, -550.0f }, + { 600.0f, 0.0f, -440.0f }, + { 400.0f, 0.0f, -470.0f }, + { 340.0f, 0.0f, -535.0f }, + { 310.0f, 0.0f, -545.0f }, + { 290.0f, 0.0f, -550.0f }, + { 275.0f, 0.0f, -540.0f }, + { 265.0f, 0.0f, -520.0f }, + { 265.0f, 0.0f, -490.0f }, + { 265.0f, 0.0f, -470.0f }, + { 265.0f, 0.0f, -450.0f }, + { 265.0f, 0.0f, -425.0f }, + { 265.0f, 0.0f, -405.0f }, + { 265.0f, 0.0f, -385.0f }, + { 210.0f, 0.0f, -290.0f }, + { 200.0f, 0.0f, -230.0f }, + { 200.0f, 0.0f, 0.0f }, + { 200.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_259C[0x1F] = { + { 1400.0f, 0.0f, -1700.0f }, + { 1400.0f, 0.0f, -1600.0f }, + { 1400.0f, 0.0f, -1500.0f }, + { 1360.0f, 0.0f, -1350.0f }, + { 1360.0f, 0.0f, -1200.0f }, + { 1400.0f, 0.0f, -1050.0f }, + { 1400.0f, 0.0f, -915.0f }, + { 1400.0f, 0.0f, -885.0f }, + { 1390.0f, 0.0f, -860.0f }, + { 1360.0f, 0.0f, -850.0f }, + { 1340.0f, 0.0f, -850.0f }, + { 1200.0f, 0.0f, -850.0f }, + { 1000.0f, 0.0f, -800.0f }, + { 800.0f, 0.0f, -800.0f }, + { 600.0f, 0.0f, -850.0f }, + { 400.0f, 0.0f, -850.0f }, + { 270.0f, 0.0f, -865.0f }, + { 190.0f, 0.0f, -865.0f }, + { 150.0f, 0.0f, -865.0f }, + { 70.0f, 0.0f, -835.0f }, + { 15.0f, 0.0f, -760.0f }, + { 0.0f, 0.0f, -700.0f }, + { 0.0f, 0.0f, -640.0f }, + { 0.0f, 0.0f, -620.0f }, + { 0.0f, 0.0f, -550.0f }, + { 0.0f, 0.0f, -470.0f }, + { 15.0f, 0.0f, -410.0f }, + { 15.0f, 0.0f, -290.0f }, + { 0.0f, 0.0f, -230.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_2710[0x1B] = { + { -70.0f, 0.0f, 100.0f }, + { -70.0f, 0.0f, 0.0f }, + { -70.0f, 0.0f, -230.0f }, + { -55.0f, 0.0f, -290.0f }, + { -55.0f, 0.0f, -410.0f }, + { -70.0f, 0.0f, -470.0f }, + { -85.0f, 0.0f, -550.0f }, + { -100.0f, 0.0f, -620.0f }, + { -110.0f, 0.0f, -640.0f }, + { -110.0f, 0.0f, -700.0f }, + { -150.0f, 0.0f, -730.0f }, + { -160.0f, 0.0f, -760.0f }, + { -190.0f, 0.0f, -760.0f }, + { -260.0f, 0.0f, -790.0f }, + { -400.0f, 0.0f, -770.0f }, + { -600.0f, 0.0f, -705.0f }, + { -1200.0f, 0.0f, -705.0f }, + { -1355.0f, 0.0f, -760.0f }, + { -1410.0f, 0.0f, -780.0f }, + { -1450.0f, 0.0f, -800.0f }, + { -1470.0f, 0.0f, -850.0f }, + { -1470.0f, 0.0f, -1050.0f }, + { -1410.0f, 0.0f, -1200.0f }, + { -1410.0f, 0.0f, -1350.0f }, + { -1470.0f, 0.0f, -1500.0f }, + { -1470.0f, 0.0f, -1600.0f }, + { -1470.0f, 0.0f, -1700.0f }, +}; +Vec lbl_1_data_2854[0x1B] = { + { -200.0f, 0.0f, 100.0f }, + { -200.0f, 0.0f, -5.0f }, + { -200.0f, 0.0f, -225.0f }, + { -260.0f, 0.0f, -290.0f }, + { -260.0f, 0.0f, -410.0f }, + { -270.0f, 0.0f, -470.0f }, + { -280.0f, 0.0f, -505.0f }, + { -295.0f, 0.0f, -520.0f }, + { -315.0f, 0.0f, -525.0f }, + { -330.0f, 0.0f, -550.0f }, + { -345.0f, 0.0f, -560.0f }, + { -360.0f, 0.0f, -570.0f }, + { -375.0f, 0.0f, -575.0f }, + { -390.0f, 0.0f, -580.0f }, + { -420.0f, 0.0f, -580.0f }, + { -600.0f, 0.0f, -520.0f }, + { -1200.0f, 0.0f, -520.0f }, + { -1425.0f, 0.0f, -545.0f }, + { -1555.0f, 0.0f, -525.0f }, + { -1630.0f, 0.0f, -555.0f }, + { -1710.0f, 0.0f, -770.0f }, + { -1710.0f, 0.0f, -1050.0f }, + { -1590.0f, 0.0f, -1200.0f }, + { -1590.0f, 0.0f, -1350.0f }, + { -1620.0f, 0.0f, -1500.0f }, + { -1620.0f, 0.0f, -1600.0f }, + { -1620.0f, 0.0f, -1700.0f }, +}; +Vec lbl_1_data_2998[0x1B] = { + { 0.0f, 0.0f, 100.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, -230.0f }, + { 15.0f, 0.0f, -290.0f }, + { 15.0f, 0.0f, -410.0f }, + { 0.0f, 0.0f, -470.0f }, + { 0.0f, 0.0f, -550.0f }, + { -5.0f, 0.0f, -620.0f }, + { -10.0f, 0.0f, -640.0f }, + { -25.0f, 0.0f, -720.0f }, + { -60.0f, 0.0f, -780.0f }, + { -140.0f, 0.0f, -835.0f }, + { -190.0f, 0.0f, -840.0f }, + { -260.0f, 0.0f, -850.0f }, + { -400.0f, 0.0f, -840.0f }, + { -600.0f, 0.0f, -775.0f }, + { -1200.0f, 0.0f, -775.0f }, + { -1335.0f, 0.0f, -830.0f }, + { -1375.0f, 0.0f, -840.0f }, + { -1390.0f, 0.0f, -855.0f }, + { -1400.0f, 0.0f, -880.0f }, + { -1400.0f, 0.0f, -1050.0f }, + { -1360.0f, 0.0f, -1200.0f }, + { -1360.0f, 0.0f, -1350.0f }, + { -1400.0f, 0.0f, -1500.0f }, + { -1400.0f, 0.0f, -1600.0f }, + { -1400.0f, 0.0f, -1700.0f }, +}; +Vec lbl_1_data_2ADC[0x23] = { + { -1330.0f, 0.0f, -1700.0f }, + { -1330.0f, 0.0f, -1600.0f }, + { -1330.0f, 0.0f, -1500.0f }, + { -1270.0f, 0.0f, -1350.0f }, + { -1270.0f, 0.0f, -1200.0f }, + { -1330.0f, 0.0f, -1050.0f }, + { -1330.0f, 0.0f, -930.0f }, + { -1310.0f, 0.0f, -890.0f }, + { -1200.0f, 0.0f, -845.0f }, + { -1100.0f, 0.0f, -845.0f }, + { -700.0f, 0.0f, -845.0f }, + { -600.0f, 0.0f, -845.0f }, + { -400.0f, 0.0f, -910.0f }, + { -260.0f, 0.0f, -930.0f }, + { -190.0f, 0.0f, -940.0f }, + { -140.0f, 0.0f, -980.0f }, + { -80.0f, 0.0f, -1010.0f }, + { 60.0f, 0.0f, -1010.0f }, + { 110.0f, 0.0f, -980.0f }, + { 150.0f, 0.0f, -970.0f }, + { 190.0f, 0.0f, -950.0f }, + { 270.0f, 0.0f, -940.0f }, + { 400.0f, 0.0f, -920.0f }, + { 600.0f, 0.0f, -920.0f }, + { 800.0f, 0.0f, -850.0f }, + { 1000.0f, 0.0f, -850.0f }, + { 1200.0f, 0.0f, -920.0f }, + { 1310.0f, 0.0f, -920.0f }, + { 1330.0f, 0.0f, -940.0f }, + { 1330.0f, 0.0f, -1050.0f }, + { 1270.0f, 0.0f, -1200.0f }, + { 1270.0f, 0.0f, -1350.0f }, + { 1330.0f, 0.0f, -1500.0f }, + { 1330.0f, 0.0f, -1600.0f }, + { 1330.0f, 0.0f, -1700.0f }, +}; +Vec lbl_1_data_2C80[0x23] = { + { -1180.0f, 0.0f, -1700.0f }, + { -1180.0f, 0.0f, -1600.0f }, + { -1180.0f, 0.0f, -1500.0f }, + { -1100.0f, 0.0f, -1350.0f }, + { -1100.0f, 0.0f, -1200.0f }, + { -1180.0f, 0.0f, -1050.0f }, + { -1170.0f, 0.0f, -1000.0f }, + { -1150.0f, 0.0f, -980.0f }, + { -1105.0f, 0.0f, -970.0f }, + { -1035.0f, 0.0f, -945.0f }, + { -700.0f, 0.0f, -1015.0f }, + { -600.0f, 0.0f, -1015.0f }, + { -400.0f, 0.0f, -980.0f }, + { -260.0f, 0.0f, -975.0f }, + { -190.0f, 0.0f, -990.0f }, + { -140.0f, 0.0f, -1030.0f }, + { -80.0f, 0.0f, -1060.0f }, + { 60.0f, 0.0f, -1060.0f }, + { 110.0f, 0.0f, -1030.0f }, + { 150.0f, 0.0f, -1020.0f }, + { 190.0f, 0.0f, -1000.0f }, + { 270.0f, 0.0f, -1035.0f }, + { 400.0f, 0.0f, -1015.0f }, + { 600.0f, 0.0f, -1015.0f }, + { 800.0f, 0.0f, -960.0f }, + { 1000.0f, 0.0f, -960.0f }, + { 1085.0f, 0.0f, -935.0f }, + { 1165.0f, 0.0f, -935.0f }, + { 1185.0f, 0.0f, -955.0f }, + { 1200.0f, 0.0f, -1050.0f }, + { 1185.0f, 0.0f, -1200.0f }, + { 1120.0f, 0.0f, -1350.0f }, + { 1150.0f, 0.0f, -1500.0f }, + { 1180.0f, 0.0f, -1600.0f }, + { 1180.0f, 0.0f, -1700.0f }, +}; +Vec lbl_1_data_2E24[0x23] = { + { -1400.0f, 0.0f, -1700.0f }, + { -1400.0f, 0.0f, -1600.0f }, + { -1400.0f, 0.0f, -1500.0f }, + { -1360.0f, 0.0f, -1350.0f }, + { -1360.0f, 0.0f, -1200.0f }, + { -1400.0f, 0.0f, -1050.0f }, + { -1400.0f, 0.0f, -880.0f }, + { -1335.0f, 0.0f, -830.0f }, + { -1200.0f, 0.0f, -775.0f }, + { -1100.0f, 0.0f, -775.0f }, + { -700.0f, 0.0f, -775.0f }, + { -600.0f, 0.0f, -775.0f }, + { -400.0f, 0.0f, -840.0f }, + { -260.0f, 0.0f, -850.0f }, + { -190.0f, 0.0f, -850.0f }, + { -140.0f, 0.0f, -860.0f }, + { -80.0f, 0.0f, -885.0f }, + { 60.0f, 0.0f, -885.0f }, + { 110.0f, 0.0f, -880.0f }, + { 150.0f, 0.0f, -870.0f }, + { 190.0f, 0.0f, -865.0f }, + { 270.0f, 0.0f, -865.0f }, + { 400.0f, 0.0f, -850.0f }, + { 600.0f, 0.0f, -850.0f }, + { 800.0f, 0.0f, -800.0f }, + { 1000.0f, 0.0f, -800.0f }, + { 1200.0f, 0.0f, -850.0f }, + { 1340.0f, 0.0f, -850.0f }, + { 1400.0f, 0.0f, -915.0f }, + { 1400.0f, 0.0f, -1050.0f }, + { 1360.0f, 0.0f, -1200.0f }, + { 1360.0f, 0.0f, -1350.0f }, + { 1400.0f, 0.0f, -1500.0f }, + { 1400.0f, 0.0f, -1600.0f }, + { 1400.0f, 0.0f, -1700.0f }, +}; +Vec *lbl_1_data_2FC8[9] = { + lbl_1_data_22B4, + lbl_1_data_2428, + lbl_1_data_259C, + lbl_1_data_2710, + lbl_1_data_2854, + lbl_1_data_2998, + lbl_1_data_2ADC, + lbl_1_data_2C80, + lbl_1_data_2E24, +}; +s32 lbl_1_data_2FEC[3] = { 0x1F, 0x1B, 0x23 }; +Vec lbl_1_data_2FF8[0x37] = { + { -70.0f, 0.0f, 100.0f }, + { -70.0f, 0.0f, -170.0f }, + { -65.0f, 0.0f, -190.0f }, + { -65.0f, 0.0f, -300.0f }, + { -70.0f, 0.0f, -320.0f }, + { -70.0f, 0.0f, -340.0f }, + { -70.0f, 0.0f, -400.0f }, + { -75.0f, 0.0f, -415.0f }, + { -75.0f, 0.0f, -430.0f }, + { -75.0f, 0.0f, -450.0f }, + { -75.0f, 0.0f, -460.0f }, + { -75.0f, 0.0f, -490.0f }, + { -75.0f, 0.0f, -510.0f }, + { -75.0f, 0.0f, -540.0f }, + { -75.0f, 0.0f, -590.0f }, + { -75.0f, 0.0f, -680.0f }, + { -135.0f, 0.0f, -735.0f }, + { -215.0f, 0.0f, -770.0f }, + { -230.0f, 0.0f, -770.0f }, + { -240.0f, 0.0f, -780.0f }, + { -240.0f, 0.0f, -800.0f }, + { -260.0f, 0.0f, -840.0f }, + { -320.0f, 0.0f, -890.0f }, + { -330.0f, 0.0f, -1000.0f }, + { -300.0f, 0.0f, -1100.0f }, + { -225.0f, 0.0f, -1225.0f }, + { -150.0f, 0.0f, -1255.0f }, + { -100.0f, 0.0f, -1300.0f }, + { -5.0f, 0.0f, -1330.0f }, + { 110.0f, 0.0f, -1310.0f }, + { 170.0f, 0.0f, -1285.0f }, + { 230.0f, 0.0f, -1230.0f }, + { 250.0f, 0.0f, -1150.0f }, + { 300.0f, 0.0f, -1100.0f }, + { 320.0f, 0.0f, -1000.0f }, + { 300.0f, 0.0f, -900.0f }, + { 265.0f, 0.0f, -840.0f }, + { 225.0f, 0.0f, -775.0f }, + { 140.0f, 0.0f, -750.0f }, + { 75.0f, 0.0f, -680.0f }, + { 75.0f, 0.0f, -590.0f }, + { 75.0f, 0.0f, -540.0f }, + { 75.0f, 0.0f, -510.0f }, + { 75.0f, 0.0f, -490.0f }, + { 75.0f, 0.0f, -460.0f }, + { 75.0f, 0.0f, -450.0f }, + { 75.0f, 0.0f, -430.0f }, + { 75.0f, 0.0f, -415.0f }, + { 70.0f, 0.0f, -400.0f }, + { 70.0f, 0.0f, -340.0f }, + { 70.0f, 0.0f, -320.0f }, + { 65.0f, 0.0f, -300.0f }, + { 65.0f, 0.0f, -190.0f }, + { 70.0f, 0.0f, -170.0f }, + { 70.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_328C[0x37] = { + { -200.0f, 0.0f, 100.0f }, + { -200.0f, 0.0f, -170.0f }, + { -200.0f, 0.0f, -190.0f }, + { -280.0f, 0.0f, -285.0f }, + { -290.0f, 0.0f, -305.0f }, + { -290.0f, 0.0f, -325.0f }, + { -300.0f, 0.0f, -360.0f }, + { -310.0f, 0.0f, -375.0f }, + { -310.0f, 0.0f, -390.0f }, + { -315.0f, 0.0f, -410.0f }, + { -315.0f, 0.0f, -420.0f }, + { -310.0f, 0.0f, -450.0f }, + { -305.0f, 0.0f, -475.0f }, + { -300.0f, 0.0f, -500.0f }, + { -330.0f, 0.0f, -515.0f }, + { -370.0f, 0.0f, -525.0f }, + { -405.0f, 0.0f, -550.0f }, + { -475.0f, 0.0f, -600.0f }, + { -510.0f, 0.0f, -620.0f }, + { -535.0f, 0.0f, -645.0f }, + { -540.0f, 0.0f, -685.0f }, + { -565.0f, 0.0f, -750.0f }, + { -630.0f, 0.0f, -860.0f }, + { -630.0f, 0.0f, -1000.0f }, + { -550.0f, 0.0f, -1195.0f }, + { -375.0f, 0.0f, -1395.0f }, + { -205.0f, 0.0f, -1430.0f }, + { -120.0f, 0.0f, -1460.0f }, + { 0.0f, 0.0f, -1500.0f }, + { 165.0f, 0.0f, -1485.0f }, + { 255.0f, 0.0f, -1445.0f }, + { 340.0f, 0.0f, -1345.0f }, + { 435.0f, 0.0f, -1270.0f }, + { 530.0f, 0.0f, -1175.0f }, + { 615.0f, 0.0f, -1000.0f }, + { 585.0f, 0.0f, -805.0f }, + { 540.0f, 0.0f, -670.0f }, + { 480.0f, 0.0f, -570.0f }, + { 430.0f, 0.0f, -555.0f }, + { 350.0f, 0.0f, -550.0f }, + { 340.0f, 0.0f, -530.0f }, + { 335.0f, 0.0f, -510.0f }, + { 320.0f, 0.0f, -480.0f }, + { 320.0f, 0.0f, -460.0f }, + { 325.0f, 0.0f, -430.0f }, + { 325.0f, 0.0f, -420.0f }, + { 320.0f, 0.0f, -400.0f }, + { 320.0f, 0.0f, -385.0f }, + { 310.0f, 0.0f, -370.0f }, + { 290.0f, 0.0f, -335.0f }, + { 290.0f, 0.0f, -315.0f }, + { 280.0f, 0.0f, -295.0f }, + { 200.0f, 0.0f, -190.0f }, + { 200.0f, 0.0f, -170.0f }, + { 200.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_3520[0x37] = { + { 0.0f, 0.0f, 100.0f }, + { 0.0f, 0.0f, -170.0f }, + { 0.0f, 0.0f, -190.0f }, + { 0.0f, 0.0f, -300.0f }, + { 0.0f, 0.0f, -320.0f }, + { 0.0f, 0.0f, -340.0f }, + { 0.0f, 0.0f, -400.0f }, + { 0.0f, 0.0f, -415.0f }, + { 0.0f, 0.0f, -430.0f }, + { 0.0f, 0.0f, -450.0f }, + { 0.0f, 0.0f, -460.0f }, + { 0.0f, 0.0f, -490.0f }, + { 0.0f, 0.0f, -510.0f }, + { 0.0f, 0.0f, -540.0f }, + { 0.0f, 0.0f, -590.0f }, + { 0.0f, 0.0f, -680.0f }, + { -68.85f, 0.0f, -864.85f }, + { -109.65f, 0.0f, -882.7f }, + { -117.3f, 0.0f, -882.7f }, + { -122.4f, 0.0f, -887.8f }, + { -122.4f, 0.0f, -898.0f }, + { -132.6f, 0.0f, -918.4f }, + { -163.2f, 0.0f, -943.9f }, + { -168.3f, 0.0f, -1000.0f }, + { -153.0f, 0.0f, -1051.0f }, + { -114.75f, 0.0f, -1114.75f }, + { -76.5f, 0.0f, -1130.05f }, + { -51.0f, 0.0f, -1153.0f }, + { -2.55f, 0.0f, -1168.3f }, + { 56.1f, 0.0f, -1158.1f }, + { 86.7f, 0.0f, -1145.35f }, + { 117.3f, 0.0f, -1117.3f }, + { 127.5f, 0.0f, -1076.5f }, + { 153.0f, 0.0f, -1051.0f }, + { 163.2f, 0.0f, -1000.0f }, + { 153.0f, 0.0f, -949.0f }, + { 135.15f, 0.0f, -918.4f }, + { 114.75f, 0.0f, -885.25f }, + { 71.4f, 0.0f, -872.5f }, + { 0.0f, 0.0f, -680.0f }, + { 0.0f, 0.0f, -590.0f }, + { 0.0f, 0.0f, -540.0f }, + { 0.0f, 0.0f, -510.0f }, + { 0.0f, 0.0f, -490.0f }, + { 0.0f, 0.0f, -460.0f }, + { 0.0f, 0.0f, -450.0f }, + { 0.0f, 0.0f, -430.0f }, + { 0.0f, 0.0f, -415.0f }, + { 0.0f, 0.0f, -400.0f }, + { 0.0f, 0.0f, -340.0f }, + { 0.0f, 0.0f, -320.0f }, + { 0.0f, 0.0f, -300.0f }, + { 0.0f, 0.0f, -190.0f }, + { 0.0f, 0.0f, -170.0f }, + { 0.0f, 0.0f, 100.0f }, +}; +Vec *lbl_1_data_37B4[3] = { lbl_1_data_2FF8, lbl_1_data_328C, lbl_1_data_3520 }; +s32 lbl_1_data_37C0 = 0x37; +Vec lbl_1_data_37C4[0x22] = { + { -70.0f, 0.0f, 100.0f }, + { -70.0f, 0.0f, 0.0f }, + { -70.0f, 0.0f, -190.0f }, + { -60.0f, 0.0f, -210.0f }, + { -40.0f, 0.0f, -220.0f }, + { 370.0f, 0.0f, -220.0f }, + { 390.0f, 0.0f, -240.0f }, + { 390.0f, 0.0f, -660.0f }, + { 370.0f, 0.0f, -680.0f }, + { 250.0f, 0.0f, -680.0f }, + { 230.0f, 0.0f, -660.0f }, + { 230.0f, 0.0f, -360.0f }, + { 220.0f, 0.0f, -340.0f }, + { 200.0f, 0.0f, -330.0f }, + { -440.0f, 0.0f, -330.0f }, + { -460.0f, 0.0f, -340.0f }, + { -470.0f, 0.0f, -360.0f }, + { -470.0f, 0.0f, -690.0f }, + { -460.0f, 0.0f, -710.0f }, + { -440.0f, 0.0f, -720.0f }, + { -240.0f, 0.0f, -720.0f }, + { -220.0f, 0.0f, -740.0f }, + { -220.0f, 0.0f, -860.0f }, + { -240.0f, 0.0f, -880.0f }, + { -430.0f, 0.0f, -880.0f }, + { -460.0f, 0.0f, -890.0f }, + { -470.0f, 0.0f, -920.0f }, + { -470.0f, 0.0f, -1240.0f }, + { -460.0f, 0.0f, -1270.0f }, + { -430.0f, 0.0f, -1280.0f }, + { -90.0f, 0.0f, -1280.0f }, + { -70.0f, 0.0f, -1300.0f }, + { -70.0f, 0.0f, -1400.0f }, + { -70.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_395C[0x22] = { + { -200.0f, 0.0f, 100.0f }, + { -200.0f, 0.0f, 0.0f }, + { -200.0f, 0.0f, -230.0f }, + { -170.0f, 0.0f, -260.0f }, + { -125.0f, 0.0f, -280.0f }, + { 330.0f, 0.0f, -280.0f }, + { 330.0f, 0.0f, -280.0f }, + { 330.0f, 0.0f, -545.0f }, + { 320.0f, 0.0f, -555.0f }, + { 290.0f, 0.0f, -555.0f }, + { 280.0f, 0.0f, -545.0f }, + { 280.0f, 0.0f, -280.0f }, + { 280.0f, 0.0f, -280.0f }, + { 280.0f, 0.0f, -280.0f }, + { -550.0f, 0.0f, -170.0f }, + { -640.0f, 0.0f, -170.0f }, + { -660.0f, 0.0f, -225.0f }, + { -660.0f, 0.0f, -730.0f }, + { -620.0f, 0.0f, -790.0f }, + { -540.0f, 0.0f, -810.0f }, + { -350.0f, 0.0f, -810.0f }, + { -340.0f, 0.0f, -810.0f }, + { -340.0f, 0.0f, -790.0f }, + { -350.0f, 0.0f, -790.0f }, + { -530.0f, 0.0f, -790.0f }, + { -570.0f, 0.0f, -810.0f }, + { -570.0f, 0.0f, -850.0f }, + { -570.0f, 0.0f, -1300.0f }, + { -550.0f, 0.0f, -1360.0f }, + { -490.0f, 0.0f, -1380.0f }, + { -240.0f, 0.0f, -1380.0f }, + { -220.0f, 0.0f, -1380.0f }, + { -220.0f, 0.0f, -1400.0f }, + { -220.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_3AF4[0x22] = { + { 0.0f, 0.0f, 100.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, -125.0f }, + { 5.0f, 0.0f, -145.0f }, + { 25.0f, 0.0f, -150.0f }, + { 435.0f, 0.0f, -150.0f }, + { 460.0f, 0.0f, -175.0f }, + { 460.0f, 0.0f, -725.0f }, + { 435.0f, 0.0f, -750.0f }, + { 185.0f, 0.0f, -750.0f }, + { 160.0f, 0.0f, -725.0f }, + { 160.0f, 0.0f, -425.0f }, + { 155.0f, 0.0f, -405.0f }, + { 135.0f, 0.0f, -400.0f }, + { -375.0f, 0.0f, -400.0f }, + { -395.0f, 0.0f, -405.0f }, + { -400.0f, 0.0f, -425.0f }, + { -400.0f, 0.0f, -625.0f }, + { -395.0f, 0.0f, -645.0f }, + { -375.0f, 0.0f, -650.0f }, + { -175.0f, 0.0f, -650.0f }, + { -150.0f, 0.0f, -675.0f }, + { -150.0f, 0.0f, -920.0f }, + { -180.0f, 0.0f, -950.0f }, + { -370.0f, 0.0f, -950.0f }, + { -395.0f, 0.0f, -955.0f }, + { -400.0f, 0.0f, -980.0f }, + { -400.0f, 0.0f, -1180.0f }, + { -395.0f, 0.0f, -1205.0f }, + { -370.0f, 0.0f, -1210.0f }, + { -30.0f, 0.0f, -1210.0f }, + { 0.0f, 0.0f, -1240.0f }, + { 0.0f, 0.0f, -1400.0f }, + { 0.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_3C8C[0x22] = { + { 70.0f, 0.0f, -1500.0f }, + { 70.0f, 0.0f, -1400.0f }, + { 70.0f, 0.0f, -1180.0f }, + { 60.0f, 0.0f, -1150.0f }, + { 30.0f, 0.0f, -1140.0f }, + { -310.0f, 0.0f, -1140.0f }, + { -330.0f, 0.0f, -1120.0f }, + { -330.0f, 0.0f, -1040.0f }, + { -310.0f, 0.0f, -1020.0f }, + { -120.0f, 0.0f, -1020.0f }, + { -90.0f, 0.0f, -1010.0f }, + { -80.0f, 0.0f, -980.0f }, + { -80.0f, 0.0f, -610.0f }, + { -90.0f, 0.0f, -590.0f }, + { -110.0f, 0.0f, -580.0f }, + { -310.0f, 0.0f, -580.0f }, + { -330.0f, 0.0f, -560.0f }, + { -330.0f, 0.0f, -490.0f }, + { -310.0f, 0.0f, -470.0f }, + { 70.0f, 0.0f, -470.0f }, + { 90.0f, 0.0f, -490.0f }, + { 90.0f, 0.0f, -790.0f }, + { 100.0f, 0.0f, -810.0f }, + { 120.0f, 0.0f, -820.0f }, + { 490.0f, 0.0f, -820.0f }, + { 520.0f, 0.0f, -810.0f }, + { 530.0f, 0.0f, -790.0f }, + { 530.0f, 0.0f, -110.0f }, + { 520.0f, 0.0f, -90.0f }, + { 500.0f, 0.0f, -80.0f }, + { 90.0f, 0.0f, -80.0f }, + { 70.0f, 0.0f, -60.0f }, + { 70.0f, 0.0f, 0.0f }, + { 70.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_3E24[0x22] = { + { 220.0f, 0.0f, -1500.0f }, + { 220.0f, 0.0f, -1400.0f }, + { 220.0f, 0.0f, -1090.0f }, + { 200.0f, 0.0f, -1065.0f }, + { 160.0f, 0.0f, -1065.0f }, + { -210.0f, 0.0f, -1065.0f }, + { -230.0f, 0.0f, -1065.0f }, + { -230.0f, 0.0f, -1090.0f }, + { -210.0f, 0.0f, -1090.0f }, + { -45.0f, 0.0f, -1090.0f }, + { -10.0f, 0.0f, -1080.0f }, + { 10.0f, 0.0f, -1050.0f }, + { 10.0f, 0.0f, -585.0f }, + { -10.0f, 0.0f, -550.0f }, + { -35.0f, 0.0f, -540.0f }, + { -235.0f, 0.0f, -540.0f }, + { -255.0f, 0.0f, -540.0f }, + { -255.0f, 0.0f, -510.0f }, + { -235.0f, 0.0f, -510.0f }, + { 10.0f, 0.0f, -510.0f }, + { 20.0f, 0.0f, -520.0f }, + { 20.0f, 0.0f, -850.0f }, + { 40.0f, 0.0f, -890.0f }, + { 80.0f, 0.0f, -910.0f }, + { 590.0f, 0.0f, -910.0f }, + { 655.0f, 0.0f, -865.0f }, + { 695.0f, 0.0f, -790.0f }, + { 695.0f, 0.0f, -70.0f }, + { 670.0f, 0.0f, -30.0f }, + { 635.0f, 0.0f, 0.0f }, + { 245.0f, 0.0f, 0.0f }, + { 210.0f, 0.0f, 20.0f }, + { 200.0f, 0.0f, 50.0f }, + { 200.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_3FBC[0x22] = { + { 0.0f, 0.0f, -1500.0f }, + { 0.0f, 0.0f, -1400.0f }, + { 0.0f, 0.0f, -1240.0f }, + { -5.0f, 0.0f, -1215.0f }, + { -30.0f, 0.0f, -1210.0f }, + { -370.0f, 0.0f, -1210.0f }, + { -400.0f, 0.0f, -1180.0f }, + { -400.0f, 0.0f, -980.0f }, + { -370.0f, 0.0f, -950.0f }, + { -180.0f, 0.0f, -950.0f }, + { -155.0f, 0.0f, -945.0f }, + { -150.0f, 0.0f, -920.0f }, + { -150.0f, 0.0f, -675.0f }, + { -155.0f, 0.0f, -655.0f }, + { -175.0f, 0.0f, -650.0f }, + { -375.0f, 0.0f, -650.0f }, + { -400.0f, 0.0f, -625.0f }, + { -400.0f, 0.0f, -425.0f }, + { -375.0f, 0.0f, -400.0f }, + { 135.0f, 0.0f, -400.0f }, + { 160.0f, 0.0f, -425.0f }, + { 160.0f, 0.0f, -725.0f }, + { 165.0f, 0.0f, -745.0f }, + { 185.0f, 0.0f, -750.0f }, + { 435.0f, 0.0f, -750.0f }, + { 455.0f, 0.0f, -745.0f }, + { 460.0f, 0.0f, -725.0f }, + { 460.0f, 0.0f, -175.0f }, + { 455.0f, 0.0f, -155.0f }, + { 435.0f, 0.0f, -150.0f }, + { 25.0f, 0.0f, -150.0f }, + { 0.0f, 0.0f, -125.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 100.0f }, +}; +Vec *lbl_1_data_4154[6] = { + lbl_1_data_37C4, + lbl_1_data_395C, + lbl_1_data_3AF4, + lbl_1_data_3C8C, + lbl_1_data_3E24, + lbl_1_data_3FBC, +}; +s32 lbl_1_data_416C[2] = { 0x22, 0x22 }; +Vec lbl_1_data_4174[0x2C] = { + { -70.0f, 0.0f, 100.0f }, + { -70.0f, 0.0f, 0.0f }, + { -70.0f, 0.0f, -70.0f }, + { -90.0f, 0.0f, -90.0f }, + { -440.0f, 0.0f, -90.0f }, + { -460.0f, 0.0f, -100.0f }, + { -470.0f, 0.0f, -120.0f }, + { -470.0f, 0.0f, -490.0f }, + { -460.0f, 0.0f, -510.0f }, + { -440.0f, 0.0f, -520.0f }, + { 60.0f, 0.0f, -520.0f }, + { 80.0f, 0.0f, -540.0f }, + { 80.0f, 0.0f, -740.0f }, + { 90.0f, 0.0f, -760.0f }, + { 110.0f, 0.0f, -770.0f }, + { 310.0f, 0.0f, -770.0f }, + { 330.0f, 0.0f, -790.0f }, + { 330.0f, 0.0f, -860.0f }, + { 310.0f, 0.0f, -880.0f }, + { -10.0f, 0.0f, -880.0f }, + { -30.0f, 0.0f, -860.0f }, + { -30.0f, 0.0f, -710.0f }, + { -40.0f, 0.0f, -690.0f }, + { -60.0f, 0.0f, -680.0f }, + { -440.0f, 0.0f, -680.0f }, + { -460.0f, 0.0f, -690.0f }, + { -470.0f, 0.0f, -710.0f }, + { -470.0f, 0.0f, -760.0f }, + { -490.0f, 0.0f, -780.0f }, + { -540.0f, 0.0f, -780.0f }, + { -560.0f, 0.0f, -790.0f }, + { -570.0f, 0.0f, -810.0f }, + { -570.0f, 0.0f, -1190.0f }, + { -560.0f, 0.0f, -1210.0f }, + { -540.0f, 0.0f, -1220.0f }, + { -490.0f, 0.0f, -1220.0f }, + { -470.0f, 0.0f, -1240.0f }, + { -470.0f, 0.0f, -1290.0f }, + { -460.0f, 0.0f, -1310.0f }, + { -440.0f, 0.0f, -1320.0f }, + { -90.0f, 0.0f, -1320.0f }, + { -70.0f, 0.0f, -1340.0f }, + { -70.0f, 0.0f, -1400.0f }, + { -70.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_4384[0x2C] = { + { -220.0f, 0.0f, 100.0f }, + { -250.0f, 0.0f, 30.0f }, + { -250.0f, 0.0f, 30.0f }, + { -250.0f, 0.0f, 30.0f }, + { -570.0f, 0.0f, 30.0f }, + { -640.0f, 0.0f, 20.0f }, + { -670.0f, 0.0f, -30.0f }, + { -670.0f, 0.0f, -510.0f }, + { -640.0f, 0.0f, -560.0f }, + { -590.0f, 0.0f, -580.0f }, + { 25.0f, 0.0f, -580.0f }, + { 35.0f, 0.0f, -590.0f }, + { 35.0f, 0.0f, -775.0f }, + { 35.0f, 0.0f, -815.0f }, + { 65.0f, 0.0f, -815.0f }, + { 240.0f, 0.0f, -815.0f }, + { 255.0f, 0.0f, -820.0f }, + { 255.0f, 0.0f, -830.0f }, + { 240.0f, 0.0f, -835.0f }, + { 25.0f, 0.0f, -835.0f }, + { 15.0f, 0.0f, -825.0f }, + { 15.0f, 0.0f, -670.0f }, + { 15.0f, 0.0f, -625.0f }, + { -25.0f, 0.0f, -615.0f }, + { -515.0f, 0.0f, -585.0f }, + { -540.0f, 0.0f, -590.0f }, + { -555.0f, 0.0f, -615.0f }, + { -580.0f, 0.0f, -665.0f }, + { -595.0f, 0.0f, -680.0f }, + { -650.0f, 0.0f, -675.0f }, + { -685.0f, 0.0f, -685.0f }, + { -700.0f, 0.0f, -720.0f }, + { -700.0f, 0.0f, -1270.0f }, + { -680.0f, 0.0f, -1305.0f }, + { -645.0f, 0.0f, -1325.0f }, + { -605.0f, 0.0f, -1320.0f }, + { -585.0f, 0.0f, -1335.0f }, + { -590.0f, 0.0f, -1360.0f }, + { -570.0f, 0.0f, -1410.0f }, + { -510.0f, 0.0f, -1430.0f }, + { -230.0f, 0.0f, -1430.0f }, + { -200.0f, 0.0f, -1430.0f }, + { -200.0f, 0.0f, -1450.0f }, + { -200.0f, 0.0f, -1505.0f }, +}; +Vec lbl_1_data_4594[0x2C] = { + { 0.0f, 0.0f, 100.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, -135.0f }, + { -25.0f, 0.0f, -160.0f }, + { -375.0f, 0.0f, -160.0f }, + { -395.0f, 0.0f, -165.0f }, + { -400.0f, 0.0f, -190.0f }, + { -400.0f, 0.0f, -425.0f }, + { -395.0f, 0.0f, -445.0f }, + { -375.0f, 0.0f, -450.0f }, + { 125.0f, 0.0f, -450.0f }, + { 150.0f, 0.0f, -475.0f }, + { 150.0f, 0.0f, -675.0f }, + { 155.0f, 0.0f, -695.0f }, + { 175.0f, 0.0f, -700.0f }, + { 375.0f, 0.0f, -700.0f }, + { 400.0f, 0.0f, -725.0f }, + { 400.0f, 0.0f, -925.0f }, + { 375.0f, 0.0f, -950.0f }, + { -75.0f, 0.0f, -950.0f }, + { -100.0f, 0.0f, -925.0f }, + { -100.0f, 0.0f, -775.0f }, + { -105.0f, 0.0f, -755.0f }, + { -125.0f, 0.0f, -750.0f }, + { -375.0f, 0.0f, -750.0f }, + { -395.0f, 0.0f, -755.0f }, + { -400.0f, 0.0f, -775.0f }, + { -400.0f, 0.0f, -825.0f }, + { -425.0f, 0.0f, -850.0f }, + { -475.0f, 0.0f, -850.0f }, + { -495.0f, 0.0f, -855.0f }, + { -500.0f, 0.0f, -875.0f }, + { -500.0f, 0.0f, -1125.0f }, + { -495.0f, 0.0f, -1145.0f }, + { -475.0f, 0.0f, -1150.0f }, + { -425.0f, 0.0f, -1150.0f }, + { -400.0f, 0.0f, -1175.0f }, + { -400.0f, 0.0f, -1225.0f }, + { -395.0f, 0.0f, -1245.0f }, + { -375.0f, 0.0f, -1250.0f }, + { -25.0f, 0.0f, -1250.0f }, + { 0.0f, 0.0f, -1275.0f }, + { 0.0f, 0.0f, -1400.0f }, + { 0.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_47A4[0x2C] = { + { 70.0f, 0.0f, -1500.0f }, + { 70.0f, 0.0f, -1400.0f }, + { 70.0f, 0.0f, -1210.0f }, + { 60.0f, 0.0f, -1190.0f }, + { 40.0f, 0.0f, -1180.0f }, + { -310.0f, 0.0f, -1180.0f }, + { -330.0f, 0.0f, -1160.0f }, + { -330.0f, 0.0f, -1110.0f }, + { -340.0f, 0.0f, -1090.0f }, + { -360.0f, 0.0f, -1080.0f }, + { -410.0f, 0.0f, -1080.0f }, + { -430.0f, 0.0f, -1060.0f }, + { -430.0f, 0.0f, -940.0f }, + { -410.0f, 0.0f, -920.0f }, + { -360.0f, 0.0f, -920.0f }, + { -340.0f, 0.0f, -910.0f }, + { -330.0f, 0.0f, -890.0f }, + { -330.0f, 0.0f, -840.0f }, + { -310.0f, 0.0f, -820.0f }, + { -190.0f, 0.0f, -820.0f }, + { -170.0f, 0.0f, -840.0f }, + { -170.0f, 0.0f, -990.0f }, + { -160.0f, 0.0f, -1010.0f }, + { -140.0f, 0.0f, -1020.0f }, + { 440.0f, 0.0f, -1020.0f }, + { 460.0f, 0.0f, -1010.0f }, + { 470.0f, 0.0f, -990.0f }, + { 470.0f, 0.0f, -660.0f }, + { 460.0f, 0.0f, -640.0f }, + { 440.0f, 0.0f, -630.0f }, + { 240.0f, 0.0f, -630.0f }, + { 220.0f, 0.0f, -610.0f }, + { 220.0f, 0.0f, -410.0f }, + { 210.0f, 0.0f, -390.0f }, + { 190.0f, 0.0f, -380.0f }, + { -310.0f, 0.0f, -380.0f }, + { -325.0f, 0.0f, -360.0f }, + { -330.0f, 0.0f, -250.0f }, + { -310.0f, 0.0f, -230.0f }, + { 40.0f, 0.0f, -230.0f }, + { 60.0f, 0.0f, -220.0f }, + { 70.0f, 0.0f, -200.0f }, + { 70.0f, 0.0f, 0.0f }, + { 70.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_49B4[0x2C] = { + { 200.0f, 0.0f, -1500.0f }, + { 200.0f, 0.0f, -1400.0f }, + { 200.0f, 0.0f, -1145.0f }, + { 195.0f, 0.0f, -1115.0f }, + { 170.0f, 0.0f, -1095.0f }, + { -225.0f, 0.0f, -1095.0f }, + { -245.0f, 0.0f, -1080.0f }, + { -260.0f, 0.0f, -1060.0f }, + { -260.0f, 0.0f, -1025.0f }, + { -295.0f, 0.0f, -1010.0f }, + { -360.0f, 0.0f, -1010.0f }, + { -370.0f, 0.0f, -1010.0f }, + { -370.0f, 0.0f, -995.0f }, + { -360.0f, 0.0f, -995.0f }, + { -290.0f, 0.0f, -995.0f }, + { -270.0f, 0.0f, -985.0f }, + { -260.0f, 0.0f, -960.0f }, + { -260.0f, 0.0f, -910.0f }, + { -255.0f, 0.0f, -895.0f }, + { -240.0f, 0.0f, -895.0f }, + { -235.0f, 0.0f, -910.0f }, + { -235.0f, 0.0f, -1040.0f }, + { -225.0f, 0.0f, -1075.0f }, + { -200.0f, 0.0f, -1090.0f }, + { 590.0f, 0.0f, -1090.0f }, + { 640.0f, 0.0f, -1090.0f }, + { 670.0f, 0.0f, -1060.0f }, + { 670.0f, 0.0f, -520.0f }, + { 650.0f, 0.0f, -480.0f }, + { 590.0f, 0.0f, -460.0f }, + { 370.0f, 0.0f, -460.0f }, + { 350.0f, 0.0f, -445.0f }, + { 350.0f, 0.0f, -360.0f }, + { 305.0f, 0.0f, -305.0f }, + { 220.0f, 0.0f, -305.0f }, + { -200.0f, 0.0f, -305.0f }, + { -215.0f, 0.0f, -305.0f }, + { -215.0f, 0.0f, -290.0f }, + { -200.0f, 0.0f, -290.0f }, + { 145.0f, 0.0f, -295.0f }, + { 200.0f, 0.0f, -285.0f }, + { 220.0f, 0.0f, -245.0f }, + { 220.0f, 0.0f, 0.0f }, + { 220.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_4BC4[0x2C] = { + { 0.0f, 0.0f, -1500.0f }, + { 0.0f, 0.0f, -1400.0f }, + { 0.0f, 0.0f, -1275.0f }, + { -5.0f, 0.0f, -1255.0f }, + { -25.0f, 0.0f, -1250.0f }, + { -375.0f, 0.0f, -1250.0f }, + { -400.0f, 0.0f, -1225.0f }, + { -400.0f, 0.0f, -1175.0f }, + { -405.0f, 0.0f, -1155.0f }, + { -425.0f, 0.0f, -1150.0f }, + { -475.0f, 0.0f, -1150.0f }, + { -500.0f, 0.0f, -1125.0f }, + { -500.0f, 0.0f, -875.0f }, + { -475.0f, 0.0f, -850.0f }, + { -425.0f, 0.0f, -850.0f }, + { -405.0f, 0.0f, -845.0f }, + { -400.0f, 0.0f, -825.0f }, + { -400.0f, 0.0f, -775.0f }, + { -375.0f, 0.0f, -750.0f }, + { -125.0f, 0.0f, -750.0f }, + { -100.0f, 0.0f, -775.0f }, + { -100.0f, 0.0f, -925.0f }, + { -95.0f, 0.0f, -945.0f }, + { -75.0f, 0.0f, -950.0f }, + { 375.0f, 0.0f, -950.0f }, + { 395.0f, 0.0f, -945.0f }, + { 400.0f, 0.0f, -925.0f }, + { 400.0f, 0.0f, -725.0f }, + { 395.0f, 0.0f, -705.0f }, + { 375.0f, 0.0f, -700.0f }, + { 175.0f, 0.0f, -700.0f }, + { 150.0f, 0.0f, -675.0f }, + { 150.0f, 0.0f, -475.0f }, + { 145.0f, 0.0f, -455.0f }, + { 125.0f, 0.0f, -450.0f }, + { -375.0f, 0.0f, -450.0f }, + { -400.0f, 0.0f, -425.0f }, + { -400.0f, 0.0f, -190.0f }, + { -375.0f, 0.0f, -160.0f }, + { -25.0f, 0.0f, -160.0f }, + { -5.0f, 0.0f, -155.0f }, + { 0.0f, 0.0f, -135.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 100.0f }, +}; +Vec *lbl_1_data_4DD4[6] = { + lbl_1_data_4174, + lbl_1_data_4384, + lbl_1_data_4594, + lbl_1_data_47A4, + lbl_1_data_49B4, + lbl_1_data_4BC4, +}; +s32 lbl_1_data_4DEC[2] = { 0x2C, 0x2C }; +Vec lbl_1_data_4DF4[0x27] = { + { -70.0f, 0.0f, 100.0f }, + { -70.0f, 0.0f, 0.0f }, + { -70.0f, 0.0f, -60.0f }, + { -90.0f, 0.0f, -80.0f }, + { -340.0f, 0.0f, -80.0f }, + { -360.0f, 0.0f, -90.0f }, + { -370.0f, 0.0f, -110.0f }, + { -370.0f, 0.0f, -690.0f }, + { -360.0f, 0.0f, -710.0f }, + { -340.0f, 0.0f, -720.0f }, + { 40.0f, 0.0f, -720.0f }, + { 60.0f, 0.0f, -710.0f }, + { 70.0f, 0.0f, -690.0f }, + { 70.0f, 0.0f, -540.0f }, + { 90.0f, 0.0f, -520.0f }, + { 240.0f, 0.0f, -520.0f }, + { 260.0f, 0.0f, -510.0f }, + { 270.0f, 0.0f, -490.0f }, + { 270.0f, 0.0f, -340.0f }, + { 290.0f, 0.0f, -320.0f }, + { 460.0f, 0.0f, -320.0f }, + { 480.0f, 0.0f, -340.0f }, + { 480.0f, 0.0f, -560.0f }, + { 460.0f, 0.0f, -580.0f }, + { 410.0f, 0.0f, -580.0f }, + { 390.0f, 0.0f, -590.0f }, + { 380.0f, 0.0f, -610.0f }, + { 380.0f, 0.0f, -860.0f }, + { 360.0f, 0.0f, -880.0f }, + { -340.0f, 0.0f, -880.0f }, + { -360.0f, 0.0f, -890.0f }, + { -370.0f, 0.0f, -910.0f }, + { -370.0f, 0.0f, -1290.0f }, + { -360.0f, 0.0f, -1310.0f }, + { -340.0f, 0.0f, -1320.0f }, + { -90.0f, 0.0f, -1320.0f }, + { -70.0f, 0.0f, -1340.0f }, + { -70.0f, 0.0f, -1400.0f }, + { -70.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_4FC8[0x27] = { + { -200.0f, 0.0f, 100.0f }, + { -200.0f, 0.0f, 60.0f }, + { -200.0f, 0.0f, 40.0f }, + { -220.0f, 0.0f, 40.0f }, + { -510.0f, 0.0f, 40.0f }, + { -520.0f, 0.0f, 30.0f }, + { -530.0f, 0.0f, 20.0f }, + { -530.0f, 0.0f, -700.0f }, + { -515.0f, 0.0f, -755.0f }, + { -465.0f, 0.0f, -790.0f }, + { 160.0f, 0.0f, -790.0f }, + { 180.0f, 0.0f, -780.0f }, + { 190.0f, 0.0f, -760.0f }, + { 190.0f, 0.0f, -650.0f }, + { 205.0f, 0.0f, -625.0f }, + { 285.0f, 0.0f, -580.0f }, + { 320.0f, 0.0f, -570.0f }, + { 325.0f, 0.0f, -535.0f }, + { 335.0f, 0.0f, -400.0f }, + { 345.0f, 0.0f, -385.0f }, + { 390.0f, 0.0f, -385.0f }, + { 400.0f, 0.0f, -395.0f }, + { 400.0f, 0.0f, -485.0f }, + { 390.0f, 0.0f, -495.0f }, + { 345.0f, 0.0f, -520.0f }, + { 330.0f, 0.0f, -530.0f }, + { 330.0f, 0.0f, -570.0f }, + { 290.0f, 0.0f, -775.0f }, + { 270.0f, 0.0f, -800.0f }, + { -440.0f, 0.0f, -800.0f }, + { -480.0f, 0.0f, -830.0f }, + { -500.0f, 0.0f, -865.0f }, + { -500.0f, 0.0f, -1400.0f }, + { -480.0f, 0.0f, -1430.0f }, + { -440.0f, 0.0f, -1430.0f }, + { -220.0f, 0.0f, -1430.0f }, + { -205.0f, 0.0f, -1440.0f }, + { -200.0f, 0.0f, -1450.0f }, + { -200.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_519C[0x27] = { + { 0.0f, 0.0f, 100.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, -125.0f }, + { -25.0f, 0.0f, -150.0f }, + { -275.0f, 0.0f, -150.0f }, + { -295.0f, 0.0f, -155.0f }, + { -300.0f, 0.0f, -175.0f }, + { -300.0f, 0.0f, -625.0f }, + { -295.0f, 0.0f, -645.0f }, + { -275.0f, 0.0f, -650.0f }, + { -25.0f, 0.0f, -650.0f }, + { -5.0f, 0.0f, -645.0f }, + { 0.0f, 0.0f, -625.0f }, + { 0.0f, 0.0f, -475.0f }, + { 25.0f, 0.0f, -450.0f }, + { 175.0f, 0.0f, -450.0f }, + { 195.0f, 0.0f, -445.0f }, + { 200.0f, 0.0f, -425.0f }, + { 200.0f, 0.0f, -275.0f }, + { 225.0f, 0.0f, -250.0f }, + { 525.0f, 0.0f, -250.0f }, + { 550.0f, 0.0f, -275.0f }, + { 550.0f, 0.0f, -625.0f }, + { 525.0f, 0.0f, -650.0f }, + { 475.0f, 0.0f, -650.0f }, + { 455.0f, 0.0f, -655.0f }, + { 450.0f, 0.0f, -675.0f }, + { 450.0f, 0.0f, -925.0f }, + { 425.0f, 0.0f, -950.0f }, + { -275.0f, 0.0f, -950.0f }, + { -295.0f, 0.0f, -955.0f }, + { -300.0f, 0.0f, -975.0f }, + { -300.0f, 0.0f, -1225.0f }, + { -295.0f, 0.0f, -1245.0f }, + { -275.0f, 0.0f, -1250.0f }, + { -25.0f, 0.0f, -1250.0f }, + { 0.0f, 0.0f, -1275.0f }, + { 0.0f, 0.0f, -1400.0f }, + { 0.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_5370[0x27] = { + { 70.0f, 0.0f, -1500.0f }, + { 70.0f, 0.0f, -1400.0f }, + { 70.0f, 0.0f, -1210.0f }, + { 60.0f, 0.0f, -1190.0f }, + { 40.0f, 0.0f, -1180.0f }, + { -210.0f, 0.0f, -1180.0f }, + { -230.0f, 0.0f, -1160.0f }, + { -230.0f, 0.0f, -1040.0f }, + { -210.0f, 0.0f, -1020.0f }, + { 490.0f, 0.0f, -1020.0f }, + { 510.0f, 0.0f, -1010.0f }, + { 520.0f, 0.0f, -990.0f }, + { 520.0f, 0.0f, -740.0f }, + { 540.0f, 0.0f, -720.0f }, + { 590.0f, 0.0f, -720.0f }, + { 610.0f, 0.0f, -710.0f }, + { 620.0f, 0.0f, -690.0f }, + { 620.0f, 0.0f, -210.0f }, + { 610.0f, 0.0f, -190.0f }, + { 590.0f, 0.0f, -180.0f }, + { 160.0f, 0.0f, -180.0f }, + { 140.0f, 0.0f, -190.0f }, + { 130.0f, 0.0f, -210.0f }, + { 130.0f, 0.0f, -360.0f }, + { 110.0f, 0.0f, -380.0f }, + { -40.0f, 0.0f, -380.0f }, + { -60.0f, 0.0f, -390.0f }, + { -70.0f, 0.0f, -410.0f }, + { -70.0f, 0.0f, -560.0f }, + { -90.0f, 0.0f, -580.0f }, + { -210.0f, 0.0f, -580.0f }, + { -230.0f, 0.0f, -560.0f }, + { -230.0f, 0.0f, -240.0f }, + { -210.0f, 0.0f, -220.0f }, + { 40.0f, 0.0f, -220.0f }, + { 60.0f, 0.0f, -210.0f }, + { 70.0f, 0.0f, -190.0f }, + { 70.0f, 0.0f, 0.0f }, + { 70.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_5544[0x27] = { + { 200.0f, 0.0f, -1495.0f }, + { 200.0f, 0.0f, -1400.0f }, + { 200.0f, 0.0f, -1150.0f }, + { 200.0f, 0.0f, -1115.0f }, + { 170.0f, 0.0f, -1090.0f }, + { -30.0f, 0.0f, -1090.0f }, + { -45.0f, 0.0f, -1090.0f }, + { -45.0f, 0.0f, -1080.0f }, + { -30.0f, 0.0f, -1080.0f }, + { 620.0f, 0.0f, -1080.0f }, + { 640.0f, 0.0f, -1080.0f }, + { 650.0f, 0.0f, -1060.0f }, + { 650.0f, 0.0f, -880.0f }, + { 670.0f, 0.0f, -860.0f }, + { 735.0f, 0.0f, -855.0f }, + { 810.0f, 0.0f, -840.0f }, + { 855.0f, 0.0f, -790.0f }, + { 860.0f, 0.0f, -125.0f }, + { 770.0f, 0.0f, -10.0f }, + { 580.0f, 0.0f, -10.0f }, + { 150.0f, 0.0f, -115.0f }, + { 125.0f, 0.0f, -130.0f }, + { 100.0f, 0.0f, -160.0f }, + { 80.0f, 0.0f, -275.0f }, + { 70.0f, 0.0f, -290.0f }, + { -100.0f, 0.0f, -305.0f }, + { -135.0f, 0.0f, -320.0f }, + { -150.0f, 0.0f, -355.0f }, + { -150.0f, 0.0f, -455.0f }, + { -150.0f, 0.0f, -470.0f }, + { -170.0f, 0.0f, -470.0f }, + { -170.0f, 0.0f, -455.0f }, + { -170.0f, 0.0f, -280.0f }, + { -150.0f, 0.0f, -265.0f }, + { 45.0f, 0.0f, -265.0f }, + { 65.0f, 0.0f, -260.0f }, + { 75.0f, 0.0f, -245.0f }, + { 200.0f, 0.0f, 0.0f }, + { 200.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_5718[0x27] = { + { 0.0f, 0.0f, -1500.0f }, + { 0.0f, 0.0f, -1400.0f }, + { 0.0f, 0.0f, -1275.0f }, + { -5.0f, 0.0f, -1255.0f }, + { -25.0f, 0.0f, -1250.0f }, + { -275.0f, 0.0f, -1250.0f }, + { -300.0f, 0.0f, -1225.0f }, + { -300.0f, 0.0f, -975.0f }, + { -275.0f, 0.0f, -950.0f }, + { 425.0f, 0.0f, -950.0f }, + { 445.0f, 0.0f, -945.0f }, + { 450.0f, 0.0f, -925.0f }, + { 450.0f, 0.0f, -675.0f }, + { 475.0f, 0.0f, -650.0f }, + { 525.0f, 0.0f, -650.0f }, + { 545.0f, 0.0f, -645.0f }, + { 550.0f, 0.0f, -625.0f }, + { 550.0f, 0.0f, -275.0f }, + { 545.0f, 0.0f, -255.0f }, + { 525.0f, 0.0f, -250.0f }, + { 225.0f, 0.0f, -250.0f }, + { 205.0f, 0.0f, -255.0f }, + { 200.0f, 0.0f, -275.0f }, + { 200.0f, 0.0f, -425.0f }, + { 175.0f, 0.0f, -450.0f }, + { 25.0f, 0.0f, -450.0f }, + { 5.0f, 0.0f, -455.0f }, + { 0.0f, 0.0f, -475.0f }, + { 0.0f, 0.0f, -625.0f }, + { -25.0f, 0.0f, -650.0f }, + { -275.0f, 0.0f, -650.0f }, + { -300.0f, 0.0f, -625.0f }, + { -300.0f, 0.0f, -175.0f }, + { -275.0f, 0.0f, -150.0f }, + { -25.0f, 0.0f, -150.0f }, + { -5.0f, 0.0f, -145.0f }, + { 0.0f, 0.0f, -125.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 100.0f }, +}; +Vec *lbl_1_data_58EC[6] = { + lbl_1_data_4DF4, + lbl_1_data_4FC8, + lbl_1_data_519C, + lbl_1_data_5370, + lbl_1_data_5544, + lbl_1_data_5718, +}; +s32 lbl_1_data_5904[2] = { 0x27, 0x27 }; +Vec lbl_1_data_590C[0x21] = { + { -70.0f, 0.0f, 100.0f }, + { -70.0f, 0.0f, 0.0f }, + { -70.0f, 0.0f, -100.0f }, + { -65.0f, 0.0f, -140.0f }, + { -60.0f, 0.0f, -190.0f }, + { -70.0f, 0.0f, -210.0f }, + { -85.0f, 0.0f, -230.0f }, + { -110.0f, 0.0f, -255.0f }, + { -170.0f, 0.0f, -300.0f }, + { -280.0f, 0.0f, -380.0f }, + { -350.0f, 0.0f, -415.0f }, + { -400.0f, 0.0f, -440.0f }, + { -430.0f, 0.0f, -500.0f }, + { -430.0f, 0.0f, -570.0f }, + { -390.0f, 0.0f, -665.0f }, + { -360.0f, 0.0f, -700.0f }, + { -305.0f, 0.0f, -720.0f }, + { -235.0f, 0.0f, -720.0f }, + { -140.0f, 0.0f, -680.0f }, + { -100.0f, 0.0f, -720.0f }, + { -40.0f, 0.0f, -815.0f }, + { -40.0f, 0.0f, -885.0f }, + { -100.0f, 0.0f, -970.0f }, + { -180.0f, 0.0f, -1040.0f }, + { -195.0f, 0.0f, -1075.0f }, + { -195.0f, 0.0f, -1155.0f }, + { -170.0f, 0.0f, -1200.0f }, + { -80.0f, 0.0f, -1250.0f }, + { -70.0f, 0.0f, -1300.0f }, + { -70.0f, 0.0f, -1330.0f }, + { -70.0f, 0.0f, -1350.0f }, + { -70.0f, 0.0f, -1400.0f }, + { -70.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_5A98[0x21] = { + { -200.0f, 0.0f, 100.0f }, + { -200.0f, 0.0f, 0.0f }, + { -200.0f, 0.0f, -100.0f }, + { -200.0f, 0.0f, -140.0f }, + { -200.0f, 0.0f, -180.0f }, + { -210.0f, 0.0f, -200.0f }, + { -220.0f, 0.0f, -210.0f }, + { -230.0f, 0.0f, -220.0f }, + { -270.0f, 0.0f, -240.0f }, + { -380.0f, 0.0f, -260.0f }, + { -450.0f, 0.0f, -280.0f }, + { -540.0f, 0.0f, -300.0f }, + { -620.0f, 0.0f, -500.0f }, + { -540.0f, 0.0f, -630.0f }, + { -480.0f, 0.0f, -760.0f }, + { -400.0f, 0.0f, -810.0f }, + { -305.0f, 0.0f, -835.0f }, + { -220.0f, 0.0f, -810.0f }, + { -170.0f, 0.0f, -790.0f }, + { -140.0f, 0.0f, -805.0f }, + { -120.0f, 0.0f, -840.0f }, + { -120.0f, 0.0f, -880.0f }, + { -170.0f, 0.0f, -935.0f }, + { -300.0f, 0.0f, -985.0f }, + { -340.0f, 0.0f, -1050.0f }, + { -340.0f, 0.0f, -1130.0f }, + { -330.0f, 0.0f, -1215.0f }, + { -260.0f, 0.0f, -1250.0f }, + { -210.0f, 0.0f, -1300.0f }, + { -195.0f, 0.0f, -1330.0f }, + { -200.0f, 0.0f, -1350.0f }, + { -200.0f, 0.0f, -1400.0f }, + { -200.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_5C24[0x21] = { + { 0.0f, 0.0f, 100.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, -100.0f }, + { 0.0f, 0.0f, -140.0f }, + { 0.0f, 0.0f, -190.0f }, + { -5.0f, 0.0f, -240.0f }, + { -25.0f, 0.0f, -265.0f }, + { -70.0f, 0.0f, -305.0f }, + { -130.0f, 0.0f, -350.0f }, + { -245.0f, 0.0f, -430.0f }, + { -325.0f, 0.0f, -470.0f }, + { -355.0f, 0.0f, -490.0f }, + { -370.0f, 0.0f, -525.0f }, + { -380.0f, 0.0f, -555.0f }, + { -340.0f, 0.0f, -625.0f }, + { -330.0f, 0.0f, -640.0f }, + { -290.0f, 0.0f, -660.0f }, + { -260.0f, 0.0f, -660.0f }, + { -135.0f, 0.0f, -610.0f }, + { -50.0f, 0.0f, -675.0f }, + { 15.0f, 0.0f, -800.0f }, + { 15.0f, 0.0f, -905.0f }, + { -55.0f, 0.0f, -1010.0f }, + { -115.0f, 0.0f, -1080.0f }, + { -135.0f, 0.0f, -1105.0f }, + { -135.0f, 0.0f, -1135.0f }, + { -120.0f, 0.0f, -1160.0f }, + { -25.0f, 0.0f, -1215.0f }, + { 0.0f, 0.0f, -1300.0f }, + { 0.0f, 0.0f, -1330.0f }, + { 0.0f, 0.0f, -1350.0f }, + { 0.0f, 0.0f, -1400.0f }, + { 0.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_5DB0[0x1E] = { + { 70.0f, 0.0f, -1500.0f }, + { 70.0f, 0.0f, -1400.0f }, + { 70.0f, 0.0f, -1350.0f }, + { 70.0f, 0.0f, -1330.0f }, + { 70.0f, 0.0f, -1300.0f }, + { 50.0f, 0.0f, -1210.0f }, + { 10.0f, 0.0f, -1160.0f }, + { -60.0f, 0.0f, -1125.0f }, + { -60.0f, 0.0f, -1105.0f }, + { -10.0f, 0.0f, -1050.0f }, + { 70.0f, 0.0f, -920.0f }, + { 70.0f, 0.0f, -780.0f }, + { 0.0f, 0.0f, -630.0f }, + { -130.0f, 0.0f, -550.0f }, + { -270.0f, 0.0f, -600.0f }, + { -290.0f, 0.0f, -590.0f }, + { -305.0f, 0.0f, -540.0f }, + { -300.0f, 0.0f, -530.0f }, + { -210.0f, 0.0f, -480.0f }, + { -85.0f, 0.0f, -395.0f }, + { -35.0f, 0.0f, -355.0f }, + { 0.0f, 0.0f, -330.0f }, + { 20.0f, 0.0f, -310.0f }, + { 45.0f, 0.0f, -265.0f }, + { 55.0f, 0.0f, -235.0f }, + { 60.0f, 0.0f, -190.0f }, + { 65.0f, 0.0f, -140.0f }, + { 70.0f, 0.0f, -100.0f }, + { 70.0f, 0.0f, 0.0f }, + { 70.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_5F18[0x1E] = { + { 200.0f, 0.0f, -1500.0f }, + { 200.0f, 0.0f, -1400.0f }, + { 200.0f, 0.0f, -1350.0f }, + { 200.0f, 0.0f, -1330.0f }, + { 200.0f, 0.0f, -1300.0f }, + { 200.0f, 0.0f, -1205.0f }, + { 180.0f, 0.0f, -1175.0f }, + { 100.0f, 0.0f, -1125.0f }, + { 100.0f, 0.0f, -1090.0f }, + { 150.0f, 0.0f, -1060.0f }, + { 230.0f, 0.0f, -990.0f }, + { 230.0f, 0.0f, -710.0f }, + { 135.0f, 0.0f, -515.0f }, + { 10.0f, 0.0f, -495.0f }, + { -60.0f, 0.0f, -495.0f }, + { -70.0f, 0.0f, -490.0f }, + { -75.0f, 0.0f, -485.0f }, + { -75.0f, 0.0f, -475.0f }, + { -60.0f, 0.0f, -460.0f }, + { -35.0f, 0.0f, -455.0f }, + { 20.0f, 0.0f, -420.0f }, + { 60.0f, 0.0f, -395.0f }, + { 90.0f, 0.0f, -380.0f }, + { 160.0f, 0.0f, -270.0f }, + { 170.0f, 0.0f, -230.0f }, + { 190.0f, 0.0f, -190.0f }, + { 200.0f, 0.0f, -140.0f }, + { 200.0f, 0.0f, -100.0f }, + { 200.0f, 0.0f, 0.0f }, + { 200.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_6080[0x1E] = { + { 0.0f, 0.0f, -1500.0f }, + { 0.0f, 0.0f, -1400.0f }, + { 0.0f, 0.0f, -1350.0f }, + { 0.0f, 0.0f, -1330.0f }, + { 0.0f, 0.0f, -1300.0f }, + { -20.0f, 0.0f, -1225.0f }, + { -35.0f, 0.0f, -1205.0f }, + { -135.0f, 0.0f, -1140.0f }, + { -135.0f, 0.0f, -1100.0f }, + { -55.0f, 0.0f, -1010.0f }, + { 15.0f, 0.0f, -905.0f }, + { 15.0f, 0.0f, -800.0f }, + { -50.0f, 0.0f, -675.0f }, + { -135.0f, 0.0f, -610.0f }, + { -285.0f, 0.0f, -665.0f }, + { -340.0f, 0.0f, -630.0f }, + { -380.0f, 0.0f, -555.0f }, + { -350.0f, 0.0f, -485.0f }, + { -245.0f, 0.0f, -430.0f }, + { -130.0f, 0.0f, -350.0f }, + { -70.0f, 0.0f, -305.0f }, + { -40.0f, 0.0f, -280.0f }, + { -25.0f, 0.0f, -265.0f }, + { -5.0f, 0.0f, -240.0f }, + { 0.0f, 0.0f, -220.0f }, + { 0.0f, 0.0f, -190.0f }, + { 0.0f, 0.0f, -140.0f }, + { 0.0f, 0.0f, -100.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 100.0f }, +}; +Vec *lbl_1_data_61E8[6] = { + lbl_1_data_590C, + lbl_1_data_5A98, + lbl_1_data_5C24, + lbl_1_data_5DB0, + lbl_1_data_5F18, + lbl_1_data_6080, +}; +s32 lbl_1_data_6200[2] = { 0x21, 0x1E }; +Vec lbl_1_data_6208[0x1F] = { + { -70.0f, 0.0f, 100.0f }, + { -70.0f, 0.0f, 0.0f }, + { -70.0f, 0.0f, -100.0f }, + { -50.0f, 0.0f, -230.0f }, + { 70.0f, 0.0f, -320.0f }, + { 130.0f, 0.0f, -380.0f }, + { 170.0f, 0.0f, -440.0f }, + { 180.0f, 0.0f, -460.0f }, + { 180.0f, 0.0f, -475.0f }, + { 135.0f, 0.0f, -500.0f }, + { 100.0f, 0.0f, -510.0f }, + { -50.0f, 0.0f, -510.0f }, + { -115.0f, 0.0f, -510.0f }, + { -155.0f, 0.0f, -520.0f }, + { -185.0f, 0.0f, -545.0f }, + { -200.0f, 0.0f, -575.0f }, + { -200.0f, 0.0f, -650.0f }, + { -200.0f, 0.0f, -760.0f }, + { -260.0f, 0.0f, -855.0f }, + { -300.0f, 0.0f, -925.0f }, + { -300.0f, 0.0f, -995.0f }, + { -270.0f, 0.0f, -1050.0f }, + { -225.0f, 0.0f, -1060.0f }, + { -200.0f, 0.0f, -1080.0f }, + { -130.0f, 0.0f, -1170.0f }, + { -105.0f, 0.0f, -1185.0f }, + { -90.0f, 0.0f, -1200.0f }, + { -70.0f, 0.0f, -1240.0f }, + { -70.0f, 0.0f, -1300.0f }, + { -70.0f, 0.0f, -1400.0f }, + { -70.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_637C[0x1F] = { + { -200.0f, 0.0f, 100.0f }, + { -200.0f, 0.0f, 0.0f }, + { -200.0f, 0.0f, -100.0f }, + { -160.0f, 0.0f, -275.0f }, + { -70.0f, 0.0f, -350.0f }, + { 0.0f, 0.0f, -390.0f }, + { 60.0f, 0.0f, -420.0f }, + { 90.0f, 0.0f, -435.0f }, + { 95.0f, 0.0f, -440.0f }, + { 90.0f, 0.0f, -445.0f }, + { 85.0f, 0.0f, -445.0f }, + { -50.0f, 0.0f, -400.0f }, + { -220.0f, 0.0f, -380.0f }, + { -290.0f, 0.0f, -420.0f }, + { -330.0f, 0.0f, -460.0f }, + { -350.0f, 0.0f, -510.0f }, + { -350.0f, 0.0f, -650.0f }, + { -350.0f, 0.0f, -760.0f }, + { -480.0f, 0.0f, -900.0f }, + { -480.0f, 0.0f, -1010.0f }, + { -460.0f, 0.0f, -1055.0f }, + { -410.0f, 0.0f, -1100.0f }, + { -290.0f, 0.0f, -1120.0f }, + { -250.0f, 0.0f, -1130.0f }, + { -220.0f, 0.0f, -1170.0f }, + { -210.0f, 0.0f, -1190.0f }, + { -200.0f, 0.0f, -1220.0f }, + { -200.0f, 0.0f, -1250.0f }, + { -200.0f, 0.0f, -1300.0f }, + { -200.0f, 0.0f, -1400.0f }, + { -200.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_64F0[0x1F] = { + { 0.0f, 0.0f, 100.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, -100.0f }, + { 25.0f, 0.0f, -200.0f }, + { 110.0f, 0.0f, -265.0f }, + { 180.0f, 0.0f, -340.0f }, + { 225.0f, 0.0f, -410.0f }, + { 245.0f, 0.0f, -445.0f }, + { 245.0f, 0.0f, -500.0f }, + { 155.0f, 0.0f, -555.0f }, + { 105.0f, 0.0f, -570.0f }, + { -50.0f, 0.0f, -570.0f }, + { -105.0f, 0.0f, -570.0f }, + { -120.0f, 0.0f, -575.0f }, + { -145.0f, 0.0f, -590.0f }, + { -145.0f, 0.0f, -600.0f }, + { -145.0f, 0.0f, -650.0f }, + { -145.0f, 0.0f, -770.0f }, + { -210.0f, 0.0f, -880.0f }, + { -240.0f, 0.0f, -945.0f }, + { -240.0f, 0.0f, -970.0f }, + { -225.0f, 0.0f, -1010.0f }, + { -205.0f, 0.0f, -1015.0f }, + { -165.0f, 0.0f, -1030.0f }, + { -90.0f, 0.0f, -1120.0f }, + { -60.0f, 0.0f, -1135.0f }, + { -35.0f, 0.0f, -1155.0f }, + { 0.0f, 0.0f, -1220.0f }, + { 0.0f, 0.0f, -1300.0f }, + { 0.0f, 0.0f, -1400.0f }, + { 0.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_6664[0x1D] = { + { 70.0f, 0.0f, -1500.0f }, + { 70.0f, 0.0f, -1400.0f }, + { 70.0f, 0.0f, -1300.0f }, + { 60.0f, 0.0f, -1205.0f }, + { 20.0f, 0.0f, -1115.0f }, + { -10.0f, 0.0f, -1085.0f }, + { -50.0f, 0.0f, -1070.0f }, + { -130.0f, 0.0f, -980.0f }, + { -175.0f, 0.0f, -965.0f }, + { -180.0f, 0.0f, -945.0f }, + { -160.0f, 0.0f, -905.0f }, + { -95.0f, 0.0f, -785.0f }, + { -95.0f, 0.0f, -650.0f }, + { -90.0f, 0.0f, -640.0f }, + { -80.0f, 0.0f, -630.0f }, + { -50.0f, 0.0f, -630.0f }, + { 105.0f, 0.0f, -630.0f }, + { 165.0f, 0.0f, -620.0f }, + { 275.0f, 0.0f, -565.0f }, + { 305.0f, 0.0f, -500.0f }, + { 305.0f, 0.0f, -440.0f }, + { 300.0f, 0.0f, -415.0f }, + { 270.0f, 0.0f, -370.0f }, + { 220.0f, 0.0f, -300.0f }, + { 150.0f, 0.0f, -220.0f }, + { 70.0f, 0.0f, -155.0f }, + { 70.0f, 0.0f, -100.0f }, + { 70.0f, 0.0f, 0.0f }, + { 70.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_67C0[0x1D] = { + { 200.0f, 0.0f, -1500.0f }, + { 200.0f, 0.0f, -1400.0f }, + { 200.0f, 0.0f, -1300.0f }, + { 200.0f, 0.0f, -1210.0f }, + { 130.0f, 0.0f, -1040.0f }, + { 90.0f, 0.0f, -1000.0f }, + { 25.0f, 0.0f, -970.0f }, + { 25.0f, 0.0f, -940.0f }, + { 5.0f, 0.0f, -915.0f }, + { 5.0f, 0.0f, -900.0f }, + { 5.0f, 0.0f, -880.0f }, + { 40.0f, 0.0f, -820.0f }, + { 40.0f, 0.0f, -790.0f }, + { 40.0f, 0.0f, -750.0f }, + { 40.0f, 0.0f, -750.0f }, + { 90.0f, 0.0f, -750.0f }, + { 230.0f, 0.0f, -750.0f }, + { 270.0f, 0.0f, -730.0f }, + { 510.0f, 0.0f, -510.0f }, + { 530.0f, 0.0f, -480.0f }, + { 540.0f, 0.0f, -430.0f }, + { 540.0f, 0.0f, -360.0f }, + { 520.0f, 0.0f, -290.0f }, + { 370.0f, 0.0f, -195.0f }, + { 295.0f, 0.0f, -165.0f }, + { 255.0f, 0.0f, -125.0f }, + { 220.0f, -0.45f, -75.0f }, + { 200.0f, 0.0f, 0.0f }, + { 200.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_691C[0x1D] = { + { 0.0f, 0.0f, -1500.0f }, + { 0.0f, 0.0f, -1400.0f }, + { 0.0f, 0.0f, -1300.0f }, + { 0.0f, 0.0f, -1220.0f }, + { -35.0f, 0.0f, -1155.0f }, + { -60.0f, 0.0f, -1135.0f }, + { -90.0f, 0.0f, -1120.0f }, + { -165.0f, 0.0f, -1030.0f }, + { -225.0f, 0.0f, -1010.0f }, + { -240.0f, 0.0f, -945.0f }, + { -210.0f, 0.0f, -880.0f }, + { -145.0f, 0.0f, -770.0f }, + { -145.0f, 0.0f, -650.0f }, + { -145.0f, 0.0f, -590.0f }, + { -120.0f, 0.0f, -575.0f }, + { -50.0f, 0.0f, -570.0f }, + { 105.0f, 0.0f, -570.0f }, + { 155.0f, 0.0f, -555.0f }, + { 225.0f, 0.0f, -515.0f }, + { 245.0f, 0.0f, -500.0f }, + { 245.0f, 0.0f, -445.0f }, + { 245.0f, 0.0f, -445.0f }, + { 225.0f, 0.0f, -410.0f }, + { 180.0f, 0.0f, -340.0f }, + { 110.0f, 0.0f, -265.0f }, + { 25.0f, 0.0f, -200.0f }, + { 0.0f, 0.0f, -100.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 100.0f }, +}; +Vec *lbl_1_data_6A78[6] = { + lbl_1_data_6208, + lbl_1_data_637C, + lbl_1_data_64F0, + lbl_1_data_6664, + lbl_1_data_67C0, + lbl_1_data_691C, +}; +s32 lbl_1_data_6A90[2] = { 0x1F, 0x1D }; +Vec lbl_1_data_6A98[0x21] = { + { -70.0f, 0.0f, 100.0f }, + { -70.0f, 0.0f, 0.0f }, + { -70.0f, 0.0f, -100.0f }, + { -65.0f, 0.0f, -180.0f }, + { -50.0f, 0.0f, -230.0f }, + { -30.0f, 0.0f, -265.0f }, + { -10.0f, 0.0f, -290.0f }, + { 30.0f, 0.0f, -335.0f }, + { 30.0f, 0.0f, -355.0f }, + { 0.0f, 0.0f, -380.0f }, + { -50.0f, 0.0f, -445.0f }, + { -65.0f, 0.0f, -470.0f }, + { -75.0f, 0.0f, -500.0f }, + { -80.0f, 0.0f, -530.0f }, + { -90.0f, 0.0f, -610.0f }, + { -90.0f, 0.0f, -660.0f }, + { -85.0f, 0.0f, -695.0f }, + { -60.0f, 0.0f, -760.0f }, + { -30.0f, 0.0f, -790.0f }, + { 50.0f, 0.0f, -830.0f }, + { 130.0f, 0.0f, -890.0f }, + { 160.0f, 0.0f, -920.0f }, + { 160.0f, 0.0f, -970.0f }, + { 135.0f, 0.0f, -1020.0f }, + { 105.0f, 0.0f, -1040.0f }, + { 15.0f, 0.0f, -1040.0f }, + { -20.0f, 0.0f, -1060.0f }, + { -40.0f, 0.0f, -1090.0f }, + { -55.0f, 0.0f, -1125.0f }, + { -70.0f, 0.0f, -1200.0f }, + { -70.0f, 0.0f, -1300.0f }, + { -70.0f, 0.0f, -1400.0f }, + { -70.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_6C24[0x21] = { + { -200.0f, 0.0f, 100.0f }, + { -200.0f, 0.0f, 0.0f }, + { -200.0f, 0.0f, -100.0f }, + { -180.0f, 0.0f, -230.0f }, + { -170.0f, 0.0f, -255.0f }, + { -160.0f, 0.0f, -280.0f }, + { -145.0f, 0.0f, -295.0f }, + { -105.0f, 0.0f, -335.0f }, + { -105.0f, 0.0f, -340.0f }, + { -155.0f, 0.0f, -380.0f }, + { -215.0f, 0.0f, -435.0f }, + { -230.0f, 0.0f, -460.0f }, + { -235.0f, 0.0f, -480.0f }, + { -235.0f, 0.0f, -500.0f }, + { -270.0f, 0.0f, -635.0f }, + { -270.0f, 0.0f, -730.0f }, + { -250.0f, 0.0f, -755.0f }, + { -225.0f, 0.0f, -780.0f }, + { -195.0f, 0.0f, -795.0f }, + { -145.0f, 0.0f, -830.0f }, + { -85.0f, 0.0f, -875.0f }, + { -35.0f, 0.0f, -905.0f }, + { -35.0f, 0.0f, -915.0f }, + { -60.0f, 0.0f, -925.0f }, + { -70.0f, 0.0f, -930.0f }, + { -120.0f, 0.0f, -930.0f }, + { -150.0f, 0.0f, -940.0f }, + { -165.0f, 0.0f, -955.0f }, + { -175.0f, 0.0f, -980.0f }, + { -200.0f, 0.0f, -1200.0f }, + { -200.0f, 0.0f, -1300.0f }, + { -200.0f, 0.0f, -1400.0f }, + { -200.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_6DB0[0x21] = { + { 0.0f, 0.0f, 100.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, -100.0f }, + { 0.0f, 0.0f, -195.0f }, + { 5.0f, 0.0f, -210.0f }, + { 20.0f, 0.0f, -230.0f }, + { 30.0f, 0.0f, -245.0f }, + { 95.0f, 0.0f, -330.0f }, + { 95.0f, 0.0f, -360.0f }, + { 45.0f, 0.0f, -420.0f }, + { 0.0f, 0.0f, -480.0f }, + { -5.0f, 0.0f, -490.0f }, + { -15.0f, 0.0f, -515.0f }, + { -20.0f, 0.0f, -530.0f }, + { -30.0f, 0.0f, -610.0f }, + { -35.0f, 0.0f, -665.0f }, + { -35.0f, 0.0f, -680.0f }, + { -25.0f, 0.0f, -715.0f }, + { -20.0f, 0.0f, -725.0f }, + { 85.0f, 0.0f, -780.0f }, + { 175.0f, 0.0f, -845.0f }, + { 220.0f, 0.0f, -905.0f }, + { 220.0f, 0.0f, -985.0f }, + { 165.0f, 0.0f, -1080.0f }, + { 130.0f, 0.0f, -1100.0f }, + { 50.0f, 0.0f, -1100.0f }, + { 35.0f, 0.0f, -1110.0f }, + { 15.0f, 0.0f, -1135.0f }, + { 5.0f, 0.0f, -1150.0f }, + { 0.0f, 0.0f, -1200.0f }, + { 0.0f, 0.0f, -1300.0f }, + { 0.0f, 0.0f, -1400.0f }, + { 0.0f, 0.0f, -1500.0f }, +}; +Vec lbl_1_data_6F3C[0x1F] = { + { 70.0f, 0.0f, -1500.0f }, + { 70.0f, 0.0f, -1400.0f }, + { 70.0f, 0.0f, -1300.0f }, + { 70.0f, 0.0f, -1200.0f }, + { 75.0f, 0.0f, -1180.0f }, + { 90.0f, 0.0f, -1170.0f }, + { 110.0f, 0.0f, -1160.0f }, + { 155.0f, 0.0f, -1160.0f }, + { 200.0f, 0.0f, -1140.0f }, + { 230.0f, 0.0f, -1105.0f }, + { 270.0f, 0.0f, -1015.0f }, + { 280.0f, 0.0f, -980.0f }, + { 280.0f, 0.0f, -910.0f }, + { 270.0f, 0.0f, -870.0f }, + { 210.0f, 0.0f, -795.0f }, + { 115.0f, 0.0f, -730.0f }, + { 40.0f, 0.0f, -685.0f }, + { 30.0f, 0.0f, -665.0f }, + { 30.0f, 0.0f, -610.0f }, + { 40.0f, 0.0f, -530.0f }, + { 45.0f, 0.0f, -515.0f }, + { 90.0f, 0.0f, -460.0f }, + { 140.0f, 0.0f, -410.0f }, + { 150.0f, 0.0f, -360.0f }, + { 150.0f, 0.0f, -330.0f }, + { 140.0f, 0.0f, -280.0f }, + { 80.0f, 0.0f, -195.0f }, + { 70.0f, 0.0f, -175.0f }, + { 70.0f, 0.0f, -100.0f }, + { 70.0f, 0.0f, 0.0f }, + { 70.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_70B0[0x1F] = { + { 200.0f, 0.0f, -1500.0f }, + { 200.0f, 0.0f, -1400.0f }, + { 200.0f, 0.0f, -1300.0f }, + { 200.0f, 0.0f, -1265.0f }, + { 190.0f, 0.0f, -1240.0f }, + { 195.0f, 0.0f, -1230.0f }, + { 215.0f, 0.0f, -1225.0f }, + { 240.0f, 0.0f, -1225.0f }, + { 260.0f, 0.0f, -1215.0f }, + { 275.0f, 0.0f, -1200.0f }, + { 490.0f, 0.0f, -1040.0f }, + { 515.0f, 0.0f, -995.0f }, + { 525.0f, 0.0f, -925.0f }, + { 510.0f, 0.0f, -875.0f }, + { 415.0f, 0.0f, -690.0f }, + { 290.0f, 0.0f, -615.0f }, + { 280.0f, 0.0f, -600.0f }, + { 270.0f, 0.0f, -590.0f }, + { 265.0f, 0.0f, -570.0f }, + { 280.0f, 0.0f, -525.0f }, + { 285.0f, 0.0f, -510.0f }, + { 295.0f, 0.0f, -470.0f }, + { 315.0f, 0.0f, -435.0f }, + { 335.0f, 0.0f, -360.0f }, + { 335.0f, 0.0f, -310.0f }, + { 300.0f, 0.0f, -260.0f }, + { 225.0f, 0.0f, -200.0f }, + { 220.0f, 0.0f, -190.0f }, + { 200.0f, 0.0f, -100.0f }, + { 200.0f, 0.0f, 0.0f }, + { 200.0f, 0.0f, 100.0f }, +}; +Vec lbl_1_data_7224[0x1F] = { + { 0.0f, 0.0f, -1500.0f }, + { 0.0f, 0.0f, -1400.0f }, + { 0.0f, 0.0f, -1300.0f }, + { 0.0f, 0.0f, -1200.0f }, + { 5.0f, 0.0f, -1150.0f }, + { 50.0f, 0.0f, -1100.0f }, + { 110.0f, 0.0f, -1100.0f }, + { 130.0f, 0.0f, -1100.0f }, + { 165.0f, 0.0f, -1080.0f }, + { 175.0f, 0.0f, -1070.0f }, + { 220.0f, 0.0f, -990.0f }, + { 220.0f, 0.0f, -980.0f }, + { 220.0f, 0.0f, -915.0f }, + { 220.0f, 0.0f, -900.0f }, + { 175.0f, 0.0f, -845.0f }, + { 85.0f, 0.0f, -780.0f }, + { -20.0f, 0.0f, -725.0f }, + { -35.0f, 0.0f, -665.0f }, + { -30.0f, 0.0f, -610.0f }, + { -20.0f, 0.0f, -530.0f }, + { 0.0f, 0.0f, -480.0f }, + { 45.0f, 0.0f, -420.0f }, + { 85.0f, 0.0f, -380.0f }, + { 95.0f, 0.0f, -360.0f }, + { 95.0f, 0.0f, -330.0f }, + { 90.0f, 0.0f, -315.0f }, + { 25.0f, 0.0f, -240.0f }, + { 0.0f, 0.0f, -200.0f }, + { 0.0f, 0.0f, -100.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 100.0f }, +}; +Vec *lbl_1_data_7398[6] = { + lbl_1_data_6A98, + lbl_1_data_6C24, + lbl_1_data_6DB0, + lbl_1_data_6F3C, + lbl_1_data_70B0, + lbl_1_data_7224, +}; +s32 lbl_1_data_73B0[2] = { 0x21, 0x1F }; +u16 lbl_1_data_73B8[0xA] = { 1, 3, 3, 1, 2, 2, 2, 2, 2, 2 }; +Vec **lbl_1_data_73CC[0xA] = { + lbl_1_data_16C8, + lbl_1_data_2284, + lbl_1_data_2FC8, + lbl_1_data_37B4, + lbl_1_data_4154, + lbl_1_data_4DD4, + lbl_1_data_58EC, + lbl_1_data_61E8, + lbl_1_data_6A78, + lbl_1_data_7398, +}; +s32 *lbl_1_data_73F4[0xA] = { + &lbl_1_data_16D4, + lbl_1_data_22A8, + lbl_1_data_2FEC, + &lbl_1_data_37C0, + lbl_1_data_416C, + lbl_1_data_4DEC, + lbl_1_data_5904, + lbl_1_data_6200, + lbl_1_data_6A90, + lbl_1_data_73B0, +}; + +#endif diff --git a/src/REL/m439Dll/main.c b/src/REL/m439Dll/main.c index df209f90..7cfee7b4 100644 --- a/src/REL/m439Dll/main.c +++ b/src/REL/m439Dll/main.c @@ -22,6 +22,8 @@ #include "rel_sqrt_consts.h" +#include "REL/m439data.h" + typedef struct camera_params { float zoom; Vec pos; @@ -565,17 +567,17 @@ float fn_1_1024(float arg0, float arg1, float arg2) } float lbl_1_data_76B0[11][2] = { - -180, -230, - -260, -150, - -300, 0, - -260, 150, - -150, 260, - -1e-50, 300, - 150, 260, - 260, 150, - 300, -1e-50, - 260, -150, - 180, -230 + { -180.0f, -230.0f }, + { -260.0f, -150.0f }, + { -300.0f, 0.0f }, + { -260.0f, 150.0f }, + { -150.0f, 260.0f }, + { -0.0f, 300.0f }, + { 150.0f, 260.0f }, + { 260.0f, 150.0f }, + { 300.0f, -0.0f }, + { 260.0f, -150.0f }, + { 180.0f, -230.0f }, }; s32 fn_1_1128(Vec *arg0) @@ -687,11 +689,6 @@ s32 fn_1_16B0(Vec *arg0) } } -extern Vec *lbl_1_data_1014[][2]; -extern u16 lbl_1_data_1074[]; -extern float *lbl_1_data_108C[]; - - float fn_1_1C54(s32 arg0, Vec *arg1, Vec *arg2) { Vec *temp_r31; @@ -1732,11 +1729,6 @@ void fn_1_66BC(omObjData *object) } } -extern u16 lbl_1_data_73B8[]; -extern Vec **lbl_1_data_73CC[]; - -extern s32 *lbl_1_data_73F4[]; - s32 fn_1_67B4(Vec *arg0, s32 arg1, s32 arg2, Vec *arg3, Vec *arg4) { omObjData **temp_r21 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); @@ -2051,4 +2043,4 @@ void fn_1_77E4(s32 shadowNo) GXPosition3u8(1, 0, 0); GXPosition3u8(1, 1, 0); GXPosition3u8(0, 1, 0); -} \ No newline at end of file +}