MCPcopy Create free account
hub / github.com/NetHack/NetHack / acceptable_tilename

Function acceptable_tilename

win/share/tilemap.c:1407–1475  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1405#endif /* TILETEXT */
1406
1407boolean
1408acceptable_tilename(
1409 int glyph_set,
1410 int idx,
1411 const char *encountered,
1412 const char *expected)
1413{
1414 int i;
1415 size_t a, b;
1416 char buf[BUFSZ];
1417 const char *pastprefix = encountered;
1418 struct aliaslist {
1419 const char *original;
1420 const char *alias;
1421 };
1422 struct aliaslist aliases[] = {
1423 { "wall", "vertical wall" },
1424 { "wall", "horizontal wall" },
1425 { "wall", "top left corner wall" },
1426 { "wall", "top right corner wall" },
1427 { "wall", "bottom left corner wall" },
1428 { "wall", "bottom right corner wall" },
1429 { "open door", "vertical open door" },
1430 { "open door", "horizontal open door" },
1431 { "open door", "no door" },
1432 { "altar", "chaotic altar" },
1433 { "altar", "neutral altar" },
1434 { "altar", "lawful altar" },
1435 { "opulent throne", "throne" },
1436 { "water", "pool" },
1437 { "lowered drawbridge", "vertical open drawbridge" },
1438 { "lowered drawbridge", "horizontal open drawbridge" },
1439 { "raised drawbridge", "vertical closed drawbridge" },
1440 { "raised drawbridge", "horizontal closed drawbridge" },
1441 { "altar", "unaligned altar" },
1442 { "altar", "other altar" },
1443#if 0
1444 { "dark part of a room", "stone" },
1445#endif
1446 };
1447
1448 if (glyph_set == OTH_GLYPH) {
1449 if (idx >= 0 && idx < (SIZE(altlabels) - 1)) {
1450 if (!strcmp(altlabels[idx].tilelabel, encountered))
1451 return TRUE;
1452 }
1453 a = strlen(encountered);
1454 for (i = 0; i < SIZE(aliases); i++) {
1455 if (!strcmp(pastprefix, aliases[i].alias))
1456 return TRUE;
1457 pastprefix = encountered;
1458 b = strlen(aliases[i].alias);
1459 if (a > b) {
1460 pastprefix = encountered + (a - b);
1461 if (!strcmp(pastprefix, aliases[i].alias))
1462 return TRUE;
1463 }
1464 if (!strcmp(encountered, aliases[i].alias)

Callers 1

read_txttileFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected