home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / BBSONLIN / SUPDOM1.ZIP / OVERLAY1.DOM < prev    next >
Text File  |  1991-02-24  |  12KB  |  369 lines

  1. { for Dominions! version 2.00TC - October 1989 }
  2. { for Super Dominions v 1.00 - July 1990 }
  3.  
  4. {--------========>*>*>*> Main Menu Procedures <*<*<*<========--------}
  5.  
  6.    { All of the following procedures were called from the Main Menu.}
  7.  
  8. procedure Counterintelligence_Menu;
  9.  
  10.   Begin
  11.     Repeat
  12.       nl;
  13.       ansic(2);
  14.       print ('Intelligence Menu');
  15.       ansic(5);
  16.       print ('~~~~~~~~~~~~~~~~~');
  17.       if not (Empire[Player_Number].Expert) then
  18.         Begin
  19.           print ('Spy on an (E)mpire');
  20.           print ('(H)elp');
  21.           print ('Spy on a (P)lanet');
  22.           print ('(Q)uit to Main Menu');
  23.           nl;
  24.         End;
  25.       print ('Actions Remaining : ' + St(Empire[player_number].Intel_Reports));
  26.       ansic(1);
  27.       if Empire[Player_Number].Expert then
  28.         prompt ('Option (E,H,P,Q) > ')
  29.       else
  30.         prompt ('Option > ');
  31.       Onek (OneChar, 'EHPQX');
  32.       Case OneChar of
  33.         'E' : Spy_Empire;                      {Case of... Sends }
  34.         'H' : PrintFile ('HelpCoun.Dom');      {Program to Correct }
  35.         'P' : Spy_Planet;                      {Procedure for Counterintel. Input.}
  36.         'X' : Empire[Player_Number].Expert := not (Empire[Player_Number].Expert);
  37.        End; {case}
  38.     Until onechar = 'Q';
  39.   End;
  40.  
  41.    procedure Empire_Menu;
  42.  
  43.       Begin
  44.          Repeat
  45.             nl;
  46.             ansic(2);
  47.             print ('Empire Management Menu');
  48.             ansic(5);
  49.             print ('~~~~~~~~~~~~~~~~~~~~~~');
  50.             if not (Empire[Player_Number].Expert) then
  51.                Begin
  52.                   print ('Make an (A)nnouncement');
  53.                   print ('(C)hange Empire''s Name');
  54.                   print ('(H)elp');
  55.                   print ('(L)ist Empires');
  56.                   print ('Send (M)essage to Another Player');
  57.                   print ('(Q)uit to Main Menu');
  58.                   print ('(S)tatus of the Empire');
  59.                   print ('Increase (T)echnology Level');
  60.                   nl;
  61.                End;
  62.             ansic(1);
  63.             if Empire[Player_Number].Expert then
  64.               prompt ('Option (A,C,H,L,M,Q,S,T) > ')
  65.             else
  66.               prompt ('Option > ');
  67.             Onek (OneChar, 'ACHLMQSTX');
  68.             Case OneChar of
  69.                'A' : Announcement;
  70.                'C' : Change_Empire_Name;
  71.                'H' : PrintFile ('HelpEmpi.Dom');
  72.                'L' : List_Empires;
  73.                'M' : Message;
  74.                'S' : Print_Empire (Player_Number);
  75.                'T' : Increase_Technology;
  76.                'X' : Empire[Player_Number].Expert := not (Empire[Player_Number].Expert);
  77.             End;
  78.          Until onechar = 'Q';
  79.       End;
  80.  
  81.    procedure Maps;
  82.  
  83.       Begin
  84.          nl;
  85.          ansic(4);
  86.          prompt('|~~~|~~~|~~~|~~~|~~~|');
  87.          ansic(1);
  88.          print(' Each region is');
  89.          ansic(4);
  90.          prompt('|   |   |   |   |   |');
  91.          ansic(1);
  92.          print(' 20 x 100 light');
  93.          ansic(4);
  94.          prompt('|   |   |   |   |   |');
  95.          ansic(1);
  96.          print(' years');
  97.          ansic(4);
  98.          print('|   |   |   |   |   |');
  99.          ansic(4);
  100.          prompt('| 1 | 2 | 3 | 4 | 5 |');
  101.          ansic(1);
  102.          print(' Whole map is');
  103.          ansic(4);
  104.          prompt('|   |   |   |   |   |');
  105.          ansic(1);
  106.          print(' 100 x 100 ly');
  107.          ansic(4);
  108.          print('|   |   |   |   |   |');
  109.          ansic(4);
  110.          print('|   |   |   |   |   |');
  111.          ansic(4);
  112.          print('|___|___|___|___|___|');
  113.          nl;
  114.          ansic(5);
  115.          prompt ('Print which map region? ');
  116.          Onek (OneChar, 'Q12345');
  117.          Case onechar of
  118.            '1' : printfile('Region1.Dom');
  119.            '2' : printfile('Region2.Dom');
  120.            '3' : printfile('Region3.Dom');
  121.            '4' : printfile('Region4.Dom');
  122.            '5' : printfile('Region5.Dom');
  123.          End;{case}
  124.          nl;
  125.          if onechar <> 'Q' then
  126.            PauseScr;
  127.       End;
  128.  
  129.    procedure Navy_Menu;
  130.  
  131.       Begin
  132.          Repeat
  133.             nl;
  134.             ansic(2);
  135.             print ('Navy Management Menu');
  136.             ansic(5);
  137.             print ('~~~~~~~~~~~~~~~~~~~~');
  138.             if not Empire[Player_Number].Expert then
  139.                Begin
  140.                   print ('(B)uild New Ships');
  141.                   print ('(C)ompute Distance Between Planets');
  142.                   print ('(D)eploy New PDBs');
  143.                   print ('(E)xamine Radars');
  144.                   print ('(F)leets in Flight');
  145.                   print ('(H)elp');
  146.                   print ('(I)nstall New Radars');
  147.                   print ('(M)ove Ships');
  148.                   print ('(P)lanetary Status');
  149.                   print ('(Q)uit to Main Menu');
  150.                   print ('(R)ecall a Fleet');
  151.                   print ('(S)tatus of the Navy');
  152.                   writeln;
  153.                End;
  154.             ansic(1);
  155.             if Empire[Player_Number].Expert then
  156.               prompt ('Option (B,C,D,E,F,H,I,M,P,Q,R,S) > ')
  157.             else
  158.               prompt ('Option > ');
  159.             Onek (OneChar, 'BCDEFHIMSPQRX');
  160.             Case OneChar of
  161.                'B' : Build_Ships;
  162.                'C' : Compute_Distance;
  163.                'D' : Build_PDB;
  164.                'F' : fleets_in_flight;
  165.                'E' : Examine_Radar;
  166.                'H' : PrintFile ('HelpNava.Dom');
  167.                'I' : Build_Radar;
  168.                'M' : Move_Ships;
  169.                'S' : Navy_Status;
  170.                'P' : planet_status;
  171.                'R' : recall_Fleet;
  172.                'X' : Empire[Player_Number].Expert := not Empire[Player_Number].Expert;
  173.             End;
  174.          Until onechar = 'Q';
  175.       End;
  176.  
  177.    procedure Planet_Menu;
  178.  
  179.       Begin
  180.          Repeat
  181.             nl;
  182.             ansic(2);
  183.             print ('Planet Management Menu');
  184.             ansic(5);
  185.             print ('~~~~~~~~~~~~~~~~~~~~~~');
  186.             if not Empire[Player_Number].Expert then
  187.                Begin
  188.                   print ('Set Manpower Allocations for (A)ll');
  189.                   print ('   Planets');
  190.                   print ('(C)hange the Name of a Planet');
  191.                   print ('List Planets by (E)mpire');
  192.                   print ('(F)ind Planet');
  193.                   print ('(H)elp');
  194.                   print ('Increase (I)ndustry Level of a Planet');
  195.                   print ('(L)ist All Planets');
  196.                   print ('Change (M)anpower Allocation of a');
  197.                   print ('   Planet');
  198.                   print ('Compute (P)roduction');
  199.                   print ('(Q)uit to Main Menu');
  200.                   print ('(S)tatus of a Planet');
  201.                   print ('(Z)oom View Planets');
  202.                   writeln;
  203.                End;
  204.              ansic(1);
  205.             if Empire[Player_Number].Expert then
  206.               prompt ('Option (A,C,E,F,H,I,L,M,P,Q,S,Z) > ')
  207.             else
  208.               prompt ('Option > ');
  209.             Onek (OneChar, 'ACEFHILMPQSXZ');
  210.             Case OneChar of
  211.                'A' : All_Manpower;
  212.                'C' : Change_Planet_Name;
  213.                'E' : Empire_Planet_List;
  214.                'F' : Find_Planet;
  215.                'H' : PrintFile ('HelpPlan.Dom');
  216.                'I' : Increase_Industry;
  217.                'L' : List_Planets;
  218.                'M' : Change_Manpower;
  219.                'P' : Compute_Production;
  220.                'S' : Planet_Status;
  221.                'X' : Empire[Player_Number].Expert := not Empire[Player_Number].Expert;
  222.                'Z' : Zoom_View;
  223.             End;
  224.          Until onechar = 'Q';
  225.       End;
  226.  
  227.    procedure Instructions;
  228.  
  229.       Begin
  230.          writeln;
  231.          print ('(H)istory, (I)nstructions, (S)trategy');
  232.          prompt ('or (A)ll ? ');
  233.          Onek (OneChar, 'AHIS');
  234.          cls;
  235.          if (OneChar = 'H') or (OneChar = 'A') then
  236.            begin
  237.              printfile('History.dom');
  238.              PauseScr;
  239.            end;
  240.          if (OneChar = 'I') or (OneChar = 'A') then
  241.            begin
  242.              printfile('Instruct.Dom');
  243.              PauseScr;
  244.            end;
  245.          if (OneChar = 'S') or (OneChar = 'A') then
  246.            begin
  247.              printfile('Strategy.Dom');
  248.              PauseScr;
  249.            end;
  250.  
  251.       End;
  252.  
  253.  
  254.    procedure Read_Recent_Happenings;
  255.  
  256.       Var
  257.          Recent_Happenings : Text;
  258.          Next_Line : String80;
  259.  
  260.       Begin
  261.          writeln;
  262.          print ('(T)his month''s, (L)ast month''s,');
  263.          prompt ('or (B)oth ? ');
  264.          Onek (OneChar, 'BLT');
  265.          cls;
  266.          if (OneChar = 'L') or (OneChar = 'B') then
  267.            begin
  268.              printfile('Yesterda.dom');
  269.              PauseScr;
  270.            end;
  271.          if (OneChar = 'T') or (OneChar = 'B') then
  272.            begin
  273.              printfile('Today.dom');
  274.              PauseScr;
  275.            end;
  276.       End;
  277.  
  278. procedure Scores;
  279.  
  280.   Var
  281.    LoopS : Byte;
  282.  
  283.   Begin
  284.     print ('Scoring');
  285.     Empire[Player_Number].Points := Score (Player_Number);
  286.     for LoopS := 1 to Number_of_Players do
  287.       print(addrear(addfront(St(LoopS),2),5)+addrear(Empire[LoopS].Empire_Name,25)+addfront(St(Empire[LoopS].Points),25));
  288.   End;
  289.  
  290. { -=*=*=*=*=> Make New Player is called from Load_Information <=*=*=*=*=- }
  291.  
  292.    procedure Make_New_Player (What_Slot : Integer);
  293.  
  294.       Var
  295.          Name_of_Empire : String25;
  296.          Name_of_HomeWorld : String20;
  297.          EmpireFile : File of EmpireRecord;
  298.          PlanetFile : File of Planetrecord;
  299.          LastonFile  : file of String160;
  300.          LoopMNP : Integer;
  301.       Begin
  302.          cls;
  303.          Ansic(2);
  304.          print ('Welcome New Warlord!');
  305.          nl;
  306.          ynq('Are you sure you want to play Dominions! ? ');
  307.          if not YN then Halt;
  308.          writeln;
  309.          with Empire[What_Slot] do
  310.             Begin
  311.                User_Number := UserNum;
  312.                User_Name := ThisUser.Name;
  313.                Repeat
  314.                   writeln;
  315.                   print ('Enter the name of your Empire');
  316.                   prompt ('>');
  317.                   Input(BigString,25,false);
  318.                   nl;
  319.                   Empire_Name := BigString;
  320.                Until Empire_Name > '';
  321.             End;
  322.          Repeat
  323.             writeln;
  324.             print ('Enter the name of your Homeworld');
  325.             prompt ('>');
  326.             Input(BigString, 20,false);
  327.             nl;
  328.             Planet[What_Slot].Planet_Name := BigString;
  329.          Until Planet[What_Slot].Planet_Name > '';
  330.          Player_Number := What_Slot;
  331.          prompt ('Your Empire is number ');
  332.          Ansic(1);
  333.          print (St(Player_Number));
  334.          nl;
  335.          PauseScr;
  336.          cls;
  337.          nl;
  338.          print ('Please read the (D)ominions Instructions before playing!');
  339.          print ('This will help you greatly and save you a lot of grief.');
  340.          print ('All Menus have (H)elp commands if you need it.');
  341.          nl;
  342.          ansic(1);
  343.          print ('Note:');
  344.          print ('Even experienced Dominions! players should look at the');
  345.          print ('non-expert menus becuase some commands have changed and');
  346.          print ('many new functions have been added for Super Dominions.');
  347.          nl;
  348.          print ('Also, it is VERY neccessary to line capture or print the');
  349.          print ('Maps of the Galaxy (command M from the Main Menu) if you');
  350.          print ('wish to play effectively.  Some SysOps may place the map');
  351.          print ('files in the download area to make it easier for you.');
  352.          nl;
  353.          Ansic(2);
  354.          print ('Thank you for playing Dominions!');
  355.          nl;
  356.  
  357. {-AtA:}  Assign (EmpireFile, 'Empires.Dom');
  358.          Rewrite (EmpireFile);
  359.          for LoopMNP := 1 to Number_of_Players do
  360.              write (EmpireFile, Empire[LoopMNP]);
  361.          Close (EmpireFile);
  362.          Assign(PlanetFile,'Planets.Dom');
  363.          rewrite (PlanetFile);
  364.          For LoopMNP := 1 to Number_of_Planets do
  365.              write (PlanetFile, Planet[LoopMNP]);
  366.          Close (PlanetFile);
  367.          pausescr;
  368.       End;
  369.