begin basehouse generics
This commit is contained in:
parent
c5027649a1
commit
ef97e49eb2
4 changed files with 45 additions and 37 deletions
|
|
@ -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();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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 )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue