From a70868fba05b520cffc72bfca013746b82b0723f Mon Sep 17 00:00:00 2001 From: Raf Date: Wed, 28 May 2025 20:59:36 -0300 Subject: [PATCH] port-no-doors: moved new MP options to a new menu --- src/game/mplayer/scenarios/capturethecase.inc | 39 ++-------------- src/game/mplayer/scenarios/combat.inc | 38 ++-------------- src/game/mplayer/scenarios/hackthatmac.inc | 38 ++-------------- .../mplayer/scenarios/holdthebriefcase.inc | 38 ++-------------- src/game/mplayer/scenarios/kingofthehill.inc | 45 +++---------------- src/game/mplayer/scenarios/popacap.inc | 38 ++-------------- 6 files changed, 23 insertions(+), 213 deletions(-) diff --git a/src/game/mplayer/scenarios/capturethecase.inc b/src/game/mplayer/scenarios/capturethecase.inc index 79a205f80..4570d4a5b 100644 --- a/src/game/mplayer/scenarios/capturethecase.inc +++ b/src/game/mplayer/scenarios/capturethecase.inc @@ -11,6 +11,8 @@ * Players cannot score unless their briefcase is at the home base. */ +extern struct menudialogdef g_ExtGameOptionsMenuDialog; + struct menuitem g_CtcOptionsMenuItems[] = { { MENUITEMTYPE_CHECKBOX, @@ -60,40 +62,6 @@ struct menuitem g_CtcOptionsMenuItems[] = { MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption, }, -#ifndef PLATFORM_N64 - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"Start Armed", - MPOPTION_SPAWNWITHWEAPON, - menuhandlerMpCheckboxOption, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"No Drug Blur", - MPOPTION_NODRUGBLUR, - menuhandlerMpCheckboxOption, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR, - L_OPTIONS_257, // "Friendly Fire" - MPOPTION_FRIENDLYFIRE, - menuhandlerMpDisplayTeam, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"No Player on Radar", - MPOPTION_NOPLAYERONRADAR, - menuhandlerMpCheckboxOption, - }, -#endif { MENUITEMTYPE_CHECKBOX, 0, @@ -143,7 +111,8 @@ struct menudialogdef g_CtcOptionsMenuDialog = { g_CtcOptionsMenuItems, mpOptionsMenuDialog, MENUDIALOGFLAG_MPLOCKABLE, - NULL, + &g_ExtGameOptionsMenuDialog, +// NULL, }; struct weaponobj g_CtcTokenObj0; diff --git a/src/game/mplayer/scenarios/combat.inc b/src/game/mplayer/scenarios/combat.inc index 2f398579e..60f2393a7 100644 --- a/src/game/mplayer/scenarios/combat.inc +++ b/src/game/mplayer/scenarios/combat.inc @@ -6,6 +6,8 @@ * There are no callback functions or special logic. */ +extern struct menudialogdef g_ExtGameOptionsMenuDialog; + struct menuitem g_MpCombatOptionsMenuItems[] = { { MENUITEMTYPE_CHECKBOX, @@ -55,40 +57,6 @@ struct menuitem g_MpCombatOptionsMenuItems[] = { MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption, }, -#ifndef PLATFORM_N64 - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"Start Armed", - MPOPTION_SPAWNWITHWEAPON, - menuhandlerMpCheckboxOption, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"No Drug Blur", - MPOPTION_NODRUGBLUR, - menuhandlerMpCheckboxOption, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR, - L_OPTIONS_257, // "Friendly Fire" - MPOPTION_FRIENDLYFIRE, - menuhandlerMpDisplayTeam, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"No Player on Radar", - MPOPTION_NOPLAYERONRADAR, - menuhandlerMpCheckboxOption, - }, -#endif { MENUITEMTYPE_SEPARATOR, 0, @@ -138,5 +106,5 @@ struct menudialogdef g_MpCombatOptionsMenuDialog = { g_MpCombatOptionsMenuItems, mpOptionsMenuDialog, MENUDIALOGFLAG_MPLOCKABLE, - NULL, + &g_ExtGameOptionsMenuDialog, }; diff --git a/src/game/mplayer/scenarios/hackthatmac.inc b/src/game/mplayer/scenarios/hackthatmac.inc index ce182c1d1..637075a0b 100644 --- a/src/game/mplayer/scenarios/hackthatmac.inc +++ b/src/game/mplayer/scenarios/hackthatmac.inc @@ -7,6 +7,8 @@ * cannot use weapons while uplinking. */ +extern struct menudialogdef g_ExtGameOptionsMenuDialog; + #define HTM_NUM_TERMINALS 1 struct menuitem g_HtmOptionsMenuItems[] = { @@ -58,40 +60,6 @@ struct menuitem g_HtmOptionsMenuItems[] = { MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption, }, -#ifndef PLATFORM_N64 - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"Start Armed", - MPOPTION_SPAWNWITHWEAPON, - menuhandlerMpCheckboxOption, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"No Drug Blur", - MPOPTION_NODRUGBLUR, - menuhandlerMpCheckboxOption, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR, - L_OPTIONS_257, // "Friendly Fire" - MPOPTION_FRIENDLYFIRE, - menuhandlerMpDisplayTeam, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"No Player on Radar", - MPOPTION_NOPLAYERONRADAR, - menuhandlerMpCheckboxOption, - }, -#endif { MENUITEMTYPE_CHECKBOX, 0, @@ -149,7 +117,7 @@ struct menudialogdef g_HtmOptionsMenuDialog = { g_HtmOptionsMenuItems, mpOptionsMenuDialog, MENUDIALOGFLAG_MPLOCKABLE, - NULL, + &g_ExtGameOptionsMenuDialog, }; struct weaponobj g_HtmUplinkObj; diff --git a/src/game/mplayer/scenarios/holdthebriefcase.inc b/src/game/mplayer/scenarios/holdthebriefcase.inc index f5ac62e40..0d45164ec 100644 --- a/src/game/mplayer/scenarios/holdthebriefcase.inc +++ b/src/game/mplayer/scenarios/holdthebriefcase.inc @@ -9,6 +9,8 @@ * slightly slower but still have full access to their weaponry. */ +extern struct menudialogdef g_ExtGameOptionsMenuDialog; + struct menuitem g_HtbOptionsMenuItems[] = { { MENUITEMTYPE_CHECKBOX, @@ -58,40 +60,6 @@ struct menuitem g_HtbOptionsMenuItems[] = { MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption, }, -#ifndef PLATFORM_N64 - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"Start Armed", - MPOPTION_SPAWNWITHWEAPON, - menuhandlerMpCheckboxOption, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"No Drug Blur", - MPOPTION_NODRUGBLUR, - menuhandlerMpCheckboxOption, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR, - L_OPTIONS_257, // "Friendly Fire" - MPOPTION_FRIENDLYFIRE, - menuhandlerMpDisplayTeam, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"No Player on Radar", - MPOPTION_NOPLAYERONRADAR, - menuhandlerMpCheckboxOption, - }, -#endif { MENUITEMTYPE_CHECKBOX, 0, @@ -149,7 +117,7 @@ struct menudialogdef g_HtbOptionsMenuDialog = { g_HtbOptionsMenuItems, mpOptionsMenuDialog, MENUDIALOGFLAG_MPLOCKABLE, - NULL, + &g_ExtGameOptionsMenuDialog, }; struct defaultobj *var800869ec = NULL; diff --git a/src/game/mplayer/scenarios/kingofthehill.inc b/src/game/mplayer/scenarios/kingofthehill.inc index 0160c7632..6c8f41aa6 100644 --- a/src/game/mplayer/scenarios/kingofthehill.inc +++ b/src/game/mplayer/scenarios/kingofthehill.inc @@ -13,6 +13,8 @@ * Points are awarded to each player in the hill at the time that it is won. */ +extern struct menudialogdef g_ExtGameOptionsMenuDialog; + MenuItemHandlerResult menuhandlerMpHillTime(s32 operation, struct menuitem *item, union handlerdata *data) { switch (operation) { @@ -79,40 +81,6 @@ struct menuitem g_KohOptionsMenuItems[] = { MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption, }, -#ifndef PLATFORM_N64 - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"Start Armed", - MPOPTION_SPAWNWITHWEAPON, - menuhandlerMpCheckboxOption, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"No Drug Blur", - MPOPTION_NODRUGBLUR, - menuhandlerMpCheckboxOption, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR, - L_OPTIONS_257, // "Friendly Fire" - MPOPTION_FRIENDLYFIRE, - menuhandlerMpDisplayTeam, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"No Player on Radar", - MPOPTION_NOPLAYERONRADAR, - menuhandlerMpCheckboxOption, - }, -#endif { MENUITEMTYPE_CHECKBOX, 0, @@ -178,17 +146,18 @@ struct menudialogdef g_KohOptionsMenuDialog = { g_KohOptionsMenuItems, mpOptionsMenuDialog, MENUDIALOGFLAG_MPLOCKABLE, - NULL, + &g_ExtGameOptionsMenuDialog, }; -void kohReadSave(struct savebuffer *buffer) +void kohReadSave(struct savebuffer *buffer, u8 version) { - g_Vars.mphilltime = savebufferReadBits(buffer, 8); + u8 sz = version > 0 ? 32 : 8; + g_Vars.mphilltime = savebufferReadBits(buffer, sz); } void kohWriteSave(struct savebuffer *buffer) { - savebufferOr(buffer, g_Vars.mphilltime, 8); + savebufferOr(buffer, g_Vars.mphilltime, 32); } void kohInit(void) diff --git a/src/game/mplayer/scenarios/popacap.inc b/src/game/mplayer/scenarios/popacap.inc index 1e51adb64..2936a61af 100644 --- a/src/game/mplayer/scenarios/popacap.inc +++ b/src/game/mplayer/scenarios/popacap.inc @@ -7,6 +7,8 @@ * chosen as the victim. */ +extern struct menudialogdef g_ExtGameOptionsMenuDialog; + struct menuitem g_PacOptionsMenuItems[] = { { MENUITEMTYPE_CHECKBOX, @@ -56,40 +58,6 @@ struct menuitem g_PacOptionsMenuItems[] = { MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption, }, -#ifndef PLATFORM_N64 - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"Start Armed", - MPOPTION_SPAWNWITHWEAPON, - menuhandlerMpCheckboxOption, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"No Drug Blur", - MPOPTION_NODRUGBLUR, - menuhandlerMpCheckboxOption, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR, - L_OPTIONS_257, // "Friendly Fire" - MPOPTION_FRIENDLYFIRE, - menuhandlerMpDisplayTeam, - }, - { - MENUITEMTYPE_CHECKBOX, - 0, - MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LITERAL_TEXT, - (uintptr_t)"No Player on Radar", - MPOPTION_NOPLAYERONRADAR, - menuhandlerMpCheckboxOption, - }, -#endif { MENUITEMTYPE_CHECKBOX, 0, @@ -147,7 +115,7 @@ struct menudialogdef g_PacOptionsMenuDialog = { g_PacOptionsMenuItems, mpOptionsMenuDialog, MENUDIALOGFLAG_MPLOCKABLE, - NULL, + &g_ExtGameOptionsMenuDialog, }; void pacReset(void)