public static void DoLogin( NetState state, Mobile m )
		{
			state.Send( new LoginConfirm( m ) );

			if ( m.Map != null )
				state.Send( new MapChange( m ) );

			state.Send( new MapPatches() );

			state.Send( SeasonChange.Instantiate( m.GetSeason(), true ) );

			state.Send( SupportedFeatures.Instantiate( state ) );

			state.Sequence = 0;

			if ( state.StygianAbyss ) {
				state.Send( new MobileUpdate( m ) );
				state.Send( new MobileUpdate( m ) );

				m.CheckLightLevels( true );

				state.Send( new MobileUpdate( m ) );

				state.Send( new MobileIncoming( m, m ) );
				//state.Send( new MobileAttributes( m ) );
				state.Send( new MobileStatus( m, m ) );
				state.Send( Server.Network.SetWarMode.Instantiate( m.Warmode ) );

				m.SendEverything();

				state.Send( SupportedFeatures.Instantiate( state ) );
				state.Send( new MobileUpdate( m ) );
				//state.Send( new MobileAttributes( m ) );
				state.Send( new MobileStatus( m, m ) );
				state.Send( Server.Network.SetWarMode.Instantiate( m.Warmode ) );
				state.Send( new MobileIncoming( m, m ) );
			} else {
				state.Send( new MobileUpdateOld( m ) );
				state.Send( new MobileUpdateOld( m ) );

				m.CheckLightLevels( true );

				state.Send( new MobileUpdateOld( m ) );

				state.Send( new MobileIncomingOld( m, m ) );
				//state.Send( new MobileAttributes( m ) );
				state.Send( new MobileStatus( m, m ) );
				state.Send( Server.Network.SetWarMode.Instantiate( m.Warmode ) );

				m.SendEverything();

				state.Send( SupportedFeatures.Instantiate( state ) );
				state.Send( new MobileUpdateOld( m ) );
				//state.Send( new MobileAttributes( m ) );
				state.Send( new MobileStatus( m, m ) );
				state.Send( Server.Network.SetWarMode.Instantiate( m.Warmode ) );
				state.Send( new MobileIncomingOld( m, m ) );
			}

			state.Send( LoginComplete.Instance );
			state.Send( new CurrentTime() );
			state.Send( SeasonChange.Instantiate( m.GetSeason(), true ) );
			state.Send( new MapChange( m ) );

			EventSink.InvokeLogin( new LoginEventArgs( m ) );

			m.ClearFastwalkStack();
		}
		public static void DoLogin( NetState state, Mobile m )
		{
			state.Send( new LoginConfirm( m ) );

			if ( m.Map != null )
				state.Send( new MapChange( m ) );

			state.Send( new MapPatches() );

			state.Send( SeasonChange.Instantiate( m.GetSeason(), true ) );

			state.Send( SupportedFeatures.Instantiate( state.Account ) );

			state.Sequence = 0;
			state.Send( new MobileUpdate( m ) );
			state.Send( new MobileUpdate( m ) );

			m.CheckLightLevels( true );

			state.Send( new MobileUpdate( m ) );

			state.Send( new MobileIncoming( m, m ) );
			//state.Send( new MobileAttributes( m ) );
			state.Send( new MobileStatus( m, m ) );
			state.Send( Server.Network.SetWarMode.Instantiate( m.Warmode ) );

			m.SendEverything();

			state.Send( SupportedFeatures.Instantiate( state.Account ) );
			state.Send( new MobileUpdate( m ) );
			//state.Send( new MobileAttributes( m ) );
			state.Send( new MobileStatus( m, m ) );
			state.Send( Server.Network.SetWarMode.Instantiate( m.Warmode ) );
			state.Send( new MobileIncoming( m, m ) );

			state.Send( LoginComplete.Instance );
			state.Send( new CurrentTime() );
			state.Send( SeasonChange.Instantiate( m.GetSeason(), true ) );
			state.Send( new MapChange( m ) );

			try {
				EventSink.InvokeLogin(new LoginEventArgs(m));
			} catch (Exception ex) {
				log.Fatal("Exception disarmed in Login", ex);
			}

			m.ClearFastwalkStack();
		}