Rigs of Rods 2026.01
Soft-body Physics Simulation
Loading...
Searching...
No Matches
GenericFileFormatAngelscriptGeneric.cpp
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
25
26#include "../../autowrapper/aswrappedcall.h"
27#include "AngelScriptBindings.h"
28#include "GenericFileFormat.h"
30
31using namespace RoR;
32using namespace AngelScript;
34
35void RoR::RegisterGenericFileFormatGeneric(asIScriptEngine* engine)
36{
37 // NOTE: enums TokenType and GenericDocumentOptions are registered in RegisterGenericFileFormatCommon()
38
39 // class GenericDocument
40 GenericDocument::RegisterRefCountingObjectGeneric(engine, "GenericDocumentClass");
41 GenericDocumentPtr::RegisterRefCountingObjectPtrGeneric(engine, "GenericDocumentClassPtr", "GenericDocumentClass");
42 engine->RegisterObjectBehaviour("GenericDocumentClass", asBEHAVE_FACTORY, "GenericDocumentClass@+ f()", WRAP_FN(GenericDocumentFactory), asCALL_GENERIC);
43
44 engine->RegisterObjectMethod("GenericDocumentClass", "bool loadFromResource(string,string,int)", WRAP_MFN(GenericDocument, loadFromResource), asCALL_GENERIC);
45 engine->RegisterObjectMethod("GenericDocumentClass", "bool saveToResource(string,string)", WRAP_MFN(GenericDocument, saveToResource), asCALL_GENERIC);
46
47
48 // class GenericDocContext
49 // (Please maintain the same order as in 'GenericFileFormat.h' and 'doc/*/GenericDocContextClass.h')
50 GenericDocContext::RegisterRefCountingObjectGeneric(engine, "GenericDocContextClass");
51 GenericDocContextPtr::RegisterRefCountingObjectPtrGeneric(engine, "GenericDocContextClassPtr", "GenericDocContextClass");
52 engine->RegisterObjectBehaviour("GenericDocContextClass", asBEHAVE_FACTORY, "GenericDocContextClass@+ f(GenericDocumentClassPtr @)", WRAP_FN(GenericDocContextFactory), asCALL_GENERIC);
53
54 engine->RegisterObjectMethod("GenericDocContextClass", "bool moveNext()", WRAP_MFN(GenericDocContext, moveNext), asCALL_GENERIC);
55 engine->RegisterObjectMethod("GenericDocContextClass", "uint getPos()", WRAP_MFN(GenericDocContext, getPos), asCALL_GENERIC);
56 engine->RegisterObjectMethod("GenericDocContextClass", "bool seekNextLine()", WRAP_MFN(GenericDocContext, seekNextLine), asCALL_GENERIC);
57 engine->RegisterObjectMethod("GenericDocContextClass", "uint countLineArgs()", WRAP_MFN(GenericDocContext, countLineArgs), asCALL_GENERIC);
58 engine->RegisterObjectMethod("GenericDocContextClass", "bool endOfFile(int offset = 0)", WRAP_MFN(GenericDocContext, endOfFile), asCALL_GENERIC);
59 engine->RegisterObjectMethod("GenericDocContextClass", "TokenType tokenType(int offset = 0)", WRAP_MFN(GenericDocContext, tokenType), asCALL_GENERIC);
60
61 engine->RegisterObjectMethod("GenericDocContextClass", "string getTokString(int offset = 0)", WRAP_MFN(GenericDocContext, getTokString), asCALL_GENERIC);
62 engine->RegisterObjectMethod("GenericDocContextClass", "float getTokFloat(int offset = 0)", WRAP_MFN(GenericDocContext, getTokFloat), asCALL_GENERIC);
63 engine->RegisterObjectMethod("GenericDocContextClass", "int getTokInt(int offset = 0)", WRAP_MFN(GenericDocContext, getTokInt), asCALL_GENERIC);
64 engine->RegisterObjectMethod("GenericDocContextClass", "bool getTokBool(int offset = 0)", WRAP_MFN(GenericDocContext, getTokBool), asCALL_GENERIC);
65 engine->RegisterObjectMethod("GenericDocContextClass", "string getTokKeyword(int offset = 0)", WRAP_MFN(GenericDocContext, getTokKeyword), asCALL_GENERIC);
66 engine->RegisterObjectMethod("GenericDocContextClass", "string getTokComment(int offset = 0)", WRAP_MFN(GenericDocContext, getTokComment), asCALL_GENERIC);
67
68 engine->RegisterObjectMethod("GenericDocContextClass", "bool isTokString(int offset = 0)", WRAP_MFN(GenericDocContext, isTokString), asCALL_GENERIC);
69 engine->RegisterObjectMethod("GenericDocContextClass", "bool isTokFloat(int offset = 0)", WRAP_MFN(GenericDocContext, isTokFloat), asCALL_GENERIC);
70 engine->RegisterObjectMethod("GenericDocContextClass", "bool isTokInt(int offset = 0)", WRAP_MFN(GenericDocContext, isTokInt), asCALL_GENERIC);
71 engine->RegisterObjectMethod("GenericDocContextClass", "bool isTokBool(int offset = 0)", WRAP_MFN(GenericDocContext, isTokBool), asCALL_GENERIC);
72 engine->RegisterObjectMethod("GenericDocContextClass", "bool isTokKeyword(int offset = 0)", WRAP_MFN(GenericDocContext, isTokKeyword), asCALL_GENERIC);
73 engine->RegisterObjectMethod("GenericDocContextClass", "bool isTokComment(int offset = 0)", WRAP_MFN(GenericDocContext, isTokComment), asCALL_GENERIC);
74 engine->RegisterObjectMethod("GenericDocContextClass", "bool isTokLineBreak(int offset = 0)", WRAP_MFN(GenericDocContext, isTokLineBreak), asCALL_GENERIC);
75
76 // > Editing functions:
77 engine->RegisterObjectMethod("GenericDocContextClass", "void appendTokens(int count)", WRAP_MFN(GenericDocContext, appendTokens), asCALL_GENERIC);
78 engine->RegisterObjectMethod("GenericDocContextClass", "bool insertToken(int offset = 0)", WRAP_MFN(GenericDocContext, insertToken), asCALL_GENERIC);
79 engine->RegisterObjectMethod("GenericDocContextClass", "bool eraseToken(int offset = 0)", WRAP_MFN(GenericDocContext, eraseToken), asCALL_GENERIC);
80
81 engine->RegisterObjectMethod("GenericDocContextClass", "void appendTokString(const string &in)", WRAP_MFN(GenericDocContext, appendTokString), asCALL_GENERIC);
82 engine->RegisterObjectMethod("GenericDocContextClass", "void appendTokFloat(float)", WRAP_MFN(GenericDocContext, appendTokFloat), asCALL_GENERIC);
83 engine->RegisterObjectMethod("GenericDocContextClass", "void appendTokInt(int)", WRAP_MFN(GenericDocContext, appendTokInt), asCALL_GENERIC);
84 engine->RegisterObjectMethod("GenericDocContextClass", "void appendTokBool(bool)", WRAP_MFN(GenericDocContext, appendTokBool), asCALL_GENERIC);
85 engine->RegisterObjectMethod("GenericDocContextClass", "void appendTokKeyword(const string &in)", WRAP_MFN(GenericDocContext, appendTokKeyword), asCALL_GENERIC);
86 engine->RegisterObjectMethod("GenericDocContextClass", "void appendTokComment(const string &in)", WRAP_MFN(GenericDocContext, appendTokComment), asCALL_GENERIC);
87 engine->RegisterObjectMethod("GenericDocContextClass", "void appendTokLineBreak()", WRAP_MFN(GenericDocContext, appendTokLineBreak), asCALL_GENERIC);
88
89 engine->RegisterObjectMethod("GenericDocContextClass", "bool setTokString(int offset, const string &in)", WRAP_MFN(GenericDocContext, setTokString), asCALL_GENERIC);
90 engine->RegisterObjectMethod("GenericDocContextClass", "bool setTokFloat(int offset, float)", WRAP_MFN(GenericDocContext, setTokFloat), asCALL_GENERIC);
91 engine->RegisterObjectMethod("GenericDocContextClass", "bool setTokInt(int offset, int)", WRAP_MFN(GenericDocContext, setTokInt), asCALL_GENERIC);
92 engine->RegisterObjectMethod("GenericDocContextClass", "bool setTokBool(int offset, bool)", WRAP_MFN(GenericDocContext, setTokBool), asCALL_GENERIC);
93 engine->RegisterObjectMethod("GenericDocContextClass", "bool setTokKeyword(int offset, const string &in)", WRAP_MFN(GenericDocContext, setTokKeyword), asCALL_GENERIC);
94 engine->RegisterObjectMethod("GenericDocContextClass", "bool setTokComment(int offset, const string &in)", WRAP_MFN(GenericDocContext, setTokComment), asCALL_GENERIC);
95 engine->RegisterObjectMethod("GenericDocContextClass", "bool setTokLineBreak(int offset)", WRAP_MFN(GenericDocContext, setTokLineBreak), asCALL_GENERIC);
96
97}
Generic text file parser.
Helper/wrapper functions shared by native (GenericFileFormatAngelscript.cpp) and generic (GenericFile...
#define WRAP_MFN(ClassType, name)
#define WRAP_FN(name)
static void RegisterRefCountingObjectPtrGeneric(AS_NAMESPACE_QUALIFIER asIScriptEngine *engine, const char *handle_name, const char *obj_name)
Same as RegisterRefCountingObjectPtr() but uses the generic calling convention (for platforms with AS...
void RegisterGenericFileFormatGeneric(AngelScript::asIScriptEngine *engine)
static GenericDocContext * GenericDocContextFactory(GenericDocumentPtr doc)