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 >
Wrap
Text File
|
1991-02-24
|
12KB
|
369 lines
{ for Dominions! version 2.00TC - October 1989 }
{ for Super Dominions v 1.00 - July 1990 }
{--------========>*>*>*> Main Menu Procedures <*<*<*<========--------}
{ All of the following procedures were called from the Main Menu.}
procedure Counterintelligence_Menu;
Begin
Repeat
nl;
ansic(2);
print ('Intelligence Menu');
ansic(5);
print ('~~~~~~~~~~~~~~~~~');
if not (Empire[Player_Number].Expert) then
Begin
print ('Spy on an (E)mpire');
print ('(H)elp');
print ('Spy on a (P)lanet');
print ('(Q)uit to Main Menu');
nl;
End;
print ('Actions Remaining : ' + St(Empire[player_number].Intel_Reports));
ansic(1);
if Empire[Player_Number].Expert then
prompt ('Option (E,H,P,Q) > ')
else
prompt ('Option > ');
Onek (OneChar, 'EHPQX');
Case OneChar of
'E' : Spy_Empire; {Case of... Sends }
'H' : PrintFile ('HelpCoun.Dom'); {Program to Correct }
'P' : Spy_Planet; {Procedure for Counterintel. Input.}
'X' : Empire[Player_Number].Expert := not (Empire[Player_Number].Expert);
End; {case}
Until onechar = 'Q';
End;
procedure Empire_Menu;
Begin
Repeat
nl;
ansic(2);
print ('Empire Management Menu');
ansic(5);
print ('~~~~~~~~~~~~~~~~~~~~~~');
if not (Empire[Player_Number].Expert) then
Begin
print ('Make an (A)nnouncement');
print ('(C)hange Empire''s Name');
print ('(H)elp');
print ('(L)ist Empires');
print ('Send (M)essage to Another Player');
print ('(Q)uit to Main Menu');
print ('(S)tatus of the Empire');
print ('Increase (T)echnology Level');
nl;
End;
ansic(1);
if Empire[Player_Number].Expert then
prompt ('Option (A,C,H,L,M,Q,S,T) > ')
else
prompt ('Option > ');
Onek (OneChar, 'ACHLMQSTX');
Case OneChar of
'A' : Announcement;
'C' : Change_Empire_Name;
'H' : PrintFile ('HelpEmpi.Dom');
'L' : List_Empires;
'M' : Message;
'S' : Print_Empire (Player_Number);
'T' : Increase_Technology;
'X' : Empire[Player_Number].Expert := not (Empire[Player_Number].Expert);
End;
Until onechar = 'Q';
End;
procedure Maps;
Begin
nl;
ansic(4);
prompt('|~~~|~~~|~~~|~~~|~~~|');
ansic(1);
print(' Each region is');
ansic(4);
prompt('| | | | | |');
ansic(1);
print(' 20 x 100 light');
ansic(4);
prompt('| | | | | |');
ansic(1);
print(' years');
ansic(4);
print('| | | | | |');
ansic(4);
prompt('| 1 | 2 | 3 | 4 | 5 |');
ansic(1);
print(' Whole map is');
ansic(4);
prompt('| | | | | |');
ansic(1);
print(' 100 x 100 ly');
ansic(4);
print('| | | | | |');
ansic(4);
print('| | | | | |');
ansic(4);
print('|___|___|___|___|___|');
nl;
ansic(5);
prompt ('Print which map region? ');
Onek (OneChar, 'Q12345');
Case onechar of
'1' : printfile('Region1.Dom');
'2' : printfile('Region2.Dom');
'3' : printfile('Region3.Dom');
'4' : printfile('Region4.Dom');
'5' : printfile('Region5.Dom');
End;{case}
nl;
if onechar <> 'Q' then
PauseScr;
End;
procedure Navy_Menu;
Begin
Repeat
nl;
ansic(2);
print ('Navy Management Menu');
ansic(5);
print ('~~~~~~~~~~~~~~~~~~~~');
if not Empire[Player_Number].Expert then
Begin
print ('(B)uild New Ships');
print ('(C)ompute Distance Between Planets');
print ('(D)eploy New PDBs');
print ('(E)xamine Radars');
print ('(F)leets in Flight');
print ('(H)elp');
print ('(I)nstall New Radars');
print ('(M)ove Ships');
print ('(P)lanetary Status');
print ('(Q)uit to Main Menu');
print ('(R)ecall a Fleet');
print ('(S)tatus of the Navy');
writeln;
End;
ansic(1);
if Empire[Player_Number].Expert then
prompt ('Option (B,C,D,E,F,H,I,M,P,Q,R,S) > ')
else
prompt ('Option > ');
Onek (OneChar, 'BCDEFHIMSPQRX');
Case OneChar of
'B' : Build_Ships;
'C' : Compute_Distance;
'D' : Build_PDB;
'F' : fleets_in_flight;
'E' : Examine_Radar;
'H' : PrintFile ('HelpNava.Dom');
'I' : Build_Radar;
'M' : Move_Ships;
'S' : Navy_Status;
'P' : planet_status;
'R' : recall_Fleet;
'X' : Empire[Player_Number].Expert := not Empire[Player_Number].Expert;
End;
Until onechar = 'Q';
End;
procedure Planet_Menu;
Begin
Repeat
nl;
ansic(2);
print ('Planet Management Menu');
ansic(5);
print ('~~~~~~~~~~~~~~~~~~~~~~');
if not Empire[Player_Number].Expert then
Begin
print ('Set Manpower Allocations for (A)ll');
print (' Planets');
print ('(C)hange the Name of a Planet');
print ('List Planets by (E)mpire');
print ('(F)ind Planet');
print ('(H)elp');
print ('Increase (I)ndustry Level of a Planet');
print ('(L)ist All Planets');
print ('Change (M)anpower Allocation of a');
print (' Planet');
print ('Compute (P)roduction');
print ('(Q)uit to Main Menu');
print ('(S)tatus of a Planet');
print ('(Z)oom View Planets');
writeln;
End;
ansic(1);
if Empire[Player_Number].Expert then
prompt ('Option (A,C,E,F,H,I,L,M,P,Q,S,Z) > ')
else
prompt ('Option > ');
Onek (OneChar, 'ACEFHILMPQSXZ');
Case OneChar of
'A' : All_Manpower;
'C' : Change_Planet_Name;
'E' : Empire_Planet_List;
'F' : Find_Planet;
'H' : PrintFile ('HelpPlan.Dom');
'I' : Increase_Industry;
'L' : List_Planets;
'M' : Change_Manpower;
'P' : Compute_Production;
'S' : Planet_Status;
'X' : Empire[Player_Number].Expert := not Empire[Player_Number].Expert;
'Z' : Zoom_View;
End;
Until onechar = 'Q';
End;
procedure Instructions;
Begin
writeln;
print ('(H)istory, (I)nstructions, (S)trategy');
prompt ('or (A)ll ? ');
Onek (OneChar, 'AHIS');
cls;
if (OneChar = 'H') or (OneChar = 'A') then
begin
printfile('History.dom');
PauseScr;
end;
if (OneChar = 'I') or (OneChar = 'A') then
begin
printfile('Instruct.Dom');
PauseScr;
end;
if (OneChar = 'S') or (OneChar = 'A') then
begin
printfile('Strategy.Dom');
PauseScr;
end;
End;
procedure Read_Recent_Happenings;
Var
Recent_Happenings : Text;
Next_Line : String80;
Begin
writeln;
print ('(T)his month''s, (L)ast month''s,');
prompt ('or (B)oth ? ');
Onek (OneChar, 'BLT');
cls;
if (OneChar = 'L') or (OneChar = 'B') then
begin
printfile('Yesterda.dom');
PauseScr;
end;
if (OneChar = 'T') or (OneChar = 'B') then
begin
printfile('Today.dom');
PauseScr;
end;
End;
procedure Scores;
Var
LoopS : Byte;
Begin
print ('Scoring');
Empire[Player_Number].Points := Score (Player_Number);
for LoopS := 1 to Number_of_Players do
print(addrear(addfront(St(LoopS),2),5)+addrear(Empire[LoopS].Empire_Name,25)+addfront(St(Empire[LoopS].Points),25));
End;
{ -=*=*=*=*=> Make New Player is called from Load_Information <=*=*=*=*=- }
procedure Make_New_Player (What_Slot : Integer);
Var
Name_of_Empire : String25;
Name_of_HomeWorld : String20;
EmpireFile : File of EmpireRecord;
PlanetFile : File of Planetrecord;
LastonFile : file of String160;
LoopMNP : Integer;
Begin
cls;
Ansic(2);
print ('Welcome New Warlord!');
nl;
ynq('Are you sure you want to play Dominions! ? ');
if not YN then Halt;
writeln;
with Empire[What_Slot] do
Begin
User_Number := UserNum;
User_Name := ThisUser.Name;
Repeat
writeln;
print ('Enter the name of your Empire');
prompt ('>');
Input(BigString,25,false);
nl;
Empire_Name := BigString;
Until Empire_Name > '';
End;
Repeat
writeln;
print ('Enter the name of your Homeworld');
prompt ('>');
Input(BigString, 20,false);
nl;
Planet[What_Slot].Planet_Name := BigString;
Until Planet[What_Slot].Planet_Name > '';
Player_Number := What_Slot;
prompt ('Your Empire is number ');
Ansic(1);
print (St(Player_Number));
nl;
PauseScr;
cls;
nl;
print ('Please read the (D)ominions Instructions before playing!');
print ('This will help you greatly and save you a lot of grief.');
print ('All Menus have (H)elp commands if you need it.');
nl;
ansic(1);
print ('Note:');
print ('Even experienced Dominions! players should look at the');
print ('non-expert menus becuase some commands have changed and');
print ('many new functions have been added for Super Dominions.');
nl;
print ('Also, it is VERY neccessary to line capture or print the');
print ('Maps of the Galaxy (command M from the Main Menu) if you');
print ('wish to play effectively. Some SysOps may place the map');
print ('files in the download area to make it easier for you.');
nl;
Ansic(2);
print ('Thank you for playing Dominions!');
nl;
{-AtA:} Assign (EmpireFile, 'Empires.Dom');
Rewrite (EmpireFile);
for LoopMNP := 1 to Number_of_Players do
write (EmpireFile, Empire[LoopMNP]);
Close (EmpireFile);
Assign(PlanetFile,'Planets.Dom');
rewrite (PlanetFile);
For LoopMNP := 1 to Number_of_Planets do
write (PlanetFile, Planet[LoopMNP]);
Close (PlanetFile);
pausescr;
End;