forked from mirror/openmw-tes3mp
Some changes suggested by cppcheck
This commit is contained in:
parent
0923306404
commit
7dc30a01cd
92 changed files with 214 additions and 750 deletions
|
@ -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;
|
||||||
|
|
2
extern/oics/ICSControl.cpp
vendored
2
extern/oics/ICSControl.cpp
vendored
|
@ -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)
|
||||||
|
|
6
extern/oics/ICSControl.h
vendored
6
extern/oics/ICSControl.h
vendored
|
@ -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
|
||||||
|
|
1
extern/sdl4ogre/sdlcursormanager.hpp
vendored
1
extern/sdl4ogre/sdlcursormanager.hpp
vendored
|
@ -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…
Reference in a new issue