mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-23 04:42:32 +00:00
More QSG2 work.
This commit is contained in:
parent
beb6219072
commit
7bf16df448
5 changed files with 57 additions and 70 deletions
|
@ -67,9 +67,7 @@ typedef struct
|
|||
#define NAME_LENGTH 64
|
||||
|
||||
|
||||
/*
|
||||
client_state_t should hold all pieces of the client state
|
||||
*/
|
||||
// client_state_t should hold all pieces of the client state
|
||||
|
||||
#define SIGNONS 4 // signon messages to receive before connected
|
||||
|
||||
|
@ -144,33 +142,32 @@ extern client_static_t cls;
|
|||
*/
|
||||
typedef struct
|
||||
{
|
||||
int movemessages; // since connecting to this server
|
||||
// throw out the first couple, so the player
|
||||
// doesn't accidentally do something the
|
||||
// first frame
|
||||
usercmd_t cmd; // last command sent to the server
|
||||
int movemessages; // Since connecting to this server throw out
|
||||
// the first couple, so the player doesn't
|
||||
// accidentally do something the first frame
|
||||
usercmd_t cmd; // Last command sent to the server
|
||||
|
||||
// information for local display
|
||||
int stats[MAX_CL_STATS]; // health, etc
|
||||
float item_gettime[32]; // cl.time of aquiring item, for blinking
|
||||
float faceanimtime; // use anim frame if cl.time < this
|
||||
int stats[MAX_CL_STATS]; // Health, etc
|
||||
float item_gettime[32]; // cl.time of aquiring item, for blinking
|
||||
float faceanimtime; // Use anim frame if cl.time < this
|
||||
|
||||
cshift_t cshifts[NUM_CSHIFTS]; // color shifts for damage, powerups
|
||||
cshift_t prev_cshifts[NUM_CSHIFTS]; // and content types
|
||||
cshift_t cshifts[NUM_CSHIFTS]; // Color shifts for damage, powerups
|
||||
cshift_t prev_cshifts[NUM_CSHIFTS]; // And content types
|
||||
|
||||
// the client maintains its own idea of view angles, which are
|
||||
// sent to the server each frame. The server sets punchangle when
|
||||
// the view is temporarliy offset, and an angle reset commands at the start
|
||||
// of each level and after teleporting.
|
||||
vec3_t mviewangles[2]; // during demo playback viewangles is lerped
|
||||
// The client maintains its own idea of view angles, which are sent to the
|
||||
// server each frame. The server sets punchangle when the view is temporarily
|
||||
// offset, and an angle reset commands at the start of each level and after
|
||||
// teleporting.
|
||||
vec3_t mviewangles[2]; // During demo playback viewangles is lerped
|
||||
// between these
|
||||
vec3_t viewangles;
|
||||
|
||||
vec3_t mvelocity[2]; // update by server, used for lean+bob
|
||||
vec3_t mvelocity[2]; // Update by server, used for lean+bob
|
||||
// (0 is newest)
|
||||
vec3_t velocity; // lerped between mvelocity[0] and [1]
|
||||
vec3_t velocity; // Lerped between mvelocity[0] and [1]
|
||||
|
||||
vec3_t punchangle; // temporary offset
|
||||
vec3_t punchangle; // Temporary offset
|
||||
|
||||
// pitch drifting vars
|
||||
float idealpitch;
|
||||
|
@ -180,23 +177,22 @@ typedef struct
|
|||
double laststop;
|
||||
|
||||
float viewheight;
|
||||
float crouch; // local amount for smoothing stepups
|
||||
float crouch; // Local amount for smoothing stepups
|
||||
|
||||
qboolean paused; // send over by server
|
||||
qboolean paused; // Send over by server
|
||||
qboolean onground;
|
||||
qboolean inwater;
|
||||
|
||||
int intermission; // don't change view angle, full screen, etc
|
||||
int completed_time; // latched at intermission start
|
||||
int intermission; // Don't change view angle, full screen, etc
|
||||
int completed_time; // Latched at intermission start
|
||||
|
||||
double mtime[2]; // the timestamp of last two messages
|
||||
double time; // clients view of time, should be between
|
||||
// servertime and oldservertime to generate
|
||||
// a lerp point for other data
|
||||
double oldtime; // previous cl.time, time-oldtime is used
|
||||
double mtime[2]; // The timestamp of last two messages
|
||||
double time; // Clients view of time, should be between
|
||||
// servertime and oldservertime to generate a
|
||||
// lerp point for other data
|
||||
double oldtime; // Previous cl.time, time-oldtime is used
|
||||
// to decay light values and smooth step ups
|
||||
|
||||
|
||||
float last_received_message; // (realtime) for net trouble icon
|
||||
|
||||
/* information that is static for the entire time connected to a server */
|
||||
|
@ -233,11 +229,15 @@ typedef struct cl_entity_state_s {
|
|||
int colors;
|
||||
struct model_s *model;
|
||||
int skinnum;
|
||||
byte alpha;
|
||||
byte scale;
|
||||
byte colormod;
|
||||
byte glow_size;
|
||||
byte glow_color;
|
||||
} cl_entity_state_t;
|
||||
|
||||
/*
|
||||
cvars
|
||||
*/
|
||||
|
||||
// cvars
|
||||
extern struct cvar_s *cl_name;
|
||||
extern struct cvar_s *cl_color;
|
||||
|
||||
|
@ -292,9 +292,7 @@ extern entity_t cl_static_entities[MAX_STATIC_ENTITIES];
|
|||
extern int fps_count;
|
||||
|
||||
|
||||
/*
|
||||
cl_main
|
||||
*/
|
||||
// cl_main
|
||||
void CL_Init (void);
|
||||
void CL_InitCvars (void);
|
||||
|
||||
|
@ -309,9 +307,7 @@ void CL_Disconnect_f (void);
|
|||
void CL_NextDemo (void);
|
||||
|
||||
|
||||
/*
|
||||
cl_input
|
||||
*/
|
||||
// cl_input
|
||||
void CL_InitInput (void);
|
||||
void CL_SendCmd (void);
|
||||
void CL_SendMove (usercmd_t *cmd);
|
||||
|
@ -327,9 +323,7 @@ void CL_WriteToServer (usercmd_t *cmd);
|
|||
void CL_BaseMove (usercmd_t *cmd);
|
||||
|
||||
|
||||
/*
|
||||
cl_demo.c
|
||||
*/
|
||||
// cl_demo.c
|
||||
void CL_StopPlayback (void);
|
||||
int CL_GetMessage (void);
|
||||
|
||||
|
@ -342,17 +336,13 @@ void CL_Demo_Init (void);
|
|||
extern struct cvar_s *demo_gzip;
|
||||
extern struct cvar_s *demo_speed;
|
||||
|
||||
/*
|
||||
cl_parse.c
|
||||
*/
|
||||
// cl_parse.c
|
||||
struct skin_s;
|
||||
void CL_ParseServerMessage (void);
|
||||
void CL_NewTranslation (int slot, struct skin_s *skin);
|
||||
|
||||
|
||||
/*
|
||||
view
|
||||
*/
|
||||
// view
|
||||
void V_StartPitchDrift (void);
|
||||
void V_StopPitchDrift (void);
|
||||
|
||||
|
@ -363,9 +353,7 @@ void V_ParseDamage (void);
|
|||
void V_SetContentsColor (int contents);
|
||||
void V_PrepBlend (void);
|
||||
|
||||
/*
|
||||
cl_tent
|
||||
*/
|
||||
// cl_tent
|
||||
void CL_TEnts_Init (void);
|
||||
void CL_ClearEnts (void);
|
||||
void CL_ClearTEnts (void);
|
||||
|
|
|
@ -557,10 +557,10 @@ CL_RelinkEntities (void)
|
|||
|
||||
VectorCopy (ent->origin, ent->old_origin);
|
||||
|
||||
if (state->forcelink) { // the entity was not updated in the
|
||||
// last message so move to the final spot
|
||||
} else { // if the delta is large, assume a
|
||||
// teleport and don't lerp
|
||||
if (state->forcelink) { // The entity was not updated in the last
|
||||
// message so move to the final spot
|
||||
} else { // If the delta is large, assume a teleport
|
||||
// and don't lerp
|
||||
f = frac;
|
||||
VectorSubtract (state->msg_origins[0],
|
||||
state->msg_origins[1], delta);
|
||||
|
@ -608,7 +608,8 @@ CL_RelinkEntities (void)
|
|||
}
|
||||
}
|
||||
CL_NewDlight (i, ent->origin, state->effects);
|
||||
if (VectorDistance_fast(state->msg_origins[1], ent->origin) > (256*256))
|
||||
if ( VectorDistance_fast(state->msg_origins[1], ent->origin)
|
||||
> (256*256))
|
||||
VectorCopy (ent ->origin, state->msg_origins[1]);
|
||||
if (ent->model->flags & EF_ROCKET) {
|
||||
dl = R_AllocDlight (i);
|
||||
|
@ -632,7 +633,7 @@ CL_RelinkEntities (void)
|
|||
else if (ent->model->flags & EF_TRACER3)
|
||||
R_VoorTrail (ent);
|
||||
else if (ent->model->flags & EF_GLOWTRAIL)
|
||||
R_GlowTrail (ent);
|
||||
R_GlowTrail (ent, state->glow_color);
|
||||
|
||||
state->forcelink = false;
|
||||
|
||||
|
|
|
@ -362,7 +362,6 @@ CL_ParseUpdate (int bits)
|
|||
bits |= (i << 8);
|
||||
}
|
||||
|
||||
|
||||
if (bits & U_LONGENTITY)
|
||||
num = MSG_ReadShort (net_message);
|
||||
else
|
||||
|
@ -486,16 +485,15 @@ CL_ParseUpdate (int bits)
|
|||
forcelink = true;
|
||||
|
||||
// QSG Start
|
||||
#if 0
|
||||
if (bits & U_ALPHA)
|
||||
state->alpha = MSG_ReadByte (net_message);
|
||||
else
|
||||
state->alpha = state.baseline.alpha;
|
||||
state->alpha = state->baseline.alpha;
|
||||
|
||||
if (bits & U_SCALE)
|
||||
state->scale = MSG_ReadByte (net_message);
|
||||
else
|
||||
state->scale = state.baseline.scale;
|
||||
state->scale = state->baseline.scale;
|
||||
|
||||
if (bits & U_EFFECTS2)
|
||||
state->effects = (state->effects & 0xFF) |
|
||||
|
@ -504,17 +502,17 @@ CL_ParseUpdate (int bits)
|
|||
if (bits & U_GLOWSIZE)
|
||||
state->glow_size = MSG_ReadByte (net_message);
|
||||
else
|
||||
state->glow_size = state.baseline.glow_size;
|
||||
state->glow_size = state->baseline.glow_size;
|
||||
|
||||
if (bits & U_GLOWCOLOR)
|
||||
state->glow_color = MSG_ReadByte (net_message);
|
||||
else
|
||||
state->glow_color = state.baseline.glow_color;
|
||||
state->glow_color = state->baseline.glow_color;
|
||||
|
||||
if (bits & U_COLORMOD)
|
||||
state->colormod = MSG_ReadByte (net_message);
|
||||
else
|
||||
state->colormod = state.baseline.colormod;
|
||||
state->colormod = state->baseline.colormod;
|
||||
|
||||
if (!(bits & U_EXTEND2))
|
||||
return;
|
||||
|
@ -523,8 +521,7 @@ CL_ParseUpdate (int bits)
|
|||
state->effects |= EF_GLOWTRAIL;
|
||||
|
||||
if (bits & U_FRAME2)
|
||||
to->frame = (to->frame & 0xFF) | (MSG_ReadByte (net_message) << 8);
|
||||
#endif
|
||||
ent->frame = (ent->frame & 0xFF) | (MSG_ReadByte (net_message) << 8);
|
||||
// QSG End
|
||||
|
||||
if (forcelink) { // didn't have an update last message
|
||||
|
@ -582,7 +579,8 @@ CL_ParseClientdata (int bits)
|
|||
else
|
||||
cl.punchangle[i] = 0;
|
||||
if (bits & (SU_VELOCITY1 << i))
|
||||
cl.mvelocity[0][i] = ((signed char) MSG_ReadByte (net_message)) * 16;
|
||||
cl.mvelocity[0][i] = ((signed char) MSG_ReadByte (net_message))
|
||||
* 16;
|
||||
else
|
||||
cl.mvelocity[0][i] = 0;
|
||||
}
|
||||
|
|
|
@ -546,7 +546,7 @@ CL_LinkPacketEntities (void)
|
|||
else if (model->flags & EF_TRACER3)
|
||||
R_VoorTrail (*ent);
|
||||
else if (model->flags & EF_GLOWTRAIL)
|
||||
R_GlowTrail (*ent);
|
||||
R_GlowTrail (*ent, s1->glow_color);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -214,7 +214,7 @@ CL_CheckOrDownloadFile (const char *filename)
|
|||
}
|
||||
|
||||
if (!snd_initialized && strnequal ("sound/", filename, 6)) {
|
||||
// don't bother downloading sownds if we can't play them
|
||||
// don't bother downloading sounds if we can't play them
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue