//----------------------------------------------------------------------------- // Loads the file system module //----------------------------------------------------------------------------- FSReturnCode_t FileSystem_LoadFileSystemModule( CFSLoadModuleInfo &fsInfo ) { // First, locate the directory with gameinfo.txt. FSReturnCode_t ret = FileSystem_SetupSteamEnvironment( fsInfo ); if ( ret != FS_OK ) return ret; // Now that the environment is setup, load the filesystem module. if ( !Sys_LoadInterface( fsInfo.m_pFileSystemDLLName, FILESYSTEM_INTERFACE_VERSION, &fsInfo.m_pModule, (void**)&fsInfo.m_pFileSystem ) ) { return SetupFileSystemError( false, FS_UNABLE_TO_INIT, "Can't load %s.", fsInfo.m_pFileSystemDLLName ); } if ( !fsInfo.m_pFileSystem->Connect( fsInfo.m_ConnectFactory ) ) return SetupFileSystemError( false, FS_UNABLE_TO_INIT, "%s IFileSystem::Connect failed.", fsInfo.m_pFileSystemDLLName ); if ( fsInfo.m_pFileSystem->Init() != INIT_OK ) return SetupFileSystemError( false, FS_UNABLE_TO_INIT, "%s IFileSystem::Init failed.", fsInfo.m_pFileSystemDLLName ); return FS_OK; }
bool LoadMySQLWrapper( const char *pHostName, const char *pDBName, const char *pUserName ) { UnloadMySQLWrapper(); // Load the DLL and the interface. if ( !Sys_LoadInterface( "mysql_wrapper", MYSQL_WRAPPER_VERSION_NAME, &g_hMySQLDLL, (void**)&g_pSQL ) ) return false; // Try to init the database. if ( !g_pSQL->InitMySQL( pDBName, pHostName, pUserName ) ) { UnloadMySQLWrapper(); return false; } return true; }
bool FileSystem_Init_Normal( const char *pFilename, FSInitType_t initType, bool bOnlyUseDirectoryName ) { if ( initType == FS_INIT_FULL ) { // First, get the name of the module char fileSystemDLLName[MAX_PATH]; bool bSteam; if ( FileSystem_GetFileSystemDLLName( fileSystemDLLName, MAX_PATH, bSteam ) != FS_OK ) return false; // If we're under Steam we need extra setup to let us find the proper modules FileSystem_SetupSteamInstallPath(); // Next, load the module, call Connect/Init. CFSLoadModuleInfo loadModuleInfo; loadModuleInfo.m_pFileSystemDLLName = fileSystemDLLName; loadModuleInfo.m_pDirectoryName = pFilename; loadModuleInfo.m_bOnlyUseDirectoryName = bOnlyUseDirectoryName; loadModuleInfo.m_ConnectFactory = Sys_GetFactoryThis(); loadModuleInfo.m_bSteam = bSteam; loadModuleInfo.m_bToolsMode = true; if ( FileSystem_LoadFileSystemModule( loadModuleInfo ) != FS_OK ) return false; // Next, mount the content CFSMountContentInfo mountContentInfo; mountContentInfo.m_pDirectoryName= loadModuleInfo.m_GameInfoPath; mountContentInfo.m_pFileSystem = loadModuleInfo.m_pFileSystem; mountContentInfo.m_bToolsMode = true; if ( FileSystem_MountContent( mountContentInfo ) != FS_OK ) return false; // Finally, load the search paths. CFSSearchPathsInit searchPathsInit; searchPathsInit.m_pDirectoryName = loadModuleInfo.m_GameInfoPath; searchPathsInit.m_pFileSystem = loadModuleInfo.m_pFileSystem; if ( FileSystem_LoadSearchPaths( searchPathsInit ) != FS_OK ) return false; // Store the data we got from filesystem_init. g_pFileSystem = g_pFullFileSystem = loadModuleInfo.m_pFileSystem; g_pFullFileSystemModule = loadModuleInfo.m_pModule; FileSystem_AddSearchPath_Platform( g_pFullFileSystem, loadModuleInfo.m_GameInfoPath ); // Set qdir. if ( !pFilename ) pFilename = "."; Q_MakeAbsolutePath( qdir, sizeof( qdir ), pFilename, NULL ); Q_StripFilename( qdir ); strlwr( qdir ); if ( qdir[0] != 0 ) Q_AppendSlash( qdir, sizeof( qdir ) ); // Set gamedir. Q_MakeAbsolutePath( gamedir, sizeof( gamedir ), loadModuleInfo.m_GameInfoPath ); Q_AppendSlash( gamedir, sizeof( gamedir ) ); } else { if ( !Sys_LoadInterface( "filesystem_stdio", FILESYSTEM_INTERFACE_VERSION, &g_pFullFileSystemModule, (void**)&g_pFullFileSystem ) ) { return false; } if ( g_pFullFileSystem->Init() != INIT_OK ) return false; g_pFullFileSystem->RemoveAllSearchPaths(); g_pFullFileSystem->AddSearchPath( "../platform", "PLATFORM" ); g_pFullFileSystem->AddSearchPath( ".", "GAME" ); g_pFileSystem = g_pFullFileSystem; } return true; }
bool FileSystem_Init_Normal( const char *pFilename, FSInitType_t initType, bool bOnlyUseDirectoryName ) { if ( initType == FS_INIT_FULL ) { // First, get the name of the module char fileSystemDLLName[MAX_PATH]; bool bSteam; if ( FileSystem_GetFileSystemDLLName( fileSystemDLLName, MAX_PATH, bSteam ) != FS_OK ) return false; // Next, load the module, call Connect/Init. CFSLoadModuleInfo loadModuleInfo; loadModuleInfo.m_pFileSystemDLLName = fileSystemDLLName; loadModuleInfo.m_pDirectoryName = pFilename; loadModuleInfo.m_bOnlyUseDirectoryName = bOnlyUseDirectoryName; loadModuleInfo.m_ConnectFactory = Sys_GetFactoryThis(); loadModuleInfo.m_bSteam = bSteam; loadModuleInfo.m_bToolsMode = true; if ( FileSystem_LoadFileSystemModule( loadModuleInfo ) != FS_OK ) return false; // Next, mount the content CFSMountContentInfo mountContentInfo; mountContentInfo.m_pDirectoryName= loadModuleInfo.m_GameInfoPath; mountContentInfo.m_pFileSystem = loadModuleInfo.m_pFileSystem; mountContentInfo.m_bToolsMode = true; if ( FileSystem_MountContent( mountContentInfo ) != FS_OK ) return false; // Finally, load the search paths. CFSSearchPathsInit searchPathsInit; searchPathsInit.m_pDirectoryName = loadModuleInfo.m_GameInfoPath; searchPathsInit.m_pFileSystem = loadModuleInfo.m_pFileSystem; if ( FileSystem_LoadSearchPaths( searchPathsInit ) != FS_OK ) return false; // Store the data we got from filesystem_init. g_pFileSystem = g_pFullFileSystem = loadModuleInfo.m_pFileSystem; g_pFullFileSystemModule = loadModuleInfo.m_pModule; FileSystem_AddSearchPath_Platform( g_pFullFileSystem, loadModuleInfo.m_GameInfoPath ); FileSystem_SetupStandardDirectories( pFilename, loadModuleInfo.m_GameInfoPath ); } else { if ( !Sys_LoadInterface( "filesystem_stdio", FILESYSTEM_INTERFACE_VERSION, &g_pFullFileSystemModule, (void**)&g_pFullFileSystem ) ) { return false; } if ( g_pFullFileSystem->Init() != INIT_OK ) return false; g_pFullFileSystem->RemoveAllSearchPaths(); g_pFullFileSystem->AddSearchPath( "../platform", "PLATFORM" ); g_pFullFileSystem->AddSearchPath( ".", "GAME" ); g_pFileSystem = g_pFullFileSystem; } return true; }
int main() { bool sessionClosed = true; bool fuckedOff = false; CSteamID stanId( (uint64)76561197996282699LL ); ISteamClient007 *steamClient; if ( !Sys_LoadInterface( "steamclient", STEAMCLIENT_INTERFACE_VERSION_007, NULL, (void**)&steamClient ) ) { getchar(); return 0; } HSteamPipe pipe = steamClient->CreateSteamPipe(); HSteamUser user = steamClient->ConnectToGlobalUser( pipe ); ISteamFriends001 *steamFriends = (ISteamFriends001 *)steamClient->GetISteamFriends( user, pipe, STEAMFRIENDS_INTERFACE_VERSION_001 ); CallbackMsg_t callBack; HSteamCall steamCall; while ( true ) { if ( Steam_BGetCallback( pipe, &callBack, &steamCall ) ) { if ( callBack.m_iCallback == FriendEndChatSession_t::k_iCallback ) { FriendEndChatSession_t *chatEnd = (FriendEndChatSession_t *)callBack.m_pubParam; if ( chatEnd->m_SteamID == stanId ) { sessionClosed = true; fuckedOff = false; } } if ( callBack.m_iCallback == FriendChatMsg_t::k_iCallback ) { FriendChatMsg_t *chatMsg = (FriendChatMsg_t *)callBack.m_pubParam; if (chatMsg->m_ulSender != stanId.ConvertToUint64()) { Steam_FreeLastCallback( pipe ); continue; } EFriendMsgType msgType; steamFriends->GetChatMessage( chatMsg->m_ulSender, chatMsg->m_iChatID, NULL, 0, &msgType ); if ( msgType == k_EFriendMsgTypeTyping ) { if ( sessionClosed ) { steamFriends->SendMsgToFriend( stanId, k_EFriendMsgTypeChat, "what teh f**k do you want" ); sessionClosed = false; } } if ( msgType == k_EFriendMsgTypeChat ) { if ( !fuckedOff ) { steamFriends->SendMsgToFriend( stanId, k_EFriendMsgTypeChat, "no." ); fuckedOff = true; } } } Steam_FreeLastCallback( pipe ); } Sleep(10); } return 0; }