#define FLG_ARTIFACT 12
#define FLG_EGO 13
#define FLG_NAMELESS 14
-#define FLG_WANTED 15
-#define FLG_UNIQUE 16
-#define FLG_HUMAN 17
-#define FLG_UNREADABLE 18
-#define FLG_REALM1 19
-#define FLG_REALM2 20
-#define FLG_FIRST 21
-#define FLG_SECOND 22
-#define FLG_THIRD 23
-#define FLG_FOURTH 24
+#define FLG_RARE 15
+#define FLG_COMMON 16
+#define FLG_WANTED 17
+#define FLG_UNIQUE 18
+#define FLG_HUMAN 19
+#define FLG_UNREADABLE 20
+#define FLG_REALM1 21
+#define FLG_REALM2 22
+#define FLG_FIRST 23
+#define FLG_SECOND 24
+#define FLG_THIRD 25
+#define FLG_FOURTH 26
#define FLG_ITEMS 30
#define FLG_WEAPONS 31
#define KEY_COLLECTING "¼ý½¸Ãæ¤Î"
#endif
+#define KEY_UNAWARE "̤ȽÌÀ¤Î"
#define KEY_UNIDENTIFIED "̤´ÕÄê¤Î"
#define KEY_IDENTIFIED "´ÕÄêºÑ¤ß¤Î"
#define KEY_STAR_IDENTIFIED "*´ÕÄê*ºÑ¤ß¤Î"
#define KEY_ARTIFACT "¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È"
#define KEY_EGO "¥¨¥´"
#define KEY_NAMELESS "̵ÌäÎ"
-#define KEY_UNAWARE "̤ȽÌÀ¤Î"
+#define KEY_RARE "¥ì¥¢¤Ê"
+#define KEY_COMMON "¤¢¤ê¤Õ¤ì¤¿"
#define KEY_WANTED "¾Þ¶â¼ó¤Î"
#define KEY_UNIQUE "¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼¤Î"
#define KEY_HUMAN "¿Í´Ö¤Î"
#define KEY_ALL "all"
#define KEY_COLLECTING "collecting"
+#define KEY_UNAWARE "unaware"
#define KEY_UNIDENTIFIED "unidentified"
#define KEY_IDENTIFIED "identified"
#define KEY_STAR_IDENTIFIED "*identified*"
#define KEY_ARTIFACT "artifact"
#define KEY_EGO "ego"
#define KEY_NAMELESS "nameless"
-#define KEY_UNAWARE "unaware"
+#define KEY_RARE "rare"
+#define KEY_COMMON "common"
#define KEY_WANTED "wanted"
#define KEY_UNIQUE "unique monster's"
#define KEY_HUMAN "human"
if (MATCH_KEY(KEY_ALL)) ADD_FLG(FLG_ALL);
if (MATCH_KEY(KEY_COLLECTING)) ADD_FLG(FLG_COLLECTING);
+ if (MATCH_KEY(KEY_UNAWARE)) ADD_FLG(FLG_UNAWARE);
if (MATCH_KEY(KEY_UNIDENTIFIED)) ADD_FLG(FLG_UNIDENTIFIED);
if (MATCH_KEY(KEY_IDENTIFIED)) ADD_FLG(FLG_IDENTIFIED);
if (MATCH_KEY(KEY_STAR_IDENTIFIED)) ADD_FLG(FLG_STAR_IDENTIFIED);
if (MATCH_KEY(KEY_WORTHLESS)) ADD_FLG(FLG_WORTHLESS);
if (MATCH_KEY(KEY_EGO)) ADD_FLG(FLG_EGO);
if (MATCH_KEY(KEY_NAMELESS)) ADD_FLG(FLG_NAMELESS);
- if (MATCH_KEY(KEY_UNAWARE)) ADD_FLG(FLG_UNAWARE);
+ if (MATCH_KEY(KEY_RARE)) ADD_FLG(FLG_RARE);
+ if (MATCH_KEY(KEY_COMMON)) ADD_FLG(FLG_COMMON);
if (MATCH_KEY(KEY_WANTED)) ADD_FLG(FLG_WANTED);
if (MATCH_KEY(KEY_UNIQUE)) ADD_FLG(FLG_UNIQUE);
if (MATCH_KEY(KEY_HUMAN)) ADD_FLG(FLG_HUMAN);
/*
+ * Rare weapons/aromors
+ * including Blade of Chaos, Dragon armors, etc.
+ */
+static bool is_rare(object_type *o_ptr)
+{
+ switch(o_ptr->tval)
+ {
+ case TV_HAFTED:
+ if (o_ptr->sval == SV_MACE_OF_DISRUPTION ||
+ o_ptr->sval == SV_WIZSTAFF) return TRUE;
+ break;
+
+ case TV_POLEARM:
+ if (o_ptr->sval == SV_SCYTHE_OF_SLICING ||
+ o_ptr->sval == SV_DEATH_SCYTHE) return TRUE;
+ break;
+
+ case TV_SWORD:
+ if (o_ptr->sval == SV_BLADE_OF_CHAOS ||
+ o_ptr->sval == SV_DIAMOND_EDGE ||
+ o_ptr->sval == SV_DOKUBARI ||
+ o_ptr->sval == SV_HAYABUSA) return TRUE;
+ break;
+
+ case TV_SHIELD:
+ if (o_ptr->sval == SV_DRAGON_SHIELD ||
+ o_ptr->sval == SV_MIRROR_SHIELD) return TRUE;
+ break;
+
+ case TV_HELM:
+ if (o_ptr->sval == SV_DRAGON_HELM) return TRUE;
+ break;
+
+ case TV_BOOTS:
+ if (o_ptr->sval == SV_PAIR_OF_DRAGON_GREAVE) return TRUE;
+ break;
+
+ case TV_CLOAK:
+ if (o_ptr->sval == SV_ELVEN_CLOAK ||
+ o_ptr->sval == SV_ETHEREAL_CLOAK ||
+ o_ptr->sval == SV_SHADOW_CLOAK) return TRUE;
+ break;
+
+ case TV_GLOVES:
+ if (o_ptr->sval == SV_SET_OF_DRAGON_GLOVES) return TRUE;
+ break;
+
+ case TV_SOFT_ARMOR:
+ if (o_ptr->sval == SV_KUROSHOUZOKU ||
+ o_ptr->sval == SV_ABUNAI_MIZUGI) return TRUE;
+ break;
+
+ case TV_DRAG_ARMOR:
+ return TRUE;
+
+ default:
+ break;
+ }
+
+ /* Any others are not "rare" objects. */
+ return FALSE;
+}
+
+
+/*
* Convert string to lower case
*/
static void str_tolower(char *str)
bool name = TRUE;
#ifdef JP
+ /* ¥¨¥´Ì䬼ÙË⤫¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¡Ö^¡×¤ÏÉÕ¤±¤Ê¤¤ */
bool bol_mark = FALSE;
#else
+ /* We can always use the ^ mark in English */
bool bol_mark = TRUE;
#endif
* Register the ego type only.
*/
ego_item_type *e_ptr = &e_info[o_ptr->name2];
+#ifdef JP
+ /* ¥¨¥´ÌäˤϡÖ^¡×¥Þ¡¼¥¯¤¬»È¤¨¤ë */
+ sprintf(name_str, "^%s", e_name + e_ptr->name);
+#else
+ /* We ommit the basename and cannot use the ^ mark */
strcpy(name_str, e_name + e_ptr->name);
+#endif
/* Don't use the object description */
name = FALSE;
+
+ if (TV_WEAPON_BEGIN <= o_ptr->tval &&
+ o_ptr->tval <= TV_ARMOR_END)
+ {
+ /* Restrict to 'common' equipments */
+ if (!is_rare(o_ptr)) ADD_FLG(FLG_COMMON);
+ }
}
ADD_FLG(FLG_EGO);
if (IS_FLG(FLG_ALL)) ADD_KEY(KEY_ALL);
if (IS_FLG(FLG_COLLECTING)) ADD_KEY(KEY_COLLECTING);
+ if (IS_FLG(FLG_UNAWARE)) ADD_KEY(KEY_UNAWARE);
if (IS_FLG(FLG_UNIDENTIFIED)) ADD_KEY(KEY_UNIDENTIFIED);
if (IS_FLG(FLG_IDENTIFIED)) ADD_KEY(KEY_IDENTIFIED);
if (IS_FLG(FLG_STAR_IDENTIFIED)) ADD_KEY(KEY_STAR_IDENTIFIED);
- if (IS_FLG(FLG_UNAWARE)) ADD_KEY(KEY_UNAWARE);
if (IS_FLG(FLG_BOOSTED)) ADD_KEY(KEY_BOOSTED);
if (IS_FLG(FLG_MORE_DICE))
if (IS_FLG(FLG_HUMAN)) ADD_KEY(KEY_HUMAN);
if (IS_FLG(FLG_WORTHLESS)) ADD_KEY(KEY_WORTHLESS);
if (IS_FLG(FLG_NAMELESS)) ADD_KEY(KEY_NAMELESS);
+ if (IS_FLG(FLG_RARE)) ADD_KEY(KEY_RARE);
+ if (IS_FLG(FLG_COMMON)) ADD_KEY(KEY_COMMON);
if (IS_FLG(FLG_EGO)) ADD_KEY(KEY_EGO);
if (IS_FLG(FLG_ARTIFACT)) ADD_KEY(KEY_ARTIFACT);
int j;
cptr ptr = entry->name;
+ /*** Unaware items ***/
+ if (IS_FLG(FLG_UNAWARE) && object_aware_p(o_ptr))
+ return FALSE;
+
/*** Unidentified ***/
if (IS_FLG(FLG_UNIDENTIFIED)
&& (object_known_p(o_ptr) || (o_ptr->ident & IDENT_SENSE)))
}
}
- /*** Unaware items ***/
- if (IS_FLG(FLG_UNAWARE) && object_aware_p(o_ptr))
+ /*** Rere equpiments ***/
+ if (IS_FLG(FLG_RARE) && !is_rare(o_ptr))
+ return FALSE;
+
+ /*** Common equpiments ***/
+ if (IS_FLG(FLG_COMMON) && is_rare(o_ptr))
return FALSE;
/*** Wanted monster's corpse/skeletons ***/
if (IS_FLG(FLG_COLLECTING))
before_str[before_n++] = "¼ý½¸Ãæ¤Ç´û¤Ë»ý¤Ã¤Æ¤¤¤ë¥¹¥í¥Ã¥È¤Ë¤Þ¤È¤á¤é¤ì¤ë";
+ /*** Unaware items ***/
+ if (IS_FLG(FLG_UNAWARE))
+ before_str[before_n++] = "̤´ÕÄê¤Ç¤½¤Î¸ú²Ì¤âȽÌÀ¤·¤Æ¤¤¤Ê¤¤";
+
/*** Unidentified ***/
if (IS_FLG(FLG_UNIDENTIFIED))
before_str[before_n++] = "̤´ÕÄê¤Î";
body_str = "ÁõÈ÷";
}
- /*** Unaware items ***/
- if (IS_FLG(FLG_UNAWARE))
- before_str[before_n++] = "̤´ÕÄê¤Ç¤½¤Î¸ú²Ì¤âȽÌÀ¤·¤Æ¤¤¤Ê¤¤";
+ /*** Rare equpiments ***/
+ if (IS_FLG(FLG_RARE))
+ {
+ before_str[before_n++] = "¥É¥é¥´¥óÁõÈ÷¤ä¥«¥ª¥¹¡¦¥Ö¥ì¡¼¥ÉÅù¤ò´Þ¤àÄÁ¤·¤¤";
+ body_str = "ÁõÈ÷";
+ }
+
+ /*** Common equpiments ***/
+ if (IS_FLG(FLG_COMMON))
+ {
+ before_str[before_n++] = "¤¢¤ê¤Õ¤ì¤¿(¥É¥é¥´¥óÁõÈ÷¤ä¥«¥ª¥¹¡¦¥Ö¥ì¡¼¥ÉÅù¤ÎÄÁ¤·¤¤Êª¤Ç¤Ï¤Ê¤¤)";
+ body_str = "ÁõÈ÷";
+ }
/*** Wanted monster's corpse/skeletons ***/
if (IS_FLG(FLG_WANTED))
if (IS_FLG(FLG_COLLECTING))
which_str[which_n++] = "can be absorbed into an existing inventory slot";
+ /*** Unaware items ***/
+ if (IS_FLG(FLG_UNAWARE))
+ {
+ before_str[before_n++] = "unidentified";
+ whose_str[whose_n++] = "basic abilities are not known";
+ }
+
/*** Unidentified ***/
if (IS_FLG(FLG_UNIDENTIFIED))
before_str[before_n++] = "unidentified";
if (IS_FLG(FLG_STAR_IDENTIFIED))
before_str[before_n++] = "fully identified";
+ /*** Rare equpiments ***/
+ if (IS_FLG(FLG_RARE))
+ {
+ before_str[before_n++] = "very rare";
+ body_str = "equipments";
+ after_str[after_n++] = "such like Dragon armors, Blades of Chaos, etc.";
+ }
+
+ /*** Common equpiments ***/
+ if (IS_FLG(FLG_COMMON))
+ {
+ before_str[before_n++] = "relatively common";
+ body_str = "equipments";
+ after_str[after_n++] = "compared to very rare Dragon armors, Blades of Chaos, etc.";
+ }
+
/*** Worthless items ***/
if (IS_FLG(FLG_WORTHLESS))
{
which_str[which_n++] = "is neither ego-item nor artifact";
}
- /*** Unaware items ***/
- if (IS_FLG(FLG_UNAWARE))
- {
- before_str[before_n++] = "unidentified";
- whose_str[whose_n++] = "basic abilities are not known";
- }
-
/*** Dice boosted (weapon of slaying) ***/
if (IS_FLG(FLG_BOOSTED))
{
REM_FLG(i);
}
+ /* You can use only one flag in rare/common */
+ else if (FLG_RARE <= flg && flg <= FLG_COMMON)
+ {
+ int i;
+ for (i = FLG_RARE; i <= FLG_COMMON; i++)
+ REM_FLG(i);
+ }
+
if (add) ADD_FLG(flg);
else REM_FLG(flg);
#define EC_OK_ARTIFACT 47
#define EC_OK_EGO 48
#define EC_OK_NAMELESS 49
-#define EC_OK_WANTED 50
-#define EC_OK_UNIQUE 51
-#define EC_OK_HUMAN 52
-#define EC_OK_UNREADABLE 53
-#define EC_OK_REALM1 54
-#define EC_OK_REALM2 55
-#define EC_OK_FIRST 56
-#define EC_OK_SECOND 57
-#define EC_OK_THIRD 58
-#define EC_OK_FOURTH 59
-#define EC_KK_WEAPONS 60
-#define EC_KK_FAVORITE 61
-#define EC_KK_ARMORS 62
-#define EC_KK_MISSILES 63
-#define EC_KK_DEVICES 64
-#define EC_KK_LIGHTS 65
-#define EC_KK_JUNKS 66
-#define EC_KK_SPELLBOOKS 67
-#define EC_KK_SHIELDS 68
-#define EC_KK_BOWS 69
-#define EC_KK_RINGS 70
-#define EC_KK_AMULETS 71
-#define EC_KK_SUITS 72
-#define EC_KK_CLOAKS 73
-#define EC_KK_HELMS 74
-#define EC_KK_GLOVES 75
-#define EC_KK_BOOTS 76
+#define EC_OK_RARE 50
+#define EC_OK_COMMON 51
+#define EC_OK_WANTED 52
+#define EC_OK_UNIQUE 53
+#define EC_OK_HUMAN 54
+#define EC_OK_UNREADABLE 55
+#define EC_OK_REALM1 56
+#define EC_OK_REALM2 57
+#define EC_OK_FIRST 58
+#define EC_OK_SECOND 59
+#define EC_OK_THIRD 60
+#define EC_OK_FOURTH 61
+#define EC_KK_WEAPONS 62
+#define EC_KK_FAVORITE 63
+#define EC_KK_ARMORS 64
+#define EC_KK_MISSILES 65
+#define EC_KK_DEVICES 66
+#define EC_KK_LIGHTS 67
+#define EC_KK_JUNKS 68
+#define EC_KK_SPELLBOOKS 69
+#define EC_KK_SHIELDS 70
+#define EC_KK_BOWS 71
+#define EC_KK_RINGS 72
+#define EC_KK_AMULETS 73
+#define EC_KK_SUITS 74
+#define EC_KK_CLOAKS 75
+#define EC_KK_HELMS 76
+#define EC_KK_GLOVES 77
+#define EC_KK_BOOTS 78
/* Manu names */
#define MN_ARTIFACT "¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È (ÁõÈ÷)"
#define MN_EGO "¥¨¥´ (ÁõÈ÷)"
#define MN_NAMELESS "̵ÌäΠ(ÁõÈ÷)"
+#define MN_RARE "¥ì¥¢¤Ê (ÁõÈ÷)"
+#define MN_COMMON "¤¢¤ê¤Õ¤ì¤¿ (ÁõÈ÷)"
#define MN_WANTED "¾Þ¶â¼ó¤Î (»àÂÎ)"
#define MN_UNIQUE "¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼¤Î (»àÂÎ)"
#define MN_HUMAN "¿Í´Ö¤Î (»àÂÎ)"
#define MN_ARTIFACT "artifact (equipments)"
#define MN_EGO "ego (equipments)"
#define MN_NAMELESS "nameless (equipments)"
+#define MN_RARE "rare (equipments)"
+#define MN_COMMON "common (equipments)"
#define MN_WANTED "wanted (corpse)"
#define MN_UNIQUE "unique (corpse)"
#define MN_HUMAN "human (corpse)"
{MN_ARTIFACT, 1, -1, EC_OK_ARTIFACT},
{MN_EGO, 1, -1, EC_OK_EGO},
{MN_NAMELESS, 1, -1, EC_OK_NAMELESS},
+ {MN_RARE, 1, -1, EC_OK_RARE},
+ {MN_COMMON, 1, -1, EC_OK_COMMON},
{MN_WANTED, 1, -1, EC_OK_WANTED},
{MN_UNIQUE, 1, -1, EC_OK_UNIQUE},
{MN_HUMAN, 1, -1, EC_OK_HUMAN},
case EC_OK_ARTIFACT: toggle_keyword(tb, FLG_ARTIFACT); break;
case EC_OK_EGO: toggle_keyword(tb, FLG_EGO); break;
case EC_OK_NAMELESS: toggle_keyword(tb, FLG_NAMELESS); break;
+ case EC_OK_RARE: toggle_keyword(tb, FLG_RARE); break;
+ case EC_OK_COMMON: toggle_keyword(tb, FLG_COMMON); break;
case EC_OK_WANTED: toggle_keyword(tb, FLG_WANTED); break;
case EC_OK_UNIQUE: toggle_keyword(tb, FLG_UNIQUE); break;
case EC_OK_HUMAN: toggle_keyword(tb, FLG_HUMAN); break;