Пример #1
0
        private static void UseItems(Obj_AI_Base target)
        {
            var PlayerServerPosition = Player.ServerPosition.To2D();
            var targetServerPosition = target.ServerPosition.To2D();

            if (HDR.IsReady() && Vector2.Distance(PlayerServerPosition, targetServerPosition) <= HDR.Range)
            {
                HDR.Cast();
            }
            if (TIA.IsReady() && Vector2.Distance(PlayerServerPosition, targetServerPosition) <= TIA.Range)
            {
                TIA.Cast();
            }
            if (BKR.IsReady() && Vector2.Distance(PlayerServerPosition, targetServerPosition) <= BKR.Range)
            {
                BKR.Cast(target);
            }
            if (YOU.IsReady() && Vector2.Distance(PlayerServerPosition, targetServerPosition) <= YOU.Range)
            {
                YOU.Cast(target);
            }
            if (BWC.IsReady() && Vector2.Distance(PlayerServerPosition, targetServerPosition) <= BWC.Range)
            {
                BWC.Cast(target);
            }
        }
Пример #2
0
        private static void JungleClear()
        {
            var pos = new List <Vector2>();
            List <Obj_AI_Base> mobs = MinionManager.GetMinions(
                Player.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.Health);

            foreach (Obj_AI_Base minion in mobs)
            {
                if (minion != null)
                {
                    pos.Add(minion.Position.To2D());
                }
                // Orbwalker.SetAttacks(!(Q.IsReady() || W.IsReady() || E.IsReady()) || TIA.IsReady() || HDR.IsReady());
                // Normal Farms
                if (Q.IsReady() && minion.IsValidTarget() && Vector3.Distance(Player.ServerPosition, minion.ServerPosition) <= Q.Range &&
                    Config.Item("UseQFarm").GetValue <bool>())
                {
                    Orbwalker.SetAttack(false);
                    Q.Cast(minion);
                    Orbwalker.SetAttack(true);
                }
                if (W.IsReady() && minion.IsValidTarget() && Wnorm && Vector3.Distance(Player.ServerPosition, minion.ServerPosition) <= W.Range &&
                    Config.Item("UseWFarm").GetValue <bool>() && (pos.Any()))
                {
                    MinionManager.FarmLocation pred = MinionManager.GetBestLineFarmLocation(pos, 70, 1025);

                    W.Cast(pred.Position);
                }
                if (E.IsReady() && minion.IsValidTarget() && Vector3.Distance(Player.ServerPosition, minion.ServerPosition) <= E.Range &&
                    Config.Item("UseEFarm").GetValue <bool>() && (pos.Any()))
                {
                    MinionManager.FarmLocation pred = MinionManager.GetBestCircularFarmLocation(pos, 300, 600);
                    E.Cast(pred.Position);
                }
                //Evolved

                if (W.IsReady() && minion.IsValidTarget() && Wevolved && Vector3.Distance(Player.ServerPosition, minion.ServerPosition) <= WE.Range &&
                    Config.Item("UseWFarm").GetValue <bool>() && (pos.Any()))
                {
                    MinionManager.FarmLocation pred = MinionManager.GetBestLineFarmLocation(pos, 70, 1025);

                    W.Cast(pred.Position);
                }
                if (Config.Item("UseItems").GetValue <bool>())
                {
                    if (HDR.IsReady() && Vector3.Distance(Player.ServerPosition, minion.ServerPosition) <= HDR.Range)
                    {
                        HDR.Cast();
                        // Items.UseItem(3077, ObjectManager.Player);
                    }
                    if (TIA.IsReady() && Vector3.Distance(Player.ServerPosition, minion.ServerPosition) <= TIA.Range)
                    {
                        TIA.Cast();
                    }
                }
            }
        }
