summaryrefslogtreecommitdiff
path: root/src/tables.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tables.c')
-rw-r--r--src/tables.c4792
1 files changed, 0 insertions, 4792 deletions
diff --git a/src/tables.c b/src/tables.c
deleted file mode 100644
index e976e234..00000000
--- a/src/tables.c
+++ /dev/null
@@ -1,4792 +0,0 @@
-/* File: tables.c */
-
-/* Purpose: Angband Tables */
-
-/*
- * Copyright (c) 1989 James E. Wilson, Robert A. Koeneke
- *
- * This software may be copied and distributed for educational, research, and
- * not for profit purposes provided that this copyright and statement are
- * included in all such copies.
- */
-
-#include "angband.h"
-
-
-
-
-/*
- * Global array for looping through the "keypad directions"
- */
-s16b ddd[9] =
- { 2, 8, 6, 4, 3, 1, 9, 7, 5 };
-
-/*
- * Global arrays for converting "keypad direction" into offsets
- */
-s16b ddx[10] =
- { 0, -1, 0, 1, -1, 0, 1, -1, 0, 1 };
-
-s16b ddy[10] =
- { 0, 1, 1, 1, 0, 0, 0, -1, -1, -1 };
-
-/*
- * Global arrays for optimizing "ddx[ddd[i]]" and "ddy[ddd[i]]"
- */
-s16b ddx_ddd[9] =
- { 0, 0, 1, -1, 1, -1, 1, -1, 0 };
-
-s16b ddy_ddd[9] =
- { 1, -1, 0, 0, 1, 1, -1, -1, 0 };
-
-
-
-/*
-* Global array for converting numbers to uppercase hexadecimal digit
- * This array can also be used to convert a number to an octal digit
- */
-char hexsym[16] =
- {
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
- };
-
-
-/*
- * Stat Table (INT/WIS) -- Number of half-spells per level
- */
-byte adj_mag_study[] =
-{
- 0 /* 3 */,
- 0 /* 4 */,
- 0 /* 5 */,
- 0 /* 6 */,
- 0 /* 7 */,
- 1 /* 8 */,
- 1 /* 9 */,
- 1 /* 10 */,
- 1 /* 11 */,
- 2 /* 12 */,
- 2 /* 13 */,
- 2 /* 14 */,
- 2 /* 15 */,
- 2 /* 16 */,
- 2 /* 17 */,
- 2 /* 18/00-18/09 */,
- 2 /* 18/10-18/19 */,
- 2 /* 18/20-18/29 */,
- 2 /* 18/30-18/39 */,
- 2 /* 18/40-18/49 */,
- 3 /* 18/50-18/59 */,
- 3 /* 18/60-18/69 */,
- 3 /* 18/70-18/79 */,
- 3 /* 18/80-18/89 */,
- 4 /* 18/90-18/99 */,
- 4 /* 18/100-18/109 */,
- 4 /* 18/110-18/119 */,
- 5 /* 18/120-18/129 */,
- 5 /* 18/130-18/139 */,
- 5 /* 18/140-18/149 */,
- 5 /* 18/150-18/159 */,
- 5 /* 18/160-18/169 */,
- 5 /* 18/170-18/179 */,
- 5 /* 18/180-18/189 */,
- 5 /* 18/190-18/199 */,
- 5 /* 18/200-18/209 */,
- 6 /* 18/210-18/219 */,
- 6 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (INT/WIS) -- extra half-mana-points per level
- */
-byte adj_mag_mana[] =
-{
- 0 /* 3 */,
- 0 /* 4 */,
- 0 /* 5 */,
- 0 /* 6 */,
- 0 /* 7 */,
- 1 /* 8 */,
- 2 /* 9 */,
- 2 /* 10 */,
- 2 /* 11 */,
- 2 /* 12 */,
- 2 /* 13 */,
- 2 /* 14 */,
- 2 /* 15 */,
- 2 /* 16 */,
- 2 /* 17 */,
- 3 /* 18/00-18/09 */,
- 3 /* 18/10-18/19 */,
- 3 /* 18/20-18/29 */,
- 3 /* 18/30-18/39 */,
- 3 /* 18/40-18/49 */,
- 4 /* 18/50-18/59 */,
- 4 /* 18/60-18/69 */,
- 5 /* 18/70-18/79 */,
- 6 /* 18/80-18/89 */,
- 7 /* 18/90-18/99 */,
- 8 /* 18/100-18/109 */,
- 9 /* 18/110-18/119 */,
- 10 /* 18/120-18/129 */,
- 11 /* 18/130-18/139 */,
- 12 /* 18/140-18/149 */,
- 13 /* 18/150-18/159 */,
- 14 /* 18/160-18/169 */,
- 15 /* 18/170-18/179 */,
- 16 /* 18/180-18/189 */,
- 16 /* 18/190-18/199 */,
- 17 /* 18/200-18/209 */,
- 17 /* 18/210-18/219 */,
- 18 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (INT/WIS) -- Minimum failure rate (percentage)
- */
-byte adj_mag_fail[] =
-{
- 99 /* 3 */,
- 99 /* 4 */,
- 99 /* 5 */,
- 99 /* 6 */,
- 99 /* 7 */,
- 50 /* 8 */,
- 30 /* 9 */,
- 20 /* 10 */,
- 15 /* 11 */,
- 12 /* 12 */,
- 11 /* 13 */,
- 10 /* 14 */,
- 9 /* 15 */,
- 8 /* 16 */,
- 7 /* 17 */,
- 6 /* 18/00-18/09 */,
- 6 /* 18/10-18/19 */,
- 5 /* 18/20-18/29 */,
- 5 /* 18/30-18/39 */,
- 5 /* 18/40-18/49 */,
- 4 /* 18/50-18/59 */,
- 4 /* 18/60-18/69 */,
- 4 /* 18/70-18/79 */,
- 4 /* 18/80-18/89 */,
- 3 /* 18/90-18/99 */,
- 3 /* 18/100-18/109 */,
- 2 /* 18/110-18/119 */,
- 2 /* 18/120-18/129 */,
- 2 /* 18/130-18/139 */,
- 2 /* 18/140-18/149 */,
- 1 /* 18/150-18/159 */,
- 1 /* 18/160-18/169 */,
- 1 /* 18/170-18/179 */,
- 1 /* 18/180-18/189 */,
- 1 /* 18/190-18/199 */,
- 0 /* 18/200-18/209 */,
- 0 /* 18/210-18/219 */,
- 0 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (INT/WIS) -- Various things
- */
-byte adj_mag_stat[] =
-{
- 0 /* 3 */,
- 0 /* 4 */,
- 0 /* 5 */,
- 0 /* 6 */,
- 0 /* 7 */,
- 1 /* 8 */,
- 1 /* 9 */,
- 1 /* 10 */,
- 1 /* 11 */,
- 1 /* 12 */,
- 1 /* 13 */,
- 1 /* 14 */,
- 2 /* 15 */,
- 2 /* 16 */,
- 2 /* 17 */,
- 3 /* 18/00-18/09 */,
- 3 /* 18/10-18/19 */,
- 3 /* 18/20-18/29 */,
- 3 /* 18/30-18/39 */,
- 3 /* 18/40-18/49 */,
- 4 /* 18/50-18/59 */,
- 4 /* 18/60-18/69 */,
- 5 /* 18/70-18/79 */,
- 6 /* 18/80-18/89 */,
- 7 /* 18/90-18/99 */,
- 8 /* 18/100-18/109 */,
- 9 /* 18/110-18/119 */,
- 10 /* 18/120-18/129 */,
- 11 /* 18/130-18/139 */,
- 12 /* 18/140-18/149 */,
- 13 /* 18/150-18/159 */,
- 14 /* 18/160-18/169 */,
- 15 /* 18/170-18/179 */,
- 16 /* 18/180-18/189 */,
- 17 /* 18/190-18/199 */,
- 18 /* 18/200-18/209 */,
- 19 /* 18/210-18/219 */,
- 20 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (CHR) -- payment percentages
- */
-byte adj_chr_gold[] =
-{
- 130 /* 3 */,
- 125 /* 4 */,
- 122 /* 5 */,
- 120 /* 6 */,
- 118 /* 7 */,
- 116 /* 8 */,
- 114 /* 9 */,
- 112 /* 10 */,
- 110 /* 11 */,
- 108 /* 12 */,
- 106 /* 13 */,
- 104 /* 14 */,
- 103 /* 15 */,
- 102 /* 16 */,
- 101 /* 17 */,
- 100 /* 18/00-18/09 */,
- 99 /* 18/10-18/19 */,
- 98 /* 18/20-18/29 */,
- 97 /* 18/30-18/39 */,
- 96 /* 18/40-18/49 */,
- 95 /* 18/50-18/59 */,
- 94 /* 18/60-18/69 */,
- 93 /* 18/70-18/79 */,
- 92 /* 18/80-18/89 */,
- 91 /* 18/90-18/99 */,
- 90 /* 18/100-18/109 */,
- 89 /* 18/110-18/119 */,
- 88 /* 18/120-18/129 */,
- 87 /* 18/130-18/139 */,
- 86 /* 18/140-18/149 */,
- 85 /* 18/150-18/159 */,
- 84 /* 18/160-18/169 */,
- 83 /* 18/170-18/179 */,
- 82 /* 18/180-18/189 */,
- 81 /* 18/190-18/199 */,
- 80 /* 18/200-18/209 */,
- 79 /* 18/210-18/219 */,
- 78 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (INT) -- Magic devices
- */
-byte adj_int_dev[] =
-{
- 0 /* 3 */,
- 0 /* 4 */,
- 0 /* 5 */,
- 0 /* 6 */,
- 0 /* 7 */,
- 1 /* 8 */,
- 1 /* 9 */,
- 1 /* 10 */,
- 1 /* 11 */,
- 1 /* 12 */,
- 1 /* 13 */,
- 1 /* 14 */,
- 2 /* 15 */,
- 2 /* 16 */,
- 2 /* 17 */,
- 3 /* 18/00-18/09 */,
- 3 /* 18/10-18/19 */,
- 4 /* 18/20-18/29 */,
- 4 /* 18/30-18/39 */,
- 5 /* 18/40-18/49 */,
- 5 /* 18/50-18/59 */,
- 6 /* 18/60-18/69 */,
- 6 /* 18/70-18/79 */,
- 7 /* 18/80-18/89 */,
- 7 /* 18/90-18/99 */,
- 8 /* 18/100-18/109 */,
- 9 /* 18/110-18/119 */,
- 10 /* 18/120-18/129 */,
- 11 /* 18/130-18/139 */,
- 12 /* 18/140-18/149 */,
- 13 /* 18/150-18/159 */,
- 14 /* 18/160-18/169 */,
- 15 /* 18/170-18/179 */,
- 16 /* 18/180-18/189 */,
- 17 /* 18/190-18/199 */,
- 18 /* 18/200-18/209 */,
- 19 /* 18/210-18/219 */,
- 20 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (WIS) -- Saving throw
- */
-byte adj_wis_sav[] =
-{
- 0 /* 3 */,
- 0 /* 4 */,
- 0 /* 5 */,
- 0 /* 6 */,
- 0 /* 7 */,
- 1 /* 8 */,
- 1 /* 9 */,
- 1 /* 10 */,
- 1 /* 11 */,
- 1 /* 12 */,
- 1 /* 13 */,
- 1 /* 14 */,
- 2 /* 15 */,
- 2 /* 16 */,
- 2 /* 17 */,
- 3 /* 18/00-18/09 */,
- 3 /* 18/10-18/19 */,
- 3 /* 18/20-18/29 */,
- 3 /* 18/30-18/39 */,
- 3 /* 18/40-18/49 */,
- 4 /* 18/50-18/59 */,
- 4 /* 18/60-18/69 */,
- 5 /* 18/70-18/79 */,
- 5 /* 18/80-18/89 */,
- 6 /* 18/90-18/99 */,
- 7 /* 18/100-18/109 */,
- 8 /* 18/110-18/119 */,
- 9 /* 18/120-18/129 */,
- 10 /* 18/130-18/139 */,
- 11 /* 18/140-18/149 */,
- 12 /* 18/150-18/159 */,
- 13 /* 18/160-18/169 */,
- 14 /* 18/170-18/179 */,
- 15 /* 18/180-18/189 */,
- 16 /* 18/190-18/199 */,
- 17 /* 18/200-18/209 */,
- 18 /* 18/210-18/219 */,
- 19 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (DEX) -- disarming
- */
-byte adj_dex_dis[] =
-{
- 0 /* 3 */,
- 0 /* 4 */,
- 0 /* 5 */,
- 0 /* 6 */,
- 0 /* 7 */,
- 0 /* 8 */,
- 0 /* 9 */,
- 0 /* 10 */,
- 0 /* 11 */,
- 0 /* 12 */,
- 1 /* 13 */,
- 1 /* 14 */,
- 1 /* 15 */,
- 2 /* 16 */,
- 2 /* 17 */,
- 4 /* 18/00-18/09 */,
- 4 /* 18/10-18/19 */,
- 4 /* 18/20-18/29 */,
- 4 /* 18/30-18/39 */,
- 5 /* 18/40-18/49 */,
- 5 /* 18/50-18/59 */,
- 5 /* 18/60-18/69 */,
- 6 /* 18/70-18/79 */,
- 6 /* 18/80-18/89 */,
- 7 /* 18/90-18/99 */,
- 8 /* 18/100-18/109 */,
- 8 /* 18/110-18/119 */,
- 8 /* 18/120-18/129 */,
- 8 /* 18/130-18/139 */,
- 8 /* 18/140-18/149 */,
- 9 /* 18/150-18/159 */,
- 9 /* 18/160-18/169 */,
- 9 /* 18/170-18/179 */,
- 9 /* 18/180-18/189 */,
- 9 /* 18/190-18/199 */,
- 10 /* 18/200-18/209 */,
- 10 /* 18/210-18/219 */,
- 10 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (INT) -- disarming
- */
-byte adj_int_dis[] =
-{
- 0 /* 3 */,
- 0 /* 4 */,
- 0 /* 5 */,
- 0 /* 6 */,
- 0 /* 7 */,
- 1 /* 8 */,
- 1 /* 9 */,
- 1 /* 10 */,
- 1 /* 11 */,
- 1 /* 12 */,
- 1 /* 13 */,
- 1 /* 14 */,
- 2 /* 15 */,
- 2 /* 16 */,
- 2 /* 17 */,
- 3 /* 18/00-18/09 */,
- 3 /* 18/10-18/19 */,
- 3 /* 18/20-18/29 */,
- 4 /* 18/30-18/39 */,
- 4 /* 18/40-18/49 */,
- 5 /* 18/50-18/59 */,
- 6 /* 18/60-18/69 */,
- 7 /* 18/70-18/79 */,
- 8 /* 18/80-18/89 */,
- 9 /* 18/90-18/99 */,
- 10 /* 18/100-18/109 */,
- 10 /* 18/110-18/119 */,
- 11 /* 18/120-18/129 */,
- 12 /* 18/130-18/139 */,
- 13 /* 18/140-18/149 */,
- 14 /* 18/150-18/159 */,
- 15 /* 18/160-18/169 */,
- 16 /* 18/170-18/179 */,
- 17 /* 18/180-18/189 */,
- 18 /* 18/190-18/199 */,
- 19 /* 18/200-18/209 */,
- 19 /* 18/210-18/219 */,
- 20 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (DEX) -- bonus to ac (plus 128)
- */
-byte adj_dex_ta[] =
-{
- 128 + -4 /* 3 */,
- 128 + -3 /* 4 */,
- 128 + -2 /* 5 */,
- 128 + -1 /* 6 */,
- 128 + 0 /* 7 */,
- 128 + 0 /* 8 */,
- 128 + 0 /* 9 */,
- 128 + 0 /* 10 */,
- 128 + 0 /* 11 */,
- 128 + 0 /* 12 */,
- 128 + 0 /* 13 */,
- 128 + 0 /* 14 */,
- 128 + 1 /* 15 */,
- 128 + 1 /* 16 */,
- 128 + 1 /* 17 */,
- 128 + 2 /* 18/00-18/09 */,
- 128 + 2 /* 18/10-18/19 */,
- 128 + 2 /* 18/20-18/29 */,
- 128 + 2 /* 18/30-18/39 */,
- 128 + 2 /* 18/40-18/49 */,
- 128 + 3 /* 18/50-18/59 */,
- 128 + 3 /* 18/60-18/69 */,
- 128 + 3 /* 18/70-18/79 */,
- 128 + 4 /* 18/80-18/89 */,
- 128 + 5 /* 18/90-18/99 */,
- 128 + 6 /* 18/100-18/109 */,
- 128 + 7 /* 18/110-18/119 */,
- 128 + 8 /* 18/120-18/129 */,
- 128 + 9 /* 18/130-18/139 */,
- 128 + 9 /* 18/140-18/149 */,
- 128 + 10 /* 18/150-18/159 */,
- 128 + 11 /* 18/160-18/169 */,
- 128 + 12 /* 18/170-18/179 */,
- 128 + 13 /* 18/180-18/189 */,
- 128 + 14 /* 18/190-18/199 */,
- 128 + 15 /* 18/200-18/209 */,
- 128 + 15 /* 18/210-18/219 */,
- 128 + 16 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (STR) -- bonus to dam (plus 128)
- */
-byte adj_str_td[] =
-{
- 128 + -2 /* 3 */,
- 128 + -2 /* 4 */,
- 128 + -1 /* 5 */,
- 128 + -1 /* 6 */,
- 128 + 0 /* 7 */,
- 128 + 0 /* 8 */,
- 128 + 0 /* 9 */,
- 128 + 0 /* 10 */,
- 128 + 0 /* 11 */,
- 128 + 0 /* 12 */,
- 128 + 0 /* 13 */,
- 128 + 0 /* 14 */,
- 128 + 0 /* 15 */,
- 128 + 1 /* 16 */,
- 128 + 2 /* 17 */,
- 128 + 2 /* 18/00-18/09 */,
- 128 + 2 /* 18/10-18/19 */,
- 128 + 3 /* 18/20-18/29 */,
- 128 + 3 /* 18/30-18/39 */,
- 128 + 3 /* 18/40-18/49 */,
- 128 + 3 /* 18/50-18/59 */,
- 128 + 3 /* 18/60-18/69 */,
- 128 + 4 /* 18/70-18/79 */,
- 128 + 5 /* 18/80-18/89 */,
- 128 + 5 /* 18/90-18/99 */,
- 128 + 6 /* 18/100-18/109 */,
- 128 + 7 /* 18/110-18/119 */,
- 128 + 8 /* 18/120-18/129 */,
- 128 + 9 /* 18/130-18/139 */,
- 128 + 10 /* 18/140-18/149 */,
- 128 + 11 /* 18/150-18/159 */,
- 128 + 12 /* 18/160-18/169 */,
- 128 + 13 /* 18/170-18/179 */,
- 128 + 14 /* 18/180-18/189 */,
- 128 + 15 /* 18/190-18/199 */,
- 128 + 16 /* 18/200-18/209 */,
- 128 + 18 /* 18/210-18/219 */,
- 128 + 20 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (DEX) -- bonus to hit (plus 128)
- */
-byte adj_dex_th[] =
-{
- 128 + -3 /* 3 */,
- 128 + -2 /* 4 */,
- 128 + -2 /* 5 */,
- 128 + -1 /* 6 */,
- 128 + -1 /* 7 */,
- 128 + 0 /* 8 */,
- 128 + 0 /* 9 */,
- 128 + 0 /* 10 */,
- 128 + 0 /* 11 */,
- 128 + 0 /* 12 */,
- 128 + 0 /* 13 */,
- 128 + 0 /* 14 */,
- 128 + 0 /* 15 */,
- 128 + 1 /* 16 */,
- 128 + 2 /* 17 */,
- 128 + 3 /* 18/00-18/09 */,
- 128 + 3 /* 18/10-18/19 */,
- 128 + 3 /* 18/20-18/29 */,
- 128 + 3 /* 18/30-18/39 */,
- 128 + 3 /* 18/40-18/49 */,
- 128 + 4 /* 18/50-18/59 */,
- 128 + 4 /* 18/60-18/69 */,
- 128 + 4 /* 18/70-18/79 */,
- 128 + 4 /* 18/80-18/89 */,
- 128 + 5 /* 18/90-18/99 */,
- 128 + 6 /* 18/100-18/109 */,
- 128 + 7 /* 18/110-18/119 */,
- 128 + 8 /* 18/120-18/129 */,
- 128 + 9 /* 18/130-18/139 */,
- 128 + 9 /* 18/140-18/149 */,
- 128 + 10 /* 18/150-18/159 */,
- 128 + 11 /* 18/160-18/169 */,
- 128 + 12 /* 18/170-18/179 */,
- 128 + 13 /* 18/180-18/189 */,
- 128 + 14 /* 18/190-18/199 */,
- 128 + 15 /* 18/200-18/209 */,
- 128 + 15 /* 18/210-18/219 */,
- 128 + 16 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (STR) -- bonus to hit (plus 128)
- */
-byte adj_str_th[] =
-{
- 128 + -3 /* 3 */,
- 128 + -2 /* 4 */,
- 128 + -1 /* 5 */,
- 128 + -1 /* 6 */,
- 128 + 0 /* 7 */,
- 128 + 0 /* 8 */,
- 128 + 0 /* 9 */,
- 128 + 0 /* 10 */,
- 128 + 0 /* 11 */,
- 128 + 0 /* 12 */,
- 128 + 0 /* 13 */,
- 128 + 0 /* 14 */,
- 128 + 0 /* 15 */,
- 128 + 0 /* 16 */,
- 128 + 0 /* 17 */,
- 128 + 1 /* 18/00-18/09 */,
- 128 + 1 /* 18/10-18/19 */,
- 128 + 1 /* 18/20-18/29 */,
- 128 + 1 /* 18/30-18/39 */,
- 128 + 1 /* 18/40-18/49 */,
- 128 + 1 /* 18/50-18/59 */,
- 128 + 1 /* 18/60-18/69 */,
- 128 + 2 /* 18/70-18/79 */,
- 128 + 3 /* 18/80-18/89 */,
- 128 + 4 /* 18/90-18/99 */,
- 128 + 5 /* 18/100-18/109 */,
- 128 + 6 /* 18/110-18/119 */,
- 128 + 7 /* 18/120-18/129 */,
- 128 + 8 /* 18/130-18/139 */,
- 128 + 9 /* 18/140-18/149 */,
- 128 + 10 /* 18/150-18/159 */,
- 128 + 11 /* 18/160-18/169 */,
- 128 + 12 /* 18/170-18/179 */,
- 128 + 13 /* 18/180-18/189 */,
- 128 + 14 /* 18/190-18/199 */,
- 128 + 15 /* 18/200-18/209 */,
- 128 + 15 /* 18/210-18/219 */,
- 128 + 16 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (STR) -- weight limit in deca-pounds
- */
-byte adj_str_wgt[] =
-{
- 5 /* 3 */,
- 6 /* 4 */,
- 7 /* 5 */,
- 8 /* 6 */,
- 9 /* 7 */,
- 10 /* 8 */,
- 11 /* 9 */,
- 12 /* 10 */,
- 13 /* 11 */,
- 14 /* 12 */,
- 15 /* 13 */,
- 16 /* 14 */,
- 17 /* 15 */,
- 18 /* 16 */,
- 19 /* 17 */,
- 20 /* 18/00-18/09 */,
- 22 /* 18/10-18/19 */,
- 24 /* 18/20-18/29 */,
- 26 /* 18/30-18/39 */,
- 28 /* 18/40-18/49 */,
- 30 /* 18/50-18/59 */,
- 31 /* 18/60-18/69 */,
- 31 /* 18/70-18/79 */,
- 32 /* 18/80-18/89 */,
- 32 /* 18/90-18/99 */,
- 33 /* 18/100-18/109 */,
- 33 /* 18/110-18/119 */,
- 34 /* 18/120-18/129 */,
- 34 /* 18/130-18/139 */,
- 35 /* 18/140-18/149 */,
- 35 /* 18/150-18/159 */,
- 36 /* 18/160-18/169 */,
- 36 /* 18/170-18/179 */,
- 37 /* 18/180-18/189 */,
- 37 /* 18/190-18/199 */,
- 38 /* 18/200-18/209 */,
- 38 /* 18/210-18/219 */,
- 39 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (STR) -- weapon weight limit in pounds
- */
-byte adj_str_hold[] =
-{
- 4 /* 3 */,
- 5 /* 4 */,
- 6 /* 5 */,
- 7 /* 6 */,
- 8 /* 7 */,
- 10 /* 8 */,
- 12 /* 9 */,
- 14 /* 10 */,
- 16 /* 11 */,
- 18 /* 12 */,
- 20 /* 13 */,
- 22 /* 14 */,
- 24 /* 15 */,
- 26 /* 16 */,
- 28 /* 17 */,
- 30 /* 18/00-18/09 */,
- 30 /* 18/10-18/19 */,
- 35 /* 18/20-18/29 */,
- 40 /* 18/30-18/39 */,
- 45 /* 18/40-18/49 */,
- 50 /* 18/50-18/59 */,
- 55 /* 18/60-18/69 */,
- 60 /* 18/70-18/79 */,
- 65 /* 18/80-18/89 */,
- 70 /* 18/90-18/99 */,
- 80 /* 18/100-18/109 */,
- 80 /* 18/110-18/119 */,
- 80 /* 18/120-18/129 */,
- 80 /* 18/130-18/139 */,
- 80 /* 18/140-18/149 */,
- 90 /* 18/150-18/159 */,
- 90 /* 18/160-18/169 */,
- 90 /* 18/170-18/179 */,
- 90 /* 18/180-18/189 */,
- 90 /* 18/190-18/199 */,
- 100 /* 18/200-18/209 */,
- 100 /* 18/210-18/219 */,
- 100 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (STR) -- digging value
- */
-byte adj_str_dig[] =
-{
- 0 /* 3 */,
- 0 /* 4 */,
- 1 /* 5 */,
- 2 /* 6 */,
- 3 /* 7 */,
- 4 /* 8 */,
- 4 /* 9 */,
- 5 /* 10 */,
- 5 /* 11 */,
- 6 /* 12 */,
- 6 /* 13 */,
- 7 /* 14 */,
- 7 /* 15 */,
- 8 /* 16 */,
- 8 /* 17 */,
- 9 /* 18/00-18/09 */,
- 10 /* 18/10-18/19 */,
- 12 /* 18/20-18/29 */,
- 15 /* 18/30-18/39 */,
- 20 /* 18/40-18/49 */,
- 25 /* 18/50-18/59 */,
- 30 /* 18/60-18/69 */,
- 35 /* 18/70-18/79 */,
- 40 /* 18/80-18/89 */,
- 45 /* 18/90-18/99 */,
- 50 /* 18/100-18/109 */,
- 55 /* 18/110-18/119 */,
- 60 /* 18/120-18/129 */,
- 65 /* 18/130-18/139 */,
- 70 /* 18/140-18/149 */,
- 75 /* 18/150-18/159 */,
- 80 /* 18/160-18/169 */,
- 85 /* 18/170-18/179 */,
- 90 /* 18/180-18/189 */,
- 95 /* 18/190-18/199 */,
- 100 /* 18/200-18/209 */,
- 100 /* 18/210-18/219 */,
- 100 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (STR) -- help index into the "blow" table
- */
-byte adj_str_blow[] =
-{
- 3 /* 3 */,
- 4 /* 4 */,
- 5 /* 5 */,
- 6 /* 6 */,
- 7 /* 7 */,
- 8 /* 8 */,
- 9 /* 9 */,
- 10 /* 10 */,
- 11 /* 11 */,
- 12 /* 12 */,
- 13 /* 13 */,
- 14 /* 14 */,
- 15 /* 15 */,
- 16 /* 16 */,
- 17 /* 17 */,
- 20 /* 18/00-18/09 */,
- 30 /* 18/10-18/19 */,
- 40 /* 18/20-18/29 */,
- 50 /* 18/30-18/39 */,
- 60 /* 18/40-18/49 */,
- 70 /* 18/50-18/59 */,
- 80 /* 18/60-18/69 */,
- 90 /* 18/70-18/79 */,
- 100 /* 18/80-18/89 */,
- 110 /* 18/90-18/99 */,
- 120 /* 18/100-18/109 */,
- 130 /* 18/110-18/119 */,
- 140 /* 18/120-18/129 */,
- 150 /* 18/130-18/139 */,
- 160 /* 18/140-18/149 */,
- 170 /* 18/150-18/159 */,
- 180 /* 18/160-18/169 */,
- 190 /* 18/170-18/179 */,
- 200 /* 18/180-18/189 */,
- 210 /* 18/190-18/199 */,
- 220 /* 18/200-18/209 */,
- 230 /* 18/210-18/219 */,
- 240 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (DEX) -- index into the "blow" table
- */
-byte adj_dex_blow[] =
-{
- 0 /* 3 */,
- 0 /* 4 */,
- 0 /* 5 */,
- 0 /* 6 */,
- 0 /* 7 */,
- 0 /* 8 */,
- 0 /* 9 */,
- 1 /* 10 */,
- 1 /* 11 */,
- 1 /* 12 */,
- 1 /* 13 */,
- 1 /* 14 */,
- 1 /* 15 */,
- 1 /* 16 */,
- 1 /* 17 */,
- 1 /* 18/00-18/09 */,
- 2 /* 18/10-18/19 */,
- 2 /* 18/20-18/29 */,
- 2 /* 18/30-18/39 */,
- 2 /* 18/40-18/49 */,
- 3 /* 18/50-18/59 */,
- 3 /* 18/60-18/69 */,
- 4 /* 18/70-18/79 */,
- 4 /* 18/80-18/89 */,
- 5 /* 18/90-18/99 */,
- 6 /* 18/100-18/109 */,
- 7 /* 18/110-18/119 */,
- 8 /* 18/120-18/129 */,
- 9 /* 18/130-18/139 */,
- 10 /* 18/140-18/149 */,
- 11 /* 18/150-18/159 */,
- 12 /* 18/160-18/169 */,
- 14 /* 18/170-18/179 */,
- 16 /* 18/180-18/189 */,
- 18 /* 18/190-18/199 */,
- 20 /* 18/200-18/209 */,
- 20 /* 18/210-18/219 */,
- 20 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (DEX) -- chance of avoiding "theft" and "falling"
- */
-byte adj_dex_safe[] =
-{
- 0 /* 3 */,
- 1 /* 4 */,
- 2 /* 5 */,
- 3 /* 6 */,
- 4 /* 7 */,
- 5 /* 8 */,
- 5 /* 9 */,
- 6 /* 10 */,
- 6 /* 11 */,
- 7 /* 12 */,
- 7 /* 13 */,
- 8 /* 14 */,
- 8 /* 15 */,
- 9 /* 16 */,
- 9 /* 17 */,
- 10 /* 18/00-18/09 */,
- 10 /* 18/10-18/19 */,
- 15 /* 18/20-18/29 */,
- 15 /* 18/30-18/39 */,
- 20 /* 18/40-18/49 */,
- 25 /* 18/50-18/59 */,
- 30 /* 18/60-18/69 */,
- 35 /* 18/70-18/79 */,
- 40 /* 18/80-18/89 */,
- 45 /* 18/90-18/99 */,
- 50 /* 18/100-18/109 */,
- 60 /* 18/110-18/119 */,
- 70 /* 18/120-18/129 */,
- 80 /* 18/130-18/139 */,
- 90 /* 18/140-18/149 */,
- 100 /* 18/150-18/159 */,
- 100 /* 18/160-18/169 */,
- 100 /* 18/170-18/179 */,
- 100 /* 18/180-18/189 */,
- 100 /* 18/190-18/199 */,
- 100 /* 18/200-18/209 */,
- 100 /* 18/210-18/219 */,
- 100 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (CON) -- base regeneration rate
- */
-byte adj_con_fix[] =
-{
- 0 /* 3 */,
- 0 /* 4 */,
- 0 /* 5 */,
- 0 /* 6 */,
- 0 /* 7 */,
- 0 /* 8 */,
- 0 /* 9 */,
- 0 /* 10 */,
- 0 /* 11 */,
- 0 /* 12 */,
- 0 /* 13 */,
- 1 /* 14 */,
- 1 /* 15 */,
- 1 /* 16 */,
- 1 /* 17 */,
- 2 /* 18/00-18/09 */,
- 2 /* 18/10-18/19 */,
- 2 /* 18/20-18/29 */,
- 2 /* 18/30-18/39 */,
- 2 /* 18/40-18/49 */,
- 3 /* 18/50-18/59 */,
- 3 /* 18/60-18/69 */,
- 3 /* 18/70-18/79 */,
- 3 /* 18/80-18/89 */,
- 3 /* 18/90-18/99 */,
- 4 /* 18/100-18/109 */,
- 4 /* 18/110-18/119 */,
- 5 /* 18/120-18/129 */,
- 6 /* 18/130-18/139 */,
- 6 /* 18/140-18/149 */,
- 7 /* 18/150-18/159 */,
- 7 /* 18/160-18/169 */,
- 8 /* 18/170-18/179 */,
- 8 /* 18/180-18/189 */,
- 8 /* 18/190-18/199 */,
- 9 /* 18/200-18/209 */,
- 9 /* 18/210-18/219 */,
- 9 /* 18/220+ */
-};
-
-
-/*
- * Stat Table (CON) -- extra half-hitpoints per level (plus 128)
- */
-byte adj_con_mhp[] =
-{
- 128 + -5 /* 3 */,
- 128 + -3 /* 4 */,
- 128 + -2 /* 5 */,
- 128 + -1 /* 6 */,
- 128 + 0 /* 7 */,
- 128 + 0 /* 8 */,
- 128 + 0 /* 9 */,
- 128 + 0 /* 10 */,
- 128 + 0 /* 11 */,
- 128 + 0 /* 12 */,
- 128 + 0 /* 13 */,
- 128 + 0 /* 14 */,
- 128 + 1 /* 15 */,
- 128 + 1 /* 16 */,
- 128 + 2 /* 17 */,
- 128 + 3 /* 18/00-18/09 */,
- 128 + 4 /* 18/10-18/19 */,
- 128 + 4 /* 18/20-18/29 */,
- 128 + 4 /* 18/30-18/39 */,
- 128 + 4 /* 18/40-18/49 */,
- 128 + 5 /* 18/50-18/59 */,
- 128 + 6 /* 18/60-18/69 */,
- 128 + 7 /* 18/70-18/79 */,
- 128 + 8 /* 18/80-18/89 */,
- 128 + 9 /* 18/90-18/99 */,
- 128 + 10 /* 18/100-18/109 */,
- 128 + 11 /* 18/110-18/119 */,
- 128 + 12 /* 18/120-18/129 */,
- 128 + 13 /* 18/130-18/139 */,
- 128 + 14 /* 18/140-18/149 */,
- 128 + 15 /* 18/150-18/159 */,
- 128 + 16 /* 18/160-18/169 */,
- 128 + 18 /* 18/170-18/179 */,
- 128 + 20 /* 18/180-18/189 */,
- 128 + 22 /* 18/190-18/199 */,
- 128 + 25 /* 18/200-18/209 */,
- 128 + 26 /* 18/210-18/219 */,
- 128 + 27 /* 18/220+ */
-};
-
-
-/*
- * This table is used to help calculate the number of blows the player can
- * make in a single round of attacks (one player turn) with a normal weapon.
- *
- * This number ranges from a single blow/round for weak players to up to six
- * blows/round for powerful warriors.
- *
- * Note that certain artifacts and ego-items give "bonus" blows/round.
- *
- * First, from the player class, we extract some values:
- *
- * Warrior --> num = 6; mul = 5; div = MAX(30, weapon_weight);
- * Mage --> num = 4; mul = 2; div = MAX(40, weapon_weight);
- * Priest --> num = 5; mul = 3; div = MAX(35, weapon_weight);
- * Rogue --> num = 5; mul = 3; div = MAX(30, weapon_weight);
- * Ranger --> num = 5; mul = 4; div = MAX(35, weapon_weight);
- * Paladin --> num = 5; mul = 4; div = MAX(30, weapon_weight);
- *
- * To get "P", we look up the relevant "adj_str_blow[]" (see above),
- * multiply it by "mul", and then divide it by "div", rounding down.
- *
- * To get "D", we look up the relevant "adj_dex_blow[]" (see above),
- * note especially column 6 (DEX 18/101) and 11 (DEX 18/150).
- *
- * The player gets "blows_table[P][D]" blows/round, as shown below,
- * up to a maximum of "num" blows/round, plus any "bonus" blows/round.
- */
-byte blows_table[12][12] =
-{
- /* P/D */
- /* 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11+ */
-
- /* 0 */
- { 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3 },
-
- /* 1 */
- { 1, 1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4 },
-
- /* 2 */
- { 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5 },
-
- /* 3 */
- { 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 5 },
-
- /* 4 */
- { 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 5, 5 },
-
- /* 5 */
- { 2, 2, 3, 3, 4, 4, 5, 5, 5, 5, 5, 6 },
-
- /* 6 */
- { 2, 2, 3, 3, 4, 4, 5, 5, 5, 5, 5, 6 },
-
- /* 7 */
- { 2, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 6 },
-
- /* 8 */
- { 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6 },
-
- /* 9 */
- { 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6 },
-
- /* 10 */
- { 3, 3, 4, 4, 4, 4, 5, 5, 5, 6, 6, 6 },
-
- /* 11+ */
- { 3, 3, 4, 4, 4, 4, 5, 5, 6, 6, 6, 6 },
-};
-
-
-s16b arena_monsters[MAX_ARENA_MONS] =
-{
- 30, 43, 102, 118, 126, 149, 173,
- 183, 188, 191, 216, 230, 238, 244,
- 255, 262, 293, 297, 321, 349, 372,
- 401, 415, 454, 464, 485, 538, 631,
- 641
-};
-
-
-/*
- * This table allows quick conversion from "speed" to "energy"
- * The basic function WAS ((S>=110) ? (S-110) : (100 / (120-S)))
- * Note that table access is *much* quicker than computation.
- *
- * Note that the table has been changed at high speeds. From
- * "Slow (-40)" to "Fast (+30)" is pretty much unchanged, but
- * at speeds above "Fast (+30)", one approaches an asymptotic
- * effective limit of 50 energy per turn. This means that it
- * is relatively easy to reach "Fast (+30)" and get about 40
- * energy per turn, but then speed becomes very "expensive",
- * and you must get all the way to "Fast (+50)" to reach the
- * point of getting 45 energy per turn. After that point,
- * further increases in speed are more or less pointless,
- * except to balance out heavy inventory.
- *
- * Note that currently the fastest monster is "Fast (+30)".
- *
- * It should be possible to lower the energy threshold from
- * 100 units to 50 units, though this may interact badly with
- * the (compiled out) small random energy boost code. It may
- * also tend to cause more "clumping" at high speeds.
- */
-byte extract_energy[300] =
-{
- /* Slow */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- /* Slow */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- /* Slow */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- /* Slow */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- /* Slow */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- /* Slow */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- /* S-50 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- /* S-40 */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- /* S-30 */ 2, 2, 2, 2, 2, 2, 2, 3, 3, 3,
- /* S-20 */ 3, 3, 3, 3, 3, 4, 4, 4, 4, 4,
- /* S-10 */ 5, 5, 5, 5, 6, 6, 7, 7, 8, 9,
- /* Norm */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- /* F+10 */ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- /* F+20 */ 30, 31, 32, 33, 34, 35, 36, 36, 37, 37,
- /* F+30 */ 38, 38, 39, 39, 40, 40, 40, 41, 41, 41,
- /* F+40 */ 42, 42, 42, 43, 43, 43, 44, 44, 44, 44,
- /* F+50 */ 45, 45, 45, 45, 45, 46, 46, 46, 46, 46,
- /* F+60 */ 47, 47, 47, 47, 47, 48, 48, 48, 48, 48,
- /* F+70 */ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- /* Fast */ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- /* Virtual */ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- /* Virtual */ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- /* Virtual */ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- /* Virtual */ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- /* Virtual */ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- /* Virtual */ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- /* Virtual */ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- /* Virtual */ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- /* Virtual */ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- /* Virtual */ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-};
-
-
-
-
-/*
- * Base experience levels, may be adjusted up for race and/or class
- */
-s32b player_exp[PY_MAX_LEVEL] =
-{
- 10,
- 25,
- 45,
- 70,
- 100,
- 140,
- 200,
- 280,
- 380,
- 500,
- 650,
- 850,
- 1100,
- 1400,
- 1800,
- 2300,
- 2900,
- 3600,
- 4400,
- 5400,
- 6800,
- 8400,
- 10200,
- 12500,
- 17500,
- 25000,
- 35000L,
- 50000L,
- 75000L,
- 100000L,
- 150000L,
- 200000L,
- 275000L,
- 350000L,
- 450000L,
- 550000L,
- 700000L,
- 850000L,
- 1000000L,
- 1250000L,
- 1500000L,
- 1800000L,
- 2100000L,
- 2400000L,
- 2700000L,
- 3000000L,
- 3500000L,
- 4000000L,
- 4500000L,
- 5000000L
-};
-
-
-/*
- * Player Sexes
- *
- * Title,
- * Winner
- */
-player_sex sex_info[MAX_SEXES] =
-{
- {
- "Female",
- "Queen"
- },
-
-{
-"Male",
-"King"
-},
-{
-"Neuter",
-"Ruler"
-}
-};
-
-/*
- * Hack -- the "basic" color names (see "TERM_xxx")
- */
-cptr color_names[16] =
-{
- "Dark",
- "White",
- "Slate",
- "Orange",
- "Red",
- "Green",
- "Blue",
- "Umber",
- "Light Dark",
- "Light Slate",
- "Violet",
- "Yellow",
- "Light Red",
- "Light Green",
- "Light Blue",
- "Light Umber",
-};
-
-
-/*
- * Abbreviations of healthy stats
- */
-cptr stat_names[6] =
-{
- "STR", "INT", "WIS", "DEX", "CON", "CHR"
-};
-
-/*
- * Abbreviations of damaged stats
- */
-cptr stat_names_reduced[6] =
-{
- "Str", "Int", "Wis", "Dex", "Con", "Chr"
-};
-
-
-/*
- * Certain "screens" always use the main screen, including News, Birth,
- * Dungeon, Tomb-stone, High-scores, Macros, Colors, Visuals, Options.
- *
- * Later, special flags may allow sub-windows to "steal" stuff from the
- * main window, including File dump (help), File dump (artifacts, uniques),
- * Character screen, Small scale map, Previous Messages, Store screen, etc.
- *
- * The "ctrl-i" (tab) command flips the "Display inven/equip" and "Display
- * equip/inven" flags for all windows.
- *
- * The "ctrl-g" command (or pseudo-command) should perhaps grab a snapshot
- * of the main screen into any interested windows.
- */
-cptr window_flag_desc[32] =
-{
- "Display inven/equip",
- "Display equip/inven",
- NULL,
- "Display character",
- "Show visible monsters",
- NULL,
- "Display messages",
- "Display overhead view",
- "Display monster recall",
- "Display object recall",
- NULL,
- "Display snap-shot",
- NULL,
- NULL,
- "Display borg messages",
- "Display borg status",
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
-};
-
-
-/*
- * Available Options
- *
- * Option Screen Sets:
- *
- * Set 1: User Interface
- * Set 2: Disturbance
- * Set 3: Inventory
- * Set 4: Game Play
- * Set 5: ToME
- * Set 6: Birth
- *
- * Note that bits 28-31 of set 0 are currently unused.
- */
-option_type option_info[] =
-{
- /*** User-Interface ***/
-
- { &rogue_like_commands, FALSE, 1, 0,
- "rogue_like_commands", "Rogue-like commands" },
-
- { &quick_messages, TRUE, 1, 1,
- "quick_messages", "Activate quick messages" },
-
- { &other_query_flag, FALSE, 1, 2,
- "other_query_flag", "Prompt for various information" },
-
- { &carry_query_flag, FALSE, 1, 3,
- "carry_query_flag", "Prompt before picking things up" },
-
- { &use_old_target, FALSE, 1, 4,
- "use_old_target", "Use old target by default" },
-
- { &always_pickup, FALSE, 1, 5,
- "always_pickup", "Pick things up by default" },
-
- { &prompt_pickup_heavy, TRUE, 1, 6,
- "prompt_pickup_heavy", "Prompt before picking up heavy objects" },
-
- { &always_repeat, TRUE, 1, 7,
- "always_repeat", "Repeat obvious commands" },
-
- { &depth_in_feet, FALSE, 1, 8,
- "depth_in_feet", "Show dungeon level in feet" },
-
- { &stack_force_notes, TRUE, 1, 9,
- "stack_force_notes", "Merge inscriptions when stacking" },
-
- { &stack_force_costs, FALSE, 1, 10,
- "stack_force_costs", "Merge discounts when stacking" },
-
- { &show_labels, TRUE, 1, 11,
- "show_labels", "Show labels in object listings" },
-
- { &show_weights, TRUE, 1, 12,
- "show_weights", "Show weights in object listings" },
-
- { &show_inven_graph, TRUE, 1, 13,
- "show_inven_graph", "Show graphics in inventory list" },
-
- { &show_equip_graph, TRUE, 1, 14,
- "show_equip_graph", "Show graphics in equipment list" },
-
- { &show_store_graph, TRUE, 1, 15,
- "show_store_graph", "Show graphics in stores" },
-
- { &show_choices, TRUE, 1, 16,
- "show_choices", "Show choices in certain sub-windows" },
-
- { &show_details, TRUE, 1, 17,
- "show_details", "Show details in certain sub-windows" },
-
- { &ring_bell, FALSE, 1, 18,
- "ring_bell", "Audible bell (on errors, etc)" },
- /* Changed to default to FALSE -- it's so extremely annoying!!! -TY */
-
- /*** Disturbance ***/
-
- { &find_ignore_stairs, FALSE, 2, 0,
- "find_ignore_stairs", "Run past stairs" },
-
- { &find_ignore_doors, TRUE, 2, 1,
- "find_ignore_doors", "Run through open doors" },
-
- { &find_cut, FALSE, 2, 2,
- "find_cut", "Run past known corners" },
-
- { &find_examine, TRUE, 2, 3,
- "find_examine", "Run into potential corners" },
-
- { &disturb_move, FALSE, 2, 4,
- "disturb_move", "Disturb whenever any monster moves" },
-
- { &disturb_near, TRUE, 2, 5,
- "disturb_near", "Disturb whenever viewable monster moves" },
-
- { &disturb_panel, TRUE, 2, 6,
- "disturb_panel", "Disturb whenever map panel changes" },
-
- { &disturb_detect, TRUE, 2, 21,
- "disturb_detect", "Disturb whenever leaving trap-detected area" },
-
- { &disturb_state, TRUE, 2, 7,
- "disturb_state", "Disturb whenever player state changes" },
-
- { &disturb_minor, TRUE, 2, 8,
- "disturb_minor", "Disturb whenever boring things happen" },
-
- { &disturb_other, FALSE, 2, 9,
- "disturb_other", "Disturb whenever random things happen" },
-
- { &alert_hitpoint, FALSE, 2, 10,
- "alert_hitpoint", "Alert user to critical hitpoints" },
-
- { &alert_failure, FALSE, 2, 11,
- "alert_failure", "Alert user to various failures" },
-
- { &last_words, TRUE, 2, 12,
- "last_words", "Get last words when the character dies" },
-
- { &speak_unique, TRUE, 2, 13,
- "speak_unique", "Allow shopkeepers and uniques to speak" },
-
- { &auto_destroy, TRUE, 2, 14,
- "auto_destroy", "No query to destroy known worthless items" },
-
- { &wear_confirm, TRUE, 2, 15,
- "confirm_wear", "Confirm to wear/wield known cursed items" },
-
- { &confirm_stairs, FALSE, 2, 16,
- "confirm_stairs", "Prompt before exiting a dungeon level" },
-
- { &disturb_pets, FALSE, 2, 17,
- "disturb_pets", "Disturb when visible pets move" },
-
- { &easy_open, TRUE, 2, 18,
- "easy_open", "Automatically open doors" },
-
- { &easy_disarm, TRUE, 2, 19,
- "easy_disarm", "Automatically disarm traps" },
-
- { &easy_tunnel, FALSE, 2, 20,
- "easy_tunnel", "Automatically tunnel walls" },
-
- /*** Game-Play ***/
-
- { &auto_haggle, TRUE, 3, 0,
- "auto_haggle", "Auto-haggle in stores" },
-
- { &auto_scum, TRUE, 3, 1,
- "auto_scum", "Auto-scum for good levels" },
-
- { &stack_allow_items, TRUE, 3, 2,
- "stack_allow_items", "Allow weapons and armour to stack" },
-
- { &stack_allow_wands, TRUE, 3, 3,
- "stack_allow_wands", "Allow wands/staffs/rods to stack" },
-
- { &expand_look, FALSE, 3, 4,
- "expand_look", "Expand the power of the look command" },
-
- { &expand_list, FALSE, 3, 5,
- "expand_list", "Expand the power of the list commands" },
-
- { &view_perma_grids, TRUE, 3, 6,
- "view_perma_grids", "Map remembers all perma-lit grids" },
-
- { &view_torch_grids, FALSE, 3, 7,
- "view_torch_grids", "Map remembers all torch-lit grids" },
-
- { &monster_lite, TRUE, 3, 19,
- "monster_lite", "Allow some monsters to carry light" },
-
- { &dungeon_align, TRUE, 3, 8,
- "dungeon_align", "Generate dungeons with aligned rooms" },
-
- { &dungeon_stair, TRUE, 3, 9,
- "dungeon_stair", "Generate dungeons with connected stairs" },
-
- { &flow_by_sound, FALSE, 3, 10,
- "flow_by_sound", "Monsters chase current location (v.slow)" },
-
- { &player_symbols, FALSE, 3, 12,
- "player_symbols", "Use special symbols for the player char"},
-
- { &plain_descriptions, TRUE, 3, 13,
- "plain_descriptions", "Plain object descriptions" },
-
- { &smart_learn, FALSE, 3, 14,
- "smart_learn", "Monsters learn from their mistakes" },
-
- { &smart_cheat, FALSE, 3, 15,
- "smart_cheat", "Monsters exploit players weaknesses" },
-
- { &stupid_monsters, FALSE, 3, 16,
- "stupid_monsters", "Monsters behave stupidly" },
-
- { &small_levels, TRUE, 3, 17,
- "small_levels", "Allow unusually small dungeon levels" },
-
- { &empty_levels, TRUE, 3, 18,
- "empty_levels", "Allow empty 'arena' levels" },
-
- /*** Efficiency ***/
-
- { &view_reduce_lite, FALSE, 4, 0,
- "view_reduce_lite", "Reduce lite-radius when running" },
-
- { &view_reduce_view, FALSE, 4, 1,
- "view_reduce_view", "Reduce view-radius in town" },
-
- { &avoid_abort, FALSE, 4, 2,
- "avoid_abort", "Avoid checking for user abort" },
-
- { &avoid_shimmer, FALSE, 4, 17,
- "avoid_shimmer", "Avoid extra shimmering (fast)" },
-
- { &avoid_other, FALSE, 4, 3,
- "avoid_other", "Avoid processing special colors (fast)" },
-
- { &flush_failure, TRUE, 4, 4,
- "flush_failure", "Flush input on various failures" },
-
- { &flush_disturb, FALSE, 4, 5,
- "flush_disturb", "Flush input whenever disturbed" },
-
- { &flush_command, FALSE, 4, 6,
- "flush_command", "Flush input before every command" },
-
- { &fresh_before, TRUE, 4, 7,
- "fresh_before", "Flush output before every command" },
-
- { &fresh_after, FALSE, 4, 8,
- "fresh_after", "Flush output after every command" },
-
- { &fresh_message, FALSE, 4, 9,
- "fresh_message", "Flush output after every message" },
-
- { &hilite_player, FALSE, 4, 11,
- "hilite_player", "Hilite the player with the cursor" },
-
- { &view_yellow_lite, FALSE, 4, 12,
- "view_yellow_lite", "Use special colors for torch-lit grids" },
-
- { &view_bright_lite, FALSE, 4, 13,
- "view_bright_lite", "Use special colors for 'viewable' grids" },
-
- { &view_granite_lite, FALSE, 4, 14,
- "view_granite_lite", "Use special colors for wall grids (slow)" },
-
- { &view_special_lite, FALSE, 4, 15,
- "view_special_lite", "Use special colors for floor grids (slow)" },
-
- { &center_player, FALSE, 4, 16,
- "center_player", "Center the view on the player (very slow)" },
-
- /*** ToME options ***/
-
- { &option_ingame_help, TRUE, 5, 1,
- "ingame_help", "Ingame contextual help" },
-
- { &exp_need, FALSE, 5, 2,
- "exp_need", "Show the experience needed for next level" },
-
- { &autoload_old_colors, FALSE, 5, 3,
- "old_colors", "Use the old(Z) coloring scheme(reload the game)" },
-
- { &auto_more, FALSE, 5, 4,
- "auto_more", "Automatically clear '-more-' prompts" },
-
- { &player_char_health, TRUE, 5, 6,
- "player_char_health", "Player char represent his/her health" },
-
- { &linear_stats, TRUE, 5, 7,
- "linear_stats", "Stats are represented in a linear way" },
-
- { &inventory_no_move, FALSE, 5, 8,
- "inventory_no_move", "In option windows, just omit the select char" },
-
-
- /*** Birth Options ***/
-
- { &maximize, TRUE, 6, 1,
- "maximize", "Maximise stats" },
-
- { &preserve, TRUE, 6, 2,
- "preserve", "Preserve artifacts" },
-
- { &autoroll, TRUE, 6, 3,
- "autoroll", "Specify 'minimal' stats" },
-
- { &point_based, FALSE, 6, 17,
- "point_based", "Generate character using a point system" },
-
- { &ironman_rooms, FALSE, 6, 6,
- "ironman_rooms", "Always generate very unusual rooms" },
-
- { &take_notes, TRUE, 6, 7,
- "take_notes", "Allow notes to be written to a file" },
-
- { &auto_notes, TRUE, 6, 8,
- "auto_notes", "Automatically note important events" },
-
- { &fast_autoroller, FALSE, 6, 10,
- "fast_autoroller", "Fast autoroller(NOT on multiuser systems)" },
-
- { &joke_monsters, FALSE, 6, 14,
- "joke_monsters", "Allow use of some 'joke' monsters" },
-
- /* XXX */
-
- { &always_small_level, FALSE, 6, 16,
- "always_small_level", "Always make small levels" },
-
- { &fate_option, TRUE, 6, 18,
- "fate_option", "You can receive fates, good or bad" },
-
- /* XXX 17 is used BEFORE */
-
- /*** Stacking ***/
-
- { &testing_stack, TRUE, 7, 0,
- "testing_stack", "Allow objects to stack on floor" },
-
- { &testing_carry, TRUE, 7, 1,
- "testing_carry", "Allow monsters to carry objects" },
-
-
- /*** End of Table ***/
-
- { NULL, 0, 0, 0,
- NULL, NULL }
-};
-
-
-cptr chaos_patrons[MAX_PATRON] =
-{
- "Slortar",
- "Mabelode",
- "Chardros",
- "Hionhurn",
- "Xiombarg",
-
- "Pyaray",
- "Balaan",
- "Arioch",
- "Eequor",
- "Narjhan",
-
- "Balo",
- "Khorne",
- "Slaanesh",
- "Nurgle",
- "Tzeentch",
-
- "Khaine"
-};
-
-int chaos_stats[MAX_PATRON] =
-{
- A_CON, /* Slortar */
- A_CON, /* Mabelode */
- A_STR, /* Chardros */
- A_STR, /* Hionhurn */
- A_STR, /* Xiombarg */
-
- A_INT, /* Pyaray */
- A_STR, /* Balaan */
- A_INT, /* Arioch */
- A_CON, /* Eequor */
- A_CHR, /* Narjhan */
-
- -1, /* Balo */
- A_STR, /* Khorne */
- A_CHR, /* Slaanesh */
- A_CON, /* Nurgle */
- A_INT, /* Tzeentch */
-
- A_STR, /* Khaine */
-};
-
-
-
-
-int chaos_rewards[MAX_PATRON][20] =
-{
- /* Slortar the Old: */
- {
- REW_WRATH, REW_CURSE_WP, REW_CURSE_AR, REW_RUIN_ABL, REW_LOSE_ABL,
- REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_POLY_WND, REW_POLY_SLF,
- REW_POLY_SLF, REW_POLY_SLF, REW_GAIN_ABL, REW_GAIN_ABL, REW_GAIN_EXP,
- REW_GOOD_OBJ, REW_CHAOS_WP, REW_GREA_OBJ, REW_AUGM_ABL, REW_AUGM_ABL
- },
-
- /* Mabelode the Faceless: */
- {
- REW_WRATH, REW_CURSE_WP, REW_CURSE_AR, REW_H_SUMMON, REW_SUMMON_M,
- REW_SUMMON_M, REW_IGNORE, REW_IGNORE, REW_POLY_WND, REW_POLY_WND,
- REW_POLY_SLF, REW_HEAL_FUL, REW_HEAL_FUL, REW_GAIN_ABL, REW_SER_UNDE,
- REW_CHAOS_WP, REW_GOOD_OBJ, REW_GOOD_OBJ, REW_GOOD_OBS, REW_GOOD_OBS
- },
-
- /* Chardros the Reaper: */
- {
- REW_WRATH, REW_WRATH, REW_HURT_LOT, REW_PISS_OFF, REW_H_SUMMON,
- REW_SUMMON_M, REW_IGNORE, REW_IGNORE, REW_DESTRUCT, REW_SER_UNDE,
- REW_GENOCIDE, REW_MASS_GEN, REW_MASS_GEN, REW_DISPEL_C, REW_GOOD_OBJ,
- REW_CHAOS_WP, REW_GOOD_OBS, REW_GOOD_OBS, REW_AUGM_ABL, REW_AUGM_ABL
- },
-
- /* Hionhurn the Executioner: */
- {
- REW_WRATH, REW_WRATH, REW_CURSE_WP, REW_CURSE_AR, REW_RUIN_ABL,
- REW_IGNORE, REW_IGNORE, REW_SER_UNDE, REW_DESTRUCT, REW_GENOCIDE,
- REW_MASS_GEN, REW_MASS_GEN, REW_HEAL_FUL, REW_GAIN_ABL, REW_GAIN_ABL,
- REW_CHAOS_WP, REW_GOOD_OBS, REW_GOOD_OBS, REW_AUGM_ABL, REW_AUGM_ABL
- },
-
- /* Xiombarg the Sword-Queen: */
- {
- REW_TY_CURSE, REW_TY_CURSE, REW_PISS_OFF, REW_RUIN_ABL, REW_LOSE_ABL,
- REW_IGNORE, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_WND, REW_POLY_WND,
- REW_GENOCIDE, REW_DISPEL_C, REW_GOOD_OBJ, REW_GOOD_OBJ, REW_SER_MONS,
- REW_GAIN_ABL, REW_CHAOS_WP, REW_GAIN_EXP, REW_AUGM_ABL, REW_GOOD_OBS
- },
-
-
- /* Pyaray the Tentacled Whisperer of Impossible Secretes: */
- {
- REW_WRATH, REW_TY_CURSE, REW_PISS_OFF, REW_H_SUMMON, REW_H_SUMMON,
- REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_POLY_WND, REW_POLY_SLF,
- REW_POLY_SLF, REW_SER_DEMO, REW_HEAL_FUL, REW_GAIN_ABL, REW_GAIN_ABL,
- REW_CHAOS_WP, REW_DO_HAVOC, REW_GOOD_OBJ, REW_GREA_OBJ, REW_GREA_OBS
- },
-
- /* Balaan the Grim: */
- {
- REW_TY_CURSE, REW_HURT_LOT, REW_CURSE_WP, REW_CURSE_AR, REW_RUIN_ABL,
- REW_SUMMON_M, REW_LOSE_EXP, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_WND,
- REW_SER_UNDE, REW_HEAL_FUL, REW_HEAL_FUL, REW_GAIN_EXP, REW_GAIN_EXP,
- REW_CHAOS_WP, REW_GOOD_OBJ, REW_GOOD_OBS, REW_GREA_OBS, REW_AUGM_ABL
- },
-
- /* Arioch, Duke of Hell: */
- {
- REW_WRATH, REW_PISS_OFF, REW_RUIN_ABL, REW_LOSE_EXP, REW_H_SUMMON,
- REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_POLY_SLF,
- REW_POLY_SLF, REW_MASS_GEN, REW_SER_DEMO, REW_HEAL_FUL, REW_CHAOS_WP,
- REW_CHAOS_WP, REW_GOOD_OBJ, REW_GAIN_EXP, REW_GREA_OBJ, REW_AUGM_ABL
- },
-
- /* Eequor, Blue Lady of Dismay: */
- {
- REW_WRATH, REW_TY_CURSE, REW_PISS_OFF, REW_CURSE_WP, REW_RUIN_ABL,
- REW_IGNORE, REW_IGNORE, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_WND,
- REW_GOOD_OBJ, REW_GOOD_OBJ, REW_SER_MONS, REW_HEAL_FUL, REW_GAIN_EXP,
- REW_GAIN_ABL, REW_CHAOS_WP, REW_GOOD_OBS, REW_GREA_OBJ, REW_AUGM_ABL
- },
-
- /* Narjhan, Lord of Beggars: */
- {
- REW_WRATH, REW_CURSE_AR, REW_CURSE_WP, REW_CURSE_WP, REW_CURSE_AR,
- REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_POLY_SLF, REW_POLY_SLF,
- REW_POLY_WND, REW_HEAL_FUL, REW_HEAL_FUL, REW_GAIN_EXP, REW_AUGM_ABL,
- REW_GOOD_OBJ, REW_GOOD_OBJ, REW_CHAOS_WP, REW_GREA_OBJ, REW_GREA_OBS
- },
-
- /* Balo the Jester: */
- {
- REW_WRATH, REW_SER_DEMO, REW_CURSE_WP, REW_CURSE_AR, REW_LOSE_EXP,
- REW_GAIN_ABL, REW_LOSE_ABL, REW_POLY_WND, REW_POLY_SLF, REW_IGNORE,
- REW_DESTRUCT, REW_MASS_GEN, REW_CHAOS_WP, REW_GREA_OBJ, REW_HURT_LOT,
- REW_AUGM_ABL, REW_RUIN_ABL, REW_H_SUMMON, REW_GREA_OBS, REW_AUGM_ABL
- },
-
- /* Khorne the Bloodgod: */
- {
- REW_WRATH, REW_HURT_LOT, REW_HURT_LOT, REW_H_SUMMON, REW_H_SUMMON,
- REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_SER_MONS, REW_SER_DEMO,
- REW_POLY_SLF, REW_POLY_WND, REW_HEAL_FUL, REW_GOOD_OBJ, REW_GOOD_OBJ,
- REW_CHAOS_WP, REW_GOOD_OBS, REW_GOOD_OBS, REW_GREA_OBJ, REW_GREA_OBS
- },
-
- /* Slaanesh: */
- {
- REW_WRATH, REW_PISS_OFF, REW_PISS_OFF, REW_RUIN_ABL, REW_LOSE_ABL,
- REW_LOSE_EXP, REW_IGNORE, REW_IGNORE, REW_POLY_WND, REW_SER_DEMO,
- REW_POLY_SLF, REW_HEAL_FUL, REW_HEAL_FUL, REW_GOOD_OBJ, REW_GAIN_EXP,
- REW_GAIN_EXP, REW_CHAOS_WP, REW_GAIN_ABL, REW_GREA_OBJ, REW_AUGM_ABL
- },
-
- /* Nurgle: */
- {
- REW_WRATH, REW_PISS_OFF, REW_HURT_LOT, REW_RUIN_ABL, REW_LOSE_ABL,
- REW_LOSE_EXP, REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_POLY_SLF,
- REW_POLY_SLF, REW_POLY_WND, REW_HEAL_FUL, REW_GOOD_OBJ, REW_GAIN_ABL,
- REW_GAIN_ABL, REW_SER_UNDE, REW_CHAOS_WP, REW_GREA_OBJ, REW_AUGM_ABL
- },
-
- /* Tzeentch: */
- {
- REW_WRATH, REW_CURSE_WP, REW_CURSE_AR, REW_RUIN_ABL, REW_LOSE_ABL,
- REW_LOSE_EXP, REW_IGNORE, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_SLF,
- REW_POLY_SLF, REW_POLY_WND, REW_HEAL_FUL, REW_CHAOS_WP, REW_GREA_OBJ,
- REW_GAIN_ABL, REW_GAIN_ABL, REW_GAIN_EXP, REW_GAIN_EXP, REW_AUGM_ABL
- },
-
- /* Khaine: */
- {
- REW_WRATH, REW_HURT_LOT, REW_PISS_OFF, REW_LOSE_ABL, REW_LOSE_EXP,
- REW_IGNORE, REW_IGNORE, REW_DISPEL_C, REW_DO_HAVOC, REW_DO_HAVOC,
- REW_POLY_SLF, REW_POLY_SLF, REW_GAIN_EXP, REW_GAIN_ABL, REW_GAIN_ABL,
- REW_SER_MONS, REW_GOOD_OBJ, REW_CHAOS_WP, REW_GREA_OBJ, REW_GOOD_OBS
- }
-};
-
-/* Names used for random artifact name generation */
-cptr artifact_names_list =
- "adanedhel\n"
- "adurant\n"
- "aeglos\n"
- "aegnor\n"
- "aelin\n"
- "aeluin\n"
- "aerandir\n"
- "aerin\n"
- "agarwaen\n"
- "aglareb\n"
- "aglarond\n"
- "aglon\n"
- "ainulindale\n"
- "ainur\n"
- "alcarinque\n"
- "aldaron\n"
- "aldudenie\n"
- "almaren\n"
- "alqualonde\n"
- "aman\n"
- "amandil\n"
- "amarie\n"
- "amarth\n"
- "amlach\n"
- "amon\n"
- "amras\n"
- "amrod\n"
- "anach\n"
- "anar\n"
- "anarion\n"
- "ancalagon\n"
- "ancalimon\n"
- "anarrima\n"
- "andor\n"
- "andram\n"
- "androth\n"
- "anduin\n"
- "andunie\n"
- "anfauglir\n"
- "anfauglith\n"
- "angainor\n"
- "angband\n"
- "anghabar\n"
- "anglachel\n"
- "angrenost\n"
- "angrim\n"
- "angrist\n"
- "angrod\n"
- "anguirel\n"
- "annael\n"
- "annatar\n"
- "annon\n"
- "annuminas\n"
- "apanonar\n"
- "aradan\n"
- "aragorn\n"
- "araman\n"
- "aranel\n"
- "aranruth\n"
- "aranwe\n"
- "aras\n"
- "aratan\n"
- "aratar\n"
- "arathorn\n"
- "arda\n"
- "ard-galen\n"
- "aredhel\n"
- "ar-feiniel\n"
- "argonath\n"
- "arien\n"
- "armenelos\n"
- "arminas\n"
- "arnor\n"
- "aros\n"
- "arossiach\n"
- "arthad\n"
- "arvernien\n"
- "arwen\n"
- "ascar\n"
- "astaldo\n"
- "atalante\n"
- "atanamir\n"
- "atanatari\n"
- "atani\n"
- "aule\n"
- "avallone\n"
- "avari\n"
- "avathar\n"
- "balan\n"
- "balar\n"
- "balrog\n"
- "barad\n"
- "baragund\n"
- "barahir\n"
- "baran\n"
- "baranduin\n"
- "bar\n"
- "bauglir\n"
- "beleg\n"
- "belegaer\n"
- "belegost\n"
- "belegund\n"
- "beleriand\n"
- "belfalas\n"
- "belthil\n"
- "belthronding\n"
- "beor\n"
- "beraid\n"
- "bereg\n"
- "beren\n"
- "boromir\n"
- "boron\n"
- "bragollach\n"
- "brandir\n"
- "bregolas\n"
- "bregor\n"
- "brethil\n"
- "brilthor\n"
- "brithiach\n"
- "brithombar\n"
- "brithon\n"
- "cabed\n"
- "calacirya\n"
- "calaquendi\n"
- "calenardhon\n"
- "calion\n"
- "camlost\n"
- "caragdur\n"
- "caranthir\n"
- "carcharoth\n"
- "cardolan\n"
- "carnil\n"
- "celeborn\n"
- "celebrant\n"
- "celebrimbor\n"
- "celebrindal\n"
- "celebros\n"
- "celegorm\n"
- "celon\n"
- "cirdan\n"
- "cirith\n"
- "cirth\n"
- "ciryatan\n"
- "ciryon\n"
- "coimas\n"
- "corollaire\n"
- "crissaegrim\n"
- "cuarthal\n"
- "cuivienen\n"
- "culurien\n"
- "curufin\n"
- "curufinwe\n"
- "curunir\n"
- "cuthalion\n"
- "daedeloth\n"
- "daeron\n"
- "dagnir\n"
- "dagor\n"
- "dagorlad\n"
- "dairuin\n"
- "danwedh\n"
- "delduwath\n"
- "denethor\n"
- "dimbar\n"
- "dimrost\n"
- "dinen\n"
- "dior\n"
- "dirnen\n"
- "dolmed\n"
- "doriath\n"
- "dorlas\n"
- "dorthonion\n"
- "draugluin\n"
- "drengist\n"
- "duath\n"
- "duinath\n"
- "duilwen\n"
- "dunedain\n"
- "dungortheb\n"
- "earendil\n"
- "earendur\n"
- "earnil\n"
- "earnur\n"
- "earrame\n"
- "earwen\n"
- "echor\n"
- "echoriath\n"
- "ecthelion\n"
- "edain\n"
- "edrahil\n"
- "eglador\n"
- "eglarest\n"
- "eglath\n"
- "eilinel\n"
- "eithel\n"
- "ekkaia\n"
- "elbereth\n"
- "eldalie\n"
- "eldalieva\n"
- "eldamar\n"
- "eldar\n"
- "eledhwen\n"
- "elemmire\n"
- "elende\n"
- "elendil\n"
- "elendur\n"
- "elenna\n"
- "elentari\n"
- "elenwe\n"
- "elerrina\n"
- "elleth\n"
- "elmoth\n"
- "elostirion\n"
- "elrond\n"
- "elros\n"
- "elu\n"
- "eluchil\n"
- "elured\n"
- "elurin\n"
- "elwe\n"
- "elwing\n"
- "emeldir\n"
- "endor\n"
- "engrin\n"
- "engwar\n"
- "eol\n"
- "eonwe\n"
- "ephel\n"
- "erchamion\n"
- "ereb\n"
- "ered\n"
- "erech\n"
- "eregion\n"
- "ereinion\n"
- "erellont\n"
- "eressea\n"
- "eriador\n"
- "eru\n"
- "esgalduin\n"
- "este\n"
- "estel\n"
- "estolad\n"
- "ethir\n"
- "ezellohar\n"
- "faelivrin\n"
- "falas\n"
- "falathar\n"
- "falathrim\n"
- "falmari\n"
- "faroth\n"
- "fauglith\n"
- "feanor\n"
- "feanturi\n"
- "felagund\n"
- "finarfin\n"
- "finduilas\n"
- "fingolfin\n"
- "fingon\n"
- "finwe\n"
- "firimar\n"
- "formenos\n"
- "fornost\n"
- "frodo\n"
- "fuin\n"
- "fuinur\n"
- "gabilgathol\n"
- "galad\n"
- "galadriel\n"
- "galathilion\n"
- "galdor\n"
- "galen\n"
- "galvorn\n"
- "gandalf\n"
- "gaurhoth\n"
- "gelion\n"
- "gelmir\n"
- "gelydh\n"
- "gil\n"
- "gildor\n"
- "giliath\n"
- "ginglith\n"
- "girith\n"
- "glaurung\n"
- "glingal\n"
- "glirhuin\n"
- "gloredhel\n"
- "glorfindel\n"
- "golodhrim\n"
- "gondolin\n"
- "gondor\n"
- "gonnhirrim\n"
- "gorgoroth\n"
- "gorlim\n"
- "gorthaur\n"
- "gorthol\n"
- "gothmog\n"
- "guilin\n"
- "guinar\n"
- "guldur\n"
- "gundor\n"
- "gurthang\n"
- "gwaith\n"
- "gwareth\n"
- "gwindor\n"
- "hadhodrond\n"
- "hador\n"
- "haladin\n"
- "haldad\n"
- "haldan\n"
- "haldar\n"
- "haldir\n"
- "haleth\n"
- "halmir\n"
- "handir\n"
- "harad\n"
- "hareth\n"
- "hathaldir\n"
- "hathol\n"
- "haudh\n"
- "helcar\n"
- "helcaraxe\n"
- "helevorn\n"
- "helluin\n"
- "herumor\n"
- "herunumen\n"
- "hildorien\n"
- "himlad\n"
- "himring\n"
- "hirilorn\n"
- "hisilome\n"
- "hithaeglir\n"
- "hithlum\n"
- "hollin\n"
- "huan\n"
- "hunthor\n"
- "huor\n"
- "hurin\n"
- "hyarmendacil\n"
- "hyarmentir\n"
- "iant\n"
- "iaur\n"
- "ibun\n"
- "idril\n"
- "illuin\n"
- "ilmare\n"
- "ilmen\n"
- "iluvatar\n"
- "imlach\n"
- "imladris\n"
- "indis\n"
- "ingwe\n"
- "irmo\n"
- "isil\n"
- "isildur\n"
- "istari\n"
- "ithil\n"
- "ivrin\n"
- "kelvar\n"
- "kementari\n"
- "ladros\n"
- "laiquendi\n"
- "lalaith\n"
- "lamath\n"
- "lammoth\n"
- "lanthir\n"
- "laurelin\n"
- "leithian\n"
- "legolin\n"
- "lembas\n"
- "lenwe\n"
- "linaewen\n"
- "lindon\n"
- "lindorie\n"
- "loeg\n"
- "lomelindi\n"
- "lomin\n"
- "lomion\n"
- "lorellin\n"
- "lorien\n"
- "lorindol\n"
- "losgar\n"
- "lothlann\n"
- "lothlorien\n"
- "luin\n"
- "luinil\n"
- "lumbar\n"
- "luthien\n"
- "mablung\n"
- "maedhros\n"
- "maeglin\n"
- "maglor\n"
- "magor\n"
- "mahanaxar\n"
- "mahtan\n"
- "maiar\n"
- "malduin\n"
- "malinalda\n"
- "mandos\n"
- "manwe\n"
- "mardil\n"
- "melian\n"
- "melkor\n"
- "menegroth\n"
- "meneldil\n"
- "menelmacar\n"
- "meneltarma\n"
- "minas\n"
- "minastir\n"
- "mindeb\n"
- "mindolluin\n"
- "mindon\n"
- "minyatur\n"
- "mirdain\n"
- "miriel\n"
- "mithlond\n"
- "mithrandir\n"
- "mithrim\n"
- "mordor\n"
- "morgoth\n"
- "morgul\n"
- "moria\n"
- "moriquendi\n"
- "mormegil\n"
- "morwen\n"
- "nahar\n"
- "naeramarth\n"
- "namo\n"
- "nandor\n"
- "nargothrond\n"
- "narog\n"
- "narsil\n"
- "narsilion\n"
- "narya\n"
- "nauglamir\n"
- "naugrim\n"
- "ndengin\n"
- "neithan\n"
- "neldoreth\n"
- "nenar\n"
- "nenning\n"
- "nenuial\n"
- "nenya\n"
- "nerdanel\n"
- "nessa\n"
- "nevrast\n"
- "nibin\n"
- "nienna\n"
- "nienor\n"
- "nimbrethil\n"
- "nimloth\n"
- "nimphelos\n"
- "nimrais\n"
- "nimras\n"
- "ningloron\n"
- "niniel\n"
- "ninniach\n"
- "ninquelote\n"
- "niphredil\n"
- "nirnaeth\n"
- "nivrim\n"
- "noegyth\n"
- "nogrod\n"
- "noldolante\n"
- "noldor\n"
- "numenor\n"
- "nurtale\n"
- "obel\n"
- "ohtar\n"
- "oiolosse\n"
- "oiomure\n"
- "olorin\n"
- "olvar\n"
- "olwe\n"
- "ondolinde\n"
- "orfalch\n"
- "ormal\n"
- "orocarni\n"
- "orodreth\n"
- "orodruin\n"
- "orome\n"
- "oromet\n"
- "orthanc\n"
- "osgiliath\n"
- "osse\n"
- "ossiriand\n"
- "palantir\n"
- "pelargir\n"
- "pelori\n"
- "periannath\n"
- "quendi\n"
- "quenta\n"
- "quenya\n"
- "radagast\n"
- "radhruin\n"
- "ragnor\n"
- "ramdal\n"
- "rana\n"
- "rathloriel\n"
- "rauros\n"
- "region\n"
- "rerir\n"
- "rhovanion\n"
- "rhudaur\n"
- "rhun\n"
- "rhunen\n"
- "rian\n"
- "ringil\n"
- "ringwil\n"
- "romenna\n"
- "rudh\n"
- "rumil\n"
- "saeros\n"
- "salmar\n"
- "saruman\n"
- "sauron\n"
- "serech\n"
- "seregon\n"
- "serinde\n"
- "shelob\n"
- "silmarien\n"
- "silmaril\n"
- "silpion\n"
- "sindar\n"
- "singollo\n"
- "sirion\n"
- "soronume\n"
- "sul\n"
- "sulimo\n"
- "talath\n"
- "taniquetil\n"
- "tar\n"
- "taras\n"
- "tarn\n"
- "tathren\n"
- "taur\n"
- "tauron\n"
- "teiglin\n"
- "telchar\n"
- "telemnar\n"
- "teleri\n"
- "telperion\n"
- "telumendil\n"
- "thalion\n"
- "thalos\n"
- "thangorodrim\n"
- "thargelion\n"
- "thingol\n"
- "thoronath\n"
- "thorondor\n"
- "thranduil\n"
- "thuringwethil\n"
- "tilion\n"
- "tintalle\n"
- "tinuviel\n"
- "tirion\n"
- "tirith\n"
- "tol\n"
- "tulkas\n"
- "tumhalad\n"
- "tumladen\n"
- "tuna\n"
- "tuor\n"
- "turambar\n"
- "turgon\n"
- "turin\n"
- "uial\n"
- "uilos\n"
- "uinen\n"
- "ulairi\n"
- "ulmo\n"
- "ulumuri\n"
- "umanyar\n"
- "umarth\n"
- "umbar\n"
- "ungoliant\n"
- "urthel\n"
- "uruloki\n"
- "utumno\n"
- "vaire\n"
- "valacirca\n"
- "valandil\n"
- "valaquenta\n"
- "valar\n"
- "valaraukar\n"
- "valaroma\n"
- "valier\n"
- "valimar\n"
- "valinor\n"
- "valinoreva\n"
- "valmar\n"
- "vana\n"
- "vanyar\n"
- "varda\n"
- "vasa\n"
- "vilya\n"
- "vingilot\n"
- "vinyamar\n"
- "voronwe\n"
- "wethrin\n"
- "wilwarin\n"
- "yavanna\n"
- ;
-
-
-martial_arts ma_blows[MAX_MA] =
-{
- { "You punch %s.", 1, 0, 2, 4, 0, 0 },
- { "You kick %s.", 2, 0, 2, 6, 0, 0 },
- { "You strike %s.", 3, 0, 2, 7, 0, 0 },
- { "You hit %s with your knee.", 5, 5, 4, 3, MA_KNEE, 0 },
- { "You hit %s with your elbow.", 7, 5, 2, 8, 0, 0 },
- { "You butt %s.", 9, 10, 4, 5, 0, 0 },
- { "You kick %s.", 11, 10, 6, 4, MA_SLOW, 0 },
- { "You uppercut %s.", 13, 12, 8, 4, MA_STUN, 6 },
- { "You double-kick %s.", 16, 15, 10, 4, MA_STUN, 8 },
- { "You hit %s with a Cat's Claw.", 20, 20, 10, 5, 0, 0 },
- { "You hit %s with a jump kick.", 25, 25, 10, 6, MA_STUN, 10 },
- { "You hit %s with an Eagle's Claw.", 29, 25, 12, 6, 0, 0 },
- { "You hit %s with a circle kick.", 33, 30, 12, 8, MA_STUN, 10 },
- { "You hit %s with an Iron Fist.", 37, 35, 16, 8, MA_STUN, 10 },
- { "You hit %s with a flying kick.", 41, 35, 16, 10, MA_STUN, 12 },
- { "You hit %s with a Dragon Fist.", 45, 35, 20, 10, MA_STUN, 16 },
- { "You hit %s with a Crushing Blow.", 48, 35, 20, 12, MA_STUN, 18 },
-};
-
-/*
- * cptr desc; A verbose attack description
- * int min_level; Minimum level to use
- * int chance; Chance of 'success
- * int dd; Damage dice
- * int ds; Damage sides
- * s16b effect; Special effects
- * s16b power; Special effects power
- */
-martial_arts bear_blows[MAX_BEAR] =
-{
- { "You claw %s.", 1, 0, 3, 4, MA_STUN, 4 },
- { "You swat %s.", 4, 0, 4, 4, MA_WOUND, 20 },
- { "You bite %s.", 9, 2, 4, 4, MA_WOUND, 30 },
- { "You hug %s.", 15, 5, 6, 4, MA_FULL_SLOW, 0 },
- { "You swat and rake %s.", 25, 10, 6, 5, MA_STUN | MA_WOUND, 10 },
- { "You hug and claw %s.", 30, 15, 6, 6, MA_FULL_SLOW | MA_WOUND, 60 },
- { "You double swat %s.", 35, 20, 9, 7, MA_STUN | MA_WOUND, 20 },
- { "You double swat and rake %s.", 40, 25, 10, 10, MA_STUN | MA_WOUND, 25 },
-};
-
-
-magic_power mindcraft_powers[MAX_MINDCRAFT_POWERS] =
-{
- /* Level gained, cost, %fail, name, desc */
- {
- /* Det. monsters/traps */
- 1, 1, 15,
- "Precognition",
- "Detect monsters, traps and level layout and lights up at higher levels."
- },
- {
- /* ~MM */
- 2, 1, 20,
- "Neural Blast",
- "Blast the minds of your foes."
- },
- {
- /* Phase/Between gate */
- 3, 2, 25,
- "Minor Displacement",
- "Short distance teleportation"
- },
- {
- /* Tele. Self / All */
- 7, 6, 35,
- "Major Displacement",
- "Teleport you and others at high levels."
- },
- {
- 9, 7, 50,
- "Domination",
- "Charm monsters"
- },
- {
- /* Telekinetic "bolt" */
- 11, 7, 30,
- "Pulverise",
- "Fires a bolt of pure sound."
- },
- {
- /* Psychic/physical defenses */
- 13, 12, 50,
- "Character Armour",
- "Sets up physical/elemental shield."
- },
- {
- 15, 12, 60,
- "Psychometry",
- "Identifies objects."
- },
- {
- /* Ball -> LOS */
- 18, 10, 45,
- "Mind Wave",
- "Projects psi waves to crush the minds of your foes."
- },
- {
- 23, 15, 50,
- "Adrenaline Channeling",
- "Heals you, cures you and speeds you."
- },
- {
- /* Convert enemy HP to mana */
- 25, 10, 40,
- "Psychic Drain",
- "Drain your foes' life into your mana reserves"
- },
- {
- /* Ball -> LOS */
- 28, 20, 45,
- "Telekinetic Wave",
- "Powerful wave of pure telekinetic forces."
- },
- };
-
- magic_power necro_powers[MAX_NECRO_POWERS] =
- {
- /* Level gained, cost, %fail, name, desc */
- {
- /* Bolt/beam/ball/LOS of stun/scare */
- 1, 2, 10,
- "Horrify",
- "Calls upon the darkness to stun and scare your foes."
- },
- {
- /* Ball */
- 5, 6, 20,
- "Raise Dead",
- "Brings back your foes in the form of various undead. Also, can heal monsters."
- },
- {
- /* Summons weapon */
- 12, 20, 25,
- "Necromantic Teeth",
- "Conjures a temporary vampiric weapon."
- },
- {
- /* Heals when killing a monster */
- 20, 10, 25,
- "Absorb Soul",
- "Gives back some life for each kill."
- },
- {
- /* Bolt */
- 30, 15, 20,
- "Vampirism",
- "Drain the life of your foes into your own."
- },
- {
- /* The Death word, always bolt put your HP to 1 */
- 35, 100, 25,
- "Death",
- "Instantly kills your opponent and you, turning yourself into an undead."
- },
-};
-
-magic_power mimic_powers[MAX_MIMIC_POWERS] =
-{
- /* Level gained, cost, %fail, name */
- {
- /* Use a book of lore */
- 1, 2, 0,
- "Mimic",
- "Lets you use the powers of a Cloak of Mimicry."
- },
- {
- /* Invisibility */
- 10, 6, 20,
- "Invisibility",
- "Hides you from the sight of mortals."
- },
- {
- /* +1 pair of legs */
- 25, 20, 25,
- "Legs Mimicry",
- "Temporarily provides a new pair of legs."
- },
- {
- /* wall form */
- 30, 40, 30,
- "Wall Mimicry",
- "Temporarily lets you walk in walls, and ONLY in walls."
- },
- {
- /* +1 pair of arms, +1 weapon */
- 35, 100, 40,
- "Arms Mimicry",
- "Temporarily provides a new pair of arms."
- },
-};
-
-magic_power symbiotic_powers[MAX_SYMBIOTIC_POWERS] =
-{
- /* Level gained, cost, %fail, name */
- {
- 1, 1, 0,
- "Hypnotise",
- "Hypnotise a non-moving pet to allow you to enter symbiosis(wear) with it."
- },
- {
- 1, 1, 0,
- "Release",
- "Release an hypnotised pet."
- },
- {
- 3, 2, 10,
- "Charm Never-Moving",
- "Tries to charm a never-moving monster."
- },
- {
- 5, 5, 20,
- "Life Share",
- "Evens out your life with your symbiote."
- },
- {
- 10, 10, 20,
- "Use Minor Powers",
- "Allows you to use some of the powers of your symbiote."
- },
- {
- 15, 14, 25,
- "Heal Symbiote",
- "Heals your symbiotic monster."
- },
- {
- 25, 30, 40,
- "Use major powers",
- "Allows you to use all the powers of your symbiote."
- },
- {
- 30, 35, 40,
- "Summon Never-Moving Pet",
- "Summons a never-moving pet."
- },
- {
- 40, 60, 70,
- "Force Symbiosis",
- "Allows you to use all the powers of a monster in your line of sight."
- },
-};
-
-
-/*
- * Textual translation of your god's "niceness".
- */
-
-cptr deity_niceness[10] =
-{
- "a lovable deity",
- "a friendly deity",
- "an easygoing deity",
- "a forgiving deity",
- "an uncaring deity",
- "a wary deity",
- "an unforgiving deity",
- "an impatient deity",
- "a wrathful deity",
- "an easily angered deity"
-};
-
-/*
- * Textual translation of your standing with your god.
- */
-
-cptr deity_standing[11] =
-{
- "cursed",
- "persecuted",
- "punished",
- "despised",
- "disliked",
- "watched",
- "unnoticed",
- "noticed",
- "rewarded",
- "favored",
- "championed"
-};
-
-/*
- * Name and description (max. 10 lines) of the gods.
- * Only the first four lines are printed at birth.
- */
-
-deity_type deity_info_init[MAX_GODS_INIT] =
-{
- {
- "Nobody",
- {
- "Atheist",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- },
- {
- "Eru Iluvatar",
- {
- "He is the supreme god, he created the world, and most of its inhabitants.",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- },
- {
- "Manwe Sulimo",
- {
- "He is the king of the Valar, most powerful of them after Melkor.",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- },
- {
- "Tulkas",
- {
- "He is the last of the Valar that came to the world, and the fiercest fighter.",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- },
- {
- "Melkor Bauglir",
- {
- "He is the most powerful of the Valar. He became corrupted and he's now ",
- "the greatest threat of Arda, he is also known as Morgoth, the dark enemy.",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- },
- {
- "Yavanna Kementari",
- {
- "She is the Vala of nature, protectress of the great forests of "
- "Middle-earth.",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- },
-};
-
-/* jk - to hit, to dam, to ac, to stealth, to disarm, to saving throw */
-/* this concept is taken from Adom, where Thomas Biskup thought it out, */
-/* as far as I know. */
-tactic_info_type tactic_info[9] =
-{
- /* hit dam ac stl dis sav */
- { -10, -10, + 15, + 3, + 15, + 14, "coward"}, /* 4-4 */
- { -8, -8, + 10, + 2, + 9, + 9, "meek"}, /* 4-3 */
- { -4, -4, + 5, + 1, + 5, + 5, "wary"}, /* 4-2 */
- { -2, -2, + 2, + 1, + 2, + 2, "careful"}, /* 4-1 */
- { 0, 0, 0, 0, 0, 0, "normal"}, /* 4+0 */
- { 2, 2, -2, -1, -2, -3, "confident"}, /* 4+1 */
- { 4, 4, -5, -2, -5, -7, "aggressive"}, /* 4+2 */
- { 6, 6, -10, -3, -11, -12, "furious"}, /* 4+3 */
- { 8, 12, -25, -5, -18, -18, "berserker"} /* 4+4 */
-};
-
-/*
- * Random artifact activations.
- */
-activation activation_info[MAX_T_ACT] =
-{
- { "death", 0, ACT_DEATH },
- { "ruination", 0, ACT_RUINATION },
- { "destruction", 1000, ACT_DESTRUC },
- { "stupidity", 0, ACT_UNINT },
- { "weakness", 0, ACT_UNSTR },
- { "unhealth", 0, ACT_UNCON },
- { "ugliness", 0, ACT_UNCHR },
- { "clumsiness", 0, ACT_UNDEX },
- { "naivete", 0, ACT_UNWIS },
- { "stat loss", 0, ACT_STATLOSS },
- { "huge stat loss", 0, ACT_HISTATLOSS },
- { "experience loss", 0, ACT_EXPLOSS },
- { "huge experience loss", 0, ACT_HIEXPLOSS },
- { "teleportation", 1000, ACT_TELEPORT },
- { "monster summoning", 5, ACT_SUMMON_MONST },
- { "paralyzation", 0, ACT_PARALYZE },
- { "hallucination", 100, ACT_HALLU },
- { "poisoning", 0, ACT_POISON },
- { "hunger", 0, ACT_HUNGER },
- { "stun", 0, ACT_STUN },
- { "cuts", 0, ACT_CUTS },
- { "paranoia", 0, ACT_PARANO },
- { "confusion", 0, ACT_CONFUSION },
- { "blindness", 0, ACT_BLIND },
- { "pet summoning", 1010, ACT_PET_SUMMON },
- { "cure paralyzation", 5000, ACT_CURE_PARA },
- { "cure hallucination", 1000, ACT_CURE_HALLU },
- { "cure poison", 1000, ACT_CURE_POIS },
- { "cure hunger", 1000, ACT_CURE_HUNGER },
- { "cure stun", 1000, ACT_CURE_STUN },
- { "cure cut", 1000, ACT_CURE_CUTS },
- { "cure fear", 1000, ACT_CURE_FEAR },
- { "cure confusion", 1000, ACT_CURE_CONF },
- { "cure blindness", 1000, ACT_CURE_BLIND },
- { "cure light wounds", 500, ACT_CURE_LW },
- { "cure serious wounds", 750, ACT_CURE_MW },
- { "cure critical wounds", 1000, ACT_CURE_700 },
- { "curing", 1100, ACT_CURING },
- { "genocide", 5000, ACT_GENOCIDE },
- { "mass genocide", 10000, ACT_MASS_GENO },
- { "restoration", 2000, ACT_REST_ALL },
- { "light", 1000, ACT_LIGHT },
- { "darkness", 0, ACT_DARKNESS },
- { "teleportation", 1000, ACT_TELEPORT },
- { "level teleportation", 500, ACT_LEV_TELE },
- { "acquirement", 30000, ACT_ACQUIREMENT },
- { "something weird", 50, ACT_WEIRD },
- { "aggravation", 0, ACT_AGGRAVATE },
- { "corruption", 100, ACT_MUT },
- { "cure insanity", 2000, ACT_CURE_INSANITY },
- { "light absortion", 800, ACT_LIGHT_ABSORBTION },
-};
-
-/*
- * Possible movement type.
- */
-move_info_type move_info[9] =
-{
- /* speed, searching, stealth, perception */
- { -10, 17, 4, 20, "slug-like"},
- { -8, 12, 4, 16, "very slow"},
- { -6, 8, 3, 10, "slow"},
- { -3, 4, 2, 6, "leisurely"},
- { 0, 0, 0, 0, "normal"},
- { 1, -4, -1, -4, "brisk"},
- { 2, -6, -4, -8, "fast"},
- { 3, -10, -7, -14, "very fast"},
- { 4, -16, -10, -20, "running"}
-};
-
-/*
- * Possible inscriptions type.
- */
-inscription_info_type inscription_info[MAX_INSCRIPTIONS] =
-{
- { /* Nothing */
- "",
- 0,
- TRUE,
- 0,
- },
- { /* Light up the room(Adunaic) */
- "ure nimir", /* sun shine */
- INSCRIP_EXEC_ENGRAVE | INSCRIP_EXEC_WALK | INSCRIP_EXEC_MONST_WALK,
- FALSE,
- 30,
- },
- { /* Darkness in room(Adunaic) */
- "lomi gimli", /* night stars */
- INSCRIP_EXEC_ENGRAVE | INSCRIP_EXEC_WALK | INSCRIP_EXEC_MONST_WALK,
- FALSE,
- 10,
- },
- { /* Storm(Adunaic) */
- "dulgi bawiba", /* black winds */
- INSCRIP_EXEC_ENGRAVE | INSCRIP_EXEC_WALK | INSCRIP_EXEC_MONST_WALK,
- FALSE,
- 40,
- },
- { /* Protection(Sindarin) */
- "pedo mellon a minno", /* say friend and enter */
- INSCRIP_EXEC_MONST_WALK,
- FALSE,
- 8,
- },
- { /* Dwarves summoning(Khuzdul) */
- "Baruk Khazad! Khazad aimenu!", /* Axes of the Dwarves, the Dwarves are upon you! */
- INSCRIP_EXEC_ENGRAVE,
- FALSE,
- 100,
- },
- { /* Open Chasm(Nandorin) */
- "dunna hrassa", /* black precipice */
- INSCRIP_EXEC_MONST_WALK,
- FALSE,
- 50,
- },
- { /* Blast of Black Fire(Orcish) */
- "burz ghash ronk", /* black fire pool */
- INSCRIP_EXEC_ENGRAVE | INSCRIP_EXEC_WALK | INSCRIP_EXEC_MONST_WALK,
- FALSE,
- 60,
- },
-};
-
-/*
- * Inscriptions for pseudo-id
- */
-cptr sense_desc[] =
-{
- "whoops",
- "cursed",
- "average",
- "good",
- "good",
- "excellent",
- "worthless",
- "terrible",
- "special",
- "broken",
- ""
-};
-
-/*
- * Flag groups used for art creation, level gaining weapons, ...
- * -----
- * Name,
- * Price,
- * Flags 1,
- * Flags 2,
- * Flags 3,
- * Flags 4,
- * ESP,
- */
-flags_group flags_groups[MAX_FLAG_GROUP] =
-{
- {
- "Fire",
- TERM_L_RED,
- 1,
- TR1_SLAY_UNDEAD | TR1_BRAND_FIRE,
- TR2_RES_FIRE,
- TR3_SH_FIRE | TR3_LITE1 | TR3_IGNORE_FIRE,
- 0,
- 0,
- },
- {
- "Cold",
- TERM_WHITE,
- 1,
- TR1_SLAY_DRAGON | TR1_SLAY_DEMON | TR1_BRAND_COLD,
- TR2_RES_COLD | TR2_INVIS,
- TR3_SLOW_DIGEST | TR3_IGNORE_COLD,
- 0,
- 0,
- },
- {
- "Acid",
- TERM_GREEN,
- 3,
- TR1_SLAY_ANIMAL | TR1_IMPACT | TR1_TUNNEL | TR1_BRAND_ACID,
- TR2_RES_ACID,
- TR3_IGNORE_ACID,
- 0,
- 0,
- },
- {
- "Lightning",
- TERM_L_BLUE,
- 1,
- TR1_SLAY_EVIL | TR1_BRAND_ELEC,
- TR2_RES_ELEC,
- TR3_IGNORE_ELEC | TR3_SH_ELEC | TR3_TELEPORT,
- 0,
- 0,
- },
- {
- "Poison",
- TERM_L_GREEN,
- 2,
- TR1_CHR | TR1_VAMPIRIC | TR1_SLAY_ANIMAL | TR1_BRAND_POIS,
- TR2_SUST_CHR | TR2_RES_POIS,
- TR3_DRAIN_EXP,
- 0,
- ESP_TROLL | ESP_GIANT,
- },
- {
- "Air",
- TERM_BLUE,
- 5,
- TR1_WIS | TR1_STEALTH | TR1_INFRA | TR1_SPEED,
- TR2_RES_LITE | TR2_RES_DARK | TR2_RES_BLIND | TR2_SUST_WIS,
- TR3_FEATHER | TR3_SEE_INVIS | TR3_BLESSED,
- 0,
- ESP_GOOD,
- },
- {
- "Earth",
- TERM_L_UMBER,
- 5,
- TR1_STR | TR1_CON | TR1_TUNNEL | TR1_BLOWS | TR1_SLAY_TROLL | TR1_SLAY_GIANT | TR1_IMPACT,
- TR2_SUST_STR | TR2_SUST_CON | TR2_FREE_ACT | TR2_RES_FEAR | TR2_RES_SHARDS,
- TR3_REGEN,
- 0,
- ESP_TROLL | ESP_GIANT,
- },
- {
- "Mind",
- TERM_YELLOW,
- 7,
- TR1_INT | TR1_SEARCH,
- TR2_SUST_INT | TR2_RES_CONF | TR2_RES_FEAR,
- 0,
- 0,
- ESP_ORC | ESP_TROLL | ESP_GIANT | ESP_ANIMAL | ESP_UNIQUE | ESP_SPIDER | ESP_DEMON,
- },
- {
- "Shield",
- TERM_RED,
- 7,
- TR1_DEX,
- TR2_SUST_DEX | TR2_INVIS | TR2_REFLECT | TR2_HOLD_LIFE | TR2_RES_SOUND | TR2_RES_NEXUS,
- TR3_REGEN,
- 0,
- 0,
- },
- {
- "Chaos",
- TERM_VIOLET,
- 7,
- TR1_CHAOTIC | TR1_IMPACT,
- TR2_RES_CHAOS | TR2_RES_DISEN,
- TR3_REGEN,
- 0,
- ESP_ALL,
- },
- {
- "Magic",
- TERM_L_BLUE,
- 10,
- TR1_MANA | TR1_SPELL,
- TR2_RES_CHAOS | TR2_RES_DISEN,
- TR3_WRAITH,
- TR4_PRECOGNITION | TR4_FLY | TR4_CLONE,
- 0,
- },
- {
- "Antimagic",
- TERM_L_DARK,
- 10,
- TR1_VAMPIRIC | TR1_CHAOTIC | TR1_BLOWS | TR1_SPEED,
- TR2_LIFE | TR2_REFLECT | TR2_FREE_ACT | TR2_HOLD_LIFE,
- TR3_NO_MAGIC | TR3_NO_TELE | TR3_SEE_INVIS,
- TR4_ANTIMAGIC_10 | TR4_ANTIMAGIC_20,
- 0,
- },
-};
-
-/* Powers */
-power_type powers_type_init[POWER_MAX_INIT] =
-{
- {
- "spit acid",
- "You can spit acid.",
- "You gain the ability to spit acid.",
- "You lose the ability to spit acid.",
- 9, 9, A_DEX, 15,
- },
- {
- "fire breath",
- "You can breath fire.",
- "You gain the ability to breathe fire.",
- "You lose the ability to breathe fire.",
- 20, 10, A_CON, 18,
- },
- {
- "hypnotic gaze",
- "Your gaze is hypnotic.",
- "Your eyes look mesmerising...",
- "Your eyes look uninteresting.",
- 12, 12, A_CHR, 18,
- },
- {
- "telekinesis",
- "You are telekinetic.",
- "You gain the ability to move objects telekinetically.",
- "You lose the ability to move objects telekinetically.",
- 9, 9, A_WIS, 14,
- },
- {
- "teleport",
- "You can teleport at will.",
- "You gain the power of teleportation at will.",
- "You lose the power of teleportation at will.",
- 7, 7, A_WIS, 15,
- },
- {
- "mind blast",
- "You can mind blast your enemies.",
- "You gain the power of Mind Blast.",
- "You lose the power of Mind Blast.",
- 5, 3, A_WIS, 15,
- },
- {
- "emit radiation",
- "You can emit hard radiation at will.",
- "You start emitting hard radiation.",
- "You stop emitting hard radiation.",
- 15, 15, A_CON, 14,
- },
- {
- "vampiric drain",
- "You can drain life from a foe.",
- "You become vampiric.",
- "You are no longer vampiric.",
- 4, 5, A_CON, 9,
- },
- {
- "smell metal",
- "You can smell nearby precious metal.",
- "You smell a metallic odour.",
- "You no longer smell a metallic odour.",
- 3, 2, A_INT, 12,
- },
- {
- "smell monsters",
- "You can smell nearby monsters.",
- "You smell filthy monsters.",
- "You no longer smell filthy monsters.",
- 5, 4, A_INT, 15,
- },
- {
- "blink",
- "You can teleport yourself short distances.",
- "You gain the power of minor teleportation.",
- "You lose the power of minor teleportation.",
- 3, 3, A_WIS, 12,
- },
- {
- "eat rock",
- "You can consume solid rock.",
- "The walls look delicious.",
- "The walls look unappetising.",
- 8, 12, A_CON, 18,
- },
- {
- "swap position",
- "You can switch locations with another being.",
- "You feel like walking a mile in someone else's shoes.",
- "You feel like staying in your own shoes.",
- 15, 12, A_DEX, 16,
- },
- {
- "shriek",
- "You can emit a horrible shriek.",
- "Your vocal cords get much tougher.",
- "Your vocal cords get much weaker.",
- 4, 4, A_CON, 6,
- },
- {
- "illuminate",
- "You can emit bright light.",
- "You can light up rooms with your presence.",
- "You can no longer light up rooms with your presence.",
- 3, 2, A_INT, 10,
- },
- {
- "detect curses",
- "You can feel the danger of evil magic.",
- "You can feel evil magic.",
- "You can no longer feel evil magic.",
- 7, 14, A_WIS, 14,
- },
- {
- "berserk",
- "You can drive yourself into a berserk frenzy.",
- "You feel a controlled rage.",
- "You no longer feel a controlled rage.",
- 8, 8, A_STR, 14,
- },
- {
- "polymorph",
- "You can polymorph yourself at will.",
- "Your body seems mutable.",
- "Your body seems stable.",
- 18, 20, A_CON, 18,
- },
- {
- "Midas touch",
- "You can turn ordinary items to gold.",
- "You gain the Midas touch.",
- "You lose the Midas touch.",
- 10, 5, A_INT, 12,
- },
- {
- "grow mold",
- "You can cause mold to grow near you.",
- "You feel a sudden affinity for mold.",
- "You feel a sudden dislike for mold.",
- 1, 6, A_CON, 14,
- },
- {
- "resist elements",
- "You can harden yourself to the ravages of the elements.",
- "You feel like you can protect yourself.",
- "You feel like you might be vulnerable.",
- 10, 12, A_CON, 12,
- },
- {
- "earthquake",
- "You can bring down the dungeon around your ears.",
- "You gain the ability to wreck the dungeon.",
- "You lose the ability to wreck the dungeon.",
- 12, 12, A_STR, 16,
- },
- {
- "eat magic",
- "You can consume magic energy for your own use.",
- "Your magic items look delicious.",
- "Your magic items no longer look delicious.",
- 17, 1, A_WIS, 15,
- },
- {
- "weigh magic",
- "You can feel the strength of the magics affecting you.",
- "You feel you can better understand the magic around you.",
- "You no longer sense magic.",
- 6, 6, A_INT, 10,
- },
- {
- "sterilise",
- "You can cause mass impotence.",
- "You can give everything around you a headache.",
- "You hear a massed sigh of relief.",
- 20, 40, A_CHR, 18,
- },
- {
- "panic hit",
- "You can run for your life after hitting something.",
- "You suddenly understand how thieves feel.",
- "You no longer feel jumpy.",
- 10, 12, A_DEX, 14,
- },
- {
- "dazzle",
- "You can emit confusing, blinding radiation.",
- "You gain the ability to emit dazzling lights.",
- "You lose the ability to emit dazzling lights.",
- 7, 15, A_CHR, 8,
- },
- {
- "spear of darkness",
- "You can create a spear of darkness.",
- "An illusory spear of darkness appears in your hand.",
- "The spear of darkness disappear.",
- 7, 10, A_WIS, 9,
- },
- {
- "recall",
- "You can travel between towns and the depths.",
- "You feel briefly homesick, but it passes.",
- "You feel briefly homesick.",
- 17, 50, A_INT, 16,
- },
- {
- "banish evil",
- "You can send evil creatures directly to the Nether Realm.",
- "You feel a holy wrath fill you.",
- "You no longer feel a holy wrath.",
- 25, 25, A_WIS, 18,
- },
- {
- "cold touch",
- "You can freeze things with a touch.",
- "Your hands get very cold.",
- "Your hands warm up.",
- 2, 2, A_CON, 11,
- },
- {
- "throw object",
- "You can hurl objects with great force.",
- "Your throwing arm feels much stronger.",
- "Your throwing arm feels much weaker.",
- 1, 10, A_STR, 6,
- },
- {
- "find secret passages",
- "You can use secret passages.",
- "You suddenly notice lots of hidden ways.",
- "You no longer can use hidden ways.",
- 15, 15, A_DEX, 12,
- },
- {
- "detect doors and traps",
- "You can detect hidden doors and traps.",
- "You develop an affinity for traps.",
- "You no longer can detect hidden doors and traps.",
- 5, 3, A_WIS, 10,
- },
- {
- "create food",
- "You can create food.",
- "Your cooking skills greatly improve.",
- "Your cooking skills return to a normal level.",
- 15, 10, A_INT, 10,
- },
- {
- "remove fear",
- "You can embolden yourself.",
- "You feel your fears lessening.",
- "You feel your fears growing again.",
- 3, 5, A_WIS, 8,
- },
- {
- "set explosive rune",
- "You can set explosive runes.",
- "You suddenly understand how explosive runes work.",
- "You suddenly forget how explosive runes work.",
- 25, 35, A_INT, 15,
- },
- {
- "stone to mud",
- "You can destroy walls.",
- "You can destroy walls.",
- "You cannot destroy walls anymore.",
- 20, 10, A_STR, 12,
- },
- {
- "poison dart",
- "You can throw poisoned darts.",
- "You get an infinite supply of poisoned darts.",
- "You lose your infinite supply of poisoned darts.",
- 12, 8, A_DEX, 14,
- },
- {
- "magic missile",
- "You can cast magic missiles.",
- "You suddenly understand the basics of magic.",
- "You forget the basics of magic.",
- 2, 2, A_INT, 9,
- },
- {
- "grow trees",
- "You can grow trees.",
- "You feel an affinity for trees.",
- "You no longer feel an affinity for trees.",
- 2, 6, A_CHR, 3,
- },
- {
- "cold breath",
- "You can breath cold.",
- "You gain the ability to breathe cold.",
- "You lose the ability to breathe cold.",
- 20, 10, A_CON, 18,
- },
- {
- "chaos breath",
- "You can breath chaos.",
- "You gain the ability to breathe chaos.",
- "You lose the ability to breathe chaos.",
- 20, 10, A_CON, 18,
- },
- {
- "elemental breath",
- "You can breath the elements.",
- "You gain the ability to breathe the elements.",
- "You lose the ability to breathe the elements.",
- 20, 10, A_CON, 18,
- },
- {
- "change the world",
- "You can wreck the world around you.",
- "You gain the ability to wreck the world.",
- "You lose the ability to wreck the world.",
- 1, 30, A_CHR, 6,
- },
- {
- "scare monster",
- "You can scare monsters.",
- "You gain the ability to scare monsters.",
- "You lose the ability to scare monsters.",
- 4, 3, A_INT, 3,
- },
- {
- "restore life",
- "You can restore lost life forces.",
- "You gain the ability to restore your life force.",
- "You lose the ability to restore your life force.",
- 30, 30, A_WIS, 18,
- },
- {
- "summon monsters",
- "You can call upon monsters.",
- "You gain the ability to call upon monsters.",
- "You lose the ability to call upon monsters.",
- 0, 0, 0, 0,
- },
- {
- "necromantic powers",
- "You can use the foul necromantic magic.",
- "You gain the ability to use the foul necromantic magic.",
- "You lose the ability to use the foul necromantic magic.",
- 0, 0, 0, 0,
- },
- {
- "Rohan Knight's Powers",
- "You can use rohir powers.",
- "You gain the ability to use rohir powers.",
- "You lose the ability to use rohir powers.",
- 0, 0, 0, 0,
- },
- {
- "Thunderlord's Powers",
- "You can use thunderlords powers.",
- "You gain the ability to use thunderlords powers.",
- "You lose the ability to use thunderlords powers.",
- 0, 0, 0, 0,
- },
- {
- "Death Mold's Powers",
- "You can use the foul deathmold magic.",
- "You gain the ability to use the foul deathmold magic.",
- "You lose the ability to use the foul deathmold magic.",
- 0, 0, 0, 0,
- },
- {
- "Hypnotise Pet",
- "You can mystify pets.",
- "You gain the ability to mystify pets.",
- "You lose the ability to mystify pets.",
- 0, 0, 0, 0,
- },
- {
- "Awaken Hypnotised Pet",
- "You can wake up a pet.",
- "You gain the ability to wake up a pet.",
- "You lose the ability to wake up a pet.",
- 0, 0, 0, 0,
- },
- {
- "Incarnate",
- "You can incarnate into a body.",
- "You feel the need to get a body.",
- "You no longer feel the need for a new body.",
- 0, 0, 0, 0,
- },
- {
- "magic map",
- "You can sense what is beyond walls.",
- "You feel you can sense what is beyond walls.",
- "You no longer can sense what is beyond walls.",
- 7, 10, A_WIS, 15,
- },
- {
- "lay trap",
- "You can lay monster traps.",
- "You suddenly understand how rogues work.",
- "You no longer understand how rogues work.",
- 1, 1, A_DEX, 1,
- },
- {
- "Merchant abilities",
- "You can request items and get loans.",
- "From now on you can use the merchant abilities.",
- "You can no longer use the merchant abilities.",
- 0, 0, 0, 0,
- },
- {
- "turn pet into companion",
- "You can turn a pet into a companion.",
- "You suddenly gain authority over your pets.",
- "You can no longer convert pets into companions.",
- 2, 10, A_CHR, 10,
- },
- {
- "turn into a bear",
- "You can turn into a bear.",
- "You suddenly gain beorning powers.",
- "You can no longer shapeshift into a bear.",
- 2, 5, A_CON, 5,
- },
- {
- "sense dodge success",
- "You can sense your dodging success chance.",
- "You suddenly can sense your dodging success chance.",
- "You can no longer sense your dodging success chance.",
- 0, 0, 0, 0,
- },
- {
- "turn into a Balrog",
- "You can turn into a Balrog at will.",
- "You feel the fire of Udun burning in you.",
- "You no longer feel the fire of Udun in you.",
- 35, 80, A_WIS, 25,
- },
-};
-
-/*
- * The Quests
- */
-quest_type quest_init_tome[MAX_Q_IDX_INIT] =
-{
- {
- FALSE,
- FALSE,
- "",
- {
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 0,
-
- NULL,
- HOOK_TYPE_C,
- quest_null_hook,
- {0, 0},
- NULL,
- },
- {
- FALSE,
- FALSE,
- "Dol Guldur",
- {
- "The forest of Mirkwood is a very dangerous place to go, mainly due to",
- "the activities of the Necromancer that lurks in Dol Guldur.",
- "Find him, and free Mirkwood from his spells.",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_TAKEN,
- 70,
-
- &plots[PLOT_MAIN],
- HOOK_TYPE_C,
- quest_necro_init_hook,
- {0, 0},
- NULL,
- },
- {
- FALSE,
- FALSE,
- "Sauron",
- {
- "It is time to take the battle to Morgoth. But, before you can",
- "reach it, you must find and kill Sauron. Only after defeating",
- "this powerful sorcerer will the stairs leading to Morgoth's",
- "room be opened.",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 99,
-
- &plots[PLOT_MAIN],
- HOOK_TYPE_C,
- quest_sauron_init_hook,
- {0, 0},
- NULL,
- },
- {
- FALSE,
- FALSE,
- "Morgoth",
- {
- "Your final quest is the ultimate quest that has always been",
- "required of you. You must enter the fetid depths of Angband, where",
- "Morgoth is waiting. Travel deep, and defeat this source of all our",
- "problems. Be prepared, be patient, and good luck. May the light",
- "shine on you.",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 100,
-
- &plots[PLOT_MAIN],
- HOOK_TYPE_C,
- quest_morgoth_init_hook,
- {0, 0},
- NULL,
- },
-
- /* Bree plot */
- {
- FALSE,
- FALSE,
- "Thieves!",
- {
- "There are thieves robbing my people! They live in a small",
- "burrow outside the city walls, but they get inside the walls",
- "with a tunnel to a building here! Your task is to go into",
- "the building and kill these ruffians.",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 5,
-
- &plots[PLOT_BREE],
- HOOK_TYPE_C,
- quest_thieves_init_hook,
- {0, 0},
- NULL,
- },
-
- {
- FALSE,
- TRUE,
- "Random Quest",
- {
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 5,
-
- NULL,
- HOOK_TYPE_C,
- quest_random_init_hook,
- {0, 0},
- quest_random_describe,
- },
-
- {
- FALSE,
- FALSE,
- "Lost Hobbit",
- {
- "Merton Proudfoot, a young hobbit, seems to have disappeared.",
- "Last time anyone saw him was near the horrible maze to the south of Bree.",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 25,
-
- &plots[PLOT_OTHER],
- HOOK_TYPE_C,
- quest_hobbit_init_hook,
- {0, 0},
- NULL,
- },
-
- {
- FALSE,
- FALSE,
- "The Dark Horseman",
- {
- "A dark-cloaked horseman has been spotted several times in town.",
- "He carries an aura of fear with him and people seem to get sick",
- "wherever he goes. Please do something, but be careful...",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 40,
-
- &plots[PLOT_BREE],
- HOOK_TYPE_C,
- quest_nazgul_init_hook,
- {0, 0},
- NULL,
- },
-
- {
- FALSE,
- FALSE,
- "The Trolls Glade",
- {
- "A group of Forest Trolls settled in an abandoned forest in the",
- "south east of our town. They are killing our people. You must",
- "put an end to this! It might be best to look for them at night.",
- "Local hobbits claim that the mighty swords Orcrist and Glamdring",
- "can be found there! Bring back one of them as a proof!",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 30,
-
- &plots[PLOT_BREE],
- HOOK_TYPE_C,
- quest_troll_init_hook,
- {FALSE, 0},
- NULL,
- },
-
- {
- FALSE,
- FALSE,
- "The Wight Grave",
- {
- "The Barrow-Downs hides many mysteries and dangers.",
- "Lately many people, both men and hobbits, have disappeared there.",
- "Please put an end to this threat!",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 30,
-
- &plots[PLOT_BREE],
- HOOK_TYPE_C,
- quest_wight_init_hook,
- {FALSE, 0},
- NULL,
- },
-
- /* Lorien plot */
- {
- FALSE,
- FALSE,
- "Spiders of Mirkwood",
- {
- "Powers lurk deep within Mirkwood. Spiders have blocked the",
- "path through the forest, and Thranduil's folk have been",
- "unable to hold them off. It is your task to drive them",
- "away. Be careful -- many traps have been laid by their",
- "webs, and their venom is dangerous indeed.",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 25,
-
- &plots[PLOT_LORIEN],
- HOOK_TYPE_C,
- quest_spider_init_hook,
- {0, 0},
- NULL,
- },
- {
- FALSE,
- FALSE,
- "Poisoned Water",
- {
- "A curse has beset Lothlorien. All trees along the shorelines of Nimrodel",
- "are withering away. We fear the blight could spread to the whole forest.",
- "The cause seems to be an unknown poison. You are to go to the West and",
- "travel along Celebrant and Nimrodel until you discover the source of",
- "the poisoning. Then you must destroy it and drop these potions on",
- "the tainted water.",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 30,
-
- &plots[PLOT_LORIEN],
- HOOK_TYPE_C,
- quest_poison_init_hook,
- {0, 0},
- NULL,
- },
- /* Other quests */
- {
- FALSE,
- FALSE,
- "The Broken Sword",
- {
- "You have found Narsil, a broken sword. It is said that the sword that",
- "was broken shall be reforged... Maybe it is this one.",
- "You should bring it to Aragorn at Minas Anor -- he would know.",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 20,
-
- &plots[PLOT_OTHER],
- HOOK_TYPE_C,
- quest_narsil_init_hook,
- {0, 0},
- NULL,
- },
- /* Gondolin plot */
- {
- FALSE,
- FALSE,
- "Eol the Dark Elf",
- {
- "We have disturbing tidings. Eol the Dark Elf has come seeking his kin in",
- "Gondolin. We cannot let anyone pass the borders of the city without the",
- "King's leave. Go forth to the eastern mountains and apprehend him. If",
- "he resists, use whatever means possible to hinder him from reaching the",
- "city. Be wary -- the mountain caves may have many hidden traps.",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 30,
-
- &plots[PLOT_GONDOLIN],
- HOOK_TYPE_C,
- quest_eol_init_hook,
- {0, 0},
- NULL,
- },
- {
- FALSE,
- FALSE,
- "Nirnaeth Arnoediad",
- {
- "The fortunes of war in the north turn against us.",
- "Morgoth's treachery has driven our armies back nigh",
- "to the city's walls. Go forth from the city gates",
- "and clear a path for them to retreat. You need not",
- "destroy the troll army, simply drive a path through.",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 37,
-
- &plots[PLOT_GONDOLIN],
- HOOK_TYPE_C,
- quest_nirnaeth_init_hook,
- {0, 0},
- NULL,
- },
- {
- FALSE,
- FALSE,
- "Invasion of Gondolin",
- {
- "Morgoth is upon us! Dragons and Balrogs have poured over secret",
- "ways of the Echoriath, and are looking for our city. They are",
- "conducted by Maeglin! You must stop him or they will find us.",
- "Do not let Maeglin get to the stairs or everything will be lost!",
- "Go now, be brave.",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 80,
-
- &plots[PLOT_GONDOLIN],
- HOOK_TYPE_C,
- quest_invasion_init_hook,
- {0, 0},
- NULL,
- },
- /* Minas Anor Plot*/
- {
- FALSE,
- FALSE,
- "The Last Alliance",
- {
- "The armies of Morgoth are closing in on the last remaining strongholds",
- "of resistance against him. We are too far apart to help each other.",
- "The arrival of our new Thunderlord allies has helped, but can only delay",
- "the inevitable. We must be able to stand together and reinforce each other,",
- "or both our kingdoms will fall separately. The Thunderlords have taught us",
- "how to use the Void Jumpgates: we need you to open a Void Jumpgate in our",
- "own city, and that of Gondolin.",
- "Simply travel to Gondolin, but beware of rebel thunderlords.",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 80,
-
- &plots[PLOT_MINAS],
- HOOK_TYPE_C,
- quest_between_init_hook,
- {0, 0},
- NULL,
- },
- {
- FALSE,
- FALSE,
- "The One Ring",
- {
- "Find the One Ring, then bring it to Mount Doom, in Mordor, to drop",
- "it in the Great Fire where it was once forged.",
- "But beware: *NEVER* use it, or you will be corrupted.",
- "Once it is destroyed you will be able to permanently defeat Sauron.",
- "The ring must be cast back into the fires of Mount Doom!",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 99,
-
- &plots[PLOT_MAIN],
- HOOK_TYPE_C,
- quest_one_init_hook,
- {0, 0},
- NULL,
- },
-
- {
- FALSE,
- FALSE,
- "Mushroom supplies",
- {
- "Farmer Maggot asked you to bring him back his mushrooms.",
- "Do not harm his dogs.",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 3,
-
- &plots[PLOT_OTHER],
- HOOK_TYPE_C,
- quest_shroom_init_hook,
- {0, 0},
- NULL,
- },
-
- {
- FALSE,
- FALSE,
- "The prisoner of Dol Guldur",
- {
- "You keep hearing distress cries in the dark tower of",
- "Dol Guldur...",
- "Maybe there is someone being held prisoner and tortured!",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 60,
-
- &plots[PLOT_OTHER],
- HOOK_TYPE_C,
- quest_thrain_init_hook,
- {0, 0},
- NULL,
- },
-
- /* The 2 ultra endings go here */
- {
- FALSE,
- FALSE,
- "Falling Toward Apotheosis",
- {
- "You must enter the Void where Melkor spirit lurks to destroy",
- "him forever. Remember however that it is likely to be your own",
- "death that awaits you.",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 150,
-
- &plots[PLOT_MAIN],
- HOOK_TYPE_C,
- quest_ultra_good_init_hook,
- {0, 0},
- NULL,
- },
- {
- FALSE,
- FALSE,
- "Falling Toward Apotheosis",
- {
- "You must now launch an onslaught on Valinor itself to eliminate",
- "once and for all any posible resistance to your dominance of Arda.",
- "Remember however that it is likely to be your own death that awaits you.",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 150,
-
- &plots[PLOT_MAIN],
- HOOK_TYPE_C,
- quest_ultra_evil_init_hook,
- {0, 0},
- NULL,
- },
- /* More Lorien */
- {
- FALSE,
- FALSE,
- "Wolves!",
- {
- "There are wolves pestering my people! They gather in a hut",
- "on the edge of town and menace everyone nearby. Your task",
- "is to go in there and clear them out.",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 15,
-
- &plots[PLOT_LORIEN],
- HOOK_TYPE_C,
- quest_wolves_init_hook,
- {0, 0},
- NULL,
- },
- /* More Gondolin */
- {
- FALSE,
- FALSE,
- "Dragons!",
- {
- "There are dragons pestering my people! They gather in a",
- "building on the edge of town and menace everyone nearby.",
- "Your task is to go into the building and clear them out.",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 25,
-
- &plots[PLOT_GONDOLIN],
- HOOK_TYPE_C,
- quest_dragons_init_hook,
- {0, 0},
- NULL,
- },
- /* More Minas Anor */
- {
- FALSE,
- FALSE,
- "Haunted House!",
- {
- "There are undead pestering my people! They gather in a hut",
- "on the edge of town and menace everyone nearby. Your task",
- "is to go into the building and clear out the beasts.",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 45,
-
- &plots[PLOT_MINAS],
- HOOK_TYPE_C,
- quest_haunted_init_hook,
- {0, 0},
- NULL,
- },
- /* Khazad-Dum Plot*/
- {
- FALSE,
- FALSE,
- "Evil!",
- {
- "We have burrowed too deep, and let out some creatures of",
- "Morgoth's that threaten to kill us all! Your task is to save us",
- "from them!",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- },
- QUEST_STATUS_UNTAKEN,
- 60,
-
- &plots[PLOT_KHAZAD],
- HOOK_TYPE_C,
- quest_evil_init_hook,
- {0, 0},
- NULL,
- },
-};
-
-
-/* List of powers for Symbiants/Powers */
-monster_power monster_powers[96] =
- {
- { RF4_SHRIEK, "Aggravate Monster", 1, FALSE },
- { RF4_MULTIPLY, "Multiply", 10, FALSE },
- { RF4_S_ANIMAL, "Summon Animal", 30, FALSE },
- { RF4_ROCKET, "Fire a Rocket", 40, TRUE },
- { RF4_ARROW_1, "Light Arrow", 1, FALSE },
- { RF4_ARROW_2, "Minor Arrow", 3, FALSE },
- { RF4_ARROW_3, "Major Arrow", 7, TRUE },
- { RF4_ARROW_4, "Great Arrow", 9, TRUE },
- { RF4_BR_ACID, "Breathe Acid", 10, FALSE },
- { RF4_BR_ELEC, "Breathe Lightning", 10, FALSE },
- { RF4_BR_FIRE, "Breathe Fire", 10, FALSE },
- { RF4_BR_COLD, "Breathe Cold", 10, FALSE },
- { RF4_BR_POIS, "Breathe Poison", 15, TRUE },
- { RF4_BR_NETH, "Breathe Nether", 30, TRUE },
- { RF4_BR_LITE, "Breathe Light", 20, TRUE },
- { RF4_BR_DARK, "Breathe Dark", 20, TRUE },
- { RF4_BR_CONF, "Breathe Confusion", 15, TRUE },
- { RF4_BR_SOUN, "Breathe Sound", 30, TRUE },
- { RF4_BR_CHAO, "Breathe Chaos", 30, TRUE },
- { RF4_BR_DISE, "Breathe Disenchantment", 30, TRUE },
- { RF4_BR_NEXU, "Breathe Nexus", 30, TRUE },
- { RF4_BR_TIME, "Breathe Time", 30, TRUE },
- { RF4_BR_INER, "Breathe Inertia", 30, TRUE },
- { RF4_BR_GRAV, "Breathe Gravity", 30, TRUE },
- { RF4_BR_SHAR, "Breathe Shards", 30, TRUE },
- { RF4_BR_PLAS, "Breathe Plasma", 30, TRUE },
- { RF4_BR_WALL, "Breathe Force", 30, TRUE },
- { RF4_BR_MANA, "Breathe Mana", 40, TRUE },
- { RF4_BA_NUKE, "Nuke Ball", 30, TRUE },
- { RF4_BR_NUKE, "Breathe Nuke", 40, TRUE },
- { RF4_BA_CHAO, "Chaos Ball", 30, TRUE },
- { RF4_BR_DISI, "Breathe Disintegration", 40, TRUE },
-
- { RF5_BA_ACID, "Acid Ball", 8, FALSE },
- { RF5_BA_ELEC, "Lightning Ball", 8, FALSE },
- { RF5_BA_FIRE, "Fire Ball", 8, FALSE },
- { RF5_BA_COLD, "Cold Ball", 8, FALSE },
- { RF5_BA_POIS, "Poison Ball", 20, TRUE },
- { RF5_BA_NETH, "Nether Ball", 20, TRUE },
- { RF5_BA_WATE, "Water Ball", 20, TRUE },
- { RF5_BA_MANA, "Mana Ball", 50, TRUE },
- { RF5_BA_DARK, "Darkness Ball", 20, TRUE },
- { 0, "(none)", 0, FALSE },
- { 0, "(none)", 0, FALSE },
- { 0, "(none)", 0, FALSE },
- { RF5_CAUSE_1, "Cause Light Wounds", 20, FALSE },
- { RF5_CAUSE_2, "Cause Medium Wounds", 30, FALSE },
- { RF5_CAUSE_3, "Cause Critical Wounds", 35, TRUE },
- { RF5_CAUSE_4, "Cause Mortal Wounds", 45, TRUE },
- { RF5_BO_ACID, "Acid Bolt", 5, FALSE },
- { RF5_BO_ELEC, "Lightning Bolt", 5, FALSE },
- { RF5_BO_FIRE, "Fire Bolt", 5, FALSE },
- { RF5_BO_COLD, "Cold Bolt", 5, FALSE },
- { RF5_BO_POIS, "Poison Bolt", 10, TRUE },
- { RF5_BO_NETH, "Nether Bolt", 15, TRUE },
- { RF5_BO_WATE, "Water Bolt", 20, TRUE },
- { RF5_BO_MANA, "Mana Bolt", 25, TRUE },
- { RF5_BO_PLAS, "Plasma Bolt", 20, TRUE },
- { RF5_BO_ICEE, "Ice Bolt", 20, TRUE },
- { RF5_MISSILE, "Magic Missile", 1, FALSE },
- { RF5_SCARE, "Scare", 4, FALSE },
- { RF5_BLIND, "Blindness", 6, FALSE },
- { RF5_CONF, "Confusion", 7, FALSE },
- { RF5_SLOW, "Slowness", 10, FALSE },
- { RF5_HOLD, "Paralyse", 10, FALSE },
-
- { RF6_HASTE, "Haste Self", 50, FALSE },
- { RF6_HAND_DOOM, "Hand of Doom", 30, TRUE },
- { RF6_HEAL, "Healing", 60, FALSE },
- { RF6_S_ANIMALS, "Summon Animals", 60, TRUE },
- { RF6_BLINK, "Phase Door", 2, FALSE },
- { RF6_TPORT, "Teleport", 10, FALSE },
- { RF6_TELE_TO, "Teleport To", 20, TRUE },
- { RF6_TELE_AWAY, "Teleport Away", 20, FALSE },
- { RF6_TELE_LEVEL, "Teleport Level", 20, TRUE },
- { RF6_DARKNESS, "Darkness", 3, FALSE },
- { RF6_TRAPS, "Create Traps", 10, TRUE },
- { 0, "(none)", 0, FALSE },
- { RF6_RAISE_DEAD, "Raise the Dead", 400, TRUE },
- { 0, "(none)", 0, FALSE },
- { 0, "(none)", 0, FALSE },
- { RF6_S_THUNDERLORD, "Summon Thunderlords", 90, TRUE },
- { RF6_S_KIN, "Summon Kin", 80, FALSE },
- { RF6_S_HI_DEMON, "Summon Greater Demons", 90, TRUE },
- { RF6_S_MONSTER, "Summon Monster", 50, FALSE },
- { RF6_S_MONSTERS, "Summon Monsters", 60, TRUE },
- { RF6_S_ANT, "Summon Ants", 30, FALSE },
- { RF6_S_SPIDER, "Summon Spider", 30, FALSE },
- { RF6_S_HOUND, "Summon Hound", 50, TRUE },
- { RF6_S_HYDRA, "Summon Hydra", 40, TRUE },
- { RF6_S_ANGEL, "Summon Angel", 60, TRUE },
- { RF6_S_DEMON, "Summon Demon", 60, TRUE },
- { RF6_S_UNDEAD, "Summon Undead", 70, TRUE },
- { RF6_S_DRAGON, "Summon Dragon", 70, TRUE },
- { RF6_S_HI_UNDEAD, "Summon High Undead", 90, TRUE },
- { RF6_S_HI_DRAGON, "Summon High Dragon", 90, TRUE },
- { RF6_S_WRAITH, "Summon Wraith", 90, TRUE },
- { 0, "(none)", 0, FALSE },
- };
-
-/* Tval descriptions */
-tval_desc tval_descs[] =
-{
- {
- TV_BATERIE,
- "Essences contain primitive magic forces which users of the "
- "Alchemy skill can use to create powerful magic items from "
- "other magic items."
- },
- {
- TV_MSTAFF,
- "Mage Staves are the spellcaster's weapons of choice. "
- "They all reduce spellcasting time to 80% of "
- "normal time and some will yield even greater powers."
- },
- {
- 3,
- "XXX"
- },
- {
- TV_PARCHMENT,
- "Parchments can contain useful information ... or useless "
- "junk."
- },
- {
- TV_EGG,
- "Eggs are laid by some monsters. If they hatch in your "
- "inventory the monster will be your friend."
- },
- {
- TV_TOOL,
- "Tools can be digging implements, climbing equipment and such. "
- "They have their own slot in your inventory."
-
- },
- {
- TV_INSTRUMENT,
- "Musical instruments can be used with the Music skill to play "
- "magical songs. Some of them can also be activated."
- },
- {
- TV_BOOMERANG,
- "Boomerangs can be used instead of bows or slings. They "
- "are more like melee weapons than bows."
- },
- {
- TV_SHOT,
- "Shots are small, hard balls. They are the standard ammunition "
- "for slings. You can carry them in your quiver if you have a sling "
- "equipped."
- },
- {
- TV_ARROW,
- "Arrows are the standard ammunition for bows. You can carry "
- "them in your quiver if you have a bow equipped."
- },
- {
- TV_BOLT,
- "Bolts are the standard ammunition for crossbows. You can "
- "carry them in your quiver if you have a crossbow equipped."
- },
- {
- TV_BOW,
- "Slings, bows and crossbows are used to attack monsters "
- "from a distance."
- },
- {
- TV_DIGGING,
- "Tools can be digging implements, climbing equipment and such. "
- "They have their own slot in your inventory."
- },
- {
- TV_HAFTED,
- "Hafted weapons are melee weapons. Eru followers can use them "
- "without penalties."
- },
- {
- TV_SWORD,
- "Swords are melee weapons."
- },
- {
- TV_AXE,
- "Axes are melee weapons."
- },
- {
- TV_POLEARM,
- "Polearms are melee weapons."
- },
- {
- TV_DRAG_ARMOR,
- "Dragon armour is made from the scales of dead dragons. "
- "These mighty sets of armour usually yield great power to "
- "their wearer."
- },
- {
- TV_LITE,
- "Lights allow you to read things and see from afar. Some of "
- "them need to be fueled but some do not."
- },
- {
- TV_AMULET,
- "Amulets are fine pieces of jewelry, usually imbued with "
- "arcane magics."
- },
- {
- TV_RING,
- "Rings are fine pieces of jewelry, usually imbued with "
- "arcane magics."
- },
- {
- TV_TRAPKIT,
- "Trapping kits are used with the trapping ability to set "
- "deadly monster traps."
- },
- {
- TV_STAFF,
- "Staves are objects imbued with mystical powers."
- },
- {
- TV_WAND,
- "Wands are like small staves and usually have a targeted "
- "effect."
- },
- {
- TV_ROD,
- "Rod tips are the physical bindings of powerful "
- "spells. Zap (attach) them to a rod to get a fully "
- "functional rod. Each spell takes some mana from the rod "
- "it is attached to to work."
- },
- {
- TV_ROD_MAIN,
- "Rods contain mana reserves used to cast spells in rod "
- "tips. Zap (attach) a rod tip to them to get a fully "
- "functional rod. Each spell takes some mana from the rod "
- "it is attached to to work."
- },
- {
- TV_SCROLL,
- "Scrolls are magical parchments imbued with magic spells. "
- "Some are good, some...are not. When a scroll is read, its "
- "magic is released and the scroll is destroyed."
- },
- {
- TV_POTION,
- "Potions are magical liquids. Some of them are "
- "beneficial...some not."
- },
- {
- TV_POTION2,
- "Potions are magical liquids. Some of them are "
- "beneficial...some not."
- },
- {
- TV_FLASK,
- "Flasks of oil can be used to refill lanterns."
- },
- {
- TV_FOOD,
- "Everybody needs to eat, even you."
- },
- {
- TV_HYPNOS,
- "This monster seems to be hypnotised and friendly."
- },
- {
- TV_RANDART,
- "Those objects are only known of by rumours. It is said that "
- "they can be activated for great or strange effects..."
- },
- {
- TV_RUNE1,
- "Runes are used with the Runecraft skill to create brand new spells."
- },
- {
- TV_RUNE2,
- "Runes are used with the Runecraft skill to create brand new spells."
- },
- {
- TV_JUNK,
- "Junk is usually worthless, though experienced archers can "
- "create ammo with them."
- },
- {
- TV_SKELETON,
- "It looks dead..."
- },
- {
- TV_BOTTLE,
- "An empty bottle. Maybe an alchemist could refill it."
- },
- {
- TV_SPIKE,
- "Spikes can be used to jam doors."
- },
- {
- TV_CORPSE,
- "It looks dead..."
- },
- {
- TV_BOOTS,
- "Boots can help your armour rating. Some of these are magical."
- },
- {
- TV_GLOVES,
- "Handgear is used to protect hands, but nonmagical ones "
- "can sometimes hinder spellcasting. Alchemists need "
- "gloves in order to do alchemy."
- },
- {
- TV_HELM,
- "Headgear will protect your head."
- },
- {
- TV_CROWN,
- "Headgear will protect your head."
- },
- {
- TV_SHIELD,
- "Shields will help improve your defence rating, but you "
- "cannot use them with two handed weapons."
- },
- {
- TV_CLOAK,
- "Cloaks can shield you from damage. Sometimes they also "
- "provide magical powers."
- },
- {
- TV_SOFT_ARMOR,
- "Soft armour is light, and will not hinder your combat much."
- },
- {
- TV_HARD_ARMOR,
- "Hard armour provides much more protection than soft "
- "armour but also hinders combat much more."
- },
- {
- TV_SYMBIOTIC_BOOK,
- "This mystical book is used by symbiants to extend their "
- "symbiosis."
- },
- {
- TV_MUSIC_BOOK,
- "This song book is used by bards to play songs."
- },
- {
- TV_DRUID_BOOK,
- "This mystical book is used by druids to call upon the "
- "powers of nature."
- },
- {
- TV_DAEMON_BOOK,
- "This unholy demon equipment is used with the Demonology skill to control "
- "the school of demon power."
- },
- {0, ""},
-};
-
-/*
- * List of the between exits
- * s16b corresp; Corresponding between gate
- * bool_ dungeon; Do we exit in a dungeon or in the wild ?
- *
- * s16b wild_x, wild_y; Wilderness spot to land onto
- * s16b p_ptr->px, p_ptr->py; Location of the map
- *
- * s16b d_idx; Dungeon to land onto
- * s16b level;
- */
-between_exit between_exits[MAX_BETWEEN_EXITS] =
-{
- {
- 1,
- FALSE,
- 49, 11,
- 119, 25,
- 0, 0
- },
- {
- 0,
- FALSE,
- 60, 56,
- 10, 35,
- 0, 0
- },
-};
-
-/*
- * Months
- */
-int month_day[9] =
-{
- 0, /* 1 day */
-
- 1, /* 54 days */
- 55, /* 72 days */
- 127, /* 54 days */
-
- 181, /* 3 days */
-
- 184, /* 54 days */
- 238, /* 72 days */
- 310, /* 54 days */
-
- 364, /* 1 day */
-};
-
-cptr month_name[9] =
-{
- "Yestare",
-
- "Tuile",
- "Laire",
- "Yavie",
-
- "Enderi",
-
- "Quelle",
- "Hrive",
- "Coire",
-
- "Mettare",
-};
-
-/*
- * max body parts
- */
-int max_body_part[BODY_MAX] =
-{
- 3, /* Weapon */
- 1, /* Torso */
- 3, /* Arms */
- 6, /* Finger */
- 2, /* Head */
- 2, /* Legs */
-};
-
-/*
- * Description of GF_FOO
- */
-gf_name_type gf_names[] =
-{
- { GF_ELEC, "electricity" },
- { GF_POIS, "poison" },
- { GF_ACID, "acid" },
- { GF_COLD, "cold" },
- { GF_FIRE, "fire" },
- { GF_UNBREATH, "asphyxiating gas" },
- { GF_CORPSE_EXPL, "corpse explosion" },
- { GF_MISSILE, "missile" },
- { GF_ARROW, "arrow" },
- { GF_PLASMA, "plasma" },
- { GF_WAVE, "a tidal wave" },
- { GF_WATER, "water" },
- { GF_LITE, "light" },
- { GF_DARK, "darkness" },
- { GF_LITE_WEAK, "weak light" },
- { GF_DARK_WEAK, "weak darkness" },
- { GF_SHARDS, "shards" },
- { GF_SOUND, "sound" },
- { GF_CONFUSION, "confusion" },
- { GF_FORCE, "force" },
- { GF_INERTIA, "inertia" },
- { GF_MANA, "pure mana" },
- { GF_METEOR, "meteor" },
- { GF_ICE, "ice" },
- { GF_CHAOS, "chaos" },
- { GF_NETHER, "nether" },
- { GF_DISENCHANT, "disenchantment" },
- { GF_NEXUS, "nexus" },
- { GF_TIME, "time" },
- { GF_GRAVITY, "gravity" },
- { GF_KILL_WALL, "wall destruction" },
- { GF_KILL_DOOR, "door destruction" },
- { GF_KILL_TRAP, "trap destruction" },
- { GF_MAKE_WALL, "wall creation" },
- { GF_MAKE_DOOR, "door creation" },
- { GF_MAKE_TRAP, "trap creation" },
- { GF_OLD_CLONE, "clone" },
- { GF_OLD_POLY, "polymorph" },
- { GF_OLD_HEAL, "healing" },
- { GF_OLD_SPEED, "speed" },
- { GF_OLD_SLOW, "slowness" },
- { GF_OLD_CONF, "confusion" },
- { GF_OLD_SLEEP, "sleep" },
- { GF_OLD_DRAIN, "drain life" },
- { GF_AWAY_UNDEAD, "teleport away undead" },
- { GF_AWAY_EVIL, "teleport away evil" },
- { GF_AWAY_ALL, "teleport away" },
- { GF_TURN_UNDEAD, "scare undead" },
- { GF_TURN_EVIL, "scare evil" },
- { GF_TURN_ALL, "scare" },
- { GF_DISP_UNDEAD, "dispel undead" },
- { GF_DISP_EVIL, "dispel evil" },
- { GF_DISP_ALL, "dispel" },
- { GF_DISP_DEMON, "dispel demons" },
- { GF_DISP_LIVING, "dispel living creatures" },
- { GF_ROCKET, "rocket" },
- { GF_NUKE, "nuke" },
- { GF_MAKE_GLYPH, "glyph creation" },
- { GF_STASIS, "stasis" },
- { GF_STONE_WALL, "stone wall creation" },
- { GF_DEATH_RAY, "death ray" },
- { GF_STUN, "stunning" },
- { GF_HOLY_FIRE, "holy fire" },
- { GF_HELL_FIRE, "hellfire" },
- { GF_DISINTEGRATE, "disintegration" },
- { GF_CHARM, "charming" },
- { GF_CONTROL_UNDEAD, "undead control" },
- { GF_CONTROL_ANIMAL, "animal control" },
- { GF_PSI, "psionic energy" },
- { GF_PSI_DRAIN, "psionic drain" },
- { GF_TELEKINESIS, "telekinesis" },
- { GF_JAM_DOOR, "door jamming" },
- { GF_DOMINATION, "domination" },
- { GF_DISP_GOOD, "dispel good" },
- { GF_IDENTIFY, "identification" },
- { GF_RAISE, "raise dead" },
- { GF_STAR_IDENTIFY, "*identification*" },
- { GF_DESTRUCTION, "destruction" },
- { GF_STUN_CONF, "stunning and confusion" },
- { GF_STUN_DAM, "stunning and damage" },
- { GF_CONF_DAM, "confusion and damage" },
- { GF_STAR_CHARM, "*charming*" },
- { GF_IMPLOSION, "implosion" },
- { GF_LAVA_FLOW, "lava" },
- { GF_FEAR, "fear" },
- { GF_BETWEEN_GATE, "jumpgate creation" },
- { GF_WINDS_MANA, "" },
- { GF_DEATH, "death" },
- { GF_CONTROL_DEMON, "control demon" },
- { GF_RAISE_DEMON, "raise demon" },
- { GF_TRAP_DEMONSOUL, "*control demon*" },
- { GF_ATTACK, "projected melee attacks" },
- { -1, NULL },
-};