Colobot
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
CBot::CBotVarValue< T, type > Class Template Reference

A variable holding a simple value (bool, int, float, string) More...

#include <src/CBot/CBotVar/CBotVarValue.h>

Inheritance diagram for CBot::CBotVarValue< T, type >:
Inheritance graph
[legend]

Public Member Functions

 CBotVarValue (const CBotToken &name)
 Constructor. Do not call directly, use CBotVar::Create()
 
void Copy (CBotVar *pSrc, bool bName=true) override
 Copy from another variable.
 
void SetValString (const std::string &val) override
 Set value as string.
 
std::string GetValString () const override
 Get value as string.
 
- Public Member Functions inherited from CBot::CBotVar
const std::string & GetName ()
 Returns the name of the variable.
 
void SetName (const std::string &name)
 SetName Changes the name of the variable.
 
CBotTokenGetToken ()
 Returns the CBotToken this variable is associated with.
 
CBotType GetType (GetTypeMode mode=GetTypeMode::NORMAL) const
 GetType Returns the base type of the variable (CBotType)
 
CBotTypResult GetTypResult (GetTypeMode mode=GetTypeMode::NORMAL)
 Returns the complete type of the variable (CBotTypResult)
 
void SetType (CBotTypResult &type)
 Change type of this variable.
 
virtual void SetClass (CBotClass *pClass)
 Set class this variable is instance of.
 
virtual CBotClassGetClass ()
 Return class this variable is instance of.
 
void SetInit (InitType initType)
 Changes variable init status.
 
InitType GetInit () const
 Returns the current init state of the variable.
 
bool IsUndefined () const
 Checks if the variable is currently "undefined".
 
bool IsDefined () const
 Checks if the variable is currently "defined".
 
void SetStatic (bool bStatic)
 Marks the variable as "static".
 
bool IsStatic ()
 Checks if the variable is static.
 
void SetPrivate (ProtectionLevel mPrivate)
 Sets variable protection level.
 
bool IsPrivate (ProtectionLevel level=ProtectionLevel::Protected)
 Checks if the variable is accessible at the given protection level.
 
ProtectionLevel GetPrivate ()
 Get variable protection level.
 
bool IsElemOfClass (const std::string &name)
 Check if a variable belongs to a class with a given name.
 
virtual void ConstructorSet ()
 Called after constructor has been called.
 
CBotVarGetStaticVar ()
 If this is a static class variable, return the static var from the class.
 
virtual void Update (void *pUser)
 Call the class update function.
 
void SetUniqNum (long n)
 Set unique identifier of this variable Note: For classes, this is unique within the class only - see CBotClass:AddItem.
 
long GetUniqNum ()
 Return unique identifier of this variable Note: For classes, this is unique within the class only - see CBotClass:AddItem.
 
virtual bool Save0State (std::ostream &ostr)
 Save common variable header (name, type, etc.)
 
virtual bool Save1State (std::ostream &ostr)
 Save variable data.
 
 CBotVar ()
 Constructor. Do not call directly, use CBotVar::Create()
 
 CBotVar (const CBotToken &name)
 Constructor. Do not call directly, use CBotVar::Create()
 
virtual ~CBotVar ()
 Destructor. Do not call directly, use CBotVar::Destroy()
 
virtual void SetIdent (long UniqId)
 Associates an unique identifier to class instance.
 
void SetUserPtr (void *pUser)
 Set a custom pointer associated with this variable.
 
void * GetUserPtr ()
 Returns the custom pointer associated with this variable.
 
virtual CBotVarGetItem (const std::string &name)
 Returns class member by name.
 
virtual CBotVarGetItemRef (int nIdent)
 Returns class member by unique ID.
 
virtual CBotVarGetItem (int index, bool grow=false)
 Returns element of the array by index.
 
