#ifndef GRAVGUNMOD_H #define GRAVGUNMOD_H extern cvar_t cvar_allow_gravgun; extern cvar_t cvar_allow_ar2; extern cvar_t cvar_ar2_mp5; extern cvar_t cvar_ar2_bullets; extern cvar_t cvar_ar2_balls; extern cvar_t cvar_wresptime; extern cvar_t cvar_iresptime; extern cvar_t cvar_gibtime; extern cvar_t cvar_hgibcount; extern cvar_t cvar_agibcount; extern cvar_t mp_spectator; extern cvar_t mp_fixhornetbug; extern cvar_t mp_checkentities; extern cvar_t mp_touchmenu; void GGM_RegisterCVars( void ); void Ent_RunGC( bool common, bool enttools, const char *userid ); class CBasePlayer; void GGM_ClientPutinServer(edict_t *pEntity , CBasePlayer *pPlayer); void GGM_ClientFirstSpawn(CBasePlayer *pPlayer ); const char *GGM_GetPlayerID( edict_t *player ); edict_t *GGM_PlayerByID( const char *id ); void GGM_Say( edict_t *pEntity ); bool GGM_ClientCommand( CBasePlayer *player, const char *pcmd ); void GGM_InitialMenus( CBasePlayer *pPlayer ); void GGM_CvarValue2( const edict_t *pEnt, int requestID, const char *cvarName, const char *value ); enum PlayerState { STATE_UNINITIALIZED = 0, STATE_CONNECTED, STATE_SPECTATOR_BEGIN, STATE_SPAWNED, STATE_SPECTATOR, STATE_POINT_SELECT }; enum PlayerMenuState { MENUSTATE_NONE = 0, MENUSTATE_COOPMENU, MENUSTATE_COOPMENU_SPEC, MENUSTATE_CHECKPOINT, MENUSTATE_GLOBAL, MENUSTATE_LOCAL_CONFIRM }; class GGM_PlayerMenu { struct GGM_MenuItem { char command[256]; char name[32]; } m_items[5]; int m_iCount; char m_sTitle[32]; bool m_fShow; public: CBasePlayer *pPlayer; bool MenuSelect( int select ); GGM_PlayerMenu &SetTitle( const char *title ); GGM_PlayerMenu &New( const char *title, bool force = true ); GGM_PlayerMenu &Add( const char *name, const char *command ); GGM_PlayerMenu &Clear( void ); void Show(); }; struct GGMData { float m_flSpawnTime; PlayerState m_state; bool m_fTouchMenu; int m_iMenuState; int m_iLocalConfirm; int m_iConfirmKey; float m_flEntScope; float m_flEntTime; char uid[33]; GGM_PlayerMenu menu; bool touch_loading; }; #endif // GRAVGUNMOD_H