示例#1
0
 public af(sCoord A_0, int A_1, string A_2) : base(PluginCore.cq)
 {
     this.b = "";
     this.c = DateTimeOffset.MinValue;
     this.a = A_1;
     this.b = A_2;
 }
示例#2
0
    public static double b(sCoord A_0, sCoord A_1)
    {
        double num  = A_1.y - A_0.y;
        double num2 = A_1.x - A_0.x;

        return(a(num, num2));
    }
示例#3
0
 public fd(sCoord A_0, int A_1)
 {
     this.c = true;
     this.a = PluginCore.cq;
     this.d = A_1;
     this.b = A_0;
 }
示例#4
0
    public void a(int A_0, eWaypointType A_1, sCoord A_2, int A_3)
    {
        if ((A_0 >= 0) && (A_0 < this.b.Count))
        {
            bool flag = false;
            switch (A_1)
            {
            case eWaypointType.Point:
                PluginCore.cq.l.k.b[A_0].Dispose();
                PluginCore.cq.l.k.b[A_0] = new d5(A_2);
                flag = true;
                break;

            case eWaypointType.Portal:
                PluginCore.cq.l.k.b[A_0].Dispose();
                PluginCore.cq.l.k.b[A_0] = new fv(A_2, A_3);
                flag = true;
                break;

            case eWaypointType.Recall:
                PluginCore.cq.l.k.b[A_0].Dispose();
                PluginCore.cq.l.k.b[A_0] = new fd(A_2, A_3);
                flag = true;
                break;
            }
            if (flag && !this.d())
            {
                PluginCore.cq.l.g();
                PluginCore.cq.ay.ak();
                PluginCore.cq.n.c();
            }
        }
    }
示例#5
0
 public c2(sCoord A_0) : base(PluginCore.cq)
 {
     this.a = "";
     this.b = new dz();
     this.d = new dz();
     this.g = A_0;
 }
示例#6
0
 public c2(sCoord A_0, string A_1, dz A_2, ObjectClass A_3) : base(PluginCore.cq)
 {
     this.a = "";
     this.b = new dz();
     this.d = new dz();
     this.g = A_0;
     this.a = A_1;
     this.b = A_2;
     this.c = A_3;
 }
示例#7
0
    public static double a(sCoord A_0, sCoord A_1)
    {
        if (A_0.invalid || A_1.invalid)
        {
            return(9999999.0);
        }
        double num  = A_0.x - A_1.x;
        double num2 = A_0.y - A_1.y;
        double num3 = A_0.z - A_1.z;

        return(Math.Sqrt(((num * num) + (num2 * num2)) + (num3 * num3)));
    }
示例#8
0
    public static sCoord a(double A_0, double A_1, double A_2, int A_3)
    {
        sCoord coord = new sCoord();
        int    num   = ((int)Math.Floor((double)(((double)A_3) / 16777216.0))) & 0xff;
        int    num2  = ((int)Math.Floor((double)(((double)A_3) / 65536.0))) & 0xff;
        double num3  = ((((num2 - 0x7f) * 192.0) + A_1) - 84.0) / 240.0;
        double num4  = ((((num - 0x7f) * 192.0) + A_0) - 84.0) / 240.0;

        coord.x = num4;
        coord.y = num3;
        coord.z = A_2;
        return(coord);
    }
示例#9
0
    public static double a(int A_0, int A_1)
    {
        if (!PluginCore.cq.ax.get_Actions().IsValidObject(A_0))
        {
            return(double.MaxValue);
        }
        if (!PluginCore.cq.ax.get_Actions().IsValidObject(A_1))
        {
            return(double.MaxValue);
        }
        sCoord coord  = a(A_0, PluginCore.cq.ax.get_Actions());
        sCoord coord2 = a(A_1, PluginCore.cq.ax.get_Actions());

        return(a(coord.x * 240.0, coord.y * 240.0, coord.z * 240.0, (double)l(A_0), (double)k(A_0), coord2.x * 240.0, coord2.y * 240.0, coord2.z * 240.0, (double)l(A_1), (double)k(A_1)));
    }
示例#10
0
    public static double a(sCoord A_0, sCoord A_1, bool A_2)
    {
        if ((A_0 == sCoord.NoWhere) || (A_1 == sCoord.NoWhere))
        {
            return(9999999.0);
        }
        if (A_2)
        {
            double num  = A_0.x - A_1.x;
            double num2 = A_0.y - A_1.y;
            double num3 = A_0.z - A_1.z;
            return(Math.Sqrt(((num * num) + (num2 * num2)) + (num3 * num3)));
        }
        double num4 = A_0.x - A_1.x;
        double num5 = A_0.y - A_1.y;

        return(Math.Sqrt((num4 * num4) + (num5 * num5)));
    }
