📄 bloodclientshell.h
字号:
DBOOL OnExitMultiLoadingLevelState(int nNewState);
DBOOL OnExitCreditsState(int nNewState);
DBOOL OnExitMoviesState(int nNewState);
DBOOL OnExitSplashState(int nNewState);
DBOOL OnExitWaitingState(int nNewState);
// Load/Save stuff
void SaveClientData( HMESSAGEWRITE hMsg );
void LoadClientData( HMESSAGEREAD hMsg );
// New camera stuff
void Set3rdPersonCamera(DBOOL bExternal);
void UpdateCameraPosition();
void CalculateCameraRotation();
void UpdateCameraRotation();
void ResetGlobalFog();
void GetWorldTitle(char *pWorldFile);
#ifdef BRANDED
void CreateBrandSurface();
void DrawBrandString(HSURFACE hScreenSurface);
#endif
private:
ClientData cdata;
ClientData cdataLast;
DRotation m_Rotation;
CViewWeapon* m_pWeapon; // 10 slots plus some for other weapons
CViewWeapon* m_pLWeapon; // left hand weapons
DBYTE m_abyWeaponID[CLIENTWEAPONSLOTS]; // 10 slots plus some for other weapons
DBYTE m_abyLWeaponID[CLIENTWEAPONSLOTS]; // left hand weapons
// HLOCALOBJ m_hWeapObj; // Weapon models
// HLOCALOBJ m_hLWeapObj; // Weapon models
HLOCALOBJ m_hWeapHandObj; // Weapon models
HLOCALOBJ m_hLWeapHandObj; // Weapon models
CMainMenus m_Menu; // pretty self-explanatory isn't it?
CMessageMgr m_MessageMgr;
// CLevelMgr m_LevelMgr; // Manage the episode/level structure
CCheatMgr m_CheatMgr;
CMusic m_Music;
CNewStatusBar m_NewStatusBar;
CCommLink m_CommLink;
CFragInfo m_FragInfo;
CCredits m_Credits;
CVoiceMgr m_VoiceMgr;
CTeamMgr m_TeamMgr;
CViewCreature* m_pCreature; //attach creatre (hand, thief, bone leech)
DBOOL m_bFirstUpdate;
DBOOL m_bRollCredits;
DDWORD m_nGameState;
DDWORD m_nHealth;
DBOOL m_bDead;
DBOOL m_bDeadNoHide;
DBOOL m_bWonkyVision;
DFLOAT m_fWonkyTime;
DBOOL m_bWonkyNoMove;
int m_nCurGun;
DFLOAT m_SpinAmount;
DBOOL m_bZeroXAngle;
DBOOL m_bShowCrosshair;
DBOOL m_nCrosshair;
DBOOL m_nLastCrosshair;
DBOOL m_bDemoPlayback;
DBOOL m_bShiftState;
// Advanced console options...
DBOOL m_bAdvancedDisableMusic; // Disable music
DBOOL m_bAdvancedDisableSound; // Disable sound
DBOOL m_bAdvancedDisableMovies; // Disable movies
DBOOL m_bAdvancedDisableJoystick; // Disable joystick
DBOOL m_bAdvancedEnableOptSurf; // Enable optimizing surfaces
DBOOL m_bAdvancedDisableLightMap; // Disable light mapping
DBOOL m_bAdvancedEnableTripBuf; // Enable triple buffering
DBOOL m_bAdvancedDisableDx6Cmds; // Disable DX6 commands
DBOOL m_bAdvancedEnableTJuncs; // Enable T-Junction sealing (gaps between polies)
DBOOL m_bAdvancedDisableFog; // Disable fog
DBOOL m_bAdvancedDisableLines; // Disable line systems
DBOOL m_bAdvancedDisableModelFB; // Disable model fullbrights
DBOOL m_bAdvancedEnablePixelDoubling; // Enable pixel doubling
DBOOL m_bAdvancedEnableMultiTexturing;// Enable multi-texturing
DBOOL m_bMusicOriginallyEnabled; // was music originally enabled?
DBOOL m_bSoundOriginallyEnabled; // was sound originally enabled?
DBOOL m_bLightmappingOriginallyEnabled; // was lightmapping originally enabled?
DBOOL m_bModelFBOriginallyEnabled; // were model fullbrights originally enabled?
DFLOAT m_fOriginalMouseSensitivity; // Variable to store a temp sense when zoomed
DFLOAT m_fOriginalKeyTurnRate; // Variable to store a temp sense when zoomed
DBOOL m_bCrosshairOriginallyOn; // Was the crosshair on before we zoomed in
DBYTE m_nCrosshairOriginalNum; // Which number was the crosshair on
// Camera Stuff
HLOCALOBJ m_hCamera;
HLOCALOBJ m_hOrbObj; // For the orb..
HLOCALOBJ m_hLastOrbObj; // To test if we should use that one again
HLOCALOBJ m_hSeeingEyeObj; // For the all-seeing eye
CPlayerCamera m_playerCamera; // Handle 3rd person view
DBOOL m_b3rdPerson;
DFLOAT m_fLastCameraFovX;
DFLOAT m_fLastCameraFovY;
DDWORD m_dwScreenWidth;
DDWORD m_dwScreenHeight;
DBOOL m_bHandledStartup;
// Special FX management...
CSFXMgr m_sfxMgr;
DBYTE m_nGlobalDetail;
// Container FX helpers...
HSOUNDDE m_hContainerSound; // Container sound...
ContainerCode m_eCurContainerCode;// Code of container currently in
DFLOAT m_fContainerStartTime; // Time we entered current container
DFLOAT m_fFovXFXDir; // Variable use in UpdateUnderWaterFX()
DFLOAT m_fLastTime; // Variable use in UpdateUnderWaterFX()
DVector m_vLightScale;
DVector m_vCameraAdd;
// Bobbin' and Swayin'
DFLOAT m_fPitch;
DFLOAT m_fYaw;
DFLOAT m_fAdjPitch;
DFLOAT m_fAdjYaw;
DFLOAT m_fBobAmp;
DFLOAT m_fBobPhase;
DFLOAT m_fBobHeight;
DFLOAT m_fBobWidth;
DFLOAT m_fBobCant;
DFLOAT m_fShakeCant;
DFLOAT m_fSwayPhase;
DFLOAT m_fSwayHeight;
DFLOAT m_fSwayWidth;
DFLOAT m_fCantIncrement;
DFLOAT m_fCantMaxDist;
DFLOAT m_fCamCant;
DBOOL m_bShakeScreen;
DFLOAT m_fShakeTime;
DFLOAT m_fShakeStart;
DVector m_vShakeMagnitude;
DBOOL m_bFlashScreen;
DFLOAT m_fFlashTime;
DFLOAT m_fFlashStart;
DFLOAT m_fFlashRampUp;
DVector m_vFlashColor;
//wonky vision crap
DFLOAT m_fOffsetX;
DFLOAT m_fOffsetY;
DFLOAT m_fOffsetRot;
DFLOAT m_fRotDir;
DFLOAT m_fMaxRot;
// Stuff received from the player
DFLOAT m_fEyeLevel;
DFLOAT m_fVelMagnitude;
// DFLOAT m_fVelY
DVector m_vMyLastPos;
DFLOAT m_fViewY;
DFLOAT m_fViewYVel;
DFLOAT m_fWeaponY;
DFLOAT m_fWeaponYVel;
DBOOL m_bSpectatorMode;
DBOOL m_bZoomView;
DFLOAT m_fCameraZoom;
DFLOAT m_fovX;
DFLOAT m_fovY;
DFLOAT m_DefFovX;
DFLOAT m_fovYScale;
DFLOAT m_fViewKick;
DFLOAT m_fKickTime;
HSURFACE m_hCrosshair;
DDWORD m_cxCrosshair;
DDWORD m_cyCrosshair;
HSURFACE m_hOverlayText;
HDEFONT m_hFont;
DBOOL m_bInWorld;
DBOOL m_bDrawStatusBar;
DBOOL m_bDrawFragBar;
// Character Attibutes
ConfigStruct m_Config;
// DBOOL m_bUseExternalCamera;
CCameraFX* m_pExternalCamera;
DBOOL m_bRenderCamera;
DBOOL m_bStoneView;
DBOOL m_bAuraView;
DBOOL m_bBurn;
DBOOL m_bBlind;
DBOOL m_bFadeIn;
DBOOL m_bFadeOut;
DFLOAT m_fFadeVal;
DFLOAT m_fBurnTime;
DFLOAT m_fBlindTime;
HSURFACE m_hLoadingScreen;
DFLOAT m_fLoadingFadeTime;
DBOOL m_bLoadingFadeUp;
DBOOL m_bPlayedWaitingSound;
DFLOAT m_fLoadDelayTime;
HSTRING m_hstrTitle;
HSTRING m_hstrLoadScreen;
DDWORD m_nLoadScreenID;
HSTRING m_hstrObjectivesTitle;
HSTRING m_hstrObjectivesText;
int m_nLastExitType;
StartGameRequest m_Request;
DBOOL m_bFirstWorld;
char m_szFilename[255];
// Sky panning attributes
DBOOL m_bPanSky;
DFLOAT m_fPanSkyOffsetX;
DFLOAT m_fPanSkyOffsetZ;
DFLOAT m_fPanSkyScaleX;
DFLOAT m_fPanSkyScaleZ;
DFLOAT m_fCurSkyXOffset;
DFLOAT m_fCurSkyZOffset;
// Load/Save game interface
CSavedGameInfo m_SavedGameInfo;
// Mouse
DBOOL m_bMouseInvertYAxis;
DBOOL m_bMouseLook;
DBOOL m_bLookSpring;
// Joystick
DBOOL m_bUseJoystick;
// Keboard
float m_fKeyboardTurnRate;
// Movie
int m_nMovieState;
// Message box
CMessageBoxHandler m_messageBoxHandler;
CLTGUIMessageBox m_messageBox;
CLTGUIFont m_messageFont;
DBOOL m_bInMessageBox;
// This is used to ignore a keyboard message while doing
// the key configuration stuff.
DBOOL m_bIgnoreKeyboardMessage;
HSTRING m_hCurrentItemName;
HSTRING m_hCurrentItemIcon;
HSTRING m_hCurrentItemIconH;
DDWORD m_nCurrentItemCharge;
HSTRING m_hPrevItemIcon;
DDWORD m_nPrevItemCharge;
HSTRING m_hNextItemIcon;
DDWORD m_nNextItemCharge;
int m_nLastLoadType;
int m_nGameType;
DBOOL m_bNetFriendlyFire;
DBOOL m_bNetNegTeamFrags;
DBOOL m_bNetOnlyFlagScores;
DBOOL m_bNetOnlyGoalScores;
// Inventory item stuff
DBOOL m_bNightGogglesActive;
HSOUNDDE m_hNightGogglesSound;
HSOUNDDE m_hTheEyeLoopingSound;
DBOOL m_bBinocularsActive;
DBOOL m_bPaused;
CMoveMgr* m_pMoveMgr;
int m_nTrapped;
#ifdef BRANDED
HSURFACE m_hBrandSurface;
DFLOAT m_fBrandCounter;
#endif
CMusic::EMusicLevel m_eMusicLevel;
DDWORD m_dwAmmo;
DDWORD m_dwAltAmmo;
HSTRING m_hCtfCapturedString1;
HSTRING m_hCtfCapturedString2;
#ifdef _ADDON
HSTRING m_hSoccerGoalString1;
HSTRING m_hSoccerGoalString2;
#endif // _ADDON
// Reverb parameters
DBOOL m_bUseReverb;
float m_fReverbLevel;
float m_fNextSoundReverbTime;
DVector m_vLastReverbPos;
};
// Inlines...
inline DBOOL CBloodClientShell::IsMultiplayerTeamBasedGame()
{
if (m_nGameType == GAMETYPE_CTF) return(DTRUE);
if (m_nGameType == GAMETYPE_TEAMPLAY) return(DTRUE);
if (m_nGameType == GAMETYPE_SOCCER) return(DTRUE);
return(DFALSE);
}
// This is always available, once you create your server shell.
extern CBloodClientShell *g_pBloodClientShell;
#endif __BLOODCLIENTSHELL_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -