1
0
Fork 0
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:
trav5 2024-04-20 19:53:56 +02:00
parent 1e36b17679
commit c1639e54b1

View file

@ -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