Skip to content

Commit 4d95e9f

Browse files
committed
Update POK value to be nullable
1 parent d429c73 commit 4d95e9f

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/Spectron.Files/Pok/PokeFile.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ namespace OldBit.Spectron.Files.Pok;
66
/// <param name="MemoryBank">Bits 0-2 specify a memory bank for 128K games or bit 3
77
/// is always set for 48K games</param>
88
/// <param name="Address">The address (16384-65535).</param>
9-
/// <param name="Value">Poke value (0-255). If it is 256, a requester should pop up where the user can enter a value</param>
9+
/// <param name="Value">Poke value (0-255). If it is null, a requester should pop up where the user can enter a value.</param>
1010
/// <param name="OriginalValue">Original value at the address.</param>
11-
public record Poke(int MemoryBank, Word Address, int Value, byte OriginalValue);
11+
public record Poke(int MemoryBank, Word Address, byte? Value, byte OriginalValue);
1212

1313
/// <summary>
1414
/// Represents a trainer that contains a list of pokes.
@@ -123,7 +123,7 @@ public static PokeFile Load(Stream stream)
123123
return null;
124124
}
125125

126-
return new Poke(memoryBank, address, value, originalValue);
126+
return new Poke(memoryBank, address, value > 255 ? null : (byte)value, originalValue);
127127
}
128128

129129
private static bool IsNextTrainer(string line) => line.StartsWith('N');

tests/Spectron.Files.Tests/Pok/PokeFileTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public void PokFile_ShouldLoad()
1616
pokeFile.Trainers[0].Pokes.Count.ShouldBe(1);
1717
pokeFile.Trainers[0].Pokes[0].MemoryBank.ShouldBe(8);
1818
pokeFile.Trainers[0].Pokes[0].Address.ShouldBe(35142);
19-
pokeFile.Trainers[0].Pokes[0].Value.ShouldBe(0);
19+
pokeFile.Trainers[0].Pokes[0].Value.ShouldBe((byte)0);
2020
pokeFile.Trainers[0].Pokes[0].OriginalValue.ShouldBe(0);
2121

2222
pokeFile.Trainers[1].Name.ShouldBe("Air supply (Bug Byte)");
@@ -26,14 +26,14 @@ public void PokFile_ShouldLoad()
2626
pokeFile.Trainers[4].Pokes.Count.ShouldBe(1);
2727
pokeFile.Trainers[4].Pokes[0].MemoryBank.ShouldBe(8);
2828
pokeFile.Trainers[4].Pokes[0].Address.ShouldBe(35136);
29-
pokeFile.Trainers[4].Pokes[0].Value.ShouldBe(0);
29+
pokeFile.Trainers[4].Pokes[0].Value.ShouldBe((byte)0);
3030
pokeFile.Trainers[4].Pokes[0].OriginalValue.ShouldBe(53);
3131

3232
pokeFile.Trainers[65].Name.ShouldBe("Restart game in last visited cavern(Software Projects)");
3333
pokeFile.Trainers[65].Pokes.Count.ShouldBe(1);
3434
pokeFile.Trainers[65].Pokes[0].MemoryBank.ShouldBe(8);
3535
pokeFile.Trainers[65].Pokes[0].Address.ShouldBe(34260);
36-
pokeFile.Trainers[65].Pokes[0].Value.ShouldBe(88);
36+
pokeFile.Trainers[65].Pokes[0].Value.ShouldBe((byte)88);
3737
pokeFile.Trainers[65].Pokes[0].OriginalValue.ShouldBe(0);
3838
}
3939

0 commit comments

Comments
 (0)