Rev 6 | Rev 24 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6 | Rev 15 | ||
---|---|---|---|
Line 48... | Line 48... | ||
48 | SpeicherungForm: TSpeicherungForm; |
48 | SpeicherungForm: TSpeicherungForm; |
49 | 49 | ||
50 | implementation |
50 | implementation |
51 | 51 | ||
52 | uses |
52 | uses |
53 | Global, GamMain; |
53 | Global, GamMain, ComSaveGameReader; |
54 | 54 | ||
55 | {$R *.DFM} |
55 | {$R *.DFM} |
56 | 56 | ||
57 | procedure TSpeicherungForm.SearchSaves; |
57 | procedure TSpeicherungForm.SearchSaves; |
58 | var |
58 | var |
Line 125... | Line 125... | ||
125 | 125 | ||
126 | procedure TSpeicherungForm.LadenBtnClick(Sender: TObject); |
126 | procedure TSpeicherungForm.LadenBtnClick(Sender: TObject); |
127 | var |
127 | var |
128 | Markiert: boolean; |
128 | Markiert: boolean; |
129 | i: integer; |
129 | i: integer; |
130 | SavGame: textfile; |
130 | SavGame: TSaveData; |
131 | begin |
131 | begin |
132 | Markiert := false; |
132 | Markiert := false; |
133 | for i := 0 to LevelListBox.items.Count-1 do |
133 | for i := 0 to LevelListBox.items.Count-1 do |
134 | begin |
134 | begin |
135 | if LevelListBox.Selected[i] then Markiert := true; |
135 | if LevelListBox.Selected[i] then Markiert := true; |
Line 153... | Line 153... | ||
153 | LadenBtn.enabled := false; |
153 | LadenBtn.enabled := false; |
154 | LoeschenBtn.enabled := false; |
154 | LoeschenBtn.enabled := false; |
155 | end; |
155 | end; |
156 | {if liu.visible or (LevelListBox.items.count=0) then |
156 | {if liu.visible or (LevelListBox.items.count=0) then |
157 | exit;} |
157 | exit;} |
- | 158 | SavGame := TSaveData.Create; |
|
- | 159 | try |
|
158 | AssignFile(SavGame, FDirectory+'Spielstände\'+LevelListBox.Items.strings[LevelListBox.itemindex]+'.sav'); |
160 | SavGame.Load(FDirectory+'Spielstände\'+LevelListBox.Items.strings[LevelListBox.itemindex]+'.sav'); |
159 | Reset(SavGame); |
- | |
160 | ReadLN(SavGame); |
- | |
161 | ReadLN(SavGame); |
- | |
162 | ReadLN(SavGame, mainform.FScore); |
161 | mainform.FScore := SavGame.FScore; |
163 | ReadLN(SavGame, mainform.FLife); |
162 | mainform.FLife := SavGame.FLife; |
164 | ReadLN(SavGame, mainform.Flevel); |
163 | mainform.FLevel := SavGame.FLevel; |
165 | ReadLN(SavGame, mainform.FMenuItem); |
164 | mainform.FGameMode := SavGame.FGameMode; |
- | 165 | finally |
|
166 | CloseFile(SavGame); |
166 | FreeAndNil(SavGame); |
- | 167 | end; |
|
167 | mainform.playsound('SceneMov', false); |
168 | mainform.playsound('SceneMov', false); |
168 | mainform.FNextScene := gsNewLevel; |
169 | mainform.FNextScene := gsNewLevel; |
169 | mainform.FCheat := false; |
170 | mainform.FCheat := false; |
170 | close; |
171 | close; |
171 | end; |
172 | end; |
172 | 173 | ||
173 | procedure TSpeicherungForm.SpeichernBtnClick(Sender: TObject); |
174 | procedure TSpeicherungForm.SpeichernBtnClick(Sender: TObject); |
174 | var |
175 | var |
175 | SavGame: textfile; |
176 | SavGame: TSaveData; |
176 | i: integer; |
177 | i: integer; |
177 | begin |
178 | begin |
178 | if Levelname.text = '' then |
179 | if Levelname.text = '' then |
179 | begin |
180 | begin |
180 | MessageDlg('Dies ist kein gültiger Spielstandname!', mtError, [mbOK], 0); |
181 | MessageDlg('Dies ist kein gültiger Spielstandname!', mtError, [mbOK], 0); |
Line 201... | Line 202... | ||
201 | if LevelListBox.items.IndexOf(LevelName.text) > -1 then |
202 | if LevelListBox.items.IndexOf(LevelName.text) > -1 then |
202 | begin |
203 | begin |
203 | if MessageDlg('Spielstand ist bereits vorhanden. Ersetzen?', mtConfirmation, [mbYes, mbNo], 0) = mrNo then |
204 | if MessageDlg('Spielstand ist bereits vorhanden. Ersetzen?', mtConfirmation, [mbYes, mbNo], 0) = mrNo then |
204 | exit; |
205 | exit; |
205 | end; |
206 | end; |
- | 207 | ||
206 | AssignFile(SavGame, FDirectory+'Spielstände\'+LevelName.text+'.sav'); |
208 | SavGame := TSaveData.Create; |
207 | Rewrite(SavGame); |
209 | try |
208 | WriteLN(SavGame, '; SpaceMission '+FCompVersion); |
210 | SavGame.FScore := mainform.FScore; |
209 | WriteLN(SavGame, '; SAV-File'); |
- | |
210 | WriteLN(SavGame, mainform.FScore); |
211 | SavGame.FLife := mainform.FLife; |
211 | WriteLN(SavGame, mainform.FLife); |
212 | SavGame.FLevel := mainform.FLevel; |
212 | WriteLN(SavGame, mainform.FLevel); |
213 | SavGame.FGameMode := mainform.FGameMode; |
213 | WriteLN(SavGame, mainform.FMenuItem); |
214 | SavGame.Save(FDirectory+'Spielstände\'+LevelName.text+'.sav'); |
- | 215 | finally |
|
214 | CloseFile(SavGame); |
216 | FreeAndNil(SavGame); |
- | 217 | end; |
|
- | 218 | ||
215 | SearchSaves; |
219 | SearchSaves; |
216 | end; |
220 | end; |
217 | 221 | ||
218 | procedure TSpeicherungForm.LevelListBoxClick(Sender: TObject); |
222 | procedure TSpeicherungForm.LevelListBoxClick(Sender: TObject); |
219 | var |
223 | var |
220 | Ergebniss: String; |
- | |
221 | SavGame: textfile; |
224 | SavGame: TSaveData; |
222 | Punkte, Leben, Level, Art: integer; |
225 | Punkte, Leben, Level: integer; |
- | 226 | Art: TGameMode; |
|
223 | begin |
227 | begin |
224 | ladenbtn.enabled := true; |
228 | ladenbtn.enabled := true; |
225 | loeschenbtn.enabled := true; |
229 | loeschenbtn.enabled := true; |
226 | li1.visible := false; |
230 | li1.visible := false; |
227 | li2a.visible := false; |
231 | li2a.visible := false; |
Line 242... | Line 246... | ||
242 | loeschenbtn.enabled := false; |
246 | loeschenbtn.enabled := false; |
243 | liw.visible := true; |
247 | liw.visible := true; |
244 | exit; |
248 | exit; |
245 | end; |
249 | end; |
246 | LevelName.Text := LevelListBox.Items.strings[LevelListBox.itemindex]; |
250 | LevelName.Text := LevelListBox.Items.strings[LevelListBox.itemindex]; |
- | 251 | ||
- | 252 | SavGame := TSaveData.Create; |
|
- | 253 | try |
|
- | 254 | try |
|
247 | AssignFile(SavGame, FDirectory+'Spielstände\'+LevelListBox.Items.strings[LevelListBox.itemindex]+'.sav'); |
255 | SavGame.Load(FDirectory+'Spielstände\'+LevelListBox.Items.strings[LevelListBox.itemindex]+'.sav'); |
- | 256 | Punkte := SavGame.FScore; |
|
248 | Reset(SavGame); |
257 | Leben := SavGame.FLife; |
249 | ReadLN(SavGame, Ergebniss); |
258 | Level := SavGame.FLevel; |
250 | if Ergebniss <> '; SpaceMission '+FCompVersion then |
259 | Art := SavGame.FGameMode; |
251 | begin |
260 | except |
252 | liu.visible := true; |
261 | liu.visible := true; |
253 | ladenbtn.enabled := false; |
262 | ladenbtn.enabled := false; |
254 | CloseFile(SavGame); |
- | |
255 | exit; |
263 | exit; |
256 | end; |
264 | end; |
257 | ReadLN(SavGame, Ergebniss); |
- | |
258 | if Ergebniss <> '; SAV-File' then |
- | |
259 | begin |
265 | finally |
260 | liu.visible := true; |
- | |
261 | ladenbtn.enabled := false; |
- | |
262 | CloseFile(SavGame); |
266 | FreeAndNil(SavGame); |
263 | exit; |
- | |
264 | end; |
267 | end; |
265 | ReadLN(SavGame, Punkte); |
- | |
266 | ReadLN(SavGame, Leben); |
- | |
267 | ReadLN(SavGame, Level); |
- | |
268 | ReadLN(SavGame, Art); |
- | |
269 | CloseFile(SavGame); |
- | |
270 | li1.visible := true; |
268 | li1.visible := true; |
271 | li2a.visible := true; |
269 | li2a.visible := true; |
272 | li2b.visible := true; |
270 | li2b.visible := true; |
273 | li3a.visible := true; |
271 | li3a.visible := true; |
274 | li3b.visible := true; |
272 | li3b.visible := true; |
275 | li4a.visible := true; |
273 | li4a.visible := true; |
276 | li4b.visible := true; |
274 | li4b.visible := true; |
277 | if Art = 1 then |
275 | if Art = gmLevels then |
278 | li1.caption := 'Das Level ist ein normales Level.' |
276 | li1.caption := 'Das Level ist ein normales Level.' |
279 | else |
277 | else |
280 | li1.caption := 'Das Level ist ein Zufallslevel.'; |
278 | li1.caption := 'Das Level ist ein Zufallslevel.'; |
281 | li3b.caption := inttostr(Level); |
279 | li3b.caption := inttostr(Level); |
282 | li4b.caption := inttostr(Leben); |
280 | li4b.caption := inttostr(Leben); |