diff -urN 34304-041106/src/objnam.c fix__/src/objnam.c --- 34304-041106/src/objnam.c Mon Sep 13 22:34:38 2004 +++ fix__/src/objnam.c Tue Nov 16 20:21:56 2004 @@ -322,6 +322,21 @@ return str; } +#if 1 /*JP*/ +char * +distant_name_en_mode(obj) +register struct obj *obj; +{ + char *str; + + long save_Blinded = Blinded; + Blinded = 1; + str = xname_ej(obj, FALSE); /*FALSE--English (see do_look()) */ + Blinded = save_Blinded; + return str; +} +#endif + /* convert player specified fruit name into corresponding fruit juice name ("slice of pizza" -> "pizza juice" rather than "slice of pizza juice") */ char * @@ -353,6 +368,16 @@ xname(obj) register struct obj *obj; { +#if 1 /*JP*/ /* JP or EN */ + return (xname_ej(obj, TRUE)); +} + +char * +xname_ej(obj, jp_mode) +register struct obj *obj; +boolean jp_mode; /*output mode: TRUE-Japanese, FALSE--English (see do_look()) */ +{ +#endif register char *buf; register int typ = obj->otyp; register struct objclass *ocl = &objects[typ]; @@ -379,16 +404,17 @@ if (!Blind) obj->dknown = TRUE; if (Role_if(PM_PRIEST)) obj->bknown = TRUE; if (obj_is_pname(obj)) -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif goto nameit; -#else - { +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, jtrns_obj('A', ONAME(obj))); - goto nameit; - } -#endif -#if 1 /*JP*/ - if (obj->onamelth && obj->dknown) { + goto jnameit; + } + + if (jp_mode && obj->onamelth && obj->dknown) { if(!obj->oartifact) Strcat(buf, ONAME(obj)); else @@ -398,138 +424,226 @@ #endif switch (obj->oclass) { case AMULET_CLASS: -#if 1 /*JP*/ - jactualn = jtrns_obj('"', actualn); - jdn = jtrns_obj('"', dn); +#if 1 /*JP*/ /* JP or EN */ + if(jp_mode) { + jactualn = jtrns_obj('"',actualn); + jdn = jtrns_obj('"',dn); + } #endif if (!obj->dknown) -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, "amulet"); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, "魔除け"); + } +#endif else if (typ == AMULET_OF_YENDOR || typ == FAKE_AMULET_OF_YENDOR) /* each must be identified individually */ -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, obj->known ? actualn : dn); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, obj->known ? jactualn : jdn); + } +#endif else if (nn) -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, actualn); -#else +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, jactualn); + } #endif else if (un) -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Sprintf(buf,"amulet called %s", un); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Sprintf(eos(buf),"%sと呼ばれる魔除け", un); + } +#endif else -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Sprintf(buf,"%s amulet", dn); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Sprintf(eos(buf),"%s", jdn); + } +#endif break; case WEAPON_CLASS: -#if 1 /*JP*/ - jactualn = jtrns_obj(')',actualn); - jdn = jtrns_obj(')',dn); +#if 1 /*JP*/ /* JP or EN */ + if(jp_mode) { + jactualn = jtrns_obj(')',actualn); + jdn = jtrns_obj(')',dn); + } #endif if (is_poisonable(obj) && obj->opoisoned) -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, "poisoned "); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcpy(buf, "毒の塗られた"); + } +#endif case VENOM_CLASS: case TOOL_CLASS: -#if 1 /*JP*/ - if(obj->oclass == VENOM_CLASS){ - jactualn = jtrns_obj('\'',actualn); - jdn = jtrns_obj('\'',dn); - } - else if(obj->oclass == TOOL_CLASS){ - jactualn = jtrns_obj('(',actualn); - jdn = jtrns_obj('(',dn); - } - if (typ == FIGURINE) +#if 1 /*JP*/ /* JP or EN */ + if(jp_mode) { + if(obj->oclass == VENOM_CLASS){ + jactualn = jtrns_obj('\'',actualn); + jdn = jtrns_obj('\'',dn); + } + else if(obj->oclass == TOOL_CLASS){ + jactualn = jtrns_obj('(',actualn); + jdn = jtrns_obj('(',dn); + } + if (typ == FIGURINE) Sprintf(eos(buf), "%sの", jtrns_mon(mons[obj->corpsenm].mname)); + } #endif if (typ == LENSES) -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, "pair of "); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcpy(buf, "一対の"); + } +#endif if (!obj->dknown) -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcat(buf, dn ? dn : actualn); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, jdn ? jdn : jactualn); + } +#endif else if (nn) -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcat(buf, actualn); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, jactualn); + } +#endif else if (un) { -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcat(buf, dn ? dn : actualn); Strcat(buf, " called "); Strcat(buf, un); -#else +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, un); Strcat(buf, "と呼ばれる"); Strcat(buf, dn ? jdn : jactualn); + } #endif } else -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcat(buf, dn ? dn : actualn); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, dn ? jdn : jactualn); -#if 0 /*JP*/ /*これは語順の関係から上の方で定義*/ + } + + /*JP* 日本語モードでは語順の関係から上の方で定義*/ + if(!jp_mode) { +#endif /* If we use an() here we'd have to remember never to use */ /* it whenever calling doname() or xname(). */ if (typ == FIGURINE) Sprintf(eos(buf), " of a%s %s", index(vowels,*(mons[obj->corpsenm].mname)) ? "n" : "", mons[obj->corpsenm].mname); +#if 1 /*JP*/ /* JP or EN */ + } #endif break; case ARMOR_CLASS: -#if 1 /*JP*/ - jactualn = jtrns_obj(']',actualn); - jdn = jtrns_obj(']',dn); +#if 1 /*JP*/ /* JP or EN */ + if(jp_mode) { + jactualn = jtrns_obj(']',actualn); + jdn = jtrns_obj(']',dn); + } #endif /* depends on order of the dragon scales objects */ if (typ >= GRAY_DRAGON_SCALES && typ <= YELLOW_DRAGON_SCALES) { -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Sprintf(buf, "set of %s", actualn); -*/ + break; +#if 1 /*JP*/ /* JP or EN */ + } else { Sprintf(buf, "%s一式", jactualn); break; + } +#endif } -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif if(is_boots(obj) || is_gloves(obj)) Strcpy(buf,"pair of "); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { if(is_boots(obj) || is_gloves(obj)) Strcat(buf,"一対の"); + } +#endif if(obj->otyp >= ELVEN_SHIELD && obj->otyp <= ORCISH_SHIELD && !obj->dknown) { -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, "shield"); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, "盾"); + } +#endif break; } if(obj->otyp == SHIELD_OF_REFLECTION && !obj->dknown) { -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, "smooth shield"); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, "すべすべした盾"); + } +#endif break; } -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif if(nn) Strcat(buf, actualn); else if(un) { if(is_boots(obj)) @@ -547,7 +661,8 @@ Strcat(buf, " called "); Strcat(buf, un); } else Strcat(buf, dn); -#else +#if 1 /*JP*/ /* JP or EN */ + } else { if(nn) Strcat(buf, jactualn); else if(un) { char *p; @@ -559,12 +674,15 @@ else p = "鎧"; Sprintf(eos(buf), "%sと呼ばれる%s", un, p); } else Strcat(buf, jdn); + } #endif break; case FOOD_CLASS: -#if 1 /*JP*/ - jactualn = jtrns_obj('%',actualn); - jdn = jtrns_obj('%',dn); +#if 1 /*JP*/ /* JP or EN */ + if(jp_mode) { + jactualn = jtrns_obj('%',actualn); + jdn = jtrns_obj('%',dn); + } #endif if (typ == SLIME_MOLD) { register struct fruit *f; @@ -579,58 +697,94 @@ break; } -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, actualn); +#if 1 /*JP*/ /* JP or EN */ + } #endif if (typ == TIN && obj->known) { if(obj->spe > 0) -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcat(buf, " of spinach"); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, "ホウレン草の"); + } +#endif else if (obj->corpsenm == NON_PM) -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, "empty tin"); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, "空っぽの"); + } +#endif else if (vegetarian(&mons[obj->corpsenm])) -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Sprintf(eos(buf), " of %s", mons[obj->corpsenm].mname); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Sprintf(eos(buf), "%sの", jtrns_mon(mons[obj->corpsenm].mname)); + } +#endif else -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Sprintf(eos(buf), " of %s meat", mons[obj->corpsenm].mname); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Sprintf(eos(buf), "%sの肉の", jtrns_mon(mons[obj->corpsenm].mname)); + } +#endif + } +#if 1 /*JP*/ /* JP or EN */ + if(jp_mode) { + Strcat(buf, jactualn); } -#if 1 /*JP*/ - Strcat(buf, jactualn); #endif break; case COIN_CLASS: -#if 1 /*JP*/ - jactualn = jtrns_obj('$',actualn); - jdn = jtrns_obj('$',dn); - Strcat(buf, jactualn); - break; +#if 1 /*JP*/ /* JP or EN */ + if(jp_mode) { + jactualn = jtrns_obj('$',actualn); + jdn = jtrns_obj('$',dn); + Strcat(buf, jactualn); + break; + } + /*else fall through*/ #endif case CHAIN_CLASS: -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, actualn); -#else +#if 1 /*JP*/ /* JP or EN */ + } else { jactualn = jtrns_obj('_',actualn); jdn = jtrns_obj('_',dn); Strcat(buf, jactualn); + } #endif break; case ROCK_CLASS: -#if 1 /*JP*/ - jactualn = jtrns_obj('\'',actualn); - jdn = jtrns_obj('\'',dn); +#if 1 /*JP*/ /* JP or EN */ + if(jp_mode) { + jactualn = jtrns_obj('\'',actualn); + jdn = jtrns_obj('\'',dn); + } + + if(!jp_mode) { #endif if (typ == STATUE) -#if 0 /*JP*/ Sprintf(buf, "%s%s of %s%s", (Role_if(PM_ARCHEOLOGIST) && (obj->spe & STATUE_HISTORIC)) ? "historic " : "" , actualn, @@ -640,231 +794,377 @@ "an " : "a "), mons[obj->corpsenm].mname); else Strcpy(buf, actualn); -#else +#if 1 /*JP*/ /* JP or EN */ + } else { + if (typ == STATUE) Sprintf(eos(buf), "%s%sの%s", (Role_if(PM_ARCHEOLOGIST) && obj->spe) ? "歴史的な" : "" , jtrns_mon(mons[obj->corpsenm].mname), jactualn); else Strcat(buf, jactualn); + } #endif break; case BALL_CLASS: -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Sprintf(buf, "%sheavy iron ball", (obj->owt > ocl->oc_weight) ? "very " : ""); -#else +#if 1 /*JP*/ /* JP or EN */ + } else { Sprintf(eos(buf), "%s%s", (obj->owt > ocl->oc_weight) ? "とても" : "", jtrns_obj('0', "heavy iron ball")); + } #endif break; case POTION_CLASS: -#if 1 /*JP*/ - jactualn = jtrns_obj('!',actualn); - jdn = jtrns_obj('!',dn); +#if 1 /*JP*/ /* JP or EN */ + if(jp_mode) { + jactualn = jtrns_obj('!',actualn); + jdn = jtrns_obj('!',dn); + } #endif if (obj->dknown && obj->odiluted) -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, "diluted "); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, "薄まった"); + } +#endif if(nn || un || !obj->dknown) { -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcat(buf, "potion"); if(!obj->dknown) break; -#else +#if 1 /*JP*/ /* JP or EN */ + } else { if(!obj->dknown){ Strcat(buf,"薬"); break; } + } #endif if(nn) { -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcat(buf, " of "); +#if 1 /*JP*/ /* JP or EN */ + } #endif if (typ == POT_WATER && obj->bknown && (obj->blessed || obj->cursed)) { -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcat(buf, obj->blessed ? "holy " : "unholy "); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, obj->blessed ? "聖" : "不浄な"); + } +#endif } -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcat(buf, actualn); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, jactualn); + } +#endif } else { -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcat(buf, " called "); Strcat(buf, un); -#else +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, un); Strcat(buf, "と呼ばれる薬"); + } #endif } } else { -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcat(buf, dn); Strcat(buf, " potion"); -#else +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, jdn); Strcat(buf, "薬"); + } #endif } break; case SCROLL_CLASS: -#if 1 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(jp_mode) { jactualn = jtrns_obj('?', actualn); jdn = jtrns_obj('?', dn); if(!obj->dknown){ Strcat(buf,"巻物"); break; } -#else + } else { +#endif Strcpy(buf, "scroll"); if(!obj->dknown) break; +#if 1 /*JP*/ /* JP or EN */ + } #endif if(nn) { -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcat(buf, " of "); Strcat(buf, actualn); -#else +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, jactualn); + } #endif } else if(un) { -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcat(buf, " called "); Strcat(buf, un); -#else +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, un); Strcat(buf, "と呼ばれる巻物"); + } #endif } else if (ocl->oc_magic) { -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcat(buf, " labeled "); Strcat(buf, dn); -#else +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, jdn); + } #endif } else { -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, dn); Strcat(buf, " scroll"); -#else +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, jdn); + } #endif } break; case WAND_CLASS: -#if 1 /*JP*/ - jactualn = jtrns_obj('/',actualn); - jdn = jtrns_obj('/',dn); +#if 1 /*JP*/ /* JP or EN */ + if(jp_mode) { + jactualn = jtrns_obj('/',actualn); + jdn = jtrns_obj('/',dn); + } #endif if(!obj->dknown) -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, "wand"); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, "杖"); + } +#endif else if(nn) -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Sprintf(buf, "wand of %s", actualn); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, jactualn); + } +#endif else if(un) -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Sprintf(buf, "wand called %s", un); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Sprintf(eos(buf), "%sと呼ばれる杖", un); + } +#endif else -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Sprintf(buf, "%s wand", dn); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, jdn); + } +#endif break; case SPBOOK_CLASS: -#if 1 /*JP*/ - jactualn = jtrns_obj('+',actualn); - jdn = jtrns_obj('+',dn); +#if 1 /*JP*/ /* JP or EN */ + if(jp_mode) { + jactualn = jtrns_obj('+',actualn); + jdn = jtrns_obj('+',dn); + } #endif if (!obj->dknown) { -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, "spellbook"); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, "魔法書"); + } +#endif } else if (nn) { -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif if (typ != SPE_BOOK_OF_THE_DEAD) Strcpy(buf, "spellbook of "); Strcat(buf, actualn); -#else +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, jactualn); + } #endif } else if (un) { -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Sprintf(buf, "spellbook called %s", un); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Sprintf(eos(buf), "%sと呼ばれる魔法書", un); + } +#endif } else -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Sprintf(buf, "%s spellbook", dn); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Sprintf(eos(buf), "%s", jdn); + } +#endif break; case RING_CLASS: -#if 1 /*JP*/ - jactualn = jtrns_obj('=',actualn); - jdn = jtrns_obj('=',dn); +#if 1 /*JP*/ /* JP or EN */ + if(jp_mode) { + jactualn = jtrns_obj('=',actualn); + jdn = jtrns_obj('=',dn); + } #endif if(!obj->dknown) -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, "ring"); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, "指輪"); + } +#endif else if(nn) -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Sprintf(buf, "ring of %s", actualn); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, jactualn); + } +#endif else if(un) -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Sprintf(buf, "ring called %s", un); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Sprintf(eos(buf), "%sと呼ばれる指輪", un); + } +#endif else -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Sprintf(buf, "%s ring", dn); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, jdn); + } +#endif break; case GEM_CLASS: -#if 1 /*JP*/ - jactualn = jtrns_obj('*',actualn); - jdn = jtrns_obj('*',dn); +#if 1 /*JP*/ /* JP or EN */ + if(jp_mode) { + jactualn = jtrns_obj('*',actualn); + jdn = jtrns_obj('*',dn); + } #endif { +#if 0 /*JP*/ /* JP or EN */ const char *rock = -/*JP (ocl->oc_material == MINERAL) ? "stone" : "gem"; -*/ - (ocl->oc_material == MINERAL) ? "石" : "宝石"; +#else + const char *rock; + if(jp_mode) { + rock = (ocl->oc_material == MINERAL) ? "石" : "宝石"; + } else { + rock = (ocl->oc_material == MINERAL) ? "stone" : "gem"; + } +#endif if (!obj->dknown) { -/*JP +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, rock); -*/ +#if 1 /*JP*/ /* JP or EN */ + } else { Strcat(buf, rock); + } +#endif } else if (!nn) { -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif if (un) Sprintf(buf,"%s called %s", rock, un); else Sprintf(buf, "%s %s", dn, rock); -#else +#if 1 /*JP*/ /* JP or EN */ + } else { if (un) Sprintf(eos(buf), "%sと呼ばれる%s", un, rock); else Strcat(buf, jdn); + } #endif } else { -#if 0 /*JP*/ +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { +#endif Strcpy(buf, actualn); if (GemStone(typ)) Strcat(buf, " stone"); -#else +#if 1 /*JP*/ /* JP or EN */ + } else { Strcpy(buf, jactualn); + } #endif } break; @@ -872,11 +1172,11 @@ default: Sprintf(buf,"glorkum %d %d %d", obj->oclass, typ, obj->spe); } -#if 0 /*JP*/ - if (obj->quan != 1L) Strcpy(buf, makeplural(buf)); +#if 1 /*JP*/ /* JP or EN */ + if(!jp_mode) { #endif + if (obj->quan != 1L) Strcpy(buf, makeplural(buf)); -#if 0 /*JP*/ if (obj->onamelth && obj->dknown) { Strcat(buf, " named "); nameit: @@ -884,8 +1184,9 @@ } if (!strncmpi(buf, "the ", 4)) buf += 4; -#else -nameit: +#if 1 /*JP*/ /* JP or EN */ + } +jnameit: #endif return(buf); } diff -urN 34304-041106/src/pager.c fix__/src/pager.c --- 34304-041106/src/pager.c Mon Aug 2 17:48:50 2004 +++ fix__/src/pager.c Wed Nov 17 19:20:52 2004 @@ -11,6 +11,10 @@ ** For 3.4, Copyright (c) Kentaro Shirakata, 2002-2003 ** JNetHack may be freely redistributed. See license for details. */ +/* + * FHS patch : Copyright (c) 2003-2004 by Shiganai Sakusha + * JNetHack may be freely redistributed. See license for details. + */ #include "hack.h" #include "dlb.h" @@ -174,7 +178,6 @@ if (mtmp != (struct monst *) 0) { char *name, monnambuf[BUFSZ]; boolean accurate = !Hallucination; - if (mtmp->data == &mons[PM_COYOTE] && accurate) name = coyotename(mtmp, monnambuf); else @@ -358,10 +361,23 @@ else if (otmp->otyp == SLIME_MOLD) otmp->spe = current_fruit; /* give the fruit a type */ Strcpy(buf, distant_name(otmp, xname)); +#if 1 /*JP bugfix? 日本語モードアイテム類の詳細3 [Sakusha] */ + /*JP : 下段参照*/ + Strcpy(buf2, distant_name_en_mode(otmp)); +#endif + dealloc_obj(otmp); } } else Strcpy(buf, distant_name(otmp, xname)); +#if 1 /*JP bugfix? 日本語モードアイテム類の詳細3 [Sakusha] */ + /*JP buf2を日本語で扱おうとすると,do_look()で読み出されないものが出るよう + なのであまりうまくない(独自項目「パンケーキ」「ジャスパー」「オパール」で + 確認.他でも(将来的にも)出る恐れ有り). + その為,distant_name_en_mode() → xname_ej() (英語も出力可なxname()) + を用いてbuf2に英語出力[Sakusha] */ + Strcpy(buf2, distant_name_en_mode(otmp)); +#endif if (levl[x][y].typ == STONE || levl[x][y].typ == SCORR) /*JP @@ -392,17 +408,22 @@ #endif } else if (glyph_is_trap(glyph)) { int tnum = what_trap(glyph_to_trap(glyph)); -#if 0 /*JP*/ +#if 0 /*JP bugfix? 日本語モードアイテム類の詳細 [Sakusha] */ Strcpy(buf, defsyms[trap_to_defsym(tnum)].explanation); #else - Strcpy(buf, jtrns_obj('^', defsyms[ - trap_to_defsym(Hallucination ? rn2(TRAPNUM-3)+3 : tnum)].explanation)); + Strcpy(buf2, + defsyms[trap_to_defsym(Hallucination ? rn2(TRAPNUM-3)+3 : tnum) + ].explanation); + Strcpy(buf, jtrns_obj('^', buf2)); #endif } else if(!glyph_is_cmap(glyph)) { /*JP Strcpy(buf,"dark part of a room"); */ Strcpy(buf,"部屋の暗い部分"); +#if 1 /*JP bugfix? 日本語モードアイテム類の詳細 [Sakusha] */ + Strcpy(buf2,defsyms[glyph_to_cmap(glyph)].explanation); +#endif } else switch(glyph_to_cmap(glyph)) { case S_altar: if(!In_endgame(&u.uz)) @@ -417,35 +438,67 @@ else Sprintf(buf, "aligned altar"); */ else Sprintf(buf, "属性の祭壇"); +#if 1 /*JP bugfix? 日本語モードアイテム類の詳細 [Sakusha] */ + Strcpy(buf2,defsyms[glyph_to_cmap(glyph)].explanation); +#endif break; case S_ndoor: if (is_drawbridge_wall(x, y) >= 0) /*JP Strcpy(buf,"open drawbridge portcullis"); */ +#if 1 /*JP bugfix? 日本語モードアイテム類の詳細 [Sakusha] */ + { + Strcpy(buf,"降りている跳ね橋"); + Strcpy(buf2,"open drawbridge portcullis"); + } +#else /*3.4*/ Strcpy(buf,"降りている跳ね橋"); +#endif else if ((levl[x][y].doormask & ~D_TRAPPED) == D_BROKEN) /*JP Strcpy(buf,"broken door"); */ +#if 1 /*JP bugfix? 日本語モードアイテム類の詳細 [Sakusha] */ + { Strcpy(buf,"壊れた扉"); + Strcpy(buf2,"broken door"); + } +#else /*3.4*/ + Strcpy(buf,"壊れた扉"); +#endif else /*JP Strcpy(buf,"doorway"); */ +#if 1 /*JP bugfix? 日本語モードアイテム類の詳細 [Sakusha] */ + { + Strcpy(buf,"出入り口"); + Strcpy(buf2,"doorway"); + } +#else /*3.4*/ Strcpy(buf,"通路"); +#endif break; case S_cloud: /*JP Strcpy(buf, Is_airlevel(&u.uz) ? "cloudy area" : "fog/vapor cloud"); */ Strcpy(buf, Is_airlevel(&u.uz) ? "曇っている場所" : "霧/蒸気の雲"); +#if 1 /*JP bugfix? 日本語モードアイテム類の詳細 [Sakusha] */ + Strcpy(buf2, Is_airlevel(&u.uz) ? "cloudy area" : "fog/vapor cloud"); +#endif break; default: /*JP Strcpy(buf,defsyms[glyph_to_cmap(glyph)].explanation); */ +#if 0 /*JP bugfix? 日本語モードアイテム類の詳細 [Sakusha] */ Strcpy(buf, jtrns_obj('S', defsyms[glyph_to_cmap(glyph)].explanation)); +#else + Strcpy(buf2,defsyms[glyph_to_cmap(glyph)].explanation); + Strcpy(buf, jtrns_obj('S', buf2)); +#endif break; } #if 1 /*JP*/ @@ -984,6 +1037,7 @@ * If we are looking at the screen, follow multiple possibilities or * an ambiguous explanation by something more detailed. */ +///*tes*/pline("before from screen-- firstmatch=「%s」, firstmatch2=「%s」", firstmatch, firstmatch2); if (from_screen) { if (found > 1 || need_to_look) { char monbuf[BUFSZ]; @@ -997,6 +1051,7 @@ #if 1 /*JP*/ firstmatch2 = look_buf2; #endif +///*tes*/pline("lookat-- firstmatch=「%s」, firstmatch2=「%s」", firstmatch, firstmatch2); if (*firstmatch) { Sprintf(temp_buf, " (%s)", firstmatch); (void)strncat(out_str, temp_buf, BUFSZ-strlen(out_str)-1); @@ -1025,6 +1080,7 @@ firstmatch2) { #endif char temp_buf[BUFSZ]; +///*tes*/pline("check-- firstmatch=「%s」, firstmatch2=「%s」", firstmatch, firstmatch2); /*JP Strcpy(temp_buf, firstmatch); */