Blindfold removal fix
[slashemextended.git] / src / o_init.c
blob37cf4da70c568acbc111ccde17f353dff1ff4bab
1 /* SCCS Id: @(#)o_init.c 3.4 1999/12/09 */
2 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
3 /* NetHack may be freely redistributed. See license for details. */
5 #include "hack.h"
6 #include "lev.h" /* save & restore info */
8 STATIC_DCL void setgemprobs(d_level*);
9 STATIC_DCL void shuffle(int,int,BOOLEAN_P);
10 STATIC_DCL void shuffle_all(void);
11 STATIC_DCL boolean interesting_to_discover(int);
13 static NEARDATA short disco[NUM_OBJECTS] = DUMMY;
15 #ifdef USE_TILES
16 STATIC_DCL void shuffle_tiles(void);
17 extern short glyph2tile[]; /* from tile.c */
19 /* Shuffle tile assignments to match descriptions, so a red potion isn't
20 * displayed with a blue tile and so on.
22 * Tile assignments are not saved, and shouldn't be so that a game can
23 * be resumed on an otherwise identical non-tile-using binary, so we have
24 * to reshuffle the assignments from oc_descr_idx information when a game
25 * is restored. So might as well do that the first time instead of writing
26 * another routine.
28 STATIC_OVL void
29 shuffle_tiles()
31 int i;
32 short tmp_tilemap[NUM_OBJECTS];
34 for (i = 0; i < NUM_OBJECTS; i++)
35 tmp_tilemap[i] =
36 glyph2tile[objects[i].oc_descr_idx + GLYPH_OBJ_OFF];
38 for (i = 0; i < NUM_OBJECTS; i++)
39 glyph2tile[i + GLYPH_OBJ_OFF] = tmp_tilemap[i];
41 #endif /* USE_TILES */
43 #ifdef PROXY_GRAPHICS
44 STATIC_DCL void shuffle_proxy_glyphs(void);
45 extern short glyph2proxy[]; /* from glyphmap.c */
47 /* Shuffle proxy glyph assignments for the same reason as tiles
48 * (internal glyphs are based on object numbers, proxy glyphs
49 * are based on object descriptions).
51 STATIC_OVL void
52 shuffle_proxy_glyphs()
54 int i;
55 short tmp_glyphmap[NUM_OBJECTS];
57 for (i = 0; i < NUM_OBJECTS; i++)
58 tmp_glyphmap[i] =
59 glyph2proxy[objects[i].oc_descr_idx + GLYPH_OBJ_OFF];
61 for (i = 0; i < NUM_OBJECTS; i++)
62 glyph2proxy[i + GLYPH_OBJ_OFF] = tmp_glyphmap[i];
64 #endif /* USE_TILES */
66 STATIC_OVL void
67 setgemprobs(dlev)
68 d_level *dlev;
70 return; /* what's the point of this stupidity anyway??? --Amy */
72 int j, first, lev;
74 if (dlev)
75 lev = (ledger_no(dlev) > maxledgerno())
76 ? maxledgerno() : ledger_no(dlev);
77 else
78 lev = 0;
79 first = bases[GEM_CLASS];
81 for(j = 0; j < 9-lev/3; j++)
82 objects[first+j].oc_prob = 0;
83 first += j;
84 if (first > LAST_GEM) {
85 raw_printf("Not enough gems? - first=%d j=%d LAST_GEM=%d",
86 first, j, LAST_GEM);
87 wait_synch();
89 if (objects[first].oc_class != GEM_CLASS) {
90 raw_printf("something is not a gem? - first=%d j=%d LAST_GEM=%d",
91 first, j, LAST_GEM);
92 wait_synch();
95 if (OBJ_NAME(objects[first]) == (char *)0) {
96 raw_printf("gem with bugged description? - first=%d j=%d LAST_GEM=%d",
97 first, j, LAST_GEM);
98 wait_synch();
101 for (j = first; j <= LAST_GEM; j++)
102 /* KMH, balance patch -- valuable gems now sum to 612 */
103 objects[j].oc_prob = (612+j-first)/(LAST_GEM+1-first);
106 /* shuffle descriptions on objects o_low to o_high */
107 STATIC_OVL void
108 shuffle(o_low, o_high, domaterial)
109 int o_low, o_high;
110 boolean domaterial;
112 int i, j, num_to_shuffle;
113 short sw;
114 int color;
116 for (num_to_shuffle = 0, j=o_low; j <= o_high; j++)
117 /*if (!objects[j].oc_name_known) num_to_shuffle++;*/
118 if (OBJ_DESCR(objects[j])) num_to_shuffle++;
119 if (num_to_shuffle < 2) return;
121 for (j=o_low; j <= o_high; j++) {
122 /*if (objects[j].oc_name_known) continue;*/
123 if (!OBJ_DESCR(objects[j])) continue;
125 i = j + rn2(o_high-j+1);
126 /*while (objects[i].oc_name_known);*/
127 while (!OBJ_DESCR(objects[i]));
128 sw = objects[j].oc_descr_idx;
129 objects[j].oc_descr_idx = objects[i].oc_descr_idx;
130 objects[i].oc_descr_idx = sw;
131 sw = objects[j].oc_tough;
132 objects[j].oc_tough = objects[i].oc_tough;
133 objects[i].oc_tough = sw;
134 color = objects[j].oc_color;
135 objects[j].oc_color = objects[i].oc_color;
136 objects[i].oc_color = color;
137 color = objects[j].oc_appearindex;
138 objects[j].oc_appearindex = objects[i].oc_appearindex;
139 objects[i].oc_appearindex = color;
141 /* shuffle material */
142 if (domaterial) {
143 color = objects[j].oc_material;
144 objects[j].oc_material = objects[i].oc_material;
145 objects[i].oc_material = color;
150 /* for matrayser race: shuffle materials per item class --Amy */
151 void
152 matraysershuffle()
154 int first, last, oclass;
155 int i, lastgood, k, savemat;
157 for (oclass = 1; oclass < MAXOCLASSES; oclass++) {
158 first = bases[oclass];
159 last = first+1;
160 while (last < NUM_OBJECTS && objects[last].oc_class == oclass)
161 last++;
162 lastgood = last-1;
163 /* lastgood stays constant from here on */
165 if (objects[lastgood].oc_class != oclass) {
166 impossible("matraysershuffle() ERROR: object %d is not object class %d!", lastgood, oclass);
169 /* shuffle(first, lastgood, TRUE);
170 * first = o_low, lastgood = o_high */
172 for (i = first; i <= lastgood; i++) {
173 k = i + rn2(lastgood - i + 1);
175 savemat = objects[i].oc_material;
176 objects[i].oc_material = objects[k].oc_material;
177 objects[k].oc_material = savemat;
184 /* A function that assigns random materials to a few objects, called once at game start. --Amy */
185 void
186 randommaterials()
188 register int objtomodify;
189 while (rn2(25)) { /* to randomize the # of objects affected --Amy */
190 objtomodify = -1;
191 while ( (objtomodify == -1) || (objtomodify == GOLD_PIECE) || (objtomodify == STRANGE_OBJECT) || (objtomodify == AMULET_OF_YENDOR) || (objtomodify == CANDELABRUM_OF_INVOCATION) || (objtomodify == BELL_OF_OPENING) || (objtomodify == SPE_BOOK_OF_THE_DEAD) || (objects[objtomodify].oc_prob < 1) ) objtomodify = rn2(NUM_OBJECTS);
192 /* we roll until we get an item that can be randomly generated and is not a gold piece or other weird thing --Amy */
194 objects[objtomodify].oc_material = rn2(LASTMATERIAL + 1); /* allow every material, including 0 (mysterious) */
195 /*if (wizard) pline("Modifying material of object %d", objtomodify);*/ /* debug message */
199 if (!rn2(5)) {
201 while (rn2(25)) {
202 objtomodify = -1;
203 while ( (objtomodify == -1) || (objtomodify == GOLD_PIECE) || (objtomodify == STRANGE_OBJECT) || (objtomodify == AMULET_OF_YENDOR) || (objtomodify == CANDELABRUM_OF_INVOCATION) || (objtomodify == BELL_OF_OPENING) || (objtomodify == SPE_BOOK_OF_THE_DEAD) || (objects[objtomodify].oc_prob < 1) ) objtomodify = rn2(NUM_OBJECTS);
205 objects[objtomodify].oc_material = rn2(LASTMATERIAL + 1); /* allow every material, including 0 (mysterious) */
211 if (!rn2(20)) {
213 while (rn2(60)) {
214 objtomodify = -1;
215 while ( (objtomodify == -1) || (objtomodify == GOLD_PIECE) || (objtomodify == STRANGE_OBJECT) || (objtomodify == AMULET_OF_YENDOR) || (objtomodify == CANDELABRUM_OF_INVOCATION) || (objtomodify == BELL_OF_OPENING) || (objtomodify == SPE_BOOK_OF_THE_DEAD) || (objects[objtomodify].oc_prob < 1) ) objtomodify = rn2(NUM_OBJECTS);
217 objects[objtomodify].oc_material = rn2(LASTMATERIAL + 1); /* allow every material, including 0 (mysterious) */
223 if (!rn2(100)) {
225 while (rn2(240)) {
226 objtomodify = -1;
227 while ( (objtomodify == -1) || (objtomodify == GOLD_PIECE) || (objtomodify == STRANGE_OBJECT) || (objtomodify == AMULET_OF_YENDOR) || (objtomodify == CANDELABRUM_OF_INVOCATION) || (objtomodify == BELL_OF_OPENING) || (objtomodify == SPE_BOOK_OF_THE_DEAD) || (objects[objtomodify].oc_prob < 1) ) objtomodify = rn2(NUM_OBJECTS);
229 objects[objtomodify].oc_material = rn2(LASTMATERIAL + 1); /* allow every material, including 0 (mysterious) */
237 void
238 initobjectsamnesia()
240 /* discovered by Tariru: when the randomized objects are being re-initialized, and you're wearing someting
241 * like a ring of random effects, you don't lose the property that it used to give, even if you save and load.
242 * Therefore we'll use this ugly hack that takes the item off, re-initializes its effects, and puts it back on --Amy */
244 register struct obj *otmp, *otmp2, *otmp3, *otmp4, *otmp5, *otmp6, *otmp7, *otmp8, *otmp9, *otmp10, *otmp11;
245 boolean hasamulet, hasleftring, hasrightring, hasshirt, hascloak, hasarmor, hasboots, hasgloves, hashelmet, hasshield, hasimplant;
247 u.cnd_appearanceshufflingcount++;
249 if (uamul) {
250 hasamulet = TRUE;
251 otmp = uamul;
252 setworn((struct obj *)0, W_AMUL);
253 } else hasamulet = FALSE;
254 if (uleft) {
255 hasleftring = TRUE;
256 otmp2 = uleft;
257 setworn((struct obj *)0, W_RINGL);
258 } else hasleftring = FALSE;
259 if (uright) {
260 hasrightring = TRUE;
261 otmp3 = uright;
262 setworn((struct obj *)0, W_RINGR);
263 } else hasrightring = FALSE;
264 if (uarmu) {
265 hasshirt = TRUE;
266 otmp4 = uarmu;
267 setworn((struct obj *)0, W_ARMU);
268 } else hasshirt = FALSE;
269 if (uarmc) {
270 hascloak = TRUE;
271 otmp5 = uarmc;
272 setworn((struct obj *)0, W_ARMC);
273 } else hascloak = FALSE;
274 if (uarm) {
275 hasarmor = TRUE;
276 otmp6 = uarm;
277 setworn((struct obj *)0, W_ARM);
278 } else hasarmor = FALSE;
279 if (uarmf) {
280 hasboots = TRUE;
281 otmp7 = uarmf;
282 setworn((struct obj *)0, W_ARMF);
283 } else hasboots = FALSE;
284 if (uarmg) {
285 hasgloves = TRUE;
286 otmp8 = uarmg;
287 setworn((struct obj *)0, W_ARMG);
288 } else hasgloves = FALSE;
289 if (uarmh) {
290 hashelmet = TRUE;
291 otmp9 = uarmh;
292 setworn((struct obj *)0, W_ARMH);
293 } else hashelmet = FALSE;
294 if (uarms) {
295 hasshield = TRUE;
296 otmp10 = uarms;
297 setworn((struct obj *)0, W_ARMS);
298 } else hasshield = FALSE;
299 if (uimplant) {
300 hasimplant = TRUE;
301 otmp11 = uimplant;
302 setworn((struct obj *)0, W_IMPLANT);
303 } else hasimplant = FALSE;
305 init_objects(FALSE);
307 if (hasamulet) {
308 setworn(otmp, W_AMUL);
310 if (hasleftring) {
311 setworn(otmp2, W_RINGL);
313 if (hasrightring) {
314 setworn(otmp3, W_RINGR);
316 if (hasshirt) {
317 setworn(otmp4, W_ARMU);
319 if (hascloak) {
320 setworn(otmp5, W_ARMC);
322 if (hasarmor) {
323 setworn(otmp6, W_ARM);
325 if (hasboots) {
326 setworn(otmp7, W_ARMF);
328 if (hasgloves) {
329 setworn(otmp8, W_ARMG);
331 if (hashelmet) {
332 setworn(otmp9, W_ARMH);
334 if (hasshield) {
335 setworn(otmp10, W_ARMS);
337 if (hasimplant) {
338 setworn(otmp11, W_IMPLANT);
341 /* random appearances have now been shuffled - please re-align randarts that depend on them --Amy
342 * it's important that every effect that shuffles appearances will run this code, including e.g. being a kurwa */
343 init_appearance_randarts();
346 void
347 init_objects(descrinit)
348 boolean descrinit;
350 register int i, first, last, sum;
351 register char oclass;
352 #ifdef TEXTCOLOR
353 # define COPY_OBJ_DESCR(o_dst,o_src) \
354 o_dst.oc_descr_idx = o_src.oc_descr_idx,\
355 o_dst.oc_color = o_src.oc_color
356 #else
357 # define COPY_OBJ_DESCR(o_dst,o_src) o_dst.oc_descr_idx = o_src.oc_descr_idx
358 #endif
360 /* bug fix to prevent "initialization error" abort on Intel Xenix.
361 * reported by mikew@semike
363 for (i = 0; i < MAXOCLASSES; i++)
364 bases[i] = 0;
365 /* initialize object descriptions */
366 if (descrinit) {
367 for (i = 0; i < NUM_OBJECTS; i++)
368 objects[i].oc_name_idx = objects[i].oc_descr_idx = i;
370 /* init base; if probs given check that they add up to 10000,
371 otherwise compute probs */
372 first = 0;
373 while( first < NUM_OBJECTS ) {
374 oclass = objects[first].oc_class;
375 last = first+1;
376 while (last < NUM_OBJECTS && objects[last].oc_class == oclass) last++;
377 bases[(int)oclass] = first;
379 if (oclass == GEM_CLASS) {
380 setgemprobs((d_level *)0);
382 if (rn2(2)) { /* change turquoise from green to blue? */
383 COPY_OBJ_DESCR(objects[TURQUOISE],objects[SAPPHIRE]);
385 if (rn2(2)) { /* change aquamarine from green to blue? */
386 COPY_OBJ_DESCR(objects[AQUAMARINE],objects[SAPPHIRE]);
388 if (rn2(2)) { /* change epidote from green to red? */
389 COPY_OBJ_DESCR(objects[EPIDOTE],objects[RUBY]);
391 if (rn2(2)) { /* change rhodochrosite from red to pink? */
392 COPY_OBJ_DESCR(objects[RHODOCHROSITE],objects[ROSE_QUARTZ]);
394 if (rn2(2)) { /* change amazonite from cyan to green? */
395 COPY_OBJ_DESCR(objects[AMAZONITE],objects[EMERALD]);
397 if (rn2(2)) { /* change covelline from black to blue? */
398 COPY_OBJ_DESCR(objects[COVELLINE],objects[SAPPHIRE]);
400 if (rn2(2)) { /* change chrysocolla from cyan to teal? */
401 COPY_OBJ_DESCR(objects[CHRYSOCOLLA],objects[CYAN_STONE]);
403 if (rn2(2)) { /* change peridot from radiant to cyan? */
404 COPY_OBJ_DESCR(objects[PERIDOT],objects[CHALCEDON]);
406 if (rn2(2)) { /* change anhydrite from teal to cyan? */
407 COPY_OBJ_DESCR(objects[ANHYDRITE],objects[CHALCEDON]);
409 if (rn2(2)) { /* change marble from white to black? */
410 COPY_OBJ_DESCR(objects[MARBLE],objects[JET]);
412 if (rn2(2)) { /* change moonstone from white to yellow? */
413 COPY_OBJ_DESCR(objects[MOONSTONE],objects[CHRYSOBERYL]);
415 switch (rn2(4)) { /* change fluorite from violet? */
416 case 0: break;
417 case 1: /* blue */
418 COPY_OBJ_DESCR(objects[FLUORITE],objects[SAPPHIRE]);
419 break;
420 case 2: /* white */
421 COPY_OBJ_DESCR(objects[FLUORITE],objects[DIAMOND]);
422 break;
423 case 3: /* green */
424 COPY_OBJ_DESCR(objects[FLUORITE],objects[EMERALD]);
425 break;
427 switch (rn2(4)) { /* change tourmaline from red? */
428 case 0: break;
429 case 1: /* red */
430 COPY_OBJ_DESCR(objects[TOURMALINE],objects[RUBY]);
431 break;
432 case 2: /* magenta */
433 COPY_OBJ_DESCR(objects[TOURMALINE],objects[AMETHYST]);
434 break;
435 case 3: /* green */
436 COPY_OBJ_DESCR(objects[TOURMALINE],objects[EMERALD]);
437 break;
439 switch (rn2(4)) { /* change apophyllite from teal? */
440 case 0: break;
441 case 1: /* cyan */
442 COPY_OBJ_DESCR(objects[APOPHYLLITE],objects[CHALCEDON]);
443 break;
444 case 2: /* radiant */
445 COPY_OBJ_DESCR(objects[APOPHYLLITE],objects[PREHNITE]);
446 break;
447 case 3: /* green */
448 COPY_OBJ_DESCR(objects[APOPHYLLITE],objects[EMERALD]);
449 break;
451 switch (rn2(3)) { /* change spinel from pink? */
452 case 0: break;
453 case 1: /* red */
454 COPY_OBJ_DESCR(objects[SPINEL],objects[RUBY]);
455 break;
456 case 2: /* magenta */
457 COPY_OBJ_DESCR(objects[SPINEL],objects[AMETHYST]);
458 break;
460 switch (rn2(3)) { /* change vivianite from cyan? */
461 case 0: break;
462 case 1: /* black */
463 COPY_OBJ_DESCR(objects[VIVIANITE],objects[JET]);
464 break;
465 case 2: /* blue */
466 COPY_OBJ_DESCR(objects[VIVIANITE],objects[SAPPHIRE]);
467 break;
469 switch (rn2(13)) { /* change wonder stone from magenta? */
470 case 0: break;
471 case 1: /* black */
472 COPY_OBJ_DESCR(objects[WONDER_STONE],objects[JET]);
473 break;
474 case 2: /* blue */
475 COPY_OBJ_DESCR(objects[WONDER_STONE],objects[SAPPHIRE]);
476 break;
477 case 3: /* red */
478 COPY_OBJ_DESCR(objects[WONDER_STONE],objects[RUBY]);
479 break;
480 case 4: /* radiant */
481 COPY_OBJ_DESCR(objects[WONDER_STONE],objects[PREHNITE]);
482 break;
483 case 5: /* green */
484 COPY_OBJ_DESCR(objects[WONDER_STONE],objects[EMERALD]);
485 break;
486 case 6: /* white */
487 COPY_OBJ_DESCR(objects[WONDER_STONE],objects[DIAMOND]);
488 break;
489 case 7: /* brown */
490 COPY_OBJ_DESCR(objects[WONDER_STONE],objects[TOPAZ]);
491 break;
492 case 8: /* yellow */
493 COPY_OBJ_DESCR(objects[WONDER_STONE],objects[CHRYSOBERYL]);
494 break;
495 case 9: /* pink */
496 COPY_OBJ_DESCR(objects[WONDER_STONE],objects[ROSE_QUARTZ]);
497 break;
498 case 10: /* orange */
499 COPY_OBJ_DESCR(objects[WONDER_STONE],objects[AGATE]);
500 break;
501 case 11: /* cyan */
502 COPY_OBJ_DESCR(objects[WONDER_STONE],objects[CHALCEDON]);
503 break;
504 case 12: /* teal */
505 COPY_OBJ_DESCR(objects[WONDER_STONE],objects[CYAN_STONE]);
506 break;
509 check:
510 sum = 0;
511 for(i = first; i < last; i++) sum += objects[i].oc_prob;
512 if(sum == 0) {
513 for(i = first; i < last; i++)
514 objects[i].oc_prob = (100000+i-first)/(last-first);
515 goto check;
517 if(sum != sum)
518 error("init-prob error for class %d (%d%%)", oclass, sum);
519 first = last;
522 objects[COPPER_DRAGON_SCALE_MAIL].oc_oprop = objects[COPPER_DRAGON_SCALES].oc_oprop = objects[COPPER_DRAGON_SCALE_SHIELD].oc_oprop = randenchantment();
523 objects[PLATINUM_DRAGON_SCALE_MAIL].oc_oprop = objects[PLATINUM_DRAGON_SCALES].oc_oprop = objects[PLATINUM_DRAGON_SCALE_SHIELD].oc_oprop = randenchantment();
524 objects[BRASS_DRAGON_SCALE_MAIL].oc_oprop = objects[BRASS_DRAGON_SCALES].oc_oprop = objects[BRASS_DRAGON_SCALE_SHIELD].oc_oprop = randenchantment();
525 objects[AMETHYST_DRAGON_SCALE_MAIL].oc_oprop = objects[AMETHYST_DRAGON_SCALES].oc_oprop = objects[AMETHYST_DRAGON_SCALE_SHIELD].oc_oprop = randenchantment();
526 objects[DIAMOND_DRAGON_SCALE_MAIL].oc_oprop = objects[DIAMOND_DRAGON_SCALES].oc_oprop = objects[DIAMOND_DRAGON_SCALE_SHIELD].oc_oprop = randenchantment();
527 objects[EMERALD_DRAGON_SCALE_MAIL].oc_oprop = objects[EMERALD_DRAGON_SCALES].oc_oprop = objects[EMERALD_DRAGON_SCALE_SHIELD].oc_oprop = randenchantment();
528 objects[SAPPHIRE_DRAGON_SCALE_MAIL].oc_oprop = objects[SAPPHIRE_DRAGON_SCALES].oc_oprop = objects[SAPPHIRE_DRAGON_SCALE_SHIELD].oc_oprop = randenchantment();
529 objects[RUBY_DRAGON_SCALE_MAIL].oc_oprop = objects[RUBY_DRAGON_SCALES].oc_oprop = objects[RUBY_DRAGON_SCALE_SHIELD].oc_oprop = randenchantment();
531 objects[PURPLE_DRAGON_SCALE_MAIL].oc_oprop = randenchantment();
532 objects[PURPLE_DRAGON_SCALES].oc_oprop = randenchantment();
533 objects[PURPLE_DRAGON_SCALE_SHIELD].oc_oprop = randenchantment();
535 objects[EXCITING_ARMOR].oc_oprop = randenchantment();
537 objects[RANDOMIZED_HELMET].oc_oprop = randenchantment();
538 objects[ROBE_OF_RANDOMNESS].oc_oprop = randenchantment();
539 objects[HIGH_STILETTOS].oc_oprop = randenchantment();
540 objects[UNKNOWN_GAUNTLETS].oc_oprop = randenchantment();
541 objects[MISSING_CLOAK].oc_oprop = randenchantment();
543 objects[RANDOMIZED_HELMET].a_can = rnd(10) ? 0 : rnd(3);
544 objects[ROBE_OF_RANDOMNESS].a_can = rnd(10) ? 0 : rnd(3);
545 objects[HIGH_STILETTOS].a_can = rnd(10) ? 0 : rnd(3);
546 objects[UNKNOWN_GAUNTLETS].a_can = rnd(10) ? 0 : rnd(3);
547 objects[MISSING_CLOAK].a_can = rn2(4);
549 objects[WONDER_HELMET].a_can = rnd(10) ? 0 : rnd(3);
550 objects[SKY_HIGH_HEELS].a_can = rnd(10) ? 0 : rnd(3);
551 objects[ARCANE_GAUNTLETS].a_can = rnd(10) ? 0 : rnd(3);
552 objects[SPECIAL_CLOAK].a_can = rn2(4);
554 objects[POINTED_HELMET].a_can = rnd(10) ? 0 : rnd(3);
555 objects[PREHISTORIC_BOOTS].a_can = rnd(10) ? 0 : rnd(3);
556 objects[PLACEHOLDER_GLOVES].a_can = rnd(10) ? 0 : rnd(3);
557 objects[PLAIN_CLOAK].a_can = rn2(4);
559 objects[BOG_STANDARD_HELMET].a_can = rnd(10) ? 0 : rnd(3);
560 objects[SYNTHETIC_SANDALS].a_can = rnd(10) ? 0 : rnd(3);
561 objects[PROTECTIVE_GLOVES].a_can = rnd(10) ? 0 : rnd(3);
562 objects[ARCHAIC_CLOAK].a_can = rn2(4);
564 objects[RANDOMIZED_HELMET].a_ac = 0;
565 if (rn2(10)) objects[RANDOMIZED_HELMET].a_ac = 1;
566 while (!rn2(3)) {
567 if (objects[RANDOMIZED_HELMET].a_ac < 20) objects[RANDOMIZED_HELMET].a_ac++;
569 objects[ROBE_OF_RANDOMNESS].a_ac = 0;
570 if (rn2(10)) objects[ROBE_OF_RANDOMNESS].a_ac = 1;
571 while (!rn2(2)) {
572 if (objects[ROBE_OF_RANDOMNESS].a_ac < 20) objects[ROBE_OF_RANDOMNESS].a_ac++;
574 objects[HIGH_STILETTOS].a_ac = 0;
575 if (rn2(10)) objects[HIGH_STILETTOS].a_ac = 1;
576 while (!rn2(3)) {
577 if (objects[HIGH_STILETTOS].a_ac < 20) objects[HIGH_STILETTOS].a_ac++;
579 objects[UNKNOWN_GAUNTLETS].a_ac = 0;
580 if (rn2(10)) objects[UNKNOWN_GAUNTLETS].a_ac = 1;
581 while (!rn2(3)) {
582 if (objects[UNKNOWN_GAUNTLETS].a_ac < 20) objects[UNKNOWN_GAUNTLETS].a_ac++;
584 objects[MISSING_CLOAK].a_ac = 0;
585 if (rn2(10)) objects[MISSING_CLOAK].a_ac = 1;
586 while (!rn2(3)) {
587 if (objects[MISSING_CLOAK].a_ac < 20) objects[MISSING_CLOAK].a_ac++;
589 objects[SPECIAL_CLOAK].a_ac = 0;
590 if (rn2(10)) objects[SPECIAL_CLOAK].a_ac = 1;
591 while (!rn2(3)) {
592 if (objects[SPECIAL_CLOAK].a_ac < 20) objects[SPECIAL_CLOAK].a_ac++;
594 objects[WONDER_HELMET].a_ac = 0;
595 if (rn2(10)) objects[WONDER_HELMET].a_ac = 1;
596 while (!rn2(3)) {
597 if (objects[WONDER_HELMET].a_ac < 20) objects[WONDER_HELMET].a_ac++;
599 objects[ARCANE_GAUNTLETS].a_ac = 0;
600 if (rn2(10)) objects[ARCANE_GAUNTLETS].a_ac = 1;
601 while (!rn2(3)) {
602 if (objects[ARCANE_GAUNTLETS].a_ac < 20) objects[ARCANE_GAUNTLETS].a_ac++;
604 objects[SKY_HIGH_HEELS].a_ac = 0;
605 if (rn2(10)) objects[SKY_HIGH_HEELS].a_ac = 1;
606 while (!rn2(3)) {
607 if (objects[SKY_HIGH_HEELS].a_ac < 20) objects[SKY_HIGH_HEELS].a_ac++;
609 objects[PLAIN_CLOAK].a_ac = 0;
610 if (rn2(10)) objects[PLAIN_CLOAK].a_ac = 1;
611 while (!rn2(3)) {
612 if (objects[PLAIN_CLOAK].a_ac < 20) objects[PLAIN_CLOAK].a_ac++;
614 objects[POINTED_HELMET].a_ac = 0;
615 if (rn2(10)) objects[POINTED_HELMET].a_ac = 1;
616 while (!rn2(3)) {
617 if (objects[POINTED_HELMET].a_ac < 20) objects[POINTED_HELMET].a_ac++;
619 objects[PLACEHOLDER_GLOVES].a_ac = 0;
620 if (rn2(10)) objects[PLACEHOLDER_GLOVES].a_ac = 1;
621 while (!rn2(3)) {
622 if (objects[PLACEHOLDER_GLOVES].a_ac < 20) objects[PLACEHOLDER_GLOVES].a_ac++;
624 objects[PREHISTORIC_BOOTS].a_ac = 0;
625 if (rn2(10)) objects[PREHISTORIC_BOOTS].a_ac = 1;
626 while (!rn2(3)) {
627 if (objects[PREHISTORIC_BOOTS].a_ac < 20) objects[PREHISTORIC_BOOTS].a_ac++;
629 objects[ARCHAIC_CLOAK].a_ac = 0;
630 if (rn2(10)) objects[ARCHAIC_CLOAK].a_ac = 1;
631 while (!rn2(3)) {
632 if (objects[ARCHAIC_CLOAK].a_ac < 20) objects[ARCHAIC_CLOAK].a_ac++;
634 objects[BOG_STANDARD_HELMET].a_ac = 0;
635 if (rn2(10)) objects[BOG_STANDARD_HELMET].a_ac = 1;
636 while (!rn2(3)) {
637 if (objects[BOG_STANDARD_HELMET].a_ac < 20) objects[BOG_STANDARD_HELMET].a_ac++;
639 objects[PROTECTIVE_GLOVES].a_ac = 0;
640 if (rn2(10)) objects[PROTECTIVE_GLOVES].a_ac = 1;
641 while (!rn2(3)) {
642 if (objects[PROTECTIVE_GLOVES].a_ac < 20) objects[PROTECTIVE_GLOVES].a_ac++;
644 objects[SYNTHETIC_SANDALS].a_ac = 0;
645 if (rn2(10)) objects[SYNTHETIC_SANDALS].a_ac = 1;
646 while (!rn2(3)) {
647 if (objects[SYNTHETIC_SANDALS].a_ac < 20) objects[SYNTHETIC_SANDALS].a_ac++;
650 objects[RIN_RANDOM_EFFECTS].oc_oprop = randenchantment();
651 objects[RIN_SPECIAL_EFFECTS].oc_oprop = randenchantment();
652 objects[AMULET_OF_THE_RNG].oc_oprop = randenchantment();
653 objects[AMULET_OF_INFINITY].oc_oprop = randenchantment();
654 objects[RIN_DANGER].oc_oprop = randnastyenchantment();
655 objects[AMULET_OF_DANGER].oc_oprop = randnastyenchantment();
656 objects[NASTY_CLOAK].oc_oprop = randnastyenchantment();
657 objects[ROBE_OF_NASTINESS].oc_oprop = randnastyenchantment();
658 objects[UNWANTED_HELMET].oc_oprop = randnastyenchantment();
659 objects[EVIL_GLOVES].oc_oprop = randnastyenchantment();
660 objects[UNFAIR_STILETTOS].oc_oprop = randnastyenchantment();
662 objects[MAIDRAGON_SCALE_MAIL].oc_oprop = randfemienchantment();
663 objects[MAIDRAGON_SCALES].oc_oprop = randfemienchantment();
664 objects[MAIDRAGON_SCALE_SHIELD].oc_oprop = randfemienchantment();
665 objects[ROBE_OF_FEMINISM].oc_oprop = randfemienchantment();
666 objects[FEMINISM_CLOAK].oc_oprop = randfemienchantment();
667 objects[FEMINISM_HELMET].oc_oprop = randfemienchantment();
668 objects[FEMALE_GLOVES].oc_oprop = randfemienchantment();
669 objects[FEMININE_STILETTOS].oc_oprop = randfemienchantment();
670 objects[RIN_FEMINISM].oc_oprop = randfemienchantment();
671 objects[AMULET_OF_FEMINISM].oc_oprop = randfemienchantment();
673 objects[MAGICAL_SHIELD].oc_oprop = randenchantment();
674 objects[EVIL_DRAGON_SCALE_MAIL].oc_oprop = randnastyenchantment();
675 objects[EVIL_DRAGON_SCALES].oc_oprop = randnastyenchantment();
676 objects[EVIL_DRAGON_SCALE_SHIELD].oc_oprop = randnastyenchantment();
677 objects[DIFFICULT_SHIELD].oc_oprop = randnastyenchantment();
678 objects[BAD_SHIRT].oc_oprop = randnastyenchantment();
679 objects[EVIL_PLATE_MAIL].oc_oprop = randnastyenchantment();
680 objects[EVIL_LEATHER_ARMOR].oc_oprop = randnastyenchantment();
682 objects[DUMMY_CLOAK_A].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
683 objects[DUMMY_CLOAK_B].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
684 objects[DUMMY_CLOAK_C].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
685 objects[DUMMY_CLOAK_D].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
686 objects[DUMMY_CLOAK_E].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
687 objects[DUMMY_CLOAK_F].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
688 objects[DUMMY_CLOAK_G].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
689 objects[DUMMY_CLOAK_H].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
690 objects[DUMMY_CLOAK_I].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
691 objects[DUMMY_CLOAK_J].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
692 objects[DUMMY_CLOAK_K].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
693 objects[DUMMY_CLOAK_L].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
694 objects[DUMMY_CLOAK_M].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
695 objects[DUMMY_CLOAK_N].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
696 objects[DUMMY_CLOAK_O].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
697 objects[DUMMY_CLOAK_P].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
698 objects[DUMMY_CLOAK_Q].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
699 objects[DUMMY_CLOAK_R].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
700 objects[DUMMY_CLOAK_S].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
701 objects[DUMMY_CLOAK_T].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
702 objects[DUMMY_CLOAK_U].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
703 objects[DUMMY_CLOAK_V].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
704 objects[DUMMY_CLOAK_W].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
705 objects[DUMMY_CLOAK_X].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
706 objects[DUMMY_CLOAK_Y].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
707 objects[DUMMY_CLOAK_Z].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
708 objects[DUMMY_CLOAK_AA].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
709 objects[DUMMY_CLOAK_AB].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
710 objects[DUMMY_CLOAK_AC].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
711 objects[DUMMY_CLOAK_AD].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
712 objects[DUMMY_CLOAK_AE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
713 objects[DUMMY_CLOAK_AF].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
714 objects[DUMMY_CLOAK_AG].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
715 objects[DUMMY_CLOAK_AH].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
716 objects[DUMMY_CLOAK_AI].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
717 objects[DUMMY_CLOAK_AJ].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
718 objects[DUMMY_CLOAK_AK].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
719 objects[DUMMY_CLOAK_AL].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
720 objects[DUMMY_CLOAK_AM].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
721 objects[DUMMY_CLOAK_AN].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
722 objects[DUMMY_CLOAK_AO].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
723 objects[DUMMY_CLOAK_AP].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
724 objects[DUMMY_CLOAK_AQ].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
725 objects[DUMMY_CLOAK_AR].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
726 objects[DUMMY_CLOAK_AS].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
727 objects[DUMMY_CLOAK_AT].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
728 objects[DUMMY_CLOAK_AU].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
729 objects[DUMMY_CLOAK_AV].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
730 objects[DUMMY_CLOAK_AW].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
731 objects[DUMMY_CLOAK_AX].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
733 objects[RANDOM_JACKET].a_ac = rnd(10);
735 objects[IMPLANT_OF_ABSORPTION].a_ac = rnd(10);
736 objects[IMPLANT_OF_PUNCTURING].a_ac = rnd(10);
737 objects[IMPLANT_OF_CRAFTSMANSHIP].a_ac = rnd(10);
738 objects[IMPLANT_OF_PRECISION].a_ac = rnd(10);
739 objects[IMPLANT_OF_VILENESS].a_ac = rnd(10);
740 objects[IMPLANT_OF_REMEDY].a_ac = rnd(10);
741 objects[IMPLANT_OF_STOICISM].a_ac = rnd(10);
742 objects[IMPLANT_OF_AVARICE].a_ac = rnd(10);
743 objects[IMPLANT_OF_CREMATION].a_ac = rnd(10);
744 objects[IMPLANT_OF_SEARING].a_ac = rnd(10);
745 objects[IMPLANT_OF_REDEMPTION].a_ac = rnd(10);
746 objects[IMPLANT_OF_EROSION].a_ac = rnd(10);
747 objects[IMPLANT_OF_JOY].a_ac = rnd(10);
748 objects[IMPLANT_OF_CRUELTY].a_ac = rnd(10);
749 objects[IMPLANT_OF_BADNESS].a_ac = rnd(10);
750 objects[IMPLANT_OF_PROPOGATION].a_ac = rnd(10);
751 objects[IMPLANT_OF_PASSION].a_ac = rnd(10);
752 objects[IMPLANT_OF_WINTER].a_ac = rnd(10);
753 objects[IMPLANT_OF_ACCELERATION].a_ac = rnd(10);
754 objects[IMPLANT_OF_PROSPERITY].a_ac = rnd(10);
756 objects[IMPLANT_OF_QUEEB_BUTT].a_ac = rnd(10);
757 objects[IMPLANT_OF_BEHOLDING].a_ac = rnd(10);
758 objects[IMPLANT_OF_DA_GUSHA].a_ac = rnd(10);
759 objects[IMPLANT_OF_FINGER_POINTING].a_ac = rnd(10);
761 objects[IMPLANT_OF_QUICKENING].a_ac = rnd(8);
762 objects[IMPLANT_OF_KARMA].a_ac = rnd(8);
763 objects[IMPLANT_OF_FERVOR].a_ac = rnd(8);
764 objects[IMPLANT_OF_TRANSCENDENCE].a_ac = rnd(8);
765 objects[IMPLANT_OF_ELUSION].a_ac = rnd(8);
766 objects[IMPLANT_OF_STATURE].a_ac = rnd(8);
767 objects[IMPLANT_OF_SUFFERING].a_ac = rnd(8);
768 objects[IMPLANT_OF_BADASS].a_ac = rnd(8);
769 objects[IMPLANT_OF_FAST_REPAIR].a_ac = rnd(8);
770 objects[IMPLANT_OF_PILFERING].a_ac = rnd(8);
771 objects[IMPLANT_OF_REPLENISHING].a_ac = rnd(8);
772 objects[IMPLANT_OF_HONOR].a_ac = rnd(8);
773 objects[IMPLANT_OF_CONTROL].a_ac = rnd(8);
774 objects[IMPLANT_OF_CLUMSINESS].a_ac = rnd(8);
775 objects[IMPLANT_OF_INSULATION].a_ac = rnd(8);
776 objects[IMPLANT_OF_FRAILTY].a_ac = rnd(8);
777 objects[IMPLANT_OF_KNOWLEDGE].a_ac = rnd(8);
778 objects[IMPLANT_OF_VENGEANCE].a_ac = rnd(8);
779 objects[IMPLANT_OF_BLISS].a_ac = rnd(8);
780 objects[IMPLANT_OF_BLITZEN].a_ac = rnd(8);
782 objects[IMPLANT_OF_TOTAL_NONSENSE].a_ac = rnd(8);
783 objects[IMPLANT_OF_BIG_OL].a_ac = rnd(8);
784 objects[IMPLANT_OF_ANAL_RETENTION].a_ac = rnd(8);
785 objects[IMPLANT_OF_GALVANIZATION].a_ac = rnd(8);
787 objects[IMPLANT_OF_IRE].a_ac = rnd(5);
788 objects[IMPLANT_OF_MALICE].a_ac = rnd(5);
789 objects[IMPLANT_OF_AGES].a_ac = rnd(5);
790 objects[IMPLANT_OF_SUSTENANCE].a_ac = rnd(5);
791 objects[IMPLANT_OF_TRUTH].a_ac = rnd(5);
792 objects[IMPLANT_OF_REMORSE].a_ac = rnd(5);
793 objects[IMPLANT_OF_GRACE].a_ac = rnd(5);
794 objects[IMPLANT_OF_WASTE].a_ac = rnd(5);
795 objects[IMPLANT_OF_COMBAT].a_ac = rnd(5);
796 objects[IMPLANT_OF_FAITH].a_ac = rnd(5);
797 objects[IMPLANT_OF_DISPATCH].a_ac = rnd(5);
798 objects[IMPLANT_OF_DREAD].a_ac = rnd(5);
799 objects[IMPLANT_OF_VITA].a_ac = rnd(5);
800 objects[IMPLANT_OF_MAGGOTS].a_ac = rnd(5);
801 objects[IMPLANT_OF_BEAUTY].a_ac = rnd(5);
802 objects[IMPLANT_OF_DUSK].a_ac = rnd(5);
803 objects[IMPLANT_OF_TRIBUTE].a_ac = rnd(5);
804 objects[IMPLANT_OF_INERTIA].a_ac = rnd(5);
805 objects[IMPLANT_OF_SWEETNESS].a_ac = rnd(5);
806 objects[IMPLANT_OF_IRRIGATION].a_ac = rnd(5);
807 objects[IMPLANT_OF_TWILIGHT].a_ac = rnd(5);
808 objects[IMPLANT_OF_MEMORY].a_ac = rnd(5);
809 objects[IMPLANT_OF_LOVE].a_ac = rnd(5);
810 objects[IMPLANT_OF_VINES].a_ac = rnd(5);
811 objects[IMPLANT_OF_ANIMA].a_ac = rnd(5);
812 objects[IMPLANT_OF_LINES].a_ac = rnd(5);
813 objects[IMPLANT_OF_THAWING].a_ac = rnd(5);
814 objects[IMPLANT_OF_DESIRE].a_ac = rnd(5);
815 objects[IMPLANT_OF_PAIN].a_ac = rnd(5);
816 objects[IMPLANT_OF_DARING].a_ac = rnd(5);
817 objects[IMPLANT_OF_CORRUPTION].a_ac = rnd(5);
818 objects[IMPLANT_OF_EVISCERATION].a_ac = rnd(5);
819 objects[IMPLANT_OF_TRAVELING].a_ac = rnd(5);
820 objects[IMPLANT_OF_CHEATING].a_ac = rnd(5);
821 objects[IMPLANT_OF_ANTHRAX].a_ac = rnd(5);
822 objects[IMPLANT_OF_ATTRITION].a_ac = rnd(5);
823 objects[IMPLANT_OF_HACKING].a_ac = rnd(5);
824 objects[IMPLANT_OF_PROSPERING].a_ac = rnd(5);
825 objects[IMPLANT_OF_VALHALLA].a_ac = rnd(5);
826 objects[IMPLANT_OF_DECEPTION].a_ac = rnd(5);
827 objects[IMPLANT_OF_BUTCHERY].a_ac = rnd(5);
828 objects[IMPLANT_OF_BLIZZARD].a_ac = rnd(5);
829 objects[IMPLANT_OF_TERROR].a_ac = rnd(5);
830 objects[IMPLANT_OF_DAWN].a_ac = rnd(5);
831 objects[IMPLANT_OF_BILE].a_ac = rnd(5);
832 objects[IMPLANT_OF_CREDIT].a_ac = rnd(5);
833 objects[IMPLANT_OF_QUOTA].a_ac = rnd(5);
834 objects[IMPLANT_OF_VIRILITY].a_ac = rnd(5);
835 objects[IMPLANT_OF_VANILLA].a_ac = rnd(5);
836 objects[IMPLANT_OF_HOPE].a_ac = rnd(5);
837 objects[IMPLANT_OF_ABRASION].a_ac = rnd(5);
838 objects[IMPLANT_OF_OSMOSIS].a_ac = rnd(5);
839 objects[IMPLANT_OF_NIRVANA].a_ac = rnd(5);
840 objects[IMPLANT_OF_ENVY].a_ac = rnd(5);
841 objects[IMPLANT_OF_ENNUI].a_ac = rnd(5);
842 objects[IMPLANT_OF_IMPOSSIBILITY].a_ac = rnd(5);
843 objects[IMPLANT_OF_ADMIRATION].a_ac = rnd(5);
844 objects[IMPLANT_OF_SUNLIGHT].a_ac = rnd(5);
845 objects[IMPLANT_OF_TSUNAMI].a_ac = rnd(5);
846 objects[IMPLANT_OF_FREEDOM].a_ac = rnd(5);
848 objects[IMPLANT_OF_TEN_THOUSAND_THINGS].a_ac = rnd(5);
849 objects[IMPLANT_OF_TOSSING].a_ac = rnd(5);
850 objects[IMPLANT_OF_HEAVY_LUBRICATION].a_ac = rnd(5);
851 objects[IMPLANT_OF_MISANTHROPHY].a_ac = rnd(5);
852 objects[IMPLANT_OF_CRAP].a_ac = rnd(5);
853 objects[IMPLANT_OF_KING_BEEFCAKE].a_ac = rnd(5);
854 objects[IMPLANT_OF_PUMPING].a_ac = rnd(5);
855 objects[IMPLANT_OF_WANNABE].a_ac = rnd(5);
856 objects[IMPLANT_OF_YOUR_MOMMA].a_ac = rnd(5);
857 objects[IMPLANT_OF_SWALLOWING].a_ac = rnd(5);
858 objects[IMPLANT_OF_MENSTRATING].a_ac = rnd(5);
859 objects[IMPLANT_OF_ENFORCING].a_ac = rnd(5);
861 objects[IMPLANT_OF_SERENITY].a_ac = rnd(9);
862 objects[IMPLANT_OF_GILGAMESH].a_ac = rnd(9);
863 objects[IMPLANT_OF_THE_PLANES].a_ac = rnd(9);
864 objects[IMPLANT_OF_RECKONING].a_ac = rnd(9);
865 objects[IMPLANT_OF_RESPECT].a_ac = rnd(9);
866 objects[IMPLANT_OF_EXCELLENCE].a_ac = rnd(9);
867 objects[IMPLANT_OF_PUNITION].a_ac = rnd(9);
868 objects[IMPLANT_OF_HUBRIS].a_ac = rnd(9);
869 objects[IMPLANT_OF_OMEN].a_ac = rnd(9);
870 objects[IMPLANT_OF_CARNAGE].a_ac = rnd(9);
872 objects[IMPLANT_OF_LEGEND].a_ac = rnd(9);
873 objects[IMPLANT_OF_VIRTUE].a_ac = rnd(9);
875 objects[IMPLANT_OF_FATE].a_ac = rnd(8);
876 objects[IMPLANT_OF_THE_SEA_LION].a_ac = rnd(8);
877 objects[IMPLANT_OF_JUSTICE].a_ac = rnd(8);
878 objects[IMPLANT_OF_DISASTER].a_ac = rnd(8);
879 objects[IMPLANT_OF_REDRESS].a_ac = rnd(8);
880 objects[IMPLANT_OF_QUARRELS].a_ac = rnd(8);
881 objects[IMPLANT_OF_PARANOIA].a_ac = rnd(8);
882 objects[IMPLANT_OF_TORMENT].a_ac = rnd(8);
883 objects[IMPLANT_OF_SWIFT_DEFEAT].a_ac = rnd(8);
884 objects[IMPLANT_OF_INTEGRITY].a_ac = rnd(8);
885 objects[IMPLANT_OF_CHASTITY].a_ac = rnd(8);
886 objects[IMPLANT_OF_BINDING].a_ac = rnd(8);
887 objects[IMPLANT_OF_MOLLIFICATION].a_ac = rnd(8);
888 objects[IMPLANT_OF_FULL_HEALING].a_ac = rnd(8);
889 objects[IMPLANT_OF_DESTRUCTION].a_ac = rnd(8);
890 objects[IMPLANT_OF_FRIENDSHIP].a_ac = rnd(8);
891 objects[IMPLANT_OF_SATIATION].a_ac = rnd(8);
892 objects[IMPLANT_OF_PRESERVATION].a_ac = rnd(8);
893 objects[IMPLANT_OF_QUICK_DRAWING].a_ac = rnd(8);
894 objects[IMPLANT_OF_WAND_CHARGING].a_ac = rnd(8);
896 objects[IMPLANT_OF_SORROW].a_ac = rnd(8);
897 objects[IMPLANT_OF_CLEAR_THINKING].a_ac = rnd(8);
898 objects[IMPLANT_OF_MIND_BLASTING].a_ac = rnd(8);
899 objects[IMPLANT_OF_THE_OCTOPUS].a_ac = rnd(8);
901 objects[IMPLANT_OF_FATE].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
902 objects[IMPLANT_OF_THE_SEA_LION].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
903 objects[IMPLANT_OF_JUSTICE].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
904 objects[IMPLANT_OF_DISASTER].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
905 objects[IMPLANT_OF_REDRESS].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
906 objects[IMPLANT_OF_QUARRELS].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
907 objects[IMPLANT_OF_PARANOIA].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
908 objects[IMPLANT_OF_TORMENT].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
909 objects[IMPLANT_OF_SWIFT_DEFEAT].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
910 objects[IMPLANT_OF_INTEGRITY].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
911 objects[IMPLANT_OF_CHASTITY].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
912 objects[IMPLANT_OF_BINDING].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
913 objects[IMPLANT_OF_MOLLIFICATION].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
914 objects[IMPLANT_OF_FULL_HEALING].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
915 objects[IMPLANT_OF_DESTRUCTION].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
916 objects[IMPLANT_OF_FRIENDSHIP].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
917 objects[IMPLANT_OF_SATIATION].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
918 objects[IMPLANT_OF_PRESERVATION].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
919 objects[IMPLANT_OF_QUICK_DRAWING].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
920 objects[IMPLANT_OF_WAND_CHARGING].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
922 objects[IMPLANT_OF_SORROW].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
923 objects[IMPLANT_OF_CLEAR_THINKING].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
924 objects[IMPLANT_OF_MIND_BLASTING].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
925 objects[IMPLANT_OF_THE_OCTOPUS].a_can = !rn2(5) ? rn1(6, 4) : rnd(3);
927 objects[IMPLANT_OF_QUICKENING].oc_oprop = randnastyenchantment();
928 objects[IMPLANT_OF_KARMA].oc_oprop = randnastyenchantment();
929 objects[IMPLANT_OF_FERVOR].oc_oprop = randnastyenchantment();
930 objects[IMPLANT_OF_TRANSCENDENCE].oc_oprop = randnastyenchantment();
931 objects[IMPLANT_OF_ELUSION].oc_oprop = randnastyenchantment();
932 objects[IMPLANT_OF_STATURE].oc_oprop = randnastyenchantment();
933 objects[IMPLANT_OF_SUFFERING].oc_oprop = randnastyenchantment();
934 objects[IMPLANT_OF_BADASS].oc_oprop = randnastyenchantment();
935 objects[IMPLANT_OF_FAST_REPAIR].oc_oprop = randnastyenchantment();
936 objects[IMPLANT_OF_PILFERING].oc_oprop = randnastyenchantment();
937 objects[IMPLANT_OF_REPLENISHING].oc_oprop = randnastyenchantment();
938 objects[IMPLANT_OF_HONOR].oc_oprop = randnastyenchantment();
939 objects[IMPLANT_OF_CONTROL].oc_oprop = randnastyenchantment();
940 objects[IMPLANT_OF_CLUMSINESS].oc_oprop = randnastyenchantment();
941 objects[IMPLANT_OF_INSULATION].oc_oprop = randnastyenchantment();
942 objects[IMPLANT_OF_FRAILTY].oc_oprop = randnastyenchantment();
943 objects[IMPLANT_OF_KNOWLEDGE].oc_oprop = randnastyenchantment();
944 objects[IMPLANT_OF_VENGEANCE].oc_oprop = randnastyenchantment();
945 objects[IMPLANT_OF_BLISS].oc_oprop = randnastyenchantment();
946 objects[IMPLANT_OF_BLITZEN].oc_oprop = randnastyenchantment();
948 objects[IMPLANT_OF_TOTAL_NONSENSE].oc_oprop = randnastyenchantment();
949 objects[IMPLANT_OF_BIG_OL].oc_oprop = randnastyenchantment();
950 objects[IMPLANT_OF_ANAL_RETENTION].oc_oprop = randnastyenchantment();
951 objects[IMPLANT_OF_GALVANIZATION].oc_oprop = randnastyenchantment();
953 objects[IMPLANT_OF_SERENITY].oc_oprop = randfemienchantment();
954 objects[IMPLANT_OF_GILGAMESH].oc_oprop = randfemienchantment();
955 objects[IMPLANT_OF_THE_PLANES].oc_oprop = randfemienchantment();
956 objects[IMPLANT_OF_RECKONING].oc_oprop = randfemienchantment();
957 objects[IMPLANT_OF_RESPECT].oc_oprop = randfemienchantment();
958 objects[IMPLANT_OF_EXCELLENCE].oc_oprop = randfemienchantment();
959 objects[IMPLANT_OF_PUNITION].oc_oprop = randfemienchantment();
960 objects[IMPLANT_OF_HUBRIS].oc_oprop = randfemienchantment();
961 objects[IMPLANT_OF_OMEN].oc_oprop = randfemienchantment();
962 objects[IMPLANT_OF_CARNAGE].oc_oprop = randfemienchantment();
964 objects[IMPLANT_OF_LEGEND].oc_oprop = randfemienchantment();
965 objects[IMPLANT_OF_VIRTUE].oc_oprop = randfemienchantment();
967 objects[IMPLANT_OF_IRE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
968 objects[IMPLANT_OF_MALICE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
969 objects[IMPLANT_OF_AGES].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
970 objects[IMPLANT_OF_SUSTENANCE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
971 objects[IMPLANT_OF_TRUTH].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
972 objects[IMPLANT_OF_REMORSE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
973 objects[IMPLANT_OF_GRACE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
974 objects[IMPLANT_OF_WASTE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
975 objects[IMPLANT_OF_COMBAT].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
976 objects[IMPLANT_OF_FAITH].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
977 objects[IMPLANT_OF_DISPATCH].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
978 objects[IMPLANT_OF_DREAD].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
979 objects[IMPLANT_OF_VITA].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
980 objects[IMPLANT_OF_MAGGOTS].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
981 objects[IMPLANT_OF_BEAUTY].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
982 objects[IMPLANT_OF_DUSK].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
983 objects[IMPLANT_OF_TRIBUTE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
984 objects[IMPLANT_OF_INERTIA].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
985 objects[IMPLANT_OF_SWEETNESS].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
986 objects[IMPLANT_OF_IRRIGATION].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
987 objects[IMPLANT_OF_TWILIGHT].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
988 objects[IMPLANT_OF_MEMORY].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
989 objects[IMPLANT_OF_LOVE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
990 objects[IMPLANT_OF_VINES].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
991 objects[IMPLANT_OF_ANIMA].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
992 objects[IMPLANT_OF_LINES].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
993 objects[IMPLANT_OF_THAWING].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
994 objects[IMPLANT_OF_DESIRE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
995 objects[IMPLANT_OF_PAIN].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
996 objects[IMPLANT_OF_DARING].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
997 objects[IMPLANT_OF_CORRUPTION].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
998 objects[IMPLANT_OF_EVISCERATION].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
999 objects[IMPLANT_OF_TRAVELING].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1000 objects[IMPLANT_OF_CHEATING].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1001 objects[IMPLANT_OF_ANTHRAX].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1002 objects[IMPLANT_OF_ATTRITION].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1003 objects[IMPLANT_OF_HACKING].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1004 objects[IMPLANT_OF_PROSPERING].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1005 objects[IMPLANT_OF_VALHALLA].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1006 objects[IMPLANT_OF_DECEPTION].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1007 objects[IMPLANT_OF_BUTCHERY].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1008 objects[IMPLANT_OF_BLIZZARD].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1009 objects[IMPLANT_OF_TERROR].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1010 objects[IMPLANT_OF_DAWN].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1011 objects[IMPLANT_OF_BILE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1012 objects[IMPLANT_OF_CREDIT].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1013 objects[IMPLANT_OF_QUOTA].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1014 objects[IMPLANT_OF_VIRILITY].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1015 objects[IMPLANT_OF_VANILLA].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1016 objects[IMPLANT_OF_HOPE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1017 objects[IMPLANT_OF_ABRASION].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1018 objects[IMPLANT_OF_OSMOSIS].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1019 objects[IMPLANT_OF_NIRVANA].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1020 objects[IMPLANT_OF_ENVY].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1021 objects[IMPLANT_OF_ENNUI].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1022 objects[IMPLANT_OF_IMPOSSIBILITY].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1023 objects[IMPLANT_OF_ADMIRATION].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1024 objects[IMPLANT_OF_SUNLIGHT].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1025 objects[IMPLANT_OF_TSUNAMI].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1026 objects[IMPLANT_OF_FREEDOM].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1028 objects[IMPLANT_OF_TEN_THOUSAND_THINGS].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1029 objects[IMPLANT_OF_TOSSING].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1030 objects[IMPLANT_OF_HEAVY_LUBRICATION].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1031 objects[IMPLANT_OF_MISANTHROPHY].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1032 objects[IMPLANT_OF_CRAP].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1033 objects[IMPLANT_OF_KING_BEEFCAKE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1034 objects[IMPLANT_OF_PUMPING].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1035 objects[IMPLANT_OF_WANNABE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1036 objects[IMPLANT_OF_YOUR_MOMMA].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1037 objects[IMPLANT_OF_SWALLOWING].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1038 objects[IMPLANT_OF_MENSTRATING].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1039 objects[IMPLANT_OF_ENFORCING].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1041 objects[DUMMY_CLOAK_A].a_can = rn2(4);
1042 objects[DUMMY_CLOAK_B].a_can = rn2(4);
1043 objects[DUMMY_CLOAK_C].a_can = rn2(4);
1044 objects[DUMMY_CLOAK_D].a_can = rn2(4);
1045 objects[DUMMY_CLOAK_E].a_can = rn2(4);
1046 objects[DUMMY_CLOAK_F].a_can = rn2(4);
1047 objects[DUMMY_CLOAK_G].a_can = rn2(4);
1048 objects[DUMMY_CLOAK_H].a_can = rn2(4);
1049 objects[DUMMY_CLOAK_I].a_can = rn2(4);
1050 objects[DUMMY_CLOAK_J].a_can = rn2(4);
1051 objects[DUMMY_CLOAK_K].a_can = rn2(4);
1052 objects[DUMMY_CLOAK_L].a_can = rn2(4);
1053 objects[DUMMY_CLOAK_M].a_can = rn2(4);
1054 objects[DUMMY_CLOAK_N].a_can = rn2(4);
1055 objects[DUMMY_CLOAK_O].a_can = rn2(4);
1056 objects[DUMMY_CLOAK_P].a_can = rn2(4);
1057 objects[DUMMY_CLOAK_Q].a_can = rn2(4);
1058 objects[DUMMY_CLOAK_R].a_can = rn2(4);
1059 objects[DUMMY_CLOAK_S].a_can = rn2(4);
1060 objects[DUMMY_CLOAK_T].a_can = rn2(4);
1061 objects[DUMMY_CLOAK_U].a_can = rn2(4);
1062 objects[DUMMY_CLOAK_V].a_can = rn2(4);
1063 objects[DUMMY_CLOAK_W].a_can = rn2(4);
1064 objects[DUMMY_CLOAK_X].a_can = rn2(4);
1065 objects[DUMMY_CLOAK_Y].a_can = rn2(4);
1066 objects[DUMMY_CLOAK_Z].a_can = rn2(4);
1067 objects[DUMMY_CLOAK_AA].a_can = rn2(4);
1068 objects[DUMMY_CLOAK_AB].a_can = rn2(4);
1069 objects[DUMMY_CLOAK_AC].a_can = rn2(4);
1070 objects[DUMMY_CLOAK_AD].a_can = rn2(4);
1071 objects[DUMMY_CLOAK_AE].a_can = rn2(4);
1072 objects[DUMMY_CLOAK_AF].a_can = rn2(4);
1073 objects[DUMMY_CLOAK_AG].a_can = rn2(4);
1074 objects[DUMMY_CLOAK_AH].a_can = rn2(4);
1075 objects[DUMMY_CLOAK_AI].a_can = rn2(4);
1076 objects[DUMMY_CLOAK_AJ].a_can = rn2(4);
1077 objects[DUMMY_CLOAK_AK].a_can = rn2(4);
1078 objects[DUMMY_CLOAK_AL].a_can = rn2(4);
1079 objects[DUMMY_CLOAK_AM].a_can = rn2(4);
1080 objects[DUMMY_CLOAK_AN].a_can = rn2(4);
1081 objects[DUMMY_CLOAK_AO].a_can = rn2(4);
1082 objects[DUMMY_CLOAK_AP].a_can = rn2(4);
1083 objects[DUMMY_CLOAK_AQ].a_can = rn2(4);
1084 objects[DUMMY_CLOAK_AR].a_can = rn2(4);
1085 objects[DUMMY_CLOAK_AS].a_can = rn2(4);
1086 objects[DUMMY_CLOAK_AT].a_can = rn2(4);
1087 objects[DUMMY_CLOAK_AU].a_can = rn2(4);
1088 objects[DUMMY_CLOAK_AV].a_can = rn2(4);
1089 objects[DUMMY_CLOAK_AW].a_can = rn2(4);
1090 objects[DUMMY_CLOAK_AX].a_can = rn2(4);
1092 objects[DUMMY_CLOAK_A].a_ac = 0;
1093 if (rn2(10)) objects[DUMMY_CLOAK_A].a_ac = 1;
1094 while (!rn2(3)) {
1095 if (objects[DUMMY_CLOAK_A].a_ac < 20) objects[DUMMY_CLOAK_A].a_ac++;
1097 objects[DUMMY_CLOAK_B].a_ac = 0;
1098 if (rn2(10)) objects[DUMMY_CLOAK_B].a_ac = 1;
1099 while (!rn2(3)) {
1100 if (objects[DUMMY_CLOAK_B].a_ac < 20) objects[DUMMY_CLOAK_B].a_ac++;
1102 objects[DUMMY_CLOAK_C].a_ac = 0;
1103 if (rn2(10)) objects[DUMMY_CLOAK_C].a_ac = 1;
1104 while (!rn2(3)) {
1105 if (objects[DUMMY_CLOAK_C].a_ac < 20) objects[DUMMY_CLOAK_C].a_ac++;
1107 objects[DUMMY_CLOAK_D].a_ac = 0;
1108 if (rn2(10)) objects[DUMMY_CLOAK_D].a_ac = 1;
1109 while (!rn2(3)) {
1110 if (objects[DUMMY_CLOAK_D].a_ac < 20) objects[DUMMY_CLOAK_D].a_ac++;
1112 objects[DUMMY_CLOAK_E].a_ac = 0;
1113 if (rn2(10)) objects[DUMMY_CLOAK_E].a_ac = 1;
1114 while (!rn2(3)) {
1115 if (objects[DUMMY_CLOAK_E].a_ac < 20) objects[DUMMY_CLOAK_E].a_ac++;
1117 objects[DUMMY_CLOAK_F].a_ac = 0;
1118 if (rn2(10)) objects[DUMMY_CLOAK_F].a_ac = 1;
1119 while (!rn2(3)) {
1120 if (objects[DUMMY_CLOAK_F].a_ac < 20) objects[DUMMY_CLOAK_F].a_ac++;
1122 objects[DUMMY_CLOAK_G].a_ac = 0;
1123 if (rn2(10)) objects[DUMMY_CLOAK_G].a_ac = 1;
1124 while (!rn2(3)) {
1125 if (objects[DUMMY_CLOAK_G].a_ac < 20) objects[DUMMY_CLOAK_G].a_ac++;
1127 objects[DUMMY_CLOAK_H].a_ac = 0;
1128 if (rn2(10)) objects[DUMMY_CLOAK_H].a_ac = 1;
1129 while (!rn2(3)) {
1130 if (objects[DUMMY_CLOAK_H].a_ac < 20) objects[DUMMY_CLOAK_H].a_ac++;
1132 objects[DUMMY_CLOAK_I].a_ac = 0;
1133 if (rn2(10)) objects[DUMMY_CLOAK_I].a_ac = 1;
1134 while (!rn2(3)) {
1135 if (objects[DUMMY_CLOAK_I].a_ac < 20) objects[DUMMY_CLOAK_I].a_ac++;
1137 objects[DUMMY_CLOAK_J].a_ac = 0;
1138 if (rn2(10)) objects[DUMMY_CLOAK_J].a_ac = 1;
1139 while (!rn2(3)) {
1140 if (objects[DUMMY_CLOAK_J].a_ac < 20) objects[DUMMY_CLOAK_J].a_ac++;
1142 objects[DUMMY_CLOAK_K].a_ac = 0;
1143 if (rn2(10)) objects[DUMMY_CLOAK_K].a_ac = 1;
1144 while (!rn2(3)) {
1145 if (objects[DUMMY_CLOAK_K].a_ac < 20) objects[DUMMY_CLOAK_K].a_ac++;
1147 objects[DUMMY_CLOAK_L].a_ac = 0;
1148 if (rn2(10)) objects[DUMMY_CLOAK_L].a_ac = 1;
1149 while (!rn2(3)) {
1150 if (objects[DUMMY_CLOAK_L].a_ac < 20) objects[DUMMY_CLOAK_L].a_ac++;
1152 objects[DUMMY_CLOAK_M].a_ac = 0;
1153 if (rn2(10)) objects[DUMMY_CLOAK_M].a_ac = 1;
1154 while (!rn2(3)) {
1155 if (objects[DUMMY_CLOAK_M].a_ac < 20) objects[DUMMY_CLOAK_M].a_ac++;
1157 objects[DUMMY_CLOAK_N].a_ac = 0;
1158 if (rn2(10)) objects[DUMMY_CLOAK_N].a_ac = 1;
1159 while (!rn2(3)) {
1160 if (objects[DUMMY_CLOAK_N].a_ac < 20) objects[DUMMY_CLOAK_N].a_ac++;
1162 objects[DUMMY_CLOAK_O].a_ac = 0;
1163 if (rn2(10)) objects[DUMMY_CLOAK_O].a_ac = 1;
1164 while (!rn2(3)) {
1165 if (objects[DUMMY_CLOAK_O].a_ac < 20) objects[DUMMY_CLOAK_O].a_ac++;
1167 objects[DUMMY_CLOAK_P].a_ac = 0;
1168 if (rn2(10)) objects[DUMMY_CLOAK_P].a_ac = 1;
1169 while (!rn2(3)) {
1170 if (objects[DUMMY_CLOAK_P].a_ac < 20) objects[DUMMY_CLOAK_P].a_ac++;
1172 objects[DUMMY_CLOAK_Q].a_ac = 0;
1173 if (rn2(10)) objects[DUMMY_CLOAK_Q].a_ac = 1;
1174 while (!rn2(3)) {
1175 if (objects[DUMMY_CLOAK_Q].a_ac < 20) objects[DUMMY_CLOAK_Q].a_ac++;
1177 objects[DUMMY_CLOAK_R].a_ac = 0;
1178 if (rn2(10)) objects[DUMMY_CLOAK_R].a_ac = 1;
1179 while (!rn2(3)) {
1180 if (objects[DUMMY_CLOAK_R].a_ac < 20) objects[DUMMY_CLOAK_R].a_ac++;
1182 objects[DUMMY_CLOAK_S].a_ac = 0;
1183 if (rn2(10)) objects[DUMMY_CLOAK_S].a_ac = 1;
1184 while (!rn2(3)) {
1185 if (objects[DUMMY_CLOAK_S].a_ac < 20) objects[DUMMY_CLOAK_S].a_ac++;
1187 objects[DUMMY_CLOAK_T].a_ac = 0;
1188 if (rn2(10)) objects[DUMMY_CLOAK_T].a_ac = 1;
1189 while (!rn2(3)) {
1190 if (objects[DUMMY_CLOAK_T].a_ac < 20) objects[DUMMY_CLOAK_T].a_ac++;
1192 objects[DUMMY_CLOAK_U].a_ac = 0;
1193 if (rn2(10)) objects[DUMMY_CLOAK_U].a_ac = 1;
1194 while (!rn2(3)) {
1195 if (objects[DUMMY_CLOAK_U].a_ac < 20) objects[DUMMY_CLOAK_U].a_ac++;
1197 objects[DUMMY_CLOAK_V].a_ac = 0;
1198 if (rn2(10)) objects[DUMMY_CLOAK_V].a_ac = 1;
1199 while (!rn2(3)) {
1200 if (objects[DUMMY_CLOAK_V].a_ac < 20) objects[DUMMY_CLOAK_V].a_ac++;
1202 objects[DUMMY_CLOAK_W].a_ac = 0;
1203 if (rn2(10)) objects[DUMMY_CLOAK_W].a_ac = 1;
1204 while (!rn2(3)) {
1205 if (objects[DUMMY_CLOAK_W].a_ac < 20) objects[DUMMY_CLOAK_W].a_ac++;
1207 objects[DUMMY_CLOAK_X].a_ac = 0;
1208 if (rn2(10)) objects[DUMMY_CLOAK_X].a_ac = 1;
1209 while (!rn2(3)) {
1210 if (objects[DUMMY_CLOAK_X].a_ac < 20) objects[DUMMY_CLOAK_X].a_ac++;
1212 objects[DUMMY_CLOAK_Y].a_ac = 0;
1213 if (rn2(10)) objects[DUMMY_CLOAK_Y].a_ac = 1;
1214 while (!rn2(3)) {
1215 if (objects[DUMMY_CLOAK_Y].a_ac < 20) objects[DUMMY_CLOAK_Y].a_ac++;
1217 objects[DUMMY_CLOAK_Z].a_ac = 0;
1218 if (rn2(10)) objects[DUMMY_CLOAK_Z].a_ac = 1;
1219 while (!rn2(3)) {
1220 if (objects[DUMMY_CLOAK_Z].a_ac < 20) objects[DUMMY_CLOAK_Z].a_ac++;
1222 objects[DUMMY_CLOAK_AA].a_ac = 0;
1223 if (rn2(10)) objects[DUMMY_CLOAK_AA].a_ac = 1;
1224 while (!rn2(3)) {
1225 if (objects[DUMMY_CLOAK_AA].a_ac < 20) objects[DUMMY_CLOAK_AA].a_ac++;
1227 objects[DUMMY_CLOAK_AB].a_ac = 0;
1228 if (rn2(10)) objects[DUMMY_CLOAK_AB].a_ac = 1;
1229 while (!rn2(3)) {
1230 if (objects[DUMMY_CLOAK_AB].a_ac < 20) objects[DUMMY_CLOAK_AB].a_ac++;
1232 objects[DUMMY_CLOAK_AC].a_ac = 0;
1233 if (rn2(10)) objects[DUMMY_CLOAK_AC].a_ac = 1;
1234 while (!rn2(3)) {
1235 if (objects[DUMMY_CLOAK_AC].a_ac < 20) objects[DUMMY_CLOAK_AC].a_ac++;
1237 objects[DUMMY_CLOAK_AD].a_ac = 0;
1238 if (rn2(10)) objects[DUMMY_CLOAK_AD].a_ac = 1;
1239 while (!rn2(3)) {
1240 if (objects[DUMMY_CLOAK_AD].a_ac < 20) objects[DUMMY_CLOAK_AD].a_ac++;
1242 objects[DUMMY_CLOAK_AE].a_ac = 0;
1243 if (rn2(10)) objects[DUMMY_CLOAK_AE].a_ac = 1;
1244 while (!rn2(3)) {
1245 if (objects[DUMMY_CLOAK_AE].a_ac < 20) objects[DUMMY_CLOAK_AE].a_ac++;
1247 objects[DUMMY_CLOAK_AF].a_ac = 0;
1248 if (rn2(10)) objects[DUMMY_CLOAK_AF].a_ac = 1;
1249 while (!rn2(3)) {
1250 if (objects[DUMMY_CLOAK_AF].a_ac < 20) objects[DUMMY_CLOAK_AF].a_ac++;
1252 objects[DUMMY_CLOAK_AG].a_ac = 0;
1253 if (rn2(10)) objects[DUMMY_CLOAK_AG].a_ac = 1;
1254 while (!rn2(3)) {
1255 if (objects[DUMMY_CLOAK_AG].a_ac < 20) objects[DUMMY_CLOAK_AG].a_ac++;
1257 objects[DUMMY_CLOAK_AH].a_ac = 0;
1258 if (rn2(10)) objects[DUMMY_CLOAK_AH].a_ac = 1;
1259 while (!rn2(3)) {
1260 if (objects[DUMMY_CLOAK_AH].a_ac < 20) objects[DUMMY_CLOAK_AH].a_ac++;
1262 objects[DUMMY_CLOAK_AI].a_ac = 0;
1263 if (rn2(10)) objects[DUMMY_CLOAK_AI].a_ac = 1;
1264 while (!rn2(3)) {
1265 if (objects[DUMMY_CLOAK_AI].a_ac < 20) objects[DUMMY_CLOAK_AI].a_ac++;
1267 objects[DUMMY_CLOAK_AJ].a_ac = 0;
1268 if (rn2(10)) objects[DUMMY_CLOAK_AJ].a_ac = 1;
1269 while (!rn2(3)) {
1270 if (objects[DUMMY_CLOAK_AJ].a_ac < 20) objects[DUMMY_CLOAK_AJ].a_ac++;
1272 objects[DUMMY_CLOAK_AK].a_ac = 0;
1273 if (rn2(10)) objects[DUMMY_CLOAK_AK].a_ac = 1;
1274 while (!rn2(3)) {
1275 if (objects[DUMMY_CLOAK_AK].a_ac < 20) objects[DUMMY_CLOAK_AK].a_ac++;
1277 objects[DUMMY_CLOAK_AL].a_ac = 0;
1278 if (rn2(10)) objects[DUMMY_CLOAK_AL].a_ac = 1;
1279 while (!rn2(3)) {
1280 if (objects[DUMMY_CLOAK_AL].a_ac < 20) objects[DUMMY_CLOAK_AL].a_ac++;
1282 objects[DUMMY_CLOAK_AM].a_ac = 0;
1283 if (rn2(10)) objects[DUMMY_CLOAK_AM].a_ac = 1;
1284 while (!rn2(3)) {
1285 if (objects[DUMMY_CLOAK_AM].a_ac < 20) objects[DUMMY_CLOAK_AM].a_ac++;
1287 objects[DUMMY_CLOAK_AN].a_ac = 0;
1288 if (rn2(10)) objects[DUMMY_CLOAK_AN].a_ac = 1;
1289 while (!rn2(3)) {
1290 if (objects[DUMMY_CLOAK_AN].a_ac < 20) objects[DUMMY_CLOAK_AN].a_ac++;
1292 objects[DUMMY_CLOAK_AO].a_ac = 0;
1293 if (rn2(10)) objects[DUMMY_CLOAK_AO].a_ac = 1;
1294 while (!rn2(3)) {
1295 if (objects[DUMMY_CLOAK_AO].a_ac < 20) objects[DUMMY_CLOAK_AO].a_ac++;
1297 objects[DUMMY_CLOAK_AP].a_ac = 0;
1298 if (rn2(10)) objects[DUMMY_CLOAK_AP].a_ac = 1;
1299 while (!rn2(3)) {
1300 if (objects[DUMMY_CLOAK_AP].a_ac < 20) objects[DUMMY_CLOAK_AP].a_ac++;
1302 objects[DUMMY_CLOAK_AQ].a_ac = 0;
1303 if (rn2(10)) objects[DUMMY_CLOAK_AQ].a_ac = 1;
1304 while (!rn2(3)) {
1305 if (objects[DUMMY_CLOAK_AQ].a_ac < 20) objects[DUMMY_CLOAK_AQ].a_ac++;
1307 objects[DUMMY_CLOAK_AR].a_ac = 0;
1308 if (rn2(10)) objects[DUMMY_CLOAK_AR].a_ac = 1;
1309 while (!rn2(3)) {
1310 if (objects[DUMMY_CLOAK_AR].a_ac < 20) objects[DUMMY_CLOAK_AR].a_ac++;
1312 objects[DUMMY_CLOAK_AS].a_ac = 0;
1313 if (rn2(10)) objects[DUMMY_CLOAK_AS].a_ac = 1;
1314 while (!rn2(3)) {
1315 if (objects[DUMMY_CLOAK_AS].a_ac < 20) objects[DUMMY_CLOAK_AS].a_ac++;
1317 objects[DUMMY_CLOAK_AT].a_ac = 0;
1318 if (rn2(10)) objects[DUMMY_CLOAK_AT].a_ac = 1;
1319 while (!rn2(3)) {
1320 if (objects[DUMMY_CLOAK_AT].a_ac < 20) objects[DUMMY_CLOAK_AT].a_ac++;
1322 objects[DUMMY_CLOAK_AU].a_ac = 0;
1323 if (rn2(10)) objects[DUMMY_CLOAK_AU].a_ac = 1;
1324 while (!rn2(3)) {
1325 if (objects[DUMMY_CLOAK_AU].a_ac < 20) objects[DUMMY_CLOAK_AU].a_ac++;
1327 objects[DUMMY_CLOAK_AV].a_ac = 0;
1328 if (rn2(10)) objects[DUMMY_CLOAK_AV].a_ac = 1;
1329 while (!rn2(3)) {
1330 if (objects[DUMMY_CLOAK_AV].a_ac < 20) objects[DUMMY_CLOAK_AV].a_ac++;
1332 objects[DUMMY_CLOAK_AW].a_ac = 0;
1333 if (rn2(10)) objects[DUMMY_CLOAK_AW].a_ac = 1;
1334 while (!rn2(3)) {
1335 if (objects[DUMMY_CLOAK_AW].a_ac < 20) objects[DUMMY_CLOAK_AW].a_ac++;
1337 objects[DUMMY_CLOAK_AX].a_ac = 0;
1338 if (rn2(10)) objects[DUMMY_CLOAK_AX].a_ac = 1;
1339 while (!rn2(3)) {
1340 if (objects[DUMMY_CLOAK_AX].a_ac < 20) objects[DUMMY_CLOAK_AX].a_ac++;
1343 objects[DUMMY_HELMET_A].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1344 objects[DUMMY_HELMET_B].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1345 objects[DUMMY_HELMET_C].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1346 objects[DUMMY_HELMET_D].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1347 objects[DUMMY_HELMET_E].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1348 objects[DUMMY_HELMET_F].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1349 objects[DUMMY_HELMET_G].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1350 objects[DUMMY_HELMET_H].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1351 objects[DUMMY_HELMET_I].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1352 objects[DUMMY_HELMET_J].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1353 objects[DUMMY_HELMET_K].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1354 objects[DUMMY_HELMET_L].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1355 objects[DUMMY_HELMET_M].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1356 objects[DUMMY_HELMET_N].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1357 objects[DUMMY_HELMET_O].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1358 objects[DUMMY_HELMET_P].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1359 objects[DUMMY_HELMET_Q].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1360 objects[DUMMY_HELMET_R].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1361 objects[DUMMY_HELMET_S].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1362 objects[DUMMY_HELMET_T].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1363 objects[DUMMY_HELMET_U].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1364 objects[DUMMY_HELMET_V].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1365 objects[DUMMY_HELMET_W].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1366 objects[DUMMY_HELMET_X].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1367 objects[DUMMY_HELMET_Y].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1368 objects[DUMMY_HELMET_Z].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1369 objects[DUMMY_HELMET_AA].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1370 objects[DUMMY_HELMET_AB].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1371 objects[DUMMY_HELMET_AC].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1372 objects[DUMMY_HELMET_AD].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1373 objects[DUMMY_HELMET_AE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1374 objects[DUMMY_HELMET_AF].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1375 objects[DUMMY_HELMET_AG].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1377 objects[DUMMY_HELMET_A].a_can = rnd(10) ? 0 : rnd(3);
1378 objects[DUMMY_HELMET_B].a_can = rnd(10) ? 0 : rnd(3);
1379 objects[DUMMY_HELMET_C].a_can = rnd(10) ? 0 : rnd(3);
1380 objects[DUMMY_HELMET_D].a_can = rnd(10) ? 0 : rnd(3);
1381 objects[DUMMY_HELMET_E].a_can = rnd(10) ? 0 : rnd(3);
1382 objects[DUMMY_HELMET_F].a_can = rnd(10) ? 0 : rnd(3);
1383 objects[DUMMY_HELMET_G].a_can = rnd(10) ? 0 : rnd(3);
1384 objects[DUMMY_HELMET_H].a_can = rnd(10) ? 0 : rnd(3);
1385 objects[DUMMY_HELMET_I].a_can = rnd(10) ? 0 : rnd(3);
1386 objects[DUMMY_HELMET_J].a_can = rnd(10) ? 0 : rnd(3);
1387 objects[DUMMY_HELMET_K].a_can = rnd(10) ? 0 : rnd(3);
1388 objects[DUMMY_HELMET_L].a_can = rnd(10) ? 0 : rnd(3);
1389 objects[DUMMY_HELMET_M].a_can = rnd(10) ? 0 : rnd(3);
1390 objects[DUMMY_HELMET_N].a_can = rnd(10) ? 0 : rnd(3);
1391 objects[DUMMY_HELMET_O].a_can = rnd(10) ? 0 : rnd(3);
1392 objects[DUMMY_HELMET_P].a_can = rnd(10) ? 0 : rnd(3);
1393 objects[DUMMY_HELMET_Q].a_can = rnd(10) ? 0 : rnd(3);
1394 objects[DUMMY_HELMET_R].a_can = rnd(10) ? 0 : rnd(3);
1395 objects[DUMMY_HELMET_S].a_can = rnd(10) ? 0 : rnd(3);
1396 objects[DUMMY_HELMET_T].a_can = rnd(10) ? 0 : rnd(3);
1397 objects[DUMMY_HELMET_U].a_can = rnd(10) ? 0 : rnd(3);
1398 objects[DUMMY_HELMET_V].a_can = rnd(10) ? 0 : rnd(3);
1399 objects[DUMMY_HELMET_W].a_can = rnd(10) ? 0 : rnd(3);
1400 objects[DUMMY_HELMET_X].a_can = rnd(10) ? 0 : rnd(3);
1401 objects[DUMMY_HELMET_Y].a_can = rnd(10) ? 0 : rnd(3);
1402 objects[DUMMY_HELMET_Z].a_can = rnd(10) ? 0 : rnd(3);
1403 objects[DUMMY_HELMET_AA].a_can = rnd(10) ? 0 : rnd(3);
1404 objects[DUMMY_HELMET_AB].a_can = rnd(10) ? 0 : rnd(3);
1405 objects[DUMMY_HELMET_AC].a_can = rnd(10) ? 0 : rnd(3);
1406 objects[DUMMY_HELMET_AD].a_can = rnd(10) ? 0 : rnd(3);
1407 objects[DUMMY_HELMET_AE].a_can = rnd(10) ? 0 : rnd(3);
1408 objects[DUMMY_HELMET_AF].a_can = rnd(10) ? 0 : rnd(3);
1409 objects[DUMMY_HELMET_AG].a_can = rnd(10) ? 0 : rnd(3);
1411 objects[DUMMY_HELMET_A].a_ac = 0;
1412 if (rn2(10)) objects[DUMMY_HELMET_A].a_ac = 1;
1413 while (!rn2(3)) {
1414 if (objects[DUMMY_HELMET_A].a_ac < 20) objects[DUMMY_HELMET_A].a_ac++;
1416 objects[DUMMY_HELMET_B].a_ac = 0;
1417 if (rn2(10)) objects[DUMMY_HELMET_B].a_ac = 1;
1418 while (!rn2(3)) {
1419 if (objects[DUMMY_HELMET_B].a_ac < 20) objects[DUMMY_HELMET_B].a_ac++;
1421 objects[DUMMY_HELMET_C].a_ac = 0;
1422 if (rn2(10)) objects[DUMMY_HELMET_C].a_ac = 1;
1423 while (!rn2(3)) {
1424 if (objects[DUMMY_HELMET_C].a_ac < 20) objects[DUMMY_HELMET_C].a_ac++;
1426 objects[DUMMY_HELMET_D].a_ac = 0;
1427 if (rn2(10)) objects[DUMMY_HELMET_D].a_ac = 1;
1428 while (!rn2(3)) {
1429 if (objects[DUMMY_HELMET_D].a_ac < 20) objects[DUMMY_HELMET_D].a_ac++;
1431 objects[DUMMY_HELMET_E].a_ac = 0;
1432 if (rn2(10)) objects[DUMMY_HELMET_E].a_ac = 1;
1433 while (!rn2(3)) {
1434 if (objects[DUMMY_HELMET_E].a_ac < 20) objects[DUMMY_HELMET_E].a_ac++;
1436 objects[DUMMY_HELMET_F].a_ac = 0;
1437 if (rn2(10)) objects[DUMMY_HELMET_F].a_ac = 1;
1438 while (!rn2(3)) {
1439 if (objects[DUMMY_HELMET_F].a_ac < 20) objects[DUMMY_HELMET_F].a_ac++;
1441 objects[DUMMY_HELMET_G].a_ac = 0;
1442 if (rn2(10)) objects[DUMMY_HELMET_G].a_ac = 1;
1443 while (!rn2(3)) {
1444 if (objects[DUMMY_HELMET_G].a_ac < 20) objects[DUMMY_HELMET_G].a_ac++;
1446 objects[DUMMY_HELMET_H].a_ac = 0;
1447 if (rn2(10)) objects[DUMMY_HELMET_H].a_ac = 1;
1448 while (!rn2(3)) {
1449 if (objects[DUMMY_HELMET_H].a_ac < 20) objects[DUMMY_HELMET_H].a_ac++;
1451 objects[DUMMY_HELMET_I].a_ac = 0;
1452 if (rn2(10)) objects[DUMMY_HELMET_I].a_ac = 1;
1453 while (!rn2(3)) {
1454 if (objects[DUMMY_HELMET_I].a_ac < 20) objects[DUMMY_HELMET_I].a_ac++;
1456 objects[DUMMY_HELMET_J].a_ac = 0;
1457 if (rn2(10)) objects[DUMMY_HELMET_J].a_ac = 1;
1458 while (!rn2(3)) {
1459 if (objects[DUMMY_HELMET_J].a_ac < 20) objects[DUMMY_HELMET_J].a_ac++;
1461 objects[DUMMY_HELMET_K].a_ac = 0;
1462 if (rn2(10)) objects[DUMMY_HELMET_K].a_ac = 1;
1463 while (!rn2(3)) {
1464 if (objects[DUMMY_HELMET_K].a_ac < 20) objects[DUMMY_HELMET_K].a_ac++;
1466 objects[DUMMY_HELMET_L].a_ac = 0;
1467 if (rn2(10)) objects[DUMMY_HELMET_L].a_ac = 1;
1468 while (!rn2(3)) {
1469 if (objects[DUMMY_HELMET_L].a_ac < 20) objects[DUMMY_HELMET_L].a_ac++;
1471 objects[DUMMY_HELMET_M].a_ac = 0;
1472 if (rn2(10)) objects[DUMMY_HELMET_M].a_ac = 1;
1473 while (!rn2(3)) {
1474 if (objects[DUMMY_HELMET_M].a_ac < 20) objects[DUMMY_HELMET_M].a_ac++;
1476 objects[DUMMY_HELMET_N].a_ac = 0;
1477 if (rn2(10)) objects[DUMMY_HELMET_N].a_ac = 1;
1478 while (!rn2(3)) {
1479 if (objects[DUMMY_HELMET_N].a_ac < 20) objects[DUMMY_HELMET_N].a_ac++;
1481 objects[DUMMY_HELMET_O].a_ac = 0;
1482 if (rn2(10)) objects[DUMMY_HELMET_O].a_ac = 1;
1483 while (!rn2(3)) {
1484 if (objects[DUMMY_HELMET_O].a_ac < 20) objects[DUMMY_HELMET_O].a_ac++;
1486 objects[DUMMY_HELMET_P].a_ac = 0;
1487 if (rn2(10)) objects[DUMMY_HELMET_P].a_ac = 1;
1488 while (!rn2(3)) {
1489 if (objects[DUMMY_HELMET_P].a_ac < 20) objects[DUMMY_HELMET_P].a_ac++;
1491 objects[DUMMY_HELMET_Q].a_ac = 0;
1492 if (rn2(10)) objects[DUMMY_HELMET_Q].a_ac = 1;
1493 while (!rn2(3)) {
1494 if (objects[DUMMY_HELMET_Q].a_ac < 20) objects[DUMMY_HELMET_Q].a_ac++;
1496 objects[DUMMY_HELMET_R].a_ac = 0;
1497 if (rn2(10)) objects[DUMMY_HELMET_R].a_ac = 1;
1498 while (!rn2(3)) {
1499 if (objects[DUMMY_HELMET_R].a_ac < 20) objects[DUMMY_HELMET_R].a_ac++;
1501 objects[DUMMY_HELMET_S].a_ac = 0;
1502 if (rn2(10)) objects[DUMMY_HELMET_S].a_ac = 1;
1503 while (!rn2(3)) {
1504 if (objects[DUMMY_HELMET_S].a_ac < 20) objects[DUMMY_HELMET_S].a_ac++;
1506 objects[DUMMY_HELMET_T].a_ac = 0;
1507 if (rn2(10)) objects[DUMMY_HELMET_T].a_ac = 1;
1508 while (!rn2(3)) {
1509 if (objects[DUMMY_HELMET_T].a_ac < 20) objects[DUMMY_HELMET_T].a_ac++;
1511 objects[DUMMY_HELMET_U].a_ac = 0;
1512 if (rn2(10)) objects[DUMMY_HELMET_U].a_ac = 1;
1513 while (!rn2(3)) {
1514 if (objects[DUMMY_HELMET_U].a_ac < 20) objects[DUMMY_HELMET_U].a_ac++;
1516 objects[DUMMY_HELMET_V].a_ac = 0;
1517 if (rn2(10)) objects[DUMMY_HELMET_V].a_ac = 1;
1518 while (!rn2(3)) {
1519 if (objects[DUMMY_HELMET_V].a_ac < 20) objects[DUMMY_HELMET_V].a_ac++;
1521 objects[DUMMY_HELMET_W].a_ac = 0;
1522 if (rn2(10)) objects[DUMMY_HELMET_W].a_ac = 1;
1523 while (!rn2(3)) {
1524 if (objects[DUMMY_HELMET_W].a_ac < 20) objects[DUMMY_HELMET_W].a_ac++;
1526 objects[DUMMY_HELMET_X].a_ac = 0;
1527 if (rn2(10)) objects[DUMMY_HELMET_X].a_ac = 1;
1528 while (!rn2(3)) {
1529 if (objects[DUMMY_HELMET_X].a_ac < 20) objects[DUMMY_HELMET_X].a_ac++;
1531 objects[DUMMY_HELMET_Y].a_ac = 0;
1532 if (rn2(10)) objects[DUMMY_HELMET_Y].a_ac = 1;
1533 while (!rn2(3)) {
1534 if (objects[DUMMY_HELMET_Y].a_ac < 20) objects[DUMMY_HELMET_Y].a_ac++;
1536 objects[DUMMY_HELMET_Z].a_ac = 0;
1537 if (rn2(10)) objects[DUMMY_HELMET_Z].a_ac = 1;
1538 while (!rn2(3)) {
1539 if (objects[DUMMY_HELMET_Z].a_ac < 20) objects[DUMMY_HELMET_Z].a_ac++;
1541 objects[DUMMY_HELMET_AA].a_ac = 0;
1542 if (rn2(10)) objects[DUMMY_HELMET_AA].a_ac = 1;
1543 while (!rn2(3)) {
1544 if (objects[DUMMY_HELMET_AA].a_ac < 20) objects[DUMMY_HELMET_AA].a_ac++;
1546 objects[DUMMY_HELMET_AB].a_ac = 0;
1547 if (rn2(10)) objects[DUMMY_HELMET_AB].a_ac = 1;
1548 while (!rn2(3)) {
1549 if (objects[DUMMY_HELMET_AB].a_ac < 20) objects[DUMMY_HELMET_AB].a_ac++;
1551 objects[DUMMY_HELMET_AC].a_ac = 0;
1552 if (rn2(10)) objects[DUMMY_HELMET_AC].a_ac = 1;
1553 while (!rn2(3)) {
1554 if (objects[DUMMY_HELMET_AC].a_ac < 20) objects[DUMMY_HELMET_AC].a_ac++;
1556 objects[DUMMY_HELMET_AD].a_ac = 0;
1557 if (rn2(10)) objects[DUMMY_HELMET_AD].a_ac = 1;
1558 while (!rn2(3)) {
1559 if (objects[DUMMY_HELMET_AD].a_ac < 20) objects[DUMMY_HELMET_AD].a_ac++;
1561 objects[DUMMY_HELMET_AE].a_ac = 0;
1562 if (rn2(10)) objects[DUMMY_HELMET_AE].a_ac = 1;
1563 while (!rn2(3)) {
1564 if (objects[DUMMY_HELMET_AE].a_ac < 20) objects[DUMMY_HELMET_AE].a_ac++;
1566 objects[DUMMY_HELMET_AF].a_ac = 0;
1567 if (rn2(10)) objects[DUMMY_HELMET_AF].a_ac = 1;
1568 while (!rn2(3)) {
1569 if (objects[DUMMY_HELMET_AF].a_ac < 20) objects[DUMMY_HELMET_AF].a_ac++;
1571 objects[DUMMY_HELMET_AG].a_ac = 0;
1572 if (rn2(10)) objects[DUMMY_HELMET_AG].a_ac = 1;
1573 while (!rn2(3)) {
1574 if (objects[DUMMY_HELMET_AG].a_ac < 20) objects[DUMMY_HELMET_AG].a_ac++;
1577 objects[DUMMY_GLOVES_A].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1578 objects[DUMMY_GLOVES_B].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1579 objects[DUMMY_GLOVES_C].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1580 objects[DUMMY_GLOVES_D].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1581 objects[DUMMY_GLOVES_E].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1582 objects[DUMMY_GLOVES_F].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1583 objects[DUMMY_GLOVES_G].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1584 objects[DUMMY_GLOVES_H].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1585 objects[DUMMY_GLOVES_I].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1586 objects[DUMMY_GLOVES_J].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1587 objects[DUMMY_GLOVES_K].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1588 objects[DUMMY_GLOVES_L].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1589 objects[DUMMY_GLOVES_M].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1590 objects[DUMMY_GLOVES_N].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1591 objects[DUMMY_GLOVES_O].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1592 objects[DUMMY_GLOVES_P].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1593 objects[DUMMY_GLOVES_Q].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1594 objects[DUMMY_GLOVES_R].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1595 objects[DUMMY_GLOVES_S].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1596 objects[DUMMY_GLOVES_T].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1597 objects[DUMMY_GLOVES_U].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1598 objects[DUMMY_GLOVES_V].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1599 objects[DUMMY_GLOVES_W].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1600 objects[DUMMY_GLOVES_X].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1601 objects[DUMMY_GLOVES_Y].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1602 objects[DUMMY_GLOVES_Z].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1603 objects[DUMMY_GLOVES_AA].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1604 objects[DUMMY_GLOVES_AB].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1605 objects[DUMMY_GLOVES_AC].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1606 objects[DUMMY_GLOVES_AD].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1607 objects[DUMMY_GLOVES_AE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1608 objects[DUMMY_GLOVES_AF].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1609 objects[DUMMY_GLOVES_AG].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1610 objects[DUMMY_GLOVES_AH].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1611 objects[DUMMY_GLOVES_AI].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1613 objects[DUMMY_GLOVES_A].a_can = rnd(10) ? 0 : rnd(3);
1614 objects[DUMMY_GLOVES_B].a_can = rnd(10) ? 0 : rnd(3);
1615 objects[DUMMY_GLOVES_C].a_can = rnd(10) ? 0 : rnd(3);
1616 objects[DUMMY_GLOVES_D].a_can = rnd(10) ? 0 : rnd(3);
1617 objects[DUMMY_GLOVES_E].a_can = rnd(10) ? 0 : rnd(3);
1618 objects[DUMMY_GLOVES_F].a_can = rnd(10) ? 0 : rnd(3);
1619 objects[DUMMY_GLOVES_G].a_can = rnd(10) ? 0 : rnd(3);
1620 objects[DUMMY_GLOVES_H].a_can = rnd(10) ? 0 : rnd(3);
1621 objects[DUMMY_GLOVES_I].a_can = rnd(10) ? 0 : rnd(3);
1622 objects[DUMMY_GLOVES_J].a_can = rnd(10) ? 0 : rnd(3);
1623 objects[DUMMY_GLOVES_K].a_can = rnd(10) ? 0 : rnd(3);
1624 objects[DUMMY_GLOVES_L].a_can = rnd(10) ? 0 : rnd(3);
1625 objects[DUMMY_GLOVES_M].a_can = rnd(10) ? 0 : rnd(3);
1626 objects[DUMMY_GLOVES_N].a_can = rnd(10) ? 0 : rnd(3);
1627 objects[DUMMY_GLOVES_O].a_can = rnd(10) ? 0 : rnd(3);
1628 objects[DUMMY_GLOVES_P].a_can = rnd(10) ? 0 : rnd(3);
1629 objects[DUMMY_GLOVES_Q].a_can = rnd(10) ? 0 : rnd(3);
1630 objects[DUMMY_GLOVES_R].a_can = rnd(10) ? 0 : rnd(3);
1631 objects[DUMMY_GLOVES_S].a_can = rnd(10) ? 0 : rnd(3);
1632 objects[DUMMY_GLOVES_T].a_can = rnd(10) ? 0 : rnd(3);
1633 objects[DUMMY_GLOVES_U].a_can = rnd(10) ? 0 : rnd(3);
1634 objects[DUMMY_GLOVES_V].a_can = rnd(10) ? 0 : rnd(3);
1635 objects[DUMMY_GLOVES_W].a_can = rnd(10) ? 0 : rnd(3);
1636 objects[DUMMY_GLOVES_X].a_can = rnd(10) ? 0 : rnd(3);
1637 objects[DUMMY_GLOVES_Y].a_can = rnd(10) ? 0 : rnd(3);
1638 objects[DUMMY_GLOVES_Z].a_can = rnd(10) ? 0 : rnd(3);
1639 objects[DUMMY_GLOVES_AA].a_can = rnd(10) ? 0 : rnd(3);
1640 objects[DUMMY_GLOVES_AB].a_can = rnd(10) ? 0 : rnd(3);
1641 objects[DUMMY_GLOVES_AC].a_can = rnd(10) ? 0 : rnd(3);
1642 objects[DUMMY_GLOVES_AD].a_can = rnd(10) ? 0 : rnd(3);
1643 objects[DUMMY_GLOVES_AE].a_can = rnd(10) ? 0 : rnd(3);
1644 objects[DUMMY_GLOVES_AF].a_can = rnd(10) ? 0 : rnd(3);
1645 objects[DUMMY_GLOVES_AG].a_can = rnd(10) ? 0 : rnd(3);
1646 objects[DUMMY_GLOVES_AH].a_can = rnd(10) ? 0 : rnd(3);
1647 objects[DUMMY_GLOVES_AI].a_can = rnd(10) ? 0 : rnd(3);
1649 objects[DUMMY_GLOVES_A].a_ac = 0;
1650 if (rn2(10)) objects[DUMMY_GLOVES_A].a_ac = 1;
1651 while (!rn2(3)) {
1652 if (objects[DUMMY_GLOVES_A].a_ac < 20) objects[DUMMY_GLOVES_A].a_ac++;
1654 objects[DUMMY_GLOVES_B].a_ac = 0;
1655 if (rn2(10)) objects[DUMMY_GLOVES_B].a_ac = 1;
1656 while (!rn2(3)) {
1657 if (objects[DUMMY_GLOVES_B].a_ac < 20) objects[DUMMY_GLOVES_B].a_ac++;
1659 objects[DUMMY_GLOVES_C].a_ac = 0;
1660 if (rn2(10)) objects[DUMMY_GLOVES_C].a_ac = 1;
1661 while (!rn2(3)) {
1662 if (objects[DUMMY_GLOVES_C].a_ac < 20) objects[DUMMY_GLOVES_C].a_ac++;
1664 objects[DUMMY_GLOVES_D].a_ac = 0;
1665 if (rn2(10)) objects[DUMMY_GLOVES_D].a_ac = 1;
1666 while (!rn2(3)) {
1667 if (objects[DUMMY_GLOVES_D].a_ac < 20) objects[DUMMY_GLOVES_D].a_ac++;
1669 objects[DUMMY_GLOVES_E].a_ac = 0;
1670 if (rn2(10)) objects[DUMMY_GLOVES_E].a_ac = 1;
1671 while (!rn2(3)) {
1672 if (objects[DUMMY_GLOVES_E].a_ac < 20) objects[DUMMY_GLOVES_E].a_ac++;
1674 objects[DUMMY_GLOVES_F].a_ac = 0;
1675 if (rn2(10)) objects[DUMMY_GLOVES_F].a_ac = 1;
1676 while (!rn2(3)) {
1677 if (objects[DUMMY_GLOVES_F].a_ac < 20) objects[DUMMY_GLOVES_F].a_ac++;
1679 objects[DUMMY_GLOVES_G].a_ac = 0;
1680 if (rn2(10)) objects[DUMMY_GLOVES_G].a_ac = 1;
1681 while (!rn2(3)) {
1682 if (objects[DUMMY_GLOVES_G].a_ac < 20) objects[DUMMY_GLOVES_G].a_ac++;
1684 objects[DUMMY_GLOVES_H].a_ac = 0;
1685 if (rn2(10)) objects[DUMMY_GLOVES_H].a_ac = 1;
1686 while (!rn2(3)) {
1687 if (objects[DUMMY_GLOVES_H].a_ac < 20) objects[DUMMY_GLOVES_H].a_ac++;
1689 objects[DUMMY_GLOVES_I].a_ac = 0;
1690 if (rn2(10)) objects[DUMMY_GLOVES_I].a_ac = 1;
1691 while (!rn2(3)) {
1692 if (objects[DUMMY_GLOVES_I].a_ac < 20) objects[DUMMY_GLOVES_I].a_ac++;
1694 objects[DUMMY_GLOVES_J].a_ac = 0;
1695 if (rn2(10)) objects[DUMMY_GLOVES_J].a_ac = 1;
1696 while (!rn2(3)) {
1697 if (objects[DUMMY_GLOVES_J].a_ac < 20) objects[DUMMY_GLOVES_J].a_ac++;
1699 objects[DUMMY_GLOVES_K].a_ac = 0;
1700 if (rn2(10)) objects[DUMMY_GLOVES_K].a_ac = 1;
1701 while (!rn2(3)) {
1702 if (objects[DUMMY_GLOVES_K].a_ac < 20) objects[DUMMY_GLOVES_K].a_ac++;
1704 objects[DUMMY_GLOVES_L].a_ac = 0;
1705 if (rn2(10)) objects[DUMMY_GLOVES_L].a_ac = 1;
1706 while (!rn2(3)) {
1707 if (objects[DUMMY_GLOVES_L].a_ac < 20) objects[DUMMY_GLOVES_L].a_ac++;
1709 objects[DUMMY_GLOVES_M].a_ac = 0;
1710 if (rn2(10)) objects[DUMMY_GLOVES_M].a_ac = 1;
1711 while (!rn2(3)) {
1712 if (objects[DUMMY_GLOVES_M].a_ac < 20) objects[DUMMY_GLOVES_M].a_ac++;
1714 objects[DUMMY_GLOVES_N].a_ac = 0;
1715 if (rn2(10)) objects[DUMMY_GLOVES_N].a_ac = 1;
1716 while (!rn2(3)) {
1717 if (objects[DUMMY_GLOVES_N].a_ac < 20) objects[DUMMY_GLOVES_N].a_ac++;
1719 objects[DUMMY_GLOVES_O].a_ac = 0;
1720 if (rn2(10)) objects[DUMMY_GLOVES_O].a_ac = 1;
1721 while (!rn2(3)) {
1722 if (objects[DUMMY_GLOVES_O].a_ac < 20) objects[DUMMY_GLOVES_O].a_ac++;
1724 objects[DUMMY_GLOVES_P].a_ac = 0;
1725 if (rn2(10)) objects[DUMMY_GLOVES_P].a_ac = 1;
1726 while (!rn2(3)) {
1727 if (objects[DUMMY_GLOVES_P].a_ac < 20) objects[DUMMY_GLOVES_P].a_ac++;
1729 objects[DUMMY_GLOVES_Q].a_ac = 0;
1730 if (rn2(10)) objects[DUMMY_GLOVES_Q].a_ac = 1;
1731 while (!rn2(3)) {
1732 if (objects[DUMMY_GLOVES_Q].a_ac < 20) objects[DUMMY_GLOVES_Q].a_ac++;
1734 objects[DUMMY_GLOVES_R].a_ac = 0;
1735 if (rn2(10)) objects[DUMMY_GLOVES_R].a_ac = 1;
1736 while (!rn2(3)) {
1737 if (objects[DUMMY_GLOVES_R].a_ac < 20) objects[DUMMY_GLOVES_R].a_ac++;
1739 objects[DUMMY_GLOVES_S].a_ac = 0;
1740 if (rn2(10)) objects[DUMMY_GLOVES_S].a_ac = 1;
1741 while (!rn2(3)) {
1742 if (objects[DUMMY_GLOVES_S].a_ac < 20) objects[DUMMY_GLOVES_S].a_ac++;
1744 objects[DUMMY_GLOVES_T].a_ac = 0;
1745 if (rn2(10)) objects[DUMMY_GLOVES_T].a_ac = 1;
1746 while (!rn2(3)) {
1747 if (objects[DUMMY_GLOVES_T].a_ac < 20) objects[DUMMY_GLOVES_T].a_ac++;
1749 objects[DUMMY_GLOVES_U].a_ac = 0;
1750 if (rn2(10)) objects[DUMMY_GLOVES_U].a_ac = 1;
1751 while (!rn2(3)) {
1752 if (objects[DUMMY_GLOVES_U].a_ac < 20) objects[DUMMY_GLOVES_U].a_ac++;
1754 objects[DUMMY_GLOVES_V].a_ac = 0;
1755 if (rn2(10)) objects[DUMMY_GLOVES_V].a_ac = 1;
1756 while (!rn2(3)) {
1757 if (objects[DUMMY_GLOVES_V].a_ac < 20) objects[DUMMY_GLOVES_V].a_ac++;
1759 objects[DUMMY_GLOVES_W].a_ac = 0;
1760 if (rn2(10)) objects[DUMMY_GLOVES_W].a_ac = 1;
1761 while (!rn2(3)) {
1762 if (objects[DUMMY_GLOVES_W].a_ac < 20) objects[DUMMY_GLOVES_W].a_ac++;
1764 objects[DUMMY_GLOVES_X].a_ac = 0;
1765 if (rn2(10)) objects[DUMMY_GLOVES_X].a_ac = 1;
1766 while (!rn2(3)) {
1767 if (objects[DUMMY_GLOVES_X].a_ac < 20) objects[DUMMY_GLOVES_X].a_ac++;
1769 objects[DUMMY_GLOVES_Y].a_ac = 0;
1770 if (rn2(10)) objects[DUMMY_GLOVES_Y].a_ac = 1;
1771 while (!rn2(3)) {
1772 if (objects[DUMMY_GLOVES_Y].a_ac < 20) objects[DUMMY_GLOVES_Y].a_ac++;
1774 objects[DUMMY_GLOVES_Z].a_ac = 0;
1775 if (rn2(10)) objects[DUMMY_GLOVES_Z].a_ac = 1;
1776 while (!rn2(3)) {
1777 if (objects[DUMMY_GLOVES_Z].a_ac < 20) objects[DUMMY_GLOVES_Z].a_ac++;
1779 objects[DUMMY_GLOVES_AA].a_ac = 0;
1780 if (rn2(10)) objects[DUMMY_GLOVES_AA].a_ac = 1;
1781 while (!rn2(3)) {
1782 if (objects[DUMMY_GLOVES_AA].a_ac < 20) objects[DUMMY_GLOVES_AA].a_ac++;
1784 objects[DUMMY_GLOVES_AB].a_ac = 0;
1785 if (rn2(10)) objects[DUMMY_GLOVES_AB].a_ac = 1;
1786 while (!rn2(3)) {
1787 if (objects[DUMMY_GLOVES_AB].a_ac < 20) objects[DUMMY_GLOVES_AB].a_ac++;
1789 objects[DUMMY_GLOVES_AC].a_ac = 0;
1790 if (rn2(10)) objects[DUMMY_GLOVES_AC].a_ac = 1;
1791 while (!rn2(3)) {
1792 if (objects[DUMMY_GLOVES_AC].a_ac < 20) objects[DUMMY_GLOVES_AC].a_ac++;
1794 objects[DUMMY_GLOVES_AD].a_ac = 0;
1795 if (rn2(10)) objects[DUMMY_GLOVES_AD].a_ac = 1;
1796 while (!rn2(3)) {
1797 if (objects[DUMMY_GLOVES_AD].a_ac < 20) objects[DUMMY_GLOVES_AD].a_ac++;
1799 objects[DUMMY_GLOVES_AE].a_ac = 0;
1800 if (rn2(10)) objects[DUMMY_GLOVES_AE].a_ac = 1;
1801 while (!rn2(3)) {
1802 if (objects[DUMMY_GLOVES_AE].a_ac < 20) objects[DUMMY_GLOVES_AE].a_ac++;
1804 objects[DUMMY_GLOVES_AF].a_ac = 0;
1805 if (rn2(10)) objects[DUMMY_GLOVES_AF].a_ac = 1;
1806 while (!rn2(3)) {
1807 if (objects[DUMMY_GLOVES_AF].a_ac < 20) objects[DUMMY_GLOVES_AF].a_ac++;
1809 objects[DUMMY_GLOVES_AG].a_ac = 0;
1810 if (rn2(10)) objects[DUMMY_GLOVES_AG].a_ac = 1;
1811 while (!rn2(3)) {
1812 if (objects[DUMMY_GLOVES_AG].a_ac < 20) objects[DUMMY_GLOVES_AG].a_ac++;
1814 objects[DUMMY_GLOVES_AH].a_ac = 0;
1815 if (rn2(10)) objects[DUMMY_GLOVES_AH].a_ac = 1;
1816 while (!rn2(3)) {
1817 if (objects[DUMMY_GLOVES_AH].a_ac < 20) objects[DUMMY_GLOVES_AH].a_ac++;
1819 objects[DUMMY_GLOVES_AI].a_ac = 0;
1820 if (rn2(10)) objects[DUMMY_GLOVES_AI].a_ac = 1;
1821 while (!rn2(3)) {
1822 if (objects[DUMMY_GLOVES_AI].a_ac < 20) objects[DUMMY_GLOVES_AI].a_ac++;
1825 objects[DUMMY_BOOTS_A].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1826 objects[DUMMY_BOOTS_B].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1827 objects[DUMMY_BOOTS_C].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1828 objects[DUMMY_BOOTS_D].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1829 objects[DUMMY_BOOTS_E].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1830 objects[DUMMY_BOOTS_F].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1831 objects[DUMMY_BOOTS_G].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1832 objects[DUMMY_BOOTS_H].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1833 objects[DUMMY_BOOTS_I].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1834 objects[DUMMY_BOOTS_J].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1835 objects[DUMMY_BOOTS_K].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1836 objects[DUMMY_BOOTS_L].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1837 objects[DUMMY_BOOTS_M].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1838 objects[DUMMY_BOOTS_N].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1839 objects[DUMMY_BOOTS_O].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1840 objects[DUMMY_BOOTS_P].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1841 objects[DUMMY_BOOTS_Q].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1842 objects[DUMMY_BOOTS_R].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1843 objects[DUMMY_BOOTS_S].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1844 objects[DUMMY_BOOTS_T].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1845 objects[DUMMY_BOOTS_U].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1846 objects[DUMMY_BOOTS_V].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1847 objects[DUMMY_BOOTS_W].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1848 objects[DUMMY_BOOTS_X].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1849 objects[DUMMY_BOOTS_Y].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1850 objects[DUMMY_BOOTS_Z].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1851 objects[DUMMY_BOOTS_AA].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1852 objects[DUMMY_BOOTS_AB].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1853 objects[DUMMY_BOOTS_AC].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1854 objects[DUMMY_BOOTS_AD].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1855 objects[DUMMY_BOOTS_AE].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1856 objects[DUMMY_BOOTS_AF].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1857 objects[DUMMY_BOOTS_AG].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1858 objects[DUMMY_BOOTS_AH].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1859 objects[DUMMY_BOOTS_AI].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1860 objects[DUMMY_BOOTS_AJ].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1861 objects[DUMMY_BOOTS_AK].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1862 objects[DUMMY_BOOTS_AL].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1863 objects[DUMMY_BOOTS_AM].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1864 objects[DUMMY_BOOTS_AN].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1865 objects[DUMMY_BOOTS_AO].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1866 objects[DUMMY_BOOTS_AP].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1867 objects[DUMMY_BOOTS_AQ].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1868 objects[DUMMY_BOOTS_AR].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1869 objects[DUMMY_BOOTS_AS].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1870 objects[DUMMY_BOOTS_AT].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1871 objects[DUMMY_BOOTS_AU].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1872 objects[DUMMY_BOOTS_AV].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1873 objects[DUMMY_BOOTS_AW].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1874 objects[DUMMY_BOOTS_AX].oc_oprop = !rn2(10) ? randnastyenchantment() : randenchantment();
1876 objects[DUMMY_BOOTS_A].a_can = rnd(10) ? 0 : rnd(3);
1877 objects[DUMMY_BOOTS_B].a_can = rnd(10) ? 0 : rnd(3);
1878 objects[DUMMY_BOOTS_C].a_can = rnd(10) ? 0 : rnd(3);
1879 objects[DUMMY_BOOTS_D].a_can = rnd(10) ? 0 : rnd(3);
1880 objects[DUMMY_BOOTS_E].a_can = rnd(10) ? 0 : rnd(3);
1881 objects[DUMMY_BOOTS_F].a_can = rnd(10) ? 0 : rnd(3);
1882 objects[DUMMY_BOOTS_G].a_can = rnd(10) ? 0 : rnd(3);
1883 objects[DUMMY_BOOTS_H].a_can = rnd(10) ? 0 : rnd(3);
1884 objects[DUMMY_BOOTS_I].a_can = rnd(10) ? 0 : rnd(3);
1885 objects[DUMMY_BOOTS_J].a_can = rnd(10) ? 0 : rnd(3);
1886 objects[DUMMY_BOOTS_K].a_can = rnd(10) ? 0 : rnd(3);
1887 objects[DUMMY_BOOTS_L].a_can = rnd(10) ? 0 : rnd(3);
1888 objects[DUMMY_BOOTS_M].a_can = rnd(10) ? 0 : rnd(3);
1889 objects[DUMMY_BOOTS_N].a_can = rnd(10) ? 0 : rnd(3);
1890 objects[DUMMY_BOOTS_O].a_can = rnd(10) ? 0 : rnd(3);
1891 objects[DUMMY_BOOTS_P].a_can = rnd(10) ? 0 : rnd(3);
1892 objects[DUMMY_BOOTS_Q].a_can = rnd(10) ? 0 : rnd(3);
1893 objects[DUMMY_BOOTS_R].a_can = rnd(10) ? 0 : rnd(3);
1894 objects[DUMMY_BOOTS_S].a_can = rnd(10) ? 0 : rnd(3);
1895 objects[DUMMY_BOOTS_T].a_can = rnd(10) ? 0 : rnd(3);
1896 objects[DUMMY_BOOTS_U].a_can = rnd(10) ? 0 : rnd(3);
1897 objects[DUMMY_BOOTS_V].a_can = rnd(10) ? 0 : rnd(3);
1898 objects[DUMMY_BOOTS_W].a_can = rnd(10) ? 0 : rnd(3);
1899 objects[DUMMY_BOOTS_X].a_can = rnd(10) ? 0 : rnd(3);
1900 objects[DUMMY_BOOTS_Y].a_can = rnd(10) ? 0 : rnd(3);
1901 objects[DUMMY_BOOTS_Z].a_can = rnd(10) ? 0 : rnd(3);
1902 objects[DUMMY_BOOTS_AA].a_can = rnd(10) ? 0 : rnd(3);
1903 objects[DUMMY_BOOTS_AB].a_can = rnd(10) ? 0 : rnd(3);
1904 objects[DUMMY_BOOTS_AC].a_can = rnd(10) ? 0 : rnd(3);
1905 objects[DUMMY_BOOTS_AD].a_can = rnd(10) ? 0 : rnd(3);
1906 objects[DUMMY_BOOTS_AE].a_can = rnd(10) ? 0 : rnd(3);
1907 objects[DUMMY_BOOTS_AF].a_can = rnd(10) ? 0 : rnd(3);
1908 objects[DUMMY_BOOTS_AG].a_can = rnd(10) ? 0 : rnd(3);
1909 objects[DUMMY_BOOTS_AH].a_can = rnd(10) ? 0 : rnd(3);
1910 objects[DUMMY_BOOTS_AI].a_can = rnd(10) ? 0 : rnd(3);
1911 objects[DUMMY_BOOTS_AJ].a_can = rnd(10) ? 0 : rnd(3);
1912 objects[DUMMY_BOOTS_AK].a_can = rnd(10) ? 0 : rnd(3);
1913 objects[DUMMY_BOOTS_AL].a_can = rnd(10) ? 0 : rnd(3);
1914 objects[DUMMY_BOOTS_AM].a_can = rnd(10) ? 0 : rnd(3);
1915 objects[DUMMY_BOOTS_AN].a_can = rnd(10) ? 0 : rnd(3);
1916 objects[DUMMY_BOOTS_AO].a_can = rnd(10) ? 0 : rnd(3);
1917 objects[DUMMY_BOOTS_AP].a_can = rnd(10) ? 0 : rnd(3);
1918 objects[DUMMY_BOOTS_AQ].a_can = rnd(10) ? 0 : rnd(3);
1919 objects[DUMMY_BOOTS_AR].a_can = rnd(10) ? 0 : rnd(3);
1920 objects[DUMMY_BOOTS_AS].a_can = rnd(10) ? 0 : rnd(3);
1921 objects[DUMMY_BOOTS_AT].a_can = rnd(10) ? 0 : rnd(3);
1922 objects[DUMMY_BOOTS_AU].a_can = rnd(10) ? 0 : rnd(3);
1923 objects[DUMMY_BOOTS_AV].a_can = rnd(10) ? 0 : rnd(3);
1924 objects[DUMMY_BOOTS_AW].a_can = rnd(10) ? 0 : rnd(3);
1925 objects[DUMMY_BOOTS_AX].a_can = rnd(10) ? 0 : rnd(3);
1927 objects[DUMMY_BOOTS_A].a_ac = 0;
1928 if (rn2(10)) objects[DUMMY_BOOTS_A].a_ac = 1;
1929 while (!rn2(3)) {
1930 if (objects[DUMMY_BOOTS_A].a_ac < 20) objects[DUMMY_BOOTS_A].a_ac++;
1932 objects[DUMMY_BOOTS_B].a_ac = 0;
1933 if (rn2(10)) objects[DUMMY_BOOTS_B].a_ac = 1;
1934 while (!rn2(3)) {
1935 if (objects[DUMMY_BOOTS_B].a_ac < 20) objects[DUMMY_BOOTS_B].a_ac++;
1937 objects[DUMMY_BOOTS_C].a_ac = 0;
1938 if (rn2(10)) objects[DUMMY_BOOTS_C].a_ac = 1;
1939 while (!rn2(3)) {
1940 if (objects[DUMMY_BOOTS_C].a_ac < 20) objects[DUMMY_BOOTS_C].a_ac++;
1942 objects[DUMMY_BOOTS_D].a_ac = 0;
1943 if (rn2(10)) objects[DUMMY_BOOTS_D].a_ac = 1;
1944 while (!rn2(3)) {
1945 if (objects[DUMMY_BOOTS_D].a_ac < 20) objects[DUMMY_BOOTS_D].a_ac++;
1947 objects[DUMMY_BOOTS_E].a_ac = 0;
1948 if (rn2(10)) objects[DUMMY_BOOTS_E].a_ac = 1;
1949 while (!rn2(3)) {
1950 if (objects[DUMMY_BOOTS_E].a_ac < 20) objects[DUMMY_BOOTS_E].a_ac++;
1952 objects[DUMMY_BOOTS_F].a_ac = 0;
1953 if (rn2(10)) objects[DUMMY_BOOTS_F].a_ac = 1;
1954 while (!rn2(3)) {
1955 if (objects[DUMMY_BOOTS_F].a_ac < 20) objects[DUMMY_BOOTS_F].a_ac++;
1957 objects[DUMMY_BOOTS_G].a_ac = 0;
1958 if (rn2(10)) objects[DUMMY_BOOTS_G].a_ac = 1;
1959 while (!rn2(3)) {
1960 if (objects[DUMMY_BOOTS_G].a_ac < 20) objects[DUMMY_BOOTS_G].a_ac++;
1962 objects[DUMMY_BOOTS_H].a_ac = 0;
1963 if (rn2(10)) objects[DUMMY_BOOTS_H].a_ac = 1;
1964 while (!rn2(3)) {
1965 if (objects[DUMMY_BOOTS_H].a_ac < 20) objects[DUMMY_BOOTS_H].a_ac++;
1967 objects[DUMMY_BOOTS_I].a_ac = 0;
1968 if (rn2(10)) objects[DUMMY_BOOTS_I].a_ac = 1;
1969 while (!rn2(3)) {
1970 if (objects[DUMMY_BOOTS_I].a_ac < 20) objects[DUMMY_BOOTS_I].a_ac++;
1972 objects[DUMMY_BOOTS_J].a_ac = 0;
1973 if (rn2(10)) objects[DUMMY_BOOTS_J].a_ac = 1;
1974 while (!rn2(3)) {
1975 if (objects[DUMMY_BOOTS_J].a_ac < 20) objects[DUMMY_BOOTS_J].a_ac++;
1977 objects[DUMMY_BOOTS_K].a_ac = 0;
1978 if (rn2(10)) objects[DUMMY_BOOTS_K].a_ac = 1;
1979 while (!rn2(3)) {
1980 if (objects[DUMMY_BOOTS_K].a_ac < 20) objects[DUMMY_BOOTS_K].a_ac++;
1982 objects[DUMMY_BOOTS_L].a_ac = 0;
1983 if (rn2(10)) objects[DUMMY_BOOTS_L].a_ac = 1;
1984 while (!rn2(3)) {
1985 if (objects[DUMMY_BOOTS_L].a_ac < 20) objects[DUMMY_BOOTS_L].a_ac++;
1987 objects[DUMMY_BOOTS_M].a_ac = 0;
1988 if (rn2(10)) objects[DUMMY_BOOTS_M].a_ac = 1;
1989 while (!rn2(3)) {
1990 if (objects[DUMMY_BOOTS_M].a_ac < 20) objects[DUMMY_BOOTS_M].a_ac++;
1992 objects[DUMMY_BOOTS_N].a_ac = 0;
1993 if (rn2(10)) objects[DUMMY_BOOTS_N].a_ac = 1;
1994 while (!rn2(3)) {
1995 if (objects[DUMMY_BOOTS_N].a_ac < 20) objects[DUMMY_BOOTS_N].a_ac++;
1997 objects[DUMMY_BOOTS_O].a_ac = 0;
1998 if (rn2(10)) objects[DUMMY_BOOTS_O].a_ac = 1;
1999 while (!rn2(3)) {
2000 if (objects[DUMMY_BOOTS_O].a_ac < 20) objects[DUMMY_BOOTS_O].a_ac++;
2002 objects[DUMMY_BOOTS_P].a_ac = 0;
2003 if (rn2(10)) objects[DUMMY_BOOTS_P].a_ac = 1;
2004 while (!rn2(3)) {
2005 if (objects[DUMMY_BOOTS_P].a_ac < 20) objects[DUMMY_BOOTS_P].a_ac++;
2007 objects[DUMMY_BOOTS_Q].a_ac = 0;
2008 if (rn2(10)) objects[DUMMY_BOOTS_Q].a_ac = 1;
2009 while (!rn2(3)) {
2010 if (objects[DUMMY_BOOTS_Q].a_ac < 20) objects[DUMMY_BOOTS_Q].a_ac++;
2012 objects[DUMMY_BOOTS_R].a_ac = 0;
2013 if (rn2(10)) objects[DUMMY_BOOTS_R].a_ac = 1;
2014 while (!rn2(3)) {
2015 if (objects[DUMMY_BOOTS_R].a_ac < 20) objects[DUMMY_BOOTS_R].a_ac++;
2017 objects[DUMMY_BOOTS_S].a_ac = 0;
2018 if (rn2(10)) objects[DUMMY_BOOTS_S].a_ac = 1;
2019 while (!rn2(3)) {
2020 if (objects[DUMMY_BOOTS_S].a_ac < 20) objects[DUMMY_BOOTS_S].a_ac++;
2022 objects[DUMMY_BOOTS_T].a_ac = 0;
2023 if (rn2(10)) objects[DUMMY_BOOTS_T].a_ac = 1;
2024 while (!rn2(3)) {
2025 if (objects[DUMMY_BOOTS_T].a_ac < 20) objects[DUMMY_BOOTS_T].a_ac++;
2027 objects[DUMMY_BOOTS_U].a_ac = 0;
2028 if (rn2(10)) objects[DUMMY_BOOTS_U].a_ac = 1;
2029 while (!rn2(3)) {
2030 if (objects[DUMMY_BOOTS_U].a_ac < 20) objects[DUMMY_BOOTS_U].a_ac++;
2032 objects[DUMMY_BOOTS_V].a_ac = 0;
2033 if (rn2(10)) objects[DUMMY_BOOTS_V].a_ac = 1;
2034 while (!rn2(3)) {
2035 if (objects[DUMMY_BOOTS_V].a_ac < 20) objects[DUMMY_BOOTS_V].a_ac++;
2037 objects[DUMMY_BOOTS_W].a_ac = 0;
2038 if (rn2(10)) objects[DUMMY_BOOTS_W].a_ac = 1;
2039 while (!rn2(3)) {
2040 if (objects[DUMMY_BOOTS_W].a_ac < 20) objects[DUMMY_BOOTS_W].a_ac++;
2042 objects[DUMMY_BOOTS_X].a_ac = 0;
2043 if (rn2(10)) objects[DUMMY_BOOTS_X].a_ac = 1;
2044 while (!rn2(3)) {
2045 if (objects[DUMMY_BOOTS_X].a_ac < 20) objects[DUMMY_BOOTS_X].a_ac++;
2047 objects[DUMMY_BOOTS_Y].a_ac = 0;
2048 if (rn2(10)) objects[DUMMY_BOOTS_Y].a_ac = 1;
2049 while (!rn2(3)) {
2050 if (objects[DUMMY_BOOTS_Y].a_ac < 20) objects[DUMMY_BOOTS_Y].a_ac++;
2052 objects[DUMMY_BOOTS_Z].a_ac = 0;
2053 if (rn2(10)) objects[DUMMY_BOOTS_Z].a_ac = 1;
2054 while (!rn2(3)) {
2055 if (objects[DUMMY_BOOTS_Z].a_ac < 20) objects[DUMMY_BOOTS_Z].a_ac++;
2057 objects[DUMMY_BOOTS_AA].a_ac = 0;
2058 if (rn2(10)) objects[DUMMY_BOOTS_AA].a_ac = 1;
2059 while (!rn2(3)) {
2060 if (objects[DUMMY_BOOTS_AA].a_ac < 20) objects[DUMMY_BOOTS_AA].a_ac++;
2062 objects[DUMMY_BOOTS_AB].a_ac = 0;
2063 if (rn2(10)) objects[DUMMY_BOOTS_AB].a_ac = 1;
2064 while (!rn2(3)) {
2065 if (objects[DUMMY_BOOTS_AB].a_ac < 20) objects[DUMMY_BOOTS_AB].a_ac++;
2067 objects[DUMMY_BOOTS_AC].a_ac = 0;
2068 if (rn2(10)) objects[DUMMY_BOOTS_AC].a_ac = 1;
2069 while (!rn2(3)) {
2070 if (objects[DUMMY_BOOTS_AC].a_ac < 20) objects[DUMMY_BOOTS_AC].a_ac++;
2072 objects[DUMMY_BOOTS_AD].a_ac = 0;
2073 if (rn2(10)) objects[DUMMY_BOOTS_AD].a_ac = 1;
2074 while (!rn2(3)) {
2075 if (objects[DUMMY_BOOTS_AD].a_ac < 20) objects[DUMMY_BOOTS_AD].a_ac++;
2077 objects[DUMMY_BOOTS_AE].a_ac = 0;
2078 if (rn2(10)) objects[DUMMY_BOOTS_AE].a_ac = 1;
2079 while (!rn2(3)) {
2080 if (objects[DUMMY_BOOTS_AE].a_ac < 20) objects[DUMMY_BOOTS_AE].a_ac++;
2082 objects[DUMMY_BOOTS_AF].a_ac = 0;
2083 if (rn2(10)) objects[DUMMY_BOOTS_AF].a_ac = 1;
2084 while (!rn2(3)) {
2085 if (objects[DUMMY_BOOTS_AF].a_ac < 20) objects[DUMMY_BOOTS_AF].a_ac++;
2087 objects[DUMMY_BOOTS_AG].a_ac = 0;
2088 if (rn2(10)) objects[DUMMY_BOOTS_AG].a_ac = 1;
2089 while (!rn2(3)) {
2090 if (objects[DUMMY_BOOTS_AG].a_ac < 20) objects[DUMMY_BOOTS_AG].a_ac++;
2092 objects[DUMMY_BOOTS_AH].a_ac = 0;
2093 if (rn2(10)) objects[DUMMY_BOOTS_AH].a_ac = 1;
2094 while (!rn2(3)) {
2095 if (objects[DUMMY_BOOTS_AH].a_ac < 20) objects[DUMMY_BOOTS_AH].a_ac++;
2097 objects[DUMMY_BOOTS_AI].a_ac = 0;
2098 if (rn2(10)) objects[DUMMY_BOOTS_AI].a_ac = 1;
2099 while (!rn2(3)) {
2100 if (objects[DUMMY_BOOTS_AI].a_ac < 20) objects[DUMMY_BOOTS_AI].a_ac++;
2102 objects[DUMMY_BOOTS_AJ].a_ac = 0;
2103 if (rn2(10)) objects[DUMMY_BOOTS_AJ].a_ac = 1;
2104 while (!rn2(3)) {
2105 if (objects[DUMMY_BOOTS_AJ].a_ac < 20) objects[DUMMY_BOOTS_AJ].a_ac++;
2107 objects[DUMMY_BOOTS_AK].a_ac = 0;
2108 if (rn2(10)) objects[DUMMY_BOOTS_AK].a_ac = 1;
2109 while (!rn2(3)) {
2110 if (objects[DUMMY_BOOTS_AK].a_ac < 20) objects[DUMMY_BOOTS_AK].a_ac++;
2112 objects[DUMMY_BOOTS_AL].a_ac = 0;
2113 if (rn2(10)) objects[DUMMY_BOOTS_AL].a_ac = 1;
2114 while (!rn2(3)) {
2115 if (objects[DUMMY_BOOTS_AL].a_ac < 20) objects[DUMMY_BOOTS_AL].a_ac++;
2117 objects[DUMMY_BOOTS_AM].a_ac = 0;
2118 if (rn2(10)) objects[DUMMY_BOOTS_AM].a_ac = 1;
2119 while (!rn2(3)) {
2120 if (objects[DUMMY_BOOTS_AM].a_ac < 20) objects[DUMMY_BOOTS_AM].a_ac++;
2122 objects[DUMMY_BOOTS_AN].a_ac = 0;
2123 if (rn2(10)) objects[DUMMY_BOOTS_AN].a_ac = 1;
2124 while (!rn2(3)) {
2125 if (objects[DUMMY_BOOTS_AN].a_ac < 20) objects[DUMMY_BOOTS_AN].a_ac++;
2127 objects[DUMMY_BOOTS_AO].a_ac = 0;
2128 if (rn2(10)) objects[DUMMY_BOOTS_AO].a_ac = 1;
2129 while (!rn2(3)) {
2130 if (objects[DUMMY_BOOTS_AO].a_ac < 20) objects[DUMMY_BOOTS_AO].a_ac++;
2132 objects[DUMMY_BOOTS_AP].a_ac = 0;
2133 if (rn2(10)) objects[DUMMY_BOOTS_AP].a_ac = 1;
2134 while (!rn2(3)) {
2135 if (objects[DUMMY_BOOTS_AP].a_ac < 20) objects[DUMMY_BOOTS_AP].a_ac++;
2137 objects[DUMMY_BOOTS_AQ].a_ac = 0;
2138 if (rn2(10)) objects[DUMMY_BOOTS_AQ].a_ac = 1;
2139 while (!rn2(3)) {
2140 if (objects[DUMMY_BOOTS_AQ].a_ac < 20) objects[DUMMY_BOOTS_AQ].a_ac++;
2142 objects[DUMMY_BOOTS_AR].a_ac = 0;
2143 if (rn2(10)) objects[DUMMY_BOOTS_AR].a_ac = 1;
2144 while (!rn2(3)) {
2145 if (objects[DUMMY_BOOTS_AR].a_ac < 20) objects[DUMMY_BOOTS_AR].a_ac++;
2147 objects[DUMMY_BOOTS_AS].a_ac = 0;
2148 if (rn2(10)) objects[DUMMY_BOOTS_AS].a_ac = 1;
2149 while (!rn2(3)) {
2150 if (objects[DUMMY_BOOTS_AS].a_ac < 20) objects[DUMMY_BOOTS_AS].a_ac++;
2152 objects[DUMMY_BOOTS_AT].a_ac = 0;
2153 if (rn2(10)) objects[DUMMY_BOOTS_AT].a_ac = 1;
2154 while (!rn2(3)) {
2155 if (objects[DUMMY_BOOTS_AT].a_ac < 20) objects[DUMMY_BOOTS_AT].a_ac++;
2157 objects[DUMMY_BOOTS_AU].a_ac = 0;
2158 if (rn2(10)) objects[DUMMY_BOOTS_AU].a_ac = 1;
2159 while (!rn2(3)) {
2160 if (objects[DUMMY_BOOTS_AU].a_ac < 20) objects[DUMMY_BOOTS_AU].a_ac++;
2162 objects[DUMMY_BOOTS_AV].a_ac = 0;
2163 if (rn2(10)) objects[DUMMY_BOOTS_AV].a_ac = 1;
2164 while (!rn2(3)) {
2165 if (objects[DUMMY_BOOTS_AV].a_ac < 20) objects[DUMMY_BOOTS_AV].a_ac++;
2167 objects[DUMMY_BOOTS_AW].a_ac = 0;
2168 if (rn2(10)) objects[DUMMY_BOOTS_AW].a_ac = 1;
2169 while (!rn2(3)) {
2170 if (objects[DUMMY_BOOTS_AW].a_ac < 20) objects[DUMMY_BOOTS_AW].a_ac++;
2172 objects[DUMMY_BOOTS_AX].a_ac = 0;
2173 if (rn2(10)) objects[DUMMY_BOOTS_AX].a_ac = 1;
2174 while (!rn2(3)) {
2175 if (objects[DUMMY_BOOTS_AX].a_ac < 20) objects[DUMMY_BOOTS_AX].a_ac++;
2178 objects[SPE_FORBIDDEN_KNOWLEDGE].oc_level = rnd(8);
2180 objects[SPE_CHARACTER_RECURSION].oc_level = rnd(8);
2182 objects[WONDER_BALL].oc_material = rn2(LASTMATERIAL + 1);
2183 objects[WONDER_CHAIN].oc_material = rn2(LASTMATERIAL + 1);
2184 objects[TOILET_ROLL].oc_material = rn2(LASTMATERIAL + 1);
2185 objects[WONDER_PLATE].oc_material = rn2(LASTMATERIAL + 1);
2186 objects[MEDIUM_MITHRIL_COAT].oc_material = rn2(LASTMATERIAL + 1);
2187 objects[TAPERED_MAIL].oc_material = rn2(LASTMATERIAL + 1);
2188 objects[EXCITING_ARMOR].oc_material = rn2(LASTMATERIAL + 1);
2189 objects[LORICATED_CLOAK].oc_material = rn2(LASTMATERIAL + 1);
2190 objects[BASINET].oc_material = rn2(LASTMATERIAL + 1);
2191 objects[ROCKET_GAUNTLETS].oc_material = rn2(LASTMATERIAL + 1);
2192 objects[ANCIENT_SHIELD].oc_material = rn2(LASTMATERIAL + 1);
2193 objects[ITALIAN_HEELS].oc_material = rn2(LASTMATERIAL + 1);
2194 objects[WONDER_DAGGER].oc_material = rn2(LASTMATERIAL + 1);
2195 objects[UNKNOWN_KNIFE].oc_material = rn2(LASTMATERIAL + 1);
2196 objects[SHARP_AXE].oc_material = rn2(LASTMATERIAL + 1);
2197 objects[SHORT_BLADE].oc_material = rn2(LASTMATERIAL + 1);
2198 objects[ELEGANT_BROADSWORD].oc_material = rn2(LASTMATERIAL + 1);
2199 objects[MAIN_SWORD].oc_material = rn2(LASTMATERIAL + 1);
2200 objects[ROMAN_SWORD].oc_material = rn2(LASTMATERIAL + 1);
2201 objects[MYTHICAL_SABLE].oc_material = rn2(LASTMATERIAL + 1);
2202 objects[CRYPTIC_SABER].oc_material = rn2(LASTMATERIAL + 1);
2203 objects[BLOW_AKLYS].oc_material = rn2(LASTMATERIAL + 1);
2204 objects[TELEPHONE].oc_material = rn2(LASTMATERIAL + 1);
2205 objects[BATLETH].oc_material = rn2(LASTMATERIAL + 1);
2206 objects[ELITE_BATLETH].oc_material = rn2(LASTMATERIAL + 1);
2207 objects[CALCULATOR].oc_material = rn2(LASTMATERIAL + 1);
2208 objects[WEIGHTED_FLAIL].oc_material = rn2(LASTMATERIAL + 1);
2209 objects[BLOCK_HEELED_SANDAL].oc_material = rn2(LASTMATERIAL + 1);
2210 objects[PROSTITUTE_SHOE].oc_material = rn2(LASTMATERIAL + 1);
2211 objects[BO_STAFF].oc_material = rn2(LASTMATERIAL + 1);
2212 objects[LONG_POLE].oc_material = rn2(LASTMATERIAL + 1);
2213 objects[SHARP_POLE].oc_material = rn2(LASTMATERIAL + 1);
2214 objects[RANDOSPEAR].oc_material = rn2(LASTMATERIAL + 1);
2215 objects[STACK_JAVELIN].oc_material = rn2(LASTMATERIAL + 1);
2216 objects[SPEC_LANCE].oc_material = rn2(LASTMATERIAL + 1);
2217 objects[META_BOW].oc_material = rn2(LASTMATERIAL + 1);
2218 objects[WONDER_ARROW].oc_material = rn2(LASTMATERIAL + 1);
2219 objects[MATERIAL_BOLT].oc_material = rn2(LASTMATERIAL + 1);
2220 objects[RANDOM_DART].oc_material = rn2(LASTMATERIAL + 1);
2221 objects[CUBIC_STAR].oc_material = rn2(LASTMATERIAL + 1);
2222 objects[SEXPLAY_WHIP].oc_material = rn2(LASTMATERIAL + 1);
2223 objects[MYSTERY_PICK].oc_material = rn2(LASTMATERIAL + 1);
2224 objects[MYSTERY_LIGHTSABER].oc_material = rn2(LASTMATERIAL + 1);
2225 objects[RAINBOW_LIGHTSABER].oc_material = rn2(LASTMATERIAL + 1);
2226 objects[SLING_AMMO].oc_material = rn2(LASTMATERIAL + 1);
2227 objects[CIGARETTE].oc_material = rn2(LASTMATERIAL + 1);
2228 objects[VARIED_GRINDER].oc_material = rn2(LASTMATERIAL + 1);
2229 objects[CAMO_QATAR].oc_material = rn2(LASTMATERIAL + 1);
2231 objects[RAINBOW_LIGHTSABER].oc_color = rn2(CLR_MAX);
2233 int dyepotion = find_potion_of_dye();
2234 objects[dyepotion].oc_color = rn2(CLR_MAX);
2236 while (objects[RAINBOW_LIGHTSABER].oc_color == NO_COLOR) objects[RAINBOW_LIGHTSABER].oc_color = rn2(CLR_MAX);
2238 /* shuffle descriptions */
2239 shuffle_all();
2240 #ifdef USE_TILES
2241 shuffle_tiles();
2242 #endif
2243 #ifdef PROXY_GRAPHICS
2244 shuffle_proxy_glyphs();
2245 #endif
2248 STATIC_OVL void
2249 shuffle_all()
2251 int first, last, oclass;
2253 for (oclass = 1; oclass < MAXOCLASSES; oclass++) {
2254 first = bases[oclass];
2255 last = first+1;
2256 while (last < NUM_OBJECTS && objects[last].oc_class == oclass)
2257 last++;
2259 if (OBJ_DESCR(objects[first]) != (char *)0 &&
2260 oclass != TOOL_CLASS &&
2261 oclass != WEAPON_CLASS &&
2262 oclass != ARMOR_CLASS &&
2263 oclass != BALL_CLASS &&
2264 oclass != CHAIN_CLASS &&
2265 oclass != VENOM_CLASS &&
2266 oclass != GEM_CLASS) {
2267 int j = last-1;
2269 if (oclass == POTION_CLASS)
2270 /* water and following have fixed descriptions */
2271 j = POT_WATER - 1;
2272 else if (oclass == AMULET_CLASS ||
2273 oclass == SCROLL_CLASS ||
2274 oclass == SPBOOK_CLASS) {
2275 while (!objects[j].oc_magic || objects[j].oc_unique)
2276 j--;
2279 /* non-magical amulets, scrolls, and spellbooks
2280 * (ex. imitation Amulets, blank, scrolls of mail)
2281 * and one-of-a-kind magical artifacts at the end of
2282 * their class in objects[] have fixed descriptions.
2284 shuffle(first, j, TRUE);
2288 /* shuffle the helmets */
2289 shuffle(STANDARD_HELMET, HELM_OF_TELEPATHY, TRUE);
2291 /* shuffle the gloves */
2292 shuffle(REGULAR_GLOVES, GAUNTLETS_OF_DEXTERITY, TRUE);
2294 /* shuffle the robes */
2295 shuffle(ROBE, ROBE_OF_WEAKNESS, TRUE);
2297 /* shuffle the cloaks */
2298 shuffle(CLOAK_OF_PROTECTION, CLOAK_OF_DISPLACEMENT, TRUE);
2300 /* shuffle the boots [if they change, update find_skates() below] */
2301 shuffle(SPEED_BOOTS, LEVITATION_BOOTS, TRUE);
2304 /* find the object index for snow boots; used [once] by slippery ice code */
2306 find_skates()
2308 register int i;
2310 for (i = SPEED_BOOTS; i <= LEVITATION_BOOTS; i++) {
2311 if (itemnumwithappearance(i, APP_SNOW_BOOTS)) return i;
2314 impossible("snow boots not found?");
2315 return -1; /* not 0, or caller would try again each move */
2319 find_skates2()
2321 register int i;
2323 for (i = SPEED_BOOTS; i <= LEVITATION_BOOTS; i++) {
2324 if (itemnumwithappearance(i, APP_WINTER_BOOTS)) return i;
2327 impossible("winter boots not found?");
2328 return -1; /* not 0, or caller would try again each move */
2332 find_skates3()
2334 register int i;
2336 for (i = SPEED_BOOTS; i <= LEVITATION_BOOTS; i++) {
2337 if (itemnumwithappearance(i, APP_WINTER_STILETTOS)) return i;
2340 impossible("winter stilettos not found?");
2341 return -1; /* not 0, or caller would try again each move */
2345 find_skates4()
2347 register int i;
2349 for (i = SPEED_BOOTS; i <= LEVITATION_BOOTS; i++) {
2350 if (itemnumwithappearance(i, APP_SKI_HEELS)) return i;
2353 impossible("ski heels not found?");
2354 return -1; /* not 0, or caller would try again each move */
2357 /* tons of more such cases for randarts, the ones that depend on randomized appearances --Amy */
2360 find_opera_cloak()
2362 register int i;
2364 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2365 if (itemnumwithappearance(i, APP_OPERA_CLOAK)) return i;
2368 impossible("opera cloak not found?");
2369 return -1; /* not 0, or caller would try again each move */
2373 find_explosive_boots()
2375 register int i;
2377 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2378 if (itemnumwithappearance(i, APP_EXPLOSIVE_BOOTS)) return i;
2381 impossible("explosive boots not found?");
2382 return -1; /* not 0, or caller would try again each move */
2386 find_bull_helmet()
2388 register int i;
2390 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2391 if (itemnumwithappearance(i, APP_BULL_HELMET)) return i;
2394 impossible("bull helmet not found?");
2395 return -1; /* not 0, or caller would try again each move */
2399 find_echo_helmet()
2401 register int i;
2403 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2404 if (itemnumwithappearance(i, APP_ECHO_HELMET)) return i;
2407 impossible("echo helmet not found?");
2408 return -1; /* not 0, or caller would try again each move */
2412 find_irregular_boots()
2414 register int i;
2416 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2417 if (itemnumwithappearance(i, APP_IRREGULAR_BOOTS)) return i;
2420 impossible("irregular boots not found?");
2421 return -1; /* not 0, or caller would try again each move */
2425 find_wedge_boots()
2427 register int i;
2429 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2430 if (itemnumwithappearance(i, APP_WEDGE_BOOTS)) return i;
2433 impossible("wedge boots not found?");
2434 return -1; /* not 0, or caller would try again each move */
2438 find_aluminium_helmet()
2440 register int i;
2442 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2443 if (itemnumwithappearance(i, APP_ALUMINIUM_HELMET)) return i;
2446 impossible("aluminium helmet not found?");
2447 return -1; /* not 0, or caller would try again each move */
2451 find_ghostly_cloak()
2453 register int i;
2455 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2456 if (itemnumwithappearance(i, APP_GHOSTLY_CLOAK)) return i;
2459 impossible("ghostly cloak not found?");
2460 return -1; /* not 0, or caller would try again each move */
2464 find_demonic_cloak()
2466 register int i;
2468 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2469 if (itemnumwithappearance(i, APP_DEMONIC_CLOAK)) return i;
2472 impossible("demonic cloak not found?");
2473 return -1; /* not 0, or caller would try again each move */
2477 find_polnish_gloves()
2479 register int i;
2481 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2482 if (itemnumwithappearance(i, APP_POLNISH_GLOVES)) return i;
2485 impossible("polnish gloves not found?");
2486 return -1; /* not 0, or caller would try again each move */
2490 find_fencing_gloves()
2492 register int i;
2494 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2495 if (itemnumwithappearance(i, APP_FENCING_GLOVES)) return i;
2498 impossible("fencing gloves not found?");
2499 return -1; /* not 0, or caller would try again each move */
2503 find_critical_gloves()
2505 register int i;
2507 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2508 if (itemnumwithappearance(i, APP_CRITICAL_GLOVES)) return i;
2511 impossible("critical gloves not found?");
2512 return -1; /* not 0, or caller would try again each move */
2516 find_falconry_gloves()
2518 register int i;
2520 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2521 if (itemnumwithappearance(i, APP_FALCONRY_GLOVES)) return i;
2524 impossible("falconry gloves not found?");
2525 return -1; /* not 0, or caller would try again each move */
2529 find_latex_gloves()
2531 register int i;
2533 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2534 if (itemnumwithappearance(i, APP_LATEX_GLOVES)) return i;
2537 impossible("latex gloves not found?");
2538 return -1; /* not 0, or caller would try again each move */
2542 find_spiky_gloves()
2544 register int i;
2546 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2547 if (itemnumwithappearance(i, APP_SPIKY_GLOVES)) return i;
2550 impossible("spiky gloves not found?");
2551 return -1; /* not 0, or caller would try again each move */
2555 find_velcro_boots()
2557 register int i;
2559 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2560 if (itemnumwithappearance(i, APP_VELCRO_BOOTS)) return i;
2563 impossible("velcro boots not found?");
2564 return -1; /* not 0, or caller would try again each move */
2568 find_clumsy_gloves()
2570 register int i;
2572 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2573 if (itemnumwithappearance(i, APP_CLUMSY_GLOVES)) return i;
2576 impossible("clumsy gloves not found?");
2577 return -1; /* not 0, or caller would try again each move */
2581 find_fin_boots()
2583 register int i;
2585 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2586 if (itemnumwithappearance(i, APP_FIN_BOOTS)) return i;
2589 impossible("fin boots not found?");
2590 return -1; /* not 0, or caller would try again each move */
2594 find_winter_boots()
2596 register int i;
2598 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2599 if (itemnumwithappearance(i, APP_WINTER_BOOTS)) return i;
2602 impossible("winter boots not found?");
2603 return -1; /* not 0, or caller would try again each move */
2607 find_profiled_boots()
2609 register int i;
2611 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2612 if (itemnumwithappearance(i, APP_PROFILED_BOOTS)) return i;
2615 impossible("profiled boots not found?");
2616 return -1; /* not 0, or caller would try again each move */
2620 find_void_cloak()
2622 register int i;
2624 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2625 if (itemnumwithappearance(i, APP_VOID_CLOAK)) return i;
2628 impossible("void cloak not found?");
2629 return -1; /* not 0, or caller would try again each move */
2633 find_petrified_cloak()
2635 register int i;
2637 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2638 if (itemnumwithappearance(i, APP_PETRIFIED_CLOAK)) return i;
2641 impossible("petrified cloak not found?");
2642 return -1; /* not 0, or caller would try again each move */
2646 find_grey_shaded_gloves()
2648 register int i;
2650 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2651 if (itemnumwithappearance(i, APP_GREY_SHADED_GLOVES)) return i;
2654 impossible("grey-shaded gloves not found?");
2655 return -1; /* not 0, or caller would try again each move */
2659 find_leather_gloves()
2661 register int i;
2663 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2664 if (itemnumwithappearance(i, APP_LEATHER_GLOVES)) return i;
2667 impossible("leather gloves not found?");
2668 return -1; /* not 0, or caller would try again each move */
2672 find_weeb_cloak()
2674 register int i;
2676 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2677 if (itemnumwithappearance(i, APP_WEEB_CLOAK)) return i;
2680 impossible("weeb cloak not found?");
2681 return -1; /* not 0, or caller would try again each move */
2685 find_persian_boots()
2687 register int i;
2689 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2690 if (itemnumwithappearance(i, APP_PERSIAN_BOOTS)) return i;
2693 impossible("persian boots not found?");
2694 return -1; /* not 0, or caller would try again each move */
2698 find_higher_helmet()
2700 register int i;
2702 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2703 if (itemnumwithappearance(i, APP_HIGHER_HELMET)) return i;
2706 impossible("higher helmet not found?");
2707 return -1; /* not 0, or caller would try again each move */
2711 find_hardcore_cloth()
2713 register int i;
2715 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2716 if (itemnumwithappearance(i, APP_HARDCORE_CLOTH)) return i;
2719 impossible("hardcore cloth not found?");
2720 return -1; /* not 0, or caller would try again each move */
2724 find_tankini()
2726 register int i;
2728 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2729 if (itemnumwithappearance(i, APP_TANKINI)) return i;
2732 impossible("tankini not found?");
2733 return -1; /* not 0, or caller would try again each move */
2737 find_missys()
2739 register int i;
2741 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2742 if (itemnumwithappearance(i, APP_MISSYS)) return i;
2745 impossible("missys not found?");
2746 return -1; /* not 0, or caller would try again each move */
2750 find_superhard_sandals()
2752 register int i;
2754 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2755 if (itemnumwithappearance(i, APP_SUPERHARD_SANDALS)) return i;
2758 impossible("superhard sandals not found?");
2759 return -1; /* not 0, or caller would try again each move */
2763 find_telescope()
2765 register int i;
2767 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2768 if (itemnumwithappearance(i, APP_TELESCOPE)) return i;
2771 impossible("telescope not found?");
2772 return -1; /* not 0, or caller would try again each move */
2776 find_osfa_cloak()
2778 register int i;
2780 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2781 if (itemnumwithappearance(i, APP_OSFA_CLOAK)) return i;
2784 impossible("osfa cloak not found?");
2785 return -1; /* not 0, or caller would try again each move */
2789 find_tarpaulin_cloak()
2791 register int i;
2793 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2794 if (itemnumwithappearance(i, APP_TARPAULIN_CLOAK)) return i;
2797 impossible("tarpaulin cloak not found?");
2798 return -1; /* not 0, or caller would try again each move */
2801 /* the potion of dye may be mapped to an actual potion, or it may not; its color should be randomly initialized anyway,
2802 * because if the randomized appearances are shuffled during an ongoing game, it might become an actual potion --Amy */
2804 find_potion_of_dye()
2806 register int i;
2808 for (i = POT_BOOZE; i <= POT_AMNESIA; i++) {
2809 if (itemnumwithappearance(i, APP_POTION_DYE)) return i;
2812 impossible("dye potion not found?");
2813 return -1; /* not 0, or caller would try again each move */
2817 find_winged_sandals()
2819 register int i;
2821 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2822 if (itemnumwithappearance(i, APP_WINGED_SANDALS)) return i;
2825 impossible("winged sandals not found?");
2826 return -1; /* not 0, or caller would try again each move */
2830 find_remora_heels()
2832 register int i;
2834 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2835 if (itemnumwithappearance(i, APP_REMORA_HEELS)) return i;
2838 impossible("remora heels not found?");
2839 return -1; /* not 0, or caller would try again each move */
2843 find_heeled_chelsea_boots()
2845 register int i;
2847 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2848 if (itemnumwithappearance(i, APP_HEELED_CHELSEA_BOOTS)) return i;
2851 impossible("heeled chelsea boots not found?");
2852 return -1; /* not 0, or caller would try again each move */
2856 find_house_slippers()
2858 register int i;
2860 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2861 if (itemnumwithappearance(i, APP_HOUSE_SLIPPERS)) return i;
2864 impossible("house slippers not found?");
2865 return -1; /* not 0, or caller would try again each move */
2869 find_hugging_boots()
2871 register int i;
2873 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2874 if (itemnumwithappearance(i, APP_HUGGING_BOOTS)) return i;
2877 impossible("hugging boots not found?");
2878 return -1; /* not 0, or caller would try again each move */
2882 find_heeled_hugging_boots()
2884 register int i;
2886 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2887 if (itemnumwithappearance(i, APP_HEELED_HUGGING_BOOTS)) return i;
2890 impossible("high-heeled hugging boots not found?");
2891 return -1; /* not 0, or caller would try again each move */
2895 find_plateau_boots()
2897 register int i;
2899 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2900 if (itemnumwithappearance(i, APP_PLATEAU_BOOTS)) return i;
2903 impossible("plateau boots not found?");
2904 return -1; /* not 0, or caller would try again each move */
2908 find_fleecy_boots()
2910 register int i;
2912 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2913 if (itemnumwithappearance(i, APP_FLEECY_BOOTS)) return i;
2916 impossible("fleecy boots not found?");
2917 return -1; /* not 0, or caller would try again each move */
2921 find_terrible_boots()
2923 register int i;
2925 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2926 if (itemnumwithappearance(i, APP_PARTICULARLY_TERRIBLE_BOOTS)) return i;
2929 impossible("terrible boots not found?");
2930 return -1; /* not 0, or caller would try again each move */
2934 find_fingerless_gloves()
2936 register int i;
2938 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2939 if (itemnumwithappearance(i, APP_FINGERLESS_GLOVES)) return i;
2942 impossible("fingerless gloves not found?");
2943 return -1; /* not 0, or caller would try again each move */
2947 find_mantle_of_coat()
2949 register int i;
2951 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2952 if (itemnumwithappearance(i, APP_MANTLE_OF_COAT)) return i;
2955 impossible("mantle of coat not found?");
2956 return -1; /* not 0, or caller would try again each move */
2960 find_wedge_espadrilles()
2962 register int i;
2964 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2965 if (itemnumwithappearance(i, APP_WEDGE_ESPADRILLES)) return i;
2968 impossible("wedge espadrilles not found?");
2969 return -1; /* not 0, or caller would try again each move */
2973 find_treaded_heels()
2975 register int i;
2977 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2978 if (itemnumwithappearance(i, APP_TREADED_HEELS)) return i;
2981 impossible("treaded heels not found?");
2982 return -1; /* not 0, or caller would try again each move */
2986 find_fatal_gloves()
2988 register int i;
2990 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
2991 if (itemnumwithappearance(i, APP_FATAL_GLOVES)) return i;
2994 impossible("fatal gloves not found?");
2995 return -1; /* not 0, or caller would try again each move */
2999 find_beautiful_heels()
3001 register int i;
3003 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3004 if (itemnumwithappearance(i, APP_BEAUTIFUL_HEELS)) return i;
3007 impossible("beautiful heels not found?");
3008 return -1; /* not 0, or caller would try again each move */
3012 find_homicidal_cloak()
3014 register int i;
3016 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3017 if (itemnumwithappearance(i, APP_HOMICIDAL_CLOAK)) return i;
3020 impossible("homicidal cloak not found?");
3021 return -1; /* not 0, or caller would try again each move */
3025 find_castlevania_boots()
3027 register int i;
3029 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3030 if (itemnumwithappearance(i, APP_CASTLEVANIA_BOOTS)) return i;
3033 impossible("castlevania boots not found?");
3034 return -1; /* not 0, or caller would try again each move */
3038 find_greek_cloak()
3040 register int i;
3042 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3043 if (itemnumwithappearance(i, APP_GREEK_CLOAK)) return i;
3046 impossible("greek cloak not found?");
3047 return -1; /* not 0, or caller would try again each move */
3051 find_celtic_helmet()
3053 register int i;
3055 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3056 if (itemnumwithappearance(i, APP_CELTIC_HELMET)) return i;
3059 impossible("celtic helmet not found?");
3060 return -1; /* not 0, or caller would try again each move */
3064 find_english_gloves()
3066 register int i;
3068 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3069 if (itemnumwithappearance(i, APP_ENGLISH_GLOVES)) return i;
3072 impossible("english gloves not found?");
3073 return -1; /* not 0, or caller would try again each move */
3077 find_dextrous_gloves()
3079 register int i;
3081 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3082 if (itemnumwithappearance(i, APP_DEXTROUS_GLOVES)) return i;
3085 impossible("dextrous gloves not found?");
3086 return -1; /* not 0, or caller would try again each move */
3090 find_korean_sandals()
3092 register int i;
3094 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3095 if (itemnumwithappearance(i, APP_KOREAN_SANDALS)) return i;
3098 impossible("korean sandals not found?");
3099 return -1; /* not 0, or caller would try again each move */
3103 find_sling_pumps()
3105 register int i;
3107 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3108 if (itemnumwithappearance(i, APP_SLING_PUMPS)) return i;
3111 impossible("sling pumps not found?");
3112 return -1; /* not 0, or caller would try again each move */
3116 find_octarine_robe()
3118 register int i;
3120 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3121 if (itemnumwithappearance(i, APP_OCTARINE_ROBE)) return i;
3124 impossible("octarine robe not found?");
3125 return -1; /* not 0, or caller would try again each move */
3129 find_faceless_robe()
3131 register int i;
3133 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3134 if (itemnumwithappearance(i, APP_FACELESS_ROBE)) return i;
3137 impossible("faceless robe not found?");
3138 return -1; /* not 0, or caller would try again each move */
3142 find_chinese_cloak()
3144 register int i;
3146 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3147 if (itemnumwithappearance(i, APP_CHINESE_CLOAK)) return i;
3150 impossible("chinese cloak not found?");
3151 return -1; /* not 0, or caller would try again each move */
3155 find_buckloak()
3157 register int i;
3159 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3160 if (itemnumwithappearance(i, APP_BUCKLOAK)) return i;
3163 impossible("buckloak not found?");
3164 return -1; /* not 0, or caller would try again each move */
3168 find_polyform_cloak()
3170 register int i;
3172 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3173 if (itemnumwithappearance(i, APP_POLYFORM_CLOAK)) return i;
3176 impossible("polyform cloak not found?");
3177 return -1; /* not 0, or caller would try again each move */
3181 find_absorbing_cloak()
3183 register int i;
3185 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3186 if (itemnumwithappearance(i, APP_ABSORBING_CLOAK)) return i;
3189 impossible("absorbing cloak not found?");
3190 return -1; /* not 0, or caller would try again each move */
3194 find_birthcloth()
3196 register int i;
3198 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3199 if (itemnumwithappearance(i, APP_BIRTHCLOTH)) return i;
3202 impossible("birthcloth not found?");
3203 return -1; /* not 0, or caller would try again each move */
3207 find_poke_mongo_cloak()
3209 register int i;
3211 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3212 if (itemnumwithappearance(i, APP_POKE_MONGO_CLOAK)) return i;
3215 impossible("poke mongo cloak not found?");
3216 return -1; /* not 0, or caller would try again each move */
3220 find_levuntation_cloak()
3222 register int i;
3224 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3225 if (itemnumwithappearance(i, APP_LEVUNTATION_CLOAK)) return i;
3228 impossible("levuntation cloak not found?");
3229 return -1; /* not 0, or caller would try again each move */
3233 find_block_heeled_boots()
3235 register int i;
3237 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3238 if (itemnumwithappearance(i, APP_BLOCK_HEELED_BOOTS)) return i;
3241 impossible("block-heeled boots not found?");
3242 return -1; /* not 0, or caller would try again each move */
3246 find_quicktravel_cloak()
3248 register int i;
3250 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3251 if (itemnumwithappearance(i, APP_QUICKTRAVEL_CLOAK)) return i;
3254 impossible("quicktravel cloak not found?");
3255 return -1; /* not 0, or caller would try again each move */
3259 find_angband_cloak()
3261 register int i;
3263 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3264 if (itemnumwithappearance(i, APP_ANGBAND_CLOAK)) return i;
3267 impossible("angband cloak not found?");
3268 return -1; /* not 0, or caller would try again each move */
3272 find_anorexia_cloak()
3274 register int i;
3276 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3277 if (itemnumwithappearance(i, APP_ANOREXIA_CLOAK)) return i;
3280 impossible("anorexia cloak not found?");
3281 return -1; /* not 0, or caller would try again each move */
3285 find_dnethack_cloak()
3287 register int i;
3289 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3290 if (itemnumwithappearance(i, APP_DNETHACK_CLOAK)) return i;
3293 impossible("dnethack cloak not found?");
3294 return -1; /* not 0, or caller would try again each move */
3298 find_team_splat_cloak()
3300 register int i;
3302 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3303 if (itemnumwithappearance(i, APP_TEAM_SPLAT_CLOAK)) return i;
3306 impossible("team splat cloak not found?");
3307 return -1; /* not 0, or caller would try again each move */
3311 find_eldritch_cloak()
3313 register int i;
3315 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3316 if (itemnumwithappearance(i, APP_ELDRITCH_CLOAK)) return i;
3319 impossible("eldritch cloak not found?");
3320 return -1; /* not 0, or caller would try again each move */
3324 find_deadly_cloak()
3326 register int i;
3328 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3329 if (itemnumwithappearance(i, APP_DEADLY_CLOAK)) return i;
3332 impossible("deadly cloak not found?");
3333 return -1; /* not 0, or caller would try again each move */
3337 find_erotic_boots()
3339 register int i;
3341 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3342 if (itemnumwithappearance(i, APP_EROTIC_BOOTS)) return i;
3345 impossible("erotic boots not found?");
3346 return -1; /* not 0, or caller would try again each move */
3350 find_secret_helmet()
3352 register int i;
3354 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3355 if (itemnumwithappearance(i, APP_SECRET_HELMET)) return i;
3358 impossible("secret helmet not found?");
3359 return -1; /* not 0, or caller would try again each move */
3363 find_difficult_cloak()
3365 register int i;
3367 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3368 if (itemnumwithappearance(i, APP_DIFFICULT_CLOAK)) return i;
3371 impossible("difficult cloak not found?");
3372 return -1; /* not 0, or caller would try again each move */
3376 find_velvet_gloves()
3378 register int i;
3380 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3381 if (itemnumwithappearance(i, APP_VELVET_GLOVES)) return i;
3384 impossible("velvet gloves not found?");
3385 return -1; /* not 0, or caller would try again each move */
3389 find_hooked_gloves()
3391 register int i;
3393 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3394 if (itemnumwithappearance(i, APP_HOOKED_GLOVES)) return i;
3397 impossible("hooked gloves not found?");
3398 return -1; /* not 0, or caller would try again each move */
3402 find_atlas_gloves()
3404 register int i;
3406 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3407 if (itemnumwithappearance(i, APP_ATLAS_GLOVES)) return i;
3410 impossible("atlas gloves not found?");
3411 return -1; /* not 0, or caller would try again each move */
3415 find_speedy_gloves()
3417 register int i;
3419 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3420 if (itemnumwithappearance(i, APP_SPEEDY_GLOVES)) return i;
3423 impossible("speedy gloves not found?");
3424 return -1; /* not 0, or caller would try again each move */
3428 find_velvet_pumps()
3430 register int i;
3432 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3433 if (itemnumwithappearance(i, APP_VELVET_PUMPS)) return i;
3436 impossible("velvet pumps not found?");
3437 return -1; /* not 0, or caller would try again each move */
3441 find_not_slowing_down_boots()
3443 register int i;
3445 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3446 if (itemnumwithappearance(i, APP_NOT_SLOWING_DOWN_BOOTS)) return i;
3449 impossible("not-slowing-down boots not found?");
3450 return -1; /* not 0, or caller would try again each move */
3454 find_bladed_disks()
3456 register int i;
3458 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3459 if (itemnumwithappearance(i, APP_BLADED_DISKS)) return i;
3462 impossible("bladed disks not found?");
3463 return -1; /* not 0, or caller would try again each move */
3467 find_volcanic_cloak()
3469 register int i;
3471 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3472 if (itemnumwithappearance(i, APP_VOLCANIC_CLOAK)) return i;
3475 impossible("volcanic cloak not found?");
3476 return -1; /* not 0, or caller would try again each move */
3480 find_air_cloak()
3482 register int i;
3484 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3485 if (itemnumwithappearance(i, APP_AIR_CLOAK)) return i;
3488 impossible("air cloak not found?");
3489 return -1; /* not 0, or caller would try again each move */
3493 find_vindale_cloak()
3495 register int i;
3497 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3498 if (itemnumwithappearance(i, APP_VINDALE_CLOAK)) return i;
3501 impossible("vindale cloak not found?");
3502 return -1; /* not 0, or caller would try again each move */
3506 find_fuel_cloak()
3508 register int i;
3510 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3511 if (itemnumwithappearance(i, APP_FUEL_CLOAK)) return i;
3514 impossible("fuel cloak not found?");
3515 return -1; /* not 0, or caller would try again each move */
3519 find_cloister_cloak()
3521 register int i;
3523 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3524 if (itemnumwithappearance(i, APP_CLOISTER_CLOAK)) return i;
3527 impossible("cloister cloak not found?");
3528 return -1; /* not 0, or caller would try again each move */
3532 find_quantity_cloak()
3534 register int i;
3536 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3537 if (itemnumwithappearance(i, APP_QUANTITY_CLOAK)) return i;
3540 impossible("quantity cloak not found?");
3541 return -1; /* not 0, or caller would try again each move */
3545 find_shemagh()
3547 register int i;
3549 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3550 if (itemnumwithappearance(i, APP_SHEMAGH)) return i;
3553 impossible("shemagh not found?");
3554 return -1; /* not 0, or caller would try again each move */
3558 find_visored_helmet()
3560 register int i;
3562 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3563 if (itemnumwithappearance(i, APP_VISORED_HELMET)) return i;
3566 impossible("visored helmet not found?");
3567 return -1; /* not 0, or caller would try again each move */
3571 find_23_helmet()
3573 register int i;
3575 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3576 if (itemnumwithappearance(i, APP_TT_HELMET)) return i;
3579 impossible("23 helmet not found?");
3580 return -1; /* not 0, or caller would try again each move */
3584 find_orange_visored_helmet()
3586 register int i;
3588 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3589 if (itemnumwithappearance(i, APP_ORANGE_VISORED_HELMET)) return i;
3592 impossible("orange visored helmet not found?");
3593 return -1; /* not 0, or caller would try again each move */
3597 find_frequent_helmet()
3599 register int i;
3601 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3602 if (itemnumwithappearance(i, APP_FREQUENT_HELMET)) return i;
3605 impossible("frequent helmet not found?");
3606 return -1; /* not 0, or caller would try again each move */
3610 find_serrated_helmet()
3612 register int i;
3614 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3615 if (itemnumwithappearance(i, APP_SERRATED_HELMET)) return i;
3618 impossible("serrated helmet not found?");
3619 return -1; /* not 0, or caller would try again each move */
3623 find_thick_boots()
3625 register int i;
3627 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3628 if (itemnumwithappearance(i, APP_THICK_BOOTS)) return i;
3631 impossible("thick boots not found?");
3632 return -1; /* not 0, or caller would try again each move */
3636 find_sand_als()
3638 register int i;
3640 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3641 if (itemnumwithappearance(i, APP_SAND_ALS)) return i;
3644 impossible("sand-als not found?");
3645 return -1; /* not 0, or caller would try again each move */
3649 find_shadowy_heels()
3651 register int i;
3653 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3654 if (itemnumwithappearance(i, APP_SHADOWY_HEELS)) return i;
3657 impossible("shadowy heels not found?");
3658 return -1; /* not 0, or caller would try again each move */
3662 find_a_heels()
3664 register int i;
3666 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3667 if (itemnumwithappearance(i, APP_A_HEELS)) return i;
3670 impossible("a-heels not found?");
3671 return -1; /* not 0, or caller would try again each move */
3675 find_weight_attachment_boots()
3677 register int i;
3679 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3680 if (itemnumwithappearance(i, APP_WEIGHT_ATTACHMENT_BOOTS)) return i;
3683 impossible("weight attachment boots not found?");
3684 return -1; /* not 0, or caller would try again each move */
3688 find_fungal_sandals()
3690 register int i;
3692 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3693 if (itemnumwithappearance(i, APP_FUNGAL_SANDALS)) return i;
3696 impossible("fungal sandals not found?");
3697 return -1; /* not 0, or caller would try again each move */
3701 find_standing_footwear()
3703 register int i;
3705 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3706 if (itemnumwithappearance(i, APP_STANDING_FOOTWEAR)) return i;
3709 impossible("standing footwear not found?");
3710 return -1; /* not 0, or caller would try again each move */
3714 find_sputa_boots()
3716 register int i;
3718 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3719 if (itemnumwithappearance(i, APP_SPUTA_BOOTS)) return i;
3722 impossible("sputa boots not found?");
3723 return -1; /* not 0, or caller would try again each move */
3727 find_formula_one_helmet()
3729 register int i;
3731 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3732 if (itemnumwithappearance(i, APP_FORMULA_ONE_HELMET)) return i;
3735 impossible("formula one helmet not found?");
3736 return -1; /* not 0, or caller would try again each move */
3740 find_cosmetic_helmet()
3742 register int i;
3744 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3745 if (itemnumwithappearance(i, APP_COSMETIC_HELMET)) return i;
3748 impossible("cosmetic helmet not found?");
3749 return -1; /* not 0, or caller would try again each move */
3753 find_excrement_cloak()
3755 register int i;
3757 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3758 if (itemnumwithappearance(i, APP_EXCREMENT_CLOAK)) return i;
3761 impossible("excrement cloak not found?");
3762 return -1; /* not 0, or caller would try again each move */
3766 find_racer_gloves()
3768 register int i;
3770 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3771 if (itemnumwithappearance(i, APP_RACER_GLOVES)) return i;
3774 impossible("racer gloves not found?");
3775 return -1; /* not 0, or caller would try again each move */
3779 find_turbo_boots()
3781 register int i;
3783 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3784 if (itemnumwithappearance(i, APP_TURBO_BOOTS)) return i;
3787 impossible("turbo boots not found?");
3788 return -1; /* not 0, or caller would try again each move */
3792 find_guild_cloak()
3794 register int i;
3796 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3797 if (itemnumwithappearance(i, APP_GUILD_CLOAK)) return i;
3800 impossible("guild cloak not found?");
3801 return -1; /* not 0, or caller would try again each move */
3805 find_shitty_gloves()
3807 register int i;
3809 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3810 if (itemnumwithappearance(i, APP_SHITTY_GLOVES)) return i;
3813 impossible("shitty gloves not found?");
3814 return -1; /* not 0, or caller would try again each move */
3818 find_foundry_cloak()
3820 register int i;
3822 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3823 if (itemnumwithappearance(i, APP_FOUNDRY_CLOAK)) return i;
3826 impossible("foundry cloak not found?");
3827 return -1; /* not 0, or caller would try again each move */
3831 find_bamboo_cloak()
3833 register int i;
3835 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3836 if (itemnumwithappearance(i, APP_BAMBOO_CLOAK)) return i;
3839 impossible("bamboo cloak not found?");
3840 return -1; /* not 0, or caller would try again each move */
3844 find_warning_coat()
3846 register int i;
3848 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3849 if (itemnumwithappearance(i, APP_WARNING_COAT)) return i;
3852 impossible("warning coat not found?");
3853 return -1; /* not 0, or caller would try again each move */
3857 find_spellsucking_cloak()
3859 register int i;
3861 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3862 if (itemnumwithappearance(i, APP_SPELLSUCKING_CLOAK)) return i;
3865 impossible("spellsucking cloak not found?");
3866 return -1; /* not 0, or caller would try again each move */
3870 find_storm_coat()
3872 register int i;
3874 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3875 if (itemnumwithappearance(i, APP_STORM_COAT)) return i;
3878 impossible("storm coat not found?");
3879 return -1; /* not 0, or caller would try again each move */
3883 find_fleeceling_cloak()
3885 register int i;
3887 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3888 if (itemnumwithappearance(i, APP_FLEECELING_CLOAK)) return i;
3891 impossible("fleeceling cloak not found?");
3892 return -1; /* not 0, or caller would try again each move */
3896 find_princess_gloves()
3898 register int i;
3900 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3901 if (itemnumwithappearance(i, APP_PRINCESS_GLOVES)) return i;
3904 impossible("princess gloves not found?");
3905 return -1; /* not 0, or caller would try again each move */
3909 find_uncanny_gloves()
3911 register int i;
3913 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3914 if (itemnumwithappearance(i, APP_UNCANNY_GLOVES)) return i;
3917 impossible("uncanny gloves not found?");
3918 return -1; /* not 0, or caller would try again each move */
3922 find_slaying_gloves()
3924 register int i;
3926 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3927 if (itemnumwithappearance(i, APP_SLAYING_GLOVES)) return i;
3930 impossible("slaying gloves not found?");
3931 return -1; /* not 0, or caller would try again each move */
3935 find_blue_sneakers()
3937 register int i;
3939 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3940 if (itemnumwithappearance(i, APP_BLUE_SNEAKERS)) return i;
3943 impossible("blue sneakers not found?");
3944 return -1; /* not 0, or caller would try again each move */
3948 find_femmy_boots()
3950 register int i;
3952 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3953 if (itemnumwithappearance(i, APP_FEMMY_BOOTS)) return i;
3956 impossible("femmy boots not found?");
3957 return -1; /* not 0, or caller would try again each move */
3961 find_red_sneakers()
3963 register int i;
3965 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3966 if (itemnumwithappearance(i, APP_RED_SNEAKERS)) return i;
3969 impossible("red sneakers not found?");
3970 return -1; /* not 0, or caller would try again each move */
3974 find_yellow_sneakers()
3976 register int i;
3978 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3979 if (itemnumwithappearance(i, APP_YELLOW_SNEAKERS)) return i;
3982 impossible("yellow sneakers not found?");
3983 return -1; /* not 0, or caller would try again each move */
3987 find_pink_sneakers()
3989 register int i;
3991 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
3992 if (itemnumwithappearance(i, APP_PINK_SNEAKERS)) return i;
3995 impossible("pink sneakers not found?");
3996 return -1; /* not 0, or caller would try again each move */
4000 find_calf_leather_sandals()
4002 register int i;
4004 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4005 if (itemnumwithappearance(i, APP_CALF_LEATHER_SANDALS)) return i;
4008 impossible("calf-leather sandals not found?");
4009 return -1; /* not 0, or caller would try again each move */
4013 find_velcro_sandals()
4015 register int i;
4017 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4018 if (itemnumwithappearance(i, APP_VELCRO_SANDALS)) return i;
4021 impossible("velcro sandals not found?");
4022 return -1; /* not 0, or caller would try again each move */
4026 find_buffalo_boots()
4028 register int i;
4030 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4031 if (itemnumwithappearance(i, APP_BUFFALO_BOOTS)) return i;
4034 impossible("buffalo boots not found?");
4035 return -1; /* not 0, or caller would try again each move */
4039 find_white_buffalo_boots()
4041 register int i;
4043 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4044 if (itemnumwithappearance(i, APP_WHITE_BUFFALO_BOOTS)) return i;
4047 impossible("white buffalo boots not found?");
4048 return -1; /* not 0, or caller would try again each move */
4052 find_heroine_mocassins()
4054 register int i;
4056 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4057 if (itemnumwithappearance(i, APP_HEROINE_MOCASSINS)) return i;
4060 impossible("heroine mocassins not found?");
4061 return -1; /* not 0, or caller would try again each move */
4065 find_lolita_boots()
4067 register int i;
4069 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4070 if (itemnumwithappearance(i, APP_LOLITA_BOOTS)) return i;
4073 impossible("lolita boots not found?");
4074 return -1; /* not 0, or caller would try again each move */
4078 find_fetish_heels()
4080 register int i;
4082 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4083 if (itemnumwithappearance(i, APP_FETISH_HEELS)) return i;
4086 impossible("fetish heels not found?");
4087 return -1; /* not 0, or caller would try again each move */
4091 find_weapon_light_boots()
4093 register int i;
4095 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4096 if (itemnumwithappearance(i, APP_WEAPON_LIGHT_BOOTS)) return i;
4099 impossible("weapon light boots not found?");
4100 return -1; /* not 0, or caller would try again each move */
4104 find_rubynus_helmet()
4106 register int i;
4108 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4109 if (itemnumwithappearance(i, APP_RUBYNUS_HELMET)) return i;
4112 impossible("rubynus helmet not found?");
4113 return -1; /* not 0, or caller would try again each move */
4117 find_cursed_called_cloak()
4119 register int i;
4121 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4122 if (itemnumwithappearance(i, APP_CURSED_CALLED_CLOAK)) return i;
4125 impossible("cursed called cloak not found?");
4126 return -1; /* not 0, or caller would try again each move */
4130 find_fourchan_cloak()
4132 register int i;
4134 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4135 if (itemnumwithappearance(i, APP_FOURCHAN_CLOAK)) return i;
4138 impossible("fourchan cloak not found?");
4139 return -1; /* not 0, or caller would try again each move */
4143 find_inalish_cloak()
4145 register int i;
4147 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4148 if (itemnumwithappearance(i, APP_INALISH_CLOAK)) return i;
4151 impossible("inalish cloak not found?");
4152 return -1; /* not 0, or caller would try again each move */
4156 find_grunter_helmet()
4158 register int i;
4160 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4161 if (itemnumwithappearance(i, APP_GRUNTER_HELMET)) return i;
4164 impossible("grunter helmet not found?");
4165 return -1; /* not 0, or caller would try again each move */
4169 find_cloudy_helmet()
4171 register int i;
4173 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4174 if (itemnumwithappearance(i, APP_CLOUDY_HELMET)) return i;
4177 impossible("cloudy helmet not found?");
4178 return -1; /* not 0, or caller would try again each move */
4182 find_breath_control_helmet()
4184 register int i;
4186 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4187 if (itemnumwithappearance(i, APP_BREATH_CONTROL_HELMET)) return i;
4190 impossible("breath control helmet not found?");
4191 return -1; /* not 0, or caller would try again each move */
4195 find_gas_mask()
4197 register int i;
4199 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4200 if (itemnumwithappearance(i, APP_GAS_MASK)) return i;
4203 impossible("gas mask not found?");
4204 return -1; /* not 0, or caller would try again each move */
4208 find_sages_helmet()
4210 register int i;
4212 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4213 if (itemnumwithappearance(i, APP_SAGES_HELMET)) return i;
4216 impossible("sages helmet not found?");
4217 return -1; /* not 0, or caller would try again each move */
4221 find_rayductnay_gloves()
4223 register int i;
4225 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4226 if (itemnumwithappearance(i, APP_RAYDUCTNAY_GLOVES)) return i;
4229 impossible("rayductnay gloves not found?");
4230 return -1; /* not 0, or caller would try again each move */
4234 find_orgasm_pumps()
4236 register int i;
4238 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4239 if (itemnumwithappearance(i, APP_ORGASM_PUMPS)) return i;
4242 impossible("orgasm pumps not found?");
4243 return -1; /* not 0, or caller would try again each move */
4247 find_alligator_pumps()
4249 register int i;
4251 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4252 if (itemnumwithappearance(i, APP_ALLIGATOR_PUMPS)) return i;
4255 impossible("alligator pumps not found?");
4256 return -1; /* not 0, or caller would try again each move */
4260 find_worn_out_sneakers()
4262 register int i;
4264 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4265 if (itemnumwithappearance(i, APP_WORN_OUT_SNEAKERS)) return i;
4268 impossible("worn-out sneakers not found?");
4269 return -1; /* not 0, or caller would try again each move */
4273 find_noble_sandals()
4275 register int i;
4277 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4278 if (itemnumwithappearance(i, APP_NOBLE_SANDALS)) return i;
4281 impossible("noble sandals not found?");
4282 return -1; /* not 0, or caller would try again each move */
4286 find_doctor_claw_boots()
4288 register int i;
4290 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4291 if (itemnumwithappearance(i, APP_DOCTOR_CLAW_BOOTS)) return i;
4294 impossible("doctor claw boots not found?");
4295 return -1; /* not 0, or caller would try again each move */
4299 find_feelgood_heels()
4301 register int i;
4303 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4304 if (itemnumwithappearance(i, APP_FEELGOOD_HEELS)) return i;
4307 impossible("feelgood heels not found?");
4308 return -1; /* not 0, or caller would try again each move */
4312 find_plof_heels()
4314 register int i;
4316 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4317 if (itemnumwithappearance(i, APP_PLOF_HEELS)) return i;
4320 impossible("plof heels not found?");
4321 return -1; /* not 0, or caller would try again each move */
4325 find_princess_pumps()
4327 register int i;
4329 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4330 if (itemnumwithappearance(i, APP_PRINCESS_PUMPS)) return i;
4333 impossible("princess pumps not found?");
4334 return -1; /* not 0, or caller would try again each move */
4338 find_ballet_heels()
4340 register int i;
4342 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4343 if (itemnumwithappearance(i, APP_BALLET_HEELS)) return i;
4346 impossible("ballet heels not found?");
4347 return -1; /* not 0, or caller would try again each move */
4351 find_steel_toed_boots()
4353 register int i;
4355 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4356 if (itemnumwithappearance(i, APP_STEEL_TOED_BOOTS)) return i;
4359 impossible("steel toed boots not found?");
4360 return -1; /* not 0, or caller would try again each move */
4364 find_marji_shoes()
4366 register int i;
4368 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4369 if (itemnumwithappearance(i, APP_MARJI_SHOES)) return i;
4372 impossible("marji shoes not found?");
4373 return -1; /* not 0, or caller would try again each move */
4377 find_hammer_shoes()
4379 register int i;
4381 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4382 if (itemnumwithappearance(i, APP_HAMMER_SHOES)) return i;
4385 impossible("hammer shoes not found?");
4386 return -1; /* not 0, or caller would try again each move */
4390 find_stone_carved_heels()
4392 register int i;
4394 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4395 if (itemnumwithappearance(i, APP_STONE_CARVED_HEELS)) return i;
4398 impossible("stone-carved heels not found?");
4399 return -1; /* not 0, or caller would try again each move */
4403 find_stupid_stilettos()
4405 register int i;
4407 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4408 if (itemnumwithappearance(i, APP_STUPID_STILETTOS)) return i;
4411 impossible("stupid stilettos not found?");
4412 return -1; /* not 0, or caller would try again each move */
4416 find_homo_shoes()
4418 register int i;
4420 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4421 if (itemnumwithappearance(i, APP_HOMO_SHOES)) return i;
4424 impossible("homo shoes not found?");
4425 return -1; /* not 0, or caller would try again each move */
4429 find_devil_lettuce_shoes()
4431 register int i;
4433 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4434 if (itemnumwithappearance(i, APP_DEVIL_LETTUCE_SHOES)) return i;
4437 impossible("devil's lettuce shoes not found?");
4438 return -1; /* not 0, or caller would try again each move */
4442 find_loafers()
4444 register int i;
4446 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4447 if (itemnumwithappearance(i, APP_LOAFERS)) return i;
4450 impossible("loafers not found?");
4451 return -1; /* not 0, or caller would try again each move */
4455 find_sweaty_shoes()
4457 register int i;
4459 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4460 if (itemnumwithappearance(i, APP_SWEATY_SHOES)) return i;
4463 impossible("sweaty shoes not found?");
4464 return -1; /* not 0, or caller would try again each move */
4468 find_sister_shoes()
4470 register int i;
4472 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4473 if (itemnumwithappearance(i, APP_SISTER_SHOES)) return i;
4476 impossible("sister shoes not found?");
4477 return -1; /* not 0, or caller would try again each move */
4481 find_mary_janes()
4483 register int i;
4485 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4486 if (itemnumwithappearance(i, APP_MARY_JANES)) return i;
4489 impossible("mary janes not found?");
4490 return -1; /* not 0, or caller would try again each move */
4494 find_business_shoes()
4496 register int i;
4498 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4499 if (itemnumwithappearance(i, APP_BUSINESS_SHOES)) return i;
4502 impossible("business shoes not found?");
4503 return -1; /* not 0, or caller would try again each move */
4508 find_filigree_stilettos()
4510 register int i;
4512 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4513 if (itemnumwithappearance(i, APP_FILIGREE_STILETTOS)) return i;
4516 impossible("filigree stilettos not found?");
4517 return -1; /* not 0, or caller would try again each move */
4522 find_silver_stilettos()
4524 register int i;
4526 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4527 if (itemnumwithappearance(i, APP_SILVER_STILETTOS)) return i;
4530 impossible("silver stilettos not found?");
4531 return -1; /* not 0, or caller would try again each move */
4536 find_copper_stilettos()
4538 register int i;
4540 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4541 if (itemnumwithappearance(i, APP_COPPER_STILETTOS)) return i;
4544 impossible("copper stilettos not found?");
4545 return -1; /* not 0, or caller would try again each move */
4550 find_diamond_stilettos()
4552 register int i;
4554 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4555 if (itemnumwithappearance(i, APP_DIAMOND_STILETTOS)) return i;
4558 impossible("diamond stilettos not found?");
4559 return -1; /* not 0, or caller would try again each move */
4564 find_ugly_boots()
4566 register int i;
4568 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4569 if (itemnumwithappearance(i, APP_UGLY_BOOTS)) return i;
4572 impossible("ugly boots not found?");
4573 return -1; /* not 0, or caller would try again each move */
4578 find_unisex_pumps()
4580 register int i;
4582 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4583 if (itemnumwithappearance(i, APP_UNISEX_PUMPS)) return i;
4586 impossible("unisex pumps not found?");
4587 return -1; /* not 0, or caller would try again each move */
4592 find_cuddle_cloth_boots()
4594 register int i;
4596 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4597 if (itemnumwithappearance(i, APP_CUDDLE_CLOTH_BOOTS)) return i;
4600 impossible("cuddle cloth boots not found?");
4601 return -1; /* not 0, or caller would try again each move */
4606 find_garden_slippers()
4608 register int i;
4610 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4611 if (itemnumwithappearance(i, APP_GARDEN_SLIPPERS)) return i;
4614 impossible("garden slippers not found?");
4615 return -1; /* not 0, or caller would try again each move */
4620 find_everlasting_boots()
4622 register int i;
4624 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4625 if (itemnumwithappearance(i, APP_EVERLASTING_BOOTS)) return i;
4628 impossible("everlasting boots not found?");
4629 return -1; /* not 0, or caller would try again each move */
4634 find_dyke_boots()
4636 register int i;
4638 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4639 if (itemnumwithappearance(i, APP_DYKE_BOOTS)) return i;
4642 impossible("dyke boots not found?");
4643 return -1; /* not 0, or caller would try again each move */
4648 find_ankle_strap_sandals()
4650 register int i;
4652 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4653 if (itemnumwithappearance(i, APP_ANKLE_STRAP_SANDALS)) return i;
4656 impossible("ankle strap sandals not found?");
4657 return -1; /* not 0, or caller would try again each move */
4662 find_ankle_boots()
4664 register int i;
4666 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4667 if (itemnumwithappearance(i, APP_ANKLE_BOOTS)) return i;
4670 impossible("ankle boots not found?");
4671 return -1; /* not 0, or caller would try again each move */
4676 find_demonologist_boots()
4678 register int i;
4680 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4681 if (itemnumwithappearance(i, APP_DEMONOLOGIST_BOOTS)) return i;
4684 impossible("demonologist boots not found?");
4685 return -1; /* not 0, or caller would try again each move */
4690 find_mud_boots()
4692 register int i;
4694 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4695 if (itemnumwithappearance(i, APP_MUD_BOOTS)) return i;
4698 impossible("mud boots not found?");
4699 return -1; /* not 0, or caller would try again each move */
4704 find_failed_shoes()
4706 register int i;
4708 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4709 if (itemnumwithappearance(i, APP_FAILED_SHOES)) return i;
4712 impossible("failed shoes not found?");
4713 return -1; /* not 0, or caller would try again each move */
4718 find_opera_pumps()
4720 register int i;
4722 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4723 if (itemnumwithappearance(i, APP_OPERA_PUMPS)) return i;
4726 impossible("opera pumps not found?");
4727 return -1; /* not 0, or caller would try again each move */
4732 find_wooden_clogs()
4734 register int i;
4736 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4737 if (itemnumwithappearance(i, APP_WOODEN_CLOGS)) return i;
4740 impossible("wooden clogs not found?");
4741 return -1; /* not 0, or caller would try again each move */
4746 find_regular_sneakers()
4748 register int i;
4750 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4751 if (itemnumwithappearance(i, APP_REGULAR_SNEAKERS)) return i;
4754 impossible("regular sneakers not found?");
4755 return -1; /* not 0, or caller would try again each move */
4760 find_exceptional_sneakers()
4762 register int i;
4764 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4765 if (itemnumwithappearance(i, APP_EXCEPTIONAL_SNEAKERS)) return i;
4768 impossible("exceptional sneakers not found?");
4769 return -1; /* not 0, or caller would try again each move */
4774 find_elite_sneakers()
4776 register int i;
4778 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4779 if (itemnumwithappearance(i, APP_ELITE_SNEAKERS)) return i;
4782 impossible("elite sneakers not found?");
4783 return -1; /* not 0, or caller would try again each move */
4788 find_cyan_sneakers()
4790 register int i;
4792 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4793 if (itemnumwithappearance(i, APP_CYAN_SNEAKERS)) return i;
4796 impossible("cyan sneakers not found?");
4797 return -1; /* not 0, or caller would try again each move */
4803 find_biker_boots()
4805 register int i;
4807 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4808 if (itemnumwithappearance(i, APP_BIKER_BOOTS)) return i;
4811 impossible("biker boots not found?");
4812 return -1; /* not 0, or caller would try again each move */
4817 find_zero_drop_shoes()
4819 register int i;
4821 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4822 if (itemnumwithappearance(i, APP_ZERO_DROP_SHOES)) return i;
4825 impossible("zero drop shoes not found?");
4826 return -1; /* not 0, or caller would try again each move */
4831 find_hiking_boots()
4833 register int i;
4835 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4836 if (itemnumwithappearance(i, APP_HIKING_BOOTS)) return i;
4839 impossible("hiking boots not found?");
4840 return -1; /* not 0, or caller would try again each move */
4845 find_pope_hat()
4847 register int i;
4849 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4850 if (itemnumwithappearance(i, APP_POPE_HAT)) return i;
4853 impossible("pope hat not found?");
4854 return -1; /* not 0, or caller would try again each move */
4859 find_corona_mask()
4861 register int i;
4863 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4864 if (itemnumwithappearance(i, APP_CORONA_MASK)) return i;
4867 impossible("corona mask not found?");
4868 return -1; /* not 0, or caller would try again each move */
4873 find_anachro_helmet()
4875 register int i;
4877 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4878 if (itemnumwithappearance(i, APP_ANACHRO_HELMET)) return i;
4881 impossible("anachronononononaut helmet not found?");
4882 return -1; /* not 0, or caller would try again each move */
4887 find_ornamental_cope()
4889 register int i;
4891 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4892 if (itemnumwithappearance(i, APP_ORNAMENTAL_COPE)) return i;
4895 impossible("ornamental cope not found?");
4896 return -1; /* not 0, or caller would try again each move */
4901 find_wetsuit()
4903 register int i;
4905 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4906 if (itemnumwithappearance(i, APP_WETSUIT)) return i;
4909 impossible("wetsuit not found?");
4910 return -1; /* not 0, or caller would try again each move */
4915 find_multilinguitis_gloves()
4917 register int i;
4919 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4920 if (itemnumwithappearance(i, APP_MULTILINGUITIS_GLOVES)) return i;
4923 impossible("multilinguitis gloves not found?");
4924 return -1; /* not 0, or caller would try again each move */
4929 find_throwaway_sandals()
4931 register int i;
4933 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4934 if (itemnumwithappearance(i, APP_THROWAWAY_SANDALS)) return i;
4937 impossible("throwaway sandals not found?");
4938 return -1; /* not 0, or caller would try again each move */
4943 find_sharp_edged_sandals()
4945 register int i;
4947 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4948 if (itemnumwithappearance(i, APP_SHARP_EDGED_SANDALS)) return i;
4951 impossible("sharp-edged sandals not found?");
4952 return -1; /* not 0, or caller would try again each move */
4957 find_nondescript_gloves()
4959 register int i;
4961 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4962 if (itemnumwithappearance(i, APP_NONDESCRIPT_GLOVES)) return i;
4965 impossible("nondescript gloves not found?");
4966 return -1; /* not 0, or caller would try again each move */
4971 find_lead_boots()
4973 register int i;
4975 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4976 if (itemnumwithappearance(i, APP_LEAD_BOOTS)) return i;
4979 impossible("lead boots not found?");
4980 return -1; /* not 0, or caller would try again each move */
4985 find_machinery_boots()
4987 register int i;
4989 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
4990 if (itemnumwithappearance(i, APP_MACHINERY_BOOTS)) return i;
4993 impossible("machinery boots not found?");
4994 return -1; /* not 0, or caller would try again each move */
4999 find_christmas_child_mode_boots()
5001 register int i;
5003 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5004 if (itemnumwithappearance(i, APP_CHRISTMAS_CHILD_MODE_BOOTS)) return i;
5007 impossible("christmas child mode boots not found?");
5008 return -1; /* not 0, or caller would try again each move */
5013 find_sandals_with_socks()
5015 register int i;
5017 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5018 if (itemnumwithappearance(i, APP_SANDALS_WITH_SOCKS)) return i;
5021 impossible("sandals with socks not found?");
5022 return -1; /* not 0, or caller would try again each move */
5027 find_wedge_sneakers()
5029 register int i;
5031 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5032 if (itemnumwithappearance(i, APP_WEDGE_SNEAKERS)) return i;
5035 impossible("wedge sneakers not found?");
5036 return -1; /* not 0, or caller would try again each move */
5041 find_barefoot_shoes()
5043 register int i;
5045 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5046 if (itemnumwithappearance(i, APP_BAREFOOT_SHOES)) return i;
5049 impossible("barefoot shoes not found?");
5050 return -1; /* not 0, or caller would try again each move */
5055 find_blockchoc_boots()
5057 register int i;
5059 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5060 if (itemnumwithappearance(i, APP_BLOCKCHOC_BOOTS)) return i;
5063 impossible("blockchoc boots not found?");
5064 return -1; /* not 0, or caller would try again each move */
5069 find_platform_sneakers()
5071 register int i;
5073 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5074 if (itemnumwithappearance(i, APP_PLATFORM_SNEAKERS)) return i;
5077 impossible("platform sneakers not found?");
5078 return -1; /* not 0, or caller would try again each move */
5083 find_platform_fleecies()
5085 register int i;
5087 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5088 if (itemnumwithappearance(i, APP_PLATFORM_FLEECIES)) return i;
5091 impossible("platform fleecies not found?");
5092 return -1; /* not 0, or caller would try again each move */
5097 find_iceblock_heels()
5099 register int i;
5101 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5102 if (itemnumwithappearance(i, APP_ICEBLOCK_HEELS)) return i;
5105 impossible("iceblock heels not found?");
5106 return -1; /* not 0, or caller would try again each move */
5111 find_retractable_block_heels()
5113 register int i;
5115 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5116 if (itemnumwithappearance(i, APP_RETRACTABLE_BLOCK_HEELS)) return i;
5119 impossible("retractable block heels not found?");
5120 return -1; /* not 0, or caller would try again each move */
5125 find_paragraph_shoes()
5127 register int i;
5129 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5130 if (itemnumwithappearance(i, APP_PARAGRAPH_SHOES)) return i;
5133 impossible("paragraph shoes not found?");
5134 return -1; /* not 0, or caller would try again each move */
5139 find_instafeminism_shoes()
5141 register int i;
5143 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5144 if (itemnumwithappearance(i, APP_INSTAFEMINISM_SHOES)) return i;
5147 impossible("instafeminism shoes not found?");
5148 return -1; /* not 0, or caller would try again each move */
5153 find_paragraph_sandals()
5155 register int i;
5157 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5158 if (itemnumwithappearance(i, APP_PARAGRAPH_SANDALS)) return i;
5161 impossible("paragraph sandals not found?");
5162 return -1; /* not 0, or caller would try again each move */
5167 find_bridal_shoes()
5169 register int i;
5171 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5172 if (itemnumwithappearance(i, APP_BRIDAL_SHOES)) return i;
5175 impossible("bridal shoes not found?");
5176 return -1; /* not 0, or caller would try again each move */
5181 find_pistol_boots()
5183 register int i;
5185 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5186 if (itemnumwithappearance(i, APP_PISTOL_BOOTS)) return i;
5189 impossible("pistol boots not found?");
5190 return -1; /* not 0, or caller would try again each move */
5195 find_ng_shoes()
5197 register int i;
5199 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5200 if (itemnumwithappearance(i, APP_NG_SHOES)) return i;
5203 impossible("ng shoes not found?");
5204 return -1; /* not 0, or caller would try again each move */
5209 find_chelsea_boots()
5211 register int i;
5213 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5214 if (itemnumwithappearance(i, APP_CHELSEA_BOOTS)) return i;
5217 impossible("chelsea boots not found?");
5218 return -1; /* not 0, or caller would try again each move */
5223 find_strip_bandana()
5225 register int i;
5227 for (i = HAWAIIAN_SHIRT; i <= LEVITATION_BOOTS; i++) {
5228 if (itemnumwithappearance(i, APP_STRIP_BANDANA)) return i;
5231 impossible("strip bandana not found?");
5232 return -1; /* not 0, or caller would try again each move */
5236 void
5237 oinit() /* level dependent initialization */
5239 setgemprobs(&u.uz);
5242 void
5243 savenames(fd, mode)
5244 int fd, mode;
5246 register int i;
5247 unsigned int len;
5249 if (perform_bwrite(mode)) {
5250 bwrite(fd, (void *)bases, sizeof bases);
5251 bwrite(fd, (void *)disco, sizeof disco);
5252 bwrite(fd, (void *)objects,
5253 sizeof(struct objclass) * NUM_OBJECTS);
5254 /*bwrite(fd, (void *)mons,
5255 sizeof(struct permonst) * NUMMONS);*/
5257 /* as long as we use only one version of Hack we
5258 need not save oc_name and oc_descr, but we must save
5259 oc_uname for all objects */
5260 for (i = 0; i < NUM_OBJECTS; i++)
5261 if (objects[i].oc_uname) {
5262 if (perform_bwrite(mode)) {
5263 len = strlen(objects[i].oc_uname)+1;
5264 bwrite(fd, (void *)&len, sizeof len);
5265 bwrite(fd, (void *)objects[i].oc_uname, len);
5267 if (release_data(mode)) {
5268 free((void *)objects[i].oc_uname);
5269 objects[i].oc_uname = 0;
5274 void
5275 restnames(fd)
5276 register int fd;
5278 register int i;
5279 unsigned int len;
5281 mread(fd, (void *) bases, sizeof bases);
5282 mread(fd, (void *) disco, sizeof disco);
5283 mread(fd, (void *) objects, sizeof(struct objclass) * NUM_OBJECTS);
5284 /*mread(fd, (void *) mons, sizeof(struct permonst) * NUMMONS);*/
5285 for (i = 0; i < NUM_OBJECTS; i++)
5286 if (objects[i].oc_uname) {
5287 mread(fd, (void *) &len, sizeof len);
5288 objects[i].oc_uname = (char *) alloc(len);
5289 mread(fd, (void *)objects[i].oc_uname, len);
5291 #ifdef USE_TILES
5292 shuffle_tiles();
5293 #endif
5294 #ifdef PROXY_GRAPHICS
5295 shuffle_proxy_glyphs();
5296 #endif
5299 void
5300 discover_object(oindx, mark_as_known, credit_hero)
5301 register int oindx;
5302 boolean mark_as_known;
5303 boolean credit_hero;
5305 /* KMH -- If we are hallucinating, we aren't sure of the object description */
5306 if (Hallucination) return;
5307 if (Race_if(PM_DE_ENERGISER)) return;
5308 if (u.deenergiserpersist) return;
5310 if (!objects[oindx].oc_name_known) {
5311 register int dindx, acls = objects[oindx].oc_class;
5313 /* Loop thru disco[] 'til we find the target (which may have been
5314 uname'd) or the next open slot; one or the other will be found
5315 before we reach the next class...
5317 for (dindx = bases[acls]; disco[dindx] != 0; dindx++)
5318 if (disco[dindx] == oindx) break;
5319 disco[dindx] = oindx;
5321 if (mark_as_known) {
5322 objects[oindx].oc_name_known = 1;
5323 if (credit_hero) exercise(A_WIS, TRUE);
5325 if (moves > 1L) update_inventory();
5327 if ((Role_if(PM_PRIEST) || Role_if(PM_NECROMANCER) || Role_if(PM_CHEVALIER) || Race_if(PM_VEELA)) && !(LeftInventoryBug || u.uprops[LEFT_INVENTORY].extrinsic || have_leftinventorystone()) ) {
5328 use_skill(P_SPIRITUALITY, Role_if(PM_PRIEST) ? 3 : 1);
5335 /* if a class name has been cleared, we may need to purge it from disco[] */
5336 void
5337 undiscover_object(oindx)
5338 register int oindx;
5340 if (!objects[oindx].oc_name_known) {
5341 register int dindx, acls = objects[oindx].oc_class;
5342 register boolean found = FALSE;
5344 /* find the object; shift those behind it forward one slot */
5345 for (dindx = bases[acls];
5346 dindx < NUM_OBJECTS && disco[dindx] != 0
5347 && objects[dindx].oc_class == acls; dindx++)
5348 if (found)
5349 disco[dindx-1] = disco[dindx];
5350 else if (disco[dindx] == oindx)
5351 found = TRUE;
5353 /* clear last slot */
5354 if (found) disco[dindx-1] = 0;
5355 else impossible("named object not in disco");
5356 update_inventory();
5360 STATIC_OVL boolean
5361 interesting_to_discover(i)
5362 register int i;
5364 /* Pre-discovered objects are now printed with a '*' */
5365 return((boolean)(objects[i].oc_uname != (char *)0 ||
5366 (objects[i].oc_name_known && OBJ_DESCR(objects[i]) != (char *)0)));
5369 /* items that should stand out once they're known */
5370 static short uniq_objs[] = {
5371 AMULET_OF_YENDOR,
5372 SPE_BOOK_OF_THE_DEAD,
5373 CANDELABRUM_OF_INVOCATION,
5374 BELL_OF_OPENING,
5378 dodiscovered() /* free after Robert Viduya */
5380 register int i, dis;
5381 int ct = 0;
5382 char *s, oclass, prev_class, classes[MAXOCLASSES];
5383 char buf[BUFSZ]; /* WAC */
5384 winid tmpwin;
5385 anything any;
5386 menu_item *selected;
5388 if (PlayerUninformation) {
5389 pline("You've discovered absolutely everything, yet you still don't know what do to with it.");
5390 return 0;
5393 tmpwin = create_nhwindow(NHW_MENU);
5395 * Use the add_menu() interface so that eg., GTK windowing port
5396 * can display the relevant glyphs --ALI
5398 start_menu(tmpwin);
5400 any.a_void = 0;
5401 add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_BOLD, "Discoveries",
5402 MENU_UNSELECTED);
5403 add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
5404 MENU_UNSELECTED);
5406 /* gather "unique objects" into a pseudo-class; note that they'll
5407 also be displayed individually within their regular class */
5408 for (i = dis = 0; i < SIZE(uniq_objs); i++)
5409 if (objects[uniq_objs[i]].oc_name_known) {
5410 if (!dis++)
5411 add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
5412 "Unique Items", MENU_UNSELECTED);
5413 sprintf(buf, " %s", OBJ_NAME(objects[uniq_objs[i]]));
5414 add_menu(tmpwin, objnum_to_glyph(uniq_objs[i]), &any,
5415 0, 0, ATR_NONE, buf, MENU_UNSELECTED);
5416 ++ct;
5418 /* display any known artifacts as another pseudo-class */
5420 ct += disp_artifact_discoveries(tmpwin);
5422 /* several classes are omitted from packorder; one is of interest here */
5423 strcpy(classes, flags.inv_order);
5424 if (!index(classes, MAXOCLASSES)) {
5425 s = eos(classes);
5426 *s++ = MAXOCLASSES;
5427 *s = '\0';
5430 for (s = classes; *s; s++) {
5431 oclass = *s;
5432 prev_class = oclass + 1; /* forced different from oclass */
5433 for (i = bases[(int)oclass];
5434 i < NUM_OBJECTS && objects[i].oc_class == oclass; i++) {
5435 if ((dis = disco[i]) && interesting_to_discover(dis)) {
5436 ct++;
5437 if (oclass != prev_class) {
5438 add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
5439 let_to_name(oclass, FALSE, FALSE), MENU_UNSELECTED);
5440 prev_class = oclass;
5442 sprintf(buf, "%s %s",(objects[dis].oc_pre_discovered ? "*" : " "),
5443 obj_typename(dis));
5444 add_menu(tmpwin, objnum_to_glyph(dis), &any, 0, 0,
5445 ATR_NONE, buf, MENU_UNSELECTED);
5449 end_menu(tmpwin, (char *) 0);
5450 if (ct == 0) {
5451 You("haven't discovered anything yet...");
5452 } else
5453 (void) select_menu(tmpwin, PICK_NONE, &selected);
5454 destroy_nhwindow(tmpwin);
5456 return 0;
5459 #ifdef DUMP_LOG
5460 void
5461 dump_discoveries()
5464 register int i, dis;
5465 int ct = 0;
5466 char *s, oclass, prev_class, classes[MAXOCLASSES];
5467 char buf[BUFSZ]; /* WAC */
5468 winid tmpwin;
5470 dump("", "Discoveries");
5472 /* gather "unique objects" into a pseudo-class; note that they'll
5473 also be displayed individually within their regular class */
5474 for (i = dis = 0; i < SIZE(uniq_objs); i++)
5475 if (objects[uniq_objs[i]].oc_name_known) {
5476 if (!dis++)
5477 dump("", " Unique Items");
5478 sprintf(buf, " %s", OBJ_NAME(objects[uniq_objs[i]]));
5479 dump(" ", buf);
5480 ++ct;
5483 dump_artifact_discoveries();
5485 /* several classes are omitted from packorder; one is of interest here */
5486 strcpy(classes, flags.inv_order);
5487 if (!index(classes, MAXOCLASSES)) {
5488 s = eos(classes);
5489 *s++ = MAXOCLASSES;
5490 *s = '\0';
5493 for (s = classes; *s; s++) {
5494 oclass = *s;
5495 prev_class = oclass + 1; /* forced different from oclass */
5496 for (i = bases[(int)oclass];
5497 i < NUM_OBJECTS && objects[i].oc_class == oclass; i++) {
5498 if ((dis = disco[i]) && interesting_to_discover(dis)) {
5499 ct++;
5500 if (oclass != prev_class) {
5502 sprintf(buf, " %s", let_to_name(oclass, FALSE, FALSE));
5503 dump("", buf);
5505 prev_class = oclass;
5507 sprintf(buf, "%s %s",(objects[dis].oc_pre_discovered ? "*" : " "),
5508 obj_typename(dis));
5509 dump(" ", buf);
5513 if (ct == 0) {
5514 dump("", "You haven't discovered anything at all...");
5516 dump("", "");
5518 } /* dump_discoveries */
5519 #endif
5521 /*o_init.c*/