Beispiel #1
0
                protected void FillData(Icons.ID starticon, Kernel_bin.Stat statatk, Kernel_bin.Stat statdef)
                {
                    byte pos = 0;

                    Contents[0] = statatk;
                    getColor(pos, out byte palette, out Font.ColorID _colorid, out bool unlocked);
                    FF8String name = Kernel_bin.MagicData[Memory.State.Characters[Character].Stat_J[statatk]].Name;

                    if (name.Length == 0)
                    {
                        name = Misc[Items._];
                    }
                    ITEM[pos, 0] = new IGMDataItem_Icon(starticon, new Rectangle(SIZE[pos].X, SIZE[pos].Y, 0, 0), palette);
                    ITEM[pos, 1] = new IGMDataItem_String(name, new Rectangle(SIZE[pos].X + 60, SIZE[pos].Y, 0, 0), color: _colorid);
                    BLANKS[pos]  = !unlocked;
                    for (pos = 1; pos < Count; pos++)
                    {
                        Contents[pos] = statdef + pos - 1;
                        getColor(pos, out palette, out _colorid, out unlocked);
                        name = Kernel_bin.MagicData[Memory.State.Characters[Character].Stat_J[statdef + pos - 1]].Name;
                        if (name.Length == 0)
                        {
                            name = Misc[Items._];
                        }
                        ITEM[pos, 0] = new IGMDataItem_Icon(starticon + 1, new Rectangle(SIZE[pos].X, SIZE[pos].Y, 0, 0), palette);
                        ITEM[pos, 1] = new IGMDataItem_String(name, new Rectangle(SIZE[pos].X + 60, SIZE[pos].Y, 0, 0), color: _colorid);
                        BLANKS[pos]  = !unlocked;
                    }
                }
            public static IGMData_ConfirmChanges Create(FF8String data, Icons.ID title, FF8String opt1, FF8String opt2, Rectangle pos)
            {
                IGMData_ConfirmChanges r = Create <IGMData_ConfirmChanges>(data, title, opt1, opt2, pos);

                r.startcursor = 1;
                return(r);
            }
Beispiel #3
0
            protected void FillData(Icons.ID starticon, Kernel_bin.Stat statatk, Kernel_bin.Stat statdef)
            {
                if (Damageable.GetCharacterData(out Saves.CharacterData c))
                {
                    for (byte pos = 0; pos < Count; pos++)
                    {
                        Kernel_bin.Stat stat = pos != 0 ? statdef + pos - 1 : statatk;
                        Contents[pos] = stat;
                        getColor(pos, out byte palette, out Font.ColorID _colorid, out bool unlocked);
                        FF8String name = GetName(stat);
                        UpdateItems();

                        FF8String GetName(Kernel_bin.Stat key)
                        {
                            FF8String _name = Kernel_bin.MagicData[c.Stat_J[key]].Name;

                            if (_name == null || _name.Length == 0)
                            {
                                _name = Strings.Name._;
                            }
                            return(_name);
                        }

                        void UpdateItems()
                        {
                            ((IGMDataItem.Icon)ITEM[pos, 0]).Data      = starticon + 1;
                            ((IGMDataItem.Icon)ITEM[pos, 0]).Palette   = palette;
                            ((IGMDataItem.Text)ITEM[pos, 1]).Data      = name;
                            ((IGMDataItem.Text)ITEM[pos, 1]).FontColor = _colorid;
                            BLANKS[pos] = !unlocked;
                        }
                    }
                }
            }
 public IGMData_ConfirmDialog(FF8String data, Icons.ID title, FF8String opt1, FF8String opt2, Rectangle?pos, int startcursor = 0) : base(2, 1, new IGMDataItem_Box(data, pos, title), 1, 2)
 {
     this.startcursor = startcursor;
     opt        = new FF8String[Count];
     opt[0]     = opt1;
     opt[1]     = opt2;
     ITEM[0, 0] = new IGMDataItem_String(opt[0], SIZE[0]);
     ITEM[1, 0] = new IGMDataItem_String(opt[1], SIZE[1]);
 }
