OSDN Git Service

アーティファクトスポイラー生成時に, 追加耐性と追加能力の有無を記すように変更.
authornothere <nothere@0568b783-4c39-0410-ac80-bf13821ea2a2>
Wed, 7 May 2003 14:52:24 +0000 (14:52 +0000)
committernothere <nothere@0568b783-4c39-0410-ac80-bf13821ea2a2>
Wed, 7 May 2003 14:52:24 +0000 (14:52 +0000)
TObandより移植.

src/wizard1.c

index cc2b37b..7f56d61 100644 (file)
@@ -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