OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
interpretercontext.hpp
Go to the documentation of this file.
1 #ifndef GAME_SCRIPT_INTERPRETERCONTEXT_H
2 #define GAME_SCRIPT_INTERPRETERCONTEXT_H
3 
5 
6 #include "../mwworld/ptr.hpp"
7 #include "../mwworld/action.hpp"
8 
9 namespace MWSound
10 {
11  class SoundManager;
12 }
13 
14 namespace MWInput
15 {
16  struct MWInputManager;
17 }
18 
19 namespace MWScript
20 {
21  class Locals;
22 
24  {
27 
28  std::string mTargetId;
29 
32  MWWorld::Ptr getReferenceImp (const std::string& id = "", bool activeOnly = false,
33  bool doThrow=true);
34 
37  const MWWorld::Ptr getReferenceImp (const std::string& id = "",
38  bool activeOnly = false, bool doThrow=true) const;
39 
40  const Locals& getMemberLocals (std::string& id, bool global) const;
42 
43  Locals& getMemberLocals (std::string& id, bool global);
45 
47  int findLocalVariableIndex (const std::string& scriptId, const std::string& name,
48  char type) const;
49 
50  public:
51 
52  InterpreterContext (MWScript::Locals *locals, const MWWorld::Ptr& reference,
53  const std::string& targetId = "");
55 
56  virtual int getLocalShort (int index) const;
57 
58  virtual int getLocalLong (int index) const;
59 
60  virtual float getLocalFloat (int index) const;
61 
62  virtual void setLocalShort (int index, int value);
63 
64  virtual void setLocalLong (int index, int value);
65 
66  virtual void setLocalFloat (int index, float value);
67 
69 
70  virtual void messageBox (const std::string& message,
71  const std::vector<std::string>& buttons);
72 
73  virtual void report (const std::string& message);
75 
76  virtual bool menuMode();
77 
78  virtual int getGlobalShort (const std::string& name) const;
79 
80  virtual int getGlobalLong (const std::string& name) const;
81 
82  virtual float getGlobalFloat (const std::string& name) const;
83 
84  virtual void setGlobalShort (const std::string& name, int value);
85 
86  virtual void setGlobalLong (const std::string& name, int value);
87 
88  virtual void setGlobalFloat (const std::string& name, float value);
89 
90  virtual std::vector<std::string> getGlobals () const;
91 
92  virtual char getGlobalType (const std::string& name) const;
93 
94  virtual std::string getActionBinding(const std::string& action) const;
95 
96  virtual std::string getActorName() const;
97 
98  virtual std::string getNPCRace() const;
99 
100  virtual std::string getNPCClass() const;
101 
102  virtual std::string getNPCFaction() const;
103 
104  virtual std::string getNPCRank() const;
105 
106  virtual std::string getPCName() const;
107 
108  virtual std::string getPCRace() const;
109 
110  virtual std::string getPCClass() const;
111 
112  virtual std::string getPCRank() const;
113 
114  virtual std::string getPCNextRank() const;
115 
116  virtual int getPCBounty() const;
117 
118  virtual std::string getCurrentCellName() const;
119 
120  virtual bool isScriptRunning (const std::string& name) const;
121 
122  virtual void startScript (const std::string& name, const std::string& targetId = "");
123 
124  virtual void stopScript (const std::string& name);
125 
126  virtual float getDistance (const std::string& name, const std::string& id = "") const;
128 
131 
132  virtual float getSecondsPassed() const;
133 
134  virtual bool isDisabled (const std::string& id = "") const;
135 
136  virtual void enable (const std::string& id = "");
137 
138  virtual void disable (const std::string& id = "");
139 
140  virtual int getMemberShort (const std::string& id, const std::string& name, bool global) const;
141 
142  virtual int getMemberLong (const std::string& id, const std::string& name, bool global) const;
143 
144  virtual float getMemberFloat (const std::string& id, const std::string& name, bool global) const;
145 
146  virtual void setMemberShort (const std::string& id, const std::string& name, int value, bool global);
147 
148  virtual void setMemberLong (const std::string& id, const std::string& name, int value, bool global);
149 
150  virtual void setMemberFloat (const std::string& id, const std::string& name, float value, bool global);
151 
152  MWWorld::Ptr getReference(bool required=true);
154 
155  void updatePtr(const MWWorld::Ptr& base, const MWWorld::Ptr& updated);
157 
158  virtual std::string getTargetId() const;
159  };
160 }
161 
162 #endif
virtual float getLocalFloat(int index) const
Definition: interpretercontext.cpp:166
void message(CodeContainer &code, Literals &literals, const std::string &message, int buttons)
Definition: generator.cpp:537
virtual int getMemberShort(const std::string &id, const std::string &name, bool global) const
Definition: interpretercontext.cpp:519
Definition: locals.hpp:16
MWWorld::Ptr getReference(bool required=true)
Reference, that the script is running from (can be empty)
Definition: interpretercontext.cpp:577
virtual std::string getPCName() const
Definition: interpretercontext.cpp:342
virtual std::string getPCRace() const
Definition: interpretercontext.cpp:349
virtual std::string getNPCRank() const
Definition: interpretercontext.cpp:325
virtual std::vector< std::string > getGlobals() const
Definition: interpretercontext.cpp:247
virtual bool isDisabled(const std::string &id="") const
Definition: interpretercontext.cpp:501
virtual char getGlobalType(const std::string &name) const
Definition: interpretercontext.cpp:263
virtual float getGlobalFloat(const std::string &name) const
Definition: interpretercontext.cpp:227
virtual void enable(const std::string &id="")
Definition: interpretercontext.cpp:507
virtual bool isScriptRunning(const std::string &name) const
Definition: interpretercontext.cpp:434
MWWorld::Ptr mReference
Definition: interpretercontext.hpp:26
virtual void setGlobalFloat(const std::string &name, float value)
Definition: interpretercontext.cpp:242
virtual int getMemberLong(const std::string &id, const std::string &name, bool global) const
Definition: interpretercontext.cpp:529
virtual std::string getCurrentCellName() const
Definition: interpretercontext.cpp:429
virtual int getLocalLong(int index) const
Definition: interpretercontext.cpp:158
virtual int getGlobalShort(const std::string &name) const
Definition: interpretercontext.cpp:216
virtual bool menuMode()
Definition: interpretercontext.cpp:211
virtual float getSecondsPassed() const
Definition: interpretercontext.cpp:496
virtual std::string getNPCClass() const
Definition: interpretercontext.cpp:311
int findLocalVariableIndex(const std::string &scriptId, const std::string &name, char type) const
Throws an exception if local variable can't be found.
Definition: interpretercontext.cpp:113
virtual std::string getActorName() const
Definition: interpretercontext.cpp:291
InterpreterContext(MWScript::Locals *locals, const MWWorld::Ptr &reference, const std::string &targetId="")
The ownership of locals is not transferred. 0-pointer allowed.
Definition: interpretercontext.cpp:139
std::string mTargetId
Definition: interpretercontext.hpp:28
virtual float getMemberFloat(const std::string &id, const std::string &name, bool global) const
Definition: interpretercontext.cpp:539
virtual std::string getPCRank() const
Definition: interpretercontext.cpp:363
virtual std::string getPCNextRank() const
Definition: interpretercontext.cpp:392
Definition: context.hpp:9
virtual void setGlobalShort(const std::string &name, int value)
Definition: interpretercontext.cpp:232
virtual void messageBox(const std::string &message, const std::vector< std::string > &buttons)=0
virtual std::string getNPCFaction() const
Definition: interpretercontext.cpp:318
virtual float getDistance(const std::string &name, const std::string &id="") const
Definition: interpretercontext.cpp:449
virtual void startScript(const std::string &name, const std::string &targetId="")
Definition: interpretercontext.cpp:439
virtual void report(const std::string &message)
By default, do nothing.
Definition: interpretercontext.cpp:207
virtual std::string getActionBinding(const std::string &action) const
Definition: interpretercontext.cpp:269
Locals * mLocals
Definition: interpretercontext.hpp:25
virtual void messageBox(const std::string &message, const std::vector< std::string > &buttons)
Definition: interpretercontext.cpp:198
virtual int getPCBounty() const
Definition: interpretercontext.cpp:422
void updatePtr(const MWWorld::Ptr &base, const MWWorld::Ptr &updated)
Update the Ptr stored in mReference, if there is one stored there. Should be called after the referen...
Definition: interpretercontext.cpp:587
MWWorld::Ptr getReferenceImp(const std::string &id="", bool activeOnly=false, bool doThrow=true)
Definition: interpretercontext.cpp:32
virtual void setMemberFloat(const std::string &id, const std::string &name, float value, bool global)
Definition: interpretercontext.cpp:568
virtual void setLocalShort(int index, int value)
Definition: interpretercontext.cpp:174
virtual std::string getNPCRace() const
Definition: interpretercontext.cpp:304
virtual void setLocalFloat(int index, float value)
Definition: interpretercontext.cpp:190
virtual void setLocalLong(int index, int value)
Definition: interpretercontext.cpp:182
virtual void stopScript(const std::string &name)
Definition: interpretercontext.cpp:444
virtual int getLocalShort(int index) const
Definition: interpretercontext.cpp:150
virtual std::string getPCClass() const
Definition: interpretercontext.cpp:356
virtual std::string getTargetId() const
Definition: interpretercontext.cpp:582
virtual int getGlobalLong(const std::string &name) const
Definition: interpretercontext.cpp:221
virtual void setMemberShort(const std::string &id, const std::string &name, int value, bool global)
Definition: interpretercontext.cpp:549
Pointer to a LiveCellRef.
Definition: ptr.hpp:19
Definition: interpretercontext.hpp:23
void executeActivation(MWWorld::Ptr ptr, MWWorld::Ptr actor)
Execute the activation action for this ptr. If ptr is mActivated, mark activation as handled...
Definition: interpretercontext.cpp:486
const Locals & getMemberLocals(std::string &id, bool global) const
id is changed to the respective script ID, if id wasn't a script ID before
Definition: interpretercontext.cpp:72
virtual void setGlobalLong(const std::string &name, int value)
Definition: interpretercontext.cpp:237
virtual void setMemberLong(const std::string &id, const std::string &name, int value, bool global)
Definition: interpretercontext.cpp:559
const char * name
Definition: crashcatcher.cpp:67
virtual void disable(const std::string &id="")
Definition: interpretercontext.cpp:513