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