diff --git a/src/m_menu.c b/src/m_menu.c index 203531ea8..d6436ffa8 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -341,9 +341,11 @@ static void M_ReplayHut(INT32 choice); static void M_HandleReplayHutList(INT32 choice); static void M_DrawReplayHut(void); static boolean M_QuitReplayHut(void); +static void M_EnterReplayOptions(INT32 choice); // Drawing functions static void M_DrawGenericMenu(void); +static void M_DrawGenericBackgroundMenu(void); static void M_DrawCenteredMenu(void); static void M_DrawAddons(void); static void M_DrawSkyRoom(void); @@ -534,12 +536,18 @@ static menuitem_t MISC_AddonsMenu[] = static menuitem_t MISC_ReplayHutMenu[] = { - {IT_SUBMENU |IT_STRING, NULL, "Replay Options...", NULL, 0}, + {IT_CALL |IT_STRING, NULL, "Replay Options...", M_EnterReplayOptions, 0}, {IT_KEYHANDLER|IT_NOTHING, NULL, "", M_HandleReplayHutList, 20}, // Dummy menuitem for the replay list {IT_NOTHING, NULL, "", NULL, 20}, // Dummy for handling wrapping to the top of the menu.. }; +static menuitem_t MISC_ReplayOptionsMenu[] = +{ + {IT_CVAR|IT_STRING, NULL, "Record Replays", &cv_recordmultiplayerdemos, 0}, + {IT_CVAR|IT_STRING, NULL, "Sync Check Interval", &cv_netdemosyncquality, 10}, +}; + // --------------------------------- // Pause Menu Mode Attacking Edition // --------------------------------- @@ -1608,6 +1616,17 @@ menu_t MISC_ReplayHutDef = (sizeof (MISC_ReplayHutMenu)/sizeof (menuitem_t)) - 2, // Start on the replay list M_QuitReplayHut }; +menu_t MISC_ReplayOptionsDef = +{ + NULL, + sizeof (MISC_ReplayOptionsMenu)/sizeof (menuitem_t), + &MISC_ReplayHutDef, + MISC_ReplayOptionsMenu, + M_DrawGenericBackgroundMenu, + 27, 40, + 0, + NULL +}; menu_t MAPauseDef = PAUSEMENUSTYLE(MAPauseMenu, 40, 72); menu_t SPauseDef = PAUSEMENUSTYLE(SPauseMenu, 40, 72); @@ -3713,6 +3732,12 @@ static void M_DrawGenericMenu(void) } } +static void M_DrawGenericBackgroundMenu(void) +{ + V_DrawPatchFill(W_CachePatchName("SRB2BACK", PU_CACHE)); + M_DrawGenericMenu(); +} + static void M_DrawPauseMenu(void) { #if 0 @@ -5324,6 +5349,15 @@ static boolean M_QuitReplayHut(void) return true; } +static void M_EnterReplayOptions(INT32 choice) +{ + (void)choice; + + // We can't just use M_SetupNextMenu because that'll boot us back to the title screen! + currentMenu = &MISC_ReplayOptionsDef; + itemOn = currentMenu->lastOn; +} + static void M_PandorasBox(INT32 choice) { (void)choice;