/GamCheat.dfm |
---|
80,10 → 80,10 |
object Label2: TLabel |
Left = 8 |
Top = 104 |
Width = 83 |
Width = 89 |
Height = 13 |
Cursor = crHandPoint |
Caption = 'Cheat deaktiviren' |
Caption = 'Cheat deaktivieren' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clBlue |
Font.Height = -11 |
/GamCheat.pas |
---|
37,13 → 37,6 |
{$R *.DFM} |
const |
// Cheat1 = 'Kmkjk'+#39+'Khyc'; {Johnny Cash} |
Cheat1 = #75+#109+#107+#106+#107+#127+#39+#75+#104+#121+#99; |
resourcestring |
Cheat1Text = 'Unendlich Leben!'; |
procedure TCheatForm.AbbBtnClick(Sender: TObject); |
begin |
close; |
52,7 → 45,7 |
procedure TCheatForm.SearchCheats; |
begin |
Cheatbox.Items.Clear; |
if mainform.FCheat then Cheatbox.Items.Append(Cheat1Text); |
if ctInfiniteLives in mainform.FCheats then Cheatbox.Items.Append(Cheat1Text); |
end; |
procedure TCheatForm.OKBtnClick(Sender: TObject); |
66,23 → 59,32 |
begin |
temp := ''; |
j := 0; |
if CheatEdit.text = '' then |
begin |
Close; |
Exit; |
end; |
for i := 1 to length(CheatEdit.text) do |
begin |
inc(j); |
temp := temp + chr(byte(copy(CheatEdit.text, i, 1)[1]) xor j); |
end; |
{$REGION 'Check and unlock Cheat 1 (Infinite lives)'} |
if lowercase(temp) = lowercase(Cheat1) then |
begin |
if mainform.FCheat then |
if ctInfiniteLives in mainform.FCheats then |
showmessage(SCheckAlreadyUnlocked) |
else |
begin |
showmessage(SCheatUnlocked); |
mainform.FCheat := true; |
Include(mainform.FCheats, ctInfiniteLives); |
SearchCheats; |
end; |
close; |
end |
{$ENDREGION} |
else |
begin |
showmessage(SNoCheat); |
116,8 → 118,9 |
procedure TCheatForm.Label2Click(Sender: TObject); |
resourcestring |
SDisableCheat = 'Diesen Cheat wirklich deaktivieren?'; |
SCheatDisabled = 'Dieser Cheat wurde deakiviert!'; |
SCheatDisabled = 'Dieser Cheat wurde deaktiviert!'; |
begin |
{$REGION 'Disable Cheat 1 (Infinite lives)'} |
if not CheatBox.items.IndexOf(Cheat1Text) = -1 then |
begin |
if CheatBox.Selected[CheatBox.items.IndexOf(Cheat1Text)] then |
124,12 → 127,13 |
begin |
if MessageDlg(SDisableCheat, mtConfirmation, mbYesNoCancel, 0) = mrYes then |
begin |
mainform.FCheat := false; |
Exclude(mainform.FCheats, ctInfiniteLives); |
showmessage(SCheatDisabled); |
SearchCheats; |
end; |
end; |
end; |
{$ENDREGION} |
end; |
procedure TCheatForm.Label3Click(Sender: TObject); |
/GamMain.pas |
---|
309,7 → 309,7 |
FScoreAtLevelStart: integer; |
FLevelDataAlreadyLoaded: boolean; |
FRestEnemies: integer; |
FCheat: boolean; |
FCheats: TCheatSet; |
{ VCL-Ersatz } |
dxdraw: TDxDraw; |
imagelist: TDxImageList; |
490,12 → 490,11 |
procedure TPlayerSprite.DoCollision(Sprite: TSprite; var Done: Boolean); |
begin |
if mainform.FCheat then exit; |
if (Sprite is TItem) then |
begin |
TItem(Sprite).Collected; |
end |
else if (Sprite is TEnemy) or (Sprite is TEnemyTama) then |
else if ((Sprite is TEnemy) or (Sprite is TEnemyTama)) and not (ctInfiniteLives in mainform.FCheats) then |
begin |
if not mainform.crash then |
begin |
1684,7 → 1683,7 |
procedure TMainForm.StartSceneTitle; |
begin |
sleep(500); |
FCheat := false; |
FCheats := []; |
FLife := StartLives; |
FLevel := 0; |
FScore := 0; |
2205,7 → 2204,7 |
{$REGION 'Lebensanzeige'} |
if FLife<0 then FLife := 0; |
if FCheat then |
if ctInfiniteLives in FCheats then |
begin |
DXDraw.Surface.Canvas.Font.Color := clPurple; |
DXDraw.Surface.Canvas.Textout(9, dxdraw.surfaceheight-41, SInfLifes); |
/GamSpeicherung.pas |
---|
203,7 → 203,7 |
end; |
mainform.playsound(smsSceneMov, false); |
mainform.FNextScene := gsNewLevel; |
mainform.FCheat := false; |
mainform.FCheats := []; |
close; |
end; |
/Global.pas |
---|
32,7 → 32,17 |
RandomLevelMedikitEveryX = 250; |
RandomLevelAdditionalEnemiesPerLevel = 75; // Zufalls-Level |
const |
// Cheat1 = 'Kmkjk'+#39+'Khyc'; |
Cheat1 = #75+#109+#107+#106+#107+#127+#39+#75+#104+#121+#99; {Johnny Cash} |
resourcestring |
Cheat1Text = 'Unendlich Leben!'; |
type |
TCheat = (ctUnknown, ctInfiniteLives); |
TCheatSet = set of TCheat; |
// DirectX\Music.dxm |
TSpaceMissionMusicTrack = ( |
smmNone, |
/Help/Neuerungen.md |
---|
1,5 → 1,9 |
# Changelog |
SpaceMission 1.2.2: |
- BUGFIX: Items können nun auch eingesammelt werden, wenn man einen infinite lives Cheat aktiviert hat |
- BUGFIX: Fehlerkorrektur bei der Anzeige der restlichen Einheiten bei Missionsende |
SpaceMission 1.2.1: |
- Neue Einheit: Medikit Item |
- Zufallslevel: |