Subversion Repositories Kolibri OS

Rev

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.