More work on adding Events to ClientView (and registering to handle those events in Avatar and World)
parent
b253f3db48
commit
f96083a903
|
@ -21,9 +21,23 @@ namespace OpenSim
|
||||||
public partial class ClientView
|
public partial class ClientView
|
||||||
{
|
{
|
||||||
public delegate void ChatFromViewer(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID);
|
public delegate void ChatFromViewer(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID);
|
||||||
|
public delegate void RezObject(AssetBase primasset, LLVector3 pos);
|
||||||
|
public delegate void ModifyTerrain(byte Action, float North, float West);
|
||||||
|
public delegate void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam);
|
||||||
|
public delegate void StartAnim(LLUUID animID, int seq);
|
||||||
|
public delegate void GenericCall(ClientView RemoteClient);
|
||||||
|
public delegate void GenericCall2();
|
||||||
|
public delegate void GenericCall3(Packet packet); // really don't want to be passing packets in these events, so this is very temporary.
|
||||||
|
|
||||||
public event ChatFromViewer OnChatFromViewer;
|
public event ChatFromViewer OnChatFromViewer;
|
||||||
|
public event RezObject OnRezObject;
|
||||||
|
public event ModifyTerrain OnModifyTerrain;
|
||||||
|
public event GenericCall OnRegionHandShakeReply;
|
||||||
|
public event GenericCall OnRequestWearables;
|
||||||
|
public event SetAppearance OnSetAppearance;
|
||||||
|
public event GenericCall2 OnCompleteMovementToRegion;
|
||||||
|
public event GenericCall3 OnAgentUpdate;
|
||||||
|
public event StartAnim OnStartAnim;
|
||||||
|
|
||||||
protected override void ProcessInPacket(Packet Pack)
|
protected override void ProcessInPacket(Packet Pack)
|
||||||
{
|
{
|
||||||
|
@ -62,40 +76,81 @@ namespace OpenSim
|
||||||
LLUUID fromAgentID = AgentID;
|
LLUUID fromAgentID = AgentID;
|
||||||
this.OnChatFromViewer(message, type, fromPos, fromName, fromAgentID);
|
this.OnChatFromViewer(message, type, fromPos, fromName, fromAgentID);
|
||||||
break;
|
break;
|
||||||
#endregion
|
case PacketType.RezObject:
|
||||||
|
RezObjectPacket rezPacket = (RezObjectPacket)Pack;
|
||||||
#region World/Avatar/Primitive related packets
|
AgentInventory inven = this.m_inventoryCache.GetAgentsInventory(this.AgentID);
|
||||||
case PacketType.CompleteAgentMovement:
|
if (inven != null)
|
||||||
if (this.m_child) this.UpgradeClient();
|
|
||||||
ClientAvatar.CompleteMovement(m_world);
|
|
||||||
ClientAvatar.SendInitialPosition();
|
|
||||||
this.EnableNeighbours();
|
|
||||||
break;
|
|
||||||
case PacketType.RegionHandshakeReply:
|
|
||||||
m_world.SendLayerData(this);
|
|
||||||
break;
|
|
||||||
case PacketType.AgentWearablesRequest:
|
|
||||||
ClientAvatar.SendInitialAppearance();
|
|
||||||
foreach (ClientView client in m_clientThreads.Values)
|
|
||||||
{
|
{
|
||||||
if (client.AgentID != this.AgentID)
|
if (inven.InventoryItems.ContainsKey(rezPacket.InventoryData.ItemID))
|
||||||
{
|
{
|
||||||
ObjectUpdatePacket objupdate = client.ClientAvatar.CreateUpdatePacket();
|
AssetBase asset = this.m_assetCache.GetAsset(inven.InventoryItems[rezPacket.InventoryData.ItemID].AssetID);
|
||||||
this.OutPacket(objupdate);
|
if (asset != null)
|
||||||
client.ClientAvatar.SendAppearanceToOtherAgent(this.ClientAvatar);
|
{
|
||||||
|
this.OnRezObject(asset, rezPacket.RezData.RayEnd);
|
||||||
|
this.m_inventoryCache.DeleteInventoryItem(this, rezPacket.InventoryData.ItemID);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_world.GetInitialPrims(this);
|
|
||||||
break;
|
|
||||||
case PacketType.AgentIsNowWearing:
|
|
||||||
AgentIsNowWearingPacket wear = (AgentIsNowWearingPacket)Pack;
|
|
||||||
//Console.WriteLine(Pack.ToString());
|
|
||||||
break;
|
|
||||||
case PacketType.AgentSetAppearance:
|
|
||||||
AgentSetAppearancePacket appear = (AgentSetAppearancePacket)Pack;
|
|
||||||
// Console.WriteLine(appear.ToString());
|
|
||||||
this.ClientAvatar.SetAppearance(appear);
|
|
||||||
break;
|
break;
|
||||||
|
case PacketType.ModifyLand:
|
||||||
|
ModifyLandPacket modify = (ModifyLandPacket)Pack;
|
||||||
|
if (modify.ParcelData.Length > 0)
|
||||||
|
{
|
||||||
|
OnModifyTerrain(modify.ModifyBlock.Action, modify.ParcelData[0].North, modify.ParcelData[0].West);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PacketType.RegionHandshakeReply:
|
||||||
|
m_world.SendLayerData(this);
|
||||||
|
OnRegionHandShakeReply(this);
|
||||||
|
break;
|
||||||
|
case PacketType.AgentWearablesRequest:
|
||||||
|
OnRequestWearables(this);
|
||||||
|
//need to move the follow to a event system
|
||||||
|
foreach (ClientView client in m_clientThreads.Values)
|
||||||
|
{
|
||||||
|
if (client.AgentID != this.AgentID)
|
||||||
|
{
|
||||||
|
ObjectUpdatePacket objupdate = client.ClientAvatar.CreateUpdatePacket();
|
||||||
|
this.OutPacket(objupdate);
|
||||||
|
client.ClientAvatar.SendAppearanceToOtherAgent(this.ClientAvatar);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case PacketType.AgentSetAppearance:
|
||||||
|
AgentSetAppearancePacket appear = (AgentSetAppearancePacket)Pack;
|
||||||
|
// Console.WriteLine(appear.ToString());
|
||||||
|
OnSetAppearance(appear.ObjectData.TextureEntry, appear.VisualParam);
|
||||||
|
break;
|
||||||
|
case PacketType.CompleteAgentMovement:
|
||||||
|
if (this.m_child) this.UpgradeClient();
|
||||||
|
OnCompleteMovementToRegion();
|
||||||
|
this.EnableNeighbours();
|
||||||
|
break;
|
||||||
|
case PacketType.AgentUpdate:
|
||||||
|
OnAgentUpdate(Pack);
|
||||||
|
break;
|
||||||
|
case PacketType.AgentAnimation:
|
||||||
|
if (!m_child)
|
||||||
|
{
|
||||||
|
AgentAnimationPacket AgentAni = (AgentAnimationPacket)Pack;
|
||||||
|
for (int i = 0; i < AgentAni.AnimationList.Length; i++)
|
||||||
|
{
|
||||||
|
if (AgentAni.AnimationList[i].StartAnim)
|
||||||
|
{
|
||||||
|
OnStartAnim(AgentAni.AnimationList[i].AnimID, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case PacketType.AgentIsNowWearing:
|
||||||
|
// AgentIsNowWearingPacket wear = (AgentIsNowWearingPacket)Pack;
|
||||||
|
//Console.WriteLine(Pack.ToString());
|
||||||
|
break;
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
//old handling, should move most to a event based system.
|
||||||
|
#region World/Avatar/Primitive related packets
|
||||||
case PacketType.ObjectAdd:
|
case PacketType.ObjectAdd:
|
||||||
m_world.AddNewPrim((ObjectAddPacket)Pack, this);
|
m_world.AddNewPrim((ObjectAddPacket)Pack, this);
|
||||||
break;
|
break;
|
||||||
|
@ -143,8 +198,19 @@ namespace OpenSim
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PacketType.AgentUpdate:
|
case PacketType.ObjectSelect:
|
||||||
ClientAvatar.HandleUpdate((AgentUpdatePacket)Pack);
|
ObjectSelectPacket incomingselect = (ObjectSelectPacket)Pack;
|
||||||
|
for (int i = 0; i < incomingselect.ObjectData.Length; i++)
|
||||||
|
{
|
||||||
|
foreach (Entity ent in m_world.Entities.Values)
|
||||||
|
{
|
||||||
|
if (ent.localid == incomingselect.ObjectData[i].ObjectLocalID)
|
||||||
|
{
|
||||||
|
((OpenSim.world.Primitive)ent).GetProperites(this);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case PacketType.ObjectImage:
|
case PacketType.ObjectImage:
|
||||||
ObjectImagePacket imagePack = (ObjectImagePacket)Pack;
|
ObjectImagePacket imagePack = (ObjectImagePacket)Pack;
|
||||||
|
@ -169,35 +235,7 @@ namespace OpenSim
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PacketType.AgentAnimation:
|
|
||||||
if (!m_child)
|
|
||||||
{
|
|
||||||
AgentAnimationPacket AgentAni = (AgentAnimationPacket)Pack;
|
|
||||||
for (int i = 0; i < AgentAni.AnimationList.Length; i++)
|
|
||||||
{
|
|
||||||
if (AgentAni.AnimationList[i].StartAnim)
|
|
||||||
{
|
|
||||||
ClientAvatar.current_anim = AgentAni.AnimationList[i].AnimID;
|
|
||||||
ClientAvatar.anim_seq = 1;
|
|
||||||
ClientAvatar.SendAnimPack();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PacketType.ObjectSelect:
|
|
||||||
ObjectSelectPacket incomingselect = (ObjectSelectPacket)Pack;
|
|
||||||
for (int i = 0; i < incomingselect.ObjectData.Length; i++)
|
|
||||||
{
|
|
||||||
foreach (Entity ent in m_world.Entities.Values)
|
|
||||||
{
|
|
||||||
if (ent.localid == incomingselect.ObjectData[i].ObjectLocalID)
|
|
||||||
{
|
|
||||||
((OpenSim.world.Primitive)ent).GetProperites(this);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PacketType.ViewerEffect:
|
case PacketType.ViewerEffect:
|
||||||
ViewerEffectPacket viewer = (ViewerEffectPacket)Pack;
|
ViewerEffectPacket viewer = (ViewerEffectPacket)Pack;
|
||||||
foreach (ClientView client in m_clientThreads.Values)
|
foreach (ClientView client in m_clientThreads.Values)
|
||||||
|
|
|
@ -325,6 +325,27 @@ namespace OpenSim
|
||||||
|
|
||||||
this.OutPacket(reply);
|
this.OutPacket(reply);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SendAppearance(AvatarWearable[] wearables)
|
||||||
|
{
|
||||||
|
AgentWearablesUpdatePacket aw = new AgentWearablesUpdatePacket();
|
||||||
|
aw.AgentData.AgentID = this.AgentID;
|
||||||
|
aw.AgentData.SerialNum = 0;
|
||||||
|
aw.AgentData.SessionID = this.SessionID;
|
||||||
|
|
||||||
|
aw.WearableData = new AgentWearablesUpdatePacket.WearableDataBlock[13];
|
||||||
|
AgentWearablesUpdatePacket.WearableDataBlock awb;
|
||||||
|
for (int i = 0; i < wearables.Length; i++)
|
||||||
|
{
|
||||||
|
awb = new AgentWearablesUpdatePacket.WearableDataBlock();
|
||||||
|
awb.WearableType = (byte)i;
|
||||||
|
awb.AssetID = wearables[i].AssetID;
|
||||||
|
awb.ItemID = wearables[i].ItemID;
|
||||||
|
aw.WearableData[i] = awb;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.OutPacket(aw);
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Inventory Creation
|
#region Inventory Creation
|
||||||
|
|
|
@ -58,8 +58,6 @@ namespace OpenSim
|
||||||
{
|
{
|
||||||
if (this._localWorld != null)
|
if (this._localWorld != null)
|
||||||
{
|
{
|
||||||
ClientView.AddPacketHandler(PacketType.ModifyLand, _localWorld.ModifyTerrain);
|
|
||||||
ClientView.AddPacketHandler(PacketType.RezObject, _localWorld.RezObject);
|
|
||||||
ClientView.AddPacketHandler(PacketType.DeRezObject, _localWorld.DeRezObject);
|
ClientView.AddPacketHandler(PacketType.DeRezObject, _localWorld.DeRezObject);
|
||||||
ClientView.AddPacketHandler(PacketType.UUIDNameRequest, this.RequestUUIDName);
|
ClientView.AddPacketHandler(PacketType.UUIDNameRequest, this.RequestUUIDName);
|
||||||
}
|
}
|
||||||
|
|
|
@ -148,25 +148,15 @@ namespace OpenSim.world
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendInitialAppearance()
|
public void SendOurAppearance()
|
||||||
{
|
{
|
||||||
AgentWearablesUpdatePacket aw = new AgentWearablesUpdatePacket();
|
ControllingClient.SendAppearance(this.Wearables);
|
||||||
aw.AgentData.AgentID = this.ControllingClient.AgentID;
|
}
|
||||||
aw.AgentData.SerialNum = 0;
|
|
||||||
aw.AgentData.SessionID = ControllingClient.SessionID;
|
|
||||||
|
|
||||||
aw.WearableData = new AgentWearablesUpdatePacket.WearableDataBlock[13];
|
public void SendOurAppearance(ClientView OurClient)
|
||||||
AgentWearablesUpdatePacket.WearableDataBlock awb;
|
{
|
||||||
for (int i = 0; i < 13; i++)
|
//event handler for wearables request
|
||||||
{
|
this.SendOurAppearance();
|
||||||
awb = new AgentWearablesUpdatePacket.WearableDataBlock();
|
|
||||||
awb.WearableType = (byte)i;
|
|
||||||
awb.AssetID = this.Wearables[i].AssetID;
|
|
||||||
awb.ItemID = this.Wearables[i].ItemID;
|
|
||||||
aw.WearableData[i] = awb;
|
|
||||||
}
|
|
||||||
|
|
||||||
ControllingClient.OutPacket(aw);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendAppearanceToOtherAgent(Avatar avatarInfo)
|
public void SendAppearanceToOtherAgent(Avatar avatarInfo)
|
||||||
|
@ -188,13 +178,14 @@ namespace OpenSim.world
|
||||||
avatarInfo.SendPacketToViewer(avp);
|
avatarInfo.SendPacketToViewer(avp);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetAppearance(AgentSetAppearancePacket appear)
|
public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam)
|
||||||
{
|
{
|
||||||
LLObject.TextureEntry tex = new LLObject.TextureEntry(appear.ObjectData.TextureEntry, 0, appear.ObjectData.TextureEntry.Length);
|
LLObject.TextureEntry tex = new LLObject.TextureEntry(texture, 0, texture.Length);
|
||||||
this.avatarAppearanceTexture = tex;
|
this.avatarAppearanceTexture = tex;
|
||||||
for (int i = 0; i < appear.VisualParam.Length; i++)
|
|
||||||
|
for (int i = 0; i < visualParam.Length; i++)
|
||||||
{
|
{
|
||||||
this.visualParams[i] = appear.VisualParam[i].ParamValue;
|
this.visualParams[i] = visualParam[i].ParamValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Avatar> avList = this.m_world.RequestAvatarList();
|
List<Avatar> avList = this.m_world.RequestAvatarList();
|
||||||
|
@ -291,7 +282,7 @@ namespace OpenSim.world
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sends animation update
|
// Sends animation update
|
||||||
public void SendAnimPack()
|
public void SendAnimPack(LLUUID animID, int seq)
|
||||||
{
|
{
|
||||||
AvatarAnimationPacket ani = new AvatarAnimationPacket();
|
AvatarAnimationPacket ani = new AvatarAnimationPacket();
|
||||||
ani.AnimationSourceList = new AvatarAnimationPacket.AnimationSourceListBlock[1];
|
ani.AnimationSourceList = new AvatarAnimationPacket.AnimationSourceListBlock[1];
|
||||||
|
@ -301,8 +292,8 @@ namespace OpenSim.world
|
||||||
ani.Sender.ID = ControllingClient.AgentID;
|
ani.Sender.ID = ControllingClient.AgentID;
|
||||||
ani.AnimationList = new AvatarAnimationPacket.AnimationListBlock[1];
|
ani.AnimationList = new AvatarAnimationPacket.AnimationListBlock[1];
|
||||||
ani.AnimationList[0] = new AvatarAnimationPacket.AnimationListBlock();
|
ani.AnimationList[0] = new AvatarAnimationPacket.AnimationListBlock();
|
||||||
ani.AnimationList[0].AnimID = this.current_anim;
|
ani.AnimationList[0].AnimID = this.current_anim = animID;
|
||||||
ani.AnimationList[0].AnimSequenceID = this.anim_seq;
|
ani.AnimationList[0].AnimSequenceID = this.anim_seq = seq;
|
||||||
|
|
||||||
List<Avatar> avList = this.m_world.RequestAvatarList();
|
List<Avatar> avList = this.m_world.RequestAvatarList();
|
||||||
foreach (Avatar client in avList)
|
foreach (Avatar client in avList)
|
||||||
|
@ -312,5 +303,10 @@ namespace OpenSim.world
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SendAnimPack()
|
||||||
|
{
|
||||||
|
this.SendAnimPack(this.current_anim, this.anim_seq);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,6 +64,14 @@ namespace OpenSim.world
|
||||||
|
|
||||||
this.avatarAppearanceTexture = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005"));
|
this.avatarAppearanceTexture = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005"));
|
||||||
|
|
||||||
|
//register for events
|
||||||
|
ControllingClient.OnRequestWearables += new ClientView.GenericCall(this.SendOurAppearance);
|
||||||
|
ControllingClient.OnSetAppearance += new ClientView.SetAppearance(this.SetAppearance);
|
||||||
|
ControllingClient.OnCompleteMovementToRegion += new ClientView.GenericCall2(this.CompleteMovement);
|
||||||
|
ControllingClient.OnCompleteMovementToRegion += new ClientView.GenericCall2(this.SendInitialPosition);
|
||||||
|
ControllingClient.OnAgentUpdate += new ClientView.GenericCall3(this.HandleAgentUpdate);
|
||||||
|
ControllingClient.OnStartAnim += new ClientView.StartAnim(this.SendAnimPack);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public PhysicsActor PhysActor
|
public PhysicsActor PhysActor
|
||||||
|
@ -170,7 +178,7 @@ namespace OpenSim.world
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CompleteMovement(World RegionInfo)
|
public void CompleteMovement()
|
||||||
{
|
{
|
||||||
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.VERBOSE,"Avatar.cs:CompleteMovement() - Constructing AgentMovementComplete packet");
|
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.VERBOSE,"Avatar.cs:CompleteMovement() - Constructing AgentMovementComplete packet");
|
||||||
AgentMovementCompletePacket mov = new AgentMovementCompletePacket();
|
AgentMovementCompletePacket mov = new AgentMovementCompletePacket();
|
||||||
|
@ -185,6 +193,11 @@ namespace OpenSim.world
|
||||||
ControllingClient.OutPacket(mov);
|
ControllingClient.OutPacket(mov);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void HandleAgentUpdate(Packet pack)
|
||||||
|
{
|
||||||
|
this.HandleUpdate((AgentUpdatePacket)pack);
|
||||||
|
}
|
||||||
|
|
||||||
public void HandleUpdate(AgentUpdatePacket pack)
|
public void HandleUpdate(AgentUpdatePacket pack)
|
||||||
{
|
{
|
||||||
if (((uint)pack.AgentData.ControlFlags & (uint)MainAvatar.ControlFlags.AGENT_CONTROL_FLY) != 0)
|
if (((uint)pack.AgentData.ControlFlags & (uint)MainAvatar.ControlFlags.AGENT_CONTROL_FLY) != 0)
|
||||||
|
|
|
@ -15,31 +15,22 @@ namespace OpenSim.world
|
||||||
{
|
{
|
||||||
public partial class World
|
public partial class World
|
||||||
{
|
{
|
||||||
|
public void ModifyTerrain(byte Action, float North, float West)
|
||||||
public bool ModifyTerrain(ClientView simClient, Packet packet)
|
|
||||||
{
|
{
|
||||||
ModifyLandPacket modify = (ModifyLandPacket)packet;
|
switch (Action)
|
||||||
|
|
||||||
switch (modify.ModifyBlock.Action)
|
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
// raise terrain
|
// raise terrain
|
||||||
if (modify.ParcelData.Length > 0)
|
Terrain.raise(North, West, 10.0, 0.1);
|
||||||
{
|
RegenerateTerrain(true, (int)North, (int)West);
|
||||||
Terrain.raise(modify.ParcelData[0].North, modify.ParcelData[0].West, 10.0, 0.1);
|
|
||||||
RegenerateTerrain(true, (int)modify.ParcelData[0].North, (int)modify.ParcelData[0].West);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
//lower terrain
|
//lower terrain
|
||||||
if (modify.ParcelData.Length > 0)
|
Terrain.lower(North, West, 10.0, 0.1);
|
||||||
{
|
RegenerateTerrain(true, (int)North, (int)West);
|
||||||
Terrain.lower(modify.ParcelData[0].North, modify.ParcelData[0].West, 10.0, 0.1);
|
|
||||||
RegenerateTerrain(true, (int)modify.ParcelData[0].North, (int)modify.ParcelData[0].West);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return true;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SimChat(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID)
|
public void SimChat(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID)
|
||||||
|
@ -79,27 +70,13 @@ namespace OpenSim.world
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool RezObject(ClientView simClient, Packet packet)
|
public void RezObject(AssetBase primasset, LLVector3 pos)
|
||||||
{
|
{
|
||||||
RezObjectPacket rezPacket = (RezObjectPacket)packet;
|
PrimData primd = new PrimData(primasset.Data);
|
||||||
AgentInventory inven = this._inventoryCache.GetAgentsInventory(simClient.AgentID);
|
Primitive nPrim = new Primitive(m_clientThreads, m_regionHandle, this);
|
||||||
if (inven != null)
|
nPrim.CreateFromStorage(primd, pos, this._primCount, true);
|
||||||
{
|
this.Entities.Add(nPrim.uuid, nPrim);
|
||||||
if (inven.InventoryItems.ContainsKey(rezPacket.InventoryData.ItemID))
|
this._primCount++;
|
||||||
{
|
|
||||||
AssetBase asset = this._assetCache.GetAsset(inven.InventoryItems[rezPacket.InventoryData.ItemID].AssetID);
|
|
||||||
if (asset != null)
|
|
||||||
{
|
|
||||||
PrimData primd = new PrimData(asset.Data);
|
|
||||||
Primitive nPrim = new Primitive(m_clientThreads, m_regionHandle, this);
|
|
||||||
nPrim.CreateFromStorage(primd, rezPacket.RezData.RayEnd, this._primCount, true);
|
|
||||||
this.Entities.Add(nPrim.uuid, nPrim);
|
|
||||||
this._primCount++;
|
|
||||||
this._inventoryCache.DeleteInventoryItem(simClient, rezPacket.InventoryData.ItemID);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool DeRezObject(ClientView simClient, Packet packet)
|
public bool DeRezObject(ClientView simClient, Packet packet)
|
||||||
|
@ -191,6 +168,7 @@ namespace OpenSim.world
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
public void RequestMapBlock(ClientView simClient, int minX, int minY, int maxX, int maxY)
|
public void RequestMapBlock(ClientView simClient, int minX, int minY, int maxX, int maxY)
|
||||||
{
|
{
|
||||||
System.Text.Encoding _enc = System.Text.Encoding.ASCII;
|
System.Text.Encoding _enc = System.Text.Encoding.ASCII;
|
||||||
|
@ -212,6 +190,54 @@ namespace OpenSim.world
|
||||||
simClient.OutPacket(mapReply);
|
simClient.OutPacket(mapReply);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public bool RezObjectHandler(ClientView simClient, Packet packet)
|
||||||
|
{
|
||||||
|
RezObjectPacket rezPacket = (RezObjectPacket)packet;
|
||||||
|
AgentInventory inven = this._inventoryCache.GetAgentsInventory(simClient.AgentID);
|
||||||
|
if (inven != null)
|
||||||
|
{
|
||||||
|
if (inven.InventoryItems.ContainsKey(rezPacket.InventoryData.ItemID))
|
||||||
|
{
|
||||||
|
AssetBase asset = this._assetCache.GetAsset(inven.InventoryItems[rezPacket.InventoryData.ItemID].AssetID);
|
||||||
|
if (asset != null)
|
||||||
|
{
|
||||||
|
PrimData primd = new PrimData(asset.Data);
|
||||||
|
Primitive nPrim = new Primitive(m_clientThreads, m_regionHandle, this);
|
||||||
|
nPrim.CreateFromStorage(primd, rezPacket.RezData.RayEnd, this._primCount, true);
|
||||||
|
this.Entities.Add(nPrim.uuid, nPrim);
|
||||||
|
this._primCount++;
|
||||||
|
this._inventoryCache.DeleteInventoryItem(simClient, rezPacket.InventoryData.ItemID);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public bool ModifyTerrain(ClientView simClient, Packet packet)
|
||||||
|
{
|
||||||
|
ModifyLandPacket modify = (ModifyLandPacket)packet;
|
||||||
|
|
||||||
|
switch (modify.ModifyBlock.Action)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
// raise terrain
|
||||||
|
if (modify.ParcelData.Length > 0)
|
||||||
|
{
|
||||||
|
Terrain.raise(modify.ParcelData[0].North, modify.ParcelData[0].West, 10.0, 0.1);
|
||||||
|
RegenerateTerrain(true, (int)modify.ParcelData[0].North, (int)modify.ParcelData[0].West);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
//lower terrain
|
||||||
|
if (modify.ParcelData.Length > 0)
|
||||||
|
{
|
||||||
|
Terrain.lower(modify.ParcelData[0].North, modify.ParcelData[0].West, 10.0, 0.1);
|
||||||
|
RegenerateTerrain(true, (int)modify.ParcelData[0].North, (int)modify.ParcelData[0].West);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -532,7 +532,12 @@ namespace OpenSim.world
|
||||||
|
|
||||||
public override void AddViewerAgent(ClientView agentClient)
|
public override void AddViewerAgent(ClientView agentClient)
|
||||||
{
|
{
|
||||||
|
//register for events
|
||||||
agentClient.OnChatFromViewer += new ClientView.ChatFromViewer(this.SimChat);
|
agentClient.OnChatFromViewer += new ClientView.ChatFromViewer(this.SimChat);
|
||||||
|
agentClient.OnRezObject += new ClientView.RezObject(this.RezObject);
|
||||||
|
agentClient.OnModifyTerrain += new ClientView.ModifyTerrain(this.ModifyTerrain);
|
||||||
|
agentClient.OnRegionHandShakeReply += new ClientView.GenericCall(this.SendLayerData);
|
||||||
|
agentClient.OnRequestWearables += new ClientView.GenericCall(this.GetInitialPrims);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "World.cs:AddViewerAgent() - Creating new avatar for remote viewer agent");
|
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "World.cs:AddViewerAgent() - Creating new avatar for remote viewer agent");
|
||||||
|
|
326
OpenSim.sln
326
OpenSim.sln
|
@ -1,5 +1,5 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||||
# Visual Studio 2005
|
# Visual C# Express 2005
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSim.Terrain.BasicTerrain", "OpenSim.Terrain.BasicTerrain\OpenSim.Terrain.BasicTerrain.csproj", "{2270B8FE-0000-0000-0000-000000000000}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSim.Terrain.BasicTerrain", "OpenSim.Terrain.BasicTerrain\OpenSim.Terrain.BasicTerrain.csproj", "{2270B8FE-0000-0000-0000-000000000000}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSim.Storage.LocalStorageBerkeleyDB", "OpenSim.Storage\LocalStorageBerkeleyDB\OpenSim.Storage.LocalStorageBerkeleyDB.csproj", "{EE9E5D96-0000-0000-0000-000000000000}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSim.Storage.LocalStorageBerkeleyDB", "OpenSim.Storage\LocalStorageBerkeleyDB\OpenSim.Storage.LocalStorageBerkeleyDB.csproj", "{EE9E5D96-0000-0000-0000-000000000000}"
|
||||||
|
@ -61,199 +61,133 @@ EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLRPC", "XmlRpcCS\XMLRPC.csproj", "{8E81D43C-0000-0000-0000-000000000000}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLRPC", "XmlRpcCS\XMLRPC.csproj", "{8E81D43C-0000-0000-0000-000000000000}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
Release|Any CPU = Release|Any CPU
|
Release|Any CPU = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectDependencies) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
({EE9E5D96-0000-0000-0000-000000000000}).6 = ({8ACA2445-0000-0000-0000-000000000000})
|
{2270B8FE-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
({EE9E5D96-0000-0000-0000-000000000000}).7 = ({A7CD0630-0000-0000-0000-000000000000})
|
{2270B8FE-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
({63A05FE9-0000-0000-0000-000000000000}).2 = ({8BE16150-0000-0000-0000-000000000000})
|
{2270B8FE-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
({438A9556-0000-0000-0000-000000000000}).5 = ({2270B8FE-0000-0000-0000-000000000000})
|
{2270B8FE-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
({438A9556-0000-0000-0000-000000000000}).6 = ({8ACA2445-0000-0000-0000-000000000000})
|
{EE9E5D96-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
({438A9556-0000-0000-0000-000000000000}).7 = ({A7CD0630-0000-0000-0000-000000000000})
|
{EE9E5D96-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
({438A9556-0000-0000-0000-000000000000}).8 = ({8BE16150-0000-0000-0000-000000000000})
|
{EE9E5D96-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
({438A9556-0000-0000-0000-000000000000}).9 = ({8BB20F0A-0000-0000-0000-000000000000})
|
{EE9E5D96-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
({438A9556-0000-0000-0000-000000000000}).10 = ({632E1BFD-0000-0000-0000-000000000000})
|
{63A05FE9-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
({438A9556-0000-0000-0000-000000000000}).11 = ({E88EF749-0000-0000-0000-000000000000})
|
{63A05FE9-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
({438A9556-0000-0000-0000-000000000000}).12 = ({8E81D43C-0000-0000-0000-000000000000})
|
{63A05FE9-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
({632E1BFD-0000-0000-0000-000000000000}).5 = ({2270B8FE-0000-0000-0000-000000000000})
|
{63A05FE9-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
({632E1BFD-0000-0000-0000-000000000000}).6 = ({8ACA2445-0000-0000-0000-000000000000})
|
{A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
({632E1BFD-0000-0000-0000-000000000000}).7 = ({A7CD0630-0000-0000-0000-000000000000})
|
{A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
({632E1BFD-0000-0000-0000-000000000000}).8 = ({E88EF749-0000-0000-0000-000000000000})
|
{A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
({632E1BFD-0000-0000-0000-000000000000}).9 = ({8BE16150-0000-0000-0000-000000000000})
|
{A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
({632E1BFD-0000-0000-0000-000000000000}).10 = ({8BB20F0A-0000-0000-0000-000000000000})
|
{438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
({632E1BFD-0000-0000-0000-000000000000}).11 = ({8E81D43C-0000-0000-0000-000000000000})
|
{438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
({8ACA2445-0000-0000-0000-000000000000}).4 = ({8E81D43C-0000-0000-0000-000000000000})
|
{438A9556-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
({8BE16150-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000})
|
{438A9556-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
({8BE16150-0000-0000-0000-000000000000}).4 = ({A7CD0630-0000-0000-0000-000000000000})
|
{632E1BFD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
({97A82740-0000-0000-0000-000000000000}).2 = ({8ACA2445-0000-0000-0000-000000000000})
|
{632E1BFD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
({0F3C3AC1-0000-0000-0000-000000000000}).3 = ({62CDF671-0000-0000-0000-000000000000})
|
{632E1BFD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
({E88EF749-0000-0000-0000-000000000000}).2 = ({8ACA2445-0000-0000-0000-000000000000})
|
{632E1BFD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
({66591469-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000})
|
{8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
({66591469-0000-0000-0000-000000000000}).4 = ({A7CD0630-0000-0000-0000-000000000000})
|
{8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
({66591469-0000-0000-0000-000000000000}).5 = ({62CDF671-0000-0000-0000-000000000000})
|
{8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
({66591469-0000-0000-0000-000000000000}).6 = ({8BB20F0A-0000-0000-0000-000000000000})
|
{8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
({66591469-0000-0000-0000-000000000000}).9 = ({8E81D43C-0000-0000-0000-000000000000})
|
{8BE16150-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
({4F874463-0000-0000-0000-000000000000}).2 = ({8BE16150-0000-0000-0000-000000000000})
|
{8BE16150-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
({8BB20F0A-0000-0000-0000-000000000000}).2 = ({8ACA2445-0000-0000-0000-000000000000})
|
{8BE16150-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
({8BB20F0A-0000-0000-0000-000000000000}).3 = ({A7CD0630-0000-0000-0000-000000000000})
|
{8BE16150-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
({8BB20F0A-0000-0000-0000-000000000000}).5 = ({8E81D43C-0000-0000-0000-000000000000})
|
{97A82740-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
({B0027747-0000-0000-0000-000000000000}).5 = ({8ACA2445-0000-0000-0000-000000000000})
|
{97A82740-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
({B0027747-0000-0000-0000-000000000000}).6 = ({A7CD0630-0000-0000-0000-000000000000})
|
{97A82740-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
({988F0AC4-0000-0000-0000-000000000000}).3 = ({8BE16150-0000-0000-0000-000000000000})
|
{97A82740-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
({0A563AC1-0000-0000-0000-000000000000}).3 = ({62CDF671-0000-0000-0000-000000000000})
|
{0F3C3AC1-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
({7924FD35-0000-0000-0000-000000000000}).1 = ({8ACA2445-0000-0000-0000-000000000000})
|
{0F3C3AC1-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
({7924FD35-0000-0000-0000-000000000000}).2 = ({8BB20F0A-0000-0000-0000-000000000000})
|
{0F3C3AC1-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
({7924FD35-0000-0000-0000-000000000000}).4 = ({8E81D43C-0000-0000-0000-000000000000})
|
{0F3C3AC1-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
({B55C0B5D-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000})
|
{E88EF749-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
({B55C0B5D-0000-0000-0000-000000000000}).4 = ({A7CD0630-0000-0000-0000-000000000000})
|
{E88EF749-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
({B55C0B5D-0000-0000-0000-000000000000}).5 = ({8E81D43C-0000-0000-0000-000000000000})
|
{E88EF749-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
({21BFC8E2-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000})
|
{E88EF749-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
({21BFC8E2-0000-0000-0000-000000000000}).4 = ({A7CD0630-0000-0000-0000-000000000000})
|
{66591469-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
({21BFC8E2-0000-0000-0000-000000000000}).5 = ({8BB20F0A-0000-0000-0000-000000000000})
|
{66591469-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
({21BFC8E2-0000-0000-0000-000000000000}).6 = ({62CDF671-0000-0000-0000-000000000000})
|
{66591469-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
({21BFC8E2-0000-0000-0000-000000000000}).7 = ({7924FD35-0000-0000-0000-000000000000})
|
{66591469-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
({21BFC8E2-0000-0000-0000-000000000000}).10 = ({8E81D43C-0000-0000-0000-000000000000})
|
{4F874463-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
({E1B79ECF-0000-0000-0000-000000000000}).4 = ({8ACA2445-0000-0000-0000-000000000000})
|
{4F874463-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
({E1B79ECF-0000-0000-0000-000000000000}).5 = ({A7CD0630-0000-0000-0000-000000000000})
|
{4F874463-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
({6B20B603-0000-0000-0000-000000000000}).5 = ({8ACA2445-0000-0000-0000-000000000000})
|
{4F874463-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
({6B20B603-0000-0000-0000-000000000000}).6 = ({A7CD0630-0000-0000-0000-000000000000})
|
{8BB20F0A-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
({39BD9497-0000-0000-0000-000000000000}).3 = ({62CDF671-0000-0000-0000-000000000000})
|
{8BB20F0A-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
({7E494328-0000-0000-0000-000000000000}).5 = ({8ACA2445-0000-0000-0000-000000000000})
|
{8BB20F0A-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
({7E494328-0000-0000-0000-000000000000}).6 = ({A7CD0630-0000-0000-0000-000000000000})
|
{8BB20F0A-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
({1E3F341A-0000-0000-0000-000000000000}).4 = ({62CDF671-0000-0000-0000-000000000000})
|
{B0027747-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
({546099CD-0000-0000-0000-000000000000}).4 = ({8ACA2445-0000-0000-0000-000000000000})
|
{B0027747-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
({546099CD-0000-0000-0000-000000000000}).5 = ({A7CD0630-0000-0000-0000-000000000000})
|
{B0027747-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
({0021261B-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000})
|
{B0027747-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
({0021261B-0000-0000-0000-000000000000}).4 = ({A7CD0630-0000-0000-0000-000000000000})
|
{988F0AC4-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
({0021261B-0000-0000-0000-000000000000}).5 = ({546099CD-0000-0000-0000-000000000000})
|
{988F0AC4-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
({0021261B-0000-0000-0000-000000000000}).6 = ({8BB20F0A-0000-0000-0000-000000000000})
|
{988F0AC4-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
({0021261B-0000-0000-0000-000000000000}).9 = ({8E81D43C-0000-0000-0000-000000000000})
|
{988F0AC4-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
{0A563AC1-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
{0A563AC1-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{2270B8FE-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{0A563AC1-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{2270B8FE-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{0A563AC1-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{2270B8FE-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{7924FD35-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{2270B8FE-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
{7924FD35-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{EE9E5D96-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{7924FD35-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{EE9E5D96-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{7924FD35-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{EE9E5D96-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{B55C0B5D-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{EE9E5D96-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
{B55C0B5D-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{63A05FE9-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{B55C0B5D-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{63A05FE9-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{B55C0B5D-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{63A05FE9-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{21BFC8E2-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{63A05FE9-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
{21BFC8E2-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{21BFC8E2-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{21BFC8E2-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{62CDF671-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
{62CDF671-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{62CDF671-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{62CDF671-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{438A9556-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{E1B79ECF-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{438A9556-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
{E1B79ECF-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{632E1BFD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{E1B79ECF-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{632E1BFD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{E1B79ECF-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{632E1BFD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{6B20B603-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{632E1BFD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
{6B20B603-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{6B20B603-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{6B20B603-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{39BD9497-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
{39BD9497-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{8BE16150-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{39BD9497-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{8BE16150-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{39BD9497-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{8BE16150-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{7E494328-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{8BE16150-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
{7E494328-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{97A82740-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{7E494328-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{97A82740-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{7E494328-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{97A82740-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{E141F4EE-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{97A82740-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
{E141F4EE-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{0F3C3AC1-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{E141F4EE-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{0F3C3AC1-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{E141F4EE-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{0F3C3AC1-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{1E3F341A-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{0F3C3AC1-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
{1E3F341A-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{E88EF749-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{1E3F341A-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{E88EF749-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{1E3F341A-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{E88EF749-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{546099CD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{E88EF749-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
{546099CD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{66591469-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{546099CD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{66591469-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{546099CD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{66591469-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{0021261B-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{66591469-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
{0021261B-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{4F874463-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{0021261B-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{4F874463-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{0021261B-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{4F874463-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{8E81D43C-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{4F874463-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
{8E81D43C-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{8BB20F0A-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{8E81D43C-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{8BB20F0A-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{8E81D43C-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{8BB20F0A-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
EndGlobalSection
|
||||||
{8BB20F0A-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
{B0027747-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
HideSolutionNode = FALSE
|
||||||
{B0027747-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
EndGlobalSection
|
||||||
{B0027747-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{B0027747-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{988F0AC4-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{988F0AC4-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{988F0AC4-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{988F0AC4-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{0A563AC1-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{0A563AC1-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{0A563AC1-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{0A563AC1-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{7924FD35-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{7924FD35-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{7924FD35-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{7924FD35-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{B55C0B5D-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{B55C0B5D-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{B55C0B5D-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{B55C0B5D-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{21BFC8E2-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{21BFC8E2-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{21BFC8E2-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{21BFC8E2-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{62CDF671-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{62CDF671-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{62CDF671-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{62CDF671-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{E1B79ECF-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{E1B79ECF-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{E1B79ECF-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{E1B79ECF-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{6B20B603-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{6B20B603-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{6B20B603-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{6B20B603-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{39BD9497-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{39BD9497-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{39BD9497-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{39BD9497-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{7E494328-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{7E494328-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{7E494328-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{7E494328-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{E141F4EE-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{E141F4EE-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{E141F4EE-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{E141F4EE-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{1E3F341A-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{1E3F341A-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{1E3F341A-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{1E3F341A-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{546099CD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{546099CD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{546099CD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{546099CD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{0021261B-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{0021261B-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{0021261B-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{0021261B-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{8E81D43C-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{8E81D43C-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{8E81D43C-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{8E81D43C-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|
Loading…
Reference in New Issue