Beispiel #5
0
 public static IGMData_ConfirmRemMag Create(FF8String data, Icons.ID title, FF8String opt1, FF8String opt2, Rectangle pos) =>
 Create <IGMData_ConfirmRemMag>(data, title, opt1, opt2, pos, 1);
Beispiel #6
0
 public IGMData_ConfirmRemAll(FF8String data, Icons.ID title, FF8String opt1, FF8String opt2, Rectangle pos) : base(data, title, opt1, opt2, pos) => startcursor = 1;
        public static void Update()
        {
            if (Input2.DelayedButton(InputActions.Cancel))
            {
                Memory.Module = OpenVIII.Module.MainMenuDebug;
                return;
            }

            if (Input2.DelayedButton(new InputButton()
            {
                Key = Keys.OemMinus, Trigger = ButtonTrigger.Press
            }) || Input2.DelayedButton(new InputButton()
            {
                Key = Keys.Subtract, Trigger = ButtonTrigger.Press
            }))
            {
                if (zoom - 1 < 1f)
                {
                    zoom = 1f;
                }
                else
                {
                    zoom--;
                }
                Show();
            }

            if (Input2.DelayedButton(new InputButton()
            {
                Key = Keys.OemPlus, Trigger = ButtonTrigger.Press
            }) || Input2.DelayedButton(new InputButton()
            {
                Key = Keys.Add, Trigger = ButtonTrigger.Press
            }))
            {
                if (zoom + 1 > 100f)
                {
                    zoom = 100f;
                }
                else
                {
                    zoom++;
                }
                Show();
            }

            if (Input2.DelayedButton(FF8TextTagKey.Up))
            {
                if (palette <= 0)
                {
                    palette = (int)Memory.Icons.PaletteCount - 1;
                }
                else
                {
                    palette--;
                }
                Show();
            }

            if (Input2.DelayedButton(FF8TextTagKey.Down))
            {
                if (palette >= Memory.Icons.PaletteCount - 1)
                {
                    palette = 0;
                }
                else
                {
                    palette++;
                }
                Show();
            }
            if (Input2.DelayedButton(FF8TextTagKey.Right) || Input2.Button(Keys.PageDown))
            {
                do
                {
                    if (icon >= Enum.GetValues(typeof(Icons.ID)).Cast <Icons.ID>().Max())
                    {
                        icon = 0;
                    }
                    else
                    {
                        icon++;
                    }
                }while (Memory.Icons.GetEntry(icon) == null);
                Show();
            }
            if (Input2.DelayedButton(FF8TextTagKey.Left) || Input2.Button(Keys.PageUp))
            {
                do
                {
                    if (icon <= 0)
                    {
                        icon = Enum.GetValues(typeof(Icons.ID)).Cast <Icons.ID>().Max();
                    }
                    //else if (Memory.Icons.GetEntry(icon) != null && Memory.Icons.GetEntry(icon).GetLoc.Count > 1)
                    //    icon -= Memory.Icons.GetEntry(icon).GetLoc.Count;
                    else
                    {
                        icon--;
                    }
                }while (Memory.Icons.GetEntry(icon) == null);
                Show();
            }
            switch (currentMode)
            {
            case Mode.Initialize:
                //SaveStringToFile();
                currentMode++;
                break;

            case Mode.Draw:
                currentMode++;
                break;

            case Mode.Wait:
                Memory.SuppressDraw = true;
                break;
            }
        }
Beispiel #8
0
 public Iap(Icons.ID id = Icons.ID.None, byte palette = 2)
 {
     this.id      = id;
     this.palette = palette;
 }
