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)
|
||||
: 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()
|
||||
{
|
||||
if (mType==0)
|
||||
|
@ -807,6 +812,41 @@ const MWWorld::ContainerStore *MWWorld::ContainerStoreIterator::getContainerStor
|
|||
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)
|
||||
{
|
||||
return left.isEqual (right);
|
||||
|
|
|
@ -143,6 +143,10 @@ namespace MWWorld
|
|||
MWWorld::CellRefList<ESM::Repair>::List::iterator mRepair;
|
||||
MWWorld::CellRefList<ESM::Weapon>::List::iterator mWeapon;
|
||||
|
||||
public:
|
||||
|
||||
ContainerStoreIterator(const ContainerStoreIterator& src);
|
||||
|
||||
private:
|
||||
|
||||
ContainerStoreIterator (ContainerStore *container);
|
||||
|
@ -165,6 +169,8 @@ namespace MWWorld
|
|||
ContainerStoreIterator (ContainerStore *container, MWWorld::CellRefList<ESM::Repair>::List::iterator);
|
||||
ContainerStoreIterator (ContainerStore *container, MWWorld::CellRefList<ESM::Weapon>::List::iterator);
|
||||
|
||||
void copy (const ContainerStoreIterator& src);
|
||||
|
||||
void incType();
|
||||
|
||||
void nextType();
|
||||
|
@ -189,6 +195,8 @@ namespace MWWorld
|
|||
|
||||
ContainerStoreIterator operator++ (int);
|
||||
|
||||
ContainerStoreIterator& operator= (const ContainerStoreIterator& rhs);
|
||||
|
||||
bool isEqual (const ContainerStoreIterator& iter) const;
|
||||
|
||||
int getType() const;
|
||||
|
|
Loading…
Reference in a new issue