+ 1 /* type of curse */
+ 1]; /* sentinel NULL */
+ /* Additional ability or resistance */
+ char addition[80];
+
/* A string describing an artifact's activation */
cptr activation;
/*
* 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);
* 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];
/* 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];
}
/* 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];
/* 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];
/* 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];
*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];
* 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];
}
+/*
+ * 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];
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);
}
#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)
#endif
spoiler_outlist(buf, pval_ptr->pval_affects, ITEM_SEP);
}
-
+
/* Now deal with the description lists */
#ifdef JP