69 extern lua_State *
Lua;
71 extern int LuaLoadFile(
const std::string &file,
const std::string &strArg =
"");
72 extern int LuaCall(
int narg,
int clear,
bool exitOnError =
true);
74 #define LuaError(l, args) \
77 fprintf(stdout, args); \
78 fprintf(stdout, "\n"); \
79 lua_pushfstring(l, args); lua_error(l); \
82 #define LuaCheckArgs(l, args) \
84 if (lua_gettop(l) != args) { \
85 LuaError(l, "incorrect argument"); \
89 #if LUA_VERSION_NUM <= 501
93 return luaL_getn(l, index);
301 extern const char *
LuaToString(lua_State *l,
int narg);
306 extern const char *
LuaToString(lua_State *l,
int index,
int subIndex);
307 extern int LuaToNumber(lua_State *l,
int index,
int subIndex);
309 extern bool LuaToBoolean(lua_State *l,
int index,
int subIndex);
313 extern void LoadCcl(
const std::string &filename,
const std::string &luaArgStr =
"");
315 extern int CclCommand(
const std::string &command,
bool exitOnError =
true);
330 template <
typename T>
331 static void CclGetPos(lua_State *l, T *x , T *y,
const int offset = -1)
333 if (!lua_istable(l, offset) ||
lua_rawlen(l, offset) != 2) {
359 #endif // !__SCRIPT_H__
Rand(a) : number in [0..a-1].
Definition: script.h:110
StringDesc * String
Definition: script.h:225
NumberDesc * Line
Original string.
Definition: script.h:282
struct StringDesc::@29::@31 If
Unit desciption.
union NumberDesc::@21 D
which number.
int LuaToNumber(lua_State *l, int narg)
Definition: script.cpp:313
std::string EvalString(const StringDesc *s)
Evaluate the unit.
Definition: script.cpp:1045
a <= b.
Definition: script.h:114
If cond then Number1 else Number2.
Definition: script.h:125
Unit->Container.
Definition: script.h:173
CUnitType ** CclParseTypeDesc(lua_State *l)
Parse a unit description.
Definition: script.cpp:507
EnumVariable Component
Which index variable.
Definition: script.h:215
NumberDesc * Left
Definition: script.h:198
static void CclGetPos(lua_State *l, T *x, T *y, const int offset=-1)
Definition: script.h:331
int Val
index of the lua function.
Definition: script.h:209
NumberDesc * Right
Left operand.
Definition: script.h:199
Convert number in string.
Definition: script.h:140
Property of Unit.
Definition: script.h:121
struct StringDesc::@29::@30 Concat
Direct value.
unit->Data.Built.Worker
Definition: script.h:174
size_t lua_rawlen(lua_State *l, int index)
Definition: script.h:91
(100 * Value / Max)
Definition: script.h:163
NumberDesc * Damage
True while config file parsing.
Definition: script.cpp:62
NumberDesc * Begin
Original string.
Definition: script.h:277
a - b.
Definition: script.h:104
#define LuaError(l, args)
Definition: script.h:74
a <> b.
Definition: script.h:117
NumberDesc * BTrue
Branch condition.
Definition: script.h:234
UnitDesc * CclParseUnitDesc(lua_State *l)
Parse a number description.
Definition: script.cpp:485
NumberDesc * Cond
Definition: script.h:233
struct StringDesc::@29::@32 SubString
conditional string.
struct NumberDesc::@21::@25 StringFind
void InitLua()
Perform garbage collection.
Definition: script.cpp:2104
void ScriptRegister()
Definition: script.cpp:2413
void SavePreferences()
Load ccl config file.
Definition: script.cpp:2353
EnumUnit
Definition: script.h:169
struct NumberDesc::@21::@22 UnitStat
For binary operand.
a / b.
Definition: script.h:106
The big unit structure.
Definition: unit.h:119
a + b [+ c ...].
Definition: script.h:139
StringDesc * DataType
Number of player.
Definition: script.h:239
EUnit
All possible value for a unit.
Definition: script.h:129
a + b.
Definition: script.h:103
NumberDesc * Cond
Definition: script.h:271
ES_GameInfo
All possible value for a game info string.
Definition: script.h:150
EString e
Definition: script.h:259
Value of the variable.
Definition: script.h:159
Max(a, b).
Definition: script.h:108
lua_State * Lua
Definition: script.cpp:58
NumberDesc * Number
for Concat two string.
Definition: script.h:267
int CclInConfigFile
Structure to work with lua files.
Definition: script.cpp:60
Property of UnitType.
Definition: script.h:123
unsigned int Index
Definition: script.h:208
struct NumberDesc::@21::@26 NumIf
NumberDesc * Player
Definition: script.h:238
directly a string.
Definition: script.h:138
a lua function.
Definition: script.h:101
StringDesc ** Strings
Definition: script.h:264
bool LuaToBoolean(lua_State *l, int narg)
Definition: script.cpp:343
Definition: unittype.h:467
If cond then String1 else String2.
Definition: script.h:142
a > b.
Definition: script.h:111
Font definition.
Definition: font.h:73
Unit direct reference.
Definition: script.h:130
Increase value of the variable.
Definition: script.h:161
Max of the variable.
Definition: script.h:160
a == b.
Definition: script.h:115
UnitDesc * Unit
Definition: script.h:213
int n
Array of operands.
Definition: script.h:265
StringDesc * String
Number.
Definition: script.h:268
ENumber e
Definition: script.h:206
All Objectives of the game.
Definition: script.h:151
StringDesc * ResType
Player's data.
Definition: script.h:240
CUnit * CclGetUnitFromRef(lua_State *l)
For saving lua state.
Definition: script_unit.cpp:148
directly a number.
Definition: script.h:102
StringDesc * BTrue
Branch condition.
Definition: script.h:272
VideoTextLength(font, string).
Definition: script.h:118
EUnit e
Definition: script.h:249
SubString.
Definition: script.h:144
NumberDesc * MaxLen
Line number.
Definition: script.h:283
int Index
Which unit.
Definition: script.h:214
StringDesc * BFalse
String if Cond is true.
Definition: script.h:273
const char * LuaToString(lua_State *l, int narg)
True while config file parsing.
Definition: script.cpp:298
NumberDesc * N
Direct value.
Definition: script.h:210
void FreeUnitDesc(UnitDesc *unitdesc)
Free number description content. (no pointer itself).
Definition: script.cpp:1145
int CclCommand(const std::string &command, bool exitOnError=true)
Save user preferences.
Definition: script.cpp:2083
unsigned int LuaToUnsignedNumber(lua_State *l, int narg)
Definition: script.cpp:328
StringDesc * CclParseStringDesc(lua_State *l)
Parse a unit type description.
Definition: script.cpp:786
a * b.
Definition: script.h:105
EnumVariable
Definition: script.h:157
void FreeNumberDesc(NumberDesc *number)
Evaluate the string.
Definition: script.cpp:1159
struct NumberDesc::@21::@27 PlayerData
conditional string.
int LuaLoadFile(const std::string &file, const std::string &strArg="")
Definition: script.cpp:212
CUnit * EvalUnit(const UnitDesc *unitdesc)
Evaluate the number.
Definition: script.cpp:900
(Max - Value)
Definition: script.h:162
UnitType Name.
Definition: script.h:143
int Loc
Which component.
Definition: script.h:216
struct NumberDesc::@21::@23 TypeStat
CUnit ** AUnit
Definition: script.h:251
ES_GameInfo GameInfoType
For specific line.
Definition: script.h:286
void * Data
Definition: script.h:61
unit.
Definition: script.h:171
NumberDesc * BFalse
Number if Cond is true.
Definition: script.h:235
EnumVariable Str2EnumVariable(lua_State *l, const char *s)
Damage calculation for missile.
Definition: script_ui.cpp:427
struct NumberDesc::@21::@24 VideoTextLength
Min(a, b).
Definition: script.h:107
union StringDesc::@29 D
which number.
Inverse video for the string ("a" -> "~
"). Definition: script.h:141
EString
All possible value for a string.
Definition: script.h:135
a >= b.
Definition: script.h:112
int LuaCall(int narg, int clear, bool exitOnError=true)
Definition: script.cpp:159
NumberDesc * End
Begin of result string.
Definition: script.h:278
UnitDesc * Unit
String.
Definition: script.h:269
unit->Inside.
Definition: script.h:172
ENumber
All possible value for a number.
Definition: script.h:99
char C
String.
Definition: script.h:230
void LuaGarbageCollect()
Definition: script.cpp:389
unsigned int Index
Definition: script.h:261
CFont * Font
Max length of line.
Definition: script.h:284
BinOp binOp
Other number.
Definition: script.h:211
NumberDesc * CclParseNumberDesc(lua_State *l)
Definition: script.cpp:595
std::string SaveGlobal(lua_State *l)
Definition: script.cpp:2343
strchr(string, char) - s.
Definition: script.h:120
int Type
Definition: script.h:60
CFont * Font
String.
Definition: script.h:226
for Bin operand a ?? b
Definition: script.h:197
a < b.
Definition: script.h:113
a lua function.
Definition: script.h:137
void LoadCcl(const std::string &filename, const std::string &luaArgStr="")
Initialise Lua.
Definition: script.cpp:2397
void FreeStringDesc(StringDesc *s)
Free unit description content. (no pointer itself).
Definition: script.cpp:1229
NumberDesc * PlayerName
Definition: script.h:287
union UnitDesc::@28 D
which unit;
int EvalNumber(const NumberDesc *numberdesc)
Parse a string description.
Definition: script.cpp:925
CUnitType ** Type
Definition: script.h:219
char * Val
index of the lua function.
Definition: script.h:262
line n of the string.
Definition: script.h:145