Some changes suggested by cppcheck

pull/51/head
scrawl 12 years ago
parent 0923306404
commit 7dc30a01cd

@ -141,6 +141,10 @@ OMW::Engine::Engine(Files::ConfigurationManager& configurationManager)
, mFSStrict (false) , mFSStrict (false)
, mScriptConsoleMode (false) , mScriptConsoleMode (false)
, mCfgMgr(configurationManager) , mCfgMgr(configurationManager)
, mEncoding(ToUTF8::WINDOWS_1252)
, mEncoder(NULL)
, mActivationDistanceOverride(-1)
{ {
std::srand ( std::time(NULL) ); std::srand ( std::time(NULL) );
MWClass::registerClasses(); MWClass::registerClasses();

@ -54,7 +54,7 @@ void validate(boost::any &v, std::vector<std::string> const &tokens, FallbackMap
FallbackMap *map = boost::any_cast<FallbackMap>(&v); FallbackMap *map = boost::any_cast<FallbackMap>(&v);
std::map<std::string,std::string>::iterator mapIt; std::map<std::string,std::string>::iterator mapIt;
for(std::vector<std::string>::const_iterator it=tokens.begin(); it != tokens.end(); it++) for(std::vector<std::string>::const_iterator it=tokens.begin(); it != tokens.end(); ++it)
{ {
int sep = it->find(","); int sep = it->find(",");
if(sep < 1 || sep == (int)it->length()-1) if(sep < 1 || sep == (int)it->length()-1)
@ -204,7 +204,7 @@ bool parseOptions (int argc, char** argv, OMW::Engine& engine, Files::Configurat
// fallback archives // fallback archives
StringsVector archives = variables["fallback-archive"].as<StringsVector>(); StringsVector archives = variables["fallback-archive"].as<StringsVector>();
for (StringsVector::const_iterator it = archives.begin(); it != archives.end(); it++) for (StringsVector::const_iterator it = archives.begin(); it != archives.end(); ++it)
{ {
engine.addArchive(*it); engine.addArchive(*it);
} }

@ -376,13 +376,13 @@ namespace MWClass
MWWorld::Store<ESM::SoundGenerator>::iterator sound = store.begin(); MWWorld::Store<ESM::SoundGenerator>::iterator sound = store.begin();
while(sound != store.end()) while(sound != store.end())
{ {
if(type == sound->mType && sound->mCreature.size() > 0 && if(type == sound->mType && !sound->mCreature.empty() &&
Misc::StringUtils::ciEqual(ptrid.substr(0, sound->mCreature.size()), Misc::StringUtils::ciEqual(ptrid.substr(0, sound->mCreature.size()),
sound->mCreature)) sound->mCreature))
sounds.push_back(&*sound); sounds.push_back(&*sound);
sound++; ++sound;
} }
if(sounds.size() > 0) if(!sounds.empty())
return sounds[(int)(rand()/(RAND_MAX+1.0)*sounds.size())]->mSound; return sounds[(int)(rand()/(RAND_MAX+1.0)*sounds.size())]->mSound;
} }

@ -272,10 +272,10 @@ namespace MWClass
ptr.get<ESM::NPC>(); ptr.get<ESM::NPC>();
assert(ref->mBase != NULL); assert(ref->mBase != NULL);
std::string headID = ref->mBase->mHead; //std::string headID = ref->mBase->mHead;
int end = headID.find_last_of("head_") - 4; //int end = headID.find_last_of("head_") - 4;
std::string bodyRaceID = headID.substr(0, end); //std::string bodyRaceID = headID.substr(0, end);
std::string model = "meshes\\base_anim.nif"; std::string model = "meshes\\base_anim.nif";
const ESM::Race* race = MWBase::Environment::get().getWorld()->getStore().get<ESM::Race>().find(ref->mBase->mRace); const ESM::Race* race = MWBase::Environment::get().getWorld()->getStore().get<ESM::Race>().find(ref->mBase->mRace);

@ -172,7 +172,6 @@ namespace MWDialogue
win->addResponse (Interpreter::fixDefinesDialog(info->mResponse, interpreterContext)); win->addResponse (Interpreter::fixDefinesDialog(info->mResponse, interpreterContext));
executeScript (info->mResultScript); executeScript (info->mResultScript);
mLastTopic = Misc::StringUtils::lowerCase(it->mId); mLastTopic = Misc::StringUtils::lowerCase(it->mId);
mLastDialogue = *info;
break; break;
} }
} }
@ -293,7 +292,6 @@ namespace MWDialogue
executeScript (info->mResultScript); executeScript (info->mResultScript);
mLastTopic = topic; mLastTopic = topic;
mLastDialogue = *info;
} }
else else
{ {
@ -455,7 +453,6 @@ namespace MWDialogue
MWBase::Environment::get().getWindowManager()->getDialogueWindow()->addResponse (Interpreter::fixDefinesDialog(text, interpreterContext)); MWBase::Environment::get().getWindowManager()->getDialogueWindow()->addResponse (Interpreter::fixDefinesDialog(text, interpreterContext));
MWBase::Environment::get().getJournal()->addTopic (mLastTopic, info->mId); MWBase::Environment::get().getJournal()->addTopic (mLastTopic, info->mId);
executeScript (info->mResultScript); executeScript (info->mResultScript);
mLastDialogue = *info;
} }
} }
} }

@ -31,7 +31,6 @@ namespace MWDialogue
int mChoice; int mChoice;
std::string mLastTopic; std::string mLastTopic;
ESM::DialInfo mLastDialogue;
bool mIsInChoice; bool mIsInChoice;
float mTemporaryDispositionChange; float mTemporaryDispositionChange;

