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