X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fwizard1.c;h=e89c724f943193a2c5aac17d4c7eacc2edd96f3b;hb=61525125cedc7922fa8b2e065b0af4a0cffc2e0a;hp=e2d9510c98f6208d71a9e511ce2f45ed96f335bf;hpb=c49aee6b5863deb17f6b71da491e79ad78045e36;p=hengband%2Fhengband.git diff --git a/src/wizard1.c b/src/wizard1.c index e2d9510c9..e89c724f9 100644 --- a/src/wizard1.c +++ b/src/wizard1.c @@ -11,6 +11,8 @@ */ #include "angband.h" +#include "sort.h" +#include "store.h" #ifdef ALLOW_SPOILERS @@ -29,7 +31,7 @@ static FILE *fff = NULL; * @param r_ptr モンスター種族の構造体ポインタ * @return シンボル職の記述名 */ -static cptr attr_to_text(monster_race *r_ptr) +static concptr attr_to_text(monster_race *r_ptr) { #ifdef JP000 if (r_ptr->flags1 & RF1_ATTR_CLEAR) return "透明な"; @@ -80,7 +82,6 @@ static cptr attr_to_text(monster_race *r_ptr) #endif } - /* Oops */ #ifdef JP000 return "変な"; #else @@ -95,8 +96,8 @@ static cptr attr_to_text(monster_race *r_ptr) */ typedef struct { - byte tval; - cptr name; + OBJECT_TYPE_VALUE tval; + concptr name; } grouper; @@ -129,87 +130,39 @@ static grouper group_item[] = { TV_SHIELD, NULL }, { TV_CLOAK, NULL }, -#ifdef JP - { TV_LITE, "光源" }, - { TV_AMULET, "アミュレット" }, - { TV_RING, "指輪" }, -#else - { TV_LITE, "Light Sources" }, - { TV_AMULET, "Amulets" }, - { TV_RING, "Rings" }, -#endif - -#ifdef JP - { TV_STAFF, "杖" }, - { TV_WAND, "魔法棒" }, - { TV_ROD, "ロッド" }, -#else - { TV_STAFF, "Staffs" }, - { TV_WAND, "Wands" }, - { TV_ROD, "Rods" }, -#endif - -#ifdef JP - { TV_SCROLL, "巻物" }, - { TV_POTION, "薬" }, - { TV_FOOD, "食料" }, -#else - { TV_SCROLL, "Scrolls" }, - { TV_POTION, "Potions" }, - { TV_FOOD, "Food" }, -#endif - -#ifdef JP - { TV_LIFE_BOOK, "魔法書 (生命)" }, - { TV_SORCERY_BOOK, "魔法書 (仙術)" }, - { TV_NATURE_BOOK, "魔法書 (自然)" }, - { TV_CHAOS_BOOK, "魔法書 (カオス)" }, - { TV_DEATH_BOOK, "魔法書 (暗黒)" }, - { TV_TRUMP_BOOK, "魔法書 (トランプ)" }, - { TV_ARCANE_BOOK, "魔法書 (秘術)" }, - { TV_CRAFT_BOOK, "魔法書 (匠)" }, - { TV_DAEMON_BOOK, "魔法書 (悪魔)" }, - { TV_CRUSADE_BOOK, "魔法書 (破邪)" }, - { TV_MUSIC_BOOK, "歌集" }, - { TV_HISSATSU_BOOK, "武芸の書" }, - { TV_HEX_BOOK, "魔法書 (呪術)" }, -#else - { TV_LIFE_BOOK, "Books (Life)" }, - { TV_SORCERY_BOOK, "Books (Sorcery)" }, - { TV_NATURE_BOOK, "Books (Nature)" }, - { TV_CHAOS_BOOK, "Books (Chaos)" }, - { TV_DEATH_BOOK, "Books (Death)" }, - { TV_TRUMP_BOOK, "Books (Trump)" }, - { TV_ARCANE_BOOK, "Books (Arcane)" }, - { TV_CRAFT_BOOK, "Books (Craft)" }, - { TV_DAEMON_BOOK, "Books (Daemon)" }, - { TV_CRUSADE_BOOK, "Books (Crusade)" }, - { TV_MUSIC_BOOK, "Song Books" }, - { TV_HISSATSU_BOOK, "Books (Kendo)" }, - { TV_HEX_BOOK, "Books (Hex)" }, -#endif - -#ifdef JP - { TV_WHISTLE, "笛" }, - { TV_CAPTURE, "キャプチャー・ボール" }, - { TV_CARD, "エクスプレスカード" }, -#else - { TV_WHISTLE, "Whistle" }, - { TV_CAPTURE, "Capture Ball" }, - { TV_CARD, "Express Card" }, -#endif + { TV_LITE, _("光源", "Light Sources") }, + { TV_AMULET, _("アミュレット", "Amulets" )}, + { TV_RING, _("指輪", "Rings") }, + { TV_STAFF, _("杖", "Staffs") }, + { TV_WAND, _("魔法棒", "Wands") }, + { TV_ROD, _("ロッド", "Rods") }, + { TV_SCROLL, _("巻物", "Scrolls") }, + { TV_POTION, _("薬", "Potions") }, + { TV_FOOD, _("食料", "Food") }, + + { TV_LIFE_BOOK, _("魔法書 (生命)", "Books (Life)") }, + { TV_SORCERY_BOOK, _("魔法書 (仙術)", "Books (Sorcery)") }, + { TV_NATURE_BOOK, _("魔法書 (自然)", "Books (Nature)") }, + { TV_CHAOS_BOOK, _("魔法書 (カオス)", "Books (Chaos)") }, + { TV_DEATH_BOOK, _("魔法書 (暗黒)", "Books (Death)") }, + { TV_TRUMP_BOOK, _("魔法書 (トランプ)", "Books (Trump)") }, + { TV_ARCANE_BOOK, _("魔法書 (秘術)", "Books (Arcane)") }, + { TV_CRAFT_BOOK, _("魔法書 (匠)", "Books (Craft)") }, + { TV_DAEMON_BOOK, _("魔法書 (悪魔)", "Books (Daemon)") }, + { TV_CRUSADE_BOOK, _("魔法書 (破邪)", "Books (Crusade)") }, + { TV_MUSIC_BOOK, _("歌集", "Song Books") }, + { TV_HISSATSU_BOOK, _("武芸の書", "Books (Kendo)") }, + { TV_HEX_BOOK, _("魔法書 (呪術)", "Books (Hex)") }, + + { TV_WHISTLE, _("笛", "Whistle") }, + { TV_CAPTURE, _("キャプチャー・ボール", "Capture Ball") }, + { TV_CARD, _("エクスプレスカード", "Express Card") }, { TV_CHEST, _("箱", "Chests") }, -#ifdef JP - { TV_FIGURINE, "人形" }, - { TV_STATUE, "像" }, - { TV_CORPSE, "死体" }, -#else - { TV_FIGURINE, "Magical Figurines" }, - { TV_STATUE, "Statues" }, - { TV_CORPSE, "Corpses" }, -#endif + { TV_FIGURINE, _("人形", "Magical Figurines") }, + { TV_STATUE, _("像", "Statues") }, + { TV_CORPSE, _("死体", "Corpses") }, { TV_SKELETON, _("その他", "Misc") }, { TV_BOTTLE, NULL }, @@ -234,13 +187,11 @@ static grouper group_item[] = * @param k ベースアイテムID * @return なし */ -static void kind_info(char *buf, char *dam, char *wgt, char *chance, int *lev, s32b *val, int k) +static void kind_info(char *buf, char *dam, char *wgt, char *chance, DEPTH *lev, PRICE *val, OBJECT_IDX k) { object_type forge; object_type *q_ptr; int i; - - /* Get local object */ q_ptr = &forge; /* Prepare a fake item */ @@ -255,22 +206,15 @@ static void kind_info(char *buf, char *dam, char *wgt, char *chance, int *lev, s q_ptr->to_h = 0; q_ptr->to_d = 0; - - /* Level */ (*lev) = k_info[q_ptr->k_idx].level; - - /* Value */ (*val) = object_value(q_ptr); - /* Hack */ if (!buf || !dam || !chance || !wgt) return; - /* Description (too brief) */ object_desc(buf, q_ptr, (OD_NAME_ONLY | OD_STORE)); - /* Misc info */ strcpy(dam, ""); @@ -325,14 +269,15 @@ static void kind_info(char *buf, char *dam, char *wgt, char *chance, int *lev, s char chance_aux[20] = ""; if(k_info[q_ptr->k_idx].chance[i] > 0) { - sprintf(chance_aux, "%s%3dF:%+4d", (i != 0 ? "/" : ""), k_info[q_ptr->k_idx].locale[i], 100/k_info[q_ptr->k_idx].chance[i]); + sprintf(chance_aux, "%s%3dF:%+4d", (i != 0 ? "/" : ""), + (int)k_info[q_ptr->k_idx].locale[i], 100/k_info[q_ptr->k_idx].chance[i]); strcat(chance, chance_aux); } } /* Weight */ - sprintf(wgt, "%3d.%d", q_ptr->weight / 10, q_ptr->weight % 10); + sprintf(wgt, "%3d.%d", (int)(q_ptr->weight / 10), (int)(q_ptr->weight % 10)); } @@ -342,11 +287,11 @@ static void kind_info(char *buf, char *dam, char *wgt, char *chance, int *lev, s * @param fname ファイル名 * @return なし */ -static void spoil_obj_desc(cptr fname) +static void spoil_obj_desc(concptr fname) { int i, k, s, t, n = 0, group_start = 0; - u16b who[200]; + OBJECT_IDX who[200]; char buf[1024]; @@ -364,7 +309,6 @@ static void spoil_obj_desc(cptr fname) /* Open the file */ fff = my_fopen(buf, "w"); - /* Oops */ if (!fff) { msg_print("Cannot create spoiler file."); @@ -398,18 +342,18 @@ static void spoil_obj_desc(cptr fname) int i1 = t; int i2 = t + 1; - int e1; - int e2; + DEPTH e1; + DEPTH e2; - s32b t1; - s32b t2; + PRICE t1; + PRICE t2; kind_info(NULL, NULL, NULL, NULL, &e1, &t1, who[i1]); kind_info(NULL, NULL, NULL, NULL, &e2, &t2, who[i2]); if ((t1 > t2) || ((t1 == t2) && (e1 > e2))) { - int tmp = who[i1]; + u16b tmp = who[i1]; who[i1] = who[i2]; who[i2] = tmp; } @@ -421,15 +365,15 @@ static void spoil_obj_desc(cptr fname) /* Spoil each item */ for (s = 0; s < n; s++) { - int e; - s32b v; + DEPTH e; + PRICE v; /* Describe the kind */ kind_info(buf, dam, wgt, chance, &e, &v, who[s]); /* Dump it */ fprintf(fff, " %-35s%8s%7s%5d %-40s%9ld\n", - buf, dam, wgt, e, chance, (long)(v)); + buf, dam, wgt, (int)e, chance, (long)(v)); } /* Start a new set */ @@ -455,7 +399,7 @@ static void spoil_obj_desc(cptr fname) if (k_ptr->gen_flags & (TRG_INSTA_ART)) continue; /* Save the index */ - who[n++] = k; + who[n++] = (u16b)k; } } @@ -467,7 +411,6 @@ static void spoil_obj_desc(cptr fname) return; } - /* Message */ msg_print("Successfully created a spoiler file."); } @@ -576,7 +519,7 @@ typedef struct flag_desc flag_desc; struct flag_desc { const int flag; - const char *const desc; + concptr const desc; }; @@ -917,7 +860,7 @@ typedef struct * * This list includes extra attacks, for simplicity. */ - cptr pval_affects[N_ELEMENTS(stat_flags_desc) - 1 + + concptr pval_affects[N_ELEMENTS(stat_flags_desc) - 1 + N_ELEMENTS(pval_flags1_desc) + 1]; } pval_info_type; @@ -940,22 +883,22 @@ typedef struct pval_info_type pval_info; /* A list of an object's slaying preferences */ - cptr slays[N_ELEMENTS(slay_flags_desc) + 1]; + concptr slays[N_ELEMENTS(slay_flags_desc) + 1]; /* A list if an object's elemental brands */ - cptr brands[N_ELEMENTS(brand_flags_desc) + 1]; + concptr brands[N_ELEMENTS(brand_flags_desc) + 1]; /* A list of immunities granted by an object */ - cptr immunities[N_ELEMENTS(immune_flags_desc) + 1]; + concptr immunities[N_ELEMENTS(immune_flags_desc) + 1]; /* A list of resistances granted by an object */ - cptr resistances[N_ELEMENTS(resist_flags_desc) + 1]; + concptr resistances[N_ELEMENTS(resist_flags_desc) + 1]; /* A list of stats sustained by an object */ - cptr sustains[N_ELEMENTS(sustain_flags_desc) - 1 + 1]; + concptr sustains[N_ELEMENTS(sustain_flags_desc) - 1 + 1]; /* A list of various magical qualities an object may have */ - cptr misc_magic[N_ELEMENTS(misc_flags2_desc) + N_ELEMENTS(misc_flags3_desc) + concptr misc_magic[N_ELEMENTS(misc_flags2_desc) + N_ELEMENTS(misc_flags3_desc) + 1 /* Permanent Light */ + 1 /* TY curse */ + 1 /* type of curse */ @@ -965,7 +908,7 @@ typedef struct char addition[80]; /* A string describing an artifact's activation */ - cptr activation; + concptr activation; /* "Level 20, Rarity 30, 3.0 lbs, 20000 Gold" */ char misc_desc[80]; @@ -1003,7 +946,7 @@ static void spoiler_blanklines(int n) * @param str 出力したい文字列 * @return なし */ -static void spoiler_underline(cptr str) +static void spoiler_underline(concptr str) { fprintf(fff, "%s\n", str); spoiler_out_n_chars(strlen(str), '-'); @@ -1031,9 +974,9 @@ static void spoiler_underline(cptr str) * The possibly updated description pointer is returned. * */ -static cptr *spoiler_flag_aux(const u32b art_flags[TR_FLAG_SIZE], +static concptr *spoiler_flag_aux(const BIT_FLAGS art_flags[TR_FLAG_SIZE], const flag_desc *flag_ptr, - cptr *desc_ptr, const int n_elmnts) + concptr *desc_ptr, const int n_elmnts) { int i; @@ -1073,9 +1016,9 @@ static void analyze_general(object_type *o_ptr, char *desc_ptr) */ static void analyze_pval(object_type *o_ptr, pval_info_type *pi_ptr) { - u32b flgs[TR_FLAG_SIZE]; + BIT_FLAGS flgs[TR_FLAG_SIZE]; - cptr *affects_list; + concptr *affects_list; /* If pval == 0, there is nothing to do. */ if (!o_ptr->pval) @@ -1084,8 +1027,6 @@ static void analyze_pval(object_type *o_ptr, pval_info_type *pi_ptr) pi_ptr->pval_desc[0] = '\0'; return; } - - /* Extract the flags */ object_flags(o_ptr, flgs); affects_list = pi_ptr->pval_affects; @@ -1127,9 +1068,9 @@ static void analyze_pval(object_type *o_ptr, pval_info_type *pi_ptr) * @param slay_list 種族スレイ構造体の参照ポインタ * @return なし */ -static void analyze_slay(object_type *o_ptr, cptr *slay_list) +static void analyze_slay(object_type *o_ptr, concptr *slay_list) { - u32b flgs[TR_FLAG_SIZE]; + BIT_FLAGS flgs[TR_FLAG_SIZE]; object_flags(o_ptr, flgs); @@ -1148,9 +1089,9 @@ static void analyze_slay(object_type *o_ptr, cptr *slay_list) * @param brand_list 属性ブランド構造体の参照ポインタ * @return なし */ -static void analyze_brand(object_type *o_ptr, cptr *brand_list) +static void analyze_brand(object_type *o_ptr, concptr *brand_list) { - u32b flgs[TR_FLAG_SIZE]; + BIT_FLAGS flgs[TR_FLAG_SIZE]; object_flags(o_ptr, flgs); @@ -1169,9 +1110,9 @@ static void analyze_brand(object_type *o_ptr, cptr *brand_list) * @param resist_list 通常耐性構造体の参照ポインタ * @return なし */ -static void analyze_resist(object_type *o_ptr, cptr *resist_list) +static void analyze_resist(object_type *o_ptr, concptr *resist_list) { - u32b flgs[TR_FLAG_SIZE]; + BIT_FLAGS flgs[TR_FLAG_SIZE]; object_flags(o_ptr, flgs); @@ -1190,9 +1131,9 @@ static void analyze_resist(object_type *o_ptr, cptr *resist_list) * @param immune_list 免疫構造体の参照ポインタ * @return なし */ -static void analyze_immune(object_type *o_ptr, cptr *immune_list) +static void analyze_immune(object_type *o_ptr, concptr *immune_list) { - u32b flgs[TR_FLAG_SIZE]; + BIT_FLAGS flgs[TR_FLAG_SIZE]; object_flags(o_ptr, flgs); @@ -1211,9 +1152,9 @@ static void analyze_immune(object_type *o_ptr, cptr *immune_list) * @param sustain_list 維持特性構造体の参照ポインタ * @return なし */ -static void analyze_sustains(object_type *o_ptr, cptr *sustain_list) +static void analyze_sustains(object_type *o_ptr, concptr *sustain_list) { - u32b flgs[TR_FLAG_SIZE]; + BIT_FLAGS flgs[TR_FLAG_SIZE]; object_flags(o_ptr, flgs); @@ -1248,10 +1189,10 @@ static void analyze_sustains(object_type *o_ptr, cptr *sustain_list) * @param misc_list その他の特性構造体の参照ポインタ * @return なし */ -static void analyze_misc_magic(object_type *o_ptr, cptr *misc_list) +static void analyze_misc_magic(object_type *o_ptr, concptr *misc_list) { - u32b flgs[TR_FLAG_SIZE]; - int rad; + BIT_FLAGS flgs[TR_FLAG_SIZE]; + POSITION rad; char desc[256]; object_flags(o_ptr, flgs); @@ -1259,8 +1200,7 @@ static void analyze_misc_magic(object_type *o_ptr, cptr *misc_list) misc_list = spoiler_flag_aux(flgs, misc_flags2_desc, misc_list, N_ELEMENTS(misc_flags2_desc)); - misc_list = spoiler_flag_aux(flgs, misc_flags3_desc, misc_list, - N_ELEMENTS(misc_flags3_desc)); + misc_list = spoiler_flag_aux(flgs, misc_flags3_desc, misc_list, N_ELEMENTS(misc_flags3_desc)); /* * Glowing artifacts -- small radius light. @@ -1277,12 +1217,12 @@ static void analyze_misc_magic(object_type *o_ptr, cptr *misc_list) if (have_flag(flgs, TR_LITE_FUEL)) { - if(rad > 0) sprintf(desc, _("それは燃料補給によって明かり(半径 %d)を授ける。", "It provides light (radius %d) when fueled."), rad); + if(rad > 0) sprintf(desc, _("それは燃料補給によって明かり(半径 %d)を授ける。", "It provides light (radius %d) when fueled."), (int)rad); } else { - if(rad > 0) sprintf(desc, _("永久光源(半径 %d)", "Permanent Light(radius %d)"), rad); - if(rad < 0) sprintf(desc, _("永久光源(半径-%d)。", "Permanent Light(radius -%d)"), -rad); + if(rad > 0) sprintf(desc, _("永久光源(半径 %d)", "Permanent Light(radius %d)"), (int)rad); + if(rad < 0) sprintf(desc, _("永久光源(半径-%d)。", "Permanent Light(radius -%d)"), (int)-rad); } if(rad != 0) *misc_list++ = quark_str(quark_add(desc)); @@ -1341,33 +1281,18 @@ static void analyze_addition(object_type *o_ptr, char *addition) /* Init */ strcpy(addition, ""); -#ifdef JP - if ((a_ptr->gen_flags & TRG_XTRA_POWER) && (a_ptr->gen_flags & TRG_XTRA_H_RES)) strcat(addition, "能力and耐性"); + if ((a_ptr->gen_flags & TRG_XTRA_POWER) && (a_ptr->gen_flags & TRG_XTRA_H_RES)) strcat(addition, _("能力and耐性", "Ability and Resistance")); else if (a_ptr->gen_flags & TRG_XTRA_POWER) { - strcat(addition, "能力"); - if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, "(1/2でand耐性)"); + strcat(addition, _("能力", "Ability")); + if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, _("(1/2でand耐性)", "(plus Resistance about 1/2)")); } else if (a_ptr->gen_flags & TRG_XTRA_H_RES) { - strcat(addition, "耐性"); - if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, "(1/2でand能力)"); + strcat(addition, _("耐性", "Resistance")); + if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, _("(1/2でand能力)", "(plus Ability about 1/2)")); } - else if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, "能力or耐性"); -#else - if ((a_ptr->gen_flags & TRG_XTRA_POWER) && (a_ptr->gen_flags & TRG_XTRA_H_RES)) strcat(addition, "Ability and Resistance"); - else if (a_ptr->gen_flags & TRG_XTRA_POWER) - { - strcat(addition, "Ability"); - if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, "(plus Resistance about 1/2)"); - } - else if (a_ptr->gen_flags & TRG_XTRA_H_RES) - { - strcat(addition, "Resistance"); - if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, "(plus Ability about 1/2)"); - } - else if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, "Ability or Resistance"); -#endif + else if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, _("能力or耐性", "Ability or Resistance")); } @@ -1383,13 +1308,10 @@ static void analyze_misc(object_type *o_ptr, char *misc_desc) { artifact_type *a_ptr = &a_info[o_ptr->name1]; + sprintf(misc_desc, _("レベル %d, 希少度 %u, %d.%d kg, $%ld", "Level %d, Rarity %u, %d.%d lbs, %ld Gold"), (int)a_ptr->level, a_ptr->rarity, #ifdef JP - sprintf(misc_desc, "レベル %u, 希少度 %u, %d.%d kg, $%ld", - a_ptr->level, a_ptr->rarity, lbtokg1(a_ptr->weight), lbtokg2(a_ptr->weight), (long int)a_ptr->cost); #else - sprintf(misc_desc, "Level %u, Rarity %u, %d.%d lbs, %ld Gold", - a_ptr->level, a_ptr->rarity, a_ptr->weight / 10, a_ptr->weight % 10, a_ptr->cost); #endif } @@ -1427,8 +1349,7 @@ static void print_header(void) { char buf[80]; - sprintf(buf, "Artifact Spoilers for Hengband Version %d.%d.%d", - FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH); + sprintf(buf, "Artifact Spoilers for Hengband Version %d.%d.%d",FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH); spoiler_underline(buf); } @@ -1481,7 +1402,7 @@ static void print_header(void) * @param separator フラグ表示の区切り記号 * @return なし */ -static void spoiler_outlist(cptr header, cptr *list, char separator) +static void spoiler_outlist(concptr header, concptr *list, char separator) { int line_len, buf_len; char line[MAX_LINE_LEN+1], buf[80]; @@ -1581,7 +1502,6 @@ static void spoiler_outlist(cptr header, cptr *list, char separator) static void spoiler_print_art(obj_desc_list *art_ptr) { pval_info_type *pval_ptr = &art_ptr->pval_info; - char buf[80]; /* Don't indent the first line */ @@ -1596,20 +1516,11 @@ static void spoiler_print_art(obj_desc_list *art_ptr) } /* Now deal with the description lists */ - -#ifdef JP - spoiler_outlist("対:", art_ptr->slays, ITEM_SEP); - spoiler_outlist("武器属性:", art_ptr->brands, LIST_SEP); - spoiler_outlist("免疫:", art_ptr->immunities, ITEM_SEP); - spoiler_outlist("耐性:", art_ptr->resistances, ITEM_SEP); - spoiler_outlist("維持:", art_ptr->sustains, ITEM_SEP); -#else - spoiler_outlist("Slay", art_ptr->slays, ITEM_SEP); - spoiler_outlist("", art_ptr->brands, LIST_SEP); - spoiler_outlist("Immunity to", art_ptr->immunities, ITEM_SEP); - spoiler_outlist("Resist", art_ptr->resistances, ITEM_SEP); - spoiler_outlist("Sustain", art_ptr->sustains, ITEM_SEP); -#endif + spoiler_outlist(_("対:", "Slay"), art_ptr->slays, ITEM_SEP); + spoiler_outlist(_("武器属性:", ""), art_ptr->brands, LIST_SEP); + spoiler_outlist(_("免疫:", "Immunity to"), art_ptr->immunities, ITEM_SEP); + spoiler_outlist(_("耐性:", "Resist"), art_ptr->resistances, ITEM_SEP); + spoiler_outlist(_("維持:", "Sustain"), art_ptr->sustains, ITEM_SEP); spoiler_outlist("", art_ptr->misc_magic, LIST_SEP); if (art_ptr->addition[0]) @@ -1635,27 +1546,24 @@ static void spoiler_print_art(obj_desc_list *art_ptr) * @param name1 生成するアーティファクトID * @return 生成が成功した場合TRUEを返す */ -static bool make_fake_artifact(object_type *o_ptr, int name1) +static bool make_fake_artifact(object_type *o_ptr, IDX name1) { - int i; - + OBJECT_IDX i; artifact_type *a_ptr = &a_info[name1]; - /* Ignore "empty" artifacts */ if (!a_ptr->name) return FALSE; /* Acquire the "kind" index */ i = lookup_kind(a_ptr->tval, a_ptr->sval); - /* Oops */ if (!i) return (FALSE); /* Create the artifact */ object_prep(o_ptr, i); /* Save the name */ - o_ptr->name1 = name1; + o_ptr->name1 = (byte_hack)name1; /* Extract the fields */ o_ptr->pval = a_ptr->pval; @@ -1678,18 +1586,16 @@ static bool make_fake_artifact(object_type *o_ptr, int name1) * @param fname 生成ファイル名 * @return なし */ -static void spoil_artifact(cptr fname) +static void spoil_artifact(concptr fname) { - int i, j; + int i; + IDX j; object_type forge; object_type *q_ptr; - obj_desc_list artifact; - char buf[1024]; - /* Build the filename */ path_build(buf, sizeof(buf), ANGBAND_DIR_USER, fname); @@ -1699,7 +1605,6 @@ static void spoil_artifact(cptr fname) /* Open the file */ fff = my_fopen(buf, "w"); - /* Oops */ if (!fff) { msg_print("Cannot create spoiler file."); @@ -1727,11 +1632,7 @@ static void spoil_artifact(cptr fname) /* We only want objects in the current group */ if (a_ptr->tval != group_artifact[i].tval) continue; - - /* Get local object */ q_ptr = &forge; - - /* Wipe the object */ object_wipe(q_ptr); /* Attempt to "forge" the artifact */ @@ -1752,7 +1653,6 @@ static void spoil_artifact(cptr fname) return; } - /* Message */ msg_print("Successfully created a spoiler file."); } @@ -1763,12 +1663,12 @@ static void spoil_artifact(cptr fname) * @param fname 生成ファイル名 * @return なし */ -static void spoil_mon_desc(cptr fname) +static void spoil_mon_desc(concptr fname) { int i, n = 0; u16b why = 2; - s16b *who; + MONRACE_IDX *who; char buf[1024]; @@ -1789,7 +1689,6 @@ static void spoil_mon_desc(cptr fname) /* Open the file */ fff = my_fopen(buf, "w"); - /* Oops */ if (!fff) { msg_print("Cannot create spoiler file."); @@ -1797,7 +1696,7 @@ static void spoil_mon_desc(cptr fname) } /* Allocate the "who" array */ - C_MAKE(who, max_r_idx, s16b); + C_MAKE(who, max_r_idx, MONRACE_IDX); /* Dump the header */ fprintf(fff, "Monster Spoilers for Hengband Version %d.%d.%d\n", @@ -1817,7 +1716,7 @@ static void spoil_mon_desc(cptr fname) monster_race *r_ptr = &r_info[i]; /* Use that monster */ - if (r_ptr->name) who[n++] = i; + if (r_ptr->name) who[n++] = (s16b)i; } /* Select the sort method */ @@ -1832,14 +1731,14 @@ static void spoil_mon_desc(cptr fname) { monster_race *r_ptr = &r_info[who[i]]; - cptr name = (r_name + r_ptr->name); + concptr name = (r_name + r_ptr->name); if (r_ptr->flags7 & (RF7_KAGE)) continue; /* Get the "name" */ /* - else if (r_ptr->flags1 & (RF1_QUESTOR)) + else if (r_ptr->flags3 & (RF3_NO_CONF)) { - sprintf(nam, "[Q] %s", name); + sprintf(nam, "[*] %s", name); } */ else if (r_ptr->flags1 & (RF1_UNIQUE)) @@ -1853,10 +1752,10 @@ static void spoil_mon_desc(cptr fname) /* Level */ - sprintf(lev, "%d", r_ptr->level); + sprintf(lev, "%d", (int)r_ptr->level); /* Rarity */ - sprintf(rar, "%d", r_ptr->rarity); + sprintf(rar, "%d", (int)r_ptr->rarity); /* Speed */ if (r_ptr->speed >= 110) @@ -1929,9 +1828,9 @@ static void spoil_mon_desc(cptr fname) * @param str 文字列参照ポインタ * @return なし */ -static void spoil_out(cptr str) +static void spoil_out(concptr str) { - cptr r; + concptr r; /* Line buffer */ static char roff_buf[256]; @@ -2015,9 +1914,9 @@ static void spoil_out(cptr str) #ifdef JP bool k_flag_local; bool iskanji_flag_local = FALSE; - cptr tail = str + (k_flag ? 2 : 1); + concptr tail = str + (k_flag ? 2 : 1); #else - cptr tail = str + 1; + concptr tail = str + 1; #endif for (; *tail; tail++) @@ -2097,7 +1996,7 @@ static void spoil_out(cptr str) * @param str 文字列参照ポインタ * @return なし */ -static void roff_func(byte attr, cptr str) +static void roff_func(TERM_COLOR attr, concptr str) { /* Unused */ (void)attr; @@ -2112,14 +2011,14 @@ static void roff_func(byte attr, cptr str) * @param fname ファイル名 * @return なし */ -static void spoil_mon_info(cptr fname) +static void spoil_mon_info(concptr fname) { char buf[1024]; int i, l, n = 0; - u32b flags1; + BIT_FLAGS flags1; u16b why = 2; - s16b *who; + MONRACE_IDX *who; /* Build the filename */ path_build(buf, sizeof(buf), ANGBAND_DIR_USER, fname); @@ -2130,7 +2029,6 @@ static void spoil_mon_info(cptr fname) /* Open the file */ fff = my_fopen(buf, "w"); - /* Oops */ if (!fff) { msg_print("Cannot create spoiler file."); @@ -2146,7 +2044,7 @@ static void spoil_mon_info(cptr fname) spoil_out("------------------------------------------\n\n"); /* Allocate the "who" array */ - C_MAKE(who, max_r_idx, s16b); + C_MAKE(who, max_r_idx, MONRACE_IDX); /* Scan the monsters */ for (i = 1; i < max_r_idx; i++) @@ -2154,7 +2052,7 @@ static void spoil_mon_info(cptr fname) monster_race *r_ptr = &r_info[i]; /* Use that monster */ - if (r_ptr->name) who[n++] = i; + if (r_ptr->name) who[n++] = (s16b)i; } /* Select the sort method */ @@ -2171,8 +2069,6 @@ static void spoil_mon_info(cptr fname) for (l = 0; l < n; l++) { monster_race *r_ptr = &r_info[who[l]]; - - /* Extract the flags */ flags1 = r_ptr->flags1; /* Prefix */ @@ -2216,7 +2112,7 @@ static void spoil_mon_info(cptr fname) spoil_out(buf); /* Level */ - sprintf(buf, "Lev:%d ", r_ptr->level); + sprintf(buf, "Lev:%d ", (int)r_ptr->level); spoil_out(buf); /* Rarity */ @@ -2393,7 +2289,7 @@ static void ang_sort_swap_evol_tree(vptr u, vptr v, int a, int b) * @param fname 出力ファイル名 * @return なし */ -static void spoil_mon_evol(cptr fname) +static void spoil_mon_evol(concptr fname) { char buf[1024]; monster_race *r_ptr; @@ -2409,7 +2305,6 @@ static void spoil_mon_evol(cptr fname) /* Open the file */ fff = my_fopen(buf, "w"); - /* Oops */ if (!fff) { msg_print("Cannot create spoiler file."); @@ -2491,25 +2386,16 @@ static void spoil_mon_evol(cptr fname) /* Trace the evolution tree */ r_ptr = &r_info[r_idx]; -#ifdef JP - fprintf(fff, "[%d]: %s (レベル%d, '%c')\n", r_idx, - r_name + r_ptr->name, r_ptr->level, r_ptr->d_char); -#else - fprintf(fff, "[%d]: %s (Level %d, '%c')\n", r_idx, - r_name + r_ptr->name, r_ptr->level, r_ptr->d_char); -#endif + fprintf(fff, _("[%d]: %s (レベル%d, '%c')\n", "[%d]: %s (Level %d, '%c')\n"), + r_idx, r_name + r_ptr->name, (int)r_ptr->level, r_ptr->d_char); + for (n = 1; r_ptr->next_exp; n++) { fprintf(fff, "%*s-(%ld)-> ", n * 2, "", (long int)r_ptr->next_exp); fprintf(fff, "[%d]: ", r_ptr->next_r_idx); r_ptr = &r_info[r_ptr->next_r_idx]; -#ifdef JP - fprintf(fff, "%s (レベル%d, '%c')\n", - r_name + r_ptr->name, r_ptr->level, r_ptr->d_char); -#else - fprintf(fff, "%s (Level %d, '%c')\n", - r_name + r_ptr->name, r_ptr->level, r_ptr->d_char); -#endif + fprintf(fff, _("%s (レベル%d, '%c')\n", "%s (Level %d, '%c')\n"), + r_name + r_ptr->name, (int)r_ptr->level, r_ptr->d_char); } /* End of evolution tree */ @@ -2527,7 +2413,6 @@ static void spoil_mon_evol(cptr fname) return; } - /* Message */ msg_print("Successfully created a spoiler file."); } @@ -2545,13 +2430,11 @@ extern void do_cmd_spoilers(void); */ void do_cmd_spoilers(void) { - /* Save the screen */ screen_save(); /* Interact */ while (1) { - /* Clear screen */ Term_clear(); /* Info */ @@ -2572,7 +2455,6 @@ void do_cmd_spoilers(void) { /* Escape */ case ESCAPE: - /* Restore the screen */ screen_load(); return; @@ -2601,14 +2483,12 @@ void do_cmd_spoilers(void) spoil_mon_evol("mon-evol.txt"); break; - /* Oops */ default: bell(); break; } - /* Flush messages */ - msg_print(NULL); + msg_erase(); } } @@ -2672,19 +2552,11 @@ static void spoiler_print_randart(object_type *o_ptr, obj_desc_list *art_ptr) /* Now deal with the description lists */ -#ifdef JP - spoiler_outlist("対:", art_ptr->slays, ITEM_SEP); - spoiler_outlist("武器属性:", art_ptr->brands, LIST_SEP); - spoiler_outlist("免疫:", art_ptr->immunities, ITEM_SEP); - spoiler_outlist("耐性:", art_ptr->resistances, ITEM_SEP); - spoiler_outlist("維持:", art_ptr->sustains, ITEM_SEP); -#else - spoiler_outlist("Slay", art_ptr->slays, ITEM_SEP); - spoiler_outlist("", art_ptr->brands, LIST_SEP); - spoiler_outlist("Immunity to", art_ptr->immunities, ITEM_SEP); - spoiler_outlist("Resist", art_ptr->resistances, ITEM_SEP); - spoiler_outlist("Sustain", art_ptr->sustains, ITEM_SEP); -#endif + spoiler_outlist(_("対:", "Slay"), art_ptr->slays, ITEM_SEP); + spoiler_outlist(_("武器属性:", ""), art_ptr->brands, LIST_SEP); + spoiler_outlist(_("免疫:", "Immunity to"), art_ptr->immunities, ITEM_SEP); + spoiler_outlist(_("耐性:", "Resist"), art_ptr->resistances, ITEM_SEP); + spoiler_outlist(_("維持:", "Sustain"), art_ptr->sustains, ITEM_SEP); spoiler_outlist("", art_ptr->misc_magic, LIST_SEP); /* Write out the possible activation at the primary indention level */ @@ -2725,7 +2597,7 @@ static void spoil_random_artifact_aux(object_type *o_ptr, int i) * @param fname 出力ファイル名 * @return なし */ -void spoil_random_artifact(cptr fname) +void spoil_random_artifact(concptr fname) { int i,j; @@ -2734,7 +2606,6 @@ void spoil_random_artifact(cptr fname) char buf[1024]; - /* Build the filename */ path_build(buf, sizeof(buf), ANGBAND_DIR_USER, fname); @@ -2744,7 +2615,6 @@ void spoil_random_artifact(cptr fname) /* Open the file */ fff = my_fopen(buf, "w"); - /* Oops */ if (!fff) { msg_print("Cannot create list file."); @@ -2796,7 +2666,6 @@ void spoil_random_artifact(cptr fname) return; } - /* Message */ msg_print("Successfully created a list file."); }