Rev 3 | Rev 6 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3 | Rev 4 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | interface |
3 | interface |
4 | 4 | ||
5 | uses |
5 | uses |
6 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, MMSystem, Dialogs, |
6 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, MMSystem, Dialogs, |
7 | StdCtrls, ExtCtrls, Menus, DIB, DXClass, DXSprite, DXDraws, DXInput, |
7 | StdCtrls, ExtCtrls, Menus, DIB, DXClass, DXSprite, DXDraws, DXInput, |
8 | DXSounds, INIFiles, ShellAPI, wininet; |
8 | DXSounds, INIFiles, ShellAPI, wininet, Winapi.DirectDraw, System.UITypes; |
9 | 9 | ||
10 | type |
10 | type |
11 | TGameScene = ( |
11 | TGameScene = ( |
12 | gsNone, |
12 | gsNone, |
13 | gsTitle, |
13 | gsTitle, |
Line 211... | Line 211... | ||
211 | OptionMusic: TMenuItem; |
211 | OptionMusic: TMenuItem; |
212 | Leer2: TMenuItem; |
212 | Leer2: TMenuItem; |
213 | Leer4: TMenuItem; |
213 | Leer4: TMenuItem; |
214 | Hilfe: TMenuItem; |
214 | Hilfe: TMenuItem; |
215 | OptionSound: TMenuItem; |
215 | OptionSound: TMenuItem; |
216 | Mitarbeiter: TMenuItem; |
- | |
217 | Leer3: TMenuItem; |
216 | Leer3: TMenuItem; |
218 | Spielstand: TMenuItem; |
217 | Spielstand: TMenuItem; |
219 | Leer5: TMenuItem; |
218 | Leer5: TMenuItem; |
220 | Neustart: TMenuItem; |
219 | Neustart: TMenuItem; |
221 | OptionBreitbild: TMenuItem; |
220 | OptionBreitbild: TMenuItem; |
Line 241... | Line 240... | ||
241 | procedure GamePauseClick(Sender: TObject); |
240 | procedure GamePauseClick(Sender: TObject); |
242 | procedure BeendenClick(Sender: TObject); |
241 | procedure BeendenClick(Sender: TObject); |
243 | procedure OptionSoundClick(Sender: TObject); |
242 | procedure OptionSoundClick(Sender: TObject); |
244 | procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); |
243 | procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); |
245 | procedure OptionMusicClick(Sender: TObject); |
244 | procedure OptionMusicClick(Sender: TObject); |
246 | procedure MitarbeiterClick(Sender: TObject); |
- | |
247 | procedure SpielstandClick(Sender: TObject); |
245 | procedure SpielstandClick(Sender: TObject); |
248 | procedure NeustartClick(Sender: TObject); |
246 | procedure NeustartClick(Sender: TObject); |
249 | procedure OptionBreitbildClick(Sender: TObject); |
247 | procedure OptionBreitbildClick(Sender: TObject); |
250 | procedure LeichtClick(Sender: TObject); |
248 | procedure LeichtClick(Sender: TObject); |
251 | procedure MittelClick(Sender: TObject); |
249 | procedure MittelClick(Sender: TObject); |
Line 331... | Line 329... | ||
331 | 329 | ||
332 | var |
330 | var |
333 | MainForm: TMainForm; |
331 | MainForm: TMainForm; |
334 | 332 | ||
335 | const |
333 | const |
- | 334 | // TODO: ini file |
|
336 | conleicht = 650 div 60; // 10 |
335 | conleicht = 650 div 60; // 10 |
337 | conmittel = 1000 div 60; // 16 |
336 | conmittel = 1000 div 60; // 16 |
338 | conschwer = 1350 div 60; // 22 |
337 | conschwer = 1350 div 60; // 22 |
339 | conmaster = 2000 div 60; // 33 |
338 | conmaster = 2000 div 60; // 33 |
340 | lives = 6; |
339 | lives = 6; |
341 | 340 | ||
342 | implementation |
341 | implementation |
343 | 342 | ||
344 | uses |
343 | uses |
345 | GamSplash, GamSpeicherung, ComInfo, ComText, GamCheat, Global; |
344 | GamSplash, GamSpeicherung, ComInfo, GamCheat, Global; |
346 | 345 | ||
347 | resourcestring |
346 | resourcestring |
348 | FileError = 'Die Datei kann von SpaceMission nicht geöffnet werden!'; |
347 | FileError = 'Die Datei kann von SpaceMission nicht geöffnet werden!'; |
349 | 348 | ||
350 | {$R *.DFM} |
349 | {$R *.DFM} |
351 | 350 | ||
352 | {$R WindowsXP.res} |
- | |
353 | - | ||
354 | var // TODO: irgendwo hinpacken. irgendwo!!! |
351 | var // TODO: irgendwo hinpacken. irgendwo!!! |
355 | EnemyAdventTable: array[0..9999] of TEnemyAdvent; // TODO: dyn |
352 | EnemyAdventTable: array[0..9999] of TEnemyAdvent; // TODO: dyn |
356 | Crash2, ec: integer; |
353 | Crash2, ec: integer; |
357 | BossExists, Crash, crashsound: boolean; |
354 | BossExists, Crash, crashsound: boolean; |
358 | pos: array[1..4] of integer; |
355 | pos: array[1..4] of integer; |
Line 371... | Line 368... | ||
371 | PLAYER_MODE_DEAD = 1; |
368 | PLAYER_MODE_DEAD = 1; |
372 | PLAYER_MODE_DEAD_VANISHED = 2; |
369 | PLAYER_MODE_DEAD_VANISHED = 2; |
373 | PLAYER_MODE_FLYAWAY = 3; |
370 | PLAYER_MODE_FLYAWAY = 3; |
374 | PLAYER_MODE_ENTER = 4; |
371 | PLAYER_MODE_ENTER = 4; |
375 | 372 | ||
- | 373 | DEFAULT_ANIMSPEED = 15/1000; |
|
- | 374 | ||
376 | // TODO: Code komplett überarbeiten. Bessere Ableitungen machen |
375 | // TODO: Code komplett überarbeiten. Bessere Ableitungen machen |
377 | 376 | ||
378 | constructor TPlayerSprite.Create(AParent: TSprite); |
377 | constructor TPlayerSprite.Create(AParent: TSprite); |
379 | begin |
378 | begin |
380 | inherited Create(AParent); |
379 | inherited Create(AParent); |
Line 384... | Line 383... | ||
384 | X := -70{20}; |
383 | X := -70{20}; |
385 | Y := mainform.dxdraw.surfaceHeight / 2 - (height / 2); |
384 | Y := mainform.dxdraw.surfaceHeight / 2 - (height / 2); |
386 | Z := 2; |
385 | Z := 2; |
387 | AnimCount := Image.PatternCount; |
386 | AnimCount := Image.PatternCount; |
388 | AnimLooped := True; |
387 | AnimLooped := True; |
389 | AnimSpeed := 15/1000; |
388 | AnimSpeed := DEFAULT_ANIMSPEED; |
390 | FMode := PLAYER_MODE_ENTER; |
389 | FMode := PLAYER_MODE_ENTER; |
391 | end; |
390 | end; |
392 | 391 | ||
393 | procedure TPlayerSprite.DoCollision(Sprite: TSprite; var Done: Boolean); |
392 | procedure TPlayerSprite.DoCollision(Sprite: TSprite; var Done: Boolean); |
394 | begin |
393 | begin |
Line 409... | Line 408... | ||
409 | Image := MainForm.ImageList.Items.Find('Explosion'); |
408 | Image := MainForm.ImageList.Items.Find('Explosion'); |
410 | Width := Image.Width; |
409 | Width := Image.Width; |
411 | Height := Image.Height; |
410 | Height := Image.Height; |
412 | AnimCount := Image.PatternCount; |
411 | AnimCount := Image.PatternCount; |
413 | AnimLooped := False; |
412 | AnimLooped := False; |
414 | AnimSpeed := 15/1000; |
413 | AnimSpeed := DEFAULT_ANIMSPEED; |
415 | AnimPos := 0; |
414 | AnimPos := 0; |
416 | end; |
415 | end; |
417 | end |
416 | end |
418 | else |
417 | else |
419 | begin |
418 | begin |
Line 521... | Line 520... | ||
521 | if not OptionBreitBild.checked then |
520 | if not OptionBreitBild.checked then |
522 | begin |
521 | begin |
523 | dxdraw.autosize := false; |
522 | dxdraw.autosize := false; |
524 | dxdraw.Top := 0; |
523 | dxdraw.Top := 0; |
525 | dxdraw.Left := 0; |
524 | dxdraw.Left := 0; |
526 | dxdraw.width := 640; |
525 | dxdraw.width := 640; // TODO: besser die dimensionen des fensters |
527 | dxdraw.height := 480; |
526 | dxdraw.height := 480; |
528 | dxdraw.surfacewidth := 640; |
527 | dxdraw.surfacewidth := 640; |
529 | dxdraw.surfaceheight := 480; |
528 | dxdraw.surfaceheight := 480; |
530 | end |
529 | end |
531 | else dxdraw.autosize := true; |
530 | else dxdraw.autosize := true; |
Line 543... | Line 542... | ||
543 | Z := 2; |
542 | Z := 2; |
544 | Width := Image.Width; |
543 | Width := Image.Width; |
545 | Height := Image.Height; |
544 | Height := Image.Height; |
546 | AnimCount := Image.PatternCount; |
545 | AnimCount := Image.PatternCount; |
547 | AnimLooped := True; |
546 | AnimLooped := True; |
548 | AnimSpeed := 15/1000; |
547 | AnimSpeed := DEFAULT_ANIMSPEED; |
549 | MainForm.PlaySound('Shoot', False); |
548 | MainForm.PlaySound('Shoot', False); |
550 | end; |
549 | end; |
551 | 550 | ||
552 | destructor TTamaSprite.Destroy; |
551 | destructor TTamaSprite.Destroy; |
553 | begin |
552 | begin |
Line 665... | Line 664... | ||
665 | Image := MainForm.ImageList.Items.Find('Explosion'); |
664 | Image := MainForm.ImageList.Items.Find('Explosion'); |
666 | Width := Image.Width; |
665 | Width := Image.Width; |
667 | Height := Image.Height; |
666 | Height := Image.Height; |
668 | AnimCount := Image.PatternCount; |
667 | AnimCount := Image.PatternCount; |
669 | AnimLooped := True; |
668 | AnimLooped := True; |
670 | AnimSpeed := 15/1000; |
669 | AnimSpeed := DEFAULT_ANIMSPEED; |
671 | AnimPos := Random(AnimCount); |
670 | AnimPos := Random(AnimCount); |
672 | end; |
671 | end; |
673 | 672 | ||
674 | procedure TExplosion.DoMove(MoveCount: Integer); |
673 | procedure TExplosion.DoMove(MoveCount: Integer); |
675 | begin |
674 | begin |
Line 684... | Line 683... | ||
684 | Image := MainForm.ImageList.Items.Find('Bounce2'); |
683 | Image := MainForm.ImageList.Items.Find('Bounce2'); |
685 | Width := Image.Width; |
684 | Width := Image.Width; |
686 | Height := Image.Height; |
685 | Height := Image.Height; |
687 | AnimCount := Image.PatternCount; |
686 | AnimCount := Image.PatternCount; |
688 | AnimLooped := True; |
687 | AnimLooped := True; |
689 | AnimSpeed := 15/1000; |
688 | AnimSpeed := DEFAULT_ANIMSPEED; |
690 | MainForm.PlaySound('Shoot', False); |
689 | MainForm.PlaySound('Shoot', False); |
691 | end; |
690 | end; |
692 | 691 | ||
693 | procedure TEnemyTama.DoMove(MoveCount: Integer); |
692 | procedure TEnemyTama.DoMove(MoveCount: Integer); |
694 | begin |
693 | begin |
Line 720... | Line 719... | ||
720 | Image := MainForm.ImageList.Items.Find('Enemy-disk'); |
719 | Image := MainForm.ImageList.Items.Find('Enemy-disk'); |
721 | Width := Image.Width; |
720 | Width := Image.Width; |
722 | Height := Image.Height; |
721 | Height := Image.Height; |
723 | AnimCount := Image.PatternCount; |
722 | AnimCount := Image.PatternCount; |
724 | AnimLooped := True; |
723 | AnimLooped := True; |
725 | AnimSpeed := 15/1000; |
724 | AnimSpeed := DEFAULT_ANIMSPEED; |
726 | FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
725 | FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
727 | end; |
726 | end; |
728 | 727 | ||
729 | constructor TEnemy.Create(AParent: TSprite); |
728 | constructor TEnemy.Create(AParent: TSprite); |
730 | begin |
729 | begin |
Line 750... | Line 749... | ||
750 | Image := MainForm.ImageList.Items.Find('Explosion'); |
749 | Image := MainForm.ImageList.Items.Find('Explosion'); |
751 | Width := Image.Width; |
750 | Width := Image.Width; |
752 | Height := Image.Height; |
751 | Height := Image.Height; |
753 | AnimCount := Image.PatternCount; |
752 | AnimCount := Image.PatternCount; |
754 | AnimLooped := False; |
753 | AnimLooped := False; |
755 | AnimSpeed := 15/1000; |
754 | AnimSpeed := DEFAULT_ANIMSPEED; |
756 | AnimPos := 0; |
755 | AnimPos := 0; |
757 | end else |
756 | end else |
758 | begin |
757 | begin |
759 | MainForm.PlaySound('Hit', False); |
758 | MainForm.PlaySound('Hit', False); |
760 | Inc(MainForm.FScore, 100); |
759 | Inc(MainForm.FScore, 100); |
Line 800... | Line 799... | ||
800 | Image := MainForm.ImageList.Items.Find('Explosion'); |
799 | Image := MainForm.ImageList.Items.Find('Explosion'); |
801 | Width := Image.Width; |
800 | Width := Image.Width; |
802 | Height := Image.Height; |
801 | Height := Image.Height; |
803 | AnimCount := Image.PatternCount; |
802 | AnimCount := Image.PatternCount; |
804 | AnimLooped := False; |
803 | AnimLooped := False; |
805 | AnimSpeed := 15/1000; |
804 | AnimSpeed := DEFAULT_ANIMSPEED; |
806 | AnimPos := 0; |
805 | AnimPos := 0; |
807 | end else |
806 | end else |
808 | begin |
807 | begin |
809 | MainForm.PlaySound('Hit', False); |
808 | MainForm.PlaySound('Hit', False); |
810 | Inc(MainForm.FScore, 100); |
809 | Inc(MainForm.FScore, 100); |
Line 817... | Line 816... | ||
817 | Image := MainForm.ImageList.Items.Find('Enemy-disk2'); |
816 | Image := MainForm.ImageList.Items.Find('Enemy-disk2'); |
818 | Width := Image.Width; |
817 | Width := Image.Width; |
819 | Height := Image.Height; |
818 | Height := Image.Height; |
820 | AnimCount := Image.PatternCount; |
819 | AnimCount := Image.PatternCount; |
821 | AnimLooped := True; |
820 | AnimLooped := True; |
822 | AnimSpeed := 15/1000; |
821 | AnimSpeed := DEFAULT_ANIMSPEED; |
823 | FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
822 | FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
824 | end; |
823 | end; |
825 | 824 | ||
826 | procedure TEnemyUFO.DoMove(MoveCount: Integer); |
825 | procedure TEnemyUFO.DoMove(MoveCount: Integer); |
827 | begin |
826 | begin |
Line 845... | Line 844... | ||
845 | Image := MainForm.ImageList.Items.Find('Enemy-Attacker'); |
844 | Image := MainForm.ImageList.Items.Find('Enemy-Attacker'); |
846 | Width := Image.Width; |
845 | Width := Image.Width; |
847 | Height := Image.Height; |
846 | Height := Image.Height; |
848 | AnimCount := Image.PatternCount; |
847 | AnimCount := Image.PatternCount; |
849 | AnimLooped := True; |
848 | AnimLooped := True; |
850 | AnimSpeed := 15/1000; |
849 | AnimSpeed := DEFAULT_ANIMSPEED; |
851 | PixelCheck := True; |
850 | PixelCheck := True; |
852 | FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
851 | FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
853 | end; |
852 | end; |
854 | 853 | ||
855 | procedure TEnemyAttacker.HitEnemy(ADead: Boolean); |
854 | procedure TEnemyAttacker.HitEnemy(ADead: Boolean); |
Line 863... | Line 862... | ||
863 | Image := MainForm.ImageList.Items.Find('Explosion'); |
862 | Image := MainForm.ImageList.Items.Find('Explosion'); |
864 | Width := Image.Width; |
863 | Width := Image.Width; |
865 | Height := Image.Height; |
864 | Height := Image.Height; |
866 | AnimCount := Image.PatternCount; |
865 | AnimCount := Image.PatternCount; |
867 | AnimLooped := False; |
866 | AnimLooped := False; |
868 | AnimSpeed := 15/1000; |
867 | AnimSpeed := DEFAULT_ANIMSPEED; |
869 | AnimPos := 0; |
868 | AnimPos := 0; |
870 | end else |
869 | end else |
871 | begin |
870 | begin |
872 | MainForm.PlaySound('Hit', False); |
871 | MainForm.PlaySound('Hit', False); |
873 | Inc(MainForm.FScore, 100); |
872 | Inc(MainForm.FScore, 100); |
Line 897... | Line 896... | ||
897 | Height := Image.Height; |
896 | Height := Image.Height; |
898 | BossExists := true; |
897 | BossExists := true; |
899 | MainForm.PlayMusic(mtBoss); |
898 | MainForm.PlayMusic(mtBoss); |
900 | AnimCount := Image.PatternCount; |
899 | AnimCount := Image.PatternCount; |
901 | AnimLooped := True; |
900 | AnimLooped := True; |
902 | AnimSpeed := 15/1000; |
901 | AnimSpeed := DEFAULT_ANIMSPEED; |
903 | PixelCheck := True; |
902 | PixelCheck := True; |
904 | Collisioned := False; |
903 | Collisioned := False; |
905 | FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
904 | FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
906 | MainForm.FBossLife := FLife; |
905 | MainForm.FBossLife := FLife; |
907 | waiter1 := 0; |
906 | waiter1 := 0; |
Line 1004... | Line 1003... | ||
1004 | Image := MainForm.ImageList.Items.Find('Enemy-Attacker2'); |
1003 | Image := MainForm.ImageList.Items.Find('Enemy-Attacker2'); |
1005 | Width := Image.Width; |
1004 | Width := Image.Width; |
1006 | Height := Image.Height; |
1005 | Height := Image.Height; |
1007 | AnimCount := Image.PatternCount; |
1006 | AnimCount := Image.PatternCount; |
1008 | AnimLooped := True; |
1007 | AnimLooped := True; |
1009 | AnimSpeed := 15/1000; |
1008 | AnimSpeed := DEFAULT_ANIMSPEED; |
1010 | PixelCheck := True; |
1009 | PixelCheck := True; |
1011 | FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
1010 | FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
1012 | end; |
1011 | end; |
1013 | 1012 | ||
1014 | procedure TEnemyAttacker2.HitEnemy(ADead: Boolean); |
1013 | procedure TEnemyAttacker2.HitEnemy(ADead: Boolean); |
Line 1022... | Line 1021... | ||
1022 | Image := MainForm.ImageList.Items.Find('Explosion'); |
1021 | Image := MainForm.ImageList.Items.Find('Explosion'); |
1023 | Width := Image.Width; |
1022 | Width := Image.Width; |
1024 | Height := Image.Height; |
1023 | Height := Image.Height; |
1025 | AnimCount := Image.PatternCount; |
1024 | AnimCount := Image.PatternCount; |
1026 | AnimLooped := False; |
1025 | AnimLooped := False; |
1027 | AnimSpeed := 15/1000; |
1026 | AnimSpeed := DEFAULT_ANIMSPEED; |
1028 | AnimPos := 0; |
1027 | AnimPos := 0; |
1029 | end else |
1028 | end else |
1030 | begin |
1029 | begin |
1031 | MainForm.PlaySound('Hit', False); |
1030 | MainForm.PlaySound('Hit', False); |
1032 | Inc(MainForm.FScore, 100); |
1031 | Inc(MainForm.FScore, 100); |
Line 1094... | Line 1093... | ||
1094 | Image := MainForm.ImageList.Items.Find('Explosion'); |
1093 | Image := MainForm.ImageList.Items.Find('Explosion'); |
1095 | Width := Image.Width; |
1094 | Width := Image.Width; |
1096 | Height := Image.Height; |
1095 | Height := Image.Height; |
1097 | AnimCount := Image.PatternCount; |
1096 | AnimCount := Image.PatternCount; |
1098 | AnimLooped := False; |
1097 | AnimLooped := False; |
1099 | AnimSpeed := 15/1000; |
1098 | AnimSpeed := DEFAULT_ANIMSPEED; |
1100 | AnimPos := 0; |
1099 | AnimPos := 0; |
1101 | end else |
1100 | end else |
1102 | begin |
1101 | begin |
1103 | MainForm.PlaySound('Hit', False); |
1102 | MainForm.PlaySound('Hit', False); |
1104 | Inc(MainForm.FScore, 100); |
1103 | Inc(MainForm.FScore, 100); |
Line 1137... | Line 1136... | ||
1137 | Image := MainForm.ImageList.Items.Find('Enemy-Attacker3'); |
1136 | Image := MainForm.ImageList.Items.Find('Enemy-Attacker3'); |
1138 | Width := Image.Width; |
1137 | Width := Image.Width; |
1139 | Height := Image.Height; |
1138 | Height := Image.Height; |
1140 | AnimCount := Image.PatternCount; |
1139 | AnimCount := Image.PatternCount; |
1141 | AnimLooped := True; |
1140 | AnimLooped := True; |
1142 | AnimSpeed := 15/1000; |
1141 | AnimSpeed := DEFAULT_ANIMSPEED; |
1143 | PixelCheck := True; |
1142 | PixelCheck := True; |
1144 | FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
1143 | FLife := EnemyAdventTable[mainform.FEnemyAdventPos].lifes; |
1145 | end; |
1144 | end; |
1146 | 1145 | ||
1147 | function TMainForm.SoundKarte: boolean; |
1146 | function TMainForm.SoundKarte: boolean; |
Line 1178... | Line 1177... | ||
1178 | dxdraw.Display.FixedBitCount := False; |
1177 | dxdraw.Display.FixedBitCount := False; |
1179 | dxdraw.Display.FixedRatio := False; |
1178 | dxdraw.Display.FixedRatio := False; |
1180 | dxdraw.Display.FixedSize := False; |
1179 | dxdraw.Display.FixedSize := False; |
1181 | dxdraw.Display.Height := 600; |
1180 | dxdraw.Display.Height := 600; |
1182 | dxdraw.Display.Width := 800; |
1181 | dxdraw.Display.Width := 800; |
1183 | dxdraw.Options := [doAllowReboot, doWaitVBlank, doAllowPalette256, doCenter, doRetainedMode, doHardware, doSelectDriver]; |
1182 | dxdraw.Options := [doAllowReboot, doWaitVBlank, doAllowPalette256, doCenter, {doRetainedMode,} doHardware, doSelectDriver]; |
1184 | dxdraw.TabOrder := 0; |
1183 | dxdraw.TabOrder := 0; |
1185 | dxdraw.Visible := true; |
1184 | dxdraw.Visible := true; |
1186 | dxdraw.OnFinalize := DXDrawFinalize; |
1185 | dxdraw.OnFinalize := DXDrawFinalize; |
1187 | dxdraw.OnInitialize := DXDrawInitialize; |
1186 | dxdraw.OnInitialize := DXDrawInitialize; |
1188 | dxdraw.OnInitializing := DXDrawInitializing; |
1187 | dxdraw.OnInitializing := DXDrawInitializing; |
Line 2341... | Line 2340... | ||
2341 | master.checked := true; |
2340 | master.checked := true; |
2342 | FInterval := giMaster; |
2341 | FInterval := giMaster; |
2343 | writeoptions; |
2342 | writeoptions; |
2344 | end; |
2343 | end; |
2345 | 2344 | ||
2346 | procedure TMainForm.MitarbeiterClick(Sender: TObject); |
- | |
2347 | resourcestring |
- | |
2348 | LNG_NOTFOUND = 'Die Datei "Texte\Mitwirkende.txt" ist nicht mehr vorhanden. Die Aktion wird abgebrochen!'; |
- | |
2349 | const |
- | |
2350 | MitwirkendeTxt = 'Texte\Mitwirkende.txt'; |
- | |
2351 | begin |
- | |
2352 | if not fileexists(fdirectory+MitwirkendeTxt) then |
- | |
2353 | begin |
- | |
2354 | MessageDLG(Format(LNG_NOTFOUND, [MitwirkendeTxt]), mtWarning, [mbOK], 0); |
- | |
2355 | Exit; |
- | |
2356 | end; |
- | |
2357 | - | ||
2358 | TextForm.memo1.lines.loadfromfile(FDirectory+MitwirkendeTxt); |
- | |
2359 | - | ||
2360 | dxtimer.enabled := false; |
- | |
2361 | TextForm.ShowModal; |
- | |
2362 | if not mainform.gamepause.checked then mainform.dxtimer.enabled := true; |
- | |
2363 | end; |
- | |
2364 | - | ||
2365 | procedure TEnemyMeteor.DoMove(MoveCount: Integer); |
2345 | procedure TEnemyMeteor.DoMove(MoveCount: Integer); |
2366 | begin |
2346 | begin |
2367 | X := X - MoveCount*(250/1000); |
2347 | X := X - MoveCount*(250/1000); |
2368 | if X < -Width then Dead; |
2348 | if X < -Width then Dead; |
2369 | end; |
2349 | end; |
Line 2402... | Line 2382... | ||
2402 | Image := MainForm.ImageList.Items.Find('Enemy-Meteor'); |
2382 | Image := MainForm.ImageList.Items.Find('Enemy-Meteor'); |
2403 | Width := Image.Width; |
2383 | Width := Image.Width; |
2404 | Height := Image.Height; |
2384 | Height := Image.Height; |
2405 | AnimCount := Image.PatternCount; |
2385 | AnimCount := Image.PatternCount; |
2406 | AnimLooped := True; |
2386 | AnimLooped := True; |
2407 | AnimSpeed := 15/1000; |
2387 | AnimSpeed := DEFAULT_ANIMSPEED; |
2408 | PixelCheck := True; |
2388 | PixelCheck := True; |
2409 | end; |
2389 | end; |
2410 | 2390 | ||
2411 | procedure TMainForm.SpielstandClick(Sender: TObject); |
2391 | procedure TMainForm.SpielstandClick(Sender: TObject); |
2412 | begin |
2392 | begin |