Remove training and single player menus

This commit is contained in:
Ryan Dwyer 2022-11-04 21:19:37 +10:00
parent 2d0094a8b8
commit ff6fd81f76
35 changed files with 22 additions and 11478 deletions

View File

@ -134,7 +134,6 @@
build/ROMID/game/cheats.o (section); \
build/ROMID/game/filemgr.o (section); \
build/ROMID/game/fmb.o (section); \
build/ROMID/game/endscreen.o (section); \
build/ROMID/game/gamefile.o (section); \
build/ROMID/game/bossfile.o (section); \
build/ROMID/game/filelist.o (section); \
@ -218,7 +217,5 @@
build/ROMID/game/vmstats.o (section); \
build/ROMID/game/botroom.o (section); \
build/ROMID/game/challenge.o (section); \
build/ROMID/game/training.o (section); \
build/ROMID/game/trainingmenus.o (section); \
build/ROMID/game/modeldef.o (section); \
build/ROMID/game/game_1a78b0.o (section);

View File

@ -13,7 +13,6 @@
#include "game/bot.h"
#include "game/botcmd.h"
#include "game/gfxmemory.h"
#include "game/training.h"
#include "game/lang.h"
#include "game/mplayer/mplayer.h"
#include "game/options.h"
@ -315,14 +314,6 @@ void amApply(s32 slot)
if (pass) {
pass = true;
if (g_FrIsValidWeapon) {
s32 weaponnum = frGetWeaponBySlot(frGetSlot());
if (g_Vars.currentplayer->hands[HAND_RIGHT].gset.weaponnum == weaponnum) {
pass = false;
}
}
if (pass) {
invSetCurrentIndex(invindex);

View File

@ -32,7 +32,6 @@
#include "game/lv.h"
#include "game/texdecompress.h"
#include "game/game_176080.h"
#include "game/training.h"
#include "game/lang.h"
#include "game/mplayer/mplayer.h"
#include "game/pak.h"
@ -1027,10 +1026,6 @@ void bgun0f098df8(s32 weaponfunc, struct handweaponinfo *info, struct hand *hand
s32 reloadindex = bgunGetUnequippedReloadIndex(info->weaponnum);
if (g_FrIsValidWeapon) {
reloadindex = -1;
}
if (checkunequipped && reloadindex >= 0) {
#if VERSION >= VERSION_PAL_BETA
amount -= hand->gunroundsspent[reloadindex] / TICKS(256);
@ -2679,13 +2674,6 @@ bool bgunIsReadyToSwitch(s32 handnum)
{
struct player *player = g_Vars.currentplayer;
// Dont switch if... something firing range related
if (g_FrIsValidWeapon
&& frGetWeaponBySlot(frGetSlot()) == player->hands[HAND_RIGHT].gset.weaponnum
&& g_Vars.currentplayer->gunctrl.unk1583_04 == false) {
return false;
}
// Don't switch right hand if left hand is about to auto switch
if (handnum == HAND_RIGHT
&& player->hands[HAND_LEFT].inuse
@ -4539,12 +4527,6 @@ void bgunCreateThrownProjectile(s32 handnum, struct gset *gset)
}
weapon->gunfunc = gset->weaponfunc;
} else if (gset->weaponnum == WEAPON_ECMMINE && g_Vars.stagenum == STAGE_CITRAINING) {
data = dtGetData();
if (data->intraining) {
data->obj = obj;
}
}
}

View File

@ -8,7 +8,6 @@
#include "game/bossfile.h"
#include "game/bg.h"
#include "game/challenge.h"
#include "game/training.h"
#include "game/gamefile.h"
#include "game/mplayer/mplayer.h"
#include "game/pak.h"

View File

@ -6,7 +6,6 @@
#include "game/mplayer/setup.h"
#include "game/bot.h"
#include "game/challenge.h"
#include "game/training.h"
#include "game/lang.h"
#include "game/mplayer/mplayer.h"
#include "game/mplayer/scenarios.h"

View File

@ -6,7 +6,6 @@
#include "game/mplayer/setup.h"
#include "game/bot.h"
#include "game/challenge.h"
#include "game/training.h"
#include "game/lang.h"
#include "game/mplayer/mplayer.h"
#include "game/mplayer/scenarios.h"
@ -211,9 +210,7 @@ void challengeDetermineUnlockedFeatures(void)
for (j = 0; j < func0f188bcc(); j++) {
struct mpweapon *weapon = &g_MpWeapons[j];
if (weapon->unlockfeature > 0 && func0f19cbcc(weapon->weaponnum)) {
g_MpFeaturesUnlocked[weapon->unlockfeature] |= 1;
}
g_MpFeaturesUnlocked[weapon->unlockfeature] |= 1;
}
func0f1895e8();

View File

@ -6,7 +6,6 @@
#include "game/cheats.h"
#include "game/inv.h"
#include "game/playermgr.h"
#include "game/training.h"
#include "game/gamefile.h"
#include "game/lang.h"
#include "game/pak.h"
@ -107,9 +106,6 @@ u32 cheatIsUnlocked(s32 cheat_id)
u32 unlocked = 0;
if (cheat->flags & CHEATFLAG_FIRINGRANGE) {
if (frIsClassicWeaponUnlocked(cheat->time)) {
unlocked++;
}
} else if (cheat->flags & CHEATFLAG_COMPLETION) {
if (g_GameFile.besttimes[cheat->stage_index][0]) {
unlocked++;

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,6 @@
#include "game/filelist.h"
#include "game/bg.h"
#include "game/challenge.h"
#include "game/training.h"
#include "game/gamefile.h"
#include "game/mplayer/mplayer.h"
#include "game/pak.h"

View File

@ -29,11 +29,7 @@ s32 fmbHandleDropOut(s32 operation, struct menuitem *item, union handlerdata *da
s32 fmdHandleAbortGame(s32 operation, struct menuitem *item, union handlerdata *data)
{
if (operation == MENUOP_SET) {
if (g_Vars.stagenum == STAGE_4MBMENU) {
func0f0f820c(&g_MainMenu4MbMenuDialog, MENUROOT_4MBMAINMENU);
} else {
func0f0f820c(&g_SoloMissionPauseMenuDialog, MENUROOT_MAINMENU);
}
func0f0f820c(&g_MainMenu4MbMenuDialog, MENUROOT_4MBMAINMENU);
}
return 0;

View File

@ -3,7 +3,6 @@
#include "game/objectives.h"
#include "game/game_096360.h"
#include "game/tex.h"
#include "game/training.h"
#include "game/propobj.h"
#include "bss.h"
#include "lib/rng.h"

View File

@ -7,7 +7,6 @@
#include "game/savebuffer.h"
#include "game/bg.h"
#include "game/challenge.h"
#include "game/training.h"
#include "game/gamefile.h"
#include "game/mplayer/mplayer.h"
#include "game/pak.h"
@ -345,20 +344,6 @@ s32 gamefileLoad(s32 device)
g_GameFile.weaponsfound[i] = savebufferReadBits(&buffer, 8);
}
#if VERSION >= VERSION_NTSC_1_0
if (pakHasBitflag(GAMEFILEFLAG_FOUNDTIMEDMINE, g_GameFile.flags)) {
frSetWeaponFound(WEAPON_TIMEDMINE);
}
if (pakHasBitflag(GAMEFILEFLAG_FOUNDPROXYMINE, g_GameFile.flags)) {
frSetWeaponFound(WEAPON_PROXIMITYMINE);
}
if (pakHasBitflag(GAMEFILEFLAG_FOUNDREMOTEMINE, g_GameFile.flags)) {
frSetWeaponFound(WEAPON_REMOTEMINE);
}
#endif
func0f0d54c4(&buffer);
gamefileApplyOptions(&g_GameFile);
@ -429,12 +414,6 @@ s32 gamefileSave(s32 device, s32 fileid, u16 deviceserial)
pakSetBitflag(GAMEFILEFLAG_CUTSCENESUBTITLES, g_GameFile.flags, optionsGetCutsceneSubtitles());
pakSetBitflag(GAMEFILEFLAG_LANGFILTERON, g_GameFile.flags, g_Vars.langfilteron);
#if VERSION >= VERSION_NTSC_1_0
pakSetBitflag(GAMEFILEFLAG_FOUNDTIMEDMINE, g_GameFile.flags, frIsWeaponFound(WEAPON_TIMEDMINE));
pakSetBitflag(GAMEFILEFLAG_FOUNDPROXYMINE, g_GameFile.flags, frIsWeaponFound(WEAPON_PROXIMITYMINE));
pakSetBitflag(GAMEFILEFLAG_FOUNDREMOTEMINE, g_GameFile.flags, frIsWeaponFound(WEAPON_REMOTEMINE));
#endif
#if VERSION >= VERSION_NTSC_1_0
switch (optionsGetScreenSize())
#else

View File

@ -4,7 +4,6 @@
#include "game/bondgun.h"
#include "game/game_0b0fd0.h"
#include "game/inv.h"
#include "game/training.h"
#include "game/lang.h"
#include "bss.h"
#include "lib/main.h"
@ -359,8 +358,6 @@ bool invHasDoubleWeaponIncAllGuns(s32 weapon1, s32 weapon2)
bool invGiveSingleWeapon(s32 weaponnum)
{
frSetWeaponFound(weaponnum);
if (invHasSingleWeaponExcAllGuns(weaponnum) == 0) {
struct invitem *item;

View File

@ -75,7 +75,6 @@
#include "game/texdecompress.h"
#include "game/tiles.h"
#include "game/title.h"
#include "game/training.h"
#include "game/utils.h"
#include "game/vtxstore.h"
#include "game/wallhit.h"
@ -399,7 +398,6 @@ void lvReset(s32 stagenum)
lasersightsReset();
stub0f013540();
shardsReset();
frReset();
if (g_Vars.stagenum == STAGE_TITLE) {
// empty
@ -775,10 +773,6 @@ void lvFindThreatsForProp(struct prop *prop, bool inchild, struct coord *playerp
}
}
if (obj->modelnum == MODEL_TARGET && frIsTargetOneHitExplodable(prop)) {
pass = true;
}
if (pass) {
for (i = 0; i != 4; i++) {
if (g_Vars.currentplayer->trackedprops[i].prop == prop) {
@ -1379,11 +1373,7 @@ Gfx *lvRender(Gfx *gdl)
} else if (weaponHasFlag(bgunGetWeaponNum(HAND_RIGHT), WEAPONFLAG_AIMTRACK)) {
s32 j;
if (frIsInTraining()
&& g_Vars.currentplayer->lookingatprop.prop
&& bmoveIsInSightAimMode()) {
func0f1a0924(g_Vars.currentplayer->lookingatprop.prop);
} else if (lvUpdateTrackedProp(&g_Vars.currentplayer->lookingatprop, -1) == 0) {
if (lvUpdateTrackedProp(&g_Vars.currentplayer->lookingatprop, -1) == 0) {
g_Vars.currentplayer->lookingatprop.prop = NULL;
}
@ -1701,10 +1691,6 @@ Gfx *lvRender(Gfx *gdl)
gdl = scenarioRenderHud(gdl);
#endif
if (g_FrIsValidWeapon) {
gdl = frRenderHud(gdl);
}
if (debugGetTilesDebugMode() != 0
|| debugGetPadsDebugMode() != 0
|| debug0f11eea8()
@ -1784,42 +1770,6 @@ Gfx *lvRender(Gfx *gdl)
}
}
// Advance the cutscenes when autoplaying
if (!g_Vars.autocutplaying && g_Vars.autocutgroupcur >= 0 && g_Vars.autocutgroupleft > 0) {
hudmsgRemoveAll();
g_Vars.autocutnum = g_Cutscenes[g_Vars.autocutgroupcur].scene;
#if VERSION < VERSION_NTSC_1_0
if (mainGetStageNum() != g_Cutscenes[g_Vars.autocutgroupcur].stage)
#endif
{
g_MissionConfig.iscoop = false;
g_Vars.mplayerisrunning = false;
g_Vars.normmplayerisrunning = false;
g_Vars.bondplayernum = 0;
g_Vars.coopplayernum = -1;
g_Vars.antiplayernum = -1;
g_MissionConfig.isanti = false;
setNumPlayers(1);
titleSetNextMode(TITLEMODE_SKIP);
g_MissionConfig.difficulty = DIFF_A;
lvSetDifficulty(DIFF_A);
g_MissionConfig.stageindex = g_Cutscenes[g_Vars.autocutgroupcur].mission;
g_MissionConfig.stagenum = g_Cutscenes[g_Vars.autocutgroupcur].stage;
titleSetNextStage(g_Cutscenes[g_Vars.autocutgroupcur].stage);
mainChangeToStage(g_Cutscenes[g_Vars.autocutgroupcur].stage);
}
g_Vars.autocutgroupleft--;
if (g_Vars.autocutgroupleft > 0) {
g_Vars.autocutgroupcur++;
} else {
g_Vars.autocutgroupcur = -1;
}
}
gDPSetScissor(gdl++, G_SC_NON_INTERLACE, 0, 0, viGetWidth(), viGetHeight());
#if VERSION < VERSION_NTSC_1_0
@ -2405,23 +2355,6 @@ void lvTick(void)
musicTick();
langTick();
propsTickPadEffects();
if (mainGetStageNum() == STAGE_CITRAINING) {
struct trainingdata *trainingdata = dtGetData();
if ((g_Vars.currentplayer->prop->rooms[0] < ROOM_DISH_HOLO1 || g_Vars.currentplayer->prop->rooms[0] > ROOM_DISH_HOLO4)
&& g_Vars.currentplayer->prop->rooms[0] != ROOM_DISH_FIRINGRANGE
&& (trainingdata == NULL || trainingdata->intraining == false)) {
chrUnsetStageFlag(NULL, STAGEFLAG_CI_IN_TRAINING);
}
frTick();
if (g_Vars.lvupdate240 != 0) {
dtTick();
htTick();
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -25,7 +25,6 @@
#include "game/texdecompress.h"
#include "game/mplayer/setup.h"
#include "game/challenge.h"
#include "game/training.h"
#include "game/game_1a78b0.h"
#include "game/gamefile.h"
#include "game/gfxmemory.h"
@ -5750,10 +5749,6 @@ void menuPushRootDialog(struct menudialogdef *dialogdef, s32 root)
void func0f0f85e0(struct menudialogdef *dialogdef, s32 root)
{
if (dialogdef == &g_CiMenuViaPcMenuDialog) {
musicStartMenu();
}
menuPushRootDialog(dialogdef, root);
lvSetPaused(true);
g_Vars.currentplayer->pausemode = PAUSEMODE_PAUSED;

View File

@ -12,7 +12,6 @@
#include "game/game_1531a0.h"
#include "game/lv.h"
#include "game/challenge.h"
#include "game/training.h"
#include "game/lang.h"
#include "game/mplayer/mplayer.h"
#include "game/options.h"
@ -3369,16 +3368,6 @@ char *menuitemScrollableGetText(u32 type)
challengeLoadAndStoreCurrent(g_Menus[g_MpPlayerNum].unk840.unk004, g_Menus[g_MpPlayerNum].unk840.unk008);
}
return challengeGetCurrentDescription();
case DESCRIPTION_CHRBIO: return ciGetChrBioDescription();
case DESCRIPTION_MISCBIO: return ciGetMiscBioDescription();
case DESCRIPTION_DEVICETRAINING: return dtGetDescription();
case DESCRIPTION_FRWEAPON: return frGetWeaponDescription();
case DESCRIPTION_HANGARBIO: return ciGetHangarBioDescription();
case DESCRIPTION_HOLOTRAINING: return htGetDescription();
case DESCRIPTION_HOLOTIP1: return htGetTip1();
case DESCRIPTION_HOLOTIP2: return htGetTip2();
case DESCRIPTION_DEVICETIP1: return dtGetTip1();
case DESCRIPTION_DEVICETIP2: return dtGetTip2();
}
return langGet(g_Briefing.briefingtextnum);

View File

@ -9,14 +9,12 @@
#include "game/menu.h"
#include "game/filelist.h"
#include "game/mainmenu.h"
#include "game/endscreen.h"
#include "game/playermgr.h"
#include "game/lv.h"
#include "game/music.h"
#include "game/mplayer/ingame.h"
#include "game/mplayer/setup.h"
#include "game/challenge.h"
#include "game/training.h"
#include "game/gamefile.h"
#include "game/mplayer/mplayer.h"
#include "bss.h"

View File

@ -10,14 +10,12 @@
#include "game/menu.h"
#include "game/filelist.h"
#include "game/mainmenu.h"
#include "game/endscreen.h"
#include "game/playermgr.h"
#include "game/lv.h"
#include "game/music.h"
#include "game/mplayer/ingame.h"
#include "game/mplayer/setup.h"
#include "game/challenge.h"
#include "game/training.h"
#include "game/gamefile.h"
#include "game/mplayer/mplayer.h"
#include "bss.h"
@ -429,19 +427,7 @@ void menuTick(void)
}
if (playernum >= 0) {
if (g_Vars.coopplayernum >= 0) {
s32 prevplayernum = g_Vars.currentplayernum;
setCurrentPlayerNum(playernum);
endscreenPushCoop();
setCurrentPlayerNum(prevplayernum);
} else if (g_Vars.antiplayernum >= 0) {
s32 prevplayernum = g_Vars.currentplayernum;
setCurrentPlayerNum(playernum);
endscreenPushAnti();
setCurrentPlayerNum(prevplayernum);
} else {
mpPushEndscreenDialog(playernum, i);
}
mpPushEndscreenDialog(playernum, i);
}
}
}
@ -485,13 +471,8 @@ void menuTick(void)
if ((g_MenuData.unk5d5_06 || g_MenuData.unk008 != -1) && sp344 == false) {
if ((g_MenuData.root == MENUROOT_MPSETUP || g_MenuData.root == MENUROOT_4MBMAINMENU)
&& g_MenuData.unk008 == -1) {
if (g_Vars.mpsetupmenu == MPSETUPMENU_GENERAL) {
g_MenuData.unk008 = MENUROOT_MAINMENU;
g_MenuData.unk00c = &g_CiMenuViaPauseMenuDialog;
} else {
g_MenuData.unk008 = MENUROOT_4MBMAINMENU;
g_MenuData.unk00c = &g_MainMenu4MbMenuDialog;
}
g_MenuData.unk008 = MENUROOT_4MBMAINMENU;
g_MenuData.unk00c = &g_MainMenu4MbMenuDialog;
}
if (g_MenuData.unk008 != -1) {
@ -514,34 +495,11 @@ void menuTick(void)
for (i = 0; i < 4; i++) {
if (g_MpSetup.chrslots & (1 << i)) {
if (g_Vars.coopplayernum >= 0) {
if (g_Vars.stagenum == STAGE_DEEPSEA) {
g_MissionConfig.stageindex++;
g_MissionConfig.stagenum = g_StageNames[g_MissionConfig.stageindex].stagenum;
titleSetNextStage(g_MissionConfig.stagenum);
lvSetDifficulty(g_MissionConfig.difficulty);
titleSetNextMode(TITLEMODE_SKIP);
mainChangeToStage(g_MissionConfig.stagenum);
} else {
s32 prevplayernum = g_Vars.currentplayernum;
setCurrentPlayerNum(playernum);
endscreenPushCoop();
setCurrentPlayerNum(prevplayernum);
sp344 = true;
}
} else if (g_Vars.antiplayernum >= 0) {
s32 prevplayernum = g_Vars.currentplayernum;
setCurrentPlayerNum(playernum);
endscreenPushAnti();
setCurrentPlayerNum(prevplayernum);
sp344 = true;
} else {
mpPushEndscreenDialog(playernum, i);
sp344 = true;
mpPushEndscreenDialog(playernum, i);
sp344 = true;
if (g_PlayerConfigsArray[i].fileguid.fileid && g_PlayerConfigsArray[i].fileguid.deviceserial) {
func0f0fd548(i);
}
if (g_PlayerConfigsArray[i].fileguid.fileid && g_PlayerConfigsArray[i].fileguid.deviceserial) {
func0f0fd548(i);
}
playernum++;
@ -564,20 +522,6 @@ void menuTick(void)
sndStart(var80095200, SFX_EXPLOSION_8098, 0, -1, -1, -1, -1, -1);
}
if (g_MenuData.root == MENUROOT_MAINMENU || g_MenuData.root == MENUROOT_TRAINING) {
struct trainingdata *dtdata = dtGetData();
if ((g_Vars.stagenum == STAGE_CITRAINING || g_Vars.stagenum == STAGE_4MBMENU)
&& ((g_Vars.currentplayer->prop->rooms[0] >= 0x16 && g_Vars.currentplayer->prop->rooms[0] <= 0x19)
|| g_Vars.currentplayer->prop->rooms[0] == 0x0a
|| g_Vars.currentplayer->prop->rooms[0] == 0x1e
|| (dtdata && dtdata->intraining))) {
startmusic = false;
} else {
startmusic = true;
}
}
if (startmusic) {
musicStartMenu();
}
@ -611,11 +555,7 @@ void menuTick(void)
g_PlayerConfigsArray[1] = tmp;
}
if (g_Vars.coopplayernum >= 0
&& g_MissionConfig.stageindex <= SOLOSTAGEINDEX_SKEDARRUINS
&& ((!g_CheatsActiveBank0 && !g_CheatsActiveBank1) || isStageDifficultyUnlocked(g_MissionConfig.stageindex + 1, g_MissionConfig.difficulty))) {
endscreenPushSolo();
} else if (g_Vars.restartlevel) {
if (g_Vars.restartlevel) {
mainChangeToStage(mainGetStageNum());
} else {
mpSetPaused(MPPAUSEMODE_UNPAUSED);

View File

@ -483,24 +483,6 @@ struct menudialogdef g_MpPauseInventoryMenuDialog = {
&g_MpPauseControlMenuDialog,
};
struct menudialogdef g_2PMissionInventoryHMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
L_MPMENU_284, // "Inventory"
g_Mp2PMissionInventoryMenuItems,
NULL,
0,
&g_2PMissionOptionsHMenuDialog,
};
struct menudialogdef g_2PMissionInventoryVMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
L_MPMENU_284, // "Inventory"
g_Mp2PMissionInventoryMenuItems,
NULL,
0,
&g_2PMissionOptionsVMenuDialog,
};
struct menuitem g_MpInGamePlayerStatsMenuItems[] = {
{
MENUITEMTYPE_PLAYERSTATS,
@ -768,18 +750,10 @@ void mpPushPauseDialog(void)
if (g_Menus[g_MpPlayerNum].openinhibit == 0) {
g_Menus[g_MpPlayerNum].playernum = g_Vars.currentplayernum;
if (g_Vars.normmplayerisrunning) {
if (g_MpSetup.options & MPOPTION_TEAMSENABLED) {
menuPushRootDialog(&g_MpPauseTeamRankingsMenuDialog, MENUROOT_MPPAUSE);
} else {
menuPushRootDialog(&g_MpPausePlayerRankingMenuDialog, MENUROOT_MPPAUSE);
}
if (g_MpSetup.options & MPOPTION_TEAMSENABLED) {
menuPushRootDialog(&g_MpPauseTeamRankingsMenuDialog, MENUROOT_MPPAUSE);
} else {
if (optionsGetScreenSplit() == SCREENSPLIT_VERTICAL) {
menuPushRootDialog(&g_2PMissionPauseVMenuDialog, MENUROOT_MPPAUSE);
} else {
menuPushRootDialog(&g_2PMissionPauseHMenuDialog, MENUROOT_MPPAUSE);
}
menuPushRootDialog(&g_MpPausePlayerRankingMenuDialog, MENUROOT_MPPAUSE);
}
}

View File

@ -4739,15 +4739,7 @@ char *mpMenuTextSavePlayerOrCopy(struct menuitem *item)
s32 menuhandler0017ef30(s32 operation, struct menuitem *item, union handlerdata *data)
{
if (operation == MENUOP_SET) {
if (g_Vars.stagenum == STAGE_CITRAINING) {
if (IS4MB()) {
func0f0f820c(&g_CiMenuViaPauseMenuDialog, 2);
} else {
func0f0f820c(&g_CiMenuViaPcMenuDialog, 2);
}
} else {
func0f0f820c(&g_SoloMissionPauseMenuDialog, 2);
}
func0f0f820c(&g_MainMenu4MbMenuDialog, MENUROOT_4MBMAINMENU);
}
return 0;

View File

@ -11,7 +11,6 @@
#include "game/inv.h"
#include "game/playermgr.h"
#include "game/lv.h"
#include "game/training.h"
#include "game/lang.h"
#include "game/propobj.h"
#include "bss.h"
@ -518,11 +517,6 @@ void objectiveCheckHolograph(f32 maxdist)
&& sp70[1] > camGetScreenTop()
&& sp70[1] < camGetScreenTop() + camGetScreenHeight()) {
criteria->status = OBJECTIVE_COMPLETE;
if (g_Vars.stagenum == STAGE_CITRAINING) {
struct trainingdata *data = dtGetData();
data->holographedpc = true;
}
}
}
}

View File

@ -45,7 +45,6 @@
#include "game/mplayer/ingame.h"
#include "game/mplayer/scenarios.h"
#include "game/radar.h"
#include "game/training.h"
#include "game/mplayer/mplayer.h"
#include "game/pad.h"
#include "game/pak.h"
@ -2159,10 +2158,6 @@ void playerTickPauseMenu(void)
case PAUSEMODE_PAUSING:
// Pause menu is opening
switch (g_GlobalMenuRoot) {
case MENUROOT_TRAINING:
case MENUROOT_MAINMENU:
opened = soloChoosePauseDialog();
break;
case MENUROOT_FILEMGR:
opened = filemgrConsiderPushingFileSelectDialog();
break;
@ -2173,22 +2168,9 @@ void playerTickPauseMenu(void)
}
if (opened) {
struct trainingdata *data = dtGetData();
lvSetPaused(true);
g_Vars.currentplayer->pausemode = PAUSEMODE_PAUSED;
if ((g_GlobalMenuRoot == MENUROOT_MAINMENU || g_GlobalMenuRoot == MENUROOT_TRAINING)
&& g_Vars.stagenum == STAGE_CITRAINING) {
s32 room = g_Vars.currentplayer->prop->rooms[0];
if ((room >= ROOM_DISH_HOLO1 && room <= ROOM_DISH_HOLO4)
|| room == ROOM_DISH_FIRINGRANGE
|| room == ROOM_DISH_DEVICELAB
|| (data && data->intraining)) {
return;
}
}
musicStartMenu();
}
break;

View File

@ -40,7 +40,6 @@
#include "game/mplayer/ingame.h"
#include "game/mplayer/scenarios.h"
#include "game/radar.h"
#include "game/training.h"
#include "game/mplayer/mplayer.h"
#include "game/pad.h"
#include "game/pak.h"

View File

@ -21,7 +21,6 @@
#include "game/sparks.h"
#include "game/bg.h"
#include "game/bot.h"
#include "game/training.h"
#include "game/pad.h"
#include "game/propobj.h"
#include "game/splat.h"
@ -1284,7 +1283,6 @@ void handTickAttack(s32 handnum)
g_Vars.currentplayer->hands[handnum].activatesecondary = false;
gsetPopulateFromCurrentPlayer(handnum, &gset);
frIncrementNumShots();
switch (type) {
case HANDATTACKTYPE_SHOOT:
@ -2556,13 +2554,7 @@ void autoaimTick(void)
isclose = true;
}
if (frIsInTraining()) {
if (!frChooseFarsightTarget()) {
farsightChooseTarget();
}
} else {
farsightChooseTarget();
}
farsightChooseTarget();
if (bgunGetWeaponNum(HAND_RIGHT) == WEAPON_CMP150
&& g_Vars.currentplayer->hands[HAND_RIGHT].gset.weaponfunc == FUNC_SECONDARY) {

View File

@ -48,7 +48,6 @@
#include "game/mpstats.h"
#include "game/bot.h"
#include "game/botact.h"
#include "game/training.h"
#include "game/lang.h"
#include "game/mplayer/mplayer.h"
#include "game/pad.h"
@ -7839,10 +7838,6 @@ s32 projectileTick(struct defaultobj *obj, bool *embedded)
shieldhitCreate(hitprop, shield, g_EmbedProp, g_EmbedNode, g_EmbedModel, g_EmbedSide, var8006993c);
}
if (hitobj->modelnum == MODEL_TARGET && var80069944 == TEXTURE_0B9E) {
frCalculateHit(hitobj, &sp5e8, 0.0f);
}
}
} else if (weapon->weaponnum == WEAPON_ROCKET || weapon->weaponnum == WEAPON_HOMINGROCKET) {
s32 ownerplayernum = (obj->hidden & 0xf0000000) >> 28;
@ -9396,11 +9391,7 @@ void autogunTick(struct prop *prop)
target = autogun->target;
} else {
// Find new target
if (frIsInTraining()) {
// Laptop gun in firing range
target = frChooseAutogunTarget(&prop->pos);
if (1);
} else if (autogun->targetteam != 0) {
if (autogun->targetteam != 0) {
// Autogun (solo or MP) configured to attack specific teams
if (g_Vars.normmplayerisrunning) {
numchrs = g_MpNumChrs;
@ -9478,7 +9469,7 @@ void autogunTick(struct prop *prop)
if (target) {
if (target->chr == NULL) {
target = NULL;
} else if (target->type != PROPTYPE_CHR && target->type != PROPTYPE_PLAYER && !frIsInTraining()) {
} else if (target->type != PROPTYPE_CHR && target->type != PROPTYPE_PLAYER) {
target = NULL;
}
}
@ -9575,15 +9566,7 @@ void autogunTick(struct prop *prop)
track = false;
}
} else if (target->type == PROPTYPE_OBJ) {
struct defaultobj *obj = target->obj;
if (obj && obj->modelnum == MODEL_TARGET) {
if (!frIsTargetFacingPos(target, &prop->pos)) {
track = false;
}
} else {
track = false;
}
track = false;
}
propSetPerimEnabled(prop, false);
@ -9999,8 +9982,6 @@ void autogunTickShoot(struct prop *autogunprop)
missed = false;
frCalculateHit(hitobj, &hitpos, 0);
if (chrIsUsingPaintball(ownerchr)) {
sparksCreate(hitprop->rooms[0], hitprop, &hitpos, 0, 0, SPARKTYPE_PAINT);
} else {
@ -16516,9 +16497,7 @@ void objHit(struct shotdata *shotdata, struct hit *hit)
}
if (obj->modelnum == MODEL_TARGET) {
if (hit->hitthing.texturenum == TEXTURE_0B9E) {
frCalculateHit(obj, &sp110, shotdata->gset.unk063a);
} else if ((shotdata->gset.weaponnum != WEAPON_CALLISTO || shotdata->gset.weaponfunc != FUNC_SECONDARY)
if ((shotdata->gset.weaponnum != WEAPON_CALLISTO || shotdata->gset.weaponfunc != FUNC_SECONDARY)
#if VERSION >= VERSION_NTSC_1_0
&& shotdata->gset.weaponnum != WEAPON_FARSIGHT
#endif
@ -16874,68 +16853,8 @@ bool propobjInteract(struct prop *prop)
{
struct defaultobj *obj = prop->obj;
bool result = false;
u32 tag_id = propobjGetCiTagId(prop);
if (tag_id) {
// CI object - terminals etc
u8 handled = false;
if (ciIsTourDone()) {
if (tag_id == 0x10) {
struct trainingdata *data = dtGetData();
handled = true;
if (data->intraining) {
func0f0f85e0(&g_DtDetailsMenuDialog, MENUROOT_TRAINING);
} else {
func0f0f85e0(&g_DtListMenuDialog, MENUROOT_TRAINING);
}
} else if (tag_id == 0x45) {
struct trainingdata *data = getHoloTrainingData();
handled = true;
if (data->intraining) {
func0f0f85e0(&g_HtDetailsMenuDialog, MENUROOT_TRAINING);
} else {
func0f0f85e0(&g_HtListMenuDialog, MENUROOT_TRAINING);
}
} else if (tag_id == 0x7f) {
handled = true;
if (frIsInTraining()) {
func0f0f85e0(&g_FrTrainingInfoInGameMenuDialog, MENUROOT_TRAINING);
} else {
func0f0f85e0(&g_FrWeaponListMenuDialog, MENUROOT_TRAINING);
}
}
}
if (!handled) {
if (tag_id == 0x0e) {
handled = true;
func0f0f85e0(&g_BioListMenuDialog, MENUROOT_TRAINING);
} else if (tag_id == 0x0f) {
handled = true;
func0f0f85e0(&g_CheatsMenuDialog, MENUROOT_TRAINING);
} else if (tag_id == 0x1b) {
handled = true;
func0f0f85e0(&g_FrWeaponsAvailableMenuDialog, MENUROOT_TRAINING);
} else if (tag_id == 0x47) {
handled = true;
func0f0f85e0(&g_CiMenuViaPcMenuDialog, MENUROOT_MAINMENU);
} else if (tag_id == 0x46) {
handled = true;
func0f0f85e0(&g_HangarListMenuDialog, MENUROOT_TRAINING);
}
}
if (handled) {
// Typing sound
sndStart(var80095200, SFX_TYPING_8118, NULL, -1, -1, -1, -1, -1);
}
func0f0fd494(&prop->pos);
} else if (obj->type == OBJTYPE_ALARM) {
if (obj->type == OBJTYPE_ALARM) {
// Button press sound
sndStart(var80095200, SFX_PRESS_SWITCH, NULL, -1, -1, -1, -1, -1);
@ -21425,21 +21344,9 @@ bool propdoorInteract(struct prop *doorprop)
} else if (door->mode == DOORMODE_IDLE && door->frac < 0.5f * door->maxfrac) {
if ((door->base.flags2 & OBJFLAG2_SKIPDOORLOCKEDMSG) == 0) {
struct textoverride *override = invGetTextOverrideForObj(&door->base);
u8 intraining = false;
if (g_Vars.stagenum == STAGE_CITRAINING) {
struct trainingdata *devdata = dtGetData();
struct trainingdata *holodata = getHoloTrainingData();
intraining = (devdata && devdata->intraining)
|| (holodata && holodata->intraining)
|| g_Vars.currentplayer->prop->rooms[0] == 0x0a;
}
if (override && override->pickuptext) {
hudmsgCreateWithFlags(langGet(override->pickuptext), HUDMSGTYPE_DEFAULT, HUDMSGFLAG_ONLYIFALIVE);
} else if (intraining) {
hudmsgCreateWithFlags(langGet(L_DISH_080), HUDMSGTYPE_DEFAULT, HUDMSGFLAG_ONLYIFALIVE); // "Cannot exit while training is in progress."
} else {
hudmsgCreateWithFlags(langGet(L_PROPOBJ_044), HUDMSGTYPE_DEFAULT, HUDMSGFLAG_ONLYIFALIVE); // "This door is locked."
}

View File

@ -13,7 +13,6 @@
#include "game/file.h"
#include "game/lv.h"
#include "game/music.h"
#include "game/training.h"
#include "game/modeldef.h"
#include "game/lang.h"
#include "game/propobj.h"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -504,26 +504,6 @@ extern u8 g_BotCount;
extern struct aibotweaponpreference g_AibotWeaponPreferences[];
extern u32 var80087eb4;
extern struct challenge g_MpChallenges[NUM_CHALLENGES];
extern u8 g_FrIsValidWeapon;
extern s32 g_FrWeaponNum;
extern u8 g_ChrBioSlot;
extern u8 g_HangarBioSlot;
extern u8 g_DtSlot;
extern u8 var80088bb4;
extern struct menudialogdef g_FrWeaponListMenuDialog;
extern struct menudialogdef g_FrTrainingInfoInGameMenuDialog;
extern struct menudialogdef g_FrTrainingInfoPreGameMenuDialog;
extern struct menudialogdef g_FrCompletedMenuDialog;
extern struct menudialogdef g_FrFailedMenuDialog;
extern struct menudialogdef g_BioListMenuDialog;
extern struct menudialogdef g_DtListMenuDialog;
extern struct menudialogdef g_DtDetailsMenuDialog;
extern struct menudialogdef g_DtFailedMenuDialog;
extern struct menudialogdef g_DtCompletedMenuDialog;
extern struct menudialogdef g_HtListMenuDialog;
extern struct menudialogdef g_HtDetailsMenuDialog;
extern struct menudialogdef g_HtFailedMenuDialog;
extern struct menudialogdef g_HtCompletedMenuDialog;
extern struct menudialogdef g_HangarListMenuDialog;
#endif

View File

@ -1,42 +0,0 @@
#ifndef IN_GAME_ENDSCREEN_H
#define IN_GAME_ENDSCREEN_H
#include <ultra64.h>
#include "data.h"
#include "types.h"
s32 endscreenHandleRetryMission(s32 operation, struct menudialogdef *dialogdef, union handlerdata *data);
s32 endscreenHandle2PCompleted(s32 operation, struct menudialogdef *dialogdef, union handlerdata *data);
s32 endscreenHandle2PFailed(s32 operation, struct menudialogdef *dialogdef, union handlerdata *data);
s32 endscreenHandleDeclineMission(s32 operation, struct menuitem *item, union handlerdata *data);
s32 endscreenHandleCheatInfo(s32 operation, struct menuitem *item, union handlerdata *data);
s32 endscreenHandleContinueMission(s32 operation, struct menuitem *item, union handlerdata *data);
s32 endscreenHandleReplayLastLevel(s32 operation, struct menuitem *item, union handlerdata *data);
s32 endscreenHandleReplayPreviousMission(s32 operation, struct menuitem *item, union handlerdata *data);
char *endscreenMenuTitleRetryMission(struct menudialogdef *dialogdef);
char *endscreenMenuTitleNextMission(struct menudialogdef *dialogdef);
char *endscreenMenuTextNumKills(struct menuitem *item);
char *endscreenMenuTextNumShots(struct menuitem *item);
char *endscreenMenuTextNumHeadShots(struct menuitem *item);
char *endscreenMenuTextNumBodyShots(struct menuitem *item);
char *endscreenMenuTextNumLimbShots(struct menuitem *item);
char *endscreenMenuTextNumOtherShots(struct menuitem *item);
char *endscreenMenuTextAccuracy(struct menuitem *item);
char *endscreenMenuTextMissionStatus(struct menuitem *item);
char *endscreenMenuTextAgentStatus(struct menuitem *item);
char *endscreenMenuTitleStageCompleted(struct menuitem *item);
char *endscreenMenuTextCurrentStageName3(struct menuitem *item);
char *endscreenMenuTitleStageFailed(struct menuitem *item);
char *endscreenMenuTextMissionTime(struct menuitem *item);
struct menudialogdef *endscreenAdvance(void);
void endscreen0f10d770(void);
void endscreenContinue(s32 context);
char *endscreenMenuTextTimedCheatName(struct menuitem *item);
char *endscreenMenuTextCompletionCheatName(struct menuitem *item);
char *endscreenMenuTextTargetTime(struct menuitem *item);
void endscreenSetCoopCompleted(void);
void endscreenPrepare(void);
void endscreenPushCoop(void);
void endscreenPushSolo(void);
void endscreenPushAnti(void);
#endif

View File

@ -11,15 +11,7 @@ extern struct menudialogdef g_PreAndPostMissionBriefingMenuDialog;
extern struct menudialogdef g_RetryMissionMenuDialog;
extern struct menudialogdef g_NextMissionMenuDialog;
char *menuTextCurrentStageName(struct menuitem *item);
char *soloMenuTextDifficulty(struct menuitem *item);
s32 menuhandlerControlStyleImpl(s32 operation, struct menuitem *item, union handlerdata *data, s32 mpindex);
char *soloMenuTitleStageOverview(struct menudialogdef *dialogdef);
f32 func0f1036ac(u8 value, s32 prop);
bool isStageDifficultyUnlocked(s32 stageindex, s32 difficulty);
char *soloMenuTextBestTime(struct menuitem *item);
s32 getMaxAiBuddies(void);
s32 getNumUnlockedSpecialStages(void);
s32 func0f104720(s32 value);
char *func0f105664(struct menuitem *item);
char *func0f1056a0(struct menuitem *item);

View File

@ -1,137 +0,0 @@
#ifndef IN_GAME_TRAINING_TRAINING_H
#define IN_GAME_TRAINING_TRAINING_H
#include <ultra64.h>
#include "data.h"
#include "types.h"
extern u8 g_FrIsValidWeapon;
extern s32 g_FrWeaponNum;
extern u8 g_ChrBioSlot;
extern u8 var80088bb4;
extern u8 g_HangarBioSlot;
extern u8 g_DtSlot;
bool ciIsTourDone(void);
u8 ciGetFiringRangeScore(s32 weaponindex);
void frSaveScoreIfBest(s32 weaponindex, s32 difficulty);
u8 frIsWeaponFound(s32 weapon);
void frSetWeaponFound(s32 weaponnum);
s32 ciIsStageComplete(s32 stageindex);
bool func0f19cbcc(s32 weapon);
bool frIsWeaponAvailable(s32 weapon);
u32 frGetWeaponIndexByWeapon(u32 weaponnum);
u32 frGetWeaponScriptIndex(u32 weaponnum);
s32 frIsClassicWeaponUnlocked(u32 weapon);
s32 frGetSlot(void);
void frSetSlot(s32 slot);
u32 frGetWeaponBySlot(s32 slot);
s32 frGetNumWeaponsAvailable(void);
void frInitLighting(void);
void frRestoreLighting(void);
void frReset(void);
void *frLoadRomData(u32 len);
void frSetDifficulty(s32 difficulty);
u32 frGetDifficulty(void);
void frInitDefaults(void);
struct frdata *frGetData(void);
u32 frResolveFrPad(u32 arg0);
bool frIsDifficulty(u32 difficulties);
void frExecuteWeaponScript(s32 scriptindex);
void frSetTargetProps(void);
bool frTargetIsAtScriptStart(s32 targetnum);
char *frGetInstructionalText(u32 index);
void frExecuteHelpScript(void);
bool frExecuteTargetScript(s32 targetnum);
void frHideAllTargets(void);
void frInitTargets(void);
void frCloseAndLockDoor(void);
void frUnlockDoor(void);
void frLoadData(void);
u32 frInitAmmo(s32 weapon);
void frBeginSession(s32 weapon);
char *frGetWeaponDescription(void);
void frEndSession(bool hidetargets);
bool frWasTooInaccurate(void);
void frSetFailReason(s32 failreason);
void frSetCompleted(void);
bool frIsTargetOneHitExplodable(struct prop *prop);
f32 frGetTargetAngleToPos(struct coord *a, f32 angle, struct coord *b);
bool frIsTargetFacingPos(struct prop *prop, struct coord *pos);
struct prop *frChooseAutogunTarget(struct coord *autogunpos);
bool frIsAmmoWasted(void);
void frTick(void);
void func0f1a0924(struct prop *prop);
bool frChooseFarsightTarget(void);
s32 frIsInTraining(void);
void frCalculateHit(struct defaultobj *obj, struct coord *hitpos, f32 maulercharge);
void frIncrementNumShots(void);
bool ciIsChrBioUnlocked(u32 bodynum);
struct chrbio *ciGetChrBioByBodynum(u32 bodynum);
char *ciGetChrBioDescription(void);
s32 ciGetNumUnlockedChrBios(void);
s32 ciGetChrBioBodynumBySlot(s32 slot);
struct miscbio *ciGetMiscBio(s32 index);
bool ciIsMiscBioUnlocked(s32 index);
s32 ciGetNumUnlockedMiscBios(void);
s32 ciGetMiscBioIndexBySlot(s32 slot);
char *ciGetMiscBioDescription(void);
bool ciIsHangarBioAVehicle(s32 index);
struct hangarbio *ciGetHangarBio(s32 index);
bool ciIsHangarBioUnlocked(u32 bioindex);
s32 ciGetNumUnlockedLocationBios(void);
s32 ciGetNumUnlockedHangarBios(void);
s32 ciGetHangarBioIndexBySlot(s32 slot);
char *ciGetHangarBioDescription(void);
struct trainingdata *dtGetData(void);
void dtRestorePlayer(void);
void dtPushEndscreen(void);
void dtTick(void);
void func0f1a1ac0(void);
void dtBegin(void);
void dtEnd(void);
bool dtIsAvailable(s32 deviceindex);
s32 dtGetNumAvailable(void);
s32 dtGetIndexBySlot(s32 wantindex);
u32 dtGetWeaponByDeviceIndex(s32 deviceindex);
u32 ciGetStageFlagByDeviceIndex(u32 deviceindex);
char *dtGetDescription(void);
char *dtGetTip1(void);
char *dtGetTip2(void);
struct trainingdata *getHoloTrainingData(void);
void htPushEndscreen(void);
void htTick(void);
void func0f1a2198(void);
void htBegin(void);
void htEnd(void);
bool htIsUnlocked(u32 value);
s32 htGetNumUnlocked(void);
s32 htGetIndexBySlot(s32 slot);
char *htGetName(s32 index);
u32 func0f1a25c0(s32 index);
char *htGetDescription(void);
char *htGetTip1(void);
char *htGetTip2(void);
#if VERSION >= VERSION_JPN_FINAL
void frGetGoalTargetsText(char *buffer1, char *buffer2);
void frGetGoalScoreText(char *buffer1, char *buffer2);
bool frGetMinAccuracy(char *buffer1, f32 accuracy, char *buffer2);
bool frGetHudMiddleSubtext(char *buffer1, char *buffer2);
bool frGetFeedback(char *score, char *zone, char *extrabuffer);
Gfx *frRenderHudElement(Gfx *gdl, s32 x, s32 y, char *string1, char *string2, char *string3, u32 colour, u8 alpha);
#else
void frGetGoalTargetsText(char *buffer);
void frGetGoalScoreText(char *buffer);
bool frGetMinAccuracy(char *buffer, f32 accuracy);
bool frGetHudMiddleSubtext(char *buffer);
bool frGetFeedback(char *score, char *zone);
Gfx *frRenderHudElement(Gfx *gdl, s32 x, s32 y, char *string1, char *string2, u32 colour, u8 alpha);
#endif
void frGetTargetsDestroyedValue(char *buffer);
void frGetScoreValue(char *buffer);
f32 frGetAccuracy(char *buffer);
bool frFormatTime(char *buffer);
Gfx *frRenderHud(Gfx *gdl);
#endif

View File

@ -1,61 +0,0 @@
#ifndef IN_GAME_TRAINING_MENUS_H
#define IN_GAME_TRAINING_MENUS_H
#include <ultra64.h>
#include "data.h"
#include "types.h"
char *frMenuTextFailReason(struct menuitem *item);
char *frMenuTextDifficultyName(struct menuitem *item);
char *frMenuTextTimeTakenValue(struct menuitem *item);
char *frMenuTextScoreValue(struct menuitem *item);
char *frMenuTextWeaponName(struct menuitem *item);
char *frMenuTextTargetsDestroyedValue(struct menuitem *item);
char *frMenuTextAccuracyValue(struct menuitem *item);
char *frMenuTextGoalScoreLabel(struct menuitem *item);
char *frMenuTextGoalScoreValue(struct menuitem *item);
char *frMenuTextMinAccuracyOrTargetsLabel(struct menuitem *item);
char *frMenuTextMinAccuracyOrTargetsValue(struct menuitem *item);
char *frMenuTextTimeLimitLabel(struct menuitem *item);
char *frMenuTextTimeLimitValue(struct menuitem *item);
char *frMenuTextAmmoLimitLabel(struct menuitem *item);
char *frMenuTextAmmoLimitValue(struct menuitem *item);
char *ciMenuTextChrBioName(struct menuitem *item);
char *ciMenuTextChrBioAge(struct menuitem *item);
char *ciMenuTextChrBioRace(struct menuitem *item);
char *ciMenuTextMiscBioName(struct menuitem *item);
char *dtMenuTextName(struct menuitem *item);
char *dtMenuTextOkOrResume(struct menuitem *item);
char *dtMenuTextCancelOrAbort(struct menuitem *item);
char *dtMenuTextTimeTakenValue(struct menuitem *item);
char *htMenuTextName(struct menuitem *item);
char *htMenuTextOkOrResume(struct menuitem *item);
char *htMenuTextCancelOrAbort(struct menuitem *item);
char *htMenuTextTimeTakenValue(struct menuitem *item);
char *bioMenuTextName(struct menuitem *item);
char *ciMenuTextHangarBioSubheading(struct menuitem *item);
struct menudialogdef *ciGetFrWeaponListMenuDialog(void);
s32 frTrainingInfoMenuDialog(s32 operation, struct menudialogdef *dialogdef, union handlerdata *data);
s32 frTrainingStatsMenuDialog(s32 operation, struct menudialogdef *dialogdef, union handlerdata *data);
s32 ciCharacterProfileMenuDialog(s32 operation, struct menudialogdef *dialogdef, union handlerdata *data);
s32 dtTrainingDetailsMenuDialog(s32 operation, struct menudialogdef *dialogdef, union handlerdata *data);
s32 menudialogDeviceTrainingResults(s32 operation, struct menudialogdef *dialogdef, union handlerdata *data);
s32 menudialog001a6aa4(s32 operation, struct menudialogdef *dialogdef, union handlerdata *data);
s32 menudialogFiringRangeResults(s32 operation, struct menudialogdef *dialogdef, union handlerdata *data);
s32 ciHangarHolographMenuDialog(s32 operation, struct menudialogdef *dialogdef, union handlerdata *data);
s32 frDetailsOkMenuHandler(s32 operation, struct menuitem *item, union handlerdata *data);
s32 frAbortMenuHandler(s32 operation, struct menuitem *item, union handlerdata *data);
s32 frWeaponListMenuHandler(s32 operation, struct menuitem *item, union handlerdata *data);
s32 frScoringMenuHandler(s32 operation, struct menuitem *item, union handlerdata *data);
s32 menuhandlerFrFailedContinue(s32 operation, struct menuitem *item, union handlerdata *data);
s32 ciOfficeInformationMenuHandler(s32 operation, struct menuitem *item, union handlerdata *data);
s32 dtDeviceListMenuHandler(s32 operation, struct menuitem *item, union handlerdata *data);
s32 menuhandlerDtOkOrResume(s32 operation, struct menuitem *item, union handlerdata *data);
s32 menuhandler001a6514(s32 operation, struct menuitem *item, union handlerdata *data);
s32 htHoloListMenuHandler(s32 operation, struct menuitem *item, union handlerdata *data);
s32 menuhandler001a6a34(s32 operation, struct menuitem *item, union handlerdata *data);
s32 menuhandler001a6a70(s32 operation, struct menuitem *item, union handlerdata *data);
s32 ciHangarInformationMenuHandler(s32 operation, struct menuitem *item, union handlerdata *data);
s32 ciHangarTitleMenuHandler(s32 operation, struct menuitem *item, union handlerdata *data);
s32 frDifficultyMenuHandler(s32 operation, struct menuitem *item, union handlerdata *data);
#endif

View File

@ -26,7 +26,6 @@
#include "game/title.h"
#include "game/pdmode.h"
#include "game/objectives.h"
#include "game/endscreen.h"
#include "game/playermgr.h"
#include "game/game_1531a0.h"
#include "game/gfxmemory.h"
@ -1979,34 +1978,7 @@ void mainEndStage(void)
#endif
joyDisableTemporarily();
if (g_Vars.coopplayernum >= 0) {
s32 prevplayernum = g_Vars.currentplayernum;
s32 i;
for (i = 0; i < PLAYERCOUNT(); i++) {
setCurrentPlayerNum(i);
endscreenPushCoop();
}
setCurrentPlayerNum(prevplayernum);
musicStartMenu();
} else if (g_Vars.antiplayernum >= 0) {
s32 prevplayernum = g_Vars.currentplayernum;
s32 i;
for (i = 0; i < PLAYERCOUNT(); i++) {
setCurrentPlayerNum(i);
endscreenPushAnti();
}
setCurrentPlayerNum(prevplayernum);
musicStartMenu();
} else if (g_Vars.normmplayerisrunning) {
mpEndMatch();
} else {
endscreenPrepare();
musicStartMenu();
}
mpEndMatch();
}
g_MainIsEndscreen = true;