26#include "../qcommon/q_shared.h"
27#include "../qcommon/qcommon.h"
28#include "../cgame/tr_types.h"
29#include "../renderercommon/tr_public.h"
31#include "snd_public.h"
32#include "../cgame/cg_public.h"
33#include "../fgame/bg_public.h"
44#define QKEY_FILE "qkey"
47#define RETRANSMIT_TIMEOUT 3000
59int serverTimeResidual;
63 byte areamask[MAX_MAP_AREA_BYTES];
74 server_sound_t sounds[64];
98#define MAX_PARSE_ENTITIES 2048
100extern int g_console_field_width;
101extern int g_console_charWidth;
102extern int g_console_charHeight;
113 int oldFrameServerTime;
116 qboolean extrapolatedSnapshot;
118 qboolean newSnapshots;
121 char mapname[MAX_QPATH];
123 int parseEntitiesNum;
125 int mouseDx[2], mouseDy[2];
129 unsigned int mouseButtons;
131 int joystickAxis[MAX_JOYSTICK_AXIS];
135 usercmd_t cmds[CMD_BACKUP];
153 entityState_t entityBaselines[MAX_GENTITIES];
155 entityState_t parseEntities[MAX_PARSE_ENTITIES];
172#define MAX_TIMEDEMO_DURATIONS 4096
178 int lastPacketSentTime;
181 char servername[MAX_OSPATH];
184 int connectStartTime;
185 int connectPacketCount;
186 char serverMessage[MAX_STRING_TOKENS];
192 int reliableSequence;
193 int reliableAcknowledge;
194 char reliableCommands[MAX_RELIABLE_COMMANDS][MAX_STRING_CHARS];
202 int serverMessageSequence;
205 int serverCommandSequence;
206 int lastExecutedServerCommand;
207 char serverCommands[MAX_RELIABLE_COMMANDS][MAX_STRING_CHARS];
210 fileHandle_t download;
211 char downloadTempName[MAX_OSPATH];
212 char downloadName[MAX_OSPATH];
214 qboolean cURLEnabled;
216 qboolean cURLDisconnected;
217 char downloadURL[MAX_OSPATH];
219 CURLM *downloadCURLM;
221 int sv_allowDownload;
222 char sv_dlURL[MAX_CVAR_VALUE_STRING];
225 size_t downloadCount;
227 char downloadList[MAX_INFO_STRING];
228 qboolean downloadRestart;
231 char demoName[MAX_QPATH];
232 qboolean spDemoRecording;
233 qboolean demorecording;
234 qboolean demoplaying;
235 qboolean demowaiting;
236 qboolean firstDemoFrameSkipped;
237 fileHandle_t demofile;
241 int timeDemoBaseTime;
242 int timeDemoLastFrame;
243 int timeDemoMinDuration;
244 int timeDemoMaxDuration;
245 unsigned char timeDemoDurations[ MAX_TIMEDEMO_DURATIONS ];
247 float aviVideoFrameRemainder;
248 float aviSoundFrameRemainder;
251 qboolean voipEnabled;
252 qboolean voipCodecInitialized;
256 OpusDecoder *opusDecoder[MAX_CLIENTS];
257 byte voipIncomingGeneration[MAX_CLIENTS];
258 int voipIncomingSequence[MAX_CLIENTS];
259 float voipGain[MAX_CLIENTS];
260 qboolean voipIgnore[MAX_CLIENTS];
261 qboolean voipMuteAll;
266 uint8_t voipTargets[(MAX_CLIENTS + 7) / 8];
268 OpusEncoder *opusEncoder;
269 int voipOutgoingDataSize;
270 int voipOutgoingDataFrames;
271 int voipOutgoingSequence;
272 byte voipOutgoingGeneration;
273 byte voipOutgoingData[1024];
277#ifdef LEGACY_PROTOCOL
300 char info[MAX_INFO_STRING];
305 char hostName[MAX_HOSTNAME_LENGTH];
306 char mapName[MAX_NAME_LENGTH];
307 char game[MAX_NAME_LENGTH];
308 char gameTypeString[ MAX_NAME_LENGTH ];
324typedef enum loadProgress_e {
328 LOAD_PROGRESS_DEFAULT,
337 loadProgress_t loading;
339 qboolean vid_restart;
344 qboolean rendererRegistered;
345 qboolean cgameStarted;
351 float serverFrameTime;
358 qboolean bNewLocalServerInfo;
360 int numglobalservers;
363 int numGlobalServerAddresses;
364 netadr_t globalServerAddresses[MAX_GLOBAL_SERVERS];
366 int numfavoriteservers;
369 int nummplayerservers;
372 int pingUpdateSource;
378 char updateChallenge[MAX_TOKEN_CHARS];
379 char updateInfoString[MAX_INFO_STRING];
390 int character_lights;
391 hdelement_t HudDrawElements[ MAX_HUDDRAW_ELEMENTS ];
393 stopWatch_t stopwatch;
394 void* savedCgameState;
395 size_t savedCgameStateSize;
396 char gcdResponse[73];
399 qhandle_t charSetShader;
400 qhandle_t whiteShader;
401 qhandle_t consoleShader;
416extern qboolean scr_initialized;
421extern cvar_t *cl_nodelta;
422extern cvar_t *cl_debugMove;
423extern cvar_t *cl_noprint;
424extern cvar_t *cl_timegraph;
425extern cvar_t *cl_debuggraph;
426extern cvar_t *cl_timeout;
427extern cvar_t *cl_connect_timeout;
428extern cvar_t *cl_maxpackets;
429extern cvar_t *cl_packetdup;
430extern cvar_t *cl_shownet;
431extern cvar_t *cl_netprofile;
432extern cvar_t *cl_netprofileoverlay;
433extern cvar_t *cl_showSend;
434extern cvar_t *cl_timeNudge;
435extern cvar_t *cl_showTimeDelta;
436extern cvar_t *cl_freezeDemo;
438extern cvar_t *cl_yawspeed;
439extern cvar_t *cl_pitchspeed;
440extern cvar_t *cl_run;
441extern cvar_t *cl_anglespeedkey;
443extern cvar_t *cl_sensitivity;
444extern cvar_t *cl_freelook;
446extern cvar_t *cl_mouseAccel;
447extern cvar_t *cl_mouseAccelOffset;
448extern cvar_t *cl_mouseAccelStyle;
449extern cvar_t *cl_showMouseRate;
451extern cvar_t *cl_altbindings;
452extern cvar_t *cl_ctrlbindings;
454extern cvar_t *m_pitch;
456extern cvar_t *m_forward;
457extern cvar_t *m_side;
458extern cvar_t *m_filter;
460extern cvar_t *j_pitch;
462extern cvar_t *j_forward;
463extern cvar_t *j_side;
465extern cvar_t *j_pitch_axis;
466extern cvar_t *j_yaw_axis;
467extern cvar_t *j_forward_axis;
468extern cvar_t *j_side_axis;
469extern cvar_t *j_up_axis;
471extern cvar_t *cl_timedemo;
472extern cvar_t *cl_aviFrameRate;
473extern cvar_t *cl_aviMotionJpeg;
475extern cvar_t *cl_activeAction;
477extern cvar_t *cl_allowDownload;
478extern cvar_t *cl_downloadMethod;
479extern cvar_t *cl_conXOffset;
480extern cvar_t *cl_inGameVideo;
482extern cvar_t *cl_lanForcePackets;
483extern cvar_t *cl_langamerefreshstatus;
484extern cvar_t *cl_radar_icon_size;
485extern cvar_t *cl_radar_speak_time;
486extern cvar_t *cl_radar_blink_time;
487extern cvar_t *cl_autoRecordDemo;
489extern cvar_t *cl_r_fullscreen;
491extern cvar_t *cl_consoleKeys;
494extern cvar_t *cl_useMumble;
495extern cvar_t *cl_mumbleScale;
502extern cvar_t *cl_voipUseVAD;
503extern cvar_t *cl_voipVADThreshold;
504extern cvar_t *cl_voipSend;
505extern cvar_t *cl_voipSendTarget;
506extern cvar_t *cl_voipGainDuringCapture;
507extern cvar_t *cl_voipCaptureMult;
508extern cvar_t *cl_voipShowMeter;
509extern cvar_t *cl_voip;
512#define VOIP_MAX_FRAME_SAMPLES ( 20 * 48 )
515#define VOIP_MAX_PACKET_FRAMES 3
516#define VOIP_MAX_PACKET_SAMPLES ( VOIP_MAX_FRAME_SAMPLES * VOIP_MAX_PACKET_FRAMES )
519extern cvar_t *cg_gametype;
521extern cvar_t* j_pitch;
523extern cvar_t* j_forward;
524extern cvar_t* j_side;
526extern cvar_t* j_pitch_axis;
527extern cvar_t* j_yaw_axis;
528extern cvar_t* j_forward_axis;
529extern cvar_t* j_side_axis;
530extern cvar_t* j_up_axis;
539void CL_InitClientSavedData(
void);
540void CL_AddReliableCommand(
const char *cmd, qboolean isDisconnectCmd);
542void CL_StartHunkUsers( qboolean rendererOnly );
544void CL_Connect(
const char *server, netadrtype_t family );
546void CL_Disconnect_f (
void);
547void CL_GetChallengePacket (
void);
548void CL_Vid_Restart_f(
void );
549void CL_Snd_Restart_f (
void);
550const char *CL_ConfigString(
int index );
551void CL_StartDemoLoop(
void );
552void CL_NextDemo(
void );
553void CL_ReadDemoMessage(
void );
554void CL_StopRecord_f(
void);
556void CL_InitDownloads(
void);
557void CL_NextDownload(
void);
559void CL_GetPing(
int n,
char *buf,
int buflen,
int *pingtime );
560void CL_GetPingInfo(
int n,
char *buf,
int buflen );
561void CL_ClearPing(
int n );
562int CL_GetPingQueueCount(
void );
564void CL_ShutdownRef(
void );
565void CL_InitRef(
void );
566qboolean CL_CDKeyValidate(
const char *key,
const char *checksum );
567int CL_ServerStatus(
const char *serverAddress,
char *serverStatusString,
int maxLen );
568void UI_ClearResource(
void );
569void UI_LoadResource(
const char *name );
571qboolean CL_CheckPaused(
void);
573int CL_GetRefSequence(
void);
574qboolean CL_IsRendererLoaded(
void);
575void CL_ApplyOriginalConfigTweaks();
591extern qboolean in_guimouse;
593void IN_ToggleMouse(
void );
594void IN_MouseOn(
void );
595void IN_MouseOff(
void );
596void CL_UpdateMouse();
598void CL_InitInput (
void);
599void CL_ShutdownInput(
void);
600void CL_SendCmd (
void);
601void CL_ClearState (
void);
602void CL_ReadPackets (
void);
604void CL_WritePacket(
void );
605void IN_CenterView (
void);
607void CL_VerifyCode(
void );
610const char *Key_KeynumToString(
int keynum );
611const char *Key_KeynumToBindString(
int keynum );
612void Key_GetKeysForCommand(
const char *command,
int *key1,
int *key2 );
613int Key_GetCatcher(
void );
614void Key_SetCatcher(
int catcher );
616void CL_EyeInfo(usereyes_t *info);
621extern int cl_connectedToPureServer;
622extern int cl_connectedToCheatServer;
623extern msg_t *cl_currentMSG;
626void CL_Voip_f(
void );
629void CL_SystemInfoChanged(
void );
630void CL_ParseServerMessage( msg_t *msg );
632int CL_MSG_ReadBits(
int bits );
633int CL_MSG_ReadChar(
void );
634int CL_MSG_ReadByte(
void );
635int CL_MSG_ReadSVC(
void );
636int CL_MSG_ReadShort(
void );
637int CL_MSG_ReadLong(
void );
638float CL_MSG_ReadFloat(
void );
639char *CL_MSG_ReadString(
void );
640char *CL_MSG_ReadStringLine(
void );
641float CL_MSG_ReadAngle8(
void );
642float CL_MSG_ReadAngle16(
void );
643void CL_MSG_ReadData(
void *data,
int len );
644float CL_MSG_ReadCoord(
void );
645void CL_MSG_ReadDir( vec3_t dir );
649void CL_ServerInfoPacket(
netadr_t from, msg_t *msg );
650void CL_LocalServers_f(
void );
651void CL_GlobalServers_f(
void );
652void CL_FavoriteServers_f(
void );
653void CL_Ping_f(
void );
654void CL_SaveShot_f(
void );
655void CL_Dialog_f(
void );
656void CL_ServerRestarted(
void );
657qboolean CL_UpdateVisiblePings_f(
int source );
663void Con_DrawCharacter (
int cx,
int line,
int num);
665void Con_CheckResize (
void);
667void Con_Shutdown (
void);
668void Con_Clear_f (
void);
669void Con_ToggleConsole_f (
void);
670void Con_DrawNotify (
void);
671void Con_ClearNotify (
void);
672void Con_RunConsole (
void);
673void Con_DrawConsole (
void);
674void Con_PageUp(
void );
675void Con_PageDown(
void );
677void Con_Bottom(
void );
683void SCR_DrawDebugGraph(
void);
684void SCR_DrawScreenField(
void);
685void SCR_UpdateScreen (
void);
687void SCR_DebugGraph (
float value);
689int SCR_GetBigStringWidth(
const char *str );
691void SCR_AdjustFrom640(
float *x,
float *y,
float *w,
float *h );
692void SCR_FillRect(
float x,
float y,
float width,
float height,
693 const float *color );
694void SCR_DrawPic(
float x,
float y,
float width,
float height, qhandle_t hShader );
695void SCR_DrawNamedPic(
float x,
float y,
float width,
float height,
const char *picname );
697void SCR_DrawBigString(
int x,
int y,
const char *s,
float alpha, qboolean noColorEscape );
698void SCR_DrawBigStringColor(
int x,
int y,
const char *s, vec4_t color, qboolean noColorEscape );
699void SCR_DrawSmallStringExt(
int x,
int y,
const char *
string,
float *setColor, qboolean forceColor, qboolean noColorEscape );
700void SCR_DrawSmallChar(
int x,
int y,
int ch );
702void UpdateStereoSide( stereoFrame_t s );
708void CL_PlayCinematic_f(
void );
709void SCR_DrawCinematic (
void);
710void SCR_RunCinematic (
void);
711void SCR_StopCinematic (
void);
712int CIN_PlayCinematic(
const char *arg0,
int xpos,
int ypos,
int width,
int height,
int bits);
713e_status CIN_StopCinematic(
int handle);
714e_status CIN_RunCinematic (
int handle);
715void CIN_DrawCinematic (
int handle);
716void CIN_SetExtents (
int handle,
int x,
int y,
int w,
int h);
717void CIN_SetLooping (
int handle, qboolean loop);
718void CIN_UploadCinematic(
int handle);
719void CIN_CloseAllVideos(
void);
724void CL_InitCGame(
void );
725void CL_InitCGameDLL(
void );
726void CL_ShutdownCGame(
void );
727qboolean CL_GameCommand(
void );
728void CL_CGameRendering( stereoFrame_t stereo );
729void CL_CGame2D( stereoFrame_t stereo );
730void CL_UpdateSnapFlags(
void );
731void CL_SetCGameTime(
void );
732void CL_FirstSnapshot(
void );
733void CL_ShaderStateChanged(
void );
734baseshader_t *CL_GetShaderPointer(
int iShaderNum );
752void CL_Netchan_Transmit(
netchan_t *chan, msg_t* msg);
753void CL_Netchan_TransmitNextFragment(
netchan_t *chan );
754qboolean CL_Netchan_Process(
netchan_t *chan, msg_t *msg );
755void CL_NET_OutOfBandPrint(
netadr_t adr,
const char* format, ... );
760qboolean CL_OpenAVIForWriting(
const char *filename );
761void CL_TakeVideoFrame(
void );
762void CL_WriteAVIVideoFrame(
const byte *imageBuffer,
int size );
763void CL_WriteAVIAudioFrame(
const byte *pcmBuffer,
int size );
764qboolean CL_CloseAVI(
void );
765qboolean CL_VideoRecording(
void );
770void CL_InitConsoleCommands(
void );
Definition q_shared.h:2142
Definition cg_public.h:458
Definition q_shared.h:2180
Definition q_shared.h:1693
Definition tr_types.h:244
Definition tr_public.h:40