home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / PINBSRC.ZIP / _INI_CLO.PAS < prev    next >
Pascal/Delphi Source File  |  1996-02-02  |  4KB  |  146 lines

  1. {---------------------------------------------------------------------------}
  2. procedure Init_ball_values;
  3. begin
  4.   {ballx := 300; bally := 160;
  5.   ballspeed_y:=-80; ballspeed_x:=2; kraft := 250;}
  6.   ballx := 300; bally := 500+20;
  7.   get_ground_auto;
  8.   draw_ball_auto;
  9.   bx_old := 300; by_old := 500+20;
  10.   ballspeed_y := 0;
  11.   ballspeed_x := 0;
  12.   kraft := 0;
  13.   play(snd8);
  14. end;
  15.  
  16. procedure Init_All;
  17. var y : byte; ch:char; t : word;
  18.     param : string;
  19. begin
  20.   param := paramstr(1);
  21.   OldFileMode := FileMode;
  22.   FileMode := 0;
  23.   ch := param[1];
  24.   case ch of
  25.     '0' : begin overscan := false; highres := false; end;
  26.     '1' : begin overscan := false; highres := true; end;
  27.     '2' : begin overscan := true; highres := false; end;
  28.     '3' : begin overscan := true; highres := true; end;
  29.     else halt(2);
  30.   end;
  31.   VideoMode := ch;
  32.   ch := param[2];
  33.   case ch of
  34.      '1' : UseSound:=yes;
  35.      '0' : UseSound:=no;
  36.     else halt(2);
  37.   end;
  38.   ch := param[3];
  39.   case ch of
  40.     '1','2','3','4','5','6' : begin
  41.         MaxPlayer := ord(ch)-48;
  42.         writeln(Maxplayer);
  43.       end;
  44.     else halt(2);
  45.   end;
  46.  
  47.   getfont;
  48.   nosound;
  49.   init_random;
  50.   OldHeapSize := memavail;
  51.   mark(OldHeapLimit);
  52.   getmem(tableground1,320*200);
  53.   getmem(tableground2,320*200);
  54.   getmem(tableground3,320*200);
  55.   getmem(led_display,80*24*2);
  56.   getmem(arm_links,ArmBreiteLinks*ArmHoeheLinks*5);
  57.   getmem(arm_rechts,ArmBreiteRechts*ArmHoeheRechts*5);
  58.   getmem(arm_links_msk,ArmBreiteLinks*ArmHoeheLinks*5);
  59.   getmem(arm_rechts_msk,ArmBreiteRechts*ArmHoeheRechts*5);
  60.   getmem(ball,256);
  61.   getmem(ground,256);
  62.   getmem(ball_sprite,256);
  63.   getmem(underground,1024);
  64.   getmem(tableground,9368);
  65.   getmem(feder,480);
  66.   ledseg:=seg(Led_display^);
  67.   armlinksseg:=seg(arm_links^);
  68.   armrechtsseg:=seg(arm_rechts^);
  69.   armlinks_mskseg:=seg(arm_links_msk^);
  70.   armrechts_mskseg:=seg(arm_rechts_msk^);
  71.   ballseg:=seg(ball^);
  72.   groundseg:=seg(ground^);
  73.   ballspriteseg:=seg(ball_Sprite^);
  74.   undergroundseg:=seg(underground^);
  75.   tablegroundseg:=seg(tableground^);
  76.   federseg:=seg(Feder^);
  77.   led_hoehe:=24; led_color_1:=129; led_color_2:=130; led_funktion:=0;
  78.   {twix-mode 320x400 }
  79.   vga320x400Overscan; {setlinecomp(400-46);}
  80.  
  81.   load_table_tab;
  82.   load_table_gro;
  83.   load_feder;
  84.   FederY:=400+205;
  85.   FederHoehe:=40;
  86.   Set_Feder;
  87.   bally := 50;
  88.   calc_page_pos_of_ballpos;
  89.   init_colors;
  90.  
  91.        load_mini_palette('gfx\feder'+tnr+'.mpa');
  92.   load_arm_links;
  93.   load_arm_rechts;
  94.   load_arm_links_msk;
  95.   load_arm_rechts_msk;
  96.   load_ball;
  97.  
  98.   arm_links_old_status:=2;
  99.   arm_rechts_old_status:=2;
  100.   arm_links_status:=1;
  101.   arm_rechts_status:=1;
  102.   for y:=0 to 255 do mem[groundseg:y]:=0;
  103.   ballx:=50; bally:=260; get_ground_auto; bx_old:=50; by_old:=260;
  104.   if UseSound then init_soundkit;
  105.   {show led}
  106.   LED_anzeige_1;
  107.   {normal position}
  108.   Case VideoMode of
  109.     '2' : NormalPos := 400-led_hoehe*2+7;
  110.     '0' : NormalPos := 400-led_hoehe*2+7;
  111.     '3' : NormalPos := 400-led_hoehe+3;
  112.     '1' : NormalPos := 400-led_hoehe+3;
  113.   end;
  114.   CurrentPos := 400;
  115.   bende := false;
  116.   Actplayer := 1;
  117.   for t := 1 to 6 do begin
  118.       Balls[t] := 1;
  119.       Score[t] := 0;
  120.     end;
  121.   ruetteln := 0;
  122.   {**********}
  123.   draw_arm_links; draw_arm_rechts;
  124.   if HighRes then
  125.       for bally := 50 to 350 do begin
  126.            retrace; calc_page_pos_of_ballpos;
  127.          end
  128.      else for bally := 50 to 560 do begin
  129.               retrace; calc_page_pos_of_ballpos;
  130.             end;
  131.   init_ball_values;
  132. end;
  133.  
  134. procedure Close_all;
  135. begin
  136.   nosound;
  137.   Release(OldHeapLimit);
  138.   video_mode(3);
  139.   if OldHeapSize <> memavail then begin
  140.       writeln('Achtung Heapmanipulationen waren nicht erfolgreich!');
  141.       readkey;
  142.     end;
  143.   FileMode := OldFileMode;
  144. end;
  145. {---------------------------------------------------------------------------}
  146.