|
@@ -77,11 +77,21 @@ void GuiProgressCtrl::setCurrentProgress(F32 target)
|
|
|
|
|
|
void GuiProgressCtrl::setCurrentProgress(F32 target, S32 time)
|
|
|
{
|
|
|
- mAnimationLength = time;
|
|
|
-
|
|
|
//validate the value
|
|
|
target = mClampF(target, 0.f, 1.f);
|
|
|
|
|
|
+ if (time == 0)
|
|
|
+ {
|
|
|
+ mCurrent = target;
|
|
|
+ setProcessTicks(false);
|
|
|
+ F32 old = mCurrent;
|
|
|
+
|
|
|
+ if (isMethod("onDisplayChange") && old != mCurrent)
|
|
|
+ Con::executef(this, 2, "onDisplayChange", Con::getFloatArg(mCurrent));
|
|
|
+ }
|
|
|
+
|
|
|
+ mAnimationLength = time;
|
|
|
+
|
|
|
if (target != mCurrent)
|
|
|
{
|
|
|
mStart = mCurrent;
|
|
@@ -95,7 +105,14 @@ void GuiProgressCtrl::setCurrentProgress(F32 target, S32 time)
|
|
|
|
|
|
void GuiProgressCtrl::resetProgress()
|
|
|
{
|
|
|
- setCurrentProgress(0.0f);
|
|
|
+ F32 old = mCurrent;
|
|
|
+ mCurrent = 0.0f;
|
|
|
+ setProcessTicks(false);
|
|
|
+
|
|
|
+ if (isMethod("onDisplayChange") && old != mCurrent)
|
|
|
+ Con::executef(this, 2, "onDisplayChange", Con::getFloatArg(mCurrent));
|
|
|
+
|
|
|
+ setUpdate();
|
|
|
}
|
|
|
|
|
|
void GuiProgressCtrl::onRender(Point2I offset, const RectI &updateRect)
|
|
@@ -141,6 +158,9 @@ void GuiProgressCtrl::processTick()
|
|
|
if (!shouldWeContinue)
|
|
|
{
|
|
|
setProcessTicks(false);
|
|
|
+
|
|
|
+ if (isMethod("onProgressComplete"))
|
|
|
+ Con::executef(this, 1, "onProgressComplete");
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -149,8 +169,12 @@ bool GuiProgressCtrl::animateProgressBar()
|
|
|
F32 progress = getProgress(32.0f);
|
|
|
|
|
|
setUpdate();
|
|
|
+ F32 old = mCurrent;
|
|
|
mCurrent = processValue(progress, mStart, mEnd);
|
|
|
|
|
|
+ if (isMethod("onDisplayChange") && old != mCurrent)
|
|
|
+ Con::executef(this, 2, "onDisplayChange", Con::getFloatArg(mCurrent));
|
|
|
+
|
|
|
if (mAnimationProgress >= 1.0f)
|
|
|
{
|
|
|
mAnimationProgress = 1.0f;
|