From 9c22c82b3143253ec08d9ce5f85cbbdaf0baab44 Mon Sep 17 00:00:00 2001 From: SciresM Date: Sat, 6 Dec 2014 16:35:38 -0800 Subject: [PATCH] Trainer Sprite support for ORAS. --- SAV/SAV_Trainer.cs | 107 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 103 insertions(+), 4 deletions(-) diff --git a/SAV/SAV_Trainer.cs b/SAV/SAV_Trainer.cs index ae729428d..fdb53ff2e 100644 --- a/SAV/SAV_Trainer.cs +++ b/SAV/SAV_Trainer.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; @@ -27,6 +27,11 @@ public SAV_Trainer(Form1 frm1) { psssatoffset = 0x24800; Maison += 0xA00; this.Width = (int)((float)Width * (float)428 / (float)590); + CB_Multi.Enabled = true; + label34.Enabled = true; // Multiplayer Sprite Label + label21.Enabled = false; // Style Label + TB_Style.Enabled = false; + GB_Appear.Visible = false; } editing = true; getComboBoxes(); @@ -318,6 +323,87 @@ private void getComboBoxes() CB_Region.ValueMember = "Value"; m_parent.setCountry(CB_Country); + + var oras_sprite_list = new[] { + //new { Text = "Calem", Value = 00 }, + //new { Text = "Serena", Value = 01 }, + new { Text = "Sycamore", Value = 02 }, + new { Text = "Diantha", Value = 03 }, + new { Text = "Wikstrom", Value = 04 }, + new { Text = "Malva", Value = 05 }, + new { Text = "Drasna", Value = 06 }, + new { Text = "Siebold", Value = 07 }, + new { Text = "Viola", Value = 08 }, + new { Text = "Grant", Value = 09 }, + new { Text = "Korrina", Value = 10 }, + new { Text = "Ramos", Value = 11 }, + new { Text = "Clemont", Value = 12 }, + new { Text = "Valerie", Value = 13 }, + new { Text = "Olympia", Value = 14 }, + new { Text = "Wulfric", Value = 15 }, + new { Text = "Youngster (XY)", Value = 16 }, + //new { Text = "(None)", Value = 17 }, + new { Text = "Lass (XY)", Value = 18 }, + new { Text = "Lady (XY)", Value = 19 }, + new { Text = "Schoolgirl (XY)", Value = 20 }, + new { Text = "Battle Girl (XY)", Value = 21 }, + new { Text = "Schoolboy (XY)", Value = 22 }, + new { Text = "Rich Boy (XY)", Value = 23 }, + new { Text = "Female Ace Trainer (XY)", Value = 24 }, + //new { Text = "(None)", Value = 25 }, + new { Text = "Female Ranger (XY)", Value = 26 }, + new { Text = "Male Ace Trainer (XY)", Value = 27 }, + new { Text = "Male Ranger (XY)", Value = 28 }, + new { Text = "Madame", Value = 29 }, + new { Text = "Monsieur", Value = 30 }, + new { Text = "Black Belt (XY)", Value = 31 }, + new { Text = "Male Punk (XY)", Value = 32 }, + new { Text = "Fairy Tale Girl (XY)", Value = 33 }, + new { Text = "Shauna", Value = 34 }, + new { Text = "Tierno", Value = 35 }, + new { Text = "Trevor", Value = 36 }, + new { Text = "Brendan", Value = 37 }, + new { Text = "May", Value = 38 }, + //new { Text = "(None)", Value = 39 }, + new { Text = "Hiker", Value = 40 }, + new { Text = "Aroma Lady", Value = 41 }, + new { Text = "Male Schoolkid", Value = 42 }, + new { Text = "Female Schoolkid", Value = 43 }, + new { Text = "Black Belt (ORAS)", Value = 44 }, + new { Text = "Battle Girl (ORAS)", Value = 45 }, + new { Text = "Pokemaniac (ORAS)", Value = 46 }, + new { Text = "Fairy Tale Girl (ORAS)", Value = 47 }, + new { Text = "Victor Winstrate", Value = 48 }, + new { Text = "Victoria Winstrate", Value = 49 }, + new { Text = "Male Ranger (ORAS)", Value = 50 }, + new { Text = "Female Ranger (ORAS)", Value = 51 }, + new { Text = "Male Swimmer (ORAS)", Value = 52 }, + new { Text = "Hex Maniac", Value = 53 }, + new { Text = "Male Ace Trainer (ORAS)", Value = 54 }, + new { Text = "Female Ace Trainer (ORAS)", Value = 55 }, + new { Text = "Street Thug", Value = 56 }, + new { Text = "Delinquent", Value = 57 }, + new { Text = "Male Expert", Value = 58 }, + new { Text = "Female Expert", Value = 59 }, + new { Text = "Lady (ORAS)", Value = 60 }, + new { Text = "Rich Boy (ORAS)", Value = 61 }, + new { Text = "Ninja Boy", Value = 62 }, + new { Text = "Beauty (ORAS)", Value = 63 }, + new { Text = "Guitarist", Value = 64 }, + new { Text = "Lass (ORAS)", Value = 65 }, + new { Text = "Male Breeder (ORAS)", Value = 66 }, + new { Text = "Female Breeder (ORAS)", Value = 67 }, + new { Text = "Camper", Value = 68 }, + new { Text = "Picnicker", Value = 69 }, + new { Text = "Wally", Value = 70 }, + new { Text = "Steven", Value = 71 }, + new { Text = "Maxie", Value = 72 }, + new { Text = "Archie", Value = 73 }, + }; + + CB_Multi.DataSource = oras_sprite_list; + CB_Multi.DisplayMember = "Text"; + CB_Multi.ValueMember = "Value"; } private void getBadges() { @@ -446,7 +532,7 @@ private void getTextBoxes() TB_PM.Text = BitConverter.ToUInt32(sav, savshift + psssatoffset + 0xFC).ToString(); // Temp ORAS - GB_Appear.Visible = GB_Misc.Visible = !m_parent.savegame_oras; + GB_Misc.Visible = true; TB_Style.Text = sav[0x694D + savshift].ToString(); @@ -457,7 +543,8 @@ private void getTextBoxes() // Load PSS Sprite int sprite = sav[TrainerCard + 0x07]; - MT_Sprite.Text = sprite.ToString(); + CB_Multi.SelectedValue = sprite; + PB_Sprite.Image = (Image)Properties.Resources.ResourceManager.GetObject("tr_" + sprite.ToString("00")); // Load Clothing Data int hat = sav[TrainerCard + 0x31 + savshift] >> 3; @@ -575,7 +662,7 @@ private void save() sav[0x6C03 + savshift] = (byte)(UInt16.Parse(MT_Seconds.Text) % 60); // Sprite - sav[TrainerCard + 0x07] = Byte.Parse(MT_Sprite.Text); + sav[TrainerCard + 0x07] = Convert.ToByte(CB_Multi.SelectedValue); sav[TrainerCard + 0x31] = (byte)(Byte.Parse(MT_HairColor.Text) + (Byte.Parse(MT_Hat.Text) << 3)); @@ -679,5 +766,17 @@ private void toggleBadge(object sender, EventArgs e) CheckBox[] chka = new CheckBox[] { cb1, cb2, cb3, cb4, cb5, cb6, cb7, cb8 }; chka[val].Checked = !chka[val].Checked; } + + private void CB_Multi_SelectedIndexChanged(object sender, EventArgs e) + { + if (m_parent.savegame_oras) + { + PB_Sprite.Image = (Image)Properties.Resources.ResourceManager.GetObject("tr_" + ((int)(CB_Multi.SelectedValue)).ToString("00")); + } + else + { + PB_Sprite.Image = (Image)Properties.Resources.ResourceManager.GetObject("tr_00"); + } + } } }