6,7 → 6,7 |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, MMSystem, |
Dialogs, StdCtrls, ExtCtrls, Menus, DIB, DXClass, DXSprite, DXDraws, |
DXSounds, Spin, ComCtrls{$IF CompilerVersion >= 23.0}, System.UITypes, |
WinAPI.DirectDraw{$ENDIF}, DirectX, ComLevelReader, Global; |
WinAPI.DirectDraw{$ENDIF}, DirectX, ComLevelReader, Global, IOUtils; |
|
type |
TMainForm = class(TDXForm) |
48,6 → 48,8 |
SidePanel: TPanel; |
LivesEdit: TSpinEdit; |
AlleLeveldateienaktualisieren1: TMenuItem; |
N2: TMenuItem; |
Leveltesten1: TMenuItem; |
procedure DXDrawFinalize(Sender: TObject); |
procedure DXDrawInitialize(Sender: TObject); |
procedure FormCreate(Sender: TObject); |
69,6 → 71,9 |
procedure ScrollBarScroll(Sender: TObject; ScrollCode: TScrollCode; |
var ScrollPos: Integer); |
procedure AlleLeveldateienaktualisieren1Click(Sender: TObject); |
procedure Leveltesten1Click(Sender: TObject); |
private |
function GetTestlevelFilename: string; |
public |
{ VCL-Ersatz } |
spriteengine: tdxspriteengine; |
105,7 → 110,7 |
implementation |
|
uses |
LevSplash, LevSpeicherung, ComInfo, LevOptions; |
LevSplash, LevSpeicherung, ComInfo, LevOptions, ShellAPI; |
|
{$R *.DFM} |
|
256,6 → 261,8 |
end; |
|
procedure TMainForm.FormDestroy(Sender: TObject); |
var |
tmp: string; |
begin |
FreeAndNil(dxdraw); |
FreeAndNil(LevData); |
262,6 → 269,10 |
//FreeAndNil(spriteengine); |
FreeAndNil(dxtimer); |
FreeAndNil(imagelist); |
tmp := GetTestlevelFilename; |
|
// SpaceMission.exe only loads a file once, so we can delete any test level |
if FileExists(tmp) then DeleteFile(GetTestlevelFilename); |
end; |
|
procedure TMainForm.BeendenClick(Sender: TObject); |
453,6 → 464,32 |
speicherungform.showmodal; |
end; |
|
procedure TMainForm.Leveltesten1Click(Sender: TObject); |
var |
sav: TSaveData; |
tmp: string; |
begin |
KillTask('SpaceMission.exe'); |
|
sav := TSaveData.Create; |
try |
sav.Score := 0; |
sav.Life := 6; |
if Assigned(SpeicherungForm) then |
sav.Level := SpeicherungForm.LevelNumber.Value |
else |
sav.Level := 1; |
sav.GameMode := gmLevels; |
sav.LevelData := TlevelData.Create; |
sav.LevelData.Assign(LevData); |
tmp := GetTestlevelFilename; |
sav.SaveToFile(tmp); |
ShellExecute(Handle, 'open', PChar(OwnDirectory+'SpaceMission.exe'), PChar('"'+tmp+'"'), PChar(OwnDirectory), SW_NORMAL); |
finally |
FreeAndNil(sav); |
end; |
end; |
|
procedure TMainForm.FormShow(Sender: TObject); |
begin |
if Assigned(SplashForm) then |
474,6 → 511,11 |
result := nil; |
end; |
|
function TMainForm.GetTestlevelFilename: string; |
begin |
result := IncludeTrailingPathDelimiter(TPath.GetTempPath) + 'SpaceMissionTest.sav'; |
end; |
|
procedure TMainForm.InformationenClick(Sender: TObject); |
begin |
mainform.dxtimer.enabled := false; |