5,8 → 5,7 |
uses |
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{$ELSE}, DirectX{$IFEND}; |
DXSounds, Spin, ComCtrls, PjVersionInfo; |
|
type |
TMainForm = class(TDXForm) |
14,9 → 13,11 |
Spiel: TMenuItem; |
Beenden: TMenuItem; |
Hilfe: TMenuItem; |
Mitarbeiter: TMenuItem; |
Leer1: TMenuItem; |
Level: TMenuItem; |
Informationen: TMenuItem; |
Leer2: TMenuItem; |
Enemy1: TRadioButton; |
Enemy2: TRadioButton; |
Enemy3: TRadioButton; |
54,6 → 55,7 |
procedure DXTimerTimer(Sender: TObject; LagCount: Integer); |
procedure BeendenClick(Sender: TObject); |
procedure FormDestroy(Sender: TObject); |
procedure MitarbeiterClick(Sender: TObject); |
procedure LevelClick(Sender: TObject); |
procedure FormShow(Sender: TObject); |
procedure InformationenClick(Sender: TObject); |
76,10 → 78,13 |
public |
{ VCL-Ersatz } |
spriteengine: tdxspriteengine; |
versioninfo: tpjversioninfo; |
dxtimer: tdxtimer; |
imagelist: tdximagelist; |
dxdraw: tdxdraw; |
{ Variablen } |
FDirectory: string; |
FEngineVersion: string; |
FMenuItem: integer; |
Enemys: TStrings; |
ArtChecked: integer; |
106,10 → 111,13 |
var |
MainForm: TMainForm; |
|
const |
FCompVersion = '1.0'; |
|
implementation |
|
uses |
Global, LevSplash, LevSpeicherung, ComInfo, LevSource, LevOptions; |
LevSplash, LevSpeicherung, LevText, LevInfo, LevSource, LevOptions; |
|
const |
FileError = 'Die Datei kann von SpaceMission nicht geöffnet werden!'; |
121,6 → 129,8 |
|
{$R *.DFM} |
|
{$R WindowsXP.res} |
|
type |
TBackground = class(TBackgroundSprite) |
protected |
187,9 → 197,14 |
var |
Ergebnis: string; |
daten: textfile; |
i: integer; |
punkt: integer; |
ok: boolean; |
begin |
{ VCL-Ersatz start } |
|
versioninfo := tpjversioninfo.create(self); |
|
dxtimer := tdxtimer.create(self); |
dxtimer.Interval := 100; |
dxtimer.ActiveOnly := false; |
211,7 → 226,7 |
dxdraw.Display.FixedSize := False; |
dxdraw.Display.Height := 600; |
dxdraw.Display.Width := 800; |
dxdraw.Options := [doAllowReboot, doWaitVBlank, doAllowPalette256, doCenter, {doRetainedMode,} doHardware, doSelectDriver]; |
dxdraw.Options := [doAllowReboot, doWaitVBlank, doAllowPalette256, doCenter, doRetainedMode, doHardware, doSelectDriver]; |
dxdraw.OnFinalize := DXDrawFinalize; |
dxdraw.OnInitialize := DXDrawInitialize; |
dxdraw.ParentShowHint := False; |
232,9 → 247,17 |
LiveEdit := 1; |
// Leeres Level am Anfang braucht keine Beenden-Bestätigung. |
// LevChanged := true; |
|
//Application.Title := 'SpaceMission '+ProgramVersion+' - Leveleditor'; |
Caption := 'SpaceMission '+ProgramVersion+' - Leveleditor'; |
punkt := 0; |
FDirectory := extractfilepath(paramstr(0)); |
versioninfo.filename := paramstr(0); |
for i := 1 to length(versioninfo.ProductVersion) do |
begin |
if copy(versioninfo.ProductVersion, i, 1) = '.' then inc(punkt); |
if punkt < 2 then fengineversion := |
fengineversion+copy(versioninfo.ProductVersion, i, 1); |
end; |
//Application.Title := 'SpaceMission '+FEngineVersion+' - Leveleditor'; |
Caption := 'SpaceMission '+FEngineVersion+' - Leveleditor'; |
DXInit; |
if (paramcount > 0) and (fileexists(paramstr(1))) then |
begin |
267,6 → 290,7 |
begin |
Enemys.Free; |
//spriteengine.Free; |
versioninfo.free; |
dxtimer.Free; |
imagelist.Free; |
dxdraw.free; |
438,6 → 462,20 |
mainform.Visible := true; |
end; |
|
procedure TMainForm.MitarbeiterClick(Sender: TObject); |
begin |
if not fileexists(mainform.fdirectory+'Texte\Mitwirkende.txt') then |
begin |
MessageDLG('Die Datei "Texte\Mitwirkende.txt" ist nicht mehr vorhanden. Die Aktion wird abgebrochen!', |
mtWarning, [mbOK], 0); |
end |
else |
begin |
TextForm.memo1.lines.loadfromfile(mainform.FDirectory+'Texte\Mitwirkende.txt'); |
TextForm.showmodal; |
end; |
end; |
|
procedure TMainForm.LevelClick(Sender: TObject); |
begin |
speicherungform.showmodal; |
454,9 → 492,7 |
|
procedure TMainForm.InformationenClick(Sender: TObject); |
begin |
mainform.dxtimer.enabled := false; |
InfoForm.showmodal; |
mainform.dxtimer.enabled := true; |
end; |
|
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction); |
595,8 → 631,7 |
|
procedure TMainForm.DestroyLevel; |
begin |
ScrollBar.Position := 0; // this doesn't call ScrollBarScroll() |
ScrollP := 0; |
ScrollBar.Position := 0; |
Enemys.Clear; |
NumEnemys := 0; |
Boss := false; |