33#include "../fgame/bg_public.h"
57 int crossblend_totaltime;
58 float crossblend_lerp;
66 int next_evaluate_time;
73 float current_distance;
76 qboolean has_commands;
84#define CF_UPDATESWIPE 0x0000001
85#define CF_COMMANDS_PROCESSED 0x0000002
90 entityState_t currentState;
91 entityState_t nextState;
94 qboolean currentValid;
103 qboolean extrapolated;
113 sfxHandle_t tikiLoopSound;
114 float tikiLoopSoundVolume;
115 float tikiLoopSoundMinDist;
116 float tikiLoopSoundMaxDist;
117 float tikiLoopSoundPitch;
118 int tikiLoopSoundFlags;
121 float client_color[4];
124 int splash_last_spawn_time;
125 int splash_still_count;
127 quat_t bone_quat[NUM_BONE_CONTROLLERS];
128 float animLastTimes[MAX_FRAMEINFOS];
129 int animLast[MAX_FRAMEINFOS];
132 qboolean bFootOnGround_Right;
133 qboolean bFootOnGround_Left;
142#define MAX_VERTS_ON_POLY 8
143#define MAX_MARK_POLYS 64
144#define MAX_TREAD_MARKS 16
164 markPoly_t* markPolys;
167#define MAX_CUSTOM_SOUNDS 32
175 char text[MAX_STRING_CHARS];
179#define MAX_RAIN_SHADERS 16
189 char shader[MAX_RAIN_SHADERS][MAX_STRING_CHARS];
190 char currentShader[MAX_STRING_CHARS];
203 qboolean demoPlayback;
207 int latestSnapshotNum;
208 int latestSnapshotTime;
216 qboolean thisFrameTeleport;
217 qboolean nextFrameTeleport;
218 qboolean nextFrameCameraCut;
227 qboolean renderingThirdPerson;
231 playerState_t predicted_player_state;
233 int predictedErrorTime;
234 vec3_t predictedError;
238 int iWeaponCommandSend;
243 vec3_t autoAnglesSlow;
244 vec3_t autoAxisSlow[3];
245 vec3_t autoAnglesFast;
246 vec3_t autoAxisFast[3];
250 vec3_t playerHeadPos;
251 vec3_t refdefViewAngles;
252 vec3_t currentViewPos;
253 vec3_t currentViewAngles;
259 float fCurrentViewHeight;
260 float fCurrentViewBobPhase;
261 float fCurrentViewBobAmp;
264 dtiki_t *pLastPlayerWorldModel;
265 dtiki_t *pPlayerFPSModel;
266 qhandle_t hPlayerFPSModelHandle;
267 qboolean bFPSModelLastFrame;
268 qboolean bFPSOnGround;
269 dtiki_t *pAlliedPlayerModel;
270 qhandle_t hAlliedPlayerModelHandle;
271 dtiki_t *pAxisPlayerModel;
272 qhandle_t hAxisPlayerModelHandle;
273 qboolean serverAlliedModelValid;
274 qboolean serverAxisModelValid;
277 vec3_t vOffsetViewAngles;
278 vec3_t vLastHeadAngles;
279 vec3_t vLastViewAngles;
280 vec3_t vEyeOffsetMax;
281 float fEyeOffsetFrac;
286 vec3_t camera_origin;
287 vec3_t camera_angles;
291 float zoomSensitivity;
294 qboolean bIntermissionDisplay;
297 int scoresRequestTime;
299 char scoresMenuName[MAX_STRING_TOKENS];
300 int iInstaMessageMenu;
304 int centerPrintCharWidth;
306 char centerPrint[1024];
307 int centerPrintLines;
314 char testModelName[MAX_QPATH];
318 float farplane_distance;
320 vec3_t farplane_color;
321 qboolean farplane_cull;
322 float skyboxFarplane;
323 qboolean renderTerrain;
324 float farclipOverride;
325 vec3_t farplaneColorOverride;
336 float viewkickRecenter;
337 float viewkickMinDecay;
338 float viewkickMaxDecay;
341 cobjective_t Objectives[20];
342 float ObjectivesAlphaTime;
343 float ObjectivesBaseAlpha;
344 float ObjectivesDesiredAlpha;
345 float ObjectivesCurrentAlpha;
346 int ObjectivesCurrentIndex;
352 qhandle_t radarShaders[2];
356 qhandle_t backTileShader;
357 qhandle_t lagometerShader;
358 qhandle_t shadowMarkShader;
359 qhandle_t footShadowMarkShader;
360 qhandle_t wakeMarkShader;
361 qhandle_t pausedShader;
362 qhandle_t levelExitShader;
363 qhandle_t zoomOverlayShader;
364 qhandle_t kar98TopOverlayShader;
365 qhandle_t kar98BottomOverlayShader;
366 qhandle_t binocularsOverlayShader;
367 fontheader_t *hudDrawFont;
368 fontheader_t *attackerFont;
369 fontheader_t *objectiveFont;
370 qhandle_t objectivesBackShader;
371 qhandle_t checkedBoxShader;
372 qhandle_t uncheckedBoxShader;
387 int serverCommandSequence;
388 int processedSnapshotNum;
390 qboolean localServer;
404 qboolean useMapChecksum;
405 char mapname[MAX_QPATH];
413 int numUndecidedVotes;
414 qboolean voteRefreshed;
415 char voteString[1024];
420 qhandle_t model_draw[MAX_MODELS];
421 sfxHandle_t sound_precache[MAX_SOUNDS];
423 qhandle_t inlineDrawModel[MAX_MODELS];
424 vec3_t inlineModelMidpoints[MAX_MODELS];
431 extern cvar_t *paused;
432 extern cvar_t *developer;
437 extern target_game_e cg_target_game;
438 extern int cg_protocol;
439 extern centity_t cg_entities[MAX_GENTITIES];
440 extern markPoly_t *cg_markPolys;
442 extern cvar_t *cg_animSpeed;
443 extern cvar_t *cg_debugAnim;
444 extern cvar_t *cg_debugAnimWatch;
445 extern cvar_t *cg_errorDecay;
446 extern cvar_t *cg_nopredict;
447 extern cvar_t *cg_showmiss;
448 extern cvar_t *cg_addMarks;
449 extern cvar_t *cg_maxMarks;
450 extern cvar_t *cg_viewsize;
451 extern cvar_t *cg_3rd_person;
452 extern cvar_t *cg_drawviewmodel;
453 extern cvar_t *cg_synchronousClients;
454 extern cvar_t *cg_stereoSeparation;
455 extern cvar_t *cg_stats;
456 extern cvar_t *cg_lagometer;
457 extern cvar_t *r_lerpmodels;
458 extern cvar_t *cg_cameraheight;
459 extern cvar_t *cg_cameradist;
460 extern cvar_t *cg_cameraverticaldisplacement;
461 extern cvar_t *cg_camerascale;
462 extern cvar_t *cg_shadows;
463 extern cvar_t *cg_hidetempmodels;
464 extern cvar_t *cg_traceinfo;
465 extern cvar_t *cg_debugFootsteps;
466 extern cvar_t *cg_smoothClients;
467 extern cvar_t *cg_smoothClientsTime;
468 extern cvar_t *pmove_fixed;
469 extern cvar_t *pmove_msec;
470 extern cvar_t *cg_pmove_msec;
471 extern cvar_t *dm_playermodel;
472 extern cvar_t *dm_playergermanmodel;
473 extern cvar_t *cg_forceModel;
474 extern cvar_t *cg_animationviewmodel;
475 extern cvar_t *cg_hitmessages;
476 extern cvar_t *cg_acidtrip;
477 extern cvar_t *cg_hud;
478 extern cvar_t *cg_huddraw_force;
479 extern cvar_t *cg_drawsvlag;
480 extern cvar_t *cg_crosshair;
481 extern cvar_t *cg_crosshair_friend;
482 extern cvar_t *ui_crosshair;
483 extern cvar_t *vm_offset_max;
484 extern cvar_t *vm_offset_speed;
485 extern cvar_t *vm_sway_front;
486 extern cvar_t *vm_sway_side;
487 extern cvar_t *vm_sway_up;
488 extern cvar_t *vm_offset_air_front;
489 extern cvar_t *vm_offset_air_side;
490 extern cvar_t *vm_offset_air_up;
491 extern cvar_t *vm_offset_crouch_front;
492 extern cvar_t *vm_offset_crouch_side;
493 extern cvar_t *vm_offset_crouch_up;
494 extern cvar_t *vm_offset_rocketcrouch_front;
495 extern cvar_t *vm_offset_rocketcrouch_side;
496 extern cvar_t *vm_offset_rocketcrouch_up;
497 extern cvar_t *vm_offset_shotguncrouch_front;
498 extern cvar_t *vm_offset_shotguncrouch_side;
499 extern cvar_t *vm_offset_shotguncrouch_up;
500 extern cvar_t *vm_offset_vel_base;
501 extern cvar_t *vm_offset_vel_front;
502 extern cvar_t *vm_offset_vel_side;
503 extern cvar_t *vm_offset_vel_up;
504 extern cvar_t *vm_offset_upvel;
505 extern cvar_t *vm_lean_lower;
506 extern cvar_t *voiceChat;
507 extern cvar_t *cg_shadowscount;
508 extern cvar_t *cg_shadowdebug;
509 extern cvar_t *ui_timemessage;
514 extern cvar_t *cg_fov;
515 extern cvar_t *cg_cheats;
520 qboolean CG_UseLargeLightmaps(
const char* mapName);
521 void CG_ProcessConfigString(
int num, qboolean modelOnly);
522 const char *CG_ConfigString(
int index);
523 void CG_AddToTeamChat(
const char *
str);
524 void CG_NewClientinfo(
int clientNum);
525 sfxHandle_t CG_CustomSound(
int entityNum,
const char *soundName);
526 int CG_CrosshairPlayer(
void);
527 int CG_LastAttacker(
void);
528 void CG_Init(
clientGameImport_t *imported,
int serverMessageNum,
int serverCommandSequence,
int clientNum);
529 void CG_Shutdown(
void);
530 void CG_ServerRestarted(
void);
531 void CG_ParseFogInfo(
const char *
str);
536 void CG_ProcessPlayerModel();
537 void CG_ServerModelLoaded(
const char* name, qhandle_t handle);
538 void CG_ServerModelUnloaded(qhandle_t handle);
539 void CG_ModelAnim(centity_t *cent, qboolean bDoShaderTime);
540 void CG_AttachEntity(
541 refEntity_t *entity,
refEntity_t *parent, dtiki_t *tiki,
int tagnum, qboolean use_angles, vec3_t attach_offset
547 void CG_Event(centity_t *cent);
548 void CG_UpdateEntityEmitters(
int entnum,
refEntity_t *ent, centity_t *cent);
549 void CG_RemoveClientEntity(
int number, dtiki_t *tiki, centity_t *cent);
550 void CG_UpdateTestEmitter(
void);
551 void CG_InitializeCommandManager(
void);
552 void CG_ProcessInitCommands(dtiki_t *tiki,
refEntity_t *ent);
553 void CG_ProcessCacheInitCommands(dtiki_t *tiki);
554 void CG_EndTiki(dtiki_t *tiki);
555 qboolean CG_Command_ProcessFile(
const char *filename, qboolean quiet, dtiki_t *curTiki);
556 void CG_RestartCommandManager();
557 void CG_CleanUpTempModels();
558 qboolean CG_ProcessEntityCommands(
int frame,
int anim,
int entnum,
refEntity_t *ent, centity_t *cent);
559 void CG_ClientCommands(
refEntity_t *ent, centity_t *cent,
int slot);
560 float RandomizeRange(
float start,
float end);
565 extern cvar_t *cg_showtempmodels;
566 extern cvar_t *cg_max_tempmodels;
567 extern cvar_t *cg_reserve_tempmodels;
568 extern cvar_t *cg_detail;
569 extern cvar_t *cg_effectdetail;
570 extern cvar_t *cg_effect_physicsrate;
572 void CG_AddTempModels(
void);
573 void CG_ResetTempModels(
void);
575 void CG_Splash(centity_t *cent);
577 void CG_EventList_f(
void);
578 void CG_EventHelp_f(
void);
579 void CG_DumpEventHelp_f(
void);
580 void CG_PendingEvents_f(
void);
581 void CG_ClassList_f(
void);
582 void CG_ClassTree_f(
void);
583 void CG_ClassEvents_f(
void);
584 void CG_DumpClassEvents_f(
void);
585 void CG_DumpAllClasses_f(
void);
587 void L_InitEvents(
void);
588 void L_ShutdownEvents(
void);
593 void CG_TestModel_f(
void);
594 void CG_TestGun_f(
void);
595 void CG_TestModelNextFrame_f(
void);
596 void CG_TestModelPrevFrame_f(
void);
597 void CG_TestModelNextSkin_f(
void);
598 void CG_TestModelPrevSkin_f(
void);
600 void CG_ZoomDown_f(
void);
601 void CG_ZoomUp_f(
void);
603 void CG_EyePosition(vec3_t *o_vPos);
604 void CG_EyeOffset(vec3_t *o_vOfs);
605 void CG_EyeAngles(vec3_t *o_vAngles);
606 float CG_SensitivityScale();
607 void CG_AddLightShow();
608 qboolean CG_FrustumCullSphere(
const vec3_t vPos,
float fRadius);
609 void CG_OffsetFirstPersonView(
refEntity_t *pREnt, qboolean bUseWorldPosition);
610 void CG_DrawActiveFrame(
int serverTime,
int frameTime, stereoFrame_t stereoView, qboolean demoPlayback);
615 int CG_GetVMAnimPrefixIndex();
617 void CG_CalcViewModelMovement(
float fViewBobPhase,
float fViewBobAmp, vec_t *vVelocity, vec_t *vMovement);
622 void CG_AdjustFrom640(
float *x,
float *y,
float *w,
float *h);
623 void CG_TileClear(
void);
624 void CG_DrawOverlayTopBottom(qhandle_t handleTop, qhandle_t handleBottom,
float fAlpha);
625 void CG_DrawOverlayMiddle(qhandle_t handle,
float fAlpha);
626 void CG_DrawOverlayFullScreen(qhandle_t handle,
float fAlpha);
627 void CG_DrawZoomOverlay();
628 void CG_HudDrawShader(
int iInfo);
629 void CG_HudDrawFont(
int iInfo);
630 void CG_RefreshHudDrawElements();
631 void CG_HudDrawElements();
632 void CG_InitializeObjectives();
633 void CG_DrawObjectives();
634 void CG_Draw2D(
void);
639 void CG_AddLagometerFrameInfo(
void);
640 void CG_AddLagometerSnapshotInfo(
snapshot_t *snap);
641 void CG_CenterPrint(
const char *
str,
int y,
int charWidth);
642 void CG_DrawHead(
float x,
float y,
float w,
float h,
int clientNum, vec3_t headAngles);
643 void CG_DrawActive(stereoFrame_t stereoView);
644 void CG_DrawFlagModel(
float x,
float y,
float w,
float h,
int team);
649 void CG_BuildSolidList(
void);
650 int CG_GetBrushEntitiesInBounds(
int iMaxEnts, centity_t** pEntList,
const vec3_t vMins,
const vec3_t vMaxs);
651 int CG_PointContents(
const vec3_t point,
int passEntityNum);
652 void CG_ClipMoveToEntities(
671 qboolean cliptoentities,
672 const char *description
674 void CG_PredictPlayerState(
void);
679 void BG_EvaluateTrajectory(
const trajectory_t *tr,
int atTime,
const vec3_t base, vec3_t result);
680 void CG_SetEntitySoundPosition(centity_t *cent);
681 void CG_AddPacketEntities(
void);
682 void CG_Beam(centity_t *cent);
683 void CG_AdjustPositionForMover(
const vec3_t in,
int moverNum,
int fromTime,
int toTime, vec3_t out);
685 void CG_PositionEntityOnTag(
refEntity_t *entity,
const refEntity_t *parent, qhandle_t parentModel,
char *tagName);
687 CG_PositionRotatedEntityOnTag(
refEntity_t *entity,
const refEntity_t *parent, qhandle_t parentModel,
char *tagName);
688 void CG_GetOrigin(centity_t *cent, vec3_t origin);
689 void CG_EntityEffects(centity_t *cent);
694 void CG_InitMarks(
void);
695 void CG_AddMarks(
void);
697 qhandle_t markShader,
714 void CG_ImpactMarkSimple(
715 qhandle_t markShader,
729 void CG_AssembleFinalMarks(
738 qhandle_t markShader,
742 qboolean CG_CheckMakeMarkOnEntity(
int iEntIndex);
743 void CG_InitTestTreadMark();
744 void CG_AddTreadMarks();
745 int CG_PermanentMark(
762 int CG_PermanentTreadMarkDecal(
764 qboolean bStartSegment,
770 int CG_PermanentUpdateTreadMark(
771 treadMark_t *pTread,
float fAlpha,
float fMinSegment,
float fMaxSegment,
float fMaxOffset,
float fTexScale
777 void CG_ProcessSnapshots(
void);
782 qboolean CG_ConsoleCommand(
void);
783 void CG_InitConsoleCommands(
void);
784 void CG_AddTestModel(
void);
786 void CG_PushMenuTeamSelect_f(
void);
787 void CG_PushMenuWeaponSelect_f(
void);
788 void CG_UseWeaponClass_f(
void);
789 void CG_NextWeapon_f(
void);
790 void CG_PrevWeapon_f(
void);
791 void CG_UseLastWeapon_f(
void);
792 void CG_HolsterWeapon_f(
void);
793 void CG_DropWeapon_f(
void);
794 void CG_ToggleItem_f(
void);
795 int CG_WeaponCommandButtonBits(
void);
796 void CG_ScoresDown_f(
void);
797 void CG_ScoresUp_f(
void);
802 void CG_ExecuteNewServerCommands(
int latestSequence, qboolean differentServer);
803 void CG_ParseServerinfo(
void);
808 void CG_TransitionPlayerState(playerState_t *ps, playerState_t *ops);
813 void CG_ResetPlayerEntity(centity_t *cent);
814 void CG_Player(centity_t *cent);
819 void CG_ProcessSound(server_sound_t *sound);
824 void CG_AddBeams(
void);
825 void CG_MultiBeamBegin(
void);
826 void CG_MultiBeamAddPoints(
827 vec3_t start, vec3_t end,
int numsegments,
int flags,
float minoffset,
float maxoffset, qboolean addstartpoint
829 void CG_MultiBeamEnd(
830 float scale,
int renderfx,
const char *beamshadername,
byte modulate[4],
int flags,
int owner,
float life
843 const vec3_t endpointvec,
849 const char *beamshader,
859 void CG_KillBeams(
int entity_number);
860 void CG_Rope(centity_t *cent);
861 void CG_RestartBeams(
int timedelta);
866 void CG_Emitter(centity_t *cent);
867 void CG_Rain(centity_t *cent);
871 void CG_UpdateTestEmitter(
void);
872 void CG_SortEffectCommands();
873 void CG_TriggerTestEmitter_f(
void);
874 void CG_DumpEmitter_f(
void);
875 void CG_LoadEmitter_f(
void);
876 void CG_PrevEmitterCommand_f(
void);
877 void CG_NextEmitterCommand_f(
void);
878 void CG_NewEmitterCommand_f(
void);
879 void CG_DeleteEmitterCommand_f(
void);
880 void CG_InitTestEmitter(
void);
881 void CG_TestEmitter_f(
void);
882 void CG_DumpEmitter_f(
void);
886 void RemoveBeamList(
int owner);
887 void CG_MultiBeam(centity_t *cent);
891 void CG_SetLightStyle(
int num,
const char *s);
893 qboolean CG_LightStyleColor(
int style,
int realtime, vec4_t color, qboolean clamp = qfalse);
895qboolean CG_LightStyleColor(
int style,
int realtime, vec4_t color, qboolean clamp);
897 void CG_ClearLightStyles(
void);
898 int CG_RegisterLightStyle(
const char *name);
902 void CG_GetScoreBoardColor(
float *fR,
float *fG,
float *fB,
float *fA);
903 void CG_GetScoreBoardFontColor(
float *fR,
float *fG,
float *fB,
float *fA);
904 void CG_GetScoreBoardPosition(
float *fX,
float *fY,
float *fW,
float *fH);
905 int CG_GetScoreBoardDrawHeader();
907 void CG_PrepScoreBoardInfo();
908 void CG_ParseScores();
913 void CG_Footstep(
const char *szTagName, centity_t *ent,
refEntity_t *pREnt,
int iRunning,
int iEquipment);
914 void CG_MeleeImpact(vec3_t vStart, vec3_t vEnd);
915 void CG_LandingSound(centity_t *ent,
refEntity_t *pREnt,
float volume,
int iEquipment);
916 void CG_BodyFallSound(centity_t *ent,
refEntity_t *pREnt,
float volume);
917 void CG_InitializeSpecialEffectsManager();
918 void CG_AddPendingEffects();
922 void CG_ClearSwipes(
void);
926 void CG_MessageMode_f(
void);
927 void CG_MessageMode_All_f(
void);
928 void CG_MessageMode_Team_f(
void);
929 void CG_MessageMode_Private_f(
void);
930 void CG_MessageSingleAll_f(
void);
931 void CG_MessageSingleTeam_f(
void);
932 void CG_MessageSingleClient_f(
void);
933 void CG_InstaMessageMain_f(
void);
934 void CG_InstaMessageGroupA_f(
void);
935 void CG_InstaMessageGroupB_f(
void);
936 void CG_InstaMessageGroupC_f(
void);
937 void CG_InstaMessageGroupD_f(
void);
938 void CG_InstaMessageGroupE_f(
void);
939 void CG_HudPrint_f(
void);
941 qboolean CG_CheckCaptureKey(
int key, qboolean down,
unsigned int time);
945 void CG_Vehicle(centity_t *cent);
949 void CG_ResetVSSSources(
void);
953 void CG_AddVSSSources(
void);
955 extern cvar_t *vss_draw;
956 extern cvar_t *vss_physics_fps;
957 extern cvar_t *vss_repulsion_fps;
958 extern cvar_t *vss_maxcount;
959 extern cvar_t *vss_color;
960 extern cvar_t *vss_showsources;
961 extern cvar_t *vss_wind_x;
962 extern cvar_t *vss_wind_y;
963 extern cvar_t *vss_wind_z;
964 extern cvar_t *vss_wind_strength;
965 extern cvar_t *vss_movement_dampen;
966 extern cvar_t *vss_maxvisible;
967 extern cvar_t *vss_gridsize;
968 extern cvar_t *vss_default_r;
969 extern cvar_t *vss_default_g;
970 extern cvar_t *vss_default_b;
971 extern cvar_t *vss_lighting_fps;
Definition memarchiver.h:36
Definition cg_local.h:199
Definition cg_local.h:379
Definition cg_public.h:455
Definition cg_public.h:97
Definition cg_local.h:169
Definition cg_local.h:174
Definition cg_local.h:181
Definition q_shared.h:1693
Definition tr_types.h:244
Definition q_shared.h:1493
Definition cg_local.h:153
Definition cg_local.h:146
Definition q_shared.h:2223
Definition tr_types.h:162
Definition cg_public.h:48
Definition q_shared.h:1452
Definition q_shared.h:1979