private boolean method66(int arg0, int arg1, int arg2) {
        int i1 = arg0 >> 14 & 0x7fff;
        int j1 = sceneGraph.method304(plane, arg2, arg1, arg0);
        if (j1 == -1) {
            return false;
        }
        int k1 = j1 & 0x1f;
        int l1 = j1 >> 6 & 3;
        if (k1 == 10 || k1 == 11 || k1 == 22) {
            ObjectDefinition objectDefinition = ObjectDefinition.forId(i1);
            int i2;
            int j2;
            if (l1 == 0 || l1 == 2) {
                i2 = objectDefinition.ySize;
                j2 = objectDefinition.xSize;
            } else {
                i2 = objectDefinition.xSize;
                j2 = objectDefinition.ySize;
            }
            int k2 = objectDefinition.anInt768;
            if (l1 != 0) {
                k2 = (k2 << l1 & 0xf) + (k2 >> 4 - l1);
            }
            doWalkTo(2, 0, j2, 0, Client.myPlayer.walkQueueY[0], i2, k2, arg1, Client.myPlayer.walkQueueX[0], false, arg2);
        } else {
            doWalkTo(2, l1, 0, k1 + 1, Client.myPlayer.walkQueueY[0], 0, 0, arg1, Client.myPlayer.walkQueueX[0], false, arg2);
        }
        crossX = super.saveClickX;
        crossY = super.saveClickY;
        crossState = 2;
        crossIndex = 0;
        return true;
    }