Files
funnygame/game/client/milmoba/player.cpp

165 lines
3.9 KiB
C++

#include "player.h"
#include "cglm/cglm.h"
#include "assetmgr.h"
#include "game.h"
void C_MOBAPlayer::Precache()
{
}
void C_MOBAPlayer::Spawn()
{
BaseClass::Spawn();
SetThink(Think);
SetScale(1);
};
void C_MOBAPlayer::Think( float fDelta )
{
C_MOBAPlayer *pPlayerEntity = (C_MOBAPlayer*)UTIL_GetLocalPlayer();
m_vMovementVector.z = m_bIsBack - m_bIsForward;
m_vMovementVector.x = m_bIsRight - m_bIsLeft;
if (pPlayerEntity == this)
{
Vector vCameraPos;
vCameraPos = GetAbsOrigin();
vCameraPos.z = 20;
vCameraPos.y+=3;
g_pWorldRenderer->SetCameraPosition(vCameraPos);
Quat vCameraRot;
glm_euler_yxz_quat((vec3){m_fPitch, m_fYaw, 0}, *(versor*)&vCameraRot);
g_pWorldRenderer->SetCameraRotation(vCameraRot);
}
BaseClass::Think(fDelta);
};
LINK_ENTITY_TO_CLASS(player, C_MOBAPlayer)
BEGIN_DATADESC(C_MOBAPlayer)
END_DATADESC()
IMPLEMENT_RECV_DT(C_MOBAPlayer)
END_RECV_DT()
IMPLEMENT_SEND_DT(C_MOBAPlayer)
NetPropFloat3(m_vMovementVector),
END_SEND_DT()
static void IN_ForwardDown( int c, char **v ) {
C_BaseEntity *pPlayer = UTIL_GetLocalPlayer();
if (!pPlayer)
return;
if (!dynamic_cast<C_MOBAPlayer*>(pPlayer))
return;
((C_MOBAPlayer*)pPlayer)->m_bIsForward = true;
}
static ConCommand startforward("+forward", IN_ForwardDown);
static void IN_ForwardUp( int c, char **v ) {
C_BaseEntity *pPlayer = UTIL_GetLocalPlayer();
if (!pPlayer)
return;
if (!dynamic_cast<C_MOBAPlayer*>(pPlayer))
return;
((C_MOBAPlayer*)pPlayer)->m_bIsForward = false;
}
static ConCommand endforward("-forward", IN_ForwardUp);
static void IN_BackDown( int c, char **v ) {
C_BaseEntity *pPlayer = UTIL_GetLocalPlayer();
if (!pPlayer)
return;
if (!dynamic_cast<C_MOBAPlayer*>(pPlayer))
return;
((C_MOBAPlayer*)pPlayer)->m_bIsBack = true;
}
static ConCommand startback("+back", IN_BackDown);
static void IN_BackUp( int c, char **v ) {
C_BaseEntity *pPlayer = UTIL_GetLocalPlayer();
if (!pPlayer)
return;
if (!dynamic_cast<C_MOBAPlayer*>(pPlayer))
return;
((C_MOBAPlayer*)pPlayer)->m_bIsBack = false;
}
static ConCommand endback("-back", IN_BackUp);
static void IN_RightDown( int c, char **v ) {
C_BaseEntity *pPlayer = UTIL_GetLocalPlayer();
if (!pPlayer)
return;
if (!dynamic_cast<C_MOBAPlayer*>(pPlayer))
return;
((C_MOBAPlayer*)pPlayer)->m_bIsRight = true;
}
static ConCommand startright("+right", IN_RightDown);
static void IN_RightUp( int c, char **v ) {
C_BaseEntity *pPlayer = UTIL_GetLocalPlayer();
if (!pPlayer)
return;
if (!dynamic_cast<C_MOBAPlayer*>(pPlayer))
return;
((C_MOBAPlayer*)pPlayer)->m_bIsRight = false;
}
static ConCommand endright("-right", IN_RightUp);
static void IN_LeftDown( int c, char **v ) {
C_BaseEntity *pPlayer = UTIL_GetLocalPlayer();
if (!pPlayer)
return;
if (!dynamic_cast<C_MOBAPlayer*>(pPlayer))
return;
((C_MOBAPlayer*)pPlayer)->m_bIsLeft = true;
}
static ConCommand startleft("+left", IN_LeftDown);
static void IN_LeftUp( int c, char **v ) {
C_BaseEntity *pPlayer = UTIL_GetLocalPlayer();
if (!pPlayer)
return;
if (!dynamic_cast<C_MOBAPlayer*>(pPlayer))
return;
((C_MOBAPlayer*)pPlayer)->m_bIsLeft = false;
}
static ConCommand endleft("-left", IN_LeftUp);
void Game_OnGameAxis( EInputDeviceType eDevice, EInputAxis eAxis, float fValue )
{
}
static ConVar m_pitch("m_pitch", "0.022", FCVAR_CLIENTDLL);
static ConVar m_yaw("m_yaw", "0.022", FCVAR_CLIENTDLL);
static ConVar sens("sens", "3", FCVAR_CLIENTDLL);
void Game_OnGameAxisDiff( EInputDeviceType eDevice, EInputAxis eAxis, float fValue )
{
C_BaseEntity *pPlayer = UTIL_GetLocalPlayer();
if (!pPlayer)
return;
if (!dynamic_cast<C_MOBAPlayer*>(pPlayer))
return;
switch(eAxis)
{
case k_EInputAxis_MouseY:
((C_MOBAPlayer*)pPlayer)->m_fPitch -= glm_rad(fValue * m_pitch.GetFloat() * sens.GetFloat());
break;
case k_EInputAxis_MouseX:
((C_MOBAPlayer*)pPlayer)->m_fYaw -= glm_rad(fValue * m_yaw.GetFloat() * sens.GetFloat());
break;
default:
break;
}
}