From: nothere Date: Wed, 7 May 2003 14:52:24 +0000 (+0000) Subject: アーティファクトスポイラー生成時に, 追加耐性と追加能力の有無を記すように変更. X-Git-Tag: v2.1.2~1566 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=fb75d161bc1bfb50a2132c39ee1b46bb8c001481;p=hengband%2Fhengband.git アーティファクトスポイラー生成時に, 追加耐性と追加能力の有無を記すように変更. TObandより移植. --- diff --git a/src/wizard1.c b/src/wizard1.c index cc2b37b49..7f56d610f 100644 --- a/src/wizard1.c +++ b/src/wizard1.c @@ -952,6 +952,9 @@ typedef struct + 1 /* type of curse */ + 1]; /* sentinel NULL */ + /* Additional ability or resistance */ + char addition[80]; + /* A string describing an artifact's activation */ cptr activation; @@ -1021,7 +1024,7 @@ static cptr *spoiler_flag_aux(const u32b art_flags[TR_FLAG_SIZE], /* * Acquire a "basic" description "The Cloak of Death [1,+10]" */ -static void analyze_general (object_type *o_ptr, char *desc_ptr) +static void analyze_general(object_type *o_ptr, char *desc_ptr) { /* Get a "useful" description of the object */ object_desc_store(desc_ptr, o_ptr, TRUE, 1); @@ -1032,7 +1035,7 @@ static void analyze_general (object_type *o_ptr, char *desc_ptr) * List "player traits" altered by an artifact's pval. These include stats, * speed, infravision, tunneling, stealth, searching, and extra attacks. */ -static void analyze_pval (object_type *o_ptr, pval_info_type *p_ptr) +static void analyze_pval(object_type *o_ptr, pval_info_type *p_ptr) { u32b flgs[TR_FLAG_SIZE]; @@ -1087,7 +1090,7 @@ static void analyze_pval (object_type *o_ptr, pval_info_type *p_ptr) /* Note the slaying specialties of a weapon */ -static void analyze_slay (object_type *o_ptr, cptr *slay_list) +static void analyze_slay(object_type *o_ptr, cptr *slay_list) { u32b flgs[TR_FLAG_SIZE]; @@ -1101,7 +1104,7 @@ static void analyze_slay (object_type *o_ptr, cptr *slay_list) } /* Note an object's elemental brands */ -static void analyze_brand (object_type *o_ptr, cptr *brand_list) +static void analyze_brand(object_type *o_ptr, cptr *brand_list) { u32b flgs[TR_FLAG_SIZE]; @@ -1116,7 +1119,7 @@ static void analyze_brand (object_type *o_ptr, cptr *brand_list) /* Note the resistances granted by an object */ -static void analyze_resist (object_type *o_ptr, cptr *resist_list) +static void analyze_resist(object_type *o_ptr, cptr *resist_list) { u32b flgs[TR_FLAG_SIZE]; @@ -1131,7 +1134,7 @@ static void analyze_resist (object_type *o_ptr, cptr *resist_list) /* Note the immunities granted by an object */ -static void analyze_immune (object_type *o_ptr, cptr *immune_list) +static void analyze_immune(object_type *o_ptr, cptr *immune_list) { u32b flgs[TR_FLAG_SIZE]; @@ -1144,9 +1147,9 @@ static void analyze_immune (object_type *o_ptr, cptr *immune_list) *immune_list = NULL; } -/* Note which stats an object sustains */ -static void analyze_sustains (object_type *o_ptr, cptr *sustain_list) +/* Note which stats an object sustains */ +static void analyze_sustains(object_type *o_ptr, cptr *sustain_list) { u32b flgs[TR_FLAG_SIZE]; @@ -1183,7 +1186,7 @@ static void analyze_sustains (object_type *o_ptr, cptr *sustain_list) * Note miscellaneous powers bestowed by an artifact such as see invisible, * free action, permanent light, etc. */ -static void analyze_misc_magic (object_type *o_ptr, cptr *misc_list) +static void analyze_misc_magic(object_type *o_ptr, cptr *misc_list) { u32b flgs[TR_FLAG_SIZE]; @@ -1268,13 +1271,51 @@ static void analyze_misc_magic (object_type *o_ptr, cptr *misc_list) } +/* + * Note additional ability and/or resistance of fixed artifacts + */ +static void analyze_addition(object_type *o_ptr, char *addition) +{ + artifact_type *a_ptr = &a_info[o_ptr->name1]; + + /* Init */ + strcpy(addition, ""); + +#ifdef JP + if ((a_ptr->gen_flags & TRG_XTRA_POWER) && (a_ptr->gen_flags & TRG_XTRA_H_RES)) strcat(addition, "ǽÎÏandÂÑÀ­"); + 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ÂÑÀ­)"); + } + 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ǽÎÏ)"); + } + 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 +} /* * Determine the minimum depth an artifact can appear, its rarity, its weight, * and its value in gold pieces */ -static void analyze_misc (object_type *o_ptr, char *misc_desc) +static void analyze_misc(object_type *o_ptr, char *misc_desc) { artifact_type *a_ptr = &a_info[o_ptr->name1]; @@ -1296,23 +1337,15 @@ static void analyze_misc (object_type *o_ptr, char *misc_desc) static void object_analyze(object_type *o_ptr, obj_desc_list *desc_ptr) { analyze_general(o_ptr, desc_ptr->description); - analyze_pval(o_ptr, &desc_ptr->pval_info); - analyze_brand(o_ptr, desc_ptr->brands); - analyze_slay(o_ptr, desc_ptr->slays); - analyze_immune(o_ptr, desc_ptr->immunities); - analyze_resist(o_ptr, desc_ptr->resistances); - analyze_sustains(o_ptr, desc_ptr->sustains); - analyze_misc_magic(o_ptr, desc_ptr->misc_magic); - + analyze_addition(o_ptr, desc_ptr->addition); analyze_misc(o_ptr, desc_ptr->misc_desc); - desc_ptr->activation = item_activation(o_ptr); } @@ -1487,27 +1520,27 @@ static void spoiler_print_art(obj_desc_list *art_ptr) #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("", art_ptr->misc_magic, LIST_SEP); + if (art_ptr->addition[0]) + { +#ifdef JP + fprintf(fff, "%sÄɲÃ: %s\n", INDENT1, art_ptr->addition); +#else + fprintf(fff, "%sAdditional %s\n", INDENT1, art_ptr->addition); +#endif + } /* Write out the possible activation at the primary indention level */ if (art_ptr->activation) @@ -2263,7 +2296,7 @@ static void spoiler_print_randart(object_type *o_ptr, obj_desc_list *art_ptr) #endif spoiler_outlist(buf, pval_ptr->pval_affects, ITEM_SEP); } - + /* Now deal with the description lists */ #ifdef JP