Subversion Repositories spacemission

Compare Revisions

Regard whitespace Rev 64 → Rev 65

/CHANGELOG.md
36,6 → 36,7
- Bugfix: Wenn man pause gemacht hat und fenster wechselt und wieder zurückwechselt, wurde Pause aufgehoben.
- Bugfix: Zwei Fenster wurden in der Taskleiste angezeigt
- "Vollbild" und "Breitbild" Feature entfernt, da es nie richtig funktioniert hat
- Level Editor kann nun über das Hauptmenü aufgerufen werden
 
Version 1.1:
- Bugfixes
/ComHilfe.pas
51,7 → 51,7
md := TMarkdownProcessor.CreateDialect(mdCommonMark);
try
//md.AllowUnsafe := true;
sl.Text := md.process(UTF8Decode(sl.Text));
sl.Text := md.process(UTF8ToString(RawByteString(sl.Text)));
ShowHTMLHelp(sl.Text);
finally
FreeAndNil(md);
/ComLevelReader.pas
52,7 → 52,7
destructor Destroy; override;
end;
 
TGameMode = (gmUnknown, gmLevels, gmRandom);
TGameMode = (gmUnknown, gmLevels, gmRandom, gmEditor);
 
TSaveData = class(TPersistent)
strict protected
/GamMain.pas
1914,9 → 1914,13
FLevelDataAlreadyLoaded := true; // nicht nochmal NewLevel() aufrufen. Erst wieder wenn man gewonnen hat.
end;
 
var
TitleWasPressed: TDxInputState = isButton32;
 
procedure TMainForm.SceneTitle;
var
Logo: TPictureCollectionItem;
colo1, colo2: TColor;
begin
DXDraw.Surface.Fill(0);
Logo := GetSpriteGraphic(smgLogo);
1926,36 → 1930,91
2, 80, Fangle * 4);
inc(Fangle);
 
if (isDown in MainForm.DXInput.States) and (FGameMode=gmLevels) then FGameMode := gmRandom;
if ((isUp in MainForm.DXInput.States) and (FGameMode=gmRandom)) or (FGameMode=gmUnknown) then FGameMode := gmLevels;
if FGameMode = gmUnknown then FGameMode := gmLevels;
 
if (isUp in MainForm.DXInput.States) then TitleWasPressed := isUp;
if (TitleWasPressed=isUp) and not (isUp in MainForm.DXInput.States) then
begin
TitleWasPressed := isButton32;
if (Ord(FGameMode) <> 1) then
FGameMode := TGameMode(Ord(FGameMode)-1);
end;
 
// TODO: Wenn man schnell die Taste drückt, dann kommt es manchmal nicht an!
if (isDown in MainForm.DXInput.States) then TitleWasPressed := isDown;
if (TitleWasPressed=isDown) and not (isDown in MainForm.DXInput.States) then
begin
TitleWasPressed := isButton32;
if (FGameMode <> High(TGameMode)) then
FGameMode := TGameMode(Ord(FGameMode)+1);
end;
 
DXDraw.Surface.Canvas.Brush.Style := bsClear;
DXDraw.Surface.Canvas.Font.Size := 30;
 
{$REGION 'Menu point: Normal Level'}
if FGameMode = gmLevels then
begin
DXDraw.Surface.Canvas.Font.Color := clMaroon;
colo1 := clMaroon;
colo2 := clRed;
end
else
begin
colo1 := clOlive;
colo2 := clYellow;
end;
DXDraw.Surface.Canvas.Font.Color := colo1;
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-152, (dxdraw.surfaceheight div 2)-52, 'Normales Spiel');
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-187, (dxdraw.surfaceheight div 2)-52, '>');
DXDraw.Surface.Canvas.Font.Color := clRed;
if FGameMode = gmLevels then
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-185, (dxdraw.surfaceheight div 2)-52, '>');
DXDraw.Surface.Canvas.Font.Color := colo2;
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-150, (dxdraw.surfaceheight div 2)-50, 'Normales Spiel');
if FGameMode = gmLevels then
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-185, (dxdraw.surfaceheight div 2)-50, '>');
DXDraw.Surface.Canvas.Font.Color := clOlive;
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-152, (dxdraw.surfaceheight div 2)-2, 'Zufallslevel');
DXDraw.Surface.Canvas.Font.Color := clYellow;
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-150, (dxdraw.surfaceheight div 2), 'Zufallslevel');
{$ENDREGION}
 