Пример #3
0
    public SystemBus()
    {
        // create the bus devices
        cartridge = new Cartridge();
        pia       = new PIA();
        ram       = new RAM();
        cpu       = new CPU(this);
        tia       = new TIA(cpu);

        // create the chain of command for Read and Write
        DeviceInterface = new BusDeviceInterface(cartridge, CARTRIDGE_SELECT_MASK, CARTRIDGE_CHIP_SELECT);
        BusDeviceInterface PIAInterface = new BusDeviceInterface(pia, PIA_SELECT_MASK, PIA_CHIP_SELECT);
        BusDeviceInterface RAMInterface = new BusDeviceInterface(ram, RAM_SELECT_MASK, RAM_CHIP_SELECT);
        BusDeviceInterface TIAInterface = new BusDeviceInterface(tia, TIA_SELECT_MASK, TIA_CHIP_SELECT);

        DeviceInterface.SetNext(PIAInterface);
        PIAInterface.SetNext(RAMInterface);
        RAMInterface.SetNext(TIAInterface);
    }
Пример #4
0
        public Machine2600(Cart cart, ILogger logger, int slines, int startl, int fHZ, int sRate, int[] p)
             : base(logger, slines, startl, fHZ, sRate, p, 160)
        {
            Mem = new AddressSpace(this, 13, 6);  // 2600: 13bit, 64byte pages

            CPU = new M6502(this, 1);

            TIA = new TIA(this);
            for (ushort i = 0; i < 0x1000; i += 0x100)
            {
                Mem.Map(i, 0x0080, TIA);
            }

            PIA = new PIA(this);
            for (ushort i = 0x0080; i < 0x1000; i += 0x100)
            {
                Mem.Map(i, 0x0080, PIA);
            }

            Cart = cart;
            Mem.Map(0x1000, 0x1000, Cart);
        }
Пример #5
0
        public Machine2600(Cart cart, ILogger logger, int slines, int startl, int fHZ, int sRate, int[] p)
            : base(logger, slines, startl, fHZ, sRate, p, 160)
        {
            Mem = new AddressSpace(this, 13, 6);  // 2600: 13bit, 64byte pages

            CPU = new M6502(this, 1);

            TIA = new TIA(this);
            for (ushort i = 0; i < 0x1000; i += 0x100)
            {
                Mem.Map(i, 0x0080, TIA);
            }

            PIA = new PIA(this);
            for (ushort i = 0x0080; i < 0x1000; i += 0x100)
            {
                Mem.Map(i, 0x0080, PIA);
            }

            Cart = cart;
            Mem.Map(0x1000, 0x1000, Cart);
        }
Пример #6
0
        public Machine2600(DeserializationContext input, int[] palette) : base(input, palette)
        {
            input.CheckVersion(1);

            Mem = input.ReadAddressSpace(this, 13, 6);  // 2600: 13bit, 64byte pages

            CPU = input.ReadM6502(this, 1);

            TIA = input.ReadTIA(this);
            for (ushort i = 0; i < 0x1000; i += 0x100)
            {
                Mem.Map(i, 0x0080, TIA);
            }

            PIA = input.ReadPIA(this);
            for (ushort i = 0x0080; i < 0x1000; i += 0x100)
            {
                Mem.Map(i, 0x0080, PIA);
            }

            Cart = input.ReadCart(this);
            Mem.Map(0x1000, 0x1000, Cart);
        }
Пример #7
0
        public Machine2600(DeserializationContext input, int[] palette) : base(input, palette)
        {
            input.CheckVersion(1);

            Mem = input.ReadAddressSpace(this, 13, 6);  // 2600: 13bit, 64byte pages

            CPU = input.ReadM6502(this, 1);

            TIA = input.ReadTIA(this);
            for (ushort i = 0; i < 0x1000; i += 0x100)
            {
                Mem.Map(i, 0x0080, TIA);
            }

            PIA = input.ReadPIA(this);
            for (ushort i = 0x0080; i < 0x1000; i += 0x100)
            {
                Mem.Map(i, 0x0080, PIA);
            }

            Cart = input.ReadCart(this);
            Mem.Map(0x1000, 0x1000, Cart);
        }
