|
| | CBotClass (const std::string &name, CBotClass *parent, bool bIntrinsic=false) |
| | CBotClass Constructor. Once a class is created, it is known around CBot intrinsic mode gives a class that is not managed by pointers. More...
|
| |
| | ~CBotClass () |
| | CBotClass Destructor. More...
|
| |
| bool | AddFunction (const std::string &name, bool rExec(CBotVar *pThis, CBotVar *pVar, CBotVar *pResult, int &Exception, void *user), CBotTypResult rCompile(CBotVar *pThis, CBotVar *&pVar)) |
| | Add a function that can be called from CBot. More...
|
| |
| bool | SetUpdateFunc (void rUpdate(CBotVar *thisVar, void *user)) |
| | SetUpdateFunc Defines routine to be called to update the elements of the class. More...
|
| |
| bool | AddItem (std::string name, CBotTypResult type, CBotVar::ProtectionLevel mPrivate=CBotVar::ProtectionLevel::Public) |
| | AddItem Adds an element to the class. More...
|
| |
| bool | AddItem (CBotVar *pVar) |
| | AddItem Adds an item by passing the pointer to an instance of a variable the object is taken as is, so do not destroyed. More...
|
| |
| const std::string & | GetName () |
| | GetName Gives the name of the class. More...
|
| |
| CBotClass * | GetParent () |
| | GetParent Gives the parent class (or nullptr). More...
|
| |
| bool | IsChildOf (CBotClass *pClass) |
| | IsChildOf True if a class is derived (Extends) of another. More...
|
| |
| CBotVar * | GetVar () |
| | GetVar Return the list of variables. More...
|
| |
| CBotVar * | GetItem (const std::string &name) |
| | GetItem One of the variables according to its name. More...
|
| |
| CBotVar * | GetItemRef (int nIdent) |
| | GetItemRef. More...
|
| |
| bool | CheckVar (const std::string &name) |
| | Check whether a variable is already defined in a class. More...
|
| |
| CBotTypResult | CompileMethode (CBotToken *name, CBotVar *pThis, CBotVar **ppParams, CBotCStack *pStack, long &nIdent) |
| | CompileMethode Compiles a method associated with an instance of class the method can be declared by the user or AddFunction. More...
|
| |
| bool | ExecuteMethode (long &nIdent, CBotVar *pThis, CBotVar **ppParams, CBotTypResult pResultType, CBotStack *&pStack, CBotToken *pToken) |
| | ExecuteMethode Executes a method. More...
|
| |
| void | RestoreMethode (long &nIdent, CBotToken *name, CBotVar *pThis, CBotVar **ppParams, CBotStack *&pStack) |
| | RestoreMethode Restored the execution stack. More...
|
| |
| bool | CompileDefItem (CBotToken *&p, CBotCStack *pStack, bool bSecond) |
| | CompileDefItem. More...
|
| |
| bool | IsIntrinsic () |
| | IsIntrinsic. More...
|
| |
| void | Purge () |
| | Purge. More...
|
| |
| bool | Lock (CBotProgram *prog) |
| | Request a lock on this class (for "synchronized" keyword) More...
|
| |
| void | Unlock () |
| | Release the lock acquired in Lock() If you call Lock() multiple times for the same program, you have to call Unlock() multiple times too. More...
|
| |
| bool | CheckCall (CBotProgram *program, CBotDefParam *pParam, CBotToken *&pToken) |
| | CheckCall Test if a procedure name is already defined somewhere. More...
|
| |
|
void | Update (CBotVar *var, void *user) |
| |
A CBot class definition.
Usage examples
Define class "point":
CBotClass(const std::string &name, CBotClass *parent, bool bIntrinsic=false)
CBotClass Constructor. Once a class is created, it is known around CBot intrinsic mode gives a class ...
Definition: CBotClass.cpp:50
@ CBotTypFloat
float
Definition: CBotEnums.h:43
Define readonly class "object" with members of type "point" and some methods:
classObject->AddItem(
"category", CBotTypResult(
CBotTypInt), CBotVar::ProtectionType::ReadOnly);
classObject->AddItem(
"position", CBotTypResult(
CBotTypClass, classPoint), CBotVar::ProtectionType::ReadOnly);
classObject->AddFunction("func", rFunc, cFunc);
@ CBotTypClass
Class instance.
Definition: CBotEnums.h:53
@ CBotTypInt
int
Definition: CBotEnums.h:41
Define class "robot" derrived from "object":
classRobot->AddItem(
"velocity", CBotTypResult(
CBotTypClass, classPoint), CBotVar::ProtectionType::ReadOnly);
classRobot->AddFunction("func2", rFunc2, cFunc2);
Create instance of the "robot" class:
CBotVar* var = new CBotVar("variableName", classRobot);
Access members of the "point" class:
CBotVar* varX = classInstance->GetItem("x");
float x = varX->GetValFloat();
CBotVar* varY = classInstance->GetItem("y");
float y = varX->GetValFloat();
CBotVar* var = classInstance->GetItemList();
float x = var->GetValFloat();
var->GetNext();
float y = var->GetValFloat();