mirror of
https://github.com/OpenMW/openmw.git
synced 2025-05-30 08:11:32 +00:00
ESM::Dialogue Lua bindings 6
This commit is contained in:
parent
1e36b17679
commit
c1639e54b1
1 changed files with 20 additions and 2 deletions
|
@ -38,7 +38,11 @@ namespace
|
|||
DecoratedIterator mIter;
|
||||
|
||||
public:
|
||||
using iterator_category = DecoratedIterator::iterator_category;
|
||||
using value_type = DecoratedIterator::value_type;
|
||||
using difference_type = DecoratedIterator::difference_type;
|
||||
using pointer = DecoratedIterator::pointer;
|
||||
using reference = DecoratedIterator::reference;
|
||||
|
||||
FilteredDialogueIterator(const DecoratedIterator& decoratedIterator)
|
||||
: mIter{ decoratedIterator }
|
||||
|
@ -64,14 +68,28 @@ namespace
|
|||
return iter;
|
||||
}
|
||||
|
||||
FilteredDialogueIterator& operator+=(difference_type advance)
|
||||
{
|
||||
while (advance > 0)
|
||||
{
|
||||
std::advance(mIter, 1);
|
||||
if (mIter->mType != filter)
|
||||
{
|
||||
--advance;
|
||||
}
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool operator==(const FilteredDialogueIterator& x) const { return mIter == x.mIter; }
|
||||
|
||||
bool operator!=(const FilteredDialogueIterator& x) const { return not(*this == x); }
|
||||
|
||||
const ESM::Dialogue& operator*() const { return *mIter; }
|
||||
const value_type& operator*() const { return *mIter; }
|
||||
|
||||
const ESM::Dialogue* operator->() const { return &(*mIter); }
|
||||
const value_type* operator->() const { return &(*mIter); }
|
||||
};
|
||||
|
||||
using iterator = FilteredDialogueIterator;
|
||||
|
||||
const ESM::Dialogue* search(const ESM::RefId& id) const
|
||||
|
|
Loading…
Reference in a new issue