You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
2.1 KiB
110 lines
2.1 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
//=============================================================================// |
|
|
|
#ifndef ENTS_SHARED_H |
|
#define ENTS_SHARED_H |
|
|
|
#include <protocol.h> |
|
#include <iserver.h> |
|
#include "clientframe.h" |
|
#include "packed_entity.h" |
|
|
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
|
|
|
|
class CEntityInfo |
|
{ |
|
public: |
|
|
|
CEntityInfo() { |
|
m_nOldEntity = -1; |
|
m_nNewEntity = -1; |
|
m_nHeaderBase = -1; |
|
} |
|
virtual ~CEntityInfo() {}; |
|
|
|
bool m_bAsDelta; |
|
CClientFrame *m_pFrom; |
|
CClientFrame *m_pTo; |
|
|
|
UpdateType m_UpdateType; |
|
|
|
int m_nOldEntity; // current entity index in m_pFrom |
|
int m_nNewEntity; // current entity index in m_pTo |
|
|
|
int m_nHeaderBase; |
|
int m_nHeaderCount; |
|
|
|
inline void NextOldEntity( void ) |
|
{ |
|
if ( m_pFrom ) |
|
{ |
|
m_nOldEntity = m_pFrom->transmit_entity.FindNextSetBit( m_nOldEntity+1 ); |
|
|
|
if ( m_nOldEntity < 0 ) |
|
{ |
|
// Sentinel/end of list.... |
|
m_nOldEntity = ENTITY_SENTINEL; |
|
} |
|
} |
|
else |
|
{ |
|
m_nOldEntity = ENTITY_SENTINEL; |
|
} |
|
} |
|
|
|
inline void NextNewEntity( void ) |
|
{ |
|
m_nNewEntity = m_pTo->transmit_entity.FindNextSetBit( m_nNewEntity+1 ); |
|
|
|
if ( m_nNewEntity < 0 ) |
|
{ |
|
// Sentinel/end of list.... |
|
m_nNewEntity = ENTITY_SENTINEL; |
|
} |
|
} |
|
}; |
|
|
|
// PostDataUpdate calls are stored in a list until all ents have been updated. |
|
class CPostDataUpdateCall |
|
{ |
|
public: |
|
int m_iEnt; |
|
DataUpdateType_t m_UpdateType; |
|
}; |
|
|
|
|
|
// Passed around the read functions. |
|
class CEntityReadInfo : public CEntityInfo |
|
{ |
|
|
|
public: |
|
|
|
CEntityReadInfo() |
|
{ m_nPostDataUpdateCalls = 0; |
|
m_nLocalPlayerBits = 0; |
|
m_nOtherPlayerBits = 0; |
|
m_UpdateType = PreserveEnt; |
|
} |
|
|
|
bf_read *m_pBuf; |
|
int m_UpdateFlags; // from the subheader |
|
bool m_bIsEntity; |
|
|
|
int m_nBaseline; // what baseline index do we use (0/1) |
|
bool m_bUpdateBaselines; // update baseline while parsing snaphsot |
|
|
|
int m_nLocalPlayerBits; // profiling data |
|
int m_nOtherPlayerBits; // profiling data |
|
|
|
CPostDataUpdateCall m_PostDataUpdateCalls[MAX_EDICTS]; |
|
int m_nPostDataUpdateCalls; |
|
}; |
|
|
|
#endif // ENTS_SHARED_H
|
|
|