Subversion Repositories spacemission

Rev

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