forked from mirror/openmw-tes3mp
Moved mWitnesses into Player. resetCrime for paying fine.
This commit is contained in:
parent
7c0b51fb7e
commit
6f1211dd8d
7 changed files with 27 additions and 24 deletions
|
@ -17,7 +17,6 @@ namespace MWMechanics
|
||||||
mAttacked (false), mHostile (false),
|
mAttacked (false), mHostile (false),
|
||||||
mAttackingOrSpell(false),
|
mAttackingOrSpell(false),
|
||||||
mIsWerewolf(false),
|
mIsWerewolf(false),
|
||||||
mWitnesses(),
|
|
||||||
mFallHeight(0), mRecalcDynamicStats(false), mKnockdown(false), mHitRecovery(false), mBlock(false),
|
mFallHeight(0), mRecalcDynamicStats(false), mKnockdown(false), mHitRecovery(false), mBlock(false),
|
||||||
mMovementFlags(0), mDrawState (DrawState_Nothing), mAttackStrength(0.f)
|
mMovementFlags(0), mDrawState (DrawState_Nothing), mAttackStrength(0.f)
|
||||||
{
|
{
|
||||||
|
@ -497,17 +496,4 @@ namespace MWMechanics
|
||||||
{
|
{
|
||||||
return mGoldPool;
|
return mGoldPool;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreatureStats::addPlayerWitnesses(std::vector<MWWorld::Ptr> witnesses)
|
|
||||||
{
|
|
||||||
mWitnesses.insert(mWitnesses.end(), witnesses.begin(), witnesses.end());
|
|
||||||
}
|
|
||||||
std::vector<MWWorld::Ptr> CreatureStats::getPlayerWitnesses() const
|
|
||||||
{
|
|
||||||
return mWitnesses;
|
|
||||||
}
|
|
||||||
void CreatureStats::resetPlayerWitnesses()
|
|
||||||
{
|
|
||||||
mWitnesses.clear();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,8 +59,6 @@ namespace MWMechanics
|
||||||
|
|
||||||
int mGoldPool; // the pool of merchant gold not in inventory
|
int mGoldPool; // the pool of merchant gold not in inventory
|
||||||
|
|
||||||
std::vector<MWWorld::Ptr> mWitnesses; // the witnesses to players crimes
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool mIsWerewolf;
|
bool mIsWerewolf;
|
||||||
AttributeValue mWerewolfAttributes[8];
|
AttributeValue mWerewolfAttributes[8];
|
||||||
|
@ -235,10 +233,6 @@ namespace MWMechanics
|
||||||
|
|
||||||
void setGoldPool(int pool);
|
void setGoldPool(int pool);
|
||||||
int getGoldPool() const;
|
int getGoldPool() const;
|
||||||
|
|
||||||
void addPlayerWitnesses(std::vector<MWWorld::Ptr> witnesses);
|
|
||||||
std::vector<MWWorld::Ptr> getPlayerWitnesses() const;
|
|
||||||
void resetPlayerWitnesses();
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -901,7 +901,7 @@ namespace MWMechanics
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (reported)
|
if (reported)
|
||||||
ptr.getClass().getCreatureStats(ptr).addPlayerWitnesses(neighbors);
|
MWBase::Environment::get().getWorld()->getPlayer().addPlayerWitnesses(neighbors);
|
||||||
return reported;
|
return reported;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -810,9 +810,11 @@ namespace MWScript
|
||||||
public:
|
public:
|
||||||
virtual void execute(Interpreter::Runtime &runtime)
|
virtual void execute(Interpreter::Runtime &runtime)
|
||||||
{
|
{
|
||||||
|
MWBase::World* world = MWBase::Environment::get().getWorld();
|
||||||
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||||
player.getClass().getNpcStats(player).setBounty(0);
|
player.getClass().getNpcStats(player).setBounty(0);
|
||||||
MWBase::Environment::get().getWorld()->confiscateStolenItems(player);
|
world->confiscateStolenItems(player);
|
||||||
|
world->resetCrimes(player);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -821,8 +823,10 @@ namespace MWScript
|
||||||
public:
|
public:
|
||||||
virtual void execute(Interpreter::Runtime &runtime)
|
virtual void execute(Interpreter::Runtime &runtime)
|
||||||
{
|
{
|
||||||
|
MWBase::World* world = MWBase::Environment::get().getWorld();
|
||||||
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||||
player.getClass().getNpcStats(player).setBounty(0);
|
player.getClass().getNpcStats(player).setBounty(0);
|
||||||
|
world->resetCrimes(player);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -274,4 +274,17 @@ namespace MWWorld
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Player::addPlayerWitnesses(std::vector<MWWorld::Ptr> witnesses)
|
||||||
|
{
|
||||||
|
mWitnesses.insert(mWitnesses.end(), witnesses.begin(), witnesses.end());
|
||||||
|
}
|
||||||
|
std::vector<MWWorld::Ptr> Player::getPlayerWitnesses() const
|
||||||
|
{
|
||||||
|
return mWitnesses;
|
||||||
|
}
|
||||||
|
void Player::resetPlayerWitnesses()
|
||||||
|
{
|
||||||
|
mWitnesses.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,8 @@ namespace MWWorld
|
||||||
bool mAutoMove;
|
bool mAutoMove;
|
||||||
int mForwardBackward;
|
int mForwardBackward;
|
||||||
bool mTeleported;
|
bool mTeleported;
|
||||||
|
|
||||||
|
std::vector<MWWorld::Ptr> mWitnesses;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Player(const ESM::NPC *player, const MWBase::World& world);
|
Player(const ESM::NPC *player, const MWBase::World& world);
|
||||||
|
@ -94,6 +96,10 @@ namespace MWWorld
|
||||||
void write (ESM::ESMWriter& writer) const;
|
void write (ESM::ESMWriter& writer) const;
|
||||||
|
|
||||||
bool readRecord (ESM::ESMReader& reader, int32_t type);
|
bool readRecord (ESM::ESMReader& reader, int32_t type);
|
||||||
|
|
||||||
|
void addPlayerWitnesses(std::vector<MWWorld::Ptr> witnesses);
|
||||||
|
std::vector<MWWorld::Ptr> getPlayerWitnesses() const;
|
||||||
|
void resetPlayerWitnesses();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2777,7 +2777,7 @@ namespace MWWorld
|
||||||
void World::resetCrimes(const MWWorld::Ptr& ptr)
|
void World::resetCrimes(const MWWorld::Ptr& ptr)
|
||||||
{
|
{
|
||||||
// Reset witnesses to the players crimes
|
// Reset witnesses to the players crimes
|
||||||
std::vector<MWWorld::Ptr> neighbors = ptr.getClass().getCreatureStats(ptr).getPlayerWitnesses();
|
std::vector<MWWorld::Ptr> neighbors = mPlayer->getPlayerWitnesses();
|
||||||
for (std::vector<MWWorld::Ptr>::iterator it = neighbors.begin(); it != neighbors.end(); ++it)
|
for (std::vector<MWWorld::Ptr>::iterator it = neighbors.begin(); it != neighbors.end(); ++it)
|
||||||
{
|
{
|
||||||
// Reset states
|
// Reset states
|
||||||
|
@ -2790,7 +2790,7 @@ namespace MWWorld
|
||||||
it->getClass().getCreatureStats(*it).getAiSequence().stopPersue();
|
it->getClass().getCreatureStats(*it).getAiSequence().stopPersue();
|
||||||
|
|
||||||
}
|
}
|
||||||
ptr.getClass().getCreatureStats(ptr).resetPlayerWitnesses();
|
mPlayer->resetPlayerWitnesses();
|
||||||
}
|
}
|
||||||
|
|
||||||
void World::spawnRandomCreature(const std::string &creatureList)
|
void World::spawnRandomCreature(const std::string &creatureList)
|
||||||
|
|
Loading…
Reference in a new issue