Beispiel #1
0
bool CVoiceBanMgr::Init(char const *pGameDir)
{
	Term();

	char filename[512];
	_snprintf(filename, sizeof(filename), "%s/%s", pGameDir, g_pBanMgrFilename);

	// Load in the squelch file.
	FILE *fp = fopen(filename, "rb");
	if(fp)
	{
		int version;
		fread(&version, 1, sizeof(version), fp);
		if(version == BANMGR_FILEVERSION)
		{
			fseek(fp, 0, SEEK_END);
			int nIDs = (ftell(fp) - sizeof(version)) / 16;
			fseek(fp, sizeof(version), SEEK_SET);

			for(int i=0; i < nIDs; i++)
			{
				char playerID[16];
				fread(playerID, 1, 16, fp);
				AddBannedPlayer(playerID);
			}			
		}

		fclose(fp);
	}

	return true;
}
bool CVoiceBanMgr::Init(const char *pGameDir)
{
	Term();

	// Load in the squelch file.
	FileHandle_t fh = filesystem->Open(g_pBanMgrFilename, "rb");
	if (fh)
	{
		int version;
		filesystem->Read(&version, sizeof(version), fh);
		if(version == BANMGR_FILEVERSION)
		{
			filesystem->Seek(fh, 0, FILESYSTEM_SEEK_TAIL);
			int nIDs = (filesystem->Tell(fh) - sizeof(version)) / SIGNED_GUID_LEN;
			filesystem->Seek(fh, sizeof(version), FILESYSTEM_SEEK_CURRENT);

			for(int i=0; i < nIDs; i++)
			{
				char playerID[SIGNED_GUID_LEN];
				filesystem->Read(playerID, SIGNED_GUID_LEN, fh);
				AddBannedPlayer(playerID);
			}			
		}

		filesystem->Close(fh);
	}

	return true;
}
Beispiel #3
0
void CVoiceBanMgr::SetPlayerBan(char const playerID[16], bool bSquelch)
{
	if(bSquelch)
	{
		// Is this guy already squelched?
		if(GetPlayerBan(playerID))
			return;
	
		AddBannedPlayer(playerID);
	}
	else
	{
		BannedPlayer *pPlayer = InternalFindPlayerSquelch(playerID);
		if(pPlayer)
		{
			pPlayer->m_pPrev->m_pNext = pPlayer->m_pNext;
			pPlayer->m_pNext->m_pPrev = pPlayer->m_pPrev;
			delete pPlayer;
		}
	}
}