Пример #1
0
FTServ *fts_Init(FTSInitStruct *pStruct, uint32 flags)
{
	FTServ *pRet;

	LT_MEM_TRACK_ALLOC(pRet = new FTServ,LT_MEM_TYPE_MISC);

	pRet->m_nNeededFiles = 0;
	pRet->m_nTotalFiles = 0;
	pRet->m_State = 0;
	pRet->m_ServerFlags = flags;
	pRet->m_TimeDelta = 0.0f;
	pRet->m_UserData1 = LTNULL;
	pRet->m_pCurFileStream = LTNULL;
	pRet->m_pCurFile = LTNULL;
	pRet->m_nUnverifiedBlocks = 0;
	pRet->m_nBytesLeft = 0;

	pRet->m_Strings.SetAllocSize(4096);
	LT_MEM_TRACK_ALLOC(pRet->m_FTFileBank.Init(128, 128), LT_MEM_TYPE_MISC);

	memcpy(&pRet->m_InitStruct, pStruct, sizeof(FTSInitStruct));
	dl_TieOff(&pRet->m_Files);
	pRet->m_State = FTSTATE_NONE;
	pRet->m_BytesPerSecond = 100000.0f; // Basically, send as fast as possible.

	// This was being reset causing models to be loaded more than once in single
	// player games... contact Peter Higley if this causes a problem
//	pRet->m_ServerFlags = 0;	(PLH 10/25/99)

	return (FTServ *)pRet;
}
Пример #2
0
void spr_Destroy(Sprite *pSprite)
{
	uint32 i;

    if(pSprite->m_pFileIdent)
	{
		pSprite->m_pFileIdent->m_pData = LTNULL;
	}
			
	// Remove ourselves from the m_Sprites lists
	dl_Remove(&pSprite->m_Link); 
	dl_TieOff(&pSprite->m_Link);

	if(pSprite->m_Anims)
	{
		for(i=0; i < pSprite->m_nAnims; i++)
		{
			if(pSprite->m_Anims[i].m_Frames)
            {
				dfree(pSprite->m_Anims[i].m_Frames);
            }
		}

		dfree(pSprite->m_Anims);
	}

	dfree(pSprite);
}
Пример #3
0
CDestructable::CDestructable() : Aggregate()
{
	m_hObject					= DNULL;
//	pOwner					= DNULL;

	m_bDead						= DFALSE;
	m_bApplyDamagePhysics		= DTRUE;
	m_fMass						= 1.0;
	m_fHitPoints				= 1;
	m_fDeathHitPoints			= 1;
	m_fMaxHitPoints				= 1;
	m_fMaxMegaHitPoints			= 1;
	m_fArmorPoints				= 0.0;
	m_fMaxArmorPoints			= 1.0;
	m_fMaxNecroArmorPoints		= 1.0;
	m_fResistance				= 1.0;

	m_nLastDamageType			= DAMAGE_TYPE_NORMAL;
	m_fLastDamagePercent		= 0.0f;
	m_fLastDamageAmount			= 0.0f;
	VEC_INIT(m_vLastDamageDirection);

	m_hstrDamageTriggerTarget	= DNULL;
	m_hstrDamageTriggerMessage	= DNULL;
	m_hstrDeathTriggerTarget	= DNULL;
	m_hstrDeathTriggerMessage	= DNULL;

	m_hstrSpawnObject			= DNULL;
	VEC_INIT(m_vSpawnObjectVel);
	
	m_bGodMode					= DFALSE;
	m_bNighInvulnerable			= DFALSE;
	m_hWhoKilledMeLast			= DNULL;
	m_bTriggerOnly				= DFALSE;

	m_fDeathDelay				= 0.0f;

	m_Link.m_pData				= DNULL;
	if( m_dwNumDestructables == 0 )
	{
		dl_TieOff( &m_DestructableHead );
	}

	m_hLastDamager = DNULL;
	m_nNodeHit = 0;
	m_nSideHit = 0;

	// Init these [gk]
	m_pInventoryMgr	= DNULL;
	m_pAnim_Sound = DNULL;

	m_bAddVelocity = DFALSE;
	VEC_INIT(m_vAddVelocity);

	m_bDestructable			= DTRUE;
}
Пример #4
0
void VisibleSet::Term()
{
	LTLink *pCur, *pNext;
	BaseObjectSet *pSet;

	for(pCur=m_Sets.m_pNext; pCur != &m_Sets; pCur=pNext)
	{
		pNext = pCur->m_pNext;
		pSet = (BaseObjectSet*)pCur->m_pData;
	}

	dl_TieOff(&m_Sets);
}
Пример #5
0
void cc_InitState(ConsoleState *pState)
{
	int i;

	pState->m_StringHash = hs_CreateHashTable(500, HASH_STRING_NOCASE);
	pState->m_VarHash = hs_CreateHashTable(500, HASH_STRING_NOCASE);
	dl_TieOff(&pState->m_ExtraCommands);

	// Register the commands.
	for(i=0; i < pState->m_nCommandStructs; i++)
	{
		cc_AddCommand(pState, pState->m_pCommandStructs[i].pCmdName, pState->m_pCommandStructs[i].fn,
			pState->m_pCommandStructs[i].flags);
	}

	// Create the variables.
}
Пример #6
0
CameraObj::CameraObj() : B2BaseClass(OT_NORMAL)
{
    m_bActive		  = DFALSE;
	m_bStartActive	  = DFALSE;
	m_bIsListener	  = DTRUE;
	m_fActiveTime	  = -1;
	m_fDeactivateTime = 0;
	m_bPlayerMovement = DFALSE;
	m_nType			  = CAMTYPE_FULLSCREEN;
	m_hRay			  = DNULL;
    m_hLinkObject	  = DNULL;
	m_Link.m_pData	  = DNULL;
	m_bHidePlayer     = DFALSE;
	if( m_dwNumCameras == 0 )
	{
		dl_TieOff( &m_CameraHead );
	}
}
Пример #7
0
HHASHTABLE hs_CreateHashTable(uint32 mapSize, int hashType)
{
	HashTable *pTable;
	uint32 size, i;

	if(mapSize == 0)
		return 0;

	if(hashType < 0 || hashType >= NUM_HASH_TYPES)
		return 0;

	size = sizeof(HashTable) + (sizeof(MapEntry) * (mapSize-1));
	pTable = (HashTable*)dalloc(size);
	memset(pTable, 0, size);
	pTable->m_HashType = hashType;

	pTable->m_MapSize = mapSize;
	for(i=0; i < mapSize; i++)
	{
		pTable->m_Map[i].m_pHashTable = pTable;
		pTable->m_Map[i].m_Index = i;
		dl_TieOff(&pTable->m_Map[i].m_Elements);
	}

	// Initialize the global hashing tables..
	g_GetHashCodeFns[HASH_2BYTENUMBER] = hs_GetCode_2ByteNumber;
	g_GetHashCodeFns[HASH_STRING_NOCASE] = hs_GetCode_StringNoCase;
	g_GetHashCodeFns[HASH_RAW] = hs_GetCode_Raw;
	g_GetHashCodeFns[HASH_FILENAME] = hs_GetCode_Filename;

	g_CompareKeyFns[HASH_2BYTENUMBER] = hs_CompareKey_2ByteNumber;
	g_CompareKeyFns[HASH_STRING_NOCASE] = hs_CompareKey_StringNoCase;
	g_CompareKeyFns[HASH_RAW] = hs_CompareKey_Raw;
	g_CompareKeyFns[HASH_FILENAME] = hs_CompareKey_Filename;

	return (HHASHTABLE)pTable;
}
Пример #8
0
VisibleSet::VisibleSet()
{
	dl_TieOff(&m_Sets);
	ClearSet();
}