anchor.diff:      begin
         case D of
           4:
  -          AddDoor(AX, AY - (H div 2));
  +          AddObjs(0, -(H div 2), 0, (H div 2) - 1);
           5:
  -          AddDoor(AX + (H div 2), AY);
  +          AddObjs(H div 2, 0, -(H div 2) + 1, 0);
           6:
  -          AddDoor(AX - (H div 2), AY);
  +          AddObjs(-(H div 2), 0, (H div 2) - 1, 0);
           7:
  -          AddDoor(AX, AY + (H div 2));
  +          AddObjs(0, H div 2, 0, -(H div 2) + 1);
         end;
         Exit;
       end;
       if F then
         if (AX <= CX) then
  -        AddDoor(AX + (W div 2), AY)
  +        AddObjs(W div 2, 0, -(W div 2) + 1, 0)
         else
  -        AddDoor(AX - (W div 2), AY)
  +        AddObjs(-(W div 2), 0, (W div 2) - 1, 0)
       else if (AY <= CY) then
  -      AddDoor(AX, AY + (H div 2))
  +      AddObjs(0, H div 2, 0, -(H div 2) + 1)
       else
  -      AddDoor(AX, AY - (H div 2));
  +      AddObjs(0, -(H div 2), 0, (H div 2) - 1);
     end;
   
     procedure AddVillage(AX, AY: UInt);
  
positive.code: 
  type
    TTileEnum = (teDefaultFloor, teDefaultWall, teRock, teFloor1, teFloor2, teFloor3, teUpStairs, teDnStairs, teWater, teStoneWall, teWoodenWall,
      teStoneFloor, teWoodenFloor, teDoor, teGate, tePortal, teTownPortal);
  
  const
    StopTiles = [teDefaultWall, teStoneWall, teWoodenWall];
    FreeTiles = [teDefaultFloor, teRock, teFloor1, teFloor2, teFloor3, teUpStairs, teDnStairs, teWater];
    VillageTiles = [teStoneWall, teWoodenWall, teStoneFloor, teWoodenFloor, teDoor, teGate];
    SpawnTiles = [teDefaultFloor, teRock, teFloor1, teFloor2, teFloor3, teWater];
  
  var
  
negative.code:   AddTile('O', _('Portal'), $FF9999FF, teTownPortal, deDeep_Cave);
    AddTile('O', _('Portal'), $FF9999FF, teTownPortal, deBlood_Cave);
    AddTile('O', _('Portal'), $FF9999FF, teTownPortal, deDrom);
    // Magic Orb
    AddTile('O', _('Magic Orb'), $FF9999FF, teMagicOrb, deDark_Wood);
    AddTile('O', _('Magic Orb'), $FF8888FF, teMagicOrb, deGray_Cave);
    AddTile('O', _('Magic Orb'), $FF7777FF, teMagicOrb, deDeep_Cave);
    AddTile('O', _('Magic Orb'), $FF6666FF, teMagicOrb, deBlood_Cave);
    AddTile('O', _('Magic Orb'), $FF5555FF, teMagicOrb, deDrom);
    // Anvil
    AddTile('#', _('Anvil'), $FFAAAAAA, teAnvil, deDark_Wood);
    AddTile('#', _('Anvil'), $FFAAAAAA, teAnvil, deGray_Cave);
    AddTile('#', _('Anvil'), $FFAAAAAA, teAnvil, deDeep_Cave);
    AddTile('#', _('Anvil'), $FFAAAAAA, teAnvil, deBlood_Cave);
    AddTile('#', _('Anvil'), $FFAAAAAA, teAnvil, deDrom);
    // Horne
    AddTile('O', _('h'), $FFFF2222, teHorne, deDark_Wood);
    AddTile('O', _('h'), $FFFF2222, teHorne, deGray_Cave);
    AddTile('O', _('h'), $FFFF2222, teHorne, deDeep_Cave);
    AddTile('O', _('h'), $FFFF2222, teHorne, deBlood_Cave);
    AddTile('O', _('h'), $FFFF2222, teHorne, deDrom);
  end;
  
  procedure TMap.AddSpot(AX, AY: UInt; ASize: UInt; AZ: TMapEnum; ABaseTileEnum, ATileEnum: TTileEnum);
  