Si usas el estándar C++11, puedes hacer uso de la clase "chrono"
Código C++:
Ver originalsystem_clock::time_point now = std::chrono::system_clock::now( );
time_t now_c = std::chrono::system_clock::to_time_t( now );
time_t es un alias. Almacena el número de segundos desde el 1 de Enero de 1970. Con las dos líneas anteriores recuperas la fecha actual del sistema.
Ahora habría que calcular el momento en el que finaliza el powerup. Para sumar 8 segundo sería algo como:
Y después te queda comprobar si el powerup ha caducado o no:
Código C++:
Ver originalsystem_clock::time_point now = std::chrono::system_clock::now( );
time_t now_c = std::chrono::system_clock::to_time_t( now );
if ( now_c >= powerupEnd )
{
// Powerup caducado
}
Posiblemente el código quede más bonito si creas una función que te devuelva, directamente el time_t de la hora actual, para no tener que ir duplicando código.