Refactoring of BNetServer

This commit is contained in:
hondacrx
2020-07-12 00:06:43 -04:00
parent 4164384b72
commit 581d077acd
318 changed files with 2046 additions and 4694 deletions
+58
View File
@@ -0,0 +1,58 @@
// Copyright (c) CypherCore <http://github.com/CypherCore> All rights reserved.
// Licensed under the GNU GENERAL PUBLIC LICENSE. See LICENSE file in the project root for full license information.
using System;
namespace Framework.Realm
{
public struct RealmId : IEquatable<RealmId>
{
public uint Index { get; set; }
public byte Region { get; set; }
public byte Site { get; set; }
public RealmId(byte region, byte battlegroup, uint index)
{
Region = region;
Site = battlegroup;
Index = index;
}
public RealmId(uint realmAddress)
{
Region = (byte)((realmAddress >> 24) & 0xFF);
Site = (byte)((realmAddress >> 16) & 0xFF);
Index = realmAddress & 0xFFFF;
}
public uint GetAddress()
{
return (uint)((Region << 24) | (Site << 16) | (ushort)Index);
}
public string GetAddressString()
{
return $"{Region}-{Site}-{Index}";
}
public string GetSubRegionAddress()
{
return $"{Region}-{Site}-0";
}
public override bool Equals(object obj)
{
return obj != null && obj is RealmId && Equals((RealmId)obj);
}
public bool Equals(RealmId other)
{
return other.Index == Index;
}
public override int GetHashCode()
{
return new { Site, Region, Index }.GetHashCode();
}
}
}