//------------------------------------------------------------------------------ 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; }