Esempio n. 1
0
    private void Write_Entry(object sender, EventArgs e)
    {
        if (!editing)
        {
            return; //Don't do writing until loaded
        }
        Validate_TextBoxes();

        int index       = LB_DataEntry.SelectedIndex;
        int partymember = Convert.ToInt32(NUP_PartyIndex.Value) - 1;
        int offset      = (index * 0x1B4) + (partymember * HallFame6Entity.SIZE);
        var span        = data.AsSpan(offset, HallFame6Entity.SIZE);
        var entry       = new HallFame6Entity(span)
        {
            Species            = Convert.ToUInt16(CB_Species.SelectedValue),
            HeldItem           = Convert.ToUInt16(CB_HeldItem.SelectedValue),
            Move1              = Convert.ToUInt16(CB_Move1.SelectedValue),
            Move2              = Convert.ToUInt16(CB_Move2.SelectedValue),
            Move3              = Convert.ToUInt16(CB_Move3.SelectedValue),
            Move4              = Convert.ToUInt16(CB_Move4.SelectedValue),
            EncryptionConstant = Util.GetHexValue(TB_EC.Text),
            TID         = Convert.ToUInt16(TB_TID.Text),
            SID         = Convert.ToUInt16(TB_SID.Text),
            Form        = (uint)CB_Form.SelectedIndex,
            Gender      = (uint)EntityGender.GetFromString(Label_Gender.Text) & 0x3,
            Level       = Convert.ToUInt16(TB_Level.Text),
            IsShiny     = CHK_Shiny.Checked,
            IsNicknamed = CHK_Nicknamed.Checked,
            Nickname    = TB_Nickname.Text,
            OT_Name     = TB_OT.Text,
            OT_Gender   = (uint)EntityGender.GetFromString(Label_OTGender.Text) & 1,
        };

        offset = index * 0x1B4;

        uint vnd  = 0;
        uint date = 0;

        vnd  |= Convert.ToUInt32(TB_VN.Text) & 0xFF;
        date |= (uint)((CAL_MetDate.Value.Year - 2000) & 0xFF);
        date |= (uint)((CAL_MetDate.Value.Month & 0xF) << 8);
        date |= (uint)((CAL_MetDate.Value.Day & 0x1F) << 12);
        vnd  |= (date & 0x1FFFF) << 14;
        //Fix for top bit
        uint rawvnd = ReadUInt32LittleEndian(data.AsSpan(offset + 0x1B0));

        vnd |= rawvnd & 0x80000000;
        WriteUInt32LittleEndian(data.AsSpan(offset + 0x1B0), vnd);

        bpkx.Image = SpriteUtil.GetSprite(entry.Species, (int)entry.Form, (int)entry.Gender, 0, entry.HeldItem, false, CHK_Shiny.Checked, 6);
        DisplayEntry(this, EventArgs.Empty); // refresh text view
    }
Esempio n. 2
0
    private void AddEntryDescription(List <string> s, HallFame6Entity entry)
    {
        string genderstr = gendersymbols[(int)entry.Gender];
        string shinystr  = entry.IsShiny ? "Yes" : "No";

        var str = GameInfo.Strings;

        s.Add($"Name: {entry.Nickname}");
        s.Add($" ({str.Species[entry.Species]} - {genderstr})");
        s.Add($"Level: {entry.Level}");
        s.Add($"Shiny: {shinystr}");
        s.Add($"Held Item: {str.Item[entry.HeldItem]}");
        s.Add($"Move 1: {str.Move[entry.Move1]}");
        s.Add($"Move 2: {str.Move[entry.Move2]}");
        s.Add($"Move 3: {str.Move[entry.Move3]}");
        s.Add($"Move 4: {str.Move[entry.Move4]}");

        string OTGender = gendersymbols[(int)entry.OT_Gender];

        s.Add($"OT: {entry.OT_Name} ({OTGender}) ({entry.TID}/{entry.SID})");
        s.Add(string.Empty);
    }
Esempio n. 3
0
    private void NUP_PartyIndex_ValueChanged(object sender, EventArgs e)
    {
        editing = false;
        int index  = LB_DataEntry.SelectedIndex;
        int offset = (index * 0x1B4) + ((Convert.ToInt32(NUP_PartyIndex.Value) - 1) * HallFame6Entity.SIZE);

        if (offset < 0)
        {
            return;
        }

        var entry = new HallFame6Entity(data.AsSpan(offset, HallFame6Entity.SIZE));

        CB_Species.SelectedValue  = (int)entry.Species;
        CB_HeldItem.SelectedValue = (int)entry.HeldItem;
        CB_Move1.SelectedValue    = (int)entry.Move1;
        CB_Move2.SelectedValue    = (int)entry.Move2;
        CB_Move3.SelectedValue    = (int)entry.Move3;
        CB_Move4.SelectedValue    = (int)entry.Move4;

        TB_EC.Text = entry.EncryptionConstant.ToString("X8");

        TB_TID.Text = entry.TID.ToString("00000");
        TB_SID.Text = entry.SID.ToString("00000");

        TB_Nickname.Text      = entry.Nickname;
        TB_OT.Text            = entry.OT_Name;
        CHK_Shiny.Checked     = entry.IsShiny;
        TB_Level.Text         = entry.Level.ToString("000");
        CHK_Nicknamed.Checked = entry.IsNicknamed;

        SetForms();
        CB_Form.SelectedIndex = (int)entry.Form;
        SetGenderLabel((int)entry.Gender);
        Label_OTGender.Text = gendersymbols[(int)entry.OT_Gender];
        UpdateNickname(sender, e);
        bpkx.Image = SpriteUtil.GetSprite(entry.Species, (int)entry.Form, (int)entry.Gender, 0, entry.HeldItem, false, entry.IsShiny, 6);
        editing    = true;
    }
Esempio n. 4
0
    private int AddEntries(int offset, List <string> s, uint year, uint month, uint day)
    {
        s.Add($"Date: {year}/{month:00}/{day:00}");
        s.Add(string.Empty);
        CAL_MetDate.Value = new DateTime((int)year, (int)month, (int)day);
        int moncount = 0;

        for (int i = 0; i < 6; i++)
        {
            var entry = new HallFame6Entity(data.AsSpan(offset, HallFame6Entity.SIZE));
            if (entry.Species == 0)
            {
                continue;
            }

            moncount++;
            AddEntryDescription(s, entry);

            offset += HallFame6Entity.SIZE;
        }

        return(moncount);
    }