diff --git a/libsecondlife-cs/AssetSystem/AssetManager.cs b/libsecondlife-cs/AssetSystem/AssetManager.cs
index 6a244df4..8af7b95f 100644
--- a/libsecondlife-cs/AssetSystem/AssetManager.cs
+++ b/libsecondlife-cs/AssetSystem/AssetManager.cs
@@ -89,7 +89,7 @@ namespace libsecondlife.AssetSystem
switch( sinkType )
{
case SINK_FEE_IMAGE:
- slClient.Self.GiveMoney( new LLUUID(), 10, "Image Upload" );
+ slClient.Self.GiveMoney( LLUUID.Zero, 10, "Image Upload" );
break;
default:
throw new Exception("AssetManager: Unknown sinktype (" + sinkType + ")");
diff --git a/libsecondlife-cs/AssetSystem/ImageManager.cs b/libsecondlife-cs/AssetSystem/ImageManager.cs
index e1fab3c0..ac9d5de1 100644
--- a/libsecondlife-cs/AssetSystem/ImageManager.cs
+++ b/libsecondlife-cs/AssetSystem/ImageManager.cs
@@ -356,7 +356,7 @@ namespace libsecondlife.AssetSystem
{
tr = htDownloadRequests[ImageID];
}
- catch (Exception e)
+ catch (Exception)
{
// Received a packet for an image we didn't request...
return;
diff --git a/libsecondlife-cs/Avatar.cs b/libsecondlife-cs/Avatar.cs
index 99d5bc9c..22089696 100644
--- a/libsecondlife-cs/Avatar.cs
+++ b/libsecondlife-cs/Avatar.cs
@@ -169,27 +169,27 @@ namespace libsecondlife
public event BalanceCallback OnBalanceUpdated;
/// Your (client) Avatar UUID, asset server
- public LLUUID ID;
+ public LLUUID ID = LLUUID.Zero;
/// Your (client) Avatar ID, local to Region/sim
public uint LocalID;
/// Avatar First Name (i.e. Philip)
- public string FirstName;
+ public string FirstName = "";
/// Avatar Last Name (i.e. Linden)
- public string LastName;
+ public string LastName = "";
///
public string TeleportMessage;
/// Current position of avatar
- public LLVector3 Position;
+ public LLVector3 Position = LLVector3.Zero;
/// Current rotation of avatar
- public LLQuaternion Rotation;
+ public LLQuaternion Rotation = LLQuaternion.Unit;
/// The point the avatar is currently looking at
/// (may not stay updated)
- public LLVector3 LookAt;
+ public LLVector3 LookAt = LLVector3.Zero;
/// Position avatar client will goto when login to 'home' or during
/// teleport request to 'home' region.
- public LLVector3 HomePosition;
+ public LLVector3 HomePosition = LLVector3.Zero;
/// LookAt point saved/restored with HomePosition
- public LLVector3 HomeLookAt;
+ public LLVector3 HomeLookAt = LLVector3.Zero;
/// Gets the health of the agent
protected float health;
public float Health
@@ -220,10 +220,6 @@ namespace libsecondlife
Client = client;
TeleportMessage = "";
- // Create emtpy vectors for now
- HomeLookAt = HomePosition = Position = LookAt = new LLVector3();
- Rotation = new LLQuaternion();
-
// Coarse location callback
Client.Network.RegisterCallback(PacketType.CoarseLocationUpdate, new PacketCallback(CoarseLocationHandler));
@@ -331,9 +327,9 @@ namespace libsecondlife
}
// These fields are mandatory, even if we don't have valid values for them
- im.MessageBlock.Position = new LLVector3();
+ im.MessageBlock.Position = LLVector3.Zero;
//TODO: Allow region id to be correctly set by caller or fetched from Client.*
- im.MessageBlock.RegionID = new LLUUID();
+ im.MessageBlock.RegionID = LLUUID.Zero;
// Send the message
@@ -449,7 +445,7 @@ namespace libsecondlife
autopilot.AgentData.AgentID = Client.Network.AgentID;
autopilot.AgentData.SessionID = Client.Network.SessionID;
- autopilot.MethodData.Invoice = new LLUUID();
+ autopilot.MethodData.Invoice = LLUUID.Zero;
autopilot.MethodData.Method = Helpers.StringToField("autopilot");
autopilot.ParamList = new GenericMessagePacket.ParamListBlock[3];
autopilot.ParamList[0] = new GenericMessagePacket.ParamListBlock();
@@ -660,9 +656,9 @@ namespace libsecondlife
update.AgentData.AgentID = Client.Network.AgentID;
update.AgentData.SessionID = Client.Network.SessionID;
update.AgentData.State = 0;
- update.AgentData.BodyRotation = new LLQuaternion(0, 0.6519076f, 0, 0);
- update.AgentData.HeadRotation = new LLQuaternion();
// Semi-sane default values
+ update.AgentData.BodyRotation = new LLQuaternion(0, 0.6519076f, 0, 0);
+ update.AgentData.HeadRotation = LLQuaternion.Unit;
update.AgentData.CameraCenter = new LLVector3(9.549901f, 7.033957f, 11.75f);
update.AgentData.CameraAtAxis = new LLVector3(0.7f, 0.7f, 0);
update.AgentData.CameraLeftAxis = new LLVector3(-0.7f, 0.7f, 0);
diff --git a/libsecondlife-cs/GridManager.cs b/libsecondlife-cs/GridManager.cs
index 6bd669d5..2ecd6f09 100644
--- a/libsecondlife-cs/GridManager.cs
+++ b/libsecondlife-cs/GridManager.cs
@@ -96,7 +96,7 @@ namespace libsecondlife
{
Client = client;
Regions = new Dictionary();
- SunDirection = new LLVector3();
+ SunDirection = LLVector3.Zero;
Client.Network.RegisterCallback(PacketType.MapBlockReply, new PacketCallback(MapBlockReplyHandler));
Client.Network.RegisterCallback(PacketType.SimulatorViewerTimeMessage, new PacketCallback(TimeMessageHandler));
diff --git a/libsecondlife-cs/GroupManager.cs b/libsecondlife-cs/GroupManager.cs
index 449d6e42..f22c3d96 100644
--- a/libsecondlife-cs/GroupManager.cs
+++ b/libsecondlife-cs/GroupManager.cs
@@ -144,7 +144,7 @@ namespace libsecondlife
public Group(LLUUID id)
{
ID = id;
- InsigniaID = new LLUUID();
+ InsigniaID = LLUUID.Zero;
}
///
diff --git a/libsecondlife-cs/InventorySystem/InventoryFolder.cs b/libsecondlife-cs/InventorySystem/InventoryFolder.cs
index 7ce79d7a..43b24a6a 100644
--- a/libsecondlife-cs/InventorySystem/InventoryFolder.cs
+++ b/libsecondlife-cs/InventorySystem/InventoryFolder.cs
@@ -56,8 +56,8 @@ namespace libsecondlife.InventorySystem
: base(manager)
{
_Name = "";
- _FolderID = new LLUUID();
- _ParentID = new LLUUID();
+ _FolderID = LLUUID.Zero;
+ _ParentID = LLUUID.Zero;
_Type = -1;
}
diff --git a/libsecondlife-cs/InventorySystem/InventoryImage.cs b/libsecondlife-cs/InventorySystem/InventoryImage.cs
index 6cfa958b..8b618310 100644
--- a/libsecondlife-cs/InventorySystem/InventoryImage.cs
+++ b/libsecondlife-cs/InventorySystem/InventoryImage.cs
@@ -21,7 +21,7 @@ namespace libsecondlife.InventorySystem
}
else
{
- if( (AssetID != null) && (AssetID != new LLUUID()) )
+ if ((AssetID != null) && (AssetID != LLUUID.Zero))
{
base.iManager.AssetManager.GetInventoryAsset( this );
return ((AssetImage)Asset).J2CData;
diff --git a/libsecondlife-cs/InventorySystem/InventoryItem.cs b/libsecondlife-cs/InventorySystem/InventoryItem.cs
index 4b13b35d..78770170 100644
--- a/libsecondlife-cs/InventorySystem/InventoryItem.cs
+++ b/libsecondlife-cs/InventorySystem/InventoryItem.cs
@@ -25,7 +25,7 @@ namespace libsecondlife.InventorySystem
}
}
- internal LLUUID _FolderID = new LLUUID();
+ internal LLUUID _FolderID = LLUUID.Zero;
public LLUUID FolderID
{
get { return _FolderID; }
@@ -102,13 +102,13 @@ namespace libsecondlife.InventorySystem
}
- internal LLUUID _OwnerID = new LLUUID();
+ internal LLUUID _OwnerID = LLUUID.Zero;
public LLUUID OwnerID
{
get { return _OwnerID; }
}
- internal LLUUID _CreatorID = new LLUUID();
+ internal LLUUID _CreatorID = LLUUID.Zero;
public LLUUID CreatorID
{
get { return _CreatorID; }
@@ -125,7 +125,7 @@ namespace libsecondlife.InventorySystem
}
else
{
- if ((AssetID != null) && (AssetID != new LLUUID()))
+ if ((AssetID != null) && (AssetID != LLUUID.Zero))
{
base.iManager.AssetManager.GetInventoryAsset(this);
return Asset;
@@ -135,20 +135,20 @@ namespace libsecondlife.InventorySystem
}
}
- internal LLUUID _TransactionID = new LLUUID();
+ internal LLUUID _TransactionID = LLUUID.Zero;
public LLUUID TransactionID
{
get { return _TransactionID; }
}
- internal LLUUID _AssetID = new LLUUID();
+ internal LLUUID _AssetID = LLUUID.Zero;
public LLUUID AssetID
{
get { return _AssetID; }
}
- internal LLUUID _GroupID = new LLUUID();
+ internal LLUUID _GroupID = LLUUID.Zero;
public LLUUID GroupID
{
get { return _GroupID; }
diff --git a/libsecondlife-cs/InventorySystem/InventoryManager.cs b/libsecondlife-cs/InventorySystem/InventoryManager.cs
index 649839a1..fcb0e1c1 100644
--- a/libsecondlife-cs/InventorySystem/InventoryManager.cs
+++ b/libsecondlife-cs/InventorySystem/InventoryManager.cs
@@ -484,7 +484,7 @@ namespace libsecondlife.InventorySystem
InventoryItem invItem;
InventoryFolder invFolder;
- LLUUID uuidFolderID = new LLUUID();
+ LLUUID uuidFolderID = LLUUID.Zero;
int iDescendentsExpected = int.MaxValue;
int iDescendentsReceivedThisBlock = 0;
diff --git a/libsecondlife-cs/InventorySystem/InventoryNotecard.cs b/libsecondlife-cs/InventorySystem/InventoryNotecard.cs
index 2435d491..7817dc50 100644
--- a/libsecondlife-cs/InventorySystem/InventoryNotecard.cs
+++ b/libsecondlife-cs/InventorySystem/InventoryNotecard.cs
@@ -18,7 +18,7 @@ namespace libsecondlife.InventorySystem
{
return ((AssetNotecard)Asset).Body;
} else {
- if( (AssetID != null) && (AssetID != new LLUUID()) )
+ if ((AssetID != null) && (AssetID != LLUUID.Zero))
{
base.iManager.AssetManager.GetInventoryAsset( this );
return ((AssetNotecard)Asset).Body;
diff --git a/libsecondlife-cs/InventorySystem/InventoryPacketHelper.cs b/libsecondlife-cs/InventorySystem/InventoryPacketHelper.cs
index 3cbea192..58d1af3e 100644
--- a/libsecondlife-cs/InventorySystem/InventoryPacketHelper.cs
+++ b/libsecondlife-cs/InventorySystem/InventoryPacketHelper.cs
@@ -258,7 +258,7 @@ namespace libsecondlife.InventorySystem
// TODO: Either overload this method to allow inclusion of region info or
// overload the ImprovedInstantMessage in the avatar class to allow item payloads
- p.MessageBlock.RegionID = new LLUUID();
+ p.MessageBlock.RegionID = LLUUID.Zero;
p.MessageBlock.ParentEstateID = (uint)0;
return p;
@@ -271,7 +271,7 @@ namespace libsecondlife.InventorySystem
CreateInventoryItemPacket p = new CreateInventoryItemPacket();
p.InventoryBlock.CallbackID = 0;
- p.InventoryBlock.TransactionID = new LLUUID();
+ p.InventoryBlock.TransactionID = LLUUID.Zero;
p.InventoryBlock.WearableType = 0; //TODO: Specify the current type here
p.InventoryBlock.Type = iitem.Type;
@@ -362,7 +362,7 @@ namespace libsecondlife.InventorySystem
/* IDs */
CRC += iitem.AssetID.CRC(); // AssetID
CRC += iitem.FolderID.CRC(); // FolderID
- CRC += iitem.ItemID==null?new LLUUID().CRC():iitem.ItemID.CRC(); // ItemID
+ CRC += iitem.ItemID == null ? LLUUID.Zero.CRC() : iitem.ItemID.CRC(); // ItemID
/* Permission stuff */
CRC += iitem.CreatorID.CRC(); // CreatorID
diff --git a/libsecondlife-cs/NetworkManager.cs b/libsecondlife-cs/NetworkManager.cs
index e7431c41..40549da0 100644
--- a/libsecondlife-cs/NetworkManager.cs
+++ b/libsecondlife-cs/NetworkManager.cs
@@ -1208,7 +1208,7 @@ namespace libsecondlife
MoneyBalanceRequestPacket money = new MoneyBalanceRequestPacket();
money.AgentData.AgentID = AgentID;
money.AgentData.SessionID = SessionID;
- money.MoneyData.TransactionID = new LLUUID();
+ money.MoneyData.TransactionID = LLUUID.Zero;
SendPacket(money);
// FIXME: MainAvatar can request the info if it wants to use it
diff --git a/libsecondlife-cs/Parcel.cs b/libsecondlife-cs/Parcel.cs
index 7ea41948..562b353b 100644
--- a/libsecondlife-cs/Parcel.cs
+++ b/libsecondlife-cs/Parcel.cs
@@ -67,8 +67,8 @@ namespace libsecondlife
///
public DirectoryParcel()
{
- GlobalPosition = new LLVector3();
- SimPosition = new LLVector3();
+ GlobalPosition = LLVector3.Zero;
+ SimPosition = LLVector3.Zero;
}
}
@@ -175,16 +175,16 @@ namespace libsecondlife
private void init()
{
- OwnerID = new LLUUID();
- AABBMin = new LLVector3();
- AABBMax = new LLVector3();
+ OwnerID = LLUUID.Zero;
+ AABBMin = LLVector3.Zero;
+ AABBMax = LLVector3.Zero;
Bitmap = new byte[512];
- MediaID = new LLUUID();
- GroupID = new LLUUID();
- AuthBuyerID = new LLUUID();
- SnapshotID = new LLUUID();
- UserLocation = new LLVector3();
- UserLookAt = new LLVector3();
+ MediaID = LLUUID.Zero;
+ GroupID = LLUUID.Zero;
+ AuthBuyerID = LLUUID.Zero;
+ SnapshotID = LLUUID.Zero;
+ UserLocation = LLVector3.Zero;
+ UserLookAt = LLVector3.Zero;
}
///
@@ -215,7 +215,7 @@ namespace libsecondlife
request.AgentData.AgentID = client.Network.AgentID;
request.AgentData.SessionID = client.Network.SessionID;
request.Data.LocalID = LocalID;
- request.Data.ParcelID = new LLUUID();
+ request.Data.ParcelID = LLUUID.Zero;
client.Network.SendPacket((Packet)request, Sim);
}
diff --git a/libsecondlife-cs/Prims.cs b/libsecondlife-cs/Prims.cs
index 446d6875..abcfc952 100644
--- a/libsecondlife-cs/Prims.cs
+++ b/libsecondlife-cs/Prims.cs
@@ -44,7 +44,7 @@ namespace libsecondlife
///
public float PathSkew = 0;
///
- public LLVector3 Position = new LLVector3();
+ public LLVector3 Position = LLVector3.Zero;
///
public uint ProfileCurve = 0;
///
@@ -52,13 +52,13 @@ namespace libsecondlife
///
public float PathScaleY = 0;
///
- public LLUUID ID = new LLUUID();
+ public LLUUID ID = LLUUID.Zero;
///
public uint LocalID = 0;
///
public uint ParentID = 0;
///
- public LLUUID GroupID = new LLUUID();
+ public LLUUID GroupID = LLUUID.Zero;
///
public uint Material = 0;
///
@@ -80,7 +80,7 @@ namespace libsecondlife
///
public uint PathCurve = 0;
///
- public LLVector3 Scale = new LLVector3();
+ public LLVector3 Scale = LLVector3.Zero;
///
public int PathTwist = 0;
///
@@ -94,7 +94,7 @@ namespace libsecondlife
///
public float PathRevolutions = 0;
///
- public LLQuaternion Rotation = new LLQuaternion();
+ public LLQuaternion Rotation = LLQuaternion.Unit;
///
public uint State;
///
diff --git a/libsecondlife-cs/Region.cs b/libsecondlife-cs/Region.cs
index 42c2736e..720e97d1 100644
--- a/libsecondlife-cs/Region.cs
+++ b/libsecondlife-cs/Region.cs
@@ -53,11 +53,11 @@ namespace libsecondlife
public Dictionary Parcels;
///
- public LLUUID ID;
+ public LLUUID ID = LLUUID.Zero;
///
public ulong Handle;
///
- public string Name;
+ public string Name = "";
///
public byte[] ParcelOverlay;
///
@@ -88,31 +88,28 @@ namespace libsecondlife
///
public float WaterHeight;
///
- public LLUUID SimOwner;
+ public LLUUID SimOwner = LLUUID.Zero;
///
- public LLUUID TerrainBase0;
+ public LLUUID TerrainBase0 = LLUUID.Zero;
///
- public LLUUID TerrainBase1;
+ public LLUUID TerrainBase1 = LLUUID.Zero;
///
- public LLUUID TerrainBase2;
+ public LLUUID TerrainBase2 = LLUUID.Zero;
///
- public LLUUID TerrainBase3;
+ public LLUUID TerrainBase3 = LLUUID.Zero;
///
- public LLUUID TerrainDetail0;
+ public LLUUID TerrainDetail0 = LLUUID.Zero;
///
- public LLUUID TerrainDetail1;
+ public LLUUID TerrainDetail1 = LLUUID.Zero;
///
- public LLUUID TerrainDetail2;
+ public LLUUID TerrainDetail2 = LLUUID.Zero;
///
- public LLUUID TerrainDetail3;
+ public LLUUID TerrainDetail3 = LLUUID.Zero;
///
public bool IsEstateManager;
///
public EstateTools Estate;
- private SecondLife Client;
-
-
///
private GridRegion _GridRegionData = null;
public GridRegion GridRegionData
@@ -130,6 +127,8 @@ namespace libsecondlife
}
}
+ private SecondLife Client;
+
///
///
///
@@ -138,21 +137,10 @@ namespace libsecondlife
{
Estate = new EstateTools(client);
Client = client;
- ID = new LLUUID();
ParcelOverlay = new byte[4096];
ParcelMarked = new int[64, 64];
Parcels = new Dictionary();
-
- SimOwner = new LLUUID();
- TerrainBase0 = new LLUUID();
- TerrainBase1 = new LLUUID();
- TerrainBase2 = new LLUUID();
- TerrainBase3 = new LLUUID();
- TerrainDetail0 = new LLUUID();
- TerrainDetail1 = new LLUUID();
- TerrainDetail2 = new LLUUID();
- TerrainDetail3 = new LLUUID();
}
///
diff --git a/libsecondlife-cs/Types.cs b/libsecondlife-cs/Types.cs
index 6f08ded1..9e4a7dd3 100644
--- a/libsecondlife-cs/Types.cs
+++ b/libsecondlife-cs/Types.cs
@@ -246,9 +246,13 @@ namespace libsecondlife
uuid = uuid.Insert(12,"-");
uuid = uuid.Insert(8,"-");
-
return uuid;
}
+
+ ///
+ /// An LLUUID with a value of all zeroes
+ ///
+ public readonly static LLUUID Zero = new LLUUID();
}
///
@@ -412,6 +416,11 @@ namespace libsecondlife
{
return new LLVector3(lhs.X - rhs.X,lhs.Y - rhs.Y, lhs.Z - rhs.Z);
}
+
+ ///
+ /// An LLVector3 with a value of <0,0,0>
+ ///
+ public readonly static LLVector3 Zero = new LLVector3();
}
///
@@ -494,6 +503,11 @@ namespace libsecondlife
{
return X.ToString() + " " + Y.ToString() + " " + Z.ToString();
}
+
+ ///
+ /// An LLVector3d with a value of <0,0,0>
+ ///
+ public readonly static LLVector3d Zero = new LLVector3d();
}
///
@@ -569,6 +583,11 @@ namespace libsecondlife
{
return X.ToString() + " " + Y.ToString() + " " + Z.ToString() + " " + S.ToString();
}
+
+ ///
+ /// An LLVector4 with a value of <0,0,0,0>
+ ///
+ public readonly static LLVector4 Zero = new LLVector4();
}
///
@@ -712,5 +731,10 @@ namespace libsecondlife
{
return X.ToString() + " " + Y.ToString() + " " + Z.ToString() + " " + W.ToString();
}
+
+ ///
+ /// An LLQuaternion with a value of <0,0,0,1>
+ ///
+ public readonly static LLQuaternion Unit = new LLQuaternion();
}
}
diff --git a/libsecondlife-cs/examples/IA_ImageTool/ImageTool.cs b/libsecondlife-cs/examples/IA_ImageTool/ImageTool.cs
index 1f5ba9c3..d66095c4 100644
--- a/libsecondlife-cs/examples/IA_ImageTool/ImageTool.cs
+++ b/libsecondlife-cs/examples/IA_ImageTool/ImageTool.cs
@@ -201,4 +201,4 @@ namespace IA_ImageTool
Console.WriteLine("Example: ImageTool John Doe Password put 1.0 BigImage.tiff (this will compress the file with the given bit-rate)");
}
}
-}
\ No newline at end of file
+}
diff --git a/libsecondlife-cs/examples/ParcelDownload/ParcelDownload.cs b/libsecondlife-cs/examples/ParcelDownload/ParcelDownload.cs
index b09cf21f..11be988f 100644
--- a/libsecondlife-cs/examples/ParcelDownload/ParcelDownload.cs
+++ b/libsecondlife-cs/examples/ParcelDownload/ParcelDownload.cs
@@ -72,7 +72,7 @@ namespace ParcelDownloader
{
Parcel parcel = (Parcel)client.Network.CurrentSim.Region.Parcels[pkey];
// Probably should comment this out :-)
- //parcel.Buy(client,false,new LLUUID());
+ //parcel.Buy(client, false, LLUUID.Zero);
Console.WriteLine("");
Console.WriteLine("\tName: " + parcel.Name);
Console.WriteLine("\tSize: " + parcel.Area);
diff --git a/libsecondlife-cs/examples/sldump/sldump.cs b/libsecondlife-cs/examples/sldump/sldump.cs
index 1132939c..7164c68e 100644
--- a/libsecondlife-cs/examples/sldump/sldump.cs
+++ b/libsecondlife-cs/examples/sldump/sldump.cs
@@ -26,6 +26,7 @@
using System;
using System.Collections.Generic;
+using System.Threading;
using libsecondlife;
using libsecondlife.Packets;
@@ -36,7 +37,7 @@ namespace sldump
// Default packet handler, registered for all packet types
public static void DefaultHandler(Packet packet, Simulator simulator)
{
- Console.WriteLine(packet.ToString());
+ //Console.WriteLine(packet.ToString());
}
public static void DisconnectHandler(DisconnectType type, string message)
@@ -122,10 +123,14 @@ namespace sldump
// Login was successful
Console.WriteLine("Message of the day: " + client.Network.LoginValues["message"]);
- while (true)
+ int start = Environment.TickCount;
+
+ while (Environment.TickCount - start < 10000)
{
- client.Tick();
+ System.Threading.Thread.Sleep(100);
}
+
+ client.Network.Logout();
}
}
}
diff --git a/libsecondlife-cs/libsecondlife.sln b/libsecondlife-cs/libsecondlife.sln
index e2cd3b7f..3c8f9236 100644
--- a/libsecondlife-cs/libsecondlife.sln
+++ b/libsecondlife-cs/libsecondlife.sln
@@ -42,6 +42,14 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "InventoryImageAssets", "Inv
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IA_MultiImageUpload", "examples\IA_MultiImageUpload\IA_MultiImageUpload.csproj", "{8598E42A-DCBC-4224-9503-5694F17B2F45}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "botmanager", "examples\botmanager\botmanager.csproj", "{3E891B97-7267-47D4-AAF1-7DCD2F6D60AB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SLProxy", "..\SLProxy\SLProxy.csproj", "{E4115DC9-FC88-47D6-B3B6-2400AD19B80D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Analyst", "..\SLProxy\Analyst.csproj", "{6222B134-AE5F-489A-8A77-423A721B7C62}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChatConsole", "..\SLProxy\ChatConsole.csproj", "{D8ECCBE1-AC71-4054-AAA6-2D50E5629504}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -128,15 +136,31 @@ Global
{8598E42A-DCBC-4224-9503-5694F17B2F45}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8598E42A-DCBC-4224-9503-5694F17B2F45}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8598E42A-DCBC-4224-9503-5694F17B2F45}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3E891B97-7267-47D4-AAF1-7DCD2F6D60AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3E891B97-7267-47D4-AAF1-7DCD2F6D60AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3E891B97-7267-47D4-AAF1-7DCD2F6D60AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3E891B97-7267-47D4-AAF1-7DCD2F6D60AB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E4115DC9-FC88-47D6-B3B6-2400AD19B80D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E4115DC9-FC88-47D6-B3B6-2400AD19B80D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E4115DC9-FC88-47D6-B3B6-2400AD19B80D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E4115DC9-FC88-47D6-B3B6-2400AD19B80D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6222B134-AE5F-489A-8A77-423A721B7C62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6222B134-AE5F-489A-8A77-423A721B7C62}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6222B134-AE5F-489A-8A77-423A721B7C62}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6222B134-AE5F-489A-8A77-423A721B7C62}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D8ECCBE1-AC71-4054-AAA6-2D50E5629504}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D8ECCBE1-AC71-4054-AAA6-2D50E5629504}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D8ECCBE1-AC71-4054-AAA6-2D50E5629504}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D8ECCBE1-AC71-4054-AAA6-2D50E5629504}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {8D2E5240-2247-42F5-AAAC-CF0CCCEE349A} = {AE3B6C21-9B43-490E-ABCE-2018DC1AEA44}
- {A4F59DE9-E382-401D-AA8D-4557779D764E} = {AE3B6C21-9B43-490E-ABCE-2018DC1AEA44}
- {D6D1D020-D8D8-4D7E-B7AC-5913A903D6E7} = {AE3B6C21-9B43-490E-ABCE-2018DC1AEA44}
{E185E4E1-62D2-430C-A94C-E8E38190805B} = {AE3B6C21-9B43-490E-ABCE-2018DC1AEA44}
+ {8D2E5240-2247-42F5-AAAC-CF0CCCEE349A} = {AE3B6C21-9B43-490E-ABCE-2018DC1AEA44}
+ {D6D1D020-D8D8-4D7E-B7AC-5913A903D6E7} = {AE3B6C21-9B43-490E-ABCE-2018DC1AEA44}
+ {A4F59DE9-E382-401D-AA8D-4557779D764E} = {AE3B6C21-9B43-490E-ABCE-2018DC1AEA44}
{E464B963-46E3-4E1A-A36F-9C640C880E68} = {AE3B6C21-9B43-490E-ABCE-2018DC1AEA44}
{8598E42A-DCBC-4224-9503-5694F17B2F45} = {AE3B6C21-9B43-490E-ABCE-2018DC1AEA44}
EndGlobalSection