Пример #8
0
        private static void KillSteal()
        {
            Obj_AI_Hero target = HeroList
                                 .Where(x => x.IsValidTarget() && x.Distance(Player.Position) < 1000f && !x.IsZombie)
                                 .MinOrDefault(x => x.Health);

            var usePacket = Config.Item("usePackets").GetValue <bool>();

            if (target != null)
            {
                if (Config.Item("UseIgnite").GetValue <bool>() && IgniteSlot != SpellSlot.Unknown &&
                    Player.Spellbook.CanUseSpell(IgniteSlot) == SpellState.Ready)
                {
                    double igniteDmg = Player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);
                    if (igniteDmg > target.Health)
                    {
                        Player.Spellbook.CastSpell(IgniteSlot, target);
                        return;
                    }
                }

                if (Config.Item("autoescape").GetValue <bool>() && !ishealthy())
                {
                    var ally =
                        HeroList.Where(h => h.HealthPercent > 50 && h.CountEnemiesInRange(400) == 0 && !PointUnderEnemyTurret(h.ServerPosition)).FirstOrDefault();
                    if (ally != null && ally.IsValid)
                    {
                        E.Cast(ally.ServerPosition);
                        return;
                    }
                    var objAiturret = EnemyTurretPositions.Where(x => Vector3.Distance(Player.ServerPosition, x) <= 900f);
                    if (objAiturret.Any() || Player.CountEnemiesInRange(500) >= 1)
                    {
                        var bestposition = Player.ServerPosition.Extend(NexusPosition, E.Range);
                        E.Cast(bestposition, usePacket);
                        return;
                    }
                }

                if (Config.Item("UseQKs").GetValue <bool>() && Q.IsReady() &&
                    Vector3.Distance(Player.ServerPosition, target.ServerPosition) <= Q.Range)
                {
                    double QDmg = GetQDamage(target);
                    if (!Jumping && target.Health <= QDmg)
                    {
                        Q.Cast(target, usePacket);
                        return;
                    }
                }

                if (Config.Item("UseEKs").GetValue <bool>() && E.IsReady() &&
                    Vector3.Distance(Player.ServerPosition, target.ServerPosition) <= E.Range && Vector3.Distance(Player.ServerPosition, target.ServerPosition) > Q.Range)
                {
                    double EDmg = Player.GetSpellDamage(target, SpellSlot.E);
                    if (!Jumping && target.Health < EDmg)
                    {
                        Utility.DelayAction.Add(
                            Game.Ping + Config.Item("EDelay").GetValue <Slider>().Value, delegate
                        {
                            PredictionOutput pred = E.GetPrediction(target);
                            if (target.IsValid && !target.IsDead)
                            {
                                E.Cast(pred.CastPosition, usePacket);
                                return;
                            }
                        });
                    }
                }

                if (W.IsReady() && Wnorm && Vector3.Distance(Player.ServerPosition, target.ServerPosition) <= W.Range &&
                    Config.Item("UseWKs").GetValue <bool>())
                {
                    double WDmg = Player.GetSpellDamage(target, SpellSlot.W);
                    if (target.Health <= WDmg)
                    {
                        var pred = W.GetPrediction(target);
                        if (pred.Hitchance >= HitChance.Medium)
                        {
                            W.Cast(pred.CastPosition);
                            return;
                        }
                    }
                }

                if (W.IsReady() && Wevolved &&
                    Vector3.Distance(Player.ServerPosition, target.ServerPosition) <= W.Range &&
                    Config.Item("UseWKs").GetValue <bool>())
                {
                    double           WDmg = Player.GetSpellDamage(target, SpellSlot.W);
                    PredictionOutput pred = W.GetPrediction(target);
                    if (target.Health <= WDmg && pred.Hitchance > HitChance.Medium)
                    {
                        CastWE(target, pred.UnitPosition.To2D());
                        return;
                    }

                    if (pred.Hitchance >= HitChance.Collision)
                    {
                        List <Obj_AI_Base> PCollision = pred.CollisionObjects;
                        var x =
                            PCollision.Where(PredCollisionChar => PredCollisionChar.Distance(target) <= 30)
                            .FirstOrDefault();
                        if (x != null)
                        {
                            W.Cast(x.Position, Config.Item("usePackets").GetValue <bool>());
                            return;
                        }
                    }
                }


                // Mixed's EQ KS
                if (Q.IsReady() && E.IsReady() &&
                    Vector3.Distance(Player.ServerPosition, target.ServerPosition) <= E.Range + Q.Range &&
                    Config.Item("UseEQKs").GetValue <bool>())
                {
                    double QDmg = GetQDamage(target);
                    double EDmg = Player.GetSpellDamage(target, SpellSlot.E);
                    if ((target.Health <= QDmg + EDmg))
                    {
                        Utility.DelayAction.Add(Config.Item("EDelay").GetValue <Slider>().Value, delegate
                        {
                            PredictionOutput pred = E.GetPrediction(target);
                            if (target.IsValidTarget() && !target.IsZombie)
                            {
                                E.Cast(pred.CastPosition);
                                return;
                            }
                        });
                    }
                }

                // MIXED EW KS
                if (W.IsReady() && E.IsReady() && Wnorm &&
                    Vector3.Distance(Player.ServerPosition, target.ServerPosition) <= W.Range + E.Range &&
                    Config.Item("UseEWKs").GetValue <bool>())
                {
                    double WDmg = Player.GetSpellDamage(target, SpellSlot.W);
                    if (target.Health <= WDmg)
                    {
                        Utility.DelayAction.Add(Config.Item("EDelay").GetValue <Slider>().Value, delegate
                        {
                            PredictionOutput pred = E.GetPrediction(target);
                            if (target.IsValid && !target.IsDead)
                            {
                                E.Cast(pred.CastPosition);
                                return;
                            }
                        });
                    }
                }


                if (TIA.IsReady() &&
                    Vector2.Distance(Player.ServerPosition.To2D(), target.ServerPosition.To2D()) <= TIA.Range &&
                    Config.Item("UseTiaKs").GetValue <bool>())
                {
                    double tiamatdmg = Player.GetItemDamage(target, Damage.DamageItems.Tiamat);
                    if (target.Health <= tiamatdmg)
                    {
                        TIA.Cast();
                        return;
                    }
                }
                if (HDR.IsReady() &&
                    Vector2.Distance(Player.ServerPosition.To2D(), target.ServerPosition.To2D()) <= HDR.Range &&
                    Config.Item("UseTiaKs").GetValue <bool>())
                {
                    double hydradmg = Player.GetItemDamage(target, Damage.DamageItems.Hydra);
                    if (target.Health <= hydradmg)
                    {
                        HDR.Cast();
                        return;
                    }
                }
            }
        }
