AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
}
-# tile 1 (wall)
+# tile 1 (vertical wall)
{
ANNOA1PPPPP1NNOA
AOOOA1P1PP11OOOA
A111A11PPPP1111A
AOPPA11PPPP1OP1A
}
-# tile 2 (wall)
+# tile 2 (horizontal wall)
{
AAANOOAAAAANOOAA
OOONOOA1OOONOOA1
1111111111111111
AAAAAAAAAAAAAAAA
}
-# tile 3 (wall)
+# tile 3 (top left corner wall)
{
AAANNNNOOOOOOAAA
NNNNAA11PPPPO111
A111A11PPPP1111A
AOPPA11PPPP1OP1A
}
-# tile 4 (wall)
+# tile 4 (top right corner wall)
{
AAANNNNOOOOOOAAA
NNNNAA11PPPPO111
A111A11PPPP1111A
AOPPA11PPPP1OP1A
}
-# tile 5 (wall)
+# tile 5 (bottom left corner wall)
{
AAANNNNOOOOOOAAA
NNNNAA11PPPPO111
1111111111111111
AAAAAAAAAAAAAAAA
}
-# tile 6 (wall)
+# tile 6 (bottom right corner wall)
{
AAANNNNOOOOOOAAA
NNNNAA11PPPPO111
1111111111111111
AAAAAAAAAAAAAAAA
}
-# tile 7 (wall)
+# tile 7 (cross wall)
{
AAANNNNOOOOOOAAA
NNNNAA11PPPPO111
A111A11PPPP1111A
AOPPA11PPPP1OP1A
}
-# tile 8 (wall)
+# tile 8 (tuwall)
{
AAANNNNOOOOOOAAA
NNNNAA11PPPPO111
1111111111111111
AAAAAAAAAAAAAAAA
}
-# tile 9 (wall)
+# tile 9 (tdwall)
{
AAANNNNOOOOOOAAA
NNNNAA11PPPPO111
A111A11PPPP1111A
AOPPA11PPPP1OP1A
}
-# tile 10 (wall)
+# tile 10 (tlwall)
{
AAANNNNOOOOOOAAA
NNNNAA11PPPPO111
A111A11PPPP1111A
AOPPA11PPPP1OP1A
}
-# tile 11 (wall)
+# tile 11 (trwall)
{
AAANNNNOOOOOOAAA
NNNNAA11PPPPO111
A111A11PPPP1111A
AOPPA11PPPP1OP1A
}
-# tile 12 (doorway)
+# tile 12 (no door)
{
AAAAAAAAAAAAAAAA
AA............AA
AA............AA
AAAAAAAAAAAAAAAA
}
-# tile 13 (open door)
+# tile 13 (vertical open door)
{
AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
A..............A
AAAAAAAAAAAAAAAA
}
-# tile 14 (open door)
+# tile 14 (horizontal open door)
{
AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
}
-# tile 15 (closed door)
+# tile 15 (vertical closed door)
{
AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
}
-# tile 16 (closed door)
+# tile 16 (horizontal closed door)
{
AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
...JJJJ.J.JJJA..
................
}
-# tile 19 (floor of a room)
+# tile 19 (room)
{
................
................
................
................
}
-# tile 20 (dark part of a room)
+# tile 20 (darkroom)
{
.A.A.A.A.A.A.A.A
A.A.A.A.A.A.A.A.
................
................
}
-# tile 23 (staircase up)
+# tile 23 (up stairs)
{
AAAAAAAAAAAAAA.A
AADJJJJJJJJJDA.A
AAAAAAAAAAAAAA.A
AAAAAAAAAAAAAAAA
}
-# tile 24 (staircase down)
+# tile 24 (down stairs)
{
AAAAAAAAAAAAAA.A
AADJJJJJJJJJDA.A
AAAAAAAAAAAAAA.A
AAAAAAAAAAAAAAAA
}
-# tile 25 (ladder up)
+# tile 25 (up ladder)
{
ADAAAAAAAAAAAD.A
AADAAAANAAAADA.A
AAAAAAAAAAAAAA.A
AAAAAAAAAAAAAAAA
}
-# tile 26 (ladder down)
+# tile 26 (down ladder)
{
ADAAAAAAAAAAAD.A
AADAAAANAAAADA.A
FFFFFFFFFFFFFFF.
................
}
-# tile 29 (opulent throne)
+# tile 29 (throne)
{
................
.....HHHHH......
....AAAAAAAAA...
................
}
-# tile 32 (water)
+# tile 32 (pool)
{
..........NNN...
.EEEE....NE.EN..
NNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNN
}
-# tile 34 (molten lava)
+# tile 34 (lava)
{
DDDDDDCDDDDDDDDD
DDDDDCDKDDDDDDDD
DDDDKKDDDDCDDDDD
DDDDDDDDDDDKDDDD
}
-# tile 35 (lowered drawbridge)
+# tile 35 (vertical open drawbridge)
{
EKKAKKKKKKKAKKAE
EJKKKKKKKKKKKJAA
EEJJJJJJJJJJJAAA
EJKKKKKKKKKKKJAA
}
-# tile 36 (lowered drawbridge)
+# tile 36 (horizontal open drawbridge)
{
EEEEEEEEEEEEEEEE
JEJKJEJKJEJKJEJK
AAAAAAAAAAAAAAAA
AAAEAAAEAAAEAAAE
}
-# tile 37 (raised drawbridge)
+# tile 37 (vertical closed drawbridge)
{
................
..JKJ.JKJ.JKJ...
...AAA.AAA.AAA..
................
}
-# tile 38 (raised drawbridge)
+# tile 38 (horizontal closed drawbridge)
{
................
..JJJJJJJJJJJ...
......AAAAA.....
................
}
-# tile 62 (anti-magic field)
+# tile 62 (anti magic trap)
{
................
......DDDDD.....
................
................
}
-# tile 65 (wall)
+# tile 65 (vertical beam)
{
.......NN.......
......NN........
.........NN.....
........NN......
}
-# tile 66 (wall)
+# tile 66 (horizontal beam)
{
................
................
................
................
}
-# tile 67 (wall)
+# tile 67 (left slant beam)
{
NNNNN...........
....N...........
............N...
............NNNN
}
-# tile 68 (wall)
+# tile 68 (right slant beam)
{
............NNNN
............N...
....N...........
NNNNN...........
}
-# tile 69 (cmap 69)
+# tile 69 (dig beam)
{
....AAAA........
..A....AA..AA...
....AA....AAA...
................
}
-# tile 70 (cmap 70)
+# tile 70 (flash beam)
{
................
.....NNNNNN.....
.....NNNNNN.....
................
}
-# tile 71 (cmap 71)
+# tile 71 (boom left)
{
................
................
................
................
}
-# tile 72 (cmap 72)
+# tile 72 (boom right)
{
................
................
................
................
}
-# tile 73 (cmap 73)
+# tile 73 (shield1)
{
................
.....I....I.....
.....I....I.....
................
}
-# tile 74 (cmap 74)
+# tile 74 (shield2)
{
................
.CCCCCCCCCCCCCCC
.CCCCCCCCCCCCCC.
................
}
-# tile 75 (cmap 75)
+# tile 75 (shield3)
{
.......HH.......
.......HH.......
.......HH.......
.......HH.......
}
-# tile 76 (cmap 76)
+# tile 76 (shield4)
{
................
......NNNNN.....
.......FF.......
................
}
-# tile 79 (cmap 79)
+# tile 79 (swallow top left)
{
AAAAAAADDDDDDAAA
AAAAADDDDDDDDDDD
AAAADDDDDD......
AAAADDDDDD......
}
-# tile 80 (cmap 80)
+# tile 80 (swallow top center)
{
AAAAAAAAAAAAAAAA
DDAAAAAAAAAAAAAA
................
................
}
-# tile 81 (cmap 81)
+# tile 81 (swallow top right)
{
AAAAAAAAAAAAAAAA
AAADDDDDAAAAAAAA
....DDDDDDDDDDDD
....DDDDDDDDDDDA
}
-# tile 82 (cmap 82)
+# tile 82 (swallow middle left)
{
AAAADDDDDD......
AAAADDDDDDD.....
DDDDDDD.........
DDCCDDD.........
}
-# tile 83 (cmap 83)
+# tile 83 (swallow middle right)
{
....DDDDDDDDDDDA
....DDDDDDDDDDDA
......DDDDDDDDAA
.......DDDDDDDAA
}
-# tile 84 (cmap 84)
+# tile 84 (swallow bottom left )
{
DDDCDDD.........
DDDCDDD.........
AAAAAAAAAAAADDDD
AAAAAAAAAAAAAADD
}
-# tile 85 (cmap 85)
+# tile 85 (swallow bottom center)
{
................
................
DDDDDDDDDDDDDDDD
DDDDDDDDDDDDDDAA
}
-# tile 86 (cmap 86)
+# tile 86 (swallow bottom right)
{
......DDDDDDDDAA
......DDDDDDDDDA
DDAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
}
-# tile 87 (explosion dark 0)
+# tile 87 (explosion top left)
{
................
................
..AAAA..AAAA....
..AAA..AAAAA....
}
-# tile 88 (explosion dark 1)
+# tile 88 (explosion top centre)
{
................
................
........A.A.APAA
.PA...APAAAAAAAA
}
-# tile 89 (explosion dark 2)
+# tile 89 (explosion top right)
{
................
................
AA.A..A.AAAA....
A.AA..A.AAAAA...
}
-# tile 90 (explosion dark 3)
+# tile 90 (explosion middle left)
{
..AAA.A.AAA.....
..AAA.AAAAA.AP..
..A.A...AAP...PA
....A.........PA
}
-# tile 91 (explosion dark 4)
+# tile 91 (explosion middle center)
{
APAAA..PPAPAAAAA
.APA..A.AAAPAAA.
AAAAAAAAAAAAA.AA
AAAAAAAAAAA.HH..
}
-# tile 92 (explosion dark 5)
+# tile 92 (explosion middle right)
{
..AAA.A.A.AAAA..
..AAAAA.A.AAAA..
AAA...AAAAAAA...
....PPAAAAAAAA..
}
-# tile 93 (explosion dark 6)
+# tile 93 (explosion bottom left)
{
....A.......A..P
....A.......AA..
................
................
}
-# tile 94 (explosion dark 7)
+# tile 94 (explosion bottom center)
{
PPPAAAAAPAAA.A..
AAPPAAPPPPA.A...
................
................
}
-# tile 95 (explosion dark 8)
+# tile 95 (explosion bottom right)
{
....P..AAAAAAA..
..A..A.AA.A.AA..
-/* NetHack 3.6 tilemap.c $NHDT-Date: 1447306925 2015/11/12 05:42:05 $ $NHDT-Branch: master $:$NHDT-Revision: 1.25 $ */
+/* NetHack 3.6 tilemap.c $NHDT-Date: 1454464776 2016/02/03 01:59:36 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.26 $ */
/* NetHack may be freely redistributed. See license for details. */
/*
const char *FDECL(tilename, (int, int));
void NDECL(init_tilemap);
void FDECL(process_substitutions, (FILE *));
+boolean FDECL(acceptable_tilename, (int, const char *, const char *));
#if defined(MICRO) || defined(WIN32)
#undef exit
}
#endif /* TILETEXT */
+
+struct {
+ int idx;
+ const char *betterlabel;
+ const char *expectedlabel;
+} altlabels[] = {
+ {0, "dark part of a room", "dark part of a room"},
+ {1, "vertical wall", "wall"},
+ {2, "horizontal wall", "wall"},
+ {3, "top left corner wall", "wall"},
+ {4, "top right corner wall", "wall"},
+ {5, "bottom left corner wall", "wall"},
+ {6, "bottom right corner wall", "wall"},
+ {7, "cross wall", "wall"},
+ {8, "tuwall", "wall"},
+ {9, "tdwall", "wall"},
+ {10, "tlwall", "wall"},
+ {11, "trwall", "wall"},
+ {12, "no door", "doorway"},
+ {13, "vertical open door", "open door"},
+ {14, "horizontal open door", "open door"},
+ {15, "vertical closed door", "closed door"},
+ {16, "horizontal closed door", "closed door"},
+ {17, "iron bars", "iron bars"},
+ {18, "tree", "tree"},
+ {19, "room", "floor of a room"},
+ {20, "darkroom", "dark part of a room"},
+ {21, "corridor", "corridor"},
+ {22, "lit corridor", "lit corridor"},
+ {23, "up stairs", "staircase up"},
+ {24, "down stairs", "staircase down"},
+ {25, "up ladder", "ladder up"},
+ {26, "down ladder", "ladder down"},
+ {27, "altar", "altar"},
+ {28, "grave", "grave"},
+ {29, "throne", "opulent throne"},
+ {30, "sink", "sink"},
+ {31, "fountain", "fountain"},
+ {32, "pool", "water"},
+ {33, "ice", "ice"},
+ {34, "lava", "molten lava"},
+ {35, "vertical open drawbridge", "lowered drawbridge"},
+ {36, "horizontal open drawbridge", "lowered drawbridge"},
+ {37, "vertical closed drawbridge", "raised drawbridge"},
+ {38, "horizontal closed drawbridge", "raised drawbridge"},
+ {39, "air", "air"},
+ {40, "cloud", "cloud"},
+ {41, "water", "water"},
+ {42, "arrow trap", "arrow trap"},
+ {43, "dart trap", "dart trap"},
+ {44, "falling rock trap", "falling rock trap"},
+ {45, "squeaky board", "squeaky board"},
+ {46, "bear trap", "bear trap"},
+ {47, "land mine", "land mine"},
+ {48, "rolling boulder trap", "rolling boulder trap"},
+ {49, "sleeping gas trap", "sleeping gas trap"},
+ {50, "rust trap", "rust trap"},
+ {51, "fire trap", "fire trap"},
+ {52, "pit", "pit"},
+ {53, "spiked pit", "spiked pit"},
+ {54, "hole", "hole"},
+ {55, "trap door", "trap door"},
+ {56, "teleportation trap", "teleportation trap"},
+ {57, "level teleporter", "level teleporter"},
+ {58, "magic portal", "magic portal"},
+ {59, "web", "web"},
+ {60, "statue trap", "statue trap"},
+ {61, "magic trap", "magic trap"},
+ {62, "anti magic trap", "anti-magic field"},
+ {63, "polymorph trap", "polymorph trap"},
+ {64, "vibrating square", "vibrating square"},
+ {65, "vertical beam", "wall"},
+ {66, "horizontal beam", "wall"},
+ {67, "left slant beam", "wall"},
+ {68, "right slant beam", "wall"},
+ {69, "dig beam", "cmap 69"},
+ {70, "flash beam", "cmap 70"},
+ {71, "boom left", "cmap 71"},
+ {72, "boom right", "cmap 72"},
+ {73, "shield1", "cmap 73"},
+ {74, "shield2", "cmap 74"},
+ {75, "shield3", "cmap 75"},
+ {76, "shield4", "cmap 76"},
+ {77, "poison cloud", "poison cloud"},
+ {78, "valid position", "valid position"},
+ {79, "swallow top left", "cmap 79"},
+ {80, "swallow top center", "cmap 80"},
+ {81, "swallow top right", "cmap 81"},
+ {82, "swallow middle left", "cmap 82"},
+ {83, "swallow middle right", "cmap 83"},
+ {84, "swallow bottom left ", "cmap 84"},
+ {85, "swallow bottom center", "cmap 85"},
+ {86, "swallow bottom right", "cmap 86"},
+ {87, "explosion top left", "explosion dark 0"},
+ {88, "explosion top centre", "explosion dark 1"},
+ {89, "explosion top right", "explosion dark 2"},
+ {90, "explosion middle left", "explosion dark 3"},
+ {91, "explosion middle center", "explosion dark 4"},
+ {92, "explosion middle right", "explosion dark 5"},
+ {93, "explosion bottom left", "explosion dark 6"},
+ {94, "explosion bottom center", "explosion dark 7"},
+ {95, "explosion bottom right", "explosion dark 8"},
+};
+
+boolean
+acceptable_tilename(idx, encountered, expected)
+int idx;
+const char *encountered, *expected;
+{
+ if (idx >= 0 && idx < SIZE(altlabels)) {
+ if (!strcmpi(altlabels[idx].expectedlabel, expected)) {
+ if (!strcmpi(altlabels[idx].betterlabel, encountered))
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+