int CHud :: MsgFunc_InitHUD( const char *pszName, int iSize, void *pbuf ) { // prepare all hud data HUDLIST *pList = m_pHudList; while (pList) { if ( pList->p ) pList->p->InitHUDData(); pList = pList->pNext; } g_iFreezeTimeOver = 0; memset( g_PlayerExtraInfo, 0, sizeof(g_PlayerExtraInfo) ); ResetRain(); // reset round time g_flRoundTime = 0.0f; // reinitialize models. We assume that server already precached all models. g_iRShell = gEngfuncs.pEventAPI->EV_FindModelIndex( "models/rshell.mdl" ); g_iPShell = gEngfuncs.pEventAPI->EV_FindModelIndex( "models/pshell.mdl" ); g_iShotgunShell = gEngfuncs.pEventAPI->EV_FindModelIndex( "models/shotgunshell.mdl" ); g_iBlackSmoke = gEngfuncs.pEventAPI->EV_FindModelIndex( "sprites/black_smoke4.spr" ); return 1; }
// CHud destructor // cleans up memory allocated for m_rg* arrays CHud :: ~CHud() { #ifdef ENGINE_DEBUG CONPRINT("## CHud::destructor\n"); #endif delete [] m_rghSprites; delete [] m_rgrcRects; delete [] m_rgszSpriteNames; gMP3.Shutdown(); ResetRain(); //LRC - clear all shiny surfaces if (m_pShinySurface) { delete m_pShinySurface; m_pShinySurface = NULL; } if ( m_pHudList ) { HUDLIST *pList; while ( m_pHudList ) { pList = m_pHudList; m_pHudList = m_pHudList->pNext; free( pList ); } m_pHudList = NULL; } ServersShutdown(); }
// CHud destructor // cleans up memory allocated for m_rg* arrays CHud :: ~CHud() { delete pParticleManager; pParticleManager = NULL; delete [] m_rghSprites; delete [] m_rgrcRects; delete [] m_rgszSpriteNames; gMP3.Shutdown(); //LRC - clear all shiny surfaces if (m_pShinySurface) { delete m_pShinySurface; m_pShinySurface = NULL; } if ( m_pHudList ) { HUDLIST *pList; while ( m_pHudList ) { pList = m_pHudList; m_pHudList = m_pHudList->pNext; free( pList ); } m_pHudList = NULL; } ResetRain(); ServersShutdown(); }
int HUD_VidInit( void ) { if ( g_pParticleSystems ) g_pParticleSystems->ClearSystems(); if ( g_pViewRenderBeams ) g_pViewRenderBeams->ClearBeams(); if ( g_pParticles ) g_pParticles->Clear(); if ( g_pTempEnts ) g_pTempEnts->Clear(); ResetRain (); gHUD.VidInit(); return 1; }
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"); }