summaryrefslogtreecommitdiff
path: root/games/phantasia/phantdefs.h
blob: bd0a12480dfcf350c20845b9960a1bdcd56b3210 (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
131
132
133
134
135
136
137
138
139
140
141
142
/*	$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 occured 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	SZ_LOGIN	9		/* size of login (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) */