diff --git a/PKHeX.Core/Game/GameStrings/GameStrings.cs b/PKHeX.Core/Game/GameStrings/GameStrings.cs
index 55eeb77b7..913598dac 100644
--- a/PKHeX.Core/Game/GameStrings/GameStrings.cs
+++ b/PKHeX.Core/Game/GameStrings/GameStrings.cs
@@ -26,7 +26,7 @@ public sealed class GameStrings : IBasicStrings
public readonly string[] metSWSH_00000, metSWSH_30000, metSWSH_40000, metSWSH_60000;
// Misc
- public readonly string[] wallpapernames, puffs;
+ public readonly string[] wallpapernames, puffs, walkercourses;
private readonly string lang;
private readonly int LanguageIndex;
@@ -103,6 +103,8 @@ public GameStrings(string l)
Array.Resize(ref puffs, puffs.Length + 1); // shift all down, 0th will be 'none' -- applied later
Array.Copy(puffs, 0, puffs, 1, puffs.Length - 1);
+ walkercourses = Get("hgss_walkercourses");
+
EggName = specieslist[0];
metHGSS_00000 = Get("hgss_00000");
metHGSS_02000 = Get("hgss_02000");
diff --git a/PKHeX.Core/PKHeX.Core.csproj b/PKHeX.Core/PKHeX.Core.csproj
index 7a730811c..61d793743 100644
--- a/PKHeX.Core/PKHeX.Core.csproj
+++ b/PKHeX.Core/PKHeX.Core.csproj
@@ -148,6 +148,7 @@
+
@@ -202,6 +203,7 @@
+
@@ -256,6 +258,7 @@
+
@@ -310,6 +313,7 @@
+
@@ -388,6 +392,7 @@
+
@@ -442,6 +447,7 @@
+
@@ -496,6 +502,7 @@
+
@@ -798,6 +805,7 @@
+
@@ -965,6 +973,7 @@
+
@@ -1019,6 +1028,7 @@
+
@@ -1073,6 +1083,7 @@
+
@@ -1127,6 +1138,7 @@
+
@@ -1205,6 +1217,7 @@
+
@@ -1259,6 +1272,7 @@
+
@@ -1313,6 +1327,7 @@
+
@@ -1614,6 +1629,7 @@
+
diff --git a/PKHeX.Core/Resources/text/de/text_hgss_walkercourses_de.txt b/PKHeX.Core/Resources/text/de/text_hgss_walkercourses_de.txt
new file mode 100644
index 000000000..5393f830d
--- /dev/null
+++ b/PKHeX.Core/Resources/text/de/text_hgss_walkercourses_de.txt
@@ -0,0 +1,27 @@
+Sattgrüne Wiese
+Lauschiger Wald
+Holpriger Pfad
+Malerische Küste
+Wohngebiet
+Finstere Höhle
+Tiefblauer See
+Stadtrand
+Ebene von Hoenn
+Sonniger Strand
+Vulkanpfad
+Baumhaus
+Gruselhöhle
+Ebene von Sinnoh
+Eisiger Bergpfad
+Tiefer Wald
+Silberner See
+Stürmische Küste
+Ferienpark
+Stille Höhle
+Ferne Ufer
+Himmelsrand
+Goldgelber Wald
+Rallye
+Spaziergang
+Siegerstraße
+Wiese der Treue
\ No newline at end of file
diff --git a/PKHeX.Core/Resources/text/en/text_hgss_walkercourses_en.txt b/PKHeX.Core/Resources/text/en/text_hgss_walkercourses_en.txt
new file mode 100644
index 000000000..92772c4e3
--- /dev/null
+++ b/PKHeX.Core/Resources/text/en/text_hgss_walkercourses_en.txt
@@ -0,0 +1,27 @@
+Refreshing Field
+Noisy Forest
+Rugged Road
+Beautiful Beach
+Suburban Area
+Dim Cave
+Blue Lake
+Town Outskirts
+Hoenn Field
+Warm Beach
+Volcano Path
+Treehouse
+Scary Cave
+Sinnoh Field
+Icy Mountain Rd.
+Big Forest
+White Lake
+Stormy Beach
+Resort
+Quiet Cave
+Beyond the Sea
+Night Sky's Edge
+Yellow Forest
+Rally
+Sightseeing
+Winner's Path
+Amity Meadow
\ No newline at end of file
diff --git a/PKHeX.Core/Resources/text/es/text_hgss_walkercourses_es.txt b/PKHeX.Core/Resources/text/es/text_hgss_walkercourses_es.txt
new file mode 100644
index 000000000..6bb850bc1
--- /dev/null
+++ b/PKHeX.Core/Resources/text/es/text_hgss_walkercourses_es.txt
@@ -0,0 +1,27 @@
+Prado Tranquilo
+Bosque Murmullos
+Camino Pedregoso
+Costa Bella
+Urbanización
+Cueva Sombría
+Mar Azul
+Arrabal
+Llano de Hoenn
+Playa Cálida
+Sendero Volcán
+Casa del Árbol
+Cueva del Terror
+Llano de Sinnoh
+Senda Glacial
+Gran Bosque
+Lago Bruma
+Playa Tormenta
+Zona Vacacional
+Cueva Calma
+Ultramar
+Confín del Cielo
+Bosque Amarillo
+Vía Campeón
+Acontecimiento
+De Turismo
+Campo Amistad
\ No newline at end of file
diff --git a/PKHeX.Core/Resources/text/fr/text_hgss_walkercourses_fr.txt b/PKHeX.Core/Resources/text/fr/text_hgss_walkercourses_fr.txt
new file mode 100644
index 000000000..5301688c9
--- /dev/null
+++ b/PKHeX.Core/Resources/text/fr/text_hgss_walkercourses_fr.txt
@@ -0,0 +1,27 @@
+Plaine Sereine
+Bois Bruissant
+Chemin Pierreux
+Jolie Plage
+Coin Résidentiel
+Caverne Sombre
+Lac Bleu
+Faubourgs
+Plaine de Hoenn
+Plage Brûlante
+Sente de Volcan
+Sylvania
+Grotte Terreur
+Plaine Sinnoh
+Pente Glaciale
+Grande Forêt
+Lac Brumeux
+Plage Orageuse
+Zone de Vacances
+Grotte Calme
+Chemin Victoire
+Evénement
+Fin du Firmament
+Forêt Jaune
+Mer Lointaine
+Plaine Paisible
+Virée en Ville
\ No newline at end of file
diff --git a/PKHeX.Core/Resources/text/it/text_hgss_walkercourses_it.txt b/PKHeX.Core/Resources/text/it/text_hgss_walkercourses_it.txt
new file mode 100644
index 000000000..9dbd746e5
--- /dev/null
+++ b/PKHeX.Core/Resources/text/it/text_hgss_walkercourses_it.txt
@@ -0,0 +1,27 @@
+Piana Tranquilla
+Bosco Cicaleccio
+Sentiero Impervio
+Spiaggia Amena
+Zona Residenziale
+Caverna Penombra
+Lago Turchese
+Periferia
+Piana di Hoenn
+Spiaggia Caliente
+Sentiero Focoso
+Silvania
+Grotta Terrore
+Piana di Sinnoh
+Dirupo Glaciale
+Grande Foresta
+Lago Bruma
+Costa Tempestosa
+Riviera
+Grotta Pacifica
+Oltremare
+Confinecielo
+Bosco Giallo
+Evento
+A spasso
+Via dei Campioni
+Campo Concordia
\ No newline at end of file
diff --git a/PKHeX.Core/Resources/text/ja/text_hgss_walkercourses_ja.txt b/PKHeX.Core/Resources/text/ja/text_hgss_walkercourses_ja.txt
new file mode 100644
index 000000000..366947620
--- /dev/null
+++ b/PKHeX.Core/Resources/text/ja/text_hgss_walkercourses_ja.txt
@@ -0,0 +1,27 @@
+さわやかのはら
+ざわざわもり
+ごつごつみち
+きれいなうみべ
+じゅうたくち
+くらいどうくつ
+あおいみずうみ
+まちのはずれ
+ホウエンのはら
+あったかビーチ
+かざんのこみち
+ツリーハウス
+こわいどうくつ
+シンオウのはら
+さむいやまみち
+おおきなもり
+しろいみずうみ
+あれたうみべ
+リゾートち
+しずかどうくつ
+うみのむこう
+よぞらのはて
+きいろのもり
+イベント
+おかいもの
+チャンプのみち
+ふれあいのはら
\ No newline at end of file
diff --git a/PKHeX.Core/Resources/text/ko/text_hgss_walkercourses_ko.txt b/PKHeX.Core/Resources/text/ko/text_hgss_walkercourses_ko.txt
new file mode 100644
index 000000000..63bfb57e0
--- /dev/null
+++ b/PKHeX.Core/Resources/text/ko/text_hgss_walkercourses_ko.txt
@@ -0,0 +1,27 @@
+상쾌한 들판
+바삭바삭 숲
+울퉁불퉁길
+아름다운 해변
+주택지
+어두운 동굴
+푸른 호수
+변두리
+호연들판
+따뜻한 비치
+화산의 좁은 길
+트리하우스
+무서운 동굴
+신오들판
+추운 산길
+커다란 숲
+하얀 호수
+거친 해변
+리조트지
+조용한 동굴
+바다 저편
+밤하늘의 끝
+노란 숲
+이벤트
+산책
+챔프의 길
+상호교류들판
\ No newline at end of file
diff --git a/PKHeX.Core/Resources/text/zh/text_hgss_walkercourses_zh.txt b/PKHeX.Core/Resources/text/zh/text_hgss_walkercourses_zh.txt
new file mode 100644
index 000000000..2572647a0
--- /dev/null
+++ b/PKHeX.Core/Resources/text/zh/text_hgss_walkercourses_zh.txt
@@ -0,0 +1,27 @@
+清爽草原
+喧闹森林
+崎岖小道
+绮丽海边
+住宅地
+黑暗洞窟
+蓝色湖泊
+城镇郊外
+丰缘之原
+温暖的沙滩
+火山小道
+树上小屋
+恐怖洞窟
+神奥之原
+寒冷山道
+大森林
+白色湖泊
+荒凉海边
+度假胜地
+安静洞窟
+海之彼岸
+夜空边际
+黄色森林
+活动事件
+购物区
+冠军之道
+交流之原
\ No newline at end of file
diff --git a/PKHeX.Core/Saves/SAV4HGSS.cs b/PKHeX.Core/Saves/SAV4HGSS.cs
index 7501082b3..617685888 100644
--- a/PKHeX.Core/Saves/SAV4HGSS.cs
+++ b/PKHeX.Core/Saves/SAV4HGSS.cs
@@ -206,28 +206,17 @@ public void PokeGearUnlockAllCallersNoTrainers()
public void SetApricornCount(int i, int count) => General[0xE558 + i] = (byte)count;
// Pokewalker
- private const int OFS_WALKER = 0xE70C;
+ private const int OFS_WALKER = 0xE704;
+
+ public uint PokewalkerSteps { get => BitConverter.ToUInt32(General, OFS_WALKER); set => SetData(General, BitConverter.GetBytes(value), OFS_WALKER); }
+ public uint PokewalkerWatts { get => BitConverter.ToUInt32(General, OFS_WALKER + 0x4); set => SetData(General, BitConverter.GetBytes(value), OFS_WALKER + 0x4); }
public bool[] PokewalkerCoursesUnlocked
{
- get
- {
- var val = BitConverter.ToUInt32(General, OFS_WALKER);
- bool[] courses = new bool[32];
- for (int i = 0; i < courses.Length; i++)
- courses[i] = ((val >> i) & 1) == 1;
- return courses;
- }
- set
- {
- uint val = 0;
- bool[] courses = new bool[32];
- for (int i = 0; i < courses.Length; i++)
- val |= value[i] ? 1u << i : 0;
- SetData(General, BitConverter.GetBytes(val), OFS_WALKER);
- }
+ get => ArrayUtil.GitBitFlagArray(General, OFS_WALKER + 0x8, 32);
+ set => ArrayUtil.SetBitFlagArray(General, OFS_WALKER + 0x8, value);
}
- public void PokewalkerCoursesUnlockAll() => SetData(General, BitConverter.GetBytes(0x07FF_FFFFu), OFS_WALKER);
+ public void PokewalkerCoursesSetAll(uint value = 0x07FF_FFFFu) => SetData(General, BitConverter.GetBytes(value), OFS_WALKER + 0x8);
}
-}
\ No newline at end of file
+}
diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Misc4.Designer.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Misc4.Designer.cs
index f4fd88302..2ed33022d 100644
--- a/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Misc4.Designer.cs
+++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Misc4.Designer.cs
@@ -99,7 +99,13 @@ private void InitializeComponent()
this.NUD_CastleRankInfo = new System.Windows.Forms.NumericUpDown();
this.L_CastleRank01 = new System.Windows.Forms.Label();
this.TAB_Walker = new System.Windows.Forms.TabPage();
- this.B_UnlockCourses = new System.Windows.Forms.Button();
+ this.GB_WalkerCourses = new System.Windows.Forms.GroupBox();
+ this.B_AllWalkerCourses = new System.Windows.Forms.Button();
+ this.CLB_WalkerCourses = new System.Windows.Forms.CheckedListBox();
+ this.NUD_Watts = new System.Windows.Forms.NumericUpDown();
+ this.L_Watts = new System.Windows.Forms.Label();
+ this.NUD_Steps = new System.Windows.Forms.NumericUpDown();
+ this.L_Steps = new System.Windows.Forms.Label();
this.Tab_Misc = new System.Windows.Forms.TabPage();
this.B_AllSealsIllegal = new System.Windows.Forms.Button();
this.B_AllSealsLegal = new System.Windows.Forms.Button();
@@ -148,6 +154,9 @@ private void InitializeComponent()
((System.ComponentModel.ISupportInitialize)(this.NUD_CastleRankItem)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUD_CastleRankInfo)).BeginInit();
this.TAB_Walker.SuspendLayout();
+ this.GB_WalkerCourses.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_Watts)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_Steps)).BeginInit();
this.Tab_Misc.SuspendLayout();
this.Tab_Poffins.SuspendLayout();
this.Tab_PokeGear.SuspendLayout();
@@ -1148,7 +1157,11 @@ private void InitializeComponent()
//
// TAB_Walker
//
- this.TAB_Walker.Controls.Add(this.B_UnlockCourses);
+ this.TAB_Walker.Controls.Add(this.GB_WalkerCourses);
+ this.TAB_Walker.Controls.Add(this.NUD_Watts);
+ this.TAB_Walker.Controls.Add(this.L_Watts);
+ this.TAB_Walker.Controls.Add(this.NUD_Steps);
+ this.TAB_Walker.Controls.Add(this.L_Steps);
this.TAB_Walker.Location = new System.Drawing.Point(4, 22);
this.TAB_Walker.Name = "TAB_Walker";
this.TAB_Walker.Padding = new System.Windows.Forms.Padding(3);
@@ -1157,15 +1170,93 @@ private void InitializeComponent()
this.TAB_Walker.Text = "Pokewalker";
this.TAB_Walker.UseVisualStyleBackColor = true;
//
- // B_UnlockCourses
+ // GB_WalkerCourses
//
- this.B_UnlockCourses.Location = new System.Drawing.Point(153, 98);
- this.B_UnlockCourses.Name = "B_UnlockCourses";
- this.B_UnlockCourses.Size = new System.Drawing.Size(75, 55);
- this.B_UnlockCourses.TabIndex = 0;
- this.B_UnlockCourses.Text = "Unlock All Courses";
- this.B_UnlockCourses.UseVisualStyleBackColor = true;
- this.B_UnlockCourses.Click += new System.EventHandler(this.B_UnlockCourses_Click);
+ this.GB_WalkerCourses.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)));
+ this.GB_WalkerCourses.Controls.Add(this.B_AllWalkerCourses);
+ this.GB_WalkerCourses.Controls.Add(this.CLB_WalkerCourses);
+ this.GB_WalkerCourses.Location = new System.Drawing.Point(3, 3);
+ this.GB_WalkerCourses.Name = "GB_WalkerCourses";
+ this.GB_WalkerCourses.Size = new System.Drawing.Size(181, 230);
+ this.GB_WalkerCourses.TabIndex = 4;
+ this.GB_WalkerCourses.TabStop = false;
+ this.GB_WalkerCourses.Text = "Pokewalker Courses";
+ //
+ // B_AllWalkerCourses
+ //
+ this.B_AllWalkerCourses.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.B_AllWalkerCourses.Location = new System.Drawing.Point(6, 195);
+ this.B_AllWalkerCourses.Name = "B_AllWalkerCourses";
+ this.B_AllWalkerCourses.Size = new System.Drawing.Size(75, 25);
+ this.B_AllWalkerCourses.TabIndex = 0;
+ this.B_AllWalkerCourses.Text = "Check All";
+ this.B_AllWalkerCourses.UseVisualStyleBackColor = true;
+ this.B_AllWalkerCourses.Click += new System.EventHandler(this.B_AllWalkerCourses_Click);
+ //
+ // CLB_WalkerCourses
+ //
+ this.CLB_WalkerCourses.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.CLB_WalkerCourses.CheckOnClick = true;
+ this.CLB_WalkerCourses.FormattingEnabled = true;
+ this.CLB_WalkerCourses.Location = new System.Drawing.Point(6, 16);
+ this.CLB_WalkerCourses.Name = "CLB_WalkerCourses";
+ this.CLB_WalkerCourses.Size = new System.Drawing.Size(169, 169);
+ this.CLB_WalkerCourses.TabIndex = 1;
+ //
+ // NUD_Watts
+ //
+ this.NUD_Watts.Location = new System.Drawing.Point(262, 6);
+ this.NUD_Watts.Maximum = new decimal(new int[] {
+ 9999999,
+ 0,
+ 0,
+ 0});
+ this.NUD_Watts.Name = "NUD_Watts";
+ this.NUD_Watts.Size = new System.Drawing.Size(64, 20);
+ this.NUD_Watts.TabIndex = 0;
+ this.NUD_Watts.Value = new decimal(new int[] {
+ 9999999,
+ 0,
+ 0,
+ 0});
+ //
+ // L_Watts
+ //
+ this.L_Watts.Location = new System.Drawing.Point(190, 3);
+ this.L_Watts.Name = "L_Watts";
+ this.L_Watts.Size = new System.Drawing.Size(66, 22);
+ this.L_Watts.TabIndex = 10;
+ this.L_Watts.Text = "Watts:";
+ this.L_Watts.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // NUD_Steps
+ //
+ this.NUD_Steps.Location = new System.Drawing.Point(262, 38);
+ this.NUD_Steps.Maximum = new decimal(new int[] {
+ 9999999,
+ 0,
+ 0,
+ 0});
+ this.NUD_Steps.Name = "NUD_Steps";
+ this.NUD_Steps.Size = new System.Drawing.Size(64, 20);
+ this.NUD_Steps.TabIndex = 0;
+ this.NUD_Steps.Value = new decimal(new int[] {
+ 9999999,
+ 0,
+ 0,
+ 0});
+ //
+ // L_Steps
+ //
+ this.L_Steps.Location = new System.Drawing.Point(190, 35);
+ this.L_Steps.Name = "L_Steps";
+ this.L_Steps.Size = new System.Drawing.Size(66, 22);
+ this.L_Steps.TabIndex = 10;
+ this.L_Steps.Text = "Steps:";
+ this.L_Steps.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// Tab_Misc
//
@@ -1291,6 +1382,9 @@ private void InitializeComponent()
((System.ComponentModel.ISupportInitialize)(this.NUD_CastleRankItem)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUD_CastleRankInfo)).EndInit();
this.TAB_Walker.ResumeLayout(false);
+ this.GB_WalkerCourses.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_Watts)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_Steps)).EndInit();
this.Tab_Misc.ResumeLayout(false);
this.Tab_Poffins.ResumeLayout(false);
this.Tab_PokeGear.ResumeLayout(false);
@@ -1368,7 +1462,13 @@ private void InitializeComponent()
private System.Windows.Forms.Label L_CurrentApp;
private System.Windows.Forms.Label L_CurrentMap;
private System.Windows.Forms.TabPage TAB_Walker;
- private System.Windows.Forms.Button B_UnlockCourses;
+ private System.Windows.Forms.GroupBox GB_WalkerCourses;
+ private System.Windows.Forms.CheckedListBox CLB_WalkerCourses;
+ private System.Windows.Forms.Button B_AllWalkerCourses;
+ private System.Windows.Forms.NumericUpDown NUD_Watts;
+ private System.Windows.Forms.Label L_Watts;
+ private System.Windows.Forms.NumericUpDown NUD_Steps;
+ private System.Windows.Forms.Label L_Steps;
private System.Windows.Forms.NumericUpDown NUD_Coin;
private System.Windows.Forms.Label L_Coin;
private System.Windows.Forms.TabPage Tab_Misc;
diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Misc4.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Misc4.cs
index fd8bfc49c..e11439af3 100644
--- a/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Misc4.cs
+++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Misc4.cs
@@ -136,8 +136,10 @@ private void ReadMain()
uint valBP = BitConverter.ToUInt16(SAV.General, ofsBP);
NUD_BP.Value = valBP > 9999 ? 9999 : valBP;
- if (SAV is SAV4Sinnoh)
- ReadPoketch();
+ if (SAV is SAV4Sinnoh sinnoh)
+ ReadPoketch(sinnoh);
+ if (SAV is SAV4HGSS hgss)
+ ReadWalker(hgss);
if (ofsUGFlagCount > 0)
{
@@ -176,8 +178,10 @@ private void SaveMain()
BitConverter.GetBytes(valFly).CopyTo(SAV.General, ofsFly);
BitConverter.GetBytes((ushort)NUD_BP.Value).CopyTo(SAV.General, ofsBP);
- if (SAV is SAV4Sinnoh)
- SavePoketch();
+ if (SAV is SAV4Sinnoh sinnoh)
+ SavePoketch(sinnoh);
+ if (SAV is SAV4HGSS hgss)
+ SaveWalker(hgss);
if (ofsUGFlagCount > 0)
BitConverter.GetBytes((BitConverter.ToUInt32(SAV.General, ofsUGFlagCount) & ~0xFFFFFu) | (uint)NUD_UGFlags.Value).CopyTo(SAV.General, ofsUGFlagCount);
@@ -199,10 +203,9 @@ private void B_AllFlyDest_Click(object sender, EventArgs e)
private byte[] DotArtistByte;
private byte[] ColorTable;
- private void ReadPoketch()
+ private void ReadPoketch(SAV4Sinnoh s)
{
string[] PoketchTitle = Enum.GetNames(typeof(PoketchApp));
- var s = (SAV4Sinnoh) SAV;
CB_CurrentApp.Items.AddRange(PoketchTitle);
CB_CurrentApp.SelectedIndex = s.CurrentPoketchApp;
@@ -226,9 +229,8 @@ private void ReadPoketch()
TAB_Main.AllowDrop = true;
}
- private void SavePoketch()
+ private void SavePoketch(SAV4Sinnoh s)
{
- var s = (SAV4Sinnoh)SAV;
s.CurrentPoketchApp = (sbyte)CB_CurrentApp.SelectedIndex;
for (int i = 0; i < CLB_Poketch.Items.Count; i++)
{
@@ -776,9 +778,31 @@ private void NUD_HallStreaks_ValueChanged(object sender, EventArgs e)
}
#endregion
- private void B_UnlockCourses_Click(object sender, EventArgs e)
+ private void ReadWalker(SAV4HGSS s)
{
- ((SAV4HGSS)SAV).PokewalkerCoursesUnlockAll();
+ string[] walkercourses = GameInfo.Sources.Source.walkercourses;
+ bool[] isChecked = s.PokewalkerCoursesUnlocked;
+ CLB_WalkerCourses.Items.Clear();
+ for (int i = 0; i < walkercourses.Length; i++)
+ CLB_WalkerCourses.Items.Add(walkercourses[i], isChecked[i]);
+ NUD_Watts.Value = s.PokewalkerWatts;
+ NUD_Steps.Value = s.PokewalkerSteps;
+ }
+
+ private void SaveWalker(SAV4HGSS s)
+ {
+ bool[] courses = new bool[32];
+ for (int i = 0; i < CLB_WalkerCourses.Items.Count; i++)
+ courses[i] = CLB_WalkerCourses.GetItemChecked(i);
+ s.PokewalkerCoursesUnlocked = courses;
+ s.PokewalkerWatts = (uint)NUD_Watts.Value;
+ s.PokewalkerSteps = (uint)NUD_Steps.Value;
+ }
+
+ private void B_AllWalkerCourses_Click(object sender, EventArgs e)
+ {
+ for (int i = 0; i < CLB_WalkerCourses.Items.Count; i++)
+ CLB_WalkerCourses.SetItemChecked(i, true);
}
private void OnBAllSealsLegalOnClick(object sender, EventArgs e)