108 lines
1.9 KiB
C++
108 lines
1.9 KiB
C++
|
// Copyright (C) 2007 Id Software, Inc.
|
||
|
//
|
||
|
|
||
|
#include "precompiled.h"
|
||
|
#pragma hdrstop
|
||
|
|
||
|
#if defined( _DEBUG ) && !defined( ID_REDIRECT_NEWDELETE )
|
||
|
#define new DEBUG_NEW
|
||
|
#undef THIS_FILE
|
||
|
static char THIS_FILE[] = __FILE__;
|
||
|
#endif
|
||
|
|
||
|
#include "CrosshairInfo.h"
|
||
|
#include "Entity.h"
|
||
|
|
||
|
/*
|
||
|
===============================================================================
|
||
|
|
||
|
sdCrosshairInfo
|
||
|
|
||
|
===============================================================================
|
||
|
*/
|
||
|
|
||
|
const int FADETIME = SEC2MS( 0.5 );
|
||
|
const int FULLTIME = SEC2MS( 0.25f );
|
||
|
|
||
|
/*
|
||
|
================
|
||
|
sdCrosshairInfo::sdCrosshairInfo
|
||
|
================
|
||
|
*/
|
||
|
sdCrosshairInfo::sdCrosshairInfo( void ) {
|
||
|
time = 0;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
================
|
||
|
sdCrosshairInfo::IsValid
|
||
|
================
|
||
|
*/
|
||
|
bool sdCrosshairInfo::IsValid( void ) const {
|
||
|
return time >= gameLocal.time;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
================
|
||
|
sdCrosshairInfo::IsValid
|
||
|
================
|
||
|
*/
|
||
|
bool sdCrosshairInfo::IsUseValid( void ) const {
|
||
|
return useTime >= gameLocal.time;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
================
|
||
|
sdCrosshairInfo::Invalidate
|
||
|
================
|
||
|
*/
|
||
|
void sdCrosshairInfo::Invalidate( void ) {
|
||
|
time = 0;
|
||
|
useTime = 0;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
================
|
||
|
sdCrosshairInfo::GetEntity
|
||
|
================
|
||
|
*/
|
||
|
idEntity* sdCrosshairInfo::GetEntity( void ) const {
|
||
|
return owner.GetEntity();
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
================
|
||
|
sdCrosshairInfo::SetEntity
|
||
|
================
|
||
|
*/
|
||
|
void sdCrosshairInfo::SetEntity( idEntity* entity ) {
|
||
|
owner = entity;
|
||
|
}
|
||
|
|
||
|
|
||
|
/*
|
||
|
================
|
||
|
sdCrosshairInfo::Validate
|
||
|
================
|
||
|
*/
|
||
|
void sdCrosshairInfo::Validate( void ) {
|
||
|
time = gameLocal.time + FADETIME + FULLTIME;
|
||
|
useTime = gameLocal.time + gameLocal.msec;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
================
|
||
|
sdCrosshairInfo::GetAlpha
|
||
|
================
|
||
|
*/
|
||
|
float sdCrosshairInfo::GetAlpha( void ) const {
|
||
|
int timeleft = time - gameLocal.time;
|
||
|
|
||
|
if( timeleft > FADETIME ) {
|
||
|
return 1.f;
|
||
|
}
|
||
|
|
||
|
return timeleft / static_cast< float >( FADETIME );
|
||
|
}
|
||
|
|