networking fixes

This commit is contained in:
2026-03-08 18:57:00 +02:00
parent 1a2a353e03
commit 321a2f31a9
13 changed files with 130 additions and 19 deletions

View File

@@ -113,7 +113,7 @@ IEntityFactory *CEntitySystem::GetFactoryByClassname( const char *szName )
return NULL;
}
void CEntitySystem::Think()
void CEntitySystem::Think( float fDelta )
{
CBaseEntity *pEntity;
int i;
@@ -128,7 +128,7 @@ void CEntitySystem::Think()
if ( !pEntity->m_pfnThink )
continue;
(pEntity->*pEntity->m_pfnThink)(0);
(pEntity->*pEntity->m_pfnThink)(fDelta);
}
}

View File

@@ -24,7 +24,7 @@ public:
virtual IEntityFactory *GetFactoryByClassname( const char *szName );
virtual void Think();
virtual void Think( float fDelta );
virtual CBaseEntity **GetEntities();
virtual void NetRecvPacket( NetPacket_t *pPacket );

View File

@@ -162,12 +162,11 @@ void NET_ProcessPacket( INetworkBase *pBase )
if (g_pCurrentConnection)
g_pCurrentConnection->SendPacket({&stLocalEntity, sizeof(stLocalEntity), 0, PACKET_MUST_ARRIVE});
}
return;
break;
case MESSAGE_ENTITY_DATA_SYNC:
EntitySystem()->NetRecvPacket(&packet);
pBase->RecievePacket();
break;
default:
pBase->RecievePacket();
break;
}
pBase->RecievePacket();
@@ -208,7 +207,7 @@ void CFunnyGameBridge::Frame( float fDelta )
if (g_pCurrentConnection)
{
g_pPhysicsWorld->Frame(fTickRate);
EntitySystem()->Think();
EntitySystem()->Think(fTickRate);
EntitySystem()->NetSendThink(g_pCurrentConnection);
}
}

View File

@@ -6,7 +6,7 @@
void CMOBAPlayer::Spawn()
{
CPhysicsProp::Spawn();
CBaseEntity::Spawn();
SetModel("game/core/models/cube.fmdl");
SetScale(1);
SetThink(Think);
@@ -14,8 +14,14 @@ void CMOBAPlayer::Spawn()
void CMOBAPlayer::Think( float fDelta )
{
V_printf("%f %f %f\n", m_vMovementVector.x, m_vMovementVector.y, m_vMovementVector.z);
CPhysicsProp::Think(fDelta);
Vector vPosition = GetAbsOrigin();
// player might lie to us
m_vMovementVector.x = glm_clamp(m_vMovementVector.x, -1, 1);
m_vMovementVector.y = glm_clamp(m_vMovementVector.y, -1, 1);
vPosition.x += m_vMovementVector.x*fDelta*5;
vPosition.z += m_vMovementVector.z*fDelta*5;
SetAbsOrigin(vPosition);
};
LINK_ENTITY_TO_CLASS(player, CMOBAPlayer)

View File

@@ -3,10 +3,10 @@
#include "physicsprop.h"
class CMOBAPlayer: public CPhysicsProp
class CMOBAPlayer: public CBaseModelEntity
{
public:
DECLARE_CLASS(CMOBAPlayer, CPhysicsProp);
DECLARE_CLASS(CMOBAPlayer, CBaseModelEntity);
DECLARE_DATADESC();
DECLARE_SERVERCLASS()

View File

View File