- Both linked Rooms are now linked together via the Doorway Manager now. However the 2nd Room does not show the linked effects until the Zone is re-loaded. This will be addressed shortly.

- Rooms no longer install duplicate doorways. If a doorway exists, it removes it and installs the new door.
This commit is contained in:
Scionwest_cp 2009-12-09 15:03:01 -08:00
parent 7da8fcfea9
commit 968ab21e5a
2 changed files with 37 additions and 0 deletions

View file

@ -168,6 +168,35 @@ namespace MudDesigner.Editors
return;
}
//Delete the door if it already exists, so we can re-install
//the new door for this direction
foreach (Door d in linkedRoom.InstalledDoors)
{
if (d.TravelDirection == TravelDirection)
{
linkedRoom.InstalledDoors.Remove(d);
break;
}
}
//Create a link to the currently loaded room within the Zone Builder
Door.ConnectedRoom connected = new Door.ConnectedRoom();
connected.Realm = Program.Realm.Name;
connected.Zone = Program.Zone.Name;
connected.Room = Program.Room.Name;
//Create a new door, add our link and set its travel direction
Door door = new Door();
door.TravelRoom = connected;
door.TravelDirection = TravelDirections.GetTravelDirectionValue(TravelDirection.ToString());
//install the door
linkedRoom.InstalledDoors.Add(door);
//save the linked room
string realmPath = Path.Combine(FileManager.GetDataPath(SaveDataTypes.Realms), linkedRealm.Name);
string zonePath = Path.Combine(realmPath, linkedZone.Name);
string roomFile = Path.Combine(zonePath, linkedRoom.Filename);
FileManager.Save(roomFile, linkedRoom);
this.Close();
}
}

View file

@ -427,6 +427,14 @@ namespace MudDesigner.Editors
d.Room = form.linkedRoom.Name;
d.Zone = form.linkedZone.Name;
door.TravelRoom = d;
foreach (Door obj in Program.Room.InstalledDoors)
{
if (obj.TravelDirection == door.TravelDirection)
{
Program.Room.InstalledDoors.Remove(obj);
break;
}
}
Program.Room.InstalledDoors.Add(door);
}
}