From 2401b86b24f672aec6419a982d7342429d988ed8 Mon Sep 17 00:00:00 2001 From: asayre Date: Mon, 2 Jan 2012 10:24:08 +0000 Subject: [PATCH] Unused properties removed to handle warnings (Warn lvl 4, Treat Errors as warnings please & thankyou) BaseCreature & PlayerMobile set to partial classes for easier extensibility. Prevent Item from stacking with itself Updated Bounds.bin with latest values. ItemBounds will now correctly size itself to the TileData. Compiler directives for .NET 4.0 no longer needed - .NET 4.0 is now supported by default to take advantage of the new Socket Events and Parallelization improvements. --- Data/Binary/Bounds.bin | Bin 131072 -> 524288 bytes Scripts/Gumps/ConfirmHouseResize.cs | 1 - Scripts/Items/Armor/Glasses/LyricalGlasses.cs | 2 - .../Items/Armor/Glasses/MaceShieldGlasses.cs | 2 - .../11th Year promo/EarringsOfProtection.cs | 1 - Scripts/Mobiles/BaseCreature.cs | 2 +- Scripts/Mobiles/PlayerMobile.cs | 2 +- Server/Item.cs | 2 +- Server/ItemBounds.cs | 8 +- Server/Main.cs | 13 -- Server/Network/Listener.cs | 47 ----- Server/Network/NetState.cs | 185 ------------------ Server/Persistence/DynamicSaveStrategy.cs | 5 +- Server/Persistence/SaveStrategy.cs | 5 +- Server/ScriptCompiler.cs | 4 +- 15 files changed, 10 insertions(+), 269 deletions(-) diff --git a/Data/Binary/Bounds.bin b/Data/Binary/Bounds.bin index dbe5830d0e5601f36a0879915093dc592d07ba2c..214ca6efa588a04e94261b3c7073493d50015ba7 100644 GIT binary patch literal 524288 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

