hack.shknam.c revision 1.5 1 1.5 jsm /* $NetBSD: hack.shknam.c,v 1.5 2001/03/25 20:44:03 jsm Exp $ */
2 1.4 christos
3 1.2 mycroft /*
4 1.2 mycroft * Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985.
5 1.2 mycroft */
6 1.2 mycroft
7 1.4 christos #include <sys/cdefs.h>
8 1.2 mycroft #ifndef lint
9 1.5 jsm __RCSID("$NetBSD: hack.shknam.c,v 1.5 2001/03/25 20:44:03 jsm Exp $");
10 1.4 christos #endif /* not lint */
11 1.1 cgd
12 1.1 cgd #include "hack.h"
13 1.4 christos #include "extern.h"
14 1.1 cgd
15 1.5 jsm const char *const shkliquors[] = {
16 1.1 cgd /* Ukraine */
17 1.1 cgd "Njezjin", "Tsjernigof", "Gomel", "Ossipewsk", "Gorlowka",
18 1.1 cgd /* N. Russia */
19 1.1 cgd "Konosja", "Weliki Oestjoeg", "Syktywkar", "Sablja",
20 1.1 cgd "Narodnaja", "Kyzyl",
21 1.1 cgd /* Silezie */
22 1.1 cgd "Walbrzych", "Swidnica", "Klodzko", "Raciborz", "Gliwice",
23 1.1 cgd "Brzeg", "Krnov", "Hradec Kralove",
24 1.1 cgd /* Schweiz */
25 1.1 cgd "Leuk", "Brig", "Brienz", "Thun", "Sarnen", "Burglen", "Elm",
26 1.1 cgd "Flims", "Vals", "Schuls", "Zum Loch",
27 1.1 cgd 0
28 1.1 cgd };
29 1.1 cgd
30 1.5 jsm const char *const shkbooks[] = {
31 1.1 cgd /* Eire */
32 1.1 cgd "Skibbereen", "Kanturk", "Rath Luirc", "Ennistymon", "Lahinch",
33 1.1 cgd "Loughrea", "Croagh", "Maumakeogh", "Ballyjamesduff",
34 1.1 cgd "Kinnegad", "Lugnaquillia", "Enniscorthy", "Gweebarra",
35 1.1 cgd "Kittamagh", "Nenagh", "Sneem", "Ballingeary", "Kilgarvan",
36 1.1 cgd "Cahersiveen", "Glenbeigh", "Kilmihil", "Kiltamagh",
37 1.1 cgd "Droichead Atha", "Inniscrone", "Clonegal", "Lisnaskea",
38 1.1 cgd "Culdaff", "Dunfanaghy", "Inishbofin", "Kesh",
39 1.1 cgd 0
40 1.1 cgd };
41 1.1 cgd
42 1.5 jsm const char *const shkarmors[] = {
43 1.1 cgd /* Turquie */
44 1.1 cgd "Demirci", "Kalecik", "Boyabai", "Yildizeli", "Gaziantep",
45 1.1 cgd "Siirt", "Akhalataki", "Tirebolu", "Aksaray", "Ermenak",
46 1.1 cgd "Iskenderun", "Kadirli", "Siverek", "Pervari", "Malasgirt",
47 1.1 cgd "Bayburt", "Ayancik", "Zonguldak", "Balya", "Tefenni",
48 1.1 cgd "Artvin", "Kars", "Makharadze", "Malazgirt", "Midyat",
49 1.1 cgd "Birecik", "Kirikkale", "Alaca", "Polatli", "Nallihan",
50 1.1 cgd 0
51 1.1 cgd };
52 1.1 cgd
53 1.5 jsm const char *const shkwands[] = {
54 1.1 cgd /* Wales */
55 1.1 cgd "Yr Wyddgrug", "Trallwng", "Mallwyd", "Pontarfynach",
56 1.1 cgd "Rhaeader", "Llandrindod", "Llanfair-ym-muallt",
57 1.1 cgd "Y-Fenni", "Measteg", "Rhydaman", "Beddgelert",
58 1.1 cgd "Curig", "Llanrwst", "Llanerchymedd", "Caergybi",
59 1.1 cgd /* Scotland */
60 1.1 cgd "Nairn", "Turriff", "Inverurie", "Braemar", "Lochnagar",
61 1.1 cgd "Kerloch", "Beinn a Ghlo", "Drumnadrochit", "Morven",
62 1.1 cgd "Uist", "Storr", "Sgurr na Ciche", "Cannich", "Gairloch",
63 1.1 cgd "Kyleakin", "Dunvegan",
64 1.1 cgd 0
65 1.1 cgd };
66 1.1 cgd
67 1.5 jsm const char *const shkrings[] = {
68 1.1 cgd /* Hollandse familienamen */
69 1.1 cgd "Feyfer", "Flugi", "Gheel", "Havic", "Haynin", "Hoboken",
70 1.1 cgd "Imbyze", "Juyn", "Kinsky", "Massis", "Matray", "Moy",
71 1.1 cgd "Olycan", "Sadelin", "Svaving", "Tapper", "Terwen", "Wirix",
72 1.1 cgd "Ypey",
73 1.1 cgd /* Skandinaviske navne */
74 1.1 cgd "Rastegaisa", "Varjag Njarga", "Kautekeino", "Abisko",
75 1.1 cgd "Enontekis", "Rovaniemi", "Avasaksa", "Haparanda",
76 1.1 cgd "Lulea", "Gellivare", "Oeloe", "Kajaani", "Fauske",
77 1.1 cgd 0
78 1.1 cgd };
79 1.1 cgd
80 1.5 jsm const char *const shkfoods[] = {
81 1.1 cgd /* Indonesia */
82 1.1 cgd "Djasinga", "Tjibarusa", "Tjiwidej", "Pengalengan",
83 1.1 cgd "Bandjar", "Parbalingga", "Bojolali", "Sarangan",
84 1.1 cgd "Ngebel", "Djombang", "Ardjawinangun", "Berbek",
85 1.1 cgd "Papar", "Baliga", "Tjisolok", "Siboga", "Banjoewangi",
86 1.1 cgd "Trenggalek", "Karangkobar", "Njalindoeng", "Pasawahan",
87 1.1 cgd "Pameunpeuk", "Patjitan", "Kediri", "Pemboeang", "Tringanoe",
88 1.1 cgd "Makin", "Tipor", "Semai", "Berhala", "Tegal", "Samoe",
89 1.1 cgd 0
90 1.1 cgd };
91 1.1 cgd
92 1.5 jsm const char *const shkweapons[] = {
93 1.1 cgd /* Perigord */
94 1.1 cgd "Voulgezac", "Rouffiac", "Lerignac", "Touverac", "Guizengeard",
95 1.1 cgd "Melac", "Neuvicq", "Vanzac", "Picq", "Urignac", "Corignac",
96 1.1 cgd "Fleac", "Lonzac", "Vergt", "Queyssac", "Liorac", "Echourgnac",
97 1.1 cgd "Cazelon", "Eypau", "Carignan", "Monbazillac", "Jonzac",
98 1.1 cgd "Pons", "Jumilhac", "Fenouilledes", "Laguiolet", "Saujon",
99 1.1 cgd "Eymoutiers", "Eygurande", "Eauze", "Labouheyre",
100 1.1 cgd 0
101 1.1 cgd };
102 1.1 cgd
103 1.5 jsm const char *const shkgeneral[] = {
104 1.1 cgd /* Suriname */
105 1.1 cgd "Hebiwerie", "Possogroenoe", "Asidonhopo", "Manlobbi",
106 1.1 cgd "Adjama", "Pakka Pakka", "Kabalebo", "Wonotobo",
107 1.1 cgd "Akalapi", "Sipaliwini",
108 1.1 cgd /* Greenland */
109 1.1 cgd "Annootok", "Upernavik", "Angmagssalik",
110 1.1 cgd /* N. Canada */
111 1.1 cgd "Aklavik", "Inuvik", "Tuktoyaktuk",
112 1.1 cgd "Chicoutimi", "Ouiatchouane", "Chibougamau",
113 1.1 cgd "Matagami", "Kipawa", "Kinojevis",
114 1.1 cgd "Abitibi", "Maganasipi",
115 1.1 cgd /* Iceland */
116 1.1 cgd "Akureyri", "Kopasker", "Budereyri", "Akranes", "Bordeyri",
117 1.1 cgd "Holmavik",
118 1.1 cgd 0
119 1.1 cgd };
120 1.1 cgd
121 1.5 jsm const struct shk_nx {
122 1.4 christos char x;
123 1.5 jsm const char *const *xn;
124 1.4 christos } shk_nx[] = {
125 1.4 christos {
126 1.4 christos POTION_SYM, shkliquors
127 1.4 christos },
128 1.4 christos {
129 1.4 christos SCROLL_SYM, shkbooks
130 1.4 christos },
131 1.4 christos {
132 1.4 christos ARMOR_SYM, shkarmors
133 1.4 christos },
134 1.4 christos {
135 1.4 christos WAND_SYM, shkwands
136 1.4 christos },
137 1.4 christos {
138 1.4 christos RING_SYM, shkrings
139 1.4 christos },
140 1.4 christos {
141 1.4 christos FOOD_SYM, shkfoods
142 1.4 christos },
143 1.4 christos {
144 1.4 christos WEAPON_SYM, shkweapons
145 1.4 christos },
146 1.4 christos {
147 1.4 christos 0, shkgeneral
148 1.4 christos }
149 1.4 christos };
150 1.4 christos
151 1.4 christos void
152 1.4 christos findname(nampt, let)
153 1.4 christos char *nampt;
154 1.4 christos char let;
155 1.4 christos {
156 1.5 jsm const struct shk_nx *p = shk_nx;
157 1.5 jsm const char *const *q;
158 1.4 christos int i;
159 1.4 christos while (p->x && p->x != let)
160 1.4 christos p++;
161 1.1 cgd q = p->xn;
162 1.4 christos for (i = 0; i < dlevel; i++)
163 1.4 christos if (!q[i]) {
164 1.4 christos /* Not enough names, try general name */
165 1.4 christos if (let)
166 1.4 christos findname(nampt, 0);
167 1.4 christos else
168 1.4 christos (void) strcpy(nampt, "Dirk");
169 1.4 christos return;
170 1.4 christos }
171 1.1 cgd (void) strncpy(nampt, q[i], PL_NSIZ);
172 1.4 christos nampt[PL_NSIZ - 1] = 0;
173 1.1 cgd }
174