public void setpos(MapView mv, Gob player, Coord sz) {
            if (setoff) {
                borderize(mv, player, sz, border);
                off = mv.mc.add(player.position().inv());
                setoff = false;
            }
            if (mv.pmousepos != null
                    && (mv.pmousepos.x == 0 || mv.pmousepos.x == sz.x - 1
                    || mv.pmousepos.y == 0 || mv.pmousepos.y == sz.y - 1)) {
                if (size == null || !size.equals(sz)) {
                    size = new Coord(sz);
                    center = size.div(2);
                    diff = center.sub(border);
                }
                if (player != null && mv.pmousepos != null)
                    tgt = player
                            .position()
                            .sub(s2m(center.sub(mv.pmousepos).mul(diff)
                                    .div(center))).sub(player.position());
            } else {
                tgt = off;
            }
            cur = cur.add(tgt.sub(cur).mul(vel));
            mv.mc = player.position().add(cur);
        }