OSDN Git Service

improve wishing
authorSHIRAKATA Kentaro <argrath@ub32.org>
Tue, 23 Oct 2018 07:54:38 +0000 (16:54 +0900)
committerSHIRAKATA Kentaro <argrath@ub32.org>
Sat, 15 Dec 2018 19:48:52 +0000 (04:48 +0900)
src/objnam.c

index a58d707..4522da5 100644 (file)
@@ -3255,6 +3255,7 @@ struct o_range {
     int f_o_range, l_o_range;
 };
 
+#if 0 /*JP*//*\95\94\95ª\93I\82È\83W\83\83\83\93\83\8b\8ew\92è\82Å\82Ì\8aè\82¢\97p\81B\93ú\96{\8cê\82Å\82Í\82Æ\82è\82 \82¦\82¸\82µ\82È\82¢*/
 /* wishable subranges of objects */
 STATIC_OVL NEARDATA const struct o_range o_ranges[] = {
     { "bag", TOOL_CLASS, SACK, BAG_OF_TRICKS },
@@ -3279,6 +3280,7 @@ STATIC_OVL NEARDATA const struct o_range o_ranges[] = {
     { "gray stone", GEM_CLASS, LUCKSTONE, FLINT },
     { "grey stone", GEM_CLASS, LUCKSTONE, FLINT },
 };
+#endif
 
 
 #if 0 /*JP*//*not used*/
@@ -3500,6 +3502,18 @@ struct obj *no_wish;
             while (*bp == ' ')
                 bp++;
             l = 0;
+#if 1 /*JP*//* \8cã\82É\90\94\8e\8c\82ª\82 \82é\82Æ\82«\82Í\8dí\8f\9c */
+            if(!strncmp(bp, "\8dû\82Ì", l = 4) ||
+               !strncmp(bp, "\96{\82Ì", l = 4) ||
+               !strncmp(bp, "\92\85\82Ì", l = 4) ||
+               !strncmp(bp, "\8cÂ\82Ì", l = 4) ||
+               !strncmp(bp, "\96\87\82Ì", l = 4) ||
+               !strncmp(bp, "\82Â\82Ì", l = 4) ||
+               !strncmp(bp, "\82Ì", l = 2))
+              ;
+            else
+              l = 0;
+#endif
         } else if (*bp == '+' || *bp == '-') {
             spesgn = (*bp++ == '+') ? 1 : -1;
             spe = atoi(bp);
@@ -3557,18 +3571,36 @@ struct obj *no_wish;
                    || !strncmpi(bp, "\94R\82¦\82È\82¢", l = 8)) {
 #endif
             erodeproof = 1;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "lit ", l = 4)
                    || !strncmpi(bp, "burning ", l = 8)) {
+#else
+        } else if (!strncmpi(bp, "\8cõ\82Á\82Ä\82¢\82é", l = 10)
+                   || !strncmpi(bp, "\94R\82¦\82Ä\82¢\82é", l = 10)) {
+#endif
             islit = 1;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "unlit ", l = 6)
                    || !strncmpi(bp, "extinguished ", l = 13)) {
+#else
+        } else if (!strncmpi(bp, "\8fÁ\82¦\82Ä\82¢\82é", l = 10)) {
+#endif
             islit = 0;
             /* "unlabeled" and "blank" are synonymous */
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "unlabeled ", l = 10)
                    || !strncmpi(bp, "unlabelled ", l = 11)
                    || !strncmpi(bp, "blank ", l = 6)) {
+#else
+        } else if (!strncmpi(bp, "\83\89\83x\83\8b\82Ì\82È\82¢", l = 12)
+                   || !strncmpi(bp, "\90^\82Á\94\92\82È", l = 8)) {
+#endif
             unlabeled = 1;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "poisoned ", l = 9)) {
+#else
+        } else if (!strncmpi(bp, "\93Å\82Ì\93h\82ç\82ê\82½", l = 12)) {
+#endif
             ispoisoned = 1;
             /* "trapped" recognized but not honored outside wizard mode */
         } else if (!strncmpi(bp, "trapped ", l = 8)) {
@@ -3578,45 +3610,108 @@ struct obj *no_wish;
         } else if (!strncmpi(bp, "untrapped ", l = 10)) {
             trapped = 2; /* not trapped */
         /* locked, unlocked, broken: box/chest lock states */
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "locked ", l = 7)) {
+#else
+        } else if (!strncmpi(bp, "\8c®\82Ì\8a|\82©\82Á\82½", l = 12)) {
+#endif
             locked = 1, unlocked = broken = 0;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "unlocked ", l = 9)) {
+#else
+        } else if (!strncmpi(bp, "\8c®\82Ì\8a|\82©\82Á\82Ä\82¢\82È\82¢", l = 18)) {
+#endif
             unlocked = 1, locked = broken = 0;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "broken ", l = 7)) {
+#else
+        } else if (!strncmpi(bp, "\8c®\82Ì\89ó\82ê\82½", l = 10)) {
+#endif
             broken = 1, locked = unlocked = 0;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "greased ", l = 8)) {
+#else
+        } else if (!strncmpi(bp, "\96û\82Ì\93h\82ç\82ê\82½", l = 12)
+                   || !strncmpi(bp, "\8e\89\82Ì\93h\82ç\82ê\82½", l = 12)) {
+#endif
             isgreased = 1;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "very ", l = 5)) {
+#else
+        } else if (!strncmpi(bp, "\82Æ\82Ä\82à", l = 6)) {
+#endif
             /* very rusted very heavy iron ball */
             very = 1;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "thoroughly ", l = 11)) {
+#else
+        } else if (!strncmpi(bp, "\82©\82È\82è", l = 6)) {
+#endif
             very = 2;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "rusty ", l = 6)
                    || !strncmpi(bp, "rusted ", l = 7)
                    || !strncmpi(bp, "burnt ", l = 6)
                    || !strncmpi(bp, "burned ", l = 7)) {
+#else
+        } else if (!strncmpi(bp, "\8eK\82Ñ\82½", l = 6)
+                   || !strncmpi(bp, "\94R\82¦\82½", l = 6)) {
+#endif
             eroded = 1 + very;
             very = 0;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "corroded ", l = 9)
                    || !strncmpi(bp, "rotted ", l = 7)) {
+#else
+        } else if (!strncmpi(bp, "\95\85\90H\82µ\82½", l = 8)
+                   || !strncmpi(bp, "\95\85\82Á\82½", l = 6)) {
+#endif
             eroded2 = 1 + very;
             very = 0;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "partly eaten ", l = 13)
                    || !strncmpi(bp, "partially eaten ", l = 16)) {
+#else
+        } else if (!strncmpi(bp, "\90H\82×\82©\82¯\82Ì", l = 10)) {
+#endif
             halfeaten = 1;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "historic ", l = 9)) {
+#else
+        } else if (!strncmpi(bp, "\97ð\8ej\93I\82È", l = 8)) {
+#endif
             ishistoric = 1;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "diluted ", l = 8)) {
+#else
+        } else if (!strncmpi(bp, "\94\96\82Ü\82Á\82½", l = 8)) {
+#endif
             isdiluted = 1;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "empty ", l = 6)) {
+#else
+        } else if (!strncmpi(bp, "\8bó\82Á\82Û\82Ì", l = 8)) {
+#endif
             contents = EMPTY;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "small ", l = 6)) { /* glob sizes */
+#else
+        } else if (!strncmpi(bp, "\8f¬\82³\82¢", l = 6)) { /* glob sizes */
+#endif
             gsize = 1;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "medium ", l = 7)) {
+#else
+        } else if (!strncmpi(bp, "\92\86\82­\82ç\82¢\82Ì", l = 10)) {
+#endif
             /* xname() doesn't display "medium" but without this
                there'd be no way to ask for the intermediate size */
             gsize = 2;
+#if 0 /*JP*/
         } else if (!strncmpi(bp, "large ", l = 6)) {
+#else
+        } else if (!strncmpi(bp, "\91å\82«\82¢", l = 6)) {
+#endif
             /* "very large " had "very " peeled off on previous iteration */
             gsize = (very != 1) ? 3 : 4;
         } else
