begin basehouse generics

This commit is contained in:
mark 2006-06-21 21:20:25 +00:00
parent c5027649a1
commit ef97e49eb2
4 changed files with 45 additions and 37 deletions

View file

@ -41,10 +41,10 @@ namespace Server.Accounting
if ( m == null ) if ( m == null )
continue; continue;
ArrayList list = Multis.BaseHouse.GetHouses( m ); List<BaseHouse> list = Multis.BaseHouse.GetHouses( m );
for ( int j = 0; j < list.Count; ++j ) for ( int j = 0; j < list.Count; ++j )
( (Item) list[j] ).Delete(); list[j].Delete();
m.Delete(); m.Delete();

View file

@ -1,5 +1,6 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic;
using Server; using Server;
using Server.Items; using Server.Items;
using Server.Multis; using Server.Multis;
@ -29,19 +30,19 @@ namespace Server.Gumps
from.SendGump( new ViewHousesGump( from, GetHouses( (Mobile)targeted ), null ) ); from.SendGump( new ViewHousesGump( from, GetHouses( (Mobile)targeted ), null ) );
} }
private class HouseComparer : IComparer private class HouseComparer : IComparer<BaseHouse>
{ {
public static readonly IComparer Instance = new HouseComparer(); public static readonly IComparer<BaseHouse> Instance = new HouseComparer();
public int Compare( object x, object y ) public int Compare( BaseHouse x, BaseHouse y )
{ {
return ((BaseHouse)x).BuiltOn.CompareTo( ((BaseHouse)y).BuiltOn ); return x.BuiltOn.CompareTo( y.BuiltOn );
} }
} }
public static ArrayList GetHouses( Mobile owner ) public static List<BaseHouse> GetHouses( Mobile owner )
{ {
ArrayList list = new ArrayList(); List<BaseHouse> list = new List<BaseHouse>();
Account acct = owner.Account as Account; Account acct = owner.Account as Account;
@ -66,10 +67,10 @@ namespace Server.Gumps
} }
private Mobile m_From; private Mobile m_From;
private ArrayList m_List; private List<BaseHouse> m_List;
private BaseHouse m_Selection; private BaseHouse m_Selection;
public ViewHousesGump( Mobile from, ArrayList list, BaseHouse sel ) : base( 50, 40 ) public ViewHousesGump( Mobile from, List<BaseHouse> list, BaseHouse sel ) : base( 50, 40 )
{ {
m_From = from; m_From = from;
m_List = list; m_List = list;
@ -109,7 +110,7 @@ namespace Server.Gumps
AddButton( 190, 17, 0x15E3, 0x15E7, 0, GumpButtonType.Page, page-1 ); AddButton( 190, 17, 0x15E3, 0x15E7, 0, GumpButtonType.Page, page-1 );
} }
object name = FindHouseName( (BaseHouse)list[i] ); object name = FindHouseName( list[i] );
AddHtml( 15, 40 + ((i % 15) * 20), 20, 20, Color( String.Format( "{0}.", i+1 ), White ), false, false ); AddHtml( 15, 40 + ((i % 15) * 20), 20, 20, Color( String.Format( "{0}.", i+1 ), White ), false, false );
@ -192,7 +193,7 @@ namespace Server.Gumps
int v = info.ButtonID - 1; int v = info.ButtonID - 1;
if ( v >= 0 && v < m_List.Count ) if ( v >= 0 && v < m_List.Count )
m_From.SendGump( new ViewHousesGump( m_From, m_List, (BaseHouse)m_List[v] ) ); m_From.SendGump( new ViewHousesGump( m_From, m_List, m_List[v] ) );
} }
else if ( !m_Selection.Deleted ) else if ( !m_Selection.Deleted )
{ {

View file

@ -29,7 +29,7 @@ namespace Server.Multis
public static void Decay_OnTick() public static void Decay_OnTick()
{ {
for ( int i = 0; i < m_AllHouses.Count; ++i ) for ( int i = 0; i < m_AllHouses.Count; ++i )
((BaseHouse)m_AllHouses[i]).CheckDecay(); m_AllHouses[i].CheckDecay();
} }
private DateTime m_LastRefreshed; private DateTime m_LastRefreshed;
@ -83,7 +83,7 @@ namespace Server.Multis
if ( (acct.LastLogin + TimeSpan.FromDays( 90.0 )) < DateTime.Now ) if ( (acct.LastLogin + TimeSpan.FromDays( 90.0 )) < DateTime.Now )
return DecayType.Condemned; return DecayType.Condemned;
ArrayList allHouses = new ArrayList( 2 ); List<BaseHouse> allHouses = new List<BaseHouse>( 2 );
for ( int i = 0; i < acct.Length; ++i ) for ( int i = 0; i < acct.Length; ++i )
{ {
@ -97,7 +97,7 @@ namespace Server.Multis
for ( int i = 0; i < allHouses.Count; ++i ) for ( int i = 0; i < allHouses.Count; ++i )
{ {
BaseHouse check = (BaseHouse)allHouses[i]; BaseHouse check = allHouses[i];
if ( newest == null || IsNewer( check, newest ) ) if ( newest == null || IsNewer( check, newest ) )
newest = check; newest = check;
@ -246,7 +246,7 @@ namespace Server.Multis
private Point3D m_RelativeBanLocation; private Point3D m_RelativeBanLocation;
private static Hashtable m_Table = new Hashtable(); private static Dictionary<Mobile, List<BaseHouse>> m_Table = new Dictionary<Mobile, List<BaseHouse>>();
public virtual bool IsAosRules{ get{ return Core.AOS; } } public virtual bool IsAosRules{ get{ return Core.AOS; } }
@ -820,19 +820,20 @@ namespace Server.Multis
return ( house != null && (house.IsSecure( item ) || house.IsLockedDown( item )) ); return ( house != null && (house.IsSecure( item ) || house.IsLockedDown( item )) );
} }
public static ArrayList GetHouses( Mobile m ) public static List<BaseHouse> GetHouses( Mobile m )
{ {
ArrayList list = new ArrayList(); List<BaseHouse> list = new List<BaseHouse>();
if ( m != null ) if ( m != null )
{ {
ArrayList exists = (ArrayList)m_Table[m]; List<BaseHouse> exists = null;
m_Table.TryGetValue( m, out exists );
if ( exists != null ) if ( exists != null )
{ {
for ( int i = 0; i < exists.Count; ++i ) for ( int i = 0; i < exists.Count; ++i )
{ {
BaseHouse house = exists[i] as BaseHouse; BaseHouse house = exists[i];
if ( house != null && !house.Deleted && house.Owner == m ) if ( house != null && !house.Deleted && house.Owner == m )
list.Add( house ); list.Add( house );
@ -1040,7 +1041,7 @@ namespace Server.Multis
return SecureAccessResult.Insecure; return SecureAccessResult.Insecure;
} }
private static ArrayList m_AllHouses = new ArrayList(); private static List<BaseHouse> m_AllHouses = new List<BaseHouse>();
public BaseHouse( int multiID, Mobile owner, int MaxLockDown, int MaxSecure ) : base( multiID | 0x4000 ) public BaseHouse( int multiID, Mobile owner, int MaxLockDown, int MaxSecure ) : base( multiID | 0x4000 )
{ {
@ -1075,10 +1076,11 @@ namespace Server.Multis
if ( owner != null ) if ( owner != null )
{ {
ArrayList list = (ArrayList)m_Table[owner]; List<BaseHouse list = null;
m_Table.TryGetValue( owner, out list );
if ( list == null ) if ( list == null )
m_Table[owner] = list = new ArrayList(); m_Table[owner] = list = new List<BaseHouse>();
list.Add( this ); list.Add( this );
} }
@ -2478,10 +2480,11 @@ namespace Server.Multis
if ( m_Owner != null ) if ( m_Owner != null )
{ {
ArrayList list = (ArrayList)m_Table[m_Owner]; List<BaseHouse list = null;
m_Table.TryGetValue( m_Owner, out list );
if ( list == null ) if ( list == null )
m_Table[m_Owner] = list = new ArrayList(); m_Table[m_Owner] = list = new List<BaseHouse>();
list.Add( this ); list.Add( this );
} }
@ -2533,7 +2536,7 @@ namespace Server.Multis
public static void HandleDeletion( Mobile mob ) public static void HandleDeletion( Mobile mob )
{ {
ArrayList houses = GetHouses( mob ); List<BaseHouse> houses = GetHouses( mob );
if ( houses.Count == 0 ) if ( houses.Count == 0 )
return; return;
@ -2549,7 +2552,7 @@ namespace Server.Multis
for ( int i = 0; i < houses.Count; ++i ) for ( int i = 0; i < houses.Count; ++i )
{ {
BaseHouse house = houses[i] as BaseHouse; BaseHouse house = houses[i];
bool canClaim = false; bool canClaim = false;
@ -2586,10 +2589,11 @@ namespace Server.Multis
{ {
if ( m_Owner != null ) if ( m_Owner != null )
{ {
ArrayList list = (ArrayList)m_Table[m_Owner]; List<BaseHouse list = null;
m_Table.TryGetValue( m_Owner, out list );
if ( list == null ) if ( list == null )
m_Table[m_Owner] = list = new ArrayList(); m_Table[m_Owner] = list = new List<BaseHouse>();
list.Remove( this ); list.Remove( this );
m_Owner.Delta( MobileDelta.Noto ); m_Owner.Delta( MobileDelta.Noto );
@ -2599,10 +2603,11 @@ namespace Server.Multis
if ( m_Owner != null ) if ( m_Owner != null )
{ {
ArrayList list = (ArrayList)m_Table[m_Owner]; List<BaseHouse list = null;
m_Table.TryGetValue( m_Owner, out list );
if ( list == null ) if ( list == null )
m_Table[m_Owner] = list = new ArrayList(); m_Table[m_Owner] = list = new List<BaseHouse>();
list.Add( this ); list.Add( this );
m_Owner.Delta( MobileDelta.Noto ); m_Owner.Delta( MobileDelta.Noto );
@ -2834,10 +2839,11 @@ namespace Server.Multis
if ( m_Owner != null ) if ( m_Owner != null )
{ {
ArrayList list = (ArrayList)m_Table[m_Owner]; List<BaseHouse list = null;
m_Table.TryGetValue( m_Owner, out list );
if ( list == null ) if ( list == null )
m_Table[m_Owner] = list = new ArrayList(); m_Table[m_Owner] = list = new List<BaseHouse>();
list.Remove( this ); list.Remove( this );
} }
@ -2966,14 +2972,15 @@ namespace Server.Multis
if ( m == null ) if ( m == null )
return false; return false;
ArrayList list = (ArrayList)m_Table[m]; List<BaseHouse list = null;
m_Table.TryGetValue( m, out list );
if ( list == null ) if ( list == null )
return false; return false;
for ( int i = 0; i < list.Count; ++i ) for ( int i = 0; i < list.Count; ++i )
{ {
BaseHouse h = (BaseHouse)list[i]; BaseHouse h = list[i];
if ( !h.Deleted ) if ( !h.Deleted )
return true; return true;

View file

@ -79,7 +79,7 @@ namespace Server.Spells
for ( int i = 0; i < sector.Multis.Count; ++i ) for ( int i = 0; i < sector.Multis.Count; ++i )
{ {
BaseMulti multi = (BaseMulti) sector.Multis[i]; BaseMulti multi = sector.Multis[i];
if ( multi is BaseHouse ) if ( multi is BaseHouse )
{ {