Remove static variable from pk3DS.Core

This commit is contained in:
Evan Dixon 2017-05-27 17:58:15 -05:00
parent b8eedf2b58
commit 7f20c9c370
15 changed files with 19 additions and 33 deletions

View File

@ -9,10 +9,6 @@ namespace pk3DS.Core
{
public class GameConfig
{
// This static instance variable is a shim to continue using a static instance without breaking direct references to Main
// To-Do: Remove Instance in favor of something else
public static GameConfig Instance { get; set; }
private const int FILECOUNT_XY = 271;
private const int FILECOUNT_ORASDEMO = 301;
private const int FILECOUNT_ORAS = 299;

View File

@ -124,11 +124,11 @@ public string[] getPersonalEntryList(string[][] AltForms, string[] species, int
}
return result;
}
public int[] getSpeciesForm(int PersonalEntry)
public int[] getSpeciesForm(int PersonalEntry, GameConfig config)
{
if (PersonalEntry < GameConfig.Instance.MaxSpeciesID) return new[] { PersonalEntry, 0 };
if (PersonalEntry < config.MaxSpeciesID) return new[] { PersonalEntry, 0 };
for (int i = 0; i < GameConfig.Instance.MaxSpeciesID; i++)
for (int i = 0; i < config.MaxSpeciesID; i++)
{
int FormCount = this[i].FormeCount - 1; // Mons with no alt forms have a FormCount of 1.
var altformpointer = this[i].FormStatsIndex;

View File

@ -49,7 +49,7 @@ public static Bitmap ChangeOpacity(Image img, double trans)
return bmp;
}
public static Bitmap getSprite(int species, int form, int gender, int item, bool shiny = false)
public static Bitmap getSprite(int species, int form, int gender, int item, GameConfig config, bool shiny = false)
{
string file;
if (species == 0) // fix with SM release
@ -72,7 +72,7 @@ public static Bitmap getSprite(int species, int form, int gender, int item, bool
Bitmap baseImage = (Bitmap)Properties.Resources.ResourceManager.GetObject(file);
if (baseImage == null)
{
if (species < GameConfig.Instance.MaxSpeciesID)
if (species < config.MaxSpeciesID)
{
baseImage = LayerImage(
(Image)Properties.Resources.ResourceManager.GetObject("_" + species),

View File

@ -55,17 +55,7 @@ public Main()
string filename = args.Length > 0 ? Path.GetFileNameWithoutExtension(args[0])?.ToLower() : "";
skipBoth = filename.IndexOf("3DSkip", StringComparison.Ordinal) >= 0;
}
internal static GameConfig Config
{
get
{
return GameConfig.Instance;
}
set
{
GameConfig.Instance = value;
}
}
internal static GameConfig Config;
public static string RomFSPath;
public static string ExeFSPath;
public static string ExHeaderPath;

View File

@ -61,7 +61,7 @@ private void getList()
{
entry = Util.getIndex(CB_Species);
int[] specForm = Main.Config.Personal.getSpeciesForm(entry);
int[] specForm = Main.Config.Personal.getSpeciesForm(entry, Main.Config);
string filename = "_" + specForm[0] + (entry > 721 ? "_" + (specForm[1] + 1) : "");
PB_MonSprite.Image = (Bitmap)Resources.ResourceManager.GetObject(filename);

View File

@ -75,7 +75,7 @@ private void getList()
{
entry = Util.getIndex(CB_Species);
int[] specForm = Main.Config.Personal.getSpeciesForm(entry);
int[] specForm = Main.Config.Personal.getSpeciesForm(entry, Main.Config);
string filename = "_" + specForm[0] + (entry > 721 ? "_" + (specForm[1] + 1) : "");
PB_MonSprite.Image = (Bitmap)Resources.ResourceManager.GetObject(filename);

View File

@ -147,7 +147,7 @@ private void setPokemon()
private void changeSpecies(object sender, EventArgs e)
{
PB_PKM.Image = Util.getSprite(CB_Species.SelectedIndex, 0, 0, CB_Item.SelectedIndex);
PB_PKM.Image = Util.getSprite(CB_Species.SelectedIndex, 0, 0, CB_Item.SelectedIndex, Main.Config);
}
private void B_Remove_Click(object sender, EventArgs e)

View File

@ -177,7 +177,7 @@ private void UpdateImage(PictureBox pb, int species, int form, int item, int gen
pb.Image = null;
return;
}
pb.Image = Util.getSprite(species, form, gender, item);
pb.Image = Util.getSprite(species, form, gender, item, Main.Config);
}
private void formClosing(object sender, FormClosingEventArgs e)
{

View File

@ -418,7 +418,7 @@ private void showTeams(int i)
{
if (tr == null || randomizing) return;
if (i >= tr.Team.Length) { pba[i].Image = null; return; }
Bitmap rawImg = Util.getSprite(tr.Team[i].Species, tr.Team[i].Form, tr.Team[i].Gender, tr.Team[i].Item);
Bitmap rawImg = Util.getSprite(tr.Team[i].Species, tr.Team[i].Form, tr.Team[i].Gender, tr.Team[i].Item, Main.Config);
pba[i].Image = Util.scaleImage(rawImg, 2);
}
private void showText()

View File

@ -130,7 +130,7 @@ private void changeSpecies(object sender, EventArgs e)
int index = int.Parse(name[6]+"");
int species = (sender as ComboBox).SelectedIndex;
Previews[group][index].Image = Util.scaleImage(Util.getSprite(species, 0, 0, 0), 3);
Previews[group][index].Image = Util.scaleImage(Util.getSprite(species, 0, 0, 0, Main.Config), 3);
}
private void B_Randomize_Click(object sender, EventArgs e)

View File

@ -298,7 +298,7 @@ private void changeInto(object sender, EventArgs e)
if (form == -1)
form = baseForms[species];
pic[index].Image = Util.getSprite(species, form, 0, 0);
pic[index].Image = Util.getSprite(species, form, 0, 0, Main.Config);
}
}
}

View File

@ -146,7 +146,7 @@ private void setPokemon()
private void changeSpecies(object sender, EventArgs e)
{
PB_PKM.Image = Util.getSprite(CB_Species.SelectedIndex, (int)NUD_Form.Value, 0, CB_Item.SelectedIndex);
PB_PKM.Image = Util.getSprite(CB_Species.SelectedIndex, (int)NUD_Form.Value, 0, CB_Item.SelectedIndex, Main.Config);
}
private void B_Remove_Click(object sender, EventArgs e)

View File

@ -177,7 +177,7 @@ private void UpdateImage(PictureBox pb, int species, int form, int item, int gen
pb.Image = null;
return;
}
pb.Image = Util.getSprite(species, form, gender, item);
pb.Image = Util.getSprite(species, form, gender, item, Main.Config);
}
private void formClosing(object sender, FormClosingEventArgs e)
{

View File

@ -132,7 +132,7 @@ private void getSlotColor(int slot, Image color)
}
private static void getQuickFiller(PictureBox pb, trpoke7 pk)
{
Bitmap rawImg = Util.getSprite(pk.Species, pk.Form, pk.Gender, pk.Item, pk.Shiny);
Bitmap rawImg = Util.getSprite(pk.Species, pk.Form, pk.Gender, pk.Item, Main.Config, pk.Shiny);
pb.Image = Util.scaleImage(rawImg, 2);
}

View File

@ -292,7 +292,7 @@ private void updateSpeciesForm(object sender, EventArgs e)
g.Clear(Color.Transparent);
var enc = CurrentTable.Encounters[table][slot];
g.DrawImage(enc.Species == 0 ? Core.Properties.Resources.empty : Util.getSprite((int)enc.Species, (int)enc.Forme, 0, 0), pnt);
g.DrawImage(enc.Species == 0 ? Core.Properties.Resources.empty : Util.getSprite((int)enc.Species, (int)enc.Forme, 0, 0, Main.Config), pnt);
}
cur_pb.Image = cur_img;
@ -450,12 +450,12 @@ public Bitmap GetTableImg()
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit;
for (int i = 0; i < Encounters.Length - 1; i++)
for (int j = 0; j < Encounters[i].Length; j++)
g.DrawImage((Encounters[i][j].Species == 0 ? Core.Properties.Resources.empty : Util.getSprite((int)Encounters[i][j].Species, (int)Encounters[i][j].Forme, 0, 0)), new Point(40 * j, 30 * (i+1)));
g.DrawImage((Encounters[i][j].Species == 0 ? Core.Properties.Resources.empty : Util.getSprite((int)Encounters[i][j].Species, (int)Encounters[i][j].Forme, 0, 0, Main.Config)), new Point(40 * j, 30 * (i+1)));
for (int i = 0; i < Rates.Length; i++)
g.DrawString($"{Rates[i]}%", font, Brushes.Black, new PointF(40 * i + 10, 10));
g.DrawString("Weather: ", font, Brushes.Black, new PointF(10, 280));
for (int i = 0; i < AdditionalSOS.Length; i++)
g.DrawImage((AdditionalSOS[i].Species == 0 ? Core.Properties.Resources.empty : Util.getSprite((int)AdditionalSOS[i].Species, (int)AdditionalSOS[i].Forme, 0, 0)), new Point(40*i + 60, 270));
g.DrawImage((AdditionalSOS[i].Species == 0 ? Core.Properties.Resources.empty : Util.getSprite((int)AdditionalSOS[i].Species, (int)AdditionalSOS[i].Forme, 0, 0, Main.Config)), new Point(40*i + 60, 270));
}
return img;
}