Пример #9
0
        private static void OnWaveClear()
        {
            List <Obj_AI_Base> allMinions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range);

            if (Config.Item("UseQFarm").GetValue <bool>() && Q.IsReady())
            {
                foreach (Obj_AI_Base minion in
                         allMinions.Where(
                             minion =>
                             minion.IsValidTarget() &&
                             HealthPrediction.GetHealthPrediction(
                                 minion, (int)(Vector3.Distance(Player.ServerPosition, minion.ServerPosition) * 1000 / 1400)) <
                             0.75 * Player.GetSpellDamage(minion, SpellSlot.Q)))
                {
                    if (Vector3.Distance(minion.ServerPosition, ObjectManager.Player.ServerPosition) >
                        Orbwalking.GetRealAutoAttackRange(ObjectManager.Player) && Vector3.Distance(Player.ServerPosition, minion.ServerPosition) <= Q.Range)
                    {
                        Orbwalker.SetAttack(false);
                        Q.CastOnUnit(minion, false);
                        Orbwalker.SetAttack(true);
                        return;
                    }
                }
            }
            if (Config.Item("UseWFarm").GetValue <bool>() && W.IsReady())
            {
                MinionManager.FarmLocation farmLocation =
                    MinionManager.GetBestCircularFarmLocation(
                        MinionManager.GetMinions(Player.Position, W.Range)
                        .Select(minion => minion.ServerPosition.To2D())
                        .ToList(), W.Width, W.Range);
                if (Wnorm && !Wevolved)
                {
                    if (Vector2.Distance(Player.ServerPosition.To2D(), farmLocation.Position) <= W.Range)
                    {
                        W.Cast(farmLocation.Position);
                    }
                }
                if (Wevolved && !Wnorm)
                {
                    if (Vector2.Distance(Player.ServerPosition.To2D(), farmLocation.Position) <= WE.Range)
                    {
                        W.Cast(farmLocation.Position);
                    }
                }
            }

            if (Config.Item("UseEFarm").GetValue <bool>() && E.IsReady())
            {
                MinionManager.FarmLocation farmLocation =
                    MinionManager.GetBestCircularFarmLocation(
                        MinionManager.GetMinions(Player.Position, E.Range)
                        .Select(minion => minion.ServerPosition.To2D())
                        .ToList(), E.Width, E.Range);

                if (Vector2.Distance(Player.ServerPosition.To2D(), farmLocation.Position) <= W.Range)
                {
                    E.Cast(farmLocation.Position);
                }
            }


            if (Config.Item("UseItemsFarm").GetValue <bool>())
            {
                MinionManager.FarmLocation farmLocation =
                    MinionManager.GetBestCircularFarmLocation(
                        MinionManager.GetMinions(Player.Position, HDR.Range)
                        .Select(minion => minion.ServerPosition.To2D())
                        .ToList(), HDR.Range, HDR.Range);

                if (HDR.IsReady() && Vector2.Distance(Player.ServerPosition.To2D(), farmLocation.Position) <= HDR.Range && farmLocation.MinionsHit >= 2)
                {
                    Items.UseItem(3074, ObjectManager.Player);
                }
                if (TIA.IsReady() && Vector2.Distance(Player.ServerPosition.To2D(), farmLocation.Position) <= TIA.Range && farmLocation.MinionsHit >= 2)
                {
                    Items.UseItem(3077, ObjectManager.Player);
                }
            }
        }
