Subversion Repositories spacemission

Rev

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);