示例#1
0
TVarReference THeapManager::addVariable (EAttribType eType)
{

  TVarReference   tRef;

  switch ( eType )
  {
    case FX_REAL:
    {
      tHeap.push_back (TVariable (TAttribReal()));
    }
    break;

    case FX_BOOL:
    {
      tHeap.push_back (TVariable (TAttribBool()));
    }
    break;

    case FX_STRING:
    {
      tHeap.push_back (TVariable (TAttribString()));
    }
    break;

    case FX_COLOR:
    {
      tHeap.push_back (TVariable (TAttribColor()));
    }
    break;

    case FX_VECTOR:
    {
      tHeap.push_back (TVariable (TAttribVector()));
    }
    break;

    case FX_VECTOR2:
    {
      tHeap.push_back (TVariable (TAttribVector2()));
    }
    break;

    default:
    {
      return tHeap.end();
    }
    break;
  }

  tRef = tHeap.end();
  tRef--;
  
  return tRef;

}  /* addVariable() */
         bool CCategory::Write( CCategoryKeyParser& aKey, const CVariant& aValue )
         {
            bool ret( false );

            std::string categoryName;

            if( aKey.NextCategory( categoryName ) )
            {
               TCategorySeq::iterator i( _categories.find( categoryName ) );

               if( i == _categories.end() )
               {
                  i = _categories.insert( TCategorySeq::value_type( categoryName, TCategory( categoryName, *new CCategory() ) ) ).first;
               }

               ret = i->second.second->Write( aKey, aValue );
            }
            else
            {
               std::string variableName;

               if( aKey.Variable( variableName ) )
               {
                  TVariableSeq::iterator i( _variables.find( variableName ) );

                  if( i == _variables.end() )
                  {
                     i = _variables.insert( TVariableSeq::value_type( variableName, TVariable( variableName, *new CVariable() ) ) ).first;
                  }

                  *i->second.second = aValue;

                  ret = true;
               }
            }

            return ret;
         }