@ -47,6 +47,8 @@ namespace MWGui
, mIngredients (4) , mIngredients (4)
, mSortModel(NULL) , mSortModel(NULL)
{ {
mAlchemy.setAlchemist (MWBase::Environment::get().getWorld()->getPlayer().getPlayer());
getWidget(mCreateButton, "CreateButton"); getWidget(mCreateButton, "CreateButton");
getWidget(mCancelButton, "CancelButton"); getWidget(mCancelButton, "CancelButton");
getWidget(mIngredients[0], "Ingredient1"); getWidget(mIngredients[0], "Ingredient1");
@ -150,8 +152,6 @@ namespace MWGui
mNameEdit->setCaption(""); mNameEdit->setCaption("");
mAlchemy.setAlchemist (MWBase::Environment::get().getWorld()->getPlayer().getPlayer());
int index = 0; int index = 0;
for (MWMechanics::Alchemy::TToolsIterator iter (mAlchemy.beginTools()); for (MWMechanics::Alchemy::TToolsIterator iter (mAlchemy.beginTools());

@ -108,7 +108,7 @@ struct TypesetBookImpl : TypesetBook
{ {
Contents::iterator i = mContents.insert (mContents.end (), Content (text.first, text.second)); Contents::iterator i = mContents.insert (mContents.end (), Content (text.first, text.second));
if (i->size () == 0) if (i->empty())
return Range (Utf8Point (NULL), Utf8Point (NULL)); return Range (Utf8Point (NULL), Utf8Point (NULL));
Utf8Point begin = &i->front (); Utf8Point begin = &i->front ();
@ -768,6 +768,11 @@ public:
PageDisplay () PageDisplay ()
{ {
mPage = -1; mPage = -1;
mViewTop = 0;
mViewBottom = 0;
mFocusItem = NULL;
mItemActive = false;
mNode = NULL;
} }
void dirtyFocusItem () void dirtyFocusItem ()
@ -1093,7 +1098,6 @@ class BookPageImpl : public BookPage
MYGUI_RTTI_DERIVED(BookPage) MYGUI_RTTI_DERIVED(BookPage)
public: public:
void showPage (TypesetBook::Ptr book, size_t page) void showPage (TypesetBook::Ptr book, size_t page)
{ {
if (PageDisplay* pd = dynamic_cast <PageDisplay*> (getSubWidgetText ())) if (PageDisplay* pd = dynamic_cast <PageDisplay*> (getSubWidgetText ()))

@ -19,6 +19,7 @@ namespace MWGui
: WindowBase("openmw_book.layout") : WindowBase("openmw_book.layout")
, mTakeButtonShow(true) , mTakeButtonShow(true)
, mTakeButtonAllowed(true) , mTakeButtonAllowed(true)
, mCurrentPage(0)
{ {
getWidget(mCloseButton, "CloseButton"); getWidget(mCloseButton, "CloseButton");
mCloseButton->eventMouseButtonClick += MyGUI::newDelegate(this, &BookWindow::onCloseButtonClicked); mCloseButton->eventMouseButtonClick += MyGUI::newDelegate(this, &BookWindow::onCloseButtonClicked);

@ -70,6 +70,9 @@ namespace MWGui
, mGenerateClassStep(0) , mGenerateClassStep(0)
{ {
mCreationStage = CSE_NotStarted; mCreationStage = CSE_NotStarted;
mGenerateClassSpecializations[0] = 0;
mGenerateClassSpecializations[1] = 0;
mGenerateClassSpecializations[2] = 0;
} }
void CharacterCreation::setValue (const std::string& id, const MWMechanics::Stat<int>& value) void CharacterCreation::setValue (const std::string& id, const MWMechanics::Stat<int>& value)

@ -372,6 +372,8 @@ namespace MWGui
, mAttribDialog(NULL) , mAttribDialog(NULL)
, mSkillDialog(NULL) , mSkillDialog(NULL)
, mDescDialog(NULL) , mDescDialog(NULL)
, mAffectedAttribute(NULL)
, mAffectedSkill(NULL)
{ {
// Centre dialog // Centre dialog
center(); center();
@ -718,6 +720,7 @@ namespace MWGui
SelectAttributeDialog::SelectAttributeDialog() SelectAttributeDialog::SelectAttributeDialog()
: WindowModal("openmw_chargen_select_attribute.layout") : WindowModal("openmw_chargen_select_attribute.layout")
, mAttributeId(ESM::Attribute::Strength)
{ {
// Centre dialog // Centre dialog
center(); center();

@ -217,7 +217,7 @@ namespace MWGui
mCommandLine->setCaption(complete( mCommandLine->getCaption(), matches )); mCommandLine->setCaption(complete( mCommandLine->getCaption(), matches ));
#if 0 #if 0
int i = 0; int i = 0;
for(std::vector<std::string>::iterator it=matches.begin(); it < matches.end(); it++,i++ ) for(std::vector<std::string>::iterator it=matches.begin(); it < matches.end(); ++it,++i )
{ {
printOK( *it ); printOK( *it );
if( i == 50 ) if( i == 50 )
@ -237,7 +237,7 @@ namespace MWGui
if(mCurrent != mCommandHistory.begin()) if(mCurrent != mCommandHistory.begin())
{ {
mCurrent--; --mCurrent;
mCommandLine->setCaption(*mCurrent); mCommandLine->setCaption(*mCurrent);
} }
} }
@ -245,7 +245,7 @@ namespace MWGui
{ {
if(mCurrent != mCommandHistory.end()) if(mCurrent != mCommandHistory.end())
{ {
mCurrent++; --mCurrent;
if(mCurrent != mCommandHistory.end()) if(mCurrent != mCommandHistory.end())
mCommandLine->setCaption(*mCurrent); mCommandLine->setCaption(*mCurrent);
@ -333,7 +333,7 @@ namespace MWGui
continue; continue;
/* Is the beginning of the string different from the input string? If yes skip it. */ /* Is the beginning of the string different from the input string? If yes skip it. */
for( std::string::iterator iter=tmp.begin(), iter2=(*it).begin(); iter < tmp.end();iter++, iter2++) { for( std::string::iterator iter=tmp.begin(), iter2=(*it).begin(); iter < tmp.end();++iter, ++iter2) {
if( tolower(*iter) != tolower(*iter2) ) { if( tolower(*iter) != tolower(*iter2) ) {
string_different=true; string_different=true;
break; break;
@ -372,7 +372,7 @@ namespace MWGui
/* Check if all matching strings match further than input. If yes complete to this match. */ /* Check if all matching strings match further than input. If yes complete to this match. */
int i = tmp.length(); int i = tmp.length();
for(std::string::iterator iter=matches.front().begin()+tmp.length(); iter < matches.front().end(); iter++, i++) { for(std::string::iterator iter=matches.front().begin()+tmp.length(); iter < matches.front().end(); ++iter, ++i) {
for(std::vector<std::string>::iterator it=matches.begin(); it < matches.end();++it) { for(std::vector<std::string>::iterator it=matches.begin(); it < matches.end();++it) {
if( tolower((*it)[i]) != tolower(*iter) ) { if( tolower((*it)[i]) != tolower(*iter) ) {
/* Append the longest match to the end of the output string*/ /* Append the longest match to the end of the output string*/

@ -78,7 +78,7 @@ namespace
return string.getChar(0); return string.getChar(0);
} }
bool is_not_empty(const std::string s) { bool is_not_empty(const std::string& s) {
std::string temp = s; std::string temp = s;
boost::algorithm::trim(temp); boost::algorithm::trim(temp);
return !temp.empty(); return !temp.empty();

@ -36,6 +36,7 @@ namespace MWGui
, mPreview(MWBase::Environment::get().getWorld ()->getPlayer ().getPlayer ()) , mPreview(MWBase::Environment::get().getWorld ()->getPlayer ().getPlayer ())
, mPreviewDirty(true) , mPreviewDirty(true)
, mDragAndDrop(dragAndDrop) , mDragAndDrop(dragAndDrop)
, mSelectedItem(-1)
{ {
static_cast<MyGUI::Window*>(mMainWidget)->eventWindowChangeCoord += MyGUI::newDelegate(this, &InventoryWindow::onWindowResize); static_cast<MyGUI::Window*>(mMainWidget)->eventWindowChangeCoord += MyGUI::newDelegate(this, &InventoryWindow::onWindowResize);

@ -9,6 +9,8 @@ namespace MWGui
ItemSelectionDialog::ItemSelectionDialog(const std::string &label) ItemSelectionDialog::ItemSelectionDialog(const std::string &label)
: WindowModal("openmw_itemselection_dialog.layout") : WindowModal("openmw_itemselection_dialog.layout")
, mSortModel(NULL)
, mModel(NULL)
{ {
getWidget(mItemView, "ItemView"); getWidget(mItemView, "ItemView");
mItemView->eventItemClicked += MyGUI::newDelegate(this, &ItemSelectionDialog::onSelectedItem); mItemView->eventItemClicked += MyGUI::newDelegate(this, &ItemSelectionDialog::onSelectedItem);

@ -32,6 +32,7 @@ namespace MWGui
ItemView::ItemView() ItemView::ItemView()
: mModel(NULL) : mModel(NULL)
, mScrollView(NULL)
{ {
} }

@ -101,7 +101,7 @@ public:
candidates.push_back(std::make_pair((j-i), candidate)); candidates.push_back(std::make_pair((j-i), candidate));
} }
if (!candidates.size()) if (candidates.empty())
continue; // didn't match enough to disambiguate, on to next character continue; // didn't match enough to disambiguate, on to next character
// shorter candidates will be added to the vector first. however, we want to check against longer candidates first // shorter candidates will be added to the vector first. however, we want to check against longer candidates first

@ -24,6 +24,10 @@ namespace MWGui
, mLastWallpaperChangeTime(0.f) , mLastWallpaperChangeTime(0.f)
, mFirstLoad(true) , mFirstLoad(true)
, mTotalRefsLoading(0) , mTotalRefsLoading(0)
, mCurrentCellLoading(0)
, mTotalCellsLoading(0)
, mCurrentRefLoading(0)
, mCurrentRefList(0)
{ {
getWidget(mLoadingText, "LoadingText"); getWidget(mLoadingText, "LoadingText");
getWidget(mProgressBar, "ProgressBar"); getWidget(mProgressBar, "ProgressBar");

@ -89,9 +89,6 @@ namespace MWGui
{ {
for (int my=0; my<3; ++my) for (int my=0; my<3; ++my)
{ {
std::string name = "Map_" + boost::lexical_cast<std::string>(mx) + "_"
+ boost::lexical_cast<std::string>(my);
std::string image = mPrefix+"_"+ boost::lexical_cast<std::string>(mCurX + (mx-1)) + "_" std::string image = mPrefix+"_"+ boost::lexical_cast<std::string>(mCurX + (mx-1)) + "_"
+ boost::lexical_cast<std::string>(mCurY + (-1*(my-1))); + boost::lexical_cast<std::string>(mCurY + (-1*(my-1)));
MyGUI::ImageBox* fog = mFogWidgets[my + 3*mx]; MyGUI::ImageBox* fog = mFogWidgets[my + 3*mx];
@ -135,9 +132,6 @@ namespace MWGui
std::string image = mPrefix+"_"+ boost::lexical_cast<std::string>(x + (mx-1)) + "_" std::string image = mPrefix+"_"+ boost::lexical_cast<std::string>(x + (mx-1)) + "_"
+ boost::lexical_cast<std::string>(y + (-1*(my-1))); + boost::lexical_cast<std::string>(y + (-1*(my-1)));
std::string name = "Map_" + boost::lexical_cast<std::string>(mx) + "_"
+ boost::lexical_cast<std::string>(my);
MyGUI::ImageBox* box = mMapWidgets[my + 3*mx]; MyGUI::ImageBox* box = mMapWidgets[my + 3*mx];
if (MyGUI::RenderManager::getInstance().getTexture(image) != 0) if (MyGUI::RenderManager::getInstance().getTexture(image) != 0)

@ -49,7 +49,7 @@ namespace MWGui
else { else {
(*it2)->update(height); (*it2)->update(height);
height += (*it2)->getHeight(); height += (*it2)->getHeight();
it2++; ++it2;
} }
} }
} }
@ -57,7 +57,7 @@ namespace MWGui
} }
else else
{ {
it++; ++it;
} }
} }
@ -226,6 +226,7 @@ namespace MWGui
: WindowModal("openmw_interactive_messagebox.layout") : WindowModal("openmw_interactive_messagebox.layout")
, mMessageBoxManager(parMessageBoxManager) , mMessageBoxManager(parMessageBoxManager)
, mButtonPressed(-1) , mButtonPressed(-1)
, mTextButtonPadding(0)
{ {
WindowModal::open(); WindowModal::open();

@ -44,6 +44,7 @@ namespace MWGui
, mAssignDialog(0) , mAssignDialog(0)
, mItemSelectionDialog(0) , mItemSelectionDialog(0)
, mMagicSelectionDialog(0) , mMagicSelectionDialog(0)
, mSelectedIndex(-1)
{ {
getWidget(mOkButton, "OKButton"); getWidget(mOkButton, "OKButton");
getWidget(mInstructionLabel, "InstructionLabel"); getWidget(mInstructionLabel, "InstructionLabel");

@ -33,6 +33,7 @@ namespace MWGui
, mHairIndex(0) , mHairIndex(0)
, mCurrentAngle(0) , mCurrentAngle(0)
, mPreviewDirty(true) , mPreviewDirty(true)
, mPreview(NULL)
{ {
// Centre dialog // Centre dialog
center(); center();

@ -18,7 +18,6 @@ namespace MWGui
ReviewDialog::ReviewDialog() ReviewDialog::ReviewDialog()
: WindowModal("openmw_chargen_review.layout") : WindowModal("openmw_chargen_review.layout")
, mLastPos(0)
{ {
// Centre dialog // Centre dialog
center(); center();
@ -321,9 +320,7 @@ namespace MWGui
if (!mMiscSkills.empty()) if (!mMiscSkills.empty())
addSkills(mMiscSkills, "sSkillClassMisc", "Misc Skills", coord1, coord2); addSkills(mMiscSkills, "sSkillClassMisc", "Misc Skills", coord1, coord2);
mClientHeight = coord1.top; mSkillView->setCanvasSize (mSkillView->getWidth(), std::max(mSkillView->getHeight(), coord1.top));
mSkillView->setCanvasSize (mSkillView->getWidth(), std::max(mSkillView->getHeight(), mClientHeight));
} }
// widget controls // widget controls

@ -79,7 +79,6 @@ namespace MWGui
MyGUI::TextBox *mNameWidget, *mRaceWidget, *mClassWidget, *mBirthSignWidget; MyGUI::TextBox *mNameWidget, *mRaceWidget, *mClassWidget, *mBirthSignWidget;
MyGUI::ScrollView* mSkillView; MyGUI::ScrollView* mSkillView;
int mLastPos, mClientHeight;
Widgets::MWDynamicStatPtr mHealth, mMagicka, mFatigue; Widgets::MWDynamicStatPtr mHealth, mMagicka, mFatigue;

@ -139,7 +139,7 @@ namespace MWGui
if (adjustSize) if (adjustSize)
{ {
int s = effects.size() * 16+4; int s = effects.size() * 16+4;
if (!effects.size()) if (effects.empty())
s = 0; s = 0;
int diff = parent->getWidth() - s; int diff = parent->getWidth() - s;
parent->setSize(s, parent->getHeight()); parent->setSize(s, parent->getHeight());

@ -22,7 +22,11 @@ namespace MWGui
// information about a single magic effect source as required for display in the tooltip // information about a single magic effect source as required for display in the tooltip
struct MagicEffectInfo struct MagicEffectInfo
{ {
MagicEffectInfo() : mPermanent(false) {} MagicEffectInfo()
: mPermanent(false)
, mMagnitude(0)
, mRemainingTime(0)
{}
std::string mSource; // display name for effect source (e.g. potion name) std::string mSource; // display name for effect source (e.g. potion name)
MWMechanics::EffectKey mKey; MWMechanics::EffectKey mKey;
int mMagnitude; int mMagnitude;

@ -21,7 +21,6 @@ namespace MWGui
StatsWindow::StatsWindow () StatsWindow::StatsWindow ()
: WindowPinnableBase("openmw_stats_window.layout") : WindowPinnableBase("openmw_stats_window.layout")
, mSkillView(NULL) , mSkillView(NULL)
, mClientHeight(0)
, mMajorSkills() , mMajorSkills()
, mMinorSkills() , mMinorSkills()
, mMiscSkills() , mMiscSkills()
@ -82,7 +81,7 @@ namespace MWGui
{ {
mLeftPane->setCoord( MyGUI::IntCoord(0, 0, 0.44*window->getSize().width, window->getSize().height) ); mLeftPane->setCoord( MyGUI::IntCoord(0, 0, 0.44*window->getSize().width, window->getSize().height) );
mRightPane->setCoord( MyGUI::IntCoord(0.44*window->getSize().width, 0, 0.56*window->getSize().width, window->getSize().height) ); mRightPane->setCoord( MyGUI::IntCoord(0.44*window->getSize().width, 0, 0.56*window->getSize().width, window->getSize().height) );
mSkillView->setCanvasSize (mSkillView->getWidth(), std::max(mSkillView->getHeight(), mClientHeight)); mSkillView->setCanvasSize (mSkillView->getWidth(), mSkillView->getCanvasSize().height);
} }
void StatsWindow::setBar(const std::string& name, const std::string& tname, int val, int max) void StatsWindow::setBar(const std::string& name, const std::string& tname, int val, int max)
@ -422,7 +421,6 @@ namespace MWGui
mSkillWidgets.clear(); mSkillWidgets.clear();
mSkillView->setViewOffset (MyGUI::IntPoint(0,0)); mSkillView->setViewOffset (MyGUI::IntPoint(0,0));
mClientHeight = 0;
const int valueSize = 40; const int valueSize = 40;
MyGUI::IntCoord coord1(10, 0, mSkillView->getWidth() - (10 + valueSize) - 24, 18); MyGUI::IntCoord coord1(10, 0, mSkillView->getWidth() - (10 + valueSize) - 24, 18);
@ -565,9 +563,7 @@ namespace MWGui
mSkillWidgets[mSkillWidgets.size()-1-i]->setUserString("Caption_Text", "#{sCrimeHelp}"); mSkillWidgets[mSkillWidgets.size()-1-i]->setUserString("Caption_Text", "#{sCrimeHelp}");
} }
mClientHeight = coord1.top; mSkillView->setCanvasSize (mSkillView->getWidth(), std::max(mSkillView->getHeight(), coord1.top));
mSkillView->setCanvasSize (mSkillView->getWidth(), std::max(mSkillView->getHeight(), mClientHeight));
} }
void StatsWindow::onPinToggled() void StatsWindow::onPinToggled()

@ -57,7 +57,6 @@ namespace MWGui
MyGUI::Widget* mRightPane; MyGUI::Widget* mRightPane;
MyGUI::ScrollView* mSkillView; MyGUI::ScrollView* mSkillView;
int mLastPos, mClientHeight;
SkillList mMajorSkills, mMinorSkills, mMiscSkills; SkillList mMajorSkills, mMinorSkills, mMiscSkills;
std::map<int, MWMechanics::Stat<float> > mSkillValues; std::map<int, MWMechanics::Stat<float> > mSkillValues;

@ -149,7 +149,6 @@ namespace MWGui
} }
std::string type = focus->getUserString("ToolTipType"); std::string type = focus->getUserString("ToolTipType");
std::string text = focus->getUserString("ToolTipText");
if (type == "") if (type == "")
{ {

@ -36,6 +36,9 @@ namespace MWGui
, mBalanceButtonsState(BBS_None) , mBalanceButtonsState(BBS_None)
, mBalanceChangePause(0.0) , mBalanceChangePause(0.0)
, mItemToSell(-1) , mItemToSell(-1)
, mTradeModel(NULL)
, mSortModel(NULL)
, mCurrentMerchantOffer(0)
{ {
getWidget(mFilterAll, "AllButton"); getWidget(mFilterAll, "AllButton");
getWidget(mFilterWeapon, "WeaponButton"); getWidget(mFilterWeapon, "WeaponButton");

@ -47,6 +47,8 @@ namespace MWGui
, mSleeping(false) , mSleeping(false)
, mHours(1) , mHours(1)
, mRemainingTime(0.05) , mRemainingTime(0.05)
, mCurHour(0)
, mManualHours(1)
{ {
getWidget(mDateTimeText, "DateTimeText"); getWidget(mDateTimeText, "DateTimeText");
getWidget(mRestText, "RestText"); getWidget(mRestText, "RestText");

@ -899,6 +899,7 @@ namespace MWGui
: mEnableRepeat(true) : mEnableRepeat(true)
, mRepeatTriggerTime(0.5) , mRepeatTriggerTime(0.5)
, mRepeatStepTime(0.1) , mRepeatStepTime(0.1)
, mIsIncreasing(true)
{ {
} }

@ -29,6 +29,8 @@ namespace MWMechanics
{ {
AiEscort::AiEscort(const std::string &actorId, int duration, float x, float y, float z) AiEscort::AiEscort(const std::string &actorId, int duration, float x, float y, float z)
: mActorId(actorId), mX(x), mY(y), mZ(z), mDuration(duration) : mActorId(actorId), mX(x), mY(y), mZ(z), mDuration(duration)
, cellX(std::numeric_limits<int>::max())
, cellY(std::numeric_limits<int>::max())
{ {
mMaxDist = 470; mMaxDist = 470;
@ -46,6 +48,8 @@ namespace MWMechanics
AiEscort::AiEscort(const std::string &actorId, const std::string &cellId,int duration, float x, float y, float z) AiEscort::AiEscort(const std::string &actorId, const std::string &cellId,int duration, float x, float y, float z)
: mActorId(actorId), mCellId(cellId), mX(x), mY(y), mZ(z), mDuration(duration) : mActorId(actorId), mCellId(cellId), mX(x), mY(y), mZ(z), mDuration(duration)
, cellX(std::numeric_limits<int>::max())
, cellY(std::numeric_limits<int>::max())
{ {
mMaxDist = 470; mMaxDist = 470;

@ -21,6 +21,8 @@ namespace MWMechanics
{ {
AiTravel::AiTravel(float x, float y, float z) AiTravel::AiTravel(float x, float y, float z)
: mX(x),mY(y),mZ(z),mPathFinder() : mX(x),mY(y),mZ(z),mPathFinder()
, cellX(std::numeric_limits<int>::max())
, cellY(std::numeric_limits<int>::max())
{ {
} }

@ -24,6 +24,13 @@ namespace MWMechanics
{ {
AiWander::AiWander(int distance, int duration, int timeOfDay, const std::vector<int>& idle, bool repeat): AiWander::AiWander(int distance, int duration, int timeOfDay, const std::vector<int>& idle, bool repeat):
mDistance(distance), mDuration(duration), mTimeOfDay(timeOfDay), mIdle(idle), mRepeat(repeat) mDistance(distance), mDuration(duration), mTimeOfDay(timeOfDay), mIdle(idle), mRepeat(repeat)
, mCellX(std::numeric_limits<int>::max())
, mCellY(std::numeric_limits<int>::max())
, mXCell(0)
, mYCell(0)
, mX(0)
, mY(0)
, mZ(0)
{ {
for(unsigned short counter = 0; counter < mIdle.size(); counter++) for(unsigned short counter = 0; counter < mIdle.size(); counter++)
{ {

@ -699,7 +699,7 @@ void CharacterController::update(float duration, Movement &movement)
if(movestate != CharState_None) if(movestate != CharState_None)
clearAnimQueue(); clearAnimQueue();
if(mAnimQueue.size() == 0) if(mAnimQueue.empty())
idlestate = (inwater ? CharState_IdleSwim : (sneak ? CharState_IdleSneak : CharState_Idle)); idlestate = (inwater ? CharState_IdleSwim : (sneak ? CharState_IdleSneak : CharState_Idle));
else if(mAnimQueue.size() > 1) else if(mAnimQueue.size() > 1)
{ {
@ -765,7 +765,7 @@ void CharacterController::playGroup(const std::string &groupname, int mode, int
else else
{ {
count = std::max(count, 1); count = std::max(count, 1);
if(mode != 0 || mAnimQueue.size() == 0) if(mode != 0 || mAnimQueue.empty())
{ {
clearAnimQueue(); clearAnimQueue();
mAnimQueue.push_back(std::make_pair(groupname, count-1)); mAnimQueue.push_back(std::make_pair(groupname, count-1));
@ -801,7 +801,7 @@ bool CharacterController::isAnimPlaying(const std::string &groupName)
void CharacterController::clearAnimQueue() void CharacterController::clearAnimQueue()
{ {
if(mAnimQueue.size() > 0) if(!mAnimQueue.empty())
mAnimation->disable(mAnimQueue.front().first); mAnimation->disable(mAnimQueue.front().first);
mAnimQueue.clear(); mAnimQueue.clear();
} }

@ -13,7 +13,7 @@ namespace MWMechanics
: mLevel (0), mLevelHealthBonus(0.f), mDead (false), mDied (false), mFriendlyHits (0), : mLevel (0), mLevelHealthBonus(0.f), mDead (false), mDied (false), mFriendlyHits (0),
mTalkedTo (false), mAlarmed (false), mTalkedTo (false), mAlarmed (false),
mAttacked (false), mHostile (false), mAttacked (false), mHostile (false),
mAttackingOrSpell(false) mAttackingOrSpell(false), mAttackType(AT_Chop)
{ {
for (int i=0; i<4; ++i) for (int i=0; i<4; ++i)
mAiSettings[i] = 0; mAiSettings[i] = 0;

@ -11,8 +11,10 @@
namespace MWMechanics namespace MWMechanics
{ {
Enchanting::Enchanting(): Enchanting::Enchanting()
mCastStyle(ESM::Enchantment::CastOnce) : mCastStyle(ESM::Enchantment::CastOnce)
, mSelfEnchanting(false)
, mOldItemCount(0)
{} {}
void Enchanting::setOldItem(MWWorld::Ptr oldItem) void Enchanting::setOldItem(MWWorld::Ptr oldItem)

@ -416,7 +416,7 @@ namespace MWMechanics
if (playerNpcStats.getFactionRanks().find(Misc::StringUtils::lowerCase(npcFaction)) != playerNpcStats.getFactionRanks().end()) if (playerNpcStats.getFactionRanks().find(Misc::StringUtils::lowerCase(npcFaction)) != playerNpcStats.getFactionRanks().end())
{ {
for(std::vector<ESM::Faction::Reaction>::const_iterator it = MWBase::Environment::get().getWorld()->getStore().get<ESM::Faction>().find(Misc::StringUtils::lowerCase(npcFaction))->mReactions.begin(); for(std::vector<ESM::Faction::Reaction>::const_iterator it = MWBase::Environment::get().getWorld()->getStore().get<ESM::Faction>().find(Misc::StringUtils::lowerCase(npcFaction))->mReactions.begin();
it != MWBase::Environment::get().getWorld()->getStore().get<ESM::Faction>().find(Misc::StringUtils::lowerCase(npcFaction))->mReactions.end(); it++) it != MWBase::Environment::get().getWorld()->getStore().get<ESM::Faction>().find(Misc::StringUtils::lowerCase(npcFaction))->mReactions.end(); ++it)
{ {
if(Misc::StringUtils::lowerCase(it->mFaction) == Misc::StringUtils::lowerCase(npcFaction)) reaction = it->mReaction; if(Misc::StringUtils::lowerCase(it->mFaction) == Misc::StringUtils::lowerCase(npcFaction)) reaction = it->mReaction;
} }
@ -425,7 +425,7 @@ namespace MWMechanics
else if (npcFaction != "") else if (npcFaction != "")
{ {
for(std::vector<ESM::Faction::Reaction>::const_iterator it = MWBase::Environment::get().getWorld()->getStore().get<ESM::Faction>().find(Misc::StringUtils::lowerCase(npcFaction))->mReactions.begin(); for(std::vector<ESM::Faction::Reaction>::const_iterator it = MWBase::Environment::get().getWorld()->getStore().get<ESM::Faction>().find(Misc::StringUtils::lowerCase(npcFaction))->mReactions.begin();
it != MWBase::Environment::get().getWorld()->getStore().get<ESM::Faction>().find(Misc::StringUtils::lowerCase(npcFaction))->mReactions.end();it++) it != MWBase::Environment::get().getWorld()->getStore().get<ESM::Faction>().find(Misc::StringUtils::lowerCase(npcFaction))->mReactions.end();++it)
{ {
if(playerNpcStats.getFactionRanks().find(Misc::StringUtils::lowerCase(it->mFaction)) != playerNpcStats.getFactionRanks().end() ) if(playerNpcStats.getFactionRanks().find(Misc::StringUtils::lowerCase(it->mFaction)) != playerNpcStats.getFactionRanks().end() )
{ {

@ -119,7 +119,7 @@ namespace
boost::predecessor_map(&p[0]).distance_map(&d[0]).visitor(goalVisited(end))); boost::predecessor_map(&p[0]).distance_map(&d[0]).visitor(goalVisited(end)));
} }
catch(found_path fg) catch(found_path& fg)
{ {
for(PointID v = end; ; v = p[v]) for(PointID v = end; ; v = p[v])
{ {

@ -31,6 +31,7 @@ namespace MWRender
Actors(OEngine::Render::OgreRenderer& _rend, MWRender::RenderingManager* rendering) Actors(OEngine::Render::OgreRenderer& _rend, MWRender::RenderingManager* rendering)
: mRend(_rend) : mRend(_rend)
, mRendering(rendering) , mRendering(rendering)
, mRootNode(NULL)
{} {}
~Actors(); ~Actors();

@ -74,7 +74,7 @@ Animation::~Animation()
void Animation::setObjectRoot(Ogre::SceneNode *node, const std::string &model, bool baseonly) void Animation::setObjectRoot(Ogre::SceneNode *node, const std::string &model, bool baseonly)
{ {
OgreAssert(mAnimSources.size() == 0, "Setting object root while animation sources are set!"); OgreAssert(mAnimSources.empty(), "Setting object root while animation sources are set!");
if(!mInsert) if(!mInsert)
mInsert = node->createChildSceneNode(); mInsert = node->createChildSceneNode();
@ -126,7 +126,7 @@ void Animation::setObjectRoot(Ogre::SceneNode *node, const std::string &model, b
else else
{ {
mSkelBase->attachObjectToBone(iter->second, iter->first); mSkelBase->attachObjectToBone(iter->second, iter->first);
iter++; ++iter;
} }
} }
} }
@ -214,7 +214,7 @@ void Animation::addAnimSource(const std::string &model)
std::vector<Ogre::Controller<Ogre::Real> > ctrls; std::vector<Ogre::Controller<Ogre::Real> > ctrls;
Ogre::SharedPtr<AnimSource> animsrc(OGRE_NEW AnimSource); Ogre::SharedPtr<AnimSource> animsrc(OGRE_NEW AnimSource);
NifOgre::Loader::createKfControllers(mSkelBase, kfname, animsrc->mTextKeys, ctrls); NifOgre::Loader::createKfControllers(mSkelBase, kfname, animsrc->mTextKeys, ctrls);
if(animsrc->mTextKeys.size() == 0 || ctrls.size() == 0) if(animsrc->mTextKeys.empty() || ctrls.empty())
return; return;
mAnimSources.push_back(animsrc); mAnimSources.push_back(animsrc);
@ -497,7 +497,7 @@ bool Animation::reset(AnimState &state, const NifOgre::TextKeyMap &keys, const s
void Animation::handleTextKey(AnimState &state, const std::string &groupname, const NifOgre::TextKeyMap::const_iterator &key) void Animation::handleTextKey(AnimState &state, const std::string &groupname, const NifOgre::TextKeyMap::const_iterator &key)
{ {
float time = key->first; //float time = key->first;
const std::string &evt = key->second; const std::string &evt = key->second;
if(evt.compare(0, 7, "sound: ") == 0) if(evt.compare(0, 7, "sound: ") == 0)
@ -550,7 +550,7 @@ void Animation::handleTextKey(AnimState &state, const std::string &groupname, co
void Animation::play(const std::string &groupname, int priority, int groups, bool autodisable, float speedmult, const std::string &start, const std::string &stop, float startpoint, size_t loops) void Animation::play(const std::string &groupname, int priority, int groups, bool autodisable, float speedmult, const std::string &start, const std::string &stop, float startpoint, size_t loops)
{ {
if(!mSkelBase || mAnimSources.size() == 0) if(!mSkelBase || mAnimSources.empty())
return; return;
if(groupname.empty()) if(groupname.empty())
@ -567,7 +567,7 @@ void Animation::play(const std::string &groupname, int priority, int groups, boo
if(stateiter->second.mPriority == priority) if(stateiter->second.mPriority == priority)
mStates.erase(stateiter++); mStates.erase(stateiter++);
else else
stateiter++; ++stateiter;
} }
stateiter = mStates.find(groupname); stateiter = mStates.find(groupname);
@ -642,7 +642,7 @@ void Animation::resetActiveGroups()
AnimStateMap::const_iterator active = mStates.end(); AnimStateMap::const_iterator active = mStates.end();
AnimStateMap::const_iterator state = mStates.begin(); AnimStateMap::const_iterator state = mStates.begin();
for(;state != mStates.end();state++) for(;state != mStates.end();++state)
{ {
if(!(state->second.mGroups&(1<<grp))) if(!(state->second.mGroups&(1<<grp)))
continue; continue;
@ -773,7 +773,7 @@ Ogre::Vector3 Animation::runAnimation(float duration)
resetActiveGroups(); resetActiveGroups();
} }
else else
stateiter++; ++stateiter;
} }
for(size_t i = 0;i < mObjectRoot.mControllers.size();i++) for(size_t i = 0;i < mObjectRoot.mControllers.size();i++)

@ -36,6 +36,8 @@ namespace MWRender
mPreviewCam.yaw = 0.f; mPreviewCam.yaw = 0.f;
mPreviewCam.offset = 400.f; mPreviewCam.offset = 400.f;
mMainCam.yaw = 0.f;
mMainCam.offset = 400.f;
} }
Camera::~Camera() Camera::~Camera()

@ -22,7 +22,6 @@ namespace MWRender
CharacterPreview::CharacterPreview(MWWorld::Ptr character, int sizeX, int sizeY, const std::string& name, CharacterPreview::CharacterPreview(MWWorld::Ptr character, int sizeX, int sizeY, const std::string& name,
Ogre::Vector3 position, Ogre::Vector3 lookAt) Ogre::Vector3 position, Ogre::Vector3 lookAt)
: mSceneMgr (0) : mSceneMgr (0)
, mPosition(position) , mPosition(position)
, mLookAt(lookAt) , mLookAt(lookAt)
@ -31,6 +30,10 @@ namespace MWRender
, mName(name) , mName(name)
, mSizeX(sizeX) , mSizeX(sizeX)
, mSizeY(sizeY) , mSizeY(sizeY)
, mRenderTarget(NULL)
, mViewport(NULL)
, mCamera(NULL)
, mNode(NULL)
{ {
} }

@ -22,6 +22,8 @@ namespace MWRender
: mCacheDir(cacheDir) : mCacheDir(cacheDir)
, mMinX(0), mMaxX(0) , mMinX(0), mMaxX(0)
, mMinY(0), mMaxY(0) , mMinY(0), mMaxY(0)
, mWidth(0)
, mHeight(0)
{ {
} }
@ -91,15 +93,13 @@ namespace MWRender
Ogre::ColourValue mountainColour(0.05, 0.05, 0.05); Ogre::ColourValue mountainColour(0.05, 0.05, 0.05);
Ogre::ColourValue hillColour(0.16, 0.12, 0.08); Ogre::ColourValue hillColour(0.16, 0.12, 0.08);
float mountainHeight = 15000.f;
float hillHeight = 2500.f;
unsigned char r,g,b; unsigned char r,g,b;
if (land) if (land)
{ {
float landHeight = land->mLandData->mHeights[vertexY * ESM::Land::LAND_SIZE + vertexX]; const float landHeight = land->mLandData->mHeights[vertexY * ESM::Land::LAND_SIZE + vertexX];
const float mountainHeight = 15000.f;
const float hillHeight = 2500.f;
if (landHeight >= 0) if (landHeight >= 0)
{ {

@ -286,7 +286,7 @@ void NpcAnimation::updateParts(bool forceupdate)
{ {
typedef std::multimap<ESM::BodyPart::MeshPart,ESM::PartReferenceType> BodyPartMapType; typedef std::multimap<ESM::BodyPart::MeshPart,ESM::PartReferenceType> BodyPartMapType;
static BodyPartMapType sBodyPartMap; static BodyPartMapType sBodyPartMap;
if(sBodyPartMap.size() == 0) if(sBodyPartMap.empty())
{ {
sBodyPartMap.insert(std::make_pair(ESM::BodyPart::MP_Neck, ESM::PRT_Neck)); sBodyPartMap.insert(std::make_pair(ESM::BodyPart::MP_Neck, ESM::PRT_Neck));
sBodyPartMap.insert(std::make_pair(ESM::BodyPart::MP_Chest, ESM::PRT_Cuirass)); sBodyPartMap.insert(std::make_pair(ESM::BodyPart::MP_Chest, ESM::PRT_Cuirass));
@ -345,7 +345,7 @@ void NpcAnimation::updateParts(bool forceupdate)
{ {
if(!parts[bIt->second]) if(!parts[bIt->second])
parts[bIt->second] = &*it; parts[bIt->second] = &*it;
bIt++; ++bIt;
} }
} }
continue; continue;
@ -354,7 +354,7 @@ void NpcAnimation::updateParts(bool forceupdate)
while(bIt != sBodyPartMap.end() && bIt->first == bodypart.mData.mPart) while(bIt != sBodyPartMap.end() && bIt->first == bodypart.mData.mPart)
{ {
parts[bIt->second] = &*it; parts[bIt->second] = &*it;
bIt++; ++bIt;
} }
} }
} }

@ -159,7 +159,7 @@ void Objects::insertMesh (const MWWorld::Ptr& ptr, const std::string& mesh, bool
} }
if(!mIsStatic || !Settings::Manager::getBool("use static geometry", "Objects") || if(!mIsStatic || !Settings::Manager::getBool("use static geometry", "Objects") ||
anyTransparency || objects.mParticles.size() > 0) anyTransparency || !objects.mParticles.empty())
{ {
for(size_t i = 0;i < objects.mEntities.size();i++) for(size_t i = 0;i < objects.mEntities.size();i++)
{ {
@ -233,7 +233,7 @@ void Objects::insertMesh (const MWWorld::Ptr& ptr, const std::string& mesh, bool
(*iter)->detachFromParent(); (*iter)->detachFromParent();
mRenderer.getScene()->destroyEntity(*iter); mRenderer.getScene()->destroyEntity(*iter);
iter++; ++iter;
} }
} }

@ -71,7 +71,12 @@ class Objects{
///< Remove all movable objects from \a node. ///< Remove all movable objects from \a node.
public: public:
Objects(OEngine::Render::OgreRenderer& renderer, MWWorld::Fallback* fallback): mRenderer (renderer), mIsStatic(false), mFallback(fallback) {} Objects(OEngine::Render::OgreRenderer& renderer, MWWorld::Fallback* fallback)
: mRenderer (renderer)
, mIsStatic(false)
, mFallback(fallback)
, mRootNode(NULL)
{}
~Objects(){} ~Objects(){}
void insertBegin (const MWWorld::Ptr& ptr, bool enabled, bool static_); void insertBegin (const MWWorld::Ptr& ptr, bool enabled, bool static_);
void insertMesh (const MWWorld::Ptr& ptr, const std::string& mesh, bool light=false); void insertMesh (const MWWorld::Ptr& ptr, const std::string& mesh, bool light=false);

@ -32,7 +32,7 @@ OcclusionQuery::OcclusionQuery(OEngine::Render::OgreRenderer* renderer, SceneNod
mSupported = (mSunTotalAreaQuery != 0) && (mSunVisibleAreaQuery != 0); mSupported = (mSunTotalAreaQuery != 0) && (mSunVisibleAreaQuery != 0);
} }
catch (Ogre::Exception e) catch (Ogre::Exception& e)
{ {
mSupported = false; mSupported = false;
} }

@ -1042,6 +1042,8 @@ VideoPlayer::VideoPlayer(Ogre::SceneManager* sceneMgr, Ogre::RenderWindow* windo
, mNode(NULL) , mNode(NULL)
, mAllowSkipping(false) , mAllowSkipping(false)
, mWindow(window) , mWindow(window)
, mWidth(0)
, mHeight(0)
{ {
mVideoMaterial = Ogre::MaterialManager::getSingleton().getByName("VideoMaterial", "General"); mVideoMaterial = Ogre::MaterialManager::getSingleton().getByName("VideoMaterial", "General");
if (mVideoMaterial.isNull ()) if (mVideoMaterial.isNull ())

@ -43,6 +43,8 @@ namespace MWRender {
Reflection(Ogre::SceneManager* sceneManager) Reflection(Ogre::SceneManager* sceneManager)
: mSceneMgr(sceneManager) : mSceneMgr(sceneManager)
, mIsUnderwater(false) , mIsUnderwater(false)
, mCamera(NULL)
, mParentCamera(NULL)
{} {}
virtual ~Reflection() {} virtual ~Reflection() {}

@ -297,7 +297,7 @@ namespace MWScript
std::map<std::string, int> ranks = MWWorld::Class::get (player).getNpcStats (player).getFactionRanks(); std::map<std::string, int> ranks = MWWorld::Class::get (player).getNpcStats (player).getFactionRanks();
if (ranks.size()) if (!ranks.empty())
{ {
std::map<std::string, int>::const_iterator it = ranks.begin(); std::map<std::string, int>::const_iterator it = ranks.begin();

@ -225,7 +225,7 @@ struct OpenAL_Output::StreamThread {
if((*iter)->process() == false) if((*iter)->process() == false)
iter = mStreams.erase(iter); iter = mStreams.erase(iter);
else else
iter++; ++iter;
} }
mMutex.unlock(); mMutex.unlock();
boost::this_thread::sleep(boost::posix_time::milliseconds(50)); boost::this_thread::sleep(boost::posix_time::milliseconds(50));
@ -797,7 +797,7 @@ ALuint OpenAL_Output::getBuffer(const std::string &fname)
if(nameiter->second == oldbuf) if(nameiter->second == oldbuf)
mBufferCache.erase(nameiter++); mBufferCache.erase(nameiter++);
else else
nameiter++; ++nameiter;
} }
bufsize = 0; bufsize = 0;
@ -951,9 +951,9 @@ void OpenAL_Output::pauseSounds(int types)
if(sound && sound->mSource && (sound->getPlayType()&types)) if(sound && sound->mSource && (sound->getPlayType()&types))
sources.push_back(sound->mSource); sources.push_back(sound->mSource);
} }
iter++; ++iter;
} }
if(sources.size() > 0) if(!sources.empty())
{ {
alSourcePausev(sources.size(), &sources[0]); alSourcePausev(sources.size(), &sources[0]);
throwALerror(); throwALerror();
@ -978,9 +978,9 @@ void OpenAL_Output::resumeSounds(int types)
if(sound && sound->mSource && (sound->getPlayType()&types)) if(sound && sound->mSource && (sound->getPlayType()&types))
sources.push_back(sound->mSource); sources.push_back(sound->mSource);
} }
iter++; ++iter;
} }
if(sources.size() > 0) if(!sources.empty())
{ {
alSourcePlayv(sources.size(), &sources[0]); alSourcePlayv(sources.size(), &sources[0]);
throwALerror(); throwALerror();

@ -173,7 +173,7 @@ namespace MWSound
{ {
if(snditer->second.first == ptr && snditer->second.second == id) if(snditer->second.first == ptr && snditer->second.second == id)
return snditer->first->isPlaying(); return snditer->first->isPlaying();
snditer++; ++snditer;
} }
return false; return false;
} }
@ -298,7 +298,7 @@ namespace MWSound
mActiveSounds.erase(snditer++); mActiveSounds.erase(snditer++);
} }
else else
snditer++; ++snditer;
} }
} }
@ -380,7 +380,7 @@ namespace MWSound
mActiveSounds.erase(snditer++); mActiveSounds.erase(snditer++);
} }
else else
snditer++; ++snditer;
} }
} }
@ -395,7 +395,7 @@ namespace MWSound
mActiveSounds.erase(snditer++); mActiveSounds.erase(snditer++);
} }
else else
snditer++; ++snditer;
} }
} }
@ -411,7 +411,7 @@ namespace MWSound
mActiveSounds.erase(snditer++); mActiveSounds.erase(snditer++);
} }
else else
snditer++; ++snditer;
} }
} }
@ -427,7 +427,7 @@ namespace MWSound
mActiveSounds.erase(snditer++); mActiveSounds.erase(snditer++);
} }
else else
snditer++; ++snditer;
} }
} }
@ -490,7 +490,7 @@ namespace MWSound
while(soundIter != regn->mSoundList.end()) while(soundIter != regn->mSoundList.end())
{ {
total += (int)soundIter->mChance; total += (int)soundIter->mChance;
soundIter++; ++soundIter;
} }
if(total == 0) if(total == 0)
return; return;
@ -509,7 +509,7 @@ namespace MWSound
} }
pos += soundIter->mChance; pos += soundIter->mChance;
soundIter++; ++soundIter;
} }
} }
@ -557,7 +557,7 @@ namespace MWSound
snditer->first->setPosition(objpos); snditer->first->setPosition(objpos);
} }
snditer->first->update(); snditer->first->update();
snditer++; ++snditer;
} }
} }
} }
@ -584,7 +584,7 @@ namespace MWSound
{ {
snditer->first->mBaseVolume = volumeFromType(snditer->first->getPlayType()); snditer->first->mBaseVolume = volumeFromType(snditer->first->getPlayType());
snditer->first->update(); snditer->first->update();
snditer++; ++snditer;
} }
if(mMusic) if(mMusic)
{ {

@ -80,7 +80,7 @@ namespace MWWorld
{ {
assert (mCell); assert (mCell);
if (mCell->mContextList.size() == 0) if (mCell->mContextList.empty())
return; // this is a dynamically generated cell -> skipping. return; // this is a dynamically generated cell -> skipping.
// Load references from all plugins that do something with this cell. // Load references from all plugins that do something with this cell.
@ -113,7 +113,7 @@ namespace MWWorld
{ {
assert (mCell); assert (mCell);
if (mCell->mContextList.size() == 0) if (mCell->mContextList.empty())
return; // this is a dynamically generated cell -> skipping. return; // this is a dynamically generated cell -> skipping.
// Load references from all plugins that do something with this cell. // Load references from all plugins that do something with this cell.
@ -174,7 +174,7 @@ namespace MWWorld
} }
// Load moved references, from separately tracked list. // Load moved references, from separately tracked list.
for (ESM::CellRefTracker::const_iterator it = mCell->mLeasedRefs.begin(); it != mCell->mLeasedRefs.end(); it++) for (ESM::CellRefTracker::const_iterator it = mCell->mLeasedRefs.begin(); it != mCell->mLeasedRefs.end(); ++it)
{ {
// Doesn't seem to work in one line... huh? Too sleepy to check... // Doesn't seem to work in one line... huh? Too sleepy to check...
ESM::CellRef &ref = const_cast<ESM::CellRef&>(*it); ESM::CellRef &ref = const_cast<ESM::CellRef&>(*it);

@ -237,7 +237,7 @@ void MWWorld::ContainerStore::addInitialItem (const std::string& id, const std::
} }
} }
if (!candidates.size()) if (candidates.empty())
return; return;
std::string item = candidates[std::rand()%candidates.size()]; std::string item = candidates[std::rand()%candidates.size()];
addInitialItem(item, owner, count, failChance, false); addInitialItem(item, owner, count, failChance, false);

@ -510,7 +510,7 @@ namespace MWWorld
bool PhysicsSystem::toggleCollisionMode() bool PhysicsSystem::toggleCollisionMode()
{ {
for(std::map<std::string,OEngine::Physic::PhysicActor*>::iterator it = mEngine->mActorMap.begin(); it != mEngine->mActorMap.end();it++) for(std::map<std::string,OEngine::Physic::PhysicActor*>::iterator it = mEngine->mActorMap.begin(); it != mEngine->mActorMap.end();++it)
{ {
if (it->first=="player") if (it->first=="player")
{ {

@ -74,7 +74,7 @@ void Store<ESM::Cell>::load(ESM::ESMReader &esm, const std::string &id)
// copy list into new cell // copy list into new cell
cell->mContextList = oldcell->mContextList; cell->mContextList = oldcell->mContextList;
// merge lists of leased references, use newer data in case of conflict // merge lists of leased references, use newer data in case of conflict
for (ESM::MovedCellRefTracker::const_iterator it = cell->mMovedRefs.begin(); it != cell->mMovedRefs.end(); it++) { for (ESM::MovedCellRefTracker::const_iterator it = cell->mMovedRefs.begin(); it != cell->mMovedRefs.end(); ++it) {
// remove reference from current leased ref tracker and add it to new cell // remove reference from current leased ref tracker and add it to new cell
ESM::MovedCellRefTracker::iterator itold = std::find(oldcell->mMovedRefs.begin(), oldcell->mMovedRefs.end(), it->mRefnum); ESM::MovedCellRefTracker::iterator itold = std::find(oldcell->mMovedRefs.begin(), oldcell->mMovedRefs.end(), it->mRefnum);
if (itold != oldcell->mMovedRefs.end()) { if (itold != oldcell->mMovedRefs.end()) {

@ -49,7 +49,7 @@ namespace MWWorld
SharedIterator operator++(int) { SharedIterator operator++(int) {
SharedIterator iter = *this; SharedIterator iter = *this;
mIter++; ++mIter;
return iter; return iter;
} }
@ -61,7 +61,7 @@ namespace MWWorld
SharedIterator operator--(int) { SharedIterator operator--(int) {
SharedIterator iter = *this; SharedIterator iter = *this;
mIter--; --mIter;
return iter; return iter;
} }

@ -165,8 +165,9 @@ namespace MWWorld
ToUTF8::Utf8Encoder* encoder, const std::map<std::string,std::string>& fallbackMap, int mActivationDistanceOverride) ToUTF8::Utf8Encoder* encoder, const std::map<std::string,std::string>& fallbackMap, int mActivationDistanceOverride)
: mPlayer (0), mLocalScripts (mStore), mGlobalVariables (0), : mPlayer (0), mLocalScripts (mStore), mGlobalVariables (0),
mSky (true), mCells (mStore, mEsm), mSky (true), mCells (mStore, mEsm),
mNumFacing(0), mActivationDistanceOverride (mActivationDistanceOverride), mActivationDistanceOverride (mActivationDistanceOverride),
mFallback(fallbackMap), mPlayIntro(0), mTeleportEnabled(true) mFallback(fallbackMap), mPlayIntro(0), mTeleportEnabled(true),
mFacedDistance(FLT_MAX)
{ {
mPhysics = new PhysicsSystem(renderer); mPhysics = new PhysicsSystem(renderer);
mPhysEngine = mPhysics->getEngine(); mPhysEngine = mPhysics->getEngine();
@ -1117,7 +1118,7 @@ namespace MWWorld
bool World::castRay (float x1, float y1, float z1, float x2, float y2, float z2) bool World::castRay (float x1, float y1, float z1, float x2, float y2, float z2)
{ {
Ogre::Vector3 a(x1,y1,z1);std::cout << x1 << " " << x2; Ogre::Vector3 a(x1,y1,z1);
Ogre::Vector3 b(x2,y2,z2); Ogre::Vector3 b(x2,y2,z2);
return mPhysics->castRay(a,b,false,true); return mPhysics->castRay(a,b,false,true);
} }
@ -1329,7 +1330,7 @@ namespace MWWorld
++it; ++it;
} }
if (results.size() == 0) if (results.empty())
{ {
mFacedHandle = ""; mFacedHandle = "";
mFacedDistance = FLT_MAX; mFacedDistance = FLT_MAX;
@ -1717,8 +1718,6 @@ namespace MWWorld
void World::getContainersOwnedBy (const MWWorld::Ptr& npc, std::vector<MWWorld::Ptr>& out) void World::getContainersOwnedBy (const MWWorld::Ptr& npc, std::vector<MWWorld::Ptr>& out)
{ {
std::string refId = npc.getCellRef().mRefID;
const Scene::CellStoreCollection& collection = mWorldScene->getActiveCells(); const Scene::CellStoreCollection& collection = mWorldScene->getActiveCells();
for (Scene::CellStoreCollection::const_iterator cellIt = collection.begin(); cellIt != collection.end(); ++cellIt) for (Scene::CellStoreCollection::const_iterator cellIt = collection.begin(); cellIt != collection.end(); ++cellIt)
{ {

@ -77,13 +77,6 @@ namespace MWWorld
int mActivationDistanceOverride; int mActivationDistanceOverride;
std::string mFacedHandle; std::string mFacedHandle;
float mFacedDistance; float mFacedDistance;
Ptr mFaced1;
Ptr mFaced2;
std::string mFaced1Name;
std::string mFaced2Name;
float mFaced1Distance;
float mFaced2Distance;
int mNumFacing;
std::map<MWWorld::Ptr, int> mDoorStates; std::map<MWWorld::Ptr, int> mDoorStates;
///< only holds doors that are currently moving. 0 means closing, 1 opening ///< only holds doors that are currently moving. 0 means closing, 1 opening

@ -130,7 +130,7 @@ public:
{ {
std::string normalizedPattern = normalize_path(pattern.begin(), pattern.end()); std::string normalizedPattern = normalize_path(pattern.begin(), pattern.end());
StringVectorPtr ptr = StringVectorPtr(new StringVector()); StringVectorPtr ptr = StringVectorPtr(new StringVector());
for(index::const_iterator iter = mIndex.begin();iter != mIndex.end();iter++) for(index::const_iterator iter = mIndex.begin();iter != mIndex.end();++iter)
{ {
if(Ogre::StringUtil::match(iter->first, normalizedPattern) || if(Ogre::StringUtil::match(iter->first, normalizedPattern) ||
(recursive && Ogre::StringUtil::match(iter->first, "*/"+normalizedPattern))) (recursive && Ogre::StringUtil::match(iter->first, "*/"+normalizedPattern)))
@ -169,7 +169,7 @@ public:
} }
else else
{ {
for(index::const_iterator iter = mIndex.begin();iter != mIndex.end();iter++) for(index::const_iterator iter = mIndex.begin();iter != mIndex.end();++iter)
{ {
if(Ogre::StringUtil::match(iter->first, normalizedPattern) || if(Ogre::StringUtil::match(iter->first, normalizedPattern) ||
(recursive && Ogre::StringUtil::match(iter->first, "*/"+normalizedPattern))) (recursive && Ogre::StringUtil::match(iter->first, "*/"+normalizedPattern)))
@ -249,7 +249,7 @@ public:
std::string normalizedPattern = normalize_path(pattern.begin(), pattern.end()); std::string normalizedPattern = normalize_path(pattern.begin(), pattern.end());
const Bsa::BSAFile::FileList &filelist = arc.getList(); const Bsa::BSAFile::FileList &filelist = arc.getList();
StringVectorPtr ptr = StringVectorPtr(new StringVector()); StringVectorPtr ptr = StringVectorPtr(new StringVector());
for(Bsa::BSAFile::FileList::const_iterator iter = filelist.begin();iter != filelist.end();iter++) for(Bsa::BSAFile::FileList::const_iterator iter = filelist.begin();iter != filelist.end();++iter)
{ {
std::string ent = normalize_path(iter->name, iter->name+std::strlen(iter->name)); std::string ent = normalize_path(iter->name, iter->name+std::strlen(iter->name));
if(Ogre::StringUtil::match(ent, normalizedPattern) || if(Ogre::StringUtil::match(ent, normalizedPattern) ||
@ -266,7 +266,7 @@ public:
FileInfoListPtr ptr = FileInfoListPtr(new FileInfoList()); FileInfoListPtr ptr = FileInfoListPtr(new FileInfoList());
const Bsa::BSAFile::FileList &filelist = arc.getList(); const Bsa::BSAFile::FileList &filelist = arc.getList();
for(Bsa::BSAFile::FileList::const_iterator iter = filelist.begin();iter != filelist.end();iter++) for(Bsa::BSAFile::FileList::const_iterator iter = filelist.begin();iter != filelist.end();++iter)
{ {
std::string ent = normalize_path(iter->name, iter->name+std::strlen(iter->name)); std::string ent = normalize_path(iter->name, iter->name+std::strlen(iter->name));
if(Ogre::StringUtil::match(ent, normalizedPattern) || if(Ogre::StringUtil::match(ent, normalizedPattern) ||

@ -52,7 +52,7 @@ namespace Compiler
Literals& literals, std::vector<Interpreter::Type_Code>& code, bool allowExpression) Literals& literals, std::vector<Interpreter::Type_Code>& code, bool allowExpression)
: Parser (errorHandler, context), mLocals (locals), mLiterals (literals), mCode (code), : Parser (errorHandler, context), mLocals (locals), mLiterals (literals), mCode (code),
mState (BeginState), mExprParser (errorHandler, context, locals, literals), mState (BeginState), mExprParser (errorHandler, context, locals, literals),
mAllowExpression (allowExpression) mAllowExpression (allowExpression), mButtons(0), mType(0)
{} {}
bool LineParser::parseInt (int value, const TokenLoc& loc, Scanner& scanner) bool LineParser::parseInt (int value, const TokenLoc& loc, Scanner& scanner)

@ -509,7 +509,7 @@ namespace Compiler
Scanner::Scanner (ErrorHandler& errorHandler, std::istream& inputStream, Scanner::Scanner (ErrorHandler& errorHandler, std::istream& inputStream,
const Extensions *extensions) const Extensions *extensions)
: mErrorHandler (errorHandler), mStream (inputStream), mExtensions (extensions), : mErrorHandler (errorHandler), mStream (inputStream), mExtensions (extensions),
mPutback (Putback_None) mPutback (Putback_None), mPutbackCode(0), mPutbackInteger(0), mPutbackFloat(0)
{ {
} }

@ -18,6 +18,9 @@ ESM_Context ESMReader::getContext()
ESMReader::ESMReader() ESMReader::ESMReader()
: mBuffer(50*1024) : mBuffer(50*1024)
, mRecordFlags(0) , mRecordFlags(0)
, mIdx(0)
, mGlobalReaderList(NULL)
, mEncoder(NULL)
{ {
} }

@ -66,10 +66,11 @@ Land::Land()
, mX(0) , mX(0)
, mY(0) , mY(0)
, mEsm(NULL) , mEsm(NULL)
// , hasData(false)
, mDataTypes(0) , mDataTypes(0)
, mDataLoaded(false) , mDataLoaded(false)
, mLandData(NULL) , mLandData(NULL)
, mPlugin(0)
, mHasData(false)
{ {
} }

@ -56,14 +56,14 @@ void Pathgrid::load(ESMReader &esm)
std::vector<int>::const_iterator rawIt = rawConnections.begin(); std::vector<int>::const_iterator rawIt = rawConnections.begin();
int pointIndex = 0; int pointIndex = 0;
mEdges.reserve(edgeCount); mEdges.reserve(edgeCount);
for(PointList::const_iterator it = mPoints.begin(); it != mPoints.end(); it++, pointIndex++) for(PointList::const_iterator it = mPoints.begin(); it != mPoints.end(); ++it, ++pointIndex)
{ {
unsigned char connectionNum = (*it).mConnectionNum; unsigned char connectionNum = (*it).mConnectionNum;
for (int i = 0; i < connectionNum; ++i) { for (int i = 0; i < connectionNum; ++i) {
Edge edge; Edge edge;
edge.mV0 = pointIndex; edge.mV0 = pointIndex;
edge.mV1 = *rawIt; edge.mV1 = *rawIt;
rawIt++; ++rawIt;
mEdges.push_back(edge); mEdges.push_back(edge);
} }
} }

@ -7,7 +7,7 @@
namespace Interpreter{ namespace Interpreter{
bool Check(const std::string str, const std::string escword, unsigned int* i, unsigned int* start){ bool Check(const std::string& str, const std::string& escword, unsigned int* i, unsigned int* start){
bool retval = str.find(escword) == 0; bool retval = str.find(escword) == 0;
if(retval){ if(retval){
(*i) += escword.length(); (*i) += escword.length();
@ -18,7 +18,7 @@ namespace Interpreter{
std::vector<std::string> globals; std::vector<std::string> globals;
bool longerStr(const std::string a, const std::string b){ bool longerStr(const std::string& a, const std::string& b){
return a.length() > b.length(); return a.length() > b.length();
} }

@ -7,7 +7,7 @@
namespace Interpreter namespace Interpreter
{ {
Runtime::Runtime() : mContext (0), mCode (0), mPC (0) {} Runtime::Runtime() : mContext (0), mCode (0), mPC (0), mCodeSize(0) {}
int Runtime::getPC() const int Runtime::getPC() const
{ {

@ -75,12 +75,12 @@ btVector3 ManualBulletShapeLoader::getbtVector(Ogre::Vector3 const &v)
void ManualBulletShapeLoader::loadResource(Ogre::Resource *resource) void ManualBulletShapeLoader::loadResource(Ogre::Resource *resource)
{ {
cShape = static_cast<OEngine::Physic::BulletShape *>(resource); mShape = static_cast<OEngine::Physic::BulletShape *>(resource);
resourceName = cShape->getName(); mResourceName = mShape->getName();
cShape->mCollide = false; mShape->mCollide = false;
mBoundingBox = NULL; mBoundingBox = NULL;
cShape->mBoxTranslation = Ogre::Vector3(0,0,0); mShape->mBoxTranslation = Ogre::Vector3(0,0,0);
cShape->mBoxRotation = Ogre::Quaternion::IDENTITY; mShape->mBoxRotation = Ogre::Quaternion::IDENTITY;
mHasShape = false; mHasShape = false;
btTriangleMesh* mesh1 = new btTriangleMesh(); btTriangleMesh* mesh1 = new btTriangleMesh();
@ -89,7 +89,7 @@ void ManualBulletShapeLoader::loadResource(Ogre::Resource *resource)
// of the early stages of development. Right now we WANT to catch // of the early stages of development. Right now we WANT to catch
// every error as early and intrusively as possible, as it's most // every error as early and intrusively as possible, as it's most
// likely a sign of incomplete code rather than faulty input. // likely a sign of incomplete code rather than faulty input.
Nif::NIFFile::ptr pnif (Nif::NIFFile::create (resourceName.substr(0, resourceName.length()-7))); Nif::NIFFile::ptr pnif (Nif::NIFFile::create (mResourceName.substr(0, mResourceName.length()-7)));
Nif::NIFFile & nif = *pnif.get (); Nif::NIFFile & nif = *pnif.get ();
if (nif.numRoots() < 1) if (nif.numRoots() < 1)
{ {
@ -108,29 +108,29 @@ void ManualBulletShapeLoader::loadResource(Ogre::Resource *resource)
return; return;
} }
cShape->mHasCollisionNode = hasRootCollisionNode(node); mShape->mHasCollisionNode = hasRootCollisionNode(node);
//do a first pass //do a first pass
handleNode(mesh1, node,0,false,false,false); handleNode(mesh1, node,0,false,false,false);
if(mBoundingBox != NULL) if(mBoundingBox != NULL)
{ {
cShape->mCollisionShape = mBoundingBox; mShape->mCollisionShape = mBoundingBox;
delete mesh1; delete mesh1;
} }
else if (mHasShape && cShape->mCollide) else if (mHasShape && mShape->mCollide)
{ {
cShape->mCollisionShape = new TriangleMeshShape(mesh1,true); mShape->mCollisionShape = new TriangleMeshShape(mesh1,true);
} }
else else
delete mesh1; delete mesh1;
//second pass which create a shape for raycasting. //second pass which create a shape for raycasting.
resourceName = cShape->getName(); mResourceName = mShape->getName();
cShape->mCollide = false; mShape->mCollide = false;
mBoundingBox = NULL; mBoundingBox = NULL;
cShape->mBoxTranslation = Ogre::Vector3(0,0,0); mShape->mBoxTranslation = Ogre::Vector3(0,0,0);
cShape->mBoxRotation = Ogre::Quaternion::IDENTITY; mShape->mBoxRotation = Ogre::Quaternion::IDENTITY;
mHasShape = false; mHasShape = false;
btTriangleMesh* mesh2 = new btTriangleMesh(); btTriangleMesh* mesh2 = new btTriangleMesh();
@ -139,12 +139,12 @@ void ManualBulletShapeLoader::loadResource(Ogre::Resource *resource)
if(mBoundingBox != NULL) if(mBoundingBox != NULL)
{ {
cShape->mRaycastingShape = mBoundingBox; mShape->mRaycastingShape = mBoundingBox;
delete mesh2; delete mesh2;
} }
else if (mHasShape) else if (mHasShape)
{ {
cShape->mRaycastingShape = new TriangleMeshShape(mesh2,true); mShape->mRaycastingShape = new TriangleMeshShape(mesh2,true);
} }
else else
delete mesh2; delete mesh2;
@ -224,18 +224,18 @@ void ManualBulletShapeLoader::handleNode(btTriangleMesh* mesh, const Nif::Node *
} }
} }
if ( (isCollisionNode || (!cShape->mHasCollisionNode && !raycasting)) if ( (isCollisionNode || (!mShape->mHasCollisionNode && !raycasting))
&& (!isMarker || (cShape->mHasCollisionNode && !raycasting))) && (!isMarker || (mShape->mHasCollisionNode && !raycasting)))
{ {
if(node->hasBounds) if(node->hasBounds)
{ {
cShape->mBoxTranslation = node->boundPos; mShape->mBoxTranslation = node->boundPos;
cShape->mBoxRotation = node->boundRot; mShape->mBoxRotation = node->boundRot;
mBoundingBox = new btBoxShape(getbtVector(node->boundXYZ)); mBoundingBox = new btBoxShape(getbtVector(node->boundXYZ));
} }
else if(node->recType == Nif::RC_NiTriShape) else if(node->recType == Nif::RC_NiTriShape)
{ {
cShape->mCollide = !(flags&0x800); mShape->mCollide = !(flags&0x800);
handleNiTriShape(mesh, static_cast<const Nif::NiTriShape*>(node), flags, node->getWorldTransform(), raycasting); handleNiTriShape(mesh, static_cast<const Nif::NiTriShape*>(node), flags, node->getWorldTransform(), raycasting);
} }
} }

@ -50,7 +50,13 @@ namespace NifBullet
class ManualBulletShapeLoader : public OEngine::Physic::BulletShapeLoader class ManualBulletShapeLoader : public OEngine::Physic::BulletShapeLoader
{ {
public: public:
ManualBulletShapeLoader():resourceGroup("General"){} ManualBulletShapeLoader()
: mShape(NULL)
, mBoundingBox(NULL)
, mHasShape(false)
{
}
virtual ~ManualBulletShapeLoader(); virtual ~ManualBulletShapeLoader();
void warn(const std::string &msg) void warn(const std::string &msg)
@ -94,10 +100,9 @@ private:
*/ */
void handleNiTriShape(btTriangleMesh* mesh, const Nif::NiTriShape *shape, int flags, const Ogre::Matrix4 &transform, bool raycasting); void handleNiTriShape(btTriangleMesh* mesh, const Nif::NiTriShape *shape, int flags, const Ogre::Matrix4 &transform, bool raycasting);
std::string resourceName; std::string mResourceName;
std::string resourceGroup;
OEngine::Physic::BulletShape* cShape;//current shape OEngine::Physic::BulletShape* mShape;//current shape
btBoxShape *mBoundingBox; btBoxShape *mBoundingBox;
bool mHasShape; bool mHasShape;

@ -30,7 +30,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
namespace ICS namespace ICS
{ {
Control::Control(const std::string name, bool autoChangeDirectionOnLimitsAfterStop, bool autoReverseToInitialValue Control::Control(const std::string& name, bool autoChangeDirectionOnLimitsAfterStop, bool autoReverseToInitialValue
, float initialValue, float stepSize, float stepsPerSeconds, bool axisBindable) , float initialValue, float stepSize, float stepsPerSeconds, bool axisBindable)
: mName(name) : mName(name)
, mValue(initialValue) , mValue(initialValue)

@ -35,7 +35,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
namespace ICS namespace ICS
{ {
class DllExport Control class DllExport Control
{ {
public: public:
@ -44,7 +44,7 @@ namespace ICS
DECREASE = -1, STOP = 0, INCREASE = 1 DECREASE = -1, STOP = 0, INCREASE = 1
}; };
Control(const std::string name, bool autoChangeDirectionOnLimitsAfterStop = false, bool autoReverseToInitialValue = false, float initialValue = 0.5, float stepSize = 0.1, float stepsPerSeconds = 2.0, bool axisBindable = true); Control(const std::string& name, bool autoChangeDirectionOnLimitsAfterStop = false, bool autoReverseToInitialValue = false, float initialValue = 0.5, float stepSize = 0.1, float stepsPerSeconds = 2.0, bool axisBindable = true);
~Control(); ~Control();
void setChangingDirection(ControlChangingDirection direction); void setChangingDirection(ControlChangingDirection direction);
@ -104,4 +104,4 @@ namespace ICS
} }
#endif #endif

@ -31,7 +31,6 @@ namespace SFO
typedef std::map<std::string, SDL_Cursor*> CursorMap; typedef std::map<std::string, SDL_Cursor*> CursorMap;
CursorMap mCursorMap; CursorMap mCursorMap;
SDL_Cursor* mDebugCursor;
std::string mCurrentCursor; std::string mCurrentCursor;
bool mEnabled; bool mEnabled;
bool mInitialized; bool mInitialized;

@ -293,7 +293,7 @@ namespace BtOgre {
{ {
const Ogre::Vector3 sz = getSize(); const Ogre::Vector3 sz = getSize();
assert((sz.x > 0.0) && (sz.y > 0.0) && (sz.y > 0.0) && assert((sz.x > 0.0) && (sz.y > 0.0) && (sz.z > 0.0) &&
("Size of box must be greater than zero on all axes")); ("Size of box must be greater than zero on all axes"));
btBoxShape* shape = new btBoxShape(Convert::toBullet(sz * 0.5)); btBoxShape* shape = new btBoxShape(Convert::toBullet(sz * 0.5));
@ -308,7 +308,7 @@ namespace BtOgre {
{ {
const Ogre::Vector3 sz = getSize(); const Ogre::Vector3 sz = getSize();
assert((sz.x > 0.0) && (sz.y > 0.0) && (sz.y > 0.0) && assert((sz.x > 0.0) && (sz.y > 0.0) && (sz.z > 0.0) &&
("Size of Cylinder must be greater than zero on all axes")); ("Size of Cylinder must be greater than zero on all axes"));
btCylinderShape* shape = new btCylinderShapeX(Convert::toBullet(sz * 0.5)); btCylinderShape* shape = new btCylinderShapeX(Convert::toBullet(sz * 0.5));

@ -150,7 +150,7 @@ namespace Physic
void PhysicActor::enableCollisionBody() void PhysicActor::enableCollisionBody()
{ {
mEngine->dynamicsWorld->addRigidBody(mBody); mEngine->dynamicsWorld->addRigidBody(mBody,CollisionType_Actor,CollisionType_World|CollisionType_HeightMap);
} }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -178,6 +178,7 @@ namespace Physic
PhysicEngine::PhysicEngine(BulletShapeLoader* shapeLoader) : PhysicEngine::PhysicEngine(BulletShapeLoader* shapeLoader) :
mDebugActive(0) mDebugActive(0)
, mSceneMgr(NULL)
{ {
// Set up the collision configuration and dispatcher // Set up the collision configuration and dispatcher
collisionConfiguration = new btDefaultCollisionConfiguration(); collisionConfiguration = new btDefaultCollisionConfiguration();
@ -620,7 +621,6 @@ namespace Physic
std::string name = ""; std::string name = "";
float d = -1; float d = -1;
float d1 = 10000.;
btCollisionWorld::ClosestRayResultCallback resultCallback1(from, to); btCollisionWorld::ClosestRayResultCallback resultCallback1(from, to);
if(raycastingObjectOnly) if(raycastingObjectOnly)
resultCallback1.m_collisionFilterMask = CollisionType_Raycasting; resultCallback1.m_collisionFilterMask = CollisionType_Raycasting;
@ -633,8 +633,7 @@ namespace Physic
if (resultCallback1.hasHit()) if (resultCallback1.hasHit())
{ {
name = static_cast<const RigidBody&>(*resultCallback1.m_collisionObject).mName; name = static_cast<const RigidBody&>(*resultCallback1.m_collisionObject).mName;
d1 = resultCallback1.m_closestHitFraction; d = resultCallback1.m_closestHitFraction;;
d = d1;
} }
return std::pair<std::string,float>(name,d); return std::pair<std::string,float>(name,d);

@ -91,7 +91,11 @@ public:
mRenderSystem(nullptr), mRenderSystem(nullptr),
mIsInitialise(false), mIsInitialise(false),
mManualRender(false), mManualRender(false),
mCountBatch(0) mCountBatch(0),
mVertexProgramNoTexture(NULL),
mFragmentProgramNoTexture(NULL),
mVertexProgramOneTexture(NULL),
mFragmentProgramOneTexture(NULL)
{ {
} }

@ -1,75 +0,0 @@
#ifndef OENGINE_INPUT_DISPATCHMAP_H
#define OENGINE_INPUT_DISPATCHMAP_H
#include <set>
#include <map>
#include <cassert>
namespace OEngine {
namespace Input {
/**
DispatchMap is a simple connection system that connects incomming
signals with outgoing signals.
The signals can be connected one-to-one, many-to-one, one-to-many
or many-to-many.
The dispatch map is completely system agnostic. It is a pure data
structure and all signals are just integer indices. It does not
delegate any actions, but used together with Dispatcher it can be
used to build an event system.
*/
struct DispatchMap
{
typedef std::set<int> OutList;
typedef std::map<int, OutList> InMap;
typedef OutList::iterator Oit;
typedef InMap::iterator Iit;
InMap map;
void bind(int in, int out)
{
map[in].insert(out);
}
void unbind(int in, int out)
{
Iit it = map.find(in);
if(it != map.end())
{
it->second.erase(out);
// If there are no more elements, then remove the entire list
if(it->second.empty())
map.erase(it);
}
}
/// Check if a given input is bound to anything
bool isBound(int in) const
{
return map.find(in) != map.end();
}
/**
Get the list of outputs bound to the given input. Only call this
on inputs that you know are bound to something.
The returned set is only intended for immediate iteration. Do not
store references to it.
*/
const OutList &getList(int in) const
{
assert(isBound(in));
InMap::const_iterator it = map.find(in);
assert(it != map.end());
const OutList &out = it->second;
assert(!out.empty());
return out;
}
};
}}
#endif

@ -1,78 +0,0 @@
#ifndef OENGINE_INPUT_DISPATCHER_H
#define OENGINE_INPUT_DISPATCHER_H
#include <cassert>
#include <iostream>
#include <mangle/input/event.hpp>
#include "dispatch_map.hpp"
#include "func_binder.hpp"
namespace OEngine {
namespace Input {
struct Dispatcher : Mangle::Input::Event
{
DispatchMap map;
FuncBinder funcs;
/**
Constructor. Takes the number of actions and passes it to
FuncBinder.
*/
Dispatcher(int actions) : funcs(actions) {}
void bind(unsigned int action, int key)
{
assert(action < funcs.getSize());
map.bind(key, action);
}
void unbind(unsigned int action, int key)
{
assert(action < funcs.getSize());
map.unbind(key, action);
}
bool isBound(int key) const { return map.isBound(key); }
/**
Instigate an event. It is translated through the dispatch map and
sent to the function bindings.
*/
typedef DispatchMap::OutList _O;
void event(Type type, int index, const void* p)
{
// No bindings, nothing happens
if(!isBound(index))
return;
// Get the mapped actions and execute them
const _O &list = map.getList(index);
_O::const_iterator it;
for(it = list.begin(); it != list.end(); it++)
{
//catch exceptions thrown in the input handlers so that pressing a key
//doesn't cause OpenMw to crash
try
{
funcs.call(*it, p);
}
catch(const std::exception& e)
{
std::cerr << "Exception in input handler: " << e.what() << std::endl;
}
catch(...)
{
std::cerr << "Unknown exception in input handler" << std::endl;
}
}
}
};
// This helps us play nice with Mangle's EventPtr, but it should
// really be defined for all the classes in OEngine.
typedef boost::shared_ptr<Dispatcher> DispatcherPtr;
}}
#endif

@ -1,106 +0,0 @@
#ifndef OENGINE_INPUT_FUNCBINDER_H
#define OENGINE_INPUT_FUNCBINDER_H
#include <string>
#include <vector>
#include <boost/function.hpp>
#include <cassert>
namespace OEngine {
namespace Input {
/**
An Action defines the user defined action corresponding to a
binding.
The first parameter is the action index that invoked this call. You
can assign the same function to multiple actions, and this can help
you keep track of which action was invoked.
The second parameter is an optional user-defined parameter,
represented by a void pointer. In many cases it is practical to
point this to temporaries (stack values), so make sure not to store
permanent references to it unless you've planning for this on the
calling side as well.
*/
typedef boost::function<void(int,const void*)> Action;
/**
The FuncBinder is a simple struct that binds user-defined indices
to functions. It is useful for binding eg. keyboard events to
specific actions in your program, but can potentially have many
other uses as well.
*/
class FuncBinder
{
struct FuncBinding
{
std::string name;
Action action;
};
std::vector<FuncBinding> bindings;
public:
/**
Constructor. Initialize the struct by telling it how many action
indices you intend to bind.
The indices you use should be 0 <= i < number.
*/
FuncBinder(int number) : bindings(number) {}
unsigned int getSize() { return bindings.size(); }
/**
Bind an action to an index.
*/
void bind(int index, Action action, const std::string &name="")
{
assert(index >= 0 && index < (int)bindings.size());
FuncBinding &fb = bindings[index];
fb.action = action;
fb.name = name;
}
/**
Unbind an index, reverting a previous bind().
*/
void unbind(int index)
{
assert(index >= 0 && index < (int)bindings.size());
bindings[index] = FuncBinding();
}
/**
Call a specific action. Takes an optional parameter that is
passed to the action.
*/
void call(int index, const void *p=NULL) const
{
assert(index >= 0 && index < (int)bindings.size());
const FuncBinding &fb = bindings[index];
if(fb.action) fb.action(index, p);
}
/// Check if a given index is bound to anything
bool isBound(int index) const
{
assert(index >= 0 && index < (int)bindings.size());
return !bindings[index].action.empty();
}
/// Return the name associated with an action (empty if not bound)
const std::string &getName(int index) const
{
assert(index >= 0 && index < (int)bindings.size());
return bindings[index].name;
}
};
}}
#endif

@ -1,46 +0,0 @@
#ifndef OENGINE_INPUT_POLLER_H
#define OENGINE_INPUT_POLLER_H
#include "dispatch_map.hpp"
#include <mangle/input/driver.hpp>
namespace OEngine {
namespace Input {
/** The poller is used to check (poll) for keys rather than waiting
for events. */
struct Poller
{
DispatchMap map;
Mangle::Input::Driver &input;
Poller(Mangle::Input::Driver &drv)
: input(drv) {}
/** Bind or unbind a given action with a key. The action is the first
parameter, the key is the second.
*/
void bind(int in, int out) { map.bind(in, out); }
void unbind(int in, int out) { map.unbind(in, out); }
bool isBound(int in) const { return map.isBound(in); }
/// Check whether a given action button is currently pressed.
typedef DispatchMap::OutList _O;
bool isDown(int index) const
{
// No bindings, no action
if(!isBound(index))
return false;
// Get all the keys bound to this action, and check them.
const _O &list = map.getList(index);
_O::const_iterator it;
for(it = list.begin(); it != list.end(); it++)
// If there's any match, we're good to go.
if(input.isDown(*it)) return true;
return false;
}
};
}}
#endif

@ -1,18 +0,0 @@
GCC=g++
all: funcbind_test dispatch_map_test sdl_driver_test sdl_binder_test
funcbind_test: funcbind_test.cpp ../func_binder.hpp
$(GCC) $< -o $@
dispatch_map_test: dispatch_map_test.cpp ../dispatch_map.hpp
$(GCC) $< -o $@
sdl_driver_test: sdl_driver_test.cpp
$(GCC) $< ../../mangle/input/servers/sdl_driver.cpp -o $@ -I/usr/include/SDL/ -lSDL -I../../
sdl_binder_test: sdl_binder_test.cpp
$(GCC) $< ../../mangle/input/servers/sdl_driver.cpp -o $@ -I/usr/include/SDL/ -lSDL -I../../
clean:
rm *_test

@ -1,54 +0,0 @@
#include <iostream>
using namespace std;
#include "../dispatch_map.hpp"
using namespace OEngine::Input;
typedef DispatchMap::OutList OutList;
typedef OutList::const_iterator Cit;
void showList(const DispatchMap::OutList &out)
{
for(Cit it = out.begin();
it != out.end(); it++)
{
cout << " " << *it << endl;
}
}
void showAll(DispatchMap &map)
{
cout << "\nPrinting everything:\n";
for(DispatchMap::Iit it = map.map.begin();
it != map.map.end(); it++)
{
cout << it->first << ":\n";
showList(map.getList(it->first));
}
}
int main()
{
cout << "Testing the dispatch map\n";
DispatchMap dsp;
dsp.bind(1,9);
dsp.bind(2,-5);
dsp.bind(2,9);
dsp.bind(3,10);
dsp.bind(3,12);
dsp.bind(3,10);
showAll(dsp);
dsp.unbind(1,9);
dsp.unbind(5,8);
dsp.unbind(3,11);
dsp.unbind(3,12);
dsp.unbind(3,12);
showAll(dsp);
return 0;
}

@ -1,47 +0,0 @@
#include <iostream>
using namespace std;
#include "../func_binder.hpp"
void f1(int i, const void *p)
{
cout << " F1 i=" << i << endl;
if(p)
cout << " Got a nice gift: "
<< *((const float*)p) << endl;
}
void f2(int i, const void *p)
{
cout << " F2 i=" << i << endl;
}
using namespace OEngine::Input;
int main()
{
cout << "This will test the function binding system\n";
FuncBinder bnd(5);
bnd.bind(0, &f1, "This is action 1");
bnd.bind(1, &f2);
bnd.bind(2, &f1, "This is action 3");
bnd.bind(3, &f2, "This is action 4");
bnd.unbind(2);
for(int i=0; i<5; i++)
{
cout << "Calling " << i << ": '" << bnd.getName(i) << "'\n";
bnd.call(i);
if(!bnd.isBound(i)) cout << " (not bound)\n";
}
cout << "\nCalling with parameter:\n";
float f = 3.1415;
bnd.call(0, &f);
return 0;
}

@ -1,18 +0,0 @@
Testing the dispatch map
Printing everything:
1:
9
2:
-5
9
3:
10
12
Printing everything:
2:
-5
9
3:
10

@ -1,15 +0,0 @@
This will test the function binding system
Calling 0: 'This is action 1'
F1 i=0
Calling 1: ''
F2 i=1
Calling 2: ''
(not bound)
Calling 3: 'This is action 4'
F2 i=3
Calling 4: ''
(not bound)
Calling with parameter:
F1 i=0
Got a nice gift: 3.1415

@ -1,4 +0,0 @@
Hold the Q key to quit:
You are running in script mode, aborting. Run this test with a parameter (any at all) to test the input loop properly
Bye bye!

@ -1,4 +0,0 @@
Hold the Q key to quit:
You are running in script mode, aborting. Run this test with a parameter (any at all) to test the input loop properly
Bye bye!

@ -1,71 +0,0 @@
#include <iostream>
#include <mangle/input/servers/sdl_driver.hpp>
#include <SDL.h>
#include "../dispatcher.hpp"
#include "../poller.hpp"
using namespace std;
using namespace Mangle::Input;
using namespace OEngine::Input;
enum Actions
{
A_Quit,
A_Left,
A_Right,
A_LAST
};
bool quit=false;
void doExit(int,const void*)
{
quit = true;
}
void goLeft(int,const void*)
{
cout << "Going left\n";
}
int main(int argc, char** argv)
{
SDL_Init(SDL_INIT_VIDEO);
SDL_SetVideoMode(640, 480, 0, SDL_SWSURFACE);
SDLDriver input;
Dispatcher *disp = new Dispatcher(A_LAST);
Poller poll(input);
input.setEvent(EventPtr(disp));
disp->funcs.bind(A_Quit, &doExit);
disp->funcs.bind(A_Left, &goLeft);
disp->bind(A_Quit, SDLK_q);
disp->bind(A_Left, SDLK_a);
disp->bind(A_Left, SDLK_LEFT);
poll.bind(A_Right, SDLK_d);
poll.bind(A_Right, SDLK_RIGHT);
cout << "Hold the Q key to quit:\n";
//input->setEvent(&mycb);
while(!quit)
{
input.capture();
if(poll.isDown(A_Right))
cout << "We're going right!\n";
SDL_Delay(20);
if(argc == 1)
{
cout << "You are running in script mode, aborting. Run this test with a parameter (any at all) to test the input loop properly\n";
break;
}
}
cout << "\nBye bye!\n";
SDL_Quit();
return 0;
}

@ -1,31 +0,0 @@
#include <iostream>
#include <mangle/input/servers/sdl_driver.hpp>
#include <SDL.h>
using namespace std;
using namespace Mangle::Input;
int main(int argc, char** argv)
{
SDL_Init(SDL_INIT_VIDEO);
SDL_SetVideoMode(640, 480, 0, SDL_SWSURFACE);
SDLDriver input;
cout << "Hold the Q key to quit:\n";
//input->setEvent(&mycb);
while(!input.isDown(SDLK_q))
{
input.capture();
SDL_Delay(20);
if(argc == 1)
{
cout << "You are running in script mode, aborting. Run this test with a parameter (any at all) to test the input loop properly\n";
break;
}
}
cout << "\nBye bye!\n";
SDL_Quit();
return 0;
}

@ -1,18 +0,0 @@
#!/bin/bash
make || exit
mkdir -p output
PROGS=*_test
for a in $PROGS; do
if [ -f "output/$a.out" ]; then
echo "Running $a:"
./$a | diff output/$a.out -
else
echo "Creating $a.out"
./$a > "output/$a.out"
git add "output/$a.out"
fi
done

@ -108,12 +108,12 @@ void OgreRenderer::loadPlugins()
void OgreRenderer::unloadPlugins() void OgreRenderer::unloadPlugins()
{ {
std::vector<Ogre::ParticleEmitterFactory*>::iterator ei; std::vector<Ogre::ParticleEmitterFactory*>::iterator ei;
for(ei = mEmitterFactories.begin();ei != mEmitterFactories.end();ei++) for(ei = mEmitterFactories.begin();ei != mEmitterFactories.end();++ei)
OGRE_DELETE (*ei); OGRE_DELETE (*ei);
mEmitterFactories.clear(); mEmitterFactories.clear();
std::vector<Ogre::ParticleAffectorFactory*>::iterator ai; std::vector<Ogre::ParticleAffectorFactory*>::iterator ai;
for(ai = mAffectorFactories.begin();ai != mAffectorFactories.end();ai++) for(ai = mAffectorFactories.begin();ai != mAffectorFactories.end();++ai)
OGRE_DELETE (*ai); OGRE_DELETE (*ai);
mAffectorFactories.clear(); mAffectorFactories.clear();

Loading…
Cancel
Save