OpenMW
|
00001 #ifndef GAME_MWCLASS_NPC_H 00002 #define GAME_MWCLASS_NPC_H 00003 00004 #include "../mwworld/class.hpp" 00005 00006 namespace ESM 00007 { 00008 class GameSetting; 00009 } 00010 00011 namespace MWClass 00012 { 00013 class Npc : public MWWorld::Class 00014 { 00015 void ensureCustomData (const MWWorld::Ptr& ptr) const; 00016 00017 virtual MWWorld::Ptr 00018 copyToCellImpl(const MWWorld::Ptr &ptr, MWWorld::CellStore &cell) const; 00019 00020 static const ESM::GameSetting *fMinWalkSpeed; 00021 static const ESM::GameSetting *fMaxWalkSpeed; 00022 static const ESM::GameSetting *fEncumberedMoveEffect; 00023 static const ESM::GameSetting *fSneakSpeedMultiplier; 00024 static const ESM::GameSetting *fAthleticsRunBonus; 00025 static const ESM::GameSetting *fBaseRunMultiplier; 00026 static const ESM::GameSetting *fMinFlySpeed; 00027 static const ESM::GameSetting *fMaxFlySpeed; 00028 static const ESM::GameSetting *fSwimRunBase; 00029 static const ESM::GameSetting *fSwimRunAthleticsMult; 00030 static const ESM::GameSetting *fJumpEncumbranceBase; 00031 static const ESM::GameSetting *fJumpEncumbranceMultiplier; 00032 static const ESM::GameSetting *fJumpAcrobaticsBase; 00033 static const ESM::GameSetting *fJumpAcroMultiplier; 00034 static const ESM::GameSetting *fJumpRunMultiplier; 00035 static const ESM::GameSetting *fWereWolfRunMult; 00036 00037 public: 00038 00039 virtual std::string getId (const MWWorld::Ptr& ptr) const; 00041 00042 virtual void insertObjectRendering (const MWWorld::Ptr& ptr, MWRender::RenderingInterface& renderingInterface) const; 00044 00045 virtual void insertObject(const MWWorld::Ptr& ptr, MWWorld::PhysicsSystem& physics) const; 00046 00047 virtual void adjustPosition(const MWWorld::Ptr& ptr) const; 00048 00049 virtual std::string getName (const MWWorld::Ptr& ptr) const; 00052 00053 virtual MWMechanics::CreatureStats& getCreatureStats (const MWWorld::Ptr& ptr) const; 00055 00056 virtual MWMechanics::NpcStats& getNpcStats (const MWWorld::Ptr& ptr) const; 00058 00059 virtual MWWorld::ContainerStore& getContainerStore (const MWWorld::Ptr& ptr) const; 00061 00062 virtual bool hasToolTip (const MWWorld::Ptr& ptr) const; 00064 00065 virtual MWGui::ToolTipInfo getToolTipInfo (const MWWorld::Ptr& ptr) const; 00067 00068 virtual MWWorld::InventoryStore& getInventoryStore (const MWWorld::Ptr& ptr) const; 00070 00071 virtual void hit(const MWWorld::Ptr& ptr, int type) const; 00072 00073 virtual void onHit(const MWWorld::Ptr &ptr, float damage, bool ishealth, const MWWorld::Ptr &object, const MWWorld::Ptr &attacker, bool successful) const; 00074 00075 virtual void setActorHealth(const MWWorld::Ptr& ptr, float health, const MWWorld::Ptr& attacker) const; 00076 00077 virtual boost::shared_ptr<MWWorld::Action> activate (const MWWorld::Ptr& ptr, 00078 const MWWorld::Ptr& actor) const; 00080 00081 virtual std::string getScript (const MWWorld::Ptr& ptr) const; 00083 00084 virtual void setForceStance (const MWWorld::Ptr& ptr, Stance stance, bool force) const; 00086 00087 virtual void setStance (const MWWorld::Ptr& ptr, Stance stance, bool set) const; 00089 00090 virtual bool getStance (const MWWorld::Ptr& ptr, Stance stance, bool ignoreForce = false) 00091 const; 00093 00094 virtual float getSpeed (const MWWorld::Ptr& ptr) const; 00096 00097 virtual float getJump(const MWWorld::Ptr &ptr) const; 00099 00100 virtual float getFallDamage(const MWWorld::Ptr &ptr, float fallHeight) const; 00102 00103 virtual MWMechanics::Movement& getMovementSettings (const MWWorld::Ptr& ptr) const; 00105 00106 virtual Ogre::Vector3 getMovementVector (const MWWorld::Ptr& ptr) const; 00109 00110 virtual Ogre::Vector3 getRotationVector (const MWWorld::Ptr& ptr) const; 00112 00113 virtual float getCapacity (const MWWorld::Ptr& ptr) const; 00116 00117 virtual float getEncumbrance (const MWWorld::Ptr& ptr) const; 00120 00121 virtual float getArmorRating (const MWWorld::Ptr& ptr) const; 00123 00124 virtual bool apply (const MWWorld::Ptr& ptr, const std::string& id, 00125 const MWWorld::Ptr& actor) const; 00129 00130 virtual void adjustScale (const MWWorld::Ptr &ptr, float &scale) const; 00131 00132 virtual void skillUsageSucceeded (const MWWorld::Ptr& ptr, int skill, int usageType) const; 00134 00135 virtual void adjustRotation(const MWWorld::Ptr& ptr,float& x,float& y,float& z) const; 00136 00137 virtual bool isEssential (const MWWorld::Ptr& ptr) const; 00139 00140 virtual int getServices (const MWWorld::Ptr& actor) const; 00141 00142 virtual bool isPersistent (const MWWorld::Ptr& ptr) const; 00143 00144 virtual std::string getSoundIdFromSndGen(const MWWorld::Ptr &ptr, const std::string &name) const; 00145 00146 static void registerSelf(); 00147 00148 virtual std::string getModel(const MWWorld::Ptr &ptr) const; 00149 00150 virtual bool isActor() const { 00151 return true; 00152 } 00153 00154 virtual bool isNpc() const { 00155 return true; 00156 } 00157 }; 00158 } 00159 00160 #endif