bool IsFlying(entity a);
+#define PHYS_PL_MAX(s) STAT(PL_MAX, s)
+#define PHYS_PL_MIN(s) STAT(PL_MIN, s)
+#define PHYS_PL_CROUCH_MAX(s) STAT(PL_CROUCH_MAX, s)
+#define PHYS_PL_CROUCH_MIN(s) STAT(PL_CROUCH_MIN, s)
+
+#define PHYS_PL_VIEWOFS(s) STAT(PL_VIEW_OFS, s)
+#define PHYS_PL_CROUCH_VIEWOFS(s) STAT(PL_CROUCH_VIEW_OFS, s)
+
+#define PHYS_VIEWHEIGHT(s) STAT(VIEWHEIGHT, s)
+#define PHYS_HEALTH(s) STAT(HEALTH, s)
+
#define BUFFS_STAT(s) STAT(BUFFS, s)
#define PHYS_ACCELERATE(s) STAT(MOVEVARS_ACCELERATE, s)
#include "cl_model.qh"
#include "common.qh"
#include "interpolate.qh"
-#include <client/defs.qh>
-#include <client/main.qh>
-#include <common/constants.qh>
-#include <common/net_linked.qh>
-#include <common/physics/player.qh>
-#include <common/stats.qh>
-#include <common/triggers/trigger/viewloc.qh>
-#include <common/util.qh>
-#include <common/viewloc.qh>
float autocvar_cl_movement_errorcompensation = 0;
bool autocvar_cl_movement_intermissionrunning = false;
{
if (IS_DUCKED(this) || !this.isplayermodel)
{
- this.mins = STAT(PL_CROUCH_MIN, this);
- this.maxs = STAT(PL_CROUCH_MAX, this);
- this.view_ofs = STAT(PL_CROUCH_VIEW_OFS, this);
+ this.mins = PHYS_PL_CROUCH_MIN(this);
+ this.maxs = PHYS_PL_CROUCH_MAX(this);
+ this.view_ofs = PHYS_PL_CROUCH_VIEWOFS(this);
}
else
{
- this.mins = STAT(PL_MIN, this);
- this.maxs = STAT(PL_MAX, this);
- this.view_ofs = STAT(PL_VIEW_OFS, this);
+ this.mins = PHYS_PL_MIN(this);
+ this.maxs = PHYS_PL_MAX(this);
+ this.view_ofs = PHYS_PL_VIEWOFS(this);
}
}
return (this == csqcplayer);
}
-void CSQCPlayer_SetViewLocation()
-{
- viewloc_SetViewLocation();
-}
-
/** Called once per CSQC_UpdateView() */
void CSQCPlayer_SetCamera()
{
const vector v0 = ((intermission && !autocvar_cl_movement_intermissionrunning) ? '0 0 0' : pmove_vel); // TRICK: pmove_vel is set by the engine when we get here. No need to network velocity
- const float vh = STAT(VIEWHEIGHT);
- const vector pl_viewofs = STAT(PL_VIEW_OFS);
- const vector pl_viewofs_crouch = STAT(PL_CROUCH_VIEW_OFS);
+ const float vh = PHYS_VIEWHEIGHT(NULL);
+ const vector pl_viewofs = PHYS_PL_VIEWOFS(NULL);
+ const vector pl_viewofs_crouch = PHYS_PL_CROUCH_VIEWOFS(NULL);
const entity e = csqcplayer;
if (e)
{
if (view.csqcmodel_teleported) refdefflags |= REFDEFFLAG_TELEPORTED;
if (input_buttons & BIT(1)) refdefflags |= REFDEFFLAG_JUMPING;
// note: these two only work in WIP2, but are harmless in WIP1
- if (STAT(HEALTH) <= 0 && STAT(HEALTH) != -666 && STAT(HEALTH) != -2342) refdefflags |= REFDEFFLAG_DEAD;
+ if (PHYS_HEALTH(NULL) <= 0 && PHYS_HEALTH(NULL) != -666 && PHYS_HEALTH(NULL) != -2342) refdefflags |= REFDEFFLAG_DEAD;
if (intermission) refdefflags |= REFDEFFLAG_INTERMISSION;
V_CalcRefdef(view, refdefflags);
}