示例#11
0
    public static double a(sCoord A_0, sCoord A_1, sCoord A_2)
    {
        sCoord coord = b(A_0, A_1, A_2);
        double num   = a(coord, A_1);
        double num2  = a(coord, A_2);
        double num3  = a(A_1, A_2);

        if (Math.Abs((double)((num + num2) - num3)) < 1E-05)
        {
            return(a(A_0, coord));
        }
        double num4 = a(A_0, A_1);
        double num5 = a(A_0, A_2);

        if (num4 < num5)
        {
            return(num4);
        }
        return(num5);
    }
示例#12
0
 private void f()
 {
     if (!er.j("FollowAroundCorners"))
     {
         this.c.Clear();
     }
     else
     {
         sCoord item = dh.a(this.b, PluginCore.cq.ax.get_Actions());
         if (item.invalid)
         {
             this.c.Clear();
         }
         else
         {
             this.c.Add(item);
             this.e();
         }
     }
 }
示例#13
0
    public void a(sCoord A_0, int A_1)
    {
        int index = A_1;

        if (index < 0)
        {
            index = 0;
        }
        if (index > this.b.Count)
        {
            index = this.b.Count;
        }
        this.b.Insert(index, new d5(A_0));
        if (!this.d())
        {
            PluginCore.cq.l.g();
            PluginCore.cq.ay.ak();
            PluginCore.cq.n.c();
        }
    }
示例#14
0
    private void e()
    {
        int    num;
        sCoord coord = dh.a(PluginCore.cg, PluginCore.cq.ax.get_Actions());

        for (num = this.c.Count - 1; num >= 1; num--)
        {
            if (dh.a(this.c[num], this.c[num - 1], true) < 0.0004)
            {
                this.c.RemoveAt(num - 1);
            }
        }
        for (num = this.c.Count - 1; num >= 1; num--)
        {
            if ((dh.a(coord, this.c[num], this.c[num - 1]) < 0.01) && (dh.a(coord, this.c[num]) < 1.0))
            {
                this.c.RemoveRange(0, num);
                return;
            }
        }
    }
示例#15
0
 public bool l()
 {
     if (this.c)
     {
         this.c = false;
         this.b = dh.a(this.a.aw.get_CharacterFilter().get_Id(), this.a.ax.get_Actions());
     }
     if (dh.a(this.b, dh.a(this.a.aw.get_CharacterFilter().get_Id(), this.a.ax.get_Actions()), false) > 0.01)
     {
         this.c = true;
         return(false);
     }
     this.b = dh.a(this.a.aw.get_CharacterFilter().get_Id(), this.a.ax.get_Actions());
     if (!this.a.g.e())
     {
         if (!PluginCore.cq.n.a(8, 0, true))
         {
             return(true);
         }
         this.a.g.a(this.a.e.b(this.d), PluginCore.cg);
     }
     return(true);
 }
示例#16
0
    public bool a(TextReader A_0)
    {
        this.b();
        if (A_0.ReadLine() != "uTank2 NAV 1.2")
        {
            a5.a(eChatType.Errors, "Nav file version does not match current plugin version.");
            return(false);
        }
        switch (Convert.ToInt32(A_0.ReadLine(), CultureInfo.InvariantCulture))
        {
        case 1:
            this.c = eNavType.Circular;
            break;

        case 2:
            this.c = eNavType.Linear;
            break;

        case 3:
            this.c = eNavType.Target;
            break;

        case 4:
            this.c = eNavType.Once;
            break;
        }
        if (this.c == eNavType.Target)
        {
            this.e = A_0.ReadLine();
            this.d = Convert.ToInt32(A_0.ReadLine(), CultureInfo.InvariantCulture);
            if (this.d != 0)
            {
                this.b.Add(new cg(this.d, PluginCore.cq));
            }
        }
        else
        {
            int num2 = Convert.ToInt32(A_0.ReadLine(), CultureInfo.InvariantCulture);
            for (int i = 0; i < num2; i++)
            {
                ef     ef;
                int    num4  = Convert.ToInt32(A_0.ReadLine(), CultureInfo.InvariantCulture);
                sCoord coord = new sCoord {
                    x = Convert.ToDouble(A_0.ReadLine(), CultureInfo.InvariantCulture),
                    y = Convert.ToDouble(A_0.ReadLine(), CultureInfo.InvariantCulture),
                    z = Convert.ToDouble(A_0.ReadLine(), CultureInfo.InvariantCulture)
                };
                A_0.ReadLine();
                switch (num4)
                {
                case 0:
                    ef = new d5(coord);
                    ef.e(A_0);
                    this.b.Add(ef);
                    break;

                case 1:
                    ef = new fv(coord);
                    ef.e(A_0);
                    this.b.Add(ef);
                    break;

                case 2:
                    ef = new fd(coord);
                    ef.e(A_0);
                    this.b.Add(ef);
                    break;

                case 3:
                    ef = new i(coord);
                    ef.e(A_0);
                    this.b.Add(ef);
                    break;

                case 4:
                    ef = new n(coord);
                    ef.e(A_0);
                    this.b.Add(ef);
                    break;

                case 5:
                    ef = new af(coord);
                    ef.e(A_0);
                    this.b.Add(ef);
                    break;

                case 6:
                    ef = new c2(coord);
                    ef.e(A_0);
                    this.b.Add(ef);
                    break;
                }
            }
        }
        return(true);
    }
