1*34611Sbostic /*
2*34611Sbostic  * phantstruct.h - structure definitions for Phantasia
3*34611Sbostic  */
4*34611Sbostic 
5*34611Sbostic struct	player	    	/* player statistics */
6*34611Sbostic     {
7*34611Sbostic     double	p_experience;	/* experience */
8*34611Sbostic     double	p_level;    	/* level */
9*34611Sbostic     double	p_strength;	/* strength */
10*34611Sbostic     double	p_sword;	/* sword */
11*34611Sbostic     double	p_might;	/* effect strength */
12*34611Sbostic     double	p_energy;	/* energy */
13*34611Sbostic     double	p_maxenergy;	/* maximum energy */
14*34611Sbostic     double	p_shield;	/* shield */
15*34611Sbostic     double	p_quickness;	/* quickness */
16*34611Sbostic     double	p_quksilver;	/* quicksilver */
17*34611Sbostic     double	p_speed;	/* effective quickness */
18*34611Sbostic     double	p_magiclvl;	/* magic level */
19*34611Sbostic     double	p_mana;		/* mana */
20*34611Sbostic     double	p_brains;	/* brains */
21*34611Sbostic     double	p_poison;	/* poison */
22*34611Sbostic     double	p_gold;		/* gold */
23*34611Sbostic     double	p_gems;		/* gems */
24*34611Sbostic     double	p_sin;		/* sin */
25*34611Sbostic     double	p_x;	    	/* x coord */
26*34611Sbostic     double	p_y;	    	/* y coord */
27*34611Sbostic     double	p_1scratch,
28*34611Sbostic 		p_2scratch;	/* variables used for decree, player battle */
29*34611Sbostic 
30*34611Sbostic     struct
31*34611Sbostic 	{
32*34611Sbostic 	short	ring_type;	/* type of ring */
33*34611Sbostic 	short	ring_duration;	/* duration of ring */
34*34611Sbostic 	bool	ring_inuse;	/* ring in use flag */
35*34611Sbostic 	}	p_ring;	    	/* ring stuff */
36*34611Sbostic 
37*34611Sbostic     long	p_age;		/* age of player */
38*34611Sbostic 
39*34611Sbostic     int		p_degenerated;	/* age/3000 last degenerated */
40*34611Sbostic 
41*34611Sbostic     short	p_type;		/* character type */
42*34611Sbostic     short	p_specialtype;	/* special character type */
43*34611Sbostic     short	p_lives;	/* multiple lives for council, valar */
44*34611Sbostic     short	p_crowns;	/* crowns */
45*34611Sbostic     short	p_charms;	/* charms */
46*34611Sbostic     short	p_amulets;	/* amulets */
47*34611Sbostic     short	p_holywater;   	/* holy water */
48*34611Sbostic     short	p_lastused;	/* day of year last used */
49*34611Sbostic     short	p_status;	/* playing, cloaked, etc. */
50*34611Sbostic     short	p_tampered;	/* decree'd, etc. flag */
51*34611Sbostic     short	p_istat;	/* used for inter-terminal battle */
52*34611Sbostic 
53*34611Sbostic     bool	p_palantir;	/* palantir */
54*34611Sbostic     bool	p_blessing;	/* blessing */
55*34611Sbostic     bool	p_virgin;	/* virgin */
56*34611Sbostic     bool	p_blindness;	/* blindness */
57*34611Sbostic 
58*34611Sbostic     char	p_name[SZ_NAME];	/* name */
59*34611Sbostic     char	p_password[SZ_PASSWORD];/* password */
60*34611Sbostic     char	p_login[SZ_LOGIN];	/* login */
61*34611Sbostic     };
62*34611Sbostic 
63*34611Sbostic struct	monster	    	/* monster stats */
64*34611Sbostic     {
65*34611Sbostic     double	m_strength;	/* strength */
66*34611Sbostic     double	m_brains;	/* brains */
67*34611Sbostic     double	m_speed;	/* speed */
68*34611Sbostic     double	m_energy;	/* energy */
69*34611Sbostic     double	m_experience;	/* experience */
70*34611Sbostic     double	m_flock;    	/* % chance of flocking */
71*34611Sbostic 
72*34611Sbostic     double	m_o_strength;	/* original strength */
73*34611Sbostic     double	m_o_speed;	/* original speed */
74*34611Sbostic     double	m_maxspeed;	/* maximum speed */
75*34611Sbostic     double	m_o_energy;	/* original energy */
76*34611Sbostic     double	m_melee;	/* melee damage */
77*34611Sbostic     double	m_skirmish;	/* skirmish damage */
78*34611Sbostic 
79*34611Sbostic     int		m_treasuretype;	/* treasure type */
80*34611Sbostic     int		m_type;	    	/* special type */
81*34611Sbostic 
82*34611Sbostic     char	m_name[26];	/* name */
83*34611Sbostic     };
84*34611Sbostic 
85*34611Sbostic struct	energyvoid     	/* energy void */
86*34611Sbostic     {
87*34611Sbostic     double	ev_x;		/* x coordinate */
88*34611Sbostic     double	ev_y;		/* y coordinate */
89*34611Sbostic     bool	ev_active;	/* active or not */
90*34611Sbostic     };
91*34611Sbostic 
92*34611Sbostic struct	scoreboard			/* scoreboard entry */
93*34611Sbostic     {
94*34611Sbostic     double	sb_level;		/* level of player */
95*34611Sbostic     char	sb_type[4];		/* character type of player */
96*34611Sbostic     char	sb_name[SZ_NAME];	/* name of player */
97*34611Sbostic     char	sb_login[SZ_LOGIN];	/* login of player */
98*34611Sbostic     };
99*34611Sbostic 
100*34611Sbostic struct	charstats			/* character type statistics */
101*34611Sbostic     {
102*34611Sbostic     double	c_maxbrains;		/* max brains per level */
103*34611Sbostic     double	c_maxmana;		/* max mana per level */
104*34611Sbostic     double	c_weakness;		/* how strongly poison affects player */
105*34611Sbostic     double	c_goldtote;		/* how much gold char can carry */
106*34611Sbostic     int		c_ringduration;		/* bad ring duration */
107*34611Sbostic     struct
108*34611Sbostic 	{
109*34611Sbostic 	double	base;		/* base for roll */
110*34611Sbostic 	double	interval;	/* interval for roll */
111*34611Sbostic 	double	increase;	/* increment per level */
112*34611Sbostic 	} c_quickness,		/* quickness */
113*34611Sbostic 	  c_strength,		/* strength */
114*34611Sbostic 	  c_mana,		/* mana */
115*34611Sbostic 	  c_energy,		/* energy level */
116*34611Sbostic 	  c_brains,		/* brains */
117*34611Sbostic 	  c_magiclvl;		/* magic level */
118*34611Sbostic     };
119*34611Sbostic 
120*34611Sbostic struct menuitem				/* menu item for purchase */
121*34611Sbostic     {
122*34611Sbostic     char	*item;		/* menu item name */
123*34611Sbostic     double	cost;		/* cost of item */
124*34611Sbostic     };
125