void AIPackageList::save(ESMWriter &esm) const { typedef std::vector<AIPackage>::const_iterator PackageIter; for (PackageIter it = mList.begin(); it != mList.end(); ++it) { switch (it->mType) { case AI_Wander: esm.writeHNT("AI_W", it->mWander, sizeof(it->mWander)); break; case AI_Travel: esm.writeHNT("AI_T", it->mTravel, sizeof(it->mTravel)); break; case AI_Activate: esm.writeHNT("AI_A", it->mActivate, sizeof(it->mActivate)); break; case AI_Escort: case AI_Follow: { const char *name = (it->mType == AI_Escort) ? "AI_E" : "AI_F"; esm.writeHNT(name, it->mTarget, sizeof(it->mTarget)); esm.writeHNOCString("CNDT", it->mCellName); break; } default: break; } } }
void ESM::CellId::save (ESMWriter &esm) const { esm.writeHNString ("SPAC", mWorldspace); if (mPaged) esm.writeHNT ("CIDX", mIndex, 8); }
void Door::save(ESMWriter &esm) const { esm.writeHNCString("MODL", mModel); esm.writeHNOCString("FNAM", mName); esm.writeHNOCString("SCRI", mScript); esm.writeHNOCString("SNAM", mOpenSound); esm.writeHNOCString("ANAM", mCloseSound); }
void Apparatus::save(ESMWriter &esm) const { esm.writeHNCString("MODL", mModel); esm.writeHNCString("FNAM", mName); esm.writeHNT("AADT", mData, 16); esm.writeHNOCString("SCRI", mScript); esm.writeHNCString("ITEX", mIcon); }
void BirthSign::save(ESMWriter &esm) { esm.writeHNCString("FNAM", mName); esm.writeHNOCString("TNAM", mTexture); esm.writeHNOCString("DESC", mDescription); mPowers.save(esm); }
void AiEscort::save(ESMWriter &esm) const { esm.writeHNT ("DATA", mData); esm.writeHNString ("TARG", mTargetId); esm.writeHNT ("DURA", mRemainingDuration); if (!mCellId.empty()) esm.writeHNString ("CELL", mCellId); }
void ESM::GlobalMap::save (ESMWriter &esm) const { esm.writeHNT("BNDS", mBounds); esm.startSubRecord("DATA"); esm.write(&mImageData[0], mImageData.size()); esm.endRecord("DATA"); }
void ProjectileState::save(ESMWriter &esm) const { BaseProjectileState::save(esm); esm.writeHNString ("BOW_", mBowId); esm.writeHNT ("VEL_", mVelocity); esm.writeHNT ("STR_", mAttackStrength); }
void Land::save(ESMWriter &esm) const { esm.startSubRecord("INTV"); esm.writeT(mX); esm.writeT(mY); esm.endRecord("INTV"); esm.writeHNT("DATA", mFlags); }
void Lockpick::save(ESMWriter &esm) { esm.writeHNCString("MODL", mModel); esm.writeHNCString("FNAM", mName); esm.writeHNT("LKDT", mData, 16); esm.writeHNOString("SCRI", mScript); esm.writeHNOCString("ITEX", mIcon); }
void GameSetting::save(ESMWriter &esm) { switch(mType) { case VT_String: esm.writeHNString("STRV", mStr); break; case VT_Int: esm.writeHNT("INTV", mI); break; case VT_Float: esm.writeHNT("FLTV", mF); break; default: break; } }
void MagicBoltState::save(ESMWriter &esm) const { BaseProjectileState::save(esm); esm.writeHNString ("SPEL", mSpellId); esm.writeHNString ("SRCN", mSourceName); mEffects.save(esm); esm.writeHNT ("SPED", mSpeed); esm.writeHNT ("STCK", mStack); esm.writeHNString ("SOUN", mSound); }
void ESM::GlobalScript::save (ESMWriter &esm) const { esm.writeHNString ("NAME", mId); mLocals.save (esm); if (mRunning) esm.writeHNT ("RUN_", mRunning); esm.writeHNOString ("TARG", mTargetId); }
void Container::save(ESMWriter &esm) { esm.writeHNCString("MODL", mModel); esm.writeHNOCString("FNAM", mName); esm.writeHNT("CNDT", mWeight, 4); esm.writeHNT("FLAG", mFlags, 4); esm.writeHNOCString("SCRI", mScript); mInventory.save(esm); }
void ESM::RefNum::save (ESMWriter &esm, bool wide, const std::string& tag) const { if (wide) esm.writeHNT (tag, *this, 8); else { int refNum = (mIndex & 0xffffff) | ((hasContentFile() ? mContentFile : 0xff)<<24); esm.writeHNT (tag, refNum, 4); } }
void LeveledListBase::save(ESMWriter &esm) { esm.writeHNT("DATA", mFlags); esm.writeHNT("NNAM", mChanceNone); esm.writeHNT<int>("INDX", mList.size()); for (std::vector<LevelItem>::iterator it = mList.begin(); it != mList.end(); ++it) { esm.writeHNCString(mRecName, it->mId); esm.writeHNT("INTV", it->mLevel); } }
void StartScript::save(ESMWriter &esm, bool isDeleted) const { esm.writeHNCString("NAME", mId); if (isDeleted) { esm.writeHNCString("DELE", ""); } else { esm.writeHNString("DATA", mData); } }
void Enchantment::save(ESMWriter &esm, bool isDeleted) const { esm.writeHNCString("NAME", mId); if (isDeleted) { esm.writeHNCString("DELE", ""); return; } esm.writeHNT("ENDT", mData, 16); mEffects.save(esm); }
void Spell::save(ESMWriter &esm, bool isDeleted) const { esm.writeHNCString("NAME", mId); if (isDeleted) { esm.writeHNCString("DELE", ""); return; } esm.writeHNOCString("FNAM", mName); esm.writeHNT("SPDT", mData, 12); mEffects.save(esm); }
void Class::save(ESMWriter &esm, bool isDeleted) const { esm.writeHNCString("NAME", mId); if (isDeleted) { esm.writeHNCString("DELE", ""); return; } esm.writeHNOCString("FNAM", mName); esm.writeHNT("CLDT", mData, 60); esm.writeHNOString("DESC", mDescription); }
void ESM::Header::save (ESMWriter &esm) { esm.writeHNT ("HEDR", mData, 300); if (mFormat>0) esm.writeHNT ("FORM", mFormat); for (std::vector<Header::MasterData>::iterator iter = mMaster.begin(); iter != mMaster.end(); ++iter) { esm.writeHNCString ("MAST", iter->name); esm.writeHNT ("DATA", iter->size); } }
void Activator::save(ESMWriter &esm, bool isDeleted) const { esm.writeHNCString("NAME", mId); if (isDeleted) { esm.writeHNCString("DELE", ""); return; } esm.writeHNCString("MODL", mModel); esm.writeHNOCString("FNAM", mName); esm.writeHNOCString("SCRI", mScript); }
void Cell::save(ESMWriter &esm) const { esm.writeHNT("DATA", mData, 12); if (mData.mFlags & Interior) { if (mWater != -1) { if (mWaterInt) { int water = (mWater >= 0) ? (int) (mWater + 0.5) : (int) (mWater - 0.5); esm.writeHNT("INTV", water); } else { esm.writeHNT("WHGT", mWater); } } if (mData.mFlags & QuasiEx) esm.writeHNOCString("RGNN", mRegion); else esm.writeHNT("AMBI", mAmbi, 16); } else { esm.writeHNOCString("RGNN", mRegion); if (mMapColor != 0) esm.writeHNT("NAM5", mMapColor); } if (mNAM0 != 0) esm.writeHNT("NAM0", mNAM0); }
void Script::save(ESMWriter &esm) const { std::string varNameString; if (!mVarNames.empty()) for (std::vector<std::string>::const_iterator it = mVarNames.begin(); it != mVarNames.end(); ++it) varNameString.append(*it); SCHD data; memset(&data, 0, sizeof(data)); data.mData = mData; memcpy(data.mName.name, mId.c_str(), mId.size()); esm.writeHNT("SCHD", data, 52); if (!mVarNames.empty()) { esm.startSubRecord("SCVR"); for (std::vector<std::string>::const_iterator it = mVarNames.begin(); it != mVarNames.end(); ++it) { esm.writeHCString(*it); } esm.endRecord("SCVR"); } esm.startSubRecord("SCDT"); esm.write(reinterpret_cast<const char * >(&mScriptData[0]), mData.mScriptDataSize); esm.endRecord("SCDT"); esm.writeHNOString("SCTX", mScriptText); }
void Pathgrid::save(ESMWriter &esm) { esm.writeHNT("DATA", mData, 12); esm.writeHNCString("NAME", mCell); if (!mPoints.empty()) { esm.startSubRecord("PGRP"); for (PointList::iterator it = mPoints.begin(); it != mPoints.end(); ++it) { esm.writeT(*it); } esm.endRecord("PGRP"); } if (!mEdges.empty()) { esm.startSubRecord("PGRC"); for (std::vector<Edge>::iterator it = mEdges.begin(); it != mEdges.end(); ++it) { esm.writeT(it->mV1); } esm.endRecord("PGRC"); } }
void ESM::DebugProfile::save (ESMWriter& esm, bool isDeleted) const { esm.writeHNCString ("NAME", mId); if (isDeleted) { esm.writeHNCString("DELE", ""); return; } esm.writeHNCString ("DESC", mDescription); esm.writeHNCString ("SCRP", mScriptText); esm.writeHNT ("FLAG", mFlags); }
void ESM::VariantFloatData::write (ESMWriter& esm, Variant::Format format, VarType type) const { if (type!=VT_Float) throw std::logic_error ("not a float type"); if (format==Variant::Format_Global) { esm.writeHNString ("FNAM", "f"); esm.writeHNT ("FLTV", mValue); } else if (format==Variant::Format_Gmst || format==Variant::Format_Info) { esm.writeHNT ("FLTV", mValue); } }
void Race::save(ESMWriter &esm, bool isDeleted) const { esm.writeHNCString("NAME", mId); if (isDeleted) { esm.writeHNCString("DELE", ""); return; } esm.writeHNOCString("FNAM", mName); esm.writeHNT("RADT", mData, 140); mPowers.save(esm); esm.writeHNOString("DESC", mDescription); }
void AiSequence::save(ESMWriter &esm) const { for (std::vector<AiPackageContainer>::const_iterator it = mPackages.begin(); it != mPackages.end(); ++it) { esm.writeHNT ("AIPK", it->mType); switch (it->mType) { case Ai_Wander: static_cast<const AiWander*>(it->mPackage)->save(esm); break; case Ai_Travel: static_cast<const AiTravel*>(it->mPackage)->save(esm); break; case Ai_Escort: static_cast<const AiEscort*>(it->mPackage)->save(esm); break; case Ai_Follow: static_cast<const AiFollow*>(it->mPackage)->save(esm); break; case Ai_Activate: static_cast<const AiActivate*>(it->mPackage)->save(esm); break; case Ai_Combat: static_cast<const AiCombat*>(it->mPackage)->save(esm); break; case Ai_Pursue: static_cast<const AiPursue*>(it->mPackage)->save(esm); break; default: break; } } }
void InventoryList::save(ESMWriter &esm) { for (std::vector<ContItem>::iterator it = mList.begin(); it != mList.end(); ++it) { esm.writeHNT("NPCO", *it, 36); } }