Ok... I have been trying to add the xml siege att to baseboat. I got it to compile fine on basehouse but I must be doing something wrong in baseboat. I get half a mile of compile errors......

Would appreciate any help.
Here is the latest failing attempt.
public virtual BaseDockedBoat DockedBoat{ get{ return null; } }
private static ArrayList m_Instances = new ArrayList();
public static ArrayList Boats{ get{ return m_Instances; } }
public BaseBoat() : base( 0x4000 )
{
// automatically add an xmlsiege attachment to this object
XmlAttach.AttachTo(this, new XmlSiege());
m_DecayTime = DateTime.Now + BoatDecayDelay;
m_TillerMan = new TillerMan( this );
m_Hold = new Hold( this );
m_PPlank = new Plank( this, PlankSide.Port, 0 );
m_SPlank = new Plank( this, PlankSide.Starboard, 0 );
m_PPlank.MoveToWorld( new Point3D( X + PortOffset.X, Y + PortOffset.Y, Z ), Map );
m_SPlank.MoveToWorld( new Point3D( X + StarboardOffset.X, Y + StarboardOffset.Y, Z ), Map );
the edits at 1492
IPooledEnumerable eable = this.Map.GetObjectsInBounds( new Rectangle2D( X + mcl.Min.X, Y + mcl.Min.Y, mcl.Width, mcl.Height ) );
foreach ( object o in eable )
{
if ( o != this && !(o is TillerMan || o is Hold || o is Plank || o is AddonComponent) )
toMove.Add( o );
}
eable.Free();
for ( int i = 0; i < toMove.Count; ++i )
{
object o = toMove[i];
if ( o is Item )
{
Item item = (Item)o;
if ( Contains( item ) && (item.Visible || item is BaseAddon) && item.Z >= Z )
item.Location = new Point3D( item.X + xOffset, item.Y + yOffset, item.Z + zOffset );
}
else if ( o is Mobile )
{
Mobile m = (Mobile)o;
the edits around 1584
foreach ( object o in eable )
{
if ( o is Item )
{
Item item = (Item)o;
if ( item != this && Contains( item ) && (item.Visible || item is BaseAddon) && item.Z >= Z && !(item is TillerMan || item is Hold || item is Plank || item is AddonComponent) )
toMove.Add( item );
// support rotation of siege weapons when turning boats
if (item is BaseSiegeWeapon)
{
((BaseSiegeWeapon)item).Facing = ((int)((BaseSiegeWeapon)item).Facing - ((int)old - (int)facing)/2);
}
}
else if ( o is Mobile && Contains( (Mobile)o ) )
{
toMove.Add( o );
((Mobile)o).Direction = (Direction)((int)((Mobile)o).Direction - (int)old + (int)facing);
}
}
Any help is appreciated.