19 Sep 2009
This commit is contained in:
parent
22db77f278
commit
82e6c4b001
|
@ -0,0 +1,16 @@
|
|||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>Build Log</h1>
|
||||
<h3>
|
||||
--------------------Configuration: baserc - Win32 Debug--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
|
||||
|
||||
|
||||
<h3>Results</h3>
|
||||
baserc.dll - 0 error(s), 0 warning(s)
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,65 @@
|
|||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>Build Log</h1>
|
||||
<h3>
|
||||
--------------------Configuration: client - Win32 Debug--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8AB5.tmp" with contents
|
||||
[
|
||||
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "../common" /I "global" /I "hud" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\client\!debug/" /Fo"..\temp\client\!debug/" /Fd"..\temp\client\!debug/" /FD /c
|
||||
"D:\Xash3D\src_main\client\global\view.cpp"
|
||||
]
|
||||
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8AB5.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8AB6.tmp" with contents
|
||||
[
|
||||
msvcrtd.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..\temp\client\!debug/client.pdb" /debug /machine:I386 /nodefaultlib:"libc.lib" /def:".\client.def" /out:"..\temp\client\!debug/client.dll" /implib:"..\temp\client\!debug/client.lib" /pdbtype:sept /libpath:"..\common\libs"
|
||||
"\Xash3D\src_main\temp\client\!debug\dll_int.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_ammo.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_ammohistory.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_battery.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_death.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_flashlight.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_geiger.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_health.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_icons.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_menu.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_message.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_motd.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_msg.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_saytext.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_scoreboard.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_sound.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_statusbar.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_text.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_train.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_warhead.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\hud_zoom.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\tempents.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\triapi.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\utils.obj"
|
||||
"\Xash3D\src_main\temp\client\!debug\view.obj"
|
||||
]
|
||||
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8AB6.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8AB7.bat" with contents
|
||||
[
|
||||
@echo off
|
||||
copy \Xash3D\src_main\temp\client\!debug\client.dll "D:\Xash3D\bin\client.dll"
|
||||
]
|
||||
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8AB7.bat"
|
||||
Compiling...
|
||||
view.cpp
|
||||
Linking...
|
||||
<h3>Output Window</h3>
|
||||
Performing Custom Build Step on \Xash3D\src_main\temp\client\!debug\client.dll
|
||||
‘ª®¯¨à®¢ ® ä ©«®¢: 1.
|
||||
|
||||
|
||||
|
||||
<h3>Results</h3>
|
||||
client.dll - 0 error(s), 0 warning(s)
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
|
@ -94,10 +94,19 @@ int HUD_UpdateClientData( client_data_t *cdata, float flTime )
|
|||
return gHUD.UpdateClientData( cdata, flTime );
|
||||
}
|
||||
|
||||
void HUD_UpdateEntityVars( edict_t *ent, skyportal_t *sky, const entity_state_t *state, const entity_state_t *prev )
|
||||
void HUD_UpdateEntityVars( edict_t *ent, skyportal_t *sky, const entity_state_t *state, const entity_state_t *old )
|
||||
{
|
||||
int i;
|
||||
float m_fLerp = GetLerpFrac();
|
||||
int i;
|
||||
float m_fLerp;
|
||||
const entity_state_t *prev;
|
||||
|
||||
if( state->ed_flags & ESF_NODELTA )
|
||||
prev = state;
|
||||
else prev = old;
|
||||
|
||||
if( state->ed_type == ED_CLIENT && state->ed_flags & ESF_NO_PREDICTION )
|
||||
m_fLerp = 1.0f; // FIXME: use 0.0f ?
|
||||
else m_fLerp = GetLerpFrac();
|
||||
|
||||
// copy state to progs
|
||||
ent->v.modelindex = state->modelindex;
|
||||
|
@ -149,6 +158,13 @@ void HUD_UpdateEntityVars( edict_t *ent, skyportal_t *sky, const entity_state_t
|
|||
switch( state->ed_type )
|
||||
{
|
||||
case ED_CLIENT:
|
||||
if( ent == GetLocalPlayer())
|
||||
{
|
||||
edict_t *viewent = GetViewModel();
|
||||
|
||||
// setup player viewmodel (only for local player!)
|
||||
viewent->v.modelindex = state->viewmodel;
|
||||
}
|
||||
for( i = 0; i < 3; i++ )
|
||||
{
|
||||
ent->v.punchangle[i] = LerpAngle( prev->punch_angles[i], state->punch_angles[i], m_fLerp);
|
||||
|
|
|
@ -285,13 +285,14 @@ void V_DropPunchAngle( float frametime, Vector &ev_punchangle )
|
|||
//==========================
|
||||
void V_CalcGunAngle( ref_params_t *pparams )
|
||||
{
|
||||
if( !pparams->viewmodel || pparams->fov_x > 135 ) return;
|
||||
if( pparams->fov_x > 135 ) return;
|
||||
|
||||
edict_t *viewent = GetViewModel();
|
||||
|
||||
if( !viewent->v.modelindex ) return;
|
||||
|
||||
viewent->serialnumber = -1; // viewentity are handled with special number. don't change this
|
||||
viewent->v.effects |= EF_MINLIGHT;
|
||||
viewent->v.modelindex = pparams->viewmodel;
|
||||
|
||||
viewent->v.angles[YAW] = pparams->viewangles[YAW] + pparams->crosshairangle[YAW];
|
||||
viewent->v.angles[PITCH] = pparams->viewangles[PITCH] + pparams->crosshairangle[PITCH] * 0.25;
|
||||
|
@ -309,7 +310,8 @@ void V_PreRender( ref_params_t *pparams )
|
|||
{
|
||||
// input
|
||||
pparams->intermission = gHUD.m_iIntermission;
|
||||
pparams->thirdperson = gHUD.m_iCameraMode;
|
||||
if( gHUD.m_iCameraMode ) pparams->flags |= RDF_THIRDPERSON;
|
||||
else pparams->flags &= ~RDF_THIRDPERSON;
|
||||
|
||||
// output
|
||||
gHUD.m_CrosshairAngles = pparams->crosshairangle;
|
||||
|
@ -347,7 +349,7 @@ float V_CalcBob( ref_params_t *pparams )
|
|||
if( cycle < cl_bobup->value ) cycle = M_PI * cycle / cl_bobup->value;
|
||||
else cycle = M_PI + M_PI * ( cycle - cl_bobup->value )/( 1.0 - cl_bobup->value );
|
||||
|
||||
vel = pparams->velocity;
|
||||
vel = pparams->simvel;
|
||||
vel[2] = 0;
|
||||
|
||||
bob = sqrt( vel[0] * vel[0] + vel[1] * vel[1] ) * cl_bob->value;
|
||||
|
@ -373,17 +375,21 @@ void V_AddIdle( ref_params_t *pparams )
|
|||
void V_CalcViewRoll( ref_params_t *pparams )
|
||||
{
|
||||
float sign, side, value;
|
||||
edict_t *viewentity;
|
||||
Vector right;
|
||||
|
||||
if( pparams->health <= 0 )
|
||||
viewentity = GetEntityByIndex( pparams->viewentity );
|
||||
if( !viewentity ) return;
|
||||
|
||||
if( pparams->health <= 0 && ( pparams->viewheight[2] != 0 ))
|
||||
{
|
||||
GetViewModel()->v.modelindex = 0; // clear viewmodel
|
||||
GetViewModel()->v.modelindex = 0; // clear the viewmodel
|
||||
pparams->viewangles[ROLL] = 80; // dead view angle
|
||||
return;
|
||||
}
|
||||
|
||||
AngleVectors( pparams->angles, NULL, right, NULL );
|
||||
side = right.Dot( pparams->velocity );
|
||||
AngleVectors( viewentity->v.angles, NULL, right, NULL );
|
||||
side = right.Dot( pparams->simvel );
|
||||
sign = side < 0 ? -1 : 1;
|
||||
side = fabs( side );
|
||||
value = pparams->movevars->rollangle;
|
||||
|
@ -496,14 +502,10 @@ void V_GetChasePos( ref_params_t *pparams, edict_t *ent, float *cl_angles, Vecto
|
|||
else angles = cl_angles;
|
||||
|
||||
// refresh the position
|
||||
if( !pparams->predicting || pparams->demoplayback )
|
||||
if( !pparams->smoothing || pparams->demoplayback )
|
||||
{
|
||||
// use interpolated values
|
||||
for( int i = 0; i < 3; i++ )
|
||||
{
|
||||
origin[i] = LerpPoint( pparams->prev.origin[i], pparams->origin[i], pparams->lerpfrac );
|
||||
origin[i] += LerpPoint( pparams->prev.viewheight[i], pparams->viewheight[i], pparams->lerpfrac );
|
||||
}
|
||||
origin = pparams->simorg + pparams->viewheight;
|
||||
}
|
||||
|
||||
origin[2] += 28; // DEFAULT_VIEWHEIGHT - some offset
|
||||
|
@ -560,17 +562,14 @@ void V_CalcCameraRefdef( ref_params_t *pparams )
|
|||
if( viewentity )
|
||||
{
|
||||
dstudiohdr_t *viewmonster = (dstudiohdr_t *)GetModelPtr( viewentity );
|
||||
int i;
|
||||
|
||||
for( i = 0; i < 3; i++ )
|
||||
v_origin[i] = LerpPoint( viewentity->v.oldorigin[i], viewentity->v.origin[i], pparams->lerpfrac );
|
||||
v_origin = viewentity->v.origin;
|
||||
|
||||
// calc monster view if supposed
|
||||
if( gHUD.viewFlags & MONSTER_VIEW && viewmonster )
|
||||
v_origin += viewmonster->eyeposition;
|
||||
|
||||
for( i = 0; i < 3; i++ )
|
||||
v_angles[i] = LerpAngle( viewentity->v.oldangles[i], viewentity->v.angles[i], pparams->lerpfrac );
|
||||
v_angles = viewentity->v.angles;
|
||||
|
||||
if( gHUD.viewFlags & INVERSE_X ) // inverse X coordinate
|
||||
v_angles[0] = -v_angles[0];
|
||||
|
@ -795,7 +794,7 @@ float V_CalcWaterLevel( ref_params_t *pparams )
|
|||
TraceResult tr;
|
||||
Vector point;
|
||||
|
||||
TRACE_HULL( pparams->origin, Vector(-16,-16,-24), Vector(16,16,32), pparams->origin, 1, GetLocalPlayer(), &tr );
|
||||
TRACE_HULL( pparams->simorg, Vector(-16,-16,-24), Vector(16,16,32), pparams->simorg, 1, GetLocalPlayer(), &tr );
|
||||
|
||||
if( tr.pHit && !stricmp( STRING( tr.pHit->v.classname ), "func_water" ))
|
||||
waterDist += ( tr.pHit->v.scale * 16 );
|
||||
|
@ -845,7 +844,7 @@ float V_CalcWaterLevel( ref_params_t *pparams )
|
|||
void V_CalcScrOffset( ref_params_t *pparams )
|
||||
{
|
||||
// don't allow cheats in multiplayer
|
||||
if( pparams->max_clients > 1 ) return;
|
||||
if( pparams->maxclients > 1 ) return;
|
||||
|
||||
for( int i = 0; i < 3; i++ )
|
||||
{
|
||||
|
@ -865,7 +864,7 @@ void V_InterpolateOrigin( ref_params_t *pparams )
|
|||
// view is the weapon model (only visible from inside body )
|
||||
view = GetViewModel();
|
||||
|
||||
if( cl_vsmoothing->value && ( pparams->max_clients > 1 ))
|
||||
if( cl_vsmoothing->value && ( pparams->maxclients > 1 ))
|
||||
{
|
||||
int i, foundidx;
|
||||
float t;
|
||||
|
@ -897,8 +896,8 @@ void V_InterpolateOrigin( ref_params_t *pparams )
|
|||
// don't interpolate large changes
|
||||
if( delta.Length() < 64 )
|
||||
{
|
||||
delta = neworg - pparams->origin;
|
||||
pparams->origin += delta;
|
||||
delta = neworg - pparams->simorg;
|
||||
pparams->simorg += delta;
|
||||
pparams->vieworg += delta;
|
||||
view->v.origin += delta;
|
||||
|
||||
|
@ -927,28 +926,14 @@ void V_CalcFirstPersonRefdef( ref_params_t *pparams )
|
|||
bob = V_CalcBob( pparams );
|
||||
|
||||
// refresh the position
|
||||
if( !pparams->predicting || pparams->demoplayback )
|
||||
if( !pparams->smoothing || pparams->demoplayback )
|
||||
{
|
||||
// use interpolated values
|
||||
for( i = 0; i < 3; i++ )
|
||||
{
|
||||
pparams->vieworg[i] = LerpPoint( pparams->prev.origin[i], pparams->origin[i], pparams->lerpfrac );
|
||||
pparams->vieworg[i] += LerpPoint( pparams->prev.viewheight[i], pparams->viewheight[i], pparams->lerpfrac );
|
||||
}
|
||||
pparams->vieworg = pparams->simorg + pparams->viewheight;
|
||||
}
|
||||
|
||||
if( pparams->demoplayback )
|
||||
{
|
||||
for( i = 0; i < 3; i++ )
|
||||
{
|
||||
pparams->viewangles[i] = LerpAngle( pparams->prev.angles[i], pparams->angles[i], pparams->lerpfrac );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// in-game use predicted values
|
||||
pparams->viewangles = pparams->cl_viewangles;
|
||||
}
|
||||
// in-game use predicted values
|
||||
pparams->viewangles = pparams->cl_viewangles;
|
||||
|
||||
pparams->vieworg[2] += ( bob );
|
||||
|
||||
|
@ -992,25 +977,14 @@ void V_CalcFirstPersonRefdef( ref_params_t *pparams )
|
|||
|
||||
if( g_bMirrorPass || g_bPortalPass || g_bScreenPass )
|
||||
pparams->punchangle = -pparams->punchangle; // make inverse for mirror
|
||||
for( i = 0; i < 3; i++ )
|
||||
pparams->viewangles[i] += LerpAngle( pparams->prev.punchangle[i], pparams->punchangle[i], pparams->lerpfrac );
|
||||
pparams->viewangles += pparams->punchangle;
|
||||
|
||||
pparams->viewangles += ev_punchangle;
|
||||
V_DropPunchAngle( pparams->frametime, ev_punchangle );
|
||||
|
||||
static float oldz = 0;
|
||||
float newz;
|
||||
|
||||
// stair smoothing
|
||||
newz = pparams->vieworg[2];
|
||||
oldz -= newz;
|
||||
oldz += (pparams->time - pparams->oldtime) * 100.0f; // speed of smooth
|
||||
oldz = bound( -pparams->movevars->stepheight, oldz, 0 );
|
||||
pparams->vieworg[2] += oldz;
|
||||
view->v.origin[2] += oldz;
|
||||
oldz += newz;
|
||||
/*
|
||||
if( pparams->onground && pparams->vieworg[2] - oldz > 0 )
|
||||
if( !pparams->smoothing && pparams->onground && pparams->simorg[2] - oldz > 0 )
|
||||
{
|
||||
float steptime;
|
||||
|
||||
|
@ -1026,7 +1000,7 @@ void V_CalcFirstPersonRefdef( ref_params_t *pparams )
|
|||
view->v.origin[2] += oldz - pparams->vieworg[2];
|
||||
}
|
||||
else oldz = pparams->vieworg[2];
|
||||
*/
|
||||
|
||||
static Vector lastorg;
|
||||
Vector delta;
|
||||
|
||||
|
@ -1034,7 +1008,7 @@ void V_CalcFirstPersonRefdef( ref_params_t *pparams )
|
|||
|
||||
if( delta.Length() != 0.0 )
|
||||
{
|
||||
ViewInterp.Origins[ViewInterp.CurrentOrigin & ORIGIN_MASK] = pparams->origin;
|
||||
ViewInterp.Origins[ViewInterp.CurrentOrigin & ORIGIN_MASK] = pparams->simorg;
|
||||
ViewInterp.OriginTime[ViewInterp.CurrentOrigin & ORIGIN_MASK] = pparams->time;
|
||||
ViewInterp.CurrentOrigin++;
|
||||
|
||||
|
|
|
@ -259,6 +259,14 @@ typedef enum
|
|||
// built-in dlight flags
|
||||
#define DLIGHT_FADE (1<<0) // fade dlight at end of lifetime
|
||||
|
||||
// renderer flags
|
||||
#define RDF_NOWORLDMODEL (1<<0) // used for player configuration screen
|
||||
#define RDF_OLDAREABITS (1<<1) // forces R_MarkLeaves if not set
|
||||
#define RDF_PORTALINVIEW (1<<2) // cull entities using vis too because pvs\areabits are merged serverside
|
||||
#define RDF_SKYPORTALINVIEW (1<<3) // draw skyportal instead of regular sky
|
||||
#define RDF_NOFOVADJUSTMENT (1<<4) // do not adjust fov for widescreen
|
||||
#define RDF_THIRDPERSON (1<<5) // enable chase cam instead firstperson
|
||||
|
||||
// engine built-in default shader
|
||||
#define MAP_DEFAULT_SHADER "*black"
|
||||
|
||||
|
|
|
@ -5,15 +5,6 @@
|
|||
#ifndef REF_PARAMS_H
|
||||
#define REF_PARAMS_H
|
||||
|
||||
// prev.state values to interpolate from
|
||||
typedef struct latched_params_s
|
||||
{
|
||||
vec3_t origin;
|
||||
vec3_t angles;
|
||||
vec3_t viewheight;
|
||||
vec3_t punchangle;
|
||||
} latched_params_t;
|
||||
|
||||
typedef struct skyportal_s
|
||||
{
|
||||
float fov;
|
||||
|
@ -25,60 +16,59 @@ typedef struct skyportal_s
|
|||
typedef struct ref_params_s
|
||||
{
|
||||
// output
|
||||
int viewport[4]; // x, y, width, height
|
||||
vec3_t vieworg;
|
||||
vec3_t viewangles;
|
||||
float fov_x;
|
||||
float fov_y; // fov_y = V_CalcFov( fov_x, viewport[2], viewport[3] );
|
||||
|
||||
vec3_t forward;
|
||||
vec3_t right;
|
||||
vec3_t up;
|
||||
|
||||
float frametime; // client frametime
|
||||
float lerpfrac; // between oldframe and frame
|
||||
float time; // client time
|
||||
float oldtime; // studio lerping
|
||||
|
||||
int intermission;
|
||||
int paused;
|
||||
int spectator;
|
||||
edict_t *onground; // pointer to onground entity
|
||||
int waterlevel;
|
||||
|
||||
vec3_t simvel; // client velocity (came from server)
|
||||
vec3_t simorg; // client origin (without viewheight)
|
||||
|
||||
vec3_t viewheight;
|
||||
float idealpitch;
|
||||
|
||||
vec3_t cl_viewangles; // predicted angles
|
||||
|
||||
int health;
|
||||
vec3_t crosshairangle; // pfnCrosshairAngle values from server
|
||||
float viewsize;
|
||||
|
||||
vec3_t punchangle; // receivied from server
|
||||
int maxclients;
|
||||
int viewentity; // entity that set with svc_setview else localclient
|
||||
int num_entities; // entities actual count (was int playernum;)
|
||||
int max_entities;
|
||||
int demoplayback;
|
||||
int movetype; // client movetype (was int hardware;)
|
||||
int smoothing; // client movement predicting is running
|
||||
|
||||
usercmd_t *cmd; // last issued usercmd
|
||||
movevars_t *movevars; // sv.movevars
|
||||
latched_params_t prev;
|
||||
|
||||
// misc
|
||||
int rdflags;
|
||||
BOOL intermission;
|
||||
BOOL demoplayback;
|
||||
BOOL demorecord;
|
||||
BOOL paused;
|
||||
BOOL thirdperson; // thirdperson mode
|
||||
BOOL predicting; // client movement predicting is running
|
||||
int onlyClientDraw; // 1 - don't draw worldmodel
|
||||
int nextView; // num RenderView passes
|
||||
edict_t *onground; // pointer to onground entity
|
||||
int viewport[4]; // x, y, width, height
|
||||
int nextView; // the renderer calls ClientDLL_CalcRefdef() and Renderview
|
||||
// so long in cycles until this value is 0 (multiple views)
|
||||
int flags; // renderer setup flags (was int onlyClientDraw;)
|
||||
|
||||
// Xash Renderer Specifics
|
||||
byte *areabits; // come from server, contains visible areas list
|
||||
int waterlevel;
|
||||
int movetype; // client movetype
|
||||
|
||||
skyportal_t skyportal;
|
||||
|
||||
// input
|
||||
// set it to NULL for disable area visibility
|
||||
skyportal_t skyportal; // sky protal setup is done in HUD_UpdateEntityVars
|
||||
float blend[4]; // rgba 0-1 full screen blend
|
||||
vec3_t velocity;
|
||||
vec3_t cl_viewangles; // predicted angles
|
||||
vec3_t angles; // viewangles that came from server
|
||||
vec3_t origin; // origin + viewheight = vieworg
|
||||
vec3_t viewheight;
|
||||
float idealpitch;
|
||||
|
||||
int health;
|
||||
vec3_t crosshairangle; // pfnCrosshairAngle values from server
|
||||
vec3_t punchangle; // receivied from server
|
||||
int clientnum;
|
||||
int viewmodel; // viewmodel index
|
||||
int num_entities;
|
||||
int max_entities;
|
||||
int max_clients;
|
||||
|
||||
float fov_x;
|
||||
float fov_y; // fov_y = V_CalcFov( fov_x, viewport[2], viewport[3] );
|
||||
} ref_params_t;
|
||||
|
||||
#endif//REF_PARAMS_H
|
|
@ -149,6 +149,7 @@ typedef struct enginefuncs_s
|
|||
word (*pfnCRC_Final)( word pulCRC );
|
||||
long (*pfnRandomLong)( long lLow, long lHigh );
|
||||
float (*pfnRandomFloat)( float flLow, float flHigh );
|
||||
void (*pfnSetView)( const edict_t *pClient, const edict_t *pViewent );
|
||||
void (*pfnCrosshairAngle)( const edict_t *pClient, float pitch, float yaw );
|
||||
byte* (*pfnLoadFile)( const char *filename, int *pLength );
|
||||
void *(*pfnFOpen)( const char* path, const char* mode );
|
||||
|
|
|
@ -281,8 +281,6 @@ void CL_ParseFrame( sizebuf_t *msg )
|
|||
else cl.frame.valid = true; // valid delta parse
|
||||
}
|
||||
|
||||
cl.time = bound( cl.frame.servertime - cl.serverframetime, cl.time, cl.frame.servertime );
|
||||
|
||||
// read areabits
|
||||
len = MSG_ReadByte( msg );
|
||||
MSG_ReadData( msg, &cl.frame.areabits, len );
|
||||
|
@ -339,9 +337,9 @@ void CL_AddPacketEntities( frame_t *frame )
|
|||
edict_t *ent;
|
||||
int pnum;
|
||||
|
||||
if( cl_paused->integer )
|
||||
cl.refdef.lerpfrac = 1.0f;
|
||||
else cl.refdef.lerpfrac = 1.0 - (cl.frame.servertime - cl.time) / (float)cl.serverframetime;
|
||||
cl.time = bound( cl.frame.servertime - cl.serverframetime, cl.time, cl.frame.servertime );
|
||||
if( cl_paused->integer ) cl.lerpFrac = 1.0f;
|
||||
else cl.lerpFrac = 1.0 - (cl.frame.servertime - cl.time) / (float)cl.serverframetime;
|
||||
|
||||
for( pnum = 0; pnum < frame->num_entities; pnum++ )
|
||||
{
|
||||
|
|
|
@ -870,13 +870,13 @@ float pfnGetClientTime( void )
|
|||
|
||||
/*
|
||||
=============
|
||||
pfnGetLerpFrac
|
||||
CL_GetLerpFrac
|
||||
|
||||
=============
|
||||
*/
|
||||
float pfnGetLerpFrac( void )
|
||||
float CL_GetLerpFrac( void )
|
||||
{
|
||||
return cl.refdef.lerpfrac;
|
||||
return cl.lerpFrac;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1345,7 +1345,7 @@ static cl_enginefuncs_t gEngfuncs =
|
|||
CL_GetLocalPlayer,
|
||||
pfnIsSpectateOnly,
|
||||
pfnGetClientTime,
|
||||
pfnGetLerpFrac,
|
||||
CL_GetLerpFrac,
|
||||
pfnGetMaxClients,
|
||||
pfnGetViewModel,
|
||||
pfnGetModelPtr,
|
||||
|
|
|
@ -509,7 +509,7 @@ void CL_FinishMove( usercmd_t *cmd )
|
|||
cmd->buttons = CL_ButtonBits( 1 );
|
||||
|
||||
// process commands with user dll's
|
||||
cl.data.fov = cl.frame.ps.fov;
|
||||
cl.data.fov = cl.refdef.fov_x;
|
||||
cl.data.iKeyBits = CL_ButtonBits( 0 );
|
||||
|
||||
cl.data.iWeaponBits = cl.frame.ps.weapons;
|
||||
|
@ -517,7 +517,7 @@ void CL_FinishMove( usercmd_t *cmd )
|
|||
|
||||
VectorCopy( cl.refdef.cl_viewangles, cmd->angles );
|
||||
VectorCopy( cl.refdef.cl_viewangles, cl.data.angles );
|
||||
VectorCopy( cl.refdef.origin, cl.data.origin );
|
||||
VectorCopy( cl.refdef.simorg, cl.data.origin );
|
||||
|
||||
clgame.dllFuncs.pfnUpdateClientData( &cl.data, ( cl.time * 0.001f ));
|
||||
|
||||
|
|
|
@ -1171,7 +1171,6 @@ void CL_Frame( long time )
|
|||
return;
|
||||
|
||||
// decide the simulation time
|
||||
cl.oldtime = cl.time;
|
||||
cl.time += time; // can be merged by cl.frame.servertime
|
||||
cls.realtime += time;
|
||||
cls.frametime = time * 0.001f;
|
||||
|
|
|
@ -509,6 +509,9 @@ void CL_ParseServerMessage( sizebuf_t *msg )
|
|||
case svc_setangle:
|
||||
CL_ParseSetAngle( msg );
|
||||
break;
|
||||
case svc_setview:
|
||||
cl.refdef.viewentity = MSG_ReadWord( msg );
|
||||
break;
|
||||
case svc_crosshairangle:
|
||||
CL_ParseCrosshairAngle( msg );
|
||||
break;
|
||||
|
|
|
@ -65,86 +65,56 @@ update refdef values each frame
|
|||
*/
|
||||
void V_SetupRefDef( void )
|
||||
{
|
||||
int i;
|
||||
float backlerp;
|
||||
frame_t *oldframe;
|
||||
entity_state_t *ps, *ops;
|
||||
edict_t *clent;
|
||||
|
||||
// find the previous frame to interpolate from
|
||||
ps = &cl.frame.ps;
|
||||
i = (cl.frame.serverframe - 1) & UPDATE_MASK;
|
||||
oldframe = &cl.frames[i];
|
||||
if( oldframe->serverframe != cl.frame.serverframe-1 || !oldframe->valid )
|
||||
oldframe = &cl.frame; // previous frame was dropped or invalid
|
||||
ops = &oldframe->ps;
|
||||
|
||||
clent = EDICT_NUM( cl.playernum + 1 );
|
||||
|
||||
// see if the player entity was teleported this frame
|
||||
if( ps->ed_flags & ESF_NO_PREDICTION )
|
||||
{
|
||||
cl.render_flags &= ~RDF_OLDAREABITS;
|
||||
ops = ps; // don't interpolate
|
||||
}
|
||||
|
||||
// UNDONE: temporary place for detect waterlevel
|
||||
CL_CheckWater( clent );
|
||||
|
||||
// interpolate field of view
|
||||
cl.data.fov = ops->fov + cl.refdef.lerpfrac * ( ps->fov - ops->fov );
|
||||
|
||||
VectorCopy( ps->velocity, cl.refdef.velocity );
|
||||
VectorCopy( ps->origin, cl.refdef.origin );
|
||||
VectorCopy( ops->origin, cl.refdef.prev.origin );
|
||||
VectorCopy( ps->angles, cl.refdef.angles );
|
||||
VectorCopy( ops->angles, cl.refdef.prev.angles );
|
||||
VectorCopy( ps->viewoffset, cl.refdef.viewheight );
|
||||
VectorCopy( ops->viewoffset, cl.refdef.prev.viewheight );
|
||||
VectorCopy( ps->punch_angles, cl.refdef.punchangle );
|
||||
VectorCopy( ops->punch_angles, cl.refdef.prev.punchangle );
|
||||
// get field of view
|
||||
cl.refdef.fov_x = clent->v.fov;
|
||||
VectorCopy( clent->v.velocity, cl.refdef.simvel );
|
||||
VectorCopy( clent->v.origin, cl.refdef.simorg );
|
||||
VectorCopy( clent->v.view_ofs, cl.refdef.viewheight );
|
||||
VectorCopy( clent->v.punchangle, cl.refdef.punchangle );
|
||||
|
||||
cl.refdef.movevars = &clgame.movevars;
|
||||
|
||||
if( ps->flags & FL_ONGROUND )
|
||||
cl.refdef.onground = EDICT_NUM( ps->groundent );
|
||||
if( clent->v.flags & FL_ONGROUND )
|
||||
cl.refdef.onground = clent->v.groundentity;
|
||||
else cl.refdef.onground = NULL;
|
||||
|
||||
cl.refdef.areabits = cl.frame.areabits;
|
||||
cl.refdef.clientnum = cl.playernum; // not a entity num
|
||||
cl.refdef.viewmodel = ps->viewmodel;
|
||||
cl.refdef.health = ps->health;
|
||||
cl.refdef.movetype = ps->movetype;
|
||||
cl.refdef.idealpitch = ps->idealpitch;
|
||||
cl.refdef.health = clent->v.health;
|
||||
cl.refdef.movetype = clent->v.movetype;
|
||||
cl.refdef.idealpitch = clent->v.ideal_pitch;
|
||||
cl.refdef.num_entities = clgame.numEntities;
|
||||
cl.refdef.max_entities = clgame.maxEntities;
|
||||
cl.refdef.max_clients = clgame.maxClients;
|
||||
cl.refdef.oldtime = cl.oldtime * 0.001f;
|
||||
cl.refdef.time = cl.time * 0.001f; // cl.time for right lerping
|
||||
cl.refdef.maxclients = clgame.maxClients;
|
||||
cl.refdef.time = cl.time * 0.001f;
|
||||
cl.refdef.frametime = cls.frametime;
|
||||
cl.refdef.demoplayback = cls.demoplayback;
|
||||
cl.refdef.demorecord = cls.demorecording;
|
||||
cl.refdef.paused = cl_paused->integer;
|
||||
cl.refdef.predicting = cl_predict->integer;
|
||||
cl.refdef.smoothing = cl_predict->integer;
|
||||
cl.refdef.waterlevel = clent->v.waterlevel;
|
||||
cl.refdef.rdflags = cl.render_flags;
|
||||
cl.refdef.flags = cl.render_flags;
|
||||
cl.refdef.nextView = 0;
|
||||
|
||||
// calculate the origin
|
||||
if( cl.refdef.predicting && !cl.refdef.demoplayback )
|
||||
if( cl.refdef.smoothing && !cl.refdef.demoplayback )
|
||||
{
|
||||
// use predicted values
|
||||
int delta;
|
||||
int i, delta;
|
||||
float backlerp = 1.0 - cl.lerpFrac;
|
||||
|
||||
backlerp = 1.0 - cl.refdef.lerpfrac;
|
||||
for( i = 0; i < 3; i++ )
|
||||
{
|
||||
cl.refdef.vieworg[i] = cl.predicted_origin[i] + ops->viewoffset[i]
|
||||
+ cl.refdef.lerpfrac * (ps->viewoffset[i] - ops->viewoffset[i]) - backlerp * cl.prediction_error[i];
|
||||
}
|
||||
cl.refdef.vieworg[i] = cl.predicted_origin[i] + cl.refdef.viewheight[i] - backlerp * cl.prediction_error[i];
|
||||
|
||||
// smooth out stair climbing
|
||||
delta = cls.realtime - cl.predicted_step_time;
|
||||
if( delta < cl.serverframetime ) cl.refdef.vieworg[2] -= cl.predicted_step * (cl.serverframetime - delta) * 0.01f;
|
||||
if( delta < cl.serverframetime )
|
||||
cl.refdef.vieworg[2] -= cl.predicted_step * ((cl.serverframetime - delta) / (float)cl.serverframetime);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -157,8 +127,8 @@ apply pre-calculated values
|
|||
*/
|
||||
void V_AddViewModel( void )
|
||||
{
|
||||
if( !cl.viewent.v.modelindex || cl.refdef.nextView ) return;
|
||||
re->AddRefEntity( &cl.viewent, ED_VIEWMODEL );
|
||||
if( cl.viewent.v.modelindex && !cl.refdef.nextView )
|
||||
re->AddRefEntity( &cl.viewent, ED_VIEWMODEL );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -102,9 +102,9 @@ typedef struct
|
|||
|
||||
long mtime[2]; // the timestamp of the last two messages
|
||||
long time; // this is the time value that the client
|
||||
long oldtime; // cl.oldtime
|
||||
// is rendering at. always <= cls.realtime
|
||||
int render_flags; // clearing at end of frame
|
||||
float lerpFrac; // interpolation value
|
||||
ref_params_t refdef; // shared refdef
|
||||
edict_t viewent; // viewmodel
|
||||
client_data_t data; // hud data
|
||||
|
@ -433,6 +433,7 @@ bool CL_LoadProgs( const char *name );
|
|||
void CL_ParseUserMessage( sizebuf_t *msg, int svc_num );
|
||||
void CL_LinkUserMessage( char *pszName, const int svc_num );
|
||||
void CL_SortUserMessages( void );
|
||||
float CL_GetLerpFrac( void );
|
||||
edict_t *CL_AllocEdict( void );
|
||||
void CL_InitEdict( edict_t *pEdict );
|
||||
void CL_FreeEdict( edict_t *pEdict );
|
||||
|
|
|
@ -65,6 +65,7 @@ enum svc_ops_e
|
|||
svc_frame, // server frame
|
||||
svc_sound, // <see code>
|
||||
svc_setangle, // [short short short] set the view angle to this absolute value
|
||||
svc_setview, // [short] entity number
|
||||
svc_print, // [byte] id [string] null terminated string
|
||||
svc_crosshairangle, // [short][short][short]
|
||||
svc_time, // [long] sv.time
|
||||
|
|
|
@ -6,86 +6,6 @@
|
|||
--------------------Configuration: engine - Win32 Debug--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8486.tmp" with contents
|
||||
[
|
||||
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "common" /I "server" /I "client" /I "uimenu" /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\engine\!debug/" /Fo"..\temp\engine\!debug/" /Fd"..\temp\engine\!debug/" /FD /c
|
||||
"D:\Xash3D\src_main\engine\client\cl_game.c"
|
||||
]
|
||||
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8486.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8487.tmp" with contents
|
||||
[
|
||||
user32.lib msvcrtd.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..\temp\engine\!debug/engine.pdb" /debug /machine:I386 /nodefaultlib:"msvcrt.lib" /out:"..\temp\engine\!debug/engine.dll" /implib:"..\temp\engine\!debug/engine.lib" /pdbtype:sept
|
||||
"\Xash3D\src_main\temp\engine\!debug\cinematic.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\cl_cmds.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\cl_demo.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\cl_effects.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\cl_frame.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\cl_game.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\cl_input.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\cl_main.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\cl_parse.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\cl_phys.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\cl_scrn.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\cl_view.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\com_library.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\con_keys.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\con_main.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\con_utils.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\engfuncs.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\engine.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\host.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\infostring.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\input.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\net_chan.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\net_huff.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\net_msg.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\sv_client.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\sv_cmds.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\sv_frame.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\sv_game.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\sv_init.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\sv_main.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\sv_move.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\sv_phys.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\sv_save.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\sv_world.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_advanced.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_audio.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_controls.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_credits.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_defaults.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_demos.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_gameoptions.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_gotosite.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_ingame.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_loadgame.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_main.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_menu.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_mods.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_multiplayer.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_network.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_options.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_performance.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_playersetup.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_qmenu.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_quit.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_savegame.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_singleplayer.obj"
|
||||
"\Xash3D\src_main\temp\engine\!debug\ui_video.obj"
|
||||
]
|
||||
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8487.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8488.bat" with contents
|
||||
[
|
||||
@echo off
|
||||
copy \Xash3D\src_main\temp\engine\!debug\engine.dll "D:\Xash3D\bin\engine.dll"
|
||||
]
|
||||
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8488.bat"
|
||||
Compiling...
|
||||
cl_game.c
|
||||
Linking...
|
||||
<h3>Output Window</h3>
|
||||
Performing Custom Build Step on \Xash3D\src_main\temp\engine\!debug\engine.dll
|
||||
‘Ş®Ż¨ŕ®˘ ® ä ©«®˘: 1.
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -84,6 +84,7 @@ void Host_InitRender( void )
|
|||
ri.GetClientEdict = CL_GetEdictByIndex;
|
||||
ri.GetLocalPlayer = CL_GetLocalPlayer;
|
||||
ri.GetMaxClients = CL_GetMaxClients;
|
||||
ri.GetLerpFrac = CL_GetLerpFrac;
|
||||
ri.WndProc = IN_WndProc;
|
||||
|
||||
Sys_LoadLibrary( &render_dll );
|
||||
|
|
|
@ -568,6 +568,13 @@ void SV_PutClientInServer( edict_t *ent )
|
|||
{
|
||||
}
|
||||
|
||||
if( !( ent->v.flags & FL_FAKECLIENT ))
|
||||
{
|
||||
MSG_WriteByte( &client->netchan.message, svc_setview );
|
||||
MSG_WriteWord( &client->netchan.message, NUM_FOR_EDICT( client->edict ));
|
||||
MSG_Send( MSG_ONE_R, NULL, client->edict );
|
||||
}
|
||||
|
||||
SV_LinkEdict( ent ); // m_pmatrix calculated here, so we need call this before pe->CreatePlayer
|
||||
ent->pvServerData->physbody = pe->CreatePlayer( ent, SV_GetModelPtr( ent ), ent->v.origin, ent->v.m_pmatrix );
|
||||
Mem_EmptyPool( svgame.temppool ); // all tempstrings can be freed now
|
||||
|
|
|
@ -51,11 +51,16 @@ void SV_UpdateEntityState( edict_t *ent, bool baseline )
|
|||
|
||||
if( ent->pvServerData->s.ed_type == ED_CLIENT && ent->v.fixangle )
|
||||
{
|
||||
MSG_Begin( svc_setangle );
|
||||
MSG_WriteAngle32( &sv.multicast, ent->v.angles[0] );
|
||||
MSG_WriteAngle32( &sv.multicast, ent->v.angles[1] );
|
||||
MSG_WriteAngle32( &sv.multicast, 0 );
|
||||
MSG_Send( MSG_ONE_R, vec3_origin, ent );
|
||||
sv_client_t *client = ent->pvServerData->client;
|
||||
|
||||
if( client )
|
||||
{
|
||||
MSG_WriteByte( &client->netchan.message, svc_setangle );
|
||||
MSG_WriteAngle32( &client->netchan.message, ent->v.angles[0] );
|
||||
MSG_WriteAngle32( &client->netchan.message, ent->v.angles[1] );
|
||||
MSG_WriteAngle32( &client->netchan.message, 0 );
|
||||
MSG_Send( MSG_ONE_R, vec3_origin, client->edict );
|
||||
}
|
||||
}
|
||||
|
||||
svgame.dllFuncs.pfnUpdateEntityState( &ent->pvServerData->s, ent, baseline );
|
||||
|
|
|
@ -2720,6 +2720,43 @@ int pfnCanSkipPlayer( const edict_t *player )
|
|||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
=============
|
||||
pfnSetView
|
||||
|
||||
=============
|
||||
*/
|
||||
void pfnSetView( const edict_t *pClient, const edict_t *pViewent )
|
||||
{
|
||||
sv_client_t *client;
|
||||
|
||||
if( pClient == NULL || pClient->free )
|
||||
{
|
||||
MsgDev( D_ERROR, "SV_SetView: invalid client!\n" );
|
||||
return;
|
||||
}
|
||||
|
||||
client = pClient->pvServerData->client;
|
||||
if( !client )
|
||||
{
|
||||
MsgDev( D_ERROR, "SV_SetView: not a client!\n" );
|
||||
return;
|
||||
}
|
||||
|
||||
// fakeclients can't set customview
|
||||
if( pClient->v.flags & FL_FAKECLIENT ) return;
|
||||
|
||||
if( pViewent == NULL || pViewent->free )
|
||||
{
|
||||
MsgDev( D_ERROR, "SV_SetView: invalid viewent!\n" );
|
||||
return;
|
||||
}
|
||||
|
||||
MSG_WriteByte( &client->netchan.message, svc_setview );
|
||||
MSG_WriteWord( &client->netchan.message, NUM_FOR_EDICT( pViewent ));
|
||||
MSG_Send( MSG_ONE_R, NULL, client->edict );
|
||||
}
|
||||
|
||||
/*
|
||||
=============
|
||||
pfnSetSkybox
|
||||
|
@ -2859,6 +2896,7 @@ static enginefuncs_t gEngfuncs =
|
|||
pfnCRC_Final,
|
||||
pfnRandomLong,
|
||||
pfnRandomFloat,
|
||||
pfnSetView,
|
||||
pfnCrosshairAngle,
|
||||
pfnLoadFile,
|
||||
pfnFOpen,
|
||||
|
|
|
@ -20,7 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
|
||||
#include "common.h"
|
||||
#include "ui_local.h"
|
||||
|
||||
#include "client.h"
|
||||
|
||||
#define ART_BACKGROUND "gfx/shell/misc/ui_sub_options"
|
||||
#define ART_BANNER "gfx/shell/banners/playersetup_t"
|
||||
|
@ -253,9 +253,9 @@ static void UI_PlayerSetup_Ownerdraw( void *self )
|
|||
refDef.viewport[3] = item->height - (item->height / 6);
|
||||
refDef.fov_x = 40;
|
||||
refDef.fov_y = UI_PlayerSetup_CalcFov( refDef.fov_x, refDef.viewport[2], refDef.viewport[3] );
|
||||
refDef.rdflags = RDF_NOWORLDMODEL;
|
||||
refDef.oldtime = refDef.time;
|
||||
refDef.flags = RDF_NOWORLDMODEL;
|
||||
refDef.time = uiStatic.realTime * 0.001f;
|
||||
refDef.frametime = cls.frametime;
|
||||
re->RenderFrame( &refDef );
|
||||
}
|
||||
else
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>Build Log</h1>
|
||||
<h3>
|
||||
--------------------Configuration: launch - Win32 Debug--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
|
||||
|
||||
|
||||
<h3>Results</h3>
|
||||
launch.dll - 0 error(s), 0 warning(s)
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>Build Log</h1>
|
||||
<h3>
|
||||
--------------------Configuration: physic - Win32 Debug--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
|
||||
|
||||
|
||||
<h3>Results</h3>
|
||||
physic.dll - 0 error(s), 0 warning(s)
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
|
@ -18,14 +18,6 @@
|
|||
#define VID_LEVELSHOT 1
|
||||
#define VID_SAVESHOT 2
|
||||
|
||||
// refdef flags
|
||||
#define RDF_NOWORLDMODEL BIT(0) // used for player configuration screen
|
||||
#define RDF_OLDAREABITS BIT(1) // forces R_MarkLeaves if not set
|
||||
#define RDF_PORTALINVIEW BIT(2) // cull entities using vis too because pvs\areabits are merged serverside
|
||||
#define RDF_SKYPORTALINVIEW BIT(3) // draw skyportal instead of regular sky
|
||||
#define RDF_NOFOVADJUSTMENT BIT(4) // do not adjust fov for widescreen
|
||||
#define RDF_WORLDOUTLINES BIT(5) // draw cell outlines for world surfaces
|
||||
|
||||
// render supported extensions
|
||||
#define R_WGL_SWAPCONTROL 1
|
||||
#define R_HARDWARE_GAMMA_CONTROL 2
|
||||
|
@ -131,6 +123,7 @@ typedef struct render_imp_s
|
|||
edict_t *(*GetClientEdict)( int index );
|
||||
edict_t *(*GetLocalPlayer)( void );
|
||||
int (*GetMaxClients)( void );
|
||||
float (*GetLerpFrac)( void );
|
||||
} render_imp_t;
|
||||
|
||||
#endif//RENDER_API_H
|
|
@ -843,7 +843,7 @@ void R_DrawAliasModel( const meshbuffer_t *mb )
|
|||
|
||||
if( !r_lerpmodels->integer )
|
||||
backLerp = 0;
|
||||
else backLerp = 1.0f - RI.refdef.lerpfrac;
|
||||
else backLerp = 1.0f - RI.lerpFrac;
|
||||
|
||||
R_DrawAliasFrameLerp( mb, backLerp );
|
||||
|
||||
|
@ -907,7 +907,7 @@ bool R_CullAliasModel( ref_entity_t *e )
|
|||
if( !frustum && query )
|
||||
R_IssueOcclusionQuery( R_GetOcclusionQueryNum( OQ_ENTITY, e - r_entities ), e, alias_mins, alias_maxs );
|
||||
|
||||
if( ( RI.refdef.rdflags & RDF_NOWORLDMODEL )
|
||||
if( ( RI.refdef.flags & RDF_NOWORLDMODEL )
|
||||
|| ( r_shadows->integer != SHADOW_PLANAR && !( r_shadows->integer == SHADOW_MAPPING && ( e->flags & EF_PLANARSHADOW )))
|
||||
|| R_CullPlanarShadow( e, alias_mins, alias_maxs, query ) )
|
||||
return frustum; // entity is not in PVS or shadow is culled away by frustum culling
|
||||
|
|
|
@ -402,7 +402,7 @@ void R_BackendEndFrame( void )
|
|||
// clean up texture units
|
||||
R_CleanUpTextureUnits( 1 );
|
||||
|
||||
if( r_speeds->integer && !( RI.refdef.rdflags & RDF_NOWORLDMODEL ) )
|
||||
if( r_speeds->integer && !( RI.refdef.flags & RDF_NOWORLDMODEL ) )
|
||||
{
|
||||
switch( r_speeds->integer )
|
||||
{
|
||||
|
@ -548,7 +548,7 @@ void R_FlushArrays( void )
|
|||
pglColorPointer( 4, GL_UNSIGNED_BYTE, 0, tr.colorsBuffer->pointer );
|
||||
}
|
||||
|
||||
if( r_drawelements->integer || glState.in2DMode || RI.refdef.rdflags & RDF_NOWORLDMODEL )
|
||||
if( r_drawelements->integer || glState.in2DMode || RI.refdef.flags & RDF_NOWORLDMODEL )
|
||||
{
|
||||
if( GL_Support( R_DRAW_RANGEELEMENTS_EXT ))
|
||||
pglDrawRangeElementsEXT( GL_TRIANGLES, 0, r_backacc.numVerts, r_backacc.numElems, GL_UNSIGNED_INT, elemsArray );
|
||||
|
|
|
@ -127,7 +127,7 @@ bool R_VisCullBox( const vec3_t mins, const vec3_t maxs )
|
|||
vec3_t extmins, extmaxs;
|
||||
mnode_t *node, *localstack[2048];
|
||||
|
||||
if( !r_worldmodel || ( RI.refdef.rdflags & RDF_NOWORLDMODEL ) )
|
||||
if( !r_worldmodel || ( RI.refdef.flags & RDF_NOWORLDMODEL ) )
|
||||
return false;
|
||||
if( r_novis->integer )
|
||||
return false;
|
||||
|
@ -178,7 +178,7 @@ bool R_VisCullSphere( const vec3_t origin, float radius )
|
|||
int stackdepth = 0;
|
||||
mnode_t *node, *localstack[2048];
|
||||
|
||||
if( !r_worldmodel || ( RI.refdef.rdflags & RDF_NOWORLDMODEL ) )
|
||||
if( !r_worldmodel || ( RI.refdef.flags & RDF_NOWORLDMODEL ) )
|
||||
return false;
|
||||
if( r_novis->integer )
|
||||
return false;
|
||||
|
@ -232,13 +232,13 @@ int R_CullModel( ref_entity_t *e, vec3_t mins, vec3_t maxs, float radius )
|
|||
return 0;
|
||||
}
|
||||
|
||||
if( RP_LOCALCLIENT( e ) && !RI.refdef.thirdperson )
|
||||
if( RP_LOCALCLIENT( e ) && !(RI.refdef.flags & RDF_THIRDPERSON))
|
||||
{
|
||||
if(!( RI.params & ( RP_MIRRORVIEW|RP_SHADOWMAPVIEW )))
|
||||
return 1;
|
||||
}
|
||||
|
||||
if( RP_FOLLOWENTITY( e ) && RP_LOCALCLIENT( e->parent ) && !RI.refdef.thirdperson )
|
||||
if( RP_FOLLOWENTITY( e ) && RP_LOCALCLIENT( e->parent ) && !(RI.refdef.flags & RDF_THIRDPERSON ))
|
||||
{
|
||||
if(!( RI.params & ( RP_MIRRORVIEW|RP_SHADOWMAPVIEW )))
|
||||
return 1;
|
||||
|
@ -247,7 +247,7 @@ int R_CullModel( ref_entity_t *e, vec3_t mins, vec3_t maxs, float radius )
|
|||
if( R_CullSphere( e->origin, radius, RI.clipFlags ))
|
||||
return 1;
|
||||
|
||||
if( RI.refdef.rdflags & (RDF_PORTALINVIEW|RDF_SKYPORTALINVIEW) || (RI.params & RP_SKYPORTALVIEW))
|
||||
if( RI.refdef.flags & (RDF_PORTALINVIEW|RDF_SKYPORTALINVIEW) || (RI.params & RP_SKYPORTALVIEW))
|
||||
{
|
||||
if( R_VisCullSphere( e->origin, radius ))
|
||||
return 2;
|
||||
|
|
|
@ -3184,7 +3184,7 @@ bool VID_CubemapShot( const char *base, uint size, bool skyshot )
|
|||
string basename;
|
||||
int i = 1, flags, result;
|
||||
|
||||
if( RI.refdef.onlyClientDraw || !r_worldmodel )
|
||||
if((RI.refdef.flags & RDF_NOWORLDMODEL) || !r_worldmodel )
|
||||
return false;
|
||||
|
||||
// make sure the specified size is valid
|
||||
|
|
|
@ -344,6 +344,8 @@ typedef struct
|
|||
ref_params_t refdef;
|
||||
int scissor[4];
|
||||
int viewport[4];
|
||||
float lerpFrac; // lerpfraction
|
||||
|
||||
meshlist_t *meshlist; // meshes to be rendered
|
||||
meshbuffer_t **surfmbuffers; // pointers to meshbuffers of world surfaces
|
||||
|
||||
|
@ -362,7 +364,7 @@ typedef struct
|
|||
vec_t *vup, *vpn, *vright;
|
||||
cplane_t frustum[6];
|
||||
float farClip;
|
||||
unsigned int clipFlags;
|
||||
uint clipFlags;
|
||||
vec3_t visMins, visMaxs;
|
||||
|
||||
matrix4x4 objectMatrix;
|
||||
|
@ -598,9 +600,9 @@ enum
|
|||
};
|
||||
|
||||
#define OCCLUSION_QUERIES_CVAR_HACK( RI ) ( !(r_occlusion_queries->integer == 2 && r_shadows->integer != SHADOW_MAPPING) \
|
||||
|| ((RI).refdef.rdflags & RDF_PORTALINVIEW) )
|
||||
|| ((RI).refdef.flags & RDF_PORTALINVIEW) )
|
||||
#define OCCLUSION_QUERIES_ENABLED( RI ) ( GL_Support( R_OCCLUSION_QUERIES_EXT ) && r_occlusion_queries->integer && r_drawentities->integer \
|
||||
&& !((RI).params & RP_NONVIEWERREF) && !((RI).refdef.rdflags & RDF_NOWORLDMODEL) \
|
||||
&& !((RI).params & RP_NONVIEWERREF) && !((RI).refdef.flags & RDF_NOWORLDMODEL) \
|
||||
&& OCCLUSION_QUERIES_CVAR_HACK( RI ) )
|
||||
#define OCCLUSION_OPAQUE_SHADER( s ) (((s)->sort == SORT_OPAQUE ) && ((s)->flags & SHADER_DEPTHWRITE ) && !(s)->numDeforms )
|
||||
#define OCCLUSION_TEST_ENTITY( e ) (((e)->flags & EF_OCCLUSIONTEST) || ((e)->ent_type == ED_VIEWMODEL))
|
||||
|
|
|
@ -370,7 +370,7 @@ mfog_t *R_FogForSphere( const vec3_t centre, const float radius )
|
|||
mfog_t *fog;
|
||||
cplane_t *plane;
|
||||
|
||||
if( !r_worldmodel || ( RI.refdef.rdflags & RDF_NOWORLDMODEL ) || !r_worldbrushmodel->numfogs )
|
||||
if( !r_worldmodel || ( RI.refdef.flags & RDF_NOWORLDMODEL ) || !r_worldbrushmodel->numfogs )
|
||||
return NULL;
|
||||
if( RI.params & RP_SHADOWMAPVIEW )
|
||||
return NULL;
|
||||
|
@ -741,7 +741,7 @@ static void R_AddSpriteModelToList( ref_entity_t *e )
|
|||
else return; // occluded
|
||||
}
|
||||
|
||||
if( RI.refdef.rdflags & (RDF_PORTALINVIEW|RDF_SKYPORTALINVIEW) || ( RI.params & RP_SKYPORTALVIEW ))
|
||||
if( RI.refdef.flags & (RDF_PORTALINVIEW|RDF_SKYPORTALINVIEW) || ( RI.params & RP_SKYPORTALVIEW ))
|
||||
{
|
||||
if( R_VisCullSphere( e->origin, frame->radius ))
|
||||
return;
|
||||
|
@ -764,7 +764,7 @@ static void R_AddSpritePolyToList( ref_entity_t *e )
|
|||
dist = (e->origin[0] - RI.refdef.vieworg[0]) * RI.vpn[0] + (e->origin[1] - RI.refdef.vieworg[1]) * RI.vpn[1] + (e->origin[2] - RI.refdef.vieworg[2]) * RI.vpn[2];
|
||||
if( dist < 0 ) return; // cull it because we don't want to sort unneeded things
|
||||
|
||||
if( RI.refdef.rdflags & ( RDF_PORTALINVIEW|RDF_SKYPORTALINVIEW ) || ( RI.params & RP_SKYPORTALVIEW ) )
|
||||
if( RI.refdef.flags & ( RDF_PORTALINVIEW|RDF_SKYPORTALINVIEW ) || ( RI.params & RP_SKYPORTALVIEW ) )
|
||||
{
|
||||
if( R_VisCullSphere( e->origin, e->radius ) )
|
||||
return;
|
||||
|
@ -995,7 +995,7 @@ static float R_FarClip( void )
|
|||
{
|
||||
float farclip_dist;
|
||||
|
||||
if( r_worldmodel && !( RI.refdef.rdflags & RDF_NOWORLDMODEL ) )
|
||||
if( r_worldmodel && !( RI.refdef.flags & RDF_NOWORLDMODEL ) )
|
||||
{
|
||||
int i;
|
||||
float dist;
|
||||
|
@ -1040,7 +1040,7 @@ static void R_SetupProjectionMatrix( const ref_params_t *rd, matrix4x4 m )
|
|||
{
|
||||
GLdouble xMin, xMax, yMin, yMax, zNear, zFar;
|
||||
|
||||
if( rd->rdflags & RDF_NOWORLDMODEL )
|
||||
if( rd->flags & RDF_NOWORLDMODEL )
|
||||
RI.farClip = 2048;
|
||||
else
|
||||
RI.farClip = R_FarClip();
|
||||
|
@ -1099,7 +1099,7 @@ static void R_SetupFrame( void )
|
|||
r_framecount++;
|
||||
|
||||
// current viewcluster
|
||||
if( !( RI.refdef.rdflags & RDF_NOWORLDMODEL ) )
|
||||
if( !( RI.refdef.flags & RDF_NOWORLDMODEL ) )
|
||||
{
|
||||
VectorCopy( r_worldmodel->mins, RI.visMins );
|
||||
VectorCopy( r_worldmodel->maxs, RI.visMaxs );
|
||||
|
@ -1180,7 +1180,7 @@ static void R_Clear( int bitMask )
|
|||
|
||||
bits = GL_DEPTH_BUFFER_BIT;
|
||||
|
||||
if( !( RI.refdef.rdflags & RDF_NOWORLDMODEL ) && r_fastsky->integer )
|
||||
if( !( RI.refdef.flags & RDF_NOWORLDMODEL ) && r_fastsky->integer )
|
||||
bits |= GL_COLOR_BUFFER_BIT;
|
||||
if( glState.stencilEnabled && ( r_shadows->integer >= SHADOW_PLANAR ) )
|
||||
bits |= GL_STENCIL_BUFFER_BIT;
|
||||
|
@ -1192,7 +1192,7 @@ static void R_Clear( int bitMask )
|
|||
|
||||
if( bits & GL_COLOR_BUFFER_BIT )
|
||||
{
|
||||
byte *color = r_worldmodel && !( RI.refdef.rdflags & RDF_NOWORLDMODEL ) && r_worldbrushmodel->globalfog ?
|
||||
byte *color = r_worldmodel && !( RI.refdef.flags & RDF_NOWORLDMODEL ) && r_worldbrushmodel->globalfog ?
|
||||
r_worldbrushmodel->globalfog->shader->fog_color : mapConfig.environmentColor;
|
||||
pglClearColor( (float)color[0]*( 1.0/255.0 ), (float)color[1]*( 1.0/255.0 ), (float)color[2]*( 1.0/255.0 ), 1 );
|
||||
}
|
||||
|
@ -1567,7 +1567,7 @@ void R_RenderDebugSurface( void )
|
|||
vec3_t forward;
|
||||
vec3_t start, end;
|
||||
|
||||
if( RI.params & RP_NONVIEWERREF || RI.refdef.rdflags & RDF_NOWORLDMODEL )
|
||||
if( RI.params & RP_NONVIEWERREF || RI.refdef.flags & RDF_NOWORLDMODEL )
|
||||
return;
|
||||
|
||||
r_debug_surface = NULL;
|
||||
|
@ -1606,7 +1606,7 @@ void R_RenderView( const ref_params_t *fd )
|
|||
|
||||
R_ClearMeshList( RI.meshlist );
|
||||
|
||||
if( !r_worldmodel && !( RI.refdef.rdflags & RDF_NOWORLDMODEL ) )
|
||||
if( !r_worldmodel && !( RI.refdef.flags & RDF_NOWORLDMODEL ) )
|
||||
Host_Error( "R_RenderView: NULL worldmodel\n" );
|
||||
|
||||
R_SetupFrame();
|
||||
|
@ -1866,7 +1866,7 @@ void R_RenderScene( const ref_params_t *fd )
|
|||
|
||||
R_BackendStartFrame();
|
||||
|
||||
if(!( fd->rdflags & RDF_NOWORLDMODEL ))
|
||||
if(!( fd->flags & RDF_NOWORLDMODEL ))
|
||||
{
|
||||
r_lastRefdef = *fd;
|
||||
}
|
||||
|
@ -1880,7 +1880,8 @@ void R_RenderScene( const ref_params_t *fd )
|
|||
RI.refdef = *fd;
|
||||
RI.farClip = 0;
|
||||
RI.clipFlags = 15;
|
||||
if( r_worldmodel && !( RI.refdef.rdflags & RDF_NOWORLDMODEL ) && r_worldbrushmodel->globalfog )
|
||||
RI.lerpFrac = ri.GetLerpFrac();
|
||||
if( r_worldmodel && !( RI.refdef.flags & RDF_NOWORLDMODEL ) && r_worldbrushmodel->globalfog )
|
||||
{
|
||||
RI.farClip = r_worldbrushmodel->globalfog->shader->fog_dist;
|
||||
RI.farClip = max( r_farclip_min, RI.farClip ) + r_farclip_bias;
|
||||
|
@ -1891,14 +1892,14 @@ void R_RenderScene( const ref_params_t *fd )
|
|||
RI.shadowGroup = NULL;
|
||||
|
||||
// adjust field of view for widescreen
|
||||
if( glState.wideScreen && !( fd->rdflags & RDF_NOFOVADJUSTMENT ))
|
||||
if( glState.wideScreen && !( fd->flags & RDF_NOFOVADJUSTMENT ))
|
||||
AdjustFov( &RI.refdef.fov_x, &RI.refdef.fov_y, glState.width, glState.height, false );
|
||||
|
||||
Vector4Set( RI.scissor, fd->viewport[0], glState.height - fd->viewport[3] - fd->viewport[1], fd->viewport[2], fd->viewport[3] );
|
||||
Vector4Set( RI.viewport, fd->viewport[0], glState.height - fd->viewport[3] - fd->viewport[1], fd->viewport[2], fd->viewport[3] );
|
||||
VectorCopy( fd->vieworg, RI.pvsOrigin );
|
||||
|
||||
if( gl_finish->integer && !gl_delayfinish->integer && !( fd->rdflags & RDF_NOWORLDMODEL ))
|
||||
if( gl_finish->integer && !gl_delayfinish->integer && !( fd->flags & RDF_NOWORLDMODEL ))
|
||||
pglFinish();
|
||||
|
||||
R_ClearShadowmaps();
|
||||
|
|
|
@ -298,7 +298,7 @@ int R_ReAllocMeshList( meshbuffer_t **mb, int minMeshes, int maxMeshes )
|
|||
*mb = newMB;
|
||||
|
||||
// NULL all pointers to old membuffers so we don't crash
|
||||
if( r_worldmodel && !( RI.refdef.rdflags & RDF_NOWORLDMODEL ) )
|
||||
if( r_worldmodel && !( RI.refdef.flags & RDF_NOWORLDMODEL ) )
|
||||
memset( RI.surfmbuffers, 0, r_worldbrushmodel->numsurfaces * sizeof( meshbuffer_t * ) );
|
||||
|
||||
return newSize;
|
||||
|
@ -624,7 +624,7 @@ void R_DrawPortals( void )
|
|||
}
|
||||
}
|
||||
|
||||
if( ( RI.refdef.rdflags & RDF_SKYPORTALINVIEW ) && !( RI.params & RP_NOSKY ) && !r_fastsky->integer )
|
||||
if( ( RI.refdef.flags & RDF_SKYPORTALINVIEW ) && !( RI.params & RP_NOSKY ) && !r_fastsky->integer )
|
||||
{
|
||||
for( i = 0, mb = RI.meshlist->meshbuffer_opaque; i < RI.meshlist->num_opaque_meshes; i++, mb++ )
|
||||
{
|
||||
|
@ -1225,12 +1225,12 @@ void R_DrawSkyPortal( skyportal_t *skyportal, vec3_t mins, vec3_t maxs )
|
|||
|
||||
VectorAdd( RI.refdef.viewangles, skyportal->viewanglesOffset, RI.refdef.viewangles );
|
||||
|
||||
RI.refdef.rdflags &= ~RDF_SKYPORTALINVIEW;
|
||||
RI.refdef.flags &= ~RDF_SKYPORTALINVIEW;
|
||||
if( skyportal->fov )
|
||||
{
|
||||
RI.refdef.fov_x = skyportal->fov;
|
||||
RI.refdef.fov_y = CalcFov( RI.refdef.fov_x, RI.refdef.viewport[2], RI.refdef.viewport[3] );
|
||||
if( glState.wideScreen && !( RI.refdef.rdflags & RDF_NOFOVADJUSTMENT ) )
|
||||
if( glState.wideScreen && !( RI.refdef.flags & RDF_NOFOVADJUSTMENT ) )
|
||||
AdjustFov( &RI.refdef.fov_x, &RI.refdef.fov_y, glState.width, glState.height, false );
|
||||
}
|
||||
|
||||
|
|
|
@ -221,7 +221,7 @@ void R_ClearShadowmaps( void )
|
|||
{
|
||||
r_numShadowGroups = 0;
|
||||
|
||||
if( r_shadows->integer != SHADOW_MAPPING || RI.refdef.rdflags & RDF_NOWORLDMODEL )
|
||||
if( r_shadows->integer != SHADOW_MAPPING || RI.refdef.flags & RDF_NOWORLDMODEL )
|
||||
return;
|
||||
|
||||
// clear all possible values, should be called once per scene
|
||||
|
@ -246,7 +246,7 @@ bool R_AddShadowCaster( ref_entity_t *ent )
|
|||
mleaf_t *leaf;
|
||||
vec3_t mins, maxs, bbox[8];
|
||||
|
||||
if( r_shadows->integer != SHADOW_MAPPING || RI.refdef.rdflags & RDF_NOWORLDMODEL )
|
||||
if( r_shadows->integer != SHADOW_MAPPING || RI.refdef.flags & RDF_NOWORLDMODEL )
|
||||
return false;
|
||||
if( !GL_Support( R_SHADER_GLSL100_EXT ) || !GL_Support( R_DEPTH_TEXTURE ) || !GL_Support( R_SHADOW_EXT ))
|
||||
return false;
|
||||
|
@ -363,7 +363,7 @@ void R_CullShadowmapGroups( void )
|
|||
vec3_t mins, maxs;
|
||||
shadowGroup_t *group;
|
||||
|
||||
if( RI.refdef.rdflags & RDF_NOWORLDMODEL )
|
||||
if( RI.refdef.flags & RDF_NOWORLDMODEL )
|
||||
return;
|
||||
|
||||
memset( r_shadowCullBits, 0, sizeof( r_shadowCullBits ) );
|
||||
|
@ -413,7 +413,7 @@ void R_DrawShadowmaps( void )
|
|||
RI.previousentity = NULL;
|
||||
Mem_Copy( &oldRI, &prevRI, sizeof( refinst_t ) );
|
||||
Mem_Copy( &prevRI, &RI, sizeof( refinst_t ) );
|
||||
RI.refdef.rdflags &= ~RDF_SKYPORTALINVIEW;
|
||||
RI.refdef.flags &= ~RDF_SKYPORTALINVIEW;
|
||||
/*
|
||||
// sort by clusternum (not really needed anymore, but oh well)
|
||||
if( !r_shadowGroups_sorted ) { // note: this breaks hash pointers
|
||||
|
|
|
@ -311,7 +311,7 @@ void R_DrawSky( ref_shader_t *shader )
|
|||
VectorAdd( mins, RI.viewOrigin, mins );
|
||||
VectorAdd( maxs, RI.viewOrigin, maxs );
|
||||
|
||||
if( RI.refdef.rdflags & RDF_SKYPORTALINVIEW )
|
||||
if( RI.refdef.flags & RDF_SKYPORTALINVIEW )
|
||||
{
|
||||
R_DrawSkyPortal( &RI.refdef.skyportal, mins, maxs );
|
||||
return;
|
||||
|
|
|
@ -948,7 +948,7 @@ void R_StudioSetUpTransform( ref_entity_t *e, bool trivial_accept )
|
|||
}
|
||||
|
||||
// calculate frontlerp value
|
||||
if( m_fDoInterp ) f = RI.refdef.lerpfrac;
|
||||
if( m_fDoInterp ) f = RI.lerpFrac;
|
||||
else f = 0;
|
||||
|
||||
for( i = 0; i < 3; i++ )
|
||||
|
@ -1897,11 +1897,11 @@ void R_StudioDrawDebug( void )
|
|||
if( RP_LOCALCLIENT( RI.currententity ))
|
||||
{
|
||||
// ignore localcient in firstperson mode
|
||||
if( !RI.refdef.thirdperson && !( RI.params & ( RP_MIRRORVIEW|RP_SHADOWMAPVIEW )))
|
||||
if(!(RI.refdef.flags & RDF_THIRDPERSON) && !( RI.params & ( RP_MIRRORVIEW|RP_SHADOWMAPVIEW )))
|
||||
continue;
|
||||
}
|
||||
|
||||
if( RP_FOLLOWENTITY( RI.currententity ) && RP_LOCALCLIENT( RI.currententity->parent ) && !RI.refdef.thirdperson )
|
||||
if( RP_FOLLOWENTITY( RI.currententity ) && RP_LOCALCLIENT( RI.currententity->parent ) && !(RI.refdef.flags & RDF_THIRDPERSON ))
|
||||
{
|
||||
// ignore entities that linked to localcient
|
||||
if(!( RI.params & ( RP_MIRRORVIEW|RP_SHADOWMAPVIEW )))
|
||||
|
@ -1945,9 +1945,7 @@ void R_StudioEstimateGait( ref_entity_t *e, edict_t *pplayer )
|
|||
float dt;
|
||||
vec3_t est_velocity;
|
||||
|
||||
dt = ( RI.refdef.time - RI.refdef.oldtime );
|
||||
if( dt < 0 ) dt = 0.0f;
|
||||
else if ( dt > 1.0 ) dt = 1.0f;
|
||||
dt = bound( 0.0f, RI.refdef.frametime, 1.0f );
|
||||
|
||||
if( dt == 0 || e->m_nCachedFrameCount == r_framecount2 )
|
||||
{
|
||||
|
@ -2024,9 +2022,7 @@ void R_StudioProcessGait( ref_entity_t *e, edict_t *pplayer, studiovars_t *pstud
|
|||
|
||||
// MsgDev( D_INFO, "%f %d\n", e->angles[PITCH], pstudio->blending[0] );
|
||||
|
||||
dt = (RI.refdef.time - RI.refdef.oldtime);
|
||||
if( dt < 0 ) dt = 0.0f;
|
||||
else if( dt > 1.0 ) dt = 1.0f;
|
||||
dt = bound( 0.0f, RI.refdef.frametime, 1.0f );
|
||||
|
||||
R_StudioEstimateGait( e, pplayer );
|
||||
|
||||
|
@ -2374,7 +2370,7 @@ bool R_CullStudioModel( ref_entity_t *e )
|
|||
query = OCCLUSION_QUERIES_ENABLED( RI ) && OCCLUSION_TEST_ENTITY( e ) ? true : false;
|
||||
if( !frustum && query ) R_IssueOcclusionQuery( R_GetOcclusionQueryNum( OQ_ENTITY, e - r_entities ), e, studio_mins, studio_maxs );
|
||||
|
||||
if((RI.refdef.rdflags & RDF_NOWORLDMODEL) || (r_shadows->integer != 1 && !(r_shadows->integer == 2 && (e->flags & EF_PLANARSHADOW))) || R_CullPlanarShadow( e, studio_mins, studio_maxs, query ))
|
||||
if((RI.refdef.flags & RDF_NOWORLDMODEL) || (r_shadows->integer != 1 && !(r_shadows->integer == 2 && (e->flags & EF_PLANARSHADOW))) || R_CullPlanarShadow( e, studio_mins, studio_maxs, query ))
|
||||
return frustum; // entity is not in PVS or shadow is culled away by frustum culling
|
||||
|
||||
R_StudioSetupRender( e, e->model );
|
||||
|
|
|
@ -198,7 +198,7 @@ bool R_CullBrushModel( ref_entity_t *e )
|
|||
return true;
|
||||
}
|
||||
|
||||
if( RI.refdef.rdflags & ( RDF_PORTALINVIEW|RDF_SKYPORTALINVIEW ) || ( RI.params & RP_SKYPORTALVIEW ) )
|
||||
if( RI.refdef.flags & ( RDF_PORTALINVIEW|RDF_SKYPORTALINVIEW ) || ( RI.params & RP_SKYPORTALVIEW ))
|
||||
{
|
||||
if( rotated )
|
||||
{
|
||||
|
@ -562,7 +562,7 @@ void R_DrawWorld( void )
|
|||
return;
|
||||
if( !r_worldmodel )
|
||||
return;
|
||||
if( RI.refdef.rdflags & RDF_NOWORLDMODEL )
|
||||
if( RI.refdef.flags & RDF_NOWORLDMODEL )
|
||||
return;
|
||||
|
||||
VectorCopy( RI.refdef.vieworg, modelorg );
|
||||
|
@ -571,7 +571,7 @@ void R_DrawWorld( void )
|
|||
RI.currententity = r_worldent;
|
||||
RI.currentmodel = RI.currententity->model;
|
||||
|
||||
if( (RI.refdef.rdflags & RDF_WORLDOUTLINES) && (r_viewcluster != -1))
|
||||
if( r_outlines_world->integer && r_viewcluster != -1 )
|
||||
RI.currententity->outlineHeight = max( 0.0f, r_outlines_world->value );
|
||||
else RI.currententity->outlineHeight = 0.0f;
|
||||
Vector4Copy( mapConfig.outlineColor, RI.currententity->outlineColor );
|
||||
|
@ -622,9 +622,9 @@ void R_MarkLeaves( void )
|
|||
mnode_t *node;
|
||||
int cluster;
|
||||
|
||||
if( RI.refdef.rdflags & RDF_NOWORLDMODEL )
|
||||
if( RI.refdef.flags & RDF_NOWORLDMODEL )
|
||||
return;
|
||||
if( r_oldviewcluster == r_viewcluster && ( RI.refdef.rdflags & RDF_OLDAREABITS ) && !r_novis->integer && r_viewcluster != -1 )
|
||||
if( r_oldviewcluster == r_viewcluster && ( RI.refdef.flags & RDF_OLDAREABITS ) && !r_novis->integer && r_viewcluster != -1 )
|
||||
return;
|
||||
if( RI.params & RP_SHADOWMAPVIEW )
|
||||
return;
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>Build Log</h1>
|
||||
<h3>
|
||||
--------------------Configuration: render - Win32 Debug--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
|
||||
|
||||
|
||||
<h3>Results</h3>
|
||||
render.dll - 0 error(s), 0 warning(s)
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
|
@ -123,6 +123,7 @@ inline void *GET_PRIVATE( edict_t *pent )
|
|||
#define CMD_ARGC (*g_engfuncs.pfnCmd_Argc)
|
||||
#define CMD_ARGV (*g_engfuncs.pfnCmd_Argv)
|
||||
#define GET_ATTACHMENT (*g_engfuncs.pfnGetAttachment)
|
||||
#define SET_VIEW (*g_engfuncs.pfnSetView)
|
||||
#define SET_CROSSHAIRANGLE (*g_engfuncs.pfnCrosshairAngle)
|
||||
#define SET_SKYBOX (*g_engfuncs.pfnSetSkybox)
|
||||
#define LOAD_FILE (*g_engfuncs.pfnLoadFile)
|
||||
|
|
|
@ -0,0 +1,223 @@
|
|||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>Build Log</h1>
|
||||
<h3>
|
||||
--------------------Configuration: server - Win32 Debug--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8A9F.tmp" with contents
|
||||
[
|
||||
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "ents" /I "game" /I "global" /I "monsters" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\server\!debug/" /Fo"..\temp\server\!debug/" /Fd"..\temp\server\!debug/" /FD /c
|
||||
"D:\Xash3D\src_main\server\monsters\ai_sound.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\animating.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\animation.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\apache.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\barnacle.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\barney.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\basebrush.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\baseentity.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\basefunc.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\basefx.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\baseinfo.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\baseitem.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\baselogic.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\basemonster.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\basemover.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\baseother.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\basepath.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\basephys.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\baserockets.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\basetank.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\basetrigger.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\baseutil.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\baseweapon.cpp"
|
||||
"D:\Xash3D\src_main\server\ents\baseworld.cpp"
|
||||
"D:\Xash3D\src_main\server\global\client.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\combat.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\defaultai.cpp"
|
||||
"D:\Xash3D\src_main\server\global\dll_int.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\flyingmonster.cpp"
|
||||
"D:\Xash3D\src_main\server\game\game.cpp"
|
||||
"D:\Xash3D\src_main\server\game\gamerules.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\generic.cpp"
|
||||
"D:\Xash3D\src_main\server\global\globals.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\gman.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\hassassin.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\headcrab.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\hgrunt.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\leech.cpp"
|
||||
"D:\Xash3D\src_main\server\game\lights.cpp"
|
||||
"D:\Xash3D\src_main\server\game\multiplay_gamerules.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\nodes.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\osprey.cpp"
|
||||
"D:\Xash3D\src_main\server\global\parent.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\player.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\rat.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\roach.cpp"
|
||||
"D:\Xash3D\src_main\server\global\saverestore.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\scientist.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\scripted.cpp"
|
||||
"D:\Xash3D\src_main\server\global\sfx.cpp"
|
||||
"D:\Xash3D\src_main\server\game\singleplay_gamerules.cpp"
|
||||
"D:\Xash3D\src_main\server\game\sound.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\squadmonster.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\talkmonster.cpp"
|
||||
"D:\Xash3D\src_main\server\game\teamplay_gamerules.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\turret.cpp"
|
||||
"D:\Xash3D\src_main\server\global\utils.cpp"
|
||||
"D:\Xash3D\src_main\server\weapon_generic.cpp"
|
||||
"D:\Xash3D\src_main\server\monsters\zombie.cpp"
|
||||
]
|
||||
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8A9F.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8AA0.tmp" with contents
|
||||
[
|
||||
msvcrtd.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..\temp\server\!debug/server.pdb" /debug /machine:I386 /nodefaultlib:"libc.lib" /def:".\server.def" /out:"..\temp\server\!debug/server.dll" /implib:"..\temp\server\!debug/server.lib" /pdbtype:sept
|
||||
"\Xash3D\src_main\temp\server\!debug\ai_sound.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\animating.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\animation.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\apache.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\barnacle.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\barney.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basebrush.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baseentity.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basefunc.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basefx.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baseinfo.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baseitem.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baselogic.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basemonster.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basemover.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baseother.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basepath.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basephys.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baserockets.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basetank.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basetrigger.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baseutil.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baseweapon.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baseworld.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\client.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\combat.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\decals.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\defaultai.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\dll_int.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\flyingmonster.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\game.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\gamerules.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\generic.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\globals.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\gman.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\hassassin.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\headcrab.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\hgrunt.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\leech.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\legacy.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\lights.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\multiplay_gamerules.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\nodes.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\osprey.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\parent.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\player.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\rat.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\roach.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\saverestore.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\scientist.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\scripted.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\sfx.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\singleplay_gamerules.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\sound.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\squadmonster.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\talkmonster.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\teamplay_gamerules.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\turret.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\utils.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\weapon_generic.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\zombie.obj"
|
||||
]
|
||||
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8AA0.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8AA1.bat" with contents
|
||||
[
|
||||
@echo off
|
||||
copy \Xash3D\src_main\temp\server\!debug\server.dll "D:\Xash3D\bin\server.dll"
|
||||
]
|
||||
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP8AA1.bat"
|
||||
Compiling...
|
||||
ai_sound.cpp
|
||||
Generating Code...
|
||||
Compiling...
|
||||
animating.cpp
|
||||
animation.cpp
|
||||
apache.cpp
|
||||
barnacle.cpp
|
||||
barney.cpp
|
||||
basebrush.cpp
|
||||
baseentity.cpp
|
||||
basefunc.cpp
|
||||
basefx.cpp
|
||||
baseinfo.cpp
|
||||
baseitem.cpp
|
||||
baselogic.cpp
|
||||
basemonster.cpp
|
||||
basemover.cpp
|
||||
baseother.cpp
|
||||
basepath.cpp
|
||||
basephys.cpp
|
||||
baserockets.cpp
|
||||
basetank.cpp
|
||||
basetrigger.cpp
|
||||
Generating Code...
|
||||
Compiling...
|
||||
baseutil.cpp
|
||||
baseweapon.cpp
|
||||
baseworld.cpp
|
||||
client.cpp
|
||||
combat.cpp
|
||||
defaultai.cpp
|
||||
dll_int.cpp
|
||||
flyingmonster.cpp
|
||||
game.cpp
|
||||
gamerules.cpp
|
||||
generic.cpp
|
||||
globals.cpp
|
||||
gman.cpp
|
||||
hassassin.cpp
|
||||
headcrab.cpp
|
||||
hgrunt.cpp
|
||||
leech.cpp
|
||||
lights.cpp
|
||||
multiplay_gamerules.cpp
|
||||
nodes.cpp
|
||||
Generating Code...
|
||||
Compiling...
|
||||
osprey.cpp
|
||||
parent.cpp
|
||||
player.cpp
|
||||
rat.cpp
|
||||
roach.cpp
|
||||
saverestore.cpp
|
||||
scientist.cpp
|
||||
scripted.cpp
|
||||
sfx.cpp
|
||||
singleplay_gamerules.cpp
|
||||
sound.cpp
|
||||
squadmonster.cpp
|
||||
talkmonster.cpp
|
||||
teamplay_gamerules.cpp
|
||||
turret.cpp
|
||||
utils.cpp
|
||||
weapon_generic.cpp
|
||||
zombie.cpp
|
||||
Generating Code...
|
||||
Linking...
|
||||
<h3>Output Window</h3>
|
||||
Performing Custom Build Step on \Xash3D\src_main\temp\server\!debug\server.dll
|
||||
‘ª®¯¨à®¢ ® ä ©«®¢: 1.
|
||||
|
||||
|
||||
|
||||
<h3>Results</h3>
|
||||
server.dll - 0 error(s), 0 warning(s)
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
7
todo.log
7
todo.log
|
@ -78,7 +78,7 @@ Beta 13.12.09
|
|||
47. fixup slowly rendering OK
|
||||
48. implement uimenu into engine.dll OK
|
||||
49. implement new timers OK
|
||||
50. fixup network packets rate
|
||||
50. fixup network packets rate OK
|
||||
51. fixup stair climbing OK
|
||||
52. implement new user move system OK
|
||||
53. finish RenderMode for shaders OK
|
||||
|
@ -138,5 +138,6 @@ Beta 13.12.09
|
|||
114. fixup shadowmaps OK
|
||||
115. fixup CullStudioModel OK
|
||||
116. create flashlight for player OK
|
||||
117. re-organize refdef flags
|
||||
118. revise ref_params_t
|
||||
117. re-organize refdef flags OK
|
||||
118. revise ref_params_t OK
|
||||
119. fixup client smooth stair climbing
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>Build Log</h1>
|
||||
<h3>
|
||||
--------------------Configuration: vprogs - Win32 Debug--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
|
||||
|
||||
|
||||
<h3>Results</h3>
|
||||
vprogs.dll - 0 error(s), 0 warning(s)
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>Build Log</h1>
|
||||
<h3>
|
||||
--------------------Configuration: vsound - Win32 Debug--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
|
||||
|
||||
|
||||
<h3>Results</h3>
|
||||
vsound.dll - 0 error(s), 0 warning(s)
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>Build Log</h1>
|
||||
<h3>
|
||||
--------------------Configuration: xtools - Win32 Debug--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
|
||||
|
||||
|
||||
<h3>Results</h3>
|
||||
xtools.dll - 0 error(s), 0 warning(s)
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue