5,7 → 5,7 |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, MMSystem, Dialogs, |
StdCtrls, ExtCtrls, Menus, DIB, DXClass, DXSprite, DXDraws, DXInput, |
DXSounds, INIFiles, ShellAPI, wininet, Winapi.DirectDraw, System.UITypes; |
DXSounds, INIFiles, ShellAPI, wininet; |
|
type |
TGameScene = ( |
213,6 → 213,7 |
Leer4: TMenuItem; |
Hilfe: TMenuItem; |
OptionSound: TMenuItem; |
Mitarbeiter: TMenuItem; |
Leer3: TMenuItem; |
Spielstand: TMenuItem; |
Leer5: TMenuItem; |
242,6 → 243,7 |
procedure OptionSoundClick(Sender: TObject); |
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); |
procedure OptionMusicClick(Sender: TObject); |
procedure MitarbeiterClick(Sender: TObject); |
procedure SpielstandClick(Sender: TObject); |
procedure NeustartClick(Sender: TObject); |
procedure OptionBreitbildClick(Sender: TObject); |
331,7 → 333,6 |
MainForm: TMainForm; |
|
const |
// TODO: ini file |
conleicht = 650 div 60; // 10 |
conmittel = 1000 div 60; // 16 |
conschwer = 1350 div 60; // 22 |
341,7 → 342,7 |
implementation |
|
uses |
GamSplash, GamSpeicherung, ComInfo, GamCheat, Global; |
GamSplash, GamSpeicherung, ComInfo, ComText, GamCheat, Global; |
|
resourcestring |
FileError = 'Die Datei kann von SpaceMission nicht geöffnet werden!'; |
348,6 → 349,8 |
|
{$R *.DFM} |
|
{$R WindowsXP.res} |
|
var // TODO: irgendwo hinpacken. irgendwo!!! |
EnemyAdventTable: array[0..9999] of TEnemyAdvent; // TODO: dyn |
Crash2, ec: integer; |
370,8 → 373,6 |
PLAYER_MODE_FLYAWAY = 3; |
PLAYER_MODE_ENTER = 4; |
|
DEFAULT_ANIMSPEED = 15/1000; |
|
// TODO: Code komplett überarbeiten. Bessere Ableitungen machen |
|
constructor TPlayerSprite.Create(AParent: TSprite); |
385,7 → 386,7 |
Z := 2; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
FMode := PLAYER_MODE_ENTER; |
end; |
|
410,7 → 411,7 |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := False; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
AnimPos := 0; |
end; |
end |
522,7 → 523,7 |
dxdraw.autosize := false; |
dxdraw.Top := 0; |
dxdraw.Left := 0; |
dxdraw.width := 640; // TODO: besser die dimensionen des fensters |
dxdraw.width := 640; |
dxdraw.height := 480; |
dxdraw.surfacewidth := 640; |
dxdraw.surfaceheight := 480; |
544,7 → 545,7 |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
MainForm.PlaySound('Shoot', False); |
end; |
|
666,7 → 667,7 |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
AnimPos := Random(AnimCount); |
end; |
|
685,7 → 686,7 |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
MainForm.PlaySound('Shoot', False); |
end; |
|
721,7 → 722,7 |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
end; |
|
751,7 → 752,7 |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := False; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
AnimPos := 0; |
end else |
begin |
801,7 → 802,7 |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := False; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
AnimPos := 0; |
end else |
begin |
818,7 → 819,7 |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
end; |
|
846,7 → 847,7 |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
PixelCheck := True; |
FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
end; |
864,7 → 865,7 |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := False; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
AnimPos := 0; |
end else |
begin |
898,7 → 899,7 |
MainForm.PlayMusic(mtBoss); |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
PixelCheck := True; |
Collisioned := False; |
FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
1005,7 → 1006,7 |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
PixelCheck := True; |
FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
end; |
1023,7 → 1024,7 |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := False; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
AnimPos := 0; |
end else |
begin |
1095,7 → 1096,7 |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := False; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
AnimPos := 0; |
end else |
begin |
1138,7 → 1139,7 |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
PixelCheck := True; |
FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
end; |
1179,7 → 1180,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.TabOrder := 0; |
dxdraw.Visible := true; |
dxdraw.OnFinalize := DXDrawFinalize; |
2342,6 → 2343,25 |
writeoptions; |
end; |
|
procedure TMainForm.MitarbeiterClick(Sender: TObject); |
resourcestring |
LNG_NOTFOUND = 'Die Datei "Texte\Mitwirkende.txt" ist nicht mehr vorhanden. Die Aktion wird abgebrochen!'; |
const |
MitwirkendeTxt = 'Texte\Mitwirkende.txt'; |
begin |
if not fileexists(fdirectory+MitwirkendeTxt) then |
begin |
MessageDLG(Format(LNG_NOTFOUND, [MitwirkendeTxt]), mtWarning, [mbOK], 0); |
Exit; |
end; |
|
TextForm.memo1.lines.loadfromfile(FDirectory+MitwirkendeTxt); |
|
dxtimer.enabled := false; |
TextForm.ShowModal; |
if not mainform.gamepause.checked then mainform.dxtimer.enabled := true; |
end; |
|
procedure TEnemyMeteor.DoMove(MoveCount: Integer); |
begin |
X := X - MoveCount*(250/1000); |
2384,7 → 2404,7 |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimSpeed := 15/1000; |
PixelCheck := True; |
end; |
|