Пример #10
0
 private static bool tstCx(int i, TIA.CxFlags cxf1, TIA.CxFlags cxf2)
 {
     int f1 = (int) cxf1;
     int f2 = (int) cxf2;
     return ((i & (int)f1) != 0) && ((i & (int)f2) != 0);
 }
Пример #11
0
        public TiaDebugger(Compound gui, TIA t)
            : base(gui, new Rectangle(32, 32, 488, 300), new DisplayCaption("TIA Registers"), new List <Atom>())
        {
            tia = t;

            ColorBK = new Surface(new Size(16, 16));
            ColorPF = new Surface(new Size(16, 16));
            ColorP0 = new Surface(new Size(16, 16));
            ColorP1 = new Surface(new Size(16, 16));

            Add(PosP0t = new Lable(gui, new Rectangle(64, 140, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(PosP1t = new Lable(gui, new Rectangle(64, 160, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(PosBLt = new Lable(gui, new Rectangle(64, 180, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(PosM0t = new Lable(gui, new Rectangle(64, 200, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(PosM1t = new Lable(gui, new Rectangle(64, 220, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(HPost  = new Lable(gui, new Rectangle(64, 40, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(VPost  = new Lable(gui, new Rectangle(96, 40, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));

            Add(P0Del = new Lable(gui, new Rectangle(128, 140, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(P1Del = new Lable(gui, new Rectangle(128, 160, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(BLDel = new Lable(gui, new Rectangle(128, 180, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));

            GRPF  = new Surface(new Size(320, 16));
            GRP0  = new Surface(new Size(128, 16));
            GRP1  = new Surface(new Size(128, 16));
            GRP0A = new Surface(new Size(128, 16));
            GRP1A = new Surface(new Size(128, 16));

            GRBL  = new Surface(new Size(16, 16));
            GRM0  = new Surface(new Size(16, 16));
            GRM1  = new Surface(new Size(16, 16));
            GRBLA = new Surface(new Size(16, 16));

            ScanLine = new Surface(new Size(456, 4));

            for (int i = 0; i < 136; i++)
            {
                Rectangle r = new Rectangle(i, 0, 0, 3);

                ScanLine.Fill(r, Color.FromArgb(i * 255 / 136, i * 255 / 136, i * 255 / 136));
            }

            Add(moveP0 = new Lable(gui, new Rectangle(96, 140, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(moveP1 = new Lable(gui, new Rectangle(96, 160, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(moveBL = new Lable(gui, new Rectangle(96, 180, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(moveM0 = new Lable(gui, new Rectangle(96, 200, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(moveM1 = new Lable(gui, new Rectangle(96, 220, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));

            Add(new Lable(gui, new Rectangle(0, 80, 64, 48), "BK", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(new Lable(gui, new Rectangle(64, 80, 64, 48), "PF", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(new StaticImage(gui, new Rectangle(32, 80, 0, 0), ColorBK));
            Add(new StaticImage(gui, new Rectangle(32 + 64, 80, 0, 0), ColorPF));
            Add(new StaticImage(gui, new Rectangle(64 + 64, 80, 0, 0), GRPF));
            Add(new StaticImage(gui, new Rectangle(360 + 16, 204 - 8 - 32, 0, 0), matrix));
            Add(new Lable(gui, new Rectangle(0, 140, 64, 48), "P0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(new StaticImage(gui, new Rectangle(32, 140, 0, 0), ColorP0));
            Add(new StaticImage(gui, new Rectangle(96 + 64, 140, 0, 0), GRP0));
            Add(new StaticImage(gui, new Rectangle(240 + 64, 140, 0, 0), GRP0A));
            Add(new Lable(gui, new Rectangle(0, 160, 64, 48), "P1", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(new StaticImage(gui, new Rectangle(32, 160, 0, 0), ColorP1));
            Add(new StaticImage(gui, new Rectangle(96 + 64, 160, 0, 0), GRP1));
            Add(new StaticImage(gui, new Rectangle(240 + 64, 160, 0, 0), GRP1A));
            Add(new Lable(gui, new Rectangle(0, 180, 64, 48), "BL", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(new StaticImage(gui, new Rectangle(96 + 64, 180, 0, 0), GRBL));
            Add(new StaticImage(gui, new Rectangle(128 + 64, 180, 0, 0), GRBLA));
            Add(new Lable(gui, new Rectangle(0, 200, 64, 48), "M0", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(new StaticImage(gui, new Rectangle(96 + 64, 200, 0, 0), GRM0));
            Add(new Lable(gui, new Rectangle(0, 220, 64, 48), "M1", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(new StaticImage(gui, new Rectangle(96 + 64, 220, 0, 0), GRM1));
            Add(new Lable(gui, new Rectangle(0, 40, 64, 48), "Raster", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(new Lable(gui, new Rectangle(128, 120, 64, 48), "Del", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(new Lable(gui, new Rectangle(96, 120, 64, 48), "HM", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(new Lable(gui, new Rectangle(64, 120, 64, 48), "Pos", Alignment.LEFT, Color.White, DisplaySettings.captionFont));
            Add(new StaticImage(gui, new Rectangle(8, 16, 0, 0), ScanLine));
            Add(PFModes = new Lable(gui, new Rectangle(144, 80, 200, 32), "", Alignment.LEFT, Color.FromArgb(160, 160, 160), DisplaySettings.captionFont));
        }