/GamMain.pas |
---|
250,6 → 250,7 |
procedure LeichtClick(Sender: TObject); |
procedure MittelClick(Sender: TObject); |
procedure SchwerClick(Sender: TObject); |
procedure MasterClick(Sender: TObject); |
procedure FormShow(Sender: TObject); |
procedure InformationenClick(Sender: TObject); |
procedure CheatClick(Sender: TObject); |
256,12 → 257,11 |
procedure FormClose(Sender: TObject; var Action: TCloseAction); |
procedure FormDestroy(Sender: TObject); |
procedure CheckUpdatesClick(Sender: TObject); |
procedure MasterClick(Sender: TObject); |
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); |
procedure HilfeTopicClick(Sender: TObject); |
private |
ProgrammGestartet: boolean; |
FInterval: TGameInterval; |
FSpeed: integer; |
FScene: TGameScene; |
FMusic: TSpaceMissionMusicTrack; |
FBlink: DWORD; |
1353,8 → 1353,6 |
end; |
procedure TMainForm.DXInit; |
const |
DxgFile = 'DirectX\Graphics.dxg'; // do not localize |
begin |
try |
Imagelist.Items.LoadFromFile(OwnDirectory+DxgFile); |
1390,8 → 1388,6 |
end; |
procedure TMainForm.SoundInit; |
const |
DxwFile = 'DirectX\Sound.dxw'; // do not localize |
begin |
if (WaveOutGetNumDevs < 1) or not FileExists(OwnDirectory+DxwFile) then |
begin |
1417,8 → 1413,6 |
end; |
procedure TMainForm.MusicInit; |
const |
DxmFile = 'DirectX\Music.dxm'; // do not localize |
var |
i: integer; |
begin |
1543,7 → 1537,8 |
begin |
Reg.WriteBool(MusicSettingKey, OptionMusic.checked); |
Reg.WriteBool(SoundSettingKey, OptionSound.checked); |
Reg.WriteInteger(SpeedSettingKey, Ord(FInterval)); // TODO : maybe it would be better to let the user change the real speed, so they can set their own custom one! |
Reg.WriteInteger(SpeedSettingKey, Ord(FSpeed)); |
Reg.DeleteValue('Speed'); // deprecated. Replaced by GameSpeed |
Reg.CloseKey; |
end; |
finally |
1571,10 → 1566,15 |
optionsound.checked := true; // default |
if Reg.ValueExists(SpeedSettingKey) then |
FInterval := TGameInterval(Reg.ReadInteger(SpeedSettingKey)) |
FSpeed := Reg.ReadInteger(SpeedSettingKey) |
else |
FInterval := giMittel; // default |
FSpeed := conmittel; // default |
Leicht.Checked := FSpeed = conleicht; |
Mittel.Checked := FSpeed = conmittel; |
Schwer.Checked := FSpeed = conschwer; |
Master.Checked := FSpeed = conmaster; |
Reg.CloseKey; |
end; |
finally |
2140,12 → 2140,7 |
spriteClass: TClass; |
tmpEnemyAnzeige: integer; |
begin |
case FInterval of |
giLeicht: SpriteEngine.Move(conleicht); |
giMittel: SpriteEngine.Move(conmittel); |
giSchwer: SpriteEngine.Move(conschwer); |
giMaster: SpriteEngine.Move(conmaster); |
end; |
SpriteEngine.Move(FSpeed); |
SpriteEngine.Dead; |
while (FEnemyAdventPos >= Low(LevelData.EnemyAdventTable)) and |
(FEnemyAdventPos <= High(LevelData.EnemyAdventTable)) and |
2433,13 → 2428,6 |
WriteOptions; |
end; |
procedure TMainForm.MasterClick(Sender: TObject); |
begin |
master.checked := true; |
FInterval := giMaster; |
writeoptions; |
end; |
procedure TMainForm.PlayMusic(Name: TSpaceMissionMusicTrack); |
begin |
if not OptionMusic.checked then exit; |
2488,7 → 2476,7 |
procedure TMainForm.LeichtClick(Sender: TObject); |
begin |
leicht.checked := true; |
FInterval := giLeicht; |
FSpeed := conleicht; |
writeoptions; |
end; |
2495,7 → 2483,7 |
procedure TMainForm.MittelClick(Sender: TObject); |
begin |
mittel.checked := true; |
FInterval := giMittel; |
FSpeed := conmittel; |
writeoptions; |
end; |
2502,10 → 2490,17 |
procedure TMainForm.SchwerClick(Sender: TObject); |
begin |
schwer.checked := true; |
FInterval := giSchwer; |
FSpeed := conschwer; |
writeoptions; |
end; |
procedure TMainForm.MasterClick(Sender: TObject); |
begin |
master.checked := true; |
FSpeed := conmaster; |
writeoptions; |
end; |
procedure TMainForm.FormShow(Sender: TObject); |
resourcestring |
SFileError = 'Die Datei kann von SpaceMission nicht geöffnet werden!'; |
/Global.pas |
---|
11,7 → 11,7 |
RegistrySettingsKey = 'SOFTWARE\ViaThinkSoft\SpaceMission\Settings'; // do not localize |
MusicSettingKey = 'Music'; // do not localize |
SoundSettingKey = 'Sound'; // do not localize |
SpeedSettingKey = 'Speed'; // do not localize |
SpeedSettingKey = 'GameSpeed'; // do not localize |
DefaultLevelLength = 1200; |
StartLives = 6; |
conleicht = 650 div 60; // 10 |
24,6 → 24,9 |
BossHeight = 2; |
SpaceMissionExe = 'SpaceMission.exe'; // do not localize |
LevEditExe = 'LevEdit.exe'; // do not localize |
DxgFile = 'DirectX\Graphics.dxg'; // do not localize |
DxwFile = 'DirectX\Sound.dxw'; // do not localize |
DxmFile = 'DirectX\Music.dxm'; // do not localize |
type |
// DirectX\Music.dxm |
/Help/Neuerungen.md |
---|
7,6 → 7,8 |
- Ab Level 25 steigt die Anzahl an auftretenden stärkeren Gegnertypen |
- BUGFIX: Nach dem der Boss besiegt wurde, war die angezeigte Gegner-Anzeige eins zu wenig oder ist verschwunden |
- BUGFIX: Leveleditor Speicherndialog Frage "Level ersetzen?" Abfrage kommt nun wieder, wenn man ein Selbsterstelltes Level überschreiben möchte |
- BUGFIX: Die Geschwindigkeitseinstellung im Menü wurde falsch angezeigt, wenn das Spiel gestartet wurde |
- Mit einer Registry-Änderung kann die Geschwindigkeit nun beliebig eingestellt werden. Registry Schlüssel "Computer\HKEY_CURRENT_USER\Software\ViaThinkSoft\SpaceMission\Settings", Schalter "GameSpeed". Standardwerte: Leicht 10, Mittel 16, Schwer 22, Meister 33. |
SpaceMission 1.2: |
- Inhaltliche Änderungen am Spiel: |
/LevEdit.dpr |
---|
23,13 → 23,21 |
var |
Sem: THandle; |
resourcestring |
SAlreadyStarted = 'Der Editor wurde bereits gestartet.'; |
STitel = 'SpaceMission Leveleditor'; |
SFileMissing = '%s fehlt. Bitte installieren Sie SpaceMission erneut.'; |
const |
SemaphoreName = 'SpaceMission Leveleditor'; |
begin |
{ Programm schon gestartet? } |
Sem := CreateSemaphore(nil, 0, 1, 'SpaceMission Leveleditor'); |
Sem := CreateSemaphore(nil, 0, 1, SemaphoreName); |
if (Sem <> 0) and (GetLastError = ERROR_ALREADY_EXISTS) then |
begin |
CloseHandle(Sem); |
MessageDlg('Der Editor wurde bereits gestartet.', mtInformation, [mbOK], 0); |
MessageDlg(SAlreadyStarted, mtInformation, [mbOK], 0); |
exit; |
end; |
SplashForm := TSplashForm.Create(Application); |
38,10 → 46,10 |
Application.Initialize; |
Application.ShowMainform := False; |
Application.MainFormOnTaskBar := true; |
Application.Title := 'SpaceMission Leveleditor'; |
if not fileexists(OwnDirectory+'DirectX\Graphics.dxg') then |
Application.Title := STitel; |
if not fileexists(OwnDirectory+DxgFile) then |
begin |
MessageDLG('DirectX\Graphics.dxg fehlt. Bitte installieren Sie SpaceMission erneut.', mtError, [mbOK], 0); |
MessageDLG(Format(SFilemissing, [DxgFile]), mtError, [mbOK], 0); |
exit; |
end; |
Application.CreateForm(TMainForm, MainForm); |
/LevMain.pas |
---|
186,7 → 186,7 |
procedure TMainForm.DXInit; |
begin |
Imagelist.Items.LoadFromFile(OwnDirectory+'DirectX\Graphics.dxg'); // do not localize |
Imagelist.Items.LoadFromFile(OwnDirectory+DxgFile); |
ImageList.Items.MakeColorTable; |
DXDraw.ColorTable := ImageList.Items.ColorTable; |
DXDraw.DefColorTable := ImageList.Items.ColorTable; |
/SpaceMission.dpr |
---|
22,13 → 22,22 |
var |
Sem: THandle; |
resourcestring |
SAlreadyStarted = 'Das Spiel wurde bereits gestartet.'; |
STitel = 'SpaceMission'; |
SFileMissing = '%s fehlt. Bitte installieren Sie SpaceMission erneut.'; |
const |
SemaphoreName = 'SpaceMission'; |
begin |
{ Programm schon gestartet? } |
Sem := CreateSemaphore(nil, 0, 1, 'SpaceMission'); |
Sem := CreateSemaphore(nil, 0, 1, SemaphoreName); |
if (Sem <> 0) and (GetLastError = ERROR_ALREADY_EXISTS) then |
begin |
CloseHandle(Sem); |
MessageDlg('Das Spiel wurde bereits gestartet.', mtInformation, [mbOK], 0); |
MessageDlg(SAlreadyStarted, mtInformation, [mbOK], 0); |
exit; |
end; |
SplashForm := TSplashForm.Create(Application); |
37,10 → 46,10 |
Application.Initialize; |
Application.ShowMainform := False; |
Application.MainFormOnTaskBar := true; |
Application.Title := 'SpaceMission'; |
if not fileexists(OwnDirectory+'DirectX\Graphics.dxg') then |
Application.Title := STitel; |
if not fileexists(OwnDirectory+DxgFile) then |
begin |
MessageDLG('DirectX\Graphics.dxg fehlt. Bitte installieren Sie SpaceMission erneut.', mtError, [mbOK], 0); |
MessageDLG(Format(SFileMissing, [DxgFile]), mtError, [mbOK], 0); |
exit; |
end; |
Application.CreateForm(TMainForm, MainForm); |
/TODO.md |
---|
1,10 → 1,6 |
# SpaceMission TODO |
## Geplant für 1.2.1 |
- Registry individual Speed Setting |
## Geplant für 1.3 |
- Neue Einheit: Ufo, das im Kreis fliegt und nicht weggeht |