xref: /original-bsd/games/phantasia/phantglobs.c (revision 3e9e8393)
1 /*
2  * phantglobs.c - globals for Phantasia
3  */
4 
5 #include "include.h"
6 
7 double	Circle;		/* which circle player is in			*/
8 double	Shield;		/* force field thrown up in monster battle	*/
9 
10 bool	Beyond;		/* set if player is beyond point of no return	*/
11 bool	Marsh;		/* set if player is in dead marshes		*/
12 bool	Throne;		/* set if player is on throne			*/
13 bool	Changed;	/* set if important player stats have changed	*/
14 bool	Wizard;		/* set if player is the 'wizard' of the game	*/
15 bool	Timeout;	/* set if short timeout waiting for input	*/
16 bool	Windows;	/* set if we are set up for curses stuff	*/
17 bool	Luckout;	/* set if we have tried to luck out in fight	*/
18 bool	Foestrikes;	/* set if foe gets a chance to hit in battleplayer()	*/
19 bool	Echo;		/* set if echo input to terminal		*/
20 
21 int	Users;		/* number of users currently playing		*/
22 int	Whichmonster;	/* which monster we are fighting		*/
23 int	Lines;		/* line on screen counter for fight routines	*/
24 #ifdef OK_TO_PLAY
25 int	Okcount;	/* counter for checking ok_to_play		*/
26 #endif
27 
28 jmp_buf Fightenv;	/* used to jump into fight routine		*/
29 jmp_buf Timeoenv;	/* used for timing out waiting for input	*/
30 
31 long	Fileloc;	/* location in file of player statistics	*/
32 
33 char	*Login;		/* pointer to login of player			*/
34 char	*Enemyname;	/* pointer name of monster/player we are battling*/
35 
36 struct	player	Player;	/* stats for player				*/
37 struct	player	Other;	/* stats for another player			*/
38 
39 struct	monster	Curmonster;/* stats for current monster			*/
40 
41 struct	energyvoid Enrgyvoid;/* energy void buffer			*/
42 
43 struct	charstats *Statptr;/* pointer into Stattable[]			*/
44 
45 /* lookup table for character type dependent statistics */
46 struct	charstats Stattable[7] =
47 	{
48 	/* MAGIC USER */
49 	/* max brains, max mana, weakness, gold tote, ring duration */
50 	15.0, 200.0, 18.0, 175.0, 10,
51 	/* quickness strength     mana         energy       brains       magic lvl */
52 	30, 6, 0.0,  10, 6, 2.0,  50,51,75.0,  30,16,20.0,  60,26, 6.0,	 5, 5,2.75,
53 
54 	/* FIGHTER */
55 	/* max brains, max mana, weakness, gold tote, ring duration */
56 	10.0, 110.0, 15.0, 220.0, 20,
57 	/* quickness strength     mana         energy       brains       magic lvl */
58 	30, 6, 0.0,  40,16, 3.0,  30,21,40.0,  45,26,30.0,  25,21, 3.0,	 3, 4, 1.5,
59 
60 	/* ELF */
61 	/* max brains, max mana, weakness, gold tote, ring duration */
62 	12.0, 150.0, 17.0, 190.0, 13,
63 	/* quickness strength     mana         energy       brains       magic lvl */
64 	32, 7, 0.0,  35,11, 2.5,  45,46,65.0,  30,21,25.0,  40,26, 4.0,	 4, 4, 2.0,
65 
66 	/* DWARF */
67 	/* max brains, max mana, weakness, gold tote, ring duration */
68 	7.0, 80.0, 13.0, 255.0,  25,
69 	/* quickness strength     mana         energy       brains       magic lvl */
70 	25, 6, 0.0,  50,21, 5.0,  25,21,30.0,  60,41,35.0,  20,21, 2.5,	 2, 4, 1.0,
71 
72 	/* HALFLING */
73 	/* max brains, max mana, weakness, gold tote, ring duration */
74 	11.0, 80.0, 10.0, 125.0, 40,
75 	/* quickness strength     mana         energy       brains       magic lvl */
76 	34, 0, 0.0,  20, 6, 2.0,  25,21,30.0,  55,36,30.0,  40,36, 4.5,	 1, 4, 1.0,
77 
78 	/* EXPERIMENTO */
79 	/* max brains, max mana, weakness, gold tote, ring duration */
80 	9.0, 90.0, 16.0, 160.0, 20,
81 	/* quickness strength     mana         energy       brains       magic lvl */
82 	27, 0, 0.0,  25, 0, 0.0,  100,0, 0.0,  35, 0, 0.0,  25, 0, 0.0,	 2, 0, 0.0,
83 
84 	/* SUPER */
85 	/* max brains, max mana, weakness, gold tote, ring duration */
86 	15.0, 200.0, 10.0, 225.0, 40,
87 	/* quickness strength     mana         energy       brains       magic lvl */
88 	38, 0, 0.0,  65, 0, 5.0,  100,0,75.0,  80, 0,35.0,  85, 0, 6.0,	 9, 0,2.75
89 	};
90 
91 /* menu of items for purchase */
92 struct menuitem	Menu[] =
93     {
94     "Mana", 1,
95     "Shield", 5,
96     "Book", 200,
97     "Sword", 500,
98     "Charm", 1000,
99     "Quicksilver", 2500,
100     "Blessing", 1000,
101     };
102 
103 FILE	*Playersfp;	/* pointer to open player file			*/
104 FILE	*Monstfp;	/* pointer to open monster file			*/
105 FILE	*Messagefp;	/* pointer to open message file			*/
106 FILE	*Energyvoidfp;	/* pointer to open energy void file		*/
107 
108 char	Databuf[SZ_DATABUF];	/* a place to read data into		*/
109 
110 /* edit these path definitions to let files reside elsewhere */
111 char	Monstfile[] = DEST/monsters";	/* monster database		*/
112 char	Peoplefile[] = DEST/characs";	/* player database		*/
113 char	Gameprog[] = DESTR/phantasia";	/* game binary			*/
114 char	Messfile[] = DEST/mess";	/* player to player messages	*/
115 char	Lastdead[] = DEST/lastdead";	/* data on last player killed	*/
116 char	Helpfile[] = DEST/phant.help";	/* manual pages			*/
117 char	Motdfile[] = DEST/motd";	/* message from 'wizard'	*/
118 char	Goldfile[] = DEST/gold";	/* gold collected in taxes	*/
119 char	Voidfile[] = DEST/void";	/* energy void database		*/
120 char	Scorefile[] = DEST/scoreboard";	/* hi score database		*/
121 #ifdef ENEMY
122 char	Enemyfile[] = DEST/enemy";	/* restricted account database	*/
123 #endif
124 
125 /* some canned strings for messages */
126 char	Illcmd[] = "Illegal command.\n";
127 char	Illmove[] = "Too far.\n";
128 char	Illspell[] = "Illegal spell.\n";
129 char	Nomana[] = "Not enought mana for that spell.\n";
130 char	Somebetter[] = "But you already have something better.\n";
131 char	Nobetter[] = "That's no better than what you already have.\n";
132