From 82fb95b4366b1a299a4ef543db0c6e21e66a36ee Mon Sep 17 00:00:00 2001 From: Kurt Date: Tue, 9 Apr 2019 21:19:08 -0700 Subject: [PATCH] Add ConfigSave language get/set This value is what determines what language the game runs with --- PKHeX.Core/Saves/SAV7b.cs | 2 +- .../Saves/Substructures/Gen7/ConfigSave7b.cs | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/PKHeX.Core/Saves/SAV7b.cs b/PKHeX.Core/Saves/SAV7b.cs index 42f462693..f232da5d8 100644 --- a/PKHeX.Core/Saves/SAV7b.cs +++ b/PKHeX.Core/Saves/SAV7b.cs @@ -232,7 +232,7 @@ public override GameVersion Version public override int SID { get => Status.SID; set => Status.SID = value; } public override int Game { get => Status.Game; set => Status.Game = value; } public override int Gender { get => Status.Gender; set => Status.Gender = value; } - public override int Language { get => Status.Language; set => Status.Language = value; } + public override int Language { get => Status.Language; set => Config.Language = Status.Language = value; } // stored in multiple places public override string OT { get => Status.OT; set => Status.OT = value; } public override uint Money { get => Misc.Money; set => Misc.Money = value; } diff --git a/PKHeX.Core/Saves/Substructures/Gen7/ConfigSave7b.cs b/PKHeX.Core/Saves/Substructures/Gen7/ConfigSave7b.cs index 039d488e8..2f132b064 100644 --- a/PKHeX.Core/Saves/Substructures/Gen7/ConfigSave7b.cs +++ b/PKHeX.Core/Saves/Substructures/Gen7/ConfigSave7b.cs @@ -4,6 +4,16 @@ namespace PKHeX.Core { public sealed class ConfigSave7b : SaveBlock { + /* ===First 8 bits=== + * talkSpeed:2 + * battleAnim:1 + * battleStyle:1 + * language:4 + * + * everything else: unknown + */ + + public ConfigSave7b(SAV7b sav) : base(sav) { Offset = sav.GetBlockOffset(BelugaBlockIndex.ConfigSave); @@ -35,6 +45,18 @@ public BattleStyleSetting BattleStyle set => ConfigValue = (ConfigValue & ~(1 << 3)) | ((byte)value << 3); } + /// + /// for messages, stored with skipped in the enumeration. + /// + public int Language + { + get => GetLanguageID((ConfigValue >> 4) & 0xF); + set => ConfigValue = ((ConfigValue & ~0xF0) | SetLanguageID(value) << 4); + } + + private static int GetLanguageID(int i) => i >= (int) LanguageID.UNUSED_6 ? i + 1 : i; // sets langBank to LanguageID + private static int SetLanguageID(int i) => i > (int) LanguageID.UNUSED_6 ? i - 1 : i; // sets LanguageID to langBank + public enum BattleAnimationSetting { EffectsON,