Skip to content

Commit 089a1b7

Browse files
author
Sylvain Maltais
committed
Correctif mineurs
1 parent 7535f0d commit 089a1b7

File tree

1 file changed

+58
-18
lines changed

1 file changed

+58
-18
lines changed

LODERUNN.PAS

+58-18
Original file line numberDiff line numberDiff line change
@@ -3176,7 +3176,7 @@ Const
31763176
Var
31773177
Score:LongInt;
31783178
Life,Level,Gold:Byte;
3179-
XMan,YMan,XManRun,YManRun:Integer;
3179+
XMan,YMan,XManRun,YManRun,WaitYManRun:Integer;
31803180
CurrEnnemi:Byte;
31813181
XEnnemi,YEnnemi:Array[0..10]of Byte;
31823182
CurrTab:Array[0..15,0..27] of Char;
@@ -3210,11 +3210,13 @@ Procedure InitGame;Begin
32103210
TextBackground(0);
32113211
TextColor(7);
32123212
ClrScr;
3213+
CursorOff;
32133214
Life:=3;
32143215
Score:=0;
32153216
Level:=1;
32163217
XManRun:=0;
32173218
YManRun:=0;
3219+
WaitYManRun:=0;
32183220
LoadCurrLevel;
32193221
End;
32203222

@@ -3324,7 +3326,7 @@ Begin
33243326
End;
33253327
TextColor(15);
33263328
TextBackground(0);
3327-
GotoXY(30,18);
3329+
GotoXY(29,18);
33283330
Write('Niveau : ',Level);
33293331
End;
33303332

@@ -3396,6 +3398,39 @@ Procedure RightMan;Begin
33963398
End;
33973399
End;
33983400

3401+
Function UpMan:Boolean;Begin
3402+
UpMan:=False;
3403+
If YMan>0Then Begin { Up }
3404+
If CurrTab[YMan,XMan]in['H','S']Then Begin
3405+
XManRun:=0;
3406+
HideMan;
3407+
Dec(YMan);
3408+
ShowMan;
3409+
UpMan:=True;
3410+
End;
3411+
End;
3412+
End;
3413+
3414+
Function DownMan:Boolean;Begin
3415+
DownMan:=False;
3416+
If CurrTab[YMan+1,XMan]in['H','S']Then Begin
3417+
XManRun:=0;
3418+
HideMan;
3419+
Inc(YMan);
3420+
ShowMan;
3421+
DownMan:=True;
3422+
End
3423+
Else
3424+
If CurrTab[YMan+1,XMan]in[' ']Then Begin
3425+
XManRun:=0;
3426+
HideMan;
3427+
Inc(YMan);
3428+
ShowMan;
3429+
DownMan:=True;
3430+
YManRun:=1;
3431+
End;
3432+
End;
3433+
33993434
Procedure RunGame;
34003435
Var
34013436
I,Skip:Byte;
@@ -3463,38 +3498,42 @@ Begin
34633498
Skip:=(Skip+1)and 3;
34643499
Until Keypressed;
34653500
K:=ReadKey;
3501+
If(WaitYManRun=-1)and(UpMan)Then Begin
3502+
WaitYManRun:=0;
3503+
End
3504+
Else
3505+
If(WaitYManRun=1)and(DownMan)Then Begin
3506+
WaitYManRun:=0;
3507+
End
3508+
Else
34663509
Case K of
34673510
' ':XManRun:=0;
34683511
#0:Case ReadKey of
34693512
#72:Begin
3470-
If YMan>0Then Begin { Up }
3471-
XManRun:=0;
3472-
If CurrTab[YMan,XMan]in['H','S']Then Begin
3473-
HideMan;
3474-
Dec(YMan);
3475-
ShowMan;
3476-
End;
3513+
If(UpMan)Then Begin
3514+
WaitYManRun:=0;
34773515
End
34783516
Else
3479-
If Gold<=0Then Begin
3517+
If(Gold<=0)and(YMan=0)Then Begin
34803518
Inc(Level);
34813519
XManRun:=0;
34823520
YManRun:=0;
34833521
LoadCurrLevel;
34843522
ShowLevel;
34853523
ShowLife;
3486-
End;
3524+
End
3525+
Else
3526+
WaitYManRun:=-1;
34873527
End;
34883528
#75:LeftMan; { Left }
34893529
#77:RightMan; { Right }
34903530
#80:Begin { Down }
3491-
XManRun:=0;
3492-
If CurrTab[YMan+1,XMan]in['H','S']Then Begin
3493-
HideMan;
3494-
Inc(YMan);
3495-
ShowMan;
3496-
End;
3497-
End;
3531+
If(DownMan)Then Begin
3532+
WaitYManRun:=0;
3533+
End
3534+
Else
3535+
WaitYManRun:=1;
3536+
End
34983537
End;
34993538
End;
35003539
Until K=#27;
@@ -3504,4 +3543,5 @@ BEGIN
35043543
InitGame;
35053544
ShowLevel;
35063545
RunGame;
3546+
CursorOn;
35073547
END.

0 commit comments

Comments
 (0)