Beispiel #1
0
        public FF8String GetName(Faces.ID id, Saves.Data d = null)
        {
            if (d == null)
            {
                d = Memory.State;
            }
            switch (id)
            {
            case Faces.ID.Squall_Leonhart:
                return(d.Squallsname ?? Read(FileID.MNGRP, 2, 92));

            case Faces.ID.Rinoa_Heartilly:
                return(d.Rinoasname ?? Read(FileID.MNGRP, 2, 93));

            case Faces.ID.Angelo:
                return(d.Angelosname ?? Read(FileID.MNGRP, 2, 94));

            case Faces.ID.Boko:
                return(d.Bokosname ?? Read(FileID.MNGRP, 2, 135));

            case Faces.ID.Zell_Dincht:
            case Faces.ID.Irvine_Kinneas:
            case Faces.ID.Quistis_Trepe:
            case Faces.ID.Selphie_Tilmitt:
            case Faces.ID.Seifer_Almasy:
            case Faces.ID.Edea_Kramer:
            case Faces.ID.Laguna_Loire:
            case Faces.ID.Kiros_Seagill:
            case Faces.ID.Ward_Zabac:
                return(Read(FileID.KERNEL, 6, (int)id));

            case Faces.ID.Quezacotl:
            case Faces.ID.Shiva:
            case Faces.ID.Ifrit:
            case Faces.ID.Siren:
            case Faces.ID.Brothers:
            case Faces.ID.Diablos:
            case Faces.ID.Carbuncle:
            case Faces.ID.Leviathan:
            case Faces.ID.Pandemona:
            case Faces.ID.Cerberus:
            case Faces.ID.Alexander:
            case Faces.ID.Doomtrain:
            case Faces.ID.Bahamut:
            case Faces.ID.Cactuar:
            case Faces.ID.Tonberry:
            case Faces.ID.Eden:
                return(d.GFs[id.ToGFs()].Name ?? Read(FileID.MNGRP, 2, 95 + (int)(id.ToGFs())));

            case Faces.ID.Griever:
                return(d.Grieversname ?? Read(FileID.MNGRP, 2, 135));

            case Faces.ID.MiniMog:
                return(Read(FileID.KERNEL, 0, 72));    // also in KERNEL, 12, 36

            default:
                return(new FF8String());
            }
        }
Beispiel #2
0
            private Damageable GetDamagable(Faces.ID id)
            {
                GFs        gf = id.ToGFs();
                Characters c  = id.ToCharacters();

                if (c == OpenVIII.Characters.Blank)
                {
                    return(GetDamagable(gf));
                }
                else
                {
                    return(GetDamagable(c));
                }
            }
Beispiel #3
0
            //public Damageable this[Damageable damageable]
            /// <summary>
            /// return -1 on error
            /// </summary>
            /// <param name="id"></param>
            /// <param name="character"></param>
            /// <param name="gf"></param>
            /// <returns></returns>
            public int CurrentHP(Faces.ID id = Faces.ID.Blank, Characters character = OpenVIII.Characters.Blank, GFs gf = OpenVIII.GFs.Blank)
            {
                if (character == OpenVIII.Characters.Blank)
                {
                    character = id.ToCharacters();
                }
                if (gf == OpenVIII.GFs.Blank)
                {
                    gf = id.ToGFs();
                }
                int hp = (Characters.ContainsKey(character) ? Characters[character].CurrentHP() : -1);

                hp = (hp < 0 && GFs.ContainsKey(gf) ? GFs[gf].CurrentHP() : hp);
                return(hp);
            }