K;)vOkl4qp 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 z1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP z1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP z1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP z1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP z1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP z1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP z1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP z1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP z1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP z1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP z1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP z1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP z1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP z1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP z1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP z1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP1BnBP e1BnBP1BnBP1BnBP1BnBP1BnBP1AkUH@c#kH4TxL- delta 5146 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 { VerifyType(t); }); -#else - foreach (Type t in a.GetTypes()) - { - VerifyType(t); - } -#endif } } diff --git a/Server/Network/Listener.cs b/Server/Network/Listener.cs index 593c94811..88ca8a690 100644 --- a/Server/Network/Listener.cs +++ b/Server/Network/Listener.cs @@ -36,11 +36,7 @@ namespace Server.Network private Queue m_Accepted; private object m_AcceptedSyncRoot; -#if Framework_4_0 private SocketAsyncEventArgs m_EventArgs; -#else - private AsyncCallback m_OnAccept; -#endif private static Socket[] m_EmptySockets = new Socket[0]; @@ -63,19 +59,9 @@ namespace Server.Network DisplayListener(); -#if Framework_4_0 m_EventArgs = new SocketAsyncEventArgs(); m_EventArgs.Completed += new EventHandler( Accept_Completion ); Accept_Start(); -#else - m_OnAccept = new AsyncCallback( OnAccept ); - try { - IAsyncResult res = m_Listener.BeginAccept( m_OnAccept, m_Listener ); - } catch ( SocketException ex ) { - NetState.TraceException( ex ); - } catch ( ObjectDisposedException ) { - } -#endif } private Socket Bind( IPEndPoint ipep ) @@ -146,7 +132,6 @@ namespace Server.Network } } -#if Framework_4_0 private void Accept_Start() { bool result = false; @@ -184,38 +169,6 @@ namespace Server.Network e.AcceptSocket = null; } -#else - - private void OnAccept( IAsyncResult asyncResult ) { - Socket listener = (Socket) asyncResult.AsyncState; - - Socket accepted = null; - - try { - accepted = listener.EndAccept( asyncResult ); - } catch ( SocketException ex ) { - NetState.TraceException( ex ); - } catch ( ObjectDisposedException ) { - return; - } - - if ( accepted != null ) { - if ( VerifySocket( accepted ) ) { - Enqueue( accepted ); - } else { - Release( accepted ); - } - } - - try { - listener.BeginAccept( m_OnAccept, listener ); - } catch ( SocketException ex ) { - NetState.TraceException( ex ); - } catch ( ObjectDisposedException ) { - } - } -#endif - private bool VerifySocket( Socket socket ) { try { SocketConnectEventArgs args = new SocketConnectEventArgs( socket ); diff --git a/Server/Network/NetState.cs b/Server/Network/NetState.cs index 299cdf957..b795e220e 100644 --- a/Server/Network/NetState.cs +++ b/Server/Network/NetState.cs @@ -51,11 +51,7 @@ namespace Server.Network { private bool m_Seeded; private bool m_Running; -#if Framework_4_0 private SocketAsyncEventArgs m_ReceiveEventArgs, m_SendEventArgs; -#else - private AsyncCallback m_OnReceive, m_OnSend; -#endif private MessagePump m_MessagePump; private ServerInfo[] m_ServerInfo; @@ -615,17 +611,8 @@ namespace Server.Network { } if ( gram != null ) { -#if Framework_4_0 m_SendEventArgs.SetBuffer( gram.Buffer, 0, gram.Length ); Send_Start(); -#else - try { - m_Socket.BeginSend( gram.Buffer, 0, gram.Length, SocketFlags.None, m_OnSend, m_Socket ); - } catch ( Exception ex ) { - TraceException( ex ); - Dispose( false ); - } -#endif } } catch ( CapacityExceededException ) { Console.WriteLine( "Client: {0}: Too much data pending, disconnecting...", this ); @@ -648,7 +635,6 @@ namespace Server.Network { } } -#if Framework_4_0 public void Start() { m_ReceiveEventArgs = new SocketAsyncEventArgs(); m_ReceiveEventArgs.Completed += new EventHandler( Receive_Completion ); @@ -824,172 +810,6 @@ namespace Server.Network { return false; } -#else - - public void Start() { - m_OnReceive = new AsyncCallback( OnReceive ); - m_OnSend = new AsyncCallback( OnSend ); - - m_Running = true; - - if ( m_Socket == null || m_Paused ) { - return; - } - - try { - lock ( m_AsyncLock ) { - if ( ( m_AsyncState & ( AsyncState.Pending | AsyncState.Paused ) ) == 0 ) { - InternalBeginReceive(); - } - } - } catch ( Exception ex ) { - TraceException( ex ); - Dispose( false ); - } - } - - private void InternalBeginReceive() { - m_AsyncState |= AsyncState.Pending; - - m_Socket.BeginReceive( m_RecvBuffer, 0, m_RecvBuffer.Length, SocketFlags.None, m_OnReceive, m_Socket ); - } - - private void OnReceive( IAsyncResult asyncResult ) { - Socket s = (Socket)asyncResult.AsyncState; - - try { - int byteCount = s.EndReceive( asyncResult ); - - if ( byteCount > 0 ) { - m_NextCheckActivity = DateTime.Now + TimeSpan.FromMinutes( 1.2 ); - - byte[] buffer = m_RecvBuffer; - - if ( m_Encoder != null ) - m_Encoder.DecodeIncomingPacket( this, ref buffer, ref byteCount ); - - lock ( m_Buffer ) - m_Buffer.Enqueue( buffer, 0, byteCount ); - - m_MessagePump.OnReceive( this ); - - lock ( m_AsyncLock ) { - m_AsyncState &= ~AsyncState.Pending; - - if ( ( m_AsyncState & AsyncState.Paused ) == 0 ) { - try { - InternalBeginReceive(); - } catch ( Exception ex ) { - TraceException( ex ); - Dispose( false ); - } - } - } - } else { - Dispose( false ); - } - } catch { - Dispose( false ); - } - } - - private void OnSend( IAsyncResult asyncResult ) { - Socket s = (Socket)asyncResult.AsyncState; - - try { - int bytes = s.EndSend( asyncResult ); - - if ( bytes <= 0 ) { - Dispose( false ); - return; - } - - m_NextCheckActivity = DateTime.Now + TimeSpan.FromMinutes( 1.2 ); - - if ( m_CoalesceSleep >= 0 ) { - Thread.Sleep( m_CoalesceSleep ); - } - - SendQueue.Gram gram; - - lock ( m_SendQueue ) { - gram = m_SendQueue.Dequeue(); - } - - if ( gram != null ) { - try { - s.BeginSend( gram.Buffer, 0, gram.Length, SocketFlags.None, m_OnSend, s ); - } catch ( Exception ex ) { - TraceException( ex ); - Dispose( false ); - } - } - } catch ( Exception ){ - Dispose( false ); - } - } - - public static void Pause() { - m_Paused = true; - - for ( int i = 0; i < m_Instances.Count; ++i ) { - NetState ns = m_Instances[i]; - - lock ( ns.m_AsyncLock ) { - ns.m_AsyncState |= AsyncState.Paused; - } - } - } - - public static void Resume() { - m_Paused = false; - - for ( int i = 0; i < m_Instances.Count; ++i ) { - NetState ns = m_Instances[i]; - - if ( ns.m_Socket == null ) { - continue; - } - - lock ( ns.m_AsyncLock ) { - ns.m_AsyncState &= ~AsyncState.Paused; - - try { - if ( ( ns.m_AsyncState & AsyncState.Pending ) == 0 ) - ns.InternalBeginReceive(); - } catch ( Exception ex ) { - TraceException( ex ); - ns.Dispose( false ); - } - } - } - } - - public bool Flush() { - if ( m_Socket == null || !m_SendQueue.IsFlushReady ) { - return false; - } - - SendQueue.Gram gram; - - lock ( m_SendQueue ) { - gram = m_SendQueue.CheckFlushReady(); - } - - if ( gram != null ) { - try { - m_Socket.BeginSend( gram.Buffer, 0, gram.Length, SocketFlags.None, m_OnSend, m_Socket ); - return true; - } catch ( Exception ex ) { - TraceException( ex ); - Dispose( false ); - } - } - - return false; - } -#endif - public PacketHandler GetHandler( int packetID ) { if ( ContainerGridLines ) @@ -1088,13 +908,8 @@ namespace Server.Network { m_Buffer = null; m_RecvBuffer = null; -#if Framework_4_0 m_ReceiveEventArgs = null; m_SendEventArgs = null; -#else - m_OnReceive = null; - m_OnSend = null; -#endif m_Running = false; diff --git a/Server/Persistence/DynamicSaveStrategy.cs b/Server/Persistence/DynamicSaveStrategy.cs index c5a9c5386..44227194f 100644 --- a/Server/Persistence/DynamicSaveStrategy.cs +++ b/Server/Persistence/DynamicSaveStrategy.cs @@ -18,8 +18,6 @@ * ***************************************************************************/ -#if Framework_4_0 - using System; using System.Collections.Generic; using System.Text; @@ -310,5 +308,4 @@ namespace Server } } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Server/Persistence/SaveStrategy.cs b/Server/Persistence/SaveStrategy.cs index 6d91da9b7..765f3d32c 100644 --- a/Server/Persistence/SaveStrategy.cs +++ b/Server/Persistence/SaveStrategy.cs @@ -31,13 +31,10 @@ namespace Server { int processorCount = Core.ProcessorCount; + //TODO: Upon realworld verification of DynamicSaveStrategy, change this method around. if (processorCount > 16) { -#if Framework_4_0 return new DynamicSaveStrategy(); -#else - return new ParallelSaveStrategy(processorCount); -#endif } else { diff --git a/Server/ScriptCompiler.cs b/Server/ScriptCompiler.cs index 9c6d9c6c1..0d8b1ecf3 100644 --- a/Server/ScriptCompiler.cs +++ b/Server/ScriptCompiler.cs @@ -86,15 +86,13 @@ namespace Server AppendDefine( ref sb, "/d:MONO" ); #endif - //These two defines are legacy, ie, depreciated. + //These following defines are legacy, ie, depreciated. if( Core.Is64Bit ) AppendDefine( ref sb, "/d:x64" ); AppendDefine( ref sb, "/d:Framework_2_0" ); -#if Framework_4_0 AppendDefine( ref sb, "/d:Framework_4_0" ); -#endif return (sb == null ? null : sb.ToString()); }