Beispiel #9
0
        public static void Update()
        {
            if (Input.Button(Keys.Up))
            {
                if (pallet <= 0)
                {
                    pallet = Icons.PalletCount - 1;
                }
                else
                {
                    pallet--;
                }
                currentMode = Mode.Draw;
            }

            if (Input.Button(Keys.Down))
            {
                if (pallet >= Icons.PalletCount - 1)
                {
                    pallet = 0;
                }
                else
                {
                    pallet++;
                }
                currentMode = Mode.Draw;
            }
            //if ((Input.Button(Keys.Up) || Input.Button(Keys.Down)) && icons.GetEntry(icon) != null && (icons.GetEntry(icon).GetLoc.count > 1))
            //    icon -= (icons.GetEntry(icon).GetLoc.count - 1);
            if (Input.Button(Keys.Right))
            {
                do
                {
                    if (icon >= Enum.GetValues(typeof(Icons.ID)).Cast <Icons.ID>().Max())
                    {
                        icon = 0;
                    }
                    else
                    {
                        icon++;
                    }
                }while (icons.GetEntry(icon) == null);
                currentMode = Mode.Draw;
            }
            if (Input.Button(Keys.Left))
            {
                do
                {
                    if (icon <= 0)
                    {
                        icon = Enum.GetValues(typeof(Icons.ID)).Cast <Icons.ID>().Max();
                    }
                    //else if (icons.GetEntry(icon) != null && icons.GetEntry(icon).GetLoc.count > 1)
                    //    icon -= icons.GetEntry(icon).GetLoc.count;
                    else
                    {
                        icon--;
                    }
                }while (icons.GetEntry(icon) == null);
                currentMode = Mode.Draw;
            }
            switch (currentMode)
            {
            case Mode.Initialize:
                Initialize();
                currentMode++;
                break;

            case Mode.Draw:
                currentMode++;
                break;

            case Mode.Wait:
                Memory.SuppressDraw = true;
                break;
            }
        }
Beispiel #10
0
            protected void FillData <T>(Dictionary <T, byte> oldtotal, Dictionary <T, byte> total, Enum[] availableFlagsarray, Icons.ID starticon, sbyte offset = 0, byte palette = 2, Icons.ID[] skip = null) where T : Enum
            {
                var _nag      = 0;
                var _pos      = 0;
                var endoffset = (sbyte)(offset > 0 ? offset : 0);

                for (sbyte pos = 0; pos < Count - endoffset; pos++)
                {
                    if (skip != null && skip.Contains(starticon + pos))
                    {
                        offset    -= 1;
                        pos       += 1;
                        endoffset -= 1;
                    }
                    ITEM[pos + offset, 0] = new IGMDataItem.Icon {
                        Data = starticon + pos, Pos = new Rectangle(SIZE[pos + offset].X, SIZE[pos + offset].Y, 0, 0), Palette = palette
                    };
                    ITEM[pos + offset, 1] = total[(T)availableFlagsarray[pos + 1]] > 100 ? new IGMDataItem.Icon {
                        Data = Icons.ID.Star, Pos = new Rectangle(SIZE[pos + offset].X + 45, SIZE[pos + offset].Y, 0, 0), Palette = 4
                    } : null;
                    ITEM[pos + offset, 2] = null;
                    ITEM[pos + offset, 3] = new IGMDataItem.Integer
                    {
                        Data =
                            total[(T)availableFlagsarray[pos + 1]] > 100 ?
                            total[(T)availableFlagsarray[pos + 1]] - 100 :
                            total[(T)availableFlagsarray[pos + 1]],
                        Pos     = new Rectangle(SIZE[pos + offset].X + SIZE[pos + offset].Width - 80, SIZE[pos + offset].Y, 0, 0),
                        Palette = 17,
                        NumType = Icons.NumType.SysFntBig,
                        Spaces  = 3
                    };
                    ITEM[pos + offset, 4] = new IGMDataItem.Text()
                    {
                        Data = "%", Pos = new Rectangle(SIZE[pos + offset].X + SIZE[pos + offset].Width - 20, SIZE[pos + offset].Y, 0, 0)
                    };
                    if (oldtotal != null)
                    {
                        if (oldtotal[(T)availableFlagsarray[pos + 1]] > total[(T)availableFlagsarray[pos + 1]])
                        {
                            ((IGMDataItem.Icon)ITEM[pos + offset, 0]).Palette       = 5;
                            ((IGMDataItem.Icon)ITEM[pos + offset, 0]).Faded_Palette = 5;
                            ITEM[pos + offset, 2] = new IGMDataItem.Icon {
                                Data = Icons.ID.Arrow_Down, Pos = new Rectangle(SIZE[pos + offset].X + SIZE[pos + offset].Width - 105, SIZE[pos + offset].Y, 0, 0), Palette = 16
                            };
                            ((IGMDataItem.Integer)ITEM[pos + offset, 3]).FontColor = Font.ColorID.Red;
                            ((IGMDataItem.Text)ITEM[pos + offset, 4]).FontColor    = Font.ColorID.Red;

                            if (++_nag > _pos)
                            {
                                ColorChangeEventListener?.Invoke(this, Font.ColorID.Red);
                            }
                        }
                        else if (oldtotal[(T)availableFlagsarray[pos + 1]] < total[(T)availableFlagsarray[pos + 1]])
                        {
                            ((IGMDataItem.Icon)ITEM[pos + offset, 0]).Palette       = 6;
                            ((IGMDataItem.Icon)ITEM[pos + offset, 0]).Faded_Palette = 6;
                            ITEM[pos + offset, 2] = new IGMDataItem.Icon {
                                Data = Icons.ID.Arrow_Up, Pos = new Rectangle(SIZE[pos + offset].X + SIZE[pos + offset].Width - 105, SIZE[pos + offset].Y, 0, 0), Palette = 17
                            };
                            ((IGMDataItem.Integer)ITEM[pos + offset, 3]).FontColor = Font.ColorID.Yellow;
                            ((IGMDataItem.Text)ITEM[pos + offset, 4]).FontColor    = Font.ColorID.Yellow;

                            if (_nag <= ++_pos)
                            {
                                ColorChangeEventListener?.Invoke(this, Font.ColorID.Yellow);
                            }
                        }
                    }
                }
            }