Beispiel #4
0
 private void Fill(Faces.ID e)
 {
     if ((e == Faces.ID.Blank && Target != Faces.ID.Blank) || All)
     {
         Target = e;
         foreach (IGMDataItem i in ITEM)
         {
             i?.Hide();
         }
     }
     else
     {
         if (Target == Faces.ID.Blank)
         {
             foreach (IGMDataItem i in ITEM)
             {
                 i?.Show();
             }
         }
         Target = e;
         Characters character = e.ToCharacters();
         GFs        gf        = e.ToGFs();
         if (character != Characters.Blank || (gf != GFs.Blank && gf != GFs.All))
         {
             ITEM[0, 0] = new IGMDataItem_String(Misc[Items.LV], new Rectangle(SIZE[0].X, SIZE[0].Y, 0, 0));
             ITEM[1, 0] = new IGMDataItem_String(Misc[Items.HP], new Rectangle(SIZE[1].X, SIZE[1].Y, 0, 0));
             ITEM[1, 2] = new IGMDataItem_String(Misc[Items.ForwardSlash], new Rectangle(SIZE[1].X + 155, SIZE[1].Y, 0, 0));
         }
         if (Memory.State.Characters != null && character != Characters.Blank)
         {
             ITEM[0, 1] = new IGMDataItem_Int(Memory.State.Characters[character].Level, new Rectangle(SIZE[0].X + 35, SIZE[0].Y, 0, 0), 13, numtype: Icons.NumType.sysFntBig, padding: 1, spaces: 6);
             ITEM[0, 2] = Memory.State.Party != null && Memory.State.Party.Contains(character)
                 ? new IGMDataItem_Icon(Icons.ID.InParty, new Rectangle(SIZE[0].X + 155, SIZE[0].Y, 0, 0), 6)
                 : null;
             ITEM[1, 1] = new IGMDataItem_Int(Memory.State.Characters[character].CurrentHP(character), new Rectangle(SIZE[1].X + 35, SIZE[1].Y, 0, 0), 13, numtype: Icons.NumType.sysFntBig, padding: 1, spaces: 6);
             ITEM[1, 3] = new IGMDataItem_Int(Memory.State.Characters[character].MaxHP(character), new Rectangle(SIZE[1].X + 155, SIZE[1].Y, 0, 0), 13, numtype: Icons.NumType.sysFntBig, padding: 1, spaces: 5);
         }
         if (Memory.State.GFs != null && (gf != GFs.Blank && gf != GFs.All))
         {
             ITEM[0, 1] = new IGMDataItem_Int(Memory.State.GFs[gf].Level, new Rectangle(SIZE[0].X + 35, SIZE[0].Y, 0, 0), 13, numtype: Icons.NumType.sysFntBig, padding: 1, spaces: 6);
             ITEM[0, 2] = null;
             ITEM[1, 1] = new IGMDataItem_Int(Memory.State.GFs[gf].CurrentHP(), new Rectangle(SIZE[1].X + 35, SIZE[1].Y, 0, 0), 13, numtype: Icons.NumType.sysFntBig, padding: 1, spaces: 6);
             ITEM[1, 3] = new IGMDataItem_Int(Memory.State.GFs[gf].MaxHP(), new Rectangle(SIZE[1].X + 155, SIZE[1].Y, 0, 0), 13, numtype: Icons.NumType.sysFntBig, padding: 1, spaces: 5);
         }
     }
 }
Beispiel #5
0
            private void Fill(Faces.ID e)
            {
                if ((e == Faces.ID.Blank && _target != Faces.ID.Blank) || All)
                {
                    _target = e;
                    foreach (var i in ITEM)
                    {
                        i?.Hide();
                    }
                }
                else
                {
                    if (_target == Faces.ID.Blank)
                    {
                        foreach (var i in ITEM)
                        {
                            i?.Show();
                        }
                    }
                    _target = e;
                    var character = e.ToCharacters();
                    var gf        = e.ToGFs();
                    if (character != Characters.Blank || (gf != GFs.Blank && gf != GFs.All))
                    {
                        ITEM[0, 0] = new IGMDataItem.Text {
                            Data = Strings.Name.LV, Pos = new Rectangle(SIZE[0].X, SIZE[0].Y, 0, 0)
                        };
                        ITEM[1, 0] = new IGMDataItem.Text {
                            Data = Strings.Name.HP, Pos = new Rectangle(SIZE[1].X, SIZE[1].Y, 0, 0)
                        };
                        ITEM[1, 2] = new IGMDataItem.Text {
                            Data = Strings.Name.ForwardSlash, Pos = new Rectangle(SIZE[1].X + 155, SIZE[1].Y, 0, 0)
                        };
                    }
                    if (Memory.State.Characters && character != Characters.Blank)
                    {
                        ITEM[0, 1] = new IGMDataItem.Integer {
                            Data = Memory.State[character].Level, Pos = new Rectangle(SIZE[0].X + 35, SIZE[0].Y, 0, 0), Palette = 13, NumType = Icons.NumType.SysFntBig, Padding = 1, Spaces = 6
                        };
                        ITEM[0, 2] = Memory.State.Party != null && Memory.State.Party.Contains(character)
                            ? new IGMDataItem.Icon {
                            Data = Icons.ID.InParty, Pos = new Rectangle(SIZE[0].X + 155, SIZE[0].Y, 0, 0), Palette = 6
                        }
                            : null;
                        ITEM[1, 1] = new IGMDataItem.Integer {
                            Data = Memory.State[character].CurrentHP(character), Pos = new Rectangle(SIZE[1].X + 35, SIZE[1].Y, 0, 0), Palette = 13, NumType = Icons.NumType.SysFntBig, Padding = 1, Spaces = 6
                        };
                        ITEM[1, 3] = new IGMDataItem.Integer {
                            Data = Memory.State[character].MaxHP(character), Pos = new Rectangle(SIZE[1].X + 155, SIZE[1].Y, 0, 0), Palette = 13, NumType = Icons.NumType.SysFntBig, Padding = 1, Spaces = 5
                        };
                    }

                    if (Memory.State.GFs == null || (gf == GFs.Blank || gf == GFs.All))
                    {
                        return;
                    }
                    ITEM[0, 1] = new IGMDataItem.Integer {
                        Data = Memory.State.GFs[gf].Level, Pos = new Rectangle(SIZE[0].X + 35, SIZE[0].Y, 0, 0), Palette = 13, NumType = Icons.NumType.SysFntBig, Padding = 1, Spaces = 6
                    };
                    ITEM[0, 2] = null;
                    ITEM[1, 1] = new IGMDataItem.Integer {
                        Data = Memory.State.GFs[gf].CurrentHP(), Pos = new Rectangle(SIZE[1].X + 35, SIZE[1].Y, 0, 0), Palette = 13, NumType = Icons.NumType.SysFntBig, Padding = 1, Spaces = 6
                    };
                    ITEM[1, 3] = new IGMDataItem.Integer {
                        Data = Memory.State.GFs[gf].MaxHP(), Pos = new Rectangle(SIZE[1].X + 155, SIZE[1].Y, 0, 0), Palette = 13, NumType = Icons.NumType.SysFntBig, Padding = 1, Spaces = 5
                    };
                }
            }
