MODULE Spostamento;

IMPORT S:SYSTEM;
IMPORT E:Sviluppo;
IMPORT V:Vektor;

CONST
  delta = 100.0;

PROCEDURE Verschiebe(op:E.ObjektPtr);
  VAR
    vp    : POINTER TO E.Vektor;
    i,anz : LONGINT;
  BEGIN
    WITH op^ DO
      op^.mpos.y:=op^.mpos.y+delta;
      op^.mittelpunkt.y:=op^.mittelpunkt.y+delta;

      E.GetPunkte(op,vp,anz);
      FOR i:=1 TO anz DO
        vp^.y:=vp^.y+delta;
        INC(vp,SIZE(E.Vektor));
      END;
    END;
    op:=op^.down;
    WHILE op#NIL DO
      Verschiebe(op);
      op:=op^.next;
    END;
  END Verschiebe;

BEGIN
  IF E.welt^.aktuobjekt#NIL THEN
    Verschiebe(E.welt^.aktuobjekt);

    E.welt^.rethinkpolygon:=E.welt^.aktuobjekt;
    (* Importante, damit die Polygonkoeffizienten neu errechnet werden *)

    E.welt^.refresh:=TRUE;
  ELSE
    E.Beep;
  END;
END Spostamento.
