void MR_SetRouting (qboolean forceold);
-void MP_Error(void)
+void MP_Error(const char *format, ...)
{
+ char errorstring[4096];
+ va_list argptr;
+
+ va_start (argptr, format);
+ dpvsnprintf (errorstring, sizeof(errorstring), format, argptr);
+ va_end (argptr);
+ Con_Printf( "Menu_Error: %s\n", errorstring );
+
+ PRVM_Crash();
+
// fall back to the normal menu
// say it
key_dest = key_game;
- //PRVM_ResetProg();
-
// init the normal menu now -> this will also correct the menu router pointers
MR_SetRouting (TRUE);
+
+ Host_AbortCurrentFrame();
}
void MP_Keydown (int key, char ascii)
*prog->time = realtime;
// pass key
- prog->globals[OFS_PARM0] = (float) key;
- prog->globals[OFS_PARM1] = (float) ascii;
+ prog->globals.generic[OFS_PARM0] = (float) key;
+ prog->globals.generic[OFS_PARM1] = (float) ascii;
PRVM_ExecuteProgram(m_keydown, M_F_KEYDOWN"(float key, float ascii) required\n");
PRVM_End;
PRVM_End;
}
+void MP_Fallback (void)
+{
+ MP_Shutdown();
+
+ key_dest = key_game;
+
+ // init the normal menu now -> this will also correct the menu router pointers
+ MR_SetRouting (TRUE);
+}
+
void MP_Init (void)
{
PRVM_Begin;
PRVM_InitProg(PRVM_MENUPROG);
- prog->crc = M_PROGHEADER_CRC;
+ prog->headercrc = M_PROGHEADER_CRC;
prog->edictprivate_size = 0; // no private struct used
prog->name = M_NAME;
+ prog->num_edicts = 1;
prog->limit_edicts = M_MAX_EDICTS;
prog->extensionstring = vm_m_extensions;
prog->builtins = vm_m_builtins;
// allocate the mempools
prog->progs_mempool = Mem_AllocPool(M_PROG_FILENAME, 0, NULL);
- PRVM_LoadProgs(M_PROG_FILENAME, m_numrequiredfunc, m_required_func);
+ PRVM_LoadProgs(M_PROG_FILENAME, m_numrequiredfunc, m_required_func, 0, NULL);
// set m_draw and m_keydown
m_draw = (func_t) (PRVM_ED_FindFunction(M_F_DRAW) - prog->functions);
Cvar_RegisterVariable (&forceqmenu);
Cvar_RegisterVariable (&menu_options_colorcontrol_correctionvalue);
if (gamemode == GAME_NETHERWORLD)
- Cmd_AddCommand ("menu_fallback", MP_Error); //Force to old-style menu
+ Cmd_AddCommand ("menu_fallback", MP_Fallback); //Force to old-style menu
Cmd_AddCommand ("menu_restart",MR_Restart);
Cmd_AddCommand ("togglemenu", Call_MR_ToggleMenu_f);
}