|
| | 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();