OpenClonk
C4Aul.h File Reference
#include "object/C4Id.h"
#include "script/C4StringTable.h"
#include "script/C4Value.h"
#include "script/C4ValueMap.h"
#include "C4AulWarnings.h"
Include dependency graph for C4Aul.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  C4AulError
 
class  C4AulParseError
 
class  C4AulExecError
 
class  C4AulFuncMap
 
class  C4AulUserFile
 
class  C4AulErrorHandler
 
class  C4AulScriptEngine
 

Macros

#define C4AUL_MAX_Identifier   100
 
#define DIAG(id, text, enabled)   id,
 

Enumerations

enum class  C4AulWarningId { DIAG , WarningCount }
 

Functions

void InitCoreFunctionMap (C4AulScriptEngine *pEngine)
 

Variables

const char * C4AulWarningIDs []
 
const char * C4AulWarningMessages []
 
C4AulScriptEngine ScriptEngine
 

Macro Definition Documentation

◆ C4AUL_MAX_Identifier

#define C4AUL_MAX_Identifier   100

Definition at line 26 of file C4Aul.h.

◆ DIAG

#define DIAG (   id,
  text,
  enabled 
)    id,

Definition at line 31 of file C4Aul.h.

Enumeration Type Documentation

◆ C4AulWarningId

enum C4AulWarningId
strong
Enumerator
DIAG 
WarningCount 

Definition at line 29 of file C4Aul.h.

30 {
31 #define DIAG(id, text, enabled) id,
32 #include "C4AulWarnings.h"
33 #undef DIAG
35 };

Function Documentation

◆ InitCoreFunctionMap()

void InitCoreFunctionMap ( C4AulScriptEngine pEngine)

Definition at line 1128 of file C4Script.cpp.

1129 {
1131  // add all def constants (all Int)
1132  for (C4ScriptConstDef *pCDef = &C4ScriptConstMap[0]; pCDef->Identifier; pCDef++)
1133  {
1134  assert(pCDef->ValType == C4V_Int); // only int supported currently
1135  pEngine->RegisterGlobalConstant(pCDef->Identifier, C4VInt(pCDef->Data));
1136  }
1137 
1138  C4PropListStatic * p = pEngine->GetPropList();
1139  // add all def script funcs
1140  for (C4ScriptFnDef *pDef = &C4ScriptFnMap[0]; pDef->Identifier; pDef++)
1141  new C4AulDefFunc(p, pDef);
1142 #define F(f) ::AddFunc(p, #f, Fn##f)
1143  F(ParseInt);
1144  F(Abs);
1145  F(Min);
1146  F(Max);
1147  F(Sin);
1148  F(Cos);
1149  F(Sqrt);
1150  F(ArcSin);
1151  F(ArcCos);
1152  F(BoundBy);
1153  F(Inside);
1154  F(Random);
1155 
1156  F(CreateArray);
1157  F(CreatePropList);
1158  F(GetProperties);
1159  F(GetProperty);
1160  F(SetProperty);
1161  F(GetPrototype);
1162  F(SetPrototype);
1163  F(ResetProperty);
1164  F(GetName);
1165  F(AddEffect);
1166  F(CreateEffect);
1167  F(CheckEffect);
1168  F(RemoveEffect);
1169  F(GetEffect);
1170  F(GetEffectCount);
1171  F(RegexReplace);
1172  F(RegexSearch);
1173  F(RegexMatch);
1174  F(RegexSplit);
1175  F(Distance);
1176  F(Angle);
1177  F(GetChar);
1178  F(GetType);
1179  F(ModulateColor);
1180  F(WildcardMatch);
1181  F(GetLength);
1182  F(SetLength);
1183  F(GetIndexOf);
1184  F(DeepEqual);
1185  F(StartCallTrace);
1186  F(StartScriptProfiler);
1187  F(StopScriptProfiler);
1188  F(SortArray);
1189  F(SortArrayByProperty);
1190  F(SortArrayByArrayElement);
1191  F(Trans_Identity);
1192  F(Trans_Translate);
1193  F(Trans_Scale);
1194  F(Trans_Rotate);
1195  F(LocateFunc);
1196  F(FileWrite);
1197  F(eval);
1198  F(StringToIdentifier);
1199  F(GetConstantNameByValue);
1200  F(ReplaceString);
1201 
1202  ::AddFunc(p, "Translate", C4AulExec::FnTranslate);
1203  ::AddFunc(p, "LogCallStack", C4AulExec::FnLogCallStack);
1204 #undef F
1205 }
void AddFunc(C4PropListStatic *Parent, const char *Name, RType(*pFunc)(ThisType *, ParTypes...), bool Public=true)
Definition: C4AulDefFunc.h:261
const char * Identifier
Definition: C4AulDefFunc.h:269
uint32_t Random()
Definition: C4Random.cpp:43
C4Real Cos(const C4Real &fAngle)
Definition: C4Real.h:266
C4Real Sin(const C4Real &fAngle)
Definition: C4Real.h:265
C4ScriptConstDef C4ScriptConstMap[]
Definition: C4Script.cpp:1066
#define F(f)
C4ScriptFnDef C4ScriptFnMap[]
Definition: C4Script.cpp:1115
@ C4V_Int
Definition: C4Value.h:26
C4Value C4VInt(int32_t i)
Definition: C4Value.h:239
int32_t Angle(int32_t iX1, int32_t iY1, int32_t iX2, int32_t iY2, int32_t iPrec)
Definition: Standard.cpp:37
int32_t Distance(int32_t iX1, int32_t iY1, int32_t iX2, int32_t iY2)
Definition: Standard.cpp:25
T Abs(T val)
Definition: Standard.h:42
bool Inside(T ival, U lbound, V rbound)
Definition: Standard.h:43
bool WildcardMatch(const char *szWildcard, const char *szString)
Definition: StdFile.cpp:396
static bool FnLogCallStack(C4PropList *_this)
Definition: C4AulExec.cpp:130
static C4String * FnTranslate(C4PropList *_this, C4String *text)
Definition: C4AulExec.cpp:100
C4PropListStatic * GetPropList()
Definition: C4Aul.h:151
void RegisterGlobalConstant(const char *szName, const C4Value &rValue)
Definition: C4Aul.cpp:123
static void InstantiateAllLibraries(C4AulScriptEngine *engine)
const char * Identifier
Definition: C4AulDefFunc.h:277

