diff --git a/include/functions.h b/include/functions.h index 23c6732f..6cd40e0b 100644 --- a/include/functions.h +++ b/include/functions.h @@ -89,9 +89,7 @@ void RdRam_CheckIPL3(void); void Mio0_Decompress(void* header, u8* dst); s32 vsprintf(char* dst, const char* fmt, va_list args); - - -// sf_2EFE0 +// fox_360 void func_8002E3E0(Object_2F4*); void func_8002E548(void); void func_8002E5E0(Object_408*); @@ -103,17 +101,19 @@ void func_8002E694(Object_2F4*); void func_8002E6B8(Object_2F4*); void func_8002E6DC(Object_2F4*); void func_8002E700(Player *); -void func_8002EE64(Object_2F4 *); +void func_8002EE64(Object_2F4 * obj2F4); void func_8002F180(void); -void func_8002F5F4(void); -void func_800319AC(Object_2F4*); -void func_80035448(Object_2F4*); +void func_8002F5F4(u16* msg, s32 character); +void func_800319AC(Object_2F4* this); +void func_80035448(Object_2F4* obj2F4); -//sf_36930 +//sf_beam void PlayerShot_Initialize(PlayerShot *); void func_800365E4(f32, f32, f32, f32, f32, f32, f32, f32, f32, s32, s32); void func_8003D9B8(void); void func_8003DA0C(void); + +// fox_bg void func_8003DAF0(void); void func_8003DE68(s32, s32); void func_8003E1E8(void); @@ -121,6 +121,7 @@ void func_80040450(void); void func_80040954(void); void func_80040CDC(void); void func_80040CE4(void); +void func_80042D38(void); // fox_43AC0 void func_80042FAC(Object_408 *); @@ -129,6 +130,8 @@ void func_80042FC4(Object_408*); void func_80042FD0(Object_408 *); void func_80042FDC(Object_408*); void func_80042FE8(Object_408*); + +// fox_43E80 void func_80043468(Player* ); void func_800444BC(Player *); void func_80047504(Player *); @@ -536,6 +539,7 @@ void func_DF4260_8018753C(Object_80*); void func_DF4260_801878D8(Object_408 *); void func_DF4260_8018B0B4(Object_2F4 *); void func_DF4260_8018BE7C(Object_408 *); +void func_DF4260_8018ED78(Object_408*); void func_DF4260_801924A8(Object_80* ); void func_DF4260_8019250C(Object_2F4 *); void func_DF4260_80192CB0(Object_2F4 *); @@ -543,48 +547,39 @@ void func_DF4260_80192EA4(Object_2F4 *); void func_DF4260_801933B4(Object_2F4 *); void func_DF4260_801935CC(Object_408 *); void func_DF4260_80198310(Object_408 *); +void func_DF4260_80198594(Object_408 *); void func_DF4260_801988E0(void); -void func_DF4260_8018ED78(Object_408*); - -void func_E9F1D0_80189214(void); -void func_E9F1D0_8018BDD8(void); -void func_E9F1D0_8018C390(Player*); void func_DF4260_80198C50(void); void func_DF4260_8019949C(void); -void func_E16C50_8019E8B8(f32, f32, f32, f32); -void func_E9F1D0_801A5AD4(Player*); -void func_E9F1D0_801A5FC0(Player*); -void func_E16C50_801AA8E8(Player*); -void func_E16C50_801AACF8(Player*); -void func_E16C50_801AC274(Player*); -void func_E16C50_801ACE50(Player*); -void func_E6A810_801ACFBC(ObjectInit*); -void func_E6A810_801AD080(void); -void func_E16C50_801AD328(Player*); -void func_E16C50_801BEC80(Player*); void func_E08400_80187B08(Object_2F4 *); void func_E08400_80188A40(Object_408 *); void func_E08400_8018CCF8(Object_2F4 *); -void func_E16C50_80191DB0(Object_2F4*); -void func_E16C50_8018ED78(Player*); void func_E16C50_80187754(Object_408 *); +void func_E16C50_8018ED78(Player*); void func_E16C50_801900FC(Vec3f*, Vec3f*, f32, f32, f32, s32, f32, s32, s32); void func_E16C50_80190430(Object_2F4 *); void func_E16C50_80190F08(Object_2F4 *); void func_E16C50_801915A4(Object_2F4 *); void func_E16C50_80191BB8(Object_2F4 *); +void func_E16C50_80191DB0(Object_2F4*); void func_E16C50_801932AC(Object_408 *); void func_E16C50_8019B1F0(Object_2F4 *); void func_E16C50_8019B810(Object_2F4 *); void func_E16C50_8019C200(Object_2F4 *); void func_E16C50_8019D060(Object_2F4 *); +void func_E16C50_8019E8B8(f32, f32, f32, f32); void func_E16C50_8019E9F4(f32, f32, f32, f32, f32, f32, f32, s32); void func_E16C50_801A9824(void); void func_E16C50_801AA20C(void); +void func_E16C50_801AA8E8(Player*); +void func_E16C50_801AACF8(Player*); +void func_E16C50_801AC274(Player*); void func_E16C50_801AC8A8(f32, f32, f32, f32, s32); void func_E16C50_801ACBB4(void); +void func_E16C50_801ACE50(Player*); +void func_E16C50_801AD328(Player*); void func_E16C50_801AD688(Object_2F4 *); void func_E16C50_801AE3AC(Object_2F4 *); void func_E16C50_801AF9FC(Object_2F4 *); @@ -594,18 +589,23 @@ void func_E16C50_801B6E54(Object_2F4 *); void func_E16C50_801B7AF0(Object_2F4 *); void func_E16C50_801BA57C(Object_2F4 *); void func_E16C50_801BB26C(Object_2F4 *); +void func_E16C50_801BEC80(Player*); -void func_E51970_80193CA4(Object_408 *); -void func_E51970_80198594(Object_408 *); -void func_E51970_8019EA68(Object_58**); -void func_E51970_80198930(Object_58**); +void func_E51970_80187960(Object_2F4*); void func_E51970_8018BA2C(Object_58**); +void func_E51970_8018C158(Object_2F4*); void func_E51970_80191ED8(Object_58**); +void func_E51970_80192264(void); +void func_E51970_80193CA4(Object_408 *); +void func_E51970_80198594(Object_2F4*); +void func_E51970_80198930(Object_58**); +void func_E51970_80199900(Object_2F4 *, s32); +void func_E51970_80199C60(Object_2F4*); +void func_E51970_8019AB8C(Object_2F4*); +void func_E51970_8019EA68(Object_58**); -void func_E6A810_80188F30(void); -void func_E6A810_80199920(void); -void func_E6A810_801B5110(f32, f32, f32); void func_E6A810_8018769C(Object_2F4 *); +void func_E6A810_80188F30(void); void func_E6A810_80189B80(Object_2F4 *); void func_E6A810_8018ADC4(Object_2F4 *); void func_E6A810_8018B720(Object_2F4 *); @@ -618,6 +618,7 @@ void func_E6A810_8018EFF0(Object_4C *); void func_E6A810_8018F0D8(Object_80 *); void func_E6A810_8018FA48(Object_408 *); void func_E6A810_801990DC(Object_408 *); +void func_E6A810_80199920(void); void func_E6A810_80199F8C(Object_2F4 *); void func_E6A810_801A3E70(Object_2F4 *); void func_E6A810_801A4660(Object_2F4 *); @@ -626,18 +627,27 @@ void func_E6A810_801A5E2C(Object_2F4 *); void func_E6A810_801A6134(Object_2F4 *); void func_E6A810_801A65E0(Object_80 *); void func_E6A810_801A7D98(Object_2F4 *); +void func_E6A810_801ACFBC(ObjectInit*); +void func_E6A810_801AD080(void); +void func_E6A810_801B5110(f32, f32, f32); void func_E6A810_801B58AC(Gfx **, f32); -s32 func_E6A810_801B6AEC(f32, f32, f32); -void func_E6A810_801B6E20(f32, f32, f32 *, f32 *, f32 *); + s32 func_E6A810_801B6AEC(f32, f32, f32); +void func_E6A810_801B6E20(f32, f32, f32 *, f32 *, f32 *); -void func_E9F1D0_80196968(Object_58**); void func_E9F1D0_801878A8(Object_58**); -void func_E9F1D0_801961AC(Object_58**); -void func_E9F1D0_801A4CB0(Object_2F4*); -void func_E9F1D0_801A3BD4(Object_2F4*); void func_E9F1D0_801888F4(Object_2F4 *); +void func_E9F1D0_80189214(void); +void func_E9F1D0_8018BDD8(void); +void func_E9F1D0_8018C390(Player*); void func_E9F1D0_8018D16C(Object_408 *); +void func_E9F1D0_801961AC(Object_58**); +void func_E9F1D0_80196314(Object_2F4*); +void func_E9F1D0_80196968(Object_58**); void func_E9F1D0_80197CC4(Object_408 *); +void func_E9F1D0_801A3BD4(Object_2F4*); +void func_E9F1D0_801A4CB0(Object_2F4*); +void func_E9F1D0_801A5AD4(Player*); +void func_E9F1D0_801A5FC0(Player*); void func_E9F1D0_801A6164(Player *); void func_EF0260_8018A96C(void); diff --git a/include/gfx.h b/include/gfx.h index 55d52248..53c4109b 100644 --- a/include/gfx.h +++ b/include/gfx.h @@ -11,8 +11,6 @@ #define RGBA16_RED(color16) (((color16) >> 0xB) & 0x1F) #define RGBA16_GRN(color16) (((color16) >> 6) & 0x1F) #define RGBA16_BLU(color16) (((color16) >> 1) & 0x1F) -// unclear what the right macro for this is -// #define RGBA16_PACK(r, g, b, a) (((u16) ((r) * 0x800) & 0xF800) | ((u16) ((g) * 0x40) & 0x7C0) | ((u16) ((b) * 2) & 0x3E) | ((a) & 1)) // used for convenience while decopming. You should find/replace them with the full macros before PRing #define GDL(dl) gSPDisplayList(gMasterDisp++, dl) // 06000000 dl @@ -111,7 +109,7 @@ void Graphics_DisplayLargeNumber(s32 xPos, s32 yPos, s32 number); void Graphics_DisplaySmallText(s32 xPos, s32 yPos, f32 xScale, f32 yScale, char *text); s32 Graphics_GetSmallTextWidth(char *text); void func_800A1540(s32 arg0, s32 arg1, s32 arg2, s32 arg3); -void func_800A1558(f32 weight, u16 size, void *src1, void *src2, void *dst); +void Texture_BlendRGBA16(f32 weight, u16 size, u16 *src1, u16 *src2, u16 *dst); void RCP_SetupDL(Gfx** gfxP, s16 i); void RCP_SetFog(Gfx** gfxP, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far); diff --git a/include/sf64level.h b/include/sf64level.h index 5fcf611e..e7063e6b 100644 --- a/include/sf64level.h +++ b/include/sf64level.h @@ -85,6 +85,7 @@ typedef enum LevelId { /* 18 */ LEVEL_SECTOR_Z, /* 19 */ LEVEL_VENOM_2, /* 20 */ LEVEL_VERSUS, + /* 77 */ LEVEL_WARP_ZONE = 77, } LevelId; typedef enum { diff --git a/include/sf64mesg.h b/include/sf64mesg.h index c3015b6d..53405d1a 100644 --- a/include/sf64mesg.h +++ b/include/sf64mesg.h @@ -48,8 +48,8 @@ typedef enum { RCID_ANDROSS_RED_OPEN, RCID_JAMES = 60, RCID_JAMES_OPEN, - RCID_PEPPER = 70, - RCID_PEPPER_OPEN, + RCID_GEN_PEPPER = 70, + RCID_GEN_PEPPER_OPEN, RCID_BOSS_CORNERIA = 80, RCID_BOSS_CORNERIA_OPEN, RCID_ROB64 = 90, @@ -94,8 +94,8 @@ typedef enum { RCID_ANDREW_2_OPEN, RCID_ROB64_TITLE = 300, RCID_ROB64_TITLE_OPEN, - RCID_PEPPER_TITLE = 310, - RCID_PEPPER_TITLE_OPEN, + RCID_GEN_PEPPER_TITLE = 310, + RCID_GEN_PEPPER_TITLE_OPEN, RCID_TRAINING = 350, RCID_TRAINING_OPEN, RCID_FOX_EXPERT = 400, diff --git a/include/variables.h b/include/variables.h index f39d3b15..f7a68ef6 100644 --- a/include/variables.h +++ b/include/variables.h @@ -100,7 +100,6 @@ extern Lightsn* gLight; extern FrameBuffer *gFrameBuffer; extern u16* gTextureRender; -// some sort of struct? extern u8 D_80137E78; extern u32 gFrameCounter; extern u8 gStartNMI; @@ -130,13 +129,22 @@ extern OSMesg D_80156608[4]; extern OSMesg D_80156618[1]; extern OSMesg D_8015661C[1]; +// fox_360 extern s32 D_800C9B4C; + +// sf_beam extern u16 D_800C9C3C[16]; + +// sf_43E80 extern Vec3f D_800C9F2C; + +// fox_display extern s32 D_800CA220; extern f32 D_800CA230; extern Object_2F4* D_800CA234; extern s32 D_Timer_800CA238; + +// fox_edata extern f32 D_800CBE70[]; extern f32 D_800CBE8C[]; extern f32 D_800CBEA8[]; @@ -160,6 +168,8 @@ extern f32 D_800CC070[]; extern f32 D_800CC0D4[]; extern f32 D_800CC0F0[]; extern ObjectInfo D_800CC124[]; + +// fox_edisplay extern f32 D_800CF9B0[]; extern Gfx* D_800CFA54[]; extern Gfx* D_800CFAC4[]; @@ -181,17 +191,23 @@ extern f32* D_800CF964[]; extern f32 D_800CFCA0[]; extern f32 D_800CFCCC[]; extern Gfx D_800CFD80[]; + +// fox_enmy extern ObjectInit* D_800CFDA0[]; extern s32 D_800CFDF4[]; extern f32 D_800CFE5C[]; extern Vec3f D_800CFEC4[6]; extern Vec3f D_800CFF0C[6]; extern u32 D_800CFF54[9]; + +// fox_6B3B0 extern s32 D_800CFF80[4]; extern s32 D_800CFF90; extern s16 D_800CFF94[]; extern u8 D_800CFFB4[]; extern f32 D_800CFFC4[]; + +// sf_77E40 extern Gfx* D_800D14E0[][2]; extern Gfx* D_800D14FC[]; extern Vec3f D_800D1528; @@ -200,6 +216,8 @@ extern s32 D_800D173C[]; extern Gfx* D_800D178C[6]; extern s32 D_800D18F0[]; //[6][4]? extern s32 D_800D1950[]; + +// sf_hud extern s16 D_800D1970; extern f32 D_800D19AC[]; extern f32 D_800D19E0[]; @@ -212,6 +230,8 @@ extern s32 D_800D2180[]; extern s32 D_800D2190[]; extern f32 D_800D21A0; extern f32 D_800D21A4; + +// fox_game extern s32 D_800D2860[]; extern s32 D_800D2870; extern s32 D_800D2874[]; @@ -219,18 +239,30 @@ extern s32 D_800D2884[]; extern s32 D_800D2894[]; extern s32 D_800D28A4[]; extern s32 sOverlaySetups[]; + +// fox_A4290 extern CollisionHeader D_800D2B38[]; extern CollisionHeader2 D_800D2CA0[]; + +// fox_play extern u8 D_800D2F68; extern u8 D_800D3180[30]; -extern s32 D_800D31A0[4]; // could belong to fox_rcp or fox_play -extern s32 sCurrentMsgPri; + +// unknown, could be fox_rcp, fox_play, or a data-only file. +extern s32 D_800D31A0[4]; + +// fox_radio +extern s32 gCurrentMsgPri; + +// fox_save extern Save gDefaultSave; -// sf_2EFE0 +// fox_360 extern s32 D_8015F900; extern s32 D_8015F904; +extern s16 D_8015F908; extern s32 D_8015F90C; +extern s32 D_8015F910; extern f32 D_8015F914; extern f32 D_8015F918; extern f32 D_8015F91C; @@ -243,10 +275,10 @@ extern s32 D_8015F93C; extern s32 D_8015F940; extern f32 D_8015F944; -// sf_36930 -extern s16 D_8015F908; -extern s32 D_8015F910; +// sf_beam extern Vec3f D_8015F950; + +// fox_bg extern f32 D_8015F960; extern u8 D_8015F964; extern f32 D_8015F968; @@ -630,7 +662,7 @@ extern f32 D_80178370; // Vec3f? extern f32 D_80178374; extern f32 D_80178378; extern s32 D_8017837C; -extern s32 D_80178380[4]; // player alphas +extern u32 D_80178380[4]; // player alphas extern s32 D_80178390[4]; // player reds extern s32 D_801783A0[4]; // player greens extern s32 D_801783B0[4]; // player alphas @@ -894,9 +926,9 @@ extern Gfx D_102ED50[]; extern Gfx D_102F5E0[]; extern Gfx D_102FE80[]; extern u16 D_102FF08[]; +extern Gfx D_1031630[]; extern Gfx D_1032780[]; - // ast_8A68C0, ast_8AE0A0 extern Gfx D_2000000[]; extern Gfx D_2000890[]; @@ -956,18 +988,23 @@ extern Gfx D_300FB80[]; extern Gfx D_3010A90[]; extern Gfx D_3011470[]; extern Gfx D_3011720[]; +extern Gfx D_3011E40[]; extern Gfx D_3012ED0[]; extern Gfx D_30131F0[]; extern Gfx D_3013580[]; extern Gfx D_3013780[]; +extern Gfx D_30146B0[]; extern Gfx D_3014BF0[]; extern Gfx D_3015120[]; extern Gfx D_30155E0[]; +extern Gfx D_3015740[]; extern AnimationHeader D_3015AF4; extern AnimationHeader D_3015C28; extern Gfx D_3015D80[]; +extern AnimationHeader D_30163C4; extern Limb* D_3016610[]; extern Gfx D_3016660[]; +extern Gfx D_30160A0[]; extern Gfx D_3016B00[]; extern Gfx D_3016B30[]; extern Gfx D_3016CC0[]; @@ -976,17 +1013,23 @@ extern Gfx D_30174E0[]; extern Gfx D_3017600[]; extern Gfx D_3017600[]; extern Gfx D_30183D0[]; +extern Gfx D_3018800[]; extern Gfx D_30194E0[]; extern Gfx D_301B080[]; extern Gfx D_301B6E0[]; +extern AnimationHeader D_301C3A8; extern Limb* D_301C614[]; +extern AnimationHeader D_301CFEC; extern Limb* D_301D258[]; +extern AnimationHeader D_301D888; extern Limb* D_301DB94[]; +extern AnimationHeader D_301E19C; extern Limb* D_301E3E8[]; extern Gfx D_301E570[]; extern Gfx D_301F140[]; extern Gfx D_301FD20[]; extern Gfx D_302D240[]; +extern Gfx D_302D4D0[]; extern EnvSettings D_302DD70[]; extern EnvSettings D_302DDB4[]; extern EnvSettings D_302DDF8[]; @@ -994,18 +1037,6 @@ extern ObjectInit D_302DE3C[]; extern ObjectInit D_302E0E4[]; extern ObjectInit D_302E170[]; extern ObjectInit D_302E378[]; -extern f32 D_302ED4C[]; -extern f32 D_302ED98[]; -extern f32 D_302EDB4[]; -extern f32 D_302EE00[]; -extern f32 D_302EE64[]; -extern f32 D_302EE80[]; -extern f32 D_302EE9C[]; -extern AnimationHeader D_30163C4; -extern AnimationHeader D_301C3A8; -extern AnimationHeader D_301CFEC; -extern AnimationHeader D_301D888; -extern AnimationHeader D_301E19C; extern Vec3f D_302E56C[]; extern Vec3f D_302E65C[]; extern Vec3f D_302E74C[]; @@ -1014,6 +1045,14 @@ extern Vec3f D_302E95C[]; extern Vec3f D_302EA4C[]; extern Vec3f D_302EB3C[]; extern Vec3f D_302EC20[]; +extern f32 D_302ED4C[]; +extern f32 D_302ED98[]; +extern f32 D_302EDB4[]; +extern f32 D_302EE00[]; +extern f32 D_302EE64[]; +extern f32 D_302EE80[]; +extern f32 D_302EE9C[]; + // ast_918430, ast_922730 extern AnimationHeader D_4000080; @@ -1024,6 +1063,7 @@ extern Gfx D_40018A0[]; extern Gfx D_4003BD0[]; extern AnimationHeader D_40057AC; extern Limb* D_40058B8[]; +extern Gfx D_40068F0[]; extern Gfx D_4007870[]; extern Gfx D_4007AF0[]; extern AnimationHeader D_400A30C; @@ -1056,31 +1096,21 @@ extern u8 D_500A7D0[]; extern Gfx D_500B600[]; /* ast_961CE0, ast_9A1460, ast_9D2FD0, ast_A1D0F0, ast_A4FBB0, - * ast_A58F60, ast_A8B470, ast_AB4000, ast_ACF960, ast_AE60A0, + * ast_A58F60, ast_A8B470, ast_AB4000, ast_ACF960, ast_AE60A0*, * ast_B0AA00, ast_B1CA50, ast_B2CA50, ast_B612E0, ast_B84560, * ast_BB11D0, ast_BC23D0, ast_BFC510, ast_C48F40, ast_DDC010 */ - -extern u16 D_6005710[]; -extern u16 D_600CBD8[]; -extern u16 D_600D990[]; -extern u16 D_6010198[]; -extern u16 D_601E1E8[]; -extern u16 D_6020F60[]; -extern u16 D_60229A4[]; -extern u16 D_6028A60[]; -extern u16 D_602ACC0[]; -extern u16 D_602C2CC[]; -extern u16 D_603158C[]; -extern u16 D_603EB38[]; extern u16 D_6000000[]; +extern Gfx D_60005B0[]; extern u16 D_6000900[]; extern Gfx D_6000A80[]; extern u16 D_6000B60[]; extern Gfx D_6000E00[]; extern Gfx D_6000E10[]; extern Gfx D_6001360[]; +extern Gfx D_6001530[]; extern u16 D_6001820[]; +extern Gfx D_6001840[]; extern Gfx D_6001950[]; extern Gfx D_6001A60[]; extern u16 D_6001A80[]; @@ -1091,21 +1121,30 @@ extern u8 D_60020D0[]; extern Gfx D_60023B0[]; extern Gfx D_6002990[]; extern u16 D_60029A0[]; +extern Gfx D_6002E60[]; +extern Gfx D_6002F80[]; extern Gfx D_6003000[]; extern Gfx D_60030F0[]; extern Gfx D_60034D0[]; extern Gfx D_6003610[]; extern Gfx D_60036A0[]; +extern Gfx D_6003760[]; extern u16 D_60038C0[]; +extern Gfx D_60038E0[]; extern u16 D_60038F8[]; extern Gfx D_6004170[]; extern Gfx D_6004330[]; extern Vtx D_6004500[]; extern Gfx D_6004570[]; +extern Gfx D_60046F0[]; extern u16 D_60047E0[]; +extern Gfx D_6004FE0[]; extern Gfx D_6005360[]; extern u16 D_6005700[]; +extern u16 D_6005710[]; extern Gfx D_6005780[]; +extern Gfx D_6005880[]; +extern Gfx D_60059F0[]; extern Gfx D_6006140[]; extern Gfx D_6006310[]; extern u16* D_600631C[]; @@ -1120,10 +1159,12 @@ extern f32 D_60065B0[]; extern f32 D_60065FC[]; extern f32 D_6006648[]; extern f32 D_6006694[]; +extern Gfx D_60066D0[]; extern f32 D_60066E0_f32[]; extern Gfx D_60066E0_Gfx[]; extern Gfx D_60066F0[]; extern f32 D_600672C[]; +extern u16 D_6006750[]; extern f32 D_6006778[]; extern f32 D_60067C4[]; extern f32 D_6006808[]; @@ -1144,8 +1185,11 @@ extern f32 D_6006A04[]; extern f32 D_6006A20[]; extern f32 D_6006A3C[]; extern Gfx D_6006A80[]; +extern Gfx D_6006BE0[]; extern f32 D_6006BF0[]; extern f32 D_6006C44[]; +extern AnimationHeader D_6006D64; +extern Limb *D_6006E50[]; extern u16 D_6006EA0[]; extern Gfx D_6006F50[]; extern Gfx D_6007410[]; @@ -1156,9 +1200,12 @@ extern Gfx D_6007CF0[]; extern Gfx D_6007D80[]; extern Gfx D_6007D90[]; extern Gfx D_6008370[]; +extern Gfx D_6008770[]; +extern Gfx D_6008830[]; extern Gfx D_6008970[]; extern Gfx D_6008AA0[]; extern f32 D_600924C[]; +extern Gfx D_6009250[]; extern f32 D_60092E8[]; extern f32 D_6009388[]; extern Gfx D_60097E0[]; @@ -1170,21 +1217,34 @@ extern Vtx D_6009ED0[]; extern Gfx D_6009F90[]; extern Gfx D_600A220[]; extern Gfx D_600A420[]; +extern Gfx D_600A810[]; +extern Gfx D_600AB10[]; +extern u16 D_600AB68[]; extern Gfx D_600AF40[]; +extern Gfx D_600B0E0[]; +extern Gfx D_600B4B0[]; extern Gfx D_600B8B0[]; extern Gfx D_600BAF0[]; extern u16 D_600BEA0[]; extern Gfx D_600BF80[]; extern Gfx D_600C130[]; +extern AnimationHeader D_600C200; +extern Limb *D_600C2AC[]; extern u16 D_600C6A0[]; extern Gfx D_600C740[]; extern Vtx D_600C780[]; extern Gfx D_600CAA0[]; +extern u16 D_600CBD8[]; +extern Gfx D_600D190[]; extern u16 D_600D5C0[]; extern Gfx D_600D730[]; +extern u16 D_600D990[]; +extern Gfx D_600D9F0[]; extern Gfx D_600DA10[]; extern Gfx D_600DBC0[]; extern u8 D_600DDC0[]; +extern Gfx D_600DDF0[]; +extern Gfx D_600E050[]; extern Gfx D_600E0C0[]; extern u8 D_600E360[]; extern AnimationHeader D_600E5EC; @@ -1193,11 +1253,14 @@ extern u8 D_600E980[]; extern Gfx D_600EC90[]; extern Gfx D_600EE10[]; extern Gfx D_600EEF0[]; +extern Gfx D_600EFF0[]; extern Gfx D_600F160[]; +extern Gfx D_600F1D0[]; extern Gfx D_600F2F0[]; extern Gfx D_600F3D0[]; extern Gfx D_600F4C0[]; extern Gfx D_600F560[]; +extern Gfx D_600F670[]; extern Gfx D_600F6C0[]; extern Gfx D_600F6C0[]; extern Gfx D_600F8A0[]; @@ -1212,8 +1275,10 @@ extern f32 D_600FFC0[]; extern f32 D_600FFE0[]; extern ObjectInit* D_6010088[]; extern u8 D_6010090[]; +extern u16 D_6010198[]; extern Gfx D_60102C0[]; extern u8 D_60106B0[]; +extern Gfx D_6010700[]; extern Gfx D_6010960[]; extern Gfx D_6010A50[]; extern u16 D_6010C20[]; @@ -1236,6 +1301,7 @@ extern u8 D_60123F0[]; extern Gfx D_6012C00[]; extern Gfx D_60132B0[]; extern u8 D_6013470[]; +extern Gfx D_6013480[]; extern Gfx D_60137B0[]; extern AnimationHeader D_6013820; extern Limb* D_601390C[]; @@ -1270,6 +1336,7 @@ extern Gfx D_6018C00[]; // possible collision extern Gfx D_6018D40[]; extern Gfx D_6018E80[]; extern u16 D_6018F30[]; +extern Gfx D_6019220[]; extern Gfx D_6019730[]; extern u16 D_6019E50[]; extern Gfx D_601A120[]; @@ -1277,6 +1344,7 @@ extern Gfx D_601A7A0[]; extern Gfx D_601A7D0[]; extern Gfx D_601AD70[]; extern Gfx D_601AE40[]; +extern Gfx D_601AFF0[]; extern Gfx D_601B0D0[]; extern u16* D_601B1E4[]; extern u16 D_601B4B0[]; @@ -1288,8 +1356,10 @@ extern Gfx D_601B560[]; extern f32 D_601B584[]; extern f32 D_601B5F4[]; extern Gfx D_601B610[]; +extern Gfx D_601B640[]; extern f32 D_601B644[]; extern f32 D_601B678[]; +extern u16 D_601B6C0[]; extern f32 D_601B6C4[]; extern f32 D_601B710[]; extern f32 D_601B75C[]; @@ -1299,7 +1369,9 @@ extern f32 D_601B830[]; extern f32 D_601B868[]; extern f32 D_601B8A0[]; extern f32 D_601B8D8[]; +extern Gfx D_601BB40[]; extern Gfx D_601BEC0[]; +extern Gfx D_601C080[]; extern Gfx D_601C6A0[]; extern Gfx D_601C7C0[]; extern u16 D_601C8E0[]; @@ -1310,8 +1382,11 @@ extern u8 D_601D750[]; extern u16 D_601D800[]; extern u16 D_601DB50[]; extern Gfx D_601DE60[]; +extern Gfx D_601E150[]; +extern u16 D_601E1E8[]; extern AnimationHeader D_601E8C4; extern Limb* D_601E9D0[]; +extern Gfx D_601EAA0[]; extern Gfx D_601F1D0[]; extern Gfx D_601F500[]; extern Gfx D_601F5A0[]; @@ -1325,6 +1400,7 @@ extern Gfx D_6020A30[]; extern Gfx D_6020B40[]; extern u16* D_6020DD0[]; extern Gfx D_6020E60[]; +extern u16 D_6020F60[]; extern u16 D_6020FB0[]; extern u16 D_6021ED0[]; extern AnimationHeader D_602201C; @@ -1334,6 +1410,7 @@ extern Gfx D_6022450[]; extern Gfx D_6022530[]; extern u16 D_6022760[]; extern Gfx D_6022920[]; +extern u16 D_60229A4[]; extern Gfx D_60231C0[]; extern Gfx D_60238F0[]; extern Gfx D_6023AC0[]; @@ -1353,13 +1430,18 @@ extern u16 D_6027340[]; extern Limb* D_602742C[]; extern Gfx D_6027900[]; extern u16* D_6027F50[]; +extern u16 D_6028260[]; extern f32 D_6028454[]; extern u16* D_60289FC[]; +extern u16 D_6028A60[]; extern AnimationHeader D_6029528; extern Limb* D_6029674[]; +extern Gfx D_6029890[]; extern Gfx D_602A720[]; extern u16* D_602AAC0[]; +extern Gfx D_602AC40[]; extern u16 D_602AC50[]; +extern u16 D_602ACC0[]; extern ObjectInit* D_602B148[]; extern Gfx D_602B4C0[]; extern f32 D_602B9EC[]; @@ -1371,19 +1453,23 @@ extern f32 D_602BC58[]; extern f32 D_602BE3C[]; extern f32 D_602BE58[]; extern f32 D_602BFC4[]; +extern Gfx D_602C030[]; extern f32 D_602C044[]; +extern Gfx D_602C088[]; extern f32 D_602C1D4[]; extern f32 D_602C218[]; extern f32 D_602C234[]; extern f32 D_602C250[]; extern f32 D_602C294[]; extern f32 D_602C2B0[]; +extern u16 D_602C2CC[]; extern Gfx D_602D5F0[]; extern Gfx D_602DA20[]; extern Gfx D_602DAE0[]; extern Gfx D_602DB80[]; extern Gfx D_602DC20[]; extern Gfx D_602DCA0[]; +extern u16 D_602DCB8[]; extern Gfx D_602E080[]; extern Gfx D_602E380[]; extern Gfx D_602E570[]; @@ -1404,6 +1490,7 @@ extern Gfx D_602F7C0[]; extern f32 D_602FA50[]; extern Gfx D_6030500[]; extern Gfx D_6030630[]; +extern Gfx D_60306D0[]; extern u16* D_60308B8[]; extern f32 D_6030B10[]; extern ObjectInit D_6030B14[]; @@ -1432,6 +1519,7 @@ extern f32 D_6031500[]; extern f32 D_6031538[]; extern f32 D_6031554[]; extern f32 D_6031570[]; +extern u16 D_603158C[]; extern u16* D_60320D0[]; extern Gfx D_60320E0[]; extern f32 D_6032328[]; @@ -1542,6 +1630,7 @@ extern f32 D_603EA08[]; extern f32 D_603EA74[]; extern f32 D_603EAE0[]; extern f32 D_603EB0C[]; +extern u16 D_603EB38[]; extern Gfx D_6041070[]; extern u16 D_60447A0[]; extern u16 D_6047550[]; @@ -1553,6 +1642,7 @@ extern Gfx D_7000000[]; extern u8 D_7000F10[]; extern u8 D_7001030[]; extern u8 D_7001270[]; +extern Gfx D_7001540[]; extern u8 D_7001DF0[]; extern u8 D_7002110[]; extern u8 D_7003650[]; @@ -1616,9 +1706,9 @@ extern Gfx D_8015DF0[]; // ast_9F4880, ast_AE60A0, ast_CDDCA0 extern Gfx D_9002CF0[]; -extern Gfx D_9003330[]; -extern Gfx D_9003890[]; -extern Gfx D_9003DF0[]; +extern u16 D_9003330[]; +extern u16 D_9003890[]; +extern u16 D_9003DF0[]; extern Gfx D_9003F50[]; extern Gfx D_9005C80[]; extern Gfx D_900D180[]; @@ -1648,6 +1738,7 @@ extern f32 D_C038BA4[]; extern f32 D_C038BD8[]; extern f32 D_C038DC0[]; extern f32 D_C038F24[]; +extern Gfx D_C039208[]; // ast_955270 extern Gfx D_D000000[]; @@ -1697,6 +1788,8 @@ extern u16 D_F00B580[]; extern u16 D_F00C4A0[]; extern u16 D_F00D3C0[]; extern u16 D_F00E2E0[]; +extern Gfx D_F00F200[]; +extern Gfx D_F0103D0[]; extern Gfx D_F014180[]; extern Gfx D_F014310[]; diff --git a/linker_scripts/us/symbol_addrs_engine.txt b/linker_scripts/us/symbol_addrs_engine.txt index 423b0650..d89a9dd8 100644 --- a/linker_scripts/us/symbol_addrs_engine.txt +++ b/linker_scripts/us/symbol_addrs_engine.txt @@ -47,9 +47,9 @@ Graphics_DisplayLargeNumber = 0x800A100C; Graphics_DisplaySmallText = 0x800A1200; Graphics_GetSmallTextWidth = 0x800A13EC; func_800A1540 = 0x800A1540; -func_800A1558 = 0x800A1558; +Texture_BlendRGBA16 = 0x800A1558; -// sf_36930 +// sf_beam PlayerShot_Initialize = 0x80035E48; // fox_rcp @@ -120,7 +120,7 @@ D_8017873C = 0x8017873C; D_80178740 = 0x80178740; D_80178744 = 0x80178744; D_80178748 = 0x80178748; -sCurrentMsgPri = 0x800D4A70; +gCurrentMsgPri = 0x800D4A70; func_800BA760 = 0x800BA760; func_800BA7BC = 0x800BA7BC; @@ -142,6 +142,10 @@ Message_DisplayText = 0x800C2AF0; Message_DisplayScrollingText = 0x800C2D3C; Message_IsPrintingChar = 0x800C2F30; +// fox_bg +D_800C9CC4 = 0x800C9CC4; +D_800C9CF8 = 0x800C9CF8; + // fox_save gDefaultSave = 0x800D4D10; gSaveFile = 0x80178870; //size:0x200 diff --git a/src/assets/179010.c b/src/assets/179010.c deleted file mode 100644 index 89472aa8..00000000 --- a/src/assets/179010.c +++ /dev/null @@ -1,367 +0,0 @@ -#include "libultra/ultra64.h" - -// clang-format off - -u8 gTextCharTextures[][104] = { - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0F, 0x22, 0xF0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0F, 0x22, 0xF0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, - 0x00, 0x0F, 0x11, 0xF0, 0x00, 0x0F, 0x44, 0xF0, - 0x00, 0x0F, 0x11, 0xF0, 0x00, 0x0F, 0x44, 0xF0, - 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0F, 0x88, 0xF0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0F, 0x88, 0xF0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x35, 0x90, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x35, 0x99, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xAA, 0xAF, 0xAA, 0xA0, 0x00, 0x00, 0x00, - 0x00, 0x06, 0x65, 0xCC, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x65, 0xC0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xAE, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4B, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5A, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5A, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5A, 0x22, 0x29, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5B, 0x11, 0x1B, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5A, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5A, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xBE, 0xEE, 0xE1, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xB7, 0x77, 0x7B, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF0, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFB, 0xBB, 0x88, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF0, 0x04, 0x4C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF0, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF0, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xB5, 0x55, 0x1D, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xD1, 0x13, 0x36, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC0, 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC0, 0x14, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC0, 0x50, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC4, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC0, 0x50, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC0, 0x14, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xE0, 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xDB, 0xBB, 0x9C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xBC, 0xCC, 0xC3, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF1, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF3, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF0, 0x31, 0x0F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF8, 0x9B, 0x87, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF0, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF0, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF0, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xB4, 0x44, 0x43, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xAF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x70, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x70, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x70, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x36, 0xE6, 0x61, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x30, 0xA0, 0x05, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x92, 0x05, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x70, 0x81, 0x25, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x25, 0xD5, 0x52, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x78, 0x00, 0x87, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5A, 0x00, 0xA5, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x52, 0xCC, 0x25, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5A, 0x44, 0xA5, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5C, 0x22, 0xC5, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xD4, 0x22, 0x4D, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC1, 0x33, 0x1C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xB2, 0x22, 0x32, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x90, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x81, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x85, 0xCF, 0xC0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x88, 0x32, 0x0C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x84, 0x74, 0x4C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC2, 0x10, 0x0C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xE8, 0x10, 0x4C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xA6, 0xFE, 0xA6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x88, 0x82, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0F, 0x77, 0x52, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF8, 0x88, 0x27, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0x44, 0x46, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x78, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x78, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0F, 0x77, 0x52, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x25, 0x7B, 0xA1, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x32, 0x40, 0x92, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x40, 0x92, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x21, 0x51, 0x82, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x40, 0x82, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xE5, 0x55, 0xD2, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x90, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x09, 0x99, 0x10, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xD4, 0xAC, 0x90, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xD8, 0x61, 0x48, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xD1, 0x70, 0x48, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xD0, 0x61, 0x48, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xD0, 0x60, 0x58, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF2, 0x22, 0x69, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xA5, 0xFF, 0xB4, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x7A, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x78, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x7A, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3C, 0x66, 0x25, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x29, 0x11, 0x14, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xE3, 0x33, 0x94, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xD2, 0x00, 0x85, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC3, 0x10, 0x84, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4A, 0x09, 0x14, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x5A, 0x08, 0x47, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x05, 0xF7, 0x34, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF8, 0x88, 0x9E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x52, 0x00, 0xB4, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0x3A, 0x14, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0xB2, 0x54, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x54, 0x34, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xA9, 0x89, 0x8E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x44, 0x40, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x23, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x44, 0x45, 0x64, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0xAE, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x82, 0x44, 0x28, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xA4, 0x04, 0x0A, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x04, 0x0A, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x04, 0x82, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x8C, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x28, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x82, 0x05, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x8C, 0xFF, 0xDC, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x55, 0xDD, 0xF5, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x48, 0x02, 0x21, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC0, 0x20, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC2, 0x45, 0x60, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xE4, 0x99, 0xB4, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xA8, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xA2, 0x22, 0x2F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xD0, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0D, 0xDD, 0xF0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x17, 0xFF, 0xF1, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x60, 0x88, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x68, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x60, 0x01, 0x46, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x06, 0x67, 0x24, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x10, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x10, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x21, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x66, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0xA8, 0x90, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x8B, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x8F, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0xDC, 0xE0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x9C, 0xA0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x98, 0xA0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x8B, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x8F, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0xEC, 0xD0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x8C, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - } -}; -// clang-format on diff --git a/src/assets/ast_DE5D50.c b/src/assets/ast_DE5D50.c index c360ff80..5e9995e3 100644 --- a/src/assets/ast_DE5D50.c +++ b/src/assets/ast_DE5D50.c @@ -463,6 +463,31 @@ u8 gTextCharTextures[][13 * 16 / 2] = { } }; +// Corneria, fourth planet of the Lylat +// system. The evil Andross turned this +// once thriving system into a wasteland +// of near extinction. +// General Pepper of the Cornerian army +// was successful in exiling this +// maniacal scientist to the barren, +// deserted planet Venom. +// Five years later, General Pepper +// noticed strange activity coming from +// Venom. James McCloud, Pigma Dengar +// and Peppy Hare of the Star Fox team +// were sent to investigate. Upon their +// arrival, Pigma betrayed the team and +// James and Peppy were captured by +// Andross. +// Peppy barely escaped Venom and +// returned home to tell James' son Fox +// about his father's fate. +// A few years have passed. Andross has +// again invaded the Lylat system. +// General Pepper has turned to a new +// Star Fox team headed by Fox McCloud +// to save Corneria and free the Lylat +// system once again. u16 gMsg_ID_1[914] = { _C, _o, _r, _n, _e, _r, _i, _a, CMA, SPC, SPC, _f, _o, _u, _r, _t, _h, SPC, _p, _l, _a, _n, _e, _t, SPC, _o, _f, SPC, _t, _h, _e, SPC, _L, _y, _l, _a, _t, NWL, _s, _y, _s, _t, _e, _m, PRD, SPC, SPC, _T, _h, _e, SPC, _e, _v, _i, _l, SPC, _A, _n, _d, _r, _o, _s, _s, SPC, _t, _u, _r, _n, _e, _d, SPC, _t, _h, _i, _s, NWL, @@ -495,42 +520,60 @@ u16 gMsg_ID_1[914] = { _s, _y, _s, _t, _e, _m, SPC, _o, _n, _c, _e, SPC, _a, _g, _a, _i, _n, PRD, NWL, END, }; +// Message from +// General Pepper. +// Priority one! u16 gMsg_ID_60[46] = { _M, _e, _s, _s, _a, _g, _e, SPC, _f, _r, _o, _m, SPC, NWL, _G, _e, _n, _e, _r, _a, _l, SPC, _P, _e, _p, _p, _e, _r, PRD, NWL, _P, _r, _i, _o, _r, _i, _t, _y, SPC, _o, _n, _e, EXM, NWL, END, }; +// We need your help, +// Star Fox! u16 gMsg_ID_10[32] = { _W, _e, SPC, _n, _e, _e, _d, SPC, _y, _o, _u, _r, SPC, _h, _e, _l, _p, CMA, NWL, _S, _t, _a, _r, SPC, _F, _o, _x, EXM, NWL, NPF, NWL, END, }; +// Andross has declared +// war! u16 gMsg_ID_20[30] = { _A, _n, _d, _r, _o, _s, _s, SPC, _h, _a, _s, SPC, _d, _e, _c, _l, _a, _r, _e, _d, NWL, _w, _a, _r, EXM, NWL, NPF, NWL, END, }; +// He's invaded the +// Lylat system u16 gMsg_ID_30[34] = { _H, _e, APS, _s, SPC, _i, _n, _v, _a, _d, _e, _d, SPC, _t, _h, _e, NWL, _L, _y, _l, _a, _t, SPC, _s, _y, _s, _t, _e, _m, NWL, NPF, NWL, END, }; +// and is trying to +// take over Corneria! u16 gMsg_ID_40[40] = { _a, _n, _d, SPC, _i, _s, SPC, _t, _r, _y, _i, _n, _g, SPC, _t, _o, NWL, _t, _a, _k, _e, SPC, _o, _v, _e, _r, SPC, _C, _o, _r, _n, _e, _r, _i, _a, EXM, NWL, NPF, NWL, END, }; +// Our army alone +// can't do the job! +// Hurry, Star Fox! u16 gMsg_ID_50[52] = { _O, _u, _r, SPC, _a, _r, _m, _y, SPC, _a, _l, _o, _n, _e, NWL, _c, _a, _n, APS, _t, SPC, _d, _o, SPC, _t, _h, _e, SPC, _j, _o, _b, EXM, NWL, _H, _u, _r, _r, _y, CMA, SPC, _S, _t, _a, _r, SPC, _F, _o, _x, EXM, NWL, END, }; +// It's about time you +// showed up, Fox. +// You're the only hope +// for our world! u16 gMsg_ID_1200[74] = { _I, _t, APS, _s, SPC, _a, _b, _o, _u, _t, SPC, _t, _i, _m, _e, SPC, _y, _o, _u, NWL, _s, _h, _o, _w, _e, _d, SPC, _u, _p, CMA, SPC, _F, _o, _x, PRD, NWL, @@ -538,12 +581,19 @@ u16 gMsg_ID_1200[74] = { _f, _o, _r, SPC, _o, _u, _r, SPC, _w, _o, _r, _l, _d, EXM, NWL, END, }; +// I'll do my best! +// Andross won't have +// his way with me! u16 gMsg_ID_1210[54] = { _I, APS, _l, _l, SPC, _d, _o, SPC, _m, _y, SPC, _b, _e, _s, _t, EXM, NWL, _A, _n, _d, _r, _o, _s, _s, SPC, _w, _o, _n, APS, _t, SPC, _h, _a, _v, _e, NWL, _h, _i, _s, SPC, _w, _a, _y, SPC, _w, _i, _t, _h, SPC, _m, _e, EXM, NWL, END, }; +// Impressive, Star Fox! +// Now watch out for +// enemies in the +// asteroid field. u16 gMsg_ID_1220[76] = { _I, _m, _p, _r, _e, _s, _s, _i, _v, _e, CMA, SPC, _S, _t, _a, _r, SPC, _F, _o, _x, EXM, SPC, NWL, _N, _o, _w, SPC, _w, _a, _t, _c, _h, SPC, _o, _u, _t, SPC, _f, _o, _r, SPC, NWL, @@ -551,22 +601,33 @@ u16 gMsg_ID_1220[76] = { _a, _s, _t, _e, _r, _o, _i, _d, SPC, _f, _i, _e, _l, _d, PRD, NWL, END, }; +// I won't let you down, +// sir. u16 gMsg_ID_1230[28] = { _I, SPC, _w, _o, _n, APS, _t, SPC, _l, _e, _t, SPC, _y, _o, _u, SPC, _d, _o, _w, _n, CMA, NWL, _s, _i, _r, PRD, NWL, END, }; +// What are you doing? +// It's too dangerous +// there! u16 gMsg_ID_1240[48] = { _W, _h, _a, _t, SPC, _a, _r, _e, SPC, _y, _o, _u, SPC, _d, _o, _i, _n, _g, QST, NWL, _I, _t, APS, _s, SPC, _t, _o, _o, SPC, _d, _a, _n, _g, _e, _r, _o, _u, _s, NWL, _t, _h, _e, _r, _e, EXM, NWL, END, }; +// I can't leave Slippy +// hangin'! u16 gMsg_ID_1250[32] = { _I, SPC, _c, _a, _n, APS, _t, SPC, _l, _e, _a, _v, _e, SPC, _S, _l, _i, _p, _p, _y, NWL, _h, _a, _n, _g, _i, _n, APS, EXM, NWL, END, }; +// Reports indicate +// that Andross is +// working on some +// secret weapon. u16 gMsg_ID_1260[66] = { _R, _e, _p, _o, _r, _t, _s, SPC, _i, _n, _d, _i, _c, _a, _t, _e, NWL, _t, _h, _a, _t, SPC, _A, _n, _d, _r, _o, _s, _s, SPC, _i, _s, NWL, @@ -574,19 +635,27 @@ u16 gMsg_ID_1260[66] = { _s, _e, _c, _r, _e, _t, SPC, _w, _e, _a, _p, _o, _n, PRD, NWL, END, }; +// I'll check it out. u16 gMsg_ID_1270[20] = { _I, APS, _l, _l, SPC, _c, _h, _e, _c, _k, SPC, _i, _t, SPC, _o, _u, _t, PRD, NWL, END, }; +// Recover our base from +// the enemy army! u16 gMsg_ID_1280[40] = { _R, _e, _c, _o, _v, _e, _r, SPC, _o, _u, _r, SPC, _b, _a, _s, _e, SPC, _f, _r, _o, _m, NWL, _t, _h, _e, SPC, _e, _n, _e, _m, _y, SPC, _a, _r, _m, _y, EXM, NWL, END, }; +// Roger, General. u16 gMsg_ID_1290[18] = { _R, _o, _g, _e, _r, CMA, SPC, _G, _e, _n, _e, _r, _a, _l, PRD, NWL, END, }; +// If you destroy the +// satellite, we can go +// straight for Venom! +// Be careful, Fox! u16 gMsg_ID_1300[78] = { _I, _f, SPC, _y, _o, _u, SPC, _d, _e, _s, _t, _r, _o, _y, SPC, _t, _h, _e, NWL, _s, _a, _t, _e, _l, _l, _i, _t, _e, CMA, SPC, _w, _e, SPC, _c, _a, _n, SPC, _g, _o, NWL, @@ -594,10 +663,15 @@ u16 gMsg_ID_1300[78] = { _B, _e, SPC, _c, _a, _r, _e, _f, _u, _l, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// I'm on it! u16 gMsg_ID_1310[12] = { _I, APS, _m, SPC, _o, _n, SPC, _i, _t, EXM, NWL, END, }; +// It's almost over! +// We're in your debt. +// Come back in one +// piece, Fox! u16 gMsg_ID_1320[68] = { _I, _t, APS, _s, SPC, _a, _l, _m, _o, _s, _t, SPC, _o, _v, _e, _r, EXM, NWL, _W, _e, APS, _r, _e, SPC, _i, _n, SPC, _y, _o, _u, _r, SPC, _d, _e, _b, _t, PRD, NWL, @@ -605,10 +679,15 @@ u16 gMsg_ID_1320[68] = { _p, _i, _e, _c, _e, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// Will do, General! u16 gMsg_ID_1330[20] = { _W, _i, _l, _l, SPC, _d, _o, CMA, SPC, _G, _e, _n, _e, _r, _a, _l, EXM, NWL, END, }; +// So you're going to +// attack the enemy +// base? Great idea, +// Fox! u16 gMsg_ID_1340[64] = { _S, _o, SPC, _y, _o, _u, APS, _r, _e, SPC, _g, _o, _i, _n, _g, SPC, _t, _o, SPC, NWL, _a, _t, _t, _a, _c, _k, SPC, _t, _h, _e, SPC, _e, _n, _e, _m, _y, SPC, NWL, @@ -616,61 +695,87 @@ u16 gMsg_ID_1340[64] = { _F, _o, _x, EXM, NWL, END, }; +// It'll be a piece of +// cake, General! u16 gMsg_ID_1350[36] = { _I, _t, APS, _l, _l, SPC, _b, _e, SPC, _a, SPC, _p, _i, _e, _c, _e, SPC, _o, _f, NWL, _c, _a, _k, _e, CMA, SPC, _G, _e, _n, _e, _r, _a, _l, EXM, NWL, END, }; +// Katina is battling +// the enemy. Will you +// help 'em out? u16 gMsg_ID_1360[54] = { _K, _a, _t, _i, _n, _a, SPC, _i, _s, SPC, _b, _a, _t, _t, _l, _i, _n, _g, NWL, _t, _h, _e, SPC, _e, _n, _e, _m, _y, PRD, SPC, _W, _i, _l, _l, SPC, _y, _o, _u, NWL, _h, _e, _l, _p, SPC, APS, _e, _m, SPC, _o, _u, _t, QST, NWL, END, }; +// Affirmative, General. u16 gMsg_ID_1370[24] = { _A, _f, _f, _i, _r, _m, _a, _t, _i, _v, _e, CMA, SPC, _G, _e, _n, _e, _r, _a, _l, PRD, NWL, END, }; +// Star Fox, I want you +// to take out the +// enemy bio-weapon! u16 gMsg_ID_1380[56] = { _S, _t, _a, _r, SPC, _F, _o, _x, CMA, SPC, _I, SPC, _w, _a, _n, _t, SPC, _y, _o, _u, NWL, _t, _o, SPC, _t, _a, _k, _e, SPC, _o, _u, _t, SPC, _t, _h, _e, NWL, _e, _n, _e, _m, _y, SPC, _b, _i, _o, DSH, _w, _e, _a, _p, _o, _n, EXM, NWL, END, }; +// Yes, sir. Deploy the +// Blue-Marine! u16 gMsg_ID_1390[36] = { _Y, _e, _s, CMA, SPC, _s, _i, _r, PRD, SPC, _D, _e, _p, _l, _o, _y, SPC, _t, _h, _e, NWL, _B, _l, _u, _e, DSH, _M, _a, _r, _i, _n, _e, EXM, NWL, END, }; +// There's an enemy base +// there?! u16 gMsg_ID_1400[32] = { _T, _h, _e, _r, _e, APS, _s, SPC, _a, _n, SPC, _e, _n, _e, _m, _y, SPC, _b, _a, _s, _e, NWL, _t, _h, _e, _r, _e, QST, EXM, NWL, END, }; +// Affirmative, General. u16 gMsg_ID_1410[24] = { _A, _f, _f, _i, _r, _m, _a, _t, _i, _v, _e, CMA, SPC, _G, _e, _n, _e, _r, _a, _l, PRD, NWL, END, }; +// The enemy army is +// gunning for you. +// Be careful! u16 gMsg_ID_1420[48] = { _T, _h, _e, SPC, _e, _n, _e, _m, _y, SPC, _a, _r, _m, _y, SPC, _i, _s, NWL, _g, _u, _n, _n, _i, _n, _g, SPC, _f, _o, _r, SPC, _y, _o, _u, PRD, NWL, _B, _e, SPC, _c, _a, _r, _e, _f, _u, _l, EXM, NWL, END, }; +// Don't worry, sir! u16 gMsg_ID_1430[20] = { _D, _o, _n, APS, _t, SPC, _w, _o, _r, _r, _y, CMA, SPC, _s, _i, _r, EXM, NWL, END, }; +// Fox, we're under +// attack! Help us +// out here! u16 gMsg_ID_1440[46] = { _F, _o, _x, CMA, SPC, _w, _e, APS, _r, _e, SPC, _u, _n, _d, _e, _r, NWL, _a, _t, _t, _a, _c, _k, EXM, SPC, SPC, _H, _e, _l, _p, SPC, _u, _s, NWL, _o, _u, _t, SPC, _h, _e, _r, _e, EXM, NWL, END, }; +// I'm on my way! u16 gMsg_ID_1450[16] = { _I, APS, _m, SPC, _o, _n, SPC, _m, _y, SPC, _w, _a, _y, EXM, NWL, END, }; +// That area's an oven! +// Don't go burning that +// Arwing! Be +// reasonable, Fox! u16 gMsg_ID_1460[74] = { _T, _h, _a, _t, SPC, _a, _r, _e, _a, APS, _s, SPC, _a, _n, SPC, _o, _v, _e, _n, EXM, NWL, _D, _o, _n, APS, _t, SPC, _g, _o, SPC, _b, _u, _r, _n, _i, _n, _g, SPC, _t, _h, _a, _t, NWL, @@ -678,3300 +783,4575 @@ u16 gMsg_ID_1460[74] = { _r, _e, _a, _s, _o, _n, _a, _b, _l, _e, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// I'll be careful. u16 gMsg_ID_1470[18] = { _I, APS, _l, _l, SPC, _b, _e, SPC, _c, _a, _r, _e, _f, _u, _l, PRD, NWL, END, }; +// Open the wings. u16 gMsg_ID_2005[18] = { PRI2, _O, _p, _e, _n, SPC, _t, _h, _e, SPC, _w, _i, _n, _g, _s, PRD, NWL, END, }; +// Check your +// G-Diffuser system! u16 gMsg_ID_2010[34] = { PRI2, _C, _h, _e, _c, _k, SPC, _y, _o, _u, _r, SPC, NWL, _G, DSH, _D, _i, _f, _f, _u, _s, _e, _r, SPC, _s, _y, _s, _t, _e, _m, EXM, NWL, END, }; +// Falco here. +// I'm fine. u16 gMsg_ID_2020[26] = { PRI2, _F, _a, _l, _c, _o, SPC, _h, _e, _r, _e, PRD, SPC, NWL, _I, APS, _m, SPC, _f, _i, _n, _e, PRD, NWL, END, }; +// This is Peppy. +// All systems go. u16 gMsg_ID_2030[34] = { PRI2, _T, _h, _i, _s, SPC, _i, _s, SPC, _P, _e, _p, _p, _y, PRD, SPC, NWL, _A, _l, _l, SPC, _s, _y, _s, _t, _e, _m, _s, SPC, _g, _o, PRD, NWL, END, }; +// Slippy here. +// I'm OK. u16 gMsg_ID_2040[24] = { PRI2, _S, _l, _i, _p, _p, _y, SPC, _h, _e, _r, _e, PRD, SPC, NWL, _I, APS, _m, SPC, _O, _K, PRD, NWL, END, }; +// I see 'em up ahead! +// Let's rock and roll! u16 gMsg_ID_2050[44] = { PRI2, _I, SPC, _s, _e, _e, SPC, APS, _e, _m, SPC, _u, _p, SPC, _a, _h, _e, _a, _d, EXM, NWL, _L, _e, _t, APS, _s, SPC, _r, _o, _c, _k, SPC, _a, _n, _d, SPC, _r, _o, _l, _l, EXM, NWL, END, }; +// We're entering +// Corneria City now! u16 gMsg_ID_2055[36] = { PRI1, _W, _e, APS, _r, _e, SPC, _e, _n, _t, _e, _r, _i, _n, _g, NWL, _C, _o, _r, _n, _e, _r, _i, _a, SPC, _C, _i, _t, _y, SPC, _n, _o, _w, EXM, NWL, END, }; +// This is horrible... u16 gMsg_ID_2058[22] = { PRI1, _T, _h, _i, _s, SPC, _i, _s, SPC, _h, _o, _r, _r, _i, _b, _l, _e, PRD, PRD, PRD, NWL, END, }; +// Slippy, watch out! +// Bogey on your tail! u16 gMsg_ID_2061[42] = { PRI1, _S, _l, _i, _p, _p, _y, CMA, SPC, _w, _a, _t, _c, _h, SPC, _o, _u, _t, EXM, SPC, NWL, _B, _o, _g, _e, _y, SPC, _o, _n, SPC, _y, _o, _u, _r, SPC, _t, _a, _i, _l, EXM, NWL, END, }; +// Whoa! Help me! u16 gMsg_ID_2062[18] = { PRI1, _W, _h, _o, _a, EXM, SPC, _H, _e, _l, _p, SPC, _m, _e, EXM, NWL, END, }; +// Don't be doing +// anything foolish! u16 gMsg_ID_2080[36] = { PRI1, _D, _o, _n, APS, _t, SPC, _b, _e, SPC, _d, _o, _i, _n, _g, NWL, _a, _n, _y, _t, _h, _i, _n, _g, SPC, _f, _o, _o, _l, _i, _s, _h, EXM, NWL, END, }; +// Gotcha! u16 gMsg_ID_2090[10] = { PRI1, _G, _o, _t, _c, _h, _a, EXM, NWL, END, }; +// Back off, Fox! u16 gMsg_ID_2095[18] = { PRI1, _B, _a, _c, _k, SPC, _o, _f, _f, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// Do a barrel roll +// (Z or R twice)! u16 gMsg_ID_2110[36] = { PRI1, _D, _o, SPC, _a, SPC, _b, _a, _r, _r, _e, _l, SPC, _r, _o, _l, _l, SPC, NWL, LPR, _Z, SPC, _o, _r, SPC, _R, SPC, _t, _w, _i, _c, _e, RPR, EXM, NWL, END, }; +// You've got an enemy +// on your tail! u16 gMsg_ID_2115[38] = { PRI1, _Y, _o, _u, APS, _v, _e, SPC, _g, _o, _t, SPC, _a, _n, SPC, _e, _n, _e, _m, _y, SPC, NWL, _o, _n, SPC, _y, _o, _u, _r, SPC, _t, _a, _i, _l, EXM, NWL, END, }; +// Use the brake +// (press the Cv (Cv) +// Button)! u16 gMsg_ID_2118[42] = { PRI1, _U, _s, _e, SPC, _t, _h, _e, SPC, _b, _r, _a, _k, _e, NWL, LPR, _p, _r, _e, _s, _s, SPC, _t, _h, _e, SPC, _C, ADN, SPC, CDN, NWL, _B, _u, _t, _t, _o, _n, RPR, EXM, NWL, END, }; +// Follow your +// father's example, +// Fox! u16 gMsg_ID_2140[40] = { PRI1, _F, _o, _l, _l, _o, _w, SPC, _y, _o, _u, _r, SPC, NWL, _f, _a, _t, _h, _e, _r, APS, _s, SPC, _e, _x, _a, _m, _p, _l, _e, CMA, SPC, NWL, _F, _o, _x, EXM, NWL, END, }; +// I'll take this one. +// Get the one behind +// me! u16 gMsg_ID_2165[46] = { PRI1, _I, APS, _l, _l, SPC, _t, _a, _k, _e, SPC, _t, _h, _i, _s, SPC, _o, _n, _e, PRD, NWL, _G, _e, _t, SPC, _t, _h, _e, SPC, _o, _n, _e, SPC, _b, _e, _h, _i, _n, _d, NWL, _m, _e, EXM, NWL, END, }; +// I could use some +// help here, Fox! u16 gMsg_ID_2166[36] = { PRI1, _I, SPC, _c, _o, _u, _l, _d, SPC, _u, _s, _e, SPC, _s, _o, _m, _e, SPC, NWL, _h, _e, _l, _p, SPC, _h, _e, _r, _e, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// Something's wrong +// with the G-Diffuser! u16 gMsg_ID_2167[42] = { PRI1, _S, _o, _m, _e, _t, _h, _i, _n, _g, APS, _s, SPC, _w, _r, _o, _n, _g, NWL, _w, _i, _t, _h, SPC, _t, _h, _e, SPC, _G, DSH, _D, _i, _f, _f, _u, _s, _e, _r, EXM, NWL, END, }; +// Pretty smooth +// flying, Fox. u16 gMsg_ID_2180[30] = { PRI1, _P, _r, _e, _t, _t, _y, SPC, _s, _m, _o, _o, _t, _h, SPC, NWL, _f, _l, _y, _i, _n, _g, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Follow me, Fox! u16 gMsg_ID_2181[18] = { PRI1, _F, _o, _l, _l, _o, _w, SPC, _m, _e, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// Falco, where ya +// going? u16 gMsg_ID_2185[26] = { PRI2, _F, _a, _l, _c, _o, CMA, SPC, _w, _h, _e, _r, _e, SPC, _y, _a, SPC, NWL, _g, _o, _i, _n, _g, QST, NWL, END, }; +// I found the target! +// Try to keep up. u16 gMsg_ID_2188[38] = { PRI2, _I, SPC, _f, _o, _u, _n, _d, SPC, _t, _h, _e, SPC, _t, _a, _r, _g, _e, _t, EXM, NWL, _T, _r, _y, SPC, _t, _o, SPC, _k, _e, _e, _p, SPC, _u, _p, PRD, NWL, END, }; +// Enemy robot +// dead ahead. u16 gMsg_ID_2200[26] = { PRI2, _E, _n, _e, _m, _y, SPC, _r, _o, _b, _o, _t, NWL, _d, _e, _a, _d, SPC, _a, _h, _e, _a, _d, PRD, NWL, END, }; +// Let's go! u16 gMsg_ID_2210[12] = { PRI1, _L, _e, _t, APS, _s, SPC, _g, _o, EXM, NWL, END, }; +// You annoying +// little flies! u16 gMsg_ID_2220[30] = { PRI1, _Y, _o, _u, SPC, _a, _n, _n, _o, _y, _i, _n, _g, SPC, NWL, _l, _i, _t, _t, _l, _e, SPC, _f, _l, _i, _e, _s, EXM, NWL, END, }; +// Enemy shield +// analyzed. u16 gMsg_ID_2225[26] = { PRI2, _E, _n, _e, _m, _y, SPC, _s, _h, _i, _e, _l, _d, NWL, _a, _n, _a, _l, _y, _z, _e, _d, PRD, NWL, END, }; +// Aim for his back! u16 gMsg_ID_2230[20] = { PRI2, _A, _i, _m, SPC, _f, _o, _r, SPC, _h, _i, _s, SPC, _b, _a, _c, _k, EXM, NWL, END, }; +// Move it, Fox! He's +// right behind you! u16 gMsg_ID_2233[40] = { PRI1, _M, _o, _v, _e, SPC, _i, _t, CMA, SPC, _F, _o, _x, EXM, SPC, _H, _e, APS, _s, NWL, _r, _i, _g, _h, _t, SPC, _b, _e, _h, _i, _n, _d, SPC, _y, _o, _u, EXM, NWL, END, }; +// Quit screwing +// around! Do +// something! u16 gMsg_ID_2282[38] = { PRI1, _Q, _u, _i, _t, SPC, _s, _c, _r, _e, _w, _i, _n, _g, NWL, _a, _r, _o, _u, _n, _d, EXM, SPC, _D, _o, NWL, _s, _o, _m, _e, _t, _h, _i, _n, _g, EXM, NWL, END, }; +// Ah, so this is +// Star Fox? u16 gMsg_ID_2240[28] = { PRI2, _A, _h, CMA, SPC, _s, _o, SPC, _t, _h, _i, _s, SPC, _i, _s, NWL, _S, _t, _a, _r, SPC, _F, _o, _x, QST, NWL, END, }; +// I'm going to crush +// you! u16 gMsg_ID_2250[26] = { PRI1, _I, APS, _m, SPC, _g, _o, _i, _n, _g, SPC, _t, _o, SPC, _c, _r, _u, _s, _h, NWL, _y, _o, _u, EXM, NWL, END, }; +// Those who cross +// Andross will die! u16 gMsg_ID_2260[36] = { PRI1, _T, _h, _o, _s, _e, SPC, _w, _h, _o, SPC, _c, _r, _o, _s, _s, NWL, _A, _n, _d, _r, _o, _s, _s, SPC, _w, _i, _l, _l, SPC, _d, _i, _e, EXM, NWL, END, }; +// Stop moving so I +// can squash you! u16 gMsg_ID_2263[36] = { PRI1, _S, _t, _o, _p, SPC, _m, _o, _v, _i, _n, _g, SPC, _s, _o, SPC, _I, SPC, NWL, _c, _a, _n, SPC, _s, _q, _u, _a, _s, _h, SPC, _y, _o, _u, EXM, NWL, END, }; +// You are starting +// to annoy me. u16 gMsg_ID_2265[34] = { PRI1, _Y, _o, _u, SPC, _a, _r, _e, SPC, _s, _t, _a, _r, _t, _i, _n, _g, SPC, NWL, _t, _o, SPC, _a, _n, _n, _o, _y, SPC, _m, _e, PRD, NWL, END, }; +// No!!! u16 gMsg_ID_2270[8] = { PRI1, _N, _o, EXM, EXM, EXM, NWL, END, }; +// I will not be +// defeated by this +// worm! u16 gMsg_ID_2275[40] = { PRI1, _I, SPC, _w, _i, _l, _l, SPC, _n, _o, _t, SPC, _b, _e, NWL, _d, _e, _f, _e, _a, _t, _e, _d, SPC, _b, _y, SPC, _t, _h, _i, _s, NWL, _w, _o, _r, _m, EXM, NWL, END, }; +// My emperor... +// I've failed you! u16 gMsg_ID_2280[34] = { PRI2, _M, _y, SPC, _e, _m, _p, _e, _r, _o, _r, PRD, PRD, PRD, NWL, _I, APS, _v, _e, SPC, _f, _a, _i, _l, _e, _d, SPC, _y, _o, _u, EXM, NWL, END, }; +// Ah..someone +// wants to play! u16 gMsg_ID_2290[30] = { PRI1, _A, _h, PRD, PRD, _s, _o, _m, _e, _o, _n, _e, NWL, _w, _a, _n, _t, _s, SPC, _t, _o, SPC, _p, _l, _a, _y, EXM, NWL, END, }; +// Deploy all units! +// CHARGE!!! u16 gMsg_ID_2291[30] = { PRI1, _D, _e, _p, _l, _o, _y, SPC, _a, _l, _l, SPC, _u, _n, _i, _t, _s, EXM, NWL, _C, _H, _A, _R, _G, _E, EXM, EXM, EXM, NWL, END, }; +// I've got a present +// for ya! u16 gMsg_ID_2292[30] = { PRI2, _I, APS, _v, _e, SPC, _g, _o, _t, SPC, _a, SPC, _p, _r, _e, _s, _e, _n, _t, NWL, _f, _o, _r, SPC, _y, _a, EXM, NWL, END, }; +// Go!! u16 gMsg_ID_2293[8] = { PRI1, _G, _o, EXM, EXM, NWL, END, }; +// Who are you guys? u16 gMsg_ID_2294[20] = { PRI1, _W, _h, _o, SPC, _a, _r, _e, SPC, _y, _o, _u, SPC, _g, _u, _y, _s, QST, NWL, END, }; +// We're Star Fox! u16 gMsg_ID_2295[18] = { PRI1, _W, _e, APS, _r, _e, SPC, _S, _t, _a, _r, SPC, _F, _o, _x, EXM, NWL, END, }; +// You'll never +// defeat Andross! u16 gMsg_ID_2296[32] = { PRI2, _Y, _o, _u, APS, _l, _l, SPC, _n, _e, _v, _e, _r, SPC, NWL, _d, _e, _f, _e, _a, _t, SPC, _A, _n, _d, _r, _o, _s, _s, EXM, NWL, END, }; +// Incoming enemy +// from the rear! +// Drop altitude! u16 gMsg_ID_2298[48] = { PRI1, _I, _n, _c, _o, _m, _i, _n, _g, SPC, _e, _n, _e, _m, _y, SPC, NWL, _f, _r, _o, _m, SPC, _t, _h, _e, SPC, _r, _e, _a, _r, EXM, NWL, _D, _r, _o, _p, SPC, _a, _l, _t, _i, _t, _u, _d, _e, EXM, NWL, END, }; +// Aim for the open +// spot! u16 gMsg_ID_2299[26] = { PRI2, _A, _i, _m, SPC, _f, _o, _r, SPC, _t, _h, _e, SPC, _o, _p, _e, _n, NWL, _s, _p, _o, _t, EXM, NWL, END, }; +// You did it! I was +// worried for a +// moment. u16 gMsg_ID_2300[44] = { PRI1, _Y, _o, _u, SPC, _d, _i, _d, SPC, _i, _t, EXM, SPC, _I, SPC, _w, _a, _s, NWL, _w, _o, _r, _r, _i, _e, _d, SPC, _f, _o, _r, SPC, _a, SPC, NWL, _m, _o, _m, _e, _n, _t, PRD, NWL, END, }; +// There ya go! u16 gMsg_ID_2305[16] = { PRI1, _T, _h, _e, _r, _e, SPC, _y, _a, SPC, _g, _o, EXM, NWL, END, }; +// You're becoming +// more like your +// father. u16 gMsg_ID_2310[42] = { PRI1, _Y, _o, _u, APS, _r, _e, SPC, _b, _e, _c, _o, _m, _i, _n, _g, NWL, _m, _o, _r, _e, SPC, _l, _i, _k, _e, SPC, _y, _o, _u, _r, NWL, _f, _a, _t, _h, _e, _r, PRD, NWL, END, }; +// I'm fine. You OK +// over there, Fox? u16 gMsg_ID_2320[38] = { PRI1, _I, APS, _m, SPC, _f, _i, _n, _e, PRD, SPC, _Y, _o, _u, SPC, _O, _K, SPC, NWL, _o, _v, _e, _r, SPC, _t, _h, _e, _r, _e, CMA, SPC, _F, _o, _x, QST, NWL, END, }; +// We're heading out. +// All aircraft report! u16 gMsg_ID_2335[44] = { PRI1, _W, _e, APS, _r, _e, SPC, _h, _e, _a, _d, _i, _n, _g, SPC, _o, _u, _t, PRD, SPC, NWL, _A, _l, _l, SPC, _a, _i, _r, _c, _r, _a, _f, _t, SPC, _r, _e, _p, _o, _r, _t, EXM, NWL, END, }; +// Thanks, Fox! I +// thought they had me! u16 gMsg_ID_2336[38] = { PRI2, _T, _h, _a, _n, _k, _s, CMA, SPC, _F, _o, _x, EXM, SPC, _I, NWL, _t, _h, _o, _u, _g, _h, _t, SPC, _t, _h, _e, _y, SPC, _h, _a, _d, SPC, _m, _e, EXM, NWL, END, }; +// I guess I should +// be thankful. u16 gMsg_ID_2337[34] = { PRI2, _I, SPC, _g, _u, _e, _s, _s, SPC, _I, SPC, _s, _h, _o, _u, _l, _d, SPC, NWL, _b, _e, SPC, _t, _h, _a, _n, _k, _f, _u, _l, PRD, NWL, END, }; +// Things are starting +// to heat up! u16 gMsg_ID_3005[36] = { PRI1, _T, _h, _i, _n, _g, _s, SPC, _a, _r, _e, SPC, _s, _t, _a, _r, _t, _i, _n, _g, SPC, NWL, _t, _o, SPC, _h, _e, _a, _t, SPC, _u, _p, EXM, NWL, END, }; +// Quit dinkin' +// around, Slip! u16 gMsg_ID_3010[30] = { PRI1, _Q, _u, _i, _t, SPC, _d, _i, _n, _k, _i, _n, APS, NWL, _a, _r, _o, _u, _n, _d, CMA, SPC, _S, _l, _i, _p, EXM, NWL, END, }; +// We're headin' into +// the asteroids. u16 gMsg_ID_3015[36] = { PRI2, _W, _e, APS, _r, _e, SPC, _h, _e, _a, _d, _i, _n, APS, SPC, _i, _n, _t, _o, NWL, _t, _h, _e, SPC, _a, _s, _t, _e, _r, _o, _i, _d, _s, PRD, NWL, END, }; +// Here comes a BIG +// one! u16 gMsg_ID_3020[24] = { PRI1, _H, _e, _r, _e, SPC, _c, _o, _m, _e, _s, SPC, _a, SPC, _B, _I, _G, NWL, _o, _n, _e, EXM, NWL, END, }; +// It's quiet. +// Too quiet. u16 gMsg_ID_3025[26] = { PRI1, _I, _t, APS, _s, SPC, _q, _u, _i, _e, _t, PRD, NWL, _T, _o, _o, SPC, _q, _u, _i, _e, _t, PRD, NWL, END, }; +// Be careful! +// It's a trap! u16 gMsg_ID_3026[28] = { PRI1, _B, _e, SPC, _c, _a, _r, _e, _f, _u, _l, EXM, NWL, _I, _t, APS, _s, SPC, _a, SPC, _t, _r, _a, _p, EXM, NWL, END, }; +// Just shoot it, Fox! u16 gMsg_ID_3040[22] = { PRI1, _J, _u, _s, _t, SPC, _s, _h, _o, _o, _t, SPC, _i, _t, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// Don't mess up +// that Arwing! u16 gMsg_ID_3041[30] = { PRI1, _D, _o, _n, APS, _t, SPC, _m, _e, _s, _s, SPC, _u, _p, NWL, _t, _h, _a, _t, SPC, _A, _r, _w, _i, _n, _g, EXM, NWL, END, }; +// Whoa! Can you +// make it? u16 gMsg_ID_3042[26] = { PRI1, _W, _h, _o, _a, EXM, SPC, _C, _a, _n, SPC, _y, _o, _u, SPC, NWL, _m, _a, _k, _e, SPC, _i, _t, QST, NWL, END, }; +// The enemy's coming +// from behind. u16 gMsg_ID_3050[34] = { PRI1, _T, _h, _e, SPC, _e, _n, _e, _m, _y, APS, _s, SPC, _c, _o, _m, _i, _n, _g, NWL, _f, _r, _o, _m, SPC, _b, _e, _h, _i, _n, _d, PRD, NWL, END, }; +// I guess it's your +// turn to be thankful. u16 gMsg_ID_3100[42] = { PRI1, _I, SPC, _g, _u, _e, _s, _s, SPC, _i, _t, APS, _s, SPC, _y, _o, _u, _r, NWL, _t, _u, _r, _n, SPC, _t, _o, SPC, _b, _e, SPC, _t, _h, _a, _n, _k, _f, _u, _l, PRD, NWL, END, }; +// You want a piece +// of me?! u16 gMsg_ID_3110[28] = { PRI1, _Y, _o, _u, SPC, _w, _a, _n, _t, SPC, _a, SPC, _p, _i, _e, _c, _e, NWL, _o, _f, SPC, _m, _e, QST, EXM, NWL, END, }; +// Take that! u16 gMsg_ID_3120[14] = { PRI1, _T, _a, _k, _e, SPC, _t, _h, _a, _t, EXM, NWL, END, }; +// I cannot allow you +// to go any further. u16 gMsg_ID_3300[40] = { PRI2, _I, SPC, _c, _a, _n, _n, _o, _t, SPC, _a, _l, _l, _o, _w, SPC, _y, _o, _u, NWL, _t, _o, SPC, _g, _o, SPC, _a, _n, _y, SPC, _f, _u, _r, _t, _h, _e, _r, PRD, NWL, END, }; +// Let's see what +// you've got. u16 gMsg_ID_3310[30] = { PRI1, _L, _e, _t, APS, _s, SPC, _s, _e, _e, SPC, _w, _h, _a, _t, SPC, NWL, _y, _o, _u, APS, _v, _e, SPC, _g, _o, _t, PRD, NWL, END, }; +// That shield is +// absorbing the +// laser! u16 gMsg_ID_3315[40] = { PRI1, _T, _h, _a, _t, SPC, _s, _h, _i, _e, _l, _d, SPC, _i, _s, NWL, _a, _b, _s, _o, _r, _b, _i, _n, _g, SPC, _t, _h, _e, SPC, NWL, _l, _a, _s, _e, _r, EXM, NWL, END, }; +// I've underestimated +// you. u16 gMsg_ID_3320[28] = { PRI1, _I, APS, _v, _e, SPC, _u, _n, _d, _e, _r, _e, _s, _t, _i, _m, _a, _t, _e, _d, NWL, _y, _o, _u, PRD, NWL, END, }; +// How about this? u16 gMsg_ID_3321[18] = { PRI1, _H, _o, _w, SPC, _a, _b, _o, _u, _t, SPC, _t, _h, _i, _s, QST, NWL, END, }; +// I'm no match +// for you. u16 gMsg_ID_3322[24] = { PRI1, _I, APS, _m, SPC, _n, _o, SPC, _m, _a, _t, _c, _h, NWL, _f, _o, _r, SPC, _y, _o, _u, PRD, NWL, END, }; +// I admit defeat. u16 gMsg_ID_3330[18] = { PRI1, _I, SPC, _a, _d, _m, _i, _t, SPC, _d, _e, _f, _e, _a, _t, PRD, NWL, END, }; +// Are you gonna +// listen to that +// monkey? u16 gMsg_ID_3340[40] = { PRI1, _A, _r, _e, SPC, _y, _o, _u, SPC, _g, _o, _n, _n, _a, NWL, _l, _i, _s, _t, _e, _n, SPC, _t, _o, SPC, _t, _h, _a, _t, NWL, _m, _o, _n, _k, _e, _y, QST, NWL, END, }; +// Ha ha! You're not +// as stupid as you +// look! u16 gMsg_ID_3345[46] = { PRI1, _H, _a, SPC, _h, _a, EXM, SPC, _Y, _o, _u, APS, _r, _e, SPC, _n, _o, _t, SPC, NWL, _a, _s, SPC, _s, _t, _u, _p, _i, _d, SPC, _a, _s, SPC, _y, _o, _u, SPC, NWL, _l, _o, _o, _k, EXM, NWL, END, }; +// If this does +// not work... u16 gMsg_ID_3350[28] = { PRI1, _I, _f, SPC, _t, _h, _i, _s, SPC, _d, _o, _e, _s, SPC, NWL, _n, _o, _t, SPC, _w, _o, _r, _k, PRD, PRD, PRD, NWL, END, }; +// Sorry to jet, but +// I'm in a hurry! u16 gMsg_ID_3360[36] = { PRI1, _S, _o, _r, _r, _y, SPC, _t, _o, SPC, _j, _e, _t, CMA, SPC, _b, _u, _t, NWL, _I, APS, _m, SPC, _i, _n, SPC, _a, SPC, _h, _u, _r, _r, _y, EXM, NWL, END, }; +// I can't believe I +// lost to this scum!! u16 gMsg_ID_3370[40] = { PRI1, _I, SPC, _c, _a, _n, APS, _t, SPC, _b, _e, _l, _i, _e, _v, _e, SPC, _I, NWL, _l, _o, _s, _t, SPC, _t, _o, SPC, _t, _h, _i, _s, SPC, _s, _c, _u, _m, EXM, EXM, NWL, END, }; +// You're more +// cunning than I +// thought. u16 gMsg_ID_3371[38] = { PRI1, _Y, _o, _u, APS, _r, _e, SPC, _m, _o, _r, _e, NWL, _c, _u, _n, _n, _i, _n, _g, SPC, _t, _h, _a, _n, SPC, _I, NWL, _t, _h, _o, _u, _g, _h, _t, PRD, NWL, END, }; +// Give me Slippy's +// location, ROB. u16 gMsg_ID_4010[34] = { PRI2, _G, _i, _v, _e, SPC, _m, _e, SPC, _S, _l, _i, _p, _p, _y, APS, _s, NWL, _l, _o, _c, _a, _t, _i, _o, _n, CMA, SPC, _R, _O, _B, PRD, NWL, END, }; +// Life form indicated +// at 12 o'clock. u16 gMsg_ID_4011[38] = { PRI2, _L, _i, _f, _e, SPC, _f, _o, _r, _m, SPC, _i, _n, _d, _i, _c, _a, _t, _e, _d, NWL, _a, _t, SPC, _1, _2, SPC, _o, APS, _c, _l, _o, _c, _k, PRD, NWL, END, }; +// There's rocky +// terrain dead ahead! u16 gMsg_ID_4012[38] = { PRI2, _T, _h, _e, _r, _e, APS, _s, SPC, _r, _o, _c, _k, _y, SPC, NWL, _t, _e, _r, _r, _a, _i, _n, SPC, _d, _e, _a, _d, SPC, _a, _h, _e, _a, _d, EXM, NWL, END, }; +// A magnetic storm! +// We'll search here. u16 gMsg_ID_4013[40] = { PRI2, _A, SPC, _m, _a, _g, _n, _e, _t, _i, _c, SPC, _s, _t, _o, _r, _m, EXM, NWL, _W, _e, APS, _l, _l, SPC, _s, _e, _a, _r, _c, _h, SPC, _h, _e, _r, _e, PRD, NWL, END, }; +// I think you look +// better in a tank. u16 gMsg_ID_4020[38] = { PRI2, _I, SPC, _t, _h, _i, _n, _k, SPC, _y, _o, _u, SPC, _l, _o, _o, _k, NWL, _b, _e, _t, _t, _e, _r, SPC, _i, _n, SPC, _a, SPC, _t, _a, _n, _k, PRD, NWL, END, }; +// He can sure be +// a pain in the neck. u16 gMsg_ID_4021[38] = { PRI2, _H, _e, SPC, _c, _a, _n, SPC, _s, _u, _r, _e, SPC, _b, _e, NWL, _a, SPC, _p, _a, _i, _n, SPC, _i, _n, SPC, _t, _h, _e, SPC, _n, _e, _c, _k, PRD, NWL, END, }; +// Why don't you come +// down here, Falco? u16 gMsg_ID_4022[40] = { PRI2, _W, _h, _y, SPC, _d, _o, _n, APS, _t, SPC, _y, _o, _u, SPC, _c, _o, _m, _e, NWL, _d, _o, _w, _n, SPC, _h, _e, _r, _e, CMA, SPC, _F, _a, _l, _c, _o, QST, NWL, END, }; +// I'll pass, Fox. u16 gMsg_ID_4023[18] = { PRI2, _I, APS, _l, _l, SPC, _p, _a, _s, _s, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Don't go too fast, +// Falco. u16 gMsg_ID_4024[28] = { PRI2, _D, _o, _n, APS, _t, SPC, _g, _o, SPC, _t, _o, _o, SPC, _f, _a, _s, _t, CMA, NWL, _F, _a, _l, _c, _o, PRD, NWL, END, }; +// Try hovering +// (Z and R). u16 gMsg_ID_4030[26] = { PRI1, _T, _r, _y, SPC, _h, _o, _v, _e, _r, _i, _n, _g, NWL, LPR, _Z, SPC, _a, _n, _d, SPC, _R, RPR, PRD, NWL, END, }; +// Enemy fighters +// comin' at you, Fox. u16 gMsg_ID_4031[38] = { PRI1, _E, _n, _e, _m, _y, SPC, _f, _i, _g, _h, _t, _e, _r, _s, NWL, _c, _o, _m, _i, _n, APS, SPC, _a, _t, SPC, _y, _o, _u, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Are you OK? u16 gMsg_ID_4040[14] = { PRI1, _A, _r, _e, SPC, _y, _o, _u, SPC, _O, _K, QST, NWL, END, }; +// Don't be dead, Slip. u16 gMsg_ID_4050[24] = { PRI1, _D, _o, _n, APS, _t, SPC, _b, _e, SPC, _d, _e, _a, _d, CMA, SPC, _S, _l, _i, _p, PRD, NWL, END, }; +// Incoming! u16 gMsg_ID_4075[12] = { PRI1, _I, _n, _c, _o, _m, _i, _n, _g, EXM, NWL, END, }; +// You OK? Hold +// together. Just a +// bit further. u16 gMsg_ID_4080[46] = { PRI1, _Y, _o, _u, SPC, _O, _K, QST, SPC, _H, _o, _l, _d, NWL, _t, _o, _g, _e, _t, _h, _e, _r, PRD, SPC, _J, _u, _s, _t, SPC, _a, NWL, _b, _i, _t, SPC, _f, _u, _r, _t, _h, _e, _r, PRD, NWL, END, }; +// Is that you, +// Slippy? u16 gMsg_ID_4082[24] = { PRI1, _I, _s, SPC, _t, _h, _a, _t, SPC, _y, _o, _u, CMA, NWL, _S, _l, _i, _p, _p, _y, QST, NWL, END, }; +// I'll be there soon. u16 gMsg_ID_4083[22] = { PRI1, _I, APS, _l, _l, SPC, _b, _e, SPC, _t, _h, _e, _r, _e, SPC, _s, _o, _o, _n, PRD, NWL, END, }; +// Go for the chest! u16 gMsg_ID_4091[20] = { PRI1, _G, _o, SPC, _f, _o, _r, SPC, _t, _h, _e, SPC, _c, _h, _e, _s, _t, EXM, NWL, END, }; +// Data analysis +// complete. Here +// it comes. u16 gMsg_ID_4092[42] = { PRI2, _D, _a, _t, _a, SPC, _a, _n, _a, _l, _y, _s, _i, _s, NWL, _c, _o, _m, _p, _l, _e, _t, _e, PRD, SPC, _H, _e, _r, _e, NWL, _i, _t, SPC, _c, _o, _m, _e, _s, PRD, NWL, END, }; +// Do something! u16 gMsg_ID_4093[16] = { PRI1, _D, _o, SPC, _s, _o, _m, _e, _t, _h, _i, _n, _g, EXM, NWL, END, }; +// Let me get a piece +// of that action, +// Fox! u16 gMsg_ID_4094[44] = { PRI1, _L, _e, _t, SPC, _m, _e, SPC, _g, _e, _t, SPC, _a, SPC, _p, _i, _e, _c, _e, NWL, _o, _f, SPC, _t, _h, _a, _t, SPC, _a, _c, _t, _i, _o, _n, CMA, SPC, NWL, _F, _o, _x, EXM, NWL, END, }; +// Take out his +// arms, Fox. u16 gMsg_ID_4095[28] = { PRI1, _T, _a, _k, _e, SPC, _o, _u, _t, SPC, _h, _i, _s, SPC, NWL, _a, _r, _m, _s, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Pipe down, Slippy! +// Just hold on. u16 gMsg_ID_4096[36] = { PRI1, _P, _i, _p, _e, SPC, _d, _o, _w, _n, CMA, SPC, _S, _l, _i, _p, _p, _y, EXM, NWL, _J, _u, _s, _t, SPC, _h, _o, _l, _d, SPC, _o, _n, PRD, NWL, END, }; +// Slippy, what are you +// doing? Hurry up! u16 gMsg_ID_4097[40] = { PRI1, _S, _l, _i, _p, _p, _y, CMA, SPC, _w, _h, _a, _t, SPC, _a, _r, _e, SPC, _y, _o, _u, NWL, _d, _o, _i, _n, _g, QST, SPC, _H, _u, _r, _r, _y, SPC, _u, _p, EXM, NWL, END, }; +// It's impossible +// this way! u16 gMsg_ID_4098[30] = { PRI1, _I, _t, APS, _s, SPC, _i, _m, _p, _o, _s, _s, _i, _b, _l, _e, SPC, NWL, _t, _h, _i, _s, SPC, _w, _a, _y, EXM, NWL, END, }; +// Sure you can +// handle it, Fox? u16 gMsg_ID_4099[32] = { PRI1, _S, _u, _r, _e, SPC, _y, _o, _u, SPC, _c, _a, _n, NWL, _h, _a, _n, _d, _l, _e, SPC, _i, _t, CMA, SPC, _F, _o, _x, QST, NWL, END, }; +// I thought I was a +// goner! u16 gMsg_ID_4100[28] = { PRI1, _I, SPC, _t, _h, _o, _u, _g, _h, _t, SPC, _I, SPC, _w, _a, _s, SPC, _a, NWL, _g, _o, _n, _e, _r, EXM, NWL, END, }; +// We're always savin' +// your hide, Slip. u16 gMsg_ID_4101[40] = { PRI1, _W, _e, APS, _r, _e, SPC, _a, _l, _w, _a, _y, _s, SPC, _s, _a, _v, _i, _n, APS, NWL, _y, _o, _u, _r, SPC, _h, _i, _d, _e, CMA, SPC, _S, _l, _i, _p, PRD, NWL, END, }; +// I'm sure he's +// learned his lesson. u16 gMsg_ID_4102[38] = { PRI1, _I, APS, _m, SPC, _s, _u, _r, _e, SPC, _h, _e, APS, _s, SPC, NWL, _l, _e, _a, _r, _n, _e, _d, SPC, _h, _i, _s, SPC, _l, _e, _s, _s, _o, _n, PRD, NWL, END, }; +// When we get back, +// we'll head to Venom. u16 gMsg_ID_4103[42] = { PRI1, _W, _h, _e, _n, SPC, _w, _e, SPC, _g, _e, _t, SPC, _b, _a, _c, _k, CMA, NWL, _w, _e, APS, _l, _l, SPC, _h, _e, _a, _d, SPC, _t, _o, SPC, _V, _e, _n, _o, _m, PRD, NWL, END, }; +// I made it! I'll +// analyze right away. u16 gMsg_ID_4110[38] = { PRI1, _I, SPC, _m, _a, _d, _e, SPC, _i, _t, EXM, SPC, _I, APS, _l, _l, NWL, _a, _n, _a, _l, _y, _z, _e, SPC, _r, _i, _g, _h, _t, SPC, _a, _w, _a, _y, PRD, NWL, END, }; +// Fox!!!! u16 gMsg_ID_4111[10] = { PRI1, _F, _o, _x, EXM, EXM, EXM, EXM, NWL, END, }; +// I knew you'd +// come help me! u16 gMsg_ID_4112[30] = { PRI1, _I, SPC, _k, _n, _e, _w, SPC, _y, _o, _u, APS, _d, NWL, _c, _o, _m, _e, SPC, _h, _e, _l, _p, SPC, _m, _e, EXM, NWL, END, }; +// Deploy the +// Landmaster! u16 gMsg_ID_4113[26] = { PRI1, _D, _e, _p, _l, _o, _y, SPC, _t, _h, _e, NWL, _L, _a, _n, _d, _m, _a, _s, _t, _e, _r, EXM, NWL, END, }; +// Let's take out that +// weapon, boys. u16 gMsg_ID_5000[38] = { PRI1, _L, _e, _t, APS, _s, SPC, _t, _a, _k, _e, SPC, _o, _u, _t, SPC, _t, _h, _a, _t, SPC, NWL, _w, _e, _a, _p, _o, _n, CMA, SPC, _b, _o, _y, _s, PRD, NWL, END, }; +// Let's have a +// little fun! u16 gMsg_ID_5010[28] = { PRI1, _L, _e, _t, APS, _s, SPC, _h, _a, _v, _e, SPC, _a, SPC, NWL, _l, _i, _t, _t, _l, _e, SPC, _f, _u, _n, EXM, NWL, END, }; +// Enemy group +// behind us. Man +// they're fast! u16 gMsg_ID_5060[44] = { PRI1, _E, _n, _e, _m, _y, SPC, _g, _r, _o, _u, _p, NWL, _b, _e, _h, _i, _n, _d, SPC, _u, _s, PRD, SPC, _M, _a, _n, NWL, _t, _h, _e, _y, APS, _r, _e, SPC, _f, _a, _s, _t, EXM, NWL, END, }; +// Something's +// not right. u16 gMsg_ID_5080[26] = { PRI1, _S, _o, _m, _e, _t, _h, _i, _n, _g, APS, _s, NWL, _n, _o, _t, SPC, _r, _i, _g, _h, _t, PRD, NWL, END, }; +// We're gettin' +// close to the base. u16 gMsg_ID_5100[36] = { PRI1, _W, _e, APS, _r, _e, SPC, _g, _e, _t, _t, _i, _n, APS, NWL, _c, _l, _o, _s, _e, SPC, _t, _o, SPC, _t, _h, _e, SPC, _b, _a, _s, _e, PRD, NWL, END, }; +// Somebody beat us +// here. It's all gone! u16 gMsg_ID_5110[40] = { PRI1, _S, _o, _m, _e, _b, _o, _d, _y, SPC, _b, _e, _a, _t, SPC, _u, _s, NWL, _h, _e, _r, _e, PRD, SPC, _I, _t, APS, _s, SPC, _a, _l, _l, SPC, _g, _o, _n, _e, EXM, NWL, END, }; +// What the heck +// is that?! u16 gMsg_ID_5130[28] = { PRI1, _W, _h, _a, _t, SPC, _t, _h, _e, SPC, _h, _e, _c, _k, SPC, NWL, _i, _s, SPC, _t, _h, _a, _t, QST, EXM, NWL, END, }; +// I got tagged. My +// ears are still +// ringing. u16 gMsg_ID_5220[44] = { PRI1, _I, SPC, _g, _o, _t, SPC, _t, _a, _g, _g, _e, _d, PRD, SPC, _M, _y, NWL, _e, _a, _r, _s, SPC, _a, _r, _e, SPC, _s, _t, _i, _l, _l, SPC, NWL, _r, _i, _n, _g, _i, _n, _g, PRD, NWL, END, }; +// Thanks, Fox. u16 gMsg_ID_5230[16] = { PRI1, _T, _h, _a, _n, _k, _s, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// I can't wait to see +// this secret weapon! u16 gMsg_ID_5300[44] = { PRI1, _I, SPC, _c, _a, _n, APS, _t, SPC, _w, _a, _i, _t, SPC, _t, _o, SPC, _s, _e, _e, SPC, NWL, _t, _h, _i, _s, SPC, _s, _e, _c, _r, _e, _t, SPC, _w, _e, _a, _p, _o, _n, EXM, NWL, END, }; +// I found the gate. +// Looks like a warp. u16 gMsg_ID_5310[40] = { PRI1, _I, SPC, _f, _o, _u, _n, _d, SPC, _t, _h, _e, SPC, _g, _a, _t, _e, PRD, NWL, _L, _o, _o, _k, _s, SPC, _l, _i, _k, _e, SPC, _a, SPC, _w, _a, _r, _p, PRD, NWL, END, }; +// I'm gonna open the +// gate. Back me up! u16 gMsg_ID_5311[40] = { PRI2, _I, APS, _m, SPC, _g, _o, _n, _n, _a, SPC, _o, _p, _e, _n, SPC, _t, _h, _e, NWL, _g, _a, _t, _e, PRD, SPC, _B, _a, _c, _k, SPC, _m, _e, SPC, _u, _p, EXM, NWL, END, }; +// Bill! You're OK! u16 gMsg_ID_5312[20] = { PRI2, _B, _i, _l, _l, EXM, SPC, _Y, _o, _u, APS, _r, _e, SPC, _O, _K, EXM, NWL, END, }; +// Of course! +// I'm here to help. u16 gMsg_ID_5313[32] = { PRI2, _O, _f, SPC, _c, _o, _u, _r, _s, _e, EXM, SPC, NWL, _I, APS, _m, SPC, _h, _e, _r, _e, SPC, _t, _o, SPC, _h, _e, _l, _p, PRD, NWL, END, }; +// Take it easy, Fox. +// Don't let us down. u16 gMsg_ID_5314[40] = { PRI2, _T, _a, _k, _e, SPC, _i, _t, SPC, _e, _a, _s, _y, CMA, SPC, _F, _o, _x, PRD, NWL, _D, _o, _n, APS, _t, SPC, _l, _e, _t, SPC, _u, _s, SPC, _d, _o, _w, _n, PRD, NWL, END, }; +// Something's not +// right here. u16 gMsg_ID_5350[30] = { PRI1, _S, _o, _m, _e, _t, _h, _i, _n, _g, APS, _s, SPC, _n, _o, _t, NWL, _r, _i, _g, _h, _t, SPC, _h, _e, _r, _e, PRD, NWL, END, }; +// Who took this base +// out? u16 gMsg_ID_5360[26] = { PRI1, _W, _h, _o, SPC, _t, _o, _o, _k, SPC, _t, _h, _i, _s, SPC, _b, _a, _s, _e, NWL, _o, _u, _t, QST, NWL, END, }; +// Hurry up or you're +// toast! u16 gMsg_ID_5380[28] = { PRI1, _H, _u, _r, _r, _y, SPC, _u, _p, SPC, _o, _r, SPC, _y, _o, _u, APS, _r, _e, NWL, _t, _o, _a, _s, _t, EXM, NWL, END, }; +// I'll attack from +// the outside. u16 gMsg_ID_5400[34] = { PRI1, _I, APS, _l, _l, SPC, _a, _t, _t, _a, _c, _k, SPC, _f, _r, _o, _m, SPC, NWL, _t, _h, _e, SPC, _o, _u, _t, _s, _i, _d, _e, PRD, NWL, END, }; +// Interceptor system +// dead ahead. u16 gMsg_ID_5410[34] = { PRI1, _I, _n, _t, _e, _r, _c, _e, _p, _t, _o, _r, SPC, _s, _y, _s, _t, _e, _m, NWL, _d, _e, _a, _d, SPC, _a, _h, _e, _a, _d, PRD, NWL, END, }; +// They're everywhere! u16 gMsg_ID_5420[22] = { PRI1, _T, _h, _e, _y, APS, _r, _e, SPC, _e, _v, _e, _r, _y, _w, _h, _e, _r, _e, EXM, NWL, END, }; +// Where is the +// secret weapon? u16 gMsg_ID_5430[32] = { PRI1, _W, _h, _e, _r, _e, SPC, _i, _s, SPC, _t, _h, _e, SPC, NWL, _s, _e, _c, _r, _e, _t, SPC, _w, _e, _a, _p, _o, _n, QST, NWL, END, }; +// I'm going ahead. +// Back me up, Fox. u16 gMsg_ID_5460[38] = { PRI1, _I, APS, _m, SPC, _g, _o, _i, _n, _g, SPC, _a, _h, _e, _a, _d, PRD, SPC, NWL, _B, _a, _c, _k, SPC, _m, _e, SPC, _u, _p, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// What the heck? Fox, +// look behind you! u16 gMsg_ID_5470[40] = { PRI1, _W, _h, _a, _t, SPC, _t, _h, _e, SPC, _h, _e, _c, _k, QST, SPC, _F, _o, _x, CMA, NWL, _l, _o, _o, _k, SPC, _b, _e, _h, _i, _n, _d, SPC, _y, _o, _u, EXM, NWL, END, }; +// So this is the +// secret weapon. u16 gMsg_ID_5473[34] = { PRI1, _S, _o, SPC, _t, _h, _i, _s, SPC, _i, _s, SPC, _t, _h, _e, SPC, NWL, _s, _e, _c, _r, _e, _t, SPC, _w, _e, _a, _p, _o, _n, PRD, NWL, END, }; +// Destroy what? +// He's crazy. u16 gMsg_ID_5474[28] = { PRI1, _D, _e, _s, _t, _r, _o, _y, SPC, _w, _h, _a, _t, QST, NWL, _H, _e, APS, _s, SPC, _c, _r, _a, _z, _y, PRD, NWL, END, }; +// Let me handle this. u16 gMsg_ID_5475[22] = { PRI1, _L, _e, _t, SPC, _m, _e, SPC, _h, _a, _n, _d, _l, _e, SPC, _t, _h, _i, _s, PRD, NWL, END, }; +// Destroy. +// Destroy. u16 gMsg_ID_5492[20] = { PRI1, _D, _e, _s, _t, _r, _o, _y, PRD, NWL, _D, _e, _s, _t, _r, _o, _y, PRD, NWL, END, }; +// I will terminate +// all enemies. u16 gMsg_ID_5493[32] = { PRI1, _I, SPC, _w, _i, _l, _l, SPC, _t, _e, _r, _m, _i, _n, _a, _t, _e, NWL, _a, _l, _l, SPC, _e, _n, _e, _m, _i, _e, _s, PRD, NWL, END, }; +// You are an enemy. u16 gMsg_ID_5494[20] = { PRI1, _Y, _o, _u, SPC, _a, _r, _e, SPC, _a, _n, SPC, _e, _n, _e, _m, _y, PRD, NWL, END, }; +// Where is the +// creator?! u16 gMsg_ID_5495[26] = { PRI1, _W, _h, _e, _r, _e, SPC, _i, _s, SPC, _t, _h, _e, SPC, NWL, _c, _r, _e, _a, _t, _o, _r, QST, EXM, NWL, END, }; +// What's he saying? u16 gMsg_ID_5496[20] = { PRI1, _W, _h, _a, _t, APS, _s, SPC, _h, _e, SPC, _s, _a, _y, _i, _n, _g, QST, NWL, END, }; +// The view is clear. u16 gMsg_ID_5497[22] = { PRI1, _T, _h, _e, SPC, _v, _i, _e, _w, SPC, _i, _s, SPC, _c, _l, _e, _a, _r, PRD, NWL, END, }; +// Where is the enemy? u16 gMsg_ID_5498[22] = { PRI1, _W, _h, _e, _r, _e, SPC, _i, _s, SPC, _t, _h, _e, SPC, _e, _n, _e, _m, _y, QST, NWL, END, }; +// I must be complete. u16 gMsg_ID_5499[22] = { PRI1, _I, SPC, _m, _u, _s, _t, SPC, _b, _e, SPC, _c, _o, _m, _p, _l, _e, _t, _e, PRD, NWL, END, }; +// ROB, can you +// confirm Slippy's +// location? u16 gMsg_ID_5500[44] = { PRI1, _R, _O, _B, CMA, SPC, _c, _a, _n, SPC, _y, _o, _u, SPC, NWL, _c, _o, _n, _f, _i, _r, _m, SPC, _S, _l, _i, _p, _p, _y, APS, _s, NWL, _l, _o, _c, _a, _t, _i, _o, _n, QST, NWL, END, }; +// Looks like he's +// on Titania. u16 gMsg_ID_5501[30] = { PRI1, _L, _o, _o, _k, _s, SPC, _l, _i, _k, _e, SPC, _h, _e, APS, _s, NWL, _o, _n, SPC, _T, _i, _t, _a, _n, _i, _a, PRD, NWL, END, }; +// Slippy can be such +// a headache. u16 gMsg_ID_5502[34] = { PRI1, _S, _l, _i, _p, _p, _y, SPC, _c, _a, _n, SPC, _b, _e, SPC, _s, _u, _c, _h, NWL, _a, SPC, _h, _e, _a, _d, _a, _c, _h, _e, PRD, NWL, END, }; +// Distress signal +// coming from Titania. u16 gMsg_ID_5503[40] = { PRI1, _D, _i, _s, _t, _r, _e, _s, _s, SPC, _s, _i, _g, _n, _a, _l, NWL, _c, _o, _m, _i, _n, _g, SPC, _f, _r, _o, _m, SPC, _T, _i, _t, _a, _n, _i, _a, PRD, NWL, END, }; +// YEAH! +// Just one more. u16 gMsg_ID_5504[24] = { PRI1, _Y, _E, _A, _H, EXM, SPC, NWL, _J, _u, _s, _t, SPC, _o, _n, _e, SPC, _m, _o, _r, _e, PRD, NWL, END, }; +// Slippy! Is +// everything OK? u16 gMsg_ID_5505[30] = { PRI1, _S, _l, _i, _p, _p, _y, EXM, SPC, _I, _s, SPC, NWL, _e, _v, _e, _r, _y, _t, _h, _i, _n, _g, SPC, _O, _K, QST, NWL, END, }; +// Yeah yeah. +// No problem. u16 gMsg_ID_5506[26] = { PRI1, _Y, _e, _a, _h, SPC, _y, _e, _a, _h, PRD, NWL, _N, _o, SPC, _p, _r, _o, _b, _l, _e, _m, PRD, NWL, END, }; +// Let's sneak in low +// and surprise them! u16 gMsg_ID_6010[40] = { PRI1, _L, _e, _t, APS, _s, SPC, _s, _n, _e, _a, _k, SPC, _i, _n, SPC, _l, _o, _w, NWL, _a, _n, _d, SPC, _s, _u, _r, _p, _r, _i, _s, _e, SPC, _t, _h, _e, _m, EXM, NWL, END, }; +// THIS is Zoness? u16 gMsg_ID_6011[18] = { PRI1, _T, _H, _I, _S, SPC, _i, _s, SPC, _Z, _o, _n, _e, _s, _s, QST, NWL, END, }; +// What a dump! u16 gMsg_ID_6012[16] = { PRI1, _W, _h, _a, _t, SPC, _a, SPC, _d, _u, _m, _p, EXM, NWL, END, }; +// I can't believe +// they did this! u16 gMsg_ID_6013[34] = { PRI1, _I, SPC, _c, _a, _n, APS, _t, SPC, _b, _e, _l, _i, _e, _v, _e, SPC, NWL, _t, _h, _e, _y, SPC, _d, _i, _d, SPC, _t, _h, _i, _s, EXM, NWL, END, }; +// I hear ya, Slippy. u16 gMsg_ID_6014[22] = { PRI1, _I, SPC, _h, _e, _a, _r, SPC, _y, _a, CMA, SPC, _S, _l, _i, _p, _p, _y, PRD, NWL, END, }; +// Watch out for the +// search light! u16 gMsg_ID_6020[34] = { PRI2, _W, _a, _t, _c, _h, SPC, _o, _u, _t, SPC, _f, _o, _r, SPC, _t, _h, _e, NWL, _s, _e, _a, _r, _c, _h, SPC, _l, _i, _g, _h, _t, EXM, NWL, END, }; +// Let's take 'em +// all out! u16 gMsg_ID_6021[28] = { PRI2, _L, _e, _t, APS, _s, SPC, _t, _a, _k, _e, SPC, APS, _e, _m, SPC, NWL, _a, _l, _l, SPC, _o, _u, _t, EXM, NWL, END, }; +// Uh oh. Have we +// been spotted? u16 gMsg_ID_6024[32] = { PRI2, _U, _h, SPC, _o, _h, PRD, SPC, _H, _a, _v, _e, SPC, _w, _e, NWL, _b, _e, _e, _n, SPC, _s, _p, _o, _t, _t, _e, _d, QST, NWL, END, }; +// We're closing in +// on them, Falco! u16 gMsg_ID_6025[36] = { PRI2, _W, _e, APS, _r, _e, SPC, _c, _l, _o, _s, _i, _n, _g, SPC, _i, _n, NWL, _o, _n, SPC, _t, _h, _e, _m, CMA, SPC, _F, _a, _l, _c, _o, EXM, NWL, END, }; +// Katt?! What are +// you doing here? u16 gMsg_ID_6026[34] = { PRI2, _K, _a, _t, _t, QST, EXM, SPC, _W, _h, _a, _t, SPC, _a, _r, _e, NWL, _y, _o, _u, SPC, _d, _o, _i, _n, _g, SPC, _h, _e, _r, _e, QST, NWL, END, }; +// Is that any way +// to greet a girl? u16 gMsg_ID_6027[36] = { PRI2, _I, _s, SPC, _t, _h, _a, _t, SPC, _a, _n, _y, SPC, _w, _a, _y, NWL, _t, _o, SPC, _g, _r, _e, _e, _t, SPC, _a, SPC, _g, _i, _r, _l, QST, NWL, END, }; +// Here I go! u16 gMsg_ID_6028[14] = { PRI1, _H, _e, _r, _e, SPC, _I, SPC, _g, _o, EXM, NWL, END, }; +// Take the right +// light, boy. I have +// the left. u16 gMsg_ID_6029[48] = { PRI1, _T, _a, _k, _e, SPC, _t, _h, _e, SPC, _r, _i, _g, _h, _t, SPC, NWL, _l, _i, _g, _h, _t, CMA, SPC, _b, _o, _y, PRD, SPC, _I, SPC, _h, _a, _v, _e, NWL, _t, _h, _e, SPC, _l, _e, _f, _t, PRD, NWL, END, }; +// Enemy tanker! u16 gMsg_ID_6036[16] = { PRI1, _E, _n, _e, _m, _y, SPC, _t, _a, _n, _k, _e, _r, EXM, NWL, END, }; +// Aim for the +// rudder, Fox! u16 gMsg_ID_6038[28] = { PRI1, _A, _i, _m, SPC, _f, _o, _r, SPC, _t, _h, _e, SPC, NWL, _r, _u, _d, _d, _e, _r, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// I've got somebody +// on my tail! u16 gMsg_ID_6041[32] = { PRI1, _I, APS, _v, _e, SPC, _g, _o, _t, SPC, _s, _o, _m, _e, _b, _o, _d, _y, NWL, _o, _n, SPC, _m, _y, SPC, _t, _a, _i, _l, EXM, NWL, END, }; +// Mess with me and +// you'll get +// scratched! u16 gMsg_ID_6042[42] = { PRI1, _M, _e, _s, _s, SPC, _w, _i, _t, _h, SPC, _m, _e, SPC, _a, _n, _d, NWL, _y, _o, _u, APS, _l, _l, SPC, _g, _e, _t, SPC, NWL, _s, _c, _r, _a, _t, _c, _h, _e, _d, EXM, NWL, END, }; +// Enemy fighters +// spotted! Take 'em +// down! u16 gMsg_ID_6045[42] = { PRI1, _E, _n, _e, _m, _y, SPC, _f, _i, _g, _h, _t, _e, _r, _s, NWL, _s, _p, _o, _t, _t, _e, _d, EXM, SPC, _T, _a, _k, _e, SPC, APS, _e, _m, SPC, NWL, _d, _o, _w, _n, EXM, NWL, END, }; +// These guys +// don't quit! u16 gMsg_ID_6050[26] = { PRI1, _T, _h, _e, _s, _e, SPC, _g, _u, _y, _s, SPC, NWL, _d, _o, _n, APS, _t, SPC, _q, _u, _i, _t, EXM, NWL, END, }; +// Shoot! u16 gMsg_ID_6051[10] = { PRI1, _S, _h, _o, _o, _t, EXM, NWL, END, }; +// Whoa! Watch out! u16 gMsg_ID_6055[20] = { PRI1, _W, _h, _o, _a, EXM, SPC, _W, _a, _t, _c, _h, SPC, _o, _u, _t, EXM, NWL, END, }; +// Be careful! +// It might be a trap! u16 gMsg_ID_6066[34] = { PRI1, _B, _e, SPC, _c, _a, _r, _e, _f, _u, _l, EXM, NWL, _I, _t, SPC, _m, _i, _g, _h, _t, SPC, _b, _e, SPC, _a, SPC, _t, _r, _a, _p, EXM, NWL, END, }; +// Something's coming +// from the sea! u16 gMsg_ID_6067[36] = { PRI1, _S, _o, _m, _e, _t, _h, _i, _n, _g, APS, _s, SPC, _c, _o, _m, _i, _n, _g, NWL, _f, _r, _o, _m, SPC, _t, _h, _e, SPC, _s, _e, _a, EXM, NWL, END, }; +// Ar ha ha ha har! u16 gMsg_ID_6068[20] = { PRI1, _A, _r, SPC, _h, _a, SPC, _h, _a, SPC, _h, _a, SPC, _h, _a, _r, EXM, NWL, END, }; +// Disrespectful +// little whelps! u16 gMsg_ID_6069[32] = { PRI1, _D, _i, _s, _r, _e, _s, _p, _e, _c, _t, _f, _u, _l, NWL, _l, _i, _t, _t, _l, _e, SPC, _w, _h, _e, _l, _p, _s, EXM, NWL, END, }; +// I'll teach ye some +// respect! u16 gMsg_ID_6071[30] = { PRI1, _I, APS, _l, _l, SPC, _t, _e, _a, _c, _h, SPC, _y, _e, SPC, _s, _o, _m, _e, NWL, _r, _e, _s, _p, _e, _c, _t, EXM, NWL, END, }; +// All sections ready. +// Engage! u16 gMsg_ID_6072[30] = { PRI1, _A, _l, _l, SPC, _s, _e, _c, _t, _i, _o, _n, _s, SPC, _r, _e, _a, _d, _y, PRD, NWL, _E, _n, _g, _a, _g, _e, EXM, NWL, END, }; +// Prepare to surface! u16 gMsg_ID_6073[22] = { PRI1, _P, _r, _e, _p, _a, _r, _e, SPC, _t, _o, SPC, _s, _u, _r, _f, _a, _c, _e, EXM, NWL, END, }; +// Adjust 10 degrees +// right! FIRE! u16 gMsg_ID_6074[34] = { PRI1, _A, _d, _j, _u, _s, _t, SPC, _1, _0, SPC, _d, _e, _g, _r, _e, _e, _s, NWL, _r, _i, _g, _h, _t, EXM, SPC, _F, _I, _R, _E, EXM, NWL, END, }; +// Pressure, angle OK. +// Fire torpedo! u16 gMsg_ID_6075[36] = { PRI1, _P, _r, _e, _s, _s, _u, _r, _e, CMA, SPC, _a, _n, _g, _l, _e, SPC, _O, _K, PRD, NWL, _F, _i, _r, _e, SPC, _t, _o, _r, _p, _e, _d, _o, EXM, NWL, END, }; +// Aaargh! +// Drop the crane now! u16 gMsg_ID_6076[32] = { PRI1, _A, _a, _a, _r, _g, _h, EXM, SPC, NWL, _D, _r, _o, _p, SPC, _t, _h, _e, SPC, _c, _r, _a, _n, _e, SPC, _n, _o, _w, EXM, NWL, END, }; +// I can't see +// anything... +// Fire anyway! u16 gMsg_ID_6077[40] = { PRI1, _I, SPC, _c, _a, _n, APS, _t, SPC, _s, _e, _e, SPC, NWL, _a, _n, _y, _t, _h, _i, _n, _g, PRD, PRD, PRD, NWL, _F, _i, _r, _e, SPC, _a, _n, _y, _w, _a, _y, EXM, NWL, END, }; +// Fire! Fire! u16 gMsg_ID_6078[14] = { PRI1, _F, _i, _r, _e, EXM, SPC, _F, _i, _r, _e, EXM, NWL, END, }; +// Arrggghhh!!! u16 gMsg_ID_6079[16] = { PRI2, _A, _r, _r, _g, _g, _g, _h, _h, _h, EXM, EXM, EXM, NWL, END, }; +// His armor is tough! +// Use bombs wisely! u16 gMsg_ID_6080[40] = { PRI1, _H, _i, _s, SPC, _a, _r, _m, _o, _r, SPC, _i, _s, SPC, _t, _o, _u, _g, _h, EXM, NWL, _U, _s, _e, SPC, _b, _o, _m, _b, _s, SPC, _w, _i, _s, _e, _l, _y, EXM, NWL, END, }; +// Destroy the two +// exhaust pipes! u16 gMsg_ID_6081[34] = { PRI1, _D, _e, _s, _t, _r, _o, _y, SPC, _t, _h, _e, SPC, _t, _w, _o, NWL, _e, _x, _h, _a, _u, _s, _t, SPC, _p, _i, _p, _e, _s, EXM, NWL, END, }; +// Quick, destroy the +// crane! u16 gMsg_ID_6082[28] = { PRI1, _Q, _u, _i, _c, _k, CMA, SPC, _d, _e, _s, _t, _r, _o, _y, SPC, _t, _h, _e, NWL, _c, _r, _a, _n, _e, EXM, NWL, END, }; +// Oh SHOOT!! u16 gMsg_ID_6090[14] = { PRI1, _O, _h, SPC, _S, _H, _O, _O, _T, EXM, EXM, NWL, END, }; +// Looks like we're +// headin' for Macbeth. u16 gMsg_ID_6100[40] = { PRI1, _L, _o, _o, _k, _s, SPC, _l, _i, _k, _e, SPC, _w, _e, APS, _r, _e, NWL, _h, _e, _a, _d, _i, _n, APS, SPC, _f, _o, _r, SPC, _M, _a, _c, _b, _e, _t, _h, PRD, NWL, END, }; +// Katt, where'd you +// go? u16 gMsg_ID_6101[26] = { PRI1, _K, _a, _t, _t, CMA, SPC, _w, _h, _e, _r, _e, APS, _d, SPC, _y, _o, _u, SPC, NWL, _g, _o, QST, NWL, END, }; +// Caiman here. +// No problems. u16 gMsg_ID_7005[28] = { PRI1, _C, _a, _i, _m, _a, _n, SPC, _h, _e, _r, _e, PRD, NWL, _N, _o, SPC, _p, _r, _o, _b, _l, _e, _m, _s, PRD, NWL, END, }; +// Do you copy? +// Emergency +// maneuvers! u16 gMsg_ID_7006[36] = { PRI1, _D, _o, SPC, _y, _o, _u, SPC, _c, _o, _p, _y, QST, NWL, _E, _m, _e, _r, _g, _e, _n, _c, _y, NWL, _m, _a, _n, _e, _u, _v, _e, _r, _s, EXM, NWL, END, }; +// Too late! +// Game over, pal! u16 gMsg_ID_7011[30] = { PRI1, _T, _o, _o, SPC, _l, _a, _t, _e, EXM, SPC, NWL, _G, _a, _m, _e, SPC, _o, _v, _e, _r, CMA, SPC, _p, _a, _l, EXM, NWL, END, }; +// Entering Venom air +// defense zone. u16 gMsg_ID_7012[36] = { PRI1, _E, _n, _t, _e, _r, _i, _n, _g, SPC, _V, _e, _n, _o, _m, SPC, _a, _i, _r, NWL, _d, _e, _f, _e, _n, _s, _e, SPC, _z, _o, _n, _e, PRD, NWL, END, }; +// Everybody stay +// alert! u16 gMsg_ID_7013[24] = { PRI1, _E, _v, _e, _r, _y, _b, _o, _d, _y, SPC, _s, _t, _a, _y, NWL, _a, _l, _e, _r, _t, EXM, NWL, END, }; +// Space mines ahead! u16 gMsg_ID_7014[22] = { PRI1, _S, _p, _a, _c, _e, SPC, _m, _i, _n, _e, _s, SPC, _a, _h, _e, _a, _d, EXM, NWL, END, }; +// Hold still and let +// me shoot you! u16 gMsg_ID_7020[36] = { PRI1, _H, _o, _l, _d, SPC, _s, _t, _i, _l, _l, SPC, _a, _n, _d, SPC, _l, _e, _t, NWL, _m, _e, SPC, _s, _h, _o, _o, _t, SPC, _y, _o, _u, EXM, NWL, END, }; +// We're gonna break +// through that fleet. u16 gMsg_ID_7043[40] = { PRI1, _W, _e, APS, _r, _e, SPC, _g, _o, _n, _n, _a, SPC, _b, _r, _e, _a, _k, NWL, _t, _h, _r, _o, _u, _g, _h, SPC, _t, _h, _a, _t, SPC, _f, _l, _e, _e, _t, PRD, NWL, END, }; +// Incoming enemy +// missile! u16 gMsg_ID_7050[26] = { PRI1, _I, _n, _c, _o, _m, _i, _n, _g, SPC, _e, _n, _e, _m, _y, NWL, _m, _i, _s, _s, _i, _l, _e, EXM, NWL, END, }; +// Shoot 'em down! +// We're being marked! u16 gMsg_ID_7051[38] = { PRI1, _S, _h, _o, _o, _t, SPC, APS, _e, _m, SPC, _d, _o, _w, _n, EXM, NWL, _W, _e, APS, _r, _e, SPC, _b, _e, _i, _n, _g, SPC, _m, _a, _r, _k, _e, _d, EXM, NWL, END, }; +// Did we get 'em? u16 gMsg_ID_7052[18] = { PRI1, _D, _i, _d, SPC, _w, _e, SPC, _g, _e, _t, SPC, APS, _e, _m, QST, NWL, END, }; +// Not yet, sir! u16 gMsg_ID_7053[16] = { PRI1, _N, _o, _t, SPC, _y, _e, _t, CMA, SPC, _s, _i, _r, EXM, NWL, END, }; +// Great Fox will +// cover you. u16 gMsg_ID_7054[28] = { PRI2, _G, _r, _e, _a, _t, SPC, _F, _o, _x, SPC, _w, _i, _l, _l, NWL, _c, _o, _v, _e, _r, SPC, _y, _o, _u, PRD, NWL, END, }; +// Enemy ahead. This +// one's different. u16 gMsg_ID_7061[38] = { PRI1, _E, _n, _e, _m, _y, SPC, _a, _h, _e, _a, _d, PRD, SPC, _T, _h, _i, _s, NWL, _o, _n, _e, APS, _s, SPC, _d, _i, _f, _f, _e, _r, _e, _n, _t, PRD, NWL, END, }; +// Crud! We were SO +// close to Venom. u16 gMsg_ID_7064[36] = { PRI1, _C, _r, _u, _d, EXM, SPC, _W, _e, SPC, _w, _e, _r, _e, SPC, _S, _O, NWL, _c, _l, _o, _s, _e, SPC, _t, _o, SPC, _V, _e, _n, _o, _m, PRD, NWL, END, }; +// Bogey behind me. +// Am I gettin' slow? u16 gMsg_ID_7065[40] = { PRI1, _B, _o, _g, _e, _y, SPC, _b, _e, _h, _i, _n, _d, SPC, _m, _e, PRD, SPC, NWL, _A, _m, SPC, _I, SPC, _g, _e, _t, _t, _i, _n, APS, SPC, _s, _l, _o, _w, QST, NWL, END, }; +// They're on me! I'm +// gettin' careless! u16 gMsg_ID_7066[40] = { PRI1, _T, _h, _e, _y, APS, _r, _e, SPC, _o, _n, SPC, _m, _e, EXM, SPC, _I, APS, _m, NWL, _g, _e, _t, _t, _i, _n, APS, SPC, _c, _a, _r, _e, _l, _e, _s, _s, EXM, NWL, END, }; +// Venom's right there! u16 gMsg_ID_7070[24] = { PRI1, _V, _e, _n, _o, _m, APS, _s, SPC, _r, _i, _g, _h, _t, SPC, _t, _h, _e, _r, _e, EXM, NWL, END, }; +// Shoot the tentacles +// to open the core! u16 gMsg_ID_7083[42] = { PRI1, _S, _h, _o, _o, _t, SPC, _t, _h, _e, SPC, _t, _e, _n, _t, _a, _c, _l, _e, _s, SPC, NWL, _t, _o, SPC, _o, _p, _e, _n, SPC, _t, _h, _e, SPC, _c, _o, _r, _e, EXM, NWL, END, }; +// Destroy all three +// energy balls. u16 gMsg_ID_7084[34] = { PRI1, _D, _e, _s, _t, _r, _o, _y, SPC, _a, _l, _l, SPC, _t, _h, _r, _e, _e, NWL, _e, _n, _e, _r, _g, _y, SPC, _b, _a, _l, _l, _s, PRD, NWL, END, }; +// YEAH! +// It's working! u16 gMsg_ID_7085[24] = { PRI1, _Y, _E, _A, _H, EXM, SPC, NWL, _I, _t, APS, _s, SPC, _w, _o, _r, _k, _i, _n, _g, EXM, NWL, END, }; +// Yeah! Yeah! u16 gMsg_ID_7086[14] = { PRI1, _Y, _e, _a, _h, EXM, SPC, _Y, _e, _a, _h, EXM, NWL, END, }; +// The shield is gone! +// Shoot the core! u16 gMsg_ID_7087[38] = { PRI1, _T, _h, _e, SPC, _s, _h, _i, _e, _l, _d, SPC, _i, _s, SPC, _g, _o, _n, _e, EXM, NWL, _S, _h, _o, _o, _t, SPC, _t, _h, _e, SPC, _c, _o, _r, _e, EXM, NWL, END, }; +// Hold on! We're +// entering Venom +// air space. u16 gMsg_ID_7093[44] = { PRI1, _H, _o, _l, _d, SPC, _o, _n, EXM, SPC, _W, _e, APS, _r, _e, NWL, _e, _n, _t, _e, _r, _i, _n, _g, SPC, _V, _e, _n, _o, _m, NWL, _a, _i, _r, SPC, _s, _p, _a, _c, _e, PRD, NWL, END, }; +// Fire! Fire! +// Don't let them +// through! u16 gMsg_ID_7094[38] = { PRI1, _F, _i, _r, _e, EXM, SPC, _F, _i, _r, _e, EXM, NWL, _D, _o, _n, APS, _t, SPC, _l, _e, _t, SPC, _t, _h, _e, _m, NWL, _t, _h, _r, _o, _u, _g, _h, EXM, NWL, END, }; +// They've broken +// through the first +// line! u16 gMsg_ID_7095[42] = { PRI1, _T, _h, _e, _y, APS, _v, _e, SPC, _b, _r, _o, _k, _e, _n, NWL, _t, _h, _r, _o, _u, _g, _h, SPC, _t, _h, _e, SPC, _f, _i, _r, _s, _t, SPC, NWL, _l, _i, _n, _e, EXM, NWL, END, }; +// They're through +// the second line! u16 gMsg_ID_7096[36] = { PRI1, _T, _h, _e, _y, APS, _r, _e, SPC, _t, _h, _r, _o, _u, _g, _h, NWL, _t, _h, _e, SPC, _s, _e, _c, _o, _n, _d, SPC, _l, _i, _n, _e, EXM, NWL, END, }; +// These guys are +// crazy! u16 gMsg_ID_7097[24] = { PRI1, _T, _h, _e, _s, _e, SPC, _g, _u, _y, _s, SPC, _a, _r, _e, NWL, _c, _r, _a, _z, _y, EXM, NWL, END, }; +// Dang! DEPLOY +// IT NOW! u16 gMsg_ID_7098[24] = { PRI2, _D, _a, _n, _g, EXM, SPC, _D, _E, _P, _L, _O, _Y, NWL, _I, _T, SPC, _N, _O, _W, EXM, NWL, END, }; +// The last line has +// been breached! u16 gMsg_ID_7099[36] = { PRI1, _T, _h, _e, SPC, _l, _a, _s, _t, SPC, _l, _i, _n, _e, SPC, _h, _a, _s, NWL, _b, _e, _e, _n, SPC, _b, _r, _e, _a, _c, _h, _e, _d, EXM, NWL, END, }; +// All right! u16 gMsg_ID_7100[14] = { PRI1, _A, _l, _l, SPC, _r, _i, _g, _h, _t, EXM, NWL, END, }; +// Don't relax. We're +// not done yet. u16 gMsg_ID_8010[36] = { PRI1, _D, _o, _n, APS, _t, SPC, _r, _e, _l, _a, _x, PRD, SPC, _W, _e, APS, _r, _e, NWL, _n, _o, _t, SPC, _d, _o, _n, _e, SPC, _y, _e, _t, PRD, NWL, END, }; +// Time to show the +// monkeys who's boss! u16 gMsg_ID_8020[40] = { PRI1, _T, _i, _m, _e, SPC, _t, _o, SPC, _s, _h, _o, _w, SPC, _t, _h, _e, NWL, _m, _o, _n, _k, _e, _y, _s, SPC, _w, _h, _o, APS, _s, SPC, _b, _o, _s, _s, EXM, NWL, END, }; +// This brings back +// memories of your +// dad. u16 gMsg_ID_8030[42] = { PRI1, _T, _h, _i, _s, SPC, _b, _r, _i, _n, _g, _s, SPC, _b, _a, _c, _k, NWL, _m, _e, _m, _o, _r, _i, _e, _s, SPC, _o, _f, SPC, _y, _o, _u, _r, SPC, NWL, _d, _a, _d, PRD, NWL, END, }; +// You'll be sorry, +// punks! u16 gMsg_ID_8040[28] = { PRI1, _Y, _o, _u, APS, _l, _l, SPC, _b, _e, SPC, _s, _o, _r, _r, _y, CMA, SPC, NWL, _p, _u, _n, _k, _s, EXM, NWL, END, }; +// These guys just +// keep coming. u16 gMsg_ID_8045[32] = { PRI1, _T, _h, _e, _s, _e, SPC, _g, _u, _y, _s, SPC, _j, _u, _s, _t, NWL, _k, _e, _e, _p, SPC, _c, _o, _m, _i, _n, _g, PRD, NWL, END, }; +// Don't go dyin' +// on me! u16 gMsg_ID_8050[24] = { PRI1, _D, _o, _n, APS, _t, SPC, _g, _o, SPC, _d, _y, _i, _n, APS, NWL, _o, _n, SPC, _m, _e, EXM, NWL, END, }; +// I'll take the left. u16 gMsg_ID_8060[22] = { PRI1, _I, APS, _l, _l, SPC, _t, _a, _k, _e, SPC, _t, _h, _e, SPC, _l, _e, _f, _t, PRD, NWL, END, }; +// I've got the right. u16 gMsg_ID_8070[22] = { PRI1, _I, APS, _v, _e, SPC, _g, _o, _t, SPC, _t, _h, _e, SPC, _r, _i, _g, _h, _t, PRD, NWL, END, }; +// I'm beaten up +// pretty bad. u16 gMsg_ID_8080[28] = { PRI2, _I, APS, _m, SPC, _b, _e, _a, _t, _e, _n, SPC, _u, _p, NWL, _p, _r, _e, _t, _t, _y, SPC, _b, _a, _d, PRD, NWL, END, }; +// Jeez Laweez! +// What is that?! u16 gMsg_ID_8100[30] = { PRI1, _J, _e, _e, _z, SPC, _L, _a, _w, _e, _e, _z, EXM, NWL, _W, _h, _a, _t, SPC, _i, _s, SPC, _t, _h, _a, _t, QST, EXM, NWL, END, }; +// That temple gives +// me the creeps. u16 gMsg_ID_8110[36] = { PRI1, _T, _h, _a, _t, SPC, _t, _e, _m, _p, _l, _e, SPC, _g, _i, _v, _e, _s, NWL, _m, _e, SPC, _t, _h, _e, SPC, _c, _r, _e, _e, _p, _s, PRD, NWL, END, }; +// What's going on? +// He's runnin' away! u16 gMsg_ID_8120[38] = { PRI1, _W, _h, _a, _t, APS, _s, SPC, _g, _o, _i, _n, _g, SPC, _o, _n, QST, NWL, _H, _e, APS, _s, SPC, _r, _u, _n, _n, _i, _n, APS, SPC, _a, _w, _a, _y, EXM, NWL, END, }; +// Stay alert! u16 gMsg_ID_8130[14] = { PRI1, _S, _t, _a, _y, SPC, _a, _l, _e, _r, _t, EXM, NWL, END, }; +// Don't get too +// close, Fox!! u16 gMsg_ID_8140[30] = { PRI1, _D, _o, _n, APS, _t, SPC, _g, _e, _t, SPC, _t, _o, _o, SPC, NWL, _c, _l, _o, _s, _e, CMA, SPC, _F, _o, _x, EXM, EXM, NWL, END, }; +// It's all comin' +// down to this. u16 gMsg_ID_8205[32] = { PRI1, _I, _t, APS, _s, SPC, _a, _l, _l, SPC, _c, _o, _m, _i, _n, APS, NWL, _d, _o, _w, _n, SPC, _t, _o, SPC, _t, _h, _i, _s, PRD, NWL, END, }; +// I've got a BAD +// feeling about this, +// Fox. u16 gMsg_ID_8210[44] = { PRI1, _I, APS, _v, _e, SPC, _g, _o, _t, SPC, _a, SPC, _B, _A, _D, NWL, _f, _e, _e, _l, _i, _n, _g, SPC, _a, _b, _o, _u, _t, SPC, _t, _h, _i, _s, CMA, SPC, NWL, _F, _o, _x, PRD, NWL, END, }; +// I'll go it alone +// from here. u16 gMsg_ID_8215[30] = { PRI1, _I, APS, _l, _l, SPC, _g, _o, SPC, _i, _t, SPC, _a, _l, _o, _n, _e, NWL, _f, _r, _o, _m, SPC, _h, _e, _r, _e, PRD, NWL, END, }; +// Fox!! u16 gMsg_ID_8220[8] = { PRI1, _F, _o, _x, EXM, EXM, NWL, END, }; +// Fox!! u16 gMsg_ID_8230[8] = { PRI1, _F, _o, _x, EXM, EXM, NWL, END, }; +// Fox!! u16 gMsg_ID_8240[8] = { PRI1, _F, _o, _x, EXM, EXM, NWL, END, }; +// I've been waiting +// for you, Star Fox. u16 gMsg_ID_8250[40] = { PRI1, _I, APS, _v, _e, SPC, _b, _e, _e, _n, SPC, _w, _a, _i, _t, _i, _n, _g, NWL, _f, _o, _r, SPC, _y, _o, _u, CMA, SPC, _S, _t, _a, _r, SPC, _F, _o, _x, PRD, NWL, END, }; +// You know that I +// control the galaxy. u16 gMsg_ID_8255[38] = { PRI1, _Y, _o, _u, SPC, _k, _n, _o, _w, SPC, _t, _h, _a, _t, SPC, _I, NWL, _c, _o, _n, _t, _r, _o, _l, SPC, _t, _h, _e, SPC, _g, _a, _l, _a, _x, _y, PRD, NWL, END, }; +// It's foolish to +// come against me. u16 gMsg_ID_8260[36] = { PRI1, _I, _t, APS, _s, SPC, _f, _o, _o, _l, _i, _s, _h, SPC, _t, _o, SPC, NWL, _c, _o, _m, _e, SPC, _a, _g, _a, _i, _n, _s, _t, SPC, _m, _e, PRD, NWL, END, }; +// You will die just +// like your father. u16 gMsg_ID_8265[38] = { PRI1, _Y, _o, _u, SPC, _w, _i, _l, _l, SPC, _d, _i, _e, SPC, _j, _u, _s, _t, NWL, _l, _i, _k, _e, SPC, _y, _o, _u, _r, SPC, _f, _a, _t, _h, _e, _r, PRD, NWL, END, }; +// Fox!! +// Are you OK? u16 gMsg_ID_8300[22] = { PRI1, _F, _o, _x, EXM, EXM, SPC, NWL, _A, _r, _e, SPC, _y, _o, _u, SPC, _O, _K, QST, NWL, END, }; +// YES!! +// You did it!! u16 gMsg_ID_8310[22] = { PRI1, _Y, _E, _S, EXM, EXM, SPC, NWL, _Y, _o, _u, SPC, _d, _i, _d, SPC, _i, _t, EXM, EXM, NWL, END, }; +// OK, I'll admit it. +// You did good, Fox. u16 gMsg_ID_8320[40] = { PRI1, _O, _K, CMA, SPC, _I, APS, _l, _l, SPC, _a, _d, _m, _i, _t, SPC, _i, _t, PRD, NWL, _Y, _o, _u, SPC, _d, _i, _d, SPC, _g, _o, _o, _d, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Split up and take +// it to em! u16 gMsg_ID_9000[30] = { PRI1, _S, _p, _l, _i, _t, SPC, _u, _p, SPC, _a, _n, _d, SPC, _t, _a, _k, _e, NWL, _i, _t, SPC, _t, _o, SPC, _e, _m, EXM, NWL, END, }; +// Why are ships +// coming out of the +// base? u16 gMsg_ID_9010[40] = { PRI2, _W, _h, _y, SPC, _a, _r, _e, SPC, _s, _h, _i, _p, _s, NWL, _c, _o, _m, _i, _n, _g, SPC, _o, _u, _t, SPC, _o, _f, SPC, _t, _h, _e, NWL, _b, _a, _s, _e, QST, NWL, END, }; +// Shoot! He's right +// behind me! u16 gMsg_ID_9100[32] = { PRI1, _S, _h, _o, _o, _t, EXM, SPC, _H, _e, APS, _s, SPC, _r, _i, _g, _h, _t, NWL, _b, _e, _h, _i, _n, _d, SPC, _m, _e, EXM, NWL, END, }; +// Fox, get this guy +// off me! u16 gMsg_ID_9110[28] = { PRI1, _F, _o, _x, CMA, SPC, _g, _e, _t, SPC, _t, _h, _i, _s, SPC, _g, _u, _y, NWL, _o, _f, _f, SPC, _m, _e, EXM, NWL, END, }; +// Take care of the +// guy behind me, +// Fox! u16 gMsg_ID_9120[40] = { PRI1, _T, _a, _k, _e, SPC, _c, _a, _r, _e, SPC, _o, _f, SPC, _t, _h, _e, NWL, _g, _u, _y, SPC, _b, _e, _h, _i, _n, _d, SPC, _m, _e, CMA, SPC, NWL, _F, _o, _x, EXM, NWL, END, }; +// I can't shake +// this guy! u16 gMsg_ID_9130[28] = { PRI1, _I, SPC, _c, _a, _n, APS, _t, SPC, _s, _h, _a, _k, _e, SPC, NWL, _t, _h, _i, _s, SPC, _g, _u, _y, EXM, NWL, END, }; +// This is really +// starting to tick +// me off! u16 gMsg_ID_9140[42] = { PRI1, _T, _h, _i, _s, SPC, _i, _s, SPC, _r, _e, _a, _l, _l, _y, NWL, _s, _t, _a, _r, _t, _i, _n, _g, SPC, _t, _o, SPC, _t, _i, _c, _k, NWL, _m, _e, SPC, _o, _f, _f, EXM, NWL, END, }; +// What's taking you +// so long, Fox? u16 gMsg_ID_9150[34] = { PRI1, _W, _h, _a, _t, APS, _s, SPC, _t, _a, _k, _i, _n, _g, SPC, _y, _o, _u, NWL, _s, _o, SPC, _l, _o, _n, _g, CMA, SPC, _F, _o, _x, QST, NWL, END, }; +// Dang, I'm hit! u16 gMsg_ID_9151[18] = { PRI1, _D, _a, _n, _g, CMA, SPC, _I, APS, _m, SPC, _h, _i, _t, EXM, NWL, END, }; +// Ahhh!! I'm hit! u16 gMsg_ID_9152[18] = { PRI1, _A, _h, _h, _h, EXM, EXM, SPC, _I, APS, _m, SPC, _h, _i, _t, EXM, NWL, END, }; +// Shoot! +// They got me! u16 gMsg_ID_9153[24] = { PRI1, _S, _h, _o, _o, _t, EXM, SPC, NWL, _T, _h, _e, _y, SPC, _g, _o, _t, SPC, _m, _e, EXM, NWL, END, }; +// Gee, I've been +// saved by Fox. +// How swell. u16 gMsg_ID_9160[44] = { PRI1, _G, _e, _e, CMA, SPC, _I, APS, _v, _e, SPC, _b, _e, _e, _n, SPC, NWL, _s, _a, _v, _e, _d, SPC, _b, _y, SPC, _F, _o, _x, PRD, NWL, _H, _o, _w, SPC, _s, _w, _e, _l, _l, PRD, NWL, END, }; +// Hoo! That was +// TOO close. u16 gMsg_ID_9170[28] = { PRI1, _H, _o, _o, EXM, SPC, _T, _h, _a, _t, SPC, _w, _a, _s, NWL, _T, _O, _O, SPC, _c, _l, _o, _s, _e, PRD, NWL, END, }; +// Your father helped +// me like that, too. u16 gMsg_ID_9180[40] = { PRI1, _Y, _o, _u, _r, SPC, _f, _a, _t, _h, _e, _r, SPC, _h, _e, _l, _p, _e, _d, NWL, _m, _e, SPC, _l, _i, _k, _e, SPC, _t, _h, _a, _t, CMA, SPC, _t, _o, _o, PRD, NWL, END, }; +// Time for a little +// payback! u16 gMsg_ID_9190[30] = { PRI1, _T, _i, _m, _e, SPC, _f, _o, _r, SPC, _a, SPC, _l, _i, _t, _t, _l, _e, SPC, NWL, _p, _a, _y, _b, _a, _c, _k, EXM, NWL, END, }; +// You're not gettin' +// away that easy! u16 gMsg_ID_9200[38] = { PRI1, _Y, _o, _u, APS, _r, _e, SPC, _n, _o, _t, SPC, _g, _e, _t, _t, _i, _n, APS, NWL, _a, _w, _a, _y, SPC, _t, _h, _a, _t, SPC, _e, _a, _s, _y, EXM, NWL, END, }; +// I won't let you get +// away from me! u16 gMsg_ID_9210[36] = { PRI1, _I, SPC, _w, _o, _n, APS, _t, SPC, _l, _e, _t, SPC, _y, _o, _u, SPC, _g, _e, _t, NWL, _a, _w, _a, _y, SPC, _f, _r, _o, _m, SPC, _m, _e, EXM, NWL, END, }; +// You're dead +// meat, pal! u16 gMsg_ID_9211[26] = { PRI1, _Y, _o, _u, APS, _r, _e, SPC, _d, _e, _a, _d, NWL, _m, _e, _a, _t, CMA, SPC, _p, _a, _l, EXM, NWL, END, }; +// I've got you now! u16 gMsg_ID_9212[20] = { PRI1, _I, APS, _v, _e, SPC, _g, _o, _t, SPC, _y, _o, _u, SPC, _n, _o, _w, EXM, NWL, END, }; +// You're mine! u16 gMsg_ID_9213[16] = { PRI1, _Y, _o, _u, APS, _r, _e, SPC, _m, _i, _n, _e, EXM, NWL, END, }; +// Scratch one bogey! u16 gMsg_ID_9220[22] = { PRI1, _S, _c, _r, _a, _t, _c, _h, SPC, _o, _n, _e, SPC, _b, _o, _g, _e, _y, EXM, NWL, END, }; +// I got one! u16 gMsg_ID_9230[14] = { PRI1, _I, SPC, _g, _o, _t, SPC, _o, _n, _e, EXM, NWL, END, }; +// There's one down! u16 gMsg_ID_9240[20] = { PRI1, _T, _h, _e, _r, _e, APS, _s, SPC, _o, _n, _e, SPC, _d, _o, _w, _n, EXM, NWL, END, }; +// Can't let you do +// that, Star Fox! u16 gMsg_ID_9250[36] = { PRI2, _C, _a, _n, APS, _t, SPC, _l, _e, _t, SPC, _y, _o, _u, SPC, _d, _o, SPC, NWL, _t, _h, _a, _t, CMA, SPC, _S, _t, _a, _r, SPC, _F, _o, _x, EXM, NWL, END, }; +// Andross has ordered +// us to take you down. u16 gMsg_ID_9260[44] = { PRI2, _A, _n, _d, _r, _o, _s, _s, SPC, _h, _a, _s, SPC, _o, _r, _d, _e, _r, _e, _d, NWL, _u, _s, SPC, _t, _o, SPC, _t, _a, _k, _e, SPC, _y, _o, _u, SPC, _d, _o, _w, _n, PRD, NWL, END, }; +// We're gettin' paid +// a lot of cash for +// this. u16 gMsg_ID_9270[46] = { PRI2, _W, _e, APS, _r, _e, SPC, _g, _e, _t, _t, _i, _n, APS, SPC, _p, _a, _i, _d, NWL, _a, SPC, _l, _o, _t, SPC, _o, _f, SPC, _c, _a, _s, _h, SPC, _f, _o, _r, SPC, NWL, _t, _h, _i, _s, PRD, NWL, END, }; +// Peppy! Long time +// no see! u16 gMsg_ID_9275[28] = { PRI2, _P, _e, _p, _p, _y, EXM, SPC, _L, _o, _n, _g, SPC, _t, _i, _m, _e, NWL, _n, _o, SPC, _s, _e, _e, EXM, NWL, END, }; +// Andross' enemy is +// my enemy. u16 gMsg_ID_9280[30] = { PRI2, _A, _n, _d, _r, _o, _s, _s, APS, SPC, _e, _n, _e, _m, _y, SPC, _i, _s, NWL, _m, _y, SPC, _e, _n, _e, _m, _y, PRD, NWL, END, }; +// Just what I need +// to see. Star Wolf. u16 gMsg_ID_9285[40] = { PRI1, _J, _u, _s, _t, SPC, _w, _h, _a, _t, SPC, _I, SPC, _n, _e, _e, _d, SPC, NWL, _t, _o, SPC, _s, _e, _e, PRD, SPC, _S, _t, _a, _r, SPC, _W, _o, _l, _f, PRD, NWL, END, }; +// You'll be seeing +// your dad soon, +// Fox! u16 gMsg_ID_9289[40] = { PRI2, _Y, _o, _u, APS, _l, _l, SPC, _b, _e, SPC, _s, _e, _e, _i, _n, _g, NWL, _y, _o, _u, _r, SPC, _d, _a, _d, SPC, _s, _o, _o, _n, CMA, SPC, NWL, _F, _o, _x, EXM, NWL, END, }; +// You're in my +// sights! You're +// going down! u16 gMsg_ID_9290[44] = { PRI1, _Y, _o, _u, APS, _r, _e, SPC, _i, _n, SPC, _m, _y, SPC, NWL, _s, _i, _g, _h, _t, _s, EXM, SPC, _Y, _o, _u, APS, _r, _e, NWL, _g, _o, _i, _n, _g, SPC, _d, _o, _w, _n, EXM, NWL, END, }; +// You're not as tough +// as I thought. u16 gMsg_ID_9300[36] = { PRI1, _Y, _o, _u, APS, _r, _e, SPC, _n, _o, _t, SPC, _a, _s, SPC, _t, _o, _u, _g, _h, NWL, _a, _s, SPC, _I, SPC, _t, _h, _o, _u, _g, _h, _t, PRD, NWL, END, }; +// That reward's as +// good as mine! u16 gMsg_ID_9310[34] = { PRI1, _T, _h, _a, _t, SPC, _r, _e, _w, _a, _r, _d, APS, _s, SPC, _a, _s, NWL, _g, _o, _o, _d, SPC, _a, _s, SPC, _m, _i, _n, _e, EXM, NWL, END, }; +// Bow before the +// great Andross! u16 gMsg_ID_9320[32] = { PRI1, _B, _o, _w, SPC, _b, _e, _f, _o, _r, _e, SPC, _t, _h, _e, NWL, _g, _r, _e, _a, _t, SPC, _A, _n, _d, _r, _o, _s, _s, EXM, NWL, END, }; +// You're not so tough! u16 gMsg_ID_9322[24] = { PRI1, _Y, _o, _u, APS, _r, _e, SPC, _n, _o, _t, SPC, _s, _o, SPC, _t, _o, _u, _g, _h, EXM, NWL, END, }; +// Annoying bird! +// I am the great Leon! u16 gMsg_ID_9323[40] = { PRI1, _A, _n, _n, _o, _y, _i, _n, _g, SPC, _b, _i, _r, _d, EXM, SPC, NWL, _I, SPC, _a, _m, SPC, _t, _h, _e, SPC, _g, _r, _e, _a, _t, SPC, _L, _e, _o, _n, EXM, NWL, END, }; +// I'll do you fast, +// Peppy old pal. u16 gMsg_ID_9324[36] = { PRI1, _I, APS, _l, _l, SPC, _d, _o, SPC, _y, _o, _u, SPC, _f, _a, _s, _t, CMA, NWL, _P, _e, _p, _p, _y, SPC, _o, _l, _d, SPC, _p, _a, _l, PRD, NWL, END, }; +// Stick to the pond, +// Froggie. u16 gMsg_ID_9325[30] = { PRI1, _S, _t, _i, _c, _k, SPC, _t, _o, SPC, _t, _h, _e, SPC, _p, _o, _n, _d, CMA, NWL, _F, _r, _o, _g, _g, _i, _e, PRD, NWL, END, }; +// I will not be +// defeated by this +// trash! u16 gMsg_ID_9330[42] = { PRI1, _I, SPC, _w, _i, _l, _l, SPC, _n, _o, _t, SPC, _b, _e, NWL, _d, _e, _f, _e, _a, _t, _e, _d, SPC, _b, _y, SPC, _t, _h, _i, _s, SPC, NWL, _t, _r, _a, _s, _h, EXM, NWL, END, }; +// Shoot me down +// if you can! u16 gMsg_ID_9340[28] = { PRI1, _S, _h, _o, _o, _t, SPC, _m, _e, SPC, _d, _o, _w, _n, NWL, _i, _f, SPC, _y, _o, _u, SPC, _c, _a, _n, EXM, NWL, END, }; +// Come on, little man! +// Shoot me! u16 gMsg_ID_9350[34] = { PRI1, _C, _o, _m, _e, SPC, _o, _n, CMA, SPC, _l, _i, _t, _t, _l, _e, SPC, _m, _a, _n, EXM, NWL, _S, _h, _o, _o, _t, SPC, _m, _e, EXM, NWL, END, }; +// I'm not afraid of +// YOU! u16 gMsg_ID_9360[26] = { PRI1, _I, APS, _m, SPC, _n, _o, _t, SPC, _a, _f, _r, _a, _i, _d, SPC, _o, _f, SPC, NWL, _Y, _O, _U, EXM, NWL, END, }; +// I...can't...lose! u16 gMsg_ID_9365[20] = { PRI1, _I, PRD, PRD, PRD, _c, _a, _n, APS, _t, PRD, PRD, PRD, _l, _o, _s, _e, EXM, NWL, END, }; +// This can't be +// happening! u16 gMsg_ID_9366[28] = { PRI1, _T, _h, _i, _s, SPC, _c, _a, _n, APS, _t, SPC, _b, _e, NWL, _h, _a, _p, _p, _e, _n, _i, _n, _g, EXM, NWL, END, }; +// My beautiful reward! +// Aaarrrggghhh! u16 gMsg_ID_9367[38] = { PRI1, _M, _y, SPC, _b, _e, _a, _u, _t, _i, _f, _u, _l, SPC, _r, _e, _w, _a, _r, _d, EXM, NWL, _A, _a, _a, _r, _r, _r, _g, _g, _g, _h, _h, _h, EXM, NWL, END, }; +// Uncle Andross! u16 gMsg_ID_9368[18] = { PRI1, _U, _n, _c, _l, _e, SPC, _A, _n, _d, _r, _o, _s, _s, EXM, NWL, END, }; +// What the heck?! u16 gMsg_ID_9369[18] = { PRI1, _W, _h, _a, _t, SPC, _t, _h, _e, SPC, _h, _e, _c, _k, QST, EXM, NWL, END, }; +// A bomb has been +// planted at the base. u16 gMsg_ID_9375[40] = { PRI2, _A, SPC, _b, _o, _m, _b, SPC, _h, _a, _s, SPC, _b, _e, _e, _n, NWL, _p, _l, _a, _n, _t, _e, _d, SPC, _a, _t, SPC, _t, _h, _e, SPC, _b, _a, _s, _e, PRD, NWL, END, }; +// Geez! Can anyone +// take care of it? u16 gMsg_ID_9380[36] = { PRI2, _G, _e, _e, _z, EXM, SPC, _C, _a, _n, SPC, _a, _n, _y, _o, _n, _e, NWL, _t, _a, _k, _e, SPC, _c, _a, _r, _e, SPC, _o, _f, SPC, _i, _t, QST, NWL, END, }; +// Let's take care of +// these guys first. u16 gMsg_ID_9385[40] = { PRI2, _L, _e, _t, APS, _s, SPC, _t, _a, _k, _e, SPC, _c, _a, _r, _e, SPC, _o, _f, NWL, _t, _h, _e, _s, _e, SPC, _g, _u, _y, _s, SPC, _f, _i, _r, _s, _t, PRD, NWL, END, }; +// Danger. One minute +// to explosion. u16 gMsg_ID_9390[36] = { PRI2, _D, _a, _n, _g, _e, _r, PRD, SPC, _O, _n, _e, SPC, _m, _i, _n, _u, _t, _e, NWL, _t, _o, SPC, _e, _x, _p, _l, _o, _s, _i, _o, _n, PRD, NWL, END, }; +// 30 seconds to +// explosion. u16 gMsg_ID_9395[28] = { PRI2, _3, _0, SPC, _s, _e, _c, _o, _n, _d, _s, SPC, _t, _o, NWL, _e, _x, _p, _l, _o, _s, _i, _o, _n, PRD, NWL, END, }; +// 15 seconds to +// explosion. u16 gMsg_ID_9400[28] = { PRI2, _1, _5, SPC, _s, _e, _c, _o, _n, _d, _s, SPC, _t, _o, NWL, _e, _x, _p, _l, _o, _s, _i, _o, _n, PRD, NWL, END, }; +// Bomb exploding. +// Keep clear. u16 gMsg_ID_9405[30] = { PRI2, _B, _o, _m, _b, SPC, _e, _x, _p, _l, _o, _d, _i, _n, _g, PRD, NWL, _K, _e, _e, _p, SPC, _c, _l, _e, _a, _r, PRD, NWL, END, }; +// I'll take care of +// the bomb now. u16 gMsg_ID_9411[34] = { PRI2, _I, APS, _l, _l, SPC, _t, _a, _k, _e, SPC, _c, _a, _r, _e, SPC, _o, _f, NWL, _t, _h, _e, SPC, _b, _o, _m, _b, SPC, _n, _o, _w, PRD, NWL, END, }; +// Emergency +// maneuvers! +// Get out of there! u16 gMsg_ID_9420[42] = { PRI1, _E, _m, _e, _r, _g, _e, _n, _c, _y, NWL, _m, _a, _n, _e, _u, _v, _e, _r, _s, EXM, SPC, NWL, _G, _e, _t, SPC, _o, _u, _t, SPC, _o, _f, SPC, _t, _h, _e, _r, _e, EXM, NWL, END, }; +// They almost got us! u16 gMsg_ID_9425[22] = { PRI1, _T, _h, _e, _y, SPC, _a, _l, _m, _o, _s, _t, SPC, _g, _o, _t, SPC, _u, _s, EXM, NWL, END, }; +// I'm not too crazy +// about those guys. u16 gMsg_ID_9426[38] = { PRI1, _I, APS, _m, SPC, _n, _o, _t, SPC, _t, _o, _o, SPC, _c, _r, _a, _z, _y, NWL, _a, _b, _o, _u, _t, SPC, _t, _h, _o, _s, _e, SPC, _g, _u, _y, _s, PRD, NWL, END, }; +// So that's Star Wolf? u16 gMsg_ID_9427[24] = { PRI1, _S, _o, SPC, _t, _h, _a, _t, APS, _s, SPC, _S, _t, _a, _r, SPC, _W, _o, _l, _f, QST, NWL, END, }; +// Hey, we made it! u16 gMsg_ID_9428[20] = { PRI1, _H, _e, _y, CMA, SPC, _w, _e, SPC, _m, _a, _d, _e, SPC, _i, _t, EXM, NWL, END, }; +// Fox, take it easy! u16 gMsg_ID_9429[22] = { PRI1, _F, _o, _x, CMA, SPC, _t, _a, _k, _e, SPC, _i, _t, SPC, _e, _a, _s, _y, EXM, NWL, END, }; +// That was a close +// call, Fox! u16 gMsg_ID_9430[30] = { PRI1, _T, _h, _a, _t, SPC, _w, _a, _s, SPC, _a, SPC, _c, _l, _o, _s, _e, NWL, _c, _a, _l, _l, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// Looks like we win +// today, Star Fox. u16 gMsg_ID_9431[38] = { PRI1, _L, _o, _o, _k, _s, SPC, _l, _i, _k, _e, SPC, _w, _e, SPC, _w, _i, _n, NWL, _t, _o, _d, _a, _y, CMA, SPC, _S, _t, _a, _r, SPC, _F, _o, _x, PRD, NWL, END, }; +// Close, but no cigar! +// HA HA! u16 gMsg_ID_9432[30] = { PRI1, _C, _l, _o, _s, _e, CMA, SPC, _b, _u, _t, SPC, _n, _o, SPC, _c, _i, _g, _a, _r, EXM, NWL, _H, _A, SPC, _H, _A, EXM, NWL, END, }; +// I've got two words +// for you: LO-SER!!! u16 gMsg_ID_9433[40] = { PRI1, _I, APS, _v, _e, SPC, _g, _o, _t, SPC, _t, _w, _o, SPC, _w, _o, _r, _d, _s, NWL, _f, _o, _r, SPC, _y, _o, _u, CLN, SPC, _L, _O, DSH, _S, _E, _R, EXM, EXM, EXM, NWL, END, }; +// Score one for +// Andross! u16 gMsg_ID_9434[26] = { PRI1, _S, _c, _o, _r, _e, SPC, _o, _n, _e, SPC, _f, _o, _r, SPC, NWL, _A, _n, _d, _r, _o, _s, _s, EXM, NWL, END, }; +// I got the last one! u16 gMsg_ID_9436[22] = { PRI2, _I, SPC, _g, _o, _t, SPC, _t, _h, _e, SPC, _l, _a, _s, _t, SPC, _o, _n, _e, EXM, NWL, END, }; +// I got the last one! u16 gMsg_ID_9437[22] = { PRI2, _I, SPC, _g, _o, _t, SPC, _t, _h, _e, SPC, _l, _a, _s, _t, SPC, _o, _n, _e, EXM, NWL, END, }; +// I got the last one! u16 gMsg_ID_9438[22] = { PRI2, _I, SPC, _g, _o, _t, SPC, _t, _h, _e, SPC, _l, _a, _s, _t, SPC, _o, _n, _e, EXM, NWL, END, }; +// Keep an eye on your +// shield gauge. u16 gMsg_ID_10010[38] = { PRI1, _K, _e, _e, _p, SPC, _a, _n, SPC, _e, _y, _e, SPC, _o, _n, SPC, _y, _o, _u, _r, SPC, NWL, _s, _h, _i, _e, _l, _d, SPC, _g, _a, _u, _g, _e, PRD, NWL, END, }; +// The Arwing might +// not make it! u16 gMsg_ID_10020[32] = { PRI1, _T, _h, _e, SPC, _A, _r, _w, _i, _n, _g, SPC, _m, _i, _g, _h, _t, NWL, _n, _o, _t, SPC, _m, _a, _k, _e, SPC, _i, _t, EXM, NWL, END, }; +// Brace yourselves! u16 gMsg_ID_10040[20] = { PRI1, _B, _r, _a, _c, _e, SPC, _y, _o, _u, _r, _s, _e, _l, _v, _e, _s, EXM, NWL, END, }; +// Shoot the rocks! u16 gMsg_ID_10050[20] = { PRI1, _S, _h, _o, _o, _t, SPC, _t, _h, _e, SPC, _r, _o, _c, _k, _s, EXM, NWL, END, }; +// This baby can take +// temperatures up to +// 9000 degrees. u16 gMsg_ID_10060[54] = { PRI1, _T, _h, _i, _s, SPC, _b, _a, _b, _y, SPC, _c, _a, _n, SPC, _t, _a, _k, _e, NWL, _t, _e, _m, _p, _e, _r, _a, _t, _u, _r, _e, _s, SPC, _u, _p, SPC, _t, _o, NWL, _9, _0, _0, _0, SPC, _d, _e, _g, _r, _e, _e, _s, PRD, NWL, END, }; +// Temperature is +// 6000 and climbing! u16 gMsg_ID_10070[36] = { PRI1, _T, _e, _m, _p, _e, _r, _a, _t, _u, _r, _e, SPC, _i, _s, NWL, _6, _0, _0, _0, SPC, _a, _n, _d, SPC, _c, _l, _i, _m, _b, _i, _n, _g, EXM, NWL, END, }; +// It's now at 8000! +// Oh no! u16 gMsg_ID_10080[28] = { PRI1, _I, _t, APS, _s, SPC, _n, _o, _w, SPC, _a, _t, SPC, _8, _0, _0, _0, EXM, SPC, NWL, _O, _h, SPC, _n, _o, EXM, NWL, END, }; +// Looks like you +// could use some +// help, Fox. u16 gMsg_ID_10200[44] = { PRI2, _L, _o, _o, _k, _s, SPC, _l, _i, _k, _e, SPC, _y, _o, _u, SPC, NWL, _c, _o, _u, _l, _d, SPC, _u, _s, _e, SPC, _s, _o, _m, _e, NWL, _h, _e, _l, _p, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Bill?! u16 gMsg_ID_10210[10] = { PRI2, _B, _i, _l, _l, QST, EXM, NWL, END, }; +// Don't get too +// excited. Here we go! u16 gMsg_ID_10220[38] = { PRI1, _D, _o, _n, APS, _t, SPC, _g, _e, _t, SPC, _t, _o, _o, NWL, _e, _x, _c, _i, _t, _e, _d, PRD, SPC, _H, _e, _r, _e, SPC, _w, _e, SPC, _g, _o, EXM, NWL, END, }; +// Watch yourself, +// Fox... u16 gMsg_ID_10230[26] = { PRI2, _W, _a, _t, _c, _h, SPC, _y, _o, _u, _r, _s, _e, _l, _f, CMA, NWL, _F, _o, _x, PRD, PRD, PRD, NWL, END, }; +// They're attacking +// in groups! u16 gMsg_ID_10255[32] = { PRI1, _T, _h, _e, _y, APS, _r, _e, SPC, _a, _t, _t, _a, _c, _k, _i, _n, _g, SPC, NWL, _i, _n, SPC, _g, _r, _o, _u, _p, _s, EXM, NWL, END, }; +// THIS is the enemy's +// bio-weapon?! u16 gMsg_ID_10300[36] = { PRI1, _T, _H, _I, _S, SPC, _i, _s, SPC, _t, _h, _e, SPC, _e, _n, _e, _m, _y, APS, _s, NWL, _b, _i, _o, DSH, _w, _e, _a, _p, _o, _n, QST, EXM, NWL, END, }; +// Andross is an +// insane fool! u16 gMsg_ID_10310[30] = { PRI1, _A, _n, _d, _r, _o, _s, _s, SPC, _i, _s, SPC, _a, _n, NWL, _i, _n, _s, _a, _n, _e, SPC, _f, _o, _o, _l, EXM, NWL, END, }; +// Maybe it's an arm. +// Aim for the arm! u16 gMsg_ID_10320[38] = { PRI1, _M, _a, _y, _b, _e, SPC, _i, _t, APS, _s, SPC, _a, _n, SPC, _a, _r, _m, PRD, NWL, _A, _i, _m, SPC, _f, _o, _r, SPC, _t, _h, _e, SPC, _a, _r, _m, EXM, NWL, END, }; +// I ain't your buddy! +// Go away! u16 gMsg_ID_10321[32] = { PRI1, _I, SPC, _a, _i, _n, APS, _t, SPC, _y, _o, _u, _r, SPC, _b, _u, _d, _d, _y, EXM, NWL, _G, _o, SPC, _a, _w, _a, _y, EXM, NWL, END, }; +// Good riddance. I +// almost got burned! u16 gMsg_ID_10322[38] = { PRI1, _G, _o, _o, _d, SPC, _r, _i, _d, _d, _a, _n, _c, _e, PRD, SPC, _I, NWL, _a, _l, _m, _o, _s, _t, SPC, _g, _o, _t, SPC, _b, _u, _r, _n, _e, _d, EXM, NWL, END, }; +// It's too hot! I +// can't take it +// anymore! u16 gMsg_ID_10323[42] = { PRI1, _I, _t, APS, _s, SPC, _t, _o, _o, SPC, _h, _o, _t, EXM, SPC, _I, SPC, NWL, _c, _a, _n, APS, _t, SPC, _t, _a, _k, _e, SPC, _i, _t, NWL, _a, _n, _y, _m, _o, _r, _e, EXM, NWL, END, }; +// Don't fly too low! +// Your ship can't +// take it! u16 gMsg_ID_10324[48] = { PRI1, _D, _o, _n, APS, _t, SPC, _f, _l, _y, SPC, _t, _o, _o, SPC, _l, _o, _w, EXM, NWL, _Y, _o, _u, _r, SPC, _s, _h, _i, _p, SPC, _c, _a, _n, APS, _t, SPC, NWL, _t, _a, _k, _e, SPC, _i, _t, EXM, NWL, END, }; +// OK guys, destroy +// all barriers. u16 gMsg_ID_11010[34] = { PRI1, _O, _K, SPC, _g, _u, _y, _s, CMA, SPC, _d, _e, _s, _t, _r, _o, _y, NWL, _a, _l, _l, SPC, _b, _a, _r, _r, _i, _e, _r, _s, PRD, NWL, END, }; +// Aim for the six +// energy towers. u16 gMsg_ID_11020[34] = { PRI1, _A, _i, _m, SPC, _f, _o, _r, SPC, _t, _h, _e, SPC, _s, _i, _x, NWL, _e, _n, _e, _r, _g, _y, SPC, _t, _o, _w, _e, _r, _s, PRD, NWL, END, }; +// I'll cover you, +// Fox. u16 gMsg_ID_11030[24] = { PRI1, _I, APS, _l, _l, SPC, _c, _o, _v, _e, _r, SPC, _y, _o, _u, CMA, SPC, NWL, _F, _o, _x, PRD, NWL, END, }; +// Your carcass is +// mine! u16 gMsg_ID_11040[24] = { PRI1, _Y, _o, _u, _r, SPC, _c, _a, _r, _c, _a, _s, _s, SPC, _i, _s, NWL, _m, _i, _n, _e, EXM, NWL, END, }; +// Hey! The force +// field is +// disappearing! u16 gMsg_ID_11050[42] = { PRI2, _H, _e, _y, EXM, SPC, _T, _h, _e, SPC, _f, _o, _r, _c, _e, SPC, NWL, _f, _i, _e, _l, _d, SPC, _i, _s, SPC, NWL, _d, _i, _s, _a, _p, _p, _e, _a, _r, _i, _n, _g, EXM, NWL, END, }; +// Looks like we've +// got company. u16 gMsg_ID_11060[32] = { PRI1, _L, _o, _o, _k, _s, SPC, _l, _i, _k, _e, SPC, _w, _e, APS, _v, _e, NWL, _g, _o, _t, SPC, _c, _o, _m, _p, _a, _n, _y, PRD, NWL, END, }; +// Play time is over, +// Star Fox! u16 gMsg_ID_11100[32] = { PRI2, _P, _l, _a, _y, SPC, _t, _i, _m, _e, SPC, _i, _s, SPC, _o, _v, _e, _r, CMA, NWL, _S, _t, _a, _r, SPC, _F, _o, _x, EXM, NWL, END, }; +// I think I'll +// torture you for +// awhile! u16 gMsg_ID_11110[42] = { PRI2, _I, SPC, _t, _h, _i, _n, _k, SPC, _I, APS, _l, _l, SPC, NWL, _t, _o, _r, _t, _u, _r, _e, SPC, _y, _o, _u, SPC, _f, _o, _r, SPC, NWL, _a, _w, _h, _i, _l, _e, EXM, NWL, END, }; +// Daddy screamed +// REAL good before +// he died! u16 gMsg_ID_11120[44] = { PRI2, _D, _a, _d, _d, _y, SPC, _s, _c, _r, _e, _a, _m, _e, _d, NWL, _R, _E, _A, _L, SPC, _g, _o, _o, _d, SPC, _b, _e, _f, _o, _r, _e, NWL, _h, _e, SPC, _d, _i, _e, _d, EXM, NWL, END, }; +// You'll be sorry +// you crossed us! u16 gMsg_ID_11130[34] = { PRI2, _Y, _o, _u, APS, _l, _l, SPC, _b, _e, SPC, _s, _o, _r, _r, _y, NWL, _y, _o, _u, SPC, _c, _r, _o, _s, _s, _e, _d, SPC, _u, _s, EXM, NWL, END, }; +// Good. I see the +// enemy core. u16 gMsg_ID_11150[30] = { PRI2, _G, _o, _o, _d, PRD, SPC, _I, SPC, _s, _e, _e, SPC, _t, _h, _e, NWL, _e, _n, _e, _m, _y, SPC, _c, _o, _r, _e, PRD, NWL, END, }; +// Destroy the +// satellite's core! u16 gMsg_ID_11160[32] = { PRI2, _D, _e, _s, _t, _r, _o, _y, SPC, _t, _h, _e, NWL, _s, _a, _t, _e, _l, _l, _i, _t, _e, APS, _s, SPC, _c, _o, _r, _e, EXM, NWL, END, }; +// Venom, here we come. u16 gMsg_ID_11200[24] = { PRI1, _V, _e, _n, _o, _m, CMA, SPC, _h, _e, _r, _e, SPC, _w, _e, SPC, _c, _o, _m, _e, PRD, NWL, END, }; +// Those ships are +// shielded, too! u16 gMsg_ID_11210[34] = { PRI1, _T, _h, _o, _s, _e, SPC, _s, _h, _i, _p, _s, SPC, _a, _r, _e, NWL, _s, _h, _i, _e, _l, _d, _e, _d, CMA, SPC, _t, _o, _o, EXM, NWL, END, }; +// You are NOT taking +// him down today. u16 gMsg_ID_11220[38] = { PRI1, _Y, _o, _u, SPC, _a, _r, _e, SPC, _N, _O, _T, SPC, _t, _a, _k, _i, _n, _g, NWL, _h, _i, _m, SPC, _d, _o, _w, _n, SPC, _t, _o, _d, _a, _y, PRD, NWL, END, }; +// What's taking so +// long, Fox? u16 gMsg_ID_11230[32] = { PRI1, _W, _h, _a, _t, APS, _s, SPC, _t, _a, _k, _i, _n, _g, SPC, _s, _o, SPC, NWL, _l, _o, _n, _g, CMA, SPC, _F, _o, _x, QST, NWL, END, }; +// They don't give up. u16 gMsg_ID_11240[22] = { PRI1, _T, _h, _e, _y, SPC, _d, _o, _n, APS, _t, SPC, _g, _i, _v, _e, SPC, _u, _p, PRD, NWL, END, }; +// Star Wolf again?! +// Why now? u16 gMsg_ID_11241[30] = { PRI1, _S, _t, _a, _r, SPC, _W, _o, _l, _f, SPC, _a, _g, _a, _i, _n, QST, EXM, NWL, _W, _h, _y, SPC, _n, _o, _w, QST, NWL, END, }; +// Let's back up +// the squadron. u16 gMsg_ID_14020[30] = { PRI1, _L, _e, _t, APS, _s, SPC, _b, _a, _c, _k, SPC, _u, _p, NWL, _t, _h, _e, SPC, _s, _q, _u, _a, _d, _r, _o, _n, PRD, NWL, END, }; +// Somebody's gonna +// pay for all this. u16 gMsg_ID_14030[38] = { PRI1, _S, _o, _m, _e, _b, _o, _d, _y, APS, _s, SPC, _g, _o, _n, _n, _a, NWL, _p, _a, _y, SPC, _f, _o, _r, SPC, _a, _l, _l, SPC, _t, _h, _i, _s, PRD, NWL, END, }; +// Don't let any of +// 'em through! u16 gMsg_ID_14040[32] = { PRI1, _D, _o, _n, APS, _t, SPC, _l, _e, _t, SPC, _a, _n, _y, SPC, _o, _f, NWL, APS, _e, _m, SPC, _t, _h, _r, _o, _u, _g, _h, EXM, NWL, END, }; +// Something's wrong. +// I don't see +// anything. u16 gMsg_ID_14045[44] = { PRI1, _S, _o, _m, _e, _t, _h, _i, _n, _g, APS, _s, SPC, _w, _r, _o, _n, _g, PRD, NWL, _I, SPC, _d, _o, _n, APS, _t, SPC, _s, _e, _e, SPC, NWL, _a, _n, _y, _t, _h, _i, _n, _g, PRD, NWL, END, }; +// Hold 'em! They're +// trying to get +// through! u16 gMsg_ID_14050[44] = { PRI1, _H, _o, _l, _d, SPC, APS, _e, _m, EXM, SPC, _T, _h, _e, _y, APS, _r, _e, NWL, _t, _r, _y, _i, _n, _g, SPC, _t, _o, SPC, _g, _e, _t, SPC, NWL, _t, _h, _r, _o, _u, _g, _h, EXM, NWL, END, }; +// Fox, you're +// supposed to +// shoot 'em all! u16 gMsg_ID_14060[42] = { PRI2, _F, _o, _x, CMA, SPC, _y, _o, _u, APS, _r, _e, SPC, NWL, _s, _u, _p, _p, _o, _s, _e, _d, SPC, _t, _o, NWL, _s, _h, _o, _o, _t, SPC, APS, _e, _m, SPC, _a, _l, _l, EXM, NWL, END, }; +// Good job! +// Keep up the pace! u16 gMsg_ID_14070[32] = { PRI2, _G, _o, _o, _d, SPC, _j, _o, _b, EXM, SPC, NWL, _K, _e, _e, _p, SPC, _u, _p, SPC, _t, _h, _e, SPC, _p, _a, _c, _e, EXM, NWL, END, }; +// Is that the best +// you can do? u16 gMsg_ID_14080[32] = { PRI1, _I, _s, SPC, _t, _h, _a, _t, SPC, _t, _h, _e, SPC, _b, _e, _s, _t, NWL, _y, _o, _u, SPC, _c, _a, _n, SPC, _d, _o, QST, NWL, END, }; +// You're becoming a +// better pilot. u16 gMsg_ID_14100[34] = { PRI2, _Y, _o, _u, APS, _r, _e, SPC, _b, _e, _c, _o, _m, _i, _n, _g, SPC, _a, NWL, _b, _e, _t, _t, _e, _r, SPC, _p, _i, _l, _o, _t, PRD, NWL, END, }; +// Surprise attack +// coming from above! u16 gMsg_ID_14110[38] = { PRI1, _S, _u, _r, _p, _r, _i, _s, _e, SPC, _a, _t, _t, _a, _c, _k, NWL, _c, _o, _m, _i, _n, _g, SPC, _f, _r, _o, _m, SPC, _a, _b, _o, _v, _e, EXM, NWL, END, }; +// I'll take care of +// everything below. u16 gMsg_ID_14120[38] = { PRI1, _I, APS, _l, _l, SPC, _t, _a, _k, _e, SPC, _c, _a, _r, _e, SPC, _o, _f, NWL, _e, _v, _e, _r, _y, _t, _h, _i, _n, _g, SPC, _b, _e, _l, _o, _w, PRD, NWL, END, }; +// I've got everything +// above. u16 gMsg_ID_14130[30] = { PRI1, _I, APS, _v, _e, SPC, _g, _o, _t, SPC, _e, _v, _e, _r, _y, _t, _h, _i, _n, _g, NWL, _a, _b, _o, _v, _e, PRD, NWL, END, }; +// Ah ha! Thought you +// could hide from me, +// eh? u16 gMsg_ID_14140[46] = { PRI1, _A, _h, SPC, _h, _a, EXM, SPC, _T, _h, _o, _u, _g, _h, _t, SPC, _y, _o, _u, NWL, _c, _o, _u, _l, _d, SPC, _h, _i, _d, _e, SPC, _f, _r, _o, _m, SPC, _m, _e, CMA, SPC, NWL, _e, _h, QST, NWL, END, }; +// Escaping? I don't +// think so! u16 gMsg_ID_14150[30] = { PRI1, _E, _s, _c, _a, _p, _i, _n, _g, QST, SPC, _I, SPC, _d, _o, _n, APS, _t, NWL, _t, _h, _i, _n, _k, SPC, _s, _o, EXM, NWL, END, }; +// Hey! +// Leave me alone! u16 gMsg_ID_14160[24] = { PRI1, _H, _e, _y, EXM, SPC, NWL, _L, _e, _a, _v, _e, SPC, _m, _e, SPC, _a, _l, _o, _n, _e, EXM, NWL, END, }; +// Take 'em down with +// one shot! u16 gMsg_ID_14170[32] = { PRI1, _T, _a, _k, _e, SPC, APS, _e, _m, SPC, _d, _o, _w, _n, SPC, _w, _i, _t, _h, SPC, NWL, _o, _n, _e, SPC, _s, _h, _o, _t, EXM, NWL, END, }; +// He's quick! +// Be careful. u16 gMsg_ID_14180[28] = { PRI1, _H, _e, APS, _s, SPC, _q, _u, _i, _c, _k, EXM, SPC, NWL, _B, _e, SPC, _c, _a, _r, _e, _f, _u, _l, PRD, NWL, END, }; +// Something's up +// ahead. Looks +// different. u16 gMsg_ID_14190[42] = { PRI1, _S, _o, _m, _e, _t, _h, _i, _n, _g, APS, _s, SPC, _u, _p, NWL, _a, _h, _e, _a, _d, PRD, SPC, _L, _o, _o, _k, _s, NWL, _d, _i, _f, _f, _e, _r, _e, _n, _t, PRD, NWL, END, }; +// Geez, quit moving +// around! u16 gMsg_ID_14200[28] = { PRI1, _G, _e, _e, _z, CMA, SPC, _q, _u, _i, _t, SPC, _m, _o, _v, _i, _n, _g, NWL, _a, _r, _o, _u, _n, _d, EXM, NWL, END, }; +// Watch the radar +// carefully, Fox. u16 gMsg_ID_14210[34] = { PRI1, _W, _a, _t, _c, _h, SPC, _t, _h, _e, SPC, _r, _a, _d, _a, _r, NWL, _c, _a, _r, _e, _f, _u, _l, _l, _y, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// These guys are +// tough! u16 gMsg_ID_14220[24] = { PRI1, _T, _h, _e, _s, _e, SPC, _g, _u, _y, _s, SPC, _a, _r, _e, NWL, _t, _o, _u, _g, _h, EXM, NWL, END, }; +// Good job. Keep up +// the good work. u16 gMsg_ID_14230[36] = { PRI1, _G, _o, _o, _d, SPC, _j, _o, _b, PRD, SPC, _K, _e, _e, _p, SPC, _u, _p, NWL, _t, _h, _e, SPC, _g, _o, _o, _d, SPC, _w, _o, _r, _k, PRD, NWL, END, }; +// Don't party just +// yet. u16 gMsg_ID_14300[26] = { PRI1, _D, _o, _n, APS, _t, SPC, _p, _a, _r, _t, _y, SPC, _j, _u, _s, _t, SPC, NWL, _y, _e, _t, PRD, NWL, END, }; +// It's time to try +// our new weapon. u16 gMsg_ID_14310[36] = { PRI1, _I, _t, APS, _s, SPC, _t, _i, _m, _e, SPC, _t, _o, SPC, _t, _r, _y, NWL, _o, _u, _r, SPC, _n, _e, _w, SPC, _w, _e, _a, _p, _o, _n, PRD, NWL, END, }; +// What's wrong? +// Is that it? u16 gMsg_ID_14320[28] = { PRI1, _W, _h, _a, _t, APS, _s, SPC, _w, _r, _o, _n, _g, QST, NWL, _I, _s, SPC, _t, _h, _a, _t, SPC, _i, _t, QST, NWL, END, }; +// I'm comin' for ya! u16 gMsg_ID_14330[22] = { PRI1, _I, APS, _m, SPC, _c, _o, _m, _i, _n, APS, SPC, _f, _o, _r, SPC, _y, _a, EXM, NWL, END, }; +// I'll take you guys +// out from the ship! u16 gMsg_ID_14340[40] = { PRI1, _I, APS, _l, _l, SPC, _t, _a, _k, _e, SPC, _y, _o, _u, SPC, _g, _u, _y, _s, NWL, _o, _u, _t, SPC, _f, _r, _o, _m, SPC, _t, _h, _e, SPC, _s, _h, _i, _p, EXM, NWL, END, }; +// Cocky little freaks! u16 gMsg_ID_14350[24] = { PRI1, _C, _o, _c, _k, _y, SPC, _l, _i, _t, _t, _l, _e, SPC, _f, _r, _e, _a, _k, _s, EXM, NWL, END, }; +// Aaaaahhhhh!!!! u16 gMsg_ID_14360[18] = { PRI2, _A, _a, _a, _a, _a, _h, _h, _h, _h, _h, EXM, EXM, EXM, EXM, NWL, END, }; +// We're headin' for +// Aquas. Report in. u16 gMsg_ID_14370[38] = { PRI2, _W, _e, APS, _r, _e, SPC, _h, _e, _a, _d, _i, _n, APS, SPC, _f, _o, _r, NWL, _A, _q, _u, _a, _s, PRD, SPC, _R, _e, _p, _o, _r, _t, SPC, _i, _n, PRD, NWL, END, }; +// I'm gonna check out +// the bio-weapon. u16 gMsg_ID_15010[40] = { PRI1, _I, APS, _m, SPC, _g, _o, _n, _n, _a, SPC, _c, _h, _e, _c, _k, SPC, _o, _u, _t, SPC, NWL, _t, _h, _e, SPC, _b, _i, _o, DSH, _w, _e, _a, _p, _o, _n, PRD, NWL, END, }; +// I'm sending the +// data to you guys. u16 gMsg_ID_15030[38] = { PRI1, _I, APS, _m, SPC, _s, _e, _n, _d, _i, _n, _g, SPC, _t, _h, _e, SPC, NWL, _d, _a, _t, _a, SPC, _t, _o, SPC, _y, _o, _u, SPC, _g, _u, _y, _s, PRD, NWL, END, }; +// Looks like the +// pollution has +// started. u16 gMsg_ID_15040[42] = { PRI1, _L, _o, _o, _k, _s, SPC, _l, _i, _k, _e, SPC, _t, _h, _e, NWL, _p, _o, _l, _l, _u, _t, _i, _o, _n, SPC, _h, _a, _s, SPC, NWL, _s, _t, _a, _r, _t, _e, _d, PRD, NWL, END, }; +// It's awful... u16 gMsg_ID_15045[16] = { PRI1, _I, _t, APS, _s, SPC, _a, _w, _f, _u, _l, PRD, PRD, PRD, NWL, END, }; +// How's the +// Blue-Marine, Fox? u16 gMsg_ID_15050[30] = { PRI1, _H, _o, _w, APS, _s, SPC, _t, _h, _e, NWL, _B, _l, _u, _e, DSH, _M, _a, _r, _i, _n, _e, CMA, SPC, _F, _o, _x, QST, NWL, END, }; +// It's a good thing +// you prepared, Slip. u16 gMsg_ID_15051[40] = { PRI1, _I, _t, APS, _s, SPC, _a, SPC, _g, _o, _o, _d, SPC, _t, _h, _i, _n, _g, NWL, _y, _o, _u, SPC, _p, _r, _e, _p, _a, _r, _e, _d, CMA, SPC, _S, _l, _i, _p, PRD, NWL, END, }; +// This thing will +// never hold together. u16 gMsg_ID_15052[40] = { PRI1, _T, _h, _i, _s, SPC, _t, _h, _i, _n, _g, SPC, _w, _i, _l, _l, SPC, NWL, _n, _e, _v, _e, _r, SPC, _h, _o, _l, _d, SPC, _t, _o, _g, _e, _t, _h, _e, _r, PRD, NWL, END, }; +// Keep shooting. +// We've got lots of +// torpedoes! u16 gMsg_ID_15053[48] = { PRI1, _K, _e, _e, _p, SPC, _s, _h, _o, _o, _t, _i, _n, _g, PRD, NWL, _W, _e, APS, _v, _e, SPC, _g, _o, _t, SPC, _l, _o, _t, _s, SPC, _o, _f, SPC, NWL, _t, _o, _r, _p, _e, _d, _o, _e, _s, EXM, NWL, END, }; +// You're the best, +// Slippy! u16 gMsg_ID_15054[28] = { PRI1, _Y, _o, _u, APS, _r, _e, SPC, _t, _h, _e, SPC, _b, _e, _s, _t, CMA, NWL, _S, _l, _i, _p, _p, _y, EXM, NWL, END, }; +// Thanks, Peppy! u16 gMsg_ID_15060[18] = { PRI1, _T, _h, _a, _n, _k, _s, CMA, SPC, _P, _e, _p, _p, _y, EXM, NWL, END, }; +// I've found the +// bio-weapon. u16 gMsg_ID_15100[30] = { PRI1, _I, APS, _v, _e, SPC, _f, _o, _u, _n, _d, SPC, _t, _h, _e, NWL, _b, _i, _o, DSH, _w, _e, _a, _p, _o, _n, PRD, NWL, END, }; +// Aim for the two +// columns. u16 gMsg_ID_15110[28] = { PRI1, _A, _i, _m, SPC, _f, _o, _r, SPC, _t, _h, _e, SPC, _t, _w, _o, NWL, _c, _o, _l, _u, _m, _n, _s, PRD, NWL, END, }; +// Fire a homing +// torpedo! u16 gMsg_ID_15120[26] = { PRI1, _F, _i, _r, _e, SPC, _a, SPC, _h, _o, _m, _i, _n, _g, NWL, _t, _o, _r, _p, _e, _d, _o, EXM, NWL, END, }; +// That's it, Fox. u16 gMsg_ID_15130[18] = { PRI1, _T, _h, _a, _t, APS, _s, SPC, _i, _t, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Go for the eyes! u16 gMsg_ID_15140[20] = { PRI1, _G, _o, SPC, _f, _o, _r, SPC, _t, _h, _e, SPC, _e, _y, _e, _s, EXM, NWL, END, }; +// We're preparing +// to dock. u16 gMsg_ID_15200[28] = { PRI1, _W, _e, APS, _r, _e, SPC, _p, _r, _e, _p, _a, _r, _i, _n, _g, NWL, _t, _o, SPC, _d, _o, _c, _k, PRD, NWL, END, }; +// Slippy's not such a +// screw up after all. u16 gMsg_ID_15210[42] = { PRI1, _S, _l, _i, _p, _p, _y, APS, _s, SPC, _n, _o, _t, SPC, _s, _u, _c, _h, SPC, _a, NWL, _s, _c, _r, _e, _w, SPC, _u, _p, SPC, _a, _f, _t, _e, _r, SPC, _a, _l, _l, PRD, NWL, END, }; +// Thanks a lot, Peppy! u16 gMsg_ID_15220[24] = { PRI1, _T, _h, _a, _n, _k, _s, SPC, _a, SPC, _l, _o, _t, CMA, SPC, _P, _e, _p, _p, _y, EXM, NWL, END, }; +// I'll take the sky +// any day. u16 gMsg_ID_15230[30] = { PRI1, _I, APS, _l, _l, SPC, _t, _a, _k, _e, SPC, _t, _h, _e, SPC, _s, _k, _y, SPC, NWL, _a, _n, _y, SPC, _d, _a, _y, PRD, NWL, END, }; +// Sheesh, Falco! +// You, too? u16 gMsg_ID_15240[28] = { PRI1, _S, _h, _e, _e, _s, _h, CMA, SPC, _F, _a, _l, _c, _o, EXM, NWL, _Y, _o, _u, CMA, SPC, _t, _o, _o, QST, NWL, END, }; +// Shoot a torpedo to +// help you see. u16 gMsg_ID_15250[36] = { PRI1, _S, _h, _o, _o, _t, SPC, _a, SPC, _t, _o, _r, _p, _e, _d, _o, SPC, _t, _o, SPC, NWL, _h, _e, _l, _p, SPC, _y, _o, _u, SPC, _s, _e, _e, PRD, NWL, END, }; +// Wow! Look at that! +// It's beautiful! u16 gMsg_ID_15251[38] = { PRI1, _W, _o, _w, EXM, SPC, _L, _o, _o, _k, SPC, _a, _t, SPC, _t, _h, _a, _t, EXM, NWL, _I, _t, APS, _s, SPC, _b, _e, _a, _u, _t, _i, _f, _u, _l, EXM, NWL, END, }; +// Yippee! +// You did it! u16 gMsg_ID_15252[24] = { PRI1, _Y, _i, _p, _p, _e, _e, EXM, SPC, NWL, _Y, _o, _u, SPC, _d, _i, _d, SPC, _i, _t, EXM, NWL, END, }; +// Thanks, Slip. +// Blue-Marine +// came through. u16 gMsg_ID_15253[42] = { PRI1, _T, _h, _a, _n, _k, _s, CMA, SPC, _S, _l, _i, _p, PRD, NWL, _B, _l, _u, _e, DSH, _M, _a, _r, _i, _n, _e, NWL, _c, _a, _m, _e, SPC, _t, _h, _r, _o, _u, _g, _h, PRD, NWL, END, }; +// Enemy behind. +// Descend! u16 gMsg_ID_15254[24] = { _E, _n, _e, _m, _y, SPC, _b, _e, _h, _i, _n, _d, PRD, NWL, _D, _e, _s, _c, _e, _n, _d, EXM, NWL, END, }; +// Enemy approaching +// from the left. u16 gMsg_ID_16010[36] = { PRI1, _E, _n, _e, _m, _y, SPC, _a, _p, _p, _r, _o, _a, _c, _h, _i, _n, _g, NWL, _f, _r, _o, _m, SPC, _t, _h, _e, SPC, _l, _e, _f, _t, PRD, NWL, END, }; +// We'll gladly take +// this one. u16 gMsg_ID_16020[30] = { PRI1, _W, _e, APS, _l, _l, SPC, _g, _l, _a, _d, _l, _y, SPC, _t, _a, _k, _e, NWL, _t, _h, _i, _s, SPC, _o, _n, _e, PRD, NWL, END, }; +// Nice welcome! u16 gMsg_ID_16030[16] = { PRI1, _N, _i, _c, _e, SPC, _w, _e, _l, _c, _o, _m, _e, EXM, NWL, END, }; +// I'm heading for the +// missile now. u16 gMsg_ID_16040[36] = { PRI1, _I, APS, _m, SPC, _h, _e, _a, _d, _i, _n, _g, SPC, _f, _o, _r, SPC, _t, _h, _e, NWL, _m, _i, _s, _s, _i, _l, _e, SPC, _n, _o, _w, PRD, NWL, END, }; +// I'm going for the +// missile. u16 gMsg_ID_16046[30] = { PRI1, _I, APS, _m, SPC, _g, _o, _i, _n, _g, SPC, _f, _o, _r, SPC, _t, _h, _e, NWL, _m, _i, _s, _s, _i, _l, _e, PRD, NWL, END, }; +// I'm heading for the +// missile now. u16 gMsg_ID_16047[36] = { PRI1, _I, APS, _m, SPC, _h, _e, _a, _d, _i, _n, _g, SPC, _f, _o, _r, SPC, _t, _h, _e, SPC, NWL, _m, _i, _s, _s, _i, _l, _e, SPC, _n, _o, _w, PRD, NWL, END, }; +// Six missiles coming +// from the left. u16 gMsg_ID_16050[38] = { PRI2, _S, _i, _x, SPC, _m, _i, _s, _s, _i, _l, _e, _s, SPC, _c, _o, _m, _i, _n, _g, NWL, _f, _r, _o, _m, SPC, _t, _h, _e, SPC, _l, _e, _f, _t, PRD, NWL, END, }; +// Missile one is +// heading for +// Great Fox. u16 gMsg_ID_16055[40] = { PRI2, _M, _i, _s, _s, _i, _l, _e, SPC, _o, _n, _e, SPC, _i, _s, NWL, _h, _e, _a, _d, _i, _n, _g, SPC, _f, _o, _r, NWL, _G, _r, _e, _a, _t, SPC, _F, _o, _x, PRD, NWL, END, }; +// Here it comes! u16 gMsg_ID_16060[18] = { PRI2, _H, _e, _r, _e, SPC, _i, _t, SPC, _c, _o, _m, _e, _s, EXM, NWL, END, }; +// Missile approaching. +// Distance 50. u16 gMsg_ID_16080[36] = { PRI2, _M, _i, _s, _s, _i, _l, _e, SPC, _a, _p, _p, _r, _o, _a, _c, _h, _i, _n, _g, PRD, NWL, _D, _i, _s, _t, _a, _n, _c, _e, SPC, _5, _0, PRD, NWL, END, }; +// Missile approaching. +// Distance 20. u16 gMsg_ID_16085[36] = { PRI2, _M, _i, _s, _s, _i, _l, _e, SPC, _a, _p, _p, _r, _o, _a, _c, _h, _i, _n, _g, PRD, NWL, _D, _i, _s, _t, _a, _n, _c, _e, SPC, _2, _0, PRD, NWL, END, }; +// Distance 10. +// Unable to evade. u16 gMsg_ID_16090[32] = { PRI2, _D, _i, _s, _t, _a, _n, _c, _e, SPC, _1, _0, PRD, NWL, _U, _n, _a, _b, _l, _e, SPC, _t, _o, SPC, _e, _v, _a, _d, _e, PRD, NWL, END, }; +// Missiles 2 and 3 +// approaching! u16 gMsg_ID_16100[32] = { PRI2, _M, _i, _s, _s, _i, _l, _e, _s, SPC, _2, SPC, _a, _n, _d, SPC, _3, NWL, _a, _p, _p, _r, _o, _a, _c, _h, _i, _n, _g, EXM, NWL, END, }; +// Missiles 4, 5 and 6 +// approaching! u16 gMsg_ID_16110[36] = { PRI2, _M, _i, _s, _s, _i, _l, _e, _s, SPC, _4, CMA, SPC, _5, SPC, _a, _n, _d, SPC, _6, SPC, NWL, _a, _p, _p, _r, _o, _a, _c, _h, _i, _n, _g, EXM, NWL, END, }; +// Are you gonna hog +// all the fun? u16 gMsg_ID_16120[34] = { PRI2, _A, _r, _e, SPC, _y, _o, _u, SPC, _g, _o, _n, _n, _a, SPC, _h, _o, _g, NWL, _a, _l, _l, SPC, _t, _h, _e, SPC, _f, _u, _n, QST, NWL, END, }; +// Katt?! Can't you go +// bother someone else? u16 gMsg_ID_16125[44] = { PRI2, _K, _a, _t, _t, QST, EXM, SPC, _C, _a, _n, APS, _t, SPC, _y, _o, _u, SPC, _g, _o, NWL, _b, _o, _t, _h, _e, _r, SPC, _s, _o, _m, _e, _o, _n, _e, SPC, _e, _l, _s, _e, QST, NWL, END, }; +// Let me help you out. u16 gMsg_ID_16130[24] = { PRI1, _L, _e, _t, SPC, _m, _e, SPC, _h, _e, _l, _p, SPC, _y, _o, _u, SPC, _o, _u, _t, PRD, NWL, END, }; +// Make way for Katt! u16 gMsg_ID_16135[22] = { PRI1, _M, _a, _k, _e, SPC, _w, _a, _y, SPC, _f, _o, _r, SPC, _K, _a, _t, _t, EXM, NWL, END, }; +// Beautiful! I could +// kiss you for that! u16 gMsg_ID_16140[42] = { PRI1, _B, _e, _a, _u, _t, _i, _f, _u, _l, EXM, SPC, _I, SPC, _c, _o, _u, _l, _d, SPC, NWL, _k, _i, _s, _s, SPC, _y, _o, _u, SPC, _f, _o, _r, SPC, _t, _h, _a, _t, EXM, NWL, END, }; +// You owe me, Falco. u16 gMsg_ID_16150[22] = { PRI1, _Y, _o, _u, SPC, _o, _w, _e, SPC, _m, _e, CMA, SPC, _F, _a, _l, _c, _o, PRD, NWL, END, }; +// You're on your own. +// Good luck, little +// man. u16 gMsg_ID_16160[46] = { PRI1, _Y, _o, _u, APS, _r, _e, SPC, _o, _n, SPC, _y, _o, _u, _r, SPC, _o, _w, _n, PRD, NWL, _G, _o, _o, _d, SPC, _l, _u, _c, _k, CMA, SPC, _l, _i, _t, _t, _l, _e, SPC, NWL, _m, _a, _n, PRD, NWL, END, }; +// Too bad, little man. u16 gMsg_ID_16165[24] = { PRI1, _T, _o, _o, SPC, _b, _a, _d, CMA, SPC, _l, _i, _t, _t, _l, _e, SPC, _m, _a, _n, PRD, NWL, END, }; +// One missile down. u16 gMsg_ID_16170[20] = { PRI1, _O, _n, _e, SPC, _m, _i, _s, _s, _i, _l, _e, SPC, _d, _o, _w, _n, PRD, NWL, END, }; +// One missile +// destroyed. u16 gMsg_ID_16175[26] = { PRI1, _O, _n, _e, SPC, _m, _i, _s, _s, _i, _l, _e, SPC, NWL, _d, _e, _s, _t, _r, _o, _y, _e, _d, PRD, NWL, END, }; +// Scratch one missile. +// Scratch one missile. u16 gMsg_ID_16180[24] = { PRI1, _S, _c, _r, _a, _t, _c, _h, SPC, _o, _n, _e, SPC, _m, _i, _s, _s, _i, _l, _e, PRD, NWL, END, }; +// I took care of a +// missile for ya. u16 gMsg_ID_16185[38] = { PRI1, _I, SPC, _t, _o, _o, _k, SPC, _c, _a, _r, _e, SPC, _o, _f, SPC, _a, NWL, _m, _i, _s, _s, _i, _l, _e, SPC, _f, _o, _r, SPC, _y, _a, PRD, NWL, SPC, NWL, END, }; +// ROB, is +// everything OK? u16 gMsg_ID_16200[26] = { PRI1, _R, _O, _B, CMA, SPC, _i, _s, NWL, _e, _v, _e, _r, _y, _t, _h, _i, _n, _g, SPC, _O, _K, QST, NWL, END, }; +// Damage to rear left +// section of the ship. u16 gMsg_ID_16210[44] = { PRI1, _D, _a, _m, _a, _g, _e, SPC, _t, _o, SPC, _r, _e, _a, _r, SPC, _l, _e, _f, _t, NWL, _s, _e, _c, _t, _i, _o, _n, SPC, _o, _f, SPC, _t, _h, _e, SPC, _s, _h, _i, _p, PRD, NWL, END, }; +// Dang, now they've +// done it! u16 gMsg_ID_16220[30] = { PRI1, _D, _a, _n, _g, CMA, SPC, _n, _o, _w, SPC, _t, _h, _e, _y, APS, _v, _e, NWL, _d, _o, _n, _e, SPC, _i, _t, EXM, NWL, END, }; +// It could be +// difficult to attack +// Venom. u16 gMsg_ID_16230[42] = { PRI1, _I, _t, SPC, _c, _o, _u, _l, _d, SPC, _b, _e, NWL, _d, _i, _f, _f, _i, _c, _u, _l, _t, SPC, _t, _o, SPC, _a, _t, _t, _a, _c, _k, NWL, _V, _e, _n, _o, _m, PRD, NWL, END, }; +// Doggone it! u16 gMsg_ID_16240[14] = { PRI1, _D, _o, _g, _g, _o, _n, _e, SPC, _i, _t, EXM, NWL, END, }; +// Great Fox is OK. u16 gMsg_ID_16250[20] = { PRI1, _G, _r, _e, _a, _t, SPC, _F, _o, _x, SPC, _i, _s, SPC, _O, _K, PRD, NWL, END, }; +// That was a close +// call. u16 gMsg_ID_16260[26] = { PRI1, _T, _h, _a, _t, SPC, _w, _a, _s, SPC, _a, SPC, _c, _l, _o, _s, _e, SPC, NWL, _c, _a, _l, _l, PRD, NWL, END, }; +// We've got the bad +// guys on the run. u16 gMsg_ID_16270[38] = { PRI1, _W, _e, APS, _v, _e, SPC, _g, _o, _t, SPC, _t, _h, _e, SPC, _b, _a, _d, NWL, _g, _u, _y, _s, SPC, _o, _n, SPC, _t, _h, _e, SPC, _r, _u, _n, PRD, NWL, END, }; +// Don't worry. +// Slippy's here! u16 gMsg_ID_16280[30] = { PRI1, _D, _o, _n, APS, _t, SPC, _w, _o, _r, _r, _y, PRD, NWL, _S, _l, _i, _p, _p, _y, APS, _s, SPC, _h, _e, _r, _e, EXM, NWL, END, }; +// I spot the train. +// I'm takin' it out! u16 gMsg_ID_17010[40] = { PRI1, _I, SPC, _s, _p, _o, _t, SPC, _t, _h, _e, SPC, _t, _r, _a, _i, _n, PRD, NWL, _I, APS, _m, SPC, _t, _a, _k, _i, _n, APS, SPC, _i, _t, SPC, _o, _u, _t, EXM, NWL, END, }; +// Hey, I've got my +// hands full up here. u16 gMsg_ID_17020[40] = { PRI1, _H, _e, _y, CMA, SPC, _I, APS, _v, _e, SPC, _g, _o, _t, SPC, _m, _y, NWL, _h, _a, _n, _d, _s, SPC, _f, _u, _l, _l, SPC, _u, _p, SPC, _h, _e, _r, _e, PRD, NWL, END, }; +// Don't let 'em get +// to the supply depot! u16 gMsg_ID_17030[42] = { PRI1, _D, _o, _n, APS, _t, SPC, _l, _e, _t, SPC, APS, _e, _m, SPC, _g, _e, _t, NWL, _t, _o, SPC, _t, _h, _e, SPC, _s, _u, _p, _p, _l, _y, SPC, _d, _e, _p, _o, _t, EXM, NWL, END, }; +// I see the fuel +// bunker on the +// right side. u16 gMsg_ID_17100[46] = { PRI2, _I, SPC, _s, _e, _e, SPC, _t, _h, _e, SPC, _f, _u, _e, _l, SPC, NWL, _b, _u, _n, _k, _e, _r, SPC, _o, _n, SPC, _t, _h, _e, SPC, NWL, _r, _i, _g, _h, _t, SPC, _s, _i, _d, _e, PRD, NWL, END, }; +// Change the switch +// ahead. u16 gMsg_ID_17110[28] = { PRI2, _C, _h, _a, _n, _g, _e, SPC, _t, _h, _e, SPC, _s, _w, _i, _t, _c, _h, NWL, _a, _h, _e, _a, _d, PRD, NWL, END, }; +// Shoot the 8 +// switches to open +// the lock. u16 gMsg_ID_17120[42] = { PRI2, _S, _h, _o, _o, _t, SPC, _t, _h, _e, SPC, _8, SPC, NWL, _s, _w, _i, _t, _c, _h, _e, _s, SPC, _t, _o, SPC, _o, _p, _e, _n, NWL, _t, _h, _e, SPC, _l, _o, _c, _k, PRD, NWL, END, }; +// Startin' without +// me? Boys, I'm +// crushed. u16 gMsg_ID_17130[42] = { PRI2, _S, _t, _a, _r, _t, _i, _n, APS, SPC, _w, _i, _t, _h, _o, _u, _t, NWL, _m, _e, QST, SPC, _B, _o, _y, _s, CMA, SPC, _I, APS, _m, NWL, _c, _r, _u, _s, _h, _e, _d, PRD, NWL, END, }; +// Katt?! +// Not you again. u16 gMsg_ID_17131[26] = { PRI2, _K, _a, _t, _t, QST, EXM, SPC, NWL, _N, _o, _t, SPC, _y, _o, _u, SPC, _a, _g, _a, _i, _n, PRD, NWL, END, }; +// I've got the left. +// You take the right, +// hon. u16 gMsg_ID_17140[48] = { PRI1, _I, APS, _v, _e, SPC, _g, _o, _t, SPC, _t, _h, _e, SPC, _l, _e, _f, _t, PRD, NWL, _Y, _o, _u, SPC, _t, _a, _k, _e, SPC, _t, _h, _e, SPC, _r, _i, _g, _h, _t, CMA, SPC, NWL, _h, _o, _n, PRD, NWL, END, }; +// OK! Now shoot +// the switcher. u16 gMsg_ID_17150[30] = { PRI2, _O, _K, EXM, SPC, _N, _o, _w, SPC, _s, _h, _o, _o, _t, NWL, _t, _h, _e, SPC, _s, _w, _i, _t, _c, _h, _e, _r, PRD, NWL, END, }; +// Good going, Fox. u16 gMsg_ID_17160[20] = { PRI1, _G, _o, _o, _d, SPC, _g, _o, _i, _n, _g, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Well, at least we +// can take this boss +// out. u16 gMsg_ID_17170[46] = { PRI1, _W, _e, _l, _l, CMA, SPC, _a, _t, SPC, _l, _e, _a, _s, _t, SPC, _w, _e, NWL, _c, _a, _n, SPC, _t, _a, _k, _e, SPC, _t, _h, _i, _s, SPC, _b, _o, _s, _s, SPC, NWL, _o, _u, _t, PRD, NWL, END, }; +// You're pretty good, +// tiger. See you +// again! u16 gMsg_ID_17300[46] = { PRI1, _Y, _o, _u, APS, _r, _e, SPC, _p, _r, _e, _t, _t, _y, SPC, _g, _o, _o, _d, CMA, NWL, _t, _i, _g, _e, _r, PRD, SPC, _S, _e, _e, SPC, _y, _o, _u, SPC, NWL, _a, _g, _a, _i, _n, EXM, NWL, END, }; +// I'm sure we hurt +// 'em this time. u16 gMsg_ID_17310[34] = { PRI1, _I, APS, _m, SPC, _s, _u, _r, _e, SPC, _w, _e, SPC, _h, _u, _r, _t, NWL, APS, _e, _m, SPC, _t, _h, _i, _s, SPC, _t, _i, _m, _e, PRD, NWL, END, }; +// Now it's our turn +// to kick some tail! u16 gMsg_ID_17320[40] = { PRI1, _N, _o, _w, SPC, _i, _t, APS, _s, SPC, _o, _u, _r, SPC, _t, _u, _r, _n, NWL, _t, _o, SPC, _k, _i, _c, _k, SPC, _s, _o, _m, _e, SPC, _t, _a, _i, _l, EXM, NWL, END, }; +// I can see the look +// on their stupid +// faces! u16 gMsg_ID_17330[46] = { PRI1, _I, SPC, _c, _a, _n, SPC, _s, _e, _e, SPC, _t, _h, _e, SPC, _l, _o, _o, _k, NWL, _o, _n, SPC, _t, _h, _e, _i, _r, SPC, _s, _t, _u, _p, _i, _d, SPC, NWL, _f, _a, _c, _e, _s, EXM, NWL, END, }; +// I'm outta here. +// Take care, Falco. u16 gMsg_ID_17350[38] = { PRI2, _I, APS, _m, SPC, _o, _u, _t, _t, _a, SPC, _h, _e, _r, _e, PRD, SPC, NWL, _T, _a, _k, _e, SPC, _c, _a, _r, _e, CMA, SPC, _F, _a, _l, _c, _o, PRD, NWL, END, }; +// Here come the +// little hyenas, now! u16 gMsg_ID_17360[38] = { PRI1, _H, _e, _r, _e, SPC, _c, _o, _m, _e, SPC, _t, _h, _e, SPC, NWL, _l, _i, _t, _t, _l, _e, SPC, _h, _y, _e, _n, _a, _s, CMA, SPC, _n, _o, _w, EXM, NWL, END, }; +// Dang! Detach the +// rear vehicle. u16 gMsg_ID_17370[34] = { PRI1, _D, _a, _n, _g, EXM, SPC, _D, _e, _t, _a, _c, _h, SPC, _t, _h, _e, NWL, _r, _e, _a, _r, SPC, _v, _e, _h, _i, _c, _l, _e, PRD, NWL, END, }; +// What's wrong? Come +// a little closer! u16 gMsg_ID_17380[38] = { PRI1, _W, _h, _a, _t, APS, _s, SPC, _w, _r, _o, _n, _g, QST, SPC, _C, _o, _m, _e, NWL, _a, SPC, _l, _i, _t, _t, _l, _e, SPC, _c, _l, _o, _s, _e, _r, EXM, NWL, END, }; +// Here ya go! u16 gMsg_ID_17390[14] = { PRI1, _H, _e, _r, _e, SPC, _y, _a, SPC, _g, _o, EXM, NWL, END, }; +// They're not taking +// me seriously. u16 gMsg_ID_17400[36] = { PRI1, _T, _h, _e, _y, APS, _r, _e, SPC, _n, _o, _t, SPC, _t, _a, _k, _i, _n, _g, NWL, _m, _e, SPC, _s, _e, _r, _i, _o, _u, _s, _l, _y, PRD, NWL, END, }; +// I'll lure these +// guys to the front. u16 gMsg_ID_17410[38] = { PRI1, _I, APS, _l, _l, SPC, _l, _u, _r, _e, SPC, _t, _h, _e, _s, _e, SPC, NWL, _g, _u, _y, _s, SPC, _t, _o, SPC, _t, _h, _e, SPC, _f, _r, _o, _n, _t, PRD, NWL, END, }; +// I didn't expect to +// have to use this! u16 gMsg_ID_17420[40] = { PRI1, _I, SPC, _d, _i, _d, _n, APS, _t, SPC, _e, _x, _p, _e, _c, _t, SPC, _t, _o, NWL, _h, _a, _v, _e, SPC, _t, _o, SPC, _u, _s, _e, SPC, _t, _h, _i, _s, EXM, NWL, END, }; +// You're very lucky. u16 gMsg_ID_17430[22] = { PRI1, _Y, _o, _u, APS, _r, _e, SPC, _v, _e, _r, _y, SPC, _l, _u, _c, _k, _y, PRD, NWL, END, }; +// Gwaaa!!! u16 gMsg_ID_17440[12] = { PRI1, _G, _w, _a, _a, _a, EXM, EXM, EXM, NWL, END, }; +// No!! +// Get away!! u16 gMsg_ID_17450[18] = { PRI2, _N, _o, EXM, EXM, NWL, _G, _e, _t, SPC, _a, _w, _a, _y, EXM, EXM, NWL, END, }; +// Heh heh heh... +// what's wrong? u16 gMsg_ID_17460[32] = { PRI1, _H, _e, _h, SPC, _h, _e, _h, SPC, _h, _e, _h, PRD, PRD, PRD, NWL, _w, _h, _a, _t, APS, _s, SPC, _w, _r, _o, _n, _g, QST, NWL, END, }; +// Try this! u16 gMsg_ID_17470[12] = { PRI1, _T, _r, _y, SPC, _t, _h, _i, _s, EXM, NWL, END, }; +// NO! +// Hit the brakes!!! u16 gMsg_ID_17471[26] = { PRI1, _N, _O, EXM, SPC, NWL, _H, _i, _t, SPC, _t, _h, _e, SPC, _b, _r, _a, _k, _e, _s, EXM, EXM, EXM, NWL, END, }; +// I can't STOP IT! u16 gMsg_ID_17472[20] = { PRI1, _I, SPC, _c, _a, _n, APS, _t, SPC, _S, _T, _O, _P, SPC, _I, _T, EXM, NWL, END, }; +// Step on the gas! u16 gMsg_ID_17473[20] = { PRI1, _S, _t, _e, _p, SPC, _o, _n, SPC, _t, _h, _e, SPC, _g, _a, _s, EXM, NWL, END, }; +// How's the +// Landmaster, Fox? u16 gMsg_ID_17474[30] = { PRI1, _H, _o, _w, APS, _s, SPC, _t, _h, _e, SPC, NWL, _L, _a, _n, _d, _m, _a, _s, _t, _e, _r, CMA, SPC, _F, _o, _x, QST, NWL, END, }; +// You're too slow. +// Time to end this! u16 gMsg_ID_17475[38] = { PRI2, _Y, _o, _u, APS, _r, _e, SPC, _t, _o, _o, SPC, _s, _l, _o, _w, PRD, NWL, _T, _i, _m, _e, SPC, _t, _o, SPC, _e, _n, _d, SPC, _t, _h, _i, _s, EXM, NWL, END, }; +// Take this! u16 gMsg_ID_17476[14] = { PRI1, _T, _a, _k, _e, SPC, _t, _h, _i, _s, EXM, NWL, END, }; +// Hang on, guys. +// Help is on the way! u16 gMsg_ID_18000[38] = { PRI1, _H, _a, _n, _g, SPC, _o, _n, CMA, SPC, _g, _u, _y, _s, PRD, NWL, _H, _e, _l, _p, SPC, _i, _s, SPC, _o, _n, SPC, _t, _h, _e, SPC, _w, _a, _y, EXM, NWL, END, }; +// Fox! You made it! u16 gMsg_ID_18005[20] = { PRI1, _F, _o, _x, EXM, SPC, _Y, _o, _u, SPC, _m, _a, _d, _e, SPC, _i, _t, EXM, NWL, END, }; +// Bill?! Is that you? +// I can't believe it! u16 gMsg_ID_18006[42] = { PRI1, _B, _i, _l, _l, QST, EXM, SPC, _I, _s, SPC, _t, _h, _a, _t, SPC, _y, _o, _u, QST, NWL, _I, SPC, _c, _a, _n, APS, _t, SPC, _b, _e, _l, _i, _e, _v, _e, SPC, _i, _t, EXM, NWL, END, }; +// We can catch up +// later, Fox. u16 gMsg_ID_18007[30] = { PRI1, _W, _e, SPC, _c, _a, _n, SPC, _c, _a, _t, _c, _h, SPC, _u, _p, NWL, _l, _a, _t, _e, _r, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Hard to tell the +// good guys from the +// bad! u16 gMsg_ID_18010[44] = { PRI1, _H, _a, _r, _d, SPC, _t, _o, SPC, _t, _e, _l, _l, SPC, _t, _h, _e, NWL, _g, _o, _o, _d, SPC, _g, _u, _y, _s, SPC, _f, _r, _o, _m, SPC, _t, _h, _e, SPC, NWL, _b, _a, _d, EXM, NWL, END, }; +// Try shooting the +// bad guys, Fox. u16 gMsg_ID_18015[34] = { PRI1, _T, _r, _y, SPC, _s, _h, _o, _o, _t, _i, _n, _g, SPC, _t, _h, _e, NWL, _b, _a, _d, SPC, _g, _u, _y, _s, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Fox, that's one of +// ours! u16 gMsg_ID_18018[28] = { PRI1, _F, _o, _x, CMA, SPC, _t, _h, _a, _t, APS, _s, SPC, _o, _n, _e, SPC, _o, _f, SPC, NWL, _o, _u, _r, _s, EXM, NWL, END, }; +// Husky unit, +// cover the base! u16 gMsg_ID_18020[30] = { PRI1, _H, _u, _s, _k, _y, SPC, _u, _n, _i, _t, CMA, NWL, _c, _o, _v, _e, _r, SPC, _t, _h, _e, SPC, _b, _a, _s, _e, EXM, NWL, END, }; +// Bulldog unit, don't +// let anything +// through! u16 gMsg_ID_18021[48] = { PRI1, _B, _u, _l, _l, _d, _o, _g, SPC, _u, _n, _i, _t, CMA, SPC, _d, _o, _n, APS, _t, SPC, SPC, SPC, NWL, _l, _e, _t, SPC, _a, _n, _y, _t, _h, _i, _n, _g, SPC, NWL, _t, _h, _r, _o, _u, _g, _h, EXM, NWL, END, }; +// All units report! u16 gMsg_ID_18022[20] = { PRI1, _A, _l, _l, SPC, _u, _n, _i, _t, _s, SPC, _r, _e, _p, _o, _r, _t, EXM, NWL, END, }; +// Man, there's just +// no end to these +// guys! u16 gMsg_ID_18025[44] = { PRI1, _M, _a, _n, CMA, SPC, _t, _h, _e, _r, _e, APS, _s, SPC, _j, _u, _s, _t, SPC, NWL, _n, _o, SPC, _e, _n, _d, SPC, _t, _o, SPC, _t, _h, _e, _s, _e, SPC, NWL, _g, _u, _y, _s, EXM, NWL, END, }; +// Enemy mothership +// approaching. u16 gMsg_ID_18030[32] = { PRI2, _E, _n, _e, _m, _y, SPC, _m, _o, _t, _h, _e, _r, _s, _h, _i, _p, NWL, _a, _p, _p, _r, _o, _a, _c, _h, _i, _n, _g, PRD, NWL, END, }; +// You've become quite +// a pilot. u16 gMsg_ID_18031[32] = { PRI1, _Y, _o, _u, APS, _v, _e, SPC, _b, _e, _c, _o, _m, _e, SPC, _q, _u, _i, _t, _e, SPC, NWL, _a, SPC, _p, _i, _l, _o, _t, PRD, NWL, END, }; +// Here they come! u16 gMsg_ID_18035[18] = { PRI1, _H, _e, _r, _e, SPC, _t, _h, _e, _y, SPC, _c, _o, _m, _e, EXM, NWL, END, }; +// Go for the 4 +// hatches on the +// underside! u16 gMsg_ID_18040[44] = { PRI2, _G, _o, SPC, _f, _o, _r, SPC, _t, _h, _e, SPC, _4, SPC, NWL, _h, _a, _t, _c, _h, _e, _s, SPC, _o, _n, SPC, _t, _h, _e, SPC, NWL, _u, _n, _d, _e, _r, _s, _i, _d, _e, EXM, NWL, END, }; +// The hatches are +// open! u16 gMsg_ID_18045[24] = { PRI2, _T, _h, _e, SPC, _h, _a, _t, _c, _h, _e, _s, SPC, _a, _r, _e, NWL, _o, _p, _e, _n, EXM, NWL, END, }; +// There's some sort +// of energy reaction! u16 gMsg_ID_18050[40] = { PRI1, _T, _h, _e, _r, _e, APS, _s, SPC, _s, _o, _m, _e, SPC, _s, _o, _r, _t, NWL, _o, _f, SPC, _e, _n, _e, _r, _g, _y, SPC, _r, _e, _a, _c, _t, _i, _o, _n, EXM, NWL, END, }; +// The core has +// appeared! Stand by +// to attack! u16 gMsg_ID_18055[48] = { PRI2, _T, _h, _e, SPC, _c, _o, _r, _e, SPC, _h, _a, _s, SPC, NWL, _a, _p, _p, _e, _a, _r, _e, _d, EXM, SPC, _S, _t, _a, _n, _d, SPC, _b, _y, SPC, NWL, _t, _o, SPC, _a, _t, _t, _a, _c, _k, EXM, NWL, END, }; +// Hurry up and take +// out that core! u16 gMsg_ID_18060[36] = { PRI2, _H, _u, _r, _r, _y, SPC, _u, _p, SPC, _a, _n, _d, SPC, _t, _a, _k, _e, SPC, NWL, _o, _u, _t, SPC, _t, _h, _a, _t, SPC, _c, _o, _r, _e, EXM, NWL, END, }; +// There's not much +// time left! Hurry! u16 gMsg_ID_18065[38] = { PRI1, _T, _h, _e, _r, _e, APS, _s, SPC, _n, _o, _t, SPC, _m, _u, _c, _h, SPC, NWL, _t, _i, _m, _e, SPC, _l, _e, _f, _t, EXM, SPC, _H, _u, _r, _r, _y, EXM, NWL, END, }; +// Yee haaaa! +// You did it! u16 gMsg_ID_18066[26] = { PRI2, _Y, _e, _e, SPC, _h, _a, _a, _a, _a, EXM, NWL, _Y, _o, _u, SPC, _d, _i, _d, SPC, _i, _t, EXM, NWL, END, }; +// Fox, get out of +// here NOW! u16 gMsg_ID_18070[30] = { PRI1, _F, _o, _x, CMA, SPC, _g, _e, _t, SPC, _o, _u, _t, SPC, _o, _f, SPC, NWL, _h, _e, _r, _e, SPC, _N, _O, _W, EXM, NWL, END, }; +// ...All aircraft, +// break away! u16 gMsg_ID_18075[32] = { PRI1, PRD, PRD, PRD, _A, _l, _l, SPC, _a, _i, _r, _c, _r, _a, _f, _t, CMA, NWL, _b, _r, _e, _a, _k, SPC, _a, _w, _a, _y, EXM, NWL, END, }; +// Dang........ u16 gMsg_ID_18080[16] = { PRI1, _D, _a, _n, _g, PRD, PRD, PRD, PRD, PRD, PRD, PRD, PRD, NWL, END, }; +// Don't get so down, +// Fox. u16 gMsg_ID_18085[28] = { PRI1, _D, _o, _n, APS, _t, SPC, _g, _e, _t, SPC, _s, _o, SPC, _d, _o, _w, _n, CMA, SPC, NWL, _F, _o, _x, PRD, NWL, END, }; +// Take care, Fox. u16 gMsg_ID_18090[18] = { PRI1, _T, _a, _k, _e, SPC, _c, _a, _r, _e, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// You, too....Bill. u16 gMsg_ID_18095[20] = { PRI1, _Y, _o, _u, CMA, SPC, _t, _o, _o, PRD, PRD, PRD, PRD, _B, _i, _l, _l, PRD, NWL, END, }; +// I'm glad we're on +// the same team, Fox. u16 gMsg_ID_18100[42] = { PRI1, _I, APS, _m, SPC, _g, _l, _a, _d, SPC, _w, _e, APS, _r, _e, SPC, _o, _n, SPC, NWL, _t, _h, _e, SPC, _s, _a, _m, _e, SPC, _t, _e, _a, _m, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// You owe me one. u16 gMsg_ID_18105[18] = { PRI1, _Y, _o, _u, SPC, _o, _w, _e, SPC, _m, _e, SPC, _o, _n, _e, PRD, NWL, END, }; +// Just like old times, +// eh Fox? u16 gMsg_ID_18120[32] = { PRI2, _J, _u, _s, _t, SPC, _l, _i, _k, _e, SPC, _o, _l, _d, SPC, _t, _i, _m, _e, _s, CMA, NWL, _e, _h, SPC, _F, _o, _x, QST, NWL, END, }; +// Stick around for +// awhile. u16 gMsg_ID_18130[28] = { PRI2, _S, _t, _i, _c, _k, SPC, _a, _r, _o, _u, _n, _d, SPC, _f, _o, _r, SPC, NWL, _a, _w, _h, _i, _l, _e, PRD, NWL, END, }; +// Here's something +// for ya, Fox. u16 gMsg_ID_18140[34] = { PRI2, _H, _e, _r, _e, APS, _s, SPC, _s, _o, _m, _e, _t, _h, _i, _n, _g, SPC, NWL, _f, _o, _r, SPC, _y, _a, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Enemy down.... +// Wait, that was one +// of ours! u16 gMsg_ID_18150[46] = { PRI1, _E, _n, _e, _m, _y, SPC, _d, _o, _w, _n, PRD, PRD, PRD, PRD, NWL, _W, _a, _i, _t, CMA, SPC, _t, _h, _a, _t, SPC, _w, _a, _s, SPC, _o, _n, _e, NWL, _o, _f, SPC, _o, _u, _r, _s, EXM, NWL, END, }; +// Say your prayers, +// Andross! u16 gMsg_ID_19010[30] = { PRI1, _S, _a, _y, SPC, _y, _o, _u, _r, SPC, _p, _r, _a, _y, _e, _r, _s, CMA, NWL, _A, _n, _d, _r, _o, _s, _s, EXM, NWL, END, }; +// Huh? What?! u16 gMsg_ID_19205[14] = { PRI1, _H, _u, _h, QST, SPC, _W, _h, _a, _t, QST, EXM, NWL, END, }; +// Don't get too cocky, +// Star Fox! u16 gMsg_ID_19200[34] = { PRI1, _D, _o, _n, APS, _t, SPC, _g, _e, _t, SPC, _t, _o, _o, SPC, _c, _o, _c, _k, _y, CMA, SPC, NWL, _S, _t, _a, _r, SPC, _F, _o, _x, EXM, NWL, END, }; +// Let's see how you +// handle our new +// ships! u16 gMsg_ID_19210[44] = { PRI1, _L, _e, _t, APS, _s, SPC, _s, _e, _e, SPC, _h, _o, _w, SPC, _y, _o, _u, NWL, _h, _a, _n, _d, _l, _e, SPC, _o, _u, _r, SPC, _n, _e, _w, SPC, NWL, _s, _h, _i, _p, _s, EXM, NWL, END, }; +// Too bad dad's not +// here to see ya FAIL! u16 gMsg_ID_19220[42] = { PRI1, _T, _o, _o, SPC, _b, _a, _d, SPC, _d, _a, _d, APS, _s, SPC, _n, _o, _t, SPC, NWL, _h, _e, _r, _e, SPC, _t, _o, SPC, _s, _e, _e, SPC, _y, _a, SPC, _F, _A, _I, _L, EXM, NWL, END, }; +// We'll make sure +// you never reach +// Andross! u16 gMsg_ID_19230[44] = { PRI1, _W, _e, APS, _l, _l, SPC, _m, _a, _k, _e, SPC, _s, _u, _r, _e, NWL, _y, _o, _u, SPC, _n, _e, _v, _e, _r, SPC, _r, _e, _a, _c, _h, SPC, NWL, _A, _n, _d, _r, _o, _s, _s, EXM, NWL, END, }; +// We'll just see +// about that, +// Star Wolf. u16 gMsg_ID_19240[42] = { PRI2, _W, _e, APS, _l, _l, SPC, _j, _u, _s, _t, SPC, _s, _e, _e, SPC, NWL, _a, _b, _o, _u, _t, SPC, _t, _h, _a, _t, CMA, NWL, _S, _t, _a, _r, SPC, _W, _o, _l, _f, PRD, NWL, END, }; +// You guys don't +// give up. u16 gMsg_ID_19250[26] = { PRI2, _Y, _o, _u, SPC, _g, _u, _y, _s, SPC, _d, _o, _n, APS, _t, NWL, _g, _i, _v, _e, SPC, _u, _p, PRD, NWL, END, }; +// Now you will feel +// TRUE pain! u16 gMsg_ID_19325[32] = { PRI2, _N, _o, _w, SPC, _y, _o, _u, SPC, _w, _i, _l, _l, SPC, _f, _e, _e, _l, SPC, NWL, _T, _R, _U, _E, SPC, _p, _a, _i, _n, EXM, NWL, END, }; +// Only I have the +// brains to rule +// Lylat! u16 gMsg_ID_19330[42] = { PRI2, _O, _n, _l, _y, SPC, _I, SPC, _h, _a, _v, _e, SPC, _t, _h, _e, SPC, NWL, _b, _r, _a, _i, _n, _s, SPC, _t, _o, SPC, _r, _u, _l, _e, SPC, NWL, _L, _y, _l, _a, _t, EXM, NWL, END, }; +// If I go down, I'm +// taking you with me! u16 gMsg_ID_19335[42] = { PRI2, _I, _f, SPC, _I, SPC, _g, _o, SPC, _d, _o, _w, _n, CMA, SPC, _I, APS, _m, SPC, NWL, _t, _a, _k, _i, _n, _g, SPC, _y, _o, _u, SPC, _w, _i, _t, _h, SPC, _m, _e, EXM, NWL, END, }; +// Follow me, Fox. u16 gMsg_ID_19340[18] = { PRI2, _F, _o, _l, _l, _o, _w, SPC, _m, _e, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Father?! u16 gMsg_ID_19350[12] = { PRI2, _F, _a, _t, _h, _e, _r, QST, EXM, NWL, END, }; +// This way, Fox. u16 gMsg_ID_19355[18] = { PRI2, _T, _h, _i, _s, SPC, _w, _a, _y, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Never give up. +// Trust your +// instincts. u16 gMsg_ID_19360[40] = { PRI2, _N, _e, _v, _e, _r, SPC, _g, _i, _v, _e, SPC, _u, _p, PRD, NWL, _T, _r, _u, _s, _t, SPC, _y, _o, _u, _r, NWL, _i, _n, _s, _t, _i, _n, _c, _t, _s, PRD, NWL, END, }; +// You've become so +// strong, Fox. u16 gMsg_ID_19370[32] = { PRI2, _Y, _o, _u, APS, _v, _e, SPC, _b, _e, _c, _o, _m, _e, SPC, _s, _o, NWL, _s, _t, _r, _o, _n, _g, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Fox! You're OK! u16 gMsg_ID_19400[18] = { PRI1, _F, _o, _x, EXM, SPC, _Y, _o, _u, APS, _r, _e, SPC, _O, _K, EXM, NWL, END, }; +// Way to go, Fox! u16 gMsg_ID_19410[18] = { PRI1, _W, _a, _y, SPC, _t, _o, SPC, _g, _o, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// That's our leader! u16 gMsg_ID_19420[22] = { PRI1, _T, _h, _a, _t, APS, _s, SPC, _o, _u, _r, SPC, _l, _e, _a, _d, _e, _r, EXM, NWL, END, }; +// What's wrong, Fox? u16 gMsg_ID_19430[22] = { PRI1, _W, _h, _a, _t, APS, _s, SPC, _w, _r, _o, _n, _g, CMA, SPC, _F, _o, _x, QST, NWL, END, }; +// Nothing... +// Nothing's wrong. u16 gMsg_ID_19440[30] = { PRI1, _N, _o, _t, _h, _i, _n, _g, PRD, PRD, PRD, NWL, _N, _o, _t, _h, _i, _n, _g, APS, _s, SPC, _w, _r, _o, _n, _g, PRD, NWL, END, }; +// What?! Is that all +// you got? u16 gMsg_ID_19450[32] = { PRI1, _W, _h, _a, _t, QST, EXM, SPC, _I, _s, SPC, _t, _h, _a, _t, SPC, _a, _l, _l, SPC, NWL, _y, _o, _u, SPC, _g, _o, _t, QST, NWL, END, }; +// I'll take care of +// you! u16 gMsg_ID_19451[26] = { PRI1, _I, APS, _l, _l, SPC, _t, _a, _k, _e, SPC, _c, _a, _r, _e, SPC, _o, _f, SPC, NWL, _y, _o, _u, EXM, NWL, END, }; +// I'm gonna bust you +// up REAL good! u16 gMsg_ID_19452[36] = { PRI1, _I, APS, _m, SPC, _g, _o, _n, _n, _a, SPC, _b, _u, _s, _t, SPC, _y, _o, _u, SPC, NWL, _u, _p, SPC, _R, _E, _A, _L, SPC, _g, _o, _o, _d, EXM, NWL, END, }; +// You're not welcome +// here! u16 gMsg_ID_19453[28] = { PRI1, _Y, _o, _u, APS, _r, _e, SPC, _n, _o, _t, SPC, _w, _e, _l, _c, _o, _m, _e, SPC, NWL, _h, _e, _r, _e, EXM, NWL, END, }; +// You're good, but +// I'm better. u16 gMsg_ID_19454[32] = { PRI1, _Y, _o, _u, APS, _r, _e, SPC, _g, _o, _o, _d, CMA, SPC, _b, _u, _t, SPC, NWL, _I, APS, _m, SPC, _b, _e, _t, _t, _e, _r, PRD, NWL, END, }; +// Not yet. The +// party's just begun! u16 gMsg_ID_19455[36] = { PRI1, _N, _o, _t, SPC, _y, _e, _t, PRD, SPC, _T, _h, _e, NWL, _p, _a, _r, _t, _y, APS, _s, SPC, _j, _u, _s, _t, SPC, _b, _e, _g, _u, _n, EXM, NWL, END, }; +// You can't beat me. +// I've got a better +// ship! u16 gMsg_ID_19456[48] = { PRI1, _Y, _o, _u, SPC, _c, _a, _n, APS, _t, SPC, _b, _e, _a, _t, SPC, _m, _e, PRD, SPC, NWL, _I, APS, _v, _e, SPC, _g, _o, _t, SPC, _a, SPC, _b, _e, _t, _t, _e, _r, SPC, NWL, _s, _h, _i, _p, EXM, NWL, END, }; +// Give it up. +// You can't win! u16 gMsg_ID_19457[30] = { PRI1, _G, _i, _v, _e, SPC, _i, _t, SPC, _u, _p, PRD, NWL, _Y, _o, _u, SPC, _c, _a, _n, APS, _t, SPC, _w, _i, _n, EXM, NWL, END, }; +// No way! +// I don't believe it! u16 gMsg_ID_19458[32] = { PRI1, _N, _o, SPC, _w, _a, _y, EXM, SPC, NWL, _I, SPC, _d, _o, _n, APS, _t, SPC, _b, _e, _l, _i, _e, _v, _e, SPC, _i, _t, EXM, NWL, END, }; +// He's too strong! u16 gMsg_ID_19459[20] = { PRI1, _H, _e, APS, _s, SPC, _t, _o, _o, SPC, _s, _t, _r, _o, _n, _g, EXM, NWL, END, }; +// This can't be +// happening! u16 gMsg_ID_19460[28] = { PRI1, _T, _h, _i, _s, SPC, _c, _a, _n, APS, _t, SPC, _b, _e, NWL, _h, _a, _p, _p, _e, _n, _i, _n, _g, EXM, NWL, END, }; +// Ahhhh!!!! u16 gMsg_ID_19461[12] = { PRI1, _A, _h, _h, _h, _h, EXM, EXM, EXM, EXM, NWL, END, }; +// I see you've got +// new ships. u16 gMsg_ID_19462[32] = { PRI1, _I, SPC, _s, _e, _e, SPC, _y, _o, _u, APS, _v, _e, SPC, _g, _o, _t, SPC, NWL, _n, _e, _w, SPC, _s, _h, _i, _p, _s, PRD, NWL, END, }; +// Hey, nice aircraft, +// guys! u16 gMsg_ID_19463[30] = { PRI1, _H, _e, _y, CMA, SPC, _n, _i, _c, _e, SPC, _a, _i, _r, _c, _r, _a, _f, _t, CMA, SPC, NWL, _g, _u, _y, _s, EXM, NWL, END, }; +// I can't break free! u16 gMsg_ID_19464[22] = { PRI1, _I, SPC, _c, _a, _n, APS, _t, SPC, _b, _r, _e, _a, _k, SPC, _f, _r, _e, _e, EXM, NWL, END, }; +// There's one more +// to go. u16 gMsg_ID_19465[28] = { PRI2, _T, _h, _e, _r, _e, APS, _s, SPC, _o, _n, _e, SPC, _m, _o, _r, _e, SPC, NWL, _t, _o, SPC, _g, _o, PRD, NWL, END, }; +// So, Andross, you +// show your true form! u16 gMsg_ID_19466[42] = { PRI2, _S, _o, CMA, SPC, _A, _n, _d, _r, _o, _s, _s, CMA, SPC, _y, _o, _u, SPC, NWL, _s, _h, _o, _w, SPC, _y, _o, _u, _r, SPC, _t, _r, _u, _e, SPC, _f, _o, _r, _m, EXM, NWL, END, }; +// Hurry, Fox. +// I'm waiting for you. u16 gMsg_ID_19467[36] = { PRI2, _H, _u, _r, _r, _y, CMA, SPC, _F, _o, _x, PRD, SPC, NWL, _I, APS, _m, SPC, _w, _a, _i, _t, _i, _n, _g, SPC, _f, _o, _r, SPC, _y, _o, _u, PRD, NWL, END, }; +// Don't ever give up, +// my son. u16 gMsg_ID_19468[32] = { PRI2, _D, _o, _n, APS, _t, SPC, _e, _v, _e, _r, SPC, _g, _i, _v, _e, SPC, _u, _p, CMA, SPC, NWL, _m, _y, SPC, _s, _o, _n, PRD, NWL, END, }; +// All aircraft report! u16 gMsg_ID_20010[24] = { PRI1, _A, _l, _l, SPC, _a, _i, _r, _c, _r, _a, _f, _t, SPC, _r, _e, _p, _o, _r, _t, EXM, NWL, END, }; +// I'm fine, I'm fine! u16 gMsg_ID_20011[22] = { PRI1, _I, APS, _m, SPC, _f, _i, _n, _e, CMA, SPC, _I, APS, _m, SPC, _f, _i, _n, _e, EXM, NWL, END, }; +// Everything's A-OK. u16 gMsg_ID_20012[22] = { PRI1, _E, _v, _e, _r, _y, _t, _h, _i, _n, _g, APS, _s, SPC, _A, DSH, _O, _K, PRD, NWL, END, }; +// I'm havin' some +// trouble here! u16 gMsg_ID_20013[32] = { PRI1, _I, APS, _m, SPC, _h, _a, _v, _i, _n, APS, SPC, _s, _o, _m, _e, NWL, _t, _r, _o, _u, _b, _l, _e, SPC, _h, _e, _r, _e, EXM, NWL, END, }; +// I've taken a few +// hits, but I'm OK. u16 gMsg_ID_20014[38] = { PRI1, _I, APS, _v, _e, SPC, _t, _a, _k, _e, _n, SPC, _a, SPC, _f, _e, _w, SPC, NWL, _h, _i, _t, _s, CMA, SPC, _b, _u, _t, SPC, _I, APS, _m, SPC, _O, _K, PRD, NWL, END, }; +// I thought I was a +// goner. u16 gMsg_ID_20015[28] = { PRI1, _I, SPC, _t, _h, _o, _u, _g, _h, _t, SPC, _I, SPC, _w, _a, _s, SPC, _a, NWL, _g, _o, _n, _e, _r, PRD, NWL, END, }; +// I saw my life flash +// before my eyes! u16 gMsg_ID_20016[38] = { PRI1, _I, SPC, _s, _a, _w, SPC, _m, _y, SPC, _l, _i, _f, _e, SPC, _f, _l, _a, _s, _h, NWL, _b, _e, _f, _o, _r, _e, SPC, _m, _y, SPC, _e, _y, _e, _s, EXM, NWL, END, }; +// Ah, you're getting +// better, Fox. u16 gMsg_ID_20017[34] = { PRI1, _A, _h, CMA, SPC, _y, _o, _u, APS, _r, _e, SPC, _g, _e, _t, _t, _i, _n, _g, NWL, _b, _e, _t, _t, _e, _r, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// You are SO +// lucky, Fox. u16 gMsg_ID_20018[26] = { PRI1, _Y, _o, _u, SPC, _a, _r, _e, SPC, _S, _O, SPC, NWL, _l, _u, _c, _k, _y, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// You worry about +// your own hide. u16 gMsg_ID_20019[34] = { PRI1, _Y, _o, _u, SPC, _w, _o, _r, _r, _y, SPC, _a, _b, _o, _u, _t, SPC, NWL, _y, _o, _u, _r, SPC, _o, _w, _n, SPC, _h, _i, _d, _e, PRD, NWL, END, }; +// Are you OK? u16 gMsg_ID_20020[14] = { PRI1, _A, _r, _e, SPC, _y, _o, _u, SPC, _O, _K, QST, NWL, END, }; +// Shoot! I've taken +// damage! u16 gMsg_ID_20030[30] = { PRI1, _S, _h, _o, _o, _t, EXM, SPC, _I, APS, _v, _e, SPC, _t, _a, _k, _e, _n, SPC, NWL, _d, _a, _m, _a, _g, _e, EXM, NWL, END, }; +// Dang! I'm hit! u16 gMsg_ID_20040[18] = { PRI1, _D, _a, _n, _g, EXM, SPC, _I, APS, _m, SPC, _h, _i, _t, EXM, NWL, END, }; +// Slippy's hit! u16 gMsg_ID_20050[16] = { PRI1, _S, _l, _i, _p, _p, _y, APS, _s, SPC, _h, _i, _t, EXM, NWL, END, }; +// Hey, Einstein! +// I'm on your side! u16 gMsg_ID_20060[36] = { PRI1, _H, _e, _y, CMA, SPC, _E, _i, _n, _s, _t, _e, _i, _n, EXM, SPC, NWL, _I, APS, _m, SPC, _o, _n, SPC, _y, _o, _u, _r, SPC, _s, _i, _d, _e, EXM, NWL, END, }; +// Knock it off, Fox! u16 gMsg_ID_20070[22] = { PRI1, _K, _n, _o, _c, _k, SPC, _i, _t, SPC, _o, _f, _f, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// Hey! +// What's the big idea? u16 gMsg_ID_20080[30] = { PRI1, _H, _e, _y, EXM, SPC, NWL, _W, _h, _a, _t, APS, _s, SPC, _t, _h, _e, SPC, _b, _i, _g, SPC, _i, _d, _e, _a, QST, NWL, END, }; +// You tryin' to +// damage my pretty +// face?! u16 gMsg_ID_20084[42] = { PRI1, _Y, _o, _u, SPC, _t, _r, _y, _i, _n, APS, SPC, _t, _o, SPC, NWL, _d, _a, _m, _a, _g, _e, SPC, _m, _y, SPC, _p, _r, _e, _t, _t, _y, SPC, NWL, _f, _a, _c, _e, QST, EXM, NWL, END, }; +// Hey! See if I help +// you again! u16 gMsg_ID_20085[34] = { PRI1, _H, _e, _y, EXM, SPC, _S, _e, _e, SPC, _i, _f, SPC, _I, SPC, _h, _e, _l, _p, SPC, NWL, _y, _o, _u, SPC, _a, _g, _a, _i, _n, EXM, NWL, END, }; +// No!!!! u16 gMsg_ID_20090[10] = { PRI3, _N, _o, EXM, EXM, EXM, EXM, NWL, END, }; +// No!!!! u16 gMsg_ID_20091[10] = { PRI3, _N, _o, EXM, EXM, EXM, EXM, NWL, END, }; +// No!!!! u16 gMsg_ID_20092[10] = { PRI3, _N, _o, EXM, EXM, EXM, EXM, NWL, END, }; +// Hey! He was mine! u16 gMsg_ID_20150[20] = { PRI1, _H, _e, _y, EXM, SPC, _H, _e, SPC, _w, _a, _s, SPC, _m, _i, _n, _e, EXM, NWL, END, }; +// What's the big +// idea, Fox? u16 gMsg_ID_20160[30] = { PRI1, _W, _h, _a, _t, APS, _s, SPC, _t, _h, _e, SPC, _b, _i, _g, SPC, NWL, _i, _d, _e, _a, CMA, SPC, _F, _o, _x, QST, NWL, END, }; +// Go find your own +// target, Fox! u16 gMsg_ID_20170[34] = { PRI1, _G, _o, SPC, _f, _i, _n, _d, SPC, _y, _o, _u, _r, SPC, _o, _w, _n, SPC, NWL, _t, _a, _r, _g, _e, _t, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// All-range mode. u16 gMsg_ID_20180[18] = { PRI2, _A, _l, _l, DSH, _r, _a, _n, _g, _e, SPC, _m, _o, _d, _e, PRD, NWL, END, }; +// What do you think +// you're doing, Fox? u16 gMsg_ID_20190[40] = { PRI1, _W, _h, _a, _t, SPC, _d, _o, SPC, _y, _o, _u, SPC, _t, _h, _i, _n, _k, NWL, _y, _o, _u, APS, _r, _e, SPC, _d, _o, _i, _n, _g, CMA, SPC, _F, _o, _x, QST, NWL, END, }; +// Watch where you're +// flying! u16 gMsg_ID_20200[30] = { PRI1, _W, _a, _t, _c, _h, SPC, _w, _h, _e, _r, _e, SPC, _y, _o, _u, APS, _r, _e, SPC, NWL, _f, _l, _y, _i, _n, _g, EXM, NWL, END, }; +// Get out of my way! u16 gMsg_ID_20210[22] = { PRI1, _G, _e, _t, SPC, _o, _u, _t, SPC, _o, _f, SPC, _m, _y, SPC, _w, _a, _y, EXM, NWL, END, }; +// Oh man! I'm gonna +// have to back off. u16 gMsg_ID_20220[40] = { PRI2, _O, _h, SPC, _m, _a, _n, EXM, SPC, _I, APS, _m, SPC, _g, _o, _n, _n, _a, SPC, NWL, _h, _a, _v, _e, SPC, _t, _o, SPC, _b, _a, _c, _k, SPC, _o, _f, _f, PRD, NWL, END, }; +// Sorry, guys, I've +// gotta sit this one +// out. u16 gMsg_ID_20221[46] = { PRI2, _S, _o, _r, _r, _y, CMA, SPC, _g, _u, _y, _s, CMA, SPC, _I, APS, _v, _e, SPC, NWL, _g, _o, _t, _t, _a, SPC, _s, _i, _t, SPC, _t, _h, _i, _s, SPC, _o, _n, _e, SPC, NWL, _o, _u, _t, PRD, NWL, END, }; +// I'm monkey food if +// I don't leave! u16 gMsg_ID_20222[36] = { PRI2, _I, APS, _m, SPC, _m, _o, _n, _k, _e, _y, SPC, _f, _o, _o, _d, SPC, _i, _f, NWL, _I, SPC, _d, _o, _n, APS, _t, SPC, _l, _e, _a, _v, _e, EXM, NWL, END, }; +// Location confirmed. +// Sending supplies. u16 gMsg_ID_20230[40] = { PRI2, _L, _o, _c, _a, _t, _i, _o, _n, SPC, _c, _o, _n, _f, _i, _r, _m, _e, _d, PRD, NWL, _S, _e, _n, _d, _i, _n, _g, SPC, _s, _u, _p, _p, _l, _i, _e, _s, PRD, NWL, END, }; +// Use the boost to +// chase (C< (C<)). u16 gMsg_ID_20235[34] = { PRI2, _U, _s, _e, SPC, _t, _h, _e, SPC, _b, _o, _o, _s, _t, SPC, _t, _o, NWL, _c, _h, _a, _s, _e, SPC, LPR, _C, ALF, SPC, CLF, RPR, PRD, NWL, END, }; +// Try a somersault +// (v and C< (C<)). u16 gMsg_ID_20236[34] = { PRI2, _T, _r, _y, SPC, _a, SPC, _s, _o, _m, _e, _r, _s, _a, _u, _l, _t, NWL, LPR, ADN, SPC, _a, _n, _d, SPC, _C, ALF, SPC, CLF, RPR, PRD, NWL, END, }; +// Try a U-turn +// (v and Cv (Cv)). u16 gMsg_ID_20237[30] = { PRI2, _T, _r, _y, SPC, _a, SPC, _U, DSH, _t, _u, _r, _n, NWL, LPR, ADN, SPC, _a, _n, _d, SPC, _C, ADN, SPC, CDN, RPR, PRD, NWL, END, }; +// Use bombs wisely +// (B Button). u16 gMsg_ID_20238[32] = { PRI2, _U, _s, _e, SPC, _b, _o, _m, _b, _s, SPC, _w, _i, _s, _e, _l, _y, NWL, LPR, _B, SPC, _B, _u, _t, _t, _o, _n, RPR, PRD, NWL, END, }; +// Use the boost to +// get thru (C< (C<)). u16 gMsg_ID_20239[36] = { PRI2, _U, _s, _e, SPC, _t, _h, _e, SPC, _b, _o, _o, _s, _t, SPC, _t, _o, NWL, _g, _e, _t, SPC, _t, _h, _r, _u, SPC, LPR, _C, ALF, SPC, CLF, RPR, PRD, NWL, END, }; +// I'm here to rescue +// you! u16 gMsg_ID_20250[28] = { PRI1, _I, APS, _m, SPC, _h, _e, _r, _e, SPC, _t, _o, SPC, _r, _e, _s, _c, _u, _e, SPC, NWL, _y, _o, _u, EXM, NWL, END, }; +// Don't forget me! u16 gMsg_ID_20260[20] = { PRI1, _D, _o, _n, APS, _t, SPC, _f, _o, _r, _g, _e, _t, SPC, _m, _e, EXM, NWL, END, }; +// Your skills have +// improved, Fox. u16 gMsg_ID_20261[36] = { PRI1, _Y, _o, _u, _r, SPC, _s, _k, _i, _l, _l, _s, SPC, _h, _a, _v, _e, SPC, NWL, _i, _m, _p, _r, _o, _v, _e, _d, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// I guess you're good +// for something. u16 gMsg_ID_20262[38] = { PRI1, _I, SPC, _g, _u, _e, _s, _s, SPC, _y, _o, _u, APS, _r, _e, SPC, _g, _o, _o, _d, NWL, _f, _o, _r, SPC, _s, _o, _m, _e, _t, _h, _i, _n, _g, PRD, NWL, END, }; +// Great, Fox! u16 gMsg_ID_20263[14] = { PRI1, _G, _r, _e, _a, _t, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// Peppy! u16 gMsg_ID_20264[10] = { PRI1, _P, _e, _p, _p, _y, EXM, NWL, END, }; +// Falco! u16 gMsg_ID_20265[10] = { PRI1, _F, _a, _l, _c, _o, EXM, NWL, END, }; +// Slippy! u16 gMsg_ID_20266[10] = { PRI1, _S, _l, _i, _p, _p, _y, EXM, NWL, END, }; +// Slippy, get back +// here! u16 gMsg_ID_20267[26] = { PRI1, _S, _l, _i, _p, _p, _y, CMA, SPC, _g, _e, _t, SPC, _b, _a, _c, _k, SPC, NWL, _h, _e, _r, _e, EXM, NWL, END, }; +// Heh heh.. +// try and stop me. u16 gMsg_ID_20268[30] = { PRI1, _H, _e, _h, SPC, _h, _e, _h, PRD, PRD, NWL, _t, _r, _y, SPC, _a, _n, _d, SPC, _s, _t, _o, _p, SPC, _m, _e, PRD, NWL, END, }; +// Incoming message +// from ROB64 (C> (C>)). u16 gMsg_ID_20269[40] = { PRI2, _I, _n, _c, _o, _m, _i, _n, _g, SPC, _m, _e, _s, _s, _a, _g, _e, SPC, NWL, _f, _r, _o, _m, SPC, _R, _O, _B, _6, _4, SPC, LPR, _C, ART, SPC, CRT, RPR, PRD, NWL, END, }; +// Incoming! u16 gMsg_ID_20270[12] = { PRI1, _I, _n, _c, _o, _m, _i, _n, _g, EXM, NWL, END, }; +// Here they come! u16 gMsg_ID_20271[18] = { PRI1, _H, _e, _r, _e, SPC, _t, _h, _e, _y, SPC, _c, _o, _m, _e, EXM, NWL, END, }; +// Incoming! u16 gMsg_ID_20272[12] = { PRI1, _I, _n, _c, _o, _m, _i, _n, _g, EXM, NWL, END, }; +// I'm looking forward +// to this! u16 gMsg_ID_20273[32] = { PRI2, _I, APS, _m, SPC, _l, _o, _o, _k, _i, _n, _g, SPC, _f, _o, _r, _w, _a, _r, _d, SPC, NWL, _t, _o, SPC, _t, _h, _i, _s, EXM, NWL, END, }; +// Ah, the son of +// James McCloud! u16 gMsg_ID_20274[32] = { PRI2, _A, _h, CMA, SPC, _t, _h, _e, SPC, _s, _o, _n, SPC, _o, _f, NWL, _J, _a, _m, _e, _s, SPC, _M, _c, _C, _l, _o, _u, _d, EXM, NWL, END, }; +// I'll make those +// fools pay! u16 gMsg_ID_20275[30] = { PRI2, _I, APS, _l, _l, SPC, _m, _a, _k, _e, SPC, _t, _h, _o, _s, _e, NWL, _f, _o, _o, _l, _s, SPC, _p, _a, _y, EXM, NWL, END, }; +// Those tin cans are +// no match for me! u16 gMsg_ID_20276[38] = { PRI2, _T, _h, _o, _s, _e, SPC, _t, _i, _n, SPC, _c, _a, _n, _s, SPC, _a, _r, _e, NWL, _n, _o, SPC, _m, _a, _t, _c, _h, SPC, _f, _o, _r, SPC, _m, _e, EXM, NWL, END, }; +// Ha ha ha! You can +// NEVER defeat me! u16 gMsg_ID_20277[38] = { PRI2, _H, _a, SPC, _h, _a, SPC, _h, _a, EXM, SPC, _Y, _o, _u, SPC, _c, _a, _n, NWL, _N, _E, _V, _E, _R, SPC, _d, _e, _f, _e, _a, _t, SPC, _m, _e, EXM, NWL, END, }; +// Good luck, Fox. u16 gMsg_ID_20278[18] = { PRI2, _G, _o, _o, _d, SPC, _l, _u, _c, _k, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Position confirmed. +// Everything OK. u16 gMsg_ID_20279[38] = { PRI2, _P, _o, _s, _i, _t, _i, _o, _n, SPC, _c, _o, _n, _f, _i, _r, _m, _e, _d, PRD, NWL, _E, _v, _e, _r, _y, _t, _h, _i, _n, _g, SPC, _O, _K, PRD, NWL, END, }; +// Don't worry about +// me, Fox! u16 gMsg_ID_20280[30] = { PRI1, _D, _o, _n, APS, _t, SPC, _w, _o, _r, _r, _y, SPC, _a, _b, _o, _u, _t, SPC, NWL, _m, _e, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// I see your father +// in you, Fox. u16 gMsg_ID_20281[34] = { PRI1, _I, SPC, _s, _e, _e, SPC, _y, _o, _u, _r, SPC, _f, _a, _t, _h, _e, _r, SPC, NWL, _i, _n, SPC, _y, _o, _u, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// How's the Arwing +// doing, Fox? u16 gMsg_ID_20282[32] = { PRI1, _H, _o, _w, APS, _s, SPC, _t, _h, _e, SPC, _A, _r, _w, _i, _n, _g, SPC, NWL, _d, _o, _i, _n, _g, CMA, SPC, _F, _o, _x, QST, NWL, END, }; +// Lock on the enemy +// (hold A). u16 gMsg_ID_20283[30] = { PRI2, _L, _o, _c, _k, SPC, _o, _n, SPC, _t, _h, _e, SPC, _e, _n, _e, _m, _y, NWL, LPR, _h, _o, _l, _d, SPC, _A, RPR, PRD, NWL, END, }; +// Hold A to lock on +// to the enemy. u16 gMsg_ID_20284[34] = { PRI2, _H, _o, _l, _d, SPC, _A, SPC, _t, _o, SPC, _l, _o, _c, _k, SPC, _o, _n, NWL, _t, _o, SPC, _t, _h, _e, SPC, _e, _n, _e, _m, _y, PRD, NWL, END, }; +// To get rid of the +// aim, pause and +// press R. u16 gMsg_ID_20285[46] = { PRI2, _T, _o, SPC, _g, _e, _t, SPC, _r, _i, _d, SPC, _o, _f, SPC, _t, _h, _e, NWL, _a, _i, _m, CMA, SPC, _p, _a, _u, _s, _e, SPC, _a, _n, _d, SPC, NWL, _p, _r, _e, _s, _s, SPC, _R, PRD, NWL, END, }; +// Press C< (C<) to +// boost! u16 gMsg_ID_20286[24] = { PRI2, _P, _r, _e, _s, _s, SPC, _C, ALF, SPC, CLF, SPC, _t, _o, NWL, _b, _o, _o, _s, _t, EXM, NWL, END, }; +// Press v and C< (C<) +// to do a somersault. u16 gMsg_ID_20287[40] = { PRI2, _P, _r, _e, _s, _s, SPC, ADN, SPC, _a, _n, _d, SPC, _C, ALF, SPC, CLF, SPC, NWL, _t, _o, SPC, _d, _o, SPC, _a, SPC, _s, _o, _m, _e, _r, _s, _a, _u, _l, _t, PRD, NWL, END, }; +// For a U-turn, +// press v and Cv (Cv). u16 gMsg_ID_20288[36] = { PRI2, _F, _o, _r, SPC, _a, SPC, _U, DSH, _t, _u, _r, _n, CMA, SPC, NWL, _p, _r, _e, _s, _s, SPC, ADN, SPC, _a, _n, _d, SPC, _C, ADN, SPC, CDN, PRD, NWL, END, }; +// Press B to bomb. u16 gMsg_ID_20289[20] = { PRI2, _P, _r, _e, _s, _s, SPC, _B, SPC, _t, _o, SPC, _b, _o, _m, _b, PRD, NWL, END, }; +// To barrel roll, +// press Z or R twice. u16 gMsg_ID_20290[40] = { PRI2, _T, _o, SPC, _b, _a, _r, _r, _e, _l, SPC, _r, _o, _l, _l, CMA, SPC, NWL, _p, _r, _e, _s, _s, SPC, _Z, SPC, _o, _r, SPC, _R, SPC, _t, _w, _i, _c, _e, PRD, NWL, END, }; +// Press Cv (Cv) +// to brake. u16 gMsg_ID_20291[24] = { PRI2, _P, _r, _e, _s, _s, SPC, _C, ADN, SPC, CDN, NWL, _t, _o, SPC, _b, _r, _a, _k, _e, PRD, NWL, END, }; +// To hover, +// press Z and R. u16 gMsg_ID_20292[28] = { PRI2, _T, _o, SPC, _h, _o, _v, _e, _r, CMA, SPC, NWL, _p, _r, _e, _s, _s, SPC, _Z, SPC, _a, _n, _d, SPC, _R, PRD, NWL, END, }; +// Slippy!!! u16 gMsg_ID_20294[12] = { PRI1, _S, _l, _i, _p, _p, _y, EXM, EXM, EXM, NWL, END, }; +// Come on, Fox. +// You can do it. u16 gMsg_ID_20296[32] = { PRI1, _C, _o, _m, _e, SPC, _o, _n, CMA, SPC, _F, _o, _x, PRD, NWL, _Y, _o, _u, SPC, _c, _a, _n, SPC, _d, _o, SPC, _i, _t, PRD, NWL, END, }; +// Are you OK? u16 gMsg_ID_20297[14] = { PRI1, _A, _r, _e, SPC, _y, _o, _u, SPC, _O, _K, QST, NWL, END, }; +// Come on, Fox. +// Let's kick some +// tail. u16 gMsg_ID_20298[40] = { PRI1, _C, _o, _m, _e, SPC, _o, _n, CMA, SPC, _F, _o, _x, PRD, SPC, NWL, _L, _e, _t, APS, _s, SPC, _k, _i, _c, _k, SPC, _s, _o, _m, _e, SPC, NWL, _t, _a, _i, _l, PRD, NWL, END, }; +// Don't go dyin' on +// me, Fox. u16 gMsg_ID_20299[30] = { PRI1, _D, _o, _n, APS, _t, SPC, _g, _o, SPC, _d, _y, _i, _n, APS, SPC, _o, _n, SPC, NWL, _m, _e, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Let's take it to +// 'em, Fox. u16 gMsg_ID_20300[30] = { PRI1, _L, _e, _t, APS, _s, SPC, _t, _a, _k, _e, SPC, _i, _t, SPC, _t, _o, SPC, NWL, APS, _e, _m, CMA, SPC, _F, _o, _x, PRD, NWL, END, }; +// Let's clean up +// this mess. u16 gMsg_ID_20301[30] = { PRI1, _L, _e, _t, APS, _s, SPC, _c, _l, _e, _a, _n, SPC, _u, _p, SPC, NWL, _t, _h, _i, _s, SPC, _m, _e, _s, _s, PRD, NWL, END, }; +// Look out behind you! u16 gMsg_ID_20302[24] = { PRI1, _L, _o, _o, _k, SPC, _o, _u, _t, SPC, _b, _e, _h, _i, _n, _d, SPC, _y, _o, _u, EXM, NWL, END, }; +// See my ship? Does +// it look OK to you? u16 gMsg_ID_20303[40] = { PRI1, _S, _e, _e, SPC, _m, _y, SPC, _s, _h, _i, _p, QST, SPC, _D, _o, _e, _s, SPC, NWL, _i, _t, SPC, _l, _o, _o, _k, SPC, _O, _K, SPC, _t, _o, SPC, _y, _o, _u, QST, NWL, END, }; +// Never give up. +// Trust your +// instincts. u16 gMsg_ID_20304[40] = { PRI0, _N, _e, _v, _e, _r, SPC, _g, _i, _v, _e, SPC, _u, _p, PRD, NWL, _T, _r, _u, _s, _t, SPC, _y, _o, _u, _r, SPC, NWL, _i, _n, _s, _t, _i, _n, _c, _t, _s, PRD, NWL, END, }; +// Fox, are you OK? u16 gMsg_ID_20305[20] = { PRI0, _F, _o, _x, CMA, SPC, _a, _r, _e, SPC, _y, _o, _u, SPC, _O, _K, QST, NWL, END, }; +// Hold together. u16 gMsg_ID_20306[18] = { PRI0, _H, _o, _l, _d, SPC, _t, _o, _g, _e, _t, _h, _e, _r, PRD, NWL, END, }; +// Everything OK? u16 gMsg_ID_20307[18] = { PRI0, _E, _v, _e, _r, _y, _t, _h, _i, _n, _g, SPC, _O, _K, QST, NWL, END, }; +// Whew! +// You're all right! u16 gMsg_ID_20308[28] = { PRI0, _W, _h, _e, _w, EXM, SPC, NWL, _Y, _o, _u, APS, _r, _e, SPC, _a, _l, _l, SPC, _r, _i, _g, _h, _t, EXM, NWL, END, }; +// You're not leavin', +// yet! u16 gMsg_ID_20309[28] = { PRI0, _Y, _o, _u, APS, _r, _e, SPC, _n, _o, _t, SPC, _l, _e, _a, _v, _i, _n, APS, CMA, SPC, NWL, _y, _e, _t, EXM, NWL, END, }; +// Crud! u16 gMsg_ID_20310[8] = { PRI1, _C, _r, _u, _d, EXM, NWL, END, }; +// Oh no! u16 gMsg_ID_20311[10] = { PRI1, _O, _h, SPC, _n, _o, EXM, NWL, END, }; +// Doggone it! u16 gMsg_ID_20312[14] = { PRI1, _D, _o, _g, _g, _o, _n, _e, SPC, _i, _t, EXM, NWL, END, }; +// Hold A to charge +// your laser. u16 gMsg_ID_20313[32] = { PRI2, _H, _o, _l, _d, SPC, _A, SPC, _t, _o, SPC, _c, _h, _a, _r, _g, _e, SPC, NWL, _y, _o, _u, _r, SPC, _l, _a, _s, _e, _r, PRD, NWL, END, }; +// You can also lock +// onto enemies this +// way. u16 gMsg_ID_20314[44] = { PRI2, _Y, _o, _u, SPC, _c, _a, _n, SPC, _a, _l, _s, _o, SPC, _l, _o, _c, _k, NWL, _o, _n, _t, _o, SPC, _e, _n, _e, _m, _i, _e, _s, SPC, _t, _h, _i, _s, SPC, NWL, _w, _a, _y, PRD, NWL, END, }; +// Watch out, Fox! u16 gMsg_ID_20315[18] = { PRI1, _W, _a, _t, _c, _h, SPC, _o, _u, _t, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// Watch out, Fox! u16 gMsg_ID_20316[18] = { PRI1, _W, _a, _t, _c, _h, SPC, _o, _u, _t, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// Watch out, Fox! u16 gMsg_ID_20317[18] = { PRI1, _W, _a, _t, _c, _h, SPC, _o, _u, _t, CMA, SPC, _F, _o, _x, EXM, NWL, END, }; +// Aaaaahhh! u16 gMsg_ID_20318[12] = { PRI3, _A, _a, _a, _a, _a, _h, _h, _h, EXM, NWL, END, }; +// Aaaaahhh! u16 gMsg_ID_20319[12] = { PRI1, _A, _a, _a, _a, _a, _h, _h, _h, EXM, NWL, END, }; +// Aaaaahhh! u16 gMsg_ID_20320[12] = { PRI1, _A, _a, _a, _a, _a, _h, _h, _h, EXM, NWL, END, }; +// Aaaaahhh! u16 gMsg_ID_20321[12] = { PRI1, _A, _a, _a, _a, _a, _h, _h, _h, EXM, NWL, END, }; +// Welcome to +// training mode. u16 gMsg_ID_20326[30] = { PRI2, _W, _e, _l, _c, _o, _m, _e, SPC, _t, _o, SPC, NWL, _t, _r, _a, _i, _n, _i, _n, _g, SPC, _m, _o, _d, _e, PRD, NWL, END, }; +// Let's practice +// the basics. u16 gMsg_ID_20327[30] = { PRI2, _L, _e, _t, APS, _s, SPC, _p, _r, _a, _c, _t, _i, _c, _e, NWL, _t, _h, _e, SPC, _b, _a, _s, _i, _c, _s, PRD, NWL, END, }; +// Good job. u16 gMsg_ID_20328[12] = { PRI2, _G, _o, _o, _d, SPC, _j, _o, _b, PRD, NWL, END, }; +// This is ROB64. +// Keep up the good +// work. u16 gMsg_ID_20329[42] = { PRI2, _T, _h, _i, _s, SPC, _i, _s, SPC, _R, _O, _B, _6, _4, PRD, SPC, NWL, _K, _e, _e, _p, SPC, _u, _p, SPC, _t, _h, _e, SPC, _g, _o, _o, _d, SPC, NWL, _w, _o, _r, _k, PRD, NWL, END, }; +// Great. Now let's +// get back to the +// game. u16 gMsg_ID_20330[44] = { PRI2, _G, _r, _e, _a, _t, PRD, SPC, _N, _o, _w, SPC, _l, _e, _t, APS, _s, SPC, NWL, _g, _e, _t, SPC, _b, _a, _c, _k, SPC, _t, _o, SPC, _t, _h, _e, SPC, NWL, _g, _a, _m, _e, PRD, NWL, END, }; +// Falco's ship is +// under maintenance. u16 gMsg_ID_20331[38] = { PRI1, _F, _a, _l, _c, _o, APS, _s, SPC, _s, _h, _i, _p, SPC, _i, _s, SPC, NWL, _u, _n, _d, _e, _r, SPC, _m, _a, _i, _n, _t, _e, _n, _a, _n, _c, _e, PRD, NWL, END, }; +// Peppy's ship is in +// for repairs. u16 gMsg_ID_20332[36] = { PRI1, _P, _e, _p, _p, _y, APS, _s, SPC, _s, _h, _i, _p, SPC, _i, _s, SPC, _i, _n, SPC, NWL, _f, _o, _r, SPC, _r, _e, _p, _a, _i, _r, _s, PRD, NWL, END, }; +// Slippy's ship is in +// for repairs. u16 gMsg_ID_20333[36] = { PRI1, _S, _l, _i, _p, _p, _y, APS, _s, SPC, _s, _h, _i, _p, SPC, _i, _s, SPC, _i, _n, NWL, _f, _o, _r, SPC, _r, _e, _p, _a, _i, _r, _s, PRD, NWL, END, }; +// Falco's ship is in +// the docking bay. u16 gMsg_ID_20337[38] = { PRI1, _F, _a, _l, _c, _o, APS, _s, SPC, _s, _h, _i, _p, SPC, _i, _s, SPC, _i, _n, NWL, _t, _h, _e, SPC, _d, _o, _c, _k, _i, _n, _g, SPC, _b, _a, _y, PRD, NWL, END, }; +// Peppy's ship is in +// the docking bay. u16 gMsg_ID_20338[38] = { PRI1, _P, _e, _p, _p, _y, APS, _s, SPC, _s, _h, _i, _p, SPC, _i, _s, SPC, _i, _n, NWL, _t, _h, _e, SPC, _d, _o, _c, _k, _i, _n, _g, SPC, _b, _a, _y, PRD, NWL, END, }; +// Slippy's ship is in +// the docking bay. u16 gMsg_ID_20339[40] = { PRI1, _S, _l, _i, _p, _p, _y, APS, _s, SPC, _s, _h, _i, _p, SPC, _i, _s, SPC, _i, _n, NWL, _t, _h, _e, SPC, _d, _o, _c, _k, _i, _n, _g, SPC, _b, _a, _y, PRD, NWL, END, }; +// Maintenance +// complete on Falco's +// ship. u16 gMsg_ID_20340[42] = { PRI1, _M, _a, _i, _n, _t, _e, _n, _a, _n, _c, _e, SPC, NWL, _c, _o, _m, _p, _l, _e, _t, _e, SPC, _o, _n, SPC, _F, _a, _l, _c, _o, APS, _s, SPC, NWL, _s, _h, _i, _p, PRD, NWL, END, }; +// Repairs complete on +// Falco's ship. u16 gMsg_ID_20343[38] = { PRI1, _R, _e, _p, _a, _i, _r, _s, SPC, _c, _o, _m, _p, _l, _e, _t, _e, SPC, _o, _n, SPC, NWL, _F, _a, _l, _c, _o, APS, _s, SPC, _s, _h, _i, _p, PRD, NWL, END, }; +// Repairs complete on +// Peppy's ship. u16 gMsg_ID_20344[38] = { PRI1, _R, _e, _p, _a, _i, _r, _s, SPC, _c, _o, _m, _p, _l, _e, _t, _e, SPC, _o, _n, SPC, NWL, _P, _e, _p, _p, _y, APS, _s, SPC, _s, _h, _i, _p, PRD, NWL, END, }; +// Repairs complete on +// Slippy's ship. u16 gMsg_ID_20345[38] = { PRI1, _R, _e, _p, _a, _i, _r, _s, SPC, _c, _o, _m, _p, _l, _e, _t, _e, SPC, _o, _n, SPC, NWL, _S, _l, _i, _p, _p, _y, APS, _s, SPC, _s, _h, _i, _p, PRD, NWL, END, }; +// Star Fox, we +// are in your +// debt. u16 gMsg_ID_21010[34] = { PRI1, _S, _t, _a, _r, SPC, _F, _o, _x, CMA, SPC, _w, _e, NWL, _a, _r, _e, SPC, _i, _n, SPC, _y, _o, _u, _r, NWL, _d, _e, _b, _t, PRD, NWL, END, }; +// I would be +// honored to +// have you as +// part of the +// Cornerian +// army. u16 gMsg_ID_21020[64] = { PRI1, _I, SPC, _w, _o, _u, _l, _d, SPC, _b, _e, NWL, _h, _o, _n, _o, _r, _e, _d, SPC, _t, _o, NWL, @@ -3981,6 +5361,10 @@ u16 gMsg_ID_21020[64] = { _a, _r, _m, _y, PRD, NWL, END, }; +// Oh no, sir. +// We prefer +// doing things +// our own way. u16 gMsg_ID_21030[50] = { PRI1, _O, _h, SPC, _n, _o, CMA, SPC, _s, _i, _r, PRD, NWL, _W, _e, SPC, _p, _r, _e, _f, _e, _r, NWL, @@ -3988,326 +5372,448 @@ u16 gMsg_ID_21030[50] = { _o, _u, _r, SPC, _o, _w, _n, SPC, _w, _a, _y, PRD, NWL, END, }; +// Great Fox is ready +// to go. u16 gMsg_ID_21050[30] = { PRI1, _G, _r, _e, _a, _t, SPC, _F, _o, _x, SPC, _i, _s, SPC, _r, _e, _a, _d, _y, SPC, NWL, _t, _o, SPC, _g, _o, PRD, NWL, END, }; +// It is time for +// us to go now. u16 gMsg_ID_21060[32] = { PRI1, _I, _t, SPC, _i, _s, SPC, _t, _i, _m, _e, SPC, _f, _o, _r, NWL, _u, _s, SPC, _t, _o, SPC, _g, _o, SPC, _n, _o, _w, PRD, NWL, END, }; +// I'm going right! u16 gMsg_ID_21070[20] = { PRI1, _I, APS, _m, SPC, _g, _o, _i, _n, _g, SPC, _r, _i, _g, _h, _t, EXM, NWL, END, }; +// I'm going left! u16 gMsg_ID_21071[18] = { PRI1, _I, APS, _m, SPC, _g, _o, _i, _n, _g, SPC, _l, _e, _f, _t, EXM, NWL, END, }; +// I'm going up! u16 gMsg_ID_21072[16] = { PRI1, _I, APS, _m, SPC, _g, _o, _i, _n, _g, SPC, _u, _p, EXM, NWL, END, }; +// I'm going down! u16 gMsg_ID_21073[18] = { PRI1, _I, APS, _m, SPC, _g, _o, _i, _n, _g, SPC, _d, _o, _w, _n, EXM, NWL, END, }; +// I'm going right! u16 gMsg_ID_21080[20] = { PRI1, _I, APS, _m, SPC, _g, _o, _i, _n, _g, SPC, _r, _i, _g, _h, _t, EXM, NWL, END, }; +// I'm going left! u16 gMsg_ID_21081[18] = { PRI1, _I, APS, _m, SPC, _g, _o, _i, _n, _g, SPC, _l, _e, _f, _t, EXM, NWL, END, }; +// I'm going up! u16 gMsg_ID_21082[16] = { PRI1, _I, APS, _m, SPC, _g, _o, _i, _n, _g, SPC, _u, _p, EXM, NWL, END, }; +// I'm going down! u16 gMsg_ID_21083[18] = { PRI1, _I, APS, _m, SPC, _g, _o, _i, _n, _g, SPC, _d, _o, _w, _n, EXM, NWL, END, }; +// I'm going right! u16 gMsg_ID_21090[20] = { PRI1, _I, APS, _m, SPC, _g, _o, _i, _n, _g, SPC, _r, _i, _g, _h, _t, EXM, NWL, END, }; +// I'm going left! u16 gMsg_ID_21091[18] = { PRI1, _I, APS, _m, SPC, _g, _o, _i, _n, _g, SPC, _l, _e, _f, _t, EXM, NWL, END, }; +// I'm going up! u16 gMsg_ID_21092[16] = { PRI1, _I, APS, _m, SPC, _g, _o, _i, _n, _g, SPC, _u, _p, EXM, NWL, END, }; +// I'm going down! u16 gMsg_ID_21093[18] = { PRI1, _I, APS, _m, SPC, _g, _o, _i, _n, _g, SPC, _d, _o, _w, _n, EXM, NWL, END, }; +// Graaaaaa u16 gMsg_ID_22000[10] = { _G, _r, _a, _a, _a, _a, _a, _a, NWL, END, }; +// Graaaaaa u16 gMsg_ID_22001[10] = { _G, _r, _a, _a, _a, _a, _a, _a, NWL, END, }; +// Graaaaaa u16 gMsg_ID_22002[10] = { _G, _r, _a, _a, _a, _a, _a, _a, NWL, END, }; +// Ugh! u16 gMsg_ID_22003[6] = { _U, _g, _h, EXM, NWL, END, }; +// Ha ha ha! u16 gMsg_ID_22004[12] = { _H, _a, SPC, _h, _a, SPC, _h, _a, EXM, NWL, END, }; +// Ha ha ha ha! u16 gMsg_ID_22005[14] = { _H, _a, SPC, _h, _a, SPC, _h, _a, SPC, _h, _a, EXM, NWL, END, }; +// Whoa! u16 gMsg_ID_22006[8] = { _W, _h, _o, _a, EXM, NWL, END, }; +// Aaargh! u16 gMsg_ID_22007[10] = { _A, _a, _a, _r, _g, _h, EXM, NWL, END, }; +// Gwaaaa! u16 gMsg_ID_22008[10] = { _G, _w, _a, _a, _a, _a, EXM, NWL, END, }; +// Gwaaaaaaaa! u16 gMsg_ID_22009[14] = { _G, _w, _a, _a, _a, _a, _a, _a, _a, _a, EXM, NWL, END, }; +// WHAT?! u16 gMsg_ID_22010[8] = { _W, _H, _A, _T, QST, EXM, NWL, END, }; +// This is ONE +// steep bill, +// but it's worth it. u16 gMsg_ID_22011[44] = { _T, _h, _i, _s, SPC, _i, _s, SPC, _O, _N, _E, NWL, _s, _t, _e, _e, _p, SPC, _b, _i, _l, _l, CMA, NWL, _b, _u, _t, SPC, _i, _t, APS, _s, SPC, _w, _o, _r, _t, _h, SPC, _i, _t, PRD, NWL, END, }; +// Twin laser u16 gMsg_ID_22012[12] = { _T, _w, _i, _n, SPC, _l, _a, _s, _e, _r, NWL, END, }; +// Hyper laser u16 gMsg_ID_22013[14] = { _H, _y, _p, _e, _r, SPC, _l, _a, _s, _e, _r, NWL, END, }; +// Smart bomb u16 gMsg_ID_22014[12] = { _S, _m, _a, _r, _t, SPC, _b, _o, _m, _b, NWL, END, }; +// Shield ring u16 gMsg_ID_22015[14] = { _S, _h, _i, _e, _l, _d, SPC, _r, _i, _n, _g, NWL, END, }; +// Check point u16 gMsg_ID_22016[14] = { _C, _h, _e, _c, _k, SPC, _p, _o, _i, _n, _t, NWL, END, }; +// Supply u16 gMsg_ID_22017[8] = { _S, _u, _p, _p, _l, _y, NWL, END, }; +// Wing repair u16 gMsg_ID_22018[14] = { _W, _i, _n, _g, SPC, _r, _e, _p, _a, _i, _r, NWL, END, }; +// Supply ring u16 gMsg_ID_22019[14] = { _S, _u, _p, _p, _l, _y, SPC, _r, _i, _n, _g, NWL, END, }; +// Wing damage u16 gMsg_ID_22020[14] = { _W, _i, _n, _g, SPC, _d, _a, _m, _a, _g, _e, NWL, END, }; +// Use the Control +// Stick to fly. u16 gMsg_ID_23000[34] = { PRI1, _U, _s, _e, SPC, _t, _h, _e, SPC, _C, _o, _n, _t, _r, _o, _l, SPC, NWL, _S, _t, _i, _c, _k, SPC, _t, _o, SPC, _f, _l, _y, PRD, NWL, END, }; +// To ascend, pull +// back. To descend, +// push forward. u16 gMsg_ID_23001[52] = { PRI1, _T, _o, SPC, _a, _s, _c, _e, _n, _d, CMA, SPC, _p, _u, _l, _l, SPC, NWL, _b, _a, _c, _k, PRD, SPC, _T, _o, SPC, _d, _e, _s, _c, _e, _n, _d, CMA, NWL, _p, _u, _s, _h, SPC, _f, _o, _r, _w, _a, _r, _d, PRD, NWL, END, }; +// Press Z or R to +// move left or right +// quickly. u16 gMsg_ID_23002[46] = { PRI1, _P, _r, _e, _s, _s, SPC, _Z, SPC, _o, _r, SPC, _R, SPC, _t, _o, NWL, _m, _o, _v, _e, SPC, _l, _e, _f, _t, SPC, _o, _r, SPC, _r, _i, _g, _h, _t, NWL, _q, _u, _i, _c, _k, _l, _y, PRD, NWL, END, }; +// Press Z or R twice +// to barrel roll. It +// repels enemy fire. u16 gMsg_ID_23003[60] = { PRI1, _P, _r, _e, _s, _s, SPC, _Z, SPC, _o, _r, SPC, _R, SPC, _t, _w, _i, _c, _e, NWL, _t, _o, SPC, _b, _a, _r, _r, _e, _l, SPC, _r, _o, _l, _l, PRD, SPC, _I, _t, NWL, _r, _e, _p, _e, _l, _s, SPC, _e, _n, _e, _m, _y, SPC, _f, _i, _r, _e, PRD, NWL, END, }; +// Press B to bomb. +// Press again to +// detonate. u16 gMsg_ID_23004[44] = { PRI1, _P, _r, _e, _s, _s, SPC, _B, SPC, _t, _o, SPC, _b, _o, _m, _b, PRD, NWL, _P, _r, _e, _s, _s, SPC, _a, _g, _a, _i, _n, SPC, _t, _o, NWL, _d, _e, _t, _o, _n, _a, _t, _e, PRD, NWL, END, }; +// If you hold A, +// it'll charge your +// laser. u16 gMsg_ID_23005[44] = { PRI1, _I, _f, SPC, _y, _o, _u, SPC, _h, _o, _l, _d, SPC, _A, CMA, SPC, NWL, _i, _t, APS, _l, _l, SPC, _c, _h, _a, _r, _g, _e, SPC, _y, _o, _u, _r, NWL, _l, _a, _s, _e, _r, PRD, NWL, END, }; +// Lock on enemies +// when charging laser. u16 gMsg_ID_23006[40] = { PRI1, _L, _o, _c, _k, SPC, _o, _n, SPC, _e, _n, _e, _m, _i, _e, _s, NWL, _w, _h, _e, _n, SPC, _c, _h, _a, _r, _g, _i, _n, _g, SPC, _l, _a, _s, _e, _r, PRD, NWL, END, }; +// You can lock on and +// shoot bombs, too. u16 gMsg_ID_23007[40] = { PRI1, _Y, _o, _u, SPC, _c, _a, _n, SPC, _l, _o, _c, _k, SPC, _o, _n, SPC, _a, _n, _d, NWL, _s, _h, _o, _o, _t, SPC, _b, _o, _m, _b, _s, CMA, SPC, _t, _o, _o, PRD, NWL, END, }; +// You get bonus pts. +// if 2 or more foes +// are destroyed. u16 gMsg_ID_23008[54] = { PRI1, _Y, _o, _u, SPC, _g, _e, _t, SPC, _b, _o, _n, _u, _s, SPC, _p, _t, _s, PRD, NWL, _i, _f, SPC, _2, SPC, _o, _r, SPC, _m, _o, _r, _e, SPC, _f, _o, _e, _s, NWL, _a, _r, _e, SPC, _d, _e, _s, _t, _r, _o, _y, _e, _d, PRD, NWL, END, }; +// A silver ring +// refills the shield +// gauge. u16 gMsg_ID_23009[44] = { PRI1, _A, SPC, _s, _i, _l, _v, _e, _r, SPC, _r, _i, _n, _g, SPC, NWL, _r, _e, _f, _i, _l, _l, _s, SPC, _t, _h, _e, SPC, _s, _h, _i, _e, _l, _d, NWL, _g, _a, _u, _g, _e, PRD, NWL, END, }; +// 3 gold rings will +// increase your +// shield gauge. u16 gMsg_ID_23010[48] = { PRI1, _3, SPC, _g, _o, _l, _d, SPC, _r, _i, _n, _g, _s, SPC, _w, _i, _l, _l, NWL, _i, _n, _c, _r, _e, _a, _s, _e, SPC, _y, _o, _u, _r, NWL, _s, _h, _i, _e, _l, _d, SPC, _g, _a, _u, _g, _e, PRD, NWL, END, }; +// The laser item +// will power up +// your laser. u16 gMsg_ID_23011[44] = { PRI1, _T, _h, _e, SPC, _l, _a, _s, _e, _r, SPC, _i, _t, _e, _m, NWL, _w, _i, _l, _l, SPC, _p, _o, _w, _e, _r, SPC, _u, _p, NWL, _y, _o, _u, _r, SPC, _l, _a, _s, _e, _r, PRD, NWL, END, }; +// Hyper is more +// powerful than twin. u16 gMsg_ID_23012[36] = { PRI1, _H, _y, _p, _e, _r, SPC, _i, _s, SPC, _m, _o, _r, _e, NWL, _p, _o, _w, _e, _r, _f, _u, _l, SPC, _t, _h, _a, _n, SPC, _t, _w, _i, _n, PRD, NWL, END, }; +// Wing repair will +// repair your wings. u16 gMsg_ID_23013[38] = { PRI1, _W, _i, _n, _g, SPC, _r, _e, _p, _a, _i, _r, SPC, _w, _i, _l, _l, NWL, _r, _e, _p, _a, _i, _r, SPC, _y, _o, _u, _r, SPC, _w, _i, _n, _g, _s, PRD, NWL, END, }; +// Let's practice +// speed and U-turn. u16 gMsg_ID_23014[36] = { PRI1, _L, _e, _t, APS, _s, SPC, _p, _r, _a, _c, _t, _i, _c, _e, SPC, NWL, _s, _p, _e, _e, _d, SPC, _a, _n, _d, SPC, _U, DSH, _t, _u, _r, _n, PRD, NWL, END, }; +// Press C< (C<) for +// boost. u16 gMsg_ID_23015[24] = { PRI1, _P, _r, _e, _s, _s, SPC, _C, ALF, SPC, CLF, SPC, _f, _o, _r, NWL, _b, _o, _o, _s, _t, PRD, NWL, END, }; +// Press Cv (Cv) to +// brake. u16 gMsg_ID_23016[24] = { PRI1, _P, _r, _e, _s, _s, SPC, _C, ADN, SPC, CDN, SPC, _t, _o, SPC, NWL, _b, _r, _a, _k, _e, PRD, NWL, END, }; +// To somersault, +// press v and C< (C<). u16 gMsg_ID_23017[36] = { PRI1, _T, _o, SPC, _s, _o, _m, _e, _r, _s, _a, _u, _l, _t, CMA, NWL, _p, _r, _e, _s, _s, SPC, ADN, SPC, _a, _n, _d, SPC, _C, ALF, SPC, CLF, PRD, NWL, END, }; +// You can U-turn in +// all-range mode. u16 gMsg_ID_23018[36] = { PRI1, _Y, _o, _u, SPC, _c, _a, _n, SPC, _U, DSH, _t, _u, _r, _n, SPC, _i, _n, NWL, _a, _l, _l, DSH, _r, _a, _n, _g, _e, SPC, _m, _o, _d, _e, PRD, NWL, END, }; +// Press v and Cv (Cv) +// to U-turn. u16 gMsg_ID_23019[30] = { PRI1, _P, _r, _e, _s, _s, SPC, ADN, SPC, _a, _n, _d, SPC, _C, ADN, SPC, CDN, NWL, _t, _o, SPC, _U, DSH, _t, _u, _r, _n, PRD, NWL, END, }; +// This only works in +// all-range mode. u16 gMsg_ID_23020[38] = { PRI1, _T, _h, _i, _s, SPC, _o, _n, _l, _y, SPC, _w, _o, _r, _k, _s, SPC, _i, _n, NWL, _a, _l, _l, DSH, _r, _a, _n, _g, _e, SPC, _m, _o, _d, _e, PRD, NWL, END, }; +// Press C^ (C^) to +// change the camera +// angle. u16 gMsg_ID_23021[42] = { PRI1, _P, _r, _e, _s, _s, SPC, _C, AUP, SPC, CUP, SPC, _t, _o, SPC, NWL, _c, _h, _a, _n, _g, _e, SPC, _t, _h, _e, SPC, _c, _a, _m, _e, _r, _a, NWL, _a, _n, _g, _l, _e, PRD, NWL, END, }; +// To respond to +// messages, press +// C> (C>). u16 gMsg_ID_23022[40] = { PRI1, _T, _o, SPC, _r, _e, _s, _p, _o, _n, _d, SPC, _t, _o, SPC, NWL, _m, _e, _s, _s, _a, _g, _e, _s, CMA, SPC, _p, _r, _e, _s, _s, NWL, _C, ART, SPC, CRT, PRD, NWL, END, }; +// Press A once more +// to shoot. u16 gMsg_ID_23023[30] = { PRI1, _P, _r, _e, _s, _s, SPC, _A, SPC, _o, _n, _c, _e, SPC, _m, _o, _r, _e, NWL, _t, _o, SPC, _s, _h, _o, _o, _t, PRD, NWL, END, }; +// The effect is +// greater if you +// hold the button. u16 gMsg_ID_23024[48] = { PRI1, _T, _h, _e, SPC, _e, _f, _f, _e, _c, _t, SPC, _i, _s, NWL, _g, _r, _e, _a, _t, _e, _r, SPC, _i, _f, SPC, _y, _o, _u, NWL, _h, _o, _l, _d, SPC, _t, _h, _e, SPC, _b, _u, _t, _t, _o, _n, PRD, NWL, END, }; +// If boost meter is +// red, no techniques +// will work. u16 gMsg_ID_23025[50] = { PRI1, _I, _f, SPC, _b, _o, _o, _s, _t, SPC, _m, _e, _t, _e, _r, SPC, _i, _s, NWL, _r, _e, _d, CMA, SPC, _n, _o, SPC, _t, _e, _c, _h, _n, _i, _q, _u, _e, _s, NWL, _w, _i, _l, _l, SPC, _w, _o, _r, _k, PRD, NWL, END, }; +// Press START and +// choose QUIT to quit. u16 gMsg_ID_23026[40] = { PRI1, _P, _r, _e, _s, _s, SPC, _S, _T, _A, _R, _T, SPC, _a, _n, _d, NWL, _c, _h, _o, _o, _s, _e, SPC, _Q, _U, _I, _T, SPC, _t, _o, SPC, _q, _u, _i, _t, PRD, NWL, END, }; +// Collect 3 more for +// an extra Arwing. u16 gMsg_ID_23027[38] = { PRI1, _C, _o, _l, _l, _e, _c, _t, SPC, _3, SPC, _m, _o, _r, _e, SPC, _f, _o, _r, NWL, _a, _n, SPC, _e, _x, _t, _r, _a, SPC, _A, _r, _w, _i, _n, _g, PRD, NWL, END, }; +// Now moving to +// all-range mode. u16 gMsg_ID_23028[32] = { PRI1, _N, _o, _w, SPC, _m, _o, _v, _i, _n, _g, SPC, _t, _o, NWL, _a, _l, _l, DSH, _r, _a, _n, _g, _e, SPC, _m, _o, _d, _e, PRD, NWL, END, }; +// You can fly +// anywhere in +// all-range mode. u16 gMsg_ID_23029[44] = { PRI1, _Y, _o, _u, SPC, _c, _a, _n, SPC, _f, _l, _y, SPC, NWL, _a, _n, _y, _w, _h, _e, _r, _e, SPC, _i, _n, NWL, _a, _l, _l, DSH, _r, _a, _n, _g, _e, SPC, _m, _o, _d, _e, PRD, NWL, END, }; +// The yellow mark on +// radar shows your +// position. u16 gMsg_ID_23030[48] = { PRI1, _T, _h, _e, SPC, _y, _e, _l, _l, _o, _w, SPC, _m, _a, _r, _k, SPC, _o, _n, NWL, _r, _a, _d, _a, _r, SPC, _s, _h, _o, _w, _s, SPC, _y, _o, _u, _r, NWL, _p, _o, _s, _i, _t, _i, _o, _n, PRD, NWL, END, }; +// If you reach the +// edge of the map, +// you'll U-turn. u16 gMsg_ID_23031[52] = { PRI1, _I, _f, SPC, _y, _o, _u, SPC, _r, _e, _a, _c, _h, SPC, _t, _h, _e, NWL, _e, _d, _g, _e, SPC, _o, _f, SPC, _t, _h, _e, SPC, _m, _a, _p, CMA, NWL, _y, _o, _u, APS, _l, _l, SPC, _U, DSH, _t, _u, _r, _n, PRD, NWL, END, }; +// Continue to +// practice all-range +// mode. u16 gMsg_ID_23032[42] = { PRI1, _C, _o, _n, _t, _i, _n, _u, _e, SPC, _t, _o, SPC, NWL, _p, _r, _a, _c, _t, _i, _c, _e, SPC, _a, _l, _l, DSH, _r, _a, _n, _g, _e, SPC, NWL, diff --git a/src/main/fox_360.c b/src/main/fox_360.c new file mode 100644 index 00000000..f39adf7d --- /dev/null +++ b/src/main/fox_360.c @@ -0,0 +1,2298 @@ +#include "global.h" + +// placeholder for ambiguous overlay function +void func_80187520(s32, void*); + +typedef struct { + s32 unk_00; + char unk_04[0x2F0]; +} UnkStruct_1515F0; // size = 0x2F4 + // placeholder for audio struct. struct size being equal to Object_2F4 probably coincidental +extern UnkStruct_1515F0 D_801515F0[]; + +/* static */ Vec3f D_800C9A90 = { 0.0f, -10.0f, 0.0f }; +/* static */ Vec3f D_800C9A9C[4] = { + { 0.0f, 20000.0f, 0.0f }, + { 0.0f, 700.0f, 6500.0f }, + { -300.0f, 800.0f, 6800.0f }, + { 300.0f, 900.0f, 7200.0f }, +}; +/* static */ s32 D_800C9ACC[4] = { 0, 1, 2, 3 }; +/* static */ s32 D_800C9ADC[4] = { -1, 10, 11, 12 }; +/* static */ s32 D_800C9AEC[4] = { -1, 21, 23, 25 }; +/* static */ Vec3f D_800C9AFC[4] = { + { 9500.0f, 5000.0f, 9500.0f }, + { 10000.0f, 5000.0f, 10000.0f }, + { 10000.0f, 5000.0f, 9500.0f }, + { 9500.0f, 5000.0f, 10000.0f }, +}; +/* static */ s32 D_800C9B2C[4] = { 0, 1, 3, 2 }; +/* static */ f32 D_800C9B3C[4] = { 330.0f, 90.0f, 280.0f, 70.0f }; +s32 D_800C9B4C = 96 * 30; +/* static */ Vec3f D_800C9B50[6] = { + { 8000.0f, 500.0f, 0.0f }, { 5000.0f, 400.0f, 0.0f }, { 2000.0f, 300.0f, 0.0f }, + { -500.0f, 250.0f, 0.0f }, { 0.0f, 250.0f, 0.0f }, { 0.0f, 250.0f, 0.0f }, +}; +/* static */ Vec3f D_800C9B98 = { 60.0f, 0.0f, -170.0f }; +/* static */ Vec3f D_800C9BA4 = { -60.0f, 0.0f, -170.0f }; +/* static */ Vec3f D_800C9BB0 = { 0.0f, 0.0f, 0.0f }; + +s32 D_8015F900; +s32 D_8015F904; +s16 D_8015F908; +s32 D_8015F90C; +s32 D_8015F910; +f32 D_8015F914; +f32 D_8015F918; +f32 D_8015F91C; +u8 D_8015F920; +u8 D_8015F921; +s32 D_8015F924; +s32 D_8015F928; +s32 D_8015F930[3]; +s32 D_8015F93C; +s32 D_8015F940; +f32 D_8015F944; + +void func_8002E3E0(Object_2F4* obj2F4) { + s32 hits = 0; + + (void) "time=%d\n"; + (void) "time=%d\n"; + (void) "time=%d\n"; + (void) "time=%d\n"; + (void) "time=%d\n"; + if (gCurrentLevel == LEVEL_VENOM_2) { + if (D_8015F940 < 128 * 30) { + hits = 50; + } else if (D_8015F940 < 192 * 30) { + hits = 30; + } else if (D_8015F940 < 256 * 30) { + hits = 20; + } else if (D_8015F940 < 320 * 30) { + hits = 10; + } + } else { + if (D_8015F940 < 128 * 30) { + hits = 10; + } else if (D_8015F940 < 192 * 30) { + hits = 5; + } else if (D_8015F940 < 256 * 30) { + hits = 2; + } else if (D_8015F940 < 320 * 30) { + hits = 1; + } + } + if (hits != 0) { + func_80077240(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, hits); + } + gHitCount += hits; + D_80177850 = 15; +} + +s32 func_8002E4F8(u16* arg0, s32 arg1) { + if ((gRadioState == 0) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_0)) { + func_800BA808(arg0, arg1); + return true; + } else { + return false; + } +} + +void func_8002E548(void) { + if (D_8015F93C != 0) { + s32 sp24 = D_8015F930[1]; + + func_8008E51C(D_8015F930, D_8015F944); + if ((D_8015F930[0] == 0) && (sp24 != D_8015F930[1]) && (D_8015F930[1] < 15)) { + Audio_PlaySfx(0x4900C02A, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } +} + +void func_8002E5E0(Object_408* obj408) { + func_80187520(0x5B, obj408); +} + +void func_8002E604(Object_408* obj408) { + func_80187520(0x5C, obj408); +} + +void func_8002E628(Object_408* obj408) { + func_80187520(0x5D, obj408); +} + +void func_8002E64C(Object_408* obj408) { + func_80187520(0x5E, obj408); +} + +void func_8002E670(Object_2F4* obj408) { + func_80187520(0x5F, obj408); +} + +void func_8002E694(Object_2F4* obj408) { + func_80187520(0x60, obj408); +} + +void func_8002E6B8(Object_2F4* obj408) { + func_80187520(0x61, obj408); +} + +void func_8002E6DC(Object_2F4* obj408) { + func_80187520(0x62, obj408); +} + +void func_8002E700(Player* player) { + Vec3f sp6C; + Vec3f sp60; + + D_80177A80++; + switch (player->unk_1D0) { + case 0: + player->unk_1F4 = player->timer_498 = player->damage = player->unk_280 = player->unk_2BC = player->unk_2B4 = + player->unk_4DC = D_80177A80 = 0; + player->unk_130 = player->unk_034 = player->unk_110 = player->unk_08C = player->unk_0D8.x = + player->unk_0D8.y = player->unk_0D8.z = player->unk_134 = player->unk_4D8 = 0.0f; + D_80177978 = 1673.0f; + D_80177980 = 337.0f; + if (player->pos.z < 0.0f) { + D_80177988 = -480.0f; + } else { + D_80177988 = 480.0f; + } + player->unk_0E8 = 0.0f; + player->pos.x = 2100.0f; + player->unk_0D0 = 30.0f; + player->unk_0E4 = -8.0f; + player->unk_114 = 90.0f; + D_801779A0 = 2100.0f; + player->pos.y = 450.0f; + D_801779B8 = 450.0f; + player->pos.z = 0.0f; + D_801779C0 = 0.0f; + D_80177A48[0] = 1.0f; + player->wings.unk_2C = 1; + player->unk_1D0++; + break; + case 1: + if (D_80177A80 >= 47) { + D_80178358 = 255; + D_8017835C = 32; + D_80178348 = D_80178350 = D_80178354 = 0; + } + if (D_80177A80 >= 64) { + player->unk_1D0++; + player->unk_0D0 = 0.0f; + } + break; + case 2: + if (D_80178340 == 255) { + D_80178358 = 0; + player->pos.x = 400.0f; + player->pos.y = -420.0f; + player->pos.z = 0.0f; + player->unk_0EC = 0.0f; + D_80177978 = -683.0f; + D_80177980 = -346.0f; + D_80177988 = 305.0f; + player->shields = Play_GetMaxShields(); + player->wings.rightState = WINGSTATE_INTACT; + player->wings.leftState = WINGSTATE_INTACT; + if (gExpertMode) { + gRightWingHealth[0] = gLeftWingHealth[0] = 10; + } else { + gRightWingHealth[0] = gLeftWingHealth[0] = 60; + } + Audio_PlaySfx(0x4900200E, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + player->unk_1D0++; + } + break; + case 3: + D_8017835C = 32; + D_80177988 -= 1.0f; + if (D_80178340 == 0) { + player->unk_190 = player->unk_194 = 5.0f; + player->unk_114 = 90.0f; + player->unk_0D0 = D_80161A54; + player->unk_1D0++; + + Audio_PlaySfx(0x09000002, &player->unk_460, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + break; + case 4: + D_80177988 -= 1.0f; + D_80177978 -= 1.0f; + player->unk_0E4 += 0.4f; + if (D_80177A80 >= 130) { + player->state_1C8 = PLAYERSTATE_1C8_3; + player->wings.unk_2C = 0; + player->unk_014 = 0; + player->unk_018 = 0; + player->unk_01C = 0; + gObjects2F4->unk_0B8 = 2; + } + break; + } + D_801779A0 = player->pos.x; + D_801779B8 = player->pos.y; + D_801779C0 = player->pos.z; + Math_SmoothStepToF(&player->unk_0EC, 0.0f, 0.1f, 2.0f, 0); + Math_SmoothStepToF(&player->unk_12C, 0.0f, 0.1f, 3.0f, 0); + Matrix_RotateY(gCalcMatrix, (player->unk_0E8 + player->unk_114 + 180.0f) * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, -(player->unk_0E4 * M_DTOR), 1); + sp6C.x = 0.0f; + sp6C.y = 0.0f; + sp6C.z = player->unk_0D0; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp6C, &sp60); + player->vel.x = sp60.x; + player->vel.z = sp60.z; + player->vel.y = sp60.y; + player->pos.x += player->vel.x; + player->pos.y += player->vel.y; + player->pos.z += player->vel.z; + player->unk_138 = player->pos.z; + player->unk_0F8 = player->unk_0EC + player->unk_12C + player->unk_130; + Math_SmoothStepToF(&player->camEye.x, D_80177978, D_80177A48[0], 50000.0f, 0); + Math_SmoothStepToF(&player->camEye.y, D_80177980, D_80177A48[0], 50000.0f, 0); + Math_SmoothStepToF(&player->camEye.z, D_80177988, D_80177A48[0], 50000.0f, 0); + Math_SmoothStepToF(&player->camAt.x, D_801779A0, D_80177A48[0], 50000.0f, 0); + Math_SmoothStepToF(&player->camAt.y, D_801779B8, D_80177A48[0], 50000.0f, 0); + Math_SmoothStepToF(&player->camAt.z, D_801779C0, D_80177A48[0], 50000.0f, 0); +} + +void func_8002ED60(Player* player) { + Vec3f sp24; + + Math_Vec3fFromAngles(&sp24, 0.0f, player->unk_114 + 180.0f, 40.0f); + player->vel.x = sp24.x; + player->vel.z = sp24.z; + player->vel.y = sp24.y; + player->pos.x += player->vel.x; + player->pos.y += player->vel.y; + player->pos.z += player->vel.z; + player->unk_138 = player->pos.z; + player->camEye.x = -200.0f; + player->camEye.y = 500.0f; + player->camEye.z = 7000.0f; + player->camAt.x = player->pos.x; + player->camAt.y = player->pos.y; + player->camAt.z = player->pos.z; +} + +void func_8002EE34(void) { + D_8015F904 = gRadioState = gObjects2F4[1].unk_054 = gObjects2F4[2].unk_054 = gObjects2F4[3].unk_054 = 0; +} + +void func_8002EE64(Object_2F4* obj2F4) { + s32 var_s3; + s32 var_s0; + Object_58* var_s2; + Vec3f temp1; + f32 temp4; + f32 temp5; + Vec3f spE4; + Vec3f spD8; + Vec3f spCC; + Vec3f spC0; + Vec3f spB4; + Vec3f spA8; + f32 spA0[2]; + Vec3f sp94 = D_800C9A90; + s32 pad1; + s32 pad2; + + obj2F4->unk_178 = obj2F4->unk_17C = obj2F4->unk_184 = obj2F4->unk_180 = 0.0f; + if ((obj2F4->unk_0C9 != 0) && (gLevelMode == LEVELMODE_ALL_RANGE) && (gLevelType == LEVELTYPE_PLANET)) { + for (var_s3 = 0, var_s2 = gObjects58; var_s3 < 200; var_s3++, var_s2++) { + if ((var_s2->obj.status == 2) && + ((var_s2->obj.id == 150) || (var_s2->obj.id == 149) || (var_s2->obj.id == 148) || + (var_s2->obj.id == 1) || (var_s2->obj.id == 3)) && + (fabsf(var_s2->obj.pos.x - obj2F4->obj.pos.x) < 2500.0f) && + (fabsf(var_s2->obj.pos.z - obj2F4->obj.pos.z) < 2500.0f)) { + temp1.x = var_s2->obj.pos.x; + temp1.y = var_s2->obj.pos.y; + temp1.z = var_s2->obj.pos.z; + temp4 = var_s2->obj.rot.y; + + Matrix_RotateY(gCalcMatrix, -temp4 * M_DTOR, 0); + spE4.x = obj2F4->obj.pos.x - temp1.x; + spE4.y = 0.0f; + spE4.z = obj2F4->obj.pos.z - temp1.z; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &spE4, &spD8); + spC0.x = temp1.x; + spC0.y = temp1.y; + + spCC.x = spD8.x + temp1.x; + spC0.z = temp1.z; // fake? + spCC.y = spD8.y + temp1.y; + spCC.z = spD8.z + temp1.z; + if ((var_s2->obj.id == 149) || (var_s2->obj.id == 150)) { + if (var_s2->obj.id == 149) { + var_s0 = 5; + } else { + var_s0 = 6; + } + if (func_800998FC(&spCC, &spC0, &sp94, var_s0, &spA8, spA0) > 0) { + obj2F4->unk_178 = spA8.y; + obj2F4->unk_17C = spA0[0]; + obj2F4->unk_184 = spA0[1]; + obj2F4->unk_180 = (temp4 / 180.0f) * M_PI; + } + } else { + var_s0 = 0; + if (var_s2->obj.id == 3) { + var_s0 = 3; + } + if (func_800A3690(&spCC, &spC0, var_s0, &spB4) != 0) { + obj2F4->unk_178 = spB4.y; + obj2F4->unk_17C = spB4.x; + obj2F4->unk_184 = spB4.z; + obj2F4->unk_180 = (temp4 / 180.0f) * M_PI; + } + } + } + } + } +} + +void func_8002F180(void) { + Object_2F4* obj2F4; + s32 i; + s32 temp = 4; + + for (i = 0, obj2F4 = gObjects2F4; i < temp; i++, obj2F4++) { + if ((i > 0) && (gTeamShields[i] <= 0)) { + continue; + } + Object_2F4_Initialize(obj2F4); + obj2F4->obj.status = 2; + obj2F4->obj.id = 197; + Object_SetInfo(&obj2F4->info, obj2F4->obj.id); + if (i == 0) { + obj2F4->unk_0E4 = 1000; + } else { + obj2F4->obj.pos.x = D_800C9A9C[i].x; + obj2F4->obj.pos.y = D_800C9A9C[i].y; + obj2F4->obj.pos.z = D_800C9A9C[i].z; + obj2F4->unk_0E4 = D_800C9ACC[i]; + if (gCurrentLevel == LEVEL_KATINA) { + obj2F4->unk_0E6 = D_800C9AEC[i]; + } else { + obj2F4->unk_0E6 = D_800C9ADC[i]; + } + obj2F4->unk_0B8 = 2; + obj2F4->unk_0F4.y = 180.0f; + if (obj2F4->unk_0E6 < 0) { + obj2F4->unk_0B8 = 3; + } + obj2F4->unk_0CE = 50; + if ((gLevelType == LEVELTYPE_PLANET) || (gCurrentLevel == LEVEL_BOLSE)) { + obj2F4->unk_0C9 = 1; + } + obj2F4->unk_07C = 1; + if (obj2F4->unk_0E4 < 4) { + Audio_PlaySfx(0x3100000C, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + obj2F4->info.hitbox = SEGMENTED_TO_VIRTUAL(D_800CC01C); + obj2F4->info.unk_1C = 0.0f; + obj2F4->info.bonus = 0; + } else { + Audio_PlaySfx(0x31000011, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } + } +} + +void func_8002F3E0(void) { + Object_2F4* obj2F4; + s32 i; + + for (i = 0, obj2F4 = &gObjects2F4[4]; i < 4; i++, obj2F4++) { + if (D_80177CD0[i] != 0) { + Object_2F4_Initialize(obj2F4); + obj2F4->obj.status = 2; + obj2F4->obj.pos.x = D_800C9AFC[i].x; + obj2F4->obj.pos.y = D_800C9AFC[i].y; + obj2F4->obj.pos.z = D_800C9AFC[i].z; + obj2F4->obj.id = 197; + obj2F4->unk_0E4 = i + 4; + obj2F4->unk_0E6 = D_800C9B2C[i]; + gObjects2F4[obj2F4->unk_0E6].unk_0E6 = -1; + obj2F4->unk_0CE = 100; + obj2F4->unk_0C9 = 1; + obj2F4->unk_0F4.y = 225.0f; + obj2F4->unk_0B8 = 0; + obj2F4->timer_0BC = 250; + obj2F4->unk_0F4.x = -20.0f; + obj2F4->unk_07C = 1; + if (gCurrentLevel == LEVEL_VENOM_2) { + obj2F4->obj.rot.z = D_800C9B3C[i]; + obj2F4->unk_044 = 25; + } + Object_SetInfo(&obj2F4->info, obj2F4->obj.id); + if (gCurrentLevel == LEVEL_VENOM_2) { + Audio_PlaySfx(0x31004006, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } else { + Audio_PlaySfx(0x31004005, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } + } +} + +void func_8002F5F4(u16* msg, s32 character) { + if ((D_80178300 == 0) && (gObjects2F4[0].unk_0B8 == 2) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_0)) { + func_800BA808(msg, character); + } +} + +void func_8002F64C(u16* msg, s32 character) { + if ((D_80177CD0[0] + D_80177CD0[1] + D_80177CD0[2] + D_80177CD0[3]) == 0) { + gRadioState = 0; + } + func_8002F5F4(msg, character); +} + +void func_8002F69C(Object_2F4* obj2F4) { + Object_2F4* var_s0; + s32 i; + + if (D_8015F904 != 0) { + D_8015F904--; + if ((D_8015F904 == 0) && (gCurrentLevel != LEVEL_BOLSE) && + ((D_80177CD0[0] + D_80177CD0[1] + D_80177CD0[2] + D_80177CD0[3]) == 1)) { + func_800BA808(gMsg_ID_19465, RCID_FOX); + } + } + if (((D_8015F928 + 100) == (0, D_800C9B4C)) && (gCurrentLevel != LEVEL_VENOM_2)) { + // fake? + func_800182F4(0x101E00FF); + func_800182F4(0x111E00FF); + } + if (D_8015F928 == D_800C9B4C) { + func_8002F3E0(); + obj2F4->unk_0B8 = 3; + gPlayer->state_1C8 = PLAYERSTATE_1C8_0; + if ((gCurrentLevel == LEVEL_VENOM_2) || (gCurrentLevel == LEVEL_BOLSE)) { + gPlayer->unk_034 = 20.0f; + } + func_8001D444(0, 0x802B, 0, 0xFF); + func_8002EE34(); + if ((gCurrentLevel == LEVEL_FORTUNA) || (gCurrentLevel == LEVEL_VENOM_2)) { + gPlayer->camEye.x = 4500.0f; + } else if (gCurrentLevel == LEVEL_BOLSE) { + gPlayer->camEye.x = 5500.0f; + } + gPlayer->camEye.y = 2500.0f; + gPlayer->camEye.z = 5000.0f; + gPlayer->camAt.x = gObjects2F4[4].obj.pos.x; + gPlayer->camAt.y = gObjects2F4[4].obj.pos.y; + gPlayer->camAt.z = gObjects2F4[4].obj.pos.z; + } + if (D_8015F928 > D_800C9B4C) { + if (D_8015F908 == 0) { + D_8015F940++; + for (i = 1, var_s0 = &gObjects2F4[1]; i < 8; i++, var_s0++) { + if ((var_s0->obj.status == 2) && (var_s0->unk_0B8 == 2) && (var_s0->unk_0CE < 70) && + (var_s0->timer_0C6 != 0) && (var_s0->unk_0D4 == 1)) { + if ((gObjects2F4[var_s0->unk_0E6].unk_0B8 == 3) && (gObjects2F4[var_s0->unk_0E6].unk_0E4 < 8)) { + gObjects2F4[var_s0->unk_0E6].unk_058 = 0; + gObjects2F4[var_s0->unk_0E6].unk_0B8 = 2; + gObjects2F4[var_s0->unk_0E6].unk_0E6 = var_s0->unk_0E4; + if (D_800CA234 == &gObjects2F4[var_s0->unk_0E6]) { + D_800CA234 = NULL; + D_Timer_800CA238 = 0; + } + if (gObjects2F4[var_s0->unk_0E6].unk_05C == 0) { + switch (gObjects2F4[var_s0->unk_0E6].unk_0E4) { + case 1: + func_8002F5F4(gMsg_ID_9160, RCID_FALCO); + break; + case 2: + func_8002F5F4(gMsg_ID_9170, RCID_SLIPPY); + break; + case 3: + func_8002F5F4(gMsg_ID_9180, RCID_PEPPY); + break; + } + gObjects2F4[var_s0->unk_0E6].unk_05C = 200; + } + } + if (var_s0->unk_0E4 == 4) { + if (gCurrentLevel != LEVEL_VENOM_2) { + var_s0->unk_0B8 = 3; + var_s0->unk_04E = 300; + } + } else { + var_s0->unk_0B8 = 3; + var_s0->unk_0E6 = -1; + } + } + } + if (gTeamShields[1] <= 0) { + gObjects2F4[5].unk_0E6 = 0; + } + if (gTeamShields[2] <= 0) { + gObjects2F4[7].unk_0E6 = 0; + } + if (gTeamShields[3] <= 0) { + gObjects2F4[6].unk_0E6 = 0; + } + } + } +} + +void func_8002FB4C(Object_2F4* obj2F4) { + Object_2F4* var_a2; + Object_2F4* var_v1; + s32 var_a0; + s32 j; + s32 i; + + for (i = 10, var_v1 = &gObjects2F4[10]; i < 60; i++, var_v1++) { + if ((var_v1->obj.status == 2) && (var_v1->obj.id == 197) && (var_v1->unk_0B6 == 0) && (var_v1->unk_0E6 < 0)) { + var_a0 = false; + for (j = 1, var_a2 = &gObjects2F4[1]; j < 4; j++, var_a2++) { + if ((j != obj2F4->index) && (i == var_a2->unk_0E6)) { + var_a0 = true; + } + } + if (!var_a0) { + obj2F4->unk_0E6 = i; + obj2F4->unk_0B8 = 2; + obj2F4->unk_058 = 0; + break; + } + } + } +} + +void func_8002FC00(Object_2F4* obj2F4) { + Object_2F4* var_s1; + s32 var_s5; + + for (var_s5 = 0, var_s1 = &gObjects2F4[10]; var_s5 < 50; var_s5++, var_s1++) { + if ((var_s1->obj.status == 3) && (var_s1->unk_0E6 > 0) && (var_s1->unk_0E6 < 4)) { + Object_2F4* var_v0; + s32 var_v1; + + for (var_v1 = 0, var_v0 = &gObjects2F4[10]; var_v1 < 51; var_v1++, var_v0++) { + if ((var_v0->obj.status == 2) && (var_v0->unk_0B8 == 2) && (var_v0->unk_0E6 == var_s1->unk_0E6)) { + return; + } + } + if (gTeamShields[var_s1->unk_0E6] > 0) { + func_8002FB4C(&gObjects2F4[var_s1->unk_0E6]); + if ((var_s1->unk_064 != 0) && (var_s1->unk_0D4 == 1) && (gObjects2F4[var_s1->unk_0E6].unk_05C == 0)) { + if (D_800CA234 == &gObjects2F4[var_s1->unk_0E6]) { + D_800CA234 = NULL; + D_Timer_800CA238 = 0; + } + switch (gObjects2F4[var_s1->unk_0E6].unk_0E4) { + case 1: + func_8002F5F4(gMsg_ID_9160, RCID_FALCO); + break; + case 2: + func_8002F5F4(gMsg_ID_9170, RCID_SLIPPY); + break; + case 3: + func_8002F5F4(gMsg_ID_9180, RCID_PEPPY); + break; + } + gObjects2F4[var_s1->unk_0E6].unk_05C = 200; + gObjects2F4[var_s1->unk_0E6].timer_0C4 = 600; + } + } + } + } +} + +bool func_8002FE74(void) { + switch (gCurrentLevel) { + case LEVEL_FORTUNA: + return D_8015F928 == D_800C9B4C + 2400; + case LEVEL_BOLSE: + return gObjects408[2].unk_0D0 == 4; + case LEVEL_KATINA: + return gObjects408[1].unk_0A6 == 2; + } + return false; +} + +void func_8002FEF0(Object_2F4* arg0) { + Object_2F4* var_s0; + s32 i; + + if ((D_80161690 != 0) && (gControllerPress[gMainController].button & R_CBUTTONS)) { + func_8001AF40(0); + D_800CFF90 = 0; + D_80161690 = 0; + func_800BA808(gMsg_ID_20230, RCID_ROB64); + D_8015F900 = 160; + } + if (D_8015F900 != 0) { + D_8015F900--; + if (D_8015F900 == 0) { + for (i = 20, var_s0 = &gObjects2F4[20]; i < 60; i++, var_s0++) { + if (var_s0->obj.status == 0) { + Object_2F4_Initialize(var_s0); + var_s0->obj.status = 1; + var_s0->obj.id = 291; + if (gCurrentLevel == LEVEL_SECTOR_Z) { + var_s0->obj.pos.x = 200.0f; + var_s0->obj.pos.y = -500.0f; + var_s0->obj.pos.z = 0.0f; + Audio_PlaySfx(0x09000002, &var_s0->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + var_s0->timer_0C2 = 50; + } else { + var_s0->obj.pos.x = 0.0f; + var_s0->obj.pos.y = 3000.0f; + var_s0->obj.pos.z = 5000.0f; + var_s0->timer_0C2 = 50; + } + Object_SetInfo(&var_s0->info, var_s0->obj.id); + break; + } + } + } + } + if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_3) && (D_8015F910 == 0)) { + if (D_8015F90C != 0) { + D_8015F90C--; + } + if ((gPlayer->shields < 64) || func_8002FE74() || (D_8015F90C == 1)) { + D_80161690 = 60; + D_8015F910 = 1; + } + } +} + +void func_8003010C(Object_2F4* obj2F4) { + if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_4) || (gPlayer->state_1C8 == PLAYERSTATE_1C8_6)) { + Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + return; + } + D_8015F928++; + switch (gCurrentLevel) { + case LEVEL_FORTUNA: + func_E51970_80187960(obj2F4); + break; + case LEVEL_KATINA: + func_E51970_80198594(obj2F4); + break; + case LEVEL_BOLSE: + func_E51970_8018C158(obj2F4); + break; + case LEVEL_SECTOR_Z: + func_E51970_8019AB8C(obj2F4); + break; + case LEVEL_VENOM_2: + func_E9F1D0_80196314(obj2F4); + break; + } + func_8002FEF0(obj2F4); +} + +s32 func_800301F4(Object_2F4* obj2F4) { + Object_408* obj408; + f32 temp_ft4; + f32 temp_ft5; + s32 i; + f32 sp1C; + f32 sp18; + + if (gLevelMode == LEVELMODE_ON_RAILS) { + return 0; + } + sp1C = __sinf(obj2F4->obj.rot.y * M_DTOR); + sp18 = __cosf(obj2F4->obj.rot.y * M_DTOR); + temp_ft4 = obj2F4->unk_138 * 10.0f + (sp1C * 650.0f); + temp_ft5 = obj2F4->unk_138 * 10.0f + (sp18 * 650.0f); + for (i = 0; i < 200; i++) { + if ((gObjects58[i].obj.status == 2) && + (fabsf(gObjects58[i].obj.pos.x - (obj2F4->obj.pos.x + temp_ft4)) < 1000.0f) && + (fabsf(gObjects58[i].obj.pos.z - (obj2F4->obj.pos.z + temp_ft5)) < 1000.0f)) { + if (fabsf(gObjects58[i].obj.pos.y - obj2F4->obj.pos.y) < 1000.0f) { + if (gObjects58[i].obj.pos.y < obj2F4->obj.pos.y) { + return 1; + } else { + return -1; + } + } + } + } + obj408 = gObjects408; + if ((gCurrentLevel == LEVEL_SECTOR_Z) && (fabsf(obj408->obj.pos.x - (obj2F4->obj.pos.x + temp_ft4)) < 2000.0f) && + (fabsf(obj408->obj.pos.z - (obj2F4->obj.pos.z + temp_ft5)) < 2000.0f)) { + if (fabsf(obj408->obj.pos.y - obj2F4->obj.pos.y) < 1500.0f) { + if (obj408->obj.pos.y < obj2F4->obj.pos.y) { + return 1; + } else { + return -1; + } + } + } + return 0; +} + +s32 func_8003049C(Object_2F4* arg0) { + Object_58* var_v0_2; + s32 i; + f32 sp44; + f32 sp40; + f32 sp3C; + f32 temp_fa0; + f32 temp_ft4; + f32 var_ft5; + Object_408* obj408 = &gObjects408[0]; + s32 pad[4]; + + if (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) { + return 0; + } + if ((gLevelType == LEVELTYPE_SPACE) && (gCurrentLevel != LEVEL_BOLSE)) { + return func_800301F4(arg0); + } + sp40 = __sinf(arg0->obj.rot.y * M_DTOR); + sp3C = __cosf(arg0->obj.rot.y * M_DTOR); + temp_fa0 = arg0->unk_138 * 10.0f + (sp40 * 650.0f); + temp_ft4 = arg0->unk_138 * 10.0f + (sp3C * 650.0f); + if (gLevelMode == LEVELMODE_ALL_RANGE) { + for (i = 0, var_v0_2 = gObjects58; i < 200; i++, var_v0_2++) { + if ((var_v0_2->obj.status == 2) && (fabsf(var_v0_2->obj.pos.x - (arg0->obj.pos.x + temp_fa0)) < 1200.0f) && + (fabsf(var_v0_2->obj.pos.z - (arg0->obj.pos.z + temp_ft4)) < 1200.0f) && (arg0->obj.pos.y < 650.0f)) { + return 1; + } + } + } + sp44 = 1200.0f; + var_ft5 = 650.0f; + if (arg0->unk_0E4 < 8) { + var_ft5 = 720.0f; + } + + if (obj408->obj.id == OBJ_408_293) { + var_ft5 = 350.0f; + } else if (obj408->obj.id == OBJ_408_309) { + sp44 = 2000.0f; + var_ft5 = 750.0f; + } else if (obj408->obj.id == OBJ_408_317) { + sp44 = 1500.0f; + var_ft5 = 700.0f; + } + if ((fabsf(obj408->obj.pos.x - (arg0->obj.pos.x + temp_fa0)) < sp44) && + (fabsf(obj408->obj.pos.z - (arg0->obj.pos.z + temp_ft4)) < sp44) && + (fabsf(obj408->obj.pos.y - arg0->obj.pos.y) < var_ft5)) { + return 1; + } + return 0; +} + +void func_8003088C(Object_2F4* arg0) { + s32 var_a1; + Vec3f sp48; + Vec3f sp3C; + + if (arg0->unk_0D0 != 0) { + if (arg0->unk_0E4 == 100) { + arg0->unk_0D0 = 0; + } + if ((arg0->unk_0D0 >= 2) && (arg0->unk_0E4 >= 4) && (arg0->unk_0E4 < 8)) { + arg0->unk_0D6 = 10; + arg0->timer_0C2 = 10; + } + if (((arg0->unk_0E4 < 4) || (arg0->unk_0E4 == 9) || (arg0->unk_0E4 == 8)) && (arg0->unk_0D0 == 2)) { + arg0->unk_0D0 = 0; + } + if ((arg0->unk_0D0 == 2) && (arg0->unk_16C > 0.0f)) { + arg0->unk_0D0 = 0; + } + if (arg0->unk_170 > 1.0f) { + arg0->unk_0D0 = 0; + } + if (arg0->unk_0D0 != 0) { + var_a1 = false; + if ((arg0->unk_0B6 == 3) || + ((gCurrentLevel == LEVEL_BOLSE) && (gObjects408[1].obj.status != 0) && (arg0->unk_0E4 >= 4)) || + ((gCurrentLevel == LEVEL_VENOM_2) && (arg0->unk_0E4 >= 4) && (arg0->unk_0E4 < 10) && + (arg0->unk_0D0 == 2))) { + arg0->unk_0D6 = 0; + var_a1 = true; + if (gCurrentLevel == LEVEL_BOLSE) { + arg0->unk_0D4 = 0; + } + } + if (arg0->unk_0E4 >= 4) { + if (((arg0->unk_0D0 != 3) || (arg0->unk_0E4 != 4)) && + ((arg0->unk_0E4 != 200) || (arg0->unk_0D0 != 2))) { + arg0->unk_0CE -= arg0->unk_0D6; + } + } else if ((arg0->unk_0E4 < 4) && (arg0->unk_0B8 != 6)) { + if (arg0->unk_0E4 == 1) { + gTeamDamage[arg0->unk_0E4] = arg0->unk_0D6; + } else { + gTeamDamage[arg0->unk_0E4] = arg0->unk_0D6 * 2; + } + } + if (arg0->unk_0CE <= 0) { + arg0->unk_0CE = 0; + if (arg0->unk_0E4 == 200) { + func_E51970_80199900(arg0, 1); + if (arg0->unk_0D4 == 1) { + if (gObjects2F4[8].obj.status == 2) { + func_800BA808(gMsg_ID_16140, RCID_KATT); + } + func_80077240(arg0->obj.pos.x, arg0->obj.pos.y, arg0->obj.pos.z, 10); + gHitCount += 11; + D_80177850 = 15; + } else { + switch (arg0->unk_0D4) { + case 102: + func_800BA808(gMsg_ID_16170, RCID_FALCO); + break; + case 103: + func_800BA808(gMsg_ID_16180, RCID_SLIPPY); + break; + case 104: + func_800BA808(gMsg_ID_16175, RCID_PEPPY); + break; + case 109: + func_800BA808(gMsg_ID_16185, RCID_KATT); + break; + } + } + return; + } + arg0->timer_0C6 = 50; + arg0->unk_070 = 20; + arg0->obj.status = 3; + arg0->unk_170 = 0.0f; + func_8007D2C8(arg0->obj.pos.x, arg0->obj.pos.y, arg0->obj.pos.z, 4.0f); + Audio_PlaySfx(0x2903700B, &arg0->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + arg0->timer_0C2 = 10; + arg0->timer_0BE = 0; + arg0->timer_04C = (Rand_ZeroOne() * 2.9f); + switch ((s32) (Rand_ZeroOne() * 4.0f)) { + case 0: + arg0->timer_0BC = 0; + break; + case 1: + arg0->timer_0BC = 50; + break; + case 2: + arg0->timer_0BC = 200; + break; + case 3: + arg0->timer_0BC = 300; + break; + } + if (gCurrentLevel == LEVEL_VENOM_ANDROSS) { + arg0->timer_0BC = 70; + } + if ((gLevelType == LEVELTYPE_SPACE) && (gCurrentLevel != LEVEL_BOLSE)) { + if (Rand_ZeroOne() < 0.5f) { + arg0->timer_0BC = 10; + } else { + arg0->timer_0BC = (s32) (Rand_ZeroOne() * 50.0f); + } + } + if ((arg0->unk_0E4 >= 4) && (arg0->unk_0E4 < 8)) { + arg0->timer_0BC = (s32) (Rand_ZeroOne() * 40.0f) + 60.0f; + } + if (arg0->unk_0D6 >= 20) { + arg0->timer_0BC = 0; + } + if ((gCurrentLevel == LEVEL_KATINA) && (arg0->unk_0B6 == 1) && (arg0->unk_0D4 == 1)) { + if (D_8015F921 < 2) { + func_8002F5F4(gMsg_ID_18018, RCID_BILL); + } + D_8015F921++; + } + switch (arg0->unk_0E4) { + case 4: + D_80177CD0[0] = 0; + if (gCurrentLevel == LEVEL_VENOM_2) { + func_8002F64C(gMsg_ID_19458, RCID_WOLF); + } else { + func_8002F64C(gMsg_ID_9365, RCID_WOLF); + } + break; + case 5: + D_80177CD0[1] = 0; + if (gCurrentLevel == LEVEL_VENOM_2) { + func_8002F64C(gMsg_ID_19459, RCID_LEON); + } else { + func_8002F64C(gMsg_ID_9366, RCID_LEON); + } + break; + case 6: + D_80177CD0[2] = 0; + if (gCurrentLevel == LEVEL_VENOM_2) { + func_8002F64C(gMsg_ID_19460, RCID_PIGMA); + } else { + func_8002F64C(gMsg_ID_9367, RCID_PIGMA); + } + break; + case 7: + D_80177CD0[3] = 0; + if (gCurrentLevel == LEVEL_VENOM_2) { + func_8002F64C(gMsg_ID_19461, RCID_ANDREW); + } else { + func_8002F64C(gMsg_ID_9368, RCID_ANDREW); + } + break; + } + if ((arg0->unk_0E4 >= 4) && (arg0->unk_0E4 < 8)) { + D_8015F904 = 150; + } + switch (arg0->unk_0D4) { + case 1: + if (arg0->unk_0E4 >= 10) { + switch (arg0->unk_058) { + case 1: + func_8002F5F4(gMsg_ID_20170, RCID_FALCO); + break; + case 2: + func_8002F5F4(gMsg_ID_20150, RCID_SLIPPY); + break; + case 3: + func_8002F5F4(gMsg_ID_20160, RCID_PEPPY); + break; + } + } + break; + case 102: + case 103: + case 104: + if ((arg0->unk_0E4 >= 4) && (arg0->unk_0E4 < 8)) { + if ((D_80177CD0[0] + D_80177CD0[1] + D_80177CD0[2] + D_80177CD0[3]) == 0) { + switch (arg0->unk_0D4) { + case 102: + func_800BA808(gMsg_ID_9438, RCID_FALCO); + break; + case 103: + func_800BA808(gMsg_ID_9436, RCID_SLIPPY); + break; + case 104: + func_800BA808(gMsg_ID_9437, RCID_PEPPY); + break; + } + } else { + D_801515F0[arg0->unk_0D4].unk_00 = 80; + } + } else { + D_801515F0[arg0->unk_0D4].unk_00 = 80; + } + break; + } + } else { + if (var_a1) { + Audio_PlaySfx(0x29001062, &arg0->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + arg0->unk_06C = 3; + arg0->unk_098 = 5; + arg0->unk_070 = 15; + if (Rand_ZeroOne() < 0.5f) { + arg0->unk_134 = 0.0f; + arg0->unk_130 = 360.0f; + } else { + arg0->unk_130 = 0.0f; + arg0->unk_134 = 359.999f; + } + } else { + arg0->timer_0C6 = 20; + arg0->unk_070 = 20; + } + if (arg0->unk_0E4 == 200) { + Audio_PlaySfx(0x29034003, &arg0->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } else if (arg0->unk_06C == 0) { + Audio_PlaySfx(0x2903300E, &arg0->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + func_8007D10C(arg0->obj.pos.x, arg0->obj.pos.y, arg0->obj.pos.z, 1.5f); + if (arg0->unk_0E4 < 100) { + Matrix_RotateY(gCalcMatrix, arg0->unk_0F4.y * M_DTOR, 0); + sp48.x = 30.0f; + if (Rand_ZeroOne() < 0.5f) { + sp48.x = -30.0f; + } + sp48.y = (Rand_ZeroOne() - 0.5f) * 30.0f; + sp48.z = 0.0f; + if (arg0->unk_06C != 0) { + sp48.x *= 1.5f; + sp48.y = 30.0f; + + if ((arg0->obj.pos.y > 100.0f) && (Rand_ZeroOne() < 0.5f)) { + sp48.y = -30.0f; + } + } + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp48, &sp3C); + arg0->unk_148 = sp3C.x; + arg0->unk_14C = sp3C.y; + arg0->unk_144 = sp3C.z; + } + if ((gRadioState == 0) && (gObjects2F4->obj.status == 2)) { + if (arg0->unk_0D0 == 3) { + switch (arg0->unk_0E4) { + case 1: + func_8002F5F4(gMsg_ID_20210, RCID_FALCO); + break; + case 3: + func_8002F5F4(gMsg_ID_20200, RCID_PEPPY); + break; + case 2: + func_8002F5F4(gMsg_ID_20190, RCID_SLIPPY); + break; + case 8: + func_8002F5F4(gMsg_ID_20084, RCID_KATT); + break; + } + } else if (arg0->unk_0D4 < 105) { + if (arg0->unk_0E4 >= 4) { + if (arg0->unk_0D4 == 1) { + if ((gCurrentLevel == LEVEL_KATINA) && (arg0->unk_0B6 == 1) && (D_8015F920 == 0)) { + D_8015F920 = 1; + func_800BA808(gMsg_ID_18015, RCID_BILL); + } else if (arg0->unk_0E4 == 8) { + func_8002F5F4(gMsg_ID_20084, RCID_KATT); + } else if (arg0->unk_0E4 == 9) { + func_8002F5F4(gMsg_ID_20085, RCID_BILL); + } else if (gCurrentLevel == LEVEL_VENOM_2) { + switch (arg0->unk_0E4) { + case 4: + func_8002F5F4(gMsg_ID_19454, RCID_WOLF); + break; + case 5: + func_8002F5F4(gMsg_ID_19455, RCID_LEON); + break; + case 6: + func_8002F5F4(gMsg_ID_19456, RCID_PIGMA); + break; + case 7: + func_8002F5F4(gMsg_ID_19457, RCID_ANDREW); + break; + } + } + } + } else if (arg0->unk_0D4 == 1) { + switch (arg0->unk_0E4) { + case 1: + func_8002F5F4(gMsg_ID_20060, RCID_FALCO); + break; + case 3: + func_8002F5F4(gMsg_ID_20070, RCID_PEPPY); + break; + case 2: + func_8002F5F4(gMsg_ID_20080, RCID_SLIPPY); + break; + } + } + } else if ((arg0->unk_0E4 < 4) && (arg0->unk_068 != 0) && (arg0->unk_058 != 0)) { + switch (arg0->unk_0E4) { + case 1: + if (gTeamShields[1] >= 90) { + func_8002F5F4(gMsg_ID_9130, RCID_FALCO); + } else { + func_800BA808(gMsg_ID_9151, RCID_FALCO); + } + if ((D_800CA234 == NULL) || (gTeamShields[arg0->unk_0E4] <= 50)) { + D_800CA234 = arg0; + D_Timer_800CA238 = 320; + } + break; + case 2: + if (gTeamShields[2] >= 90) { + func_8002F5F4(gMsg_ID_9140, RCID_SLIPPY); + } else { + func_800BA808(gMsg_ID_9152, RCID_SLIPPY); + } + if ((D_800CA234 == NULL) || (gTeamShields[arg0->unk_0E4] <= 50)) { + D_800CA234 = arg0; + D_Timer_800CA238 = 320; + } + break; + case 3: + if (gTeamShields[3] >= 90) { + func_8002F5F4(gMsg_ID_9150, RCID_PEPPY); + } else { + func_800BA808(gMsg_ID_9153, RCID_PEPPY); + } + if ((D_800CA234 == NULL) || (gTeamShields[arg0->unk_0E4] <= 50)) { + D_800CA234 = arg0; + D_Timer_800CA238 = 320; + } + break; + } + } + } + } + arg0->unk_0D0 = 0; + } + } +} + +void func_80031858(Object_2F4* obj2F4) { + if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_3) && (obj2F4->unk_0B0 != 0) && + (fabsf(obj2F4->obj.pos.x - gPlayer->pos.x) < 1000.0f) && + (fabsf(obj2F4->obj.pos.y - gPlayer->pos.y) < 1000.0f) && + (fabsf(obj2F4->obj.pos.z - gPlayer->unk_138) < 1000.0f)) { + obj2F4->unk_078++; + } else { + obj2F4->unk_078 = 0; + } +} + +bool func_80031900(Object_2F4* obj2F4) { + Vec3f sp24; + Vec3f sp18; + + Matrix_RotateY(gCalcMatrix, -obj2F4->obj.rot.y * M_DTOR, 0); + sp24.x = obj2F4->unk_124.x - obj2F4->obj.pos.x; + sp24.y = 0.0f; + sp24.z = obj2F4->unk_124.z - obj2F4->obj.pos.z; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp24, &sp18); + if (sp18.z > 0.0f) { + return true; + } + return false; +} + +void func_800319AC(Object_2F4* this) { + u8 sp10F; + s32 sp108; + s32 sp104; + s32 temp_v0_27; + UnkEntity28* temp_v1; + f32 spF8; + f32 spF4; + f32 spF0; + f32 spEC; + f32 spE8; + f32 spE4; + f32 spE0; + f32 spDC; + f32 spD8; + f32 spD4; + f32 spD0; + f32 spCC; + f32 spC8; + f32 spC4; + f32 spC0; + f32 spBC; + f32 spB8; + f32 spB4; + Vec3f spA8; + Vec3f sp9C; + Vec3f sp90; + Vec3f sp84 = D_800C9B98; + Vec3f sp78 = D_800C9BA4; + s32 pad1; + s32 pad2; + s32 pad3; + + if (this->unk_0E4 == 1000) { + this->timer_0C2 = 10; + this->info.unk_1C = 0.0f; + func_8003010C(this); + return; + } + if ((this->unk_094 != 0) && (this->unk_090 == 0) && (this->unk_0E4 >= 4)) { + switch ((s32) (Rand_ZeroOne() * 3.9f)) { + case 0: + case 1: + if (gCurrentLevel == LEVEL_VENOM_2) { + this->unk_090 = 10; + } + break; + case 2: + this->unk_090 = 8; + break; + case 3: + this->unk_090 = 7; + break; + } + this->unk_094 = 0; + if (this->unk_098 != 0) { + this->unk_098--; + this->unk_090 = 0; + } + } + if ((this->timer_0CA[0] != 0) && (gCurrentLevel != LEVEL_VENOM_2) && (this->unk_0E4 < 10) && + (this->timer_0CA[0] < 5) && !(gFrameCount & 0x1F)) { + this->unk_090 = 10; + } + if ((this->unk_090 != 0) && (this->unk_0B8 < 7)) { + this->unk_0B8 = this->unk_090; + switch (this->unk_0B8) { + case 7: + case 8: + if (this->unk_0F4.x > 180.0f) { + this->unk_0F4.x -= 360.0f; + } + this->unk_046 = 0; + break; + case 9: + this->timer_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 30; + if (Rand_ZeroOne() < 0.5f) { + this->unk_160 = this->obj.rot.y + 50.0f; + } else { + this->unk_160 = this->obj.rot.y - 50.0f; + } + if (this->unk_160 >= 360.0f) { + this->unk_160 -= 360.0f; + } + if (this->unk_160 < 0.0f) { + this->unk_160 += 360.0f; + } + break; + case 10: + this->timer_0BC = 0x23; + if (Rand_ZeroOne() < 0.5f) { + this->unk_130 = 360.0f; + this->unk_134 = 0.0f; + this->unk_08C = 1; + } else { + this->unk_130 = 0.0f; + this->unk_134 = 359.999f; + this->unk_08C = -1; + } + this->unk_09C = 1; + break; + } + } + this->unk_090 = 0; + spCC = spC8 = spC4 = 0.0f; + if (this->unk_06C != 0) { + this->unk_06C--; + this->unk_16C = 1.0f; + } + if (this->unk_05C != 0) { + this->unk_05C--; + } + Math_SmoothStepToF(&this->unk_13C, 0.0f, 0.1f, 0.2f, 0.00001f); + Math_SmoothStepToF(&this->unk_138, this->unk_13C, 0.1f, 2.0f, 0.00001f); + if (this->unk_13C > 0.1f) { + this->unk_07C = 2; + } else { + this->unk_07C = 1; + } + if (this->unk_0E4 < 10) { + func_80031858(this); + if (this->unk_078 == 200) { + switch (this->unk_0E4) { + case 4: + case 5: + case 6: + case 7: + case 8: + break; + case 1: + if (gPlayer->shields < (Play_GetMaxShields() / 2)) { + func_800BA808(gMsg_ID_20298, RCID_FALCO); + } else if (Rand_ZeroOne() < 0.5f) { + func_800BA808(gMsg_ID_20280, RCID_FALCO); + } else { + func_800BA808(gMsg_ID_20301, RCID_FALCO); + } + break; + case 2: + if (gPlayer->shields < (Play_GetMaxShields() / 2)) { + func_800BA808(gMsg_ID_20297, RCID_SLIPPY); + } else if (Rand_ZeroOne() < 0.5f) { + func_800BA808(gMsg_ID_20282, RCID_SLIPPY); + } else { + func_800BA808(gMsg_ID_20300, RCID_SLIPPY); + } + break; + case 3: + if (gPlayer->shields < (Play_GetMaxShields() / 2)) { + func_800BA808(gMsg_ID_20296, RCID_PEPPY); + } else if (Rand_ZeroOne() < 0.5f) { + func_800BA808(gMsg_ID_20281, RCID_PEPPY); + } else { + func_800BA808(gMsg_ID_20299, RCID_PEPPY); + } + break; + case 9: + func_800BA808(gMsg_ID_18120, RCID_BILL); + break; + } + } + } + sp104 = 0; + this->unk_064 = 0; + if ((this->unk_0E4 > 0) && (this->unk_0E4 < 4) && (gTeamShields[this->unk_0E4] <= 0) && (this->unk_0B8 != 6)) { + this->unk_0B8 = 6; + if (this->timer_0C2 < 100) { + gTeamShields[this->unk_0E4] = 1; + switch (this->unk_0E4) { + case 1: + func_800BA808(gMsg_ID_20220, RCID_FALCO); + break; + case 2: + func_800BA808(gMsg_ID_20222, RCID_SLIPPY); + break; + case 3: + func_800BA808(gMsg_ID_20221, RCID_PEPPY); + break; + } + this->unk_188 = 5.0f; + this->unk_130 = 360.0f; + this->unk_134 = 0.0f; + Audio_PlaySfx(0x09000002, &this->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + this->unk_046 = 0; + } + gTeamShields[this->unk_0E4] = -1; + gTeamDamage[this->unk_0E4] = 0; + this->unk_054 = 0; + this->timer_0C2 = 10000; + } + switch (this->unk_0B8) { + case 6: + this->timer_0C2 = 10000; + this->unk_07C = 2; + this->unk_118 = 45.0f; + this->unk_120 = 2.0f; + gTeamShields[this->unk_0E4] = -1; + gTeamDamage[this->unk_0E4] = 0; + if (gCurrentLevel == LEVEL_SECTOR_Z) { + this->unk_124.x = D_800C9B50[this->unk_046].x; + this->unk_124.y = D_800C9B50[this->unk_046].y; + this->unk_124.z = D_800C9B50[this->unk_046].z; + if ((fabsf(this->obj.pos.x - D_800C9B50[this->unk_046].x) < 800.0f) && + (fabsf(this->obj.pos.z - D_800C9B50[this->unk_046].z) < 800.0f)) { + this->unk_046++; + if (this->unk_046 >= 4) { + Object_Kill(&this->obj, &this->sfxPos); + } + } + } else { + this->unk_124.y = 20000.0f; + if (this->obj.pos.y > 3000.0f) { + Object_Kill(&this->obj, &this->sfxPos); + } + } + sp104 = 2; + break; + case 5: + func_E51970_80199C60(this); + sp104 = 1; + break; + case 0: + if (gPlayer->state_1C8 != PLAYERSTATE_1C8_9) { + this->unk_114 = this->unk_118 = 40.0f; + if (gObjects2F4->unk_0B8 == 5) { + Math_SmoothStepToF(&this->unk_0F4.x, 30.0f, 0.1f, 0.5f, 0.0f); + this->unk_118 = 200.0f; + } + if (this->timer_0BC == 0) { + if (this->unk_0E4 == 4) { + this->unk_0B8 = 3; + if (gCurrentLevel == LEVEL_VENOM_2) { + this->unk_04E = 200; + } else { + this->unk_04E = 200; + } + } else { + this->unk_0B8 = 2; + if (this->unk_0E4 == 8) { + this->unk_130 = 360.0f; + this->unk_134 = 0.0f; + } + } + } + Math_SmoothStepToAngle(&this->obj.rot.z, 0.0f, 0.03f, 0.5f, 0.0f); + } + break; + case 1: + this->unk_118 = 40.0f; + if ((this->timer_0BC < 35) && (gCurrentLevel == LEVEL_FORTUNA)) { + Math_SmoothStepToF(&this->unk_0F4.x, 15.0f, 0.1f, 1.0f, 0.0f); + } + if (this->timer_0BC == 0) { + this->unk_0B8 = 3; + if ((gCurrentLevel == LEVEL_BOLSE) && (this->unk_0E6 >= 0)) { + this->unk_0B8 = 2; + } + } + break; + case 2: + sp104 = 1; + spF8 = 800.0f; + spF4 = 1500.0f; + spF0 = 0.4f; + spEC = fabsf(this->unk_124.x - this->obj.pos.x); + spE8 = fabsf(this->unk_124.z - this->obj.pos.z); + sp10F = 0xB; + if (this->unk_0E4 == 1) { + spF0 = 0.5f; + } else if ((this->unk_0B6 != 2) && (this->unk_0B6 == 3)) { + spF0 = 0.5f; + } + if (this->unk_0E6 == 0) { + spF0 = 0.2f; + } + if (this->unk_0E6 < 0) { + this->unk_0B8 = 3; + } else { + if (gObjects2F4[this->unk_0E6].unk_0E4 == 200) { + spF0 = 0.8f; + spF4 = spF8 = 3000.0f; + this->unk_120 = 2.0f; + } + if (this->unk_0E6 == 0) { + if (gCurrentLevel != LEVEL_VENOM_2) { + if (((gPlayer->unk_4DC != 0) && (this->unk_060 > 10)) || + ((gCurrentLevel == LEVEL_BOLSE) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_0))) { + this->unk_0B8 = 3; + this->unk_04E = 300; + this->timer_0BC = 160; + if (this->unk_0E4 == 4) { + func_8002F5F4(gMsg_ID_9369, RCID_WOLF); + } + break; + } else if ((this->unk_060 > 200) && (gPlayer->timer_224 != 0)) { + this->unk_060 = 100; + break; + } + } + if ((this->unk_0E4 >= 4) && (this->unk_0E4 != 8) && + ((gCurrentLevel != LEVEL_VENOM_2) || (this->unk_0E4 != 4))) { + spCC = __sinf(((this->index * 45) + gFrameCount) * 0.017453292f) * 100.0f; + spC8 = __cosf(((this->index * 45) + (gFrameCount * 2)) * 0.017453292f) * 100.0f; + spC4 = __sinf(((this->index * 45) + gFrameCount) * 0.017453292f) * 100.0f; + } + if (gPlayer->unk_4DC == 0) { + this->unk_124.x = gPlayer->pos.x + spCC; + this->unk_124.y = gPlayer->pos.y + spC8; + this->unk_124.z = gPlayer->unk_138 + spC4; + this->unk_118 = gPlayer->unk_0D0 + 10.0f; + } + if ((gObjects2F4->unk_0B8 == 6) && (this->unk_0E4 < 4)) { + this->unk_120 = 3.0f; + this->unk_118 = gPlayer->unk_0D0 - 5.0f; + this->unk_07C = 2; + } else if ((gCurrentLevel == LEVEL_VENOM_2) && (this->unk_0E4 >= 4)) { + this->unk_120 = 1.6f; + this->unk_118 = 55.0f; + } else { + this->unk_120 = 1.2f; + } + spF4 = 2000.0f; + spF8 = 700.0f; + if (gCurrentLevel == LEVEL_VENOM_2) { + spF0 = 0.5f; + sp10F = 3; + } else { + spF0 = 0.7f; + } + } else if (this->unk_0E6 != 100) { + if (this->unk_0E4 >= 10) { + spCC = __sinf(((this->index * 45) + gFrameCount) * 0.017453292f) * 200.0f; + spC8 = __cosf(((this->index * 45) + (gFrameCount * 2)) * 0.017453292f) * 200.0f; + spC4 = __sinf(((this->index * 45) + gFrameCount) * 0.017453292f) * 200.0f; + } + this->unk_124.x = gObjects2F4[this->unk_0E6].obj.pos.x + spCC; + this->unk_124.y = gObjects2F4[this->unk_0E6].obj.pos.y + spC8; + this->unk_124.z = gObjects2F4[this->unk_0E6].obj.pos.z + spC4; + if ((gCurrentLevel == LEVEL_VENOM_2) && (this->unk_0E4 >= 4)) { + this->unk_118 = 55.0f; + this->unk_120 = 1.6f; + } else if ((gCurrentLevel == LEVEL_FORTUNA) && (this->unk_0E4 >= 0xB)) { + this->unk_120 = 1.4f; + this->unk_118 = 50.0f; + } else { + this->unk_118 = gObjects2F4[this->unk_0E6].unk_114 + 10.0f; + if (this->unk_118 < 30.0f) { + this->unk_118 = 30.0f; + } + this->unk_120 = 1.4f; + } + } else { + this->unk_124.x = gObjects408->obj.pos.x; + this->unk_124.y = gObjects408->obj.pos.y + 400.0f; + this->unk_124.z = gObjects408->obj.pos.z; + this->unk_118 = 40.0f; + } + if ((this->unk_0E6 >= 0) && (this->unk_0E6 != 100) && (gObjects2F4->unk_0B8 != 6)) { + if (spE8 < spF8) { + if (spEC < spF8) { + if (this->unk_0E6 != 0) { + this->unk_118 = gObjects2F4[this->unk_0E6].unk_114 - 5.0f; + } else { + this->unk_118 = gPlayer->unk_0D0 - 5.0f; + if ((gCurrentLevel == LEVEL_VENOM_2) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_5) && + (gPlayer->unk_4D8 > 100.0f)) { + this->unk_090 = 8; + } + } + } + } else if (this->timer_0C0 == 0) { + this->timer_0C0 = (s32) (Rand_ZeroOne() * 200.0f) + 200; + this->unk_13C = 20.0f; + } + if ((spE8 < spF4) && (spEC < spF4)) { + this->unk_060++; + this->unk_064 = 1; + if (!((this->index + gFrameCount) & sp10F) && (Rand_ZeroOne() < spF0) && + (func_80031900(this) != 0) && + ((gObjects2F4->unk_0B8 == 2) || (gCurrentLevel == LEVEL_TRAINING))) { + if ((this->unk_0E6 == 0) && (gCurrentLevel != LEVEL_TRAINING)) { + if ((this->unk_060 > 250) && (gCurrentLevel != LEVEL_VENOM_ANDROSS)) { + if ((Rand_ZeroOne() < 0.5f) || (gCurrentLevel == LEVEL_VENOM_2)) { + this->unk_060 = 0; + switch (this->unk_0E4) { + case 4: + func_8002E4F8(gMsg_ID_19450, RCID_WOLF); + break; + case 5: + func_8002E4F8(gMsg_ID_19451, RCID_LEON); + break; + case 6: + func_8002E4F8(gMsg_ID_19452, RCID_PIGMA); + break; + case 7: + func_8002E4F8(gMsg_ID_19453, RCID_ANDREW); + break; + } + } else { + func_8002E4F8(gMsg_ID_2233, RCID_FALCO); + } + } + this->unk_050 = 1; + } else { + this->unk_050 = 1; + } + } + if ((gRadioState == 0) && (this->timer_0C4 == 0) && (D_8015F928 > 700) && (D_8015F908 == 0) && + (gObjects2F4->obj.status == 2)) { + this->timer_0C4 = 600; + if (Rand_ZeroOne() < 0.5f) { + gObjects2F4[this->unk_0E6].unk_068++; + switch (this->unk_0E6) { + case 1: + if ((gCurrentLevel == LEVEL_VENOM_2) && (Rand_ZeroOne() < 0.5f)) { + func_8002F5F4(gMsg_ID_19462, RCID_FALCO); + } else if ((gObjects2F4[this->unk_0E6].unk_068 >= 3) && + (Rand_ZeroOne() < 0.5f)) { + func_8002F5F4(gMsg_ID_20310, RCID_FALCO); + } else { + func_8002F5F4(gMsg_ID_9100, RCID_FALCO); + } + gObjects2F4[this->unk_0E6].unk_058 = this->unk_0E4; + if ((D_800CA234 == NULL) || (gTeamShields[this->unk_0E6] <= 50)) { + D_800CA234 = &gObjects2F4[this->unk_0E6]; + D_Timer_800CA238 = 320; + } + break; + case 2: + if ((gCurrentLevel == LEVEL_VENOM_2) && (Rand_ZeroOne() < 0.5f)) { + func_8002F5F4(gMsg_ID_19463, RCID_SLIPPY); + } else if ((gObjects2F4[this->unk_0E6].unk_068 >= 3) && + (Rand_ZeroOne() < 0.5f)) { + func_8002F5F4(gMsg_ID_20311, RCID_SLIPPY); + } else { + func_8002F5F4(gMsg_ID_9110, RCID_SLIPPY); + } + gObjects2F4[this->unk_0E6].unk_058 = this->unk_0E4; + if ((D_800CA234 == NULL) || (gTeamShields[this->unk_0E6] <= 50)) { + D_800CA234 = &gObjects2F4[this->unk_0E6]; + D_Timer_800CA238 = 320; + } + break; + case 3: + if ((gCurrentLevel == LEVEL_VENOM_2) && (Rand_ZeroOne() < 0.5f)) { + func_8002F5F4(gMsg_ID_19464, 0x1E); + } else if ((gObjects2F4[this->unk_0E6].unk_068 >= 3) && + (Rand_ZeroOne() < 0.5f)) { + func_8002F5F4(gMsg_ID_20312, 0x1E); + } else { + func_8002F5F4(gMsg_ID_9120, 0x1E); + } + gObjects2F4[this->unk_0E6].unk_058 = this->unk_0E4; + if ((D_800CA234 == NULL) || (gTeamShields[this->unk_0E6] <= 50)) { + D_800CA234 = &gObjects2F4[this->unk_0E6]; + D_Timer_800CA238 = 320; + } + break; + case 4: + if (D_80177CD0[0] != 0) { + func_8002F5F4(gMsg_ID_9330, RCID_WOLF); + } + break; + case 5: + if (D_80177CD0[1] != 0) { + func_8002F5F4(gMsg_ID_9340, RCID_LEON); + } + break; + case 6: + if (D_80177CD0[2] != 0) { + func_8002F5F4(gMsg_ID_9350, RCID_PIGMA); + } + break; + case 7: + if (D_80177CD0[3] != 0) { + func_8002F5F4(gMsg_ID_9360, RCID_ANDREW); + } + break; + } + } else { + switch (this->unk_0E4) { + case 1: + if ((gCurrentLevel == LEVEL_FORTUNA) && (Rand_ZeroOne() < 0.5f)) { + func_8002F5F4(gMsg_ID_9211, RCID_FALCO); + } else { + func_8002F5F4(gMsg_ID_9190, RCID_FALCO); + } + gObjects2F4[this->unk_0E6].unk_058 = 1; + break; + case 2: + if ((gCurrentLevel == LEVEL_FORTUNA) && (Rand_ZeroOne() < 0.5f)) { + func_8002F5F4(gMsg_ID_9212, RCID_SLIPPY); + } else { + func_8002F5F4(gMsg_ID_9200, RCID_SLIPPY); + } + gObjects2F4[this->unk_0E6].unk_058 = 2; + break; + case 3: + if ((gCurrentLevel == LEVEL_FORTUNA) && (Rand_ZeroOne() < 0.5f)) { + func_8002F5F4(gMsg_ID_9213, RCID_PEPPY); + } else { + func_8002F5F4(gMsg_ID_9210, RCID_PEPPY); + } + gObjects2F4[this->unk_0E6].unk_058 = 3; + break; + case 4: + if (gCurrentLevel != LEVEL_VENOM_2) { + if (this->unk_068 == 0) { + this->unk_068 = 1; + func_8002F5F4(gMsg_ID_9289, RCID_WOLF); + } else if (this->unk_060 > 150) { + if (Rand_ZeroOne() < 0.5f) { + this->unk_060 = 0; + func_8002F5F4(gMsg_ID_9290, RCID_WOLF); + } else { + func_8002F5F4(gMsg_ID_2233, RCID_FALCO); + } + } else { + func_8002F5F4(gMsg_ID_9322, RCID_WOLF); + } + } + break; + case 5: + if (gCurrentLevel == LEVEL_VENOM_2) { + if ((Rand_ZeroOne() < 0.5f) && (this->unk_0E6 == 1)) { + func_8002F5F4(gMsg_ID_9323, RCID_LEON); + } else { + func_8002F5F4(gMsg_ID_19451, RCID_LEON); + } + } else if ((Rand_ZeroOne() < 0.5f) && (this->unk_0E6 == 1)) { + func_8002F5F4(gMsg_ID_9323, RCID_LEON); + } else { + func_8002F5F4(gMsg_ID_9300, RCID_LEON); + } + break; + case 6: + if (gCurrentLevel == LEVEL_VENOM_2) { + if ((Rand_ZeroOne() < 0.5f) && (this->unk_0E6 == 3)) { + func_8002F5F4(gMsg_ID_9324, RCID_PIGMA); + } else { + func_8002F5F4(gMsg_ID_19452, RCID_PIGMA); + } + } else if ((Rand_ZeroOne() < 0.5f) && (this->unk_0E6 == 3)) { + func_8002F5F4(gMsg_ID_9324, RCID_PIGMA); + } else { + func_8002F5F4(gMsg_ID_9310, RCID_PIGMA); + } + break; + case 7: + if (gCurrentLevel == LEVEL_VENOM_2) { + if ((Rand_ZeroOne() < 0.5f) && (this->unk_0E6 == 2)) { + func_8002F5F4(gMsg_ID_9325, RCID_ANDREW); + } else { + func_8002F5F4(gMsg_ID_19453, RCID_ANDREW); + } + } else if ((Rand_ZeroOne() < 0.5f) && (this->unk_0E6 == 2)) { + func_8002F5F4(gMsg_ID_9325, RCID_ANDREW); + } else { + func_8002F5F4(gMsg_ID_9320, RCID_ANDREW); + } + break; + } + } + } + } else { + this->unk_060 = 0; + } + if ((this->unk_0E6 > 0) && + ((gObjects2F4[this->unk_0E6].obj.status == 3) || (gObjects2F4[this->unk_0E6].unk_0B8 == 6) || + (gObjects2F4[this->unk_0E6].obj.status == 0))) { + this->unk_0B8 = 3; + if (gCurrentLevel == LEVEL_BOLSE) { + func_8002FB4C(this); + } + } + } + } + break; + case 3: + sp104 = 1; + if (this->timer_0BC == 0) { + if ((this->unk_0E4 < 10) || (gCurrentLevel == LEVEL_BOLSE)) { + if (gCurrentLevel == LEVEL_VENOM_2) { + if (this->unk_0E4 >= 4) { + this->unk_120 = 1.6f; + this->unk_118 = 55.0f; + } else { + this->unk_120 = 1.4f; + this->unk_118 = 50.0f; + } + } else { + this->unk_120 = 1.2f; + this->unk_118 = 40.0f; + } + } else { + this->unk_120 = 1.0f; + this->unk_118 = 38.0f; + } + if ((gCurrentLevel == LEVEL_SECTOR_Z) && (gObjects2F4->unk_0B8 == 0xA)) { + this->unk_13C = 30.0f; + } + if ((gLevelType == LEVELTYPE_SPACE) && (gCurrentLevel != LEVEL_BOLSE)) { + if ((gCurrentLevel == LEVEL_SECTOR_Z) && (this->unk_0E4 == 8)) { + Rand_ZeroOne(); + spE4 = 0.0f; + spE0 = (Rand_ZeroOne() - 0.5f) * 500.0f; + spDC = ((Rand_ZeroOne() - 0.5f) * 5000.0f) + 12000.0f; + } else { + spE4 = (Rand_ZeroOne() - 0.5f) * 15000.0f; + spE0 = (Rand_ZeroOne() - 0.5f) * 1000.0f; + spDC = (Rand_ZeroOne() - 0.5f) * 15000.0f; + } + } else { + spE4 = (Rand_ZeroOne() - 0.5f) * 10000.0f; + if ((gCurrentLevel == LEVEL_BOLSE) || (gCurrentLevel == LEVEL_KATINA) || + (gCurrentLevel == LEVEL_VENOM_2)) { + spE0 = Rand_ZeroOne() * 1000.0f; + } else { + spE0 = 0.0f; + } + spDC = (Rand_ZeroOne() - 0.5f) * 10000.0f; + if ((gCurrentLevel == LEVEL_KATINA) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_0)) { + spE4 = (Rand_ZeroOne() - 0.5f) * 5000.0f; + spDC = (Rand_ZeroOne() - 0.5f) * 5000.0f; + } + } + if ((fabsf(this->obj.pos.x - spE4) > 2000.0f) || (fabsf(this->obj.pos.z - spDC) > 2000.0f)) { + this->unk_124.x = spE4; + this->unk_124.y = spE0; + this->unk_124.z = spDC; + this->timer_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 10; + } + } + if (this->timer_0C0 == 0) { + this->timer_0C0 = (s32) (Rand_ZeroOne() * 200.0f) + 200; + this->unk_13C = 30.0f; + } + if ((this->unk_0E6 > 0) && (gObjects2F4[this->unk_0E6].obj.id == 0xC5) && + (gObjects2F4[this->unk_0E6].timer_0C2 == 0) && (gObjects2F4[this->unk_0E6].obj.status == 2)) { + this->unk_0B8 = 2; + this->unk_058 = 0; + } + if (this->unk_0E6 == 0) { + if (this->unk_04E != 0) { + this->unk_04E--; + } + if (this->unk_04E == 0) { + this->unk_0B8 = 2; + this->unk_058 = 0; + } + } + break; + case 7: + this->unk_118 = 40.0f; + Math_SmoothStepToF(&this->unk_0F4.x, 360.0f, 0.1f, 5.0f, 0.0001f); + Math_SmoothStepToAngle(&this->obj.rot.z, 0.0f, 0.1f, 3.0f, 0.01f); + if (this->unk_0F4.x > 350.0f) { + this->unk_0B8 = 3; + } + break; + case 8: + this->unk_118 = 40.0f; + if (this->index & 1) { + Math_SmoothStepToAngle(&this->obj.rot.z, 355.0f, 0.1f, 3.0f, 0.01f); + } else { + Math_SmoothStepToAngle(&this->obj.rot.z, 5.0f, 0.1f, 3.0f, 0.01f); + } + switch (this->unk_046) { + case 0: + Math_SmoothStepToF(&this->unk_0F4.x, 200.0f, 0.1f, 6.0f, 0.0001f); + if (this->unk_0F4.x > 190.0f) { + this->unk_0F4.y += 190.0f; + if (this->unk_0F4.y >= 360.0f) { + this->unk_0F4.y -= 360.0f; + } + this->unk_0F4.x = 360.0f - (this->unk_0F4.x - 180.0f); + this->obj.rot.z += 180.0f; + if (this->obj.rot.z >= 360.0f) { + this->obj.rot.z -= 360.0f; + } + this->timer_0BC = 0x28; + this->unk_046 += 1; + } + this->obj.pos.y -= 3.0f; + break; + case 1: + if (this->timer_0BC == 0) { + this->unk_0B8 = 3; + } + break; + } + break; + case 9: + this->unk_118 = 40.0f; + if (Math_SmoothStepToAngle(&this->unk_0F4.y, this->unk_160, 0.5f, 5.0f, 0.0f) < 0.0f) { + spD0 = 70.0f; + } else { + spD0 = 290.0f; + } + Math_SmoothStepToAngle(&this->obj.rot.z, spD0, 0.1f, 15.0f, 0.01f); + if (this->timer_0BC == 0) { + this->unk_0B8 = 3; + } + break; + case 10: + sp104 = 1; + if (this->timer_0BC == 0) { + this->unk_0B8 = 3; + } + if (this->timer_0BC > 20) { + Math_SmoothStepToF(&this->unk_170, 180.0f, 1.0f, 60.0f, 0.0f); + } + break; + } + if (sp104 != 0) { + s32 var_v0 = 3; + + spE4 = this->unk_124.x - this->obj.pos.x; + spE0 = this->unk_124.y - this->obj.pos.y; + spDC = this->unk_124.z - this->obj.pos.z; + + if (gCurrentLevel == LEVEL_VENOM_2) { + var_v0 = 1; + } + if (!((this->index + gFrameCount) & var_v0)) { + this->unk_160 = Math_RadToDeg(Math_Atan2F(spE4, spDC)); + this->unk_164 = Math_RadToDeg(Math_Atan2F(spE0, sqrtf(SQ(spE4) + SQ(spDC)))); + } + spD8 = this->unk_164; + spD4 = this->unk_160; + sp108 = 0; + if (sp104 == 1) { + if (this->unk_0E4 < 100) { + sp108 = func_8003049C(this); + if ((sp108 != 0) && (this->unk_0E4 < 10) && (this->timer_0BE == 0) && + ((this->unk_130 < 0.01f) || (this->unk_130 > 359.9f))) { + this->timer_0BE = (s32) (Rand_ZeroOne() * 200.0f) + 200; + if (Rand_ZeroOne() < 0.5f) { + this->unk_134 = 0.0f; + this->unk_130 = 360.0f; + } else { + this->unk_130 = 0.0f; + this->unk_134 = 359.999f; + } + } + } + if (sp108 != 0) { + if ((this->unk_0E4 < 10) || (gCurrentLevel != LEVEL_FORTUNA)) { + spD8 += 40.0f * sp108; + } else { + spD8 += 20.0f * sp108; + } + if (spD8 >= 360.0f) { + spD8 -= 360.0f; + } + if (spD8 < 0.0f) { + spD8 += 360.0f; + } + } else if ((this->obj.pos.y < (D_80177940 + 50.0f)) && (spD8 > 180.0f)) { + spD8 = 0.0f; + this->unk_0F4.x = 0.0f; + } + } + Math_SmoothStepToAngle(&this->unk_0F4.x, spD8, 0.5f, this->unk_11C, 0.0001f); + spD0 = Math_SmoothStepToAngle(&this->unk_0F4.y, spD4, 0.5f, this->unk_11C, 0.0001f) * 30.0f; + if (spD0 < 0.0f) { + spD0 = spD0 * -1.0f; + } else { + spD0 = 360.0f - spD0; + } + if ((this->unk_130 > 0.01f) && (this->unk_130 < 359.9f)) { + if (!((gFrameCount + 0xF) & 0x1F) && (gCurrentLevel != LEVEL_VENOM_2)) { + this->timer_0CA[0] = 0; + } + } else { + Math_SmoothStepToAngle(&this->obj.rot.z, spD0, 0.1f, 3.0f, 0.01f); + this->unk_09C = 0; + } + } + if (this->unk_09C != 0) { + Math_SmoothStepToF(&this->unk_130, this->unk_134, 1.0f, 60.0f, 0.01f); + } else { + Math_SmoothStepToF(&this->unk_130, this->unk_134, 0.2f, 30.0f, 0.01f); + } + if ((this->unk_130 > 0.01f) && (this->unk_130 < 359.9f)) { + Math_SmoothStepToAngle(&this->obj.rot.z, this->unk_130, 0.2f, 100.0f, 0.01f); + if ((this->unk_0E4 == 8) && !(gFrameCount & 1)) { + if ((this->unk_130 > 10.0f) && (this->unk_130 < 350.0f)) { + Matrix_RotateY(gCalcMatrix, this->obj.rot.y * 0.017453292f, 0); + Matrix_RotateX(gCalcMatrix, this->obj.rot.x * 0.017453292f, 1); + Matrix_RotateZ(gCalcMatrix, this->obj.rot.z * 0.017453292f, 1); + spA8.x = 0.0f; + spA8.y = 70.0f; + + spA8.z = -70.0f; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA8, &sp9C); + func_80078E50(this->obj.pos.x + sp9C.x, this->obj.pos.y + sp9C.y, this->obj.pos.z + sp9C.z, 3.1f); + } + } + } + this->obj.rot.x = -this->unk_0F4.x; + this->obj.rot.y = this->unk_0F4.y; + Math_SmoothStepToF(&this->unk_114, this->unk_118, 0.2f, 1.0f, 0.1f); + Math_SmoothStepToF(&this->unk_11C, this->unk_120, 1.0f, 0.1f, 0.1f); + spC0 = __sinf(this->obj.rot.x * 0.017453292f); + spB8 = __cosf(this->obj.rot.x * 0.017453292f); + spBC = __sinf(this->obj.rot.y * 0.017453292f); + spB4 = __cosf(this->obj.rot.y * 0.017453292f); + + sp9C.z = (this->unk_138 + this->unk_114) * spB8; + sp9C.y = (this->unk_138 + this->unk_114) * -spC0; + sp9C.x = spBC * sp9C.z; + sp9C.z = spB4 * sp9C.z; + + this->unk_0E8.x = this->unk_148 + sp9C.x; + this->unk_0E8.y = this->unk_14C + sp9C.y; + this->unk_0E8.z = this->unk_144 + sp9C.z; + this->unk_148 -= (this->unk_148 * 0.1f); + this->unk_14C -= (this->unk_14C * 0.1f); + this->unk_144 -= (this->unk_144 * 0.1f); + if ((this->obj.pos.y < D_80177940 + 40.0f) && (this->unk_0E8.y < 0.0f)) { + this->obj.pos.y = D_80177940 + 40.0f; + this->unk_0E8.y = 0.0f; + } + if (this->unk_050 != 0) { + this->unk_050 = 0; + + sp90.z = spB8 * 200.0f * 0.5f; + sp90.y = -spC0 * 200.0f * 0.5f; + sp90.x = spBC * sp90.z; + sp90.z = spB4 * sp90.z; + + if ((gCurrentLevel == LEVEL_VENOM_2) && (this->unk_0E4 >= 4)) { + Matrix_RotateY(gCalcMatrix, this->obj.rot.y * 0.017453292f, 0); + Matrix_RotateX(gCalcMatrix, this->obj.rot.x * 0.017453292f, 1); + Matrix_RotateZ(gCalcMatrix, this->obj.rot.z * 0.017453292f, 1); + spA8.y = 0.0f; + spA8.z = 0.0f; + if (Rand_ZeroOne() < 0.8f) { + spA8.x = 60.0f; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA8, &sp9C); + func_8006EEFC(this->unk_0E4, this->obj.pos.x + sp9C.x + (sp90.x * 1.5f), + this->obj.pos.y + sp9C.y + (sp90.y * 1.5f), this->obj.pos.z + sp9C.z + (sp90.z * 1.5f), + sp90.x, sp90.y, sp90.z, this->obj.rot.x, this->obj.rot.y, this->obj.rot.z); + } + if (Rand_ZeroOne() < 0.8f) { + spA8.x = -60.0f; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA8, &sp9C); + func_8006EEFC(this->unk_0E4, this->obj.pos.x + sp9C.x + (sp90.x * 1.5f), + this->obj.pos.y + sp9C.y + (sp90.y * 1.5f), this->obj.pos.z + sp9C.z + (sp90.z * 1.5f), + sp90.x, sp90.y, sp90.z, this->obj.rot.x, this->obj.rot.y, this->obj.rot.z); + } + } else { + func_8006EEFC(this->unk_0E4, this->obj.pos.x + (sp90.x * 1.5f), this->obj.pos.y + (sp90.y * 1.5f), + this->obj.pos.z + (sp90.z * 1.5f), sp90.x, sp90.y, sp90.z, this->obj.rot.x, this->obj.rot.y, + this->obj.rot.z); + } + } + func_8003088C(this); + temp_v1 = &gUnkEntities28[this->index]; + temp_v1->unk_00 = 1; + if (this->unk_0E4 == 200) { + temp_v1->unk_02 = 100; + } else { + temp_v1->unk_02 = this->unk_0E4; + } + if (gCurrentLevel == LEVEL_TRAINING) { + temp_v1->unk_02 = 4; + } + temp_v1->pos.x = this->obj.pos.x; + temp_v1->pos.y = this->obj.pos.y; + temp_v1->pos.z = this->obj.pos.z; + temp_v1->unk_10 = this->unk_0F4.y + 180.0f; + if (this->unk_054 != 0) { + this->unk_054--; + if ((this->unk_054 == 0) && (gObjects2F4->unk_0B8 == 2) && (gRadioState == 0)) { + switch (this->unk_0E4) { + case 1: + func_8002F5F4(gMsg_ID_9220, RCID_FALCO); + break; + case 2: + func_8002F5F4(gMsg_ID_9230, RCID_SLIPPY); + break; + case 3: + if ((Rand_ZeroOne() < 0.1f) && (gCurrentLevel == LEVEL_KATINA)) { + func_8002F5F4(gMsg_ID_18150, RCID_PEPPY); + } else { + func_8002F5F4(gMsg_ID_9240, RCID_PEPPY); + } + break; + } + } + } + if ((gCurrentLevel != LEVEL_KATINA) && (gCurrentLevel != LEVEL_VENOM_ANDROSS) && (this->timer_0C2 == 0)) { + if (((this->unk_0E4 >= 10) && (this->unk_0E4 < 100)) || + ((this->unk_0E4 >= 4) && (this->unk_0E4 < 10) && (this->timer_0C6 != 0))) { + s32 var_a3 = 0; + + if (((gCurrentLevel == LEVEL_BOLSE) || (gCurrentLevel == LEVEL_SECTOR_Z)) && (this->timer_0C6 == 0)) { + var_a3 = 3; + } + sp90.x = this->unk_0E8.x; + sp90.y = this->unk_0E8.y; + sp90.z = this->unk_0E8.z; + temp_v0_27 = func_8006351C(this->index, &this->obj.pos, &sp90, var_a3); + if (temp_v0_27 != 0) { + this->obj.pos.x -= this->unk_0E8.x; + this->obj.pos.y -= this->unk_0E8.y; + this->obj.pos.z -= this->unk_0E8.z; + if ((temp_v0_27 >= 2) && (this->unk_0E4 >= 0xB)) { + this->timer_0BE = 2; + this->obj.status = 3; + this->unk_044 = 0; + func_8007BFFC(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 0.0f, 0.0f, 0.0f, 5.0f, 0xF); + func_8007A6F0(&this->obj.pos, 0x2903A008); + } else { + this->unk_0D0 = 1; + this->unk_0D6 = 10; + this->unk_0CE = 0; + func_8003088C(this); + } + } + } + } + if (gCurrentLevel == LEVEL_FORTUNA) { + func_8002EE64(this); + } else if (gCurrentLevel == LEVEL_VENOM_ANDROSS) { + this->unk_04A++; + if (this->unk_04A >= Animation_GetFrameCount(&D_600C200)) { + this->unk_04A = 0; + } + } + Math_SmoothStepToF(&this->unk_16C, 0.0f, 0.8f, 0.05f, 1e-7f); + Math_SmoothStepToF(&this->unk_170, 0.0f, 1.0f, 30.0f, 0.01f); + if (this->unk_070 != 0) { + this->unk_070--; + } +} + +void func_80034E64(Object_2F4* obj2F4) { + f32 sp24; + s32 sp20; + + if (obj2F4->unk_16C > 0) { + Matrix_Push(&gGfxMatrix); + sp24 = 3.5f; + sp20 = (s32) (obj2F4->unk_16C * 60.0f); + if (gCurrentLevel == LEVEL_VENOM_2) { + sp24 *= 1.5f; + } + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -30.0f, 1); + Matrix_Scale(gGfxMatrix, sp24, sp24 * 0.5f, sp24, 1); + Matrix_RotateY(gGfxMatrix, gFrameCount * 3.0f * M_DTOR, 1); + Matrix_SetGfxMtx(&gMasterDisp); + RCP_SetupDL(&gMasterDisp, 0x29); + if (gCurrentLevel == LEVEL_KATINA) { + GPC(128, 255, 255, sp20); + } else if (gCurrentLevel == LEVEL_BOLSE) { + GPC(255, 128, 128, sp20); + } else { + GPC(48, 255, 255, sp20); + } + GDL(D_1031630); + Matrix_Pop(&gGfxMatrix); + } +} + +void func_80035098(Object_2F4* obj2F4) { + s32 sp2C; + + if (obj2F4->unk_170 > 1.0f) { + Matrix_Push(&gGfxMatrix); + sp2C = obj2F4->unk_170; + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -30.0f, 1); + Matrix_RotateZ(gGfxMatrix, -obj2F4->obj.rot.z * M_DTOR, 1); + Matrix_RotateX(gGfxMatrix, -obj2F4->obj.rot.x * M_DTOR, 1); + Matrix_RotateY(gGfxMatrix, -obj2F4->obj.rot.y * (0, M_DTOR) - gPlayer->unk_058, 1); // fake + Matrix_RotateX(gGfxMatrix, gPlayer->unk_05C, 1); + Matrix_RotateZ(gGfxMatrix, obj2F4->unk_08C * (gFrameCount * 20.0f) * M_DTOR, 1); + if (obj2F4->unk_08C < 0) { + Matrix_RotateX(gGfxMatrix, M_PI, 1); + } + Matrix_Scale(gGfxMatrix, 2.0f, 2.0f, 2.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + RCP_SetupDL(&gMasterDisp, 0x43); + GPC(255, 255, 255, sp2C); + GEC(0, 0, 160, sp2C); + GDL(D_101DC10); + Matrix_Pop(&gGfxMatrix); + } +} + +bool func_800352E0(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* thisx) { + Object_2F4* this = thisx; + + if (this->timer_0C6 & 1) { + RCP_SetupDL(&gMasterDisp, 0x22); + GPC(255, 128, 128, 255); + } else { + RCP_SetupDL(&gMasterDisp, 0x1D); + } + if ((limbIndex == 1) || (limbIndex == 3)) { + rot->z += (f32) gFrameCount * 3.0f; + } + if ((limbIndex == 1) || (limbIndex == 2)) { + RCP_SetupDL(&gMasterDisp, 0x22); + GPC((s32) D_8015F914, (s32) D_8015F918, (s32) D_8015F91C, 255); + } + return false; +} + +void func_80035448(Object_2F4* obj2F4) { + f32 sp38; + Vec3f sp7C[32]; // larger than expected + f32 pad2; + + sp7C[30] = D_800C9BB0; // not part of array? If not, why have it? + + if (obj2F4->unk_0E4 != 1000) { + if ((obj2F4->unk_070 != 0) && (obj2F4->unk_0E4 < 100)) { + pad2 = __sinf(obj2F4->unk_070 * 400.0f * M_DTOR); + sp38 = obj2F4->unk_070 * pad2; + Matrix_RotateY(gGfxMatrix, M_DTOR * sp38, 1); + Matrix_RotateX(gGfxMatrix, M_DTOR * sp38, 1); + Matrix_RotateZ(gGfxMatrix, M_DTOR * sp38, 1); + Matrix_SetGfxMtx(&gMasterDisp); + } + if (!(obj2F4->timer_0C6 & 1)) { + RCP_SetupDL(&gMasterDisp, 0x1D); + gSPFogPosition(gMasterDisp++, gFogNear, 1005); + } + switch (obj2F4->unk_0E4) { + case 0: + case 1: + case 2: + case 3: + Matrix_Push(&gGfxMatrix); + func_8005B388(obj2F4); + Matrix_Pop(&gGfxMatrix); + func_80035098(obj2F4); + break; + case 4: + case 5: + case 6: + case 7: + if (gCurrentLevel == LEVEL_VENOM_2) { + GDL(D_F0103D0); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 30.0f, 0.0f, -60.0f, 1); + func_8005B1E8(obj2F4, 2); + Matrix_Pop(&gGfxMatrix); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, -30.0f, 0.0f, -60.0f, 1); + func_8005B1E8(obj2F4, 2); + Matrix_Pop(&gGfxMatrix); + func_80035098(obj2F4); + func_80034E64(obj2F4); + } else { + GDL(D_F00F200); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1); + if (gCurrentLevel == LEVEL_BOLSE) { + func_8005B1E8(obj2F4, 3); + } else { + func_8005B1E8(obj2F4, 2); + } + } + break; + case 8: + GDL(D_D009A40); + func_8005ADAC(obj2F4); + break; + case 9: + GDL(D_D00B880); + func_8005ADAC(obj2F4); + break; + case 100: + func_8005F670(&obj2F4->obj.pos); + obj2F4->unk_0B6 = 1; + func_8004FEC0(obj2F4); + break; + case 200: + Animation_GetFrameData(&D_6006D64, 0, sp7C); + Animation_DrawSkeleton(3, D_6006E50, sp7C, func_800352E0, NULL, obj2F4, gCalcMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -400.0f, 1); + Matrix_Scale(gGfxMatrix, obj2F4->unk_188, obj2F4->unk_188, obj2F4->unk_188, 1); + func_8005B1E8(obj2F4, 3); + break; + default: + if (gCurrentLevel == LEVEL_FORTUNA) { + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 60.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + GDL(D_6006BE0); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -100.0f, 1); + Matrix_Scale(gGfxMatrix, 1.5f, 1.5f, 1.5f, 1); + func_8005B1E8(obj2F4, 2); + } else if (gCurrentLevel == LEVEL_KATINA) { + switch (obj2F4->unk_0B6) { + case 0: + GDL(D_600EFF0); + break; + case 1: + GDL(D_600E050); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1); + func_8005B1E8(obj2F4, 0); + break; + case 3: + GDL(D_6001530); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 30.0f, 1); + func_80034E64(obj2F4); + break; + } + } else if (gCurrentLevel == LEVEL_SECTOR_Z) { + GDL(D_6004FE0) + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1); + func_8005B1E8(obj2F4, 2); + } else if (gCurrentLevel == LEVEL_BOLSE) { + GDL(D_6008770) + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1); + func_8005B1E8(obj2F4, 2); + Matrix_Pop(&gGfxMatrix); + func_80034E64(obj2F4); + } else if (gCurrentLevel == LEVEL_VENOM_ANDROSS) { + Animation_GetFrameData(&D_600C200, obj2F4->unk_04A, obj2F4->unk_18C); + Matrix_Scale(gGfxMatrix, 10.0f, 10.0f, 10.0f, 1); + Animation_DrawSkeleton(0, D_600C2AC, obj2F4->unk_18C, NULL, NULL, obj2F4, &gIdentityMatrix); + } else if (gCurrentLevel == LEVEL_VERSUS) { + GDL(D_3015740); + } else if (gCurrentLevel == LEVEL_TRAINING) { + if (obj2F4->unk_0E6 == 0) { + GDL(D_F00F200); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1); + func_8005B1E8(obj2F4, 3); + } else { + GDL(D_40068F0); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1); + func_8005B1E8(obj2F4, 2); + } + } + break; + } + } +} diff --git a/src/main/fox_852F0.c b/src/main/fox_852F0.c new file mode 100644 index 00000000..b529f4d5 --- /dev/null +++ b/src/main/fox_852F0.c @@ -0,0 +1,38 @@ +#include "global.h" + +void func_800846F0(FrameBuffer* arg0) { + s32 i; + s32 j; + u16* var_v0; + s32 sp60[5]; + s32 sp4C[5]; + s32 sp38[5]; + + for (i = 0; i < gFrameCounter % SCREEN_HEIGHT; i++) { + var_v0 = SCREEN_WIDTH * i + arg0->data; + for (j = 0; j < gFrameCounter % SCREEN_WIDTH; j++, var_v0++) { + sp60[1] = RGBA16_RED(var_v0[0]); + sp4C[1] = RGBA16_GRN(var_v0[0]); + sp38[1] = RGBA16_BLU(var_v0[0]); + + sp60[2] = RGBA16_RED(var_v0[1]); + sp4C[2] = RGBA16_GRN(var_v0[1]); + sp38[2] = RGBA16_BLU(var_v0[1]); + + sp60[3] = RGBA16_RED(var_v0[SCREEN_WIDTH]); + sp4C[3] = RGBA16_GRN(var_v0[SCREEN_WIDTH]); + sp38[3] = RGBA16_BLU(var_v0[SCREEN_WIDTH]); + + sp60[4] = RGBA16_RED(var_v0[SCREEN_WIDTH + 1]); + sp4C[4] = RGBA16_GRN(var_v0[SCREEN_WIDTH + 1]); + sp38[4] = RGBA16_BLU(var_v0[SCREEN_WIDTH + 1]); + + sp60[0] = (sp60[1] + sp60[2] + sp60[3] + sp60[4]) / 4; + sp4C[0] = (sp4C[1] + sp4C[2] + sp4C[3] + sp4C[4]) / 4; + sp38[0] = (sp38[1] + sp38[2] + sp38[3] + sp38[4]) / 4; + + var_v0[0] = (sp60[0] << 0xB) | (sp4C[0] << 0x6) | (sp38[0] << 0x1); + } + } + osWritebackDCacheAll(); +} diff --git a/src/main/fox_bg.c b/src/main/fox_bg.c new file mode 100644 index 00000000..b18aa868 --- /dev/null +++ b/src/main/fox_bg.c @@ -0,0 +1,1125 @@ +#include "global.h" + +typedef struct { + u8 r, g, b; +} Color_RGB8; + +extern f32 D_8015F960; +extern u8 D_8015F964; +extern f32 D_8015F968; +extern f32 D_8015F96C; +extern f32 D_8015F970; +extern s32 D_8015F974; +extern s32 D_8015F978; +extern s32 D_8015F97C; +extern s32 D_8015F980; +extern f32 D_8015F984; +// extern s32 D_8015F988[0x67F] // enormous unused space. D_8015F984[0x680] perhaps? Fits the divisible by 13 pattern +extern f32 D_80161394; // can be static + +extern f32 D_800C9C30; +extern u16 D_800C9C34; +// D_800C9C38 missing +extern u16 D_800C9C3C[16]; +extern Gfx* D_800C9C5C[13]; +extern Gfx* D_800C9C90[13]; +extern f32 D_800C9CC4[13]; +extern f32 D_800C9CF8[13]; +extern f32 D_800C9D2C[13]; +extern f32 D_800C9D60[13]; +extern Color_RGB8 D_800C9D94[13]; +extern Color_RGB8 D_800C9DBC[13]; +extern s32 D_800C9DE4[13]; +extern s32 D_800C9E18[13]; +extern s32 D_800C9E4C[2]; +extern s32 D_800C9E54[2]; +extern f32 D_800C9E5C[2]; +extern f32 D_800C9E64[4]; +extern f32 D_800C9E74[4]; + +void func_8003DAF0(void) { + f32 var_fa0; + f32 var_fv1; + s16 temp_ft0; + s16 temp_ft2; + s32 i; + s32 var_s2; + f32 sp70; + f32 spf6C; + f32 spf68; + f32 spf64; + f32* sp60; + f32* sp5C; + u32* sp58; + + gDPPipeSync(gMasterDisp++); + gDPSetCycleType(gMasterDisp++, G_CYC_FILL); + gDPSetCombineMode(gMasterDisp++, G_CC_SHADE, G_CC_SHADE); + gDPSetRenderMode(gMasterDisp++, G_RM_OPA_SURF, G_RM_OPA_SURF2); + var_s2 = D_80178410; + if (var_s2 != 0) { + if (D_80178420 >= 480.0f) { + D_80178420 -= 480.0f; + } + if (D_80178424 >= 360.0f) { + D_80178424 -= 360.0f; + } + if (D_80178420 < 0.0f) { + D_80178420 += 480.0f; + } + if (D_80178424 < 0.0f) { + D_80178424 += 360.0f; + } + spf68 = D_80178420; + spf64 = D_80178424; + + sp60 = D_80178288; + sp5C = D_80178290; + sp58 = D_80178298; + + if (gGameState != 7) { + var_s2 = 1000; + } + sp70 = __cosf(D_80178428); + spf6C = __sinf(D_80178428); + for (i = 0; i < var_s2; i++, sp5C++, sp60++, sp58++) { + var_fv1 = *sp60 + spf68; + var_fa0 = *sp5C + spf64; + if (var_fv1 >= 400.0f) { + var_fv1 -= 480.0f; + } + var_fv1 -= 160.0f; + if (var_fa0 >= 300.0f) { + var_fa0 -= 360.0f; + } + var_fa0 -= 120.0f; + + temp_ft2 = (sp70 * var_fv1) + (spf6C * var_fa0) + 160.0f; + temp_ft0 = (-spf6C * var_fv1) + (sp70 * var_fa0) + 120.0f; + if ((temp_ft2 >= 0) && (temp_ft2 < SCREEN_WIDTH) && (temp_ft0 > 0) && (temp_ft0 < SCREEN_HEIGHT)) { + gDPPipeSync(gMasterDisp++); + gDPSetFillColor(gMasterDisp++, *sp58); + gDPFillRectangle(gMasterDisp++, temp_ft2, temp_ft0, temp_ft2, temp_ft0); + } + } + } + gDPPipeSync(gMasterDisp++); + gDPSetColorDither(gMasterDisp++, G_CD_MAGICSQ); +} + +void func_8003DE68(s32 arg0, s32 arg1) { + f32 var_fa0; // 8C + f32 var_fv1; // 88 + s16 temp_ft0; // 84 + s16 temp_ft2; + s32 i; // 80 + s32 var_s2; // 7C + f32 sp70; // 78 + f32 spf6C; // 74 + f32 spf68; // 70 + f32 spf64; // 6C + f32* sp60; // 68 + f32* sp5C; // 64 + u32* sp58; // 60 + + gDPPipeSync(gMasterDisp++); + gDPSetCycleType(gMasterDisp++, G_CYC_FILL); + gDPSetCombineMode(gMasterDisp++, G_CC_SHADE, G_CC_SHADE); + gDPSetRenderMode(gMasterDisp++, G_RM_OPA_SURF, G_RM_OPA_SURF2); + + if (D_80178420 >= 480.0f) { + D_80178420 -= 480.0f; + } + if (D_80178424 >= 360.0f) { + D_80178424 -= 360.0f; + } + if (D_80178420 < 0.0f) { + D_80178420 += 480.0f; + } + if (D_80178424 < 0.0f) { + D_80178424 += 360.0f; + } + + spf68 = D_80178420; + spf64 = D_80178424; + + sp60 = D_80178288; + sp5C = D_80178290; + sp58 = D_80178298; + var_s2 = 500; + + sp70 = __cosf(D_80178428); + spf6C = __sinf(D_80178428); + for (i = 0; i < var_s2; i++, sp5C++, sp60++, sp58++) { + var_fv1 = *sp60 + spf68; + var_fa0 = *sp5C + spf64; + if (var_fv1 >= 400.0f) { + var_fv1 -= 480.0f; + } + var_fv1 -= 160.0f; + if (var_fa0 >= 300.0f) { + var_fa0 -= 360.0f; + } + var_fa0 -= 120.0f; + + temp_ft2 = (sp70 * var_fv1) + (spf6C * var_fa0) + 160.0f; + temp_ft0 = (-spf6C * var_fv1) + (sp70 * var_fa0) + 120.0f; + if ((temp_ft2 >= 0) && (temp_ft2 < SCREEN_WIDTH) && (arg0 < temp_ft0) && (temp_ft0 < arg1)) { + gDPPipeSync(gMasterDisp++); + gDPSetFillColor(gMasterDisp++, *sp58); + gDPFillRectangle(gMasterDisp++, temp_ft2, temp_ft0, temp_ft2, temp_ft0); + } + } + gDPPipeSync(gMasterDisp++); + gDPSetColorDither(gMasterDisp++, G_CD_MAGICSQ); +} + +void func_8003E1E0(void) { +} + +#ifdef NON_MATCHING +void func_8003E1E8(void) { + f32 sp13C; + f32 sp138; + f32 sp134; + f32 sp130; + f32 sp12C; + f32 sp128; + s32 sp124; + u8 var_s0; + s32 sp11C; + + if (D_80177AB0 != 0) { + var_s0 = gLevelType; + if ((gCurrentLevel == LEVEL_VERSUS) && (gVersusStage == VS_STAGE_SECTOR_Z)) { + var_s0 = LEVELTYPE_PLANET; + } + if (gCurrentLevel == LEVEL_TRAINING) { + var_s0 = LEVELTYPE_SPACE; + } + sp11C = gCurrentLevel; + Matrix_Push(&gGfxMatrix); + if (D_80177C70 == 2) { + Matrix_Scale(gGfxMatrix, 1.2f, 1.2f, 1.0f, 1); + } + switch (var_s0) { + case LEVELTYPE_PLANET: + RCP_SetupDL(&gMasterDisp, 0x11); + switch (sp11C) { + case LEVEL_FORTUNA: + case LEVEL_KATINA: + case LEVEL_VENOM_2: + case LEVEL_VERSUS: + sp134 = (gPlayer[gPlayerNum].unk_05C * -6000.0f) - (gPlayer[gPlayerNum].camEye.y * 0.4f); + sp13C = Math_ModF(Math_RadToDeg(gPlayer[gPlayerNum].unk_058) * -20.222221f * 5.0f, 7280.0f); + Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].unk_034 * 0.017453292f, 1); + Matrix_Translate(gGfxMatrix, sp13C, -2000.0f + sp134, -6000.0f, 1); + if (gCurrentLevel == LEVEL_FORTUNA) { + Matrix_Translate(gGfxMatrix, 0.0f, -2000.0f, 0, 1); + } else if (gCurrentLevel == LEVEL_KATINA) { + Matrix_Translate(gGfxMatrix, 0.0f, -2500.0f, 0, 1); + } + Matrix_SetGfxMtx(&gMasterDisp); + switch (gCurrentLevel) { + case LEVEL_VERSUS: + if (gVersusStage == VS_STAGE_CORNERIA) { + gSPDisplayList(gMasterDisp++, D_302D4D0); + } else if (gVersusStage == VS_STAGE_KATINA) { + gSPDisplayList(gMasterDisp++, D_30146B0); + } else { + gSPDisplayList(gMasterDisp++, D_3011E40); + } + break; + case LEVEL_FORTUNA: + gSPDisplayList(gMasterDisp++, D_600D9F0); + break; + case LEVEL_KATINA: + gSPDisplayList(gMasterDisp++, D_600F1D0); + break; + case LEVEL_VENOM_2: + gSPDisplayList(gMasterDisp++, D_600F670); + break; + } + Matrix_Translate(gGfxMatrix, 7280.0f, 0.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + switch (gCurrentLevel) { + case LEVEL_VERSUS: + if (gVersusStage == VS_STAGE_CORNERIA) { + gSPDisplayList(gMasterDisp++, D_302D4D0); + } else if (gVersusStage == VS_STAGE_KATINA) { + gSPDisplayList(gMasterDisp++, D_30146B0); + } else { + gSPDisplayList(gMasterDisp++, D_3011E40); + } + break; + case LEVEL_FORTUNA: + gSPDisplayList(gMasterDisp++, D_600D9F0); + break; + case LEVEL_KATINA: + gSPDisplayList(gMasterDisp++, D_600F1D0); + break; + case LEVEL_VENOM_2: + gSPDisplayList(gMasterDisp++, D_600F670); + break; + } + break; + case LEVEL_CORNERIA: + case LEVEL_VENOM_1: + sp134 = (gPlayer[gPlayerNum].unk_05C * -6000.0f) - (gPlayer[gPlayerNum].camEye.y * 0.6f); + sp13C = Math_ModF(Math_RadToDeg(gPlayer[gPlayerNum].unk_058) * -20.222221f * 5.0f, 7280.0f); + Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].unk_034 * 0.017453292f, 1); + Matrix_Translate(gGfxMatrix, sp13C, -2000.0f + sp134, -6000.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + switch (gCurrentLevel) { + case LEVEL_CORNERIA: + gSPDisplayList(gMasterDisp++, D_60059F0); + break; + case LEVEL_VENOM_1: + gSPDisplayList(gMasterDisp++, D_60046F0); + break; + } + Matrix_Translate(gGfxMatrix, 7280.0f, 0.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + switch (gCurrentLevel) { + case LEVEL_CORNERIA: + gSPDisplayList(gMasterDisp++, D_60059F0); + break; + case LEVEL_VENOM_1: + gSPDisplayList(gMasterDisp++, D_60046F0); + break; + } + break; + case LEVEL_VENOM_ANDROSS: + if (D_80177AB0 != 6) { + if ((D_80177AB0 == 2) || (D_80177AB0 == 7)) { + Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].unk_034 * 0.017453292f, 1); + Matrix_Translate(gGfxMatrix, 0.0f, -4000.0f, -7000.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_600F670); + } else if ((D_80177AB0 == 3) || (D_80177AB0 == 4)) { + RCP_SetupDL(&gMasterDisp, 0x3E); + if (D_80177AB0 == 4) { + if (!(gFrameCount & 8)) { + Math_SmoothStepToF(&D_80161394, 0.0f, 1.0f, 30.0f, 0); + } else { + Math_SmoothStepToF(&D_80161394, 120.0f, 1.0f, 30.0f, 0); + } + } else { + D_80161394 = 255.0f; + } + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, (s32) D_80161394, (s32) D_80161394, + (s32) D_800C9C30); + + sp134 = + (gPlayer[gPlayerNum].unk_05C * -6000.0f) - (gPlayer[gPlayerNum].camEye.y * 0.4f); + sp13C = + Math_ModF(Math_RadToDeg(gPlayer[gPlayerNum].unk_058) * -20.222221f * 5.0f, 7280.0f); + Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].unk_034 * 0.017453292f, 1); + Matrix_Translate(gGfxMatrix, sp13C, -2000.0f + sp134, -6000.0f, 1); + Matrix_Translate(gGfxMatrix, 0.0f, -2500.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_60038E0); + Matrix_Translate(gGfxMatrix, 7280.0f, 0.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_60038E0); + } else { + RCP_SetupDL(&gMasterDisp, 0x3E); + if (D_80177AB0 == 5) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 64); + } else { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 255, 128, (s32) D_800C9C30); + } + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -290.0f, 1); + Matrix_Push(&gGfxMatrix); + Matrix_Scale(gGfxMatrix, 11.0f, 11.0f, 1.0f, 1); + Matrix_RotateZ(gGfxMatrix, + (gPlayer->unk_034 + ((f32) gFrameCount * 1.5f)) * 0.017453292f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_C039208); + Matrix_Pop(&gGfxMatrix); + if (D_80177AB0 != 5) { + Matrix_Push(&gGfxMatrix); + Matrix_Scale(gGfxMatrix, 10.0f, 10.0f, 1.0f, 1); + Matrix_RotateZ(gGfxMatrix, + (gPlayer->unk_034 + ((f32) gFrameCount * -1.3f)) * 0.017453292f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_C039208); + Matrix_Pop(&gGfxMatrix); + } + } + } + break; + case LEVEL_AQUAS: + if (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) { + sp13C = ((Math_RadToDeg(gPlayer[gPlayerNum].unk_058) - gPlayer[gPlayerNum].unk_114)); + sp134 = (gPlayer[gPlayerNum].unk_05C * -7000.0f) - (gPlayer[gPlayerNum].camEye.y * 0.6f); + sp13C = Math_ModF(sp13C * -40.44444f * 2.0f, 7280.0f); + RCP_SetupDL_17(); + Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].unk_034 * 0.017453292f, 1); + Matrix_Scale(gGfxMatrix, 1.5f, 1.0f, 1.0f, 1); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, sp13C, sp134, -7000.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) { + gSPDisplayList(gMasterDisp++, D_601AFF0); + } else { + gSPDisplayList(gMasterDisp++, D_601C080); + } + + if (sp13C < 0) { + sp13C = 1.0f; + } else { + sp13C = -1.0f; + } + Matrix_Translate(gGfxMatrix, 7280.0f * sp13C, 0.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) { + gSPDisplayList(gMasterDisp++, D_601AFF0); + + } else { + gSPDisplayList(gMasterDisp++, D_601C080); + } + Matrix_Pop(&gGfxMatrix); + } + break; + case LEVEL_SOLAR: + case LEVEL_ZONESS: + case LEVEL_MACBETH: + case LEVEL_TITANIA: + sp13C = (Math_RadToDeg(gPlayer[gPlayerNum].unk_058) - gPlayer[gPlayerNum].unk_114) * + -40.44444f * 2.0f; + sp134 = (gPlayer[gPlayerNum].unk_05C * -7000.0f) - (gPlayer[gPlayerNum].camEye.y * 0.6f); + if ((gCurrentLevel == LEVEL_TITANIA) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) && + (gPlayer->unk_1D0 < 3)) { + D_8015F968 += __sinf(gPlayer->unk_058) * 20.0f; + sp13C += D_8015F968; + } + if ((gCurrentLevel == LEVEL_SOLAR) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) && + (gPlayer->unk_1D0 >= 2) && (gPlayer->camEye.z <= -1900.0f)) { + D_8015F968 = __sinf(gPlayer->unk_05C) * 7000.0f; + sp134 -= fabsf(D_8015F968); + } + sp13C = Math_ModF(sp13C, 7280.0f); + RCP_SetupDL_17(); + Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].unk_034 * 0.017453292f, 1); + Matrix_Scale(gGfxMatrix, 1.5f, 1.0f, 1.0f, 1); + if ((gCurrentLevel == LEVEL_TITANIA) || (gCurrentLevel == LEVEL_ZONESS)) { + Matrix_Translate(gGfxMatrix, sp13C, -3000.0f + sp134, -7000.0f, 1); + } else if (gCurrentLevel == LEVEL_SOLAR) { + Matrix_Translate(gGfxMatrix, sp13C, -3500.0f + sp134, -7000.0f, 1); + } else if (gCurrentLevel == LEVEL_MACBETH) { + Matrix_Translate(gGfxMatrix, sp13C, -4000.0f + sp134, -7000.0f, 1); + } + Matrix_SetGfxMtx(&gMasterDisp); + if (gCurrentLevel == LEVEL_TITANIA) { + gSPDisplayList(gMasterDisp++, D_6000A80); + } else if (gCurrentLevel == LEVEL_MACBETH) { + gSPDisplayList(gMasterDisp++, D_6019220); + } else if (gCurrentLevel == LEVEL_ZONESS) { + gSPDisplayList(gMasterDisp++, D_6013480); + } else if (gCurrentLevel == LEVEL_SOLAR) { + gSPDisplayList(gMasterDisp++, D_601E150); + } + if (sp13C < 0) { + sp13C = 1.0f; + } else { + sp13C = -1.0f; + } + Matrix_Translate(gGfxMatrix, 7280.0f * sp13C, 0.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (gCurrentLevel == LEVEL_TITANIA) { + gSPDisplayList(gMasterDisp++, D_6000A80); + } else if (gCurrentLevel == LEVEL_MACBETH) { + gSPDisplayList(gMasterDisp++, D_6019220); + } else if (gCurrentLevel == LEVEL_ZONESS) { + gSPDisplayList(gMasterDisp++, D_6013480); + } else if (gCurrentLevel == LEVEL_SOLAR) { + gSPDisplayList(gMasterDisp++, D_601E150); + } + break; + } + break; + case LEVELTYPE_SPACE: + if (gPlayer->state_1C8 != PLAYERSTATE_1C8_8) { + Matrix_Push(&gGfxMatrix); + sp12C = Math_RadToDeg(gPlayer->unk_058); + sp130 = Math_RadToDeg(gPlayer->unk_05C); + if (((sp12C < 45.0f) || (sp12C > 315.0f)) && ((sp130 < 40.0f) || (sp130 > 325.0f))) { + RCP_SetupDL_36(); + sp138 = D_80178420; + sp134 = D_80178424; + if (((gCurrentLevel == LEVEL_SECTOR_X) || (gCurrentLevel == LEVEL_METEO)) && + (D_8017827C == 1)) { + sp11C = LEVEL_WARP_ZONE; + } + if (sp11C == LEVEL_SECTOR_X) { + sp138 = Math_ModF(sp138 + 60.0f, 480.0f); + sp134 = Math_ModF(sp134 + 360.0f - 40.0f, 360.0f); + } else if (sp11C == LEVEL_TRAINING) { + sp138 = Math_ModF(sp138 - 30.0f, 480.0f); + sp134 = Math_ModF(sp134 + 360.0f - 40.0f, 360.0f); + } else if ((sp11C == LEVEL_SECTOR_Y) && (gLevelMode == LEVELMODE_ON_RAILS)) { + sp138 = Math_ModF(sp138 + 480.0f - 60.0f, 480.0f); + sp134 = Math_ModF(sp134, 360.0f); + } else if (sp11C == LEVEL_FORTUNA) { + sp138 = Math_ModF(sp138 - 34.5f, 480.0f); + sp134 = Math_ModF(sp134 + 19.0f, 360.0f); + } else if (sp11C == LEVEL_BOLSE) { + if ((gPlayer->state_1C8 != PLAYERSTATE_1C8_7) || (gPlayer->unk_1D0 < 10)) { + sp134 = Math_ModF(sp134 + 360.0f - 100.0f, 360.0f); + } + } else { + sp138 = Math_ModF(sp138, 480.0f); + sp134 = Math_ModF(sp134, 360.0f); + } + if ((sp12C < 180.0f) && (sp138 > 380.0f)) { + sp138 = -(480.0f - sp138); + } + if ((sp130 > 180.0f) && (sp134 > 280.0f)) { + sp134 = -(360.0f - sp134); + } + Matrix_RotateZ(gGfxMatrix, D_80178428, 1); + switch (sp11C) { + case LEVEL_WARP_ZONE: + if ((s32) D_8015F960 != 0) { + RCP_SetupDL_62(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, (s32) D_8015F960); + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); + Matrix_Scale(gGfxMatrix, 1.7f, 1.7f, 1.0f, 1); + Matrix_Push(&gGfxMatrix); + Matrix_RotateZ(gGfxMatrix, -(f32) gFrameCount * 10.0f * 0.017453292f, 1); + Matrix_Scale(gGfxMatrix, 1.07f, 0.93f, 1.0f, 1); + Matrix_RotateZ(gGfxMatrix, (f32) gFrameCount * 10.0f * 0.017453292f, 1); + Matrix_Scale(gGfxMatrix, 1.07f, 0.93f, 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_7001540); + Matrix_Pop(&gGfxMatrix); + } + break; + case LEVEL_METEO: + if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_7) && (D_80177A80 > 260)) { + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f) - 30.0f, -290.0f, 1); + Matrix_Scale(gGfxMatrix, 0.5f, 0.5f, 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_600DDF0); + } else if (D_80177D20 > 185668.0f) { + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f) - 130.0f, -290.0f, + 1); + Matrix_Scale(gGfxMatrix, 0.4f, 0.4f, 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_600DDF0); + } + break; + case LEVEL_SECTOR_X: + if (gOverlayStage == 0) { + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); + Matrix_Scale(gGfxMatrix, 3.0f, 3.0f, 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + RCP_SetupDL_62(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 192); + gSPDisplayList(gMasterDisp++, D_6029890); + } + break; + case LEVEL_TRAINING: + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); + Matrix_Scale(gGfxMatrix, 0.2f, 0.2f, 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + RCP_SetupDL_62(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255); + gSPDisplayList(gMasterDisp++, D_6003760); + break; + case LEVEL_AREA_6: + case LEVEL_UNK_4: + sp128 = (D_80177D20 * 0.00004f) + 0.5f; + if (sp128 > 3.5f) { + sp128 = 3.5f; + } + if (gPlayer->state_1C8 == PLAYERSTATE_1C8_7) { + sp128 = D_8015F984; + if (sp128 > 3.5f) { + sp128 = 3.5f; + } + } + sp128 = sp128; + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); + Matrix_Scale(gGfxMatrix, sp128 * 0.75, sp128 * 0.75f, 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_601BB40); + break; + case LEVEL_FORTUNA: + sp128 = 1.5f; + if ((D_80177A80 > 400) && (D_80177930 == 0)) { + sp128 = 0.75f; + } + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); + Matrix_Scale(gGfxMatrix, sp128, sp128, sp128, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_600B4B0); + break; + case LEVEL_BOLSE: + sp128 = 1.0f; + if ((D_80177A80 > 500) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_7)) { + sp128 = 1.3f; + } + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); + Matrix_Scale(gGfxMatrix, sp128, sp128, sp128, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_600D190); + break; + case LEVEL_SECTOR_Z: + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); + Matrix_Scale(gGfxMatrix, 0.5f, 0.5f, 0.5f, 1); + Matrix_RotateX(gGfxMatrix, 1.5707964f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_6002F80); + break; + case LEVEL_SECTOR_Y: + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); + Matrix_Scale(gGfxMatrix, 0.4f, 0.4f, 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + RCP_SetupDL_62(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 192); + gSPDisplayList(gMasterDisp++, D_6001840); + break; + } + } + Matrix_Pop(&gGfxMatrix); + } + if (D_80178414 > 0.0f) { + f32* sp50 = D_80178288; + f32* sp4C = D_80178290; + f32 sp48; + s32 pad; + s32 pad2; + + RCP_SetupDL_14(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 128, 128, 255, 255); + sp124 = 0; + sp48 = 0.0f; + for (sp124 = 0; sp124 < 300; sp124++, sp50++, sp4C++) { + *sp50 = (Rand_ZeroOneSeeded() * 480.0f) - 80.0f; + *sp4C = (Rand_ZeroOneSeeded() * 360.0f) - 60.0f; + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, (*sp50 - 160.0f) * 10.0f, (*sp4C - 120.0f) * 10.0f, -5000.0f, 1); + Matrix_RotateZ(gGfxMatrix, sp48, 1); + Matrix_Scale(gGfxMatrix, 10.0f, 1.0f, -D_80178414, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_800CFD80); + Matrix_Pop(&gGfxMatrix); + sp48 += 0.7853982f; + } + } + break; + } + Matrix_Pop(&gGfxMatrix); + } +} +#else +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/fox_bg/func_8003E1E8.s") +#endif + +void func_80040450(void) { + f32 sp44; + f32 var_fa0; + Color_RGB8* var_s1; + s32* var_s2; + Gfx** var_s3; + f32* var_s4; + s32 i; + s32 temp = gLevelType; + + if ((gCurrentLevel == LEVEL_KATINA) || (gCurrentLevel == LEVEL_VENOM_2) || (gCurrentLevel == LEVEL_VENOM_ANDROSS) || + (gCurrentLevel == LEVEL_SOLAR) || (gCurrentLevel == LEVEL_TRAINING) || gVersusMode) { + return; + } + D_80178380[gPlayerNum] -= D_800C9E4C[temp]; + if (D_80178380[gPlayerNum] > 300) { + D_80178380[gPlayerNum] = 0; + } + if (((gCurrentLevel == LEVEL_AQUAS) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_2)) || + (((gPlayer[gPlayerNum].state_1C8 == PLAYERSTATE_1C8_5) || (gLevelMode == LEVELMODE_ALL_RANGE) || + (gPlayer[gPlayerNum].state_1C8 == PLAYERSTATE_1C8_7)) && + (gLevelType == LEVELTYPE_PLANET) && (gCurrentLevel != LEVEL_TITANIA) && (gCurrentLevel != LEVEL_AQUAS))) { + D_80178390[gPlayerNum] = 128; + D_801783A0[gPlayerNum] = 128; + D_801783B0[gPlayerNum] = 128; + sp44 = Math_RadToDeg(gPlayer[gPlayerNum].unk_058); + var_fa0 = Math_RadToDeg(gPlayer[gPlayerNum].unk_05C); + if (var_fa0 > 180.0f) { + var_fa0 -= 360.0f; + } + sp44 -= 135.0f; + D_801783D0 = -sp44 * 3.2f; + D_801783D4 = ((-var_fa0 * 3.2f) + 130.0f) - ((gPlayer[gPlayerNum].camEye.y - 350.0f) * 0.015f); + if (gCurrentLevel == LEVEL_KATINA) { + D_801783D4 -= 80.0f; + } + if ((gCurrentLevel == LEVEL_ZONESS) && (gPlayer->unk_1D0 >= 2) && (D_80161684 == 0)) { + D_801783D4 -= 60.0f; + D_801783D0 -= 480.0f; + } + if ((D_801783D0 < 120.0f) && (D_801783D0 > -120.0f) && (D_801783D4 < 120.0f)) { + D_80178380[gPlayerNum] += D_800C9E4C[temp] * 2; + if (D_800C9E54[temp] < D_80178380[gPlayerNum]) { + D_80178380[gPlayerNum] = D_800C9E54[temp]; + } + } + } + if (D_80178380[gPlayerNum] != 0) { + Matrix_Push(&gGfxMatrix); + Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].unk_034 * 0.017453292f, 1); + Matrix_Translate(gGfxMatrix, D_801783D0, D_801783D4, -200.0f, 1); + RCP_SetupDL_62(); + var_s1 = D_800C9D94; + var_s2 = D_800C9DE4; + var_s3 = D_800C9C5C; + var_s4 = D_800C9D2C; + if (gCurrentLevel == LEVEL_KATINA) { + var_s1 = D_800C9DBC; + var_s2 = D_800C9E18; + var_s3 = D_800C9C90; + var_s4 = D_800C9D60; + } + for (i = 0; i < 5; i++, var_s1++, var_s2++, var_s3++, var_s4++) { + Matrix_Push(&gGfxMatrix); + Matrix_Scale(gGfxMatrix, *var_s4, *var_s4, *var_s4, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, var_s1->r, var_s1->g, var_s1->b, *var_s2); + gSPDisplayList(gMasterDisp++, *var_s3); + Matrix_Pop(&gGfxMatrix); + } + Matrix_Pop(&gGfxMatrix); + } +} + +void func_80040954(void) { + s32 i; + Color_RGB8* var_s1; + s32* var_s4; + Gfx** var_s5; + f32* var_s6; + f32* var_s7; + f32 temp_fs0; + f32 temp_fs1; + f32 var_fs2; + f32 var_fv0; + + if ((gCurrentLevel != LEVEL_VENOM_ANDROSS) && (gLevelType != LEVELTYPE_SPACE) && (D_80178380[gPlayerNum] != 0)) { + var_fs2 = 1.0f; + if (D_80178380[gPlayerNum] < 80) { + var_fs2 = D_80178380[gPlayerNum] / 80.0f; + } + var_fs2 *= D_800C9E5C[gLevelType]; + Matrix_Push(&gGfxMatrix); + Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].unk_034 * 0.017453292f, 1); + Matrix_Translate(gGfxMatrix, D_801783D0, D_801783D4, -200.0f, 1); + RCP_SetupDL_62(); + temp_fs0 = D_801783D0 * -0.03f; + temp_fs1 = D_801783D4 * 0.03f; + var_s1 = &D_800C9D94[5]; + var_s4 = &D_800C9DE4[5]; + var_s5 = &D_800C9C5C[5]; + var_s6 = &D_800C9D2C[5]; + var_s7 = &D_800C9CC4[5]; + if (gCurrentLevel == LEVEL_KATINA) { + var_s1 = &D_800C9DBC[5]; + var_s4 = &D_800C9E18[5]; + var_s5 = &D_800C9C90[5]; + var_s6 = &D_800C9D60[5]; + var_s7 = &D_800C9CF8[5]; + } + for (i = 5; i < 13; i++, var_s1++, var_s4++, var_s5++, var_s6++, var_s7++) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, *var_s7 * temp_fs0, *var_s7 * -temp_fs1, 0.0f, 1); + Matrix_Scale(gGfxMatrix, *var_s6, *var_s6, *var_s6, 1); + if (((i == 5) || (i == 11)) && (gCurrentLevel != LEVEL_KATINA)) { + Matrix_RotateX(gGfxMatrix, 1.5707964f, 1); + } + Matrix_SetGfxMtx(&gMasterDisp); + var_fv0 = *var_s4; + if (i >= 5) { + var_fv0 *= var_fs2; + } + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, var_s1->r, var_s1->g, var_s1->b, (s32) var_fv0); + gSPDisplayList(gMasterDisp++, *var_s5); + Matrix_Pop(&gGfxMatrix); + } + Matrix_Pop(&gGfxMatrix); + } +} + +void func_80040CDC(void) { +} + +#ifdef NON_MATCHING +void func_80040CE4(void) { + f32 sp1D4; + s32 i; + u32 temp_fv0; + u32 temp_s0; + u16* sp1C4; + Gfx* sp1C0; + + if ((gCurrentLevel != LEVEL_VENOM_2) && ((gPlayer->camEye.y > 4000.0f) || (D_80177A98 == 0))) { + return; + } + if ((gCurrentLevel == LEVEL_BOLSE) && (D_800C9C34 != 0)) { + func_E51970_80192264(); + return; + } + sp1D4 = 0.0f; + if ((D_801784AC != 10) && (D_801784AC != 11)) { + sp1D4 = -4000.0f; + } + if (D_801784AC == 7) { + sp1D4 = 0.0f; + gPlayer[gPlayerNum].unk_0AC = 0.0f; + } + + if (gLevelMode == LEVELMODE_ALL_RANGE) { + Vec3f sp1B4; + Vec3f sp1A8; + f32 temp_fv1; + f32 temp_fa0; + + sp1D4 = 0.0f; + gPlayer[gPlayerNum].unk_0AC = 0.0f; + + sp1B4.x = 0; + sp1B4.y = 0; + sp1B4.z = -5500.0f; + Matrix_RotateY(gCalcMatrix, -gPlayer[gPlayerNum].unk_058, 0); + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp1B4, &sp1A8); + temp_fv1 = gPlayer[gPlayerNum].camEye.x + sp1A8.x; + temp_fa0 = gPlayer[gPlayerNum].camEye.z + sp1A8.z; + if (temp_fv1 > 6000.0f) { + gPlayer[gPlayerNum].unk_0AC = 12000.0f; + } + if (temp_fv1 > 18000.0f) { + gPlayer[gPlayerNum].unk_0AC = 24000.0f; + } + if (temp_fv1 < -6000.0f) { + gPlayer[gPlayerNum].unk_0AC = -12000.0f; + } + if (temp_fv1 < -18000.0f) { + gPlayer[gPlayerNum].unk_0AC = -24000.0f; + } + if (temp_fa0 > 6000.0f) { + sp1D4 = 12000.0f; + } + if (temp_fa0 > 18000.0f) { + sp1D4 = 24000.0f; + } + if (temp_fa0 < -6000.0f) { + sp1D4 = -12000.0f; + } + if (temp_fa0 < -18000.0f) { + sp1D4 = -24000.0f; + } + } + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, gPlayer[gPlayerNum].unk_0AC, -3.0f + D_8017847C, sp1D4, 1); + if (D_80177C70 == 2) { + Matrix_Scale(gGfxMatrix, 1.2f, 1.2f, 1.0f, 1); + } + Matrix_SetGfxMtx(&gMasterDisp); + switch (gCurrentLevel) { + case LEVEL_CORNERIA: + if (D_8017812C != 0) { + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + } else { + RCP_SetupDL_20(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + } + if (gLevelMode == LEVELMODE_ON_RAILS) { + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_601B6C0)); + temp_s0 = fabsf(Math_ModF(2.0f * (D_80177CE8 * 0.2133333f), 128.0f)); + temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].unk_0AC) * 0.32f, 128.0f); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD); + gDPSetTileSize(gMasterDisp++, G_TX_RENDERTILE, temp_fv0, temp_s0, 124, 124); + switch (D_80161A88) { + case 0: + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, D_601B6C0); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOLOD); + gDPLoadSync(gMasterDisp++); + gDPLoadBlock(gMasterDisp++, G_TX_LOADTILE, 0, 0, 1023, 256); + gBgColor = 0x845; + break; + case 1: + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, D_6028260); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOLOD); + gDPLoadSync(gMasterDisp++); + gDPLoadBlock(gMasterDisp++, G_TX_LOADTILE, 0, 0, 1023, 256); + gBgColor = 0x845; + break; + case 2: + RCP_SetupDL_45(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 128); + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, D_6028A60); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOLOD); + gDPLoadSync(gMasterDisp++); + gDPLoadBlock(gMasterDisp++, G_TX_LOADTILE, 0, 0, 1023, 256); + gBgColor = 0x190F; + break; + } + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -3000.0f, 1); + Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_601B640); + Matrix_Pop(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 3000.0f, 1); + Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_601B640); + } else { + D_80161A88 = 0; + gBgColor = 0x845; + for (i = 0; i < 4; i++) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, D_800C9E64[i], 0.0f, D_800C9E74[i], 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_601EAA0); + Matrix_Pop(&gGfxMatrix); + } + } + break; + case LEVEL_VENOM_1: + case LEVEL_MACBETH: + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + switch (gCurrentLevel) { + case LEVEL_VENOM_1: + sp1C4 = D_6006750; + sp1C0 = D_60066D0; + gDPLoadTextureBlock(gMasterDisp++, sp1C4, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, + G_TX_NOLOD); + break; + case LEVEL_MACBETH: + sp1C4 = D_602DCB8; + sp1C0 = D_60306D0; + gDPLoadTextureBlock(gMasterDisp++, sp1C4, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, + G_TX_NOLOD); + break; + } + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, sp1C4); + temp_s0 = fabsf(Math_ModF(2.0f * (D_80177CE8 * 0.2133333f), 128.0f)); + temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].unk_0AC) * 0.32f, 128.0f); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD); + gDPSetTileSize(gMasterDisp++, G_TX_RENDERTILE, temp_fv0, temp_s0, 124, 124); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -3000.0f, 1); + Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, sp1C0); + Matrix_Pop(&gGfxMatrix); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 3000.0f, 1); + Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, sp1C0); + Matrix_Pop(&gGfxMatrix); + break; + case LEVEL_TRAINING: + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + if (gLevelMode == LEVELMODE_ON_RAILS) { + if (D_80177CE8 > 290.0f) { + D_80177CE8 -= 290.0f; + } + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -3000.0f + D_80177CE8, 1); + Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_6005880); + Matrix_Pop(&gGfxMatrix); + if (1) {} + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 3000.0f + D_80177CE8, 1); + Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_6005880); + Matrix_Pop(&gGfxMatrix); + } else { + for (i = 0; i < 4; i++) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, D_800C9E64[i], 0.0f, D_800C9E74[i], 1); + Matrix_Scale(gGfxMatrix, 1.5f, 1.0f, 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_6005880); + Matrix_Pop(&gGfxMatrix); + } + } + break; + case LEVEL_AQUAS: + RCP_SetupDL(&gMasterDisp, 0x14); + gSPFogPosition(gMasterDisp++, gFogNear, gFogFar); + if ((D_8015F964 == 0) && ((D_80177AC8 == 0) || (D_80177AC8 == 2))) { + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_600AB68)); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + G_TX_NOLOD); + gDPLoadSync(gMasterDisp++); + gDPLoadBlock(gMasterDisp++, G_TX_LOADTILE, 0, 0, 1023, 256); + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_600AB68)); + temp_s0 = fabsf(Math_ModF(2.0f * (D_80177CE8 * 0.2133333f), 128.0f)); + temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].unk_0AC) * 0.32f, 128.0f); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD); + gDPSetTileSize(gMasterDisp++, G_TX_RENDERTILE, temp_fv0, temp_s0, 124, 124); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -3000.0f, 1); + Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_600AB10); + Matrix_Pop(&gGfxMatrix); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 3000.0f, 1); + Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_600AB10); + Matrix_Pop(&gGfxMatrix); + } + if ((D_8015F964 != 0) || (D_80177AC8 == 0)) { + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_602ACC0)); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + G_TX_NOLOD); + gDPLoadSync(gMasterDisp++); + gDPLoadBlock(gMasterDisp++, G_TX_LOADTILE, 0, 0, 1023, 256); + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_602ACC0)); + temp_s0 = fabsf(Math_ModF(2.0f * (D_80177CE8 * 0.2133333f), 128.0f)); + temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].unk_0AC) * 0.32f, 128.0f); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD); + gDPSetTileSize(gMasterDisp++, G_TX_RENDERTILE, temp_fv0, temp_s0, 124, 124); + if (D_80177AC8 != 0) { + RCP_SetupDL(&gMasterDisp, 0x2F); + } else { + RCP_SetupDL(&gMasterDisp, 0x25); + } + if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_2) && (gPlayer->unk_1D0 < 2)) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255); + } else if (gPlayer->state_1C8 == PLAYERSTATE_1C8_7) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, D_8015F974, D_8015F978, D_8015F97C, D_8015F980); + } else { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, (s32) D_E16C50_801C4188); + } + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, D_8015F970, -3000.0f, 1); + Matrix_Scale(gGfxMatrix, 2.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_602AC40); + Matrix_Pop(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, D_8015F970, 3000.0f, 1); + Matrix_Scale(gGfxMatrix, 2.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_602AC40); + } + break; + case LEVEL_FORTUNA: + case LEVEL_KATINA: + case LEVEL_BOLSE: + case LEVEL_VENOM_2: + if ((D_8017812C != 0) || (gCurrentLevel == LEVEL_BOLSE)) { + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + } else { + RCP_SetupDL_20(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + } + for (i = 0; i < 4; i++) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, D_800C9E64[i], 0.0f, D_800C9E74[i], 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (gCurrentLevel == LEVEL_FORTUNA) { + gSPDisplayList(gMasterDisp++, D_6001360); + } else if (gCurrentLevel == LEVEL_KATINA) { + gSPDisplayList(gMasterDisp++, D_6009250); + } else if (gCurrentLevel == LEVEL_BOLSE) { + gSPDisplayList(gMasterDisp++, D_600A810); + } else if (gCurrentLevel == LEVEL_VENOM_2) { + gSPDisplayList(gMasterDisp++, D_6010700); + } + Matrix_Pop(&gGfxMatrix); + } + break; + case LEVEL_VERSUS: + if (D_8017812C != 0) { + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + } else { + RCP_SetupDL_20(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + } + for (i = 0; i < 4; i++) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, D_800C9E64[i], 0.0f, D_800C9E74[i], 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (gVersusStage == VS_STAGE_CORNERIA) { + gSPDisplayList(gMasterDisp++, D_3018800); + } else { + gSPDisplayList(gMasterDisp++, D_30160A0); + } + Matrix_Pop(&gGfxMatrix); + } + break; + case LEVEL_SOLAR: + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -2000.0f, 1); + Matrix_Scale(gGfxMatrix, 3.0f, 2.0f, 3.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (gFrameCount & 1) { + gSPDisplayList(gMasterDisp++, D_60005B0); + } else { + gSPDisplayList(gMasterDisp++, D_6002E60); + } + break; + case LEVEL_ZONESS: + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -1500.0f, 1); + Matrix_Scale(gGfxMatrix, 3.0f, 2.0f, 3.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (gFrameCount & 1) { + gSPDisplayList(gMasterDisp++, D_6008830); + } else { + gSPDisplayList(gMasterDisp++, D_600B0E0); + } + break; + } + Matrix_Pop(&gGfxMatrix); +} +#else +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/fox_bg/func_80040CE4.s") +#endif + +#ifdef NON_MATCHING +void func_80042D38(void) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, gPlayer[gPlayerNum].camEye.x, 2.0f + D_8017847C, gPlayer[gPlayerNum].camEye.z, 1); + Matrix_Scale(gGfxMatrix, 1.5f, 1.0f, 1.0f, 1); + RCP_SetupDL_37(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + GPC(255, 255, 255, 125); + Matrix_SetGfxMtx(&gMasterDisp); + if (gFrameCount & 1) { + GDL(D_602C030); + } else { + GDL(D_602C088); + } + Matrix_Pop(&gGfxMatrix); +} +#else +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/fox_bg/func_80042D38.s") +#endif diff --git a/src/main/fox_enmy.c b/src/main/fox_enmy.c index ea399bec..773bc8d0 100644 --- a/src/main/fox_enmy.c +++ b/src/main/fox_enmy.c @@ -2469,7 +2469,7 @@ void func_800690D0(s32 index, s32 objId) { func_E6A810_8018B720(&gObjects2F4[index]); break; case OBJ_408_319: - func_E51970_80198594(&gObjects408[index]); + func_DF4260_80198594(&gObjects408[index]); break; } } diff --git a/src/main/fox_enmy2.c b/src/main/fox_enmy2.c index 5fb147b3..fae0977b 100644 --- a/src/main/fox_enmy2.c +++ b/src/main/fox_enmy2.c @@ -4044,7 +4044,7 @@ void func_80074FF0(Object_2F4* obj2F4) { if (obj2F4->unk_150 > 0.001f) { Matrix_Scale(gGfxMatrix, obj2F4->unk_150, obj2F4->unk_150, obj2F4->unk_150, 1); Matrix_SetGfxMtx(&gMasterDisp); - func_800A1558(obj2F4->unk_154, 0xB0, D_9003890, D_9003DF0, D_9003330); + Texture_BlendRGBA16(obj2F4->unk_154, 16 * 11, D_9003890, D_9003DF0, D_9003330); gSPDisplayList(gMasterDisp++, D_9002CF0); } break; diff --git a/src/main/fox_play.c b/src/main/fox_play.c index 448e63b0..f70785cc 100644 --- a/src/main/fox_play.c +++ b/src/main/fox_play.c @@ -5501,7 +5501,7 @@ void func_800B56BC(Player* player) { var_fv1 = 0; } Math_SmoothStepToF(&player->unk_030, var_fv1 * 1.6f, 0.1f, 3.0f, 0.05f); - if (gLevelType == 1) { + if (gLevelType == LEVELTYPE_SPACE) { Math_SmoothStepToF(&player->unk_02C, var_fv0 * 0.8f, 0.1f, 3.0f, 0.05f); } else if (player->pos.y < (D_80177940 + 50.0f)) { Math_SmoothStepToF(&player->unk_02C, var_fv0 * 0.3f, 0.1f, 3.0f, 0.05f); @@ -5890,8 +5890,8 @@ void func_800B7184(Player* player, s32 arg1) { void func_800B71E4(Player* player) { switch (player->state_1C8) { case 3: - switch (gLevelMode) { /* switch 1; irregular */ - case 0: /* switch 1 */ + switch (gLevelMode) { + case LEVELMODE_ON_RAILS: if (player->form == FORM_ARWING) { if (player->unk_238 == 0) { func_800B56BC(player); @@ -5904,10 +5904,10 @@ void func_800B71E4(Player* player) { func_E16C50_801AA8E8(player); } break; - case 1: /* switch 1 */ + case LEVELMODE_ALL_RANGE: func_800B7184(player, 0); break; - case 2: /* switch 1 */ + case LEVELMODE_UNK_2: func_E9F1D0_801A5FC0(player); break; } diff --git a/src/main/fox_radio.c b/src/main/fox_radio.c index 6b9f8b64..4e39a9e6 100644 --- a/src/main/fox_radio.c +++ b/src/main/fox_radio.c @@ -12,7 +12,7 @@ f32 D_80178740; s32 D_80178744; s32 D_80178748; -s32 sCurrentMsgPri = 0; +s32 gCurrentMsgPri = 0; void func_800BA760(void) { RCP_SetupDL_36(); @@ -22,16 +22,16 @@ void func_800BA760(void) { } s32 func_800BA7BC(u16* msg, s32 priority) { - if (priority == sCurrentMsgPri) { + if (priority == gCurrentMsgPri) { return 0; } - if (priority < sCurrentMsgPri) { + if (priority < gCurrentMsgPri) { return 1; } - if (sCurrentMsgPri < priority) { - sCurrentMsgPri = priority; + if (gCurrentMsgPri < priority) { + gCurrentMsgPri = priority; return 2; } } @@ -78,7 +78,7 @@ void func_800BA808(u16* msg, s32 character) { return; } - sCurrentMsgPri = priority; + gCurrentMsgPri = priority; D_80177D68 = character; if (gExpertMode && ((character == RCID_FOX) || (character == RCID_FOX_RED))) { @@ -347,10 +347,10 @@ void func_800BAAE8(void) { case RCID_BILL_OPEN: sp44 = D_D002ED0; break; - case RCID_PEPPER: + case RCID_GEN_PEPPER: sp44 = D_D007A70; break; - case RCID_PEPPER_OPEN: + case RCID_GEN_PEPPER_OPEN: sp44 = D_D008990; break; case RCID_ROB64_TITLE: @@ -359,10 +359,10 @@ void func_800BAAE8(void) { case RCID_ROB64_TITLE_OPEN: sp44 = D_E00F020; break; - case RCID_PEPPER_TITLE: + case RCID_GEN_PEPPER_TITLE: sp44 = D_E00FF40; break; - case RCID_PEPPER_TITLE_OPEN: + case RCID_GEN_PEPPER_TITLE_OPEN: sp44 = D_E010E60; break; case RCID_TRAINING: @@ -636,7 +636,7 @@ void func_800BB5D0(void) { D_80177D38 -= 0.25f; if (D_80177D38 == 0) { D_80178300 = 0; - sCurrentMsgPri = 0; + gCurrentMsgPri = 0; gRadioState = 0; } D_801782A4 = 2; diff --git a/src/main/fox_std_lib.c b/src/main/fox_std_lib.c index 6a5cb6ba..86e4d71a 100644 --- a/src/main/fox_std_lib.c +++ b/src/main/fox_std_lib.c @@ -1183,36 +1183,46 @@ s32 Graphics_GetSmallTextWidth(char* text) { void func_800A1540(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { } -#ifdef NON_MATCHING -// It's something like this. -// void func_800A1558(f32 weight, u16 size, u16 *src1, u16 *src2, u16 *dst) { -// f32 r1; -// f32 g1; -// f32 b1; -// s32 a1; -// f32 r2; -// f32 g2; -// f32 b2; -// s32 a2; -// s32 i; +// 20 kinds of fake. Try to improve it here: https://decomp.me/scratch/NMQZB +void Texture_BlendRGBA16(f32 weight, u16 size, u16* src1, u16* src2, u16* dst) { + s32 i; + u16* var_a1 = SEGMENTED_TO_VIRTUAL(src1); + u16* var_a2 = SEGMENTED_TO_VIRTUAL(src2); + u16* var_a3 = SEGMENTED_TO_VIRTUAL(dst); + u16 temp1; + u16 temp2; + u16 temp3; + f32 r1; + f32 g1; + f32 b1; + s32 a1; + f32 r2; + f32 g2; + f32 b2; + s32 a2; + f32 red; + f32 grn; + f32 blu; + g2 = RGBA16_GRN(temp2); // mega fake -// src1 = SEGMENTED_TO_VIRTUAL(src1); -// src2 = SEGMENTED_TO_VIRTUAL(src2); -// dst = SEGMENTED_TO_VIRTUAL(dst); -// for(i = 0; i < size; i++) { -// r1 = RGBA16_RED(src1[i]); -// g1 = RGBA16_GRN(src1[i]); -// b1 = RGBA16_BLU(src1[i]); -// a1 = src1[i] & 1; -// r2 = RGBA16_RED(src2[i]); -// g2 = RGBA16_GRN(src2[i]); -// b2 = RGBA16_BLU(src2[i]); -// a2 = src2[i] & 1; -// dst[i] = RGBA16_PACK((r1 - r2) * weight / 100.0f + r2, (g1 - g2) * weight / 100.0f + g2, (b1 - b2) * weight / -// 100.0f + b2, a1 | a2); -// } -// } -#else -void func_800A1558(f32 weight, u16 size, void* src1, void* src2, void* dst); -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/fox_std_lib/func_800A1558.s") -#endif + for (i = 0; i < size; i++) { + temp1 = var_a1[i]; + r1 = RGBA16_RED(temp1); + g1 = RGBA16_GRN(temp1); + b1 = RGBA16_BLU(temp1); + temp1 = temp1 & 1; // fake? + if (1) {} // fake? + temp2 = var_a2[i]; + r2 = RGBA16_RED(temp2); + g2 = RGBA16_GRN(temp2); + b2 = RGBA16_BLU(temp2); + a2 = temp2 & 1; + + red = (r2 - r1) * weight / 100.0f + r1; + grn = (g2 - g1) * weight / 100.0f + g1; + blu = (b2 - b1) * weight / 100.0f + b1; + + var_a3[i] = ((u16) (red * 2048.0f) & 0xF800) | ((u16) (grn * 64.0f) & 0x7C0) | ((u16) (blu * 2.0f) & 0x3E) | + (temp1 | a2 & 1); + } +} diff --git a/src/main/sf_2EFE0.c b/src/main/sf_2EFE0.c deleted file mode 100644 index 4ede2cea..00000000 --- a/src/main/sf_2EFE0.c +++ /dev/null @@ -1,153 +0,0 @@ -#include "global.h" - -void func_80187520(s32, void*); - -void func_8002E3E0(Object_2F4* obj2F4) { - s32 hits = 0; - - if (gCurrentLevel == LEVEL_VENOM_2) { - if (D_8015F940 < 0xF00) { - hits = 50; - } else if (D_8015F940 < 0x1680) { - hits = 30; - } else if (D_8015F940 < 0x1E00) { - hits = 20; - } else if (D_8015F940 < 0x2580) { - hits = 10; - } - } else { - if (D_8015F940 < 0xF00) { - hits = 10; - } else if (D_8015F940 < 0x1680) { - hits = 5; - } else if (D_8015F940 < 0x1E00) { - hits = 2; - } else if (D_8015F940 < 0x2580) { - hits = 1; - } - } - if (hits != 0) { - func_80077240(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, hits); - } - gHitCount += hits; - D_80177850 = 15; -} - -s32 func_8002E4F8(u16* arg0, s32 arg1) { - if ((gRadioState == 0) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_0)) { - func_800BA808(arg0, arg1); - return true; - } else { - return false; - } -} - -void func_8002E548(void) { - if (D_8015F93C != 0) { - s32 sp24 = D_8015F930[1]; - - func_8008E51C(D_8015F930, D_8015F944); - if ((D_8015F930[0] == 0) && (sp24 != D_8015F930[1]) && (D_8015F930[1] < 15)) { - Audio_PlaySfx(0x4900C02A, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - } - } -} - -void func_8002E5E0(Object_408* obj408) { - func_80187520(0x5B, obj408); -} - -void func_8002E604(Object_408* obj408) { - func_80187520(0x5C, obj408); -} - -void func_8002E628(Object_408* obj408) { - func_80187520(0x5D, obj408); -} - -void func_8002E64C(Object_408* obj408) { - func_80187520(0x5E, obj408); -} - -void func_8002E670(Object_2F4* obj408) { - func_80187520(0x5F, obj408); -} - -void func_8002E694(Object_2F4* obj408) { - func_80187520(0x60, obj408); -} - -void func_8002E6B8(Object_2F4* obj408) { - func_80187520(0x61, obj408); -} - -void func_8002E6DC(Object_2F4* obj408) { - func_80187520(0x62, obj408); -} - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002E700.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002ED60.s") - -void func_8002EE34(void) { - D_8015F904 = gRadioState = gObjects2F4[1].unk_054 = gObjects2F4[2].unk_054 = gObjects2F4[3].unk_054 = 0; -} - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002EE64.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002F180.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002F3E0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002F5F4.s") - -void func_8002F64C(void) { - if ((D_80177CD0[0] + D_80177CD0[1] + D_80177CD0[2] + D_80177CD0[3]) == 0) { - gRadioState = 0; - } - func_8002F5F4(); -} - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002F69C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002FB4C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002FC00.s") - -s32 func_8002FE74(void) { - switch (gCurrentLevel) { - case LEVEL_FORTUNA: - return D_8015F928 == (D_800C9B4C + 0x960); - case LEVEL_BOLSE: - return gObjects408[2].unk_0D0 == 4; - case LEVEL_KATINA: - return gObjects408[1].unk_0A6 == 2; - } - return 0; -} - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002FEF0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8003010C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_800301F4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8003049C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8003088C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_80031858.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_80031900.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_800319AC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_80034E64.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_80035098.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_800352E0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_80035448.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/D_800D4E10.s") diff --git a/src/main/sf_36930.c b/src/main/sf_36930.c index eed6e9a1..24997fc8 100644 --- a/src/main/sf_36930.c +++ b/src/main/sf_36930.c @@ -1,75 +1,76 @@ -#include "common.h" +#include "global.h" -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_80035D30.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80035D30.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_80035DEC.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80035DEC.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/PlayerShot_Initialize.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/PlayerShot_Initialize.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_80035E78.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80035E78.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_80036318.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80036318.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_80036528.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80036528.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_800365E4.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_800365E4.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_800366CC.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_800366CC.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_80036770.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80036770.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_80036874.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80036874.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_80036F88.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80036F88.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_80037438.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80037438.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_80037698.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80037698.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003774C.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003774C.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_80037CF4.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80037CF4.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_80038140.s") +void func_80038140(PlayerShot* shot); +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80038140.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_80038F34.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80038F34.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_80039210.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80039210.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_80039A50.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80039A50.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003AF88.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003AF88.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003AFD8.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003AFD8.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003B00C.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003B00C.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003B55C.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003B55C.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003BA80.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003BA80.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003BAA0.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003BAA0.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003BACC.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003BACC.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003BB4C.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003BB4C.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003BEF4.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003BEF4.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003C008.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003C008.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003C3D8.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003C3D8.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003C4D0.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003C4D0.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003CC08.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003CC08.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003CF90.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003CF90.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003D54C.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003D54C.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003D854.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003D854.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003D9B8.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003D9B8.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_36930/func_8003DA0C.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003DA0C.s") diff --git a/src/main/sf_3E6F0.c b/src/main/sf_3E6F0.c index fe631268..b18aa868 100644 --- a/src/main/sf_3E6F0.c +++ b/src/main/sf_3E6F0.c @@ -1,21 +1,1125 @@ #include "global.h" -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_3E6F0/func_8003DAF0.s") +typedef struct { + u8 r, g, b; +} Color_RGB8; -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_3E6F0/func_8003DE68.s") +extern f32 D_8015F960; +extern u8 D_8015F964; +extern f32 D_8015F968; +extern f32 D_8015F96C; +extern f32 D_8015F970; +extern s32 D_8015F974; +extern s32 D_8015F978; +extern s32 D_8015F97C; +extern s32 D_8015F980; +extern f32 D_8015F984; +// extern s32 D_8015F988[0x67F] // enormous unused space. D_8015F984[0x680] perhaps? Fits the divisible by 13 pattern +extern f32 D_80161394; // can be static + +extern f32 D_800C9C30; +extern u16 D_800C9C34; +// D_800C9C38 missing +extern u16 D_800C9C3C[16]; +extern Gfx* D_800C9C5C[13]; +extern Gfx* D_800C9C90[13]; +extern f32 D_800C9CC4[13]; +extern f32 D_800C9CF8[13]; +extern f32 D_800C9D2C[13]; +extern f32 D_800C9D60[13]; +extern Color_RGB8 D_800C9D94[13]; +extern Color_RGB8 D_800C9DBC[13]; +extern s32 D_800C9DE4[13]; +extern s32 D_800C9E18[13]; +extern s32 D_800C9E4C[2]; +extern s32 D_800C9E54[2]; +extern f32 D_800C9E5C[2]; +extern f32 D_800C9E64[4]; +extern f32 D_800C9E74[4]; + +void func_8003DAF0(void) { + f32 var_fa0; + f32 var_fv1; + s16 temp_ft0; + s16 temp_ft2; + s32 i; + s32 var_s2; + f32 sp70; + f32 spf6C; + f32 spf68; + f32 spf64; + f32* sp60; + f32* sp5C; + u32* sp58; + + gDPPipeSync(gMasterDisp++); + gDPSetCycleType(gMasterDisp++, G_CYC_FILL); + gDPSetCombineMode(gMasterDisp++, G_CC_SHADE, G_CC_SHADE); + gDPSetRenderMode(gMasterDisp++, G_RM_OPA_SURF, G_RM_OPA_SURF2); + var_s2 = D_80178410; + if (var_s2 != 0) { + if (D_80178420 >= 480.0f) { + D_80178420 -= 480.0f; + } + if (D_80178424 >= 360.0f) { + D_80178424 -= 360.0f; + } + if (D_80178420 < 0.0f) { + D_80178420 += 480.0f; + } + if (D_80178424 < 0.0f) { + D_80178424 += 360.0f; + } + spf68 = D_80178420; + spf64 = D_80178424; + + sp60 = D_80178288; + sp5C = D_80178290; + sp58 = D_80178298; + + if (gGameState != 7) { + var_s2 = 1000; + } + sp70 = __cosf(D_80178428); + spf6C = __sinf(D_80178428); + for (i = 0; i < var_s2; i++, sp5C++, sp60++, sp58++) { + var_fv1 = *sp60 + spf68; + var_fa0 = *sp5C + spf64; + if (var_fv1 >= 400.0f) { + var_fv1 -= 480.0f; + } + var_fv1 -= 160.0f; + if (var_fa0 >= 300.0f) { + var_fa0 -= 360.0f; + } + var_fa0 -= 120.0f; + + temp_ft2 = (sp70 * var_fv1) + (spf6C * var_fa0) + 160.0f; + temp_ft0 = (-spf6C * var_fv1) + (sp70 * var_fa0) + 120.0f; + if ((temp_ft2 >= 0) && (temp_ft2 < SCREEN_WIDTH) && (temp_ft0 > 0) && (temp_ft0 < SCREEN_HEIGHT)) { + gDPPipeSync(gMasterDisp++); + gDPSetFillColor(gMasterDisp++, *sp58); + gDPFillRectangle(gMasterDisp++, temp_ft2, temp_ft0, temp_ft2, temp_ft0); + } + } + } + gDPPipeSync(gMasterDisp++); + gDPSetColorDither(gMasterDisp++, G_CD_MAGICSQ); +} + +void func_8003DE68(s32 arg0, s32 arg1) { + f32 var_fa0; // 8C + f32 var_fv1; // 88 + s16 temp_ft0; // 84 + s16 temp_ft2; + s32 i; // 80 + s32 var_s2; // 7C + f32 sp70; // 78 + f32 spf6C; // 74 + f32 spf68; // 70 + f32 spf64; // 6C + f32* sp60; // 68 + f32* sp5C; // 64 + u32* sp58; // 60 + + gDPPipeSync(gMasterDisp++); + gDPSetCycleType(gMasterDisp++, G_CYC_FILL); + gDPSetCombineMode(gMasterDisp++, G_CC_SHADE, G_CC_SHADE); + gDPSetRenderMode(gMasterDisp++, G_RM_OPA_SURF, G_RM_OPA_SURF2); + + if (D_80178420 >= 480.0f) { + D_80178420 -= 480.0f; + } + if (D_80178424 >= 360.0f) { + D_80178424 -= 360.0f; + } + if (D_80178420 < 0.0f) { + D_80178420 += 480.0f; + } + if (D_80178424 < 0.0f) { + D_80178424 += 360.0f; + } + + spf68 = D_80178420; + spf64 = D_80178424; + + sp60 = D_80178288; + sp5C = D_80178290; + sp58 = D_80178298; + var_s2 = 500; + + sp70 = __cosf(D_80178428); + spf6C = __sinf(D_80178428); + for (i = 0; i < var_s2; i++, sp5C++, sp60++, sp58++) { + var_fv1 = *sp60 + spf68; + var_fa0 = *sp5C + spf64; + if (var_fv1 >= 400.0f) { + var_fv1 -= 480.0f; + } + var_fv1 -= 160.0f; + if (var_fa0 >= 300.0f) { + var_fa0 -= 360.0f; + } + var_fa0 -= 120.0f; + + temp_ft2 = (sp70 * var_fv1) + (spf6C * var_fa0) + 160.0f; + temp_ft0 = (-spf6C * var_fv1) + (sp70 * var_fa0) + 120.0f; + if ((temp_ft2 >= 0) && (temp_ft2 < SCREEN_WIDTH) && (arg0 < temp_ft0) && (temp_ft0 < arg1)) { + gDPPipeSync(gMasterDisp++); + gDPSetFillColor(gMasterDisp++, *sp58); + gDPFillRectangle(gMasterDisp++, temp_ft2, temp_ft0, temp_ft2, temp_ft0); + } + } + gDPPipeSync(gMasterDisp++); + gDPSetColorDither(gMasterDisp++, G_CD_MAGICSQ); +} void func_8003E1E0(void) { } -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_3E6F0/func_8003E1E8.s") +#ifdef NON_MATCHING +void func_8003E1E8(void) { + f32 sp13C; + f32 sp138; + f32 sp134; + f32 sp130; + f32 sp12C; + f32 sp128; + s32 sp124; + u8 var_s0; + s32 sp11C; -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_3E6F0/func_80040450.s") + if (D_80177AB0 != 0) { + var_s0 = gLevelType; + if ((gCurrentLevel == LEVEL_VERSUS) && (gVersusStage == VS_STAGE_SECTOR_Z)) { + var_s0 = LEVELTYPE_PLANET; + } + if (gCurrentLevel == LEVEL_TRAINING) { + var_s0 = LEVELTYPE_SPACE; + } + sp11C = gCurrentLevel; + Matrix_Push(&gGfxMatrix); + if (D_80177C70 == 2) { + Matrix_Scale(gGfxMatrix, 1.2f, 1.2f, 1.0f, 1); + } + switch (var_s0) { + case LEVELTYPE_PLANET: + RCP_SetupDL(&gMasterDisp, 0x11); + switch (sp11C) { + case LEVEL_FORTUNA: + case LEVEL_KATINA: + case LEVEL_VENOM_2: + case LEVEL_VERSUS: + sp134 = (gPlayer[gPlayerNum].unk_05C * -6000.0f) - (gPlayer[gPlayerNum].camEye.y * 0.4f); + sp13C = Math_ModF(Math_RadToDeg(gPlayer[gPlayerNum].unk_058) * -20.222221f * 5.0f, 7280.0f); + Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].unk_034 * 0.017453292f, 1); + Matrix_Translate(gGfxMatrix, sp13C, -2000.0f + sp134, -6000.0f, 1); + if (gCurrentLevel == LEVEL_FORTUNA) { + Matrix_Translate(gGfxMatrix, 0.0f, -2000.0f, 0, 1); + } else if (gCurrentLevel == LEVEL_KATINA) { + Matrix_Translate(gGfxMatrix, 0.0f, -2500.0f, 0, 1); + } + Matrix_SetGfxMtx(&gMasterDisp); + switch (gCurrentLevel) { + case LEVEL_VERSUS: + if (gVersusStage == VS_STAGE_CORNERIA) { + gSPDisplayList(gMasterDisp++, D_302D4D0); + } else if (gVersusStage == VS_STAGE_KATINA) { + gSPDisplayList(gMasterDisp++, D_30146B0); + } else { + gSPDisplayList(gMasterDisp++, D_3011E40); + } + break; + case LEVEL_FORTUNA: + gSPDisplayList(gMasterDisp++, D_600D9F0); + break; + case LEVEL_KATINA: + gSPDisplayList(gMasterDisp++, D_600F1D0); + break; + case LEVEL_VENOM_2: + gSPDisplayList(gMasterDisp++, D_600F670); + break; + } + Matrix_Translate(gGfxMatrix, 7280.0f, 0.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + switch (gCurrentLevel) { + case LEVEL_VERSUS: + if (gVersusStage == VS_STAGE_CORNERIA) { + gSPDisplayList(gMasterDisp++, D_302D4D0); + } else if (gVersusStage == VS_STAGE_KATINA) { + gSPDisplayList(gMasterDisp++, D_30146B0); + } else { + gSPDisplayList(gMasterDisp++, D_3011E40); + } + break; + case LEVEL_FORTUNA: + gSPDisplayList(gMasterDisp++, D_600D9F0); + break; + case LEVEL_KATINA: + gSPDisplayList(gMasterDisp++, D_600F1D0); + break; + case LEVEL_VENOM_2: + gSPDisplayList(gMasterDisp++, D_600F670); + break; + } + break; + case LEVEL_CORNERIA: + case LEVEL_VENOM_1: + sp134 = (gPlayer[gPlayerNum].unk_05C * -6000.0f) - (gPlayer[gPlayerNum].camEye.y * 0.6f); + sp13C = Math_ModF(Math_RadToDeg(gPlayer[gPlayerNum].unk_058) * -20.222221f * 5.0f, 7280.0f); + Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].unk_034 * 0.017453292f, 1); + Matrix_Translate(gGfxMatrix, sp13C, -2000.0f + sp134, -6000.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + switch (gCurrentLevel) { + case LEVEL_CORNERIA: + gSPDisplayList(gMasterDisp++, D_60059F0); + break; + case LEVEL_VENOM_1: + gSPDisplayList(gMasterDisp++, D_60046F0); + break; + } + Matrix_Translate(gGfxMatrix, 7280.0f, 0.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + switch (gCurrentLevel) { + case LEVEL_CORNERIA: + gSPDisplayList(gMasterDisp++, D_60059F0); + break; + case LEVEL_VENOM_1: + gSPDisplayList(gMasterDisp++, D_60046F0); + break; + } + break; + case LEVEL_VENOM_ANDROSS: + if (D_80177AB0 != 6) { + if ((D_80177AB0 == 2) || (D_80177AB0 == 7)) { + Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].unk_034 * 0.017453292f, 1); + Matrix_Translate(gGfxMatrix, 0.0f, -4000.0f, -7000.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_600F670); + } else if ((D_80177AB0 == 3) || (D_80177AB0 == 4)) { + RCP_SetupDL(&gMasterDisp, 0x3E); + if (D_80177AB0 == 4) { + if (!(gFrameCount & 8)) { + Math_SmoothStepToF(&D_80161394, 0.0f, 1.0f, 30.0f, 0); + } else { + Math_SmoothStepToF(&D_80161394, 120.0f, 1.0f, 30.0f, 0); + } + } else { + D_80161394 = 255.0f; + } + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, (s32) D_80161394, (s32) D_80161394, + (s32) D_800C9C30); -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_3E6F0/func_80040954.s") + sp134 = + (gPlayer[gPlayerNum].unk_05C * -6000.0f) - (gPlayer[gPlayerNum].camEye.y * 0.4f); + sp13C = + Math_ModF(Math_RadToDeg(gPlayer[gPlayerNum].unk_058) * -20.222221f * 5.0f, 7280.0f); + Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].unk_034 * 0.017453292f, 1); + Matrix_Translate(gGfxMatrix, sp13C, -2000.0f + sp134, -6000.0f, 1); + Matrix_Translate(gGfxMatrix, 0.0f, -2500.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_60038E0); + Matrix_Translate(gGfxMatrix, 7280.0f, 0.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_60038E0); + } else { + RCP_SetupDL(&gMasterDisp, 0x3E); + if (D_80177AB0 == 5) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 64); + } else { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 255, 128, (s32) D_800C9C30); + } + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -290.0f, 1); + Matrix_Push(&gGfxMatrix); + Matrix_Scale(gGfxMatrix, 11.0f, 11.0f, 1.0f, 1); + Matrix_RotateZ(gGfxMatrix, + (gPlayer->unk_034 + ((f32) gFrameCount * 1.5f)) * 0.017453292f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_C039208); + Matrix_Pop(&gGfxMatrix); + if (D_80177AB0 != 5) { + Matrix_Push(&gGfxMatrix); + Matrix_Scale(gGfxMatrix, 10.0f, 10.0f, 1.0f, 1); + Matrix_RotateZ(gGfxMatrix, + (gPlayer->unk_034 + ((f32) gFrameCount * -1.3f)) * 0.017453292f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_C039208); + Matrix_Pop(&gGfxMatrix); + } + } + } + break; + case LEVEL_AQUAS: + if (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) { + sp13C = ((Math_RadToDeg(gPlayer[gPlayerNum].unk_058) - gPlayer[gPlayerNum].unk_114)); + sp134 = (gPlayer[gPlayerNum].unk_05C * -7000.0f) - (gPlayer[gPlayerNum].camEye.y * 0.6f); + sp13C = Math_ModF(sp13C * -40.44444f * 2.0f, 7280.0f); + RCP_SetupDL_17(); + Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].unk_034 * 0.017453292f, 1); + Matrix_Scale(gGfxMatrix, 1.5f, 1.0f, 1.0f, 1); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, sp13C, sp134, -7000.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) { + gSPDisplayList(gMasterDisp++, D_601AFF0); + } else { + gSPDisplayList(gMasterDisp++, D_601C080); + } + + if (sp13C < 0) { + sp13C = 1.0f; + } else { + sp13C = -1.0f; + } + Matrix_Translate(gGfxMatrix, 7280.0f * sp13C, 0.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) { + gSPDisplayList(gMasterDisp++, D_601AFF0); + + } else { + gSPDisplayList(gMasterDisp++, D_601C080); + } + Matrix_Pop(&gGfxMatrix); + } + break; + case LEVEL_SOLAR: + case LEVEL_ZONESS: + case LEVEL_MACBETH: + case LEVEL_TITANIA: + sp13C = (Math_RadToDeg(gPlayer[gPlayerNum].unk_058) - gPlayer[gPlayerNum].unk_114) * + -40.44444f * 2.0f; + sp134 = (gPlayer[gPlayerNum].unk_05C * -7000.0f) - (gPlayer[gPlayerNum].camEye.y * 0.6f); + if ((gCurrentLevel == LEVEL_TITANIA) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) && + (gPlayer->unk_1D0 < 3)) { + D_8015F968 += __sinf(gPlayer->unk_058) * 20.0f; + sp13C += D_8015F968; + } + if ((gCurrentLevel == LEVEL_SOLAR) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) && + (gPlayer->unk_1D0 >= 2) && (gPlayer->camEye.z <= -1900.0f)) { + D_8015F968 = __sinf(gPlayer->unk_05C) * 7000.0f; + sp134 -= fabsf(D_8015F968); + } + sp13C = Math_ModF(sp13C, 7280.0f); + RCP_SetupDL_17(); + Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].unk_034 * 0.017453292f, 1); + Matrix_Scale(gGfxMatrix, 1.5f, 1.0f, 1.0f, 1); + if ((gCurrentLevel == LEVEL_TITANIA) || (gCurrentLevel == LEVEL_ZONESS)) { + Matrix_Translate(gGfxMatrix, sp13C, -3000.0f + sp134, -7000.0f, 1); + } else if (gCurrentLevel == LEVEL_SOLAR) { + Matrix_Translate(gGfxMatrix, sp13C, -3500.0f + sp134, -7000.0f, 1); + } else if (gCurrentLevel == LEVEL_MACBETH) { + Matrix_Translate(gGfxMatrix, sp13C, -4000.0f + sp134, -7000.0f, 1); + } + Matrix_SetGfxMtx(&gMasterDisp); + if (gCurrentLevel == LEVEL_TITANIA) { + gSPDisplayList(gMasterDisp++, D_6000A80); + } else if (gCurrentLevel == LEVEL_MACBETH) { + gSPDisplayList(gMasterDisp++, D_6019220); + } else if (gCurrentLevel == LEVEL_ZONESS) { + gSPDisplayList(gMasterDisp++, D_6013480); + } else if (gCurrentLevel == LEVEL_SOLAR) { + gSPDisplayList(gMasterDisp++, D_601E150); + } + if (sp13C < 0) { + sp13C = 1.0f; + } else { + sp13C = -1.0f; + } + Matrix_Translate(gGfxMatrix, 7280.0f * sp13C, 0.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (gCurrentLevel == LEVEL_TITANIA) { + gSPDisplayList(gMasterDisp++, D_6000A80); + } else if (gCurrentLevel == LEVEL_MACBETH) { + gSPDisplayList(gMasterDisp++, D_6019220); + } else if (gCurrentLevel == LEVEL_ZONESS) { + gSPDisplayList(gMasterDisp++, D_6013480); + } else if (gCurrentLevel == LEVEL_SOLAR) { + gSPDisplayList(gMasterDisp++, D_601E150); + } + break; + } + break; + case LEVELTYPE_SPACE: + if (gPlayer->state_1C8 != PLAYERSTATE_1C8_8) { + Matrix_Push(&gGfxMatrix); + sp12C = Math_RadToDeg(gPlayer->unk_058); + sp130 = Math_RadToDeg(gPlayer->unk_05C); + if (((sp12C < 45.0f) || (sp12C > 315.0f)) && ((sp130 < 40.0f) || (sp130 > 325.0f))) { + RCP_SetupDL_36(); + sp138 = D_80178420; + sp134 = D_80178424; + if (((gCurrentLevel == LEVEL_SECTOR_X) || (gCurrentLevel == LEVEL_METEO)) && + (D_8017827C == 1)) { + sp11C = LEVEL_WARP_ZONE; + } + if (sp11C == LEVEL_SECTOR_X) { + sp138 = Math_ModF(sp138 + 60.0f, 480.0f); + sp134 = Math_ModF(sp134 + 360.0f - 40.0f, 360.0f); + } else if (sp11C == LEVEL_TRAINING) { + sp138 = Math_ModF(sp138 - 30.0f, 480.0f); + sp134 = Math_ModF(sp134 + 360.0f - 40.0f, 360.0f); + } else if ((sp11C == LEVEL_SECTOR_Y) && (gLevelMode == LEVELMODE_ON_RAILS)) { + sp138 = Math_ModF(sp138 + 480.0f - 60.0f, 480.0f); + sp134 = Math_ModF(sp134, 360.0f); + } else if (sp11C == LEVEL_FORTUNA) { + sp138 = Math_ModF(sp138 - 34.5f, 480.0f); + sp134 = Math_ModF(sp134 + 19.0f, 360.0f); + } else if (sp11C == LEVEL_BOLSE) { + if ((gPlayer->state_1C8 != PLAYERSTATE_1C8_7) || (gPlayer->unk_1D0 < 10)) { + sp134 = Math_ModF(sp134 + 360.0f - 100.0f, 360.0f); + } + } else { + sp138 = Math_ModF(sp138, 480.0f); + sp134 = Math_ModF(sp134, 360.0f); + } + if ((sp12C < 180.0f) && (sp138 > 380.0f)) { + sp138 = -(480.0f - sp138); + } + if ((sp130 > 180.0f) && (sp134 > 280.0f)) { + sp134 = -(360.0f - sp134); + } + Matrix_RotateZ(gGfxMatrix, D_80178428, 1); + switch (sp11C) { + case LEVEL_WARP_ZONE: + if ((s32) D_8015F960 != 0) { + RCP_SetupDL_62(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, (s32) D_8015F960); + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); + Matrix_Scale(gGfxMatrix, 1.7f, 1.7f, 1.0f, 1); + Matrix_Push(&gGfxMatrix); + Matrix_RotateZ(gGfxMatrix, -(f32) gFrameCount * 10.0f * 0.017453292f, 1); + Matrix_Scale(gGfxMatrix, 1.07f, 0.93f, 1.0f, 1); + Matrix_RotateZ(gGfxMatrix, (f32) gFrameCount * 10.0f * 0.017453292f, 1); + Matrix_Scale(gGfxMatrix, 1.07f, 0.93f, 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_7001540); + Matrix_Pop(&gGfxMatrix); + } + break; + case LEVEL_METEO: + if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_7) && (D_80177A80 > 260)) { + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f) - 30.0f, -290.0f, 1); + Matrix_Scale(gGfxMatrix, 0.5f, 0.5f, 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_600DDF0); + } else if (D_80177D20 > 185668.0f) { + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f) - 130.0f, -290.0f, + 1); + Matrix_Scale(gGfxMatrix, 0.4f, 0.4f, 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_600DDF0); + } + break; + case LEVEL_SECTOR_X: + if (gOverlayStage == 0) { + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); + Matrix_Scale(gGfxMatrix, 3.0f, 3.0f, 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + RCP_SetupDL_62(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 192); + gSPDisplayList(gMasterDisp++, D_6029890); + } + break; + case LEVEL_TRAINING: + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); + Matrix_Scale(gGfxMatrix, 0.2f, 0.2f, 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + RCP_SetupDL_62(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255); + gSPDisplayList(gMasterDisp++, D_6003760); + break; + case LEVEL_AREA_6: + case LEVEL_UNK_4: + sp128 = (D_80177D20 * 0.00004f) + 0.5f; + if (sp128 > 3.5f) { + sp128 = 3.5f; + } + if (gPlayer->state_1C8 == PLAYERSTATE_1C8_7) { + sp128 = D_8015F984; + if (sp128 > 3.5f) { + sp128 = 3.5f; + } + } + sp128 = sp128; + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); + Matrix_Scale(gGfxMatrix, sp128 * 0.75, sp128 * 0.75f, 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_601BB40); + break; + case LEVEL_FORTUNA: + sp128 = 1.5f; + if ((D_80177A80 > 400) && (D_80177930 == 0)) { + sp128 = 0.75f; + } + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); + Matrix_Scale(gGfxMatrix, sp128, sp128, sp128, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_600B4B0); + break; + case LEVEL_BOLSE: + sp128 = 1.0f; + if ((D_80177A80 > 500) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_7)) { + sp128 = 1.3f; + } + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); + Matrix_Scale(gGfxMatrix, sp128, sp128, sp128, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_600D190); + break; + case LEVEL_SECTOR_Z: + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); + Matrix_Scale(gGfxMatrix, 0.5f, 0.5f, 0.5f, 1); + Matrix_RotateX(gGfxMatrix, 1.5707964f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_6002F80); + break; + case LEVEL_SECTOR_Y: + Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); + Matrix_Scale(gGfxMatrix, 0.4f, 0.4f, 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + RCP_SetupDL_62(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 192); + gSPDisplayList(gMasterDisp++, D_6001840); + break; + } + } + Matrix_Pop(&gGfxMatrix); + } + if (D_80178414 > 0.0f) { + f32* sp50 = D_80178288; + f32* sp4C = D_80178290; + f32 sp48; + s32 pad; + s32 pad2; + + RCP_SetupDL_14(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 128, 128, 255, 255); + sp124 = 0; + sp48 = 0.0f; + for (sp124 = 0; sp124 < 300; sp124++, sp50++, sp4C++) { + *sp50 = (Rand_ZeroOneSeeded() * 480.0f) - 80.0f; + *sp4C = (Rand_ZeroOneSeeded() * 360.0f) - 60.0f; + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, (*sp50 - 160.0f) * 10.0f, (*sp4C - 120.0f) * 10.0f, -5000.0f, 1); + Matrix_RotateZ(gGfxMatrix, sp48, 1); + Matrix_Scale(gGfxMatrix, 10.0f, 1.0f, -D_80178414, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_800CFD80); + Matrix_Pop(&gGfxMatrix); + sp48 += 0.7853982f; + } + } + break; + } + Matrix_Pop(&gGfxMatrix); + } +} +#else +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/fox_bg/func_8003E1E8.s") +#endif + +void func_80040450(void) { + f32 sp44; + f32 var_fa0; + Color_RGB8* var_s1; + s32* var_s2; + Gfx** var_s3; + f32* var_s4; + s32 i; + s32 temp = gLevelType; + + if ((gCurrentLevel == LEVEL_KATINA) || (gCurrentLevel == LEVEL_VENOM_2) || (gCurrentLevel == LEVEL_VENOM_ANDROSS) || + (gCurrentLevel == LEVEL_SOLAR) || (gCurrentLevel == LEVEL_TRAINING) || gVersusMode) { + return; + } + D_80178380[gPlayerNum] -= D_800C9E4C[temp]; + if (D_80178380[gPlayerNum] > 300) { + D_80178380[gPlayerNum] = 0; + } + if (((gCurrentLevel == LEVEL_AQUAS) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_2)) || + (((gPlayer[gPlayerNum].state_1C8 == PLAYERSTATE_1C8_5) || (gLevelMode == LEVELMODE_ALL_RANGE) || + (gPlayer[gPlayerNum].state_1C8 == PLAYERSTATE_1C8_7)) && + (gLevelType == LEVELTYPE_PLANET) && (gCurrentLevel != LEVEL_TITANIA) && (gCurrentLevel != LEVEL_AQUAS))) { + D_80178390[gPlayerNum] = 128; + D_801783A0[gPlayerNum] = 128; + D_801783B0[gPlayerNum] = 128; + sp44 = Math_RadToDeg(gPlayer[gPlayerNum].unk_058); + var_fa0 = Math_RadToDeg(gPlayer[gPlayerNum].unk_05C); + if (var_fa0 > 180.0f) { + var_fa0 -= 360.0f; + } + sp44 -= 135.0f; + D_801783D0 = -sp44 * 3.2f; + D_801783D4 = ((-var_fa0 * 3.2f) + 130.0f) - ((gPlayer[gPlayerNum].camEye.y - 350.0f) * 0.015f); + if (gCurrentLevel == LEVEL_KATINA) { + D_801783D4 -= 80.0f; + } + if ((gCurrentLevel == LEVEL_ZONESS) && (gPlayer->unk_1D0 >= 2) && (D_80161684 == 0)) { + D_801783D4 -= 60.0f; + D_801783D0 -= 480.0f; + } + if ((D_801783D0 < 120.0f) && (D_801783D0 > -120.0f) && (D_801783D4 < 120.0f)) { + D_80178380[gPlayerNum] += D_800C9E4C[temp] * 2; + if (D_800C9E54[temp] < D_80178380[gPlayerNum]) { + D_80178380[gPlayerNum] = D_800C9E54[temp]; + } + } + } + if (D_80178380[gPlayerNum] != 0) { + Matrix_Push(&gGfxMatrix); + Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].unk_034 * 0.017453292f, 1); + Matrix_Translate(gGfxMatrix, D_801783D0, D_801783D4, -200.0f, 1); + RCP_SetupDL_62(); + var_s1 = D_800C9D94; + var_s2 = D_800C9DE4; + var_s3 = D_800C9C5C; + var_s4 = D_800C9D2C; + if (gCurrentLevel == LEVEL_KATINA) { + var_s1 = D_800C9DBC; + var_s2 = D_800C9E18; + var_s3 = D_800C9C90; + var_s4 = D_800C9D60; + } + for (i = 0; i < 5; i++, var_s1++, var_s2++, var_s3++, var_s4++) { + Matrix_Push(&gGfxMatrix); + Matrix_Scale(gGfxMatrix, *var_s4, *var_s4, *var_s4, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, var_s1->r, var_s1->g, var_s1->b, *var_s2); + gSPDisplayList(gMasterDisp++, *var_s3); + Matrix_Pop(&gGfxMatrix); + } + Matrix_Pop(&gGfxMatrix); + } +} + +void func_80040954(void) { + s32 i; + Color_RGB8* var_s1; + s32* var_s4; + Gfx** var_s5; + f32* var_s6; + f32* var_s7; + f32 temp_fs0; + f32 temp_fs1; + f32 var_fs2; + f32 var_fv0; + + if ((gCurrentLevel != LEVEL_VENOM_ANDROSS) && (gLevelType != LEVELTYPE_SPACE) && (D_80178380[gPlayerNum] != 0)) { + var_fs2 = 1.0f; + if (D_80178380[gPlayerNum] < 80) { + var_fs2 = D_80178380[gPlayerNum] / 80.0f; + } + var_fs2 *= D_800C9E5C[gLevelType]; + Matrix_Push(&gGfxMatrix); + Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].unk_034 * 0.017453292f, 1); + Matrix_Translate(gGfxMatrix, D_801783D0, D_801783D4, -200.0f, 1); + RCP_SetupDL_62(); + temp_fs0 = D_801783D0 * -0.03f; + temp_fs1 = D_801783D4 * 0.03f; + var_s1 = &D_800C9D94[5]; + var_s4 = &D_800C9DE4[5]; + var_s5 = &D_800C9C5C[5]; + var_s6 = &D_800C9D2C[5]; + var_s7 = &D_800C9CC4[5]; + if (gCurrentLevel == LEVEL_KATINA) { + var_s1 = &D_800C9DBC[5]; + var_s4 = &D_800C9E18[5]; + var_s5 = &D_800C9C90[5]; + var_s6 = &D_800C9D60[5]; + var_s7 = &D_800C9CF8[5]; + } + for (i = 5; i < 13; i++, var_s1++, var_s4++, var_s5++, var_s6++, var_s7++) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, *var_s7 * temp_fs0, *var_s7 * -temp_fs1, 0.0f, 1); + Matrix_Scale(gGfxMatrix, *var_s6, *var_s6, *var_s6, 1); + if (((i == 5) || (i == 11)) && (gCurrentLevel != LEVEL_KATINA)) { + Matrix_RotateX(gGfxMatrix, 1.5707964f, 1); + } + Matrix_SetGfxMtx(&gMasterDisp); + var_fv0 = *var_s4; + if (i >= 5) { + var_fv0 *= var_fs2; + } + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, var_s1->r, var_s1->g, var_s1->b, (s32) var_fv0); + gSPDisplayList(gMasterDisp++, *var_s5); + Matrix_Pop(&gGfxMatrix); + } + Matrix_Pop(&gGfxMatrix); + } +} void func_80040CDC(void) { } -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_3E6F0/func_80040CE4.s") +#ifdef NON_MATCHING +void func_80040CE4(void) { + f32 sp1D4; + s32 i; + u32 temp_fv0; + u32 temp_s0; + u16* sp1C4; + Gfx* sp1C0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_3E6F0/func_80042D38.s") + if ((gCurrentLevel != LEVEL_VENOM_2) && ((gPlayer->camEye.y > 4000.0f) || (D_80177A98 == 0))) { + return; + } + if ((gCurrentLevel == LEVEL_BOLSE) && (D_800C9C34 != 0)) { + func_E51970_80192264(); + return; + } + sp1D4 = 0.0f; + if ((D_801784AC != 10) && (D_801784AC != 11)) { + sp1D4 = -4000.0f; + } + if (D_801784AC == 7) { + sp1D4 = 0.0f; + gPlayer[gPlayerNum].unk_0AC = 0.0f; + } + + if (gLevelMode == LEVELMODE_ALL_RANGE) { + Vec3f sp1B4; + Vec3f sp1A8; + f32 temp_fv1; + f32 temp_fa0; + + sp1D4 = 0.0f; + gPlayer[gPlayerNum].unk_0AC = 0.0f; + + sp1B4.x = 0; + sp1B4.y = 0; + sp1B4.z = -5500.0f; + Matrix_RotateY(gCalcMatrix, -gPlayer[gPlayerNum].unk_058, 0); + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp1B4, &sp1A8); + temp_fv1 = gPlayer[gPlayerNum].camEye.x + sp1A8.x; + temp_fa0 = gPlayer[gPlayerNum].camEye.z + sp1A8.z; + if (temp_fv1 > 6000.0f) { + gPlayer[gPlayerNum].unk_0AC = 12000.0f; + } + if (temp_fv1 > 18000.0f) { + gPlayer[gPlayerNum].unk_0AC = 24000.0f; + } + if (temp_fv1 < -6000.0f) { + gPlayer[gPlayerNum].unk_0AC = -12000.0f; + } + if (temp_fv1 < -18000.0f) { + gPlayer[gPlayerNum].unk_0AC = -24000.0f; + } + if (temp_fa0 > 6000.0f) { + sp1D4 = 12000.0f; + } + if (temp_fa0 > 18000.0f) { + sp1D4 = 24000.0f; + } + if (temp_fa0 < -6000.0f) { + sp1D4 = -12000.0f; + } + if (temp_fa0 < -18000.0f) { + sp1D4 = -24000.0f; + } + } + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, gPlayer[gPlayerNum].unk_0AC, -3.0f + D_8017847C, sp1D4, 1); + if (D_80177C70 == 2) { + Matrix_Scale(gGfxMatrix, 1.2f, 1.2f, 1.0f, 1); + } + Matrix_SetGfxMtx(&gMasterDisp); + switch (gCurrentLevel) { + case LEVEL_CORNERIA: + if (D_8017812C != 0) { + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + } else { + RCP_SetupDL_20(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + } + if (gLevelMode == LEVELMODE_ON_RAILS) { + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_601B6C0)); + temp_s0 = fabsf(Math_ModF(2.0f * (D_80177CE8 * 0.2133333f), 128.0f)); + temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].unk_0AC) * 0.32f, 128.0f); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD); + gDPSetTileSize(gMasterDisp++, G_TX_RENDERTILE, temp_fv0, temp_s0, 124, 124); + switch (D_80161A88) { + case 0: + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, D_601B6C0); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOLOD); + gDPLoadSync(gMasterDisp++); + gDPLoadBlock(gMasterDisp++, G_TX_LOADTILE, 0, 0, 1023, 256); + gBgColor = 0x845; + break; + case 1: + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, D_6028260); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOLOD); + gDPLoadSync(gMasterDisp++); + gDPLoadBlock(gMasterDisp++, G_TX_LOADTILE, 0, 0, 1023, 256); + gBgColor = 0x845; + break; + case 2: + RCP_SetupDL_45(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 128); + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, D_6028A60); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOLOD); + gDPLoadSync(gMasterDisp++); + gDPLoadBlock(gMasterDisp++, G_TX_LOADTILE, 0, 0, 1023, 256); + gBgColor = 0x190F; + break; + } + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -3000.0f, 1); + Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_601B640); + Matrix_Pop(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 3000.0f, 1); + Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_601B640); + } else { + D_80161A88 = 0; + gBgColor = 0x845; + for (i = 0; i < 4; i++) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, D_800C9E64[i], 0.0f, D_800C9E74[i], 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_601EAA0); + Matrix_Pop(&gGfxMatrix); + } + } + break; + case LEVEL_VENOM_1: + case LEVEL_MACBETH: + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + switch (gCurrentLevel) { + case LEVEL_VENOM_1: + sp1C4 = D_6006750; + sp1C0 = D_60066D0; + gDPLoadTextureBlock(gMasterDisp++, sp1C4, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, + G_TX_NOLOD); + break; + case LEVEL_MACBETH: + sp1C4 = D_602DCB8; + sp1C0 = D_60306D0; + gDPLoadTextureBlock(gMasterDisp++, sp1C4, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, + G_TX_NOLOD); + break; + } + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, sp1C4); + temp_s0 = fabsf(Math_ModF(2.0f * (D_80177CE8 * 0.2133333f), 128.0f)); + temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].unk_0AC) * 0.32f, 128.0f); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD); + gDPSetTileSize(gMasterDisp++, G_TX_RENDERTILE, temp_fv0, temp_s0, 124, 124); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -3000.0f, 1); + Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, sp1C0); + Matrix_Pop(&gGfxMatrix); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 3000.0f, 1); + Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, sp1C0); + Matrix_Pop(&gGfxMatrix); + break; + case LEVEL_TRAINING: + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + if (gLevelMode == LEVELMODE_ON_RAILS) { + if (D_80177CE8 > 290.0f) { + D_80177CE8 -= 290.0f; + } + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -3000.0f + D_80177CE8, 1); + Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_6005880); + Matrix_Pop(&gGfxMatrix); + if (1) {} + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 3000.0f + D_80177CE8, 1); + Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_6005880); + Matrix_Pop(&gGfxMatrix); + } else { + for (i = 0; i < 4; i++) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, D_800C9E64[i], 0.0f, D_800C9E74[i], 1); + Matrix_Scale(gGfxMatrix, 1.5f, 1.0f, 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_6005880); + Matrix_Pop(&gGfxMatrix); + } + } + break; + case LEVEL_AQUAS: + RCP_SetupDL(&gMasterDisp, 0x14); + gSPFogPosition(gMasterDisp++, gFogNear, gFogFar); + if ((D_8015F964 == 0) && ((D_80177AC8 == 0) || (D_80177AC8 == 2))) { + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_600AB68)); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + G_TX_NOLOD); + gDPLoadSync(gMasterDisp++); + gDPLoadBlock(gMasterDisp++, G_TX_LOADTILE, 0, 0, 1023, 256); + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_600AB68)); + temp_s0 = fabsf(Math_ModF(2.0f * (D_80177CE8 * 0.2133333f), 128.0f)); + temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].unk_0AC) * 0.32f, 128.0f); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD); + gDPSetTileSize(gMasterDisp++, G_TX_RENDERTILE, temp_fv0, temp_s0, 124, 124); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -3000.0f, 1); + Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_600AB10); + Matrix_Pop(&gGfxMatrix); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 3000.0f, 1); + Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_600AB10); + Matrix_Pop(&gGfxMatrix); + } + if ((D_8015F964 != 0) || (D_80177AC8 == 0)) { + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_602ACC0)); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + G_TX_NOLOD); + gDPLoadSync(gMasterDisp++); + gDPLoadBlock(gMasterDisp++, G_TX_LOADTILE, 0, 0, 1023, 256); + gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_602ACC0)); + temp_s0 = fabsf(Math_ModF(2.0f * (D_80177CE8 * 0.2133333f), 128.0f)); + temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].unk_0AC) * 0.32f, 128.0f); + gDPTileSync(gMasterDisp++); + gDPSetTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD); + gDPSetTileSize(gMasterDisp++, G_TX_RENDERTILE, temp_fv0, temp_s0, 124, 124); + if (D_80177AC8 != 0) { + RCP_SetupDL(&gMasterDisp, 0x2F); + } else { + RCP_SetupDL(&gMasterDisp, 0x25); + } + if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_2) && (gPlayer->unk_1D0 < 2)) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255); + } else if (gPlayer->state_1C8 == PLAYERSTATE_1C8_7) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, D_8015F974, D_8015F978, D_8015F97C, D_8015F980); + } else { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, (s32) D_E16C50_801C4188); + } + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, D_8015F970, -3000.0f, 1); + Matrix_Scale(gGfxMatrix, 2.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_602AC40); + Matrix_Pop(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, D_8015F970, 3000.0f, 1); + Matrix_Scale(gGfxMatrix, 2.0f, 1.0f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_602AC40); + } + break; + case LEVEL_FORTUNA: + case LEVEL_KATINA: + case LEVEL_BOLSE: + case LEVEL_VENOM_2: + if ((D_8017812C != 0) || (gCurrentLevel == LEVEL_BOLSE)) { + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + } else { + RCP_SetupDL_20(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + } + for (i = 0; i < 4; i++) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, D_800C9E64[i], 0.0f, D_800C9E74[i], 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (gCurrentLevel == LEVEL_FORTUNA) { + gSPDisplayList(gMasterDisp++, D_6001360); + } else if (gCurrentLevel == LEVEL_KATINA) { + gSPDisplayList(gMasterDisp++, D_6009250); + } else if (gCurrentLevel == LEVEL_BOLSE) { + gSPDisplayList(gMasterDisp++, D_600A810); + } else if (gCurrentLevel == LEVEL_VENOM_2) { + gSPDisplayList(gMasterDisp++, D_6010700); + } + Matrix_Pop(&gGfxMatrix); + } + break; + case LEVEL_VERSUS: + if (D_8017812C != 0) { + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + } else { + RCP_SetupDL_20(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + } + for (i = 0; i < 4; i++) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, D_800C9E64[i], 0.0f, D_800C9E74[i], 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (gVersusStage == VS_STAGE_CORNERIA) { + gSPDisplayList(gMasterDisp++, D_3018800); + } else { + gSPDisplayList(gMasterDisp++, D_30160A0); + } + Matrix_Pop(&gGfxMatrix); + } + break; + case LEVEL_SOLAR: + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -2000.0f, 1); + Matrix_Scale(gGfxMatrix, 3.0f, 2.0f, 3.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (gFrameCount & 1) { + gSPDisplayList(gMasterDisp++, D_60005B0); + } else { + gSPDisplayList(gMasterDisp++, D_6002E60); + } + break; + case LEVEL_ZONESS: + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -1500.0f, 1); + Matrix_Scale(gGfxMatrix, 3.0f, 2.0f, 3.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (gFrameCount & 1) { + gSPDisplayList(gMasterDisp++, D_6008830); + } else { + gSPDisplayList(gMasterDisp++, D_600B0E0); + } + break; + } + Matrix_Pop(&gGfxMatrix); +} +#else +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/fox_bg/func_80040CE4.s") +#endif + +#ifdef NON_MATCHING +void func_80042D38(void) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, gPlayer[gPlayerNum].camEye.x, 2.0f + D_8017847C, gPlayer[gPlayerNum].camEye.z, 1); + Matrix_Scale(gGfxMatrix, 1.5f, 1.0f, 1.0f, 1); + RCP_SetupDL_37(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + GPC(255, 255, 255, 125); + Matrix_SetGfxMtx(&gMasterDisp); + if (gFrameCount & 1) { + GDL(D_602C030); + } else { + GDL(D_602C088); + } + Matrix_Pop(&gGfxMatrix); +} +#else +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/fox_bg/func_80042D38.s") +#endif diff --git a/src/main/sf_77E40.c b/src/main/sf_77E40.c index 9ae0b4bf..454f4249 100644 --- a/src/main/sf_77E40.c +++ b/src/main/sf_77E40.c @@ -1316,11 +1316,11 @@ void func_8007BC7C(f32 posX, f32 posY, f32 posZ, f32 arg3) { } void func_8007BCE8(Object_8C* arg0) { - if (gPlayer->state_1C8 == 7) { + if (gPlayer->state_1C8 == PLAYERSTATE_1C8_7) { arg0->obj.rot.x = (gPlayer->unk_05C * 180.0f) / M_PI; arg0->obj.rot.y = (-gPlayer->unk_058 * 180.0f) / M_PI; } - if (gPlayer->state_1C8 == 6) { + if (gPlayer->state_1C8 == PLAYERSTATE_1C8_6) { arg0->unk_46 = 2; arg0->unk_54.y -= 0.13f; } @@ -1529,7 +1529,7 @@ void func_8007C6FC(Object_8C* arg0, f32 posX, f32 posY, f32 posZ, f32 arg4) { if (Rand_ZeroOne() < 0.5f) { arg0->unk_48 = -arg0->unk_48; } - if ((gCurrentLevel == LEVEL_FORTUNA) && (gPlayer->state_1C8 != 6)) { + if ((gCurrentLevel == LEVEL_FORTUNA) && (gPlayer->state_1C8 != PLAYERSTATE_1C8_6)) { arg0->unk_4A = 180; } else { arg0->unk_4A = 255; @@ -1564,7 +1564,7 @@ void func_8007C8C4(Object_8C* arg0) { s32 var_v0; var_v0 = 0; - if ((gCurrentLevel == LEVEL_FORTUNA) && (gPlayer->state_1C8 != 6)) { + if ((gCurrentLevel == LEVEL_FORTUNA) && (gPlayer->state_1C8 != PLAYERSTATE_1C8_6)) { var_v0 = 3; } if (!(arg0->timer_50 & var_v0) && (gLevelType == LEVELTYPE_PLANET)) { diff --git a/src/main/sf_852F0.c b/src/main/sf_852F0.c deleted file mode 100644 index f9de5e16..00000000 --- a/src/main/sf_852F0.c +++ /dev/null @@ -1,135 +0,0 @@ -#include "global.h" - -#ifdef NON_MATCHING -// pretty sure this is equivalent, but it's almost certainly not implemented this way. Raw m2c included for those who -// want to try. -void func_800846F0(FrameBuffer* arg0) { - s32 sp70; - s32 sp6C; - s32 sp68; - s32 sp64; - s32 sp60; - s32 sp5C; - s32 sp58; - s32 sp54; - s32 sp50; - s32 sp4C; - s32 sp48; - s32 sp44; - s32 sp40; - s32 sp3C; - s32 sp38; - s32 sp30; - s32 sp2C; - s32 sp28; - s32 sp24; - s32 sp20; - s32 temp_t3; - s32 temp_t3_2; - s32 temp_t4; - s32 temp_t4_2; - s32 temp_t5_2; - s32 temp_t6; - s32 temp_t6_2; - s32 temp_t7; - s32 temp_t7_2; - s32 temp_t7_3; - s32 temp_t8; - s32 temp_t9; - s32 temp_t9_2; - s32 var_t2; - u16* var_v0; - u16 temp_t5; - u32 var_a0; - u32 var_t0; - u32 var_t1; - u32 var_v1; - s32 i; - s32 j; - - for (i = 0; i < gFrameCounter % 240U; i++) { - for (j = 0; j < gFrameCounter % 320U; j++) { - sp64 = RGBA16_RED(arg0->array[i][j]); - sp50 = RGBA16_GRN(arg0->array[i][j]); - sp3C = RGBA16_BLU(arg0->array[i][j]); - - sp68 = RGBA16_RED(arg0->array[i][j + 1]); - sp54 = RGBA16_GRN(arg0->array[i][j + 1]); - sp40 = RGBA16_BLU(arg0->array[i][j + 1]); - - sp6C = RGBA16_RED(arg0->array[i + 1][j]); - sp58 = RGBA16_GRN(arg0->array[i + 1][j]); - sp44 = RGBA16_BLU(arg0->array[i + 1][j]); - - sp70 = RGBA16_RED(arg0->array[i + 1][j + 1]); - sp5C = RGBA16_GRN(arg0->array[i + 1][j + 1]); - sp48 = RGBA16_BLU(arg0->array[i + 1][j + 1]); - - sp60 = (sp64 + sp68 + sp6C + sp70) / 4; - sp4C = (sp50 + sp54 + sp58 + sp5C) / 4; - sp38 = (sp3C + sp40 + sp44 + sp48) / 4; - - arg0->array[i][j] = RGBA16_PACK(sp60, sp4C, sp38, 0); - } - } - - // var_t1 = 0; - // var_t0 = (u32) gFrameCounter % 240U; - // if (var_t0 != 0) { - // var_a0 = (u32) gFrameCounter % 320U; - // var_t2 = 0; - // do { - // var_v0 = (var_t2 * 2) + arg0; - // var_v1 = 0; - // if (var_a0 != 0) { - // do { - // temp_t5 = *var_v0; - // var_v1 += 1; - // var_v0 += 2; - // temp_t3 = ((s32) temp_t5 >> 0xB) & 0x1F; - // sp64 = temp_t3; - // temp_t4 = ((s32) var_v0->unk-2 >> 6) & 0x1F; - // sp50 = temp_t4; - // temp_t9 = ((s32) var_v0->unk-2 >> 1) & 0x1F; - // sp3C = temp_t9; - // temp_t7 = ((s32) var_v0->unk0 >> 0xB) & 0x1F; - // sp68 = temp_t7; - // temp_t6 = ((s32) var_v0->unk0 >> 6) & 0x1F; - // sp54 = temp_t6; - // temp_t5_2 = ((s32) var_v0->unk0 >> 1) & 0x1F; - // sp40 = temp_t5_2; - // sp20 = temp_t3; - // temp_t3_2 = ((s32) var_v0->unk27E >> 0xB) & 0x1F; - // sp6C = temp_t3_2; - // sp24 = temp_t4; - // temp_t4_2 = ((s32) var_v0->unk27E >> 6) & 0x1F; - // sp58 = temp_t4_2; - // sp28 = temp_t9; - // temp_t9_2 = ((s32) var_v0->unk27E >> 1) & 0x1F; - // sp44 = temp_t9_2; - // sp2C = temp_t7; - // temp_t7_2 = ((s32) var_v0->unk280 >> 0xB) & 0x1F; - // sp70 = temp_t7_2; - // sp30 = temp_t6; - // temp_t6_2 = ((s32) var_v0->unk280 >> 6) & 0x1F; - // sp5C = temp_t6_2; - // sp48 = ((s32) var_v0->unk280 >> 1) & 0x1F; - // sp60 = (s32) (temp_t7_2 + sp20 + temp_t7 + temp_t3_2) / 4; - // temp_t8 = (s32) (temp_t6_2 + sp24 + sp30 + temp_t4_2) / 4; - // sp4C = temp_t8; - // temp_t7_3 = (s32) (sp48 + sp28 + temp_t5_2 + temp_t9_2) / 4; - // sp38 = temp_t7_3; - // var_v0->unk-2 = (u16) ((temp_t7_3 * 2) | (sp60 << 0xB) | (temp_t8 << 6)); - // var_a0 = (u32) gFrameCounter % 320U; - // } while (var_v1 < var_a0); - // var_t0 = (u32) gFrameCounter % 240U; - // } - // var_t1 += 1; - // var_t2 += 0x140; - // } while (var_t1 < var_t0); - // } - osWritebackDCacheAll(); -} -#else -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_852F0/func_800846F0.s") -#endif diff --git a/src/main/sf_beam.c b/src/main/sf_beam.c new file mode 100644 index 00000000..24997fc8 --- /dev/null +++ b/src/main/sf_beam.c @@ -0,0 +1,76 @@ +#include "global.h" + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80035D30.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80035DEC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/PlayerShot_Initialize.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80035E78.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80036318.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80036528.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_800365E4.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_800366CC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80036770.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80036874.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80036F88.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80037438.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80037698.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003774C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80037CF4.s") + +void func_80038140(PlayerShot* shot); +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80038140.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80038F34.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80039210.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_80039A50.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003AF88.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003AFD8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003B00C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003B55C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003BA80.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003BAA0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003BACC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003BB4C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003BEF4.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003C008.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003C3D8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003C4D0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003CC08.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003CF90.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003D54C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003D854.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003D9B8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_beam/func_8003DA0C.s") diff --git a/src/overlays/ovl_EBFBE0/fox_title.c b/src/overlays/ovl_EBFBE0/fox_title.c index 07e899a7..a1e46da4 100644 --- a/src/overlays/ovl_EBFBE0/fox_title.c +++ b/src/overlays/ovl_EBFBE0/fox_title.c @@ -880,7 +880,7 @@ void func_EBFBE0_8018994C(void) { gRadioState = 0; D_80178300 = 0; - sCurrentMsgPri = 0; + gCurrentMsgPri = 0; break; case 100: @@ -982,7 +982,7 @@ void func_EBFBE0_8018994C(void) { } if (D_EBFBE0_801B82B8 == 838) { - func_EBFBE0_801919C4(D_EBFBE0_801ADA30, RCID_PEPPER_TITLE); + func_EBFBE0_801919C4(D_EBFBE0_801ADA30, RCID_GEN_PEPPER_TITLE); } if (D_EBFBE0_801B82A8 == 1) { diff --git a/tools/textconv.py b/tools/textconv.py index a953c85f..8d2faef2 100644 --- a/tools/textconv.py +++ b/tools/textconv.py @@ -44,6 +44,50 @@ def convert_names(filepath): file.write(file_text) return +code_to_text = {'CLF':'(C<)', 'CUP':'(C^)', 'CRT':'(C>)', 'CDN':'(Cv)', 'AUP':'^', 'ALF':'<', 'ADN':'v', 'ART':'>', 'EXM':'!', 'QST':'?', 'DSH':'-', 'CMA':',', 'PRD':'.', 'APS':"'", 'LPR':'(', 'RPR':')', 'CLN':':', 'PIP':'|'} + +def parse_line(line): + codes = [x.strip() for x in line.split(',')] + text = '' + for i, code in enumerate(codes): + if code.startswith(('NP', 'PRI')) or code == '': + continue + elif 'SP' in code: + if(text and text[-1] != ' '): + text += ' ' + elif 'NWL' in code: + if text: + text += '\n// ' + elif code.startswith('_'): + text += code.strip('_') + else: + text += code_to_text[code] + return text + + +def add_comments(filepath): + with open(filepath, 'r') as file: + file_lines = file.readlines() + found_text = False + start_line = 0 + for i, line in enumerate(file_lines): + if not found_text: + found_text = line.startswith('u16 gMsg_ID_') + out_text = '// ' + start_line = i + elif 'END' in line: + if out_text.endswith('\n// '): + out_text = out_text[:-4] + file_lines[start_line] = out_text + '\n' + file_lines[start_line] + print(file_lines[start_line]) + found_text = False + else: + out_text += parse_line(line) + with open(filepath, 'w') as file: + file.writelines(file_lines) + return + + parser = argparse.ArgumentParser(description='Convert StarFox 64 dialog characters') parser.add_argument('infile', help="SF64 text file to convert") @@ -51,4 +95,5 @@ if __name__ == '__main__': args = parser.parse_args() # convert_file(args.infile) - convert_names(args.infile) + # convert_names(args.infile) + add_comments(args.infile) diff --git a/yamls/us/main.yaml b/yamls/us/main.yaml index 35d86233..b82897cc 100644 --- a/yamls/us/main.yaml +++ b/yamls/us/main.yaml @@ -170,9 +170,9 @@ - [0x2EF40, hasm, ../libultra/rmon/rmonrcp] # Game engine - - [0x2EFE0, c, sf_2EFE0] - - [0x36930, c, sf_36930] - - [0x3E6F0, c, sf_3E6F0] + - [0x2EFE0, c, fox_360] + - [0x36930, c, sf_beam] + - [0x3E6F0, c, fox_bg] - [0x43AC0, c, fox_43AC0] - [0x43E80, c, sf_43E80] - [0x496C0, c, sf_496C0] @@ -184,7 +184,7 @@ - [0x6B3B0, c, fox_enmy2] - [0x77E40, c, sf_77E40] - [0x84F70, c, fox_fade] - - [0x852F0, c, sf_852F0] + - [0x852F0, c, fox_852F0] - [0x85530, c, sf_hud] - [0x97F80, c, fox_97F80] - [0x9A580, c, fox_std_lib] @@ -264,9 +264,9 @@ # DATA - game engine - - [0xCA690, data, sf_2EFE0] - - [0xCA7C0, data, sf_36930] - - [0xCA830, data, sf_3E6F0] + - [0xCA690, .data, fox_360] + - [0xCA7C0, data, sf_beam] + - [0xCA830, data, fox_bg] - [0xCAA90, .data, fox_43AC0] - [0xCAB00, data, sf_43E80] - [0xCAB60, data, sf_496C0] @@ -289,9 +289,9 @@ - [0xD5910, .data, fox_save] # RODATA - game engine - - [0xD5A10, .rodata, sf_2EFE0] - - [0xD5CF0, .rodata, sf_36930] - - [0xD5F90, .rodata, sf_3E6F0] + - [0xD5A10, .rodata, fox_360] + - [0xD5CF0, .rodata, sf_beam] + - [0xD5F90, .rodata, fox_bg] - [0xD61D0, .rodata, fox_43AC0] - [0xD61F0, .rodata, sf_43E80] - [0xD6350, .rodata, sf_496C0] @@ -358,9 +358,9 @@ - { start: 0xDE480, type: bss, vram: 0x8015F480, name: ../libultra/rmon/rmonmain } # Game engine bss - - { start: 0xDE480, type: bss, vram: 0x8015F900, name: sf_2EFE0 } - - { start: 0xDE480, type: bss, vram: 0x8015F950, name: sf_36930 } - - { start: 0xDE480, type: bss, vram: 0x8015F960, name: sf_3E6F0 } + - { start: 0xDE480, type: .bss, vram: 0x8015F900, name: fox_360 } + - { start: 0xDE480, type: bss, vram: 0x8015F950, name: sf_beam } + - { start: 0xDE480, type: bss, vram: 0x8015F960, name: fox_bg } - { start: 0xDE480, type: .bss, vram: 0x801613A0, name: fox_43AC0 } - { start: 0xDE480, type: .bss, vram: 0x801613B0, name: fox_display } - { start: 0xDE480, type: .bss, vram: 0x801615D0, name: fox_edisplay }