{$REGION 'Menu point: Random Level'}
if FGameMode = gmRandom then
begin
colo1 := clMaroon;
colo2 := clRed;
end
else
begin
DXDraw.Surface.Canvas.Font.Color := clOlive;
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-152, (dxdraw.surfaceheight div 2)-52, 'Normales Spiel');
DXDraw.Surface.Canvas.Font.Color := clYellow;
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-150, (dxdraw.surfaceheight div 2)-50, 'Normales Spiel');
DXDraw.Surface.Canvas.Font.Color := clMaroon;
colo1 := clOlive;
colo2 := clYellow;
end;
DXDraw.Surface.Canvas.Font.Color := colo1;
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-152, (dxdraw.surfaceheight div 2)-2, 'Zufallslevel');
if FGameMode = gmRandom then
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-187, (dxdraw.surfaceheight div 2)-2, '>');
DXDraw.Surface.Canvas.Font.Color := clRed;
DXDraw.Surface.Canvas.Font.Color := colo2;
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-150, (dxdraw.surfaceheight div 2), 'Zufallslevel');
if FGameMode = gmRandom then
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-185, (dxdraw.surfaceheight div 2), '>');
{$ENDREGION}
 
{$REGION 'Menu point: Level Editor'}
if FGameMode = gmEditor then
begin
colo1 := clMaroon;
colo2 := clRed;
end
else
begin
colo1 := clOlive;
colo2 := clYellow;
end;
DXDraw.Surface.Canvas.Font.Color := colo1;
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-152, (dxdraw.surfaceheight div 2)+48, 'Level-Editor');
if FGameMode = gmEditor then
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-185, (dxdraw.surfaceheight div 2)+48, '>');
DXDraw.Surface.Canvas.Font.Color := colo2;
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-150, (dxdraw.surfaceheight div 2)+50, 'Level-Editor');
if FGameMode = gmEditor then
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-185, (dxdraw.surfaceheight div 2)+50, '>');
{$ENDREGION}
 