virtual CBotVarGetItemList ()
 Return all elements of this variable as a linked list. Works for both classes and arrays.
 
 operator bool ()
 Set the value.
 
 operator signed char ()
 Set the value.
 
 operator short ()
 Set the value.
 
 operator uint32_t ()
 Set the value.
 
 operator int ()
 Set the value.
 
 operator long ()
 Set the value.
 
 operator float ()
 Set the value.
 
 operator double ()
 Set the value.
 
 operator std::string ()
 Set the value.
 
void operator= (const CBotVar &var)
 Set the value.
 
void operator= (signed char x)
 Set the value.
 
void operator= (short x)
 Set the value.
 
void operator= (uint32_t x)
 Set the value.
 
void operator= (int x)
 Set the value.
 
void operator= (long x)
 Set the value.
 
void operator= (float x)
 Set the value.
 
void operator= (double x)
 Set the value.
 
void operator= (const std::string &x)
 Set the value.
 
void SetVal (CBotVar *var)
 Set the value.
 
virtual void SetValByte (signed char val)
 Set the value.
 
virtual void SetValShort (short val)
 Set the value.
 
virtual void SetValChar (uint32_t val)
 Set the value.
 
virtual void SetValInt (int val, const std::string &name="")
 Set value as an integer.
 
virtual void SetValLong (long val)
 Set the value.
 
virtual void SetValFloat (float val)
 Set value as float.
 
virtual void SetValDouble (double val)
 Set the value.
 
virtual signed char GetValByte () const
 Set the value.
 
virtual short GetValShort () const
 Set the value.
 
virtual uint32_t GetValChar () const
 Set the value.
 
virtual int GetValInt () const
 Get value as integer.
 
virtual long GetValLong () const
 Set the value.
 
virtual float GetValFloat () const
 Get value as float.
 
virtual double GetValDouble () const
 Set the value.
 
virtual void SetPointer (CBotVar *p)
 Set value for pointer types.
 
virtual CBotVarClassGetPointer ()
 Get value for pointer types.
 
virtual void Add (CBotVar *left, CBotVar *right)
 Addition.
 
virtual void Sub (CBotVar *left, CBotVar *right)
 Subtraction.
 
virtual void Mul (CBotVar *left, CBotVar *right)
 Multiplication.
 
virtual CBotError Div (CBotVar *left, CBotVar *right)
 Division.
 
virtual CBotError Modulo (CBotVar *left, CBotVar *right)
 Modulo (remainder of division)
 
virtual void Power (CBotVar *left, CBotVar *right)
 Power.
 
virtual bool Lo (CBotVar *left, CBotVar *right)
 left < right
 
virtual bool Hi (CBotVar *left, CBotVar *right)
 left > right
 
virtual bool Ls (CBotVar *left, CBotVar *right)
 left <= right
 
virtual bool Hs (CBotVar *left, CBotVar *right)
 left >= right
 
virtual bool Eq (CBotVar *left, CBotVar *right)
 left == right
 
virtual bool Ne (CBotVar *left, CBotVar *right)
 left != right
 
virtual void And (CBotVar *left, CBotVar *right)
 left && right or left & right
 
virtual void Or (CBotVar *left, CBotVar *right)
 left || right or left | right
 
virtual void XOr (CBotVar *left, CBotVar *right)
 left ^ right (also for boolean!)
 
virtual void Not ()
 !this or ~this
 
virtual void ASR (CBotVar *left, CBotVar *right)
 left >> right
 
virtual void SR (CBotVar *left, CBotVar *right)
 left >>> right
 
virtual void SL (CBotVar *left, CBotVar *right)
 left << right
 
virtual void Neg ()
 -this
 
virtual void Inc ()
 ++this
 
virtual void Dec ()
 –this
 
- Public Member Functions inherited from CBot::CBotLinkedList< CBotVar >
virtual ~CBotLinkedList ()
 Destructor. Be careful, destroys the whole linked list!
 
CBotVarGetNext ()
 Returns the next variable in the linked list.
 
void AddNext (CBotVar *elem)
 Appends a new element at the end of the linked list.
 

Protected Member Functions

virtual void SetValue (T val)
 

Protected Attributes

m_val
 The value.
 
- Protected Attributes inherited from CBot::CBotVar
CBotToken *const m_token
 The corresponding token, defines the variable name.
 
CBotTypResult m_type
 Type of value.
 
InitType m_binit
 Initialization status.
 
CBotVarClassm_pMyThis
 Corresponding this element (TODO: ?)
 
void * m_pUserPtr
 User pointer if specified.
 
bool m_bStatic
 true if the variable is static (for classes)
 
ProtectionLevel m_mPrivate
 Element protection level - public, protected or private (for classes)
 
CBotInstrm_InitExpr
 Expression describing initial value.
 
CBotInstrm_LimExpr
 Expression describing array limit.
 
long m_ident
 Identifier.
 
- Protected Attributes inherited from CBot::CBotLinkedList< CBotVar >
CBotVarm_next
 

Additional Inherited Members

- Public Types inherited from CBot::CBotVar
enum class  GetTypeMode { NORMAL = 0 , CLASS_AS_POINTER = 1 , CLASS_AS_INTRINSIC = 2 }
 Mode for GetType() and GetTypResult() More...
 
enum class  InitType : int { UNDEF = 0 , DEF = 1 , IS_POINTER = 2 }
 Variable initialization status. More...
 
enum class  ProtectionLevel { Public = 0 , ReadOnly = 1 , Protected = 2 , Private = 3 }
 Class member protection level (public/protected/private) More...
 
- Static Public Member Functions inherited from CBot::CBotVar
static long NextUniqNum ()
 Generate next unique identifier.
 
static bool RestoreState (std::istream &istr, CBotVar *&pVar)
 Restore variable.
 
static CBotVarCreate (const std::string &name, CBotTypResult type)
 Creates a new variable from a type described by CBotTypResult.
 
static CBotVarCreate (const std::string &name, CBotClass *pClass)
 Creates a new variable of a given class type.
 
static CBotVarCreate (const CBotToken &name, CBotType type)
 Creates a new variable of a given type.
 
static CBotVarCreate (const CBotToken &name, CBotTypResult type)
 Create a new variable of a given type described by CBotTypResult.
 
static CBotVarCreate (const std::string &name, CBotType type, CBotClass *pClass)
 Create a new variable of a given type of given class instance.
 
static CBotVarCreate (CBotVar *pVar)
 Create a new variable of the same type and name as another one.
 
static void Destroy (CBotVar *var)
 Destroy a variable.
 
- Static Protected Attributes inherited from CBot::CBotVar
static long m_identcpt = 0
 TODO: ?
 

Detailed Description

template<typename T, CBotType type>
class CBot::CBotVarValue< T, type >

A variable holding a simple value (bool, int, float, string)

Constructor & Destructor Documentation

◆ CBotVarValue()

template<typename T , CBotType type>
CBot::CBotVarValue< T, type >::CBotVarValue ( const CBotToken name)
inline

Constructor. Do not call directly, use CBotVar::Create()

Member Function Documentation

◆ Copy()

template<typename T , CBotType type>
void CBot::CBotVarValue< T, type >::Copy ( CBotVar pSrc,
bool  bName = true 
)
inlineoverridevirtual

Copy from another variable.

Parameters
pSrcVariable to copy from
bNametrue if you want to also copy the name

Reimplemented from CBot::CBotVar.

◆ SetValString()

template<typename T , CBotType type>
void CBot::CBotVarValue< T, type >::SetValString ( const std::string &  val)
inlineoverridevirtual

Set value as string.

Parameters
valNew value

Reimplemented from CBot::CBotVar.

◆ GetValString()

template<typename T , CBotType type>
std::string CBot::CBotVarValue< T, type >::GetValString ( ) const
inlineoverridevirtual

Get value as string.

This one is supported by most types of variables.

Automatically converts the value to string if needed.

Returns
Current value

Reimplemented from CBot::CBotVar.

Member Data Documentation

◆ m_val

template<typename T , CBotType type>
T CBot::CBotVarValue< T, type >::m_val
protected

The value.


The documentation for this class was generated from the following file: