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 }
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); }
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; }
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); }