Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
/*
|
|
|
|
Copyright (C) 1996-1997 Id Software, Inc.
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU General Public License
|
|
|
|
as published by the Free Software Foundation; either version 2
|
|
|
|
of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
|
|
|
|
See the GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program; if not, write to the Free Software
|
|
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
|
|
|
|
*/
|
|
|
|
// client.h
|
|
|
|
|
2000-01-22 12:54:51 +00:00
|
|
|
#ifndef _CLIENT_H
|
|
|
|
#define _CLIENT_H
|
2000-01-28 01:03:09 +00:00
|
|
|
|
2000-02-03 00:34:12 +00:00
|
|
|
#include <zlib.h>
|
|
|
|
|
2000-01-28 01:03:09 +00:00
|
|
|
#include <qtypes.h>
|
|
|
|
#include <common.h>
|
|
|
|
#include <quakefs.h>
|
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
vec3_t viewangles;
|
|
|
|
|
|
|
|
// intended velocities
|
|
|
|
float forwardmove;
|
|
|
|
float sidemove;
|
|
|
|
float upmove;
|
|
|
|
#ifdef QUAKE2
|
|
|
|
byte lightlevel;
|
|
|
|
#endif
|
|
|
|
} usercmd_t;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int length;
|
|
|
|
char map[MAX_STYLESTRING];
|
|
|
|
} lightstyle_t;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
char name[MAX_SCOREBOARDNAME];
|
|
|
|
float entertime;
|
|
|
|
int frags;
|
|
|
|
int colors; // two 4 bit fields
|
|
|
|
byte translations[VID_GRADES*256];
|
|
|
|
} scoreboard_t;
|
|
|
|
|
|
|
|
#define CSHIFT_CONTENTS 0
|
|
|
|
#define CSHIFT_DAMAGE 1
|
|
|
|
#define CSHIFT_BONUS 2
|
|
|
|
#define CSHIFT_POWERUP 3
|
|
|
|
#define NUM_CSHIFTS 4
|
|
|
|
|
|
|
|
#define NAME_LENGTH 64
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
// client_state_t should hold all pieces of the client state
|
|
|
|
//
|
|
|
|
|
|
|
|
#define SIGNONS 4 // signon messages to receive before connected
|
|
|
|
|
|
|
|
#define MAX_DLIGHTS 32
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
vec3_t origin;
|
|
|
|
float radius;
|
|
|
|
float die; // stop lighting after this time
|
|
|
|
float decay; // drop this each second
|
|
|
|
float minlight; // don't add when contributing less
|
|
|
|
int key;
|
|
|
|
#ifdef QUAKE2
|
|
|
|
qboolean dark; // subtracts light instead of adding
|
|
|
|
#endif
|
|
|
|
} dlight_t;
|
|
|
|
|
|
|
|
|
|
|
|
#define MAX_BEAMS 24
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int entity;
|
|
|
|
struct model_s *model;
|
|
|
|
float endtime;
|
|
|
|
vec3_t start, end;
|
|
|
|
} beam_t;
|
|
|
|
|
|
|
|
#define MAX_EFRAGS 640
|
|
|
|
|
|
|
|
#define MAX_MAPSTRING 2048
|
|
|
|
#define MAX_DEMOS 8
|
|
|
|
#define MAX_DEMONAME 16
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
ca_dedicated, // a dedicated server with no ability to start a client
|
|
|
|
ca_disconnected, // full screen console with no connection
|
2000-01-29 18:46:26 +00:00
|
|
|
ca_connected, // valid netcon, talking to a server
|
|
|
|
ca_onserver, // processing data lists, etc
|
|
|
|
ca_active // everything is in, so frames can be rendered
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
} cactive_t;
|
|
|
|
|
|
|
|
//
|
|
|
|
// the client_static_t structure is persistant through an arbitrary number
|
|
|
|
// of server connections
|
|
|
|
//
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
cactive_t state;
|
|
|
|
|
|
|
|
// personalization data sent to server
|
|
|
|
char mapstring[MAX_QPATH];
|
|
|
|
char spawnparms[MAX_MAPSTRING]; // to restart a level
|
|
|
|
|
|
|
|
// demo loop control
|
|
|
|
int demonum; // -1 = don't play demos
|
|
|
|
char demos[MAX_DEMOS][MAX_DEMONAME]; // when not playing
|
|
|
|
|
|
|
|
// demo recording info must be here, because record is started before
|
|
|
|
// entering a map (and clearing client_state_t)
|
|
|
|
qboolean demorecording;
|
|
|
|
qboolean demoplayback;
|
|
|
|
qboolean timedemo;
|
|
|
|
int forcetrack; // -1 = use normal cd track
|
2000-02-03 00:34:12 +00:00
|
|
|
gzFile *demofile;
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
int td_lastframe; // to meter out one message a frame
|
|
|
|
int td_startframe; // host_framecount at start
|
|
|
|
float td_starttime; // realtime at second frame of timedemo
|
|
|
|
|
|
|
|
|
|
|
|
// connection information
|
|
|
|
int signon; // 0 to SIGNONS
|
|
|
|
struct qsocket_s *netcon;
|
|
|
|
sizebuf_t message; // writing buffer to send to server
|
|
|
|
|
|
|
|
} client_static_t;
|
|
|
|
|
|
|
|
extern client_static_t cls;
|
|
|
|
|
|
|
|
|
2000-01-29 18:46:26 +00:00
|
|
|
#include <qstructs.h>
|
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
//
|
|
|
|
// cvars
|
|
|
|
//
|
|
|
|
extern cvar_t cl_name;
|
|
|
|
extern cvar_t cl_color;
|
|
|
|
|
|
|
|
extern cvar_t cl_upspeed;
|
|
|
|
extern cvar_t cl_forwardspeed;
|
|
|
|
extern cvar_t cl_backspeed;
|
|
|
|
extern cvar_t cl_sidespeed;
|
|
|
|
|
|
|
|
extern cvar_t cl_movespeedkey;
|
|
|
|
|
|
|
|
extern cvar_t cl_yawspeed;
|
|
|
|
extern cvar_t cl_pitchspeed;
|
|
|
|
|
|
|
|
extern cvar_t cl_anglespeedkey;
|
|
|
|
|
|
|
|
extern cvar_t cl_autofire;
|
|
|
|
|
|
|
|
extern cvar_t cl_shownet;
|
|
|
|
extern cvar_t cl_nolerp;
|
|
|
|
|
2000-01-22 22:09:54 +00:00
|
|
|
extern cvar_t cl_sbar;
|
|
|
|
extern cvar_t cl_hudswap;
|
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
extern cvar_t cl_pitchdriftspeed;
|
|
|
|
extern cvar_t lookspring;
|
|
|
|
extern cvar_t lookstrafe;
|
|
|
|
extern cvar_t sensitivity;
|
|
|
|
|
|
|
|
extern cvar_t m_pitch;
|
|
|
|
extern cvar_t m_yaw;
|
|
|
|
extern cvar_t m_forward;
|
|
|
|
extern cvar_t m_side;
|
|
|
|
|
2000-01-05 01:26:09 +00:00
|
|
|
extern cvar_t _windowed_mouse;
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
|
|
|
|
#define MAX_TEMP_ENTITIES 64 // lightning bolts, etc
|
|
|
|
#define MAX_STATIC_ENTITIES 128 // torches, etc
|
|
|
|
|
|
|
|
// FIXME, allocate dynamically
|
|
|
|
extern efrag_t cl_efrags[MAX_EFRAGS];
|
|
|
|
extern entity_t cl_entities[MAX_EDICTS];
|
|
|
|
extern entity_t cl_static_entities[MAX_STATIC_ENTITIES];
|
|
|
|
extern lightstyle_t cl_lightstyle[MAX_LIGHTSTYLES];
|
|
|
|
extern dlight_t cl_dlights[MAX_DLIGHTS];
|
|
|
|
extern entity_t cl_temp_entities[MAX_TEMP_ENTITIES];
|
|
|
|
extern beam_t cl_beams[MAX_BEAMS];
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
|
|
|
|
//
|
|
|
|
// cl_main
|
|
|
|
//
|
|
|
|
dlight_t *CL_AllocDlight (int key);
|
|
|
|
void CL_DecayLights (void);
|
|
|
|
|
|
|
|
void CL_Init (void);
|
|
|
|
|
|
|
|
void CL_EstablishConnection (char *host);
|
|
|
|
void CL_Signon1 (void);
|
|
|
|
void CL_Signon2 (void);
|
|
|
|
void CL_Signon3 (void);
|
|
|
|
void CL_Signon4 (void);
|
|
|
|
|
|
|
|
void CL_Disconnect (void);
|
|
|
|
void CL_Disconnect_f (void);
|
|
|
|
void CL_NextDemo (void);
|
|
|
|
|
|
|
|
#define MAX_VISEDICTS 256
|
|
|
|
extern int cl_numvisedicts;
|
|
|
|
extern entity_t *cl_visedicts[MAX_VISEDICTS];
|
|
|
|
|
|
|
|
//
|
|
|
|
// cl_input
|
|
|
|
//
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int down[2]; // key nums holding it down
|
|
|
|
int state; // low bit is down state
|
|
|
|
} kbutton_t;
|
|
|
|
|
|
|
|
extern kbutton_t in_mlook, in_klook;
|
|
|
|
extern kbutton_t in_strafe;
|
|
|
|
extern kbutton_t in_speed;
|
|
|
|
|
|
|
|
void CL_InitInput (void);
|
|
|
|
void CL_SendCmd (void);
|
|
|
|
void CL_SendMove (usercmd_t *cmd);
|
|
|
|
|
|
|
|
void CL_ParseTEnt (void);
|
|
|
|
void CL_UpdateTEnts (void);
|
|
|
|
|
|
|
|
void CL_ClearState (void);
|
|
|
|
|
|
|
|
|
|
|
|
int CL_ReadFromServer (void);
|
|
|
|
void CL_WriteToServer (usercmd_t *cmd);
|
|
|
|
void CL_BaseMove (usercmd_t *cmd);
|
|
|
|
|
|
|
|
|
|
|
|
float CL_KeyState (kbutton_t *key);
|
|
|
|
char *Key_KeynumToString (int keynum);
|
|
|
|
|
|
|
|
//
|
|
|
|
// cl_demo.c
|
|
|
|
//
|
|
|
|
void CL_StopPlayback (void);
|
|
|
|
int CL_GetMessage (void);
|
|
|
|
|
|
|
|
void CL_Stop_f (void);
|
|
|
|
void CL_Record_f (void);
|
|
|
|
void CL_PlayDemo_f (void);
|
|
|
|
void CL_TimeDemo_f (void);
|
|
|
|
|
|
|
|
//
|
|
|
|
// cl_parse.c
|
|
|
|
//
|
|
|
|
void CL_ParseServerMessage (void);
|
|
|
|
void CL_NewTranslation (int slot);
|
|
|
|
|
|
|
|
//
|
|
|
|
// view
|
|
|
|
//
|
|
|
|
void V_StartPitchDrift (void);
|
|
|
|
void V_StopPitchDrift (void);
|
|
|
|
|
|
|
|
void V_RenderView (void);
|
|
|
|
void V_UpdatePalette (void);
|
|
|
|
void V_Register (void);
|
|
|
|
void V_ParseDamage (void);
|
|
|
|
void V_SetContentsColor (int contents);
|
2000-01-19 11:01:04 +00:00
|
|
|
void V_CalcBlend (void);
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
// cl_tent
|
|
|
|
//
|
|
|
|
void CL_InitTEnts (void);
|
|
|
|
void CL_SignonReply (void);
|
2000-01-22 12:54:51 +00:00
|
|
|
#endif // _CLIENT_H
|