break;
}
}
- check:
+ checkprob:
sum = 0;
for (i = first; i < last; i++)
sum += objects[i].oc_prob;
if (sum == 0) {
for (i = first; i < last; i++)
objects[i].oc_prob = (1000 + i - first) / (last - first);
- goto check;
+ goto checkprob;
}
if (sum != 1000)
error("init-prob error for class %d (%d%%)", oclass, sum);
if (!g.bases[last])
g.bases[last] = g.bases[last + 1];
+ /* check objects[].oc_name_known */
+ for (i = 0; i < NUM_OBJECTS; ++i) {
+ int nmkn = objects[i].oc_name_known != 0;
+
+ if (!OBJ_DESCR(objects[i]) ^ nmkn) {
+ if (iflags.sanity_check) {
+ impossible(
+ "obj #%d (%s) name is %s despite%s alternate description",
+ i, OBJ_NAME(objects[i]),
+ nmkn ? "pre-known" : "not known",
+ nmkn ? "" : " no");
+ }
+ /* repair the mistake and keep going */
+ objects[i].oc_name_known = nmkn ? 0 : 1;
+ }
+ }
+
/* shuffle descriptions */
shuffle_all();
#ifdef USE_TILES
WEPTOOL("pick-axe", None,
1, 0, 0, 20, 100, 50, 6, 3, WHACK, P_PICK_AXE, IRON, HI_METAL),
WEPTOOL("grappling hook", None,
- 0, 0, 0, 5, 30, 50, 2, 6, WHACK, P_FLAIL, IRON, HI_METAL),
+ 1, 0, 0, 5, 30, 50, 2, 6, WHACK, P_FLAIL, IRON, HI_METAL),
WEPTOOL("unicorn horn", None,
1, 1, 1, 0, 20, 100, 12, 12, PIERCE, P_UNICORN_HORN,
BONE, CLR_WHITE),
/* coins ... - so far, gold is all there is */
#define COIN(name,prob,metal,worth) \
- OBJECT(OBJ(name, None), \
- BITS(0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, P_NONE, metal), \
+ OBJECT(OBJ(name, None), \
+ BITS(1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, P_NONE, metal), \
0, COIN_CLASS, prob, 0, 1, worth, 0, 0, 0, 0, 0, HI_GOLD)
COIN("gold piece", 1000, GOLD, 1),
#undef COIN