OSDN Git Service

upgrade to 3.6.1
[jnethack/source.git] / win / share / tilemap.c
index e41d618..46b1056 100644 (file)
@@ -1,4 +1,5 @@
-/* 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: 1524689272 2018/04/25 20:47:52 $  $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.33 $ */
+/*      Copyright (c) 2016 by Michael Allison                     */
 /* NetHack may be freely redistributed.  See license for details. */
 
 /*
@@ -12,6 +13,7 @@
 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
@@ -20,7 +22,7 @@ extern void FDECL(exit, (int));
 #endif
 #endif
 
-#if defined(WIN32)
+#if defined(MSDOS) || defined(WIN32) || defined(X11_GRAPHICS)
 #define STATUES_LOOK_LIKE_MONSTERS
 #endif
 
@@ -463,8 +465,11 @@ FILE *ofp;
         fprintf(ofp, "%s\n", epilog[i]);
     }
 
-    fprintf(ofp, "\nint total_tiles_used = %d;\n", start);
     lastothtile = start - 1;
+#ifdef STATUES_LOOK_LIKE_MONSTERS
+    start = laststatuetile + 1;
+#endif
+    fprintf(ofp, "\nint total_tiles_used = %d;\n", start);
 }
 
 int
@@ -499,7 +504,9 @@ main()
     fprintf(ofp, "\n#define MAXMONTILE %d\n", lastmontile);
     fprintf(ofp, "#define MAXOBJTILE %d\n", lastobjtile);
     fprintf(ofp, "#define MAXOTHTILE %d\n", lastothtile);
-
+#ifdef STATUES_LOOK_LIKE_MONSTERS
+    fprintf(ofp, "/* #define MAXSTATUETILE %d */\n", laststatuetile);
+#endif
     fprintf(ofp, "\n/*tile.c*/\n");
 
     fclose(ofp);
@@ -509,3 +516,121 @@ main()
 }
 
 #endif /* TILETEXT */
