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; }
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); }
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; }
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); }
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. }
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 ); } }
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; }
VisibleSet::VisibleSet() { dl_TieOff(&m_Sets); ClearSet(); }