forked from mirror/openmw-tes3mp
Fix for VS2010-Debug: manual assignment operator and cctor added for MMWorld::ContainerStoreIterator
This commit is contained in:
parent
ee621245bb
commit
18d4cdb2ac
2 changed files with 48 additions and 0 deletions
|
@ -555,6 +555,11 @@ MWWorld::ContainerStoreIterator::ContainerStoreIterator (ContainerStore *contain
|
||||||
MWWorld::ContainerStoreIterator::ContainerStoreIterator (ContainerStore *container, MWWorld::CellRefList<ESM::Weapon>::List::iterator iterator)
|
MWWorld::ContainerStoreIterator::ContainerStoreIterator (ContainerStore *container, MWWorld::CellRefList<ESM::Weapon>::List::iterator iterator)
|
||||||
: mType(MWWorld::ContainerStore::Type_Weapon), mMask(MWWorld::ContainerStore::Type_All), mContainer(container), mWeapon(iterator){}
|
: mType(MWWorld::ContainerStore::Type_Weapon), mMask(MWWorld::ContainerStore::Type_All), mContainer(container), mWeapon(iterator){}
|
||||||
|
|
||||||
|
MWWorld::ContainerStoreIterator::ContainerStoreIterator( const ContainerStoreIterator& src )
|
||||||
|
{
|
||||||
|
copy(src);
|
||||||
|
}
|
||||||
|
|
||||||
void MWWorld::ContainerStoreIterator::incType()
|
void MWWorld::ContainerStoreIterator::incType()
|
||||||
{
|
{
|
||||||
if (mType==0)
|
if (mType==0)
|
||||||
|
@ -807,6 +812,41 @@ const MWWorld::ContainerStore *MWWorld::ContainerStoreIterator::getContainerStor
|
||||||
return mContainer;
|
return mContainer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MWWorld::ContainerStoreIterator::copy(const ContainerStoreIterator& src)
|
||||||
|
{
|
||||||
|
mType = src.mType;
|
||||||
|
mMask = src.mMask;
|
||||||
|
mContainer = src.mContainer;
|
||||||
|
mPtr = src.mPtr;
|
||||||
|
|
||||||
|
switch (mType)
|
||||||
|
{
|
||||||
|
case MWWorld::ContainerStore::Type_Potion: mPotion = src.mPotion; break;
|
||||||
|
case MWWorld::ContainerStore::Type_Apparatus: mApparatus = src.mApparatus; break;
|
||||||
|
case MWWorld::ContainerStore::Type_Armor: mArmor = src.mArmor; break;
|
||||||
|
case MWWorld::ContainerStore::Type_Book: mBook = src.mBook; break;
|
||||||
|
case MWWorld::ContainerStore::Type_Clothing: mClothing = src.mClothing; break;
|
||||||
|
case MWWorld::ContainerStore::Type_Ingredient: mIngredient = src.mIngredient; break;
|
||||||
|
case MWWorld::ContainerStore::Type_Light: mLight = src.mLight; break;
|
||||||
|
case MWWorld::ContainerStore::Type_Lockpick: mLockpick = src.mLockpick; break;
|
||||||
|
case MWWorld::ContainerStore::Type_Miscellaneous: mMiscellaneous = src.mMiscellaneous; break;
|
||||||
|
case MWWorld::ContainerStore::Type_Probe: mProbe = src.mProbe; break;
|
||||||
|
case MWWorld::ContainerStore::Type_Repair: mRepair = src.mRepair; break;
|
||||||
|
case MWWorld::ContainerStore::Type_Weapon: mWeapon = src.mWeapon; break;
|
||||||
|
case -1: break;
|
||||||
|
default: assert(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MWWorld::ContainerStoreIterator& MWWorld::ContainerStoreIterator::operator=( const ContainerStoreIterator& rhs )
|
||||||
|
{
|
||||||
|
if (this!=&rhs)
|
||||||
|
{
|
||||||
|
copy(rhs);
|
||||||
|
}
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
bool MWWorld::operator== (const ContainerStoreIterator& left, const ContainerStoreIterator& right)
|
bool MWWorld::operator== (const ContainerStoreIterator& left, const ContainerStoreIterator& right)
|
||||||
{
|
{
|
||||||
return left.isEqual (right);
|
return left.isEqual (right);
|
||||||
|
|
|
@ -143,6 +143,10 @@ namespace MWWorld
|
||||||
MWWorld::CellRefList<ESM::Repair>::List::iterator mRepair;
|
MWWorld::CellRefList<ESM::Repair>::List::iterator mRepair;
|
||||||
MWWorld::CellRefList<ESM::Weapon>::List::iterator mWeapon;
|
MWWorld::CellRefList<ESM::Weapon>::List::iterator mWeapon;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
ContainerStoreIterator(const ContainerStoreIterator& src);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
ContainerStoreIterator (ContainerStore *container);
|
ContainerStoreIterator (ContainerStore *container);
|
||||||
|
@ -165,6 +169,8 @@ namespace MWWorld
|
||||||
ContainerStoreIterator (ContainerStore *container, MWWorld::CellRefList<ESM::Repair>::List::iterator);
|
ContainerStoreIterator (ContainerStore *container, MWWorld::CellRefList<ESM::Repair>::List::iterator);
|
||||||
ContainerStoreIterator (ContainerStore *container, MWWorld::CellRefList<ESM::Weapon>::List::iterator);
|
ContainerStoreIterator (ContainerStore *container, MWWorld::CellRefList<ESM::Weapon>::List::iterator);
|
||||||
|
|
||||||
|
void copy (const ContainerStoreIterator& src);
|
||||||
|
|
||||||
void incType();
|
void incType();
|
||||||
|
|
||||||
void nextType();
|
void nextType();
|
||||||
|
@ -189,6 +195,8 @@ namespace MWWorld
|
||||||
|
|
||||||
ContainerStoreIterator operator++ (int);
|
ContainerStoreIterator operator++ (int);
|
||||||
|
|
||||||
|
ContainerStoreIterator& operator= (const ContainerStoreIterator& rhs);
|
||||||
|
|
||||||
bool isEqual (const ContainerStoreIterator& iter) const;
|
bool isEqual (const ContainerStoreIterator& iter) const;
|
||||||
|
|
||||||
int getType() const;
|
int getType() const;
|
||||||
|
|
Loading…
Reference in a new issue