OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
player.hpp
Go to the documentation of this file.
1 #ifndef GAME_MWWORLD_PLAYER_H
2 #define GAME_MWWORLD_PLAYER_H
3 
4 #include <map>
5 
6 #include "../mwworld/refdata.hpp"
7 #include "../mwworld/livecellref.hpp"
8 
9 #include "../mwmechanics/drawstate.hpp"
10 #include "../mwmechanics/stat.hpp"
11 
13 #include <components/esm/attr.hpp>
14 
15 namespace ESM
16 {
17  struct NPC;
18  class ESMWriter;
19  class ESMReader;
20 }
21 
22 namespace Loading
23 {
24  class Listener;
25 }
26 
27 namespace MWWorld
28 {
29  class CellStore;
30 
32  class Player
33  {
36  std::string mSign;
37 
39 
41  // If no position was marked, this is NULL
43 
44  bool mAutoMove;
47 
48  int mCurrentCrimeId; // the id assigned witnesses
49  int mPaidCrimeId; // the last id paid off (0 bounty)
50 
51  typedef std::map<std::string, std::string> PreviousItems; // previous equipped items, needed for bound spells
53 
54  // Saved stats prior to becoming a werewolf
57 
59  bool mJumping;
60 
61  public:
62 
63  Player(const ESM::NPC *player);
64 
65  void saveStats();
66  void restoreStats();
67  void setWerewolfStats();
68 
69  // For mark/recall magic effects
70  void markPosition (CellStore* markedCell, const ESM::Position& markedPosition);
71  void getMarkedPosition (CellStore*& markedCell, ESM::Position& markedPosition) const;
72 
76  void setLastKnownExteriorPosition (const osg::Vec3f& position) { mLastKnownExteriorPosition = position; }
78 
79  void set (const ESM::NPC *player);
80 
81  void setCell (MWWorld::CellStore *cellStore);
82 
84 
85  void setBirthSign(const std::string &sign);
86  const std::string &getBirthSign() const;
87 
90 
92  void activate();
93 
94  bool getAutoMove() const;
95  void setAutoMove (bool enable);
96 
97  void setLeftRight (int value);
98 
99  void setForwardBackward (int value);
100  void setUpDown(int value);
101 
102  void setRunState(bool run);
103  void setSneak(bool sneak);
104 
105  void yaw(float yaw);
106  void pitch(float pitch);
107  void roll(float roll);
108 
109  bool wasTeleported() const;
110  void setTeleported(bool teleported);
111 
112  void setAttackingOrSpell(bool attackingOrSpell);
113  bool getAttackingOrSpell() const;
114 
115  void setJumping(bool jumping);
116  bool getJumping() const;
117 
119  bool isInCombat();
120 
121  bool enemiesNearby();
122 
123  void clear();
124 
125  void write (ESM::ESMWriter& writer, Loading::Listener& progress) const;
126 
127  bool readRecord (ESM::ESMReader& reader, uint32_t type);
128 
129  int getNewCrimeId(); // get new id for witnesses
130  void recordCrimeId(); // record the paid crime id when bounty is 0
131  int getCrimeId() const; // get the last paid crime id
132 
133  void setPreviousItem(const std::string& boundItemId, const std::string& previousItemId);
134  std::string getPreviousItem(const std::string& boundItemId);
135  void erasePreviousItem(const std::string& boundItemId);
136  };
137 }
138 #endif
bool getJumping() const
Definition: player.cpp:264
void erasePreviousItem(const std::string &boundItemId)
Definition: player.cpp:493
Definition: stat.hpp:123
bool getAutoMove() const
Definition: player.cpp:141
MWWorld::CellStore * mCellStore
Definition: player.hpp:35
const std::string & getBirthSign() const
Definition: player.cpp:130
void setLeftRight(int value)
Definition: player.cpp:160
bool readRecord(ESM::ESMReader &reader, uint32_t type)
Definition: player.cpp:365
void setWerewolfStats()
Definition: player.cpp:75
int mPaidCrimeId
Definition: player.hpp:49
bool isInCombat()
Checks all nearby actors to see if anyone has an aipackage against you.
Definition: player.cpp:269
Definition: esmreader.hpp:21
void setTeleported(bool teleported)
Definition: player.cpp:244
NPC object representing the player and additional player data.
Definition: player.hpp:32
CellStore * mMarkedCell
Definition: player.hpp:42
int getCrimeId() const
Definition: player.cpp:478
void pitch(float pitch)
Definition: player.cpp:201
Definition: loadskil.hpp:74
std::string mSign
Definition: player.hpp:36
Definition: loadinglistener.hpp:8
MWMechanics::AttributeValue mSaveAttributes[ESM::Attribute::Length]
Definition: player.hpp:56
void setLastKnownExteriorPosition(const osg::Vec3f &position)
Definition: player.hpp:76
void setDrawState(MWMechanics::DrawState_ state)
Definition: player.cpp:135
void yaw(float yaw)
Definition: player.cpp:196
void setBirthSign(const std::string &sign)
Definition: player.cpp:125
MWMechanics::DrawState_ getDrawState()
Definition: player.cpp:212
PreviousItems mPreviousItems
Definition: player.hpp:52
Definition: esmwriter.hpp:17
void recordCrimeId()
Definition: player.cpp:473
MWMechanics::SkillValue mSaveSkills[ESM::Skill::Length]
Definition: player.hpp:55
void clear()
Definition: player.cpp:291
void activate()
Activate the object under the crosshair, if any.
Definition: player.cpp:218
void setPreviousItem(const std::string &boundItemId, const std::string &previousItemId)
Definition: player.cpp:483
osg::Vec3f getLastKnownExteriorPosition() const
Definition: player.hpp:77
void write(ESM::ESMWriter &writer, Loading::Listener &progress) const
Definition: player.cpp:326
std::map< std::string, std::string > PreviousItems
Definition: player.hpp:51
void getMarkedPosition(CellStore *&markedCell, ESM::Position &markedPosition) const
Definition: player.cpp:284
void restoreStats()
Definition: player.cpp:62
DrawState_
Definition: drawstate.hpp:7
Definition: loadnpc.hpp:23
bool enemiesNearby()
Definition: player.cpp:273
int mCurrentCrimeId
Definition: player.hpp:48
void setRunState(bool run)
Definition: player.cpp:184
void markPosition(CellStore *markedCell, const ESM::Position &markedPosition)
Definition: player.cpp:278
bool getAttackingOrSpell() const
Definition: player.cpp:254
bool wasTeleported() const
Definition: player.cpp:239
LiveCellRef< ESM::NPC > mPlayer
Definition: player.hpp:34
Mutable state of a cell.
Definition: cellstore.hpp:51
void set(const ESM::NPC *player)
Definition: player.cpp:109
void setForwardBackward(int value)
Definition: player.cpp:166
void setAttackingOrSpell(bool attackingOrSpell)
Definition: player.cpp:249
bool mAutoMove
Definition: player.hpp:44
int mForwardBackward
Definition: player.hpp:45
Definition: defs.hpp:38
void setAutoMove(bool enable)
Definition: player.cpp:146
MWWorld::Ptr getPlayer()
Definition: player.cpp:119
void setSneak(bool sneak)
Definition: player.cpp:190
Definition: stat.hpp:152
void setUpDown(int value)
Definition: player.cpp:178
Definition: attr.hpp:24
Player(const ESM::NPC *player)
Definition: player.cpp:30
void roll(float roll)
Definition: player.cpp:206
bool mJumping
Definition: player.hpp:59
Pointer to a LiveCellRef.
Definition: ptr.hpp:19
int getNewCrimeId()
Definition: player.cpp:468
bool mTeleported
Definition: player.hpp:46
void enable(CodeContainer &code, Literals &literals, const std::string &id)
Definition: generator.cpp:870
bool mAttackingOrSpell
Definition: player.hpp:58
void setJumping(bool jumping)
Definition: player.cpp:259
osg::Vec3f mLastKnownExteriorPosition
Definition: player.hpp:38
ESM::Position mMarkedPosition
Definition: player.hpp:40
void saveStats()
Definition: player.cpp:52
std::string getPreviousItem(const std::string &boundItemId)
Definition: player.cpp:488
void setCell(MWWorld::CellStore *cellStore)
Definition: player.cpp:114