22 #include "CBot/CBotDefines.h" 23 #include "CBot/CBotTypResult.h" 25 #include "CBot/CBotUtils.h" 174 void SetName(
const std::string& name);
189 CLASS_AS_POINTER = 1,
190 CLASS_AS_INTRINSIC = 2,
368 virtual void Update(
void* pUser);
453 virtual void Copy(
CBotVar* pSrc,
bool bName =
true);
463 virtual void SetValInt(
int val,
const std::string& name =
"");
virtual void SetValFloat(float val)
Set value as float.
Definition: CBotVar.cpp:553
virtual CBotVarClass * GetPointer()
Get value for pointer types.
Definition: CBotVar.cpp:524
Class for one CBot instruction.
Definition: CBotInstr.h:86
InitType
Variable initialization status.
Definition: CBotVar.h:236
virtual void Update(void *pUser)
Call the class update function.
Definition: CBotVar.cpp:131
virtual void SL(CBotVar *left, CBotVar *right)
left << right
Definition: CBotVar.cpp:669
static long m_identcpt
TODO: ?
Definition: CBotVar.h:669
virtual CBotVar * GetItem(const std::string &name)
Returns class member by name.
Definition: CBotVar.cpp:391
virtual bool Save1State(FILE *pf)
Save variable data.
Definition: CBotVar.cpp:121
virtual void ASR(CBotVar *left, CBotVar *right)
left >> right
Definition: CBotVar.cpp:657
InitType m_binit
Initialization status.
Definition: CBotVar.h:644
virtual void Mul(CBotVar *left, CBotVar *right)
Multiplication.
Definition: CBotVar.cpp:559
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:94
CBotToken * m_token
The corresponding token, defines the variable name.
Definition: CBotVar.h:640
The execution stack.
Definition: CBotStack.h:44
virtual void Inc()
++this
Definition: CBotVar.cpp:687
CBotVar()
Constructor. Do not call directly, use CBotVar::Create()
Definition: CBotVar.cpp:51
GetTypeMode
Mode for GetType() and GetTypResult()
Definition: CBotVar.h:186
virtual void ConstructorSet()
Called after constructor has been called.
Definition: CBotVar.cpp:71
virtual bool Hi(CBotVar *left, CBotVar *right)
left > right
Definition: CBotVar.cpp:604
virtual int GetValInt()
Get value as integer.
Definition: CBotVar.cpp:533
virtual std::string GetValString()
Get value as string.
Definition: CBotVar.cpp:711
virtual void SetValInt(int val, const std::string &name="")
Set value as an integer.
Definition: CBotVar.cpp:547
virtual void SetValString(const std::string &val)
Set value as string.
Definition: CBotVar.cpp:705
virtual CBotClass * GetClass()
Return class this variable is instance of.
Definition: CBotVar.cpp:724
void SetStatic(bool bStatic)
Marks the variable as "static".
Definition: CBotVar.cpp:488
bool IsDefined() const
Checks if the variable is currently "defined".
Definition: CBotVar.h:265
virtual void Add(CBotVar *left, CBotVar *right)
Addition.
Definition: CBotVar.cpp:585
A CBot class definition.
Definition: CBotClass.h:105
virtual void Sub(CBotVar *left, CBotVar *right)
Subtraction.
Definition: CBotVar.cpp:591
virtual CBotError Modulo(CBotVar *left, CBotVar *right)
Modulo (remainder of division)
Definition: CBotVar.cpp:578
virtual bool Ls(CBotVar *left, CBotVar *right)
left <= right
Definition: CBotVar.cpp:611
virtual bool Hs(CBotVar *left, CBotVar *right)
left >= right
Definition: CBotVar.cpp:618
virtual void SR(CBotVar *left, CBotVar *right)
left >>> right
Definition: CBotVar.cpp:663
void * m_pUserPtr
User pointer if specified.
Definition: CBotVar.h:652
static CBotVar * Create(const std::string &name, CBotTypResult type)
Creates a new variable from a type described by CBotTypResult.
Definition: CBotVar.cpp:204
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:452
virtual void Or(CBotVar *left, CBotVar *right)
left || right or left | right
Definition: CBotVar.cpp:645
virtual CBotVar * GetItemList()
Return all elements of this variable as a linked list. Works for both classes and arrays...
Definition: CBotVar.cpp:405
void * GetUserPtr()
Returns the custom pointer associated with this variable.
Definition: CBotVar.cpp:115
the variable value is currently not defined
ProtectionLevel
Class member protection level (public/protected/private)
Definition: CBotVar.h:301
virtual void XOr(CBotVar *left, CBotVar *right)
left ^ right (also for boolean!)
Definition: CBotVar.cpp:651
The CBotCStack class Management of the stack of compilation.
Definition: CBotCStack.h:35
virtual float GetValFloat()
Get value as float.
Definition: CBotVar.cpp:540
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:666
CBotVar * GetStaticVar()
If this is a static class variable, return the static var from the class.
Definition: CBotVar.cpp:442
CBotVar subclass for managing arrays (CBotTypArrayPointer)
Definition: CBotVarArray.h:32
CBotInstr * m_InitExpr
Expression describing initial value.
Definition: CBotVar.h:658
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:65
CBotTypResult m_type
Type of value.
Definition: CBotVar.h:642
bool IsElemOfClass(const std::string &name)
Check if a variable belongs to a class with a given name.
Definition: CBotVar.cpp:419
bool IsUndefined() const
Checks if the variable is currently "undefined".
Definition: CBotVar.h:259
virtual void Dec()
–this
Definition: CBotVar.cpp:693
virtual void Power(CBotVar *left, CBotVar *right)
Power.
Definition: CBotVar.cpp:565
ProtectionLevel GetPrivate()
Get variable protection level.
Definition: CBotVar.cpp:512
void SetName(const std::string &name)
SetName Changes the name of the variable.
Definition: CBotVar.cpp:379
bool IsNAN() const
Checks if the variable is currently NAN.
Definition: CBotVar.h:271
ProtectionLevel m_mPrivate
Element protection level - public, protected or private (for classes)
Definition: CBotVar.h:656
static void Destroy(CBotVar *var)
Destroy a variable.
Definition: CBotVar.cpp:300
virtual void SetPointer(CBotVar *p)
Set value for pointer types.
Definition: CBotVar.cpp:518
virtual void Copy(CBotVar *pSrc, bool bName=true)
Copy from another variable.
Definition: CBotVar.cpp:699
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:639
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:319
bool m_bStatic
true if the variable is static (for classes)
Definition: CBotVar.h:654
virtual void Neg()
-this
Definition: CBotVar.cpp:675
long GetUniqNum()
Return unique identifier of this variable Note: For classes, this is unique within the class only - s...
Definition: CBotVar.cpp:109
CBotTypResult GetTypResult(GetTypeMode mode=GetTypeMode::NORMAL)
Returns the complete type of the variable (CBotTypResult)
Definition: CBotVar.cpp:306
std::string GetName()
Returns the name of the variable.
Definition: CBotVar.cpp:373
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:718
the variable value is defined
virtual void Not()
!this or ~this
Definition: CBotVar.cpp:681
static long NextUniqNum()
Generate next unique identifier.
Definition: CBotVar.cpp:102
CBotVarClass * m_pMyThis
Corresponding this element (TODO: ?)
Definition: CBotVar.h:646
bool IsStatic()
Checks if the variable is static.
Definition: CBotVar.cpp:500
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:86
virtual CBotError Div(CBotVar *left, CBotVar *right)
Division.
Definition: CBotVar.cpp:571
void SetType(CBotTypResult &type)
Change type of this variable.
Definition: CBotVar.cpp:329
CBot engine.
Definition: CBotCallMethode.cpp:28
the variable value is NAN
CBotToken * GetToken()
Returns the CBotToken this variable is associated with.
Definition: CBotVar.cpp:385
InitType GetInit() const
Returns the current init state of the variable.
Definition: CBotVar.cpp:335
void SetUserPtr(void *pUser)
Set a custom pointer associated with this variable.
Definition: CBotVar.cpp:77
virtual bool Ne(CBotVar *left, CBotVar *right)
left != right
Definition: CBotVar.cpp:632
void SetInit(InitType initType)
Changes variable init status.
Definition: CBotVar.cpp:343
bool IsPrivate(ProtectionLevel level=ProtectionLevel::Protected)
Checks if the variable is accessible at the given protection level.
Definition: CBotVar.cpp:506
virtual bool Eq(CBotVar *left, CBotVar *right)
left == right
Definition: CBotVar.cpp:625
virtual CBotVar * GetItemRef(int nIdent)
Returns class member by unique ID.
Definition: CBotVar.cpp:398
CBotVar subclass for managing classes (CBotTypClass, CBotTypIntrinsic)
Definition: CBotVarClass.h:34
virtual bool Lo(CBotVar *left, CBotVar *right)
left < right
Definition: CBotVar.cpp:597
Class representing one token of a program.
Definition: CBotToken.h:80
void SetPrivate(ProtectionLevel mPrivate)
Sets variable protection level.
Definition: CBotVar.cpp:494
CBotInstr * m_LimExpr
Expression describing array limit.
Definition: CBotVar.h:660