|
| 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)) |
| AddFunction This call allows to add as external new method used by the objects of this class. See (**) at end of this file for more details. 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...
|
|
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...
|
|
CBotTypResult | CompileMethode (const std::string &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, const std::string &name, CBotVar *pThis, CBotVar **ppParams, CBotVar *&pResult, CBotStack *&pStack, CBotToken *pToken) |
| ExecuteMethode Executes a method. More...
|
|
void | RestoreMethode (long &nIdent, const std::string &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) |
|
virtual | ~CBotLinkedList () |
| Destructor. Be careful, destroys the whole linked list! More...
|
|
CBotClass * | GetNext () |
| Returns the next variable in the linked list. More...
|
|
void | AddNext (CBotClass *elem) |
| Appends a new element at the end of the linked list. More...
|
|
A CBot class definition.
Usage examples
Define class "point":
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);
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();