Remove dependency on Ogre::StringConverter

c++11
scrawl 10 years ago
parent cc6d5a3ba0
commit 2eec0caca0

@ -56,6 +56,13 @@ void wrap(float& rad)
rad = std::fmod(rad-osg::PI, 2.0f*osg::PI)+osg::PI; rad = std::fmod(rad-osg::PI, 2.0f*osg::PI)+osg::PI;
} }
std::string toString(int num)
{
std::ostringstream stream;
stream << num;
return stream.str();
}
std::string getBestAttack (const ESM::Weapon* weapon) std::string getBestAttack (const ESM::Weapon* weapon)
{ {
int slash = (weapon->mData.mSlash[0] + weapon->mData.mSlash[1])/2; int slash = (weapon->mData.mSlash[0] + weapon->mData.mSlash[1])/2;
@ -220,13 +227,13 @@ public:
std::string CharacterController::chooseRandomGroup (const std::string& prefix, int* num) std::string CharacterController::chooseRandomGroup (const std::string& prefix, int* num)
{ {
int numAnims=0; int numAnims=0;
while (mAnimation->hasAnimation(prefix + Ogre::StringConverter::toString(numAnims+1))) while (mAnimation->hasAnimation(prefix + toString(numAnims+1)))
++numAnims; ++numAnims;
int roll = Misc::Rng::rollDice(numAnims) + 1; // [1, numAnims] int roll = Misc::Rng::rollDice(numAnims) + 1; // [1, numAnims]
if (num) if (num)
*num = roll; *num = roll;
return prefix + Ogre::StringConverter::toString(roll); return prefix + toString(roll);
} }
void CharacterController::refreshCurrentAnims(CharacterState idle, CharacterState movement, bool force) void CharacterController::refreshCurrentAnims(CharacterState idle, CharacterState movement, bool force)
@ -569,7 +576,7 @@ void CharacterController::playDeath(float startpoint, CharacterState death)
mCurrentDeath = "deathknockout"; mCurrentDeath = "deathknockout";
break; break;
default: default:
mCurrentDeath = "death" + Ogre::StringConverter::toString(death - CharState_Death1 + 1); mCurrentDeath = "death" + toString(death - CharState_Death1 + 1);
} }
mDeathState = death; mDeathState = death;
@ -736,9 +743,17 @@ void CharacterController::handleTextKey(const std::string &groupname, const std:
split(soundgen, ' ', tokens); split(soundgen, ' ', tokens);
soundgen = tokens[0]; soundgen = tokens[0];
if (tokens.size() >= 2) if (tokens.size() >= 2)
volume = Ogre::StringConverter::parseReal(tokens[1]); {
std::stringstream stream;
stream << tokens[1];
stream >> volume;
}
if (tokens.size() >= 3) if (tokens.size() >= 3)
pitch = Ogre::StringConverter::parseReal(tokens[2]); {
std::stringstream stream;
stream << tokens[2];
stream >> pitch;
}
} }
std::string sound = mPtr.getClass().getSoundIdFromSndGen(mPtr, soundgen); std::string sound = mPtr.getClass().getSoundIdFromSndGen(mPtr, soundgen);

@ -1,13 +1,56 @@
#include "settings.hpp" #include "settings.hpp"
#include <stdexcept> #include <stdexcept>
#include <sstream>
#include <OgreStringConverter.h> #include <components/misc/stringops.hpp>
#include <boost/filesystem/fstream.hpp> #include <boost/filesystem/fstream.hpp>
#include <boost/filesystem/path.hpp> #include <boost/filesystem/path.hpp>
#include <boost/algorithm/string.hpp> #include <boost/algorithm/string.hpp>
namespace
{
bool parseBool(const std::string& string)
{
return (Misc::StringUtils::ciEqual(string, "true"));
}
float parseFloat(const std::string& string)
{
std::stringstream stream;
stream << string;
float ret = 0.f;
stream >> ret;
return ret;
}
int parseInt(const std::string& string)
{
std::stringstream stream;
stream << string;
int ret = 0;
stream >> ret;
return ret;
}
template <typename T>
std::string toString(T val)
{
std::ostringstream stream;
stream << val;
return stream.str();
}
template <>
std::string toString(bool val)
{
return val ? "true" : "false";
}
}
namespace Settings namespace Settings
{ {
@ -143,17 +186,17 @@ std::string Manager::getString(const std::string &setting, const std::string &ca
float Manager::getFloat (const std::string& setting, const std::string& category) float Manager::getFloat (const std::string& setting, const std::string& category)
{ {
return Ogre::StringConverter::parseReal( getString(setting, category) ); return parseFloat( getString(setting, category) );
} }
int Manager::getInt (const std::string& setting, const std::string& category) int Manager::getInt (const std::string& setting, const std::string& category)
{ {
return Ogre::StringConverter::parseInt( getString(setting, category) ); return parseInt( getString(setting, category) );
} }
bool Manager::getBool (const std::string& setting, const std::string& category) bool Manager::getBool (const std::string& setting, const std::string& category)
{ {
return Ogre::StringConverter::parseBool( getString(setting, category) ); return parseBool( getString(setting, category) );
} }
void Manager::setString(const std::string &setting, const std::string &category, const std::string &value) void Manager::setString(const std::string &setting, const std::string &category, const std::string &value)
@ -174,17 +217,17 @@ void Manager::setString(const std::string &setting, const std::string &category,
void Manager::setInt (const std::string& setting, const std::string& category, const int value) void Manager::setInt (const std::string& setting, const std::string& category, const int value)
{ {
setString(setting, category, Ogre::StringConverter::toString(value)); setString(setting, category, toString(value));
} }
void Manager::setFloat (const std::string &setting, const std::string &category, const float value) void Manager::setFloat (const std::string &setting, const std::string &category, const float value)
{ {
setString(setting, category, Ogre::StringConverter::toString(value)); setString(setting, category, toString(value));
} }
void Manager::setBool(const std::string &setting, const std::string &category, const bool value) void Manager::setBool(const std::string &setting, const std::string &category, const bool value)
{ {
setString(setting, category, Ogre::StringConverter::toString(value)); setString(setting, category, toString(value));
} }
const CategorySettingVector Manager::apply() const CategorySettingVector Manager::apply()

Loading…
Cancel
Save