mirror of
https://github.com/zeldaret/botw
synced 2026-05-23 06:54:18 -04:00
56 lines
1.1 KiB
C++
56 lines
1.1 KiB
C++
#include "Game/UI/uiFadeProgress.h"
|
|
#include "Game/UI/uiUtils.h"
|
|
|
|
namespace uking::ui {
|
|
|
|
SEAD_SINGLETON_DISPOSER_IMPL(FadeProgress)
|
|
|
|
void FadeProgress::init() {
|
|
mActive = false;
|
|
mProgress = 0.0;
|
|
mGaugeValue = 0.0;
|
|
mSteps = 1.0;
|
|
}
|
|
|
|
void FadeProgress::reset() {
|
|
init();
|
|
}
|
|
|
|
void FadeProgress::updateFadeScreen() {
|
|
if (!mActive)
|
|
return;
|
|
|
|
float progress = mProgress;
|
|
float difference = progress - mGaugeValue;
|
|
|
|
if (difference > 0.1f)
|
|
mSteps = 1.1;
|
|
if (difference > 0.2f)
|
|
mSteps = 1.2;
|
|
if (progress > 0.94f)
|
|
mSteps = 10.0;
|
|
|
|
if (difference <= 0.0001f && difference >= -0.0001f)
|
|
mSteps = 1.0;
|
|
|
|
float new_progress = mGaugeValue + (mProgressPerStep * mSteps);
|
|
if (new_progress < progress)
|
|
progress = new_progress;
|
|
mGaugeValue = progress;
|
|
applyScreenFade(progress);
|
|
}
|
|
|
|
void FadeProgress::setProgress(float value) {
|
|
if (mProgress < value)
|
|
mProgress = value;
|
|
}
|
|
|
|
float FadeProgress::getGaugeValue() const {
|
|
return mGaugeValue;
|
|
}
|
|
|
|
void FadeProgress::setIsActive() {
|
|
mActive = true;
|
|
}
|
|
|
|
} // namespace uking::ui
|