mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-20 15:40:32 +00:00
Merge branch 'master' into 'OpenCS_Bug6017'
# Conflicts: # CHANGELOG.md
This commit is contained in:
commit
c372c239a6
@ -3,6 +3,8 @@
|
||||
|
||||
Bug #3737: Scripts from The Underground 2 .esp do not play (all patched versions)
|
||||
Bug #3846: Strings starting with "-" fail to compile if not enclosed in quotes
|
||||
Bug #3905: Great House Dagoth issues
|
||||
Bug #5120: Scripted object spawning updates physics system
|
||||
Bug #5379: Wandering NPCs falling through cantons
|
||||
Bug #5453: Magic effect VFX are offset for creatures
|
||||
Bug #5483: AutoCalc flag is not used to calculate spells cost
|
||||
@ -15,9 +17,8 @@
|
||||
Bug #6129: Player avatar not displayed correctly for large window sizes when GUI scaling active
|
||||
Bug #6131: Item selection in the avatar window not working correctly for large window sizes
|
||||
Bug #6133: Cannot reliably sneak or steal in the sight of the NPCs siding with player
|
||||
Task #6017: Separate persistent and temporary cell references when saving
|
||||
|
||||
|
||||
Feature #6017: Separate persistent and temporary cell references when saving
|
||||
|
||||
0.47.0
|
||||
------
|
||||
|
||||
|
@ -39,6 +39,11 @@ namespace MWClass
|
||||
}
|
||||
|
||||
void Activator::insertObject(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated) const
|
||||
{
|
||||
insertObjectPhysics(ptr, model, rotation, physics, skipAnimated);
|
||||
}
|
||||
|
||||
void Activator::insertObjectPhysics(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated) const
|
||||
{
|
||||
if(!model.empty())
|
||||
physics.addObject(ptr, model, rotation, MWPhysics::CollisionType_World, skipAnimated);
|
||||
|
@ -19,6 +19,8 @@ namespace MWClass
|
||||
|
||||
void insertObject(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated = false) const override;
|
||||
|
||||
void insertObjectPhysics(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated) const override;
|
||||
|
||||
std::string getName (const MWWorld::ConstPtr& ptr) const override;
|
||||
///< \return name or ID; can return an empty string.
|
||||
|
||||
|
@ -107,6 +107,11 @@ namespace MWClass
|
||||
}
|
||||
|
||||
void Container::insertObject(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated) const
|
||||
{
|
||||
insertObjectPhysics(ptr, model, rotation, physics, skipAnimated);
|
||||
}
|
||||
|
||||
void Container::insertObjectPhysics(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated) const
|
||||
{
|
||||
if(!model.empty())
|
||||
physics.addObject(ptr, model, rotation, MWPhysics::CollisionType_World, skipAnimated);
|
||||
|
@ -43,6 +43,7 @@ namespace MWClass
|
||||
///< Add reference into a cell for rendering
|
||||
|
||||
void insertObject(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated = false) const override;
|
||||
void insertObjectPhysics(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated = false) const override;
|
||||
|
||||
std::string getName (const MWWorld::ConstPtr& ptr) const override;
|
||||
///< \return name or ID; can return an empty string.
|
||||
|
@ -57,8 +57,7 @@ namespace MWClass
|
||||
|
||||
void Door::insertObject(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated) const
|
||||
{
|
||||
if(!model.empty())
|
||||
physics.addObject(ptr, model, rotation, MWPhysics::CollisionType_Door, skipAnimated);
|
||||
insertObjectPhysics(ptr, model, rotation, physics, skipAnimated);
|
||||
|
||||
// Resume the door's opening/closing animation if it wasn't finished
|
||||
if (ptr.getRefData().getCustomData())
|
||||
@ -71,6 +70,12 @@ namespace MWClass
|
||||
}
|
||||
}
|
||||
|
||||
void Door::insertObjectPhysics(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated) const
|
||||
{
|
||||
if(!model.empty())
|
||||
physics.addObject(ptr, model, rotation, MWPhysics::CollisionType_Door, skipAnimated);
|
||||
}
|
||||
|
||||
bool Door::isDoor() const
|
||||
{
|
||||
return true;
|
||||
|
@ -19,6 +19,7 @@ namespace MWClass
|
||||
///< Add reference into a cell for rendering
|
||||
|
||||
void insertObject(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated = false) const override;
|
||||
void insertObjectPhysics(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated = false) const override;
|
||||
|
||||
bool isDoor() const override;
|
||||
|
||||
|
@ -39,9 +39,7 @@ namespace MWClass
|
||||
ptr.get<ESM::Light>();
|
||||
assert (ref->mBase != nullptr);
|
||||
|
||||
// TODO: add option somewhere to enable collision for placeable objects
|
||||
if (!model.empty() && (ref->mBase->mData.mFlags & ESM::Light::Carry) == 0)
|
||||
physics.addObject(ptr, model, rotation, MWPhysics::CollisionType_World, skipAnimated);
|
||||
insertObjectPhysics(ptr, model, rotation, physics, skipAnimated);
|
||||
|
||||
if (!ref->mBase->mSound.empty() && !(ref->mBase->mData.mFlags & ESM::Light::OffDefault))
|
||||
MWBase::Environment::get().getSoundManager()->playSound3D(ptr, ref->mBase->mSound, 1.0, 1.0,
|
||||
@ -49,6 +47,13 @@ namespace MWClass
|
||||
MWSound::PlayMode::Loop);
|
||||
}
|
||||
|
||||
void Light::insertObjectPhysics(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated) const
|
||||
{
|
||||
// TODO: add option somewhere to enable collision for placeable objects
|
||||
if (!model.empty() && (ptr.get<ESM::Light>()->mBase->mData.mFlags & ESM::Light::Carry) == 0)
|
||||
physics.addObject(ptr, model, rotation, MWPhysics::CollisionType_World, skipAnimated);
|
||||
}
|
||||
|
||||
bool Light::useAnim() const
|
||||
{
|
||||
return true;
|
||||
|
@ -15,6 +15,7 @@ namespace MWClass
|
||||
///< Add reference into a cell for rendering
|
||||
|
||||
void insertObject(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated = false) const override;
|
||||
void insertObjectPhysics(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated = false) const override;
|
||||
|
||||
bool useAnim() const override;
|
||||
|
||||
|
@ -24,6 +24,11 @@ namespace MWClass
|
||||
}
|
||||
|
||||
void Static::insertObject(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated) const
|
||||
{
|
||||
insertObjectPhysics(ptr, model, rotation, physics, skipAnimated);
|
||||
}
|
||||
|
||||
void Static::insertObjectPhysics(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated) const
|
||||
{
|
||||
if(!model.empty())
|
||||
physics.addObject(ptr, model, rotation, MWPhysics::CollisionType_World, skipAnimated);
|
||||
|
@ -15,6 +15,7 @@ namespace MWClass
|
||||
///< Add reference into a cell for rendering
|
||||
|
||||
void insertObject(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated = false) const override;
|
||||
void insertObjectPhysics(const MWWorld::Ptr& ptr, const std::string& model, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated = false) const override;
|
||||
|
||||
std::string getName (const MWWorld::ConstPtr& ptr) const override;
|
||||
///< \return name or ID; can return an empty string.
|
||||
|
@ -463,6 +463,8 @@ namespace MWPhysics
|
||||
|
||||
void PhysicsSystem::addObject (const MWWorld::Ptr& ptr, const std::string& mesh, osg::Quat rotation, int collisionType, bool skipAnimated)
|
||||
{
|
||||
if (ptr.mRef->mData.mPhysicsPostponed)
|
||||
return;
|
||||
osg::ref_ptr<Resource::BulletShapeInstance> shapeInstance = mShapeManager->getInstance(mesh);
|
||||
if (!shapeInstance || !shapeInstance->getCollisionShape())
|
||||
return;
|
||||
|
@ -168,6 +168,8 @@ namespace MWScript
|
||||
void execute (Interpreter::Runtime& runtime) override
|
||||
{
|
||||
MWWorld::Ptr ptr = R()(runtime);
|
||||
if(!ptr.isEmpty() && !ptr.mRef->mData.isEnabled())
|
||||
ptr.mRef->mData.mPhysicsPostponed = false;
|
||||
MWBase::Environment::get().getWorld()->enable (ptr);
|
||||
}
|
||||
};
|
||||
|
@ -42,10 +42,19 @@ namespace MWScript
|
||||
|
||||
void execute (Interpreter::Runtime& runtime) override
|
||||
{
|
||||
MWWorld::Ptr from = R()(runtime);
|
||||
MWWorld::Ptr from = R()(runtime, !R::implicit);
|
||||
std::string name = runtime.getStringLiteral (runtime[0].mInteger);
|
||||
runtime.pop();
|
||||
|
||||
if (from.isEmpty())
|
||||
{
|
||||
std::string error = "Missing implicit ref";
|
||||
runtime.getContext().report(error);
|
||||
Log(Debug::Error) << error;
|
||||
runtime.push(0.f);
|
||||
return;
|
||||
}
|
||||
|
||||
if (from.getContainerStore()) // is the object contained?
|
||||
{
|
||||
MWWorld::Ptr container = MWBase::Environment::get().getWorld()->findContainer(from);
|
||||
@ -501,6 +510,7 @@ namespace MWScript
|
||||
pos.rot[0] = pos.rot[1] = 0;
|
||||
pos.rot[2] = osg::DegreesToRadians(zRotDegrees);
|
||||
MWWorld::ManualRef ref(MWBase::Environment::get().getWorld()->getStore(),itemID);
|
||||
ref.getPtr().mRef->mData.mPhysicsPostponed = !ref.getPtr().getClass().isActor();
|
||||
ref.getPtr().getCellRef().setPosition(pos);
|
||||
MWWorld::Ptr placed = MWBase::Environment::get().getWorld()->placeObject(ref.getPtr(),store,pos);
|
||||
placed.getClass().adjustPosition(placed, true);
|
||||
@ -548,6 +558,7 @@ namespace MWScript
|
||||
pos.rot[0] = pos.rot[1] = 0;
|
||||
pos.rot[2] = osg::DegreesToRadians(zRotDegrees);
|
||||
MWWorld::ManualRef ref(MWBase::Environment::get().getWorld()->getStore(),itemID);
|
||||
ref.getPtr().mRef->mData.mPhysicsPostponed = !ref.getPtr().getClass().isActor();
|
||||
ref.getPtr().getCellRef().setPosition(pos);
|
||||
MWWorld::Ptr placed = MWBase::Environment::get().getWorld()->placeObject(ref.getPtr(),store,pos);
|
||||
placed.getClass().adjustPosition(placed, true);
|
||||
@ -588,6 +599,7 @@ namespace MWScript
|
||||
{
|
||||
// create item
|
||||
MWWorld::ManualRef ref(MWBase::Environment::get().getWorld()->getStore(), itemID, 1);
|
||||
ref.getPtr().mRef->mData.mPhysicsPostponed = !ref.getPtr().getClass().isActor();
|
||||
|
||||
MWWorld::Ptr ptr = MWBase::Environment::get().getWorld()->safePlaceObject(ref.getPtr(), actor, actor.getCell(), direction, distance);
|
||||
MWBase::Environment::get().getWorld()->scaleObject(ptr, actor.getCellRef().getScale());
|
||||
|
@ -610,9 +610,17 @@ namespace MWWorld
|
||||
ref.mRefNum.mContentFile = ESM::RefNum::RefNum_NoContentFile;
|
||||
|
||||
// Get each reference in turn
|
||||
ESM::MovedCellRef cMRef;
|
||||
cMRef.mRefNum.mIndex = 0;
|
||||
bool deleted = false;
|
||||
while(mCell->getNextRef(esm[index], ref, deleted))
|
||||
while(mCell->getNextRef(esm[index], ref, deleted, /*ignoreMoves*/true, &cMRef))
|
||||
{
|
||||
if (cMRef.mRefNum.mIndex)
|
||||
{
|
||||
cMRef.mRefNum.mIndex = 0;
|
||||
continue; // ignore refs that are moved
|
||||
}
|
||||
|
||||
// Don't load reference if it was moved to a different cell.
|
||||
ESM::MovedCellRefTracker::const_iterator iter =
|
||||
std::find(mCell->mMovedRefs.begin(), mCell->mMovedRefs.end(), ref.mRefNum);
|
||||
|
@ -35,6 +35,9 @@ namespace MWWorld
|
||||
|
||||
}
|
||||
|
||||
void Class::insertObjectPhysics(const Ptr& ptr, const std::string& mesh, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated) const
|
||||
{}
|
||||
|
||||
bool Class::apply (const MWWorld::Ptr& ptr, const std::string& id, const MWWorld::Ptr& actor) const
|
||||
{
|
||||
return false;
|
||||
|
@ -80,6 +80,7 @@ namespace MWWorld
|
||||
virtual void insertObjectRendering (const Ptr& ptr, const std::string& mesh, MWRender::RenderingInterface& renderingInterface) const;
|
||||
virtual void insertObject(const Ptr& ptr, const std::string& mesh, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated = false) const;
|
||||
///< Add reference into a cell for rendering (default implementation: don't render anything).
|
||||
virtual void insertObjectPhysics(const Ptr& ptr, const std::string& mesh, osg::Quat rotation, MWPhysics::PhysicsSystem& physics, bool skipAnimated = false) const;
|
||||
|
||||
virtual std::string getName (const ConstPtr& ptr) const = 0;
|
||||
///< \return name or ID; can return an empty string.
|
||||
|
@ -31,6 +31,7 @@ namespace MWWorld
|
||||
mChanged = refData.mChanged;
|
||||
mDeletedByContentFile = refData.mDeletedByContentFile;
|
||||
mFlags = refData.mFlags;
|
||||
mPhysicsPostponed = refData.mPhysicsPostponed;
|
||||
|
||||
mAnimationState = refData.mAnimationState;
|
||||
|
||||
@ -44,7 +45,7 @@ namespace MWWorld
|
||||
}
|
||||
|
||||
RefData::RefData()
|
||||
: mBaseNode(nullptr), mDeletedByContentFile(false), mEnabled (true), mCount (1), mCustomData (nullptr), mChanged(false), mFlags(0)
|
||||
: mBaseNode(nullptr), mDeletedByContentFile(false), mEnabled (true), mCount (1), mCustomData (nullptr), mChanged(false), mFlags(0), mPhysicsPostponed(false)
|
||||
{
|
||||
for (int i=0; i<3; ++i)
|
||||
{
|
||||
@ -57,7 +58,7 @@ namespace MWWorld
|
||||
: mBaseNode(nullptr), mDeletedByContentFile(false), mEnabled (true),
|
||||
mCount (1), mPosition (cellRef.mPos),
|
||||
mCustomData (nullptr),
|
||||
mChanged(false), mFlags(0) // Loading from ESM/ESP files -> assume unchanged
|
||||
mChanged(false), mFlags(0), mPhysicsPostponed(false) // Loading from ESM/ESP files -> assume unchanged
|
||||
{
|
||||
}
|
||||
|
||||
@ -68,7 +69,7 @@ namespace MWWorld
|
||||
mPosition (objectState.mPosition),
|
||||
mAnimationState(objectState.mAnimationState),
|
||||
mCustomData (nullptr),
|
||||
mChanged(true), mFlags(objectState.mFlags) // Loading from a savegame -> assume changed
|
||||
mChanged(true), mFlags(objectState.mFlags), mPhysicsPostponed(false) // Loading from a savegame -> assume changed
|
||||
{
|
||||
// "Note that the ActivationFlag_UseEnabled is saved to the reference,
|
||||
// which will result in permanently suppressed activation if the reference script is removed.
|
||||
|
@ -58,6 +58,8 @@ namespace MWWorld
|
||||
|
||||
public:
|
||||
|
||||
bool mPhysicsPostponed;
|
||||
|
||||
RefData();
|
||||
|
||||
/// @param cellRef Used to copy constant data such as position into this class where it can
|
||||
|
@ -343,7 +343,10 @@ namespace MWWorld
|
||||
|
||||
cell->forEach(visitor);
|
||||
for (const auto& ptr : visitor.mObjects)
|
||||
{
|
||||
mPhysics->remove(ptr);
|
||||
ptr.mRef->mData.mPhysicsPostponed = false;
|
||||
}
|
||||
|
||||
if (cell->getCell()->isExterior())
|
||||
{
|
||||
@ -626,6 +629,24 @@ namespace MWWorld
|
||||
}
|
||||
return cellsPositionsToLoad;
|
||||
};
|
||||
|
||||
for(const auto& cell : mActiveCells)
|
||||
{
|
||||
cell->forEach([&](const MWWorld::Ptr& ptr)
|
||||
{
|
||||
if(ptr.mRef->mData.mPhysicsPostponed)
|
||||
{
|
||||
ptr.mRef->mData.mPhysicsPostponed = false;
|
||||
if(ptr.mRef->mData.isEnabled() && ptr.mRef->mData.getCount() > 0) {
|
||||
std::string model = getModel(ptr, MWBase::Environment::get().getResourceSystem()->getVFS());
|
||||
const auto rotation = makeNodeRotation(ptr, RotationOrder::direct);
|
||||
ptr.getClass().insertObjectPhysics(ptr, model, rotation, *mPhysics);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
auto cellsPositionsToLoad = cellsToLoad(mActiveCells,mHalfGridSize);
|
||||
auto cellsPositionsToLoadInactive = cellsToLoad(mInactiveCells,mHalfGridSize+1);
|
||||
|
||||
|
@ -147,7 +147,7 @@ void ESM::CellRef::save (ESMWriter &esm, bool wideRefNum, bool inInventory, bool
|
||||
esm.writeHNCString("NAME", mRefID);
|
||||
|
||||
if (isDeleted) {
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@ void ESM::DebugProfile::save (ESMWriter& esm, bool isDeleted) const
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,7 @@ void ESM::Filter::save (ESMWriter& esm, bool isDeleted) const
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -51,7 +51,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -66,7 +66,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -62,7 +62,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -100,7 +100,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -55,7 +55,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -67,7 +67,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -56,7 +56,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
esm.writeHNOCString("FNAM", mName);
|
||||
|
@ -167,7 +167,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -86,7 +86,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -70,7 +70,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -96,7 +96,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -114,7 +114,7 @@ namespace ESM {
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -61,7 +61,7 @@ namespace ESM
|
||||
esm.writeHNCString("NAME", mId);
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -58,7 +58,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -53,7 +53,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -90,7 +90,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -100,7 +100,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -85,7 +85,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -123,7 +123,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -81,7 +81,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -64,7 +64,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -62,7 +62,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -53,7 +53,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -62,7 +62,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -134,7 +134,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -156,7 +156,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -62,7 +62,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -89,7 +89,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -62,7 +62,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -155,7 +155,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -52,7 +52,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -59,7 +59,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -47,7 +47,7 @@ namespace ESM
|
||||
esm.writeHNCString("NAME", mId);
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -46,7 +46,7 @@ namespace ESM
|
||||
esm.writeHNCString("NAME", mId);
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -63,7 +63,7 @@ namespace ESM
|
||||
|
||||
if (isDeleted)
|
||||
{
|
||||
esm.writeHNCString("DELE", "");
|
||||
esm.writeHNString("DELE", "", 3);
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user