This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
*/
-//
-// the net drivers should just set the apropriate bits in m_activenet,
-// instead of having the menu code look through their internal tables
-//
-#define MNET_IPX 1
-#define MNET_TCP 2
+#ifndef MENU_H
+#define MENU_H
-extern int m_activenet;
+#define M_PROG_FILENAME "menu.dat"
+#define M_NAME "menu"
+#define M_MAX_EDICTS (1 << 11) // should be enough for a menu
-//
-// menus
+enum m_state_e {
+ m_none,
+ m_main,
+ m_demo,
+ m_singleplayer,
+ m_load,
+ m_save,
+ m_multiplayer,
+ m_setup,
+ m_options,
+ m_video,
+ m_keys,
+ m_help,
+ m_quit,
+ m_lanconfig,
+ m_gameoptions,
+ m_slist,
+ m_options_effects,
+ m_options_colorcontrol
+};
+
+extern enum m_state_e m_state;
+extern char m_return_reason[32];
+
+/*
+// hard-coded menus
//
void M_Init (void);
void M_Keydown (int key);
void M_Draw (void);
void M_ToggleMenu_f (void);
+//
+// menu prog menu
+//
+void MP_Init (void);
+void MP_Keydown (int key);
+void MP_Draw (void);
+void MP_ToggleMenu_f (void);
+void MP_Shutdown (void);*/
+
+//
+// menu router
+//
+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);
+#endif