Files
funnygame/game/server/baseentity.cpp
2026-03-18 18:41:28 +02:00

138 lines
2.4 KiB
C++

//================= 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();
}
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, "scale")
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)