#include "game/scenes/palette_fade.hpp"

namespace Scenes {

    void PaletteFade::startFadeOut() {
        Jd8::fadeStartOut();
        active_ = true;
    }

    void PaletteFade::startFadeTo(const Color* target) {
        Jd8::fadeStartToPal(target);
        active_ = true;
    }

    void PaletteFade::tick(int /*delta_ms*/) {
        if (!active_) {
            return;
        }
        // El fade té 32 passos interns. Amb un tick per frame (~16ms)
        // dura ~512ms — el mateix temps que la versió bloquejant original.
        // Si en el futur volem fer-lo genuinament time-based (p.ex. "fade
        // de 500ms exactes independent del framerate") podem convertir la
        // màquina d'estats de jdraw8 a time-based ací sense tocar cap altre
        // call site.
        if (Jd8::fadeTickStep()) {
            active_ = false;
        }
    }

}  // namespace Scenes
