22 #include "CBot/CBotDefines.h" 23 #include "CBot/CBotTypResult.h" 25 #include "CBot/CBotUtils.h" 179 void SetName(
const std::string& name);
194 CLASS_AS_POINTER = 1,
195 CLASS_AS_INTRINSIC = 2,
373 virtual void Update(
void* pUser);
449 operator std::string();
450 void operator=(
const CBotVar& var);
451 void operator=(
int x);
452 void operator=(
float x);
453 void operator=(
const std::string &x);
466 virtual void Copy(
CBotVar* pSrc,
bool bName =
true);
476 virtual void SetValInt(
int val,
const std::string& name =
"");
virtual void SetValFloat(float val)
Set value as float.
Definition: CBotVar.cpp:558
virtual CBotVarClass * GetPointer()
Get value for pointer types.
Definition: CBotVar.cpp:529
Class for one CBot instruction.
Definition: CBotInstr.h:86
InitType
Variable initialization status.
Definition: CBotVar.h:241
virtual void Update(void *pUser)
Call the class update function.
Definition: CBotVar.cpp:136
virtual void SL(CBotVar *left, CBotVar *right)
left << right
Definition: CBotVar.cpp:674
static long m_identcpt
TODO: ?
Definition: CBotVar.h:682
virtual CBotVar * GetItem(const std::string &name)
Returns class member by name.
Definition: CBotVar.cpp:396
virtual bool Save1State(FILE *pf)
Save variable data.
Definition: CBotVar.cpp:126
virtual void ASR(CBotVar *left, CBotVar *right)
left >> right
Definition: CBotVar.cpp:662
InitType m_binit
Initialization status.
Definition: CBotVar.h:657
virtual void Mul(CBotVar *left, CBotVar *right)
Multiplication.
Definition: CBotVar.cpp:564
Class that manages a CBot program. This is the main entry point into the CBot engine.
Definition: CBotProgram.h:83
void SetUniqNum(long n)
Set unique identifier of this variable Note: For classes, this is unique within the class only - see ...
Definition: CBotVar.cpp:99
CBotToken * m_token
The corresponding token, defines the variable name.
Definition: CBotVar.h:653
The execution stack.
Definition: CBotStack.h:44
virtual void Inc()
++this
Definition: CBotVar.cpp:692
CBotVar()
Constructor. Do not call directly, use CBotVar::Create()
Definition: CBotVar.cpp:51
GetTypeMode
Mode for GetType() and GetTypResult()
Definition: CBotVar.h:191
virtual void ConstructorSet()
Called after constructor has been called.
Definition: CBotVar.cpp:76
virtual bool Hi(CBotVar *left, CBotVar *right)
left > right
Definition: CBotVar.cpp:609
virtual int GetValInt()
Get value as integer.
Definition: CBotVar.cpp:538
virtual std::string GetValString()
Get value as string.
Definition: CBotVar.cpp:725
virtual void SetValInt(int val, const std::string &name="")
Set value as an integer.
Definition: CBotVar.cpp:552
virtual void SetValString(const std::string &val)
Set value as string.
Definition: CBotVar.cpp:719
virtual CBotClass * GetClass()
Return class this variable is instance of.
Definition: CBotVar.cpp:738
void SetStatic(bool bStatic)
Marks the variable as "static".
Definition: CBotVar.cpp:493
bool IsDefined() const
Checks if the variable is currently "defined".
Definition: CBotVar.h:270
virtual void Add(CBotVar *left, CBotVar *right)
Addition.
Definition: CBotVar.cpp:590
A CBot class definition.
Definition: CBotClass.h:105
virtual void Sub(CBotVar *left, CBotVar *right)
Subtraction.
Definition: CBotVar.cpp:596
virtual CBotError Modulo(CBotVar *left, CBotVar *right)
Modulo (remainder of division)
Definition: CBotVar.cpp:583
virtual bool Ls(CBotVar *left, CBotVar *right)
left <= right
Definition: CBotVar.cpp:616
virtual bool Hs(CBotVar *left, CBotVar *right)
left >= right
Definition: CBotVar.cpp:623
virtual void SR(CBotVar *left, CBotVar *right)
left >>> right
Definition: CBotVar.cpp:668
void * m_pUserPtr
User pointer if specified.
Definition: CBotVar.h:665
static CBotVar * Create(const std::string &name, CBotTypResult type)
Creates a new variable from a type described by CBotTypResult.
Definition: CBotVar.cpp:209
A CBot variable.
Definition: CBotVar.h:42
Some enum values used across the CBot engine.
void SetVal(CBotVar *var)
Set the value.
Definition: CBotVar.cpp:457
virtual void Or(CBotVar *left, CBotVar *right)
left || right or left | right
Definition: CBotVar.cpp:650
virtual CBotVar * GetItemList()
Return all elements of this variable as a linked list. Works for both classes and arrays...
Definition: CBotVar.cpp:410
void * GetUserPtr()
Returns the custom pointer associated with this variable.
Definition: CBotVar.cpp:120
the variable value is currently not defined
ProtectionLevel
Class member protection level (public/protected/private)
Definition: CBotVar.h:306
virtual void XOr(CBotVar *left, CBotVar *right)
left ^ right (also for boolean!)
Definition: CBotVar.cpp:656
The CBotCStack class Management of the stack of compilation.
Definition: CBotCStack.h:35
virtual float GetValFloat()
Get value as float.
Definition: CBotVar.cpp:545
A call to a function - func()
Definition: CBotInstrCall.h:32
CBotError
This enum contains possible CBot error values. Values in range 5000-5999 are compile errors...
Definition: CBotEnums.h:190
long m_ident
Identifier.
Definition: CBotVar.h:679
CBotVar * GetStaticVar()
If this is a static class variable, return the static var from the class.
Definition: CBotVar.cpp:447
CBotVar subclass for managing arrays (CBotTypArrayPointer)
Definition: CBotVarArray.h:32
CBotInstr * m_InitExpr
Expression describing initial value.
Definition: CBotVar.h:671
virtual bool Save0State(FILE *pf)
Save common variable header (name, type, etc.)
Definition: CBotStack.cpp:758
virtual ~CBotVar()
Destructor. Do not call directly, use CBotVar::Destroy()
Definition: CBotVar.cpp:70
CBotTypResult m_type
Type of value.
Definition: CBotVar.h:655
bool IsElemOfClass(const std::string &name)
Check if a variable belongs to a class with a given name.
Definition: CBotVar.cpp:424
bool IsUndefined() const
Checks if the variable is currently "undefined".
Definition: CBotVar.h:264
virtual void Dec()
–this
Definition: CBotVar.cpp:698
virtual void Power(CBotVar *left, CBotVar *right)
Power.
Definition: CBotVar.cpp:570
ProtectionLevel GetPrivate()
Get variable protection level.
Definition: CBotVar.cpp:517
void SetName(const std::string &name)
SetName Changes the name of the variable.
Definition: CBotVar.cpp:384
bool IsNAN() const
Checks if the variable is currently NAN.
Definition: CBotVar.h:276
ProtectionLevel m_mPrivate
Element protection level - public, protected or private (for classes)
Definition: CBotVar.h:669
static void Destroy(CBotVar *var)
Destroy a variable.
Definition: CBotVar.cpp:305
virtual void SetPointer(CBotVar *p)
Set value for pointer types.
Definition: CBotVar.cpp:523
virtual void Copy(CBotVar *pSrc, bool bName=true)
Copy from another variable.
Definition: CBotVar.cpp:704
CBotType
Defines known types. This types are modeled on Java types.
Definition: CBotEnums.h:35
virtual void And(CBotVar *left, CBotVar *right)
left && right or left & right
Definition: CBotVar.cpp:644
CBotVar subclass for managing pointers to classes (CBotTypPointer)
Definition: CBotVarPointer.h:30
CBotType GetType(GetTypeMode mode=GetTypeMode::NORMAL)
GetType Returns the base type of the variable (CBotType)
Definition: CBotVar.cpp:324
bool m_bStatic
true if the variable is static (for classes)
Definition: CBotVar.h:667
virtual void Neg()
-this
Definition: CBotVar.cpp:680
long GetUniqNum()
Return unique identifier of this variable Note: For classes, this is unique within the class only - s...
Definition: CBotVar.cpp:114
CBotTypResult GetTypResult(GetTypeMode mode=GetTypeMode::NORMAL)
Returns the complete type of the variable (CBotTypResult)
Definition: CBotVar.cpp:311
std::string GetName()
Returns the name of the variable.
Definition: CBotVar.cpp:378
Definition: CBotUtils.h:99
static bool RestoreState(FILE *pf, CBotVar *&pVar)
Restore variable.
Definition: CBotStack.cpp:768
virtual void SetClass(CBotClass *pClass)
Set class this variable is instance of.
Definition: CBotVar.cpp:732
the variable value is defined
virtual void Not()
!this or ~this
Definition: CBotVar.cpp:686
static long NextUniqNum()
Generate next unique identifier.
Definition: CBotVar.cpp:107
CBotVarClass * m_pMyThis
Corresponding this element (TODO: ?)
Definition: CBotVar.h:659
bool IsStatic()
Checks if the variable is static.
Definition: CBotVar.cpp:505
Class to define the complete type of a variable.
Definition: CBotTypResult.h:47
virtual void SetIdent(long UniqId)
Associates an unique identifier to class instance.
Definition: CBotVar.cpp:91
virtual CBotError Div(CBotVar *left, CBotVar *right)
Division.
Definition: CBotVar.cpp:576
void SetType(CBotTypResult &type)
Change type of this variable.
Definition: CBotVar.cpp:334
CBot engine.
Definition: CBotCallMethode.cpp:28
the variable value is NAN
CBotToken * GetToken()
Returns the CBotToken this variable is associated with.
Definition: CBotVar.cpp:390
InitType GetInit() const
Returns the current init state of the variable.
Definition: CBotVar.cpp:340
void SetUserPtr(void *pUser)
Set a custom pointer associated with this variable.
Definition: CBotVar.cpp:82
virtual bool Ne(CBotVar *left, CBotVar *right)
left != right
Definition: CBotVar.cpp:637
void SetInit(InitType initType)
Changes variable init status.
Definition: CBotVar.cpp:348
bool IsPrivate(ProtectionLevel level=ProtectionLevel::Protected)
Checks if the variable is accessible at the given protection level.
Definition: CBotVar.cpp:511
virtual bool Eq(CBotVar *left, CBotVar *right)
left == right
Definition: CBotVar.cpp:630
virtual CBotVar * GetItemRef(int nIdent)
Returns class member by unique ID.
Definition: CBotVar.cpp:403
CBotVar subclass for managing classes (CBotTypClass, CBotTypIntrinsic)
Definition: CBotVarClass.h:34
virtual bool Lo(CBotVar *left, CBotVar *right)
left < right
Definition: CBotVar.cpp:602
Class representing one token of a program.
Definition: CBotToken.h:80
void SetPrivate(ProtectionLevel mPrivate)
Sets variable protection level.
Definition: CBotVar.cpp:499
CBotInstr * m_LimExpr
Expression describing array limit.
Definition: CBotVar.h:673