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 248... | Line 248... | ||
248 | result := temp; |
248 | result := temp; |
249 | end; |
249 | end; |
250 | 250 | ||
251 | procedure TSpeicherungForm.SpeichernBtnClick(Sender: TObject); |
251 | procedure TSpeicherungForm.SpeichernBtnClick(Sender: TObject); |
252 | var |
252 | var |
253 | SavGame: textfile; |
253 | LevelData: TLevelData; |
254 | i, j: integer; |
254 | i, j: integer; |
255 | puffer: string; |
255 | puffer: string; |
256 | begin |
256 | begin |
257 | if mainform.Enemys.count = 0 then |
257 | if mainform.Enemys.count = 0 then |
258 | begin |
258 | begin |
Line 280... | Line 280... | ||
280 | if LevelListBox.items.IndexOf('Level ' + inttostr(SpinEdit.Position)) > -1 then |
280 | if LevelListBox.items.IndexOf('Level ' + inttostr(SpinEdit.Position)) > -1 then |
281 | begin |
281 | begin |
282 | if MessageDlg('Level ist bereits vorhanden. Ersetzen?', mtConfirmation, [mbYes, mbNo], 0) = mrNo then |
282 | if MessageDlg('Level ist bereits vorhanden. Ersetzen?', mtConfirmation, [mbYes, mbNo], 0) = mrNo then |
283 | exit; |
283 | exit; |
284 | end; |
284 | end; |
285 | // Öffnen oder erstellen |
- | |
286 | AssignFile(SavGame, FDirectory+'Levels\Level '+inttostr(SpinEdit.Position)+'.lev'); |
- | |
287 | Rewrite(SavGame); |
- | |
- | 285 | ||
288 | // Sortierung |
286 | // Sortierung (wichtig) |
289 | for j := 0 to mainform.enemys.Count - 2 do |
287 | for j := 0 to mainform.enemys.Count - 2 do |
290 | begin |
288 | begin |
291 | for i := 0 to mainform.enemys.Count - 2 do |
289 | for i := 0 to mainform.enemys.Count - 2 do |
292 | begin |
290 | begin |
293 | if strtoint(filter(1, mainform.enemys.Strings[i])) > strtoint(filter(1, mainform.enemys.Strings[i + 1])) then |
291 | if strtoint(filter(1, mainform.enemys.Strings[i])) > strtoint(filter(1, mainform.enemys.Strings[i + 1])) then |
Line 296... | Line 294... | ||
296 | mainform.enemys.Strings[i] := mainform.enemys.Strings[i + 1]; |
294 | mainform.enemys.Strings[i] := mainform.enemys.Strings[i + 1]; |
297 | mainform.enemys.Strings[i + 1] := puffer; |
295 | mainform.enemys.Strings[i + 1] := puffer; |
298 | end; |
296 | end; |
299 | end; |
297 | end; |
300 | end; |
298 | end; |
- | 299 | ||
301 | // Speichern |
300 | // Speichern |
302 | WriteLN(SavGame, '; SpaceMission ' + FCompVersion); |
301 | LevelData := TLevelData.Create; |
- | 302 | try |
|
303 | WriteLN(SavGame, '; LEV-File'); |
303 | LevelData.LevelEditorLength := MainForm.ScrollBar.Max; |
304 | WriteLN(SavGame, inttostr(MainForm.ScrollBar.Max)); // --> Länge der Karte |
304 | SetLength(LevelData.EnemyAdventTable, mainform.enemys.count); |
305 | for i := 0 to mainform.enemys.count-1 do |
305 | for i := 0 to mainform.enemys.count-1 do |
306 | begin |
306 | begin |
307 | WriteLN(SavGame, filter(3, mainform.enemys.Strings[i])); |
307 | LevelData.EnemyAdventTable[i].enemyType := TEnemyType(StrToInt(filter(3, mainform.enemys.Strings[i]))); |
308 | WriteLN(SavGame, filter(1, mainform.enemys.Strings[i])); |
308 | LevelData.EnemyAdventTable[i].x := StrToInt(filter(1, mainform.enemys.Strings[i])); |
309 | WriteLN(SavGame, filter(2, mainform.enemys.Strings[i])); |
309 | LevelData.EnemyAdventTable[i].y := StrToInt(filter(2, mainform.enemys.Strings[i])); |
310 | WriteLN(SavGame, filter(4, mainform.enemys.Strings[i])); |
310 | LevelData.EnemyAdventTable[i].lifes := StrToInt(filter(4, mainform.enemys.Strings[i])); |
311 | end; |
311 | end; |
- | 312 | LevelData.Save(FDirectory+'Levels\Level '+inttostr(SpinEdit.Position)+'.lev'); |
|
312 | // Schließen |
313 | finally |
313 | CloseFile(SavGame); |
314 | FreeAndNil(LevelData); |
- | 315 | end; |
|
- | 316 | ||
314 | // Nacharbeiten |
317 | // Nacharbeiten |
315 | MainForm.LevChanged := false; |
318 | MainForm.LevChanged := false; |
316 | MainForm.AnzeigeAct; |
319 | MainForm.AnzeigeAct; |
317 | SearchLevels; |
320 | SearchLevels; |
318 | end; |
321 | end; |
Line 424... | Line 427... | ||
424 | end; |
427 | end; |
425 | 428 | ||
426 | procedure TSpeicherungForm.SpinEditEdtKeyPress(Sender: TObject; |
429 | procedure TSpeicherungForm.SpinEditEdtKeyPress(Sender: TObject; |
427 | var Key: Char); |
430 | var Key: Char); |
428 | begin |
431 | begin |
- | 432 | {$IFDEF UNICODE} |
|
- | 433 | if not CharInSet(Key, [#13, #08, '0'..'9']) then |
|
- | 434 | {$ELSE} |
|
429 | if not (Key in [#13, #08, '0'..'9']) then |
435 | if not (Key in [#13, #08, '0'..'9']) then |
- | 436 | {$ENDIF} |
|
430 | Key := #0; |
437 | Key := #0; |
431 | end; |
438 | end; |
432 | 439 | ||
433 | procedure TSpeicherungForm.SpinEditEdtChange(Sender: TObject); |
440 | procedure TSpeicherungForm.SpinEditEdtChange(Sender: TObject); |
434 | begin |
441 | begin |