Beispiel #11
0
 private void SetPalettes(int pos, byte statIconPalette, byte arrowPalette = 2, Icons.ID arrowIconId = Icons.ID.None)
 {
     ((IGMDataItem.Icon)ITEM[pos, 0]).Palette = ((IGMDataItem.Icon)ITEM[pos, 0]).Faded_Palette = statIconPalette;
     ((IGMDataItem.Icon)ITEM[pos, 4]).Data    = arrowIconId;
     ((IGMDataItem.Icon)ITEM[pos, 4]).Palette = arrowPalette;
 }
Beispiel #12
0
 private void SetPalettes(int pos, byte StatIconPalette, byte ArrowPalette = 2, Icons.ID ArrowIconID = Icons.ID.None)
 {
     ((IGMDataItem.Icon)ITEM[pos, 0]).Palette = ((IGMDataItem.Icon)ITEM[pos, 0]).Faded_Palette = StatIconPalette;
     ((IGMDataItem.Icon)ITEM[pos, 4]).Data    = ArrowIconID;
     ((IGMDataItem.Icon)ITEM[pos, 4]).Palette = ArrowPalette;
 }
Beispiel #13
0
 public IGMData_ConfirmChanges(FF8String data, Icons.ID title, FF8String opt1, FF8String opt2, Rectangle pos) : base(data, title, opt1, opt2, pos)
 {
     startcursor = 1;
 }
