public void SetMap(IMap_Base newMap, IMap_Observer observer)
{
if (observer.Map != null)
{
observer.Map.HeightChanged -= new HeightChangedDelegate(observer.HeightChanged);
observer.Map.SelectedTileChanged -= new SelectedTileChangedDelegate(observer.SelectedTileChanged);
}
observer.Map = newMap;
if (newMap != null)
{
newMap.HeightChanged += new HeightChangedDelegate(observer.HeightChanged);
newMap.SelectedTileChanged += new SelectedTileChangedDelegate(observer.SelectedTileChanged);
}
foreach (string key in observer.MoreObservers.Keys)
SetMap(newMap, observer.MoreObservers[key]);
}