#ifndef MENU_H
#define MENU_H
-#define M_PROG_FILENAME "menu.dat"
-#define M_NAME "menu"
-#define M_MAX_EDICTS (1 << 11) // should be enough for a menu
-
enum m_state_e {
m_none,
m_main,
m_demo,
m_singleplayer,
+ m_transfusion_episode,
+ m_transfusion_skill,
m_load,
m_save,
m_multiplayer,
m_video,
m_keys,
m_help,
+ m_credits,
m_quit,
m_lanconfig,
m_gameoptions,
m_slist,
m_options_effects,
- m_options_colorcontrol
+ m_options_graphics,
+ m_options_colorcontrol,
+ m_reset,
+ m_modlist
};
extern enum m_state_e m_state;
-extern char m_return_reason[32];
+extern char m_return_reason[128];
+void M_Update_Return_Reason(const char *s);
/*
// hard-coded menus
//
void M_Init (void);
-void M_Keydown (int key);
+void M_KeyEvent (int key);
void M_Draw (void);
-void M_ToggleMenu_f (void);
+void M_ToggleMenu (int mode);
//
// menu prog menu
//
void MP_Init (void);
-void MP_Keydown (int key);
+void MP_KeyEvent (int key);
void MP_Draw (void);
-void MP_ToggleMenu_f (void);
+void MP_ToggleMenu (int mode);
void MP_Shutdown (void);*/
//
// menu router
//
+
+void MR_Init_Commands (void);
void MR_Init (void);
void MR_Restart (void);
-void (*MR_Keydown) (int key, char ascii);
-void (*MR_Draw) (void);
-void (*MR_ToggleMenu_f) (void);
-void (*MR_Shutdown) (void);
+extern void (*MR_KeyEvent) (int key, int ascii, qboolean downevent);
+extern void (*MR_Draw) (void);
+extern void (*MR_ToggleMenu) (int mode);
+extern void (*MR_Shutdown) (void);
+extern void (*MR_NewMap) (void);
+extern int (*MR_GetServerListEntryCategory) (const serverlist_entry_t *entry);
+
+typedef struct video_resolution_s
+{
+ const char *type;
+ int width, height;
+ int conwidth, conheight;
+ double pixelheight; ///< pixel aspect
+}
+video_resolution_t;
+extern video_resolution_t *video_resolutions;
+extern int video_resolutions_count;
+extern video_resolution_t video_resolutions_hardcoded[];
+extern int video_resolutions_hardcoded_count;
#endif