Rev 31 | Rev 45 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 31 | Rev 40 | ||
---|---|---|---|
Line 50... | Line 50... | ||
50 | SpeicherungForm: TSpeicherungForm; |
50 | SpeicherungForm: TSpeicherungForm; |
51 | 51 | ||
52 | implementation |
52 | implementation |
53 | 53 | ||
54 | uses |
54 | uses |
55 | Global, GamMain, ComSaveGameReader, ActiveX, ShlObj; |
55 | Global, GamMain, ComLevelReader, ActiveX, ShlObj; |
56 | 56 | ||
57 | {$R *.DFM} |
57 | {$R *.DFM} |
58 | 58 | ||
59 | const |
59 | const |
60 | FOLDERID_SavedGames: TGuid = '{4C5C32FF-BB9D-43b0-B5B4-2D72E54EAAA4}'; |
60 | FOLDERID_SavedGames: TGuid = '{4C5C32FF-BB9D-43b0-B5B4-2D72E54EAAA4}'; |
Line 170... | Line 170... | ||
170 | end; |
170 | end; |
171 | {if liu.visible or (LevelListBox.items.count=0) then |
171 | {if liu.visible or (LevelListBox.items.count=0) then |
172 | exit;} |
172 | exit;} |
173 | SavGame := TSaveData.Create; |
173 | SavGame := TSaveData.Create; |
174 | try |
174 | try |
175 | SavGame.Load(IncludeTrailingPathDelimiter(GetSpielstandVerzeichnis)+LevelListBox.Items.strings[LevelListBox.itemindex]+'.sav'); |
175 | SavGame.LoadFromFile(IncludeTrailingPathDelimiter(GetSpielstandVerzeichnis)+LevelListBox.Items.strings[LevelListBox.itemindex]+'.sav'); |
176 | mainform.FScore := SavGame.FScore; |
176 | mainform.FScore := SavGame.Score; |
177 | mainform.FLife := SavGame.FLife; |
177 | mainform.FLife := SavGame.Life; |
178 | mainform.FLevel := SavGame.FLevel; |
178 | mainform.FLevel := SavGame.Level; |
179 | mainform.FGameMode := SavGame.FGameMode; |
179 | mainform.FGameMode := SavGame.GameMode; |
- | 180 | MainForm.FLevelDataAlreadyLoaded := true; // do not call NewLevel() in StartSceneNewLevel |
|
- | 181 | if Assigned(SavGame.LevelData) then |
|
- | 182 | begin |
|
- | 183 | MainForm.LevelData.Assign(SavGame.LevelData); |
|
- | 184 | end; |
|
180 | finally |
185 | finally |
181 | FreeAndNil(SavGame); |
186 | FreeAndNil(SavGame); |
182 | end; |
187 | end; |
183 | mainform.playsound(smsSceneMov, false); |
188 | mainform.playsound(smsSceneMov, false); |
184 | mainform.FNextScene := gsNewLevel; |
189 | mainform.FNextScene := gsNewLevel; |
Line 220... | Line 225... | ||
220 | exit; |
225 | exit; |
221 | end; |
226 | end; |
222 | 227 | ||
223 | SavGame := TSaveData.Create; |
228 | SavGame := TSaveData.Create; |
224 | try |
229 | try |
225 | SavGame.FScore := mainform.FScore; |
230 | SavGame.Score := mainform.FScoreAtLevelStart;//mainform.FScore; |
226 | SavGame.FLife := mainform.FLife; |
231 | SavGame.Life := mainform.FLifeAtLevelStart;//mainform.FLife; |
227 | SavGame.FLevel := mainform.FLevel; |
232 | SavGame.Level := mainform.FLevel; |
228 | SavGame.FGameMode := mainform.FGameMode; |
233 | SavGame.GameMode := mainform.FGameMode; |
- | 234 | if not Assigned(SavGame.LevelData) then SavGame.LevelData := TLevelData.Create; |
|
- | 235 | SavGame.LevelData.Assign(mainForm.LevelData); |
|
229 | SavGame.Save(IncludeTrailingPathDelimiter(GetSpielstandVerzeichnis)+LevelName.text+'.sav'); |
236 | SavGame.SaveToFile(IncludeTrailingPathDelimiter(GetSpielstandVerzeichnis)+LevelName.text+'.sav'); |
230 | finally |
237 | finally |
231 | FreeAndNil(SavGame); |
238 | FreeAndNil(SavGame); |
232 | end; |
239 | end; |
233 | 240 | ||
234 | SearchSaves; |
241 | SearchSaves; |
Line 236... | Line 243... | ||
236 | 243 | ||
237 | procedure TSpeicherungForm.LevelListBoxClick(Sender: TObject); |
244 | procedure TSpeicherungForm.LevelListBoxClick(Sender: TObject); |
238 | var |
245 | var |
239 | SavGame: TSaveData; |
246 | SavGame: TSaveData; |
240 | Punkte, Leben, Level: integer; |
247 | Punkte, Leben, Level: integer; |
- | 248 | BeinhaltetLevelDaten: boolean; |
|
241 | Art: TGameMode; |
249 | Art: TGameMode; |
242 | begin |
250 | begin |
243 | ladenbtn.enabled := true; |
251 | ladenbtn.enabled := true; |
244 | loeschenbtn.enabled := true; |
252 | loeschenbtn.enabled := true; |
245 | li1.visible := false; |
253 | li1.visible := false; |
Line 265... | Line 273... | ||
265 | LevelName.Text := LevelListBox.Items.strings[LevelListBox.itemindex]; |
273 | LevelName.Text := LevelListBox.Items.strings[LevelListBox.itemindex]; |
266 | 274 | ||
267 | SavGame := TSaveData.Create; |
275 | SavGame := TSaveData.Create; |
268 | try |
276 | try |
269 | try |
277 | try |
270 | SavGame.Load(IncludeTrailingPathDelimiter(GetSpielstandVerzeichnis)+LevelListBox.Items.strings[LevelListBox.itemindex]+'.sav'); |
278 | SavGame.LoadFromFile(IncludeTrailingPathDelimiter(GetSpielstandVerzeichnis)+LevelListBox.Items.strings[LevelListBox.itemindex]+'.sav'); |
271 | Punkte := SavGame.FScore; |
279 | Punkte := SavGame.Score; |
272 | Leben := SavGame.FLife; |
280 | Leben := SavGame.Life; |
273 | Level := SavGame.FLevel; |
281 | Level := SavGame.Level; |
274 | Art := SavGame.FGameMode; |
282 | Art := SavGame.GameMode; |
- | 283 | BeinhaltetLevelDaten := Assigned(SavGame.LevelData); |
|
275 | except |
284 | except |
276 | liu.visible := true; |
285 | liu.visible := true; |
277 | ladenbtn.enabled := false; |
286 | ladenbtn.enabled := false; |
278 | exit; |
287 | exit; |
279 | end; |
288 | end; |
Line 286... | Line 295... | ||
286 | li3a.visible := true; |
295 | li3a.visible := true; |
287 | li3b.visible := true; |
296 | li3b.visible := true; |
288 | li4a.visible := true; |
297 | li4a.visible := true; |
289 | li4b.visible := true; |
298 | li4b.visible := true; |
290 | if Art = gmLevels then |
299 | if Art = gmLevels then |
291 | li1.caption := 'Das Level ist ein normales Level.' |
300 | li1.caption := 'Das Level ist ein norm. Level' |
292 | else |
301 | else |
293 | li1.caption := 'Das Level ist ein Zufallslevel.'; |
302 | li1.caption := 'Das Level ist ein Zufallslevel'; |
- | 303 | if BeinhaltetLevelDaten then |
|
- | 304 | li1.Caption := li1.Caption + ' mit Karte'; |
|
294 | li3b.caption := inttostr(Level); |
305 | li3b.caption := inttostr(Level); |
295 | li4b.caption := inttostr(Leben); |
306 | li4b.caption := inttostr(Leben); |
296 | li2b.caption := inttostr(Punkte); |
307 | li2b.caption := inttostr(Punkte); |
297 | end; |
308 | end; |
298 | 309 |