/* * CL_UIModule_Init */ void CL_UIModule_Init( void ) { int apiversion; ui_import_t import; void *( *builtinAPIfunc )(void *) = NULL; #ifdef UI_HARD_LINKED builtinAPIfunc = GetCGameAPI; #endif CL_UIModule_Shutdown(); ui_mempool = _Mem_AllocPool( NULL, "User Iterface", MEMPOOL_USERINTERFACE, __FILE__, __LINE__ ); CL_UIModule_InitImportStruct( import ); uie = (ui_export_t *)Com_LoadGameLibrary( "ui", "GetUIAPI", &module_handle, &import, builtinAPIfunc, cls.sv_pure, NULL ); if( !uie ) Com_Error( ERR_DROP, "Failed to load UI dll" ); apiversion = uie->API(); if( apiversion != UI_API_VERSION ) { Com_UnloadGameLibrary( &module_handle ); Mem_FreePool( &ui_mempool ); uie = NULL; Com_Error( ERR_FATAL, "UI version is %i, not %i", apiversion, UI_API_VERSION ); } uie->Init( viddef.width, viddef.height, APP_PROTOCOL_VERSION, cls.mediaRandomSeed ); }
/* * CL_UIModule_Init */ void CL_UIModule_Init( void ) { int apiversion; ui_import_t import; void *( *builtinAPIfunc )(void *) = NULL; #ifdef UI_HARD_LINKED builtinAPIfunc = GetUIAPI; #endif CL_UIModule_Shutdown(); ui_mempool = _Mem_AllocPool( NULL, "User Iterface", MEMPOOL_USERINTERFACE, __FILE__, __LINE__ ); import.Error = CL_UIModule_Error; import.Print = CL_UIModule_Print; import.Dynvar_Create = Dynvar_Create; import.Dynvar_Destroy = Dynvar_Destroy; import.Dynvar_Lookup = Dynvar_Lookup; import.Dynvar_GetName = Dynvar_GetName; import.Dynvar_GetValue = Dynvar_GetValue; import.Dynvar_SetValue = Dynvar_SetValue; import.Dynvar_AddListener = Dynvar_AddListener; import.Dynvar_RemoveListener = Dynvar_RemoveListener; import.Cvar_Get = Cvar_Get; import.Cvar_Set = Cvar_Set; import.Cvar_SetValue = Cvar_SetValue; import.Cvar_ForceSet = Cvar_ForceSet; import.Cvar_String = Cvar_String; import.Cvar_Value = Cvar_Value; import.Cmd_Argc = Cmd_Argc; import.Cmd_Argv = Cmd_Argv; import.Cmd_Args = Cmd_Args; import.Cmd_AddCommand = Cmd_AddCommand; import.Cmd_RemoveCommand = Cmd_RemoveCommand; import.Cmd_ExecuteText = Cbuf_ExecuteText; import.Cmd_Execute = Cbuf_Execute; import.Cmd_SetCompletionFunc = Cmd_SetCompletionFunc; import.FS_FOpenFile = FS_FOpenFile; import.FS_Read = FS_Read; import.FS_Write = FS_Write; import.FS_Print = FS_Print; import.FS_Tell = FS_Tell; import.FS_Seek = FS_Seek; import.FS_Eof = FS_Eof; import.FS_Flush = FS_Flush; import.FS_FCloseFile = FS_FCloseFile; import.FS_RemoveFile = FS_RemoveFile; import.FS_GetFileList = FS_GetFileList; import.FS_GetGameDirectoryList = FS_GetGameDirectoryList; import.FS_FirstExtension = FS_FirstExtension; import.FS_MoveFile = FS_MoveFile; import.FS_IsUrl = FS_IsUrl; import.FS_FileMTime = FS_FileMTime; import.FS_RemoveDirectory = FS_RemoveDirectory; import.CL_Quit = CL_Quit; import.CL_SetKeyDest = CL_SetKeyDest; import.CL_ResetServerCount = CL_ResetServerCount; import.CL_GetClipboardData = CL_GetClipboardData; import.CL_FreeClipboardData = CL_FreeClipboardData; import.CL_OpenURLInBrowser = CL_OpenURLInBrowser; import.CL_ReadDemoMetaData = CL_ReadDemoMetaData; import.Key_ClearStates = Key_ClearStates; import.Key_GetBindingBuf = Key_GetBindingBuf; import.Key_KeynumToString = Key_KeynumToString; import.Key_StringToKeynum = Key_StringToKeynum; import.Key_SetBinding = Key_SetBinding; import.Key_IsDown = Key_IsDown; import.R_ClearScene = R_ClearScene; import.R_AddEntityToScene = R_AddEntityToScene; import.R_AddLightToScene = R_AddLightToScene; import.R_AddPolyToScene = R_AddPolyToScene; import.R_RenderScene = R_RenderScene; import.R_EndFrame = R_EndFrame; import.R_RegisterWorldModel = CL_UIModule_R_RegisterWorldModel; import.R_ModelBounds = R_ModelBounds; import.R_ModelFrameBounds = R_ModelFrameBounds; import.R_RegisterModel = R_RegisterModel; import.R_RegisterPic = R_RegisterPic; import.R_RegisterRawPic = R_RegisterRawPic; import.R_RegisterLevelshot = R_RegisterLevelshot; import.R_RegisterSkin = R_RegisterSkin; import.R_RegisterSkinFile = R_RegisterSkinFile; import.R_RegisterVideo = R_RegisterVideo; import.R_LerpTag = R_LerpTag; import.R_DrawStretchPic = R_DrawStretchPic; import.R_DrawRotatedStretchPic = R_DrawRotatedStretchPic; import.R_DrawStretchPoly = R_DrawStretchPoly; import.R_TransformVectorToScreen = R_TransformVectorToScreen; import.R_SetScissorRegion = R_SetScissorRegion; import.R_GetShaderDimensions = R_GetShaderDimensions; import.R_SkeletalGetNumBones = R_SkeletalGetNumBones; import.R_SkeletalGetBoneInfo = R_SkeletalGetBoneInfo; import.R_SkeletalGetBonePose = R_SkeletalGetBonePose; import.S_RegisterSound = CL_SoundModule_RegisterSound; import.S_StartLocalSound = CL_SoundModule_StartLocalSound; import.S_StartBackgroundTrack = CL_SoundModule_StartBackgroundTrack; import.S_StopBackgroundTrack = CL_SoundModule_StopBackgroundTrack; import.SCR_RegisterFont = SCR_RegisterFont; import.SCR_DrawString = SCR_DrawString; import.SCR_DrawStringWidth = SCR_DrawStringWidth; import.SCR_DrawClampString = SCR_DrawClampString; import.SCR_strHeight = SCR_strHeight; import.SCR_strWidth = SCR_strWidth; import.SCR_StrlenForWidth = SCR_StrlenForWidth; import.GetConfigString = CL_UIModule_GetConfigString; import.Milliseconds = Sys_Milliseconds; import.Microseconds = Sys_Microseconds; import.Hash_BlockChecksum = Com_MD5Digest32; import.Hash_SuperFastHash = Com_SuperFastHash; import.AsyncStream_UrlEncode = AsyncStream_UrlEncode; import.AsyncStream_UrlDecode = AsyncStream_UrlDecode; import.AsyncStream_PerformRequest = CL_UIModule_AsyncStream_PerformRequest; import.VID_GetModeInfo = VID_GetModeInfo; import.VID_FlashWindow = VID_FlashWindow; import.Mem_Alloc = CL_UIModule_MemAlloc; import.Mem_Free = CL_UIModule_MemFree; import.ML_GetFilename = ML_GetFilename; import.ML_GetFullname = ML_GetFullname; import.ML_GetMapByNum = ML_GetMapByNum; import.MM_Login = CL_MM_Login; import.MM_Logout = CL_MM_Logout; import.MM_GetLoginState = CL_MM_GetLoginState; import.MM_GetLastErrorMessage = CL_MM_GetLastErrorMessage; import.MM_GetProfileURL = CL_MM_GetProfileURL; import.MM_GetBaseWebURL = CL_MM_GetBaseWebURL; import.asGetAngelExport = Com_asGetAngelExport; import.Irc_HistorySize = Irc_HistorySize; import.Irc_HistoryTotalSize = Irc_HistoryTotalSize; import.Irc_GetHistoryHeadNode = Irc_GetHistoryHeadNode; import.Irc_GetNextHistoryNode = Irc_GetNextHistoryNode; import.Irc_GetPrevHistoryNode = Irc_GetPrevHistoryNode; import.Irc_GetHistoryNodeLine = Irc_GetHistoryNodeLine; uie = (ui_export_t *)Com_LoadGameLibrary( "ui", "GetUIAPI", &module_handle, &import, builtinAPIfunc, cls.sv_pure, NULL ); if( !uie ) Com_Error( ERR_DROP, "Failed to load UI dll" ); apiversion = uie->API(); if( apiversion != UI_API_VERSION ) { Com_UnloadGameLibrary( &module_handle ); Mem_FreePool( &ui_mempool ); uie = NULL; Com_Error( ERR_FATAL, "UI version is %i, not %i", apiversion, UI_API_VERSION ); } CL_UIModule_AsyncStream_Init(); uie->Init( viddef.width, viddef.height, APP_PROTOCOL_VERSION, cls.mediaRandomSeed, cls.demo.playing, cls.demo.name ); }