#include "controlsstate.hpp" #include "esmreader.hpp" #include "esmwriter.hpp" namespace ESM { ControlsState::ControlsState() : mViewSwitchDisabled(false) , mControlsDisabled(false) , mJumpingDisabled(false) , mLookingDisabled(false) , mVanityModeDisabled(false) , mWeaponDrawingDisabled(false) , mSpellDrawingDisabled(false) { } void ControlsState::load(ESMReader& esm) { int flags; esm.getHNT(flags, "CFLG"); mViewSwitchDisabled = flags & ViewSwitchDisabled; mControlsDisabled = flags & ControlsDisabled; mJumpingDisabled = flags & JumpingDisabled; mLookingDisabled = flags & LookingDisabled; mVanityModeDisabled = flags & VanityModeDisabled; mWeaponDrawingDisabled = flags & WeaponDrawingDisabled; mSpellDrawingDisabled = flags & SpellDrawingDisabled; } void ControlsState::save(ESMWriter& esm) const { int flags = 0; if (mViewSwitchDisabled) flags |= ViewSwitchDisabled; if (mControlsDisabled) flags |= ControlsDisabled; if (mJumpingDisabled) flags |= JumpingDisabled; if (mLookingDisabled) flags |= LookingDisabled; if (mVanityModeDisabled) flags |= VanityModeDisabled; if (mWeaponDrawingDisabled) flags |= WeaponDrawingDisabled; if (mSpellDrawingDisabled) flags |= SpellDrawingDisabled; esm.writeHNT("CFLG", flags); } }