xoreos  0.0.5
functions.h
Go to the documentation of this file.
1 /* xoreos - A reimplementation of BioWare's Aurora engine
2  *
3  * xoreos is the legal property of its developers, whose names
4  * can be found in the AUTHORS file distributed with this source
5  * distribution.
6  *
7  * xoreos is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 3
10  * of the License, or (at your option) any later version.
11  *
12  * xoreos is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with xoreos. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
25 #ifndef ENGINES_KOTOR2_SCRIPT_FUNCTIONS_H
26 #define ENGINES_KOTOR2_SCRIPT_FUNCTIONS_H
27 
29 
30 namespace Aurora {
31  namespace NWScript {
32  class FunctionContext;
33  class Object;
34  }
35 }
36 
37 namespace Engines {
38 
39 namespace KotOR2 {
40 
41 class Game;
42 class Area;
43 class Object;
44 
45 class Functions {
46 public:
47  Functions(Game &game);
48  ~Functions();
49 
50 private:
52 
53  struct FunctionPointer {
55  const char *name;
57  };
58 
63  };
64 
68  };
69 
73 
74 
76 
77  void registerFunctions();
78 
79  // .--- Utility methods
80  void jumpTo(KotOR2::Object *object, float x, float y, float z);
81 
82  static int32 getRandom(int min, int max, int32 n = 1);
83 
84  static Common::UString formatFloat(float f, int width = 18, int decimals = 9);
85 
87  // '---
88 
89  // --- Engine functions ---
90 
92 
93  // .--- Math, functions_math.cpp
96 
100 
104 
108 
110 
120 
123 
127  // '---
128 
129  // .--- Strings, functions_string.cpp
131 
133 
139 
143 
145 
148 
150 
153 
156 
160 
162  // '---
163 
164  // .--- Module functions, functions_module.cpp
166 
169  // '---
170 
171  // .--- General object functions, functions_object.cpp
175 
177 
180 
182  // '---
183 
184  // .--- Situated objects, functions_situated.cpp
187 
189 
193  // '---
194 
195  // .--- Actions, functions_action.cpp
199  // '---
200 
201  // .--- Sound, functions_sound.cpp
206 
209  // '---
210 
211  // .--- Movies, functions_movie.cpp
213  // '---
214 
215  // .--- Local variables
220  // '---
221 };
222 
223 } // End of namespace KotOR2
224 
225 } // End of namespace Engines
226 
227 #endif // ENGINES_KOTOR2_SCRIPT_FUNCTIONS_H
static Common::UString formatFloat(float f, int width=18, int decimals=9)
Definition: functions.cpp:111
void jumpTo(KotOR2::Object *object, float x, float y, float z)
Definition: functions.cpp:126
Aurora::NWScript::Type parameters[15]
Definition: functions.h:62
void sqrt(Aurora::NWScript::FunctionContext &ctx)
void vector(Aurora::NWScript::FunctionContext &ctx)
void unimplementedFunction(Aurora::NWScript::FunctionContext &ctx)
Definition: functions.cpp:94
void printInteger(Aurora::NWScript::FunctionContext &ctx)
const Aurora::NWScript::Variable * defaults[14]
Definition: functions.h:67
void musicBackgroundPlay(Aurora::NWScript::FunctionContext &ctx)
A class holding an UTF-8 string.
Definition: ustring.h:48
void musicBackgroundGetDayTrack(Aurora::NWScript::FunctionContext &ctx)
void writeTimestampedLogEntry(Aurora::NWScript::FunctionContext &ctx)
void findSubString(Aurora::NWScript::FunctionContext &ctx)
void objectToString(Aurora::NWScript::FunctionContext &ctx)
void fabs(Aurora::NWScript::FunctionContext &ctx)
void d3(Aurora::NWScript::FunctionContext &ctx)
void acos(Aurora::NWScript::FunctionContext &ctx)
void getFirstPC(Aurora::NWScript::FunctionContext &ctx)
void getModule(Aurora::NWScript::FunctionContext &ctx)
void insertString(Aurora::NWScript::FunctionContext &ctx)
static const FunctionSignature kFunctionSignatures[]
The table defining the signature (return type and type of parameters) of each engine function...
Definition: functions.h:71
void printString(Aurora::NWScript::FunctionContext &ctx)
void getStringLeft(Aurora::NWScript::FunctionContext &ctx)
void getStringByStrRef(Aurora::NWScript::FunctionContext &ctx)
void intToHexString(Aurora::NWScript::FunctionContext &ctx)
void d2(Aurora::NWScript::FunctionContext &ctx)
void tan(Aurora::NWScript::FunctionContext &ctx)
void floatToInt(Aurora::NWScript::FunctionContext &ctx)
static int32 getRandom(int min, int max, int32 n=1)
Definition: functions.cpp:99
void getLastClosedBy(Aurora::NWScript::FunctionContext &ctx)
void asin(Aurora::NWScript::FunctionContext &ctx)
void getIsOpen(Aurora::NWScript::FunctionContext &ctx)
void delayCommand(Aurora::NWScript::FunctionContext &ctx)
void abs(Aurora::NWScript::FunctionContext &ctx)
void printFloat(Aurora::NWScript::FunctionContext &ctx)
void getIsPC(Aurora::NWScript::FunctionContext &ctx)
void printVector(Aurora::NWScript::FunctionContext &ctx)
void printObject(Aurora::NWScript::FunctionContext &ctx)
void getObjectByTag(Aurora::NWScript::FunctionContext &ctx)
void getNextPC(Aurora::NWScript::FunctionContext &ctx)
void vectorMagnitude(Aurora::NWScript::FunctionContext &ctx)
void d4(Aurora::NWScript::FunctionContext &ctx)
void intToFloat(Aurora::NWScript::FunctionContext &ctx)
void getStringRight(Aurora::NWScript::FunctionContext &ctx)
void sin(Aurora::NWScript::FunctionContext &ctx)
void getLocalNumber(Aurora::NWScript::FunctionContext &ctx)
void floatToString(Aurora::NWScript::FunctionContext &ctx)
void getLocked(Aurora::NWScript::FunctionContext &ctx)
void musicBackgroundChangeNight(Aurora::NWScript::FunctionContext &ctx)
void getLocalBoolean(Aurora::NWScript::FunctionContext &ctx)
static Aurora::NWScript::Object * getParamObject(const Aurora::NWScript::FunctionContext &ctx, size_t n)
Definition: functions.cpp:115
void log(Aurora::NWScript::FunctionContext &ctx)
void playMovie(Aurora::NWScript::FunctionContext &ctx)
void isObjectPartyMember(Aurora::NWScript::FunctionContext &ctx)
static const FunctionDefaults kFunctionDefaults[]
The table defining the default values for the parameters of each engine function. ...
Definition: functions.h:72
void getIsObjectValid(Aurora::NWScript::FunctionContext &ctx)
void setLocalNumber(Aurora::NWScript::FunctionContext &ctx)
void sendMessageToPC(Aurora::NWScript::FunctionContext &ctx)
uint32_t uint32
Definition: types.h:204
void vectorNormalize(Aurora::NWScript::FunctionContext &ctx)
void setLocked(Aurora::NWScript::FunctionContext &ctx)
void getStringLowerCase(Aurora::NWScript::FunctionContext &ctx)
void getStringUpperCase(Aurora::NWScript::FunctionContext &ctx)
void(Functions::* funcPtr)(Aurora::NWScript::FunctionContext &ctx)
Definition: functions.h:51
void musicBackgroundGetNightTrack(Aurora::NWScript::FunctionContext &ctx)
void getLastUsedBy(Aurora::NWScript::FunctionContext &ctx)
void assignCommand(Aurora::NWScript::FunctionContext &ctx)
void d10(Aurora::NWScript::FunctionContext &ctx)
void actionStartConversation(Aurora::NWScript::FunctionContext &ctx)
void d12(Aurora::NWScript::FunctionContext &ctx)
void musicBackgroundChangeDay(Aurora::NWScript::FunctionContext &ctx)
static const FunctionPointer kFunctionPointers[]
The table defining the name and function pointer of each engine function.
Definition: functions.h:70
void getExitingObject(Aurora::NWScript::FunctionContext &ctx)
void getStringLength(Aurora::NWScript::FunctionContext &ctx)
void getEnteringObject(Aurora::NWScript::FunctionContext &ctx)
void d8(Aurora::NWScript::FunctionContext &ctx)
void pow(Aurora::NWScript::FunctionContext &ctx)
void d20(Aurora::NWScript::FunctionContext &ctx)
void d6(Aurora::NWScript::FunctionContext &ctx)
NWScript types.
void getClickingObject(Aurora::NWScript::FunctionContext &ctx)
void stringToInt(Aurora::NWScript::FunctionContext &ctx)
void atan(Aurora::NWScript::FunctionContext &ctx)
void d100(Aurora::NWScript::FunctionContext &ctx)
void intToString(Aurora::NWScript::FunctionContext &ctx)
void setLocalBoolean(Aurora::NWScript::FunctionContext &ctx)
void getLastOpenedBy(Aurora::NWScript::FunctionContext &ctx)
void cos(Aurora::NWScript::FunctionContext &ctx)
void musicBackgroundStop(Aurora::NWScript::FunctionContext &ctx)
void random(Aurora::NWScript::FunctionContext &ctx)
int32_t int32
Definition: types.h:203
void getSubString(Aurora::NWScript::FunctionContext &ctx)
void stringToFloat(Aurora::NWScript::FunctionContext &ctx)