Skip to content

Commit 425e4ad

Browse files
authored
Merge pull request #132 from knoxfighter/0.17-fixes
0.17-fixes
2 parents dd1f187 + 71a5ca6 commit 425e4ad

File tree

7 files changed

+66
-14
lines changed

7 files changed

+66
-14
lines changed

src/factorio_save.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,14 @@ func (h *SaveHeader) ReadFrom(r io.Reader) (err error) {
9090

9191
atLeast016 := !h.FactorioVersion.Less(Version{0, 16, 0, 0})
9292

93+
if h.FactorioVersion.Greater(Version{0, 17, 0, 0}) {
94+
//FIXME correct naming
95+
_, err = r.Read(scratch[:1])
96+
if err != nil {
97+
return fmt.Errorf("read first random 0.17 byte: %v", err)
98+
}
99+
}
100+
93101
h.Campaign, err = readString(r, Version(h.FactorioVersion), false)
94102
if err != nil {
95103
return fmt.Errorf("read Campaign: %v", err)

src/factorio_save_test.go

Lines changed: 58 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,50 @@ import (
44
"testing"
55
)
66

7+
func Test0_17(t *testing.T) {
8+
file, err := OpenArchiveFile("factorio_save_testfiles/test_0_17.zip", "level.dat")
9+
if err != nil {
10+
t.Fatalf("Error opening level.dat: %s", err)
11+
}
12+
defer file.Close()
13+
14+
var header SaveHeader
15+
err = header.ReadFrom(file)
16+
if err != nil {
17+
t.Fatalf("Error reading header: %s", err)
18+
}
19+
20+
testHeader := SaveHeader{
21+
FactorioVersion: Version{0,17,1,1},
22+
Campaign: "transport-belt-madness",
23+
Name: "level-01",
24+
BaseMod: "base",
25+
Difficulty: 0,
26+
Finished: false,
27+
PlayerWon: false,
28+
NextLevel: "",
29+
CanContinue: false,
30+
FinishedButContinuing: false,
31+
SavingReplay: true,
32+
AllowNonAdminDebugOptions: true,
33+
LoadedFrom: Version{0,17,1},
34+
LoadedFromBuild: 43001,
35+
AllowedCommands: 1,
36+
Mods: []Mod {
37+
{
38+
Version: Version{0,2,0},
39+
Name: "Warehousing",
40+
},
41+
{
42+
Version: Version{0,17,1},
43+
Name: "base",
44+
},
45+
},
46+
}
47+
48+
header.Equals(testHeader, t)
49+
}
50+
751
func Test0_16(t *testing.T) {
852
file, err := OpenArchiveFile("factorio_save_testfiles/test_0_16.zip", "level.dat")
953
if err != nil {
@@ -19,16 +63,16 @@ func Test0_16(t *testing.T) {
1963

2064
testHeader := SaveHeader{
2165
FactorioVersion: Version{0,16,51,0},
22-
Campaign: "",
23-
Name: "freeplay",
66+
Campaign: "transport-belt-madness",
67+
Name: "level-01",
2468
BaseMod: "base",
25-
Difficulty: 1,
69+
Difficulty: 0,
2670
Finished: false,
2771
PlayerWon: false,
2872
NextLevel: "",
2973
CanContinue: false,
3074
FinishedButContinuing: false,
31-
SavingReplay: false,
75+
SavingReplay: true,
3276
AllowNonAdminDebugOptions: true,
3377
LoadedFrom: Version{0,16,51},
3478
LoadedFromBuild: 36654,
@@ -63,16 +107,16 @@ func Test0_15(t *testing.T) {
63107

64108
testHeader := SaveHeader{
65109
FactorioVersion: Version{0,15,40,0},
66-
Campaign: "",
67-
Name: "freeplay",
110+
Campaign: "transport-belt-madness",
111+
Name: "level-01",
68112
BaseMod: "base",
69-
Difficulty: 1,
113+
Difficulty: 0,
70114
Finished: false,
71115
PlayerWon: false,
72116
NextLevel: "",
73117
CanContinue: false,
74118
FinishedButContinuing: false,
75-
SavingReplay: false,
119+
SavingReplay: true,
76120
LoadedFrom: Version{0,15,40},
77121
LoadedFromBuild: 30950,
78122
AllowedCommands: 1,
@@ -106,16 +150,16 @@ func Test0_14(t *testing.T) {
106150

107151
testHeader := SaveHeader{
108152
FactorioVersion: Version{0,14,23,0},
109-
Campaign: "",
110-
Name: "freeplay",
153+
Campaign: "transport-belt-madness",
154+
Name: "level-01",
111155
BaseMod: "base",
112156
Difficulty: 1,
113157
Finished: false,
114158
PlayerWon: false,
115159
NextLevel: "",
116160
CanContinue: false,
117161
FinishedButContinuing: false,
118-
SavingReplay: false,
162+
SavingReplay: true,
119163
LoadedFrom: Version{0,14,23},
120164
LoadedFromBuild: 25374,
121165
AllowedCommands: 1,
@@ -149,16 +193,16 @@ func Test0_13(t *testing.T) {
149193

150194
testHeader := SaveHeader{
151195
FactorioVersion: Version{0,13,20,0},
152-
Campaign: "",
153-
Name: "freeplay",
196+
Campaign: "transport-belt-madness",
197+
Name: "level-01",
154198
BaseMod: "base",
155199
Difficulty: 1,
156200
Finished: false,
157201
PlayerWon: false,
158202
NextLevel: "",
159203
CanContinue: false,
160204
FinishedButContinuing: false,
161-
SavingReplay: false,
205+
SavingReplay: true,
162206
LoadedFrom: Version{0,13,20},
163207
LoadedFromBuild: 24011,
164208
AllowedCommands: 1,
-1.07 MB
Binary file not shown.
-853 KB
Binary file not shown.
-933 KB
Binary file not shown.
-949 KB
Binary file not shown.
527 KB
Binary file not shown.

0 commit comments

Comments
 (0)