Beispiel #6
0
        public FF8String GetName(Faces.ID id, Saves.Data d = null)
        {
            if (d == null)
            {
                d = Memory.State;
            }
            switch (id)
            {
            case Faces.ID.Squall_Leonhart:
                return(d.SquallName ?? Read(FileID.MenuGroup, 2, 92));

            case Faces.ID.Rinoa_Heartilly:
                return(d.RinoaName ?? Read(FileID.MenuGroup, 2, 93));

            case Faces.ID.Angelo:
                return(d.AngeloName ?? Read(FileID.MenuGroup, 2, 94));

            case Faces.ID.Boko:
                return(d.BokoName ?? Read(FileID.MenuGroup, 2, 135));

            case Faces.ID.Zell_Dincht:
            case Faces.ID.Irvine_Kinneas:
            case Faces.ID.Quistis_Trepe:
            case Faces.ID.Selphie_Tilmitt:
            case Faces.ID.Seifer_Almasy:
            case Faces.ID.Edea_Kramer:
            case Faces.ID.Laguna_Loire:
            case Faces.ID.Kiros_Seagill:
            case Faces.ID.Ward_Zabac:
                return(Read(FileID.Kernel, 6, (int)id));

            case Faces.ID.Quezacotl:
            case Faces.ID.Shiva:
            case Faces.ID.Ifrit:
            case Faces.ID.Siren:
            case Faces.ID.Brothers:
            case Faces.ID.Diablos:
            case Faces.ID.Carbuncle:
            case Faces.ID.Leviathan:
            case Faces.ID.Pandemona:
            case Faces.ID.Cerberus:
            case Faces.ID.Alexander:
            case Faces.ID.Doomtrain:
            case Faces.ID.Bahamut:
            case Faces.ID.Cactuar:
            case Faces.ID.Tonberry:
            case Faces.ID.Eden:
                if (d.GFs != null && d.GFs.TryGetValue(id.ToGFs(), out var value) && value.Name != null &&
                    value.Name.Length > 0)
                {
                    return(value.Name);
                }

                return(Read(FileID.MenuGroup, 2, 95 + (int)(id.ToGFs())));

            case Faces.ID.Griever:
                return(d.GrieverName ?? Read(FileID.MenuGroup, 2, 135));

            case Faces.ID.MiniMog:
                return(Read(FileID.Kernel, 0, 72));    // also in KERNEL, 12, 36

            case Faces.ID.Blank:
                return(new FF8String());

            default:
                throw new ArgumentOutOfRangeException(nameof(id), id, null);
            }
        }