//------------------------------------------------------------------------------
TGameObject* TBuilderGameMap_Object::Build(int idObject, bool fast)
{
  TMapIntObjectIt fit = mMapID_BuildObject.find(idObject);
  if( mMapID_BuildObject.end()==fit )
  {
    BL_FIX_BUG();
    return NULL;
  }
  TObject* pObj = &(fit->second);
  TBehaviourPattern* pPattern = pObj->ptrGameObject->GetPattern();
  if( pObj->flgLoadPhysic==false )
    pObj->flgLoadPhysic = pPattern->BuildByModule_Physic(fast);
  if( pObj->flgLoadGraphic==false )
    pObj->flgLoadGraphic = pPattern->BuildByModule_Graphic(fast);
  if( pObj->flgLoadSound==false )
    pObj->flgLoadSound = pPattern->BuildByModule_Sound(fast);
  
  if( pObj->IsComplete() )
  {
    TGameObject* pGO = pObj->ptrGameObject;
    mMapID_BuildObject.erase(idObject);
    return pGO;
  }
  
  return NULL;
}