D:/Zythum/DinoKod/Mod_Aeternis_Client/A_WinHUD.cpp

00001 //---------------------------------------------------------------------------------------------
00002 //      This file is a part of "DinoKod".
00003 //      Copyright © 2003 Dino Productions. All Rights Reserved.
00004 //      
00005 //      File                    : A_WinHUD.cpp
00006 //      Author                  : Sebastien LEIX        sebastien.leix@wanadoo.fr
00007 //      Date                    : 16/06/2003
00008 //      Modification    :
00009 //
00010 //---------------------------------------------------------------------------------------------
00011 #include "Common/Assert.h"
00012 #include "Common/Time.h"
00013 #include "Render/Render.h"
00014 #include "Render/Font.h"
00015 #include "Render/Camera.h"
00016 #include "Mod/Mod.h"
00017 
00018 #include "Game/ClientWorld.h"
00019 #include "Mod_Aeternis/A_Team.h"
00020 #include "Mod_Aeternis_Client/A_Interface.h"
00021 #include "Mod_Aeternis_Client/A_ClientCharacter.h"
00022 #include "Mod_Aeternis_Client/A_ClientFlag.h"
00023 #include "Mod_Aeternis_Client/A_ClientGameManager.h"
00024 #include "Mod_Aeternis_Client/A_InputManager.h"
00025 #include "Mod_Aeternis_Client/A_ClientWeapon.h"
00026 
00027 #include "Mod_Aeternis_Client/A_WinHUD.h"
00028 #include "Mod_Aeternis_Client/A_WinBuy.h"
00029 
00030 #define KWINDOW_NUMBERS_SHADER_WIDTH    256
00031 #define KWINDOW_NUMBERS_SHADER_HEIGHT   32
00032 #define KWINDOW_HUD2_SHADER_WIDTH               512
00033 #define KWINDOW_HUD2_SHADER_HEIGHT              512
00034 
00035 #define RADARMOVESPEED 0.8f
00036 
00037 #define KHUDSTATUS_WIDTH                                0.3f
00038 #define KHUDSTATUS_HEIGHT                               0.59f
00039 
00040 //------------------------------------------------------------------------------------------
00041 //------------------------------------------------------------------------------------------
00042 //------------------------------------------------------------------------------------------
00043 KAWinHUD::KAWinHUD( KWin* pFather, KFPt& Pos, KFPt& Size, KInterface* pInterface )
00044 : KWin( pFather, Pos, Size, pInterface )
00045 {
00046         m_hBackGround                                   = KSHADER_NO;
00047         m_hHud                                                  = KSHADER_NO;
00048         m_hNumbers                                              = KSHADER_NO;
00049     m_bDisplayVoiceCommand                      = false ;
00050         m_bDisplayRadar                                 = true ;
00051         m_bDisplayFlagBloc                              = false ;
00052         m_bDisplayWeaponBloc                            = false ;
00053         m_bDisplayStatusBloc                    = true ;
00054         m_fRadarPercentOutOfScreen              = 1.0f ;
00055         m_fWeaponBlocPercentOutOfScreen = 1.0f ;
00056         m_fFlagBlocPercentOutOfScreen   = 1.0f ;
00057         m_fStatusBlocPercentOutOfScreen = 1.0f ;
00058         m_BloodTime                                             = 0;
00059         m_BloodDuration                                 = 0;
00060 }
00061 
00062 //------------------------------------------------------------------------------------------
00063 KAWinHUD::~KAWinHUD()
00064 {
00065 }
00066 
00067 //------------------------------------------------------------------------------------------
00068 void KAWinHUD::Display()
00069 {
00070         u8                              FadeAlpha               = (u8)(255.0f * GetFade());
00071         KHEALTH                 Health                  = 0;
00072         KAGAMEFLAGMODE  RedFlagMode             = KAGFM_STARTPOS;
00073         KAGAMEFLAGMODE  BlueFlagMode    = KAGFM_STARTPOS;
00074         s32                             RedScore                = 0;
00075         s32                             BlueScore               = 0;
00076         KMATEAM                 Team                    = KMAT_SPECTATOR;
00077 
00078         KAClientGameManager*    pGameManager = (KAClientGameManager*)g_pClientGameManager;
00079 
00080         if( pGameManager )
00081         {
00082                 KAClientPlayer* pPlayer = (KAClientPlayer*)pGameManager->GetpMyPlayer();
00083                 if( pPlayer )
00084                 {
00085                         // Santé
00086                         Health = pPlayer->GetHealth();
00087                         if( pPlayer->GetpTeam() )
00088                                 Team = pPlayer->GetpTeam()->GetTeam();
00089                 }
00090 
00091                 if( pGameManager->m_pRedFlag )
00092                         RedFlagMode  = pGameManager->m_pRedFlag->GetFlagMode() ;
00093 
00094                 if( pGameManager->m_pBlueFlag )
00095                         BlueFlagMode = pGameManager->m_pBlueFlag->GetFlagMode() ;
00096 
00097                 RedScore = pGameManager->GetpTeam( KMAT_RED )->GetScore();
00098                 BlueScore = pGameManager->GetpTeam( KMAT_BLUE )->GetScore();
00099         }
00100         
00101         DisplayRadar( Team, 1.0f );
00102         DisplayStatusPanel( Team, RedFlagMode, RedScore, BlueFlagMode, BlueScore, Health );
00103 //      DisplayWeaponPanel( Team );
00104 //      DisplayFlagPanel( Team );
00105 //      DisplayCrosshair();
00106         DisplayInventory(Team) ;
00107         DisplayTime() ;
00108 
00109     if(m_bDisplayVoiceCommand) DisplayVoiceCommand(true) ;
00110 
00111         DisplayBlood();
00112 }
00113 
00114 //------------------------------------------------------------------------------------------
00115 void KAWinHUD::Manage()
00116 {
00117         static KTIME lastTime = g_Time.GetTime() ;
00118         KTIME newTime = g_Time.GetTime() ;
00119 
00120         float fTimeElapsed = (float)(newTime - lastTime) ;
00121         lastTime = newTime ;
00122         float fStep = (fTimeElapsed * RADARMOVESPEED) / 1000.0f ;
00123 
00124         if(m_bDisplayRadar)                                             m_fRadarPercentOutOfScreen -= fStep ;
00125         if(!m_bDisplayRadar)                                    m_fRadarPercentOutOfScreen += fStep ;
00126         if(m_fRadarPercentOutOfScreen > 1.0f)   m_fRadarPercentOutOfScreen = 1.0f ;
00127         if(m_fRadarPercentOutOfScreen < 0.0f)   m_fRadarPercentOutOfScreen = 0.0f ;
00128 
00129         if(m_bDisplayWeaponBloc)                                                m_fWeaponBlocPercentOutOfScreen -= fStep ;
00130         if(!m_bDisplayWeaponBloc)                                               m_fWeaponBlocPercentOutOfScreen += fStep ;
00131         if(m_fWeaponBlocPercentOutOfScreen > 1.0f)              m_fWeaponBlocPercentOutOfScreen = 1.0f ;
00132         if(m_fWeaponBlocPercentOutOfScreen < 0.0f)              m_fWeaponBlocPercentOutOfScreen = 0.0f ;
00133 
00134         if(m_bDisplayFlagBloc)                                          m_fFlagBlocPercentOutOfScreen -= fStep ;
00135         if(!m_bDisplayFlagBloc)                                         m_fFlagBlocPercentOutOfScreen += fStep ;
00136         if(m_fFlagBlocPercentOutOfScreen > 1.0f)        m_fFlagBlocPercentOutOfScreen = 1.0f ;
00137         if(m_fFlagBlocPercentOutOfScreen < 0.0f)        m_fFlagBlocPercentOutOfScreen = 0.0f ;
00138 
00139         if(m_bDisplayStatusBloc)                                        m_fStatusBlocPercentOutOfScreen -= fStep ;
00140         if(!m_bDisplayStatusBloc)                                       m_fStatusBlocPercentOutOfScreen += fStep ;
00141         if(m_fStatusBlocPercentOutOfScreen > 1.0f)      m_fStatusBlocPercentOutOfScreen = 1.0f ;
00142         if(m_fStatusBlocPercentOutOfScreen < 0.0f)      m_fStatusBlocPercentOutOfScreen = 0.0f ;
00143 }
00144 
00145 //------------------------------------------------------------------------------------------
00146 void KAWinHUD::DisplayNumbers( KFPt& Pos, KFPt& Size, s32 Numbers, KCOLOR Color, KCOLOR Specular )
00147 {
00148         char    pNumbers[256];
00149 
00150         sprintf( pNumbers, "%.2i", Numbers );
00151 
00152         s32             Len = (s32)strlen( pNumbers );
00153         for( s32 i = 0; i < Len; i ++ )
00154         {
00155                 DisplayNumber( Pos + KFPt( Size.x * (float)i, 0.0f ), KFPt( Size.x, Size.y ), (s32)(pNumbers[i] - '0'), Color, Specular );
00156         }
00157 }
00158 
00159 //------------------------------------------------------------------------------------------
00160 void KAWinHUD::DisplayNumber( KFPt& Pos, KFPt& Size, s32 Number, KCOLOR Color, KCOLOR Specular )
00161 {
00162         KASSERT( ( Number >= 0 ) && ( Number <= 9 ) );
00163 
00164         float   pTU[4], pTV[4];
00165         float   dtexelu = 0.5f / (float)KWINDOW_NUMBERS_SHADER_WIDTH;
00166         float   dtexelv = 0.5f / (float)KWINDOW_NUMBERS_SHADER_HEIGHT;
00167 
00168         pTU[0] = (float)Number / 10.0f + dtexelu;                               pTV[0] = dtexelv;
00169         pTU[1] = ((float)Number + 1.0f ) / 10.0f + dtexelu;             pTV[1] = dtexelv;
00170         pTU[2] = (float)Number / 10.0f + dtexelu;                               pTV[2] = 1.0f + dtexelv;
00171         pTU[3] = ((float)Number + 1.0f ) / 10.0f + dtexelu;             pTV[3] = 1.0f + dtexelv;
00172 
00173         DrawQuad( Pos.x, Pos.y, Size.x, Size.y, m_hNumbers, Color, Specular, KRM_NORMAL, pTU, pTV );
00174 }
00175 
00176 //------------------------------------------------------------------------------------------
00177 void KAWinHUD::DisplayAmmo( s32 Ammo )
00178 {
00179         DisplayNumbers( KFPt( 0.9f, 0.1f), KFPt( 0.03f, 0.03f ), ((g_Time.GetTime() / 100) % 100) );
00180 }
00181 
00182 //------------------------------------------------------------------------------------------
00183 void KAWinHUD::DisplayLife( KHEALTH Health )
00184 {
00185         u8              FadeAlpha = (u8)(255.0f * GetFade());
00186         u8              c = u8((float)Health * 2.55f);
00187         KCOLOR  Specular = KRGBA( 255 - c, 0, 0, FadeAlpha );
00188         KCOLOR  Color   = KRGBA( 255, c, c, FadeAlpha );
00189 
00190         KFPt    fSize = GetFloatPoint( KPt( 20, 20 ) );
00191         KFPt    fPos = GetFloatPoint( KPt( 8, GetIntPoint( GetSize() ).y - 30 ) );
00192 
00193         KFPt    StatusDelta;
00194         KFPt    fStatusSize = GetFloatPoint( KPt( (s32)((float)KWINDOW_HUD2_SHADER_WIDTH * KHUDSTATUS_WIDTH), (s32)((float)KWINDOW_HUD2_SHADER_HEIGHT * KHUDSTATUS_HEIGHT) ) );
00195         StatusDelta.x = -m_fStatusBlocPercentOutOfScreen * fStatusSize.x;
00196         StatusDelta.y = m_fStatusBlocPercentOutOfScreen * fStatusSize.y;
00197         
00198         DisplayNumbers( fPos + StatusDelta, fSize, Health, Color, Specular );
00199 }
00200 
00201 //------------------------------------------------------------------------------------------
00202 void KAWinHUD::DisplayRadar( KMATEAM Team, float Zoom )
00203 {
00204         u8              FadeAlpha = (u8)(255.0f * GetFade());
00205         KFPt    RadarDelta;
00206         float   pTU[4], pTV[4];
00207         float   dtexelu = 0.5f / (float)KWINDOW_HUD2_SHADER_WIDTH;
00208         float   dtexelv = 0.5f / (float)KWINDOW_HUD2_SHADER_HEIGHT;
00209 
00210         float   w = 0.50f;
00211         float   h = 0.375f;
00212         pTU[0] = (float)0.0f + dtexelu;         pTV[0] = 0.0f + dtexelv;
00213         pTU[1] = (float)w + dtexelu;            pTV[1] = 0.0f + dtexelv;
00214         pTU[2] = (float)0.0f + dtexelu;         pTV[2] = h + dtexelv;
00215         pTU[3] = (float)w + dtexelu;            pTV[3] = h + dtexelv;
00216 
00217         KFPt    fSize = GetFloatPoint( KPt( (s32)((float)KWINDOW_HUD2_SHADER_WIDTH * w), (s32)((float)KWINDOW_HUD2_SHADER_HEIGHT * h) ) );
00218         RadarDelta.x = -m_fRadarPercentOutOfScreen * fSize.x;
00219         RadarDelta.y = -m_fRadarPercentOutOfScreen * fSize.y;
00220         
00221         DrawQuad( m_Pos.x + RadarDelta.x, m_Pos.y + RadarDelta.y, fSize.x, fSize.y, m_hHud, GetTeamColor( Team ), KRGB_BLACK, KRM_NORMAL, pTU, pTV );
00222 
00223         // Affiche le Niveau de Zoom
00224         char    pZoomText[256];
00225         sprintf( pZoomText, "x%.0f", Zoom );
00226         m_pRender->DrawText( GetIntPoint( m_Pos ) + KPt( 25 , 170 ) + GetIntPoint( RadarDelta ), pZoomText, KRGB( 200, 200, 200 ), 0.75f );
00227 
00228         KFPt    fCenterPos = GetFloatPoint( KPt( 138, 106 ) );
00229 
00230         // Affiche les objets dans le radar
00231         KAClientGameManager*    pGameManager = (KAClientGameManager*)g_pClientGameManager;
00232         if( !pGameManager )
00233                 return;
00234 
00235         KClientWorld*   pWorld = pGameManager->GetpClientWorld();
00236         if( !pWorld )
00237                 return;
00238 
00239         KAClientPlayer*         pMyPlayer = (KAClientPlayer*)pGameManager->GetpMyPlayer();
00240         if( !pMyPlayer )
00241                 return;
00242 
00243         KAClientCharacter*      pMyCharacter = pMyPlayer ? pMyPlayer->GetpCharacter() : NULL;
00244         if( !pMyCharacter )
00245                 return;
00246 
00247         // Récupere la direction de la caméra
00248         KVector vUp, vRight, vView;
00249         m_pRender->GetCamera()->GetAxes( vRight, vUp, vView );
00250 
00251         KFPt    vDirX;
00252         KFPt    vDirY;
00253         vDirX.x = vRight.x;
00254         vDirX.y = vRight.y;
00255         vDirX.Normalize();
00256         vDirY.x = vView.x;
00257         vDirY.y = vView.y;
00258         vDirY.Normalize();
00259 
00260 //      g_Console << "X : " << vDirX.x << " " << vDirX.y << KENDL;
00261 //      g_Console << "Y : " << vDirY.x << " " << vDirY.y << KENDL;
00262 
00263         float   ZoomFactor = Zoom / 20.0f;
00264 
00265         for( K3DObject* pObject = pWorld->GetpFirstObject(); pObject; pObject = pWorld->GetpNextObject( pObject ) )
00266         {
00267                 switch( pObject->GetType() )
00268                 {
00269                 case KAGOT_CHARACTER:
00270                         {
00271                                 KFPt    fItemSize = GetFloatPoint( KPt( 8, 8 ) );
00272 
00273                                 KAClientCharacter*      pCharacter      = (KAClientCharacter*)pObject;
00274                                 KAClientPlayer*         pPlayer         = (KAClientPlayer*)pGameManager->GetpPlayer( pCharacter->GethPlayer() );
00275 
00276                                 if( pCharacter != pMyCharacter && pPlayer && pPlayer->GetpTeam() && pPlayer->GetpTeam()->GetTeam() == Team )
00277                                 {
00278                                         KFPt    WorldObjectPos;
00279 
00280                                         // Offset de l'objet par rapport au perso en coordonnées monde
00281                                         WorldObjectPos.x = ( pObject->GetPos().x - pMyCharacter->GetPos().x ) * ZoomFactor;
00282                                         WorldObjectPos.y = ( pObject->GetPos().y - pMyCharacter->GetPos().y ) * ZoomFactor;
00283                                         
00284                                         KFPt    TmpPos = WorldObjectPos;
00285                                         WorldObjectPos.x = vDirX.x * TmpPos.x + vDirX.y * TmpPos.y;
00286                                         WorldObjectPos.y = vDirY.x * TmpPos.x + vDirY.y * TmpPos.y;
00287 
00288                                         // Offset de l'objet par rapport au perso en coordonnées radar
00289                                         KFPt    ObjectPos;
00290                                         
00291                                         ObjectPos.x = m_Pos.x + fCenterPos.x - fItemSize.x / 2.0f;
00292                                         ObjectPos.y = m_Pos.y + fCenterPos.y - fItemSize.y / 2.0f;
00293                                                 
00294                                         ObjectPos += GetFloatPoint( KPt( (s32)WorldObjectPos.x, (s32)-WorldObjectPos.y ) );
00295 
00296                                         DrawQuad(       ObjectPos.x + RadarDelta.x,
00297                                                                 ObjectPos.y + RadarDelta.y,
00298                                                                 fItemSize.x,
00299                                                                 fItemSize.y,
00300                                                                 KSHADER_NO,
00301                                                                 KRGB( 200, 200, 20 ) );
00302                                 }
00303                         }
00304                         break;
00305                 case KAGOT_FLAG:
00306                         {
00307                                 KFPt    fItemSize = GetFloatPoint( KPt( 16, 16 ) );
00308 
00309                                 KAClientFlag*           pFlag   = (KAClientFlag*)pObject;
00310 
00311                                 KFPt    WorldObjectPos;
00312 
00313                                 // Offset de l'objet par rapport au perso en coordonnées monde
00314                                 WorldObjectPos.x = ( pObject->GetPos().x - pMyCharacter->GetPos().x ) * ZoomFactor;
00315                                 WorldObjectPos.y = ( pObject->GetPos().y - pMyCharacter->GetPos().y ) * ZoomFactor;
00316 
00317                                 KFPt    TmpPos = WorldObjectPos;
00318                                 WorldObjectPos.x = vDirX.x * TmpPos.x + vDirX.y * TmpPos.y;
00319                                 WorldObjectPos.y = vDirY.x * TmpPos.x + vDirY.y * TmpPos.y;
00320 
00321                                 // Offset de l'objet par rapport au perso en coordonnées radar
00322                                 KFPt    ObjectPos;
00323                                 
00324                                 ObjectPos.x = m_Pos.x + fCenterPos.x - fItemSize.x / 2.0f;
00325                                 ObjectPos.y = m_Pos.y + fCenterPos.y - fItemSize.y / 2.0f;
00326                                         
00327                                 ObjectPos += GetFloatPoint( KPt( (s32)WorldObjectPos.x, (s32)-WorldObjectPos.y ) );
00328 
00329                                 KCOLOR  FlagColor = GetTeamColor( pFlag->GetTeam() );
00330                                 float   pTU[4], pTV[4];
00331 
00332                                 GetFlagUV( pFlag->GetFlagMode(), pTU, pTV );
00333 
00334                                 DrawQuad(       ObjectPos.x + RadarDelta.x,
00335                                                         ObjectPos.y + RadarDelta.y,
00336                                                         fItemSize.x,
00337                                                         fItemSize.y,
00338                                                         m_hHud,
00339                                                         FlagColor,
00340                                                         FlagColor,
00341                                                         KRM_NORMAL,
00342                                                         pTU,
00343                                                         pTV );
00344                         }
00345                         break;
00346                 }
00347         }
00348 }
00349 
00350 //------------------------------------------------------------------------------------------
00351 void KAWinHUD::DisplayStatusPanel( KMATEAM Team, KAGAMEFLAGMODE RedFlagMode, s32 RedScore, KAGAMEFLAGMODE BlueFlagMode, s32 BlueScore, KHEALTH Health )
00352 {
00353         u8              FadeAlpha = (u8)(255.0f * GetFade());
00354         KFPt    StatusDelta;
00355         float   pTU[4], pTV[4];
00356         float   dtexelu = 0.5f / (float)KWINDOW_HUD2_SHADER_WIDTH;
00357         float   dtexelv = 0.5f / (float)KWINDOW_HUD2_SHADER_HEIGHT;
00358 
00359         float   w = KHUDSTATUS_WIDTH;
00360         float   h = KHUDSTATUS_HEIGHT;
00361         pTU[0] = (float)0.0f + dtexelu;         pTV[0] = 0.41f + dtexelv;
00362         pTU[1] = (float)w + dtexelu;            pTV[1] = 0.41f + dtexelv;
00363         pTU[2] = (float)0.0f + dtexelu;         pTV[2] = 1.0f + dtexelv;
00364         pTU[3] = (float)w + dtexelu;            pTV[3] = 1.0f + dtexelv;
00365 
00366         KFPt    fSize = GetFloatPoint( KPt( (s32)((float)KWINDOW_HUD2_SHADER_WIDTH * w), (s32)((float)KWINDOW_HUD2_SHADER_HEIGHT * h) ) );
00367         StatusDelta.x = -m_fStatusBlocPercentOutOfScreen * fSize.x;
00368         StatusDelta.y = -m_fStatusBlocPercentOutOfScreen * fSize.y;
00369         
00370         DrawQuad( m_Pos.x + StatusDelta.x, m_Pos.y + 1.0f - fSize.y - StatusDelta.y, fSize.x, fSize.y, m_hHud, GetTeamColor( Team ), KRGB_BLACK, KRM_NORMAL, pTU, pTV );
00371 
00372         DisplayFlag( RedFlagMode, KMAT_RED, RedScore );
00373         DisplayFlag( BlueFlagMode, KMAT_BLUE, BlueScore );
00374         DisplayLife( Health );
00375 }
00376 
00377 //------------------------------------------------------------------------------------------
00378 void KAWinHUD::DisplayFlag( KAGAMEFLAGMODE FlagMode, KMATEAM Team, s32 Score )
00379 {
00380         u8              FadeAlpha = (u8)(255.0f * GetFade());
00381         KFPt    StatusDelta;
00382         float   pTU[4], pTV[4];
00383         float   dtexelu = 0.5f / (float)KWINDOW_HUD2_SHADER_WIDTH;
00384         float   dtexelv = 0.5f / (float)KWINDOW_HUD2_SHADER_HEIGHT;
00385 
00386         GetFlagUV( FlagMode, pTU, pTV );
00387 
00388         s32             PosY = (Team == KMAT_BLUE) ? 155 : 235;
00389         KCOLOR  Color = GetTeamColor( Team );
00390         u8              i = s8(64.0f * fabs( cosf( (float)g_Time.GetTime() / 400.0f ) ) );
00391         KCOLOR  Specular = (FlagMode != KAGFM_STARTPOS) ? RGB( i, i, i ) : KRGB( 16, 16, 16 );
00392 
00393         KFPt    fSize = GetFloatPoint( KPt( (s32)((float)KWINDOW_HUD2_SHADER_WIDTH * 0.09f), (s32)((float)KWINDOW_HUD2_SHADER_HEIGHT * 0.09) ) );
00394         KFPt    fPos = GetFloatPoint( KPt( 70, GetIntPoint( GetSize() ).y - PosY ) );
00395         KFPt    fStatusSize = GetFloatPoint( KPt( (s32)((float)KWINDOW_HUD2_SHADER_WIDTH * KHUDSTATUS_WIDTH), (s32)((float)KWINDOW_HUD2_SHADER_HEIGHT * KHUDSTATUS_HEIGHT) ) );
00396         StatusDelta.x = -m_fStatusBlocPercentOutOfScreen * fStatusSize.x;
00397         StatusDelta.y = m_fStatusBlocPercentOutOfScreen * fStatusSize.y;
00398         
00399         DrawQuad( fPos.x + StatusDelta.x, fPos.y + StatusDelta.y, fSize.x, fSize.y, m_hHud, Color, Specular, KRM_NORMAL, pTU, pTV );
00400 
00401         char    pTextScore[16];
00402         sprintf( pTextScore, "%i", Score );
00403         m_pRender->DrawText( KPt( 110, GetIntPoint( GetSize() ).y - PosY + 48 ) + GetIntPoint( StatusDelta ), pTextScore, KRGB( 200, 200, 200 ), 0.75f );
00404 }
00405 
00406 //------------------------------------------------------------------------------------------
00407 void KAWinHUD::DisplayWeaponPanel( KFPt& Pos, KMATEAM Team )
00408 {
00409         u8              FadeAlpha = (u8)(255.0f * GetFade());
00410         float   pTU[4], pTV[4];
00411         float   dtexelu = 0.5f / (float)KWINDOW_HUD2_SHADER_WIDTH;
00412         float   dtexelv = 0.5f / (float)KWINDOW_HUD2_SHADER_HEIGHT;
00413 
00414         float   w = 0.5;
00415         float   h = 0.125f;
00416 
00417         pTU[0] = (float)0.3125f + dtexelu;              pTV[0] = 1.0f - h + dtexelv;
00418         pTU[1] = (float)0.3125f + w + dtexelu;  pTV[1] = 1.0f - h + dtexelv;
00419         pTU[2] = (float)0.3125f + dtexelu;              pTV[2] = 1.0f + dtexelv;
00420         pTU[3] = (float)0.3125f + w + dtexelu;  pTV[3] = 1.0f + dtexelv;
00421 
00422         KFPt    fSize = GetFloatPoint( KPt( (s32)((float)KWINDOW_HUD2_SHADER_WIDTH * w), (s32)((float)KWINDOW_HUD2_SHADER_HEIGHT * h) ) );
00423 //      float   DeltaX = 0.165f * (1.0f - m_fStatusBlocPercentOutOfScreen);
00424         DrawQuad( m_Pos.x + Pos.x + (m_fWeaponBlocPercentOutOfScreen * 0.083984375f), m_Pos.y + 1.0f - fSize.y + (h * m_fWeaponBlocPercentOutOfScreen), fSize.x, fSize.y, m_hHud, GetTeamColor( Team ), KRGB_BLACK, KRM_NORMAL, pTU, pTV );
00425 //      DrawQuad( Pos.x, Pos.y - fSize.y, fSize.x, fSize.y, m_hHud, GetTeamColor( Team ), KRGB_BLACK, KRM_NORMAL, pTU, pTV );
00426 }
00427 
00428 //------------------------------------------------------------------------------------------
00429 void KAWinHUD::DisplayFlagPanel( KFPt& Pos, KMATEAM Team )
00430 {
00431         u8              FadeAlpha = (u8)(255.0f * GetFade());
00432         float   pTU[4], pTV[4];
00433         float   dtexelu = 0.5f / (float)KWINDOW_HUD2_SHADER_WIDTH;
00434         float   dtexelv = 0.5f / (float)KWINDOW_HUD2_SHADER_HEIGHT;
00435 
00436         float   w = 0.3f;
00437         float   h = 0.1171875f;
00438 
00439         pTU[0] = (float)0.3125f + dtexelu;              pTV[0] = 0.7617f + dtexelv;
00440         pTU[1] = (float)0.3125f + w + dtexelu;  pTV[1] = 0.7617f + dtexelv;
00441         pTU[2] = (float)0.3125f + dtexelu;              pTV[2] = 0.7617f + h + dtexelv;
00442         pTU[3] = (float)0.3125f + w + dtexelu;  pTV[3] = 0.7617f + h + dtexelv;
00443 
00444         KFPt    fSize = GetFloatPoint( KPt( (s32)((float)KWINDOW_HUD2_SHADER_WIDTH * w), (s32)((float)KWINDOW_HUD2_SHADER_HEIGHT * h) ) );
00445         DrawQuad( m_Pos.x + Pos.x/*0.44f*/ + (m_fFlagBlocPercentOutOfScreen * 0.125f), m_Pos.y + 1.0f - fSize.y + (h * m_fFlagBlocPercentOutOfScreen), fSize.x, fSize.y, m_hHud, GetTeamColor( Team ), KRGB_BLACK, KRM_NORMAL, pTU, pTV );
00446 //      DrawQuad( Pos.x, Pos.y - fSize.y, fSize.x, fSize.y, m_hHud, GetTeamColor( Team ), KRGB_BLACK, KRM_NORMAL, pTU, pTV );
00447 }
00448 
00449 //------------------------------------------------------------------------------------------
00450 void KAWinHUD::GetFlagUV( KAGAMEFLAGMODE FlagMode, float* pTU, float* pTV )
00451 {
00452         float   dtexelu = 0.5f / (float)KWINDOW_HUD2_SHADER_WIDTH;
00453         float   dtexelv = 0.5f / (float)KWINDOW_HUD2_SHADER_HEIGHT;
00454 
00455         switch( FlagMode )
00456         {
00457         case KAGFM_STARTPOS:
00458                 pTU[0] = (float)0.875f + dtexelu;       pTV[0] = 0.125f + dtexelv;
00459                 pTU[1] = (float)1.0f + dtexelu;         pTV[1] = 0.125f + dtexelv;
00460                 pTU[2] = (float)0.875f + dtexelu;       pTV[2] = 0.250f + dtexelv;
00461                 pTU[3] = (float)1.0f + dtexelu;         pTV[3] = 0.250f + dtexelv;
00462                 break;
00463         case KAGFM_TAKEN:
00464                 pTU[0] = (float)0.750f + dtexelu;       pTV[0] = 0.0f + dtexelv;
00465                 pTU[1] = (float)0.875f + dtexelu;       pTV[1] = 0.0f + dtexelv;
00466                 pTU[2] = (float)0.750f + dtexelu;       pTV[2] = 0.125f + dtexelv;
00467                 pTU[3] = (float)0.875f + dtexelu;       pTV[3] = 0.125f + dtexelv;
00468                 break;
00469         case KAGFM_DROPPED:
00470                 pTU[0] = (float)0.750f + dtexelu;       pTV[0] = 0.125f + dtexelv;
00471                 pTU[1] = (float)0.875f + dtexelu;       pTV[1] = 0.125f + dtexelv;
00472                 pTU[2] = (float)0.750f + dtexelu;       pTV[2] = 0.250f + dtexelv;
00473                 pTU[3] = (float)0.875f + dtexelu;       pTV[3] = 0.250f + dtexelv;
00474                 break;
00475         }
00476 }
00477 
00478 //------------------------------------------------------------------------------------------
00479 KCOLOR KAWinHUD::GetTeamColor( KMATEAM Team )
00480 {
00481         u8              FadeAlpha = (u8)(255.0f * GetFade());
00482 
00483         switch( Team )
00484         {
00485         case KMAT_BLUE:
00486                 return KRGBA( 147, 162, 255, FadeAlpha );
00487         case KMAT_RED:
00488                 return KRGBA( 255, 147, 162, FadeAlpha );
00489         }
00490 
00491         return KRGBA( 255, 255, 255, FadeAlpha );
00492 }
00493 
00494 //------------------------------------------------------------------------------------------
00495 void KAWinHUD::DisplayVoiceCommand(bool bDisplay)
00496 {
00497     m_bDisplayVoiceCommand = bDisplay ;
00498 
00499     if(m_bDisplayVoiceCommand)
00500     {
00501         char* pTitle  = "Voice Command" ;
00502 
00503                 m_pRender->DrawText( KPt( 20, 200 ), pTitle, KRGB( 255, 0, 0 ), 0.75f );
00504                 for( s32 i = 0; i < KAGVC_COUNT; i ++ )
00505                         m_pRender->DrawText( KPt( 20, 220 + i * 16 ), m_psVoiceCommand[i], KRGB( 200, 200, 200 ), 0.75f );
00506     }    
00507 }
00508 /*
00509 //------------------------------------------------------------------------------------------
00510 void KAWinHUD::DisplayCrosshair()
00511 {
00512         if(!m_bDisplayWeaponBloc)
00513                 return ;
00514         u8              FadeAlpha = (u8)(255.0f * GetFade());
00515         float   pTU[4], pTV[4];
00516         float   dtexelu = 0.5f / (float)KWINDOW_HUD2_SHADER_WIDTH;
00517         float   dtexelv = 0.5f / (float)KWINDOW_HUD2_SHADER_HEIGHT;
00518 
00519         pTU[0] = (float)0.750f + dtexelu;       pTV[0] = 0.250f + dtexelv;
00520         pTU[1] = (float)0.875f + dtexelu;       pTV[1] = 0.250f + dtexelv;
00521         pTU[2] = (float)0.750f + dtexelu;       pTV[2] = 0.375f + dtexelv;
00522         pTU[3] = (float)0.875f + dtexelu;       pTV[3] = 0.375f + dtexelv;
00523 
00524         KFPt    fSize = GetFloatPoint( KPt( 64, 64 ) );
00525         KFPt    fWinSize = GetSize();
00526         DrawQuad( (fWinSize.x - fSize.x) / 2, (fWinSize.y - fSize.y) / 2, fSize.x, fSize.y, m_hHud, KRGB_WHITE, KRGB_BLACK, KRM_NORMAL, pTU, pTV );
00527 }
00528 */
00529 //------------------------------------------------------------------------------------------
00530 void KAWinHUD::Load()
00531 {
00532         KWin::Load();
00533 
00534         m_hBackGround   = m_pRender->GetpShaderBank()->LoadShader( "GUI/WinHUD" );
00535         m_hHud                  = m_pRender->GetpShaderBank()->LoadShader( "GUI/WinHUD3" );
00536         m_hNumbers              = m_pRender->GetpShaderBank()->LoadShader( "GUI/Numbers" );
00537 
00538         m_psVoiceCommand[KAGVC_AFFIRMATIVE]             = KStr( "%s - %s", g_AInputManager.GetpMappedKey(E_ACTIONS_VOICECMD1)->GetpKeyName(), GETLOCALSTRING(LS_VOICECMD_AFFIRMATIVE) );
00539         m_psVoiceCommand[KAGVC_NEGATIVE]                = KStr( "%s - %s", g_AInputManager.GetpMappedKey(E_ACTIONS_VOICECMD2)->GetpKeyName(), GETLOCALSTRING(LS_VOICECMD_NEGATIVE) );
00540         m_psVoiceCommand[KAGVC_LETSGO]                  = KStr( "%s - %s", g_AInputManager.GetpMappedKey(E_ACTIONS_VOICECMD3)->GetpKeyName(), GETLOCALSTRING(LS_VOICECMD_LETSGO) );
00541         m_psVoiceCommand[KAGVC_COVERME]                 = KStr( "%s - %s", g_AInputManager.GetpMappedKey(E_ACTIONS_VOICECMD4)->GetpKeyName(), GETLOCALSTRING(LS_VOICECMD_COVERME) );
00542         m_psVoiceCommand[KAGVC_ENEMYDOWN]               = KStr( "%s - %s", g_AInputManager.GetpMappedKey(E_ACTIONS_VOICECMD5)->GetpKeyName(), GETLOCALSTRING(LS_VOICECMD_ENEMYDOWN) );
00543         m_psVoiceCommand[KAGVC_IAMINPOSITION]   = KStr( "%s - %s", g_AInputManager.GetpMappedKey(E_ACTIONS_VOICECMD6)->GetpKeyName(), GETLOCALSTRING(LS_VOICECMD_IAMINPOSITION) );
00544 }
00545 
00546 //------------------------------------------------------------------------------------------
00547 void KAWinHUD::Unload()
00548 {
00549         KWin::Unload();
00550 
00551         m_pRender->GetpShaderBank()->UnloadShader( m_hBackGround );
00552         m_pRender->GetpShaderBank()->UnloadShader( m_hHud );
00553         m_pRender->GetpShaderBank()->UnloadShader( m_hNumbers );
00554 }
00555 
00556 //------------------------------------------------------------------------------------------
00557 void KAWinHUD::DisplayRadar(bool bDisplay)
00558 {
00559         if(bDisplay)
00560                 m_fRadarPercentOutOfScreen = 0.0f ;
00561         else
00562                 m_fRadarPercentOutOfScreen = 0.5f ;
00563 }
00564 
00565 //------------------------------------------------------------------------------------------
00566 bool KAWinHUD::OnKeyDown( u32 VirtKey, u32 KeyData )
00567 {
00568 /*      if( ISVKMAPPED( E_ACTIONS_BUY ) )
00569         {
00570                 if( ((KAInterface*)m_pInterface)->GetWin() == KAIW_BUY )
00571                         ((KAInterface*)m_pInterface)->SetWin( KAIW_NONE ) ;
00572                 else if(!((KAInterface*)m_pInterface)->IsInGameMenu())
00573                         ((KAInterface*)m_pInterface)->SetWin( KAIW_BUY ) ;
00574         }
00575 */
00576         if(((KAInterface*)m_pInterface)->IsInGameMenu())
00577                 return false ;
00578         KAClientGameManager* pGameManager = (KAClientGameManager*)g_pClientGameManager ;
00579         KAClientPlayer* pMyPlayer = (KAClientPlayer*)pGameManager->GetpMyPlayer() ;
00580 
00581         if( ISVKMAPPED( E_ACTIONS_RADAR ) )
00582                 m_bDisplayRadar = !m_bDisplayRadar ;
00583 
00584         if( ISVKMAPPED( E_ACTIONS_HUDSTATUS ) )
00585                 m_bDisplayStatusBloc = !m_bDisplayStatusBloc ;
00586         
00587         if( ISVKMAPPED( E_ACTIONS_PREVOBJECT ) )
00588                 pMyPlayer->SelectPrevObject() ;
00589         
00590         if( ISVKMAPPED( E_ACTIONS_NEXTOBJECT ) )
00591                 pMyPlayer->SelectNextObject() ;
00592         
00593         if( ISVKMAPPED( E_ACTIONS_DROP ) )
00594                 pMyPlayer->Drop() ;
00595         
00596         if( ISVKMAPPED( E_ACTIONS_ZOOM ) )
00597                 pMyPlayer->Zoom() ;
00598 
00599         // Voice Command
00600         if( ISVKMAPPED( E_ACTIONS_DISPLAYVOICECMD ) )
00601                 m_bDisplayVoiceCommand = m_bDisplayVoiceCommand ? false : true;
00602 
00603         if( ISVKMAPPED( E_ACTIONS_VOICECMD1 ) && m_bDisplayVoiceCommand )
00604         {
00605                 pGameManager->VoiceCommand( KAGVC_AFFIRMATIVE );
00606                 m_bDisplayVoiceCommand = false;
00607         }
00608 
00609         if( ISVKMAPPED( E_ACTIONS_VOICECMD2 ) && m_bDisplayVoiceCommand )
00610         {
00611                 pGameManager->VoiceCommand( KAGVC_NEGATIVE );
00612                 m_bDisplayVoiceCommand = false;
00613         }
00614 
00615         if( ISVKMAPPED( E_ACTIONS_VOICECMD3 ) && m_bDisplayVoiceCommand )
00616         {
00617                 pGameManager->VoiceCommand( KAGVC_LETSGO );
00618                 m_bDisplayVoiceCommand = false;
00619         }
00620 
00621         if( ISVKMAPPED( E_ACTIONS_VOICECMD4 ) && m_bDisplayVoiceCommand )
00622         {
00623                 pGameManager->VoiceCommand( KAGVC_COVERME );
00624                 m_bDisplayVoiceCommand = false;
00625         }
00626 
00627         if( ISVKMAPPED( E_ACTIONS_VOICECMD5 ) && m_bDisplayVoiceCommand )
00628         {
00629                 pGameManager->VoiceCommand( KAGVC_ENEMYDOWN );
00630                 m_bDisplayVoiceCommand = false;
00631         }
00632 
00633         if( ISVKMAPPED( E_ACTIONS_VOICECMD6 ) && m_bDisplayVoiceCommand )
00634         {
00635                 pGameManager->VoiceCommand( KAGVC_IAMINPOSITION );
00636                 m_bDisplayVoiceCommand = false;
00637         }
00638 
00639         return true ;
00640 }
00641 
00642 //------------------------------------------------------------------------------------------
00643 void KAWinHUD::DisplayInventory(KMATEAM Team)
00644 {
00645         KAClientGameManager* pGameManager = (KAClientGameManager*)g_pClientGameManager ;
00646         KAClientPlayer* pMyPlayer = (KAClientPlayer*)pGameManager->GetpMyPlayer() ;
00647         
00648         if(pMyPlayer == NULL)
00649                 return ;
00650 
00651         float   pTU[4], pTV[4];
00652         float   dtexelu = 0.5f / (float)KWINDOW_HUD2_SHADER_WIDTH;
00653         float   dtexelv = 0.5f / (float)KWINDOW_HUD2_SHADER_HEIGHT;
00654 
00655         if(pMyPlayer->GetCurrentWeapon())
00656                 m_bDisplayWeaponBloc = true ;
00657         else
00658                 m_bDisplayWeaponBloc = false ;
00659 
00660         float   OffsetX = 0.165f * (1.0f - m_fStatusBlocPercentOutOfScreen);
00661 
00662         //
00663         //      GUN PANEL
00664         //
00665         if(pMyPlayer->GetCurrentWeapon())
00666         {
00667                 u32 WeaponType = pMyPlayer->GetCurrentWeapon()->GetWeaponType() ;
00668 
00669                 float fWeaponIndexX = 0.5078125f ;
00670                 float fWeaponSizeX = 0.25f ;
00671                 float fWeaponSizeY = 0.125f ;
00672 
00673                 switch( WeaponType )
00674                 {
00675                         case KAGWT_KNIFE:
00676                                 pTU[0] = fWeaponIndexX + dtexelu;                               pTV[0] = 0.0f + dtexelv;
00677                                 pTU[1] = fWeaponIndexX + fWeaponSizeX + dtexelu;        pTV[1] = 0.0f + dtexelv;
00678                                 pTU[2] = fWeaponIndexX + dtexelu;                               pTV[2] = 0.0f + fWeaponSizeY + dtexelv;
00679                                 pTU[3] = fWeaponIndexX + fWeaponSizeX + dtexelu;        pTV[3] = 0.0f + fWeaponSizeY + dtexelv;
00680                         break;
00681                         case KAGWT_RIFLE:
00682                                 pTU[0] = fWeaponIndexX + dtexelu;                               pTV[0] = 0.125f + dtexelv;
00683                                 pTU[1] = fWeaponIndexX + fWeaponSizeX + dtexelu;        pTV[1] = 0.125f + dtexelv;
00684                                 pTU[2] = fWeaponIndexX + dtexelu;                               pTV[2] = 0.125f + fWeaponSizeY + dtexelv;
00685                                 pTU[3] = fWeaponIndexX + fWeaponSizeX + dtexelu;        pTV[3] = 0.125f + fWeaponSizeY + dtexelv;
00686                         break;
00687                         case KAGWT_SHOTGUN:
00688                                 pTU[0] = fWeaponIndexX + dtexelu;                               pTV[0] = 0.25f + dtexelv;
00689                                 pTU[1] = fWeaponIndexX + fWeaponSizeX + dtexelu;        pTV[1] = 0.25f + dtexelv;
00690                                 pTU[2] = fWeaponIndexX + dtexelu;                               pTV[2] = 0.25f + fWeaponSizeY + dtexelv;
00691                                 pTU[3] = fWeaponIndexX + fWeaponSizeX + dtexelu;        pTV[3] = 0.25f + fWeaponSizeY + dtexelv;
00692                         break;
00693                         case KAGWT_ROCKETLAUNCHER:
00694                                 pTU[0] = fWeaponIndexX + dtexelu;                               pTV[0] = 0.375f + dtexelv;
00695                                 pTU[1] = fWeaponIndexX + fWeaponSizeX + dtexelu;        pTV[1] = 0.375f + dtexelv;
00696                                 pTU[2] = fWeaponIndexX + dtexelu;                               pTV[2] = 0.375f + fWeaponSizeY + dtexelv;
00697                                 pTU[3] = fWeaponIndexX + fWeaponSizeX + dtexelu;        pTV[3] = 0.375f + fWeaponSizeY + dtexelv;
00698                         break;
00699                         case KAGWT_SNIPER:
00700                                 pTU[0] = fWeaponIndexX + dtexelu;                               pTV[0] = 0.5f + dtexelv;
00701                                 pTU[1] = fWeaponIndexX + fWeaponSizeX + dtexelu;        pTV[1] = 0.5f + dtexelv;
00702                                 pTU[2] = fWeaponIndexX + dtexelu;                               pTV[2] = 0.5f + fWeaponSizeY + dtexelv;
00703                                 pTU[3] = fWeaponIndexX + fWeaponSizeX + dtexelu;        pTV[3] = 0.5f + fWeaponSizeY + dtexelv;
00704                         break;
00705                 }
00706 
00707                 KFPt    fSize2 = GetFloatPoint( KPt( 128, 48 ) );
00708                 KFPt    fSize3 = GetFloatPoint( KPt( 35, 0 ) );
00709                 KCOLOR  color = GetTeamColor( Team ) ;
00710                 if(pMyPlayer->GetCurrentWeapon() == pMyPlayer->GetSelectedObject())
00711                         color = KRGB_WHITE ;
00712 
00713                 DrawQuad( m_Pos.x + OffsetX + fSize3.x + (m_fWeaponBlocPercentOutOfScreen * 0.083984375f), m_Pos.y + (1.0f - fSize2.y) + (0.125f * m_fWeaponBlocPercentOutOfScreen), fSize2.x, fSize2.y, m_hHud, color, KRGB_BLACK, KRM_NORMAL, pTU, pTV );
00714 
00715                 DisplayWeaponPanel( KFPt( OffsetX, 0.0f ), Team );
00716                 OffsetX += 0.275f;
00717         }
00718 
00719         m_bDisplayFlagBloc = false ;
00720         for(int iCpt = 0 ; iCpt <= pMyPlayer->GetNbObjectInInventory() ; iCpt ++)
00721         {
00722                 K3DObject *pObject = pMyPlayer->GetpObjectInInventory(iCpt) ;
00723 
00724                 if(pObject != NULL)
00725                 {
00726                         u32 ObjectType = pObject->GetType() ;
00727 
00728                         if( ObjectType == KAGOT_FLAG )
00729                         {
00730                                 m_bDisplayFlagBloc = true ;
00731 
00732                                 pTU[0] = (float)0.869140625f + dtexelu; pTV[0] = 0.25390625f + dtexelv;
00733                                 pTU[1] = (float)0.994140625f + dtexelu; pTV[1] = 0.25390625f + dtexelv;
00734                                 pTU[2] = (float)0.869140625f + dtexelu; pTV[2] = 0.37890625f + dtexelv;
00735                                 pTU[3] = (float)0.994140625f + dtexelu; pTV[3] = 0.37890625f + dtexelv;
00736 
00737                                 KFPt    fSize2 = GetFloatPoint( KPt( 64, 64 ) );
00738                                 KFPt    fSize3 = GetFloatPoint( KPt( 50, 0 ) );
00739 
00740                                 KCOLOR color = GetTeamColor( Team ) ;
00741                                 if(pObject == pMyPlayer->GetSelectedObject())
00742                                         color = KRGB_WHITE ;
00743                                 DrawQuad( m_Pos.x + OffsetX + fSize3.x + (m_fFlagBlocPercentOutOfScreen * 0.125f), m_Pos.y + 1.0f - fSize2.y + (0.1171875f * m_fFlagBlocPercentOutOfScreen), fSize2.x, fSize2.y, m_hHud, color, KRGB_BLACK, KRM_NORMAL, pTU, pTV );
00744                                 DisplayFlagPanel( KFPt( OffsetX, 0.0f ), Team );
00745                         }
00746                 }
00747         }
00748 }
00749 
00750 //------------------------------------------------------------------------------------------
00751 void KAWinHUD::ShowBlood( KDAMAGE Damage )
00752 {
00753         m_BloodTime             = g_Time.GetTime();
00754         m_BloodDuration = Damage * 10;
00755 }
00756 
00757 //------------------------------------------------------------------------------------------
00758 void KAWinHUD::DisplayBlood()
00759 {
00760         KCOLOR  Color;
00761         
00762         KTIME   Time = g_Time.GetTime();
00763 
00764         if( m_BloodTime + m_BloodDuration > Time )
00765         {
00766                 float   Intensity = ( ( m_BloodTime + m_BloodDuration - Time ) / (float)( m_BloodDuration ) );
00767 
00768                 Color = KRGB( u8(255.0f * Intensity), 0, 0 );
00769 
00770                 DrawQuad( m_Pos.x, m_Pos.y, m_Size.x, m_Size.y, KSHADER_NO, Color, KRGB_BLACK, KRM_ADD );
00771         }
00772 }
00773 
00774 //------------------------------------------------------------------------------------------
00775 void KAWinHUD::DisplayTime()
00776 {
00777         KAClientGameManager*    pGameManager = (KAClientGameManager*)g_pClientGameManager;
00778         if( !pGameManager )
00779                 return;
00780 
00781         KAClientPlayer* pMyPlayer = (KAClientPlayer*)pGameManager->GetpMyPlayer() ;
00782         
00783         if(pMyPlayer == NULL)
00784                 return ;
00785 //      if(pMyPlayer->IsWaiting())
00786 //              return ;
00787 
00788         KTIME gameTimeLeft = pGameManager->GetGameTimeLeft() ;
00789         KTIME roundTimeLeft = pGameManager->GetRoundTimeLeft() ;
00790 
00791         s32 uMinutesGameLeft    = gameTimeLeft / 60000 ;
00792         s32 uSecondesGameLeft   = (gameTimeLeft - uMinutesGameLeft * 60000) / 1000 ;
00793 
00794         s32 uMinutesRoundLeft   = roundTimeLeft / 60000 ;
00795         s32 uSecondesRoundLeft  = (roundTimeLeft - uMinutesRoundLeft * 60000) / 1000 ;
00796 
00797         char cTempGameTime[256] = "" ;
00798         char cTempRoundTime[256] = "" ;
00799 
00800         if(uMinutesGameLeft <= 0)       uMinutesGameLeft = 0 ;
00801         if(uSecondesGameLeft <= 0)      uSecondesGameLeft = 0 ;
00802         if(uMinutesRoundLeft <= 0)      uMinutesRoundLeft = 0 ;
00803         if(uSecondesRoundLeft <= 0)     uSecondesRoundLeft = 0 ;
00804 
00805         sprintf(cTempGameTime,"Game : %i : %i" ,uMinutesGameLeft,uSecondesGameLeft) ;
00806         sprintf(cTempRoundTime,"Round : %i : %i" ,uMinutesRoundLeft,uSecondesRoundLeft) ;
00807 
00808         m_pRender->DrawText( GetIntPoint(KFPt( 0.8f , 0.05f )) ,cTempGameTime, KRGB( 200, 200, 200 ), 1.0f );
00809         m_pRender->DrawText( GetIntPoint(KFPt( 0.8f , 0.09f )) , cTempRoundTime, KRGB( 200, 200, 200 ), 1.0f );
00810 
00811         /*
00812         DisplayNumbers( KFPt( 0.8f, 0.05f), KFPt( 0.03f, 0.03f ), uMinutesGameLeft );
00813         DisplayNumbers( KFPt( 0.88f, 0.05f), KFPt( 0.03f, 0.03f ), uSecondesGameLeft );
00814 
00815         DisplayNumbers( KFPt( 0.8f, 0.09f), KFPt( 0.03f, 0.03f ), uMinutesRoundLeft );
00816         DisplayNumbers( KFPt( 0.88f, 0.09f), KFPt( 0.03f, 0.03f ), uSecondesRoundLeft );
00817         */
00818 }

Generated on Sun Mar 25 20:02:14 2007 for Zythum Project by  doxygen 1.5.1-p1