Source | SVN | Assembla
Source | SVN | Assembla
Code:
int __cdecl AuctionFrame_GetTimeLeftTextCallback( DWORD_PTR dwState )
{
if( Delegates::luaWoW_isnumber( dwState, 1 ) != 1 )
return 0;
std::string sResult;
UINT uTime = (UINT) Delegates::luaWoW_tonumber( dwState, 1 );
if( uTime <= 0 )
sResult = "Ended";
else
{
SChunkedTime chunkedTime = Functions::TimeToChunked( uTime );
sResult = Functions::FormatCString( "%02d:%02d:%02d",
chunkedTime.Hours, chunkedTime.Minutes, chunkedTime.Seconds );
}
Delegates::luaWoW_pushlstring( dwState, sResult.data(), sResult.length() );
return 1;
}
SChunkedTime TimeToChunked( UINT uTimeInterval )
{
SChunkedTime chunkedTime = { 0 };
chunkedTime.Hours = ( uTimeInterval / 3600 ) & 0xFFFF;
chunkedTime.Minutes = ( uTimeInterval / 60 - chunkedTime.Hours * 60 ) & 0xFF;
chunkedTime.Seconds = ( uTimeInterval % 60 ) & 0xFF;
return chunkedTime;
}