コード例 #1
0
ファイル: ibattle.cpp プロジェクト: cleanrock/springlobby
const LSL::UnitsyncMap& IBattle::LoadMap()
{
	if (( !m_map_loaded ) && (!m_host_map.name.empty())) {
		try {
			ASSERT_EXCEPTION( MapExists(), _T("Map does not exist: ") + TowxString(m_host_map.name) );
			m_local_map = LSL::usync().GetMap( m_host_map.name );
			bool options_loaded = CustomBattleOptions().loadOptions( LSL::OptionsWrapper::MapOption, m_host_map.name );
			ASSERT_EXCEPTION( options_loaded, _T("couldn't load the map options") );
			m_map_loaded = true;

		} catch (...) {}
	}
	return m_local_map;
}
コード例 #2
0
ファイル: mapcomponent.cpp プロジェクト: flyskyosg/dtentity
   bool MapSystem::LoadMap(const std::string& path)
   {
      if(IsMapLoaded(path))
      {
         LOG_ERROR("Map already loaded: " + path);
         return false;
      }

      if(!MapExists(path))
      {
         LOG_ERROR("Map not found: " + path);
         return false;
      }

      MapEncoder* enc = GetEncoderForMap(GetFileExtension(path));
      if(!enc)
      {
         LOG_ERROR("Could not load map: Loader not found for extension " << GetFileExtension(path));
         return false;
      }

      // get data path containing this map
      std::string abspath = GetSystemInterface()->FindDataFile(path);
      std::string mapdatapath = dtEntity::GetSystemInterface()->GetDataFilePathFromFilePath(abspath);
      
      assert(mapdatapath != "");

      LoadedMaps::size_type mapsaveorder = mLoadedMaps.size();


      MapBeginLoadMessage msg;
      msg.SetMapPath(path);
      msg.SetDataPath(mapdatapath);
      msg.SetSaveOrder(mapsaveorder);
      GetEntityManager().EmitMessage(msg);

      bool success = enc->LoadMapFromFile(path);
      if(success)
      {
         mLoadedMaps.push_back(MapData(path, mapdatapath, static_cast<unsigned int>(mLoadedMaps.size())));

         MapLoadedMessage msg1;
         msg1.SetMapPath(path);
         msg1.SetDataPath(mapdatapath);
         msg1.SetSaveOrder(mapsaveorder);
         GetEntityManager().EmitMessage(msg1);
      }
      return success;
   }
コード例 #3
0
ファイル: ibattle.cpp プロジェクト: cleanrock/springlobby
bool IBattle::IsSynced()
{
	LoadMod();
	LoadMap();
	bool synced = true;
	if ( !m_host_map.hash.empty() && m_host_map.hash != "0" && m_host_map.hash != m_local_map.hash ) {
		synced = false;
	} else if ( !m_host_map.name.empty() && m_local_map.name != m_host_map.name) {
		synced = false;
	} else if ( !m_host_mod.hash.empty() && m_host_mod.hash != "0" && m_host_mod.hash != m_local_mod.hash ) {
		synced = false;
	} else if ( !m_host_mod.name.empty() && m_local_mod.name != m_host_mod.name) {
		synced = false;
	} else if ( !MapExists() || !ModExists() ) {
		synced = false;
	}
	return synced;
}