summaryrefslogtreecommitdiffstats
path: root/games/phantasia/phantdefs.h
blob: 88b80f238e57ec6e7995aebbdda2eb8652bf0066 (plain) (blame)
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
131
132
133
134
135
136
137
138
139
140
141
142
/*	$OpenBSD: phantdefs.h,v 1.5 2001/09/19 10:51:55 pjanzen Exp $	*/
/*	$NetBSD: phantdefs.h,v 1.2 1995/03/24 03:59:28 cgd Exp $	*/

/*
 * phantdefs.h - important constants for Phantasia
 */

/* ring constants */
#define R_NONE		0		/* no ring */
#define R_NAZREG	1		/* regular Nazgul ring (expires) */
#define R_DLREG		2		/* regular Dark Lord ring (does not expire) */
#define R_BAD		3		/* bad ring */
#define R_SPOILED 	4		/* ring which has gone bad */

/* status constants */
#define S_NOTUSED	0		/* record not in use */
#define S_OFF		1		/* not playing */
#define S_PLAYING	2		/* playing - nothing else */
#define S_CLOAKED	3		/* playing - cloaked */
#define S_INBATTLE	4		/* playing - in battle */
#define S_MONSTER	5		/* playing - fighting monster */
#define S_TRADING	6		/* playing - at a trading post */
#define S_HUNGUP	7		/* error occurred with character */

/* tampered constants */
#define T_OFF		0		/* nothing */
#define T_NRGVOID	1		/* hit an energy void */
#define T_GRAIL		2		/* landed on the holy grail */
#define T_TRANSPORT	3		/* transported by king */
#define T_BESTOW	4		/* gold bestowed by king */
#define T_CURSED	5		/* cursed by king */
#define T_MONSTER	6		/* monster lobbed by valar */
#define T_BLESSED	7		/* blessed by valar */
#define T_RELOCATE	8		/* moved by valar */
#define T_HEAL		9		/* healed by valar */
#define T_VAPORIZED	10		/* vaporized by wizard */
#define T_EXVALAR	11		/* no longer valar */

/* inter-terminal battle status constants */
#define I_OFF		0		/* nothing */
#define I_RAN		1		/* ran away */
#define I_STUCK		2		/* tried to run unsuccessfully */
#define I_BLEWIT	3		/* tried to luckout unsuccessfully */
#define I_KILLED	4		/* killed foe */

/* constants for altering coordinates */
#define A_SPECIFIC	0		/* coordinates specified */
#define A_FORCED	1		/* coordinates specified, ignore Beyond */
#define A_NEAR		2		/* coordinates not specified, move near */
#define A_FAR		3		/* coordinates not specified, move far */

/* constants for character types */
#define C_MAGIC		0		/* magic user */
#define C_FIGHTER	1		/* fighter */
#define C_ELF		2		/* elf */
#define C_DWARF		3		/* dwarf */
#define C_HALFLING	4		/* halfling */
#define C_EXPER		5		/* experimento */
#define C_SUPER		6		/* super being */

/* constants for special character types */
#define SC_NONE		0		/* not a special character */
#define SC_KING		1		/* king */
#define SC_COUNCIL	2		/* council of the wise */
#define SC_VALAR	3		/* valar */
#define SC_EXVALAR	4		/* ex-valar */

