home *** CD-ROM | disk | FTP | other *** search
/ Hráč 1997 December / Hrac_16_1997-12_cd.bin / PCMANIAK.5 / DATA / PCMANIAK.ORG / ZDRAJAKY / -MANIAK-.PAS next >
Pascal/Delphi Source File  |  1997-11-10  |  21KB  |  711 lines

  1. uses J_SVGA3, crt, Dos,  detect, smix;
  2.  
  3. CONST pozadie : string='DATA\PLOCHA.PCX';
  4.       PonukaRecenzii : string='DATA\01.PCX';
  5.       PonukaRubrik : string='DATA\02.PCX';
  6.       Obr_Setup : string='DATA\NASTAV.PCX';
  7.       sirka_recenzii = 256;
  8.       vyska_recenzii = 270;
  9.       navyske_recenzie = 100;
  10.       sirka_rubrik = 256;
  11.       vyska_rubrik = 301;
  12.       navyske_rubrik = 100;
  13.       POCET_RECENZII = 7; {-1}
  14.       POCET_RUBRIKi = 7; {-1}
  15.       RECENZIE_x1 = 17;
  16.       RECENZIE_x2 = 237;
  17.       RECENZIE_yprve = 116;
  18.       RECENZIE_ydlzka = 19;
  19.       RECENZIE_ymedzera = 12;
  20.       MAX_PCX_IN_OBRAZKY = 3;
  21.       rubrike_x1 = 562;
  22.       rubrike_x2 = 782;
  23.       rubrike_ydlzka = 19;
  24.       rubrike_ymedzera = 12;
  25.       rubrike_yprve = 116;
  26.       nastavenia_x1 = 200;
  27.       nastavenia_x2 = 300;
  28.       nastavenia_y1 = 500;
  29.       nastavenia_y2 = 600;
  30.       DOPREDU_x1 = 600;
  31.       DOPREDU_x2 = 700;
  32.       DOPREDU_y1 = 500;
  33.       DOPREDU_y2 = 600;
  34.       SPAT_x1 = 500;
  35.       SPAT_x2 = 600;
  36.       SPAT_y1 = 500;
  37.       SPAT_y2 = 600;
  38.       EXIT_x1 = 100;
  39.       EXIT_x2 = 200;
  40.       EXIT_y1 = 500;
  41.       EXIT_y2 = 600;
  42.       OBRazky_x1 = 300;
  43.       OBRazky_x2 = 400;
  44.       OBRazky_y1 = 500;
  45.       OBRazky_y2 = 600;
  46.       SETUP_x1 = 340;
  47.       SETUP_x2 = 460;
  48.       SETUP_y1 = 366;
  49.       SETUP_y2 = SETUP_y1+24;
  50.       SETUP_y3 = SETUP_y2+24;
  51.       SETUP_y4 = SETUP_y3+24;
  52.       SETUP_y5 = SETUP_y4+24;
  53.       SETUP_y6 = SETUP_y5+24;
  54.       XMS_PAMET_NA_ZVUKY = 500;
  55.       XMS_PAMET_NA_HUDBU = 1000;
  56.       POCET_ZVUKOV = 6;
  57.  
  58. var riadkov, strany: integer;
  59.     aktualnastrana: integer;
  60.     Aktivne: record
  61.                Recenzie,Rubriky, Dopredu,SPAT, obrazky, exit,nastavenia: boolean;
  62.              end;
  63.     PCXka: SearchRec;
  64.     lkjh: array[0..MAX_PCX_IN_OBRAZKY] of SearchRec;
  65.     obrazky_i: byte;
  66.     obr: boolean;
  67.     adresar: string;
  68.     sound: array[0..POCET_ZVUKOV] of Psound;
  69.     zvuk,hudba, efekty: boolean;
  70.  
  71. procedure Inicializacia;
  72. var chyba: boolean;
  73.     x,y: integer;
  74.     text: string;
  75.     var BaseIO: Word;
  76.     IRQ, DMA, DMA16: byte;
  77. begin
  78.  filemode:=0; {otvara subory len na citanie /// aj Read-only ///}
  79.  textcolor(white);
  80.  textbackground(black);
  81.  Write('Loadujem fonty ... ');
  82.  LoadFont('data\pcmaniak.fnt',chyba);
  83.  if not(chyba) then Writeln('OK')
  84.   else
  85.    begin {nenasiel fonty}
  86.      textcolor(red);
  87.      Writeln('ERROR');
  88.      textcolor(white);
  89.      Writeln; Writeln; Writeln('Problem: v adresary DATA sa nenachadza subor PCMANIAK.FNT, alebo sa neda nacitat');
  90.      Writeln; Writeln('Riesenie: nahraj si znova subor PCMANIAK.FNT do adresara DATA');
  91.      mem[0:$041A]:=mem[0:$041C];
  92.      halt(14);
  93.    end;
  94.  InitSVGA;
  95.  loadmouse;
  96.  set_mouse;
  97.  cistaobrazovka;
  98.  setfarba(15,63,63,63);
  99.  setfarba(16,63,0,0);
  100.  NastavAktualFarba(15);
  101.  Y:=0;
  102.  x:=(800-41*9) div 2;
  103.  Writetext(x,y,'PC-MANIAK engine v3.00 (c)1997 JoJo LASER');
  104.  x:=7;
  105.  inc(y,28);
  106.  Writetext(x,y,'Detekujem mysku ... ');
  107.  inc(x,20*9);
  108.  If Je_mys then Writetext(x,y,'OK') {ak je zavedeny ovladac mysi}
  109.  else
  110.   begin {nenasiel mys}
  111.     NastavAktualFarba(16);
  112.     Writetext(x,y,'CHYBA');
  113.     NastavAktualFarba(15);
  114.     inc(y,14);
  115.     x:=7;
  116.     inc(y,28);
  117.     Writetext(x,y,'Problem: nie je zavedeny ovladac mysi');
  118.     x:=7;
  119.     inc(y,28);
  120.     Writetext(x,y,'Riesenie: loadni si nejaky ovladac mysi (mouse.com)');
  121.     mem[0:$041A]:=mem[0:$041C]; {zmaze vyrovnavaciu pamet klavesnice}
  122.     halt(13);
  123.   end;
  124.  x:=7;
  125.  inc(y,14);
  126. { initsound}
  127. iF not zvuk then exit;
  128.  Writetext(x,y,'Detekujem zvukovu kartu ... ');
  129.  inc(x,28*9);
  130.  If not(GetSettings(BaseIO, IRQ, DMA, DMA16)) then
  131.   begin
  132.     NastavAktualFarba(16);
  133.     Writetext(x,y,'CHYBA');
  134.     NastavAktualFarba(15);
  135.     inc(y,16);
  136.     x:=7;
  137.     inc(y,28);
  138.     Writetext(x,y,'Problem: Nenasiel som zvukovu kartu');
  139.     x:=7;
  140.     inc(y,28);
  141.     Writetext(x,y,'Riesenie: nastav si premennu BLASTER na hodnoty svojej zvuk. karty');
  142.     x:=7;inc(y,16);
  143.     Writetext(x,y,'          najcastejsie: SET BLASTER=A220 I5 D1 T4');
  144.        zvuk:=false;
  145.        efekty:=false;
  146.        hudba:=false;
  147.     x:=7;inc(y,28);
  148.     Writetext(x,y,' -=- STLAC NEJAKU KLAVESU -=-');
  149.     repeat until keypressed;
  150.     mem[0:$041A]:=mem[0:$041C]; {zmaze vyrovnavaciu pamet klavesnice}
  151.     exit;
  152.   end else
  153.         if not(InitSB(BaseIO, IRQ, DMA, DMA16)) then
  154.         begin
  155.          NastavAktualFarba(16);
  156.          Writetext(x,y,'CHYBA');
  157.          NastavAktualFarba(15);
  158.          inc(y,16);
  159.          x:=7;
  160.          inc(y,28);
  161.          Writetext(x,y,'Problem: zvukova karta sa neda inicializovat');
  162.          x:=7;
  163.          inc(y,28);
  164.          Writetext(x,y,'Riesenie: zle nastavene hodnoty BLASTER, alebo: kup si zvukovu kartu');
  165.          zvuk:=false;
  166.          efekty:=false;
  167.          hudba:=false;
  168.          x:=7;inc(y,28);
  169.          Writetext(x,y,' -=- STLAC NEJAKU KLAVESU -=-');
  170.          repeat until keypressed;
  171.          mem[0:$041A]:=mem[0:$041C]; {zmaze vyrovnavaciu pamet klavesnice}
  172.          exit;
  173.       end else Writetext(x,y,'OK');
  174.  x:=7;
  175.  inc(y,16);
  176.  Writetext(x,y,'Testujem XMS pamet ... ');
  177.  inc(x,23*9);
  178.  If InitXMS then Writetext(x,y,'OK')
  179.  else
  180.   begin
  181.     NastavAktualFarba(16);
  182.     Writetext(x,y,'CHYBA');
  183.     NastavAktualFarba(15);
  184.     inc(y,16);
  185.     x:=7;
  186.     inc(y,28);
  187.     Writetext(x,y,'Problem: XMS pamet nie je pritomna');
  188.     x:=7;
  189.     inc(y,28);
  190.     Writetext(x,y,'Riesenie: do CONFIG.SYSu pridaj riadok DEVICE=C:\DOS\HIMEM.SYS');
  191.     zvuk:=false;
  192.     efekty:=false;
  193.     hudba:=false;
  194.     x:=7;inc(y,28);
  195.     Writetext(x,y,' -=- STLAC NEJAKU KLAVESU -=-');
  196.     repeat until keypressed;
  197.     mem[0:$041A]:=mem[0:$041C]; {zmaze vyrovnavaciu pamet klavesnice}
  198.     exit;
  199.   end;
  200.  x:=7;
  201.  inc(y,16);
  202.  Writetext(x,y,'Detekujem volnu XMS pamet na ZVUKY ... ');
  203.  inc(x,39*9);
  204.  If GetFreeXMS > XMS_PAMET_NA_ZVUKY then Writetext(x,y,'OK')
  205.  else
  206.   begin
  207.     NastavAktualFarba(16);
  208.     Writetext(x,y,'CHYBA');
  209.     NastavAktualFarba(15);
  210.     inc(y,16);
  211.     x:=7;
  212.     inc(y,28);
  213.     Writetext(x,y,'Problem: malo XMS pamete');
  214.     x:=7;
  215.     inc(y,28);
  216.     Writetext(x,y,'Riesenie: do AUTOEXEC.BATu napis pred SMARTDRV.EXE prikaz "REM", alebo si dokup nejaku RAMku');
  217.     zvuk:=false;
  218.     efekty:=false;
  219.     hudba:=false;
  220.     x:=7;inc(y,28);
  221.     Writetext(x,y,' -=- STLAC NEJAKU KLAVESU -=-');
  222.     repeat until keypressed;
  223.     mem[0:$041A]:=mem[0:$041C]; {zmaze vyrovnavaciu pamet klavesnice}
  224.     exit;
  225.   end;
  226.  
  227.   {VSETKO V PORIADKU}
  228.   InitSharing;
  229.   OpenSoundResourceFile('data\pcmaniak.SND');
  230.   LoadSound(Sound[1], 'OTOC');
  231.   LoadSound(Sound[2], 'EXIT');
  232.   LoadSound(Sound[3], 'ERROR');
  233.   LoadSound(Sound[4], 'START');
  234.   LoadSound(Sound[5], 'CLICK');
  235.   LoadSound(Sound[6], 'PUSH');
  236.   x:=7;
  237.   inc(y,16);
  238.   Writetext(x,y,'Detekujem volnu XMS pamet na HUDBU ... ');
  239.   inc(x,39*9);
  240.   If GetFreeXMS > XMS_PAMET_NA_HUDBU then Writetext(x,y,'OK')
  241.   else
  242.    begin
  243.     NastavAktualFarba(16);
  244.     Writetext(x,y,'CHYBA');
  245.     NastavAktualFarba(15);
  246.     inc(y,16);
  247.     x:=7;
  248.     inc(y,28);
  249.     Writetext(x,y,'Problem: malo XMS pamete');
  250.     x:=7;
  251.     inc(y,28);
  252.     Writetext(x,y,'Riesenie: do AUTOEXEC.BATu napis pred SMARTDRV.EXE prikaz "REM", alebo si dokup nejaku RAMku');
  253.     hudba:=false;
  254.     x:=7;inc(y,28);
  255.     Writetext(x,y,' -=- STLAC NEJAKU KLAVESU -=-');
  256.     repeat until keypressed;
  257.     mem[0:$041A]:=mem[0:$041C]; {zmaze vyrovnavaciu pamet klavesnice}
  258.    end;
  259.    if hudba then LoadSound(Sound[0], 'HUDBA');
  260.    CloseSoundResourceFile;
  261.    InitMixing;
  262.    x:=7;inc(y,28);
  263.    Writetext(x,y,' VSETKO OK ');
  264.    StartSound(Sound[4], 4, false);
  265.    repeat until not(SoundPlaying(4));
  266.    delay(40);
  267.    StartSound(Sound[0], 0, true);
  268. {\initsound}
  269. end;
  270.  
  271. procedure nacitajtext(subor: string);
  272. var fi : file of byte;
  273.     a : word;
  274.     z : byte;
  275. begin
  276.   aktualnastrana:=0;
  277.   for a:=1 to 200 do otext[a]:='';
  278.   riadkov:=1;
  279.   strany:=0;
  280.   assign(fi, subor);
  281.   reset(fi);
  282.   for a:=0 to filesize(fi)-1 do
  283.    begin
  284.     read(fi, z);
  285.     z:=255-z;
  286.     if z=10 then inc(riadkov)
  287.     else if z=13 then
  288.     else otext[riadkov+strany*20]:=otext[riadkov+strany*20]+chr(z);
  289.     if riadkov=20 then begin strany:=strany+1; riadkov:=1; end;
  290.   end;
  291.   close(fi);
  292. end;
  293.  
  294. procedure zobraztext(strana: integer);
  295. var a: integer;
  296. begin
  297.  loadpcx(pozadie,0,0,true);
  298.  if (zvuk) and (efekty) then StartSound(sound[1],1,false);
  299.  Put_Strana(733,518,aktualnastrana,strany);
  300.  Put_iFObrazky(345,532,Obrazky_i);
  301.  NastavAktualFarba(255);
  302.  for a:=1 to 20 do
  303.   begin
  304.    Writetext(108,87+(a*20),Otext[a+20*strana]);
  305.    Writetext(109,87+(a*20),Otext[a+20*strana]);
  306.   end;
  307.  first_time:=true;
  308. end;
  309.  
  310. procedure rectext(lolipop: string);
  311. begin
  312.     obrazky_i:=0;
  313.     obr:=false;
  314.     nacitajtext(lolipop+'.txt');
  315.     adresar:='recenzie';
  316.     FindFirst(lolipop+'_*.pcx', $3F, PCXka);
  317.     lkjh[obrazky_i]:=PCXka;
  318.     while DosError = 0 do
  319.     begin
  320.       obr:=true;
  321.       inc(obrazky_i,1);
  322.       FindNext(PCXka);
  323.       lkjh[obrazky_i]:=PCXka;
  324.     end;
  325.     zobraztext(aktualnastrana);
  326. end;
  327.  
  328. procedure rubtext(lolipop: string);
  329. begin
  330.     obrazky_i:=0;
  331.     obr:=false;
  332.     nacitajtext(lolipop+'.txt');
  333.     adresar:='rubriky';
  334.     FindFirst(lolipop+'_*.pcx', $3F, PCXka);
  335.     lkjh[obrazky_i]:=PCXka;
  336.     while DosError = 0 do
  337.     begin
  338.       obr:=true;
  339.       inc(obrazky_i);
  340.       FindNext(PCXka);
  341.       lkjh[obrazky_i]:=PCXka;
  342.     end;
  343.     zobraztext(aktualnastrana);
  344. end;
  345.  
  346.  
  347. Procedure Recenzie;
  348. var recenzia,recenzia2: integer;
  349.     kurzor_in_recenzia: boolean;
  350.     vysvietene_recenzie: array[0..pocet_recenzii] of boolean;
  351.     na_zobrazenie: string;
  352. Begin
  353.  na_zobrazenie:='';
  354.  for recenzia:=0 to pocet_recenzii do vysvietene_recenzie[recenzia] := false;
  355.  kurzor_in_recenzia:= false;
  356.  if (zvuk) and (efekty) then StartSound(Sound[5], 5, false);
  357.  loadpcx_fromleft(PonukaRecenzii,0,navyske_recenzie,false);
  358.  repeat
  359.   mouse_put;
  360.   Put_Cas(727,568);
  361.   delay(10);
  362. {}
  363. kurzor_in_recenzia:= false;
  364. if (horiz>recenzie_x1) and (horiz<recenzie_x2) then
  365. for recenzia:=0 to pocet_recenzii do
  366. if (vert>recenzia*recenzie_ydlzka+recenzia*recenzie_ymedzera+recenzie_yprve)
  367.  and (vert<recenzia*recenzie_ydlzka+recenzia*recenzie_ymedzera+recenzie_yprve+recenzie_ydlzka) then
  368.  begin
  369.   if not(vysvietene_recenzie[recenzia]) then
  370.    begin
  371.     vysviet(recenzie_x1,recenzia*recenzie_ydlzka+recenzia*recenzie_ymedzera+recenzie_yprve,
  372.             recenzie_x2,recenzia*recenzie_ydlzka+recenzia*recenzie_ymedzera+recenzie_yprve+recenzie_ydlzka,10,{15}255);
  373.     vysvietene_recenzie[recenzia]:=true;
  374.    end;
  375.  for recenzia2:=0 to pocet_recenzii do
  376.  if (vysvietene_recenzie[recenzia2]) and (recenzia2<>recenzia) then
  377.   begin
  378.    Vysviet(recenzie_x1,recenzia2*recenzie_ydlzka+recenzia2*recenzie_ymedzera+recenzie_yprve,
  379.            recenzie_x2,recenzia2*recenzie_ydlzka+recenzia2*recenzie_ymedzera+recenzie_yprve+recenzie_ydlzka,{15}255,10);
  380.    vysvietene_recenzie[recenzia2]:=false;
  381.   end;
  382.  if button=1 then
  383.   begin
  384.    na_zobrazenie:='recenzie\0'+chr(recenzia+48);
  385.    StartSound(Sound[6], 6, false);
  386.    button:=2;
  387.   end;
  388.  kurzor_in_recenzia:=true;
  389. end;
  390.  
  391.  if not(kurzor_in_recenzia) then
  392.   for recenzia2:=0 to pocet_recenzii do
  393.    begin
  394.      if (button=1) and (zvuk) and (efekty) then StartSound(sound[3],3,false);
  395.      if (vysvietene_recenzie[recenzia2]) then
  396.       begin
  397.        Vysviet(recenzie_x1,recenzia2*recenzie_ydlzka+recenzia2*recenzie_ymedzera+recenzie_yprve,
  398.                recenzie_x2,recenzia2*recenzie_ydlzka+recenzia2*recenzie_ymedzera+recenzie_yprve+recenzie_ydlzka,{15}255,10);
  399.        vysvietene_recenzie[recenzia2]:=false;
  400.       end;
  401.    end;
  402. {}
  403.  until button=2;
  404.  Aktivne.Recenzie:=false;
  405.  if na_zobrazenie<>'' then rectext(na_zobrazenie) else zobraztext(aktualnastrana);
  406. end;
  407.  
  408.  
  409. Procedure Rubriky;
  410. var rubrika,rubrika2: integer;
  411.     kurzor_in_rubrika: boolean;
  412.     vysvietene_rubrike: array[0..pocet_rubriki] of boolean;
  413.     na_zobrazenie: string;
  414. Begin
  415.  na_zobrazenie:='';
  416.  for rubrika:=0 to pocet_rubriki do vysvietene_rubrike[rubrika] := false;
  417.  kurzor_in_rubrika:= false;
  418.  if (zvuk) and (efekty) then StartSound(Sound[5], 5, false);
  419.  loadpcx_fromRight(PonukaRubrik,800,navyske_rubrik,false);
  420.  repeat
  421.   mouse_put;
  422.    Put_Cas(727,568);
  423.   delay(10);
  424. {}
  425. kurzor_in_rubrika:=false;
  426. if (horiz>rubrike_x1) and (horiz<rubrike_x2) then
  427. for rubrika:=0 to pocet_rubriki do
  428. if (vert>rubrika*rubrike_ydlzka+rubrika*rubrike_ymedzera+rubrike_yprve)
  429.  and (vert<rubrika*rubrike_ydlzka+rubrika*rubrike_ymedzera+rubrike_yprve+rubrike_ydlzka) then
  430.  begin
  431.   if not(vysvietene_rubrike[rubrika]) then
  432.    begin
  433.     vysviet(rubrike_x1,rubrika*rubrike_ydlzka+rubrika*rubrike_ymedzera+rubrike_yprve,
  434.             rubrike_x2,rubrika*rubrike_ydlzka+rubrika*rubrike_ymedzera+rubrike_yprve+rubrike_ydlzka,10,{15}255);
  435.     vysvietene_rubrike[rubrika]:=true;
  436.    end;
  437.  for rubrika2:=0 to pocet_rubriki do
  438.  if (vysvietene_rubrike[rubrika2]) and (rubrika2<>rubrika) then
  439.   begin
  440.    Vysviet(rubrike_x1,rubrika2*rubrike_ydlzka+rubrika2*rubrike_ymedzera+rubrike_yprve,
  441.            rubrike_x2,rubrika2*rubrike_ydlzka+rubrika2*rubrike_ymedzera+rubrike_yprve+rubrike_ydlzka,{15}255,10);
  442.    vysvietene_rubrike[rubrika2]:=false;
  443.   end;
  444.  if button=1 then
  445.   begin
  446.    StartSound(Sound[6], 6, false);
  447.    na_zobrazenie:='rubriky\0'+chr(rubrika+48);
  448.    button:=2;
  449.   end;
  450.   kurzor_in_rubrika:=true;
  451.  end;
  452.  
  453.  if not(kurzor_in_rubrika) then
  454.   for rubrika2:=0 to pocet_rubriki do
  455.    begin
  456.      if (button=1) and (zvuk) and (efekty) then StartSound(sound[3],3,false);
  457.      if (vysvietene_rubrike[rubrika2]) then
  458.       begin
  459.        Vysviet(rubrike_x1,rubrika2*rubrike_ydlzka+rubrika2*rubrike_ymedzera+rubrike_yprve,
  460.                rubrike_x2,rubrika2*rubrike_ydlzka+rubrika2*rubrike_ymedzera+rubrike_yprve+rubrike_ydlzka,{15}255,10);
  461.        vysvietene_rubrike[rubrika2]:=false;
  462.       end;
  463.    end;
  464. {}
  465.  until button=2;
  466.  Aktivne.Rubriky:=false;
  467.  if na_zobrazenie<>'' then rubtext(na_zobrazenie) else zobraztext(aktualnastrana);
  468. end;
  469.  
  470. procedure obrazky;
  471. var klav_znak: char;
  472.     j: integer;
  473. begin
  474.   CENTRALIZE:=TRUE;
  475.   cistaobrazovka;
  476.   mem[0:$041A]:=mem[0:$041C];
  477.   for j:=0 to obrazky_i-1 do
  478.    begin
  479.      aktualizuj_mouse;
  480.      loadpcx(adresar+'\'+lkjh[j].Name,0,0,true);
  481.      repeat
  482.       aktualizuj_mouse;
  483.       if keypressed then
  484.        begin
  485.          klav_znak:=readkey;
  486.          if klav_znak=#0 then klav_znak:=readkey;
  487.        end;
  488.      until (button=1) or (klav_znak=#27) or (button=2);
  489.      if klav_znak=#27 then j:=obrazky_i-1;
  490.      if (button=2) then
  491.       begin
  492.         j:=j-2;
  493.         if j=-2 then j:=obrazky_i-1;
  494.       end;
  495.     cistaobrazovka;
  496.    end;
  497.   cistaobrazovka;
  498.   CENTRALIZE:=FALSE;
  499.   aktualizuj_mouse;
  500.   zobraztext(aktualnastrana);
  501.   first_time:=true;
  502. end;
  503.  
  504. Procedure Konieccc;
  505. var x: integer;
  506. begin
  507.   nacitajtext('data\redakcia.txt');
  508.   cistaobrazovka;
  509.   Setfarba(15,63,63,63);
  510.   NastavAktualfarba(15);
  511.   x:=0;
  512.   for button:=1 to 40 do
  513.   begin
  514.   if button<>20 then x:=x+1;
  515.   Writetext(107,12+(x*20),Otext[button]);
  516.   end;
  517.   repeat until keypressed;
  518. end;
  519.  
  520. Procedure SETUP;
  521. var new: boolean;
  522. Begin
  523.  new:=true;
  524.  repeat
  525.   mouse_put;
  526.   Put_Cas(727,568);
  527.   delay(10);
  528.   if new then
  529.   begin
  530.     if (zvuk) and (efekty) then
  531.      begin
  532.        vysviet(SETUP_X1,SETUP_y1,SETUP_X2,SETUP_y2,1,255);
  533.        vysviet(SETUP_X1,SETUP_y2,SETUP_X2,SETUP_y3,1,3);
  534.      end else
  535.       begin
  536.        vysviet(SETUP_X1,SETUP_y1,SETUP_X2,SETUP_y2,1,3);
  537.        vysviet(SETUP_X1,SETUP_y2,SETUP_X2,SETUP_y3,1,255);
  538.       end;
  539.     if (zvuk) and (hudba) then
  540.      begin
  541.        vysviet(SETUP_X1,SETUP_y4,SETUP_X2,SETUP_y5,1,255);
  542.        vysviet(SETUP_X1,SETUP_y5,SETUP_X2,SETUP_y6,1,3);
  543.      end else
  544.       begin
  545.        vysviet(SETUP_X1,SETUP_y4,SETUP_X2,SETUP_y5,1,3);
  546.        vysviet(SETUP_X1,SETUP_y5,SETUP_X2,SETUP_y6,1,255);
  547.       end;
  548.     new:=false;
  549.     aktualizuj_mouse;
  550.     z_mys:=true;
  551.   end;
  552.   if (button=1) and (horiz>SETUP_X1) and (horiz<SETUP_X2) then
  553.    begin
  554.      if (vert>SETUP_y1) and (vert<SETUP_y2) and not(efekty) then
  555.       begin
  556.         efekty:=true;
  557.         new:=true;
  558.       end;
  559.      if (vert>SETUP_y2) and (vert<SETUP_y3) and efekty then
  560.       begin
  561.         efekty:=false;
  562.         new:=true;
  563.       end;
  564.      if (vert>setup_y4) and (vert<setup_y5) and (not(hudba)) then
  565.       begin
  566.         hudba:=true;
  567.         Stopsound(0);
  568.         Startsound(sound[0],0,true);
  569.         new:=true;
  570.       end;
  571.      if (vert>setup_y5) and (vert<setup_y6) and hudba then
  572.       begin
  573.         hudba:=false;
  574.         Stopsound(0);
  575.         new:=true;
  576.       end;
  577.    end;
  578.  until button=2;
  579.  zobraztext(aktualnastrana);
  580. end;
  581.  
  582.  
  583.  
  584. begin
  585.  Hudba:=true;
  586.  zvuk:=true;
  587.  efekty:=true;
  588.  iF ParAmCouNT<>0 tHeN iF PaRamStR(1)='nosound' then
  589.   begin
  590.    zvuk:=false;
  591.   end;
  592.  Inicializacia;
  593.  nacitajtext('data\uvod.txt');
  594.  zobraztext(0);
  595.  mouse_put;
  596.  Aktivne.Recenzie:=false;
  597.  Aktivne.Rubriky:=false;
  598.  Aktivne.Dopredu:=false;
  599.  aktivne.SPAT:=false;
  600.  aktivne.obrazky:=false;
  601.  aktivne.EXIT:=false;
  602.  aktivne.nastavenia:=false;
  603.  repeat
  604.   if (vert>navyske_recenzie) and (vert<vyska_recenzii+navyske_recenzie) and (horiz=0) and (not Aktivne.Recenzie) then
  605.    begin Aktivne.Recenzie:=true; Recenzie; end;
  606.   if (vert>navyske_rubrik) and (vert<vyska_rubrik+navyske_rubrik) and (horiz=789) and (not Aktivne.Rubriky) then
  607.    begin Aktivne.Rubriky:=true; Rubriky; end;
  608. {}
  609.    if (vert>nastavenia_y1) and (vert<nastavenia_y2) and (horiz>nastavenia_x1) and (horiz<nastavenia_x2) then
  610.    begin
  611.     if (button=1) then
  612.      begin
  613.        aktivne.nastavenia:=false;
  614.        loadpcx_fromdown(Obr_SETUP,0,500,false);
  615.        setup;
  616.        aktualizuj_mouse;
  617.        Z_mys:=true;
  618.      end;
  619.     if not(aktivne.nastavenia) then vysviet(nastavenia_x1, nastavenia_y1, nastavenia_x2, nastavenia_y2, 29, 255);
  620.     aktivne.nastavenia:=true;
  621.    end else if aktivne.nastavenia then
  622.     begin
  623.       vysviet(nastavenia_x1, nastavenia_y1, nastavenia_x2, nastavenia_y2, 255, 29);
  624.       aktivne.nastavenia:=false;
  625.     end;
  626.  
  627. {}
  628.    if (vert>DOPREDU_y1) and (vert<DOPREDU_y2) and (horiz>DOPREDU_x1) and (horiz<DOPREDU_x2) then
  629.    begin
  630.     if (button=1) and (aktualnastrana<strany) then
  631.      begin
  632.        aktivne.dopredu:=false;
  633.        inc(aktualnastrana);
  634.        zobraztext(aktualnastrana);
  635.      end;
  636.     if not(aktivne.Dopredu) and (aktualnastrana<strany) then vysviet(dopredu_x1, dopredu_y1, dopredu_x2, dopredu_y2, 29, 255);
  637.     aktivne.Dopredu:=true;
  638.    end else if aktivne.dopredu then
  639.     begin
  640.       vysviet(dopredu_x1, dopredu_y1, dopredu_x2, dopredu_y2, 255, 29);
  641.       aktivne.dopredu:=false;
  642.     end;
  643. {}
  644.    if (vert>SPAT_y1) and (vert<SPAT_y2) and (horiz>SPAT_x1) and (horiz<SPAT_x2) then
  645.    begin
  646.     if (button=1) and (aktualnastrana>0) then
  647.      begin
  648.        aktivne.SPAT:=false;
  649.        inc(aktualnastrana,-1);
  650.        zobraztext(aktualnastrana);
  651.      end;
  652.     if not(aktivne.SPAT) and (aktualnastrana>0) then vysviet(SPAT_x1, SPAT_y1, SPAT_x2, SPAT_y2, 29, 255);
  653.     aktivne.SPAT:=true;
  654.    end else if aktivne.SPAT then
  655.     begin
  656.       vysviet(SPAT_x1, SPAT_y1, SPAT_x2, SPAT_y2, 255, 29);
  657.       aktivne.SPAT:=false;
  658.     end;
  659. {}
  660.    if (vert>obrazky_y1) and (vert<obrazky_y2) and (horiz>obrazky_x1) and (horiz<obrazky_x2) then
  661.    begin
  662.     if (button=1) and (obrazky_i<>0) then
  663.      begin
  664.        aktivne.obrazky:=false;
  665.        obrazky;
  666.      end;
  667.     if not(aktivne.obrazky) and (obrazky_i<>0) then vysviet(obrazky_x1, obrazky_y1, obrazky_x2, obrazky_y2, 29, 255);
  668.     if obrazky_i<>0 then aktivne.obrazky:=true;
  669.    end else if aktivne.obrazky then
  670.     begin
  671.       vysviet(obrazky_x1, obrazky_y1, obrazky_x2, obrazky_y2, 255, 29);
  672.       Put_iFObrazky(345,532,Obrazky_i);
  673.       aktivne.obrazky:=false;
  674.     end;
  675. {}
  676.   mouse_put;
  677.   delay(10);
  678.   Put_Cas(727,568);
  679. {}
  680.    if (vert>EXIT_y1) and (vert<EXIT_y2) and (horiz>EXIT_x1) and (horiz<EXIT_x2) then
  681.    begin
  682.     if (button=1) then
  683.      begin
  684.        button:=10;
  685.      end;
  686.     if not(aktivne.EXIT) then vysviet(EXIT_x1, EXIT_y1, EXIT_x2, EXIT_y2, 29, 255);
  687.     aktivne.EXIT:=true;
  688.    end else if aktivne.EXIT then
  689.     begin
  690.       vysviet(EXIT_x1, EXIT_y1, EXIT_x2, EXIT_y2, 255, 29);
  691.       aktivne.EXIT:=false;
  692.     end;
  693. {}
  694.  until button=10;
  695.  
  696.  {EXIT}
  697.  if (zvuk) and (hudba) then stopsound(0);
  698.  if (zvuk) and (efekty) then
  699.   begin
  700.     StartSound(sound[2],2,false);
  701.     repeat until not(SoundPlaying(2));
  702.   end;
  703.  for button := 0 to POCET_ZVUKOV do
  704.   if Sound[button] <> nil then FreeSound(Sound[button]);
  705.    ShutdownSharing;
  706.  mem[0:$041A]:=mem[0:$041C];
  707.  mys_cursorEnable:=false;
  708.  konieccc;
  709.  downSVGA;
  710.  mem[0:$041A]:=mem[0:$041C];
  711. end.