! Swap.h
! created june 04 by she's long gone
! from a suggestion by andrew plotkin
!
! please send all feedback to she's long gone
! ( w4y795b02@sneakemail.com )
!
! this file is public domain.
! it will 'swap' two objects,
! moving each to the other's parent.
! note that unless the 'flag' variable is
! non-zero, a swapped object will
! be removed if the other has no parent.
!
! #Include after "Parser".

[ Swap a b flag pa pb;
  pa = parent(a);
  pb = parent(b);
  if (pa) { move b to pa;
		if (b == player) location = pa;
	    }
	else if (~~flag) remove b;
  if (pb) { move a to pb;
		if (a == player) location = pb;
	    }
	else if (~~flag) remove a;
  #ifdef DEBUG;
  print " (", (The) a, " and ", (the) b, " have been swapped.) ";
  #endif;
];