@@ -3695,6 +3790,7 @@ struct obj *no_wish;
     if ((p = strstri(bp, " called ")) != 0) {
         *p = 0;
         un = p + 8;
+#if 0 /*JP*//*\83^\83C\83v\95Ê\82Í\82Æ\82è\82 \82¦\82¸\82µ\82È\82¢*/
         /* "helmet called telepathy" is not "helmet" (a specific type)
          * "shield called reflection" is not "shield" (a general type)
          */
@@ -3703,6 +3799,7 @@ struct obj *no_wish;
                 oclass = o_ranges[i].oclass;
                 goto srch;
             }
+#endif
     }
     if ((p = strstri(bp, " labeled ")) != 0) {
         *p = 0;
@@ -3810,11 +3907,22 @@ struct obj *no_wish;
             }
         }
     }
-#else /*JP:\81u(\89ö\95¨\96¼)\82Ì(\83A\83C\83e\83\80)\81v\91Î\89\9e */
+#else
     {
-        if ((mntmp = name_to_mon(bp)) >= LOW_PM) {
-            const char *mp = mons[mntmp].mname;
-            bp = strstri(bp, mp) + strlen(mp) + 2;
+        /*JP \81u(\89ö\95¨\96¼)\82Ì\89ò\81v\82Í\8cÂ\81X\82ÉID\82ª\82 \82é\82Ì\82Å\95Ê\88µ\82¢ */
+        int l = strlen(bp);
+        if (l > 4 && strncmp(bp + l - 4, "\82Ì\89ò", 4) == 0) {
+            if ((mntmp = name_to_mon(bp)) >= PM_GRAY_OOZE
+                && mntmp <= PM_BLACK_PUDDING) {
+                mntmp = NON_PM; /* lie to ourselves */
+                cnt = 0;        /* force only one */
+            }
+        } else {
+            /*JP:\81u(\89ö\95¨\96¼)\82Ì(\83A\83C\83e\83\80)\81v\91Î\89\9e */
+            if ((mntmp = name_to_mon(bp)) >= LOW_PM) {
+                const char *mp = mons[mntmp].mname;
+                bp = strstri(bp, mp) + strlen(mp) + 2;
+            }
         }
     }
 #endif
@@ -4036,14 +4144,19 @@ struct obj *no_wish;
         }
     }
 