/* special monster constants */
#define SM_NONE		0		/* nothing special */
#define SM_UNICORN	1		/* unicorn */
#define SM_MODNAR	2		/* Modnar */
#define SM_MIMIC	3		/* mimic */
#define SM_DARKLORD	4		/* Dark Lord */
#define SM_LEANAN	5		/* Leanan-Sidhe */
#define SM_SARUMAN	6		/* Saruman */
#define SM_THAUMATURG	7		/* thaumaturgist */
#define SM_BALROG	8		/* balrog */
#define SM_VORTEX	9		/* vortex */
#define SM_NAZGUL	10		/* nazgul */
#define SM_TIAMAT	11		/* Tiamat */
#define SM_KOBOLD	12		/* kobold */
#define SM_SHELOB	13		/* Shelob */
#define SM_FAERIES	14		/* assorted faeries */
#define SM_LAMPREY	15		/* lamprey */
#define SM_SHRIEKER	16		/* shrieker */
#define SM_BONNACON	17		/* bonnacon */
#define SM_SMEAGOL	18		/* Smeagol */
#define SM_SUCCUBUS	19		/* succubus */
#define SM_CERBERUS	20		/* Cerberus */
#define SM_UNGOLIANT	21		/* Ungoliant */
#define SM_JABBERWOCK	22		/* jabberwock */
#define SM_MORGOTH	23		/* Morgoth */
#define SM_TROLL	24		/* troll */
#define SM_WRAITH	25		/* wraith */

/* constants for spells */
#define ML_ALLORNOTHING	0.0		/* magic level for 'all or nothing' */
#define MM_ALLORNOTHING	1.0		/* mana used for 'all or nothing' */
#define ML_MAGICBOLT	5.0		/* magic level for 'magic bolt' */
#define ML_FORCEFIELD	15.0		/* magic level for 'force field' */
#define MM_FORCEFIELD	30.0		/* mana used for 'force field' */
#define ML_XFORM	25.0		/* magic level for 'transform' */
#define MM_XFORM	50.0		/* mana used for 'transform' */
#define ML_INCRMIGHT	35.0		/* magic level for 'increase might' */
#define MM_INCRMIGHT	75.0		/* mana used for 'increase might' */
#define ML_INVISIBLE	45.0		/* magic level for 'invisibility' */
#define MM_INVISIBLE	90.0		/* mana used for 'invisibility' */
#define ML_XPORT	60.0		/* magic level for 'transport' */
#define MM_XPORT	125.0		/* mana used for 'transport' */
#define ML_PARALYZE	75.0		/* magic level for 'paralyze' */
#define MM_PARALYZE	150.0		/* mana used for 'paralyze' */
#define MM_SPECIFY	1000.0		/* mana used for 'specify' */
#define ML_CLOAK	20.0		/* magic level for 'cloak' */
#define MEL_CLOAK	7.0		/* experience level for 'cloak' */
#define MM_CLOAK	35.0		/* mana used for 'cloak' */
#define ML_TELEPORT	40.0		/* magic level for 'teleport' */
#define MEL_TELEPORT	12.0		/* experience level for 'teleport' */
#define MM_INTERVENE	1000.0		/* mana used to 'intervene' */

/* some miscellaneous constants */
#define SZ_DATABUF	100		/* size of input buffer */
#define SZ_PLAYERSTRUCT	sizeof(struct player) /* size of player structure */
#define SZ_VOIDSTRUCT	sizeof(struct energyvoid) /* size of energy void struct */
#define SZ_SCORESTRUCT	sizeof(struct scoreboard) /* size of score board entry */
#define SZ_MONSTERSTRUCT sizeof(struct monster) /* size of monster structure */
#define SZ_NAME		21		/* size of player name (incl. trailing nul) */
#define SZ_PASSWORD	9		/* size of password (incl. trailing nul) */

#define N_DAYSOLD	21		/* number of days old for purge */
#define N_AGE		500		/* age to degenerate ratio */
#define N_GEMVALUE	(1000.0)	/* number of gold pieces to gem ratio */
#define N_TAXAMOUNT	(7.0)		/* tax percent */

#define D_BEYOND	(1.1e6)		/* distance to beyond point of no return */
#define D_EXPER		(2000.0)	/* distance experimentos are allowed */

#define CH_MARKDELETE	'\001'		/* used to alter name of deleted players */
#define CH_KILL		'\030'		/* kill character (ctrl-X) */
#define CH_ERASE	'\010'		/* erase character (ctrl-H) */
#define CH_NEWLINE	'\n'		/* newline */
#define CH_RETURN	'\r'		/* carriage return */
#define CH_REDRAW	'\014'		/* redraw screen character (ctrl-L) */