55,7 → 55,7 |
implementation |
|
uses |
Global, LevMain; |
Global, LevMain, ComLevelReader; |
|
{$R *.DFM} |
|
127,8 → 127,7 |
var |
Markiert: boolean; |
i, TempArtMain, TempLiveMain: integer; |
SavGame: textfile; |
Ergebnis: array[1..5] of string; |
LevelData: TLevelData; |
begin |
Markiert := false; |
for i := 0 to LevelListBox.items.Count-1 do |
154,35 → 153,36 |
// Vorbereiten |
MainForm.DestroyLevel; |
MainForm.LevChanged := false; |
// Öffnen |
AssignFile(SavGame, FDirectory+'Levels\'+ |
LevelListBox.Items.strings[LevelListBox.itemindex]+'.lev'); |
Reset(SavGame); |
// Laden |
ReadLN(SavGame); // --> Copyrightinfo |
ReadLN(SavGame); // --> Copyrightinfo |
ReadLN(SavGame, Ergebnis[5]); // --> Länge der Karte |
MainForm.ScrollBar.Max := strtoint(Ergebnis[5]); |
|
LevelData := TLevelData.Create; |
try |
LevelData.Load(FDirectory+'Levels\'+LevelListBox.Items.strings[LevelListBox.itemindex]+'.lev'); |
MainForm.ScrollBar.Max := LevelData.LevelEditorLength; |
MainForm.Enemys.Clear; |
TempArtMain := MainForm.ArtChecked; |
TempLiveMain := MainForm.LiveEdit; |
while not seekEoF(SavGame) do |
MainForm.NumEnemys := Length(LevelData.EnemyAdventTable); |
for i := 0 to MainForm.NumEnemys-1 do |
begin |
ReadLN(SavGame, Ergebnis[3]); |
ReadLN(SavGame, Ergebnis[1]); |
ReadLN(SavGame, Ergebnis[2]); |
ReadLN(SavGame, Ergebnis[4]); |
MainForm.EnemyAdd(strtoint(Ergebnis[1]), strtoint(Ergebnis[2]), strtoint(Ergebnis[3]), strtoint(Ergebnis[4])); |
MainForm.ArtChecked := strtoint(Ergebnis[3]); |
MainForm.LiveEdit := strtoint(Ergebnis[4]); |
MainForm.EnemyCreate(strtoint(Ergebnis[1]), strtoint(Ergebnis[2])); |
inc(MainForm.NumEnemys); |
if Ergebnis[3] = '7' then MainForm.Boss := true; |
MainForm.EnemyAdd( |
LevelData.EnemyAdventTable[i].x, |
LevelData.EnemyAdventTable[i].y, |
Ord(LevelData.EnemyAdventTable[i].enemyType), |
LevelData.EnemyAdventTable[i].lifes |
); |
MainForm.ArtChecked := Ord(LevelData.EnemyAdventTable[i].enemyType); |
MainForm.LiveEdit := LevelData.EnemyAdventTable[i].lifes; |
MainForm.EnemyCreate( |
LevelData.EnemyAdventTable[i].x, |
LevelData.EnemyAdventTable[i].y |
); |
if LevelData.EnemyAdventTable[i].enemyType = etEnemyBoss then MainForm.Boss := true; |
end; |
finally |
FreeAndNil(LevelData); |
end; |
MainForm.LiveEdit := TempLiveMain; |
MainForm.ArtChecked := TempArtMain; |
// Schließen |
CloseFile(SavGame); |
// Nacharbeiten |
MainForm.AnzeigeAct; |
close; |
319,9 → 319,11 |
|
procedure TSpeicherungForm.LevelListBoxClick(Sender: TObject); |
var |
Ergebnis, boss, l, temp: string; |
SavGame: textfile; |
x, a: integer; |
LevelData: TLevelData; |
boss: boolean; |
i: Integer; |
temp: string; |
anzahlEinheiten: integer; |
begin |
li1a.visible := false; |
li2a.visible := false; |
340,45 → 342,26 |
end; |
temp := LevelListBox.Items.strings[LevelListBox.itemindex]; |
SpinEdit.Position := strtoint(RightStr(temp, length(temp)-6)); |
AssignFile(SavGame, FDirectory+'Levels\'+ |
LevelListBox.Items.strings[LevelListBox.itemindex]+'.lev'); |
Reset(SavGame); |
ReadLN(SavGame, Ergebnis); |
if Ergebnis <> '; SpaceMission '+FCompVersion then |
begin |
|
LevelData := TLevelData.Create; |
try |
try |
LevelData.Load(FDirectory+'Levels\'+LevelListBox.Items.strings[LevelListBox.itemindex]+'.lev'); |
except |
liu.visible := true; |
LadenBtn.enabled := false; |
CloseFile(SavGame); |
exit; |
end; |
ReadLN(SavGame, Ergebnis); |
if Ergebnis <> '; LEV-File' then |
|
boss := false; |
anzahlEinheiten := Length(LevelData.EnemyAdventTable); |
for i := 0 to anzahlEinheiten - 1 do |
begin |
liu.visible := true; |
LadenBtn.enabled := false; |
CloseFile(SavGame); |
exit; |
end; |
ReadLN(SavGame, l); |
x := 0; |
a := 0; |
boss := 'Nein'; |
while not SeekEOF(SavGame) do |
if LevelData.EnemyAdventTable[i].enemyType = etEnemyBoss then |
begin |
ReadLN(SavGame, Ergebnis); |
inc(a); |
if a = 5 then a := 1; |
if (a = 1) and (Ergebnis = '7') then boss := 'Ja'; |
inc(x); |
boss := true; |
end; |
CloseFile(SavGame); |
if a <> 4 then |
begin |
liu.visible := true; |
LadenBtn.enabled := false; |
end |
else |
begin |
end; |
|
li1a.visible := true; |
li2a.visible := true; |
li3a.visible := true; |
387,9 → 370,14 |
li3b.visible := true; |
LadenBtn.enabled := true; |
LoeschenBtn.enabled := true; |
li1b.caption := inttostr(trunc(x / 4)); |
li2b.caption := boss; |
li3b.caption := l + ' Felder'; |
li1b.caption := inttostr(anzahlEinheiten); |
if boss then |
li2b.caption := 'Ja' |
else |
li2b.caption := 'Nein'; |
li3b.caption := IntToStr(LevelData.LevelEditorLength) + ' Felder'; |
finally |
FreeAndNil(LevelData); |
end; |
end; |
|