diff --git a/PKHeX.Core/Legality/RibbonStrings.cs b/PKHeX.Core/Legality/RibbonStrings.cs index ffc5ca92b..cf1f9ace0 100644 --- a/PKHeX.Core/Legality/RibbonStrings.cs +++ b/PKHeX.Core/Legality/RibbonStrings.cs @@ -12,13 +12,15 @@ public static class RibbonStrings /// Array of strings that are tab separated with Property Name, \t, and Display Name. public static void ResetDictionary(IEnumerable lines) { - RibbonNames.Clear(); foreach (var line in lines) { string[] split = line.Split('\t'); if (split.Length != 2) continue; - RibbonNames.Add(split[0], split[1]); + if (RibbonNames.ContainsKey(split[0])) + RibbonNames[split[0]] = split[1]; + else + RibbonNames.Add(split[0], split[1]); } } diff --git a/PKHeX.Core/PKM/FormConverter.cs b/PKHeX.Core/PKM/FormConverter.cs index a01b7f49c..19f69bb7d 100644 --- a/PKHeX.Core/PKM/FormConverter.cs +++ b/PKHeX.Core/PKM/FormConverter.cs @@ -618,8 +618,7 @@ private static string[] GetFormsUnown(int generation) 380, 381, 445, 448, 460, // AO - 003, 009, 065, 094, 115, 127, 130, 142, 181, 212, 214, 229, 248, 257, 282, 303, 306, 308, 310, 354, 359, - 380, 381, 445, 448, 460, + 015, 018, 080, 208, 254, 260, 302, 319, 323, 334, 362, 373, 376, 384, 428, 475, 531, 719, }; } } diff --git a/PKHeX.Core/Resources/text/fr/text_Ribbons_fr.txt b/PKHeX.Core/Resources/text/fr/text_Ribbons_fr.txt index 0335c74c9..b3c59fd53 100644 --- a/PKHeX.Core/Resources/text/fr/text_Ribbons_fr.txt +++ b/PKHeX.Core/Resources/text/fr/text_Ribbons_fr.txt @@ -1,49 +1,49 @@ -RibbonChampionKalos = Maître Kalos -RibbonChampionG3Hoenn = Maître Hoenn (RSE) -RibbonChampionSinnoh = Maître Sinnoh -RibbonBestFriends = Affection -RibbonTraining = Perfectionnement -RibbonBattlerSkillful = Élite -RibbonBattlerExpert = Génie -RibbonEffort = Effort -RibbonAlert = Alerte -RibbonShock = Choc -RibbonDowncast = Déprime -RibbonCareless = Négligence -RibbonRelax = Détente -RibbonSnooze = Sieste -RibbonSmile = Sourire -RibbonGorgeous = Sublime -RibbonRoyal = Royal -RibbonGorgeousRoyal = Royal Sublime -RibbonArtist = Artiste -RibbonFootprint = Empreinte -RibbonRecord = Record -RibbonLegend = Légende -RibbonCountry = Pays -RibbonNational = National -RibbonEarth = Terre -RibbonWorld = Monde -RibbonClassic = Classique -RibbonPremier = Premier -RibbonEvent = Événement -RibbonBirthday = Anniversaire -RibbonSpecial = Spécial -RibbonSouvenir = Souvenir -RibbonWishing = Souhait -RibbonChampionBattle = Vainqueur Championnat -RibbonChampionRegional = Champion Régional -RibbonChampionNational = Champion National -RibbonChampionWorld = Champion du Monde -RibbonCountMemoryContest = Souvenir Concours -RibbonCountMemoryBattle = Souvenir Combat -RibbonChampionG6Hoenn = Hoenn Champion (ORAS) -RibbonContestStar = Contest Star -RibbonMasterCoolness = Coolness Master -RibbonMasterBeauty = Beauty Master -RibbonMasterCuteness = Cuteness Master -RibbonMasterCleverness = Cleverness Master -RibbonMasterToughness = Toughness Master +RibbonChampionKalos Maître Kalos +RibbonChampionG3Hoenn Maître Hoenn (RSE) +RibbonChampionSinnoh Maître Sinnoh +RibbonBestFriends Affection +RibbonTraining Perfectionnement +RibbonBattlerSkillful Élite +RibbonBattlerExpert Génie +RibbonEffort Effort +RibbonAlert Alerte +RibbonShock Choc +RibbonDowncast Déprime +RibbonCareless Négligence +RibbonRelax Détente +RibbonSnooze Sieste +RibbonSmile Sourire +RibbonGorgeous Sublime +RibbonRoyal Royal +RibbonGorgeousRoyal Royal Sublime +RibbonArtist Artiste +RibbonFootprint Empreinte +RibbonRecord Record +RibbonLegend Légende +RibbonCountry Pays +RibbonNational National +RibbonEarth Terre +RibbonWorld Monde +RibbonClassic Classique +RibbonPremier Premier +RibbonEvent Événement +RibbonBirthday Anniversaire +RibbonSpecial Spécial +RibbonSouvenir Souvenir +RibbonWishing Souhait +RibbonChampionBattle Vainqueur Championnat +RibbonChampionRegional Champion Régional +RibbonChampionNational Champion National +RibbonChampionWorld Champion du Monde +RibbonCountMemoryContest Souvenir Concours +RibbonCountMemoryBattle Souvenir Combat +RibbonChampionG6Hoenn Hoenn Champion (ORAS) +RibbonContestStar Contest Star +RibbonMasterCoolness Coolness Master +RibbonMasterBeauty Beauty Master +RibbonMasterCuteness Cuteness Master +RibbonMasterCleverness Cleverness Master +RibbonMasterToughness Toughness Master RibbonChampionAlola Alola Champion RibbonBattleRoyale Battle Royal Champion RibbonBattleTreeGreat Battle Tree Great @@ -100,4 +100,4 @@ RibbonCountG3Cool Cool RibbonCountG3Beauty Beauty RibbonCountG3Cute Cute RibbonCountG3Smart Smart -RibbonCountG3Tough = Tough \ No newline at end of file +RibbonCountG3Tough Tough \ No newline at end of file diff --git a/PKHeX.Core/Saves/SAV4.cs b/PKHeX.Core/Saves/SAV4.cs index 3180c08dd..0c2fa3ee1 100644 --- a/PKHeX.Core/Saves/SAV4.cs +++ b/PKHeX.Core/Saves/SAV4.cs @@ -855,12 +855,22 @@ protected override void SetDex(PKM pkm) return; // Set the Language - int lang = pkm.Language - 1; - if (lang > 5) lang = 0; // no KOR - if (lang < 0) lang = 1; int PokeDexLanguageFlags = FormOffset1 + (HGSS ? 0x3C : 0x20); + int lang = GetGen4LanguageBitIndex(pkm.Language); Data[PokeDexLanguageFlags + (DP ? dpl : pkm.Species)] |= (byte)(1 << lang); } + private static int GetGen4LanguageBitIndex(int lang) + { + lang -= 1; + switch (lang) // invert ITA/GER + { + case 3: return 4; + case 4: return 3; + } + if (lang > 5) + return 0; // no KOR+ + return lang < 0 ? 1 : lang; // default English + } public override bool GetCaught(int species) {