private static void CoerceStadium2Language(SK2 sk2, SaveFile sav) { if (sk2.Japanese == (sav.Language == 1)) { return; } var la = new LegalityAnalysis(sk2); if (la.Valid || !sk2.IsPossible(sav.Language == 1)) { return; } sk2.SwapLanguage(); la = new LegalityAnalysis(sk2); if (la.Valid) { return; } var lang = SpeciesName.GetSpeciesNameLanguage(sk2.Species, sk2.Nickname, 2); if (lang >= 1 && (lang == 1 != sk2.Japanese)) // force match language { sk2.SwapLanguage(); } else if (sk2.Japanese != (sav.Language == 1)) // force match save file { sk2.SwapLanguage(); } }
public override SlotGroup GetTeam(int team) { if ((uint)team >= TeamCount) { throw new ArgumentOutOfRangeException(nameof(team)); } var name = GetTeamName(team); var members = new SK2[6]; var ofs = GetTeamOffset(team); for (int i = 0; i < 6; i++) { var rel = ofs + ListHeaderSizeTeam + (i * SIZE_STORED); members[i] = (SK2)GetStoredSlot(Data, rel); } return(new SlotGroup(name, members)); }
private static void CoerceStadium2Language(SK2 sk2, SaveFile sav) { if (sk2.Japanese == (sav.Language == 1)) { return; } var la = new LegalityAnalysis(sk2); if (la.Valid || !sk2.IsPossible(sav.Language == 1)) { return; } sk2.SwapLanguage(); la = new LegalityAnalysis(sk2); if (!la.Valid) // fail { sk2.SwapLanguage(); } }