Implement Core.TickCount

Convert movement, actions (lift/use), combat, and spells to use Core.TickCount and avoid DateTime caveats (performance, system time dependency, etc)
Refactor DateTime.Now to DateTime.UtcNow
Add LOS check for Iron Maiden addon
This commit is contained in:
Mark Sturgill 2013-10-06 03:21:18 -07:00
parent f99eefb288
commit d2c670f5c3
241 changed files with 842 additions and 831 deletions

View file

@ -83,7 +83,7 @@ namespace Server.Network {
public TimeSpan ConnectedFor {
get {
return ( DateTime.Now - m_ConnectedOn );
return ( DateTime.UtcNow - m_ConnectedOn );
}
}
@ -567,7 +567,7 @@ namespace Server.Network {
m_SendQueue = new SendQueue();
m_NextCheckActivity = DateTime.Now + TimeSpan.FromMinutes( 0.5 );
m_NextCheckActivity = Core.TickCount + 30000;
m_Instances.Add( this );
@ -580,7 +580,7 @@ namespace Server.Network {
m_ToString = "(error)";
}
m_ConnectedOn = DateTime.Now;
m_ConnectedOn = DateTime.UtcNow;
if ( m_CreatedCallback != null )
{
@ -647,7 +647,7 @@ namespace Server.Network {
Console.WriteLine( "Client: {0}: null buffer send, disconnecting...", this );
using ( StreamWriter op = new StreamWriter( "null_send.log", true ) )
{
op.WriteLine( "{0} Client: {1}: null buffer send, disconnecting...", DateTime.Now, this );
op.WriteLine( "{0} Client: {1}: null buffer send, disconnecting...", DateTime.UtcNow, this );
op.WriteLine( new System.Diagnostics.StackTrace() );
}
Dispose();
@ -711,7 +711,7 @@ namespace Server.Network {
return;
}
m_NextCheckActivity = DateTime.Now + TimeSpan.FromMinutes( 1.2 );
m_NextCheckActivity = Core.TickCount + 90000;
byte[] buffer = m_RecvBuffer;
@ -777,7 +777,7 @@ namespace Server.Network {
return;
}
m_NextCheckActivity = DateTime.Now + TimeSpan.FromMinutes( 1.2 );
m_NextCheckActivity = Core.TickCount + 90000;
}
public static void Pause() {
@ -867,7 +867,7 @@ namespace Server.Network {
int byteCount = s.EndReceive( asyncResult );
if ( byteCount > 0 ) {
m_NextCheckActivity = DateTime.Now + TimeSpan.FromMinutes( 1.2 );
m_NextCheckActivity = Core.TickCount + 90000;
byte[] buffer = m_RecvBuffer;
@ -910,7 +910,7 @@ namespace Server.Network {
return;
}
m_NextCheckActivity = DateTime.Now + TimeSpan.FromMinutes( 1.2 );
m_NextCheckActivity = Core.TickCount + 90000;
if ( m_CoalesceSleep >= 0 ) {
Thread.Sleep( m_CoalesceSleep );
@ -1023,13 +1023,13 @@ namespace Server.Network {
}
}
private DateTime m_NextCheckActivity;
private int m_NextCheckActivity;
public bool CheckAlive() {
if ( m_Socket == null )
return false;
if ( DateTime.Now < m_NextCheckActivity ) {
if (m_NextCheckActivity - Core.TickCount >= 0) {
return true;
}
@ -1045,7 +1045,7 @@ namespace Server.Network {
try {
using ( StreamWriter op = new StreamWriter( "network-errors.log", true ) ) {
op.WriteLine( "# {0}", DateTime.Now );
op.WriteLine("# {0}", DateTime.UtcNow);
op.WriteLine( ex );

View file

@ -1408,7 +1408,7 @@ namespace Server.Network
{
Mobile from = state.Mobile;
if ( from.AccessLevel >= AccessLevel.Counselor || DateTime.Now >= from.NextActionTime )
if (from.AccessLevel >= AccessLevel.Counselor || Core.TickCount - from.NextActionTime >= 0)
{
int value = pvSrc.ReadInt32();
@ -1436,7 +1436,7 @@ namespace Server.Network
}
}
from.NextActionTime = DateTime.Now + Mobile.ActionDelay;
from.NextActionTime = Core.TickCount + Mobile.ActionDelay;
}
else
{
@ -1627,7 +1627,7 @@ namespace Server.Network
if (from == null)
return;
if (from.AccessLevel >= AccessLevel.Counselor || DateTime.Now >= from.NextActionTime)
if (from.AccessLevel >= AccessLevel.Counselor || Core.TickCount - from.NextActionTime >= 0)
{
Item bandage = World.FindItem(pvSrc.ReadInt32());
@ -1641,7 +1641,7 @@ namespace Server.Network
EventSink.InvokeBandageTargetRequest(new BandageTargetRequestEventArgs(from, bandage, target));
from.NextActionTime = DateTime.Now + Mobile.ActionDelay;
from.NextActionTime = Core.TickCount + Mobile.ActionDelay;
}
else
{
@ -2412,7 +2412,6 @@ namespace Server.Network
}
}
private static bool m_ClientVerification = true;
public static bool ClientVerification
@ -2426,7 +2425,7 @@ namespace Server.Network
public ClientVersion Version;
public AuthIDPersistence( ClientVersion v ) {
Age = DateTime.Now;
Age = DateTime.UtcNow;
Version = v;
}
}

View file

@ -76,7 +76,7 @@ namespace Server.Network
{
using ( StreamWriter op = new StreamWriter( "neterr.log" ) )
{
op.WriteLine( "{0}\tInstance pool contains writer", DateTime.Now );
op.WriteLine("{0}\tInstance pool contains writer", DateTime.UtcNow);
}
}
catch

View file

@ -2731,7 +2731,7 @@ namespace Server.Network
{
public CurrentTime() : base( 0x5B, 4 )
{
DateTime now = DateTime.Now;
DateTime now = DateTime.UtcNow;
m_Stream.Write( (byte) now.Hour );
m_Stream.Write( (byte) now.Minute );
@ -4590,7 +4590,7 @@ namespace Server.Network
Console.WriteLine( "Warning: Compression buffer overflowed on packet 0x{0:X2} ('{1}') (length={2})", m_PacketID, GetType().Name, length );
using ( StreamWriter op = new StreamWriter( "compression_overflow.log", true ) )
{
op.WriteLine( "{0} Warning: Compression buffer overflowed on packet 0x{1:X2} ('{2}') (length={3})", DateTime.Now, m_PacketID, GetType().Name, length );
op.WriteLine("{0} Warning: Compression buffer overflowed on packet 0x{1:X2} ('{2}') (length={3})", DateTime.UtcNow, m_PacketID, GetType().Name, length);
op.WriteLine( new System.Diagnostics.StackTrace() );
}
}