Add ConfigSave language get/set

This value is what determines what language the game runs with
This commit is contained in:
Kurt
2019-04-09 21:19:08 -07:00
parent f4740bbe52
commit 82fb95b436
2 changed files with 23 additions and 1 deletions

View File

@@ -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; }

View File

@@ -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);
}
/// <summary>
/// <see cref="LanguageID"/> for messages, stored with <see cref="LanguageID.UNUSED_6"/> skipped in the enumeration.
/// </summary>
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,