Rigs of Rods 2026.01
Soft-body Physics Simulation
Loading...
Searching...
No Matches
AngelScriptBindings.h
Go to the documentation of this file.
1/*
2 This source file is part of Rigs of Rods
3 Copyright 2005-2012 Pierre-Michel Ricordel
4 Copyright 2007-2012 Thomas Fischer
5 Copyright 2013-2022 Petr Ohlidal
6
7 For more information, see http://www.rigsofrods.org/
8
9 Rigs of Rods is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License version 3, as
11 published by the Free Software Foundation.
12
13 Rigs of Rods is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with Rigs of Rods. If not, see <http://www.gnu.org/licenses/>.
20*/
21
22#pragma once
23
24#include <angelscript.h>
25
27
28namespace RoR {
29
30typedef void (*ASBindingRegisterFunc_t)(AngelScript::asIScriptEngine*);
31
32void RegisterAngelScriptBinding(const char* bindingName, AngelScript::asIScriptEngine* engine, ASBindingRegisterFunc_t native, ASBindingRegisterFunc_t generic);
33
34/*
35=== NOTE ===
36Register*Common() methods are meant for binding things that are common to both
37native and generic bindings (e.g. enums, constants, etc).
38
39Register*Native() methods are meant for registering native bindings (which use a native calling convention such as cdecl or thiscall).
40
41Register*Generic() methods are meant for registering generic bindings (which use the asCALL_GENERIC calling convention).
42*/
43
44
47
49void RegisterActorCommon(AngelScript::asIScriptEngine* engine);
50void RegisterActorNative(AngelScript::asIScriptEngine* engine);
51void RegisterActorGeneric(AngelScript::asIScriptEngine* engine);
52inline void RegisterActor(AngelScript::asIScriptEngine* engine)
53{
54 RegisterActorCommon(engine);
56}
57
59void RegisterVehicleAiCommon(AngelScript::asIScriptEngine* engine);
60void RegisterVehicleAiNative(AngelScript::asIScriptEngine* engine);
61void RegisterVehicleAiGeneric(AngelScript::asIScriptEngine* engine);
62inline void RegisterVehicleAi(AngelScript::asIScriptEngine* engine)
63{
66}
67
69void RegisterInputEngineCommon(AngelScript::asIScriptEngine* engine);
70void RegisterInputEngineNative(AngelScript::asIScriptEngine* engine);
71void RegisterInputEngineGeneric(AngelScript::asIScriptEngine* engine);
72inline void RegisterInputEngine(AngelScript::asIScriptEngine* engine)
73{
76}
77
79void RegisterConsoleCommon(AngelScript::asIScriptEngine* engine);
80void RegisterConsoleNative(AngelScript::asIScriptEngine* engine);
81void RegisterConsoleGeneric(AngelScript::asIScriptEngine* engine);
82inline void RegisterConsole(AngelScript::asIScriptEngine* engine)
83{
86}
87
89void RegisterLocalStorageNative(AngelScript::asIScriptEngine* engine);
90void RegisterLocalStorageGeneric(AngelScript::asIScriptEngine* engine);
91inline void RegisterLocalStorage(AngelScript::asIScriptEngine* engine)
92{
94}
95
97void RegisterGameScriptCommon(AngelScript::asIScriptEngine* engine);
98void RegisterGameScriptNative(AngelScript::asIScriptEngine* engine);
99void RegisterGameScriptGeneric(AngelScript::asIScriptEngine* engine);
100inline void RegisterGameScript(AngelScript::asIScriptEngine* engine)
101{
104}
105
108void RegisterScriptEventsCommon(AngelScript::asIScriptEngine* engine);
109inline void RegisterScriptEvents(AngelScript::asIScriptEngine* engine)
110{
112}
113
115void RegisterImGuiCommonBindings(AngelScript::asIScriptEngine* engine);
116void RegisterImGuiNativeBindings(AngelScript::asIScriptEngine* engine);
117void RegisterImGuiGenericBindings(AngelScript::asIScriptEngine* engine);
118inline void RegisterImGuiBindings(AngelScript::asIScriptEngine* engine)
119{
122}
123
124// This function will register the following objects with the scriptengine:
125// - Ogre::Vector3
126// - Ogre::Vector2
127// - Ogre::Radian
128// - Ogre::Degree
129// - Ogre::Quaternion
130// - Ogre::ColourValue
132void RegisterOgreObjectsCommon(AngelScript::asIScriptEngine* engine);
133void RegisterOgreObjectsNative(AngelScript::asIScriptEngine* engine);
134void RegisterOgreObjectsGeneric(AngelScript::asIScriptEngine* engine);
135inline void RegisterOgreObjects(AngelScript::asIScriptEngine* engine)
136{
139}
140
142void RegisterTerrainCommon(AngelScript::asIScriptEngine* engine);
143void RegisterTerrainNative(AngelScript::asIScriptEngine* engine);
144void RegisterTerrainGeneric(AngelScript::asIScriptEngine* engine);
145inline void RegisterTerrain(AngelScript::asIScriptEngine* engine)
146{
147 RegisterTerrainCommon(engine);
149}
150
152void RegisterProceduralRoadCommon(AngelScript::asIScriptEngine* engine);
153void RegisterProceduralRoadNative(AngelScript::asIScriptEngine* engine);
154void RegisterProceduralRoadGeneric(AngelScript::asIScriptEngine* engine);
155inline void RegisterProceduralRoad(AngelScript::asIScriptEngine* engine)
156{
159}
160
162void RegisterGenericFileFormatCommon(AngelScript::asIScriptEngine* engine);
163void RegisterGenericFileFormatNative(AngelScript::asIScriptEngine* engine);
164void RegisterGenericFileFormatGeneric(AngelScript::asIScriptEngine* engine);
165inline void RegisterGenericFileFormat(AngelScript::asIScriptEngine* engine)
166{
169}
170
173void RegisterMessageQueueCommon(AngelScript::asIScriptEngine* engine);
174inline void RegisterMessageQueue(AngelScript::asIScriptEngine* engine)
175{
177}
178
180void RegisterSoundScriptCommon(AngelScript::asIScriptEngine* engine);
181void RegisterSoundScriptNative(AngelScript::asIScriptEngine* engine);
182void RegisterSoundScriptGeneric(AngelScript::asIScriptEngine* engine);
183inline void RegisterSoundScript(AngelScript::asIScriptEngine* engine)
184{
187}
188
190void RegisterCacheSystemCommon(AngelScript::asIScriptEngine* engine);
191void RegisterCacheSystemNative(AngelScript::asIScriptEngine* engine);
192void RegisterCacheSystemGeneric(AngelScript::asIScriptEngine* engine);
193inline void RegisterCacheSystem(AngelScript::asIScriptEngine* engine)
194{
197}
198
200void RegisterEngineCommon(AngelScript::asIScriptEngine* engine);
201void RegisterEngineNative(AngelScript::asIScriptEngine* engine);
202void RegisterEngineGeneric(AngelScript::asIScriptEngine* engine);
203inline void RegisterEngine(AngelScript::asIScriptEngine* engine)
204{
205 RegisterEngineCommon(engine);
207}
208
209// Register class DashBoardManager. Defined in DashBoardManagerAngelscript.cpp
210void RegisterDashBoardManagerCommon(AngelScript::asIScriptEngine* engine);
211void RegisterDashBoardManagerNative(AngelScript::asIScriptEngine* engine);
212void RegisterDashBoardManagerGeneric(AngelScript::asIScriptEngine* engine);
213inline void RegisterDashBoardManager(AngelScript::asIScriptEngine* engine)
214{
217}
218
219// Register class AircraftEngineClass. Defined in AircraftEngineAngelscript.cpp
220void RegisterAircraftEngineCommon(AngelScript::asIScriptEngine* engine);
221void RegisterAircraftEngineNative(AngelScript::asIScriptEngine* engine);
222void RegisterAircraftEngineGeneric(AngelScript::asIScriptEngine* engine);
223inline void RegisterAircraftEngine(AngelScript::asIScriptEngine* engine)
224{
227}
228
229// Register class TurbopropClass. Defined in TurbopropAngelscript.cpp
230void RegisterTurbopropNative(AngelScript::asIScriptEngine* engine);
231void RegisterTurbopropGeneric(AngelScript::asIScriptEngine* engine);
232inline void RegisterTurboprop(AngelScript::asIScriptEngine* engine)
233{
235}
236
237// Register class TurbojetClass. Defined in TurbojetAngelscript.cpp
238void RegisterTurbojetNative(AngelScript::asIScriptEngine* engine);
239void RegisterTurbojetGeneric(AngelScript::asIScriptEngine* engine);
240inline void RegisterTurbojet(AngelScript::asIScriptEngine* engine)
241{
243}
244
245// Register class AutopilotClass. Defined in AutopilotAngelscript.cpp
246void RegisterAutopilotCommon(AngelScript::asIScriptEngine* engine);
247void RegisterAutopilotNative(AngelScript::asIScriptEngine* engine);
248void RegisterAutopilotGeneric(AngelScript::asIScriptEngine* engine);
249inline void RegisterAutopilot(AngelScript::asIScriptEngine* engine)
250{
253}
254
255// Register class ScrewpropClass. Defined in ScrewpropAngelscript.cpp
256void RegisterScrewpropNative(AngelScript::asIScriptEngine* engine);
257void RegisterScrewpropGeneric(AngelScript::asIScriptEngine* engine);
258inline void RegisterScrewprop(AngelScript::asIScriptEngine* engine)
259{
261}
262
263
265
266} // namespace RoR
void RegisterTurbopropGeneric(AngelScript::asIScriptEngine *engine)
void RegisterDashBoardManagerGeneric(AngelScript::asIScriptEngine *engine)
void RegisterAutopilotCommon(AngelScript::asIScriptEngine *engine)
void RegisterGameScript(AngelScript::asIScriptEngine *engine)
void RegisterGenericFileFormatGeneric(AngelScript::asIScriptEngine *engine)
void RegisterEngineCommon(AngelScript::asIScriptEngine *engine)
Register class Engine and related enums, defined in EngineAngelscript.cpp.
void RegisterGenericFileFormatNative(AngelScript::asIScriptEngine *engine)
void RegisterCacheSystemCommon(AngelScript::asIScriptEngine *engine)
defined in CacheSystemAngelscript.cpp
void RegisterTurbojetNative(AngelScript::asIScriptEngine *engine)
void RegisterProceduralRoad(AngelScript::asIScriptEngine *engine)
void RegisterInputEngineGeneric(AngelScript::asIScriptEngine *engine)
void RegisterLocalStorage(AngelScript::asIScriptEngine *engine)
void RegisterScriptEventsCommon(AngelScript::asIScriptEngine *engine)
Registers enum scriptEvents and related enums, defined in ScriptEventsAngelscriptCommon....
void RegisterAircraftEngineCommon(AngelScript::asIScriptEngine *engine)
void RegisterGameScriptGeneric(AngelScript::asIScriptEngine *engine)
void RegisterOgreObjectsGeneric(AngelScript::asIScriptEngine *engine)
void RegisterAutopilot(AngelScript::asIScriptEngine *engine)
void RegisterConsoleNative(AngelScript::asIScriptEngine *engine)
void RegisterLocalStorageNative(AngelScript::asIScriptEngine *engine)
Registers RoR::LocalStorage, defined in LocalStorageAngelscript.cpp.
void RegisterVehicleAiGeneric(AngelScript::asIScriptEngine *engine)
void RegisterSoundScriptCommon(AngelScript::asIScriptEngine *engine)
defined in SoundScriptAngelscript.cpp
void RegisterAircraftEngineGeneric(AngelScript::asIScriptEngine *engine)
void RegisterImGuiGenericBindings(AngelScript::asIScriptEngine *engine)
void RegisterGenericFileFormat(AngelScript::asIScriptEngine *engine)
void RegisterCacheSystem(AngelScript::asIScriptEngine *engine)
void RegisterSoundScriptNative(AngelScript::asIScriptEngine *engine)
void RegisterInputEngineCommon(AngelScript::asIScriptEngine *engine)
Registers RoR::InputEngine, defined in InputEngineAngelscript.cpp.
void RegisterInputEngineNative(AngelScript::asIScriptEngine *engine)
void RegisterOgreObjects(AngelScript::asIScriptEngine *engine)
void RegisterImGuiCommonBindings(AngelScript::asIScriptEngine *engine)
defined in ImGuiAngelscript.cpp
void RegisterCacheSystemGeneric(AngelScript::asIScriptEngine *engine)
void RegisterVehicleAiCommon(AngelScript::asIScriptEngine *engine)
defined in VehicleAiAngelscript.cpp
void RegisterConsole(AngelScript::asIScriptEngine *engine)
void RegisterActorCommon(AngelScript::asIScriptEngine *engine)
defined in ActorAngelscript.cpp
void RegisterAircraftEngineNative(AngelScript::asIScriptEngine *engine)
void RegisterAutopilotNative(AngelScript::asIScriptEngine *engine)
void RegisterEngineGeneric(AngelScript::asIScriptEngine *engine)
void RegisterSoundScript(AngelScript::asIScriptEngine *engine)
void RegisterDashBoardManager(AngelScript::asIScriptEngine *engine)
void RegisterActorGeneric(AngelScript::asIScriptEngine *engine)
void RegisterProceduralRoadGeneric(AngelScript::asIScriptEngine *engine)
void RegisterSoundScriptGeneric(AngelScript::asIScriptEngine *engine)
void RegisterVehicleAiNative(AngelScript::asIScriptEngine *engine)
void RegisterScriptEvents(AngelScript::asIScriptEngine *engine)
void RegisterProceduralRoadNative(AngelScript::asIScriptEngine *engine)
void RegisterDashBoardManagerCommon(AngelScript::asIScriptEngine *engine)
void RegisterTurbojet(AngelScript::asIScriptEngine *engine)
void RegisterGameScriptCommon(AngelScript::asIScriptEngine *engine)
Registers RoR::GameScript, defined in GameScriptAngelscript.cpp.
void RegisterScrewpropGeneric(AngelScript::asIScriptEngine *engine)
void RegisterActor(AngelScript::asIScriptEngine *engine)
void RegisterGameScriptNative(AngelScript::asIScriptEngine *engine)
void RegisterGenericFileFormatCommon(AngelScript::asIScriptEngine *engine)
defined in GenericFileFormatAngelscript.cpp
void RegisterTerrainNative(AngelScript::asIScriptEngine *engine)
void RegisterScrewpropNative(AngelScript::asIScriptEngine *engine)
void RegisterCacheSystemNative(AngelScript::asIScriptEngine *engine)
void RegisterConsoleGeneric(AngelScript::asIScriptEngine *engine)
void RegisterAutopilotGeneric(AngelScript::asIScriptEngine *engine)
void RegisterTerrainGeneric(AngelScript::asIScriptEngine *engine)
void RegisterInputEngine(AngelScript::asIScriptEngine *engine)
void RegisterScrewprop(AngelScript::asIScriptEngine *engine)
void RegisterEngineNative(AngelScript::asIScriptEngine *engine)
void RegisterAircraftEngine(AngelScript::asIScriptEngine *engine)
void RegisterTurbopropNative(AngelScript::asIScriptEngine *engine)
void RegisterActorNative(AngelScript::asIScriptEngine *engine)
void RegisterOgreObjectsNative(AngelScript::asIScriptEngine *engine)
void RegisterLocalStorageGeneric(AngelScript::asIScriptEngine *engine)
void RegisterOgreObjectsCommon(AngelScript::asIScriptEngine *engine)
defined in OgreAngelscript.cpp
void RegisterMessageQueueCommon(AngelScript::asIScriptEngine *engine)
Registers enums MsgType and FreeForceType, defined in MsgQueueAngelscriptCommon.cpp NOTE: only enums,...
void RegisterTurboprop(AngelScript::asIScriptEngine *engine)
void RegisterTerrainCommon(AngelScript::asIScriptEngine *engine)
Registers RoR::Terrain, defined in TerrainAngelscript.cpp.
void RegisterDashBoardManagerNative(AngelScript::asIScriptEngine *engine)
void RegisterTurbojetGeneric(AngelScript::asIScriptEngine *engine)
void RegisterImGuiNativeBindings(AngelScript::asIScriptEngine *engine)
void RegisterEngine(AngelScript::asIScriptEngine *engine)
void RegisterImGuiBindings(AngelScript::asIScriptEngine *engine)
void RegisterProceduralRoadCommon(AngelScript::asIScriptEngine *engine)
defined in ProceduralRoadAngelscript.cpp
void RegisterVehicleAi(AngelScript::asIScriptEngine *engine)
void RegisterTerrain(AngelScript::asIScriptEngine *engine)
void RegisterConsoleCommon(AngelScript::asIScriptEngine *engine)
Registers RoR::Console, defined in ConsoleAngelscript.cpp.
void RegisterMessageQueue(AngelScript::asIScriptEngine *engine)
void RegisterAngelScriptBinding(const char *bindingName, AngelScript::asIScriptEngine *engine, ASBindingRegisterFunc_t native, ASBindingRegisterFunc_t generic)
void(* ASBindingRegisterFunc_t)(AngelScript::asIScriptEngine *)