diff --git a/indra/newview/aoengine.cpp b/indra/newview/aoengine.cpp index 33f91d556a..a66c8885b8 100644 --- a/indra/newview/aoengine.cpp +++ b/indra/newview/aoengine.cpp @@ -1629,7 +1629,7 @@ void AOEngine::update() } else if (state_params[num].substr(0, 2) == "CT") { - LLStringUtil::convertToS32(state_params[num].substr(2, state_params[num].size() - 2), state->mCycleTime); + LLStringUtil::convertToF32(state_params[num].substr(2, state_params[num].size() - 2), state->mCycleTime); LL_DEBUGS("AOEngine") << "Cycle Time specified:" << state->mCycleTime << LL_ENDL; } else @@ -1828,12 +1828,9 @@ bool AOEngine::renameSet(AOSet* set, const std::string& name) void AOEngine::saveState(const AOSet::AOState* state) { std::string stateParams = state->mName; - F32 time = (F32)state->mCycleTime; - if (time > 0.0f) + if (state->mCycleTime > 0.0f) { - std::ostringstream timeStr; - timeStr << ":CT" << state->mCycleTime; - stateParams += timeStr.str(); + stateParams += llformat(":CT%.2f", state->mCycleTime); } if (state->mCycle) { @@ -2041,7 +2038,7 @@ void AOEngine::setRandomize(AOSet::AOState* state, bool randomize) void AOEngine::setCycleTime(AOSet::AOState* state, F32 time) { - state->mCycleTime = (S32)time; + state->mCycleTime = time; state->mDirty = true; } diff --git a/indra/newview/aoset.h b/indra/newview/aoset.h index cf9cff8f10..2da7339b2b 100644 --- a/indra/newview/aoset.h +++ b/indra/newview/aoset.h @@ -85,7 +85,7 @@ class AOSet LLUUID mRemapID; bool mCycle; bool mRandom; - S32 mCycleTime; + F32 mCycleTime; std::vector mAnimations; U32 mCurrentAnimation; LLUUID mCurrentAnimationID; diff --git a/indra/newview/skins/default/xui/en/panel_ao.xml b/indra/newview/skins/default/xui/en/panel_ao.xml index 8d93ff1ed4..ddf71ac170 100644 --- a/indra/newview/skins/default/xui/en/panel_ao.xml +++ b/indra/newview/skins/default/xui/en/panel_ao.xml @@ -221,7 +221,7 @@ left_pad="8" height="16" right="-1" - decimal_digits="0" + decimal_digits="2" initial_value="0" min_val="0" max_val="999"