1 /*        $NetBSD: phantdefs.h,v 1.4 2001/09/16 16:34:25 wiz Exp $    */
2 
3 /*
4  * phantdefs.h - important constants for Phantasia
5  */
6 
7 /* ring constants */
8 #define R_NONE                0                   /* no ring */
9 #define R_NAZREG    1                   /* regular Nazgul ring (expires) */
10 #define R_DLREG               2                   /* regular Dark Lord ring (does not expire) */
11 #define R_BAD                 3                   /* bad ring */
12 #define R_SPOILED   4                   /* ring which has gone bad */
13 
14 /* status constants */
15 /* We must #undef these first since setup.c includes headers that reserve S_* */
16 #undef S_NOTUSED
17 #undef S_OFF
18 #undef S_PLAYING
19 #undef S_CLOAKED
20 #undef S_INBATTLE
21 #undef S_MONSTER
22 #undef S_TRADING
23 #undef S_HUNGUP
24 #define   S_NOTUSED 0                   /* record not in use */
25 #define S_OFF                 1                   /* not playing */
26 #define S_PLAYING   2                   /* playing - nothing else */
27 #define S_CLOAKED   3                   /* playing - cloaked */
28 #define S_INBATTLE  4                   /* playing - in battle */
29 #define S_MONSTER   5                   /* playing - fighting monster */
30 #define   S_TRADING 6                   /* playing - at a trading post */
31 #define   S_HUNGUP  7                   /* error occurred with character */
32 
33 /* tampered constants */
34 #define T_OFF                 0                   /* nothing */
35 #define T_NRGVOID   1                   /* hit an energy void */
36 #define T_GRAIL               2                   /* landed on the holy grail */
37 #define T_TRANSPORT 3                   /* transported by king */
38 #define T_BESTOW    4                   /* gold bestowed by king */
39 #define T_CURSED    5                   /* cursed by king */
40 #define T_MONSTER   6                   /* monster lobbed by valar */
41 #define T_BLESSED   7                   /* blessed by valar */
42 #define T_RELOCATE  8                   /* moved by valar */
43 #define T_HEAL                9                   /* healed by valar */
44 #define T_VAPORIZED 10                  /* vaporized by wizard */
45 #define T_EXVALAR   11                  /* no longer valar */
46 
47 /* inter-terminal battle status constants */
48 #define   I_OFF               0                   /* nothing */
49 #define   I_RAN               1                   /* ran away */
50 #define   I_STUCK             2                   /* tried to run unsuccessfully */
51 #define   I_BLEWIT  3                   /* tried to luckout unsuccessfully */
52 #define   I_KILLED  4                   /* killed foe */
53 
54 /* constants for altering coordinates */
55 #define   A_SPECIFIC          0                   /* coordinates specified */
56 #define   A_FORCED  1                   /* coordinates specified, ignore Beyond */
57 #define A_NEAR                2                   /* coordinates not specified, move near */
58 #define A_FAR                 3                   /* coordinates not specified, move far */
59 
60 /* constants for character types */
61 #define C_MAGIC               0                   /* magic user */
62 #define C_FIGHTER   1                   /* fighter */
63 #define C_ELF                 2                   /* elf */
64 #define C_DWARF               3                   /* dwarf */
65 #define C_HALFLING  4                   /* halfling */
66 #define C_EXPER               5                   /* experimento */
67 #define C_SUPER               6                   /* super being */
68 
69 /* constants for special character types */
70 #define SC_NONE               0                   /* not a special character */
71 #define   SC_KING             1                   /* king */
72 #define SC_COUNCIL  2                   /* council of the wise */
73 #define SC_VALAR    3                   /* valar */
74 #define SC_EXVALAR  4                   /* ex-valar */
75 
76 /* special monster constants */
77 #define   SM_NONE             0                   /* nothing special */
78 #define   SM_UNICORN          1                   /* unicorn */
79 #define   SM_MODNAR 2                   /* Modnar */
80 #define   SM_MIMIC  3                   /* mimic */
81 #define   SM_DARKLORD         4                   /* Dark Lord */
82 #define   SM_LEANAN 5                   /* Leanan-Sidhe */
83 #define   SM_SARUMAN          6                   /* Saruman */
84 #define   SM_THAUMATURG       7                   /* thaumaturgist */
85 #define   SM_BALROG 8                   /* balrog */
86 #define   SM_VORTEX 9                   /* vortex */
87 #define SM_NAZGUL   10                  /* nazgul */
88 #define   SM_TIAMAT 11                  /* Tiamat */
89 #define   SM_KOBOLD 12                  /* kobold */
90 #define   SM_SHELOB 13                  /* Shelob */
91 #define   SM_FAERIES          14                  /* assorted faeries */
92 #define   SM_LAMPREY          15                  /* lamprey */
93 #define   SM_SHRIEKER         16                  /* shrieker */
94 #define   SM_BONNACON         17                  /* bonnacon */
95 #define   SM_SMEAGOL          18                  /* Smeagol */
96 #define   SM_SUCCUBUS         19                  /* succubus */
97 #define   SM_CERBERUS         20                  /* Cerberus */
98 #define   SM_UNGOLIANT        21                  /* Ungoliant */
99 #define   SM_JABBERWOCK       22                  /* jabberwock */
100 #define   SM_MORGOTH          23                  /* Morgoth */
101 #define   SM_TROLL  24                  /* troll */
102 #define   SM_WRAITH 25                  /* wraith */
103 
104 /* constants for spells */
105 #define   ML_ALLORNOTHING     0.0                 /* magic level for 'all or nothing' */
106 #define MM_ALLORNOTHING       1.0                 /* mana used for 'all or nothing' */
107 #define   ML_MAGICBOLT        5.0                 /* magic level for 'magic bolt' */
108 #define   ML_FORCEFIELD       15.0                /* magic level for 'force field' */
109 #define   MM_FORCEFIELD       30.0                /* mana used for 'force field' */
110 #define   ML_XFORM  25.0                /* magic level for 'transform' */
111 #define   MM_XFORM  50.0                /* mana used for 'transform' */
112 #define   ML_INCRMIGHT        35.0                /* magic level for 'increase might' */
113 #define   MM_INCRMIGHT        75.0                /* mana used for 'increase might' */
114 #define   ML_INVISIBLE        45.0                /* magic level for 'invisibility' */
115 #define   MM_INVISIBLE        90.0                /* mana used for 'invisibility' */
116 #define   ML_XPORT  60.0                /* magic level for 'transport' */
117 #define   MM_XPORT  125.0               /* mana used for 'transport' */
118 #define   ML_PARALYZE         75.0                /* magic level for 'paralyze' */
119 #define   MM_PARALYZE         150.0               /* mana used for 'paralyze' */
120 #define   MM_SPECIFY          1000.0              /* mana used for 'specify' */
121 #define ML_CLOAK    20.0                /* magic level for 'cloak' */
122 #define   MEL_CLOAK 7.0                 /* experience level for 'cloak' */
123 #define   MM_CLOAK  35.0                /* mana used for 'cloak' */
124 #define   ML_TELEPORT         40.0                /* magic level for 'teleport' */
125 #define   MEL_TELEPORT        12.0                /* experience level for 'teleport' */
126 #define   MM_INTERVENE        1000.0              /* mana used to 'intervene' */
127 
128 /* some miscellaneous constants */
129 #define SZ_DATABUF  100                 /* size of input buffer */
130 #define   SZ_PLAYERSTRUCT     sizeof(struct player) /* size of player structure */
131 #define   SZ_VOIDSTRUCT       sizeof(struct energyvoid) /* size of energy void struct */
132 #define   SZ_SCORESTRUCT      sizeof(struct scoreboard) /* size of score board entry */
133 #define   SZ_MONSTERSTRUCT sizeof(struct monster) /* size of monster structure */
134 #define   SZ_NAME             21                  /* size of player name (incl. trailing nul) */
135 #define   SZ_PASSWORD         9                   /* size of password (incl. trailing nul) */
136 #define   SZ_LOGIN  9                   /* size of login (incl. trailing nul) */
137 
138 #define N_DAYSOLD   21                  /* number of days old for purge */
139 #define N_AGE                 500                 /* age to degenerate ratio */
140 #define   N_GEMVALUE          (1000.0)  /* number of gold pieces to gem ratio */
141 #define   N_TAXAMOUNT         (7.0)               /* tax percent */
142 
143 #define   D_BEYOND  (1.1e6)             /* distance to beyond point of no return */
144 #define D_EXPER               (2000.0)  /* distance experimentos are allowed */
145 
146 #define   CH_MARKDELETE       '\001'              /* used to alter name of deleted players */
147 #define   CH_KILL             '\030'              /* kill character (ctrl-X) */
148 #define   CH_ERASE  '\010'              /* erase character (ctrl-H) */
149 #define   CH_NEWLINE          '\n'                /* newline */
150 #define   CH_REDRAW '\014'              /* redraw screen character (ctrl-L) */
151