================= UI_LoadMenus Load all menus based on the files listed in the data file in menuFile (default "ui/menus.txt") ================= */
| 2921 | ================= |
| 2922 | */ |
| 2923 | void UI_LoadMenus(const char *menuFile, qboolean reset) |
| 2924 | { |
| 2925 | // pc_token_t token; |
| 2926 | // int handle; |
| 2927 | int start; |
| 2928 | |
| 2929 | char *buffer; |
| 2930 | const char *holdBuffer; |
| 2931 | int len; |
| 2932 | |
| 2933 | start = Sys_Milliseconds(); |
| 2934 | |
| 2935 | len = ui.FS_ReadFile(menuFile,(void **) &buffer); |
| 2936 | |
| 2937 | if (len<1) |
| 2938 | { |
| 2939 | Com_Printf( va( S_COLOR_YELLOW "menu file not found: %s, using default\n", menuFile ) ); |
| 2940 | len = ui.FS_ReadFile("ui/menus.txt",(void **) &buffer); |
| 2941 | |
| 2942 | if (len<1) |
| 2943 | { |
| 2944 | Com_Error( ERR_FATAL, "%s", va("default menu file not found: ui/menus.txt, unable to continue!\n", menuFile )); |
| 2945 | return; |
| 2946 | } |
| 2947 | } |
| 2948 | |
| 2949 | if (reset) |
| 2950 | { |
| 2951 | Menu_Reset(); |
| 2952 | } |
| 2953 | |
| 2954 | const char *token2; |
| 2955 | holdBuffer = buffer; |
| 2956 | COM_BeginParseSession(); |
| 2957 | while ( 1 ) |
| 2958 | { |
| 2959 | token2 = COM_ParseExt( &holdBuffer, qtrue ); |
| 2960 | if (!*token2) |
| 2961 | { |
| 2962 | break; |
| 2963 | } |
| 2964 | |
| 2965 | if( *token2 == 0 || *token2 == '}') // End of the menus file |
| 2966 | { |
| 2967 | break; |
| 2968 | } |
| 2969 | |
| 2970 | if (*token2 == '{') |
| 2971 | { |
| 2972 | continue; |
| 2973 | } |
| 2974 | else if (Q_stricmp(token2, "loadmenu") == 0) |
| 2975 | { |
| 2976 | if (Load_Menu(&holdBuffer)) |
| 2977 | { |
| 2978 | continue; |
| 2979 | } |
| 2980 | else |
no test coverage detected