//========= Copyright © 2011, Half-Screwed Team, Released under the "Do whatever you want" license. ============// // // // Purpose: // // // // $NoKeywords: $ // //====================================================================================================// //THIS IS CURRENTLY BROKEN IN THE DLL SIDE. IT CAUSED LOTS OF LAG. #include "hud.h" #include "cl_util.h" #include "parsemsg.h" #include #include //#include "mp3.h" int g_iRoundtime; int smbSoundCounter = 0; //This will count up, where when it hits 5 it'll play a sound. DECLARE_MESSAGE(m_Timer, Timer) int CHudTimer::Init(void) { HOOK_MESSAGE( Timer ); gHUD.AddHudElem(this); return 1; }; int CHudTimer::VidInit(void) { gHUD.m_iRoundtime = -1; g_hud_timerbg = gHUD.GetSpriteIndex( "nestimerbg" ); g_hud_timercolon = gHUD.GetSpriteIndex( "nestime" ); return 1; }; int CHudTimer::MsgFunc_Timer( const char *pszName, int iSize, void *pbuf ) { BEGIN_READ( pbuf, iSize ); int x = READ_LONG(); g_iRoundtime = x; gHUD.m_iRoundtime = x; m_iFlags |= HUD_ACTIVE; return 1; } int CHudTimer::Draw( float flTime ) { if ( gHUD.m_iHideHUDDisplay & HIDEHUD_HEALTH ) return 1; if (!(gHUD.m_iWeaponBits & (1 <<(WEAPON_SUIT)) )) return 1; if(g_iRoundtime > 0) //no negative numbers allowed { if (g_iRoundtime == 120) { smbSoundCounter += 1; //Start the countup to the super mario sound effect } if (smbSoundCounter == 5) //Note: the counter will still continue until 120 seconds turns into 119. { gEngfuncs.pfnPrimeMusicStream( "media/hurryup.mp3", 0 ); //gMP3.PlayMP3NL( songchoice ); } //Draw BG SPR_Set(gHUD.GetSprite(g_hud_timerbg), 255, 255, 255 ); SPR_Draw(0, (ScreenWidth/2-69), 0, &gHUD.GetSpriteRect(g_hud_timerbg)); gHUD.DrawHudNumberNES((ScreenWidth/2)-44, 20, DHN_2DIGITS | DHN_PREZERO, g_iRoundtime/60, 255, 255, 255); //Draw the numbers SPR_Set(gHUD.GetSprite(g_hud_timercolon), 255, 255, 255 ); SPR_Draw(0, (ScreenWidth/2)-4, 20, &gHUD.GetSpriteRect(g_hud_timercolon)); //Draw a String in this case ':' gHUD.DrawHudNumberNES((ScreenWidth/2)+6, 20, DHN_2DIGITS | DHN_PREZERO, g_iRoundtime%60, 255, 255, 255); } else //If the round is over write it, add something -- GOAHEAD { } if (smbSoundCounter >= 0 && g_iRoundtime > 120) //If server manually changed the round time or new round, Reset the sound timer. { smbSoundCounter = 0; } return 1; }