Player movement speeds are now specified by classtype.
This commit is contained in:
parent
99c8ce8787
commit
1697f318cd
2 changed files with 91 additions and 9 deletions
|
@ -56,12 +56,15 @@ class player:NSClientPlayer
|
||||||
/* ammo 3 */
|
/* ammo 3 */
|
||||||
PREDICTED_INT(mode_tempstate)
|
PREDICTED_INT(mode_tempstate)
|
||||||
|
|
||||||
virtual void(void) Physics_Jump;
|
virtual void Physics_Jump(void);
|
||||||
|
virtual float Physics_MaxSpeed(void);
|
||||||
|
|
||||||
#ifdef CLIENT
|
#ifdef CLIENT
|
||||||
virtual void(float,float) ReceiveEntity;
|
virtual void ReceiveEntity(float,float);
|
||||||
virtual void(void) PredictPreFrame;
|
virtual void PredictPreFrame(void);
|
||||||
virtual void(void) PredictPostFrame;
|
virtual void PredictPostFrame(void);
|
||||||
|
virtual void UpdateAliveCam(void);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
int m_iMaxHealth;
|
int m_iMaxHealth;
|
||||||
int m_iMaxArmor;
|
int m_iMaxArmor;
|
||||||
|
@ -73,11 +76,12 @@ class player:NSClientPlayer
|
||||||
int m_iMaxDetpack;
|
int m_iMaxDetpack;
|
||||||
int m_iMaxMedikit;
|
int m_iMaxMedikit;
|
||||||
|
|
||||||
virtual void(void) EvaluateEntity;
|
virtual void EvaluateEntity(void);
|
||||||
virtual float(entity, float) SendEntity;
|
virtual float SendEntity(entity, float);
|
||||||
|
|
||||||
|
virtual void SpawnIntoGame(void);
|
||||||
|
virtual void MakeClass(classtype_e);
|
||||||
|
|
||||||
virtual void(void) SpawnIntoGame;
|
|
||||||
virtual void(classtype_e) MakeClass;
|
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -85,6 +89,39 @@ class player:NSClientPlayer
|
||||||
void Weapons_AmmoUpdate(entity);
|
void Weapons_AmmoUpdate(entity);
|
||||||
void HUD_AmmoNotify_Check(player pl);
|
void HUD_AmmoNotify_Check(player pl);
|
||||||
void HUD_ItemNotify_Check(player pl);
|
void HUD_ItemNotify_Check(player pl);
|
||||||
|
void Camera_RunPosBob(vector angles, __inout vector camera_pos);
|
||||||
|
void Camera_StrafeRoll(__inout vector camera_angle);
|
||||||
|
void Shake_Update(NSClientPlayer);
|
||||||
|
|
||||||
|
void
|
||||||
|
player::UpdateAliveCam(void)
|
||||||
|
{
|
||||||
|
vector cam_pos = GetEyePos();
|
||||||
|
Camera_RunPosBob(view_angles, cam_pos);
|
||||||
|
|
||||||
|
g_view.SetCameraOrigin(cam_pos);
|
||||||
|
Camera_StrafeRoll(view_angles);
|
||||||
|
g_view.SetCameraAngle(view_angles);
|
||||||
|
|
||||||
|
if (vehicle) {
|
||||||
|
NSVehicle veh = (NSVehicle)vehicle;
|
||||||
|
|
||||||
|
if (veh.UpdateView)
|
||||||
|
veh.UpdateView();
|
||||||
|
} else if (health) {
|
||||||
|
if (autocvar_pm_thirdPerson == TRUE) {
|
||||||
|
makevectors(view_angles);
|
||||||
|
vector vStart = [pSeat->m_vecPredictedOrigin[0], pSeat->m_vecPredictedOrigin[1], pSeat->m_vecPredictedOrigin[2] + 16] + (v_right * 4);
|
||||||
|
vector vEnd = vStart + (v_forward * -48) + [0,0,16] + (v_right * 4);
|
||||||
|
traceline(vStart, vEnd, FALSE, this);
|
||||||
|
g_view.SetCameraOrigin(trace_endpos + (v_forward * 5));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Shake_Update(this);
|
||||||
|
g_view.AddPunchAngle(punchangle);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
=================
|
=================
|
||||||
player::ReceiveEntity
|
player::ReceiveEntity
|
||||||
|
@ -462,7 +499,7 @@ player::MakeClass(classtype_e class)
|
||||||
m_iMaxShells = 40;
|
m_iMaxShells = 40;
|
||||||
m_iMaxNails = 50;
|
m_iMaxNails = 50;
|
||||||
m_iMaxCells = 200;
|
m_iMaxCells = 200;
|
||||||
m_iMaxRockets = 20;
|
m_iMaxRockets = 60;
|
||||||
env_message_single(this, "HELP_PYRO");
|
env_message_single(this, "HELP_PYRO");
|
||||||
break;
|
break;
|
||||||
case CLASS_SPY:
|
case CLASS_SPY:
|
||||||
|
|
|
@ -49,3 +49,48 @@ player::Physics_Jump(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float
|
||||||
|
player::Physics_MaxSpeed(void)
|
||||||
|
{
|
||||||
|
float maxspeed = serverkeyfloat("phy_maxspeed");
|
||||||
|
float desiredspeed;
|
||||||
|
|
||||||
|
/* values courtesy of https://wiki.teamfortress.com/ */
|
||||||
|
switch (classtype) {
|
||||||
|
case CLASS_SCOUT:
|
||||||
|
desiredspeed = 400.0f;
|
||||||
|
break;
|
||||||
|
case CLASS_SNIPER:
|
||||||
|
desiredspeed = 300.0f;
|
||||||
|
break;
|
||||||
|
case CLASS_SOLDIER:
|
||||||
|
desiredspeed = 240.0f;
|
||||||
|
break;
|
||||||
|
case CLASS_DEMO:
|
||||||
|
desiredspeed = 280.0f;
|
||||||
|
break;
|
||||||
|
case CLASS_MEDIC:
|
||||||
|
desiredspeed = 320.0f;
|
||||||
|
break;
|
||||||
|
case CLASS_HVYWEAPON:
|
||||||
|
desiredspeed = 228.0f;
|
||||||
|
break;
|
||||||
|
case CLASS_PYRO:
|
||||||
|
desiredspeed = 300.0f;
|
||||||
|
break;
|
||||||
|
case CLASS_SPY:
|
||||||
|
desiredspeed = 300.0f;
|
||||||
|
break;
|
||||||
|
case CLASS_ENGINEER:
|
||||||
|
desiredspeed = 300.0f;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
desiredspeed = 300.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GetFlags() & FL_CROUCHING)
|
||||||
|
desiredspeed /= 3;
|
||||||
|
|
||||||
|
return min(desiredspeed, maxspeed);
|
||||||
|
}
|
Loading…
Reference in a new issue