Rev 14 | Rev 17 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 14 | Rev 15 | ||
---|---|---|---|
Line 43... | Line 43... | ||
43 | LevelEditorLength := 0; |
43 | LevelEditorLength := 0; |
44 | end; |
44 | end; |
45 | 45 | ||
46 | procedure TLevelData.Load(filename: string); |
46 | procedure TLevelData.Load(filename: string); |
47 | var |
47 | var |
48 | sl1: TStringList; |
48 | sl: TStringList; |
49 | curline: integer; |
49 | curline: integer; |
50 | ergebniss: string; |
50 | ergebniss: string; |
51 | e: TEnemyAdvent; |
51 | e: TEnemyAdvent; |
52 | begin |
52 | begin |
53 | sl1 := TStringList.Create; |
53 | sl := TStringList.Create; |
54 | try |
54 | try |
55 | sl1.LoadFromFile(filename); |
55 | sl.LoadFromFile(filename); |
56 | curline := 0; |
56 | curline := 0; |
57 | 57 | ||
58 | ergebniss := sl1.Strings[curline]; Inc(curline); |
58 | ergebniss := sl.Strings[curline]; Inc(curline); |
59 | if ergebniss = '; SpaceMission 1.0' then |
59 | if ergebniss = '; SpaceMission 1.0' then |
60 | begin |
60 | begin |
61 | ergebniss := sl1.Strings[curline]; Inc(curline); |
61 | ergebniss := sl.Strings[curline]; Inc(curline); |
62 | Assert(ergebniss = '; LEV-File'); |
62 | if ergebniss <> '; LEV-File' then |
- | 63 | begin |
|
- | 64 | raise Exception.Create('Dies ist keine SpaceMission Level-Datei'); |
|
- | 65 | end; |
|
63 | 66 | ||
64 | ergebniss := sl1.Strings[curline]; Inc(curline); |
67 | ergebniss := sl.Strings[curline]; Inc(curline); |
65 | LevelEditorLength := StrToInt(ergebniss); |
68 | LevelEditorLength := StrToInt(ergebniss); |
66 | 69 | ||
67 | while curline < sl1.Count do |
70 | while curline < sl.Count do |
68 | begin |
71 | begin |
69 | ergebniss := sl1.Strings[curline]; Inc(curline); |
72 | ergebniss := sl.Strings[curline]; Inc(curline); |
70 | e.enemyType := TEnemyType(strtoint(ergebniss)); |
73 | e.enemyType := TEnemyType(strtoint(ergebniss)); |
71 | ergebniss := sl1.Strings[curline]; Inc(curline); |
74 | ergebniss := sl.Strings[curline]; Inc(curline); |
72 | e.x := strtoint(ergebniss); |
75 | e.x := strtoint(ergebniss); |
73 | ergebniss := sl1.Strings[curline]; Inc(curline); |
76 | ergebniss := sl.Strings[curline]; Inc(curline); |
74 | e.y := strtoint(ergebniss); |
77 | e.y := strtoint(ergebniss); |
75 | ergebniss := sl1.Strings[curline]; Inc(curline); |
78 | ergebniss := sl.Strings[curline]; Inc(curline); |
76 | e.lifes := strtoint(ergebniss); |
79 | e.lifes := strtoint(ergebniss); |
77 | 80 | ||
78 | SetLength(EnemyAdventTable, Length(EnemyAdventTable)+1); |
81 | SetLength(EnemyAdventTable, Length(EnemyAdventTable)+1); |
79 | EnemyAdventTable[Length(EnemyAdventTable)-1] := e; |
82 | EnemyAdventTable[Length(EnemyAdventTable)-1] := e; |
80 | end; |
83 | end; |
Line 83... | Line 86... | ||
83 | begin |
86 | begin |
84 | // TODO: Support 0.2, 0.3, 0.4 |
87 | // TODO: Support 0.2, 0.3, 0.4 |
85 | raise Exception.CreateFmt('Level-Format "%s" nicht unterstützt', [Copy(ergebniss, 3, Length(ergebniss)-2)]); |
88 | raise Exception.CreateFmt('Level-Format "%s" nicht unterstützt', [Copy(ergebniss, 3, Length(ergebniss)-2)]); |
86 | end; |
89 | end; |
87 | finally |
90 | finally |
88 | FreeAndNil(sl1); |
91 | FreeAndNil(sl); |
89 | end; |
92 | end; |
90 | end; |
93 | end; |
91 | 94 | ||
92 | procedure TLevelData.Save(filename: string); |
95 | procedure TLevelData.Save(filename: string); |
- | 96 | var |
|
- | 97 | sl: TStringList; |
|
- | 98 | i: integer; |
|
- | 99 | begin |
|
- | 100 | sl := TStringList.Create; |
|
- | 101 | try |
|
- | 102 | sl.Add('; SpaceMission 1.0'); |
|
- | 103 | sl.Add('; LEV-File'); |
|
- | 104 | sl.Add(IntToStr(LevelEditorLength)); |
|
- | 105 | for i := 0 to Length(EnemyAdventTable)-1 do |
|
93 | begin |
106 | begin |
94 | // TODO: Implement and use everywhere (Hint: Search for FCompVersion)! |
107 | sl.Add(IntToStr(Ord(EnemyAdventTable[i].enemyType))); |
- | 108 | sl.Add(IntToStr(EnemyAdventTable[i].x)); |
|
- | 109 | sl.Add(IntToStr(EnemyAdventTable[i].y)); |
|
- | 110 | sl.Add(IntToStr(EnemyAdventTable[i].lifes)); |
|
- | 111 | end; |
|
- | 112 | sl.SaveToFile(filename); |
|
- | 113 | finally |
|
- | 114 | FreeAndNil(sl); |
|
- | 115 | end; |
|
95 | end; |
116 | end; |
96 | 117 | ||
97 | end. |
118 | end. |