D:/Zythum/DinoKod/Common/Variable.h

00001 #ifndef __VARIABLE_H__
00002 #define __VARIABLE_H__
00003 
00004 #include "Common/CommonDll.h"
00005 #include "Common/Types.h"
00006 #include "Common/List.h"
00007 
00008 //---------------------------------------------------------------------------------------------------------------------
00009 typedef enum _KCVARIABLETYPE
00010 {
00011         KCVT_NONE,
00012         KCVT_STRING,
00013         KCVT_INTEGER,
00014         KCVT_FLOAT
00015 } KCVARIABLETYPE;
00016 
00017 //---------------------------------------------------------------------------------------------------------------------
00018 class COMMON_API KVariable
00019 {
00020 private:
00021         KStr                    m_sName;
00022         KCVARIABLETYPE  m_Type;
00023 
00024         KStr                    m_sString;
00025         s32                             m_Integer;
00026         float                   m_Float;
00027 
00028 public:
00029         KVariable()
00030         {
00031                 m_Type          = KCVT_NONE;
00032                 m_Integer       = 0;
00033                 m_Float         = 0.0f;
00034         }
00035 
00036         KVariable( KStr sName, KStr sString )
00037         {
00038                 m_Type          = KCVT_STRING;
00039                 m_sString       = sString;
00040                 m_Integer       = 0;
00041                 m_Float         = 0.0f;
00042         }
00043 
00044         KVariable( KStr sName, s32 Value )
00045         {
00046                 m_Type          = KCVT_INTEGER;
00047                 m_Integer       = Value;
00048                 m_Float         = 0.0f;
00049         }
00050 
00051         KVariable( KStr sName, float Value )
00052         {
00053                 m_Type          = KCVT_FLOAT;
00054                 m_Integer       = 0;
00055                 m_Float         = Value;
00056         }
00057 
00058         KStr                    GetsName()              { return m_sName;       }
00059         KCVARIABLETYPE  GetType()               { return m_Type;        }
00060         KStr                    GetString()             { return m_sString;     }
00061         s32                             GetInteger()    { return m_Integer;     }
00062         float                   GetFloat()              { return m_Float;       }
00063 };
00064 
00065 //---------------------------------------------------------------------------------------------------------------------
00066 class COMMON_API KVariableList
00067 {
00068 private:
00069         KList<KVariable*>       m_VariableList;
00070 
00071 protected:
00072         KVariable*                      GetpVariable( KStr sName );
00073 
00074 public:
00075         KVariableList();
00076         ~KVariableList();
00077 
00078         void    RegisterVariable( KStr sName, KStr sString );
00079         void    RegisterVariable( KStr sName, s32 Value );
00080         void    RegisterVariable( KStr sName, float Value );
00081         void    UnregisterVariable( KStr sName );
00082 
00083         KStr    GetString( KStr sName );
00084         s32             GetInteger( KStr sName );
00085         float   GetFloat( KStr sName );
00086 };
00087 
00088 #endif  __VARIABLE_H__

Generated on Sun Mar 25 20:02:11 2007 for Zythum Project by  doxygen 1.5.1-p1