summaryrefslogtreecommitdiff
path: root/games/phantasia/phantstruct.h
blob: 5d38f425bc1eab63277b4c59ec6afd837048adbb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*	$OpenBSD: phantstruct.h,v 1.5 2016/01/06 14:28:09 mestre Exp $	*/
/*	$NetBSD: phantstruct.h,v 1.2 1995/03/24 04:00:11 cgd Exp $	*/

/*
 * phantstruct.h - structure definitions for Phantasia
 */

#include <limits.h>
#include <stdbool.h>

struct	player	    	/* player statistics */
    {
    double	p_experience;	/* experience */
    double	p_level;    	/* level */
    double	p_strength;	/* strength */
    double	p_sword;	/* sword */
    double	p_might;	/* effect strength */
    double	p_energy;	/* energy */
    double	p_maxenergy;	/* maximum energy */
    double	p_shield;	/* shield */
    double	p_quickness;	/* quickness */
    double	p_quksilver;	/* quicksilver */
    double	p_speed;	/* effective quickness */
    double	p_magiclvl;	/* magic level */
    double	p_mana;		/* mana */
    double	p_brains;	/* brains */
    double	p_poison;	/* poison */
    double	p_gold;		/* gold */
    double	p_gems;		/* gems */
    double	p_sin;		/* sin */
    double	p_x;	    	/* x coord */
    double	p_y;	    	/* y coord */
    double	p_1scratch,
		p_2scratch;	/* variables used for decree, player battle */

    struct
	{
	short	ring_type;	/* type of ring */
	short	ring_duration;	/* duration of ring */
	bool	ring_inuse;	/* ring in use flag */
	}	p_ring;	    	/* ring stuff */

    long	p_age;		/* age of player */

    int		p_degenerated;	/* age/3000 last degenerated */

    short	p_type;		/* character type */
    short	p_specialtype;	/* special character type */
    short	p_lives;	/* multiple lives for council, valar */
    short	p_crowns;	/* crowns */
    short	p_charms;	/* charms */
    short	p_amulets;	/* amulets */
    short	p_holywater;   	/* holy water */
    short	p_lastused;	/* day of year last used */
    short	p_status;	/* playing, cloaked, etc. */
    short	p_tampered;	/* decree'd, etc. flag */
    short	p_istat;	/* used for inter-terminal battle */

    bool	p_palantir;	/* palantir */
    bool	p_blessing;	/* blessing */
    bool	p_virgin;	/* virgin */
    bool	p_blindness;	/* blindness */

    char	p_name[SZ_NAME];	/* name */
    char	p_password[SZ_PASSWORD];/* password */
    char	p_login[LOGIN_NAME_MAX];/* login */
    };

struct	monster	    	/* monster stats */
    {
    double	m_strength;	/* strength */
    double	m_brains;	/* brains */
    double	m_speed;	/* speed */
    double	m_energy;	/* energy */
    double	m_experience;	/* experience */
    double	m_flock;    	/* % chance of flocking */

    double	m_o_strength;	/* original strength */
    double	m_o_speed;	/* original speed */
    double	m_maxspeed;	/* maximum speed */
    double	m_o_energy;	/* original energy */
    double	m_melee;	/* melee damage */
    double	m_skirmish;	/* skirmish damage */

    int		m_treasuretype;	/* treasure type */
    int		m_type;	    	/* special type */

    char	m_name[26];	/* name */
    };

struct	energyvoid     	/* energy void */
    {
    double	ev_x;		/* x coordinate */
    double	ev_y;		/* y coordinate */
    bool	ev_active;	/* active or not */
    };

struct	scoreboard			/* scoreboard entry */
    {
    double	sb_level;		/* level of player */
    char	sb_type[4];		/* character type of player */
    char	sb_name[SZ_NAME];	/* name of player */
    char	sb_login[LOGIN_NAME_MAX];/* login of player */
    };

struct	charstats			/* character type statistics */
    {
    double	c_maxbrains;		/* max brains per level */
    double	c_maxmana;		/* max mana per level */
    double	c_weakness;		/* how strongly poison affects player */
    double	c_goldtote;		/* how much gold char can carry */
    int		c_ringduration;		/* bad ring duration */
    struct
	{
	double	base;		/* base for roll */
	double	interval;	/* interval for roll */
	double	increase;	/* increment per level */
	} c_quickness,		/* quickness */
	  c_strength,		/* strength */
	  c_mana,		/* mana */
	  c_energy,		/* energy level */
	  c_brains,		/* brains */
	  c_magiclvl;		/* magic level */
    };

struct menuitem				/* menu item for purchase */
    {
    char	*item;		/* menu item name */
    double	cost;		/* cost of item */
    };