mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-14 16:27:21 +00:00
Fix vivillon comparisons
Fix template->pkm form fetch too; would return 0 for non-subregion countries rather than the Country Specific form ID https://projectpokemon.org/home/forums/topic/52800-invalid-internal-error-with-the-spewpa-evolution-line/
This commit is contained in:
parent
73b61e5bf0
commit
7f9328e883
1 changed files with 10 additions and 4 deletions
|
@ -260,8 +260,8 @@ namespace PKHeX.Core
|
||||||
return false; // Country mismatch
|
return false; // Country mismatch
|
||||||
|
|
||||||
var ct = Array.Find(RegionFormTable, t => t.CountryID == country);
|
var ct = Array.Find(RegionFormTable, t => t.CountryID == country);
|
||||||
if (ct.SubRegionForms == null) // empty struct = no forms referenced
|
if (ct == default(CountryTable)) // empty = one form for country
|
||||||
return true; // No subregion table
|
return true; // No subregion table, already checked if Country can have this form
|
||||||
|
|
||||||
if (ct.BaseForm == form)
|
if (ct.BaseForm == form)
|
||||||
return !ct.SubRegionForms.Any(e => e.Regions.Contains(region)); //true if Mainform not in other specific region
|
return !ct.SubRegionForms.Any(e => e.Regions.Contains(region)); //true if Mainform not in other specific region
|
||||||
|
@ -277,8 +277,8 @@ namespace PKHeX.Core
|
||||||
public static int GetVivillonPattern(int country, int region)
|
public static int GetVivillonPattern(int country, int region)
|
||||||
{
|
{
|
||||||
var ct = Array.Find(RegionFormTable, t => t.CountryID == country);
|
var ct = Array.Find(RegionFormTable, t => t.CountryID == country);
|
||||||
if (ct.SubRegionForms == null) // empty struct = no forms referenced
|
if (ct == default(CountryTable)) // empty = no forms referenced
|
||||||
return ct.BaseForm; // No subregion table
|
return GetVivillonPattern(country);
|
||||||
|
|
||||||
foreach (var sub in ct.SubRegionForms)
|
foreach (var sub in ct.SubRegionForms)
|
||||||
{
|
{
|
||||||
|
@ -289,6 +289,12 @@ namespace PKHeX.Core
|
||||||
return ct.BaseForm;
|
return ct.BaseForm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static int GetVivillonPattern(int country)
|
||||||
|
{
|
||||||
|
var form = Array.FindIndex(VivillonCountryTable, z => z.Contains(country));
|
||||||
|
return Math.Max(0, form);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Compares the <see cref="PKM.ConsoleRegion"/> and <see cref="PKM.Country"/> to determine if the country is available within that region.
|
/// Compares the <see cref="PKM.ConsoleRegion"/> and <see cref="PKM.Country"/> to determine if the country is available within that region.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
Loading…
Reference in a new issue