References Abs(), AddFunc(), Angle(), C4ScriptConstMap, C4ScriptFnMap, C4V_Int, C4VInt(), Cos(), Distance(), F, C4AulExec::FnLogCallStack(), C4AulExec::FnTranslate(), C4AulScriptEngine::GetPropList(), C4ScriptConstDef::Identifier, Inside(), C4ScriptLibrary::InstantiateAllLibraries(), Random(), C4AulScriptEngine::RegisterGlobalConstant(), Sin(), and WildcardMatch().

Referenced by c4_mapgen_handle_init_script_engine(), and C4Game::InitScriptEngine().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ C4AulWarningIDs

const char* C4AulWarningIDs[]
extern

Definition at line 34 of file C4Aul.cpp.

◆ C4AulWarningMessages

const char* C4AulWarningMessages[]
extern

Definition at line 28 of file C4Aul.cpp.

◆ ScriptEngine

C4AulScriptEngine ScriptEngine
extern

Definition at line 43 of file C4Globals.cpp.

Referenced by c4_mapgen_handle_deinit_script_engine(), c4_mapgen_handle_init_script_engine(), c4_mapgen_handle_new(), c4_mapgen_handle_new_script(), C4AulFunc::C4AulFunc(), C4Def::C4Def(), C4PropertyPath::C4PropertyPath(), C4PropListScen::C4PropListScen(), C4PropList::Call(), C4Object::ChangeDef(), C4AulFunc::CheckParTypes(), C4Game::Clear(), C4Game::ClearPointers(), C4PropertyCollection::CollectPropLists(), C4Game::CompileFunc(), C4Effect::CompileFunc(), C4Value::CompileFunc(), C4AulExec::DirectExec(), C4RoundResults::EvaluateGame(), C4Game::Execute(), C4PlayerControlDefs::FinalInit(), FnGetEffectsFor(), C4Value::GetDataString(), C4AulScriptEngine::GetFunctionNames(), C4Console::GetScriptSuggestions(), C4Landscape::Incinerate(), C4MapScriptHost::InitFunctionMap(), C4Game::InitScriptEngine(), C4AulScriptEngine::Link(), C4Game::LinkScriptEngine(), C4GameScriptHost::Load(), C4Def::Load(), C4Game::LoadAdditionalSystemGroup(), C4GameScriptHost::LoadData(), C4Game::LoadScenarioSection(), C4AulParse::Parse_Script(), C4EditCursor::PerformDuplication(), C4ScenarioParameterDefs::RegisterScriptConstants(), C4Game::ReLinkScriptEngine(), C4Game::ReloadFile(), C4PropertyPath::ResolveRoot(), C4MaterialReaction::ResolveScriptFuncs(), C4PropertyPath::ResolveValue(), C4Game::SaveData(), C4ScenarioSection::ScenarioLoad(), C4PropList::ThawRecursively(), C4ScriptHost::UnlinkOwnedFunctions(), C4AulErrorHandler::~C4AulErrorHandler(), and C4AulFunc::~C4AulFunc().