Client: Replace rogue setproperty calls with ones talking to our g_view object
This commit is contained in:
parent
81b4bc042f
commit
6d8273331a
15 changed files with 95 additions and 103 deletions
|
@ -48,6 +48,9 @@ NSView
|
|||
|
||||
NSClient m_client;
|
||||
|
||||
vector m_vecClientAngle;
|
||||
bool m_bSetClientAngle;
|
||||
|
||||
void(void) NSView;
|
||||
|
||||
/* the only method we we want to call setproperty() */
|
||||
|
@ -75,8 +78,10 @@ NSView
|
|||
|
||||
virtual void(vector) SetCameraOrigin;
|
||||
virtual void(vector) SetCameraAngle;
|
||||
virtual void(vector) SetClientAngle;
|
||||
virtual void(int) SetSeatID;
|
||||
virtual void(float) SetAFOV;
|
||||
virtual float(void) GetAFOV;
|
||||
|
||||
virtual vector(void) GetHUDCanvasSize;
|
||||
virtual vector(void) GetHUDCanvasPos;
|
||||
|
@ -92,4 +97,4 @@ NSView
|
|||
NSView g_viewSeats[4];
|
||||
|
||||
/* the current seat run for each draw call, for each player. always use talk to this! */
|
||||
NSView g_view;
|
||||
NSView g_view;
|
||||
|
|
|
@ -39,6 +39,14 @@ NSView::SetupView(void)
|
|||
setproperty(VF_ANGLES, angles);
|
||||
}
|
||||
|
||||
/* the view may not have gotten the chance to set the client angle early on */
|
||||
/* honestly this could be handled a lot better, but I don't know of a more reliable solution right now */
|
||||
if (m_bSetClientAngle == true || cltime <= 0.5) {
|
||||
setproperty(VF_ANGLES, m_vecClientAngle);
|
||||
setproperty(VF_CL_VIEWANGLES, m_vecClientAngle);
|
||||
m_bSetClientAngle = false;
|
||||
}
|
||||
|
||||
m_vecLastOrigin = origin;
|
||||
}
|
||||
|
||||
|
@ -72,7 +80,6 @@ NSView::StairSmooth(void)
|
|||
endpos[2] = origin[2];
|
||||
}
|
||||
|
||||
//setproperty(VF_ORIGIN, endpos);
|
||||
origin = endpos;
|
||||
}
|
||||
}
|
||||
|
@ -119,6 +126,13 @@ NSView::GetCameraAngle(void)
|
|||
return angles;
|
||||
}
|
||||
|
||||
void
|
||||
NSView::SetClientAngle(vector new_angle)
|
||||
{
|
||||
m_vecClientAngle = new_angle;
|
||||
m_bSetClientAngle = true;
|
||||
}
|
||||
|
||||
void
|
||||
NSView::SetViewMode(viewmode_e new_mode)
|
||||
{
|
||||
|
@ -149,6 +163,12 @@ NSView::SetAFOV(float new_fov)
|
|||
m_flFieldOfView = new_fov;
|
||||
}
|
||||
|
||||
float
|
||||
NSView::GetAFOV(void)
|
||||
{
|
||||
return m_flFieldOfView;
|
||||
}
|
||||
|
||||
vector
|
||||
NSView::GetHUDCanvasPos(void)
|
||||
{
|
||||
|
@ -224,10 +244,7 @@ NSView::UpdateView(void)
|
|||
cl.UpdateIntermissionCam();
|
||||
}
|
||||
|
||||
SetCameraOrigin(cl.GetEyePos());
|
||||
SetCameraAngle(view_angles);
|
||||
StairSmooth();
|
||||
AddPunchAngle(cl.punchangle);
|
||||
|
||||
SetAFOV(cvar("fov") * pl.viewzoom);
|
||||
|
||||
|
@ -316,7 +333,7 @@ NSView::UpdateView(void)
|
|||
/* move this into NSClient methods */
|
||||
cl.PostFrame();
|
||||
|
||||
#if 0
|
||||
#if 1
|
||||
Font_DrawText(m_vecPosition + [8,8], "NSView Debug Information", FONT_CON);
|
||||
Font_DrawText(m_vecPosition + [8,20], sprintf("Seat: %i", m_iSeat), FONT_CON);
|
||||
Font_DrawText(m_vecPosition + [8,32], sprintf("FOV: %d", m_flFieldOfView), FONT_CON);
|
||||
|
|
|
@ -101,8 +101,8 @@ CMD_setpos(void)
|
|||
void
|
||||
CMD_setang(void)
|
||||
{
|
||||
setproperty(VF_CL_VIEWANGLES, stov(argv(1)));
|
||||
setproperty(VF_ANGLES, stov(argv(1)));
|
||||
g_view.SetCameraAngle(stov(argv(1)));
|
||||
g_view.SetClientAngle(stov(argv(1)));
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -119,14 +119,14 @@ drawpic3d(vector worldpos, string mat, vector sz, vector rgb, float alpha)
|
|||
drawpic3d_visible(vector p1) {
|
||||
vector delta;
|
||||
float fov;
|
||||
vector p2 = getproperty(VF_ORIGIN);
|
||||
vector ang = getproperty(VF_CL_VIEWANGLES);
|
||||
vector p2 = g_view.GetCameraOrigin();
|
||||
vector ang = g_view.GetCameraAngle();
|
||||
|
||||
makevectors(ang);
|
||||
delta = normalize (p1 - p2);
|
||||
fov = delta * v_forward;
|
||||
|
||||
if (fov > (getproperty(VF_AFOV)/180)) {
|
||||
if (fov > (g_view.GetAFOV()/180)) {
|
||||
traceline(p2, p1, MOVE_WORLDONLY, self);
|
||||
if (trace_fraction == 1.0) {
|
||||
return (1);
|
||||
|
|
|
@ -259,7 +259,13 @@ CSQC_UpdateView(float w, float h, float focus)
|
|||
pSeat = &g_seats[s];
|
||||
pSeatLocal = &g_seatslocal[s];
|
||||
g_view = g_viewSeats[s];
|
||||
|
||||
setproperty(VF_ACTIVESEAT, (float)s);
|
||||
pSeat->m_ePlayer = findfloat(world, ::entnum, player_localentnum);
|
||||
|
||||
if (pSeat->m_ePlayer == world)
|
||||
continue;
|
||||
|
||||
cl = (NSClient)pSeat->m_ePlayer;
|
||||
|
||||
/* set up our single/split viewport */
|
||||
|
|
|
@ -115,8 +115,8 @@ Event_Parse(float type)
|
|||
a[0] = readfloat();
|
||||
a[1] = readfloat();
|
||||
a[2] = readfloat();
|
||||
setproperty(VF_CL_VIEWANGLES, a);
|
||||
setproperty(VF_ANGLES, a);
|
||||
g_view.SetCameraAngle(a);
|
||||
g_view.SetClientAngle(a);
|
||||
break;
|
||||
case EV_SHAKE:
|
||||
if (me.classname == "spectator")
|
||||
|
|
|
@ -88,9 +88,9 @@ CMap_Shoot(void)
|
|||
print("^3Cubemap processing...\n");
|
||||
g_vecCubePos = tmp.origin;
|
||||
g_dCubeSize = (float)tmp.m_iSize;
|
||||
|
||||
setproperty(VF_CL_VIEWANGLES, [0,0,0]);
|
||||
setproperty(VF_ANGLES, [0,0,0]);
|
||||
|
||||
g_view.SetClientAngle([0,0,0]);
|
||||
g_view.SetCameraAngle([0,0,0]);
|
||||
|
||||
strReflectcube = sprintf(
|
||||
"env/%s_%d_%d_%d",
|
||||
|
|
|
@ -37,7 +37,6 @@ func_illusionary:NSRenderableEntity
|
|||
virtual float(entity, float) SendEntity;
|
||||
virtual void(entity, int) Trigger;
|
||||
#else
|
||||
virtual float() predraw;
|
||||
virtual void(void) Init;
|
||||
#endif
|
||||
};
|
||||
|
@ -90,23 +89,6 @@ func_illusionary::Respawn(void)
|
|||
}
|
||||
}
|
||||
#else
|
||||
float
|
||||
func_illusionary::predraw(void)
|
||||
{
|
||||
vector vecPlayer;
|
||||
|
||||
int s = (float)getproperty(VF_ACTIVESEAT);
|
||||
pSeat = &g_seats[s];
|
||||
vecPlayer = pSeat->m_vecPredictedOrigin;
|
||||
|
||||
if (checkpvs(vecPlayer, this) == FALSE) {
|
||||
return (PREDRAW_NEXT);
|
||||
}
|
||||
|
||||
super::predraw();
|
||||
addentity(self);
|
||||
return (PREDRAW_NEXT);
|
||||
}
|
||||
|
||||
void
|
||||
func_illusionary::Init(void)
|
||||
|
@ -120,12 +102,11 @@ func_illusionary::Init(void)
|
|||
}
|
||||
|
||||
precache_model(model);
|
||||
setmodel(this, model);
|
||||
setorigin(this, origin);
|
||||
SetModel(model);
|
||||
SetOrigin(origin);
|
||||
SetAngles([0,0,0]);
|
||||
SetMovetype(MOVETYPE_NONE);
|
||||
SetSolid(SOLID_NOT);
|
||||
angles = [0,0,0];
|
||||
|
||||
if (skin == -1 && m_iRenderMode == RM_TEXTURE)
|
||||
SetRenderMode(RM_TRIGGER);
|
||||
|
|
|
@ -37,7 +37,6 @@ func_wall:NSRenderableEntity
|
|||
virtual float(entity, float) SendEntity;
|
||||
virtual void(entity, int) Trigger;
|
||||
#else
|
||||
virtual float() predraw;
|
||||
virtual void(void) Init;
|
||||
#endif
|
||||
};
|
||||
|
@ -86,24 +85,6 @@ func_wall::Respawn(void)
|
|||
ClearAngles();
|
||||
}
|
||||
#else
|
||||
float
|
||||
func_wall::predraw(void)
|
||||
{
|
||||
vector vecPlayer;
|
||||
|
||||
int s = (float)getproperty(VF_ACTIVESEAT);
|
||||
pSeat = &g_seats[s];
|
||||
vecPlayer = pSeat->m_vecPredictedOrigin;
|
||||
|
||||
if (checkpvs(vecPlayer, this) == FALSE) {
|
||||
return (PREDRAW_NEXT);
|
||||
}
|
||||
|
||||
super::predraw();
|
||||
addentity(self);
|
||||
return (PREDRAW_NEXT);
|
||||
}
|
||||
|
||||
void
|
||||
func_wall::Init(void)
|
||||
{
|
||||
|
@ -116,11 +97,11 @@ func_wall::Init(void)
|
|||
}
|
||||
|
||||
precache_model(model);
|
||||
setmodel(this, model);
|
||||
setorigin(this, origin);
|
||||
movetype = MOVETYPE_PUSH;
|
||||
solid = SOLID_BSP;
|
||||
angles = [0,0,0];
|
||||
SetModel(model);
|
||||
SetOrigin(origin);
|
||||
SetAngles([0,0,0]);
|
||||
SetMovetype(MOVETYPE_NONE);
|
||||
SetSolid(SOLID_NOT);
|
||||
|
||||
MakeStatic();
|
||||
}
|
||||
|
|
|
@ -187,7 +187,8 @@ prop_vehicle_driveable::UpdateView(void)
|
|||
vecEnd = vecStart + (v_forward * -256) + [0,0,16] + (v_right * 4);
|
||||
other = world;
|
||||
traceline(vecStart, vecEnd, MOVE_OTHERONLY, this);
|
||||
setproperty(VF_ORIGIN, trace_endpos + (v_forward * 16));
|
||||
g_view.SetCameraOrigin(trace_endpos + (v_forward * 16));
|
||||
g_view.SetClientAngle(view_angles);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -96,8 +96,8 @@ trigger_camera::ReceiveEntity(float flNew, float flFlags)
|
|||
else
|
||||
pSeat->m_flCameraTime = time + flWait;
|
||||
|
||||
setproperty(VF_CL_VIEWANGLES, angles);
|
||||
setproperty(VF_ANGLES, angles);
|
||||
g_view.SetCameraAngle(angles);
|
||||
g_view.SetClientAngle(angles);
|
||||
}
|
||||
|
||||
classname = "trigger_camera";
|
||||
|
|
|
@ -85,8 +85,8 @@ NSClient::ClientInputFrame(void)
|
|||
void
|
||||
NSClient::UpdateAliveCam(void)
|
||||
{
|
||||
setproperty(VF_ORIGIN, pSeat->m_vecPredictedOrigin + view_ofs);
|
||||
setproperty(VF_ANGLES, view_angles + punchangle);
|
||||
g_view.SetCameraOrigin(GetEyePos());
|
||||
g_view.SetCameraAngle(view_angles);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -94,9 +94,9 @@ NSClient::UpdateDeathcam(void)
|
|||
{
|
||||
/* death cam */
|
||||
view_angles[2] = 45.0f;
|
||||
setproperty(VF_ORIGIN, pSeat->m_vecPredictedOrigin);
|
||||
setproperty(VF_CL_VIEWANGLES, view_angles);
|
||||
setproperty(VF_ANGLES, view_angles);
|
||||
|
||||
g_view.SetCameraOrigin(GetEyePos());
|
||||
g_view.SetCameraAngle(view_angles);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -104,8 +104,8 @@ NSClient::UpdateIntermissionCam(void)
|
|||
{
|
||||
view_angles = pSeat->m_vecCameraAngle;
|
||||
view_angles += [sin(time), sin(time * 1.5f)] * 0.1f;
|
||||
setproperty(VF_ORIGIN, pSeat->m_vecCameraOrigin);
|
||||
setproperty(VF_CL_VIEWANGLES, view_angles);
|
||||
g_view.SetCameraOrigin(pSeat->m_vecCameraOrigin);
|
||||
g_view.SetCameraAngle(view_angles);
|
||||
}
|
||||
|
||||
float
|
||||
|
|
|
@ -153,11 +153,12 @@ NSClientPlayer::OnRemoveEntity(void)
|
|||
void
|
||||
NSClientPlayer::UpdateAliveCam(void)
|
||||
{
|
||||
setproperty(VF_ORIGIN, pSeat->m_vecPredictedOrigin + view_ofs);
|
||||
g_view.SetCameraOrigin(GetEyePos());
|
||||
g_view.SetCameraAngle(view_angles);
|
||||
|
||||
if (vehicle) {
|
||||
NSVehicle veh = (NSVehicle)vehicle;
|
||||
|
||||
|
||||
if (veh.UpdateView)
|
||||
veh.UpdateView();
|
||||
} else if (health) {
|
||||
|
@ -166,12 +167,12 @@ NSClientPlayer::UpdateAliveCam(void)
|
|||
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, self);
|
||||
setproperty(VF_ORIGIN, trace_endpos + (v_forward * 5));
|
||||
g_view.SetCameraOrigin(trace_endpos + (v_forward * 5));
|
||||
}
|
||||
}
|
||||
|
||||
Shake_Update(this);
|
||||
setproperty(VF_ANGLES, view_angles + punchangle);
|
||||
g_view.AddPunchAngle(punchangle);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -83,7 +83,6 @@ NSEntity::WaterLevel(void)
|
|||
return waterlevel;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
============
|
||||
NSEntity::VisibleVec
|
||||
|
@ -234,7 +233,7 @@ void
|
|||
NSEntity::RendererRestarted(void)
|
||||
{
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
/*
|
||||
============
|
||||
|
@ -481,21 +480,25 @@ NSEntity::ParentUpdate(void)
|
|||
m_eTouchLast = __NULL__;
|
||||
}
|
||||
}
|
||||
|
||||
entity
|
||||
NSEntity::GetParent(void)
|
||||
{
|
||||
return find(world, ::targetname, m_parent);
|
||||
}
|
||||
|
||||
void
|
||||
NSEntity::SetParent(string name)
|
||||
{
|
||||
m_parent = name;
|
||||
}
|
||||
|
||||
void
|
||||
NSEntity::SetParentAttachment(string name)
|
||||
{
|
||||
m_parent_attachment = name;
|
||||
}
|
||||
|
||||
void
|
||||
NSEntity::ClearParent(void)
|
||||
{
|
||||
|
@ -508,6 +511,7 @@ NSEntity::RestoreAngles(void)
|
|||
{
|
||||
angles = GetSpawnAngles();
|
||||
}
|
||||
|
||||
void
|
||||
NSEntity::ClearAngles(void)
|
||||
{
|
||||
|
@ -519,19 +523,19 @@ void
|
|||
NSEntity::SetOwner(entity newOwner)
|
||||
{
|
||||
owner = newOwner;
|
||||
};
|
||||
}
|
||||
|
||||
void
|
||||
NSEntity::SetVelocity(vector vecNew)
|
||||
{
|
||||
velocity = vecNew;
|
||||
};
|
||||
}
|
||||
|
||||
void
|
||||
NSEntity::SetTouch(void() newTouch)
|
||||
{
|
||||
touch = newTouch;
|
||||
};
|
||||
}
|
||||
|
||||
/* we want to really use those set functions because they'll notify of any
|
||||
* networking related changes. otherwise we'll have to keep track of copies
|
||||
|
@ -561,6 +565,7 @@ NSEntity::SetSolid(float newSolid)
|
|||
{
|
||||
solid = newSolid;
|
||||
}
|
||||
|
||||
void
|
||||
NSEntity::SetScale(float newScale)
|
||||
{
|
||||
|
@ -784,7 +789,6 @@ NSEntity::GetFlags(void)
|
|||
return flags;
|
||||
}
|
||||
|
||||
|
||||
vector
|
||||
NSEntity::GetSpawnOrigin(void)
|
||||
{
|
||||
|
@ -1016,7 +1020,7 @@ NSEntity::Destroy(void)
|
|||
nextthink = time + 0.01;
|
||||
else
|
||||
nextthink = time;
|
||||
};
|
||||
}
|
||||
|
||||
void
|
||||
NSEntity::Spawned(void)
|
||||
|
|
|
@ -713,6 +713,7 @@ NSRenderableEntity::Respawn(void)
|
|||
void
|
||||
NSRenderableEntity::Show(void)
|
||||
{
|
||||
/* this needs to be more useful */
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -728,11 +729,9 @@ NSRenderableEntity::Hide(void)
|
|||
void
|
||||
NSRenderableEntity::SetEffects(float newEffects)
|
||||
{
|
||||
if (newEffects == effects)
|
||||
return;
|
||||
|
||||
effects = newEffects;
|
||||
}
|
||||
|
||||
void
|
||||
NSRenderableEntity::SetFrame(float newFrame)
|
||||
{
|
||||
|
@ -742,22 +741,19 @@ NSRenderableEntity::SetFrame(float newFrame)
|
|||
frame = newFrame;
|
||||
frame1time = 0.0f;
|
||||
}
|
||||
|
||||
void
|
||||
NSRenderableEntity::SetSkin(float newSkin)
|
||||
{
|
||||
if (newSkin == skin)
|
||||
return;
|
||||
|
||||
skin = newSkin;
|
||||
}
|
||||
|
||||
void
|
||||
NSRenderableEntity::SetBody(int newBody)
|
||||
{
|
||||
if (newBody == m_iBody)
|
||||
return;
|
||||
|
||||
m_iBody = newBody;
|
||||
}
|
||||
|
||||
void
|
||||
NSRenderableEntity::SetScale(float newScale)
|
||||
{
|
||||
|
@ -771,33 +767,24 @@ NSRenderableEntity::SetScale(float newScale)
|
|||
void
|
||||
NSRenderableEntity::SetRenderFX(float newFX)
|
||||
{
|
||||
if (newFX == m_iRenderFX)
|
||||
return;
|
||||
|
||||
m_iRenderFX = newFX;
|
||||
}
|
||||
|
||||
void
|
||||
NSRenderableEntity::SetRenderMode(float newMode)
|
||||
{
|
||||
if (newMode == m_iRenderMode)
|
||||
return;
|
||||
|
||||
m_iRenderMode = newMode;
|
||||
}
|
||||
|
||||
void
|
||||
NSRenderableEntity::SetRenderAmt(float newAmt)
|
||||
{
|
||||
if (newAmt == m_flRenderAmt)
|
||||
return;
|
||||
|
||||
m_flRenderAmt = newAmt;
|
||||
}
|
||||
|
||||
void
|
||||
NSRenderableEntity::SetRenderColor(vector newColor)
|
||||
{
|
||||
if (newColor == m_vecRenderColor)
|
||||
return;
|
||||
|
||||
m_vecRenderColor = newColor;
|
||||
}
|
||||
|
||||
|
@ -836,41 +823,49 @@ NSRenderableEntity::GetRenderMode(void)
|
|||
{
|
||||
return m_iRenderMode;
|
||||
}
|
||||
|
||||
float
|
||||
NSRenderableEntity::GetRenderFX(void)
|
||||
{
|
||||
return m_iRenderFX;
|
||||
}
|
||||
|
||||
float
|
||||
NSRenderableEntity::GetRenderAmt(void)
|
||||
{
|
||||
return m_flRenderAmt;
|
||||
}
|
||||
|
||||
vector
|
||||
NSRenderableEntity::GetRenderColor(void)
|
||||
{
|
||||
return m_vecRenderColor;
|
||||
}
|
||||
|
||||
float
|
||||
NSRenderableEntity::GetBoneControl1(void)
|
||||
{
|
||||
return m_flBoneControl1;
|
||||
}
|
||||
|
||||
float
|
||||
NSRenderableEntity::GetBoneControl2(void)
|
||||
{
|
||||
return m_flBoneControl2;
|
||||
}
|
||||
|
||||
float
|
||||
NSRenderableEntity::GetBoneControl3(void)
|
||||
{
|
||||
return m_flBoneControl3;
|
||||
}
|
||||
|
||||
float
|
||||
NSRenderableEntity::GetBoneControl4(void)
|
||||
{
|
||||
return m_flBoneControl4;
|
||||
}
|
||||
|
||||
float
|
||||
NSRenderableEntity::GetBoneControl5(void)
|
||||
{
|
||||
|
@ -892,6 +887,7 @@ NSRenderableEntity::Save(float handle)
|
|||
SaveFloat(handle, "rendermode", m_iRenderMode);
|
||||
SaveFloat(handle, "renderfx", m_iRenderFX);
|
||||
}
|
||||
|
||||
void
|
||||
NSRenderableEntity::Restore(string strKey, string strValue)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue