mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-29 09:45:32 +00:00
Fixed code issues found with unity build. Missing include guards, duplicated functions, ...
This commit is contained in:
parent
49ef976b3d
commit
c8c0e5de38
33 changed files with 154 additions and 228 deletions
|
@ -28,16 +28,16 @@
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
struct CustomData : public MWWorld::CustomData
|
struct ContainerCustomData : public MWWorld::CustomData
|
||||||
{
|
{
|
||||||
MWWorld::ContainerStore mContainerStore;
|
MWWorld::ContainerStore mContainerStore;
|
||||||
|
|
||||||
virtual MWWorld::CustomData *clone() const;
|
virtual MWWorld::CustomData *clone() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
MWWorld::CustomData *CustomData::clone() const
|
MWWorld::CustomData *ContainerCustomData::clone() const
|
||||||
{
|
{
|
||||||
return new CustomData (*this);
|
return new ContainerCustomData (*this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
if (!ptr.getRefData().getCustomData())
|
if (!ptr.getRefData().getCustomData())
|
||||||
{
|
{
|
||||||
std::auto_ptr<CustomData> data (new CustomData);
|
std::auto_ptr<ContainerCustomData> data (new ContainerCustomData);
|
||||||
|
|
||||||
MWWorld::LiveCellRef<ESM::Container> *ref =
|
MWWorld::LiveCellRef<ESM::Container> *ref =
|
||||||
ptr.get<ESM::Container>();
|
ptr.get<ESM::Container>();
|
||||||
|
@ -174,7 +174,7 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
return dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData()).mContainerStore;
|
return dynamic_cast<ContainerCustomData&> (*ptr.getRefData().getCustomData()).mContainerStore;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Container::getScript (const MWWorld::Ptr& ptr) const
|
std::string Container::getScript (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -267,7 +267,7 @@ namespace MWClass
|
||||||
|
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData()).mContainerStore.
|
dynamic_cast<ContainerCustomData&> (*ptr.getRefData().getCustomData()).mContainerStore.
|
||||||
readState (state2.mInventory);
|
readState (state2.mInventory);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -278,7 +278,7 @@ namespace MWClass
|
||||||
|
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData()).mContainerStore.
|
dynamic_cast<ContainerCustomData&> (*ptr.getRefData().getCustomData()).mContainerStore.
|
||||||
writeState (state2.mInventory);
|
writeState (state2.mInventory);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
struct CustomData : public MWWorld::CustomData
|
struct CreatureCustomData : public MWWorld::CustomData
|
||||||
{
|
{
|
||||||
MWMechanics::CreatureStats mCreatureStats;
|
MWMechanics::CreatureStats mCreatureStats;
|
||||||
MWWorld::ContainerStore* mContainerStore; // may be InventoryStore for some creatures
|
MWWorld::ContainerStore* mContainerStore; // may be InventoryStore for some creatures
|
||||||
|
@ -45,13 +45,13 @@ namespace
|
||||||
|
|
||||||
virtual MWWorld::CustomData *clone() const;
|
virtual MWWorld::CustomData *clone() const;
|
||||||
|
|
||||||
CustomData() : mContainerStore(0) {}
|
CreatureCustomData() : mContainerStore(0) {}
|
||||||
virtual ~CustomData() { delete mContainerStore; }
|
virtual ~CreatureCustomData() { delete mContainerStore; }
|
||||||
};
|
};
|
||||||
|
|
||||||
MWWorld::CustomData *CustomData::clone() const
|
MWWorld::CustomData *CreatureCustomData::clone() const
|
||||||
{
|
{
|
||||||
CustomData* cloned = new CustomData (*this);
|
CreatureCustomData* cloned = new CreatureCustomData (*this);
|
||||||
cloned->mContainerStore = mContainerStore->clone();
|
cloned->mContainerStore = mContainerStore->clone();
|
||||||
return cloned;
|
return cloned;
|
||||||
}
|
}
|
||||||
|
@ -63,7 +63,7 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
if (!ptr.getRefData().getCustomData())
|
if (!ptr.getRefData().getCustomData())
|
||||||
{
|
{
|
||||||
std::auto_ptr<CustomData> data (new CustomData);
|
std::auto_ptr<CreatureCustomData> data (new CreatureCustomData);
|
||||||
|
|
||||||
static bool inited = false;
|
static bool inited = false;
|
||||||
if(!inited)
|
if(!inited)
|
||||||
|
@ -192,7 +192,7 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
return dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData()).mCreatureStats;
|
return dynamic_cast<CreatureCustomData&> (*ptr.getRefData().getCustomData()).mCreatureStats;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -456,7 +456,7 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
return *dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData()).mContainerStore;
|
return *dynamic_cast<CreatureCustomData&> (*ptr.getRefData().getCustomData()).mContainerStore;
|
||||||
}
|
}
|
||||||
|
|
||||||
MWWorld::InventoryStore& Creature::getInventoryStore(const MWWorld::Ptr &ptr) const
|
MWWorld::InventoryStore& Creature::getInventoryStore(const MWWorld::Ptr &ptr) const
|
||||||
|
@ -559,7 +559,7 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
return dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData()).mMovement;
|
return dynamic_cast<CreatureCustomData&> (*ptr.getRefData().getCustomData()).mMovement;
|
||||||
}
|
}
|
||||||
|
|
||||||
Ogre::Vector3 Creature::getMovementVector (const MWWorld::Ptr& ptr) const
|
Ogre::Vector3 Creature::getMovementVector (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -786,7 +786,7 @@ namespace MWClass
|
||||||
|
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
CustomData& customData = dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData());
|
CreatureCustomData& customData = dynamic_cast<CreatureCustomData&> (*ptr.getRefData().getCustomData());
|
||||||
|
|
||||||
customData.mContainerStore->readState (state2.mInventory);
|
customData.mContainerStore->readState (state2.mInventory);
|
||||||
customData.mCreatureStats.readState (state2.mCreatureStats);
|
customData.mCreatureStats.readState (state2.mCreatureStats);
|
||||||
|
@ -800,7 +800,7 @@ namespace MWClass
|
||||||
|
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
CustomData& customData = dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData());
|
CreatureCustomData& customData = dynamic_cast<CreatureCustomData&> (*ptr.getRefData().getCustomData());
|
||||||
|
|
||||||
customData.mContainerStore->writeState (state2.mInventory);
|
customData.mContainerStore->writeState (state2.mInventory);
|
||||||
customData.mCreatureStats.writeState (state2.mCreatureStats);
|
customData.mCreatureStats.writeState (state2.mCreatureStats);
|
||||||
|
|
|
@ -9,15 +9,15 @@
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
struct CustomData : public MWWorld::CustomData
|
struct CreatureLevListCustomData : public MWWorld::CustomData
|
||||||
{
|
{
|
||||||
// TODO: save the creature we spawned here
|
// TODO: save the creature we spawned here
|
||||||
virtual MWWorld::CustomData *clone() const;
|
virtual MWWorld::CustomData *clone() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
MWWorld::CustomData *CustomData::clone() const
|
MWWorld::CustomData *CreatureLevListCustomData::clone() const
|
||||||
{
|
{
|
||||||
return new CustomData (*this);
|
return new CreatureLevListCustomData (*this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
if (!ptr.getRefData().getCustomData())
|
if (!ptr.getRefData().getCustomData())
|
||||||
{
|
{
|
||||||
std::auto_ptr<CustomData> data (new CustomData);
|
std::auto_ptr<CreatureLevListCustomData> data (new CreatureLevListCustomData);
|
||||||
|
|
||||||
MWWorld::LiveCellRef<ESM::CreatureLevList> *ref =
|
MWWorld::LiveCellRef<ESM::CreatureLevList> *ref =
|
||||||
ptr.get<ESM::CreatureLevList>();
|
ptr.get<ESM::CreatureLevList>();
|
||||||
|
|
|
@ -26,12 +26,12 @@
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
struct CustomData : public MWWorld::CustomData
|
struct LightCustomData : public MWWorld::CustomData
|
||||||
{
|
{
|
||||||
float mTime;
|
float mTime;
|
||||||
///< Time remaining
|
///< Time remaining
|
||||||
|
|
||||||
CustomData(MWWorld::Ptr ptr)
|
LightCustomData(MWWorld::Ptr ptr)
|
||||||
{
|
{
|
||||||
MWWorld::LiveCellRef<ESM::Light> *ref = ptr.get<ESM::Light>();
|
MWWorld::LiveCellRef<ESM::Light> *ref = ptr.get<ESM::Light>();
|
||||||
mTime = ref->mBase->mData.mTime;
|
mTime = ref->mBase->mData.mTime;
|
||||||
|
@ -40,7 +40,7 @@ namespace
|
||||||
|
|
||||||
virtual MWWorld::CustomData *clone() const
|
virtual MWWorld::CustomData *clone() const
|
||||||
{
|
{
|
||||||
return new CustomData (*this);
|
return new LightCustomData (*this);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -210,7 +210,7 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
ensureCustomData(ptr);
|
ensureCustomData(ptr);
|
||||||
|
|
||||||
float &timeRemaining = dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData()).mTime;
|
float &timeRemaining = dynamic_cast<LightCustomData&> (*ptr.getRefData().getCustomData()).mTime;
|
||||||
timeRemaining = duration;
|
timeRemaining = duration;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -218,7 +218,7 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
ensureCustomData(ptr);
|
ensureCustomData(ptr);
|
||||||
|
|
||||||
return dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData()).mTime;
|
return dynamic_cast<LightCustomData&> (*ptr.getRefData().getCustomData()).mTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
MWWorld::Ptr
|
MWWorld::Ptr
|
||||||
|
@ -233,7 +233,7 @@ namespace MWClass
|
||||||
void Light::ensureCustomData (const MWWorld::Ptr& ptr) const
|
void Light::ensureCustomData (const MWWorld::Ptr& ptr) const
|
||||||
{
|
{
|
||||||
if (!ptr.getRefData().getCustomData())
|
if (!ptr.getRefData().getCustomData())
|
||||||
ptr.getRefData().setCustomData(new CustomData(ptr));
|
ptr.getRefData().setCustomData(new LightCustomData(ptr));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Light::canSell (const MWWorld::Ptr& item, int npcServices) const
|
bool Light::canSell (const MWWorld::Ptr& item, int npcServices) const
|
||||||
|
@ -278,7 +278,7 @@ namespace MWClass
|
||||||
|
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData()).mTime = state2.mTime;
|
dynamic_cast<LightCustomData&> (*ptr.getRefData().getCustomData()).mTime = state2.mTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Light::writeAdditionalState (const MWWorld::Ptr& ptr, ESM::ObjectState& state)
|
void Light::writeAdditionalState (const MWWorld::Ptr& ptr, ESM::ObjectState& state)
|
||||||
|
@ -288,6 +288,6 @@ namespace MWClass
|
||||||
|
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
state2.mTime = dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData()).mTime;
|
state2.mTime = dynamic_cast<LightCustomData&> (*ptr.getRefData().getCustomData()).mTime;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
struct CustomData : public MWWorld::CustomData
|
struct NpcCustomData : public MWWorld::CustomData
|
||||||
{
|
{
|
||||||
MWMechanics::NpcStats mNpcStats;
|
MWMechanics::NpcStats mNpcStats;
|
||||||
MWMechanics::Movement mMovement;
|
MWMechanics::Movement mMovement;
|
||||||
|
@ -48,9 +48,9 @@ namespace
|
||||||
virtual MWWorld::CustomData *clone() const;
|
virtual MWWorld::CustomData *clone() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
MWWorld::CustomData *CustomData::clone() const
|
MWWorld::CustomData *NpcCustomData::clone() const
|
||||||
{
|
{
|
||||||
return new CustomData (*this);
|
return new NpcCustomData (*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void autoCalculateAttributes (const ESM::NPC* npc, MWMechanics::CreatureStats& creatureStats)
|
void autoCalculateAttributes (const ESM::NPC* npc, MWMechanics::CreatureStats& creatureStats)
|
||||||
|
@ -262,7 +262,7 @@ namespace MWClass
|
||||||
}
|
}
|
||||||
if (!ptr.getRefData().getCustomData())
|
if (!ptr.getRefData().getCustomData())
|
||||||
{
|
{
|
||||||
std::auto_ptr<CustomData> data(new CustomData);
|
std::auto_ptr<NpcCustomData> data(new NpcCustomData);
|
||||||
|
|
||||||
MWWorld::LiveCellRef<ESM::NPC> *ref = ptr.get<ESM::NPC>();
|
MWWorld::LiveCellRef<ESM::NPC> *ref = ptr.get<ESM::NPC>();
|
||||||
|
|
||||||
|
@ -436,14 +436,14 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
return dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData()).mNpcStats;
|
return dynamic_cast<NpcCustomData&> (*ptr.getRefData().getCustomData()).mNpcStats;
|
||||||
}
|
}
|
||||||
|
|
||||||
MWMechanics::NpcStats& Npc::getNpcStats (const MWWorld::Ptr& ptr) const
|
MWMechanics::NpcStats& Npc::getNpcStats (const MWWorld::Ptr& ptr) const
|
||||||
{
|
{
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
return dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData()).mNpcStats;
|
return dynamic_cast<NpcCustomData&> (*ptr.getRefData().getCustomData()).mNpcStats;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -819,7 +819,7 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
return dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData()).mInventoryStore;
|
return dynamic_cast<NpcCustomData&> (*ptr.getRefData().getCustomData()).mInventoryStore;
|
||||||
}
|
}
|
||||||
|
|
||||||
MWWorld::InventoryStore& Npc::getInventoryStore (const MWWorld::Ptr& ptr)
|
MWWorld::InventoryStore& Npc::getInventoryStore (const MWWorld::Ptr& ptr)
|
||||||
|
@ -827,7 +827,7 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
return dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData()).mInventoryStore;
|
return dynamic_cast<NpcCustomData&> (*ptr.getRefData().getCustomData()).mInventoryStore;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Npc::getScript (const MWWorld::Ptr& ptr) const
|
std::string Npc::getScript (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -841,7 +841,7 @@ namespace MWClass
|
||||||
float Npc::getSpeed(const MWWorld::Ptr& ptr) const
|
float Npc::getSpeed(const MWWorld::Ptr& ptr) const
|
||||||
{
|
{
|
||||||
const MWBase::World *world = MWBase::Environment::get().getWorld();
|
const MWBase::World *world = MWBase::Environment::get().getWorld();
|
||||||
const CustomData *npcdata = static_cast<const CustomData*>(ptr.getRefData().getCustomData());
|
const NpcCustomData *npcdata = static_cast<const NpcCustomData*>(ptr.getRefData().getCustomData());
|
||||||
const MWMechanics::MagicEffects &mageffects = npcdata->mNpcStats.getMagicEffects();
|
const MWMechanics::MagicEffects &mageffects = npcdata->mNpcStats.getMagicEffects();
|
||||||
|
|
||||||
const float normalizedEncumbrance = Npc::getEncumbrance(ptr) / Npc::getCapacity(ptr);
|
const float normalizedEncumbrance = Npc::getEncumbrance(ptr) / Npc::getCapacity(ptr);
|
||||||
|
@ -896,7 +896,7 @@ namespace MWClass
|
||||||
|
|
||||||
float Npc::getJump(const MWWorld::Ptr &ptr) const
|
float Npc::getJump(const MWWorld::Ptr &ptr) const
|
||||||
{
|
{
|
||||||
const CustomData *npcdata = static_cast<const CustomData*>(ptr.getRefData().getCustomData());
|
const NpcCustomData *npcdata = static_cast<const NpcCustomData*>(ptr.getRefData().getCustomData());
|
||||||
const MWMechanics::MagicEffects &mageffects = npcdata->mNpcStats.getMagicEffects();
|
const MWMechanics::MagicEffects &mageffects = npcdata->mNpcStats.getMagicEffects();
|
||||||
const float encumbranceTerm = fJumpEncumbranceBase->getFloat() +
|
const float encumbranceTerm = fJumpEncumbranceBase->getFloat() +
|
||||||
fJumpEncumbranceMultiplier->getFloat() *
|
fJumpEncumbranceMultiplier->getFloat() *
|
||||||
|
@ -935,7 +935,7 @@ namespace MWClass
|
||||||
if (fallHeight >= fallDistanceMin)
|
if (fallHeight >= fallDistanceMin)
|
||||||
{
|
{
|
||||||
const float acrobaticsSkill = MWWorld::Class::get(ptr).getNpcStats (ptr).getSkill(ESM::Skill::Acrobatics).getModified();
|
const float acrobaticsSkill = MWWorld::Class::get(ptr).getNpcStats (ptr).getSkill(ESM::Skill::Acrobatics).getModified();
|
||||||
const CustomData *npcdata = static_cast<const CustomData*>(ptr.getRefData().getCustomData());
|
const NpcCustomData *npcdata = static_cast<const NpcCustomData*>(ptr.getRefData().getCustomData());
|
||||||
const float jumpSpellBonus = npcdata->mNpcStats.getMagicEffects().get(ESM::MagicEffect::Jump).mMagnitude;
|
const float jumpSpellBonus = npcdata->mNpcStats.getMagicEffects().get(ESM::MagicEffect::Jump).mMagnitude;
|
||||||
const float fallAcroBase = gmst.find("fFallAcroBase")->getFloat();
|
const float fallAcroBase = gmst.find("fFallAcroBase")->getFloat();
|
||||||
const float fallAcroMult = gmst.find("fFallAcroMult")->getFloat();
|
const float fallAcroMult = gmst.find("fFallAcroMult")->getFloat();
|
||||||
|
@ -960,7 +960,7 @@ namespace MWClass
|
||||||
{
|
{
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
return dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData()).mMovement;
|
return dynamic_cast<NpcCustomData&> (*ptr.getRefData().getCustomData()).mMovement;
|
||||||
}
|
}
|
||||||
|
|
||||||
Ogre::Vector3 Npc::getMovementVector (const MWWorld::Ptr& ptr) const
|
Ogre::Vector3 Npc::getMovementVector (const MWWorld::Ptr& ptr) const
|
||||||
|
@ -1266,7 +1266,7 @@ namespace MWClass
|
||||||
|
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
CustomData& customData = dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData());
|
NpcCustomData& customData = dynamic_cast<NpcCustomData&> (*ptr.getRefData().getCustomData());
|
||||||
|
|
||||||
customData.mInventoryStore.readState (state2.mInventory);
|
customData.mInventoryStore.readState (state2.mInventory);
|
||||||
customData.mNpcStats.readState (state2.mNpcStats);
|
customData.mNpcStats.readState (state2.mNpcStats);
|
||||||
|
@ -1280,7 +1280,7 @@ namespace MWClass
|
||||||
|
|
||||||
ensureCustomData (ptr);
|
ensureCustomData (ptr);
|
||||||
|
|
||||||
CustomData& customData = dynamic_cast<CustomData&> (*ptr.getRefData().getCustomData());
|
NpcCustomData& customData = dynamic_cast<NpcCustomData&> (*ptr.getRefData().getCustomData());
|
||||||
|
|
||||||
customData.mInventoryStore.writeState (state2.mInventory);
|
customData.mInventoryStore.writeState (state2.mInventory);
|
||||||
customData.mNpcStats.writeState (state2.mNpcStats);
|
customData.mNpcStats.writeState (state2.mNpcStats);
|
||||||
|
|
|
@ -26,16 +26,6 @@ namespace
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string getCountString(const int count)
|
|
||||||
{
|
|
||||||
if (count == 1)
|
|
||||||
return "";
|
|
||||||
if (count > 9999)
|
|
||||||
return boost::lexical_cast<std::string>(int(count/1000.f)) + "k";
|
|
||||||
else
|
|
||||||
return boost::lexical_cast<std::string>(count);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace MWGui
|
namespace MWGui
|
||||||
|
@ -226,7 +216,7 @@ namespace MWGui
|
||||||
text->setNeedMouseFocus(false);
|
text->setNeedMouseFocus(false);
|
||||||
text->setTextShadow(true);
|
text->setTextShadow(true);
|
||||||
text->setTextShadowColour(MyGUI::Colour(0,0,0));
|
text->setTextShadowColour(MyGUI::Colour(0,0,0));
|
||||||
text->setCaption(getCountString(ingredient->getUserData<MWWorld::Ptr>()->getRefData().getCount()));
|
text->setCaption(ItemView::getCountString(ingredient->getUserData<MWWorld::Ptr>()->getRefData().getCount()));
|
||||||
}
|
}
|
||||||
|
|
||||||
mItemView->update();
|
mItemView->update();
|
||||||
|
|
|
@ -23,19 +23,6 @@
|
||||||
#include "sortfilteritemmodel.hpp"
|
#include "sortfilteritemmodel.hpp"
|
||||||
#include "pickpocketitemmodel.hpp"
|
#include "pickpocketitemmodel.hpp"
|
||||||
|
|
||||||
namespace
|
|
||||||
{
|
|
||||||
std::string getCountString(const int count)
|
|
||||||
{
|
|
||||||
if (count == 1)
|
|
||||||
return "";
|
|
||||||
if (count > 9999)
|
|
||||||
return boost::lexical_cast<std::string>(int(count/1000.f)) + "k";
|
|
||||||
else
|
|
||||||
return boost::lexical_cast<std::string>(count);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace MWGui
|
namespace MWGui
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -79,7 +66,7 @@ namespace MWGui
|
||||||
text->setNeedMouseFocus(false);
|
text->setNeedMouseFocus(false);
|
||||||
text->setTextShadow(true);
|
text->setTextShadow(true);
|
||||||
text->setTextShadowColour(MyGUI::Colour(0,0,0));
|
text->setTextShadowColour(MyGUI::Colour(0,0,0));
|
||||||
text->setCaption(getCountString(count));
|
text->setCaption(ItemView::getCountString(count));
|
||||||
|
|
||||||
sourceView->update();
|
sourceView->update();
|
||||||
|
|
||||||
|
|
|
@ -23,18 +23,7 @@
|
||||||
#include "travelwindow.hpp"
|
#include "travelwindow.hpp"
|
||||||
#include "bookpage.hpp"
|
#include "bookpage.hpp"
|
||||||
|
|
||||||
|
#include "journalbooks.hpp" // to_utf8_span
|
||||||
namespace
|
|
||||||
{
|
|
||||||
MWGui::BookTypesetter::Utf8Span to_utf8_span (char const * text)
|
|
||||||
{
|
|
||||||
typedef MWGui::BookTypesetter::Utf8Point point;
|
|
||||||
|
|
||||||
point begin = reinterpret_cast <point> (text);
|
|
||||||
|
|
||||||
return MWGui::BookTypesetter::Utf8Span (begin, begin + strlen (text));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace MWGui
|
namespace MWGui
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
#ifndef OPENMW_GAME_MWGUI_HUD_H
|
||||||
|
#define OPENMW_GAME_MWGUI_HUD_H
|
||||||
|
|
||||||
#include "mapwindow.hpp"
|
#include "mapwindow.hpp"
|
||||||
|
|
||||||
#include "../mwmechanics/stat.hpp"
|
#include "../mwmechanics/stat.hpp"
|
||||||
|
@ -117,3 +120,5 @@ namespace MWGui
|
||||||
void updatePositions();
|
void updatePositions();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
#ifndef OPENMW_GAME_MWGUI_ITEMSELECTION_H
|
||||||
|
#define OPENMW_GAME_MWGUI_ITEMSELECTION_H
|
||||||
|
|
||||||
#include "container.hpp"
|
#include "container.hpp"
|
||||||
|
|
||||||
namespace MWGui
|
namespace MWGui
|
||||||
|
@ -32,3 +35,5 @@ namespace MWGui
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -13,9 +13,10 @@
|
||||||
|
|
||||||
#include "itemmodel.hpp"
|
#include "itemmodel.hpp"
|
||||||
|
|
||||||
namespace
|
namespace MWGui
|
||||||
{
|
{
|
||||||
std::string getCountString(const int count)
|
|
||||||
|
std::string ItemView::getCountString(int count)
|
||||||
{
|
{
|
||||||
if (count == 1)
|
if (count == 1)
|
||||||
return "";
|
return "";
|
||||||
|
@ -24,11 +25,6 @@ namespace
|
||||||
else
|
else
|
||||||
return boost::lexical_cast<std::string>(count);
|
return boost::lexical_cast<std::string>(count);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace MWGui
|
|
||||||
{
|
|
||||||
|
|
||||||
ItemView::ItemView()
|
ItemView::ItemView()
|
||||||
: mModel(NULL)
|
: mModel(NULL)
|
||||||
|
|
|
@ -30,6 +30,8 @@ namespace MWGui
|
||||||
|
|
||||||
void update();
|
void update();
|
||||||
|
|
||||||
|
static std::string getCountString(int count);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual void initialiseOverride();
|
virtual void initialiseOverride();
|
||||||
|
|
||||||
|
|
|
@ -2,15 +2,6 @@
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
MWGui::BookTypesetter::Utf8Span to_utf8_span (char const * text)
|
|
||||||
{
|
|
||||||
typedef MWGui::BookTypesetter::Utf8Point point;
|
|
||||||
|
|
||||||
point begin = reinterpret_cast <point> (text);
|
|
||||||
|
|
||||||
return MWGui::BookTypesetter::Utf8Span (begin, begin + strlen (text));
|
|
||||||
}
|
|
||||||
|
|
||||||
const MyGUI::Colour linkHot (0.40f, 0.40f, 0.80f);
|
const MyGUI::Colour linkHot (0.40f, 0.40f, 0.80f);
|
||||||
const MyGUI::Colour linkNormal (0.20f, 0.20f, 0.60f);
|
const MyGUI::Colour linkNormal (0.20f, 0.20f, 0.60f);
|
||||||
const MyGUI::Colour linkActive (0.50f, 0.50f, 1.00f);
|
const MyGUI::Colour linkActive (0.50f, 0.50f, 1.00f);
|
||||||
|
|
|
@ -6,6 +6,15 @@
|
||||||
|
|
||||||
namespace MWGui
|
namespace MWGui
|
||||||
{
|
{
|
||||||
|
MWGui::BookTypesetter::Utf8Span to_utf8_span (char const * text)
|
||||||
|
{
|
||||||
|
typedef MWGui::BookTypesetter::Utf8Point point;
|
||||||
|
|
||||||
|
point begin = reinterpret_cast <point> (text);
|
||||||
|
|
||||||
|
return MWGui::BookTypesetter::Utf8Span (begin, begin + strlen (text));
|
||||||
|
}
|
||||||
|
|
||||||
struct JournalBooks
|
struct JournalBooks
|
||||||
{
|
{
|
||||||
typedef TypesetBook::Ptr Book;
|
typedef TypesetBook::Ptr Book;
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
#ifndef OPENMW_GAME_MWGUI_MAINMENU_H
|
||||||
|
#define OPENMW_GAME_MWGUI_MAINMENU_H
|
||||||
|
|
||||||
#include <openengine/gui/layout.hpp>
|
#include <openengine/gui/layout.hpp>
|
||||||
|
|
||||||
#include "imagebutton.hpp"
|
#include "imagebutton.hpp"
|
||||||
|
@ -36,3 +39,5 @@ namespace MWGui
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -20,28 +20,6 @@
|
||||||
#include "itemselection.hpp"
|
#include "itemselection.hpp"
|
||||||
|
|
||||||
|
|
||||||
namespace
|
|
||||||
{
|
|
||||||
bool sortItems(const MWWorld::Ptr& left, const MWWorld::Ptr& right)
|
|
||||||
{
|
|
||||||
int cmp = left.getClass().getName(left).compare(
|
|
||||||
right.getClass().getName(right));
|
|
||||||
return cmp < 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool sortSpells(const std::string& left, const std::string& right)
|
|
||||||
{
|
|
||||||
const MWWorld::Store<ESM::Spell> &spells =
|
|
||||||
MWBase::Environment::get().getWorld()->getStore().get<ESM::Spell>();
|
|
||||||
|
|
||||||
const ESM::Spell* a = spells.find(left);
|
|
||||||
const ESM::Spell* b = spells.find(right);
|
|
||||||
|
|
||||||
int cmp = a->mName.compare(b->mName);
|
|
||||||
return cmp < 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace MWGui
|
namespace MWGui
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -18,28 +18,6 @@
|
||||||
#include "inventorywindow.hpp"
|
#include "inventorywindow.hpp"
|
||||||
#include "confirmationdialog.hpp"
|
#include "confirmationdialog.hpp"
|
||||||
|
|
||||||
namespace
|
|
||||||
{
|
|
||||||
bool sortSpells(const std::string& left, const std::string& right)
|
|
||||||
{
|
|
||||||
const MWWorld::Store<ESM::Spell> &spells =
|
|
||||||
MWBase::Environment::get().getWorld()->getStore().get<ESM::Spell>();
|
|
||||||
|
|
||||||
const ESM::Spell* a = spells.find(left);
|
|
||||||
const ESM::Spell* b = spells.find(right);
|
|
||||||
|
|
||||||
int cmp = a->mName.compare(b->mName);
|
|
||||||
return cmp < 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool sortItems(const MWWorld::Ptr& left, const MWWorld::Ptr& right)
|
|
||||||
{
|
|
||||||
int cmp = MWWorld::Class::get(left).getName(left).compare(
|
|
||||||
MWWorld::Class::get(right).getName(right));
|
|
||||||
return cmp < 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace MWGui
|
namespace MWGui
|
||||||
{
|
{
|
||||||
SpellWindow::SpellWindow(DragAndDrop* drag)
|
SpellWindow::SpellWindow(DragAndDrop* drag)
|
||||||
|
|
|
@ -7,6 +7,25 @@ namespace MWGui
|
||||||
{
|
{
|
||||||
class SpellIcons;
|
class SpellIcons;
|
||||||
|
|
||||||
|
bool sortItems(const MWWorld::Ptr& left, const MWWorld::Ptr& right)
|
||||||
|
{
|
||||||
|
int cmp = left.getClass().getName(left).compare(
|
||||||
|
right.getClass().getName(right));
|
||||||
|
return cmp < 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool sortSpells(const std::string& left, const std::string& right)
|
||||||
|
{
|
||||||
|
const MWWorld::Store<ESM::Spell> &spells =
|
||||||
|
MWBase::Environment::get().getWorld()->getStore().get<ESM::Spell>();
|
||||||
|
|
||||||
|
const ESM::Spell* a = spells.find(left);
|
||||||
|
const ESM::Spell* b = spells.find(right);
|
||||||
|
|
||||||
|
int cmp = a->mName.compare(b->mName);
|
||||||
|
return cmp < 0;
|
||||||
|
}
|
||||||
|
|
||||||
class SpellWindow : public WindowPinnableBase, public NoDrop
|
class SpellWindow : public WindowPinnableBase, public NoDrop
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -10,16 +10,6 @@
|
||||||
#include "steering.hpp"
|
#include "steering.hpp"
|
||||||
#include "movement.hpp"
|
#include "movement.hpp"
|
||||||
|
|
||||||
namespace
|
|
||||||
{
|
|
||||||
float sgn(float a)
|
|
||||||
{
|
|
||||||
if(a > 0)
|
|
||||||
return 1.0;
|
|
||||||
return -1.0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MWMechanics::AiActivate::AiActivate(const std::string &objectId)
|
MWMechanics::AiActivate::AiActivate(const std::string &objectId)
|
||||||
: mObjectId(objectId)
|
: mObjectId(objectId)
|
||||||
{
|
{
|
||||||
|
@ -38,7 +28,7 @@ bool MWMechanics::AiActivate::execute (const MWWorld::Ptr& actor,float duration)
|
||||||
MWWorld::Ptr player = world->getPlayerPtr();
|
MWWorld::Ptr player = world->getPlayerPtr();
|
||||||
if(cell->mData.mX != player.getCell()->getCell()->mData.mX)
|
if(cell->mData.mX != player.getCell()->getCell()->mData.mX)
|
||||||
{
|
{
|
||||||
int sideX = sgn(cell->mData.mX - player.getCell()->getCell()->mData.mX);
|
int sideX = PathFinder::sgn(cell->mData.mX - player.getCell()->getCell()->mData.mX);
|
||||||
//check if actor is near the border of an inactive cell. If so, stop walking.
|
//check if actor is near the border of an inactive cell. If so, stop walking.
|
||||||
if(sideX * (pos.pos[0] - cell->mData.mX*ESM::Land::REAL_SIZE) >
|
if(sideX * (pos.pos[0] - cell->mData.mX*ESM::Land::REAL_SIZE) >
|
||||||
sideX * (ESM::Land::REAL_SIZE/2.0f - 200.0f))
|
sideX * (ESM::Land::REAL_SIZE/2.0f - 200.0f))
|
||||||
|
@ -49,7 +39,7 @@ bool MWMechanics::AiActivate::execute (const MWWorld::Ptr& actor,float duration)
|
||||||
}
|
}
|
||||||
if(cell->mData.mY != player.getCell()->getCell()->mData.mY)
|
if(cell->mData.mY != player.getCell()->getCell()->mData.mY)
|
||||||
{
|
{
|
||||||
int sideY = sgn(cell->mData.mY - player.getCell()->getCell()->mData.mY);
|
int sideY = PathFinder::sgn(cell->mData.mY - player.getCell()->getCell()->mData.mY);
|
||||||
//check if actor is near the border of an inactive cell. If so, stop walking.
|
//check if actor is near the border of an inactive cell. If so, stop walking.
|
||||||
if(sideY * (pos.pos[1] - cell->mData.mY*ESM::Land::REAL_SIZE) >
|
if(sideY * (pos.pos[1] - cell->mData.mY*ESM::Land::REAL_SIZE) >
|
||||||
sideY * (ESM::Land::REAL_SIZE/2.0f - 200.0f))
|
sideY * (ESM::Land::REAL_SIZE/2.0f - 200.0f))
|
||||||
|
|
|
@ -11,16 +11,6 @@
|
||||||
#include "steering.hpp"
|
#include "steering.hpp"
|
||||||
#include "movement.hpp"
|
#include "movement.hpp"
|
||||||
|
|
||||||
namespace
|
|
||||||
{
|
|
||||||
float sgn(float a)
|
|
||||||
{
|
|
||||||
if(a > 0)
|
|
||||||
return 1.0;
|
|
||||||
return -1.0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
TODO: Test vanilla behavior on passing x0, y0, and z0 with duration of anything including 0.
|
TODO: Test vanilla behavior on passing x0, y0, and z0 with duration of anything including 0.
|
||||||
TODO: Different behavior for AIEscort a d x y z and AIEscortCell a c d x y z.
|
TODO: Different behavior for AIEscort a d x y z and AIEscortCell a c d x y z.
|
||||||
|
@ -91,7 +81,7 @@ namespace MWMechanics
|
||||||
|
|
||||||
if(actor.getCell()->getCell()->mData.mX != player.getCell()->getCell()->mData.mX)
|
if(actor.getCell()->getCell()->mData.mX != player.getCell()->getCell()->mData.mX)
|
||||||
{
|
{
|
||||||
int sideX = sgn(actor.getCell()->getCell()->mData.mX - player.getCell()->getCell()->mData.mX);
|
int sideX = PathFinder::sgn(actor.getCell()->getCell()->mData.mX - player.getCell()->getCell()->mData.mX);
|
||||||
// Check if actor is near the border of an inactive cell. If so, pause walking.
|
// Check if actor is near the border of an inactive cell. If so, pause walking.
|
||||||
if(sideX * (pos.pos[0] - actor.getCell()->getCell()->mData.mX * ESM::Land::REAL_SIZE) > sideX * (ESM::Land::REAL_SIZE /
|
if(sideX * (pos.pos[0] - actor.getCell()->getCell()->mData.mX * ESM::Land::REAL_SIZE) > sideX * (ESM::Land::REAL_SIZE /
|
||||||
2.0 - 200))
|
2.0 - 200))
|
||||||
|
@ -102,7 +92,7 @@ namespace MWMechanics
|
||||||
}
|
}
|
||||||
if(actor.getCell()->getCell()->mData.mY != player.getCell()->getCell()->mData.mY)
|
if(actor.getCell()->getCell()->mData.mY != player.getCell()->getCell()->mData.mY)
|
||||||
{
|
{
|
||||||
int sideY = sgn(actor.getCell()->getCell()->mData.mY - player.getCell()->getCell()->mData.mY);
|
int sideY = PathFinder::sgn(actor.getCell()->getCell()->mData.mY - player.getCell()->getCell()->mData.mY);
|
||||||
// Check if actor is near the border of an inactive cell. If so, pause walking.
|
// Check if actor is near the border of an inactive cell. If so, pause walking.
|
||||||
if(sideY*(pos.pos[1] - actor.getCell()->getCell()->mData.mY * ESM::Land::REAL_SIZE) > sideY * (ESM::Land::REAL_SIZE /
|
if(sideY*(pos.pos[1] - actor.getCell()->getCell()->mData.mY * ESM::Land::REAL_SIZE) > sideY * (ESM::Land::REAL_SIZE /
|
||||||
2.0 - 200))
|
2.0 - 200))
|
||||||
|
|
|
@ -9,16 +9,6 @@
|
||||||
#include "steering.hpp"
|
#include "steering.hpp"
|
||||||
#include "movement.hpp"
|
#include "movement.hpp"
|
||||||
|
|
||||||
namespace
|
|
||||||
{
|
|
||||||
float sgn(float a)
|
|
||||||
{
|
|
||||||
if(a > 0)
|
|
||||||
return 1.0;
|
|
||||||
return -1.0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace MWMechanics
|
namespace MWMechanics
|
||||||
{
|
{
|
||||||
AiTravel::AiTravel(float x, float y, float z)
|
AiTravel::AiTravel(float x, float y, float z)
|
||||||
|
@ -43,7 +33,7 @@ namespace MWMechanics
|
||||||
MWWorld::Ptr player = world->getPlayerPtr();
|
MWWorld::Ptr player = world->getPlayerPtr();
|
||||||
if(cell->mData.mX != player.getCell()->getCell()->mData.mX)
|
if(cell->mData.mX != player.getCell()->getCell()->mData.mX)
|
||||||
{
|
{
|
||||||
int sideX = sgn(cell->mData.mX - player.getCell()->getCell()->mData.mX);
|
int sideX = PathFinder::sgn(cell->mData.mX - player.getCell()->getCell()->mData.mX);
|
||||||
//check if actor is near the border of an inactive cell. If so, stop walking.
|
//check if actor is near the border of an inactive cell. If so, stop walking.
|
||||||
if(sideX * (pos.pos[0] - cell->mData.mX*ESM::Land::REAL_SIZE) >
|
if(sideX * (pos.pos[0] - cell->mData.mX*ESM::Land::REAL_SIZE) >
|
||||||
sideX * (ESM::Land::REAL_SIZE/2.0f - 200.0f))
|
sideX * (ESM::Land::REAL_SIZE/2.0f - 200.0f))
|
||||||
|
@ -54,7 +44,7 @@ namespace MWMechanics
|
||||||
}
|
}
|
||||||
if(cell->mData.mY != player.getCell()->getCell()->mData.mY)
|
if(cell->mData.mY != player.getCell()->getCell()->mData.mY)
|
||||||
{
|
{
|
||||||
int sideY = sgn(cell->mData.mY - player.getCell()->getCell()->mData.mY);
|
int sideY = PathFinder::sgn(cell->mData.mY - player.getCell()->getCell()->mData.mY);
|
||||||
//check if actor is near the border of an inactive cell. If so, stop walking.
|
//check if actor is near the border of an inactive cell. If so, stop walking.
|
||||||
if(sideY * (pos.pos[1] - cell->mData.mY*ESM::Land::REAL_SIZE) >
|
if(sideY * (pos.pos[1] - cell->mData.mY*ESM::Land::REAL_SIZE) >
|
||||||
sideY * (ESM::Land::REAL_SIZE/2.0f - 200.0f))
|
sideY * (ESM::Land::REAL_SIZE/2.0f - 200.0f))
|
||||||
|
|
|
@ -15,16 +15,6 @@
|
||||||
#include "steering.hpp"
|
#include "steering.hpp"
|
||||||
#include "movement.hpp"
|
#include "movement.hpp"
|
||||||
|
|
||||||
namespace
|
|
||||||
{
|
|
||||||
float sgn(float a)
|
|
||||||
{
|
|
||||||
if(a > 0)
|
|
||||||
return 1.0;
|
|
||||||
return -1.0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace MWMechanics
|
namespace MWMechanics
|
||||||
{
|
{
|
||||||
// NOTE: determined empirically but probably need further tweaking
|
// NOTE: determined empirically but probably need further tweaking
|
||||||
|
|
|
@ -37,13 +37,6 @@ namespace
|
||||||
return sqrt(x * x + y * y + z * z);
|
return sqrt(x * x + y * y + z * z);
|
||||||
}
|
}
|
||||||
|
|
||||||
static float sgn(Ogre::Radian a)
|
|
||||||
{
|
|
||||||
if(a.valueRadians() > 0)
|
|
||||||
return 1.0;
|
|
||||||
return -1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int getClosestPoint(const ESM::Pathgrid* grid, float x, float y, float z)
|
int getClosestPoint(const ESM::Pathgrid* grid, float x, float y, float z)
|
||||||
{
|
{
|
||||||
if(!grid || grid->mPoints.empty())
|
if(!grid || grid->mPoints.empty())
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
#include <components/esm/loadpgrd.hpp>
|
#include <components/esm/loadpgrd.hpp>
|
||||||
#include <list>
|
#include <list>
|
||||||
|
|
||||||
|
#include <OgreMath.h>
|
||||||
|
|
||||||
namespace MWWorld
|
namespace MWWorld
|
||||||
{
|
{
|
||||||
class CellStore;
|
class CellStore;
|
||||||
|
@ -16,6 +18,20 @@ namespace MWMechanics
|
||||||
public:
|
public:
|
||||||
PathFinder();
|
PathFinder();
|
||||||
|
|
||||||
|
static float sgn(Ogre::Radian a)
|
||||||
|
{
|
||||||
|
if(a.valueRadians() > 0)
|
||||||
|
return 1.0;
|
||||||
|
return -1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static float sgn(float a)
|
||||||
|
{
|
||||||
|
if(a > 0)
|
||||||
|
return 1.0;
|
||||||
|
return -1.0;
|
||||||
|
}
|
||||||
|
|
||||||
void clearPath();
|
void clearPath();
|
||||||
|
|
||||||
void buildPathgridGraph(const ESM::Pathgrid* pathGrid);
|
void buildPathgridGraph(const ESM::Pathgrid* pathGrid);
|
||||||
|
|
|
@ -121,7 +121,7 @@ namespace MWScript
|
||||||
|
|
||||||
std::string itemName;
|
std::string itemName;
|
||||||
for (MWWorld::ContainerStoreIterator iter(store.begin()); iter != store.end(); ++iter)
|
for (MWWorld::ContainerStoreIterator iter(store.begin()); iter != store.end(); ++iter)
|
||||||
if (Misc::StringUtils::ciEqual(iter->getCellRef().mRefID, item))
|
if (::Misc::StringUtils::ciEqual(iter->getCellRef().mRefID, item))
|
||||||
itemName = iter->getClass().getName(*iter);
|
itemName = iter->getClass().getName(*iter);
|
||||||
|
|
||||||
int numRemoved = store.remove(item, count, ptr);
|
int numRemoved = store.remove(item, count, ptr);
|
||||||
|
@ -165,7 +165,7 @@ namespace MWScript
|
||||||
MWWorld::ContainerStoreIterator it = invStore.begin();
|
MWWorld::ContainerStoreIterator it = invStore.begin();
|
||||||
for (; it != invStore.end(); ++it)
|
for (; it != invStore.end(); ++it)
|
||||||
{
|
{
|
||||||
if (Misc::StringUtils::ciEqual(it->getCellRef().mRefID, item))
|
if (::Misc::StringUtils::ciEqual(it->getCellRef().mRefID, item))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (it == invStore.end())
|
if (it == invStore.end())
|
||||||
|
@ -268,7 +268,7 @@ namespace MWScript
|
||||||
for (int slot = 0; slot < MWWorld::InventoryStore::Slots; ++slot)
|
for (int slot = 0; slot < MWWorld::InventoryStore::Slots; ++slot)
|
||||||
{
|
{
|
||||||
MWWorld::ContainerStoreIterator it = invStore.getSlot (slot);
|
MWWorld::ContainerStoreIterator it = invStore.getSlot (slot);
|
||||||
if (it != invStore.end() && Misc::StringUtils::ciEqual(it->getCellRef().mRefID, item))
|
if (it != invStore.end() && ::Misc::StringUtils::ciEqual(it->getCellRef().mRefID, item))
|
||||||
{
|
{
|
||||||
runtime.push(1);
|
runtime.push(1);
|
||||||
return;
|
return;
|
||||||
|
@ -295,7 +295,7 @@ namespace MWScript
|
||||||
it != invStore.end(); ++it)
|
it != invStore.end(); ++it)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (Misc::StringUtils::ciEqual(it->getCellRef().mSoul, name))
|
if (::Misc::StringUtils::ciEqual(it->getCellRef().mSoul, name))
|
||||||
{
|
{
|
||||||
runtime.push(1);
|
runtime.push(1);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace MWScript
|
||||||
void GlobalScripts::addScript (const std::string& name)
|
void GlobalScripts::addScript (const std::string& name)
|
||||||
{
|
{
|
||||||
std::map<std::string, std::pair<bool, Locals> >::iterator iter =
|
std::map<std::string, std::pair<bool, Locals> >::iterator iter =
|
||||||
mScripts.find (Misc::StringUtils::lowerCase (name));
|
mScripts.find (::Misc::StringUtils::lowerCase (name));
|
||||||
|
|
||||||
if (iter==mScripts.end())
|
if (iter==mScripts.end())
|
||||||
{
|
{
|
||||||
|
@ -44,7 +44,7 @@ namespace MWScript
|
||||||
void GlobalScripts::removeScript (const std::string& name)
|
void GlobalScripts::removeScript (const std::string& name)
|
||||||
{
|
{
|
||||||
std::map<std::string, std::pair<bool, Locals> >::iterator iter =
|
std::map<std::string, std::pair<bool, Locals> >::iterator iter =
|
||||||
mScripts.find (Misc::StringUtils::lowerCase (name));
|
mScripts.find (::Misc::StringUtils::lowerCase (name));
|
||||||
|
|
||||||
if (iter!=mScripts.end())
|
if (iter!=mScripts.end())
|
||||||
iter->second.first = false;
|
iter->second.first = false;
|
||||||
|
@ -53,7 +53,7 @@ namespace MWScript
|
||||||
bool GlobalScripts::isRunning (const std::string& name) const
|
bool GlobalScripts::isRunning (const std::string& name) const
|
||||||
{
|
{
|
||||||
std::map<std::string, std::pair<bool, Locals> >::const_iterator iter =
|
std::map<std::string, std::pair<bool, Locals> >::const_iterator iter =
|
||||||
mScripts.find (Misc::StringUtils::lowerCase (name));
|
mScripts.find (::Misc::StringUtils::lowerCase (name));
|
||||||
|
|
||||||
if (iter==mScripts.end())
|
if (iter==mScripts.end())
|
||||||
return false;
|
return false;
|
||||||
|
@ -151,7 +151,7 @@ namespace MWScript
|
||||||
|
|
||||||
Locals& GlobalScripts::getLocals (const std::string& name)
|
Locals& GlobalScripts::getLocals (const std::string& name)
|
||||||
{
|
{
|
||||||
std::string name2 = Misc::StringUtils::lowerCase (name);
|
std::string name2 = ::Misc::StringUtils::lowerCase (name);
|
||||||
std::map<std::string, std::pair<bool, Locals> >::iterator iter =
|
std::map<std::string, std::pair<bool, Locals> >::iterator iter =
|
||||||
mScripts.find (name2);
|
mScripts.find (name2);
|
||||||
|
|
||||||
|
|
|
@ -113,7 +113,7 @@ namespace MWScript
|
||||||
virtual void execute (Interpreter::Runtime& runtime)
|
virtual void execute (Interpreter::Runtime& runtime)
|
||||||
{
|
{
|
||||||
std::string cell = (runtime.getStringLiteral (runtime[0].mInteger));
|
std::string cell = (runtime.getStringLiteral (runtime[0].mInteger));
|
||||||
Misc::StringUtils::toLower(cell);
|
::Misc::StringUtils::toLower(cell);
|
||||||
runtime.pop();
|
runtime.pop();
|
||||||
|
|
||||||
// "Will match complete or partial cells, so ShowMap, "Vivec" will show cells Vivec and Vivec, Fred's House as well."
|
// "Will match complete or partial cells, so ShowMap, "Vivec" will show cells Vivec and Vivec, Fred's House as well."
|
||||||
|
@ -126,7 +126,7 @@ namespace MWScript
|
||||||
for (; it != cells.extEnd(); ++it)
|
for (; it != cells.extEnd(); ++it)
|
||||||
{
|
{
|
||||||
std::string name = it->mName;
|
std::string name = it->mName;
|
||||||
Misc::StringUtils::toLower(name);
|
::Misc::StringUtils::toLower(name);
|
||||||
if (name.find(cell) != std::string::npos)
|
if (name.find(cell) != std::string::npos)
|
||||||
MWBase::Environment::get().getWindowManager()->addVisitedLocation (
|
MWBase::Environment::get().getWindowManager()->addVisitedLocation (
|
||||||
it->mName,
|
it->mName,
|
||||||
|
|
|
@ -540,7 +540,7 @@ namespace MWScript
|
||||||
factionID = runtime.getStringLiteral (runtime[0].mInteger);
|
factionID = runtime.getStringLiteral (runtime[0].mInteger);
|
||||||
runtime.pop();
|
runtime.pop();
|
||||||
}
|
}
|
||||||
Misc::StringUtils::toLower(factionID);
|
::Misc::StringUtils::toLower(factionID);
|
||||||
if(factionID != "")
|
if(factionID != "")
|
||||||
{
|
{
|
||||||
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||||
|
@ -569,7 +569,7 @@ namespace MWScript
|
||||||
factionID = runtime.getStringLiteral (runtime[0].mInteger);
|
factionID = runtime.getStringLiteral (runtime[0].mInteger);
|
||||||
runtime.pop();
|
runtime.pop();
|
||||||
}
|
}
|
||||||
Misc::StringUtils::toLower(factionID);
|
::Misc::StringUtils::toLower(factionID);
|
||||||
if(factionID != "")
|
if(factionID != "")
|
||||||
{
|
{
|
||||||
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||||
|
@ -602,7 +602,7 @@ namespace MWScript
|
||||||
factionID = runtime.getStringLiteral (runtime[0].mInteger);
|
factionID = runtime.getStringLiteral (runtime[0].mInteger);
|
||||||
runtime.pop();
|
runtime.pop();
|
||||||
}
|
}
|
||||||
Misc::StringUtils::toLower(factionID);
|
::Misc::StringUtils::toLower(factionID);
|
||||||
if(factionID != "")
|
if(factionID != "")
|
||||||
{
|
{
|
||||||
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||||
|
@ -640,7 +640,7 @@ namespace MWScript
|
||||||
factionID = MWWorld::Class::get(ptr).getNpcStats(ptr).getFactionRanks().begin()->first;
|
factionID = MWWorld::Class::get(ptr).getNpcStats(ptr).getFactionRanks().begin()->first;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Misc::StringUtils::toLower(factionID);
|
::Misc::StringUtils::toLower(factionID);
|
||||||
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||||
if(factionID!="")
|
if(factionID!="")
|
||||||
{
|
{
|
||||||
|
@ -742,7 +742,7 @@ namespace MWScript
|
||||||
if (factionId.empty())
|
if (factionId.empty())
|
||||||
throw std::runtime_error ("failed to determine faction");
|
throw std::runtime_error ("failed to determine faction");
|
||||||
|
|
||||||
Misc::StringUtils::toLower (factionId);
|
::Misc::StringUtils::toLower (factionId);
|
||||||
|
|
||||||
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||||
runtime.push (
|
runtime.push (
|
||||||
|
@ -778,7 +778,7 @@ namespace MWScript
|
||||||
if (factionId.empty())
|
if (factionId.empty())
|
||||||
throw std::runtime_error ("failed to determine faction");
|
throw std::runtime_error ("failed to determine faction");
|
||||||
|
|
||||||
Misc::StringUtils::toLower (factionId);
|
::Misc::StringUtils::toLower (factionId);
|
||||||
|
|
||||||
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||||
MWWorld::Class::get (player).getNpcStats (player).setFactionReputation (factionId, value);
|
MWWorld::Class::get (player).getNpcStats (player).setFactionReputation (factionId, value);
|
||||||
|
@ -813,7 +813,7 @@ namespace MWScript
|
||||||
if (factionId.empty())
|
if (factionId.empty())
|
||||||
throw std::runtime_error ("failed to determine faction");
|
throw std::runtime_error ("failed to determine faction");
|
||||||
|
|
||||||
Misc::StringUtils::toLower (factionId);
|
::Misc::StringUtils::toLower (factionId);
|
||||||
|
|
||||||
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||||
MWWorld::Class::get (player).getNpcStats (player).setFactionReputation (factionId,
|
MWWorld::Class::get (player).getNpcStats (player).setFactionReputation (factionId,
|
||||||
|
@ -858,11 +858,11 @@ namespace MWScript
|
||||||
MWWorld::Ptr ptr = R()(runtime);
|
MWWorld::Ptr ptr = R()(runtime);
|
||||||
|
|
||||||
std::string race = runtime.getStringLiteral(runtime[0].mInteger);
|
std::string race = runtime.getStringLiteral(runtime[0].mInteger);
|
||||||
Misc::StringUtils::toLower(race);
|
::Misc::StringUtils::toLower(race);
|
||||||
runtime.pop();
|
runtime.pop();
|
||||||
|
|
||||||
std::string npcRace = ptr.get<ESM::NPC>()->mBase->mRace;
|
std::string npcRace = ptr.get<ESM::NPC>()->mBase->mRace;
|
||||||
Misc::StringUtils::toLower(npcRace);
|
::Misc::StringUtils::toLower(npcRace);
|
||||||
|
|
||||||
runtime.push (npcRace == race);
|
runtime.push (npcRace == race);
|
||||||
}
|
}
|
||||||
|
@ -906,7 +906,7 @@ namespace MWScript
|
||||||
factionID = MWWorld::Class::get(ptr).getNpcStats(ptr).getFactionRanks().begin()->first;
|
factionID = MWWorld::Class::get(ptr).getNpcStats(ptr).getFactionRanks().begin()->first;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Misc::StringUtils::toLower(factionID);
|
::Misc::StringUtils::toLower(factionID);
|
||||||
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||||
if(factionID!="")
|
if(factionID!="")
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,9 +11,10 @@
|
||||||
namespace MWSound
|
namespace MWSound
|
||||||
{
|
{
|
||||||
|
|
||||||
static void fail(const std::string &msg)
|
void FFmpeg_Decoder::fail(const std::string &msg)
|
||||||
{ throw std::runtime_error("FFmpeg exception: "+msg); }
|
{
|
||||||
|
throw std::runtime_error("FFmpeg exception: "+msg);
|
||||||
|
}
|
||||||
|
|
||||||
int FFmpeg_Decoder::readPacket(void *user_data, uint8_t *buf, int buf_size)
|
int FFmpeg_Decoder::readPacket(void *user_data, uint8_t *buf, int buf_size)
|
||||||
{
|
{
|
||||||
|
|
|
@ -61,6 +61,8 @@ namespace MWSound
|
||||||
virtual void rewind();
|
virtual void rewind();
|
||||||
virtual size_t getSampleOffset();
|
virtual size_t getSampleOffset();
|
||||||
|
|
||||||
|
void fail(const std::string &msg);
|
||||||
|
|
||||||
FFmpeg_Decoder& operator=(const FFmpeg_Decoder &rhs);
|
FFmpeg_Decoder& operator=(const FFmpeg_Decoder &rhs);
|
||||||
FFmpeg_Decoder(const FFmpeg_Decoder &rhs);
|
FFmpeg_Decoder(const FFmpeg_Decoder &rhs);
|
||||||
|
|
||||||
|
|
|
@ -111,7 +111,7 @@ void BSAFile::readHeader()
|
||||||
fail("Directory information larger than entire archive");
|
fail("Directory information larger than entire archive");
|
||||||
|
|
||||||
// Read the offset info into a temporary buffer
|
// Read the offset info into a temporary buffer
|
||||||
vector<uint32_t> offsets(3*filenum);
|
std::vector<uint32_t> offsets(3*filenum);
|
||||||
input.read(reinterpret_cast<char*>(&offsets[0]), 12*filenum);
|
input.read(reinterpret_cast<char*>(&offsets[0]), 12*filenum);
|
||||||
|
|
||||||
// Read the string table
|
// Read the string table
|
||||||
|
|
|
@ -18,7 +18,7 @@ bool Compiler::DeclarationParser::parseName (const std::string& name, const Toke
|
||||||
{
|
{
|
||||||
if (mState==State_Name)
|
if (mState==State_Name)
|
||||||
{
|
{
|
||||||
std::string name2 = Misc::StringUtils::lowerCase (name);
|
std::string name2 = ::Misc::StringUtils::lowerCase (name);
|
||||||
|
|
||||||
char type = mLocals.getType (name2);
|
char type = mLocals.getType (name2);
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ namespace Interpreter
|
||||||
return literalBlock+offset;
|
return literalBlock+offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Runtime::configure (const Interpreter::Type_Code *code, int codeSize, Context& context)
|
void Runtime::configure (const Type_Code *code, int codeSize, Context& context)
|
||||||
{
|
{
|
||||||
clear();
|
clear();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue