[colobot] 171/377: CBotVar::ProtectionLevel enum

Didier Raboud odyx at moszumanska.debian.org
Wed Mar 30 13:34:12 UTC 2016


This is an automated email from the git hooks/post-receive script.

odyx pushed a commit to branch debian/master
in repository colobot.

commit 2519825104750e45c2de2f84ff3324cc1d00fb51
Author: krzys-h <krzys_h at interia.pl>
Date:   Mon Dec 21 23:07:40 2015 +0100

    CBotVar::ProtectionLevel enum
---
 src/CBot/CBotClass.cpp              | 10 +++++-----
 src/CBot/CBotClass.h                |  6 +++---
 src/CBot/CBotDefines.h              | 13 -------------
 src/CBot/CBotInstr/CBotExprVar.cpp  |  2 +-
 src/CBot/CBotInstr/CBotExprVar.h    |  4 +++-
 src/CBot/CBotInstr/CBotLeftExpr.cpp |  4 ++--
 src/CBot/CBotInstr/CBotParExpr.cpp  |  4 ++--
 src/CBot/CBotStack.cpp              |  4 ++--
 src/CBot/CBotVar/CBotVar.cpp        | 10 +++++-----
 src/CBot/CBotVar/CBotVar.h          | 16 ++++++++++++----
 src/CBot/CBotVar/CBotVarBoolean.cpp |  2 +-
 src/CBot/CBotVar/CBotVarClass.cpp   |  2 +-
 src/CBot/CBotVar/CBotVarFloat.cpp   |  2 +-
 src/CBot/CBotVar/CBotVarInt.cpp     |  2 +-
 src/CBot/CBotVar/CBotVarString.cpp  |  2 +-
 src/CBot/stdlib/FileFunctions.cpp   |  2 +-
 src/script/scriptfunc.cpp           | 30 +++++++++++++++---------------
 17 files changed, 56 insertions(+), 59 deletions(-)

