| 1405 | #endif /* TILETEXT */ |
| 1406 | |
| 1407 | boolean |
| 1408 | acceptable_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) |