static void M_Msgbox_SecondButton( menucommon_t *menuitem ) { trap_Cmd_ExecuteText( EXEC_APPEND, va( "%s\n", ( char * )(menuitem->itemlocal) ) ); UI_Free( menuitem->itemlocal ); menuitem->itemlocal = NULL; trap_Cmd_Execute(); }
void M_StartServer_FreeGametypesNames( void ) { int i; if( !startserver_gametype_names ) return; for( i = 0; startserver_gametype_names[i] != NULL; i++ ) { if( startserver_gametype_names[i] ) { UI_Free( startserver_gametype_names[i] ); startserver_gametype_names[i] = NULL; } } UI_Free( startserver_gametype_names ); startserver_gametype_names = NULL; }
void M_Custom_ExecuteButton( struct menucommon_s *menuitem ) { if( menuitem && menuitem->itemlocal ) { int i; trap_Cmd_ExecuteText( EXEC_APPEND, va( "%s\n", (char *)menuitem->itemlocal ) ); for( i = 0; i < s_custom_menu.nitems; i++ ) { if( s_custom_menu.items[i] && s_custom_menu.items[i]->itemlocal ) { UI_Free( s_custom_menu.items[i]->itemlocal ); s_custom_menu.items[i]->itemlocal = NULL; } } M_ForceMenuOff(); } }
void M_Menu_TV_ChannelRemove_f( void ) { int num, id; tv_channel_t *prev, *iter; if( trap_Cmd_Argc() != 2 ) return; id = atoi( trap_Cmd_Argv( 1 ) ); if( id <= 0 ) return; num = 0; prev = NULL; iter = channels; while( iter && iter->id != id ) { prev = iter; iter = iter->next; num++; } if( !iter ) return; if( prev ) { prev->next = iter->next; } else { channels = iter->next; } UI_Free( iter ); if( num < scrollbar_curvalue ) scrollbar_curvalue--; M_RefreshScrollWindowList(); }
static void MapsList_CreateItems( const char *lastmap ) { int i, j, validmaps; int order; maplist_item_t *items; char mapinfo[MAX_CONFIGSTRING_CHARS], *mapname, *fullname; UI_FreeScrollItemList( &mapList ); for( validmaps = 0; trap_ML_GetMapByNum( validmaps, NULL, 0 ); validmaps++ ) ; if( !validmaps ) { Menu_SetStatusBar( &s_startserver_menu, "No maps found" ); return; } order = trap_Cvar_Value( "ui_maplist_sortmethod" ); items = UI_Malloc( sizeof( *items ) * validmaps ); for( i = 0; i < validmaps; i++ ) { trap_ML_GetMapByNum( i, mapinfo, sizeof( mapinfo ) ); mapname = mapinfo; fullname = mapinfo + strlen( mapname ) + 1; if( order ) items[i].name = UI_CopyString( *fullname ? fullname : mapname ); else items[i].name = UI_CopyString( mapname ); items[i].mapname = UI_CopyString( mapname ); items[i].index = i; // uppercase the first letter and letters that follow whitespaces if( order ) { if( *fullname ) { items[i].name[0] = toupper( items[i].name[0] ); for( j = 1; items[i].name[j]; j++ ) if( items[i].name[j-1] == ' ' ) items[i].name[j] = toupper( items[i].name[j] ); } else { Q_strlwr( items[i].name ); } } else { Q_strlwr( items[i].name ); } } qsort( items, validmaps, sizeof( *items ), ( int ( * )( const void *, const void * ) )MapList_MapSort ); for( i = 0; i < validmaps; i++ ) { if( !strcmp( items[i].mapname, lastmap ) ) mapList_cur_idx = i; UI_AddItemToScrollList( &mapList, items[i].name, (void *)((size_t)(items[i].index)) ); UI_Free( items[i].mapname ); UI_Free( items[i].name ); } UI_Free( items ); }