From 5a848b107f06c645cf49daa2edcd68bea8781011 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Wed, 9 Nov 2022 19:21:47 +1000 Subject: [PATCH] Add option to show/hide bots on radar --- src/assets/ntsc-final/lang/mpmenu.json | 4 ++-- src/game/mplayer/mplayer.c | 2 +- src/game/mplayer/setup.c | 8 +++++++ src/game/radar.c | 30 ++++++++++++++------------ src/include/constants.h | 1 + 5 files changed, 28 insertions(+), 17 deletions(-) diff --git a/src/assets/ntsc-final/lang/mpmenu.json b/src/assets/ntsc-final/lang/mpmenu.json index 40335a253..1bc947505 100644 --- a/src/assets/ntsc-final/lang/mpmenu.json +++ b/src/assets/ntsc-final/lang/mpmenu.json @@ -4850,8 +4850,8 @@ "es": "Searching for Camera!\n" }, { - "id": "L_MPMENU_485", - "en": "Calibrating Camera\n", + "id": "L_MPMENU_BOTSONRADAR", + "en": "Show Bots on Radar\n", "gb": "Calibrating Camera\n", "jp": "Downloading Image\n", "it": "Calibrating Camera\n", diff --git a/src/game/mplayer/mplayer.c b/src/game/mplayer/mplayer.c index 5f20dea8c..84347fd8a 100644 --- a/src/game/mplayer/mplayer.c +++ b/src/game/mplayer/mplayer.c @@ -331,7 +331,7 @@ void mpPlayerSetDefaults(s32 playernum, bool autonames) } g_PlayerConfigsArray[playernum].base.mpheadnum = mpGetMpheadnumByMpbodynum(g_PlayerConfigsArray[playernum].base.mpbodynum); - g_PlayerConfigsArray[playernum].displayoptions = MPDISPLAYOPTION_RADAR | MPDISPLAYOPTION_HIGHLIGHTTEAMS; + g_PlayerConfigsArray[playernum].displayoptions = MPDISPLAYOPTION_RADAR | MPDISPLAYOPTION_BOTSONRADAR | MPDISPLAYOPTION_HIGHLIGHTTEAMS; g_PlayerConfigsArray[playernum].fileguid.fileid = 0; g_PlayerConfigsArray[playernum].fileguid.deviceserial = 0; diff --git a/src/game/mplayer/setup.c b/src/game/mplayer/setup.c index ee8abd718..87e14d2df 100644 --- a/src/game/mplayer/setup.c +++ b/src/game/mplayer/setup.c @@ -1308,6 +1308,14 @@ struct menuitem g_MpPlayerOptionsMenuItems[] = { MPDISPLAYOPTION_RADAR, menuhandlerMpDisplayOptionCheckbox, }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPMENU_BOTSONRADAR, // "Show Bots on Radar" + MPDISPLAYOPTION_BOTSONRADAR, + menuhandlerMpDisplayOptionCheckbox, + }, { MENUITEMTYPE_SEPARATOR, 0, diff --git a/src/game/radar.c b/src/game/radar.c index 9f7d9de96..5e883cd8a 100644 --- a/src/game/radar.c +++ b/src/game/radar.c @@ -305,23 +305,25 @@ Gfx *radarRender(Gfx *gdl) } // Draw dots for MP simulants - for (i = playercount; i < g_MpNumChrs; i++) { - struct chrdata *chr = g_MpChrs[i].chr; + if (g_PlayerConfigsArray[g_Vars.currentplayerstats->mpindex].displayoptions & MPDISPLAYOPTION_BOTSONRADAR) { + for (i = playercount; i < g_MpNumChrs; i++) { + struct chrdata *chr = g_MpChrs[i].chr; - if (!chrIsDead(chr) - && (chr->hidden & CHRHFLAG_CLOAKED) == 0 - && scenarioRadarChr(&gdl, chr->prop) == false) { - pos.x = chr->prop->pos.x - g_Vars.currentplayer->prop->pos.x; - pos.y = chr->prop->pos.y - g_Vars.currentplayer->prop->pos.y; - pos.z = chr->prop->pos.z - g_Vars.currentplayer->prop->pos.z; + if (!chrIsDead(chr) + && (chr->hidden & CHRHFLAG_CLOAKED) == 0 + && scenarioRadarChr(&gdl, chr->prop) == false) { + pos.x = chr->prop->pos.x - g_Vars.currentplayer->prop->pos.x; + pos.y = chr->prop->pos.y - g_Vars.currentplayer->prop->pos.y; + pos.z = chr->prop->pos.z - g_Vars.currentplayer->prop->pos.z; - if (g_MpSetup.options & MPOPTION_TEAMSENABLED) { - colour = g_TeamColours[chr->team]; - } else { - colour = 0x00ff0000; + if (g_MpSetup.options & MPOPTION_TEAMSENABLED) { + colour = g_TeamColours[chr->team]; + } else { + colour = 0x00ff0000; + } + + gdl = radarDrawDot(gdl, chr->prop, &pos, colour, 0, 0); } - - gdl = radarDrawDot(gdl, chr->prop, &pos, colour, 0, 0); } } diff --git a/src/include/constants.h b/src/include/constants.h index 237a3d9fb..954fa3178 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -2713,6 +2713,7 @@ #define MPDISPLAYOPTION_HIGHLIGHTPICKUPS 0x02 #define MPDISPLAYOPTION_RADAR 0x04 #define MPDISPLAYOPTION_HIGHLIGHTTEAMS 0x08 +#define MPDISPLAYOPTION_BOTSONRADAR 0x10 // Features are things that can be unlocked #define MPFEATURE_WEAPON_FARSIGHT 0x01