hack.shknam.c revision 1.4 1 1.4 christos /* $NetBSD: hack.shknam.c,v 1.4 1997/10/19 16:59:03 christos 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.4 christos __RCSID("$NetBSD: hack.shknam.c,v 1.4 1997/10/19 16:59:03 christos 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.4 christos char *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.4 christos char *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.4 christos char *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.4 christos char *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.4 christos char *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.4 christos char *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.4 christos char *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.4 christos char *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.1 cgd struct shk_nx {
122 1.4 christos char x;
123 1.4 christos char **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.4 christos struct shk_nx *p = shk_nx;
157 1.4 christos char **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