+
+struct {
+    int idx;
+    const char *betterlabel;
+    const char *expectedlabel;
+} altlabels[] = {
+{S_stone,    "dark part of a room", "dark part of a room"},
+{S_vwall,    "vertical wall", "wall"},
+{S_hwall,    "horizontal wall", "wall"},
+{S_tlcorn,   "top left corner wall", "wall"},
+{S_trcorn,   "top right corner wall", "wall"},
+{S_blcorn,   "bottom left corner wall", "wall"},
+{S_brcorn,   "bottom right corner wall", "wall"},
+{S_crwall,   "cross wall", "wall"},
+{S_tuwall,   "tuwall", "wall"},
+{S_tdwall,   "tdwall", "wall"},
+{S_tlwall,   "tlwall", "wall"},
+{S_trwall,   "trwall", "wall"},
+{S_ndoor,    "no door", "doorway"},
+{S_vodoor,   "vertical open door", "open door"},
+{S_hodoor,   "horizontal open door", "open door"},
+{S_vcdoor,   "vertical closed door", "closed door"},
+{S_hcdoor,   "horizontal closed door", "closed door"},
+{S_bars,     "iron bars", "iron bars"},
+{S_tree,     "tree", "tree"},
+{S_room,     "room", "floor of a room"},
+{S_darkroom, "darkroom", "dark part of a room"},
+{S_corr,     "corridor", "corridor"},
+{S_litcorr,  "lit corridor", "lit corridor"},
+{S_upstair,  "up stairs", "staircase up"},
+{S_dnstair,  "down stairs", "staircase down"},
+{S_upladder, "up ladder", "ladder up"},
+{S_dnladder, "down ladder", "ladder down"},
+{S_altar,    "altar", "altar"},
+{S_grave,    "grave", "grave"},
+{S_throne,   "throne", "opulent throne"},
+{S_sink,     "sink", "sink"},
+{S_fountain, "fountain", "fountain"},
+{S_pool,     "pool", "water"},
+{S_ice,      "ice", "ice"},
+{S_lava,     "lava", "molten lava"},
+{S_vodbridge, "vertical open drawbridge", "lowered drawbridge"},
+{S_hodbridge, "horizontal open drawbridge", "lowered drawbridge"},
+{S_vcdbridge, "vertical closed drawbridge", "raised drawbridge"},
+{S_hcdbridge, "horizontal closed drawbridge", "raised drawbridge"},
+{S_air,      "air", "air"},
+{S_cloud,    "cloud", "cloud"},
+{S_water,    "water", "water"},
+{S_arrow_trap,           "arrow trap", "arrow trap"},
+{S_dart_trap,            "dart trap", "dart trap"},
+{S_falling_rock_trap,    "falling rock trap", "falling rock trap"},
+{S_squeaky_board,        "squeaky board", "squeaky board"},
+{S_bear_trap,            "bear trap", "bear trap"},
+{S_land_mine,            "land mine", "land mine"},
+{S_rolling_boulder_trap, "rolling boulder trap", "rolling boulder trap"},
+{S_sleeping_gas_trap,    "sleeping gas trap", "sleeping gas trap"},
+{S_rust_trap,            "rust trap", "rust trap"},
+{S_fire_trap,            "fire trap", "fire trap"},
+{S_pit,                  "pit", "pit"},
+{S_spiked_pit,           "spiked pit", "spiked pit"},
+{S_hole,                 "hole", "hole"},
+{S_trap_door,            "trap door", "trap door"},
+{S_teleportation_trap,   "teleportation trap", "teleportation trap"},
+{S_level_teleporter,     "level teleporter", "level teleporter"},
+{S_magic_portal,         "magic portal", "magic portal"},
+{S_web,                  "web", "web"},
+{S_statue_trap,          "statue trap", "statue trap"},
+{S_magic_trap,           "magic trap", "magic trap"},
+{S_anti_magic_trap,      "anti magic trap", "anti-magic field"},
+{S_polymorph_trap,       "polymorph trap", "polymorph trap"},
+{S_vibrating_square,     "vibrating square", "vibrating square"},
+{S_vbeam,    "vertical beam", "cmap 65"},
+{S_hbeam,    "horizontal beam", "cmap 66"},
+{S_lslant,   "left slant beam", "cmap 67"},
+{S_rslant,   "right slant beam", "cmap 68"},
+{S_digbeam,  "dig beam", "cmap 69"},
+{S_flashbeam, "flash beam", "cmap 70"},
+{S_boomleft, "boom left", "cmap 71"},
+{S_boomright, "boom right", "cmap 72"},
+{S_ss1,      "shield1", "cmap 73"},
+{S_ss2,      "shield2", "cmap 74"},
+{S_ss3,      "shield3", "cmap 75"},
+{S_ss4,      "shield4", "cmap 76"},
+{S_poisoncloud, "poison cloud", "poison cloud"},
+{S_goodpos,  "valid position", "valid position"},
+{S_sw_tl,    "swallow top left", "cmap 79"},
+{S_sw_tc,    "swallow top center", "cmap 80"},
+{S_sw_tr,    "swallow top right", "cmap 81"},
+{S_sw_ml,    "swallow middle left", "cmap 82"},
+{S_sw_mr,    "swallow middle right", "cmap 83"},
+{S_sw_bl,    "swallow bottom left ", "cmap 84"},
+{S_sw_bc,    "swallow bottom center", "cmap 85"},
+{S_sw_br,    "swallow bottom right", "cmap 86"},
+{S_explode1, "explosion top left", "explosion dark 0"},
+{S_explode2, "explosion top centre", "explosion dark 1"},
+{S_explode3, "explosion top right", "explosion dark 2"},
+{S_explode4, "explosion middle left", "explosion dark 3"},
+{S_explode5, "explosion middle center", "explosion dark 4"},
+{S_explode6, "explosion middle right", "explosion dark 5"},
+{S_explode7, "explosion bottom left", "explosion dark 6"},
+{S_explode8, "explosion bottom center", "explosion dark 7"},
+{S_explode9, "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 (!strcmp(altlabels[idx].expectedlabel, expected)) {
+            if (!strcmp(altlabels[idx].betterlabel, encountered))
+                return TRUE;
+        }
+    }
+    return FALSE;
+}
+