예제 #1
0
    private void UpdateOTGender(object sender, EventArgs e)
    {
        var g = EntityGender.GetFromString(Label_OTGender.Text);

        Label_OTGender.Text = gendersymbols[g ^ 1];

        Write_Entry(this, EventArgs.Empty);
    }
예제 #2
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
    }
예제 #3
0
    private void UpdateShiny(object sender, EventArgs e)
    {
        if (!editing)
        {
            return; //Don't do writing until loaded
        }
        var species = WinFormsUtil.GetIndex(CB_Species);
        var form    = CB_Form.SelectedIndex & 0x1F;
        var gender  = EntityGender.GetFromString(Label_Gender.Text);
        var item    = WinFormsUtil.GetIndex(CB_HeldItem);

        bpkx.Image = SpriteUtil.GetSprite(species, form, gender, 0, item, false, CHK_Shiny.Checked, 6);

        Write_Entry(this, EventArgs.Empty);
    }
예제 #4
0
    private void UpdateGender(object sender, EventArgs e)
    {
        // Get Gender Threshold
        int species = WinFormsUtil.GetIndex(CB_Species);
        var pi      = SAV.Personal[species];

        if (pi.IsDualGender)
        {
            var fg = EntityGender.GetFromString(Label_Gender.Text);
            fg = (fg ^ 1) & 1;
            Label_Gender.Text = gendersymbols[fg];
        }
        else
        {
            var fg = pi.FixedGender;
            Label_Gender.Text = gendersymbols[fg];
            return;
        }

        var g = EntityGender.GetFromString(CB_Form.Text);

        if (g == 0 && Label_Gender.Text != gendersymbols[0])
        {
            CB_Form.SelectedIndex = 1;
        }
        else if (g == 1 && Label_Gender.Text != gendersymbols[1])
        {
            CB_Form.SelectedIndex = 0;
        }

        if (species == (int)Species.Pyroar)
        {
            CB_Form.SelectedIndex = EntityGender.GetFromString(Label_Gender.Text);
        }

        Write_Entry(this, EventArgs.Empty);
    }