//================= Copyright kotofyt, All rights reserved ==================// // // Purpose: // //===========================================================================// #include "baseentity.h" #include "datamap.h" #include "tier0/lib.h" #include "tier0/mem.h" CBaseEntity::~CBaseEntity() { } void CBaseEntity::Precache() { } void CBaseEntity::Spawn() { Precache(); SetAbsOrigin({0, 0, 0}); SetAbsQAngles(0, 0, 0); SetScale(1); } void CBaseEntity::SetAbsAngles( Quat vQuat ) { m_vRotation = vQuat; } void CBaseEntity::SetAbsQAngles( float fPitch, float fYaw, float fRoll ) { versor q; glm_euler_yzx_quat((vec3){fPitch, fYaw, fRoll}, q); m_vRotation.x = q[0]; m_vRotation.y = q[1]; m_vRotation.z = q[2]; m_vRotation.w = q[3]; } void CBaseEntity::SetAbsOrigin( Vector origin ) { m_vPosition = origin; } void CBaseEntity::SetScale( float fScale ) { m_vScale.x = fScale; m_vScale.y = fScale; m_vScale.z = fScale; } QAngle CBaseEntity::GetAbsQAngles( void ) { } Quat CBaseEntity::GetAbsAngles( void ) { return m_vRotation; } Vector CBaseEntity::GetAbsOrigin( void ) { return m_vPosition; } float CBaseEntity::GetScale( void ) { return m_vScale.x; } void CBaseEntity::SetThinkImpl( fnThink pfnThink ) { m_pfnThink = pfnThink; } void CBaseEntity::SetNextThink( float fThink ) { } typedescription_t *CBaseEntity::FindDataByName( const char *szName ) { datamap_t *pDataMap; int i; pDataMap = GetDataMap(); lookforname: for ( i = 0; i < pDataMap->m_iNumFields; i++ ) { if (!V_strcmp(pDataMap->m_pData[i].m_szFieldName, szName)) return &pDataMap->m_pData[i]; } pDataMap = pDataMap->m_pBase; if (pDataMap) goto lookforname; return NULL; }; typedescription_t *CBaseEntity::FindDataByMapName( const char *szName ) { datamap_t *pDataMap; int i; pDataMap = GetDataMap(); lookforname: for ( i = 0; i < pDataMap->m_iNumFields; i++ ) { if (!V_strcmp(pDataMap->m_pData[i].m_szEditorName, szName)) return &pDataMap->m_pData[i]; } pDataMap = pDataMap->m_pBase; if (pDataMap) goto lookforname; return NULL; }; BEGIN_DATADESC_NOBASE(CBaseEntity) DEFINE_KEYFIELD(m_vPosition, FIELD_FLOAT3, "origin") DEFINE_KEYFIELD(m_vRotation, FIELD_QUATERNION, "angles") DEFINE_KEYFIELD(m_vScale, FIELD_FLOAT3, "scales") END_DATADESC() IMPLEMENT_SEND_DT_NOBASE(CBaseEntity) NetPropFloat3(m_vPosition), NetPropQuaternion(m_vRotation), NetPropFloat3(m_vScale), END_SEND_DT() IMPLEMENT_EMPTY_RECV_DT_NOBASE(CBaseEntity)