{ if (FBlink div 300) mod 2=0 then
begin
DXDraw.Surface.Canvas.Font.Color := clGreen;
1970,8 → 2029,15
if (isButton1 in DXInput.States) or (isButton2 in DXInput.States) then
begin
FLevel := 1;
if ((FGameMode=gmLevels) and not GetLevelFileName(FLevel,false).found) or ((FGameMode=gmRandom) and (FLevel > 20)) then
if FGameMode = gmEditor then
begin
ShellExecute(0, 'open', PChar(OwnDirectory+'LevEdit.exe'), '', PChar(OwnDirectory), SW_NORMAL);
Close;
exit;
end;
if ((FGameMode=gmLevels) and not GetLevelFileName(FLevel,false).found) or
((FGameMode=gmRandom) and (FLevel > MaxPossibleLevels)) then
begin
//PlaySound('Frage', False);
exit;
end;
/LevEdit.dproj
8,7 → 8,7
<FrameworkType>VCL</FrameworkType>
<ProjectVersion>20.1</ProjectVersion>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Debug</Config>
<Config Condition="'$(Config)'==''">Release</Config>
<Platform Condition="'$(Platform)'==''">Win32</Platform>
<TargetedPlatforms>1</TargetedPlatforms>
<AppType>Application</AppType>
/SpaceMission.dproj
8,7 → 8,7
<FrameworkType>VCL</FrameworkType>
<ProjectVersion>20.1</ProjectVersion>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Debug</Config>
<Config Condition="'$(Config)'==''">Release</Config>
<Platform Condition="'$(Platform)'==''">Win32</Platform>
<TargetedPlatforms>1</TargetedPlatforms>
<AppType>Application</AppType>
/TODO.md
3,6 → 3,7
 
## Geplant für 1.2
 
- versioninfo fehlt bei delphi 12
- Release 1.2 with EV CodeSign
 
## Geplant für 1.3
11,7 → 12,6
- Neue Einheit: Medikit item
- Neue Einheit: Ufo, das im Kreis fliegt und nicht weggeht
- Bei Pause => Entweder alles grau werden lassen, oder vielleicht ganz groß Pause in die Bildschirmmitte schreiben
- Level-Editor in die SpaceMission.exe rein und über Hauptmenü aufrufen?
- Vorbereitung auf Multilingualität (all strings in resourcestrings), ggf. sogar schon auf Englisch übersetzen
- SplashScreens: als BMP
 
51,7 → 51,6
## Repro, Unklar, Fragen
 
- Was ist wenn man mission erfolgreich hatte und dann doch stirbt?
- versioninfo fehlt bei delphi 12?
- Kartengröße bleibt bei "Neu"
- Que: Gibt es eine neuere Version des Shoot-Samples (nicht mehr vorhanden in aktueller DelphiX)
- Tastenspeere bei runter+links+shot
/_InnoSetup/SpaceMission.iss
36,11 → 36,10
 
[Tasks]
Name: "desktopicon"; Description: "Erstelle eine Verknüpfung auf dem &Desktop"; GroupDescription: "Programmverknüpfungen:"; MinVersion: 4,4
Name: "levedit"; Description: "Installiere den &Leveleditor"; GroupDescription: "Zusatzprogramme:"; MinVersion: 4,4
 
[Files]
Source: "..\SpaceMission.exe"; DestDir: "{app}"; Flags: ignoreversion signonce
Source: "..\LevEdit.exe"; DestDir: "{app}"; Flags: ignoreversion signonce; Tasks: levedit
Source: "..\LevEdit.exe"; DestDir: "{app}"; Flags: ignoreversion signonce
Source: "..\Doku.md"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\Changelog.md"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DirectX\Graphics.dxg"; DestDir: "{app}\DirectX"; Flags: ignoreversion
50,7 → 49,6
 
;[Dirs]
;Name: "{group}\Webseiten"
;Name: "{group}\Ordner"
 
[Icons]
;Name: "{group}\Webseiten\Daniel Marschall"; Filename: "https://www.daniel-marschall.de/"
57,10 → 55,9
;Name: "{group}\Webseiten\ViaThinkSoft"; Filename: "https://www.viathinksoft.de/"
;Name: "{group}\Webseiten\Projektseite auf ViaThinkSoft"; Filename: "https://www.viathinksoft.de/index.php?page=projektanzeige&seite=projekt-19"
Name: "{group}\SpaceMission"; Filename: "{app}\SpaceMission.exe"
Name: "{group}\Leveleditor"; Filename: "{app}\LevEdit.exe"; Tasks: levedit
;Name: "{group}\Ordner\Levelordner"; Filename: "{app}\Levels\"
Name: "{group}\SpaceMission Level Editor"; Filename: "{app}\LevEdit.exe"
Name: "{userdesktop}\SpaceMission"; Filename: "{app}\SpaceMission.exe"; MinVersion: 4,4; Tasks: desktopicon
;Name: "{group}\SpaceMission deinstallieren"; Filename: "{uninstallexe}"
Name: "{userdesktop}\SpaceMission Level Editor"; Filename: "{app}\LevEdit.exe"; MinVersion: 4,4; Tasks: desktopicon
 
[Run]
Filename: "{app}\SpaceMission.exe"; Description: "SpaceMission starten"; Flags: nowait postinstall skipifsilent