Rev 762 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
762 | bw | 1 | unit LRLIntroduction; |
2 | |||
3 | |||
4 | interface |
||
5 | |||
6 | |||
7 | uses |
||
8 | SysUtils, |
||
9 | LRLRoutines, LRLSprites; |
||
10 | |||
11 | |||
12 | procedure LRLIntro; |
||
13 | |||
14 | |||
15 | implementation |
||
16 | |||
17 | |||
18 | const |
||
19 | IntroText: array[1..14] of String = ( |
||
775 | bw | 20 | 'Lode Runner LIVE. FREEWARE Version 1.5', |
762 | bw | 21 | 'KolibriOS port by bw (Vladimir V. Byrgazov)', |
22 | 'Copyright (c) 1995 Aleksey V. Vaneev', |
||
23 | 'Copyright (c) 2008 bw', |
||
24 | '', |
||
25 | 'Send comments to Aleksey V. Vaneev', |
||
26 | '2:5003/15@FidoNet', |
||
27 | 'ikomi@glas.apc.org', |
||
28 | '', |
||
29 | 'Send comments to bw', |
||
30 | 'bw@handsdriver.net', |
||
31 | '', |
||
32 | '', |
||
33 | ''); |
||
34 | |||
35 | SPACE40 = ' '; |
||
36 | |||
37 | |||
38 | var |
||
39 | TimeToRefresh: Boolean; |
||
40 | |||
41 | |||
42 | procedure LRLIntro; |
||
43 | var |
||
44 | i, j, l: Integer; |
||
45 | Count: Word; |
||
46 | k: Word; |
||
47 | MainScreen: Pointer; |
||
48 | begin |
||
49 | GetMem(MainScreen, 64004); |
||
50 | |||
51 | Seek(ImageFile, LRLImagesFilePosition + 7940); |
||
52 | BlockRead(ImageFile, MainScreen^, 64004, k); |
||
53 | Palette256Set(LRLMenuPalette^); |
||
54 | ImageFill(LRLFontBuffer^, 320, 55, 0); |
||
55 | ImageClear(LRLScreen^); |
||
56 | |||
57 | for i := -50 to 4 do |
||
58 | begin |
||
59 | ImagePut(LRLScreen^, LRLFontBuffer^, 0, 0, 0, 0, 319, 199); |
||
60 | ImagePut(LRLScreen^, LRLLogo^, 3, i, 0, 0, 319, 199); |
||
61 | ScreenApply(LRLScreen^); |
||
62 | if Keypressed then |
||
63 | begin |
||
64 | ReadKey; |
||
65 | FreeMem(MainScreen, 64004); |
||
66 | Exit; |
||
67 | end; |
||
68 | Sleep(10); |
||
69 | end; |
||
70 | |||
71 | ImageFill(LRLFontBuffer^, 320, 55, 0); |
||
72 | for i := 0 to 10 do |
||
73 | begin |
||
74 | for k := 0 to 20 do |
||
75 | for j := 0 to 16 do |
||
76 | ImagePutTransparent(LRLScreen^, MainScreen^, 0, 0, |
||
77 | j * 20 - 10 - i, k * 20 - 10 - i, |
||
78 | j * 20 - 10 + i, k * 20 - 10 + i); |
||
79 | |||
80 | Sleep(50); |
||
81 | |||
82 | ImagePut(LRLScreen^, LRLFontBuffer^, 0, 182, 0, 0, 319, 199); |
||
83 | ScreenApply(LRLScreen^); |
||
84 | if Keypressed then |
||
85 | begin |
||
86 | ReadKey; |
||
87 | FreeMem(MainScreen, 64004); |
||
88 | Exit; |
||
89 | end; |
||
90 | end; |
||
91 | |||
92 | Count := 1; |
||
93 | k := 1; |
||
94 | repeat |
||
95 | if TimeToRefresh then |
||
96 | begin |
||
97 | Inc(Count); |
||
98 | TimeToRefresh := False; |
||
99 | end; |
||
100 | |||
101 | if Count >= 2 then |
||
102 | begin |
||
103 | ImageStringGet(SPACE40 + IntroText[k] + SPACE40, LRLFont^, LRLFontBuffer^, 110); |
||
104 | for l := 200 downto 184 do |
||
105 | begin |
||
106 | ImagePut(LRLScreen^, LRLFontBuffer^, 160 - ImageSizeX(LRLFontBuffer^) div 2, l, 0, 0, 319, 199); |
||
107 | ScreenApply(LRLScreen^); |
||
108 | Sleep(20); |
||
109 | end; |
||
110 | Inc(k); |
||
111 | if k > Length(IntroText) then k := 1; |
||
112 | Count := 0; |
||
113 | end; |
||
114 | |||
115 | for I := 1 to 8 do |
||
116 | if Keypressed then |
||
117 | Break else |
||
118 | Sleep(250); |
||
119 | |||
120 | TimeToRefresh := True; |
||
121 | until KeyPressed; |
||
122 | |||
123 | ReadKey; |
||
124 | FadeClear; |
||
125 | FreeMem(MainScreen, 64004); |
||
126 | end; |
||
127 | |||
128 | |||
129 | end. |