diff --git a/src/o_init.c b/src/o_init.c index 3ebd7edc7..22dcab445 100644 --- a/src/o_init.c +++ b/src/o_init.c @@ -167,14 +167,14 @@ init_objects(void) 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); @@ -191,6 +191,23 @@ init_objects(void) 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 diff --git a/src/objects.c b/src/objects.c index 69db12689..738b69825 100644 --- a/src/objects.c +++ b/src/objects.c @@ -709,7 +709,7 @@ TOOL("drum of earthquake","drum", 0, 0, 1, 1, 2, 25, 25, LEATHER, HI_LEATHER), 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), @@ -1054,8 +1054,8 @@ WAND(None, "jeweled", 0, 150, 1, 0, IRON, HI_MINERAL), /* 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