summaryrefslogtreecommitdiff
path: root/source/ui_mods.c
diff options
context:
space:
mode:
authorAndrey Nazarov <skuller@skuller.net>2007-12-07 17:29:24 +0000
committerAndrey Nazarov <skuller@skuller.net>2007-12-07 17:29:24 +0000
commit439dd89a479e2d02fa40a421849c73616f92198e (patch)
tree96731a474ea0198a611f5fa03bcb360119d212a2 /source/ui_mods.c
parent5c30b8152eb6a0fae6e50dbd834d73a2846df4ec (diff)
Optimized FS_ListFiles (and broken Windows build).
Initial changes to demo browser to support caching.
Diffstat (limited to 'source/ui_mods.c')
-rw-r--r--source/ui_mods.c98
1 files changed, 0 insertions, 98 deletions
diff --git a/source/ui_mods.c b/source/ui_mods.c
index 2aced90..a069237 100644
--- a/source/ui_mods.c
+++ b/source/ui_mods.c
@@ -29,104 +29,6 @@ MODS MENU
=======================================================================
*/
-#define ID_LIST 102
-
-#define MAX_LISTED_MODS 32
-
-typedef struct modsMenu_s {
- menuFrameWork_t menu;
- menuList_t list;
- menuStatic_t banner;
- int numMods;
- char *names[MAX_LISTED_MODS+1];
- char *directories[MAX_LISTED_MODS];
- char **modlist;
- int lastClick;
-} modsMenu_t;
-
-static modsMenu_t m_mods;
-
-static int ModsMenu_Callback( int id, int msg, int param ) {
- switch( msg ) {
- case QM_ACTIVATE:
- cvar.Set( "game", m_mods.directories[m_mods.list.curvalue] );
- cmd.ExecuteText( EXEC_APPEND, "fs_restart" );
- UI_ForceMenuOff();
- return QMS_SILENT;
- case QM_DESTROY:
- if( m_mods.modlist ) {
- fs.FreeFileList( m_mods.modlist );
- m_mods.modlist = NULL;
- }
- break;
- default:
- break;
- }
-
- return QMS_NOTHANDLED;
-}
-
-static void ModsMenu_Init( void ) {
- int i;
- char *p;
- char *current;
-
- memset( &m_mods, 0, sizeof( m_mods ) );
-
- m_mods.names[0] = "Quake II";
- m_mods.directories[0] = "";
-
- current = cvar.VariableString( "game" );
-
- if( ( m_mods.modlist = fs.ListFiles( "$modlist", NULL, 0, &m_mods.numMods ) ) != NULL ) {
- if( m_mods.numMods > MAX_LISTED_MODS - 1 ) {
- m_mods.numMods = MAX_LISTED_MODS - 1;
- }
- for( i=0 ; i<m_mods.numMods ; i++ ) {
- m_mods.directories[i + 1] = m_mods.modlist[i];
- if( ( p = strchr( m_mods.modlist[i], '\n' ) ) != NULL ) {
- *p = 0; // TODO: file list should remain read-only...
- m_mods.names[i + 1] = p + 1;
- } else {
- m_mods.names[i + 1] = m_mods.modlist[i];
- }
-
- if( *current && !strcmp( m_mods.modlist[i], current ) ) {
- m_mods.list.curvalue = i + 1;
- }
- }
-
- m_mods.names[i + 1] = NULL;
- }
-
- m_mods.menu.callback = ModsMenu_Callback;
-
- m_mods.list.generic.type = MTYPE_LIST;
- m_mods.list.generic.id = ID_LIST;
- m_mods.list.generic.flags = QMF_HASFOCUS;
- m_mods.list.generic.x = ( uis.glconfig.vidWidth - 300 ) / 2;
- m_mods.list.generic.y = 32;
- m_mods.list.generic.width = 0;
- m_mods.list.generic.height = uis.glconfig.vidHeight - 64;
- m_mods.list.generic.name = NULL;
- m_mods.list.mlFlags = MLF_HIDE_SCROLLBAR_EMPTY;
- m_mods.list.itemnames = ( const char ** )m_mods.names;
- m_mods.list.numcolumns = 1;
- m_mods.list.columns[0].width = 300;
- m_mods.list.columns[0].name = NULL;
- m_mods.list.columns[0].uiFlags = UI_CENTER;
-
- UI_SetupDefaultBanner( &m_mods.banner, "Mods" );
-
- m_mods.menu.statusbar = "Press Enter to load";
-
- Menu_AddItem( &m_mods.menu, (void *)&m_mods.list );
- Menu_AddItem( &m_mods.menu, (void *)&m_mods.banner );
-
-}
-
void M_Menu_Mods_f( void ) {
- ModsMenu_Init();
- UI_PushMenu( &m_mods.menu );
}