diff --git a/ld/gamefiles.inc b/ld/gamefiles.inc index 7f17d6a4c..e6bcf4ac6 100644 --- a/ld/gamefiles.inc +++ b/ld/gamefiles.inc @@ -153,6 +153,7 @@ build/ROMID/game/game_1668e0.o (section); \ build/ROMID/game/game_166e40.o (section); \ build/ROMID/game/game_167ae0.o (section); \ + build/ROMID/game/data/data_02a0e0.o (section); \ build/ROMID/game/timing.o (section); \ build/ROMID/game/game_16cfa0.o (section); \ build/ROMID/game/lang.o (section); \ diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 05510123f..edb6427e5 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -12,6 +12,7 @@ #include "game/data/data_0160b0.h" #include "game/data/data_01a3a0.h" #include "game/data/data_020df0.h" +#include "game/data/data_02a0e0.h" #include "game/data/data_02da90.h" #include "game/debug.h" #include "game/dlights.h" diff --git a/src/game/data/data_020df0.c b/src/game/data/data_020df0.c index 2c2fba2be..9c65da398 100644 --- a/src/game/data/data_020df0.c +++ b/src/game/data/data_020df0.c @@ -9559,2150 +9559,3 @@ u32 var80084000 = 0x00000000; u32 var80084004 = 0x00000001; u32 var80084008 = 0x00000002; u32 var8008400c = 0x00000000; -u32 var80084010 = 0; -bool var80084014 = false; -f32 var80084018 = 1; -u32 var8008401c = 0x00000001; - -s32 g_Difficulty = 0; - -s32 g_MpTimeElapsed = 0; -s32 g_MpTimeLimit = 36000; -s32 g_MpScoreLimit = 10; -s32 g_MpTeamScoreLimit = 20; -struct audiohandle *g_MiscAudioHandle = NULL; -s32 var80084038 = 0; -f32 g_Uptime = 0; -bool var80084040 = true; -u32 g_BoostAndSlayerSounds[] = {0x05c8, 0x8068, 0x01c8}; -u32 var80084050 = 0; - -s16 g_FadeNumFrames = 0; - -// 80084058 -f32 fade80084058 = -1; -u32 g_FadePrevColor = 0; -u32 g_FadeColor = 0; - -// 80084064 -u16 fade80084064 = 0; - -u32 var80084068 = 0x00000000; -u32 var8008406c = 0x00000000; -u32 var80084070 = 0x00000000; -u32 var80084074 = 0x00000000; -u32 var80084078 = 0x00000000; -u32 var8008407c = 0x00000000; -u32 var80084080 = 0x00000000; -u32 var80084084 = 0x00000000; -u32 var80084088 = 0x00000000; -u32 var8008408c = 0x00000000; -u32 var80084090 = 0x00000000; -u32 var80084094 = 0x1e000000; -u32 var80084098 = 0x00000000; -u32 var8008409c = 0x00000064; -u32 var800840a0 = 0x00000000; -u32 g_CutsceneTime240_60 = 0x00000000; -u32 var800840a8 = 0x00000000; -u32 var800840ac = 0x00000000; -u32 var800840b0 = 0x00000000; -u32 var800840b4 = 0x00000000; -u32 var800840b8 = 0x00000000; -u32 var800840bc = 0x00000000; -u32 var800840c0 = 0xffffffff; -u32 var800840c4 = 0x00000000; -u32 var800840c8 = 0xffffffff; -u32 var800840cc = 0xffffffff; -u32 var800840d0 = 0xffffffff; -u32 var800840d4 = 0x00000000; -u32 var800840d8 = 0x00000000; -u32 var800840dc = 0x00000000; -u32 var800840e0 = 0x0000000f; -u32 var800840e4 = 0x00000000; -u32 var800840e8 = 0x00000000; -u32 var800840ec = 0x50000000; -u32 var800840f0 = 0x00000000; -u32 var800840f4 = 0x00000000; -u32 var800840f8 = 0x00000078; -u32 var800840fc = 0x00000000; -u32 var80084100 = (u32)&var7f1b78c0; -u32 var80084104 = (u32)&var7f1b78c8; -u32 var80084108 = (u32)&var7f1b78d4; -u32 var8008410c = (u32)&var7f1b78f4; -u32 var80084110 = (u32)&var7f1b7900; -u32 var80084114 = (u32)&var7f1b7908; -u32 var80084118 = (u32)&var7f1b7910; -u32 var8008411c = 0x00000000; -u32 g_LanguageId = 0; - -// 2a144 -u16 g_LangFiles[] = { - /* 0*/ 0, - /* 1*/ FILE_LAMEE, - /* 2*/ FILE_LARCHE, - /* 3*/ FILE_LARKE, - /* 4*/ FILE_LASHE, - /* 5*/ FILE_LAZTE, - /* 6*/ FILE_LCATE, - /* 7*/ FILE_LCAVEE, - /* 8*/ FILE_LARECE, - /* 9*/ FILE_LCRADE, - /*10*/ FILE_LCRYPE, - /*11*/ FILE_LDAME, - /*12*/ FILE_LDEPOE, - /*13*/ FILE_LDESTE, - /*14*/ FILE_LDISHE, - /*15*/ FILE_LEARE, - /*16*/ FILE_LELDE, - /*17*/ FILE_LIMPE, - /*18*/ FILE_LJUNE, - /*19*/ FILE_LLEEE, - /*20*/ FILE_LLENE, - /*21*/ FILE_LLIPE, - /*22*/ FILE_LLUEE, - /*23*/ FILE_LOATE, - /*24*/ FILE_LPAME, - /*25*/ FILE_LPETEE, - /*26*/ FILE_LREFE, - /*27*/ FILE_LRITE, - /*28*/ FILE_LRUNE, - /*29*/ FILE_LSEVBE, - /*30*/ FILE_LSEVE, - /*31*/ FILE_LSEVXE, - /*32*/ FILE_LSEVXBE, - /*33*/ FILE_LSHOE, - /*34*/ FILE_LSILOE, - /*35*/ FILE_LSTATE, - /*36*/ FILE_LTRAE, - /*37*/ FILE_LWAXE, - /*38*/ FILE_LGUNE, - /*39*/ FILE_LTITLEE, - /*40*/ FILE_LMPMENUE, - /*41*/ FILE_LPROPOBJE, - /*42*/ FILE_LMPWEAPONSE, - /*43*/ FILE_LOPTIONSE, - /*44*/ FILE_LMISCE, - /*45*/ FILE_LUFFE, - /*46*/ FILE_LOLDE, - /*47*/ FILE_LATEE, - /*48*/ FILE_LLAME, - /*49*/ FILE_LMP1E, - /*50*/ FILE_LMP2E, - /*51*/ FILE_LMP3E, - /*52*/ FILE_LMP4E, - /*53*/ FILE_LMP5E, - /*54*/ FILE_LMP6E, - /*55*/ FILE_LMP7E, - /*56*/ FILE_LMP8E, - /*57*/ FILE_LMP9E, - /*58*/ FILE_LMP10E, - /*59*/ FILE_LMP11E, - /*60*/ FILE_LMP12E, - /*61*/ FILE_LMP13E, - /*62*/ FILE_LMP14E, - /*63*/ FILE_LMP15E, - /*64*/ FILE_LMP16E, - /*65*/ FILE_LMP17E, - /*66*/ FILE_LMP18E, - /*67*/ FILE_LMP19E, - /*68*/ FILE_LMP20E, -}; - -u32 var800841b0 = 0x0006ddd0; -u32 var800841b4 = 0x00000000; -u32 var800841b8 = 0x00000004; -u32 var800841bc = 0x00000003; -u32 var800841c0 = 0x00000003; -u32 var800841c4 = 0x00000003; -u32 var800841c8 = 0x00000002; -u32 var800841cc = 0x00000002; -u32 var800841d0 = 0x00000001; -u32 var800841d4 = 0x00000001; -u32 var800841d8 = 0x00000001; -u32 var800841dc = 0x00000001; -u32 var800841e0 = 0x00000001; -u32 var800841e4 = 0x00000001; -u32 var800841e8 = 0x00000001; -u32 var800841ec = 0x00000000; -u32 var800841f0 = 0x00000001; -u32 var800841f4 = 0x00000000; -u32 var800841f8 = 0x00000000; -u32 var800841fc = 0x00000000; -u32 var80084200 = 0x00000000; -u32 var80084204 = 0x00000001; -u32 var80084208 = 0x00000000; -u32 var8008420c = 0x00000000; -u32 var80084210 = 0x00000000; -u32 var80084214 = 0x00000000; -u32 var80084218 = 0x00000000; -u32 var8008421c = 0x00000000; -u32 var80084220 = 0x00000100; -u32 var80084224 = 0x00000020; -u32 var80084228 = 0x00000100; -u32 var8008422c = 0x00000020; -u32 var80084230 = 0x00000100; -u32 var80084234 = 0x00000010; -u32 var80084238 = 0x00000008; -u32 var8008423c = 0x00000100; -u32 var80084240 = 0x00000010; -u32 var80084244 = 0x00000100; -u32 var80084248 = 0x00000010; -u32 var8008424c = 0x00000100; -u32 var80084250 = 0x00000010; -u32 var80084254 = 0x00000020; -u32 var80084258 = 0x00000010; -u32 var8008425c = 0x00000018; -u32 var80084260 = 0x0000000f; -u32 var80084264 = 0x00000010; -u32 var80084268 = 0x00000008; -u32 var8008426c = 0x00000004; -u32 var80084270 = 0x00000008; -u32 var80084274 = 0x00000004; -u32 var80084278 = 0x00000010; -u32 var8008427c = 0x00000010; -u32 var80084280 = 0x00000010; -u32 var80084284 = 0x00000010; -u32 var80084288 = 0x00000000; -u32 var8008428c = 0x00000000; -u32 var80084290 = 0x00000000; -u32 var80084294 = 0x00000000; -u32 var80084298 = 0x00000003; -u32 var8008429c = 0x00000003; -u32 var800842a0 = 0x00000003; -u32 var800842a4 = 0x00000004; -u32 var800842a8 = 0x00000004; -u32 var800842ac = 0x00000002; -u32 var800842b0 = 0x00000002; -u32 var800842b4 = 0x00000002; -u32 var800842b8 = 0x00000002; -u32 var800842bc = 0x00000003; -u32 var800842c0 = 0x00000002; -u32 var800842c4 = 0x00000003; -u32 var800842c8 = 0x00000002; -u32 var800842cc = 0x00000002; -u32 var800842d0 = 0x00000001; -u32 var800842d4 = 0x00000000; -u32 var800842d8 = 0x00000001; -u32 var800842dc = 0x00000000; -u32 var800842e0 = 0x00000001; -u32 var800842e4 = 0x00000000; -u32 var800842e8 = 0x00000001; -u32 var800842ec = 0x00000000; -u32 var800842f0 = 0x00000000; -u32 var800842f4 = 0x00000000; -u32 var800842f8 = 0x00000000; -u32 var800842fc = 0x00000000; -u32 var80084300 = 0x00000000; -u32 var80084304 = 0x00000000; -u32 var80084308 = 0x00000000; -u32 var8008430c = 0x00000000; -u32 var80084310 = 0x00000000; -u32 var80084314 = 0x00008000; -u32 var80084318 = 0x00008000; -u32 var8008431c = 0x0000c000; -u32 var80084320 = 0x0000c000; -u32 var80084324 = 0x00000000; -u32 var80084328 = 0x00000000; -u32 var8008432c = 0x00000000; - -u32 var80084330 = 0x80878088; -u32 var80084334 = 0x06000000; - -// 2a358 -struct something something_2a358 = { - &var80084330, &var80084334, 0x00020001, -}; - -u32 var80084344 = 0x80878088; -u32 var80084348 = 0x01000000; - -// 2a36c -struct something something_2a36c = { - &var80084344, &var80084348, 0x00020001, -}; - -u32 var80084358 = 0x807e807f; -u32 var8008435c = 0x10000000; - -// 2a380 -struct something something_2a380 = { - &var80084358, &var8008435c, 0x00020001, -}; - -u32 var8008436c = 0x8079807b; -u32 var80084370 = 0x11000000; - -// 2a394 -struct something something_2a394 = { - &var8008436c, &var80084370, 0x00020001, -}; - -u32 var80084380 = 0x80770000; -u32 var80084384 = 0x03040500; - -// 2a3a8 -struct something something_2a3a8 = { - &var80084380, &var80084384, 0x00010003, -}; - -u32 var80084394 = 0x807d0000; -u32 var80084398 = 0x01000000; - -// 2a3bc -struct something something_2a3bc = { - &var80084394, &var80084398, 0x00010001, -}; - -u32 var800843a8 = 0x80848085; -u32 var800843ac = 0x02000000; - -// 2a3d0 -struct something something_2a3d0 = { - &var800843a8, &var800843ac, 0x00020001, -}; - -u32 var800843bc = 0x80818082; -u32 var800843c0 = 0x80830000; -u32 var800843c4 = 0x02000000; - -// 2a3e8 -struct something something_2a3e8 = { - &var800843bc, &var800843c4, 0x00030001, -}; - -u32 var800843d4 = 0x80860000; -u32 var800843d8 = 0x01000000; - -// 2a3fc -struct something something_2a3fc = { - &var800843d4, &var800843d8, 0x00010001, -}; - -u32 var800843e8 = 0x8089808a; -u32 var800843ec = 0x01060000; - -// 2a410 -struct something something_2a410 = { - &var800843e8, &var800843ec, 0x00020002, -}; - -u32 var800843fc = 0x80760000; -u32 var80084400 = 0x02000000; - -// 2a424 -struct something something_2a424 = { - &var800843fc, &var80084400, 0x00010001, -}; - -u32 var80084410 = 0x80770000; -u32 var80084414 = 0x03040500; - -// 2a438 -struct something something_2a438 = { - &var80084410, &var80084414, 0x00010003, -}; - -// 2a444 -struct something something_2a444 = { - NULL, NULL, 0x00000000, -}; - -u32 var80084430 = 0x80800000; -u32 var80084434 = 0x00000000; - -// 2a458 -struct something something_2a458 = { - &var80084430, &var80084434, 0x00010001, -}; - -u32 var80084444 = 0x80800000; -u32 var80084448 = 0x00000000; - -// 2a46c -struct something something_2a46c = { - &var80084444, &var80084448, 0x00010001, -}; - -// 2a478 -struct something *somethings[] = { - /* 0*/ &something_2a358, - /* 1*/ &something_2a36c, - /* 2*/ &something_2a380, - /* 3*/ &something_2a394, - /* 4*/ &something_2a3a8, - /* 5*/ &something_2a458, - /* 6*/ &something_2a3bc, - /* 7*/ &something_2a3d0, - /* 8*/ &something_2a3e8, - /* 9*/ &something_2a3fc, - /*10*/ &something_2a410, - /*11*/ &something_2a424, - /*12*/ &something_2a438, - /*13*/ &something_2a444, - /*14*/ &something_2a46c, -}; - -// 2a4b4 -u32 somethingpointers[] = { - /* 0*/ (u32)&var7f1b7ba0, - /* 1*/ (u32)&var7f1b7ba8, - /* 2*/ (u32)&var7f1b7bb0, - /* 3*/ (u32)&var7f1b7bb8, - /* 4*/ (u32)&var7f1b7bc0, - /* 5*/ (u32)&var7f1b7bc8, - /* 6*/ (u32)&var7f1b7bd8, - /* 7*/ (u32)&var7f1b7be0, - /* 8*/ (u32)&var7f1b7be8, - /* 9*/ (u32)&var7f1b7bec, - /*10*/ (u32)&var7f1b7bf4, - /*11*/ (u32)&var7f1b7c00, - /*12*/ (u32)&var7f1b7c04, - /*13*/ (u32)&var7f1b7c10, - /*14*/ (u32)&var7f1b7c18, -}; - -u32 var800844d0 = 0x00000000; -u32 var800844d4 = 0x00000000; -u32 var800844d8 = 0x00000000; -u32 var800844dc = 0x00000000; -u32 var800844e0 = 0x00000103; -u32 var800844e4 = 0x00000000; -u32 var800844e8 = 0x00000000; -u32 var800844ec = 0x00000000; -u32 var800844f0 = 0x00000000; -u32 var800844f4 = 0x00000000; -u32 var800844f8 = 0x00000000; -u32 var800844fc = 0x00000000; - -// 2a520 -struct stagemusic stagemusictable[] = { - // stage, main theme, background sfx, X theme - { STAGE_CITRAINING, MUSIC_CI, -1, MUSIC_DEFENSE_X }, - { STAGE_DEFECTION, MUSIC_DEFECTION, MUSIC_DDTOWER_SFX, MUSIC_DEFECTION_X }, - { STAGE_INVESTIGATION, MUSIC_INVESTIGATION, MUSIC_INVESTIGATION_SFX, MUSIC_INVESTIGATION_X }, - { STAGE_EXTRACTION, MUSIC_EXTRACTION, MUSIC_DDTOWER_SFX, MUSIC_EXTRACTION_X }, - { STAGE_VILLA, MUSIC_VILLA, MUSIC_OCEAN, MUSIC_VILLA_X }, - { STAGE_CHICAGO, MUSIC_CHICAGO, MUSIC_TRAFFIC, MUSIC_CHICAGO_X }, - { STAGE_G5BUILDING, MUSIC_G5, MUSIC_TRAFFIC, MUSIC_G5_X }, - { STAGE_INFILTRATION, MUSIC_INFILTRATION, MUSIC_INFILTRATION_SFX, MUSIC_INFILTRATION_X }, - { STAGE_RESCUE, MUSIC_RESCUE, MUSIC_A51_LOUDSPEAKER1, MUSIC_RESCUE_X }, - { STAGE_ESCAPE, MUSIC_ESCAPE, MUSIC_A51_LOUDSPEAKER2, MUSIC_ESCAPE_X }, - { STAGE_AIRBASE, MUSIC_AIRBASE, MUSIC_WIND, MUSIC_AIRBASE_X }, - { STAGE_AIRFORCEONE, MUSIC_AIRFORCEONE, MUSIC_AIRFORCEONE_SFX, MUSIC_AIRFORCEONE_X }, - { STAGE_CRASHSITE, MUSIC_CRASHSITE, MUSIC_CRASHSITE_WIND, MUSIC_CRASHSITE_X }, - { STAGE_PELAGIC, MUSIC_PELAGIC, MUSIC_OCEAN, MUSIC_PELAGIC_X }, - { STAGE_DEEPSEA, MUSIC_DEEPSEA, MUSIC_DEEPSEA_SFX, MUSIC_DEEPSEA_X }, - { STAGE_DEFENSE, MUSIC_DEFENSE, -1, MUSIC_DEFENSE_X }, - { STAGE_ATTACKSHIP, MUSIC_ATTACKSHIP, MUSIC_ATTACKSHIP_SFX, MUSIC_ATTACKSHIP_X }, - { STAGE_SKEDARRUINS, MUSIC_SKEDARRUINS, MUSIC_SKEDAR_WIND, MUSIC_SKEDARRUINS_X }, - { STAGE_MBR, MUSIC_DARK_COMBAT, MUSIC_DDTOWER_SFX, MUSIC_DARK_COMBAT }, - { STAGE_MAIANSOS, MUSIC_MAIAN_TEARS, MUSIC_A51_LOUDSPEAKER2, MUSIC_MAIAN_TEARS }, - { STAGE_RETAKING, MUSIC_CI_OPERATIVE, -1, MUSIC_CI_OPERATIVE }, - { STAGE_WAR, MUSIC_ALIEN_CONFLICT, MUSIC_SKEDAR_WIND, MUSIC_ALIEN_CONFLICT }, - { STAGE_DUEL, MUSIC_CREDITS, -1, MUSIC_CREDITS }, - { STAGE_CREDITS, MUSIC_ALIEN_CONFLICT, -1, MUSIC_ALIEN_CONFLICT }, -}; - -u32 var800845c0 = 0x00000000; -u32 var800845c4 = 0x00000000; -u32 var800845c8 = 0x00000000; -u32 var800845cc = 0x00000000; -u32 var800845d0 = 0x497423f0; -u32 var800845d4 = 0x3727c5ac; -s32 var800845d8 = 1; -u32 var800845dc = 0x00000000; -u32 var800845e0 = 0x00000000; -u32 var800845e4 = 0x00000000; -u32 var800845e8 = 0x00000000; -u32 var800845ec = 0x3f800000; -u32 var800845f0 = 0x00000000; -u32 var800845f4 = 0x00000000; -u32 var800845f8 = 0x00000000; -u32 var800845fc = 0x3f800000; -u32 var80084600 = 0x3f800000; -u32 var80084604 = 0x00000000; -u32 var80084608 = 0x00000000; -u32 var8008460c = 0xffffffff; -u32 var80084610 = 0x00000000; -u32 var80084614 = 0x00000000; -u32 var80084618 = 0x00000000; -u32 var8008461c = 0x00000004; -u32 var80084620 = 0x00000000; -u32 var80084624 = 0x00000000; -u32 var80084628 = 0x00000000; -u32 var8008462c = 0x00000000; - -// 2a650 -struct menu_item g_MpEndGameMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x02000020, L_MPMENU(291), 0x00000000, NULL }, // "Are you sure?" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPMENU(292), 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_MPMENU(293), 0x00000000, menuhandlerMpEndGame }, // "End Game" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2a6b4 -struct menu_dialog g_MpEndGameMenuDialog = { - MENUDIALOGTYPE_DANGER, - L_MPMENU(290), // "End Game" - g_MpEndGameMenuItems, - NULL, - 0x00000000, - NULL, -}; - -// 2a6cc -struct menu_item g_MpPauseControlMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)&mpMenuTextChallengeName, 0x00000000, menuhandler00178018 }, - { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)&mpMenuTextScenarioName, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000200, L_MPWEAPONS(162), (u32)&mpMenuTextInGameLimit, menuhandlerMpInGameLimitLabel }, // "Time Limit:" - { MENUITEMTYPE_LABEL, 1, 0x00000200, L_MPWEAPONS(163), (u32)&mpMenuTextInGameLimit, menuhandlerMpInGameLimitLabel }, // "Score Limit:" - { MENUITEMTYPE_LABEL, 2, 0x00000200, L_MPWEAPONS(164), (u32)&mpMenuTextInGameLimit, menuhandlerMpInGameLimitLabel }, // "Team Score Limit:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(286), (u32)&menutextMatchTime, NULL }, // "Game Time:" - { MENUITEMTYPE_SELECTABLE, 1, 0x00000020, (u32)&menutextPauseOrUnpause, 0x00000000, menuhandlerMpPause }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000024, L_MPMENU(287), 0x00000000, &g_MpEndGameMenuDialog }, // "End Game" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2a794 -struct menu_dialog g_MpPauseControlMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(285), // "Control" - g_MpPauseControlMenuItems, - NULL, - 0x00000000, - NULL, -}; - -// 2a7ac -struct menu_item g_MpInventoryMenuItems[] = { - { MENUITEMTYPE_CUSTOM, 0, 0x00000000, 0x00000078, 0x00000042, menuhandler00106178 }, - { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&mpMenuTextWeaponDescription, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2a7e8 -struct menu_dialog g_MpPauseInventoryMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(284), // "Inventory" - g_MpInventoryMenuItems, - NULL, - 0x00000000, - &g_MpPauseControlMenuDialog, -}; - -// 2a800 -struct menu_dialog menudialog_2a800 = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(284), // "Inventory" - g_MpInventoryMenuItems, - NULL, - 0x00000000, - &menudialog_18d78, -}; - -// 2a818 -struct menu_dialog menudialog_2a818 = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(284), // "Inventory" - g_MpInventoryMenuItems, - NULL, - 0x00000000, - &menudialog_18d90, -}; - -// 2a830 -struct menu_item g_MpPlayerStatsMenuItems[] = { - { MENUITEMTYPE_PLAYERSTATS, 0, 0x00000000, 0x00000000, 0x00000000, menuhandler00177e00 }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2a858 -struct menu_dialog g_MpPausePlayerStatsMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - (u32)&func0f1783a0, - g_MpPlayerStatsMenuItems, - NULL, - 0x00000000, - &g_MpPauseInventoryMenuDialog, -}; - -// 2a870 -struct menu_dialog g_MpEndscreenPlayerStatsMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - (u32)&func0f1783a0, - g_MpPlayerStatsMenuItems, - NULL, - 0x00000000, - NULL, -}; - -// 2a888 -struct menu_item g_MpPlayerRankingMenuItems[] = { - { MENUITEMTYPE_RANKING, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2a8b0 -struct menu_dialog g_MpPausePlayerRankingMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(276), // "Player Ranking" - g_MpPlayerRankingMenuItems, - NULL, - 0x00000000, - &g_MpPausePlayerStatsMenuDialog, -}; - -// 2a8c8 -struct menu_dialog g_MpEndscreenPlayerRankingMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(276), // "Player Ranking" - g_MpPlayerRankingMenuItems, - NULL, - 0x00000000, - &g_MpEndscreenPlayerStatsMenuDialog, -}; - -// 2a8e0 -struct menu_item g_MpTeamRankingMenuItems[] = { - { MENUITEMTYPE_RANKING, 0, 0x00000000, 0x00000001, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2a908 -struct menu_dialog g_MpPauseTeamRankingMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(279), // "Team Ranking" - g_MpTeamRankingMenuItems, - NULL, - 0x00000000, - &g_MpPausePlayerRankingMenuDialog, -}; - -// 2a920 -struct menu_dialog g_MpEndscreenTeamRankingMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(279), // "Team Ranking" - g_MpTeamRankingMenuItems, - NULL, - 0x00000000, - &g_MpEndscreenPlayerRankingMenuDialog, -}; - -// 2a938 -u16 g_OrdinalSuffixes[] = { - L_MPMENU(264), // "1st" - L_MPMENU(265), // "2nd" - L_MPMENU(266), // "3rd" - L_MPMENU(267), // "4th" - L_MPMENU(268), // "5th" - L_MPMENU(269), // "6th" - L_MPMENU(270), // "7th" - L_MPMENU(271), // "8th" - L_MPMENU(272), // "9th" - L_MPMENU(273), // "10th" - L_MPMENU(274), // "11th" - L_MPMENU(275), // "12th" -}; - -// 2a950 -struct menu_item g_MpGameOverMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x01000010, (u32)&mpGetCurrentPlayerName, (u32)&mpMenuTextPlacementWithSuffix, menuhandler001785c4 }, - { MENUITEMTYPE_LABEL, 0, 0x01000000, L_MPMENU(261), (u32)&mpMenuTextPlayerTitle, menuhandler00178a94 }, // "Title:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000210, L_MPMENU(262), 0x00000000, NULL }, // "Weapon of Choice:" - { MENUITEMTYPE_LABEL, 0, 0x00000120, (u32)&mpMenuTextWeaponOfChoiceName, 0x00000000, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00200210, L_MPMENU(263), 0x00000000, menuhandler001786d8 }, // "Awards:" - { MENUITEMTYPE_LABEL, 0, 0x00000120, (u32)&mpMenuTextAward1, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000120, (u32)&mpMenuTextAward2, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2aa18 -struct menu_dialog g_MpEndscreenIndividualGameOverMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(260), // "Game Over" - g_MpGameOverMenuItems, - NULL, - 0x00000000, - &g_MpEndscreenPlayerRankingMenuDialog, -}; - -// 2aa30 -struct menu_dialog g_MpEndscreenTeamGameOverMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(260), // "Game Over" - g_MpGameOverMenuItems, - NULL, - 0x00000000, - &g_MpEndscreenTeamRankingMenuDialog, -}; - -// 2aa48 -struct menu_dialog g_MpEndscreenChallengeCompletedMenuDialog = { - MENUDIALOGTYPE_SUCCESS, - L_MPWEAPONS(165), // "Challenge Completed!" - g_MpTeamRankingMenuItems, - NULL, - 0x00000000, - &g_MpEndscreenIndividualGameOverMenuDialog, -}; - -// 2aa60 -struct menu_dialog g_MpEndscreenChallengeCheatedMenuDialog = { - MENUDIALOGTYPE_DANGER, - L_MPWEAPONS(167), // "Challenge Cheated!" - g_MpTeamRankingMenuItems, - NULL, - 0x00000000, - &g_MpEndscreenIndividualGameOverMenuDialog, -}; - -// 2aa78 -struct menu_dialog g_MpEndscreenChallengeFailedMenuDialog = { - MENUDIALOGTYPE_DANGER, - L_MPWEAPONS(166), // "Challenge Failed!" - g_MpTeamRankingMenuItems, - NULL, - 0x00000000, - &g_MpEndscreenIndividualGameOverMenuDialog, -}; - -// 2aa90 -struct menu_item g_MpEndscreenConfirmPlayerNameMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPWEAPONS(250), 0x00000000, NULL }, // "Confirm player name:" - { MENUITEMTYPE_KEYBOARD, 0, 0x00000000, 0x00000000, 0x00000000, menuhandler00178bf4 }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2aacc -struct menu_dialog g_MpEndscreenConfirmPlayerNameMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(142), // "Player Name" - g_MpEndscreenConfirmPlayerNameMenuItems, - NULL, - 0x00000000, - NULL, -}; - -// 2aae4 -struct menu_item g_MpEndscreenSavePlayerMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPWEAPONS(247), 0x00000000, NULL }, // "Save new player and statistics?" - { MENUITEMTYPE_SELECTABLE, 0, 0x0000002c, L_MPWEAPONS(248), 0x00000000, &g_MpEndscreenConfirmPlayerNameMenuDialog }, // "Save Now" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPWEAPONS(249), 0x00000000, NULL }, // "No Thanks!" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2ab34 -struct menu_dialog g_MpEndscreenSavePlayerMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MPWEAPONS(246), // "Save Player" - g_MpEndscreenSavePlayerMenuItems, - NULL, - 0x00000004, - NULL, -}; - -u32 var80084b2c = 0x00000000; - -// 2ab50 -struct menu_item menuitems_2ab50[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU(196), 0x00000000, NULL }, // "Are you sure you want to drop out?" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(197), 0x00000000, menuhandlerMpDropOut }, // "Drop Out" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(198), 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2aba0 -struct menu_dialog menudialog_2aba0 = { - MENUDIALOGTYPE_DANGER, - L_MPMENU(195), // "Drop Out" - menuitems_2ab50, - NULL, - 0x00000000, - NULL, -}; - -// 2abb8 -struct mparena g_MpArenas[] = { - // Stage, unlock, name - { STAGE_MP_SKEDAR, 0x00, L_MPMENU(119) }, - { STAGE_MP_PIPES, 0x00, L_MPMENU(120) }, - { STAGE_MP_RAVINE, 0x26, L_MPMENU(121) }, - { STAGE_MP_G5BUILDING, 0x28, L_MPMENU(122) }, - { STAGE_MP_SEWERS, 0x2c, L_MPMENU(123) }, - { STAGE_MP_WAREHOUSE, 0x25, L_MPMENU(124) }, - { STAGE_MP_GRID, 0x29, L_MPMENU(125) }, - { STAGE_MP_RUINS, 0x2d, L_MPMENU(126) }, - { STAGE_MP_AREA52, 0x00, L_MPMENU(127) }, - { STAGE_MP_BASE, 0x2e, L_MPMENU(128) }, - { STAGE_MP_FORTRESS, 0x30, L_MPMENU(130) }, - { STAGE_MP_VILLA, 0x2b, L_MPMENU(131) }, - { STAGE_MP_CARPARK, 0x23, L_MPMENU(132) }, - { STAGE_MP_TEMPLE, 0x27, L_MPMENU(133) }, - { STAGE_MP_COMPLEX, 0x24, L_MPMENU(134) }, - { STAGE_MP_FELICITY, 0x2a, L_MPMENU(135) }, - { 1, 0x00, L_MPMENU(136) }, // "Random" -}; - -// 2ac20 -u32 var80084c00[] = { - 0x00000000, 0x50740000, // "Dark" - 0x0000000d, 0x50750000, // "Classic" - 0x00000010, 0x50760000, // "Custom" -}; - -// 2ac38 -u16 g_MpControlStyleLabels[] = { - L_OPTIONS(239), // "1.1" - L_OPTIONS(240), // "1.2" - L_OPTIONS(241), // "1.3" - L_OPTIONS(242), // "1.4" -}; - -// 2ac40 -u16 g_MpAimModeLabels[] = { - L_MPMENU(213), // "Hold" - L_MPMENU(214), // "Toggle" -}; - -// 2ac44 -struct menu_item menuitems_mpsavechr[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU(191), 0x00000000, NULL }, // "Your player file is always saved automatically." - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU(192), 0x00000000, NULL }, // "Save a copy now?" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(193), 0x00000000, NULL }, // "No" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(194), 0x00000000, menuhandlerMpConfirmSaveChr }, // "Yes" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2aca8 -struct menu_dialog g_MpSaveChrMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(190), // "Confirm" - menuitems_mpsavechr, - NULL, - 0x00000000, - NULL, -}; - -// 2acc0 -struct menu_item menuitems_mpsavesetupname[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU(189), 0x00000000, NULL }, // "Enter a name for your game setup file:" - { MENUITEMTYPE_KEYBOARD, 0, 0x00000000, 0x00000000, 0x00000000, menuhandlerMpPlayerName }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2acfc -struct menu_dialog menudialog_mpsavesetupname = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(188), // "Game File Name" - menuitems_mpsavesetupname, - NULL, - 0x00000000, - NULL, -}; - -// 2ad14 -struct menu_item menuitems_mpsavesetup[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000210, L_MPWEAPONS(230), (u32)&mpMenuTextSetupName, NULL }, // "Name:" - { MENUITEMTYPE_LABEL, 0, 0x00000230, (u32)&pakMenuTextLocationName, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU(184), 0x00000000, NULL }, // "Do you want to save over your original game file?" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(185), 0x00000000, menuhandlerMpSaveSetupOverwrite }, // "Save Over Original" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(186), 0x00000000, menuhandlerMpSaveSetupCopy }, // "Save Copy" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(187), 0x00000000, NULL }, // "Do Not Save" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2ada0 -struct menu_dialog menudialog_mpsavesetup = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(183), // "Save Game Setup" - menuitems_mpsavesetup, - NULL, - 0x00000000, - NULL, -}; - -// 2adb8 -struct menu_item menuitems_mpweapons[] = { - { MENUITEMTYPE_DROPDOWN, 1, 0x00020090, L_MPMENU(174), 0x00000000, menuhandlerMpWeaponSetDropdown }, // "Set:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000212, L_MPMENU(175), 0x00000000, NULL }, // "Current Weapon Setup:" - { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU(176), 0x00000000, menuhandlerMpWeaponSlot }, // "1:" - { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU(177), 0x00000001, menuhandlerMpWeaponSlot }, // "2:" - { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU(178), 0x00000002, menuhandlerMpWeaponSlot }, // "3:" - { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU(179), 0x00000003, menuhandlerMpWeaponSlot }, // "4:" - { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU(180), 0x00000004, menuhandlerMpWeaponSlot }, // "5:" - { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU(181), 0x00000005, menuhandlerMpWeaponSlot }, // "6:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(182), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2aea8 -struct menu_dialog menudialog_mpweapons = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(173), // "Weapons" - menuitems_mpweapons, - NULL, - 0x00000010, - NULL, -}; - -// 2aec0 -struct menu_item menuitems_mpweapons2[] = { - { MENUITEMTYPE_DROPDOWN, 0, 0x00020090, L_MPMENU(174), 0x00000000, menuhandlerMpWeaponSetDropdown }, // "Set:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU(176), (u32)&mpMenuTextWeaponNameForSlot, NULL }, // "1:" - { MENUITEMTYPE_LABEL, 1, 0x00000002, L_MPMENU(177), (u32)&mpMenuTextWeaponNameForSlot, NULL }, // "2:" - { MENUITEMTYPE_LABEL, 2, 0x00000002, L_MPMENU(178), (u32)&mpMenuTextWeaponNameForSlot, NULL }, // "3:" - { MENUITEMTYPE_LABEL, 3, 0x00000002, L_MPMENU(179), (u32)&mpMenuTextWeaponNameForSlot, NULL }, // "4:" - { MENUITEMTYPE_LABEL, 4, 0x00000002, L_MPMENU(180), (u32)&mpMenuTextWeaponNameForSlot, NULL }, // "5:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(182), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2af88 -struct menu_dialog menudialog_mpweapons2 = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(173), // "Weapons" - menuitems_mpweapons2, - NULL, - 0x00000010, - NULL, -}; - -// 2afa0 -struct menu_item menuitems_mpoptions[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(168), 0x00000002, menuhandlerMpDisplayOptionCheckbox }, // "Highlight Pickups" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(169), 0x00000001, menuhandlerMpDisplayOptionCheckbox }, // "Highlight Players" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(170), 0x00000008, menuhandlerMpDisplayOptionCheckbox }, // "Highlight Teams" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(171), 0x00000004, menuhandlerMpDisplayOptionCheckbox }, // "Radar" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(172), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2b02c -struct menu_dialog menudialog_mpoptions = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(167), // "Options" - menuitems_mpoptions, - NULL, - 0x00000000, - NULL, -}; - -// 2b044 -struct menu_item menuitems_mpcontrol[] = { - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPMENU(200), 0x00000000, menuhandlerMpControlStyle }, // "Control Style" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(201), 0x00000001, menuhandlerMpControlCheckbox }, // "Reverse Pitch" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(202), 0x00000002, menuhandlerMpControlCheckbox }, // "Look Ahead" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(203), 0x00000080, menuhandlerMpControlCheckbox }, // "Head Roll" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(204), 0x00000008, menuhandlerMpControlCheckbox }, // "Auto-Aim" - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPMENU(205), 0x00000000, menuhandlerMpAimControl }, // "Aim Control" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(206), 0x00000004, menuhandlerMpControlCheckbox }, // "Sight on Screen" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(207), L_AME(0), menuhandlerMpControlCheckbox }, // "Show Target" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(208), L_ARCH(0), menuhandlerMpControlCheckbox }, // "Show Zoom Range" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(209), 0x00000020, menuhandlerMpControlCheckbox }, // "Ammo on Screen" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(210), 0x00000040, menuhandlerMpControlCheckbox }, // "Gun Function" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(211), L_ASH(0), menuhandlerMpControlCheckbox }, // "Paintball" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(212), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2b184 -struct menu_dialog menudialog_mpcontrol = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(199), // "Control" - menuitems_mpcontrol, - NULL, - 0x00000000, - NULL, -}; - -// 2b19c -struct menu_item menuitems_mpcompletedchallenges[] = { - { MENUITEMTYPE_CUSTOM, 0, 0x00200000, 0x00000078, 0x0000004d, menuhandler0017a20c }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2b1c4 -struct menu_dialog menudialog_mpcompletedchallenges = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(165), // "Completed Challenges" - menuitems_mpcompletedchallenges, - NULL, - 0x00000048, - NULL, -}; - -u32 var800851bc = 0x4e806f76; -u32 var800851c0 = 0x7ca688ab; -u32 var800851c4 = 0x95bfa6ad; -u32 var800851c8 = 0xee888700; -u32 var800851cc = 0x5e6d5e7f; -u32 var800851d0 = 0x416c7d95; -u32 var800851d4 = 0x2e280000; - -// 2b1f8 -struct menu_item menuitems_mpplayerstats[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(146), (u32)&mpMenuTextKills, NULL }, // "Kills:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(147), (u32)&mpMenuTextDeaths, NULL }, // "Deaths:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(148), (u32)&mpMenuTextAccuracy, NULL }, // "Accuracy:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(149), (u32)&mpMenuTextHeadShots, NULL }, // "Head Shots:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(150), (u32)&mpMenuTextAmmoUsed, NULL }, // "Ammo Used:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(151), (u32)&mpMenuTextDamageDealt, NULL }, // "Damage Dealt:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(152), (u32)&mpMenuTextPainReceived, NULL }, // "Pain Received:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(153), (u32)&mpMenuTextGamesPlayed, NULL }, // "Games Played:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(154), (u32)&mpMenuTextGamesWon, NULL }, // "Games Won:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(155), (u32)&mpMenuTextGamesLost, NULL }, // "Games Lost:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(156), (u32)&mpMenuTextTime, NULL }, // "Time:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(157), (u32)&mpMenuTextDistance, NULL }, // "Distance:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000210, L_MPMENU(158), 0x00000000, NULL }, // "Medals Won:" - { MENUITEMTYPE_LABEL, 2, 0x00200000, L_MPMENU(159), (u32)&mpMenuTextMedalAccuracy, menuhandlerMpMedal }, // "Accuracy:" - { MENUITEMTYPE_LABEL, 1, 0x00200000, L_MPMENU(160), (u32)&mpMenuTextMedalHeadShot, menuhandlerMpMedal }, // "Head Shot:" - { MENUITEMTYPE_LABEL, 0, 0x00200000, L_MPMENU(161), (u32)&mpMenuTextMedalKillMaster, menuhandlerMpMedal }, // "KillMaster:" - { MENUITEMTYPE_LABEL, 3, 0x00200000, L_MPMENU(162), (u32)&mpMenuTextMedalSurvivor, menuhandlerMpMedal }, // "Survivor:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(163), 0x00000000, NULL }, // "Your Title:" - { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)&mpMenuTextPlayerTitle, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000200, L_MPWEAPONS(219), 0x00000000, menuhandlerMpUsernamePassword }, // "USERNAME:" - { MENUITEMTYPE_LABEL, 0, 0x00000220, (u32)&mpMenuTextUsernamePassword, 0x00000000, menuhandlerMpUsernamePassword }, - { MENUITEMTYPE_LABEL, 0, 0x00000200, L_MPWEAPONS(220), 0x00000000, menuhandlerMpUsernamePassword }, // "PASSWORD:" - { MENUITEMTYPE_LABEL, 1, 0x00000220, (u32)&mpMenuTextUsernamePassword, 0x00000000, menuhandlerMpUsernamePassword }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(164), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2b450 -struct menu_dialog menudialog_mpplayerstats = { - MENUDIALOGTYPE_DEFAULT, - (u32)&func0f17b360, - menuitems_mpplayerstats, - NULL, - 0x00000048, - &menudialog_mpcompletedchallenges, -}; - -u32 var80085448 = 0x00000300; -u32 var8008544c = 0x0400ff00; - -// 2b470 -struct menu_item menuitems_mpcharacter[] = { - { MENUITEMTYPE_LABEL, 0, 0x00004230, (u32)&mpMenuTextBodyName, 0x00000000, NULL }, - { MENUITEMTYPE_CAROUSEL, 0, 0x00000000, 0x00000000, 0x00000022, menuhandlerMpCharacterHead }, - { MENUITEMTYPE_CAROUSEL, 0, 0x00000000, 0x00000000, 0x0000001b, menuhandlerMpCharacterBody }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2b4c0 -struct menu_dialog menudialog_mpcharacter = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(143), // "Character" - menuitems_mpcharacter, - menudialog0017a174, - 0x00000002, - NULL, -}; - -// 2b4d8 -struct menu_item menuitems_mpplayername[] = { - { MENUITEMTYPE_KEYBOARD, 0, 0x00000000, 0x00000000, 0x00000000, menuhandler0017b91c }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2b500 -struct menu_dialog menudialog_mpplayername = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(142), // "Player Name" - menuitems_mpplayername, - NULL, - 0x00000000, - NULL, -}; - -// 2b518 -struct menu_item menuitems_mploadgamesettingstype0[] = { - { MENUITEMTYPE_CUSTOM, 0, 0x00000000, 0x00000078, 0x00000042, menuhandler0017bab4 }, - { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&func0f17be2c, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2b554 -struct menu_dialog menudialog_mploadgamesettingstype0 = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(139), // "Load Game Settings" - menuitems_mploadgamesettingstype0, - NULL, - 0x00000001, - NULL, -}; - -// 2b56c -struct menu_item menuitems_mploadgamesettingstype1[] = { - { MENUITEMTYPE_CUSTOM, 1, 0x00000000, 0x00000078, 0x00000042, menuhandler0017bab4 }, - { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&func0f17be2c, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2b5a8 -struct menu_dialog menudialog_mploadgamesettingstype1 = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(139), // "Load Game Settings" - menuitems_mploadgamesettingstype1, - NULL, - 0x00000000, - NULL, -}; - -// 2b5c0 -struct menu_item menuitems_mploadplayer[] = { - { MENUITEMTYPE_CUSTOM, 0, 0x00000000, 0x0000007e, 0x00000042, menuhandler0017bfc0 }, - { MENUITEMTYPE_LABEL, 0, 0x00000200, L_MPMENU(138), 0x00000000, NULL }, // "B Button to cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2b5fc -struct menu_dialog menudialog_mploadplayer = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(137), // "Load Player" - menuitems_mploadplayer, - NULL, - 0x00000000, - NULL, -}; - -// 2b614 -struct menu_item menuitems_mparena[] = { - { MENUITEMTYPE_CUSTOM, 0, 0x00020000, 0x00000078, 0x0000004d, menuhandler001791c8 }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2b63c -struct menu_dialog menudialog_mparena = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(115), // "Arena" - menuitems_mparena, - NULL, - 0x00000011, - NULL, -}; - -// 2b654 -struct menu_item menuitems_mplimits[] = { - { MENUITEMTYPE_SLIDER, 0, 0x00020010, L_MPMENU(108), 0x0000003c, menuhandlerMpTimeLimitSlider }, // "Time" - { MENUITEMTYPE_SLIDER, 0, 0x00020010, L_MPMENU(109), 0x00000064, menuhandlerMpScoreLimitSlider }, // "Score" - { MENUITEMTYPE_SLIDER, 0, 0x00020010, L_MISC(447), 0x00000190, menuhandlerMpTeamScoreLimitSlider }, // "Team Score" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU(110), 0x00000000, menuhandlerMpRestoreScoreDefaults }, // "Restore Defaults" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(111), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2b6e0 -struct menu_dialog menudialog_mplimits = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(107), // "Limits" - menuitems_mplimits, - NULL, - 0x00000010, - NULL, -}; - -// 2b6f8 -struct menu_item menuitems_mpplayerhandicaps[] = { - { MENUITEMTYPE_SLIDER, 0, 0x00020010, (u32)&func0f17c524, 0x000000ff, menuhandlerMpHandicapPlayer }, - { MENUITEMTYPE_SLIDER, 1, 0x00020010, (u32)&func0f17c524, 0x000000ff, menuhandlerMpHandicapPlayer }, - { MENUITEMTYPE_SLIDER, 2, 0x00020010, (u32)&func0f17c524, 0x000000ff, menuhandlerMpHandicapPlayer }, - { MENUITEMTYPE_SLIDER, 3, 0x00020010, (u32)&func0f17c524, 0x000000ff, menuhandlerMpHandicapPlayer }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU(110), 0x00000000, menuhandlerMpRestoreHandicapDefaults }, // "Restore Defaults" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(111), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2b798 -struct menu_dialog menudialog_mpplayerhandicaps = { - MENUDIALOGTYPE_DEFAULT, - L_MPWEAPONS(184), // "Player Handicaps" - menuitems_mpplayerhandicaps, - NULL, - 0x00000010, - NULL, -}; - -// 2b7b0 -struct menu_item menuitems_mpready[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(106), 0x00000000, NULL }, // "...and waiting" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2b7d8 -struct menu_dialog g_MpReadyMenuDialog = { - MENUDIALOGTYPE_SUCCESS, - L_MPMENU(105), // "Ready!" - menuitems_mpready, - menudialogMpReady, - 0x00000001, - NULL, -}; - -u32 var800857d0 = 0x00000000; -u32 var800857d4 = 0x50670000; // "Normal Simulants" -u32 var800857d8 = 0x00000006; -u32 var800857dc = 0x50680000; // "Special Simulants" - -// 2b800 -struct menu_item menuitems_mpaddchangesimulant[] = { - { MENUITEMTYPE_CUSTOM, 0, 0x00020000, 0x00000078, 0x00000042, menuhandler0017c6a4 }, - { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&mpMenuTextSimulantDescription, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2b83c -struct menu_dialog g_MpAddSimulantMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(101), // "Add Simulant" - menuitems_mpaddchangesimulant, - NULL, - 0x00000011, - NULL, -}; - -// 2b854 -struct menu_dialog g_MpChangeSimulantMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(102), // "Change Simulant" - menuitems_mpaddchangesimulant, - menudialogMpSimulant, - 0x00000011, - NULL, -}; - -// 2b86c -struct menu_item menuitems_mpsimulantcharacter[] = { - { MENUITEMTYPE_CAROUSEL, 0, 0x00020000, 0x00000000, 0x00000025, menuhandlerMpSimulantHead }, - { MENUITEMTYPE_CAROUSEL, 0, 0x00020000, 0x00000000, 0x0000001b, menuhandlerMpSimulantBody }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2b8a8 -struct menu_dialog menudialog_mpsimulantcharacter = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(100), // "Simulant Character" - menuitems_mpsimulantcharacter, - menudialog0017ccfc, - 0x00000012, - NULL, -}; - -// 2b8c0 -struct menu_item menuitems_mpeditsimulant[] = { - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(95), 0x00000000, menuhandlerMpSimulantDifficulty }, // "Difficulty:" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(96), 0x00000000, menuhandlerMpChangeSimulantType }, // "Change Type..." - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(97), 0x00000000, &menudialog_mpsimulantcharacter }, // "Character..." - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(98), 0x00000000, menuhandlerMpDeleteSimulant }, // "Delete Simulant" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(99), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2b94c -struct menu_dialog g_MpEditSimulantMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - (u32)&func0f17cfc0, - menuitems_mpeditsimulant, - menudialogMpSimulant, - 0x00000010, - NULL, -}; - -// 2b964 -struct menu_item menuitems_mpsimulants[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(84), 0x00000000, menuhandlerMpAddSimulant }, // "Add Simulant..." - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(85), (u32)&func0f17d378, menuhandlerMpSimulantSlot }, // "1:" - { MENUITEMTYPE_SELECTABLE, 1, 0x00000000, L_MPMENU(86), (u32)&func0f17d378, menuhandlerMpSimulantSlot }, // "2:" - { MENUITEMTYPE_SELECTABLE, 2, 0x00000000, L_MPMENU(87), (u32)&func0f17d378, menuhandlerMpSimulantSlot }, // "3:" - { MENUITEMTYPE_SELECTABLE, 3, 0x00000000, L_MPMENU(88), (u32)&func0f17d378, menuhandlerMpSimulantSlot }, // "4:" - { MENUITEMTYPE_SELECTABLE, 4, 0x00000000, L_MPMENU(89), (u32)&func0f17d378, menuhandlerMpSimulantSlot }, // "5:" - { MENUITEMTYPE_SELECTABLE, 5, 0x00000000, L_MPMENU(90), (u32)&func0f17d378, menuhandlerMpSimulantSlot }, // "6:" - { MENUITEMTYPE_SELECTABLE, 6, 0x00000000, L_MPMENU(91), (u32)&func0f17d378, menuhandlerMpSimulantSlot }, // "7:" - { MENUITEMTYPE_SELECTABLE, 7, 0x00000000, L_MPMENU(92), (u32)&func0f17d378, menuhandlerMpSimulantSlot }, // "8:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(93), 0x00000000, menuhandlerMpClearAllSimulants }, // "Clear All" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(94), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2ba7c -struct menu_dialog menudialog_mpsimulants = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(83), // "Simulants" - menuitems_mpsimulants, - menudialogMpSimulants, - 0x00000010, - NULL, -}; - -u32 var80085a74 = 0x00000000; -u32 var80085a78 = 0x00000000; -u32 var80085a7c = 0x00000000; -u32 var80085a80 = 0x00000000; -u8 g_TeamIdsForPairing[] = {0, 1, 2, 3}; - -// 2baa8 -struct menu_item menuitems_mpautoteam[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(76), 0x00000000, menuhandlerMpTwoTeams }, // "Two Teams" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(77), 0x00000000, menuhandlerMpThreeTeams }, // "Three Teams" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(78), 0x00000000, menuhandlerMpFourTeams }, // "Four Teams" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(79), 0x00000000, menuhandlerMpMaximumTeams }, // "Maximum Teams" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(80), 0x00000000, menuhandlerMpHumansVsSimulants }, // "Humans vs. Simulants" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(81), 0x00000000, menuhandlerMpHumanSimulantPairs }, // "Human-Simulant Pairs" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(82), 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2bb5c -struct menu_dialog menudialog_mpautoteam = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(75), // "Auto Team" - menuitems_mpautoteam, - NULL, - 0x00000010, - NULL, -}; - -// 2bb74 -struct menu_item menuitems_mpteamcontrol[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(71), 0x00000002, menuhandlerMpTeamsEnabled }, // "Teams Enabled" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU(72), 0x00000000, menuhandlerMpTeamsLabel }, // "Teams:" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 1, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 2, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 3, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 4, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 5, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 6, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 7, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 8, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 9, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 10, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 11, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(73), 0x00000000, &menudialog_mpautoteam }, // "Auto Team..." - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(74), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2bcf0 -struct menu_dialog menudialog_mpteamcontrol = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(70), // "Team Control" - menuitems_mpteamcontrol, - NULL, - 0x00000010, - NULL, -}; - -u32 var80085ce8 = L_MISC(166); // "Random" -u32 var80085cec = L_MISC(167); // "Select All" -u32 var80085cf0 = L_MISC(168); // "Select None" -u32 var80085cf4 = L_MISC(169); // "Randomize" - -// 2bd18 -struct menu_item menuitems_2bd18[] = { - { MENUITEMTYPE_CUSTOM, 0, 0x00020000, 0x00000078, 0x0000004d, menuhandler0017dc84 }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2bd40 -struct menu_dialog menudialog_2bd40 = { - MENUDIALOGTYPE_DEFAULT, - (u32)&mpMenuTextSelectTuneOrTunes, - menuitems_2bd18, - menudialogMpSelectTune, - 0x00000010, - NULL, -}; - -// 2bd58 -struct menu_item menuitems_mpsoundtrack[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(63), 0x00000000, NULL }, // "Current:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS(3), (u32)&mpMenuTextCurrentTrack, NULL }, // "" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, (u32)&mpMenuTextSelectTuneOrTunes, 0x00000000, &menudialog_2bd40 }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(64), 0x00000000, menuhandlerMpMultipleTunes }, // "Multiple Tunes" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(65), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2bdf8 -struct menu_dialog menudialog_mpsoundtrack = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(62), // "Soundtrack" - menuitems_mpsoundtrack, - NULL, - 0x00000010, - NULL, -}; - -// 2be10 -struct menu_item menuitems_mpchangeteamname[] = { - { MENUITEMTYPE_KEYBOARD, 0, 0x00000000, 0x00000000, 0x00000000, menuhandler0017e06c }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2be38 -struct menu_dialog g_MpChangeTeamNameMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(61), // "Change Team Name" - menuitems_mpchangeteamname, - NULL, - 0x00000000, - NULL, -}; - -// 2be50 -struct menu_item menuitems_mpteamnames[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS(8), (u32)&func0f17e288, menuhandlerMpTeamNameSlot }, // "Red" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS(9), (u32)&func0f17e288, menuhandlerMpTeamNameSlot }, // "Yellow" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS(10), (u32)&func0f17e288, menuhandlerMpTeamNameSlot }, // "Blue" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS(11), (u32)&func0f17e288, menuhandlerMpTeamNameSlot }, // "Magenta" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS(12), (u32)&func0f17e288, menuhandlerMpTeamNameSlot }, // "Cyan" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS(13), (u32)&func0f17e288, menuhandlerMpTeamNameSlot }, // "Orange" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS(14), (u32)&func0f17e288, menuhandlerMpTeamNameSlot }, // "Pink" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS(15), (u32)&func0f17e288, menuhandlerMpTeamNameSlot }, // "Brown" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(60), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2bf2c -struct menu_dialog menudialog_mpteamnames = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(59), // "Team Names" - menuitems_mpteamnames, - NULL, - 0x00000010, - NULL, -}; - -// 2bf44 -struct menu_item menuitems_2bf44[] = { - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCONFIG, 0x00000000, 0x0000007c, 0x00000037, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU(57), 0x00000000, menuhandler0017e38c }, // "Accept" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(58), 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2bfa8 -struct menu_dialog menudialog_2bfa8 = { - MENUDIALOGTYPE_DEFAULT, - (u32)&func0f17e318, - menuitems_2bf44, - menudialog0017e3fc, - 0x00000014, - NULL, -}; - -// 2bfc0 -struct menu_item menuitems_mpchallengedetails[] = { - { MENUITEMTYPE_CUSTOM, 0, 0x00200000, 0x00000078, 0x0000004d, menuhandler0017e4d4 }, - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCHALLENGE, 0x00000000, 0x0000007c, 0x00000037, menuhandler0017e9d8 }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, menuhandler0017e9d8 }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS(171), 0x00000000, menuhandlerMpStartChallenge }, // "Start Challenge" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(51), 0x00000000, menuhandlerMpAbortChallenge }, // "Abort Challenge" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2c038 -struct menu_dialog menudialog_mpchallengedetails = { - MENUDIALOGTYPE_DEFAULT, - (u32)&mpMenuTextChallengeName, - menuitems_mpchallengedetails, - menudialog0017eb34, - 0x00000808, - NULL, -}; - -struct menu_dialog menudialog_mpgamesetup2; - -// 2c050 -struct menu_dialog menudialog_mpchallengedetails2 = { - MENUDIALOGTYPE_DEFAULT, - (u32)&mpMenuTextChallengeName, - menuitems_mpchallengedetails, - menudialog0017eb34, - 0x00000808, - &menudialog_mpgamesetup2, -}; - -// 2c068 -struct menu_item menuitems_2c068[] = { - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCONFIG, 0x00000000, 0x0000007c, 0x00000037, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(57), 0x00000000, menuhandler0017ec64 }, // "Accept" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(58), 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2c0cc -struct menu_dialog menudialog_2c0cc = { - MENUDIALOGTYPE_DEFAULT, - (u32)&func0f17e318, - menuitems_2c068, - menudialog0017e3fc, - 0x00000004, - NULL, -}; - -// 2c0e4 -struct menu_item menuitems_mpcombatchallenges2[] = { - { MENUITEMTYPE_CUSTOM, 1, 0x00200000, 0x00000078, 0x0000004d, menuhandler0017e4d4 }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2c10c -struct menu_dialog menudialog_mpcombatchallenges2 = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(50), // "Combat Challenges" - menuitems_mpcombatchallenges2, - menudialog0017eb34, - 0x00000000, - NULL, -}; - -// 2c124 -u16 mplockoptions[4] = { - L_MPMENU(45), // "None" - L_MPMENU(46), // "Last Winner" - L_MPMENU(47), // "Last Loser" - L_MPMENU(48), // "Random" -}; - -struct menu_dialog menudialog_mpabort2; - -// 2c12c -struct menu_item menuitems_mpstuff[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(41), 0x00000000, &menudialog_mpsoundtrack }, // "Soundtrack" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(42), 0x00000000, &menudialog_mpteamnames }, // "Team Names" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(44), 0x00000000, menuhandlerMpLock }, // "Lock" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(216), 0x00000000, menuhandlerScreenRatio }, // "Ratio" - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS(154), 0x00000000, menuhandlerScreenSplit }, // "Split" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(36), 0x00000000, &g_MpReadyMenuDialog }, // "Start Game" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(37), 0x00000000, &menudialog_2aba0 }, // "Drop Out" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(27), 0x00000000, &menudialog_mpabort2 }, // "Abort Game" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2c208 -struct menu_dialog menudialog_mpstuff = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(40), // "Stuff" - menuitems_mpstuff, - NULL, - 0x00000810, - &menudialog_mpchallengedetails, -}; - -// 2c220 -struct menu_dialog menudialog_mpstuff2 = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(40), // "Stuff" - menuitems_mpstuff, - NULL, - 0x00000810, - NULL, -}; - -// 2c238 -struct menu_item menuitems_mpplayersetup4[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(30), (u32)&mpGetCurrentPlayerName, &menudialog_mpplayername }, // "Name" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(31), 0x00000000, &menudialog_mpcharacter }, // "Character" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(33), 0x00000000, &menudialog_mpcontrol }, // "Control" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(34), 0x00000000, &menudialog_mpoptions }, // "Player Options" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(35), 0x00000000, &menudialog_mpplayerstats }, // "Statistics" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(29), 0x00000000, &menudialog_mploadplayer }, // "Load Player" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, (u32)&mpMenuTextSavePlayerOrCopy, 0x00000000, menuhandlerMpSavePlayer }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2c2ec -struct menu_dialog menudialog_mpplayersetup4 = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(28), // "Player Setup" - menuitems_mpplayersetup4, - NULL, - 0x00000800, - &menudialog_mpstuff, -}; - -// 2c304 -struct menu_dialog menudialog_mpplayersetup2 = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(28), // "Player Setup" - menuitems_mpplayersetup4, - NULL, - 0x00000800, - &menudialog_mpstuff2, -}; - -// 2c31c -struct menu_dialog menudialog_mpplayersetup3 = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(28), // "Player Setup" - menuitems_mpplayersetup4, - NULL, - 0x00000000, - NULL, -}; - -// 2c334 -struct menu_item menuitems_mpabort2[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU(53), 0x00000000, NULL }, // "Are you sure you want to abort the game?" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(54), 0x00000000, menuhandler0017ef30 }, // "Abort" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(55), 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2c384 -struct menu_dialog menudialog_mpabort2 = { - MENUDIALOGTYPE_DANGER, - L_MPMENU(52), // "Abort" - menuitems_mpabort2, - NULL, - 0x00000000, - NULL, -}; - -struct menu_dialog menudialog_mpscenario; - -// 2c39c -struct menu_item menuitems_mpgamesetup3[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00020004, L_MPMENU(19), (u32)&mpMenuTextScenarioShortName, &menudialog_mpscenario }, // "Scenario" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(21), 0x00000000, menuhandlerMpOpenOptions }, // "Options" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(20), (u32)&mpMenuTextArenaName, &menudialog_mparena }, // "Arena" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(23), 0x00000000, &menudialog_mpweapons }, // "Weapons" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(24), 0x00000000, &menudialog_mplimits }, // "Limits" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPWEAPONS(184), 0x00000000, &menudialog_mpplayerhandicaps }, // "Player Handicaps" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(25), 0x00000000, &menudialog_mpsimulants }, // "Simulants" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(22), 0x00000000, &menudialog_mpteamcontrol }, // "Teams" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00060004, L_MPMENU(18), 0x00000000, &menudialog_mploadgamesettingstype0 }, // "Load Settings" - { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU(26), 0x00000000, menuhandlerMpSaveSettings }, // "Save Settings" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2c48c -struct menu_dialog menudialog_mpgamesetup3 = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(17), // "Game Setup" - menuitems_mpgamesetup3, - menudialogMpGameSetup, - 0x00000810, - &menudialog_mpplayersetup4, -}; - -// 2c4a4 -struct menu_dialog menudialog_mpgamesetup2 = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(17), // "Game Setup" - menuitems_mpgamesetup3, - menudialogMpGameSetup, - 0x00000810, - &menudialog_mpplayersetup2, -}; - -// 2c4bc -struct menu_item menuitems_mpquickgo[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MISC(456), 0x00000000, &g_MpReadyMenuDialog }, // "Start Game" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(29), 0x00000000, &menudialog_mploadplayer }, // "Load Player" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MISC(458), 0x00000000, &menudialog_mpplayersetup3 }, // "Player Settings" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MISC(457), 0x00000000, &menudialog_2aba0 }, // "Drop Out" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2c520 -struct menu_dialog g_MpQuickGoMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MISC(460), // "Quick Go" - menuitems_mpquickgo, - menudialogMpQuickGo, - 0x00000000, - NULL, -}; - -struct menu_dialog menudialog_mpscenario2; - -// 2c538 -struct menu_item menuitems_mpquickteamgamesetup[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00020004, L_MPMENU(19), (u32)&mpMenuTextScenarioShortName, &menudialog_mpscenario2 }, // "Scenario" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(21), 0x00000000, menuhandlerMpOpenOptions }, // "Options" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(20), (u32)&mpMenuTextArenaName, &menudialog_mparena }, // "Arena" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(23), (u32)&mpMenuTextWeaponSetName, &menudialog_mpweapons2 }, // "Weapons" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(24), 0x00000000, &menudialog_mplimits }, // "Limits" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, menuhandlerQuickTeamSeparator }, - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MISC(449), 0x00000000, menuhandlerPlayerTeam }, // "Player 1 Team" - { MENUITEMTYPE_DROPDOWN, 1, 0x00000000, L_MISC(450), 0x00000000, menuhandlerPlayerTeam }, // "Player 2 Team" - { MENUITEMTYPE_DROPDOWN, 2, 0x00000000, L_MISC(451), 0x00000000, menuhandlerPlayerTeam }, // "Player 3 Team" - { MENUITEMTYPE_DROPDOWN, 3, 0x00000000, L_MISC(452), 0x00000000, menuhandlerPlayerTeam }, // "Player 4 Team" - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MISC(453), 0x00000000, menuhandlerMpNumberOfSimulants }, // "Number Of Simulants" - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MISC(454), 0x00000000, menuhandlerMpSimulantsPerTeam }, // "Simulants Per Team" - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MISC(455), 0x00000000, menuhandler0017f74c }, // "Simulant Difficulty" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MISC(448), 0x00000000, menuhandlerMpFinishedSetup }, // "Finished Setup" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU(26), 0x00000000, menuhandlerMpSaveSettings }, // "Save Settings" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2c6a0 -struct menu_dialog g_MpQuickTeamGameSetupMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(17), // "Game Setup" - menuitems_mpquickteamgamesetup, - NULL, - 0x00000000, - NULL, -}; - -// 2c6b8 -struct menu_item menuitems_mpquickteam[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00400000, L_MISC(463), 0x00000000, menuhandlerMpQuickTeamOption }, // "Players Only" - { MENUITEMTYPE_SELECTABLE, 1, 0x00400000, L_MISC(464), 0x00000000, menuhandlerMpQuickTeamOption }, // "Players and Simulants" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 2, 0x00400000, L_MISC(465), 0x00000000, menuhandlerMpQuickTeamOption }, // "Player Teams" - { MENUITEMTYPE_SELECTABLE, 3, 0x00400000, L_MISC(466), 0x00000000, menuhandlerMpQuickTeamOption }, // "Players vs. Simulants" - { MENUITEMTYPE_SELECTABLE, 4, 0x00400000, L_MISC(467), 0x00000000, menuhandlerMpQuickTeamOption }, // "Player-Simulant Teams" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2c744 -struct menu_dialog menudialog_mpquickteam = { - MENUDIALOGTYPE_DEFAULT, - L_MISC(462), // "Quick Team" - menuitems_mpquickteam, - NULL, - 0x00000004, - NULL, -}; - -// 2c75c -struct menu_item menuitems_mpcombatsimulator[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_MISC(441), 0x00000000, &menudialog_mpcombatchallenges2 }, // "Challenges" - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_MISC(442), 0x00000001, &menudialog_mploadgamesettingstype1 }, // "Load/Preset Games" - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_MISC(443), 0x00000002, &menudialog_mpquickteam }, // "Quick Start" - { MENUITEMTYPE_SELECTABLE, 0, 0x00400000, L_MISC(444), 0x00000003, menuhandlerMpAdvancedSetup }, // "Advanced Setup" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2c7c0 -struct menu_dialog g_CombatSimulatorMenuDialog = { - MENUDIALOGTYPE_DEFAULT, - L_MISC(445), // "Combat Simulator" - menuitems_mpcombatsimulator, - menudialogCombatSimulator, - 0x00000004, - NULL, -}; - -u32 var800867b8 = 0x00000000; -u32 var800867bc = 0x00000000; - -// 2c7e0 -u16 mpslowmotionoptions[] = { - L_MPMENU(240), // "Off" - L_MPMENU(241), // "On" - L_MPMENU(242), // "Smart" - 0x0000, -}; - -// 2c7e8 -struct menu_item menuitems_mpcombatoptions[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(228), MPOPTION_NOPLAYERHIGHLIGHT, menuhandlerMpCheckboxOption }, // "No Player Highlight" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(229), MPOPTION_NOPICKUPHIGHLIGHT, menuhandlerMpCheckboxOption }, // "No Pickup Highlight" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2c8d8 -struct menu_dialog menudialog_mpcombatoptions = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(215), // "Combat Options" - menuitems_mpcombatoptions, - menudialog00184ec0, - 0x00000010, - NULL, -}; - -// 2c8f0 -struct menu_item menuitems_mpbriefcaseoptions[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(237), MPOPTION_HTB_HIGHLIGHTBRIEFCASE, menuhandlerMpCheckboxOption }, // "Highlight Briefcase" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(238), MPOPTION_HTB_SHOWONRADAR, menuhandlerMpCheckboxOption }, // "Show on Radar" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2c9f4 -struct menu_dialog menudialog_mpbriefcaseoptions = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(216), // "Briefcase Options" - menuitems_mpbriefcaseoptions, - menudialog00184ec0, - 0x00000010, - NULL, -}; - -struct defaultobj *var800869ec = NULL; -u32 var800869f0 = 0x01000008; -u32 var800869f4 = 0x00110000; -u32 var800869f8 = 0x00420001; -u32 var800869fc = 0x00204000; -u32 var80086a00 = 0x00000000; -u32 var80086a04 = 0x00000000; -u32 var80086a08 = 0x00000000; -u32 var80086a0c = 0x3f800000; -u32 var80086a10 = 0x00000000; -u32 var80086a14 = 0x00000000; -u32 var80086a18 = 0x00000000; -u32 var80086a1c = 0x3f800000; -u32 var80086a20 = 0x00000000; -u32 var80086a24 = 0x00000000; -u32 var80086a28 = 0x00000000; -u32 var80086a2c = 0x3f800000; -u32 var80086a30 = 0x00000000; -u32 var80086a34 = 0x00000000; -u32 var80086a38 = 0x00000000; -u32 var80086a3c = 0x000003e8; -u32 var80086a40 = 0xffffff00; -u32 var80086a44 = 0xffffff00; -u32 var80086a48 = 0x0fff0000; -u32 var80086a4c = 0x57000000; -u32 var80086a50 = 0x00ffffff; -u32 var80086a54 = 0x00000000; - -// 2ca78 -struct menu_item menuitems_mpcaptureoptions[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(236), MPOPTION_CTC_SHOWONRADAR, menuhandlerMpCheckboxOption }, // "Show on Radar" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2cb68 -struct menu_dialog menudialog_mpcaptureoptions = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(220), // "Capture Options" - menuitems_mpcaptureoptions, - menudialog00184ec0, - 0x00000010, - NULL, -}; - -u32 var80086b60 = 0x01000008; -u32 var80086b64 = 0x00110000; -u32 var80086b68 = 0x00420001; -u32 var80086b6c = 0x00204000; -u32 var80086b70 = 0x00000000; -u32 var80086b74 = 0x00000000; -u32 var80086b78 = 0x00000000; -u32 var80086b7c = 0x3f800000; -u32 var80086b80 = 0x00000000; -u32 var80086b84 = 0x00000000; -u32 var80086b88 = 0x00000000; -u32 var80086b8c = 0x3f800000; -u32 var80086b90 = 0x00000000; -u32 var80086b94 = 0x00000000; -u32 var80086b98 = 0x00000000; -u32 var80086b9c = 0x3f800000; -u32 var80086ba0 = 0x00000000; -u32 var80086ba4 = 0x00000000; -u32 var80086ba8 = 0x00000000; -u32 var80086bac = 0x000003e8; -u32 var80086bb0 = 0xffffff00; -u32 var80086bb4 = 0xffffff00; -u32 var80086bb8 = 0x0fff0000; -u32 var80086bbc = 0x57000000; -u32 var80086bc0 = 0x00ffffff; -u32 var80086bc4 = 0x00000000; - -// 2cbe8 -struct menu_item menuitems_mphilloptions[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(233), MPOPTION_KOH_HILLONRADAR, menuhandlerMpCheckboxOption }, // "Hill on Radar" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(234), MPOPTION_KOH_MOBILEHILL, menuhandlerMpCheckboxOption }, // "Mobile Hill" - { MENUITEMTYPE_SLIDER, 0, 0x00020000, L_MPMENU(235), 0x0000006e, menuhandlerMpHillTime }, // "Time" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2cd00 -struct menu_dialog menudialog_mphilloptions = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(219), // "Hill Options" - menuitems_mphilloptions, - menudialog00184ec0, - 0x00000010, - NULL, -}; - -// 2cd18 -struct menu_item menuitems_mphackeroptions[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(231), MPOPTION_HTM_HIGHLIGHTTERMINAL, menuhandlerMpCheckboxOption }, // "Highlight Terminal" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(238), MPOPTION_HTM_SHOWONRADAR, menuhandlerMpCheckboxOption }, // "Show on Radar" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2ce1c -struct menu_dialog menudialog_mphackeroptions = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(217), // "Hacker Options" - menuitems_mphackeroptions, - menudialog00184ec0, - 0x00000010, - NULL, -}; - -u32 var80086e14 = 0x02000008; -u32 var80086e18 = 0x00130000; -u32 var80086e1c = 0x00420001; -u32 var80086e20 = 0x00204000; -u32 var80086e24 = 0x00000000; -u32 var80086e28 = 0x00000000; -u32 var80086e2c = 0x00000000; -u32 var80086e30 = 0x3f800000; -u32 var80086e34 = 0x00000000; -u32 var80086e38 = 0x00000000; -u32 var80086e3c = 0x00000000; -u32 var80086e40 = 0x3f800000; -u32 var80086e44 = 0x00000000; -u32 var80086e48 = 0x00000000; -u32 var80086e4c = 0x00000000; -u32 var80086e50 = 0x3f800000; -u32 var80086e54 = 0x00000000; -u32 var80086e58 = 0x00000000; -u32 var80086e5c = 0x00000000; -u32 var80086e60 = 0x000003e8; -u32 var80086e64 = 0xffffff00; -u32 var80086e68 = 0xffffff00; -u32 var80086e6c = 0x0fff0000; -u32 var80086e70 = 0x36000000; -u32 var80086e74 = 0x00ffffff; -u32 var80086e78 = 0x00000000; - -// 2ce9c -struct menu_item menuitems_mppopacapoptions[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(230), MPOPTION_PAC_HIGHLIGHTTARGET, menuhandlerMpCheckboxOption }, // "Highlight Target" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(238), MPOPTION_PAC_SHOWONRADAR, menuhandlerMpCheckboxOption }, // "Show on Radar" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2cfa0 -struct menu_dialog menudialog_mppopacapoptions = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(218), // "Pop a Cap Options" - menuitems_mppopacapoptions, - menudialog00184ec0, - 0x00000010, - NULL, -}; - -// 2cfb8 -struct mpscenario g_MpScenarios[] = { - { &menudialog_mpcombatoptions, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, - { &menudialog_mpbriefcaseoptions, scenarioHtbInit, scenarioHtbCallback08, scenarioHtbReset, scenarioHtbCallback10, scenarioHtbCallback14, scenarioHtbCallback18, scenarioHtbKill, scenarioHtbRadar, scenarioHtbRadar2, scenarioHtbHighlight, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, - { &menudialog_mphackeroptions, scenarioHtmInit, scenarioHtmCallback08, scenarioHtmReset, scenarioHtmCallback10, scenarioHtmCallback14, scenarioHtmCallback18, scenarioHtmKill, scenarioHtmRadar, scenarioHtmRadar2, scenarioHtmHighlight, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, - { &menudialog_mppopacapoptions, scenarioPacInit, NULL, scenarioPacReset, scenarioPacCallback10, NULL, scenarioPacCallback18, scenarioPacKill, scenarioPacRadar, scenarioPacRadar2, scenarioPacHighlight, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, - { &menudialog_mphilloptions, scenarioKohInit, NULL, scenarioKohReset, scenarioKohCallback10, NULL, scenarioKohCallback18, scenarioKohKill, scenarioKohRadar, NULL, NULL, NULL, NULL, scenarioKohIsRoomHighlighted, scenarioKohCallback38, NULL, scenarioKohCallback40, scenarioKohCallback44 }, - { &menudialog_mpcaptureoptions, scenarioCtcInit, scenarioCtcCallback08, scenarioCtcReset, scenarioCtcCallback10, scenarioCtcCallback14, NULL, scenarioCtcKill, scenarioCtcRadar, scenarioCtcRadar2, scenarioCtcHighlight, scenarioCtcCallback2c, scenarioCtcGetMaxTeams, scenarioCtcIsRoomHighlighted, scenarioCtcCallback38, NULL, NULL, NULL }, -}; - -// 2d168 -struct mpscenariooverview g_MpScenarioOverviews[] = { - // Full name, short name, unlock flags? - { L_MPMENU(246), L_MPMENU(253), 0x00, false }, // "Combat", "Combat" - { L_MPMENU(247), L_MPMENU(254), 0x20, false }, // "Hold the Briefcase", "Briefcase" - { L_MPMENU(248), L_MPMENU(255), 0x4e, false }, // "Hacker Central", "Hacker" - { L_MPMENU(249), L_MPMENU(256), 0x4d, false }, // "Pop a Cap", "Pop" - { L_MPMENU(250), L_MPMENU(257), 0x1f, true }, // "King of the Hill", "Hill" - { L_MPMENU(251), L_MPMENU(258), 0x21, true }, // "Capture the Case", "Capture" -}; - -u32 var8008716c = 0x00000000; -u32 var80087170 = 0x50f40000; // "Free for All!" -u32 var80087174 = 0x00000004; -u32 var80087178 = 0x50f50000; // "-Teamwork-" - -// 2d19c -struct menu_item menuitems_mpscenario[] = { - { MENUITEMTYPE_CUSTOM, 0, 0x00020040, 0x00000078, 0x0000004d, menuhandler00185068 }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2d1c4 -struct menu_dialog menudialog_mpscenario = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(243), // "Scenario" - menuitems_mpscenario, - NULL, - 0x00000011, - NULL, -}; - -// 2d1dc -struct menu_item menuitems_mpscenario2[] = { - { MENUITEMTYPE_CUSTOM, 1, 0x00020040, 0x00000078, 0x0000004d, menuhandler00185068 }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, -}; - -// 2d204 -struct menu_dialog menudialog_mpscenario2 = { - MENUDIALOGTYPE_DEFAULT, - L_MPMENU(243), // "Scenario" - menuitems_mpscenario2, - NULL, - 0x00000011, - NULL, -}; - -u32 var800871fc = 0x01000003; -u32 var80087200 = 0x0020ffff; -u32 var80087204 = 0x00000000; -u32 var80087208 = 0x00000000; -u32 var8008720c = 0x00000000; -u32 var80087210 = 0x00000000; -u32 var80087214 = 0x00000000; -u32 var80087218 = 0x3f800000; -u32 var8008721c = 0x00000000; -u32 var80087220 = 0x00000000; -u32 var80087224 = 0x00000000; -u32 var80087228 = 0x3f800000; -u32 var8008722c = 0x00000000; -u32 var80087230 = 0x00000000; -u32 var80087234 = 0x00000000; -u32 var80087238 = 0x3f800000; -u32 var8008723c = 0x00000000; -u32 var80087240 = 0x00000000; -u32 var80087244 = 0x00000000; -u32 var80087248 = 0x000003e8; -u32 var8008724c = 0xffffff00; -u32 var80087250 = 0xffffff00; -u32 var80087254 = 0x0fff0000; -u32 var80087258 = 0x00000000; -u32 var8008725c = 0x00000000; -s32 var80087260 = 0x00000000; -u32 var80087264 = 0x00000000; - -// 2d288 -struct mpweapon mpweaponstable[] = { - /*0x00*/ { WEAPON_NONE, 0x00, 0x00, 0x00, 0x0080, MODEL_CHRTT33, 0x01, 0x00 }, - /*0x01*/ { WEAPON_FALCON2, 0x01, 0x50, 0x00, 0x0080, MODEL_CHRFALCON2, 0x01, 0x00 }, - /*0x02*/ { WEAPON_FALCON2_SILENCER, 0x01, 0x50, 0x00, 0x0085, MODEL_CHRFALCON2SIL, 0x01, 0x00 }, - /*0x03*/ { WEAPON_FALCON2_SCOPE, 0x01, 0x50, 0x00, 0x0086, MODEL_CHRFALCON2SCOPE, 0x01, 0x00 }, - /*0x04*/ { WEAPON_MAGSEC4, 0x01, 0x50, 0x00, 0x0080, MODEL_CHRLEEGUN1, 0x01, 0x00 }, - /*0x05*/ { WEAPON_MAULER, 0x01, 0x5c, 0x00, 0x0087, MODEL_CHRMAULER, 0x01, 0x00 }, - /*0x06*/ { WEAPON_PHOENIX, 0x01, 0x40, 0x00, 0x0088, MODEL_CHRMAIANPISTOL, 0x01, 0x00 }, - /*0x07*/ { WEAPON_DY357MAGNUM, 0x0a, 0x32, 0x00, 0x0080, MODEL_CHRDY357, 0x01, 0x00 }, - /*0x08*/ { WEAPON_DY357LX, 0x0a, 0x32, 0x00, 0x0089, MODEL_CHRDY357TRENT, 0x01, 0x00 }, - /*0x09*/ { WEAPON_CMP150, 0x02, 0x64, 0x00, 0x0080, MODEL_CHRCMP150, 0x01, 0x00 }, - /*0x0a*/ { WEAPON_CYCLONE, 0x02, 0x96, 0x00, 0x0080, MODEL_CHRCYCLONE, 0x01, 0x00 }, - /*0x0b*/ { WEAPON_CALLISTONTG, 0x02, 0x96, 0x00, 0x008a, MODEL_CHRMAIANSMG, 0x01, 0x00 }, - /*0x0c*/ { WEAPON_RCP120, 0x02, 0x96, 0x00, 0x008d, MODEL_CHRRCP120, 0x01, 0x00 }, - /*0x0d*/ { WEAPON_LAPTOPGUN, 0x02, 0x96, 0x00, 0x008b, MODEL_CHRPCGUN, 0x01, 0x00 }, - /*0x0e*/ { WEAPON_DRAGON, 0x04, 0x96, 0x00, 0x0080, MODEL_CHRDRAGON, 0x01, 0x00 }, - /*0x0f*/ { WEAPON_K7AVENGER, 0x04, 0x96, 0x00, 0x008c, MODEL_CHRAVENGER, 0x01, 0x00 }, - /*0x10*/ { WEAPON_AR34, 0x04, 0x64, 0x00, 0x0080, MODEL_CHRAR34, 0x01, 0x00 }, - /*0x11*/ { WEAPON_SUPERDRAGON, 0x04, 0x96, 0x0b, 0x1083, MODEL_CHRSUPERDRAGON, 0x01, 0x00 }, - /*0x12*/ { WEAPON_SHOTGUN, 0x05, 0x10, 0x00, 0x008e, MODEL_CHRSHOTGUN, 0x01, 0x00 }, - /*0x13*/ { WEAPON_REAPER, 0x0f, 0xc8, 0x00, 0x008f, MODEL_CHRSKMINIGUN, 0x01, 0x00 }, - /*0x14*/ { WEAPON_SNIPERRIFLE, 0x04, 0x32, 0x00, 0x0080, MODEL_CHRSNIPERRIFLE, 0x01, 0x00 }, - /*0x15*/ { WEAPON_FARSIGHTXR20, 0x06, 0x0a, 0x00, 0x0081, MODEL_CHRZ2020, 0x01, 0x00 }, - /*0x16*/ { WEAPON_DEVASTATOR, 0x0b, 0x10, 0x00, 0x0090, MODEL_CHRDEVASTATOR, 0x01, 0x00 }, - /*0x17*/ { WEAPON_ROCKETLAUNCHER, 0x08, 0x03, 0x00, 0x0080, MODEL_CHRDYROCKET, 0x01, 0x00 }, - /*0x18*/ { WEAPON_SLAYER, 0x08, 0x03, 0x00, 0x0084, MODEL_CHRSKROCKET, 0x01, 0x00 }, - /*0x19*/ { WEAPON_COMBATKNIFE, 0x09, 0x05, 0x00, 0x0080, MODEL_CHRKNIFE, 0x01, 0x00 }, - /*0x1a*/ { WEAPON_CROSSBOW, 0x03, 0x0a, 0x00, 0x0091, MODEL_CHRCROSSBOW, 0x01, 0x00 }, - /*0x1b*/ { WEAPON_TRANQUILIZER, 0x13, 0x32, 0x00, 0x0082, MODEL_CHRDRUGGUN, 0x01, 0x00 }, - /*0x1c*/ { WEAPON_GRENADE, 0x07, 0x05, 0x00, 0x0000, MODEL_CHRGRENADE, 0x01, 0x00 }, - /*0x1d*/ { WEAPON_NBOMB, 0x12, 0x03, 0x00, 0x0012, MODEL_CHRNBOMB, 0x01, 0x00 }, - /*0x1e*/ { WEAPON_TIMEDMINE, 0x0e, 0x05, 0x00, 0x0000, MODEL_CHRTIMEDMINE, 0x01, 0x80 }, - /*0x1f*/ { WEAPON_PROXIMITYMINE, 0x0d, 0x05, 0x00, 0x0013, MODEL_CHRPROXIMITYMINE, 0x01, 0x80 }, - /*0x20*/ { WEAPON_REMOTEMINE, 0x0c, 0x05, 0x00, 0x0014, MODEL_CHRREMOTEMINE, 0x01, 0x80 }, - /*0x21*/ { WEAPON_LASER, 0x00, 0x00, 0x00, 0x00cf, MODEL_CHRLASER, 0x02, 0x00 }, - /*0x22*/ { WEAPON_XRAYSCANNER, 0x00, 0x00, 0x00, 0x0095, MODEL_CHRNIGHTSIGHT, 0x01, 0x00 }, - /*0x23*/ { WEAPON_CLOAKINGDEVICE, 0x00, 0x00, 0x00, 0x0097, MODEL_CHRCLOAKER, 0x01, 0x00 }, - /*0x24*/ { WEAPON_COMBATBOOST, 0x00, 0x00, 0x00, 0x0098, MODEL_CHRSPEEDPILL, 0x01, 0x00 }, - /*0x25*/ { WEAPON_MPSHIELD, 0x00, 0x00, 0x00, 0x0096, MODEL_CHRSHIELD, 0x01, 0x00 }, - /*0x26*/ { WEAPON_DISABLED, 0x00, 0x00, 0x00, 0x0000, 0, 0x00, 0x00 }, -}; diff --git a/src/game/data/data_02a0e0.c b/src/game/data/data_02a0e0.c new file mode 100644 index 000000000..0325b35f8 --- /dev/null +++ b/src/game/data/data_02a0e0.c @@ -0,0 +1,2117 @@ +#include +#include "game/chr/chraicommands.h" +#include "game/game_0f09f0.h" +#include "game/game_102240.h" +#include "game/cheats.h" +#include "game/game_107fb0.h" +#include "game/game_10ccd0.h" +#include "game/camdraw.h" +#include "game/timing.h" +#include "game/game_173a00.h" +#include "game/utils.h" +#include "game/game_177e00.h" +#include "game/game_179060.h" +#include "game/game_17f930.h" +#include "game/game_1a3340.h" +#include "game/data/data_0160b0.h" +#include "game/data/data_02a0e0.h" +#include "stagesetup.h" +#include "types.h" + +u32 var800840c0 = 0xffffffff; +u32 var800840c4 = 0x00000000; +u32 var800840c8 = 0xffffffff; +u32 var800840cc = 0xffffffff; +u32 var800840d0 = 0xffffffff; +u32 var800840d4 = 0x00000000; +u32 var800840d8 = 0x00000000; +u32 var800840dc = 0x00000000; +u32 var800840e0 = 0x0000000f; +u32 var800840e4 = 0x00000000; +u32 var800840e8 = 0x00000000; +u32 var800840ec = 0x50000000; +u32 var800840f0 = 0x00000000; +u32 var800840f4 = 0x00000000; +u32 var800840f8 = 0x00000078; +u32 var800840fc = 0x00000000; +u32 var80084100 = (u32)&var7f1b78c0; +u32 var80084104 = (u32)&var7f1b78c8; +u32 var80084108 = (u32)&var7f1b78d4; +u32 var8008410c = (u32)&var7f1b78f4; +u32 var80084110 = (u32)&var7f1b7900; +u32 var80084114 = (u32)&var7f1b7908; +u32 var80084118 = (u32)&var7f1b7910; +u32 var8008411c = 0x00000000; +u32 g_LanguageId = 0; + +// 2a144 +u16 g_LangFiles[] = { + /* 0*/ 0, + /* 1*/ FILE_LAMEE, + /* 2*/ FILE_LARCHE, + /* 3*/ FILE_LARKE, + /* 4*/ FILE_LASHE, + /* 5*/ FILE_LAZTE, + /* 6*/ FILE_LCATE, + /* 7*/ FILE_LCAVEE, + /* 8*/ FILE_LARECE, + /* 9*/ FILE_LCRADE, + /*10*/ FILE_LCRYPE, + /*11*/ FILE_LDAME, + /*12*/ FILE_LDEPOE, + /*13*/ FILE_LDESTE, + /*14*/ FILE_LDISHE, + /*15*/ FILE_LEARE, + /*16*/ FILE_LELDE, + /*17*/ FILE_LIMPE, + /*18*/ FILE_LJUNE, + /*19*/ FILE_LLEEE, + /*20*/ FILE_LLENE, + /*21*/ FILE_LLIPE, + /*22*/ FILE_LLUEE, + /*23*/ FILE_LOATE, + /*24*/ FILE_LPAME, + /*25*/ FILE_LPETEE, + /*26*/ FILE_LREFE, + /*27*/ FILE_LRITE, + /*28*/ FILE_LRUNE, + /*29*/ FILE_LSEVBE, + /*30*/ FILE_LSEVE, + /*31*/ FILE_LSEVXE, + /*32*/ FILE_LSEVXBE, + /*33*/ FILE_LSHOE, + /*34*/ FILE_LSILOE, + /*35*/ FILE_LSTATE, + /*36*/ FILE_LTRAE, + /*37*/ FILE_LWAXE, + /*38*/ FILE_LGUNE, + /*39*/ FILE_LTITLEE, + /*40*/ FILE_LMPMENUE, + /*41*/ FILE_LPROPOBJE, + /*42*/ FILE_LMPWEAPONSE, + /*43*/ FILE_LOPTIONSE, + /*44*/ FILE_LMISCE, + /*45*/ FILE_LUFFE, + /*46*/ FILE_LOLDE, + /*47*/ FILE_LATEE, + /*48*/ FILE_LLAME, + /*49*/ FILE_LMP1E, + /*50*/ FILE_LMP2E, + /*51*/ FILE_LMP3E, + /*52*/ FILE_LMP4E, + /*53*/ FILE_LMP5E, + /*54*/ FILE_LMP6E, + /*55*/ FILE_LMP7E, + /*56*/ FILE_LMP8E, + /*57*/ FILE_LMP9E, + /*58*/ FILE_LMP10E, + /*59*/ FILE_LMP11E, + /*60*/ FILE_LMP12E, + /*61*/ FILE_LMP13E, + /*62*/ FILE_LMP14E, + /*63*/ FILE_LMP15E, + /*64*/ FILE_LMP16E, + /*65*/ FILE_LMP17E, + /*66*/ FILE_LMP18E, + /*67*/ FILE_LMP19E, + /*68*/ FILE_LMP20E, +}; + +u32 var800841b0 = 0x0006ddd0; +u32 var800841b4 = 0x00000000; +u32 var800841b8 = 0x00000004; +u32 var800841bc = 0x00000003; +u32 var800841c0 = 0x00000003; +u32 var800841c4 = 0x00000003; +u32 var800841c8 = 0x00000002; +u32 var800841cc = 0x00000002; +u32 var800841d0 = 0x00000001; +u32 var800841d4 = 0x00000001; +u32 var800841d8 = 0x00000001; +u32 var800841dc = 0x00000001; +u32 var800841e0 = 0x00000001; +u32 var800841e4 = 0x00000001; +u32 var800841e8 = 0x00000001; +u32 var800841ec = 0x00000000; +u32 var800841f0 = 0x00000001; +u32 var800841f4 = 0x00000000; +u32 var800841f8 = 0x00000000; +u32 var800841fc = 0x00000000; +u32 var80084200 = 0x00000000; +u32 var80084204 = 0x00000001; +u32 var80084208 = 0x00000000; +u32 var8008420c = 0x00000000; +u32 var80084210 = 0x00000000; +u32 var80084214 = 0x00000000; +u32 var80084218 = 0x00000000; +u32 var8008421c = 0x00000000; +u32 var80084220 = 0x00000100; +u32 var80084224 = 0x00000020; +u32 var80084228 = 0x00000100; +u32 var8008422c = 0x00000020; +u32 var80084230 = 0x00000100; +u32 var80084234 = 0x00000010; +u32 var80084238 = 0x00000008; +u32 var8008423c = 0x00000100; +u32 var80084240 = 0x00000010; +u32 var80084244 = 0x00000100; +u32 var80084248 = 0x00000010; +u32 var8008424c = 0x00000100; +u32 var80084250 = 0x00000010; +u32 var80084254 = 0x00000020; +u32 var80084258 = 0x00000010; +u32 var8008425c = 0x00000018; +u32 var80084260 = 0x0000000f; +u32 var80084264 = 0x00000010; +u32 var80084268 = 0x00000008; +u32 var8008426c = 0x00000004; +u32 var80084270 = 0x00000008; +u32 var80084274 = 0x00000004; +u32 var80084278 = 0x00000010; +u32 var8008427c = 0x00000010; +u32 var80084280 = 0x00000010; +u32 var80084284 = 0x00000010; +u32 var80084288 = 0x00000000; +u32 var8008428c = 0x00000000; +u32 var80084290 = 0x00000000; +u32 var80084294 = 0x00000000; +u32 var80084298 = 0x00000003; +u32 var8008429c = 0x00000003; +u32 var800842a0 = 0x00000003; +u32 var800842a4 = 0x00000004; +u32 var800842a8 = 0x00000004; +u32 var800842ac = 0x00000002; +u32 var800842b0 = 0x00000002; +u32 var800842b4 = 0x00000002; +u32 var800842b8 = 0x00000002; +u32 var800842bc = 0x00000003; +u32 var800842c0 = 0x00000002; +u32 var800842c4 = 0x00000003; +u32 var800842c8 = 0x00000002; +u32 var800842cc = 0x00000002; +u32 var800842d0 = 0x00000001; +u32 var800842d4 = 0x00000000; +u32 var800842d8 = 0x00000001; +u32 var800842dc = 0x00000000; +u32 var800842e0 = 0x00000001; +u32 var800842e4 = 0x00000000; +u32 var800842e8 = 0x00000001; +u32 var800842ec = 0x00000000; +u32 var800842f0 = 0x00000000; +u32 var800842f4 = 0x00000000; +u32 var800842f8 = 0x00000000; +u32 var800842fc = 0x00000000; +u32 var80084300 = 0x00000000; +u32 var80084304 = 0x00000000; +u32 var80084308 = 0x00000000; +u32 var8008430c = 0x00000000; +u32 var80084310 = 0x00000000; +u32 var80084314 = 0x00008000; +u32 var80084318 = 0x00008000; +u32 var8008431c = 0x0000c000; +u32 var80084320 = 0x0000c000; +u32 var80084324 = 0x00000000; +u32 var80084328 = 0x00000000; +u32 var8008432c = 0x00000000; + +u32 var80084330 = 0x80878088; +u32 var80084334 = 0x06000000; + +// 2a358 +struct something something_2a358 = { + &var80084330, &var80084334, 0x00020001, +}; + +u32 var80084344 = 0x80878088; +u32 var80084348 = 0x01000000; + +// 2a36c +struct something something_2a36c = { + &var80084344, &var80084348, 0x00020001, +}; + +u32 var80084358 = 0x807e807f; +u32 var8008435c = 0x10000000; + +// 2a380 +struct something something_2a380 = { + &var80084358, &var8008435c, 0x00020001, +}; + +u32 var8008436c = 0x8079807b; +u32 var80084370 = 0x11000000; + +// 2a394 +struct something something_2a394 = { + &var8008436c, &var80084370, 0x00020001, +}; + +u32 var80084380 = 0x80770000; +u32 var80084384 = 0x03040500; + +// 2a3a8 +struct something something_2a3a8 = { + &var80084380, &var80084384, 0x00010003, +}; + +u32 var80084394 = 0x807d0000; +u32 var80084398 = 0x01000000; + +// 2a3bc +struct something something_2a3bc = { + &var80084394, &var80084398, 0x00010001, +}; + +u32 var800843a8 = 0x80848085; +u32 var800843ac = 0x02000000; + +// 2a3d0 +struct something something_2a3d0 = { + &var800843a8, &var800843ac, 0x00020001, +}; + +u32 var800843bc = 0x80818082; +u32 var800843c0 = 0x80830000; +u32 var800843c4 = 0x02000000; + +// 2a3e8 +struct something something_2a3e8 = { + &var800843bc, &var800843c4, 0x00030001, +}; + +u32 var800843d4 = 0x80860000; +u32 var800843d8 = 0x01000000; + +// 2a3fc +struct something something_2a3fc = { + &var800843d4, &var800843d8, 0x00010001, +}; + +u32 var800843e8 = 0x8089808a; +u32 var800843ec = 0x01060000; + +// 2a410 +struct something something_2a410 = { + &var800843e8, &var800843ec, 0x00020002, +}; + +u32 var800843fc = 0x80760000; +u32 var80084400 = 0x02000000; + +// 2a424 +struct something something_2a424 = { + &var800843fc, &var80084400, 0x00010001, +}; + +u32 var80084410 = 0x80770000; +u32 var80084414 = 0x03040500; + +// 2a438 +struct something something_2a438 = { + &var80084410, &var80084414, 0x00010003, +}; + +// 2a444 +struct something something_2a444 = { + NULL, NULL, 0x00000000, +}; + +u32 var80084430 = 0x80800000; +u32 var80084434 = 0x00000000; + +// 2a458 +struct something something_2a458 = { + &var80084430, &var80084434, 0x00010001, +}; + +u32 var80084444 = 0x80800000; +u32 var80084448 = 0x00000000; + +// 2a46c +struct something something_2a46c = { + &var80084444, &var80084448, 0x00010001, +}; + +// 2a478 +struct something *somethings[] = { + /* 0*/ &something_2a358, + /* 1*/ &something_2a36c, + /* 2*/ &something_2a380, + /* 3*/ &something_2a394, + /* 4*/ &something_2a3a8, + /* 5*/ &something_2a458, + /* 6*/ &something_2a3bc, + /* 7*/ &something_2a3d0, + /* 8*/ &something_2a3e8, + /* 9*/ &something_2a3fc, + /*10*/ &something_2a410, + /*11*/ &something_2a424, + /*12*/ &something_2a438, + /*13*/ &something_2a444, + /*14*/ &something_2a46c, +}; + +// 2a4b4 +u32 somethingpointers[] = { + /* 0*/ (u32)&var7f1b7ba0, + /* 1*/ (u32)&var7f1b7ba8, + /* 2*/ (u32)&var7f1b7bb0, + /* 3*/ (u32)&var7f1b7bb8, + /* 4*/ (u32)&var7f1b7bc0, + /* 5*/ (u32)&var7f1b7bc8, + /* 6*/ (u32)&var7f1b7bd8, + /* 7*/ (u32)&var7f1b7be0, + /* 8*/ (u32)&var7f1b7be8, + /* 9*/ (u32)&var7f1b7bec, + /*10*/ (u32)&var7f1b7bf4, + /*11*/ (u32)&var7f1b7c00, + /*12*/ (u32)&var7f1b7c04, + /*13*/ (u32)&var7f1b7c10, + /*14*/ (u32)&var7f1b7c18, +}; + +u32 var800844d0 = 0x00000000; +u32 var800844d4 = 0x00000000; +u32 var800844d8 = 0x00000000; +u32 var800844dc = 0x00000000; +u32 var800844e0 = 0x00000103; +u32 var800844e4 = 0x00000000; +u32 var800844e8 = 0x00000000; +u32 var800844ec = 0x00000000; +u32 var800844f0 = 0x00000000; +u32 var800844f4 = 0x00000000; +u32 var800844f8 = 0x00000000; +u32 var800844fc = 0x00000000; + +// 2a520 +struct stagemusic stagemusictable[] = { + // stage, main theme, background sfx, X theme + { STAGE_CITRAINING, MUSIC_CI, -1, MUSIC_DEFENSE_X }, + { STAGE_DEFECTION, MUSIC_DEFECTION, MUSIC_DDTOWER_SFX, MUSIC_DEFECTION_X }, + { STAGE_INVESTIGATION, MUSIC_INVESTIGATION, MUSIC_INVESTIGATION_SFX, MUSIC_INVESTIGATION_X }, + { STAGE_EXTRACTION, MUSIC_EXTRACTION, MUSIC_DDTOWER_SFX, MUSIC_EXTRACTION_X }, + { STAGE_VILLA, MUSIC_VILLA, MUSIC_OCEAN, MUSIC_VILLA_X }, + { STAGE_CHICAGO, MUSIC_CHICAGO, MUSIC_TRAFFIC, MUSIC_CHICAGO_X }, + { STAGE_G5BUILDING, MUSIC_G5, MUSIC_TRAFFIC, MUSIC_G5_X }, + { STAGE_INFILTRATION, MUSIC_INFILTRATION, MUSIC_INFILTRATION_SFX, MUSIC_INFILTRATION_X }, + { STAGE_RESCUE, MUSIC_RESCUE, MUSIC_A51_LOUDSPEAKER1, MUSIC_RESCUE_X }, + { STAGE_ESCAPE, MUSIC_ESCAPE, MUSIC_A51_LOUDSPEAKER2, MUSIC_ESCAPE_X }, + { STAGE_AIRBASE, MUSIC_AIRBASE, MUSIC_WIND, MUSIC_AIRBASE_X }, + { STAGE_AIRFORCEONE, MUSIC_AIRFORCEONE, MUSIC_AIRFORCEONE_SFX, MUSIC_AIRFORCEONE_X }, + { STAGE_CRASHSITE, MUSIC_CRASHSITE, MUSIC_CRASHSITE_WIND, MUSIC_CRASHSITE_X }, + { STAGE_PELAGIC, MUSIC_PELAGIC, MUSIC_OCEAN, MUSIC_PELAGIC_X }, + { STAGE_DEEPSEA, MUSIC_DEEPSEA, MUSIC_DEEPSEA_SFX, MUSIC_DEEPSEA_X }, + { STAGE_DEFENSE, MUSIC_DEFENSE, -1, MUSIC_DEFENSE_X }, + { STAGE_ATTACKSHIP, MUSIC_ATTACKSHIP, MUSIC_ATTACKSHIP_SFX, MUSIC_ATTACKSHIP_X }, + { STAGE_SKEDARRUINS, MUSIC_SKEDARRUINS, MUSIC_SKEDAR_WIND, MUSIC_SKEDARRUINS_X }, + { STAGE_MBR, MUSIC_DARK_COMBAT, MUSIC_DDTOWER_SFX, MUSIC_DARK_COMBAT }, + { STAGE_MAIANSOS, MUSIC_MAIAN_TEARS, MUSIC_A51_LOUDSPEAKER2, MUSIC_MAIAN_TEARS }, + { STAGE_RETAKING, MUSIC_CI_OPERATIVE, -1, MUSIC_CI_OPERATIVE }, + { STAGE_WAR, MUSIC_ALIEN_CONFLICT, MUSIC_SKEDAR_WIND, MUSIC_ALIEN_CONFLICT }, + { STAGE_DUEL, MUSIC_CREDITS, -1, MUSIC_CREDITS }, + { STAGE_CREDITS, MUSIC_ALIEN_CONFLICT, -1, MUSIC_ALIEN_CONFLICT }, +}; + +u32 var800845c0 = 0x00000000; +u32 var800845c4 = 0x00000000; +u32 var800845c8 = 0x00000000; +u32 var800845cc = 0x00000000; +u32 var800845d0 = 0x497423f0; +u32 var800845d4 = 0x3727c5ac; +s32 var800845d8 = 1; +u32 var800845dc = 0x00000000; +u32 var800845e0 = 0x00000000; +u32 var800845e4 = 0x00000000; +u32 var800845e8 = 0x00000000; +u32 var800845ec = 0x3f800000; +u32 var800845f0 = 0x00000000; +u32 var800845f4 = 0x00000000; +u32 var800845f8 = 0x00000000; +u32 var800845fc = 0x3f800000; +u32 var80084600 = 0x3f800000; +u32 var80084604 = 0x00000000; +u32 var80084608 = 0x00000000; +u32 var8008460c = 0xffffffff; +u32 var80084610 = 0x00000000; +u32 var80084614 = 0x00000000; +u32 var80084618 = 0x00000000; +u32 var8008461c = 0x00000004; +u32 var80084620 = 0x00000000; +u32 var80084624 = 0x00000000; +u32 var80084628 = 0x00000000; +u32 var8008462c = 0x00000000; + +// 2a650 +struct menu_item g_MpEndGameMenuItems[] = { + { MENUITEMTYPE_LABEL, 0, 0x02000020, L_MPMENU(291), 0x00000000, NULL }, // "Are you sure?" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPMENU(292), 0x00000000, NULL }, // "Cancel" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_MPMENU(293), 0x00000000, menuhandlerMpEndGame }, // "End Game" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2a6b4 +struct menu_dialog g_MpEndGameMenuDialog = { + MENUDIALOGTYPE_DANGER, + L_MPMENU(290), // "End Game" + g_MpEndGameMenuItems, + NULL, + 0x00000000, + NULL, +}; + +// 2a6cc +struct menu_item g_MpPauseControlMenuItems[] = { + { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)&mpMenuTextChallengeName, 0x00000000, menuhandler00178018 }, + { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)&mpMenuTextScenarioName, 0x00000000, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00000200, L_MPWEAPONS(162), (u32)&mpMenuTextInGameLimit, menuhandlerMpInGameLimitLabel }, // "Time Limit:" + { MENUITEMTYPE_LABEL, 1, 0x00000200, L_MPWEAPONS(163), (u32)&mpMenuTextInGameLimit, menuhandlerMpInGameLimitLabel }, // "Score Limit:" + { MENUITEMTYPE_LABEL, 2, 0x00000200, L_MPWEAPONS(164), (u32)&mpMenuTextInGameLimit, menuhandlerMpInGameLimitLabel }, // "Team Score Limit:" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(286), (u32)&menutextMatchTime, NULL }, // "Game Time:" + { MENUITEMTYPE_SELECTABLE, 1, 0x00000020, (u32)&menutextPauseOrUnpause, 0x00000000, menuhandlerMpPause }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000024, L_MPMENU(287), 0x00000000, &g_MpEndGameMenuDialog }, // "End Game" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2a794 +struct menu_dialog g_MpPauseControlMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(285), // "Control" + g_MpPauseControlMenuItems, + NULL, + 0x00000000, + NULL, +}; + +// 2a7ac +struct menu_item g_MpInventoryMenuItems[] = { + { MENUITEMTYPE_CUSTOM, 0, 0x00000000, 0x00000078, 0x00000042, menuhandler00106178 }, + { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&mpMenuTextWeaponDescription, 0x00000000, NULL }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2a7e8 +struct menu_dialog g_MpPauseInventoryMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(284), // "Inventory" + g_MpInventoryMenuItems, + NULL, + 0x00000000, + &g_MpPauseControlMenuDialog, +}; + +// 2a800 +struct menu_dialog menudialog_2a800 = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(284), // "Inventory" + g_MpInventoryMenuItems, + NULL, + 0x00000000, + &menudialog_18d78, +}; + +// 2a818 +struct menu_dialog menudialog_2a818 = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(284), // "Inventory" + g_MpInventoryMenuItems, + NULL, + 0x00000000, + &menudialog_18d90, +}; + +// 2a830 +struct menu_item g_MpPlayerStatsMenuItems[] = { + { MENUITEMTYPE_PLAYERSTATS, 0, 0x00000000, 0x00000000, 0x00000000, menuhandler00177e00 }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2a858 +struct menu_dialog g_MpPausePlayerStatsMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + (u32)&func0f1783a0, + g_MpPlayerStatsMenuItems, + NULL, + 0x00000000, + &g_MpPauseInventoryMenuDialog, +}; + +// 2a870 +struct menu_dialog g_MpEndscreenPlayerStatsMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + (u32)&func0f1783a0, + g_MpPlayerStatsMenuItems, + NULL, + 0x00000000, + NULL, +}; + +// 2a888 +struct menu_item g_MpPlayerRankingMenuItems[] = { + { MENUITEMTYPE_RANKING, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2a8b0 +struct menu_dialog g_MpPausePlayerRankingMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(276), // "Player Ranking" + g_MpPlayerRankingMenuItems, + NULL, + 0x00000000, + &g_MpPausePlayerStatsMenuDialog, +}; + +// 2a8c8 +struct menu_dialog g_MpEndscreenPlayerRankingMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(276), // "Player Ranking" + g_MpPlayerRankingMenuItems, + NULL, + 0x00000000, + &g_MpEndscreenPlayerStatsMenuDialog, +}; + +// 2a8e0 +struct menu_item g_MpTeamRankingMenuItems[] = { + { MENUITEMTYPE_RANKING, 0, 0x00000000, 0x00000001, 0x00000000, NULL }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2a908 +struct menu_dialog g_MpPauseTeamRankingMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(279), // "Team Ranking" + g_MpTeamRankingMenuItems, + NULL, + 0x00000000, + &g_MpPausePlayerRankingMenuDialog, +}; + +// 2a920 +struct menu_dialog g_MpEndscreenTeamRankingMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(279), // "Team Ranking" + g_MpTeamRankingMenuItems, + NULL, + 0x00000000, + &g_MpEndscreenPlayerRankingMenuDialog, +}; + +// 2a938 +u16 g_OrdinalSuffixes[] = { + L_MPMENU(264), // "1st" + L_MPMENU(265), // "2nd" + L_MPMENU(266), // "3rd" + L_MPMENU(267), // "4th" + L_MPMENU(268), // "5th" + L_MPMENU(269), // "6th" + L_MPMENU(270), // "7th" + L_MPMENU(271), // "8th" + L_MPMENU(272), // "9th" + L_MPMENU(273), // "10th" + L_MPMENU(274), // "11th" + L_MPMENU(275), // "12th" +}; + +// 2a950 +struct menu_item g_MpGameOverMenuItems[] = { + { MENUITEMTYPE_LABEL, 0, 0x01000010, (u32)&mpGetCurrentPlayerName, (u32)&mpMenuTextPlacementWithSuffix, menuhandler001785c4 }, + { MENUITEMTYPE_LABEL, 0, 0x01000000, L_MPMENU(261), (u32)&mpMenuTextPlayerTitle, menuhandler00178a94 }, // "Title:" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00000210, L_MPMENU(262), 0x00000000, NULL }, // "Weapon of Choice:" + { MENUITEMTYPE_LABEL, 0, 0x00000120, (u32)&mpMenuTextWeaponOfChoiceName, 0x00000000, NULL }, + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00200210, L_MPMENU(263), 0x00000000, menuhandler001786d8 }, // "Awards:" + { MENUITEMTYPE_LABEL, 0, 0x00000120, (u32)&mpMenuTextAward1, 0x00000000, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00000120, (u32)&mpMenuTextAward2, 0x00000000, NULL }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2aa18 +struct menu_dialog g_MpEndscreenIndividualGameOverMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(260), // "Game Over" + g_MpGameOverMenuItems, + NULL, + 0x00000000, + &g_MpEndscreenPlayerRankingMenuDialog, +}; + +// 2aa30 +struct menu_dialog g_MpEndscreenTeamGameOverMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(260), // "Game Over" + g_MpGameOverMenuItems, + NULL, + 0x00000000, + &g_MpEndscreenTeamRankingMenuDialog, +}; + +// 2aa48 +struct menu_dialog g_MpEndscreenChallengeCompletedMenuDialog = { + MENUDIALOGTYPE_SUCCESS, + L_MPWEAPONS(165), // "Challenge Completed!" + g_MpTeamRankingMenuItems, + NULL, + 0x00000000, + &g_MpEndscreenIndividualGameOverMenuDialog, +}; + +// 2aa60 +struct menu_dialog g_MpEndscreenChallengeCheatedMenuDialog = { + MENUDIALOGTYPE_DANGER, + L_MPWEAPONS(167), // "Challenge Cheated!" + g_MpTeamRankingMenuItems, + NULL, + 0x00000000, + &g_MpEndscreenIndividualGameOverMenuDialog, +}; + +// 2aa78 +struct menu_dialog g_MpEndscreenChallengeFailedMenuDialog = { + MENUDIALOGTYPE_DANGER, + L_MPWEAPONS(166), // "Challenge Failed!" + g_MpTeamRankingMenuItems, + NULL, + 0x00000000, + &g_MpEndscreenIndividualGameOverMenuDialog, +}; + +// 2aa90 +struct menu_item g_MpEndscreenConfirmPlayerNameMenuItems[] = { + { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPWEAPONS(250), 0x00000000, NULL }, // "Confirm player name:" + { MENUITEMTYPE_KEYBOARD, 0, 0x00000000, 0x00000000, 0x00000000, menuhandler00178bf4 }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2aacc +struct menu_dialog g_MpEndscreenConfirmPlayerNameMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(142), // "Player Name" + g_MpEndscreenConfirmPlayerNameMenuItems, + NULL, + 0x00000000, + NULL, +}; + +// 2aae4 +struct menu_item g_MpEndscreenSavePlayerMenuItems[] = { + { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPWEAPONS(247), 0x00000000, NULL }, // "Save new player and statistics?" + { MENUITEMTYPE_SELECTABLE, 0, 0x0000002c, L_MPWEAPONS(248), 0x00000000, &g_MpEndscreenConfirmPlayerNameMenuDialog }, // "Save Now" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPWEAPONS(249), 0x00000000, NULL }, // "No Thanks!" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2ab34 +struct menu_dialog g_MpEndscreenSavePlayerMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MPWEAPONS(246), // "Save Player" + g_MpEndscreenSavePlayerMenuItems, + NULL, + 0x00000004, + NULL, +}; + +u32 var80084b2c = 0x00000000; + +// 2ab50 +struct menu_item menuitems_2ab50[] = { + { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU(196), 0x00000000, NULL }, // "Are you sure you want to drop out?" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(197), 0x00000000, menuhandlerMpDropOut }, // "Drop Out" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(198), 0x00000000, NULL }, // "Cancel" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2aba0 +struct menu_dialog menudialog_2aba0 = { + MENUDIALOGTYPE_DANGER, + L_MPMENU(195), // "Drop Out" + menuitems_2ab50, + NULL, + 0x00000000, + NULL, +}; + +// 2abb8 +struct mparena g_MpArenas[] = { + // Stage, unlock, name + { STAGE_MP_SKEDAR, 0x00, L_MPMENU(119) }, + { STAGE_MP_PIPES, 0x00, L_MPMENU(120) }, + { STAGE_MP_RAVINE, 0x26, L_MPMENU(121) }, + { STAGE_MP_G5BUILDING, 0x28, L_MPMENU(122) }, + { STAGE_MP_SEWERS, 0x2c, L_MPMENU(123) }, + { STAGE_MP_WAREHOUSE, 0x25, L_MPMENU(124) }, + { STAGE_MP_GRID, 0x29, L_MPMENU(125) }, + { STAGE_MP_RUINS, 0x2d, L_MPMENU(126) }, + { STAGE_MP_AREA52, 0x00, L_MPMENU(127) }, + { STAGE_MP_BASE, 0x2e, L_MPMENU(128) }, + { STAGE_MP_FORTRESS, 0x30, L_MPMENU(130) }, + { STAGE_MP_VILLA, 0x2b, L_MPMENU(131) }, + { STAGE_MP_CARPARK, 0x23, L_MPMENU(132) }, + { STAGE_MP_TEMPLE, 0x27, L_MPMENU(133) }, + { STAGE_MP_COMPLEX, 0x24, L_MPMENU(134) }, + { STAGE_MP_FELICITY, 0x2a, L_MPMENU(135) }, + { 1, 0x00, L_MPMENU(136) }, // "Random" +}; + +// 2ac20 +u32 var80084c00[] = { + 0x00000000, 0x50740000, // "Dark" + 0x0000000d, 0x50750000, // "Classic" + 0x00000010, 0x50760000, // "Custom" +}; + +// 2ac38 +u16 g_MpControlStyleLabels[] = { + L_OPTIONS(239), // "1.1" + L_OPTIONS(240), // "1.2" + L_OPTIONS(241), // "1.3" + L_OPTIONS(242), // "1.4" +}; + +// 2ac40 +u16 g_MpAimModeLabels[] = { + L_MPMENU(213), // "Hold" + L_MPMENU(214), // "Toggle" +}; + +// 2ac44 +struct menu_item menuitems_mpsavechr[] = { + { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU(191), 0x00000000, NULL }, // "Your player file is always saved automatically." + { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU(192), 0x00000000, NULL }, // "Save a copy now?" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(193), 0x00000000, NULL }, // "No" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(194), 0x00000000, menuhandlerMpConfirmSaveChr }, // "Yes" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2aca8 +struct menu_dialog g_MpSaveChrMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(190), // "Confirm" + menuitems_mpsavechr, + NULL, + 0x00000000, + NULL, +}; + +// 2acc0 +struct menu_item menuitems_mpsavesetupname[] = { + { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU(189), 0x00000000, NULL }, // "Enter a name for your game setup file:" + { MENUITEMTYPE_KEYBOARD, 0, 0x00000000, 0x00000000, 0x00000000, menuhandlerMpPlayerName }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2acfc +struct menu_dialog menudialog_mpsavesetupname = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(188), // "Game File Name" + menuitems_mpsavesetupname, + NULL, + 0x00000000, + NULL, +}; + +// 2ad14 +struct menu_item menuitems_mpsavesetup[] = { + { MENUITEMTYPE_LABEL, 0, 0x00000210, L_MPWEAPONS(230), (u32)&mpMenuTextSetupName, NULL }, // "Name:" + { MENUITEMTYPE_LABEL, 0, 0x00000230, (u32)&pakMenuTextLocationName, 0x00000000, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU(184), 0x00000000, NULL }, // "Do you want to save over your original game file?" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(185), 0x00000000, menuhandlerMpSaveSetupOverwrite }, // "Save Over Original" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(186), 0x00000000, menuhandlerMpSaveSetupCopy }, // "Save Copy" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(187), 0x00000000, NULL }, // "Do Not Save" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2ada0 +struct menu_dialog menudialog_mpsavesetup = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(183), // "Save Game Setup" + menuitems_mpsavesetup, + NULL, + 0x00000000, + NULL, +}; + +// 2adb8 +struct menu_item menuitems_mpweapons[] = { + { MENUITEMTYPE_DROPDOWN, 1, 0x00020090, L_MPMENU(174), 0x00000000, menuhandlerMpWeaponSetDropdown }, // "Set:" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00000212, L_MPMENU(175), 0x00000000, NULL }, // "Current Weapon Setup:" + { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU(176), 0x00000000, menuhandlerMpWeaponSlot }, // "1:" + { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU(177), 0x00000001, menuhandlerMpWeaponSlot }, // "2:" + { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU(178), 0x00000002, menuhandlerMpWeaponSlot }, // "3:" + { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU(179), 0x00000003, menuhandlerMpWeaponSlot }, // "4:" + { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU(180), 0x00000004, menuhandlerMpWeaponSlot }, // "5:" + { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU(181), 0x00000005, menuhandlerMpWeaponSlot }, // "6:" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(182), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2aea8 +struct menu_dialog menudialog_mpweapons = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(173), // "Weapons" + menuitems_mpweapons, + NULL, + 0x00000010, + NULL, +}; + +// 2aec0 +struct menu_item menuitems_mpweapons2[] = { + { MENUITEMTYPE_DROPDOWN, 0, 0x00020090, L_MPMENU(174), 0x00000000, menuhandlerMpWeaponSetDropdown }, // "Set:" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU(176), (u32)&mpMenuTextWeaponNameForSlot, NULL }, // "1:" + { MENUITEMTYPE_LABEL, 1, 0x00000002, L_MPMENU(177), (u32)&mpMenuTextWeaponNameForSlot, NULL }, // "2:" + { MENUITEMTYPE_LABEL, 2, 0x00000002, L_MPMENU(178), (u32)&mpMenuTextWeaponNameForSlot, NULL }, // "3:" + { MENUITEMTYPE_LABEL, 3, 0x00000002, L_MPMENU(179), (u32)&mpMenuTextWeaponNameForSlot, NULL }, // "4:" + { MENUITEMTYPE_LABEL, 4, 0x00000002, L_MPMENU(180), (u32)&mpMenuTextWeaponNameForSlot, NULL }, // "5:" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(182), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2af88 +struct menu_dialog menudialog_mpweapons2 = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(173), // "Weapons" + menuitems_mpweapons2, + NULL, + 0x00000010, + NULL, +}; + +// 2afa0 +struct menu_item menuitems_mpoptions[] = { + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(168), 0x00000002, menuhandlerMpDisplayOptionCheckbox }, // "Highlight Pickups" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(169), 0x00000001, menuhandlerMpDisplayOptionCheckbox }, // "Highlight Players" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(170), 0x00000008, menuhandlerMpDisplayOptionCheckbox }, // "Highlight Teams" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(171), 0x00000004, menuhandlerMpDisplayOptionCheckbox }, // "Radar" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(172), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2b02c +struct menu_dialog menudialog_mpoptions = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(167), // "Options" + menuitems_mpoptions, + NULL, + 0x00000000, + NULL, +}; + +// 2b044 +struct menu_item menuitems_mpcontrol[] = { + { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPMENU(200), 0x00000000, menuhandlerMpControlStyle }, // "Control Style" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(201), 0x00000001, menuhandlerMpControlCheckbox }, // "Reverse Pitch" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(202), 0x00000002, menuhandlerMpControlCheckbox }, // "Look Ahead" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(203), 0x00000080, menuhandlerMpControlCheckbox }, // "Head Roll" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(204), 0x00000008, menuhandlerMpControlCheckbox }, // "Auto-Aim" + { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPMENU(205), 0x00000000, menuhandlerMpAimControl }, // "Aim Control" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(206), 0x00000004, menuhandlerMpControlCheckbox }, // "Sight on Screen" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(207), L_AME(0), menuhandlerMpControlCheckbox }, // "Show Target" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(208), L_ARCH(0), menuhandlerMpControlCheckbox }, // "Show Zoom Range" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(209), 0x00000020, menuhandlerMpControlCheckbox }, // "Ammo on Screen" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(210), 0x00000040, menuhandlerMpControlCheckbox }, // "Gun Function" + { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU(211), L_ASH(0), menuhandlerMpControlCheckbox }, // "Paintball" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(212), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2b184 +struct menu_dialog menudialog_mpcontrol = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(199), // "Control" + menuitems_mpcontrol, + NULL, + 0x00000000, + NULL, +}; + +// 2b19c +struct menu_item menuitems_mpcompletedchallenges[] = { + { MENUITEMTYPE_CUSTOM, 0, 0x00200000, 0x00000078, 0x0000004d, menuhandler0017a20c }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2b1c4 +struct menu_dialog menudialog_mpcompletedchallenges = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(165), // "Completed Challenges" + menuitems_mpcompletedchallenges, + NULL, + 0x00000048, + NULL, +}; + +u32 var800851bc = 0x4e806f76; +u32 var800851c0 = 0x7ca688ab; +u32 var800851c4 = 0x95bfa6ad; +u32 var800851c8 = 0xee888700; +u32 var800851cc = 0x5e6d5e7f; +u32 var800851d0 = 0x416c7d95; +u32 var800851d4 = 0x2e280000; + +// 2b1f8 +struct menu_item menuitems_mpplayerstats[] = { + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(146), (u32)&mpMenuTextKills, NULL }, // "Kills:" + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(147), (u32)&mpMenuTextDeaths, NULL }, // "Deaths:" + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(148), (u32)&mpMenuTextAccuracy, NULL }, // "Accuracy:" + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(149), (u32)&mpMenuTextHeadShots, NULL }, // "Head Shots:" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(150), (u32)&mpMenuTextAmmoUsed, NULL }, // "Ammo Used:" + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(151), (u32)&mpMenuTextDamageDealt, NULL }, // "Damage Dealt:" + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(152), (u32)&mpMenuTextPainReceived, NULL }, // "Pain Received:" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(153), (u32)&mpMenuTextGamesPlayed, NULL }, // "Games Played:" + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(154), (u32)&mpMenuTextGamesWon, NULL }, // "Games Won:" + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(155), (u32)&mpMenuTextGamesLost, NULL }, // "Games Lost:" + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(156), (u32)&mpMenuTextTime, NULL }, // "Time:" + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(157), (u32)&mpMenuTextDistance, NULL }, // "Distance:" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00000210, L_MPMENU(158), 0x00000000, NULL }, // "Medals Won:" + { MENUITEMTYPE_LABEL, 2, 0x00200000, L_MPMENU(159), (u32)&mpMenuTextMedalAccuracy, menuhandlerMpMedal }, // "Accuracy:" + { MENUITEMTYPE_LABEL, 1, 0x00200000, L_MPMENU(160), (u32)&mpMenuTextMedalHeadShot, menuhandlerMpMedal }, // "Head Shot:" + { MENUITEMTYPE_LABEL, 0, 0x00200000, L_MPMENU(161), (u32)&mpMenuTextMedalKillMaster, menuhandlerMpMedal }, // "KillMaster:" + { MENUITEMTYPE_LABEL, 3, 0x00200000, L_MPMENU(162), (u32)&mpMenuTextMedalSurvivor, menuhandlerMpMedal }, // "Survivor:" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(163), 0x00000000, NULL }, // "Your Title:" + { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)&mpMenuTextPlayerTitle, 0x00000000, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00000200, L_MPWEAPONS(219), 0x00000000, menuhandlerMpUsernamePassword }, // "USERNAME:" + { MENUITEMTYPE_LABEL, 0, 0x00000220, (u32)&mpMenuTextUsernamePassword, 0x00000000, menuhandlerMpUsernamePassword }, + { MENUITEMTYPE_LABEL, 0, 0x00000200, L_MPWEAPONS(220), 0x00000000, menuhandlerMpUsernamePassword }, // "PASSWORD:" + { MENUITEMTYPE_LABEL, 1, 0x00000220, (u32)&mpMenuTextUsernamePassword, 0x00000000, menuhandlerMpUsernamePassword }, + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(164), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2b450 +struct menu_dialog menudialog_mpplayerstats = { + MENUDIALOGTYPE_DEFAULT, + (u32)&func0f17b360, + menuitems_mpplayerstats, + NULL, + 0x00000048, + &menudialog_mpcompletedchallenges, +}; + +u32 var80085448 = 0x00000300; +u32 var8008544c = 0x0400ff00; + +// 2b470 +struct menu_item menuitems_mpcharacter[] = { + { MENUITEMTYPE_LABEL, 0, 0x00004230, (u32)&mpMenuTextBodyName, 0x00000000, NULL }, + { MENUITEMTYPE_CAROUSEL, 0, 0x00000000, 0x00000000, 0x00000022, menuhandlerMpCharacterHead }, + { MENUITEMTYPE_CAROUSEL, 0, 0x00000000, 0x00000000, 0x0000001b, menuhandlerMpCharacterBody }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2b4c0 +struct menu_dialog menudialog_mpcharacter = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(143), // "Character" + menuitems_mpcharacter, + menudialog0017a174, + 0x00000002, + NULL, +}; + +// 2b4d8 +struct menu_item menuitems_mpplayername[] = { + { MENUITEMTYPE_KEYBOARD, 0, 0x00000000, 0x00000000, 0x00000000, menuhandler0017b91c }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2b500 +struct menu_dialog menudialog_mpplayername = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(142), // "Player Name" + menuitems_mpplayername, + NULL, + 0x00000000, + NULL, +}; + +// 2b518 +struct menu_item menuitems_mploadgamesettingstype0[] = { + { MENUITEMTYPE_CUSTOM, 0, 0x00000000, 0x00000078, 0x00000042, menuhandler0017bab4 }, + { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&func0f17be2c, 0x00000000, NULL }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2b554 +struct menu_dialog menudialog_mploadgamesettingstype0 = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(139), // "Load Game Settings" + menuitems_mploadgamesettingstype0, + NULL, + 0x00000001, + NULL, +}; + +// 2b56c +struct menu_item menuitems_mploadgamesettingstype1[] = { + { MENUITEMTYPE_CUSTOM, 1, 0x00000000, 0x00000078, 0x00000042, menuhandler0017bab4 }, + { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&func0f17be2c, 0x00000000, NULL }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2b5a8 +struct menu_dialog menudialog_mploadgamesettingstype1 = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(139), // "Load Game Settings" + menuitems_mploadgamesettingstype1, + NULL, + 0x00000000, + NULL, +}; + +// 2b5c0 +struct menu_item menuitems_mploadplayer[] = { + { MENUITEMTYPE_CUSTOM, 0, 0x00000000, 0x0000007e, 0x00000042, menuhandler0017bfc0 }, + { MENUITEMTYPE_LABEL, 0, 0x00000200, L_MPMENU(138), 0x00000000, NULL }, // "B Button to cancel" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2b5fc +struct menu_dialog menudialog_mploadplayer = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(137), // "Load Player" + menuitems_mploadplayer, + NULL, + 0x00000000, + NULL, +}; + +// 2b614 +struct menu_item menuitems_mparena[] = { + { MENUITEMTYPE_CUSTOM, 0, 0x00020000, 0x00000078, 0x0000004d, menuhandler001791c8 }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2b63c +struct menu_dialog menudialog_mparena = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(115), // "Arena" + menuitems_mparena, + NULL, + 0x00000011, + NULL, +}; + +// 2b654 +struct menu_item menuitems_mplimits[] = { + { MENUITEMTYPE_SLIDER, 0, 0x00020010, L_MPMENU(108), 0x0000003c, menuhandlerMpTimeLimitSlider }, // "Time" + { MENUITEMTYPE_SLIDER, 0, 0x00020010, L_MPMENU(109), 0x00000064, menuhandlerMpScoreLimitSlider }, // "Score" + { MENUITEMTYPE_SLIDER, 0, 0x00020010, L_MISC(447), 0x00000190, menuhandlerMpTeamScoreLimitSlider }, // "Team Score" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU(110), 0x00000000, menuhandlerMpRestoreScoreDefaults }, // "Restore Defaults" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(111), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2b6e0 +struct menu_dialog menudialog_mplimits = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(107), // "Limits" + menuitems_mplimits, + NULL, + 0x00000010, + NULL, +}; + +// 2b6f8 +struct menu_item menuitems_mpplayerhandicaps[] = { + { MENUITEMTYPE_SLIDER, 0, 0x00020010, (u32)&func0f17c524, 0x000000ff, menuhandlerMpHandicapPlayer }, + { MENUITEMTYPE_SLIDER, 1, 0x00020010, (u32)&func0f17c524, 0x000000ff, menuhandlerMpHandicapPlayer }, + { MENUITEMTYPE_SLIDER, 2, 0x00020010, (u32)&func0f17c524, 0x000000ff, menuhandlerMpHandicapPlayer }, + { MENUITEMTYPE_SLIDER, 3, 0x00020010, (u32)&func0f17c524, 0x000000ff, menuhandlerMpHandicapPlayer }, + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU(110), 0x00000000, menuhandlerMpRestoreHandicapDefaults }, // "Restore Defaults" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(111), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2b798 +struct menu_dialog menudialog_mpplayerhandicaps = { + MENUDIALOGTYPE_DEFAULT, + L_MPWEAPONS(184), // "Player Handicaps" + menuitems_mpplayerhandicaps, + NULL, + 0x00000010, + NULL, +}; + +// 2b7b0 +struct menu_item menuitems_mpready[] = { + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(106), 0x00000000, NULL }, // "...and waiting" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2b7d8 +struct menu_dialog g_MpReadyMenuDialog = { + MENUDIALOGTYPE_SUCCESS, + L_MPMENU(105), // "Ready!" + menuitems_mpready, + menudialogMpReady, + 0x00000001, + NULL, +}; + +u32 var800857d0 = 0x00000000; +u32 var800857d4 = 0x50670000; // "Normal Simulants" +u32 var800857d8 = 0x00000006; +u32 var800857dc = 0x50680000; // "Special Simulants" + +// 2b800 +struct menu_item menuitems_mpaddchangesimulant[] = { + { MENUITEMTYPE_CUSTOM, 0, 0x00020000, 0x00000078, 0x00000042, menuhandler0017c6a4 }, + { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&mpMenuTextSimulantDescription, 0x00000000, NULL }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2b83c +struct menu_dialog g_MpAddSimulantMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(101), // "Add Simulant" + menuitems_mpaddchangesimulant, + NULL, + 0x00000011, + NULL, +}; + +// 2b854 +struct menu_dialog g_MpChangeSimulantMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(102), // "Change Simulant" + menuitems_mpaddchangesimulant, + menudialogMpSimulant, + 0x00000011, + NULL, +}; + +// 2b86c +struct menu_item menuitems_mpsimulantcharacter[] = { + { MENUITEMTYPE_CAROUSEL, 0, 0x00020000, 0x00000000, 0x00000025, menuhandlerMpSimulantHead }, + { MENUITEMTYPE_CAROUSEL, 0, 0x00020000, 0x00000000, 0x0000001b, menuhandlerMpSimulantBody }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2b8a8 +struct menu_dialog menudialog_mpsimulantcharacter = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(100), // "Simulant Character" + menuitems_mpsimulantcharacter, + menudialog0017ccfc, + 0x00000012, + NULL, +}; + +// 2b8c0 +struct menu_item menuitems_mpeditsimulant[] = { + { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(95), 0x00000000, menuhandlerMpSimulantDifficulty }, // "Difficulty:" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(96), 0x00000000, menuhandlerMpChangeSimulantType }, // "Change Type..." + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(97), 0x00000000, &menudialog_mpsimulantcharacter }, // "Character..." + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(98), 0x00000000, menuhandlerMpDeleteSimulant }, // "Delete Simulant" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(99), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2b94c +struct menu_dialog g_MpEditSimulantMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + (u32)&func0f17cfc0, + menuitems_mpeditsimulant, + menudialogMpSimulant, + 0x00000010, + NULL, +}; + +// 2b964 +struct menu_item menuitems_mpsimulants[] = { + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(84), 0x00000000, menuhandlerMpAddSimulant }, // "Add Simulant..." + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(85), (u32)&func0f17d378, menuhandlerMpSimulantSlot }, // "1:" + { MENUITEMTYPE_SELECTABLE, 1, 0x00000000, L_MPMENU(86), (u32)&func0f17d378, menuhandlerMpSimulantSlot }, // "2:" + { MENUITEMTYPE_SELECTABLE, 2, 0x00000000, L_MPMENU(87), (u32)&func0f17d378, menuhandlerMpSimulantSlot }, // "3:" + { MENUITEMTYPE_SELECTABLE, 3, 0x00000000, L_MPMENU(88), (u32)&func0f17d378, menuhandlerMpSimulantSlot }, // "4:" + { MENUITEMTYPE_SELECTABLE, 4, 0x00000000, L_MPMENU(89), (u32)&func0f17d378, menuhandlerMpSimulantSlot }, // "5:" + { MENUITEMTYPE_SELECTABLE, 5, 0x00000000, L_MPMENU(90), (u32)&func0f17d378, menuhandlerMpSimulantSlot }, // "6:" + { MENUITEMTYPE_SELECTABLE, 6, 0x00000000, L_MPMENU(91), (u32)&func0f17d378, menuhandlerMpSimulantSlot }, // "7:" + { MENUITEMTYPE_SELECTABLE, 7, 0x00000000, L_MPMENU(92), (u32)&func0f17d378, menuhandlerMpSimulantSlot }, // "8:" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(93), 0x00000000, menuhandlerMpClearAllSimulants }, // "Clear All" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(94), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2ba7c +struct menu_dialog menudialog_mpsimulants = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(83), // "Simulants" + menuitems_mpsimulants, + menudialogMpSimulants, + 0x00000010, + NULL, +}; + +u32 var80085a74 = 0x00000000; +u32 var80085a78 = 0x00000000; +u32 var80085a7c = 0x00000000; +u32 var80085a80 = 0x00000000; +u8 g_TeamIdsForPairing[] = {0, 1, 2, 3}; + +// 2baa8 +struct menu_item menuitems_mpautoteam[] = { + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(76), 0x00000000, menuhandlerMpTwoTeams }, // "Two Teams" + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(77), 0x00000000, menuhandlerMpThreeTeams }, // "Three Teams" + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(78), 0x00000000, menuhandlerMpFourTeams }, // "Four Teams" + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(79), 0x00000000, menuhandlerMpMaximumTeams }, // "Maximum Teams" + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(80), 0x00000000, menuhandlerMpHumansVsSimulants }, // "Humans vs. Simulants" + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU(81), 0x00000000, menuhandlerMpHumanSimulantPairs }, // "Human-Simulant Pairs" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(82), 0x00000000, NULL }, // "Cancel" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2bb5c +struct menu_dialog menudialog_mpautoteam = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(75), // "Auto Team" + menuitems_mpautoteam, + NULL, + 0x00000010, + NULL, +}; + +// 2bb74 +struct menu_item menuitems_mpteamcontrol[] = { + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(71), 0x00000002, menuhandlerMpTeamsEnabled }, // "Teams Enabled" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU(72), 0x00000000, menuhandlerMpTeamsLabel }, // "Teams:" + { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 1, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 2, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 3, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 4, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 5, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 6, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 7, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 8, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 9, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 10, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_DROPDOWN, 11, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(73), 0x00000000, &menudialog_mpautoteam }, // "Auto Team..." + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(74), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2bcf0 +struct menu_dialog menudialog_mpteamcontrol = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(70), // "Team Control" + menuitems_mpteamcontrol, + NULL, + 0x00000010, + NULL, +}; + +u32 var80085ce8 = L_MISC(166); // "Random" +u32 var80085cec = L_MISC(167); // "Select All" +u32 var80085cf0 = L_MISC(168); // "Select None" +u32 var80085cf4 = L_MISC(169); // "Randomize" + +// 2bd18 +struct menu_item menuitems_2bd18[] = { + { MENUITEMTYPE_CUSTOM, 0, 0x00020000, 0x00000078, 0x0000004d, menuhandler0017dc84 }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2bd40 +struct menu_dialog menudialog_2bd40 = { + MENUDIALOGTYPE_DEFAULT, + (u32)&mpMenuTextSelectTuneOrTunes, + menuitems_2bd18, + menudialogMpSelectTune, + 0x00000010, + NULL, +}; + +// 2bd58 +struct menu_item menuitems_mpsoundtrack[] = { + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU(63), 0x00000000, NULL }, // "Current:" + { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS(3), (u32)&mpMenuTextCurrentTrack, NULL }, // "" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, (u32)&mpMenuTextSelectTuneOrTunes, 0x00000000, &menudialog_2bd40 }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(64), 0x00000000, menuhandlerMpMultipleTunes }, // "Multiple Tunes" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(65), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2bdf8 +struct menu_dialog menudialog_mpsoundtrack = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(62), // "Soundtrack" + menuitems_mpsoundtrack, + NULL, + 0x00000010, + NULL, +}; + +// 2be10 +struct menu_item menuitems_mpchangeteamname[] = { + { MENUITEMTYPE_KEYBOARD, 0, 0x00000000, 0x00000000, 0x00000000, menuhandler0017e06c }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2be38 +struct menu_dialog g_MpChangeTeamNameMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(61), // "Change Team Name" + menuitems_mpchangeteamname, + NULL, + 0x00000000, + NULL, +}; + +// 2be50 +struct menu_item menuitems_mpteamnames[] = { + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS(8), (u32)&func0f17e288, menuhandlerMpTeamNameSlot }, // "Red" + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS(9), (u32)&func0f17e288, menuhandlerMpTeamNameSlot }, // "Yellow" + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS(10), (u32)&func0f17e288, menuhandlerMpTeamNameSlot }, // "Blue" + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS(11), (u32)&func0f17e288, menuhandlerMpTeamNameSlot }, // "Magenta" + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS(12), (u32)&func0f17e288, menuhandlerMpTeamNameSlot }, // "Cyan" + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS(13), (u32)&func0f17e288, menuhandlerMpTeamNameSlot }, // "Orange" + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS(14), (u32)&func0f17e288, menuhandlerMpTeamNameSlot }, // "Pink" + { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS(15), (u32)&func0f17e288, menuhandlerMpTeamNameSlot }, // "Brown" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(60), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2bf2c +struct menu_dialog menudialog_mpteamnames = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(59), // "Team Names" + menuitems_mpteamnames, + NULL, + 0x00000010, + NULL, +}; + +// 2bf44 +struct menu_item menuitems_2bf44[] = { + { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCONFIG, 0x00000000, 0x0000007c, 0x00000037, NULL }, + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU(57), 0x00000000, menuhandler0017e38c }, // "Accept" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(58), 0x00000000, NULL }, // "Cancel" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2bfa8 +struct menu_dialog menudialog_2bfa8 = { + MENUDIALOGTYPE_DEFAULT, + (u32)&func0f17e318, + menuitems_2bf44, + menudialog0017e3fc, + 0x00000014, + NULL, +}; + +// 2bfc0 +struct menu_item menuitems_mpchallengedetails[] = { + { MENUITEMTYPE_CUSTOM, 0, 0x00200000, 0x00000078, 0x0000004d, menuhandler0017e4d4 }, + { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCHALLENGE, 0x00000000, 0x0000007c, 0x00000037, menuhandler0017e9d8 }, + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, menuhandler0017e9d8 }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS(171), 0x00000000, menuhandlerMpStartChallenge }, // "Start Challenge" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(51), 0x00000000, menuhandlerMpAbortChallenge }, // "Abort Challenge" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2c038 +struct menu_dialog menudialog_mpchallengedetails = { + MENUDIALOGTYPE_DEFAULT, + (u32)&mpMenuTextChallengeName, + menuitems_mpchallengedetails, + menudialog0017eb34, + 0x00000808, + NULL, +}; + +struct menu_dialog menudialog_mpgamesetup2; + +// 2c050 +struct menu_dialog menudialog_mpchallengedetails2 = { + MENUDIALOGTYPE_DEFAULT, + (u32)&mpMenuTextChallengeName, + menuitems_mpchallengedetails, + menudialog0017eb34, + 0x00000808, + &menudialog_mpgamesetup2, +}; + +// 2c068 +struct menu_item menuitems_2c068[] = { + { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCONFIG, 0x00000000, 0x0000007c, 0x00000037, NULL }, + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(57), 0x00000000, menuhandler0017ec64 }, // "Accept" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(58), 0x00000000, NULL }, // "Cancel" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2c0cc +struct menu_dialog menudialog_2c0cc = { + MENUDIALOGTYPE_DEFAULT, + (u32)&func0f17e318, + menuitems_2c068, + menudialog0017e3fc, + 0x00000004, + NULL, +}; + +// 2c0e4 +struct menu_item menuitems_mpcombatchallenges2[] = { + { MENUITEMTYPE_CUSTOM, 1, 0x00200000, 0x00000078, 0x0000004d, menuhandler0017e4d4 }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2c10c +struct menu_dialog menudialog_mpcombatchallenges2 = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(50), // "Combat Challenges" + menuitems_mpcombatchallenges2, + menudialog0017eb34, + 0x00000000, + NULL, +}; + +// 2c124 +u16 mplockoptions[4] = { + L_MPMENU(45), // "None" + L_MPMENU(46), // "Last Winner" + L_MPMENU(47), // "Last Loser" + L_MPMENU(48), // "Random" +}; + +struct menu_dialog menudialog_mpabort2; + +// 2c12c +struct menu_item menuitems_mpstuff[] = { + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(41), 0x00000000, &menudialog_mpsoundtrack }, // "Soundtrack" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(42), 0x00000000, &menudialog_mpteamnames }, // "Team Names" + { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(44), 0x00000000, menuhandlerMpLock }, // "Lock" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(216), 0x00000000, menuhandlerScreenRatio }, // "Ratio" + { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS(154), 0x00000000, menuhandlerScreenSplit }, // "Split" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(36), 0x00000000, &g_MpReadyMenuDialog }, // "Start Game" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(37), 0x00000000, &menudialog_2aba0 }, // "Drop Out" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(27), 0x00000000, &menudialog_mpabort2 }, // "Abort Game" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2c208 +struct menu_dialog menudialog_mpstuff = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(40), // "Stuff" + menuitems_mpstuff, + NULL, + 0x00000810, + &menudialog_mpchallengedetails, +}; + +// 2c220 +struct menu_dialog menudialog_mpstuff2 = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(40), // "Stuff" + menuitems_mpstuff, + NULL, + 0x00000810, + NULL, +}; + +// 2c238 +struct menu_item menuitems_mpplayersetup4[] = { + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(30), (u32)&mpGetCurrentPlayerName, &menudialog_mpplayername }, // "Name" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(31), 0x00000000, &menudialog_mpcharacter }, // "Character" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(33), 0x00000000, &menudialog_mpcontrol }, // "Control" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(34), 0x00000000, &menudialog_mpoptions }, // "Player Options" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(35), 0x00000000, &menudialog_mpplayerstats }, // "Statistics" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(29), 0x00000000, &menudialog_mploadplayer }, // "Load Player" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, (u32)&mpMenuTextSavePlayerOrCopy, 0x00000000, menuhandlerMpSavePlayer }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2c2ec +struct menu_dialog menudialog_mpplayersetup4 = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(28), // "Player Setup" + menuitems_mpplayersetup4, + NULL, + 0x00000800, + &menudialog_mpstuff, +}; + +// 2c304 +struct menu_dialog menudialog_mpplayersetup2 = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(28), // "Player Setup" + menuitems_mpplayersetup4, + NULL, + 0x00000800, + &menudialog_mpstuff2, +}; + +// 2c31c +struct menu_dialog menudialog_mpplayersetup3 = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(28), // "Player Setup" + menuitems_mpplayersetup4, + NULL, + 0x00000000, + NULL, +}; + +// 2c334 +struct menu_item menuitems_mpabort2[] = { + { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU(53), 0x00000000, NULL }, // "Are you sure you want to abort the game?" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(54), 0x00000000, menuhandler0017ef30 }, // "Abort" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(55), 0x00000000, NULL }, // "Cancel" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2c384 +struct menu_dialog menudialog_mpabort2 = { + MENUDIALOGTYPE_DANGER, + L_MPMENU(52), // "Abort" + menuitems_mpabort2, + NULL, + 0x00000000, + NULL, +}; + +struct menu_dialog menudialog_mpscenario; + +// 2c39c +struct menu_item menuitems_mpgamesetup3[] = { + { MENUITEMTYPE_SELECTABLE, 0, 0x00020004, L_MPMENU(19), (u32)&mpMenuTextScenarioShortName, &menudialog_mpscenario }, // "Scenario" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(21), 0x00000000, menuhandlerMpOpenOptions }, // "Options" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(20), (u32)&mpMenuTextArenaName, &menudialog_mparena }, // "Arena" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(23), 0x00000000, &menudialog_mpweapons }, // "Weapons" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(24), 0x00000000, &menudialog_mplimits }, // "Limits" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPWEAPONS(184), 0x00000000, &menudialog_mpplayerhandicaps }, // "Player Handicaps" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(25), 0x00000000, &menudialog_mpsimulants }, // "Simulants" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(22), 0x00000000, &menudialog_mpteamcontrol }, // "Teams" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00060004, L_MPMENU(18), 0x00000000, &menudialog_mploadgamesettingstype0 }, // "Load Settings" + { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU(26), 0x00000000, menuhandlerMpSaveSettings }, // "Save Settings" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2c48c +struct menu_dialog menudialog_mpgamesetup3 = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(17), // "Game Setup" + menuitems_mpgamesetup3, + menudialogMpGameSetup, + 0x00000810, + &menudialog_mpplayersetup4, +}; + +// 2c4a4 +struct menu_dialog menudialog_mpgamesetup2 = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(17), // "Game Setup" + menuitems_mpgamesetup3, + menudialogMpGameSetup, + 0x00000810, + &menudialog_mpplayersetup2, +}; + +// 2c4bc +struct menu_item menuitems_mpquickgo[] = { + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MISC(456), 0x00000000, &g_MpReadyMenuDialog }, // "Start Game" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(29), 0x00000000, &menudialog_mploadplayer }, // "Load Player" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MISC(458), 0x00000000, &menudialog_mpplayersetup3 }, // "Player Settings" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MISC(457), 0x00000000, &menudialog_2aba0 }, // "Drop Out" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2c520 +struct menu_dialog g_MpQuickGoMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MISC(460), // "Quick Go" + menuitems_mpquickgo, + menudialogMpQuickGo, + 0x00000000, + NULL, +}; + +struct menu_dialog menudialog_mpscenario2; + +// 2c538 +struct menu_item menuitems_mpquickteamgamesetup[] = { + { MENUITEMTYPE_SELECTABLE, 0, 0x00020004, L_MPMENU(19), (u32)&mpMenuTextScenarioShortName, &menudialog_mpscenario2 }, // "Scenario" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU(21), 0x00000000, menuhandlerMpOpenOptions }, // "Options" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(20), (u32)&mpMenuTextArenaName, &menudialog_mparena }, // "Arena" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(23), (u32)&mpMenuTextWeaponSetName, &menudialog_mpweapons2 }, // "Weapons" + { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU(24), 0x00000000, &menudialog_mplimits }, // "Limits" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, menuhandlerQuickTeamSeparator }, + { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MISC(449), 0x00000000, menuhandlerPlayerTeam }, // "Player 1 Team" + { MENUITEMTYPE_DROPDOWN, 1, 0x00000000, L_MISC(450), 0x00000000, menuhandlerPlayerTeam }, // "Player 2 Team" + { MENUITEMTYPE_DROPDOWN, 2, 0x00000000, L_MISC(451), 0x00000000, menuhandlerPlayerTeam }, // "Player 3 Team" + { MENUITEMTYPE_DROPDOWN, 3, 0x00000000, L_MISC(452), 0x00000000, menuhandlerPlayerTeam }, // "Player 4 Team" + { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MISC(453), 0x00000000, menuhandlerMpNumberOfSimulants }, // "Number Of Simulants" + { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MISC(454), 0x00000000, menuhandlerMpSimulantsPerTeam }, // "Simulants Per Team" + { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MISC(455), 0x00000000, menuhandler0017f74c }, // "Simulant Difficulty" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MISC(448), 0x00000000, menuhandlerMpFinishedSetup }, // "Finished Setup" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU(26), 0x00000000, menuhandlerMpSaveSettings }, // "Save Settings" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2c6a0 +struct menu_dialog g_MpQuickTeamGameSetupMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(17), // "Game Setup" + menuitems_mpquickteamgamesetup, + NULL, + 0x00000000, + NULL, +}; + +// 2c6b8 +struct menu_item menuitems_mpquickteam[] = { + { MENUITEMTYPE_SELECTABLE, 0, 0x00400000, L_MISC(463), 0x00000000, menuhandlerMpQuickTeamOption }, // "Players Only" + { MENUITEMTYPE_SELECTABLE, 1, 0x00400000, L_MISC(464), 0x00000000, menuhandlerMpQuickTeamOption }, // "Players and Simulants" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 2, 0x00400000, L_MISC(465), 0x00000000, menuhandlerMpQuickTeamOption }, // "Player Teams" + { MENUITEMTYPE_SELECTABLE, 3, 0x00400000, L_MISC(466), 0x00000000, menuhandlerMpQuickTeamOption }, // "Players vs. Simulants" + { MENUITEMTYPE_SELECTABLE, 4, 0x00400000, L_MISC(467), 0x00000000, menuhandlerMpQuickTeamOption }, // "Player-Simulant Teams" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2c744 +struct menu_dialog menudialog_mpquickteam = { + MENUDIALOGTYPE_DEFAULT, + L_MISC(462), // "Quick Team" + menuitems_mpquickteam, + NULL, + 0x00000004, + NULL, +}; + +// 2c75c +struct menu_item menuitems_mpcombatsimulator[] = { + { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_MISC(441), 0x00000000, &menudialog_mpcombatchallenges2 }, // "Challenges" + { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_MISC(442), 0x00000001, &menudialog_mploadgamesettingstype1 }, // "Load/Preset Games" + { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_MISC(443), 0x00000002, &menudialog_mpquickteam }, // "Quick Start" + { MENUITEMTYPE_SELECTABLE, 0, 0x00400000, L_MISC(444), 0x00000003, menuhandlerMpAdvancedSetup }, // "Advanced Setup" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2c7c0 +struct menu_dialog g_CombatSimulatorMenuDialog = { + MENUDIALOGTYPE_DEFAULT, + L_MISC(445), // "Combat Simulator" + menuitems_mpcombatsimulator, + menudialogCombatSimulator, + 0x00000004, + NULL, +}; + +u32 var800867b8 = 0x00000000; +u32 var800867bc = 0x00000000; + +// 2c7e0 +u16 mpslowmotionoptions[] = { + L_MPMENU(240), // "Off" + L_MPMENU(241), // "On" + L_MPMENU(242), // "Smart" + 0x0000, +}; + +// 2c7e8 +struct menu_item menuitems_mpcombatoptions[] = { + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" + { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(228), MPOPTION_NOPLAYERHIGHLIGHT, menuhandlerMpCheckboxOption }, // "No Player Highlight" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(229), MPOPTION_NOPICKUPHIGHLIGHT, menuhandlerMpCheckboxOption }, // "No Pickup Highlight" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2c8d8 +struct menu_dialog menudialog_mpcombatoptions = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(215), // "Combat Options" + menuitems_mpcombatoptions, + menudialog00184ec0, + 0x00000010, + NULL, +}; + +// 2c8f0 +struct menu_item menuitems_mpbriefcaseoptions[] = { + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" + { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(237), MPOPTION_HTB_HIGHLIGHTBRIEFCASE, menuhandlerMpCheckboxOption }, // "Highlight Briefcase" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(238), MPOPTION_HTB_SHOWONRADAR, menuhandlerMpCheckboxOption }, // "Show on Radar" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2c9f4 +struct menu_dialog menudialog_mpbriefcaseoptions = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(216), // "Briefcase Options" + menuitems_mpbriefcaseoptions, + menudialog00184ec0, + 0x00000010, + NULL, +}; + +struct defaultobj *var800869ec = NULL; +u32 var800869f0 = 0x01000008; +u32 var800869f4 = 0x00110000; +u32 var800869f8 = 0x00420001; +u32 var800869fc = 0x00204000; +u32 var80086a00 = 0x00000000; +u32 var80086a04 = 0x00000000; +u32 var80086a08 = 0x00000000; +u32 var80086a0c = 0x3f800000; +u32 var80086a10 = 0x00000000; +u32 var80086a14 = 0x00000000; +u32 var80086a18 = 0x00000000; +u32 var80086a1c = 0x3f800000; +u32 var80086a20 = 0x00000000; +u32 var80086a24 = 0x00000000; +u32 var80086a28 = 0x00000000; +u32 var80086a2c = 0x3f800000; +u32 var80086a30 = 0x00000000; +u32 var80086a34 = 0x00000000; +u32 var80086a38 = 0x00000000; +u32 var80086a3c = 0x000003e8; +u32 var80086a40 = 0xffffff00; +u32 var80086a44 = 0xffffff00; +u32 var80086a48 = 0x0fff0000; +u32 var80086a4c = 0x57000000; +u32 var80086a50 = 0x00ffffff; +u32 var80086a54 = 0x00000000; + +// 2ca78 +struct menu_item menuitems_mpcaptureoptions[] = { + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" + { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(236), MPOPTION_CTC_SHOWONRADAR, menuhandlerMpCheckboxOption }, // "Show on Radar" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2cb68 +struct menu_dialog menudialog_mpcaptureoptions = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(220), // "Capture Options" + menuitems_mpcaptureoptions, + menudialog00184ec0, + 0x00000010, + NULL, +}; + +u32 var80086b60 = 0x01000008; +u32 var80086b64 = 0x00110000; +u32 var80086b68 = 0x00420001; +u32 var80086b6c = 0x00204000; +u32 var80086b70 = 0x00000000; +u32 var80086b74 = 0x00000000; +u32 var80086b78 = 0x00000000; +u32 var80086b7c = 0x3f800000; +u32 var80086b80 = 0x00000000; +u32 var80086b84 = 0x00000000; +u32 var80086b88 = 0x00000000; +u32 var80086b8c = 0x3f800000; +u32 var80086b90 = 0x00000000; +u32 var80086b94 = 0x00000000; +u32 var80086b98 = 0x00000000; +u32 var80086b9c = 0x3f800000; +u32 var80086ba0 = 0x00000000; +u32 var80086ba4 = 0x00000000; +u32 var80086ba8 = 0x00000000; +u32 var80086bac = 0x000003e8; +u32 var80086bb0 = 0xffffff00; +u32 var80086bb4 = 0xffffff00; +u32 var80086bb8 = 0x0fff0000; +u32 var80086bbc = 0x57000000; +u32 var80086bc0 = 0x00ffffff; +u32 var80086bc4 = 0x00000000; + +// 2cbe8 +struct menu_item menuitems_mphilloptions[] = { + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" + { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(233), MPOPTION_KOH_HILLONRADAR, menuhandlerMpCheckboxOption }, // "Hill on Radar" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(234), MPOPTION_KOH_MOBILEHILL, menuhandlerMpCheckboxOption }, // "Mobile Hill" + { MENUITEMTYPE_SLIDER, 0, 0x00020000, L_MPMENU(235), 0x0000006e, menuhandlerMpHillTime }, // "Time" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2cd00 +struct menu_dialog menudialog_mphilloptions = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(219), // "Hill Options" + menuitems_mphilloptions, + menudialog00184ec0, + 0x00000010, + NULL, +}; + +// 2cd18 +struct menu_item menuitems_mphackeroptions[] = { + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" + { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(231), MPOPTION_HTM_HIGHLIGHTTERMINAL, menuhandlerMpCheckboxOption }, // "Highlight Terminal" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(238), MPOPTION_HTM_SHOWONRADAR, menuhandlerMpCheckboxOption }, // "Show on Radar" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2ce1c +struct menu_dialog menudialog_mphackeroptions = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(217), // "Hacker Options" + menuitems_mphackeroptions, + menudialog00184ec0, + 0x00000010, + NULL, +}; + +u32 var80086e14 = 0x02000008; +u32 var80086e18 = 0x00130000; +u32 var80086e1c = 0x00420001; +u32 var80086e20 = 0x00204000; +u32 var80086e24 = 0x00000000; +u32 var80086e28 = 0x00000000; +u32 var80086e2c = 0x00000000; +u32 var80086e30 = 0x3f800000; +u32 var80086e34 = 0x00000000; +u32 var80086e38 = 0x00000000; +u32 var80086e3c = 0x00000000; +u32 var80086e40 = 0x3f800000; +u32 var80086e44 = 0x00000000; +u32 var80086e48 = 0x00000000; +u32 var80086e4c = 0x00000000; +u32 var80086e50 = 0x3f800000; +u32 var80086e54 = 0x00000000; +u32 var80086e58 = 0x00000000; +u32 var80086e5c = 0x00000000; +u32 var80086e60 = 0x000003e8; +u32 var80086e64 = 0xffffff00; +u32 var80086e68 = 0xffffff00; +u32 var80086e6c = 0x0fff0000; +u32 var80086e70 = 0x36000000; +u32 var80086e74 = 0x00ffffff; +u32 var80086e78 = 0x00000000; + +// 2ce9c +struct menu_item menuitems_mppopacapoptions[] = { + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" + { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(230), MPOPTION_PAC_HIGHLIGHTTARGET, menuhandlerMpCheckboxOption }, // "Highlight Target" + { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(238), MPOPTION_PAC_SHOWONRADAR, menuhandlerMpCheckboxOption }, // "Show on Radar" + { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back" + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2cfa0 +struct menu_dialog menudialog_mppopacapoptions = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(218), // "Pop a Cap Options" + menuitems_mppopacapoptions, + menudialog00184ec0, + 0x00000010, + NULL, +}; + +// 2cfb8 +struct mpscenario g_MpScenarios[] = { + { &menudialog_mpcombatoptions, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, + { &menudialog_mpbriefcaseoptions, scenarioHtbInit, scenarioHtbCallback08, scenarioHtbReset, scenarioHtbCallback10, scenarioHtbCallback14, scenarioHtbCallback18, scenarioHtbKill, scenarioHtbRadar, scenarioHtbRadar2, scenarioHtbHighlight, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, + { &menudialog_mphackeroptions, scenarioHtmInit, scenarioHtmCallback08, scenarioHtmReset, scenarioHtmCallback10, scenarioHtmCallback14, scenarioHtmCallback18, scenarioHtmKill, scenarioHtmRadar, scenarioHtmRadar2, scenarioHtmHighlight, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, + { &menudialog_mppopacapoptions, scenarioPacInit, NULL, scenarioPacReset, scenarioPacCallback10, NULL, scenarioPacCallback18, scenarioPacKill, scenarioPacRadar, scenarioPacRadar2, scenarioPacHighlight, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, + { &menudialog_mphilloptions, scenarioKohInit, NULL, scenarioKohReset, scenarioKohCallback10, NULL, scenarioKohCallback18, scenarioKohKill, scenarioKohRadar, NULL, NULL, NULL, NULL, scenarioKohIsRoomHighlighted, scenarioKohCallback38, NULL, scenarioKohCallback40, scenarioKohCallback44 }, + { &menudialog_mpcaptureoptions, scenarioCtcInit, scenarioCtcCallback08, scenarioCtcReset, scenarioCtcCallback10, scenarioCtcCallback14, NULL, scenarioCtcKill, scenarioCtcRadar, scenarioCtcRadar2, scenarioCtcHighlight, scenarioCtcCallback2c, scenarioCtcGetMaxTeams, scenarioCtcIsRoomHighlighted, scenarioCtcCallback38, NULL, NULL, NULL }, +}; + +// 2d168 +struct mpscenariooverview g_MpScenarioOverviews[] = { + // Full name, short name, unlock flags? + { L_MPMENU(246), L_MPMENU(253), 0x00, false }, // "Combat", "Combat" + { L_MPMENU(247), L_MPMENU(254), 0x20, false }, // "Hold the Briefcase", "Briefcase" + { L_MPMENU(248), L_MPMENU(255), 0x4e, false }, // "Hacker Central", "Hacker" + { L_MPMENU(249), L_MPMENU(256), 0x4d, false }, // "Pop a Cap", "Pop" + { L_MPMENU(250), L_MPMENU(257), 0x1f, true }, // "King of the Hill", "Hill" + { L_MPMENU(251), L_MPMENU(258), 0x21, true }, // "Capture the Case", "Capture" +}; + +u32 var8008716c = 0x00000000; +u32 var80087170 = 0x50f40000; // "Free for All!" +u32 var80087174 = 0x00000004; +u32 var80087178 = 0x50f50000; // "-Teamwork-" + +// 2d19c +struct menu_item menuitems_mpscenario[] = { + { MENUITEMTYPE_CUSTOM, 0, 0x00020040, 0x00000078, 0x0000004d, menuhandler00185068 }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2d1c4 +struct menu_dialog menudialog_mpscenario = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(243), // "Scenario" + menuitems_mpscenario, + NULL, + 0x00000011, + NULL, +}; + +// 2d1dc +struct menu_item menuitems_mpscenario2[] = { + { MENUITEMTYPE_CUSTOM, 1, 0x00020040, 0x00000078, 0x0000004d, menuhandler00185068 }, + { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, +}; + +// 2d204 +struct menu_dialog menudialog_mpscenario2 = { + MENUDIALOGTYPE_DEFAULT, + L_MPMENU(243), // "Scenario" + menuitems_mpscenario2, + NULL, + 0x00000011, + NULL, +}; + +u32 var800871fc = 0x01000003; +u32 var80087200 = 0x0020ffff; +u32 var80087204 = 0x00000000; +u32 var80087208 = 0x00000000; +u32 var8008720c = 0x00000000; +u32 var80087210 = 0x00000000; +u32 var80087214 = 0x00000000; +u32 var80087218 = 0x3f800000; +u32 var8008721c = 0x00000000; +u32 var80087220 = 0x00000000; +u32 var80087224 = 0x00000000; +u32 var80087228 = 0x3f800000; +u32 var8008722c = 0x00000000; +u32 var80087230 = 0x00000000; +u32 var80087234 = 0x00000000; +u32 var80087238 = 0x3f800000; +u32 var8008723c = 0x00000000; +u32 var80087240 = 0x00000000; +u32 var80087244 = 0x00000000; +u32 var80087248 = 0x000003e8; +u32 var8008724c = 0xffffff00; +u32 var80087250 = 0xffffff00; +u32 var80087254 = 0x0fff0000; +u32 var80087258 = 0x00000000; +u32 var8008725c = 0x00000000; +s32 var80087260 = 0x00000000; +u32 var80087264 = 0x00000000; + +// 2d288 +struct mpweapon mpweaponstable[] = { + /*0x00*/ { WEAPON_NONE, 0x00, 0x00, 0x00, 0x0080, MODEL_CHRTT33, 0x01, 0x00 }, + /*0x01*/ { WEAPON_FALCON2, 0x01, 0x50, 0x00, 0x0080, MODEL_CHRFALCON2, 0x01, 0x00 }, + /*0x02*/ { WEAPON_FALCON2_SILENCER, 0x01, 0x50, 0x00, 0x0085, MODEL_CHRFALCON2SIL, 0x01, 0x00 }, + /*0x03*/ { WEAPON_FALCON2_SCOPE, 0x01, 0x50, 0x00, 0x0086, MODEL_CHRFALCON2SCOPE, 0x01, 0x00 }, + /*0x04*/ { WEAPON_MAGSEC4, 0x01, 0x50, 0x00, 0x0080, MODEL_CHRLEEGUN1, 0x01, 0x00 }, + /*0x05*/ { WEAPON_MAULER, 0x01, 0x5c, 0x00, 0x0087, MODEL_CHRMAULER, 0x01, 0x00 }, + /*0x06*/ { WEAPON_PHOENIX, 0x01, 0x40, 0x00, 0x0088, MODEL_CHRMAIANPISTOL, 0x01, 0x00 }, + /*0x07*/ { WEAPON_DY357MAGNUM, 0x0a, 0x32, 0x00, 0x0080, MODEL_CHRDY357, 0x01, 0x00 }, + /*0x08*/ { WEAPON_DY357LX, 0x0a, 0x32, 0x00, 0x0089, MODEL_CHRDY357TRENT, 0x01, 0x00 }, + /*0x09*/ { WEAPON_CMP150, 0x02, 0x64, 0x00, 0x0080, MODEL_CHRCMP150, 0x01, 0x00 }, + /*0x0a*/ { WEAPON_CYCLONE, 0x02, 0x96, 0x00, 0x0080, MODEL_CHRCYCLONE, 0x01, 0x00 }, + /*0x0b*/ { WEAPON_CALLISTONTG, 0x02, 0x96, 0x00, 0x008a, MODEL_CHRMAIANSMG, 0x01, 0x00 }, + /*0x0c*/ { WEAPON_RCP120, 0x02, 0x96, 0x00, 0x008d, MODEL_CHRRCP120, 0x01, 0x00 }, + /*0x0d*/ { WEAPON_LAPTOPGUN, 0x02, 0x96, 0x00, 0x008b, MODEL_CHRPCGUN, 0x01, 0x00 }, + /*0x0e*/ { WEAPON_DRAGON, 0x04, 0x96, 0x00, 0x0080, MODEL_CHRDRAGON, 0x01, 0x00 }, + /*0x0f*/ { WEAPON_K7AVENGER, 0x04, 0x96, 0x00, 0x008c, MODEL_CHRAVENGER, 0x01, 0x00 }, + /*0x10*/ { WEAPON_AR34, 0x04, 0x64, 0x00, 0x0080, MODEL_CHRAR34, 0x01, 0x00 }, + /*0x11*/ { WEAPON_SUPERDRAGON, 0x04, 0x96, 0x0b, 0x1083, MODEL_CHRSUPERDRAGON, 0x01, 0x00 }, + /*0x12*/ { WEAPON_SHOTGUN, 0x05, 0x10, 0x00, 0x008e, MODEL_CHRSHOTGUN, 0x01, 0x00 }, + /*0x13*/ { WEAPON_REAPER, 0x0f, 0xc8, 0x00, 0x008f, MODEL_CHRSKMINIGUN, 0x01, 0x00 }, + /*0x14*/ { WEAPON_SNIPERRIFLE, 0x04, 0x32, 0x00, 0x0080, MODEL_CHRSNIPERRIFLE, 0x01, 0x00 }, + /*0x15*/ { WEAPON_FARSIGHTXR20, 0x06, 0x0a, 0x00, 0x0081, MODEL_CHRZ2020, 0x01, 0x00 }, + /*0x16*/ { WEAPON_DEVASTATOR, 0x0b, 0x10, 0x00, 0x0090, MODEL_CHRDEVASTATOR, 0x01, 0x00 }, + /*0x17*/ { WEAPON_ROCKETLAUNCHER, 0x08, 0x03, 0x00, 0x0080, MODEL_CHRDYROCKET, 0x01, 0x00 }, + /*0x18*/ { WEAPON_SLAYER, 0x08, 0x03, 0x00, 0x0084, MODEL_CHRSKROCKET, 0x01, 0x00 }, + /*0x19*/ { WEAPON_COMBATKNIFE, 0x09, 0x05, 0x00, 0x0080, MODEL_CHRKNIFE, 0x01, 0x00 }, + /*0x1a*/ { WEAPON_CROSSBOW, 0x03, 0x0a, 0x00, 0x0091, MODEL_CHRCROSSBOW, 0x01, 0x00 }, + /*0x1b*/ { WEAPON_TRANQUILIZER, 0x13, 0x32, 0x00, 0x0082, MODEL_CHRDRUGGUN, 0x01, 0x00 }, + /*0x1c*/ { WEAPON_GRENADE, 0x07, 0x05, 0x00, 0x0000, MODEL_CHRGRENADE, 0x01, 0x00 }, + /*0x1d*/ { WEAPON_NBOMB, 0x12, 0x03, 0x00, 0x0012, MODEL_CHRNBOMB, 0x01, 0x00 }, + /*0x1e*/ { WEAPON_TIMEDMINE, 0x0e, 0x05, 0x00, 0x0000, MODEL_CHRTIMEDMINE, 0x01, 0x80 }, + /*0x1f*/ { WEAPON_PROXIMITYMINE, 0x0d, 0x05, 0x00, 0x0013, MODEL_CHRPROXIMITYMINE, 0x01, 0x80 }, + /*0x20*/ { WEAPON_REMOTEMINE, 0x0c, 0x05, 0x00, 0x0014, MODEL_CHRREMOTEMINE, 0x01, 0x80 }, + /*0x21*/ { WEAPON_LASER, 0x00, 0x00, 0x00, 0x00cf, MODEL_CHRLASER, 0x02, 0x00 }, + /*0x22*/ { WEAPON_XRAYSCANNER, 0x00, 0x00, 0x00, 0x0095, MODEL_CHRNIGHTSIGHT, 0x01, 0x00 }, + /*0x23*/ { WEAPON_CLOAKINGDEVICE, 0x00, 0x00, 0x00, 0x0097, MODEL_CHRCLOAKER, 0x01, 0x00 }, + /*0x24*/ { WEAPON_COMBATBOOST, 0x00, 0x00, 0x00, 0x0098, MODEL_CHRSPEEDPILL, 0x01, 0x00 }, + /*0x25*/ { WEAPON_MPSHIELD, 0x00, 0x00, 0x00, 0x0096, MODEL_CHRSHIELD, 0x01, 0x00 }, + /*0x26*/ { WEAPON_DISABLED, 0x00, 0x00, 0x00, 0x0000, 0, 0x00, 0x00 }, +}; diff --git a/src/game/game_000000.c b/src/game/game_000000.c index 0b9b4347b..90be10fc1 100644 --- a/src/game/game_000000.c +++ b/src/game/game_000000.c @@ -6,6 +6,7 @@ #include "game/data/data_0160b0.h" #include "game/data/data_01a3a0.h" #include "game/data/data_020df0.h" +#include "game/data/data_02a0e0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/lib_121e0.h" diff --git a/src/game/game_01d860.c b/src/game/game_01d860.c index 0d35dd6ea..db2be872d 100644 --- a/src/game/game_01d860.c +++ b/src/game/game_01d860.c @@ -6,6 +6,7 @@ #include "game/data/data_0160b0.h" #include "game/data/data_01a3a0.h" #include "game/data/data_020df0.h" +#include "game/data/data_02a0e0.h" #include "game/data/data_02da90.h" #include "game/game_1668e0.h" #include "gvars/gvars.h" diff --git a/src/game/game_102240.c b/src/game/game_102240.c index 01828f3a3..a74776058 100644 --- a/src/game/game_102240.c +++ b/src/game/game_102240.c @@ -6,6 +6,7 @@ #include "game/data/data_0160b0.h" #include "game/data/data_01a3a0.h" #include "game/data/data_020df0.h" +#include "game/data/data_02a0e0.h" #include "game/data/data_02da90.h" #include "game/data/data_02e820.h" #include "game/cheats.h" diff --git a/src/game/game_167ae0.c b/src/game/game_167ae0.c index 816bad800..ab94eedb2 100644 --- a/src/game/game_167ae0.c +++ b/src/game/game_167ae0.c @@ -113,6 +113,34 @@ #include "lib/lib_4e530.h" #include "types.h" +u32 var80084010 = 0; +bool var80084014 = false; +f32 var80084018 = 1; +u32 var8008401c = 0x00000001; + +s32 g_Difficulty = 0; + +s32 g_MpTimeElapsed = 0; +s32 g_MpTimeLimit = 36000; +s32 g_MpScoreLimit = 10; +s32 g_MpTeamScoreLimit = 20; +struct audiohandle *g_MiscAudioHandle = NULL; +s32 var80084038 = 0; +f32 g_Uptime = 0; +bool var80084040 = true; +u32 g_BoostAndSlayerSounds[] = {0x05c8, 0x8068, 0x01c8}; +u32 var80084050 = 0; + +s16 g_FadeNumFrames = 0; + +// 80084058 +f32 fade80084058 = -1; +u32 g_FadePrevColor = 0; +u32 g_FadeColor = 0; + +// 80084064 +u16 fade80084064 = 0; + u32 getVar80084040(void) { return var80084040; @@ -1446,126 +1474,64 @@ glabel func0f168f24 // } //} -GLOBAL_ASM( -glabel func0f1691c0 -/* f1691c0: 27bdff88 */ addiu $sp,$sp,-120 -/* f1691c4: 3c0e8008 */ lui $t6,%hi(var80084068) -/* f1691c8: afbf0034 */ sw $ra,0x34($sp) -/* f1691cc: afb40030 */ sw $s4,0x30($sp) -/* f1691d0: afb3002c */ sw $s3,0x2c($sp) -/* f1691d4: afb20028 */ sw $s2,0x28($sp) -/* f1691d8: afb10024 */ sw $s1,0x24($sp) -/* f1691dc: afb00020 */ sw $s0,0x20($sp) -/* f1691e0: 25ce4068 */ addiu $t6,$t6,%lo(var80084068) -/* f1691e4: 8dc10000 */ lw $at,0x0($t6) -/* f1691e8: 27b30060 */ addiu $s3,$sp,0x60 -/* f1691ec: 3c098008 */ lui $t1,%hi(var80084078) -/* f1691f0: ae610000 */ sw $at,0x0($s3) -/* f1691f4: 8dd90004 */ lw $t9,0x4($t6) -/* f1691f8: 25294078 */ addiu $t1,$t1,%lo(var80084078) -/* f1691fc: 27b40050 */ addiu $s4,$sp,0x50 -/* f169200: ae790004 */ sw $t9,0x4($s3) -/* f169204: 8dc10008 */ lw $at,0x8($t6) -/* f169208: 3c11800a */ lui $s1,%hi(g_Vars) -/* f16920c: 26319fc0 */ addiu $s1,$s1,%lo(g_Vars) -/* f169210: ae610008 */ sw $at,0x8($s3) -/* f169214: 8dd9000c */ lw $t9,0xc($t6) -/* f169218: 8e230284 */ lw $v1,0x284($s1) -/* f16921c: 8e30034c */ lw $s0,0x34c($s1) -/* f169220: ae79000c */ sw $t9,0xc($s3) -/* f169224: 8d210000 */ lw $at,0x0($t1) -/* f169228: 8e220348 */ lw $v0,0x348($s1) -/* f16922c: 2610fffc */ addiu $s0,$s0,-4 -/* f169230: ae810000 */ sw $at,0x0($s4) -/* f169234: 8d2c0004 */ lw $t4,0x4($t1) -/* f169238: 27b20040 */ addiu $s2,$sp,0x40 -/* f16923c: ae8c0004 */ sw $t4,0x4($s4) -/* f169240: 8d210008 */ lw $at,0x8($t1) -/* f169244: ae810008 */ sw $at,0x8($s4) -/* f169248: 8d2c000c */ lw $t4,0xc($t1) -/* f16924c: 0202082b */ sltu $at,$s0,$v0 -/* f169250: ae8c000c */ sw $t4,0xc($s4) -/* f169254: c4641bb0 */ lwc1 $f4,0x1bb0($v1) -/* f169258: e7a40040 */ swc1 $f4,0x40($sp) -/* f16925c: c4661bb4 */ lwc1 $f6,0x1bb4($v1) -/* f169260: e7a60044 */ swc1 $f6,0x44($sp) -/* f169264: c4681bb8 */ lwc1 $f8,0x1bb8($v1) -/* f169268: 1420000d */ bnez $at,.L0f1692a0 -/* f16926c: e7a80048 */ swc1 $f8,0x48($sp) -/* f169270: 8e040000 */ lw $a0,0x0($s0) -.L0f169274: -/* f169274: 00002825 */ or $a1,$zero,$zero -/* f169278: 02403025 */ or $a2,$s2,$zero -/* f16927c: 10800004 */ beqz $a0,.L0f169290 -/* f169280: 02803825 */ or $a3,$s4,$zero -/* f169284: 0fc5a3c9 */ jal func0f168f24 -/* f169288: afb30010 */ sw $s3,0x10($sp) -/* f16928c: 8e220348 */ lw $v0,0x348($s1) -.L0f169290: -/* f169290: 2610fffc */ addiu $s0,$s0,-4 -/* f169294: 0202082b */ sltu $at,$s0,$v0 -/* f169298: 5020fff6 */ beqzl $at,.L0f169274 -/* f16929c: 8e040000 */ lw $a0,0x0($s0) -.L0f1692a0: -/* f1692a0: 27b20040 */ addiu $s2,$sp,0x40 -/* f1692a4: 00001825 */ or $v1,$zero,$zero -/* f1692a8: 27a40050 */ addiu $a0,$sp,0x50 -/* f1692ac: 24080004 */ addiu $t0,$zero,0x4 -/* f1692b0: 2407fffe */ addiu $a3,$zero,-2 -/* f1692b4: 2406ffff */ addiu $a2,$zero,-1 -/* f1692b8: 2405000c */ addiu $a1,$zero,0xc -.L0f1692bc: -/* f1692bc: 8c8d0000 */ lw $t5,0x0($a0) -/* f1692c0: 55a0000d */ bnezl $t5,.L0f1692f8 -/* f1692c4: 24630001 */ addiu $v1,$v1,0x1 -/* f1692c8: 00650019 */ multu $v1,$a1 -/* f1692cc: 8e380284 */ lw $t8,0x284($s1) -/* f1692d0: 00001012 */ mflo $v0 -/* f1692d4: 03027821 */ addu $t7,$t8,$v0 -/* f1692d8: ade01630 */ sw $zero,0x1630($t7) -/* f1692dc: 8e2e0284 */ lw $t6,0x284($s1) -/* f1692e0: 01c2c821 */ addu $t9,$t6,$v0 -/* f1692e4: a7261634 */ sh $a2,0x1634($t9) -/* f1692e8: 8e2b0284 */ lw $t3,0x284($s1) -/* f1692ec: 01625021 */ addu $t2,$t3,$v0 -/* f1692f0: a5471638 */ sh $a3,0x1638($t2) -/* f1692f4: 24630001 */ addiu $v1,$v1,0x1 -.L0f1692f8: -/* f1692f8: 1468fff0 */ bne $v1,$t0,.L0f1692bc -/* f1692fc: 24840004 */ addiu $a0,$a0,0x4 -/* f169300: 3c10800a */ lui $s0,%hi(g_Vars+0x34c) -/* f169304: 8e10a30c */ lw $s0,%lo(g_Vars+0x34c)($s0) -/* f169308: 3c02800a */ lui $v0,%hi(g_Vars+0x348) -/* f16930c: 8c42a308 */ lw $v0,%lo(g_Vars+0x348)($v0) -/* f169310: 2610fffc */ addiu $s0,$s0,-4 -/* f169314: 0202082b */ sltu $at,$s0,$v0 -/* f169318: 5420000f */ bnezl $at,.L0f169358 -/* f16931c: 8fbf0034 */ lw $ra,0x34($sp) -/* f169320: 8e040000 */ lw $a0,0x0($s0) -.L0f169324: -/* f169324: 00002825 */ or $a1,$zero,$zero -/* f169328: 02403025 */ or $a2,$s2,$zero -/* f16932c: 10800005 */ beqz $a0,.L0f169344 -/* f169330: 02803825 */ or $a3,$s4,$zero -/* f169334: 0fc5a2d3 */ jal propFindThreats -/* f169338: afb30010 */ sw $s3,0x10($sp) -/* f16933c: 3c02800a */ lui $v0,%hi(g_Vars+0x348) -/* f169340: 8c42a308 */ lw $v0,%lo(g_Vars+0x348)($v0) -.L0f169344: -/* f169344: 2610fffc */ addiu $s0,$s0,-4 -/* f169348: 0202082b */ sltu $at,$s0,$v0 -/* f16934c: 5020fff5 */ beqzl $at,.L0f169324 -/* f169350: 8e040000 */ lw $a0,0x0($s0) -/* f169354: 8fbf0034 */ lw $ra,0x34($sp) -.L0f169358: -/* f169358: 8fb00020 */ lw $s0,0x20($sp) -/* f16935c: 8fb10024 */ lw $s1,0x24($sp) -/* f169360: 8fb20028 */ lw $s2,0x28($sp) -/* f169364: 8fb3002c */ lw $s3,0x2c($sp) -/* f169368: 8fb40030 */ lw $s4,0x30($sp) -/* f16936c: 03e00008 */ jr $ra -/* f169370: 27bd0078 */ addiu $sp,$sp,0x78 -); +void func0f1691c0(void) +{ + s32 i; + struct prop *prop; + f32 distances[] = {0, 0, 0, 0}; + s32 activeslots[] = {false, false, false, false}; + struct prop **propptr = g_Vars.unk00034c - 1; + struct coord campos; + + campos.x = g_Vars.currentplayer->cam_pos.x; + campos.y = g_Vars.currentplayer->cam_pos.y; + campos.z = g_Vars.currentplayer->cam_pos.z; + + while (propptr >= g_Vars.unk000348) { + prop = *propptr; + + if (prop) { + func0f168f24(prop, false, &campos, activeslots, distances); + } + + propptr--; + } + + for (i = 0; i != 4; i++) { + if (!activeslots[i]) { + g_Vars.currentplayer->cmpfollowprops[i].prop = NULL; + g_Vars.currentplayer->cmpfollowprops[i].unk04 = -1; + g_Vars.currentplayer->cmpfollowprops[i].unk08 = -2; + } + } + + propptr = g_Vars.unk00034c - 1; + + while (propptr >= g_Vars.unk000348) { + prop = *propptr; + + if (prop) { + propFindThreats(prop, false, &campos, activeslots, distances); + } + + propptr--; + } +} + +u32 var80084088 = 0x00000000; +u32 var8008408c = 0x00000000; +u32 var80084090 = 0x00000000; +u32 var80084094 = 0x1e000000; +u32 var80084098 = 0x00000000; +u32 var8008409c = 0x00000064; +u32 var800840a0 = 0x00000000; +u32 g_CutsceneTime240_60 = 0x00000000; +u32 var800840a8 = 0x00000000; +u32 var800840ac = 0x00000000; +u32 var800840b0 = 0x00000000; +u32 var800840b4 = 0x00000000; +u32 var800840b8 = 0x00000000; +u32 var800840bc = 0x00000000; GLOBAL_ASM( glabel func0f169374 diff --git a/src/game/game_177e00.c b/src/game/game_177e00.c index 659cb6afb..28f53ba98 100644 --- a/src/game/game_177e00.c +++ b/src/game/game_177e00.c @@ -6,6 +6,7 @@ #include "game/data/data_0160b0.h" #include "game/data/data_01a3a0.h" #include "game/data/data_020df0.h" +#include "game/data/data_02a0e0.h" #include "game/data/data_02da90.h" #include "game/game_005fd0.h" #include "game/title.h" diff --git a/src/game/game_179060.c b/src/game/game_179060.c index 8afd8ae07..063bfb911 100644 --- a/src/game/game_179060.c +++ b/src/game/game_179060.c @@ -7,6 +7,7 @@ #include "game/data/data_0160b0.h" #include "game/data/data_01a3a0.h" #include "game/data/data_020df0.h" +#include "game/data/data_02a0e0.h" #include "game/data/data_02da90.h" #include "game/game_0b3350.h" #include "game/game_0d4690.h" diff --git a/src/game/game_17f930.c b/src/game/game_17f930.c index c8520af39..f47b48d18 100644 --- a/src/game/game_17f930.c +++ b/src/game/game_17f930.c @@ -7,6 +7,7 @@ #include "game/data/data_0160b0.h" #include "game/data/data_01a3a0.h" #include "game/data/data_020df0.h" +#include "game/data/data_02a0e0.h" #include "game/data/data_02da90.h" #include "game/dlights.h" #include "game/game_005fd0.h" diff --git a/src/game/lang.c b/src/game/lang.c index f380ccc50..0a6f81f09 100644 --- a/src/game/lang.c +++ b/src/game/lang.c @@ -6,6 +6,7 @@ #include "game/data/data_0160b0.h" #include "game/data/data_01a3a0.h" #include "game/data/data_020df0.h" +#include "game/data/data_02a0e0.h" #include "game/data/data_02da90.h" #include "game/game_166e40.h" #include "game/lang.h" diff --git a/src/game/mplayer.c b/src/game/mplayer.c index dbedd5c00..bec080777 100644 --- a/src/game/mplayer.c +++ b/src/game/mplayer.c @@ -7,6 +7,7 @@ #include "game/data/data_0160b0.h" #include "game/data/data_01a3a0.h" #include "game/data/data_020df0.h" +#include "game/data/data_02a0e0.h" #include "game/data/data_02da90.h" #include "game/title.h" #include "game/game_01b0a0.h" diff --git a/src/game/propobj.c b/src/game/propobj.c index 473d9e38f..cc0737834 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -11,6 +11,7 @@ #include "game/data/data_0160b0.h" #include "game/data/data_01a3a0.h" #include "game/data/data_020df0.h" +#include "game/data/data_02a0e0.h" #include "game/data/data_02da90.h" #include "game/data/data_02e820.h" #include "game/debug.h" diff --git a/src/game/utils.c b/src/game/utils.c index fde3d48ab..3fd116d8c 100644 --- a/src/game/utils.c +++ b/src/game/utils.c @@ -6,6 +6,7 @@ #include "game/data/data_0160b0.h" #include "game/data/data_01a3a0.h" #include "game/data/data_020df0.h" +#include "game/data/data_02a0e0.h" #include "game/data/data_02da90.h" #include "game/utils.h" #include "gvars/gvars.h" diff --git a/src/include/game/data/data_020df0.h b/src/include/game/data/data_020df0.h index 58f2e783d..0b8b59821 100644 --- a/src/include/game/data/data_020df0.h +++ b/src/include/game/data/data_020df0.h @@ -292,87 +292,5 @@ extern u32 var80084078; extern u32 var80084088; extern u32 var80084098; extern u32 g_CutsceneTime240_60; -extern u32 var800840c4; -extern u32 var800840d4; -extern u32 var800840e0; -extern u32 var800840f0; -extern u32 var800840f4; -extern u32 var800840fc; -extern u32 g_LanguageId; -extern u16 g_LangFiles[]; -extern u32 var800841b8; -extern u32 var80084220; -extern struct something *somethings[]; -extern u32 var800844d0; -extern u32 var800844f0; -extern s32 var800845d8; -extern u32 var800845dc; -extern u32 var800845f4; -extern struct menu_dialog g_MpPausePlayerRankingMenuDialog; -extern struct menu_dialog g_MpPauseTeamRankingMenuDialog; -extern u16 g_OrdinalSuffixes[12]; -extern struct menu_dialog g_MpEndscreenIndividualGameOverMenuDialog; -extern struct menu_dialog g_MpEndscreenTeamGameOverMenuDialog; -extern struct menu_dialog g_MpEndscreenChallengeCompletedMenuDialog; -extern struct menu_dialog g_MpEndscreenChallengeCheatedMenuDialog; -extern struct menu_dialog g_MpEndscreenChallengeFailedMenuDialog; -extern struct menu_dialog g_MpEndscreenSavePlayerMenuDialog; -extern struct menu_dialog menudialog_2aba0; -extern struct mparena g_MpArenas[17]; -extern u32 var80084bf8; -extern u32 var80084c00[]; -extern u16 g_MpControlStyleLabels[4]; -extern u16 g_MpAimModeLabels[2]; -extern struct menu_dialog g_MpSaveChrMenuDialog; -extern struct menu_dialog menudialog_mpsavesetupname; -extern struct menu_dialog menudialog_mpsavesetup; -extern u32 var800851bc; -extern u32 var800851cc; -extern u32 var80085448; -extern struct menu_item menuitems_mpcharacter[]; -extern u32 var800857d0; -extern struct menu_dialog g_MpAddSimulantMenuDialog; -extern struct menu_dialog g_MpChangeSimulantMenuDialog; -extern struct menu_dialog g_MpEditSimulantMenuDialog; -extern u32 var80085a74; -extern u8 g_TeamIdsForPairing[4]; -extern struct menu_dialog g_MpChangeTeamNameMenuDialog; -extern struct menu_dialog menudialog_2bfa8; -extern struct menu_dialog menudialog_mpchallengedetails2; -extern struct menu_dialog menudialog_2c0cc; -extern u16 mplockoptions[4]; -extern struct menu_dialog menudialog_mpgamesetup3; -extern struct menu_dialog g_MpQuickGoMenuDialog; -extern struct menu_dialog g_MpQuickTeamGameSetupMenuDialog; -extern struct menu_dialog g_CombatSimulatorMenuDialog; -extern u16 mpslowmotionoptions[]; -extern struct menu_dialog menudialog_mpcombatoptions; -extern struct menu_dialog menudialog_mpbriefcaseoptions; -extern struct defaultobj *var800869ec; -extern u32 var800869f0; -extern struct menu_dialog menudialog_mpcaptureoptions; -extern u32 var80086b60; -extern struct menu_dialog menudialog_mphilloptions; -extern struct menu_dialog menudialog_mphackeroptions; -extern u32 var80086e14; -extern struct menu_dialog menudialog_mppopacapoptions; -extern struct mpscenario g_MpScenarios[]; -extern struct mpscenariooverview g_MpScenarioOverviews[]; -extern u32 var8008716c; -extern u32 var800871fc; -extern u32 var80087264; -extern struct mpweapon mpweaponstable[]; -extern struct mpweaponset g_MpWeaponSets[12]; -extern u32 var800874c8; -extern u32 var800874cc; -extern u32 var800874f0; -extern struct mphead g_MpBeauHeads[NUM_MPBEAUHEADS]; -extern struct mphead g_MpHeads[75]; -extern u32 table_0x2d678[]; -extern struct mpsimulant g_MpGeneralSimulants[]; -extern struct mpsimulant mpspecialsimulants[]; -extern struct mpbody g_MpBodies[NUM_MPBODIES]; -extern u32 g_MpMaleHeads[44]; -extern u32 g_MpFemaleHeads[7]; #endif diff --git a/src/include/game/data/data_02a0e0.h b/src/include/game/data/data_02a0e0.h new file mode 100644 index 000000000..c99eb05fb --- /dev/null +++ b/src/include/game/data/data_02a0e0.h @@ -0,0 +1,88 @@ +#ifndef IN_GAME_DATA_02A0E0_H +#define IN_GAME_DATA_02A0E0_H +#include + +extern u32 var800840c4; +extern u32 var800840d4; +extern u32 var800840e0; +extern u32 var800840f0; +extern u32 var800840f4; +extern u32 var800840fc; +extern u32 g_LanguageId; +extern u16 g_LangFiles[]; +extern u32 var800841b8; +extern u32 var80084220; +extern struct something *somethings[]; +extern u32 var800844d0; +extern u32 var800844f0; +extern s32 var800845d8; +extern u32 var800845dc; +extern u32 var800845f4; +extern struct menu_dialog g_MpPausePlayerRankingMenuDialog; +extern struct menu_dialog g_MpPauseTeamRankingMenuDialog; +extern u16 g_OrdinalSuffixes[12]; +extern struct menu_dialog g_MpEndscreenIndividualGameOverMenuDialog; +extern struct menu_dialog g_MpEndscreenTeamGameOverMenuDialog; +extern struct menu_dialog g_MpEndscreenChallengeCompletedMenuDialog; +extern struct menu_dialog g_MpEndscreenChallengeCheatedMenuDialog; +extern struct menu_dialog g_MpEndscreenChallengeFailedMenuDialog; +extern struct menu_dialog g_MpEndscreenSavePlayerMenuDialog; +extern struct menu_dialog menudialog_2aba0; +extern struct mparena g_MpArenas[17]; +extern u32 var80084bf8; +extern u32 var80084c00[]; +extern u16 g_MpControlStyleLabels[4]; +extern u16 g_MpAimModeLabels[2]; +extern struct menu_dialog g_MpSaveChrMenuDialog; +extern struct menu_dialog menudialog_mpsavesetupname; +extern struct menu_dialog menudialog_mpsavesetup; +extern u32 var800851bc; +extern u32 var800851cc; +extern u32 var80085448; +extern struct menu_item menuitems_mpcharacter[]; +extern u32 var800857d0; +extern struct menu_dialog g_MpAddSimulantMenuDialog; +extern struct menu_dialog g_MpChangeSimulantMenuDialog; +extern struct menu_dialog g_MpEditSimulantMenuDialog; +extern u32 var80085a74; +extern u8 g_TeamIdsForPairing[4]; +extern struct menu_dialog g_MpChangeTeamNameMenuDialog; +extern struct menu_dialog menudialog_2bfa8; +extern struct menu_dialog menudialog_mpchallengedetails2; +extern struct menu_dialog menudialog_2c0cc; +extern u16 mplockoptions[4]; +extern struct menu_dialog menudialog_mpgamesetup3; +extern struct menu_dialog g_MpQuickGoMenuDialog; +extern struct menu_dialog g_MpQuickTeamGameSetupMenuDialog; +extern struct menu_dialog g_CombatSimulatorMenuDialog; +extern u16 mpslowmotionoptions[]; +extern struct menu_dialog menudialog_mpcombatoptions; +extern struct menu_dialog menudialog_mpbriefcaseoptions; +extern struct defaultobj *var800869ec; +extern u32 var800869f0; +extern struct menu_dialog menudialog_mpcaptureoptions; +extern u32 var80086b60; +extern struct menu_dialog menudialog_mphilloptions; +extern struct menu_dialog menudialog_mphackeroptions; +extern u32 var80086e14; +extern struct menu_dialog menudialog_mppopacapoptions; +extern struct mpscenario g_MpScenarios[]; +extern struct mpscenariooverview g_MpScenarioOverviews[]; +extern u32 var8008716c; +extern u32 var800871fc; +extern u32 var80087264; +extern struct mpweapon mpweaponstable[]; +extern struct mpweaponset g_MpWeaponSets[12]; +extern u32 var800874c8; +extern u32 var800874cc; +extern u32 var800874f0; +extern struct mphead g_MpBeauHeads[NUM_MPBEAUHEADS]; +extern struct mphead g_MpHeads[75]; +extern u32 table_0x2d678[]; +extern struct mpsimulant g_MpGeneralSimulants[]; +extern struct mpsimulant mpspecialsimulants[]; +extern struct mpbody g_MpBodies[NUM_MPBODIES]; +extern u32 g_MpMaleHeads[44]; +extern u32 g_MpFemaleHeads[7]; + +#endif diff --git a/src/include/game/game_167ae0.h b/src/include/game/game_167ae0.h index 1ec9fe949..8cd639f7c 100644 --- a/src/include/game/game_167ae0.h +++ b/src/include/game/game_167ae0.h @@ -13,9 +13,9 @@ void func0f167e7c(s32 stagenum); Gfx *fadeRender(Gfx *gdl); void fadeCancel(void); bool threatCheckCmpFollow(struct threat *threat, s32 index); -void propFindThreats(struct prop *prop, bool inchild, struct coord *playerpos, bool *activeslots, f32 *param_5); +void propFindThreats(struct prop *prop, bool inchild, struct coord *playerpos, s32 *activeslots, f32 *param_5); void func0f168f24(struct prop *prop, bool inchild, struct coord *playerpos, s32 *activeslots, f32 *distances); -u32 func0f1691c0(void); +void func0f1691c0(void); u32 func0f169374(void); void func0f16b0c8(void); s32 sub54321(s32 value); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index b469487e7..2c7c595cc 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -91,8 +91,8 @@ struct g_vars { /*00033c*/ struct prop *unk00033c; /*000340*/ struct prop *unk000340; /*000344*/ struct prop *freeprops; - /*000348*/ struct prop *unk000348; - /*00034c*/ u32 unk00034c; + /*000348*/ struct prop **unk000348; + /*00034c*/ struct prop **unk00034c; /*000350*/ u32 unk000350; /*000354*/ struct prop *unk000354; /*000358*/ u8 numpropstateindexes;