diff --git a/src/CBot/CBotClass.cpp b/src/CBot/CBotClass.cpp
index 34a3b33..c2a6e5b 100644
--- a/src/CBot/CBotClass.cpp
+++ b/src/CBot/CBotClass.cpp
@@ -211,7 +211,7 @@ void CBotClass::FreeLock(CBotProgram* p)
 ////////////////////////////////////////////////////////////////////////////////
 bool CBotClass::AddItem(std::string name,
                         CBotTypResult type,
-                        int mPrivate)
+                        CBotVar::ProtectionLevel mPrivate)
 {
     CBotClass*  pClass = type.GetClass();
 
@@ -589,7 +589,7 @@ CBotClass* CBotClass::Compile1(CBotToken* &p, CBotCStack* pStack)
 bool CBotClass::CompileDefItem(CBotToken* &p, CBotCStack* pStack, bool bSecond)
 {
     bool    bStatic = false;
-    int     mProtect = PR_PUBLIC;
+    CBotVar::ProtectionLevel mProtect = CBotVar::ProtectionLevel::Public;
     bool    bSynchro = false;
 
     while (IsOfType(p, ID_SEP)) ;
@@ -600,9 +600,9 @@ bool CBotClass::CompileDefItem(CBotToken* &p, CBotCStack* pStack, bool bSecond)
     CBotToken*      pBase = p;
 
     if ( IsOfType(p, ID_STATIC) ) bStatic = true;
-    if ( IsOfType(p, ID_PUBLIC) ) mProtect = PR_PUBLIC;
-    if ( IsOfType(p, ID_PRIVATE) ) mProtect = PR_PRIVATE;
-    if ( IsOfType(p, ID_PROTECTED) ) mProtect = PR_PROTECT;
+    if ( IsOfType(p, ID_PUBLIC) ) mProtect = CBotVar::ProtectionLevel::Public;
+    if ( IsOfType(p, ID_PRIVATE) ) mProtect = CBotVar::ProtectionLevel::Private;
+    if ( IsOfType(p, ID_PROTECTED) ) mProtect = CBotVar::ProtectionLevel::Protected;
     if ( IsOfType(p, ID_STATIC) ) bStatic = true;
 
 //  CBotClass* pClass = nullptr;
diff --git a/src/CBot/CBotClass.h b/src/CBot/CBotClass.h
index 849a066..b3f1f87 100644
--- a/src/CBot/CBotClass.h
+++ b/src/CBot/CBotClass.h
@@ -21,8 +21,8 @@
 
 // Modules inlcude
 #include "CBot/CBotDefines.h"
-
 #include "CBot/CBotTypResult.h"
+#include "CBot/CBotVar/CBotVar.h"
 
 // Local include
 
@@ -30,7 +30,6 @@
 #include <string>
 
 // Forward declaration
-class CBotVar;
 class CBotClass;
 class CBotCallMethode;
 class CBotFunction;
@@ -107,7 +106,8 @@ public:
      * \param mPrivate
      * \return
      */
-    bool AddItem(std::string name, CBotTypResult type, int mPrivate = PR_PUBLIC);
+    bool AddItem(std::string name, CBotTypResult type,
+                 CBotVar::ProtectionLevel mPrivate = CBotVar::ProtectionLevel::Public);
 
     /*!
      * \brief AddItem Adds an item by passing the pointer to an instance of a
diff --git a/src/CBot/CBotDefines.h b/src/CBot/CBotDefines.h
index f2ede5a..01f7e1b 100644
--- a/src/CBot/CBotDefines.h
+++ b/src/CBot/CBotDefines.h
@@ -19,13 +19,6 @@
 
 #pragma once
 
-// Modules inlcude
-
-// Local include
-
-// Global include
-
-
 #define    STACKMEM    1                /// \def preserve memory for the execution stack
 #define    MAXSTACK    990              /// \def stack size reserved
 
@@ -33,12 +26,6 @@
 
 #define    MAXARRAYSIZE    9999
 
-// variable type SetPrivate / IsPrivate
-#define PR_PUBLIC    0        // public variable
-#define PR_READ      1        // read only
-#define PR_PROTECT   2        // protected (inheritance)
-#define PR_PRIVATE   3        // strictly private
-
 //! Define the current CBot version
 #define    CBOTVERSION    104
 
diff --git a/src/CBot/CBotInstr/CBotExprVar.cpp b/src/CBot/CBotInstr/CBotExprVar.cpp
index 57bee4e..9740521 100644
--- a/src/CBot/CBotInstr/CBotExprVar.cpp
+++ b/src/CBot/CBotInstr/CBotExprVar.cpp
@@ -46,7 +46,7 @@ CBotExprVar::~CBotExprVar()
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-CBotInstr* CBotExprVar::Compile(CBotToken* &p, CBotCStack* pStack, int privat)
+CBotInstr* CBotExprVar::Compile(CBotToken*& p, CBotCStack* pStack, CBotVar::ProtectionLevel privat)
 {
 //    CBotToken*    pDebut = p;
     CBotCStack* pStk = pStack->TokenStack();
diff --git a/src/CBot/CBotInstr/CBotExprVar.h b/src/CBot/CBotInstr/CBotExprVar.h
index ff5cf17..2306313 100644
--- a/src/CBot/CBotInstr/CBotExprVar.h
+++ b/src/CBot/CBotInstr/CBotExprVar.h
@@ -23,6 +23,7 @@
 #include "CBot/CBotDefines.h"
 
 #include "CBot/CBotInstr/CBotInstr.h"
+#include "CBot/CBotVar/CBotVar.h"
 
 // Local include
 
@@ -54,7 +55,8 @@ public:
      * \param privat
      * \return
      */
-    static CBotInstr* Compile(CBotToken* &p, CBotCStack* pStack, int privat=PR_PROTECT);
+    static CBotInstr* Compile(CBotToken*& p, CBotCStack* pStack,
+                              CBotVar::ProtectionLevel privat = CBotVar::ProtectionLevel::Protected);
 
     /*!
      * \brief CompileMethode
diff --git a/src/CBot/CBotInstr/CBotLeftExpr.cpp b/src/CBot/CBotInstr/CBotLeftExpr.cpp
index 56f124f..aef6bbe 100644
--- a/src/CBot/CBotInstr/CBotLeftExpr.cpp
+++ b/src/CBot/CBotInstr/CBotLeftExpr.cpp
@@ -67,7 +67,7 @@ CBotLeftExpr* CBotLeftExpr::Compile(CBotToken* &p, CBotCStack* pStack)
             inst->m_nIdent = var->GetUniqNum();
             if (inst->m_nIdent > 0 && inst->m_nIdent < 9000)
             {
-                if ( var->IsPrivate(PR_READ) &&
+                if ( var->IsPrivate(CBotVar::ProtectionLevel::ReadOnly) &&
                      !pStk->GetBotCall()->m_bCompileClass)
                 {
                     pStk->SetError(CBotErrPrivate, p);
@@ -131,7 +131,7 @@ CBotLeftExpr* CBotLeftExpr::Compile(CBotToken* &p, CBotCStack* pStack)
                             var = var->GetItem(p->GetString());            // get item correspondent
                             if (var != nullptr)
                             {
-                                if ( var->IsPrivate(PR_READ) &&
+                                if ( var->IsPrivate(CBotVar::ProtectionLevel::ReadOnly) &&
                                      !pStk->GetBotCall()->m_bCompileClass)
                                 {
                                     pStk->SetError(CBotErrPrivate, pp);
diff --git a/src/CBot/CBotInstr/CBotParExpr.cpp b/src/CBot/CBotInstr/CBotParExpr.cpp
index 25d530d..897e1b0 100644
--- a/src/CBot/CBotInstr/CBotParExpr.cpp
+++ b/src/CBot/CBotInstr/CBotParExpr.cpp
@@ -102,7 +102,7 @@ CBotInstr* CBotParExpr::Compile(CBotToken* &p, CBotCStack* pStack)
             // recompile the variable for read-only
             delete inst;
             p = pvar;
-            inst =  CBotExprVar::Compile(p, pStk, PR_READ);
+            inst =  CBotExprVar::Compile(p, pStk, CBotVar::ProtectionLevel::ReadOnly);
             p = p->GetNext();
 
             CBotPostIncExpr* i = new CBotPostIncExpr();
@@ -122,7 +122,7 @@ CBotInstr* CBotParExpr::Compile(CBotToken* &p, CBotCStack* pStack)
 
         if (p->GetType() == TokenTypVar)
         {
-            if (nullptr != (i->m_Instr =  CBotExprVar::Compile(p, pStk, PR_READ)))
+            if (nullptr != (i->m_Instr =  CBotExprVar::Compile(p, pStk, CBotVar::ProtectionLevel::ReadOnly)))
             {
                 if (pStk->GetType() >= CBotTypBoolean)
                 {
diff --git a/src/CBot/CBotStack.cpp b/src/CBot/CBotStack.cpp
index 4b13df5..cb4ecc8 100644
--- a/src/CBot/CBotStack.cpp
+++ b/src/CBot/CBotStack.cpp
@@ -943,7 +943,7 @@ bool CBotStack::RestoreState(FILE* pf, CBotStack* &pStack)
 ////////////////////////////////////////////////////////////////////////////////
 bool CBotVar::Save0State(FILE* pf)
 {
-    if (!WriteWord(pf, 100+m_mPrivate))return false;        // private variable?
+    if (!WriteWord(pf, 100+static_cast<int>(m_mPrivate)))return false;        // private variable?
     if (!WriteWord(pf, m_bStatic))return false;                // static variable?
     if (!WriteWord(pf, m_type.GetType()))return false;        // saves the type (always non-zero)
     if (!WriteWord(pf, static_cast<unsigned short>(m_binit))) return false;                // variable defined?
@@ -1106,7 +1106,7 @@ bool CBotVar::RestoreState(FILE* pf, CBotVar* &pVar)
 
         pNew->m_binit = initType;        //        pNew->SetInit(wi);
         pNew->SetStatic(st);
-        pNew->SetPrivate(prv-100);
+        pNew->SetPrivate(static_cast<ProtectionLevel>(prv-100));
         pPrev = pNew;
     }
     return true;
diff --git a/src/CBot/CBotVar/CBotVar.cpp b/src/CBot/CBotVar/CBotVar.cpp
index aeab11d..cc86620 100644
--- a/src/CBot/CBotVar/CBotVar.cpp
+++ b/src/CBot/CBotVar/CBotVar.cpp
@@ -58,7 +58,7 @@ CBotVar::CBotVar( )
     m_binit = InitType::UNDEF;
     m_ident = 0;
     m_bStatic = false;
-    m_mPrivate = 0;
+    m_mPrivate = ProtectionLevel::Public;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -509,7 +509,7 @@ void CBotVar::SetStatic(bool bStatic)
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-void CBotVar::SetPrivate(int mPrivate)
+void CBotVar::SetPrivate(ProtectionLevel mPrivate)
 {
     m_mPrivate = mPrivate;
 }
@@ -521,13 +521,13 @@ bool CBotVar::IsStatic()
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-bool CBotVar::IsPrivate(int mode)
+bool CBotVar::IsPrivate(ProtectionLevel mode)
 {
-    return m_mPrivate >= mode;
+    return static_cast<int>(m_mPrivate) >= static_cast<int>(mode);
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-int CBotVar::GetPrivate()
+CBotVar::ProtectionLevel CBotVar::GetPrivate()
 {
     return m_mPrivate;
 }
diff --git a/src/CBot/CBotVar/CBotVar.h b/src/CBot/CBotVar/CBotVar.h
index 8acd9cf..39e3b6c 100644
--- a/src/CBot/CBotVar/CBotVar.h
+++ b/src/CBot/CBotVar/CBotVar.h
@@ -219,24 +219,32 @@ public:
      */
     bool IsStatic();
 
+    enum class ProtectionLevel
+    {
+        Public = 0,    //!< public variable
+        ReadOnly = 1,  //!< read only (can't be set from CBot, only from the engine)
+        Protected = 2, //!< protected (inheritance)
+        Private = 3    //!< private
+    };
+
     /*!
      * \brief SetPrivate
      * \param mPrivate
      */
-    void SetPrivate(int mPrivate);
+    void SetPrivate(ProtectionLevel mPrivate);
 
     /*!
      * \brief IsPrivate
      * \param mode
      * \return
      */
-    bool IsPrivate(int mode = PR_PROTECT);
+    bool IsPrivate(ProtectionLevel mode = ProtectionLevel::Protected);
 
     /*!
      * \brief GetPrivate
      * \return
      */
-    int GetPrivate();
+    ProtectionLevel GetPrivate();
 
     /*!
      * \brief ConstructorSet
@@ -590,7 +598,7 @@ protected:
     //! Static element (in class).
     bool m_bStatic;
     //! Element public, protected or private.
-    int m_mPrivate;
+    ProtectionLevel m_mPrivate;
     //! Expression for the original content.
     CBotInstr* m_InitExpr;
     //! List of limits for a table.
diff --git a/src/CBot/CBotVar/CBotVarBoolean.cpp b/src/CBot/CBotVar/CBotVarBoolean.cpp
index 10d33bd..a06292f 100644
--- a/src/CBot/CBotVar/CBotVarBoolean.cpp
+++ b/src/CBot/CBotVar/CBotVarBoolean.cpp
@@ -41,7 +41,7 @@ CBotVarBoolean::CBotVarBoolean( const CBotToken* name )
     m_type     = CBotTypBoolean;
     m_binit    = InitType::UNDEF;
     m_bStatic  = false;
-    m_mPrivate = 0;
+    m_mPrivate = ProtectionLevel::Public;
     m_val      = 0;
 }
 
diff --git a/src/CBot/CBotVar/CBotVarClass.cpp b/src/CBot/CBotVar/CBotVarClass.cpp
index 0dcef3e..4caa4c9 100644
--- a/src/CBot/CBotVar/CBotVarClass.cpp
+++ b/src/CBot/CBotVar/CBotVarClass.cpp
@@ -61,7 +61,7 @@ CBotVarClass::CBotVarClass( const CBotToken* name, const CBotTypResult& type)
     m_pParent    = nullptr;
     m_binit        = InitType::UNDEF;
     m_bStatic    = false;
-    m_mPrivate    = 0;
+    m_mPrivate    = ProtectionLevel::Public;
     m_bConstructor = false;
     m_CptUse    = 0;
     m_ItemIdent = type.Eq(CBotTypIntrinsic) ? 0 : CBotVar::NextUniqNum();
diff --git a/src/CBot/CBotVar/CBotVarFloat.cpp b/src/CBot/CBotVar/CBotVarFloat.cpp
index 886d973..0d7688a 100644
--- a/src/CBot/CBotVar/CBotVarFloat.cpp
+++ b/src/CBot/CBotVar/CBotVarFloat.cpp
@@ -43,7 +43,7 @@ CBotVarFloat::CBotVarFloat( const CBotToken* name )
     m_type  = CBotTypFloat;
     m_binit = InitType::UNDEF;
     m_bStatic = false;
-    m_mPrivate = 0;
+    m_mPrivate = ProtectionLevel::Public;
 
     m_val    = 0;
 }
diff --git a/src/CBot/CBotVar/CBotVarInt.cpp b/src/CBot/CBotVar/CBotVarInt.cpp
index 614a959..4437386 100644
--- a/src/CBot/CBotVar/CBotVarInt.cpp
+++ b/src/CBot/CBotVar/CBotVarInt.cpp
@@ -42,7 +42,7 @@ CBotVarInt::CBotVarInt( const CBotToken* name )
     m_type  = CBotTypInt;
     m_binit = InitType::UNDEF;
     m_bStatic = false;
-    m_mPrivate = 0;
+    m_mPrivate = ProtectionLevel::Public;
 
     m_val    = 0;
 }
diff --git a/src/CBot/CBotVar/CBotVarString.cpp b/src/CBot/CBotVar/CBotVarString.cpp
index 5cf3d47..931c610 100644
--- a/src/CBot/CBotVar/CBotVarString.cpp
+++ b/src/CBot/CBotVar/CBotVarString.cpp
@@ -41,7 +41,7 @@ CBotVarString::CBotVarString( const CBotToken* name )
     m_type  = CBotTypString;
     m_binit = InitType::UNDEF;
     m_bStatic = false;
-    m_mPrivate = 0;
+    m_mPrivate = ProtectionLevel::Public;
 
     m_val.clear();
 }
diff --git a/src/CBot/stdlib/FileFunctions.cpp b/src/CBot/stdlib/FileFunctions.cpp
index 26836a9..c913d24 100644
--- a/src/CBot/stdlib/FileFunctions.cpp
+++ b/src/CBot/stdlib/FileFunctions.cpp
@@ -348,7 +348,7 @@ void InitFileFunctions()
     // adds the component ".filename"
     bc->AddItem("filename", CBotTypString);
     // adds the component ".handle"
-    bc->AddItem("handle", CBotTypInt, PR_PRIVATE);
+    bc->AddItem("handle", CBotTypInt, CBotVar::ProtectionLevel::Private);
 
     // define a constructor and a destructor
     bc->AddFunction("file", rfconstruct, cfconstruct);
diff --git a/src/script/scriptfunc.cpp b/src/script/scriptfunc.cpp
index 93e0241..b730bf2 100644
--- a/src/script/scriptfunc.cpp
+++ b/src/script/scriptfunc.cpp
@@ -3183,21 +3183,21 @@ void CScriptFunctions::Init()
 
     // Adds the class Object.
     bc = CBotClass::Create("object", nullptr);
-    bc->AddItem("category",    CBotTypResult(CBotTypInt), PR_READ);
-    bc->AddItem("position",    CBotTypResult(CBotTypClass, "point"), PR_READ);
-    bc->AddItem("orientation", CBotTypResult(CBotTypFloat), PR_READ);
-    bc->AddItem("pitch",       CBotTypResult(CBotTypFloat), PR_READ);
-    bc->AddItem("roll",        CBotTypResult(CBotTypFloat), PR_READ);
-    bc->AddItem("energyLevel", CBotTypResult(CBotTypFloat), PR_READ);
-    bc->AddItem("shieldLevel", CBotTypResult(CBotTypFloat), PR_READ);
-    bc->AddItem("temperature", CBotTypResult(CBotTypFloat), PR_READ);
-    bc->AddItem("altitude",    CBotTypResult(CBotTypFloat), PR_READ);
-    bc->AddItem("lifeTime",    CBotTypResult(CBotTypFloat), PR_READ);
-    bc->AddItem("energyCell",  CBotTypResult(CBotTypPointer, "object"), PR_READ);
-    bc->AddItem("load",        CBotTypResult(CBotTypPointer, "object"), PR_READ);
-    bc->AddItem("id",          CBotTypResult(CBotTypInt), PR_READ);
-    bc->AddItem("team",        CBotTypResult(CBotTypInt), PR_READ);
-    bc->AddItem("velocity",    CBotTypResult(CBotTypClass, "point"), PR_READ);
+    bc->AddItem("category",    CBotTypResult(CBotTypInt), CBotVar::ProtectionLevel::ReadOnly);
+    bc->AddItem("position",    CBotTypResult(CBotTypClass, "point"), CBotVar::ProtectionLevel::ReadOnly);
+    bc->AddItem("orientation", CBotTypResult(CBotTypFloat), CBotVar::ProtectionLevel::ReadOnly);
+    bc->AddItem("pitch",       CBotTypResult(CBotTypFloat), CBotVar::ProtectionLevel::ReadOnly);
+    bc->AddItem("roll",        CBotTypResult(CBotTypFloat), CBotVar::ProtectionLevel::ReadOnly);
+    bc->AddItem("energyLevel", CBotTypResult(CBotTypFloat), CBotVar::ProtectionLevel::ReadOnly);
+    bc->AddItem("shieldLevel", CBotTypResult(CBotTypFloat), CBotVar::ProtectionLevel::ReadOnly);
+    bc->AddItem("temperature", CBotTypResult(CBotTypFloat), CBotVar::ProtectionLevel::ReadOnly);
+    bc->AddItem("altitude",    CBotTypResult(CBotTypFloat), CBotVar::ProtectionLevel::ReadOnly);
+    bc->AddItem("lifeTime",    CBotTypResult(CBotTypFloat), CBotVar::ProtectionLevel::ReadOnly);
+    bc->AddItem("energyCell",  CBotTypResult(CBotTypPointer, "object"), CBotVar::ProtectionLevel::ReadOnly);
+    bc->AddItem("load",        CBotTypResult(CBotTypPointer, "object"), CBotVar::ProtectionLevel::ReadOnly);
+    bc->AddItem("id",          CBotTypResult(CBotTypInt), CBotVar::ProtectionLevel::ReadOnly);
+    bc->AddItem("team",        CBotTypResult(CBotTypInt), CBotVar::ProtectionLevel::ReadOnly);
+    bc->AddItem("velocity",    CBotTypResult(CBotTypClass, "point"), CBotVar::ProtectionLevel::ReadOnly);
     bc->AddFunction("busy",     rBusy,     cBusy);
     bc->AddFunction("factory",  rFactory,  cFactory);
     bc->AddFunction("research", rResearch, cClassOneFloat);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/colobot.git



More information about the Pkg-games-commits mailing list