示例#17
0
 public fd(sCoord A_0)
 {
     this.c = true;
     this.a = PluginCore.cq;
     this.b = A_0;
 }
示例#18
0
 public d5(sCoord A_0)
 {
     this.b = A_0;
     this.a = PluginCore.cq;
 }
示例#19
0
 public i(sCoord A_0, int A_1) : base(PluginCore.cq)
 {
     this.b = DateTimeOffset.MinValue;
     this.a = A_1;
 }
示例#20
0
 public af(sCoord A_0) : base(PluginCore.cq)
 {
     this.b = "";
     this.c = DateTimeOffset.MinValue;
 }
示例#21
0
 public fv(sCoord A_0, int A_1)
 {
     this.b = A_0;
     this.a = PluginCore.cq;
     this.c = A_1;
 }
示例#22
0
    public static sCoord b(sCoord A_0, sCoord A_1, sCoord A_2)
    {
        bool   flag   = A_1.x == A_2.x;
        bool   flag2  = A_1.y == A_2.y;
        bool   flag3  = A_1.z == A_2.z;
        sCoord coord  = new sCoord(A_0.x, A_0.y, A_0.z);
        sCoord coord2 = new sCoord(A_1.x, A_1.y, A_1.z);
        sCoord coord3 = new sCoord(A_2.x, A_2.y, A_2.z);
        int    num    = 0;

        if ((flag && flag2) && flag3)
        {
            return(new sCoord(A_1.x, A_1.y, A_1.z));
        }
        if (flag2 && flag3)
        {
            return(new sCoord(A_0.x, A_1.y, A_1.z));
        }
        if (flag && flag3)
        {
            return(new sCoord(A_1.x, A_0.y, A_1.z));
        }
        if (flag && flag2)
        {
            return(new sCoord(A_1.x, A_1.y, A_0.z));
        }
        if (flag2)
        {
            double num2 = coord.y;
            coord.y  = coord.x;
            coord.x  = num2;
            num2     = coord2.y;
            coord2.y = coord2.x;
            coord2.x = num2;
            num2     = coord3.y;
            coord3.y = coord3.x;
            coord3.x = num2;
            num      = 1;
        }
        else if (flag3)
        {
            double num3 = coord.z;
            coord.z  = coord.x;
            coord.x  = num3;
            num3     = coord2.z;
            coord2.z = coord2.x;
            coord2.x = num3;
            num3     = coord3.z;
            coord3.z = coord3.x;
            coord3.x = num3;
            num      = 2;
        }
        double num4  = coord2.x - coord3.x;
        double num5  = coord2.y - coord3.y;
        double num6  = coord2.z - coord3.z;
        double num7  = ((coord.x * num4) + (coord.y * num5)) + (coord.z * num6);
        double num8  = -num4 / num5;
        double num9  = coord2.x + (coord2.y * num8);
        double num10 = -num6 / num5;
        double num11 = coord2.z + (coord2.y * num10);
        double z     = (((num4 * ((num8 * num11) - (num9 * num10))) - (num5 * num11)) + (num7 * num10)) / (((num4 * num8) - num5) + (num6 * num10));
        double y     = (num11 - z) / num10;
        double x     = num9 - (num8 * y);

        switch (num)
        {
        case 0:
            return(new sCoord(x, y, z));

        case 1:
            return(new sCoord(y, x, z));
        }
        return(new sCoord(z, y, x));
    }
示例#23
0
 public n(sCoord A_0, string A_1) : base(PluginCore.cq)
 {
     this.a = "";
     this.b = DateTimeOffset.MinValue;
     this.a = A_1;
 }