+#if 0 /*JP*//* mail/armor\8aÖ\98A\82Å\82Ì\82Ý\8eg\82¤\83\89\83x\83\8b */
 retry:
+#endif
+#if 0 /*JP*//* \83^\83C\83v\95Ê\82Í\82Æ\82è\82 \82¦\82¸\82µ\82È\82¢ */
     /* "grey stone" check must be before general "stone" */
     for (i = 0; i < SIZE(o_ranges); i++)
         if (!strcmpi(bp, o_ranges[i].name)) {
             typ = rnd_class(o_ranges[i].f_o_range, o_ranges[i].l_o_range);
             goto typfnd;
         }
+#endif
 
+#if 0 /*JP*//* \90Î\82Ì\93Á\95Ê\8f\88\97\9d\82Í\95s\97v */
     if (!BSTRCMPI(bp, p - 6, " stone") || !BSTRCMPI(bp, p - 4, " gem")) {
         p[!strcmpi(p - 4, " gem") ? -4 : -6] = '\0';
         oclass = GEM_CLASS;
@@ -4081,11 +4194,14 @@ retry:
             Strcpy(bp, tbuf);
         }
     }
+#endif
 
     actualn = bp;
     if (!dn)
         dn = actualn; /* ex. "skull cap" */
+#if 0 /*JP*/
 srch:
+#endif
     /* check real names of gems first */
     if (!oclass && actualn) {
         for (i = bases[GEM_CLASS]; i <= LAST_GEM; i++) {
@@ -4096,12 +4212,14 @@ srch:
                 goto typfnd;
             }
         }
+#if 0 /*JP*//* \93ú\96{\8cê\82Í"tin"\82ð\96ó\82µ\95ª\82¯\82Ä\82¢\82é\82Ì\82Å\95s\97v */
         /* "tin of foo" would be caught above, but plain "tin" has
            a random chance of yielding "tin wand" unless we do this */
         if (!strcmpi(actualn, "tin")) {
             typ = TIN;
             goto typfnd;
         }
+#endif
     }
 
     if (((typ = rnd_otyp_by_namedesc(actualn, oclass)) != STRANGE_OBJECT)
@@ -4122,6 +4240,7 @@ srch:
             j++;
         }
     }
+#if 0 /*JP*//* mail/armor\82Ì\95\\8bL\97h\82ê\83`\83F\83b\83N\82Í\95s\97v */
     /* if we've stripped off "armor" and failed to match anything
        in objects[], append "mail" and try again to catch misnamed
        requests like "plate armor" and "yellow dragon scale armor" */
@@ -4131,6 +4250,7 @@ srch:
         Strcat(bp, " mail");
         goto retry;
     }
+#endif
 #if 0 /*JP*/
     if (!strcmpi(bp, "spinach")) {
 #else
@@ -4340,6 +4460,7 @@ wiztrap:
         }
     }
 
+#if 0 /*JP*//* \83^\83C\83v\95Ê\82Í\82Æ\82è\82 \82¦\82¸\82µ\82È\82¢ */
     if (!oclass && !typ) {
         if (!strncmpi(bp, "polearm", 7)) {
             typ = rnd_otyp_by_wpnskill(P_POLEARMS);
@@ -4349,6 +4470,7 @@ wiztrap:
             goto typfnd;
         }
     }
+#endif
 
     if (!oclass)
         return ((struct obj *) 0);