47,6 → 47,7 |
Spielfelderweitern1: TMenuItem; |
SidePanel: TPanel; |
LivesEdit: TSpinEdit; |
AlleLeveldateienaktualisieren1: TMenuItem; |
procedure DXDrawFinalize(Sender: TObject); |
procedure DXDrawInitialize(Sender: TObject); |
procedure FormCreate(Sender: TObject); |
67,6 → 68,7 |
procedure Spielfelderweitern1Click(Sender: TObject); |
procedure ScrollBarScroll(Sender: TObject; ScrollCode: TScrollCode; |
var ScrollPos: Integer); |
procedure AlleLeveldateienaktualisieren1Click(Sender: TObject); |
public |
{ VCL-Ersatz } |
spriteengine: tdxspriteengine; |
85,6 → 87,7 |
{ Level-Routinen } |
procedure EnemyCreateSprite(x, y: integer; AEnemyType: TEnemyType; ALives: integer); |
procedure DestroyLevel; |
procedure RefreshFromLevData; |
procedure AnzeigeAct; |
{ Initialisiations-Routinen } |
procedure DXInit; |
179,8 → 182,6 |
procedure TMainForm.FormCreate(Sender: TObject); |
resourcestring |
SFileError = 'Die Datei kann von SpaceMission nicht geƶffnet werden!'; |
var |
LevelData: TLevelData; |
begin |
{ VCL-Ersatz start } |
dxtimer := tdxtimer.create(self); |
231,24 → 232,24 |
//Application.Title := 'SpaceMission '+ProgramVersion+' - Leveleditor'; |
Caption := 'SpaceMission '+ProgramVersion+' - Leveleditor'; |
DXInit; |
LevData := TLevelData.create; |
ProgramInit; |
DestroyLevel; |
if (paramcount > 0) and (fileexists(paramstr(1))) then |
begin |
LevelData := TLevelData.Create; |
try |
try |
LevelData.Load(paramstr(1)); |
LevData.Load(paramstr(1)); |
except |
showmessage(SFileError); |
ProgramInit; |
exit; |
on E: Exception do |
begin |
showmessage(SFileError + ' ' +E.Message); |
DestroyLevel; |
end; |
finally |
FreeAndNil(LevelData); |
end; |
{ Laden } |
exit; |
RefreshFromLevData; |
LevChanged := false; |
AnzeigeAct; |
end; |
ProgramInit; |
end; |
|
procedure TMainForm.FormDestroy(Sender: TObject); |
340,7 → 341,6 |
{var |
i, j: Integer;} |
begin |
LevData := TLevelData.create; |
sleep(500); |
//PlayerSprite |
with TBackground.Create(SpriteEngine.Engine) do |
426,6 → 426,25 |
mainform.Visible := true; |
end; |
|
procedure TMainForm.RefreshFromLevData; |
var |
i: integer; |
begin |
MainForm.ScrollBar.Max := MainForm.LevData.LevelEditorLength; |
for i := 0 to MainForm.LevData.CountEnemies - 1 do |
begin |
MainForm.EnemyCreateSprite( |
MainForm.LevData.EnemyAdventTable[i].x, |
MainForm.LevData.EnemyAdventTable[i].y, |
MainForm.LevData.EnemyAdventTable[i].enemyType, |
MainForm.LevData.EnemyAdventTable[i].lifes |
); |
end; |
MainForm.NumEnemys := MainForm.LevData.CountEnemies; |
MainForm.Boss := MainForm.LevData.HasBoss; |
AnzeigeAct; |
end; |
|
procedure TMainForm.LevelClick(Sender: TObject); |
begin |
speicherungform.showmodal; |
576,7 → 595,7 |
ScrollBar.Position := 0; // this doesn't call ScrollBarScroll() |
ScrollP := 0; |
LevData.Clear; |
ScrollBar.Max := MainForm.LevData.LevelEditorLength; |
ScrollBar.Max := LevData.LevelEditorLength; |
NumEnemys := 0; |
Boss := false; |
LevChanged := true; |
586,6 → 605,21 |
AnzeigeAct; |
end; |
|
procedure TMainForm.AlleLeveldateienaktualisieren1Click(Sender: TObject); |
var |
i: integer; |
begin |
// Just for internal/development purposes |
for i := 1 to 9999 do |
begin |
if FileExists('Levels\Level '+IntToStr(i)+'.lev') then |
begin |
LevData.Load('Levels\Level '+IntToStr(i)+'.lev'); |
LevData.Save('Levels\Level '+IntToStr(i)+'.lev'); |
end; |
end; |
end; |
|
procedure TMainForm.AnzeigeAct; |
begin |
SLabel1b.Caption := inttostr(NumEnemys); |
685,7 → 719,7 |
|
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); |
begin |
if LevChanged then |
if Assigned(LevData) and LevChanged and (LevData.CountEnemies>0) then |
CanClose := MessageDlg('Beenden ohne abspeichern?', mtConfirmation, mbYesNoCancel, 0) = mrYes; |
end; |
|