diff --git a/src/game/mplayer/scenarios/capturethecase.inc b/src/game/mplayer/scenarios/capturethecase.inc index fa6d4946c..5a843bdd6 100644 --- a/src/game/mplayer/scenarios/capturethecase.inc +++ b/src/game/mplayer/scenarios/capturethecase.inc @@ -85,6 +85,14 @@ struct menuitem g_CtcOptionsMenuItems[] = { MPOPTION_FRIENDLYFIRE, menuhandlerMpDisplayTeam, }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, + (uintptr_t)"No Player on Radar", + MPOPTION_NOPLAYERONRADAR, + menuhandlerMpCheckboxOption, + }, #endif { MENUITEMTYPE_CHECKBOX, diff --git a/src/game/mplayer/scenarios/combat.inc b/src/game/mplayer/scenarios/combat.inc index 5052aea0c..2f398579e 100644 --- a/src/game/mplayer/scenarios/combat.inc +++ b/src/game/mplayer/scenarios/combat.inc @@ -80,6 +80,14 @@ struct menuitem g_MpCombatOptionsMenuItems[] = { MPOPTION_FRIENDLYFIRE, menuhandlerMpDisplayTeam, }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, + (uintptr_t)"No Player on Radar", + MPOPTION_NOPLAYERONRADAR, + menuhandlerMpCheckboxOption, + }, #endif { MENUITEMTYPE_SEPARATOR, diff --git a/src/game/mplayer/scenarios/hackthatmac.inc b/src/game/mplayer/scenarios/hackthatmac.inc index 32a0a265a..1b5bb5310 100644 --- a/src/game/mplayer/scenarios/hackthatmac.inc +++ b/src/game/mplayer/scenarios/hackthatmac.inc @@ -83,6 +83,14 @@ struct menuitem g_HtmOptionsMenuItems[] = { MPOPTION_FRIENDLYFIRE, menuhandlerMpDisplayTeam, }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, + (uintptr_t)"No Player on Radar", + MPOPTION_NOPLAYERONRADAR, + menuhandlerMpCheckboxOption, + }, #endif { MENUITEMTYPE_CHECKBOX, diff --git a/src/game/mplayer/scenarios/holdthebriefcase.inc b/src/game/mplayer/scenarios/holdthebriefcase.inc index d0e36e7d0..65d21e42b 100644 --- a/src/game/mplayer/scenarios/holdthebriefcase.inc +++ b/src/game/mplayer/scenarios/holdthebriefcase.inc @@ -83,6 +83,14 @@ struct menuitem g_HtbOptionsMenuItems[] = { MPOPTION_FRIENDLYFIRE, menuhandlerMpDisplayTeam, }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, + (uintptr_t)"No Player on Radar", + MPOPTION_NOPLAYERONRADAR, + menuhandlerMpCheckboxOption, + }, #endif { MENUITEMTYPE_CHECKBOX, diff --git a/src/game/mplayer/scenarios/kingofthehill.inc b/src/game/mplayer/scenarios/kingofthehill.inc index 41810b9a6..53e72a358 100644 --- a/src/game/mplayer/scenarios/kingofthehill.inc +++ b/src/game/mplayer/scenarios/kingofthehill.inc @@ -104,6 +104,14 @@ struct menuitem g_KohOptionsMenuItems[] = { MPOPTION_FRIENDLYFIRE, menuhandlerMpDisplayTeam, }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, + (uintptr_t)"No Player on Radar", + MPOPTION_NOPLAYERONRADAR, + menuhandlerMpCheckboxOption, + }, #endif { MENUITEMTYPE_CHECKBOX, diff --git a/src/game/mplayer/scenarios/popacap.inc b/src/game/mplayer/scenarios/popacap.inc index b667ad269..ca9d5060d 100644 --- a/src/game/mplayer/scenarios/popacap.inc +++ b/src/game/mplayer/scenarios/popacap.inc @@ -81,6 +81,14 @@ struct menuitem g_PacOptionsMenuItems[] = { MPOPTION_FRIENDLYFIRE, menuhandlerMpDisplayTeam, }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, + (uintptr_t)"No Player on Radar", + MPOPTION_NOPLAYERONRADAR, + menuhandlerMpCheckboxOption, + }, #endif { MENUITEMTYPE_CHECKBOX, diff --git a/src/game/radar.c b/src/game/radar.c index a98ae6764..2a449e034 100644 --- a/src/game/radar.c +++ b/src/game/radar.c @@ -336,6 +336,9 @@ Gfx *radarRender(Gfx *gdl) gdl = func0f153134(gdl); // Draw dots for human players +#ifndef PLATFORM_N64 + if (!(g_MpSetup.options & MPOPTION_NOPLAYERONRADAR)) { +#endif for (i = 0; i < playercount; i++) { if (i != playernum) { if (g_Vars.players[i]->isdead == false @@ -356,6 +359,9 @@ Gfx *radarRender(Gfx *gdl) } } } +#ifndef PLATFORM_N64 + } +#endif // Draw dots for coop AI buddies if (!g_Vars.normmplayerisrunning && g_MissionConfig.iscoop) { @@ -377,7 +383,11 @@ Gfx *radarRender(Gfx *gdl) } // Draw dots for MP simulants +#ifdef PLATFORM_N64 if (g_Vars.normmplayerisrunning) { +#else + if (g_Vars.normmplayerisrunning && !(g_MpSetup.options & MPOPTION_NOPLAYERONRADAR)) { +#endif for (i = 0; i < g_BotCount; i++) { if (!chrIsDead(g_MpBotChrPtrs[i]) && (g_MpBotChrPtrs[i]->hidden & CHRHFLAG_CLOAKED) == 0 diff --git a/src/include/constants.h b/src/include/constants.h index 09152e169..093007f81 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -2895,6 +2895,7 @@ #define MPOPTION_AUTORANDOMWEAPON_START 0x00800000 #define MPOPTION_AUTORANDOMWEAPON_END 0x01000000 #define MPOPTION_FRIENDLYFIRE 0x02000000 +#define MPOPTION_NOPLAYERONRADAR 0x04000000 #define MPPAUSEMODE_UNPAUSED 0 #define MPPAUSEMODE_PAUSED 1