Beispiel #14
0
                protected void FillData <T>(Dictionary <T, byte> oldtotal, Dictionary <T, byte> total, Enum[] availableFlagsarray, Icons.ID starticon, sbyte offset = 0, byte palette = 2, Icons.ID[] skip = null) where T : Enum
                {
                    int   _nag      = 0;
                    int   _pos      = 0;
                    sbyte endoffset = (sbyte)(offset > 0?offset:0);

                    for (sbyte pos = 0; pos < Count - endoffset; pos++)
                    {
                        if (skip != null && skip.Contains(starticon + pos))
                        {
                            offset    -= 1;
                            pos       += 1;
                            endoffset -= 1;
                        }
                        ITEM[pos + offset, 0] = new IGMDataItem_Icon(starticon + pos, new Rectangle(SIZE[pos + offset].X, SIZE[pos + offset].Y, 0, 0), palette);
                        ITEM[pos + offset, 1] = total[(T)availableFlagsarray[pos + 1]] > 100 ? new IGMDataItem_Icon(Icons.ID.Star, new Rectangle(SIZE[pos + offset].X + 45, SIZE[pos + offset].Y, 0, 0), 4) : null;
                        ITEM[pos + offset, 2] = null;
                        ITEM[pos + offset, 3] = new IGMDataItem_Int(
                            total[(T)availableFlagsarray[pos + 1]] > 100 ?
                            total[(T)availableFlagsarray[pos + 1]] - 100 :
                            total[(T)availableFlagsarray[pos + 1]], new Rectangle(SIZE[pos + offset].X + SIZE[pos + offset].Width - 80, SIZE[pos + offset].Y, 0, 0), 17, numtype: Icons.NumType.sysFntBig, spaces: 3);
                        ITEM[pos + offset, 4] = new IGMDataItem_String("%", new Rectangle(SIZE[pos + offset].X + SIZE[pos + offset].Width - 20, SIZE[pos + offset].Y, 0, 0));
                        if (oldtotal != null)
                        {
                            if (oldtotal[(T)availableFlagsarray[pos + 1]] > total[(T)availableFlagsarray[pos + 1]])
                            {
                                ((IGMDataItem_Icon)ITEM[pos + offset, 0]).Palette       = 5;
                                ((IGMDataItem_Icon)ITEM[pos + offset, 0]).Faded_Palette = 5;
                                ITEM[pos + offset, 2] = new IGMDataItem_Icon(Icons.ID.Arrow_Down, new Rectangle(SIZE[pos + offset].X + SIZE[pos + offset].Width - 105, SIZE[pos + offset].Y, 0, 0), 16);
                                ((IGMDataItem_Int)ITEM[pos + offset, 3]).Colorid    = Font.ColorID.Red;
                                ((IGMDataItem_String)ITEM[pos + offset, 4]).Colorid = Font.ColorID.Red;

                                //{
                                //    ((IGMDataItem_Icon)Slots.ITEM[Slots.CURSOR_SELECT, 0]).Palette = 5;
                                //    ((IGMDataItem_Icon)Slots.ITEM[Slots.CURSOR_SELECT, 0]).Faded_Palette = 5;
                                //    ((IGMDataItem_String)Slots.ITEM[Slots.CURSOR_SELECT, 1]).Colorid = Font.ColorID.Red;
                                //}
                                if (++_nag > _pos)
                                {
                                    ColorChangeEventListener?.Invoke(this, Font.ColorID.Red);
                                }
                            }
                            else if (oldtotal[(T)availableFlagsarray[pos + 1]] < total[(T)availableFlagsarray[pos + 1]])
                            {
                                ((IGMDataItem_Icon)ITEM[pos + offset, 0]).Palette       = 6;
                                ((IGMDataItem_Icon)ITEM[pos + offset, 0]).Faded_Palette = 6;
                                ITEM[pos + offset, 2] = new IGMDataItem_Icon(Icons.ID.Arrow_Up, new Rectangle(SIZE[pos + offset].X + SIZE[pos + offset].Width - 105, SIZE[pos + offset].Y, 0, 0), 17);
                                ((IGMDataItem_Int)ITEM[pos + offset, 3]).Colorid    = Font.ColorID.Yellow;
                                ((IGMDataItem_String)ITEM[pos + offset, 4]).Colorid = Font.ColorID.Yellow;

                                //{
                                //    ((IGMDataItem_Icon)Slots.ITEM[Slots.CURSOR_SELECT, 0]).Palette = 6;
                                //    ((IGMDataItem_Icon)Slots.ITEM[Slots.CURSOR_SELECT, 0]).Faded_Palette = 6;
                                //    ((IGMDataItem_String)Slots.ITEM[Slots.CURSOR_SELECT, 1]).Colorid = Font.ColorID.Yellow;
                                //}
                                if (_nag <= ++_pos)
                                {
                                    ColorChangeEventListener?.Invoke(this, Font.ColorID.Yellow);
                                }
                            }
                        }
                    }
                }