OSDN Git Service

固定アーティファクトの発動は全部外部フラグ化し終わった。
authoriks <iks@0568b783-4c39-0410-ac80-bf13821ea2a2>
Tue, 29 Jan 2013 12:41:42 +0000 (12:41 +0000)
committeriks <iks@0568b783-4c39-0410-ac80-bf13821ea2a2>
Tue, 29 Jan 2013 12:41:42 +0000 (12:41 +0000)
lib/edit/a_info.txt
src/artifact.c
src/cmd6.c
src/defines.h
src/externs.h
src/init1.c
src/object1.c
src/spells3.c

index a635b70..9e483f8 100644 (file)
@@ -412,6 +412,7 @@ W:60:150:100:100000
 P:0:0d0:20:20:0
 F:SPEED | STEALTH | RES_NETHER |
 F:ACTIVATE | SHOW_MODS | INSTA_ART | XTRA_POWER | XTRA_H_RES
+U:CRIMSON
 D:$"-- In there, the whole town had turned into monsters' nest.
 D:$ This gun gotten by Echizen unexpectedly, 'Crimson', helped
 D:$ him in his missions, and it evolved into greater weapon
@@ -2739,6 +2740,7 @@ P:0:0d0:0:8:0
 F:SHOW_MODS | HIDE_TYPE | 
 F:SUST_STR | RES_FEAR | ACTIVATE | 
 F:INSTA_ART
+U:SCARE_AREA
 D:$A massive golden torque, made of innumerable strands of gold and steel 
 D:$intermingled, with great golden hounds set at either end.
 D:²«¶â¤È¹õ¹Ý¤Î̵¿ô¤Î¤è¤ê»å¤ÇÊԤ߾夲¤é¤ì¤¿½Å¸ü¤Ê¶â¤Î¼ó¾þ¤ê¤Ç¡¢
@@ -2752,6 +2754,7 @@ P:0:10d5:0:0:-20
 F:HIDE_TYPE | BLOWS | VORPAL | VAMPIRIC | SLAY_HUMAN |
 F:SHOW_MODS | SPEED | ACTIVATE | RES_DISEN | NO_TELE |
 F:DRAIN_EXP | AGGRAVATE | RES_DARK | RES_NETHER | TY_CURSE |
+U:MURAMASA
 D:$Muramasa the legendaly bracksmith forged this sword 'Muramasa'.
 D:$ It always wants more blood thirstily, although it already
 D:$ drained blood from many person.
@@ -2994,6 +2997,7 @@ I:40:20:2
 W:30:80:3:100000
 F:INT | WIS | CHR | SEARCH | INFRA | SEE_INVIS | ACTIVATE |
 F:HIDE_TYPE | INSTA_ART
+U:INROU
 D:Ëè½µ·îÍËÆü¤Î20:45¤ËÀäÂç¤ÊÎϤòȯ´ø¤¹¤ë¤é¤·¤¤¡£
 
 N:167:¡Ø³úÈøÅá¡Ù
@@ -3031,6 +3035,7 @@ I:21:4:3
 W:25:5:15:808
 P:0:1d2:-3:-7:6
 F:SEARCH | ACTIVATE | SHOW_MODS | HIDE_TYPE
+U:AGGRAVATE
 D:³ÑÃìÆóËܤθߤ¤¤Îü¤¬¡¢ºÙ¤¤Æì¤Ç·ë¤Ð¤ì¤Æ¤¤¤ë¡£
 D:Éð´ï¤È¤·¤Æ¤Ï¸«¤ë¤«¤é¤ËÉÏÁê¤À¤¬¡¢ ËɲФò¤½¤ÎǤ¤È¤¹¤ë±Ò»Î¤¿¤Á¤¬»È¤Ã¤¿¡¢
 D:ͳ½ïÀµ¤·¤¤Éð´ï¤À¤È¤¤¤ï¤ì¤Æ¤¤¤ë¡£
@@ -3405,6 +3410,7 @@ I:22:30:2
 W:70:12:250:180000
 P:0:8d4:8:8:8
 F:ACTIVATE | SHOW_MODS
+U:BLOODY_MOON
 
 N:200:¥À
 E:'Dasai'
index 2299e98..f064c56 100644 (file)
@@ -2567,6 +2567,42 @@ bool activate_random_artifact(object_type *o_ptr)
                        break;
                }
 
+               case ACT_SCARE_AREA:
+               {
+                       if (music_singing_any()) stop_singing();
+                       if (hex_spelling_any()) stop_hex_spell_all();
+#ifdef JP
+                       msg_print("¤¢¤Ê¤¿¤ÏÎ϶¯¤¤ÆÍÉ÷¤ò¿á¤­ÌĤ餷¤¿¡£¼þ°Ï¤ÎŨ¤¬¿Ì¤¨¾å¤Ã¤Æ¤¤¤ë!");
+#else
+                       msg_print("You wind a mighty blast; your enemies tremble!");
+#endif
+                       (void)turn_monsters((3 * p_ptr->lev / 2) + 10);
+                       o_ptr->timeout = randint0(40) + 40;
+                       break;
+               }
+
+               case ACT_AGGRAVATE:
+               {
+                       if (o_ptr->name1 == ART_HYOUSIGI)
+                       {
+#ifdef JP
+                               msg_print("Çï»ÒÌÚ¤òÂǤä¿¡£");
+#else
+                               msg_print("You beat Your wooden clappers.");
+#endif
+                       }
+                       else
+                       {
+#ifdef JP
+                               msg_format("%s¤ÏÉÔ²÷¤Êʪ²»¤òΩ¤Æ¤¿¡£", name);
+#else
+                               msg_format("The %s sounds an unpleasant noise.", name);
+#endif
+                       }
+                       aggravate_monsters(0);
+                       break;
+               }
+
                /* Activate for summoning / charming */
 
                case ACT_CHARM_ANIMAL:
@@ -3594,6 +3630,165 @@ bool activate_random_artifact(object_type *o_ptr)
                        break;
                }
 
+               case ACT_INROU:
+               {
+                       int count = 0, i;
+                       monster_type *m_ptr;
+#ifndef JP
+                       cptr kakusan = "";
+#endif
+                       if (summon_named_creature(0, py, px, MON_SUKE, PM_FORCE_PET))
+                       {
+#ifdef JP
+                               msg_print("¡Ø½õ¤µ¤ó¡Ù¤¬¸½¤ì¤¿¡£");
+#else
+                               msg_print("Suke-san apperars.");
+                               kakusan = "Suke-san";
+#endif
+                               count++;
+                       }
+                       if (summon_named_creature(0, py, px, MON_KAKU, PM_FORCE_PET))
+                       {
+#ifdef JP
+                               msg_print("¡Ø³Ê¤µ¤ó¡Ù¤¬¸½¤ì¤¿¡£");
+#else
+                               msg_print("Kaku-san appears.");
+                               kakusan = "Kaku-san";
+#endif
+                               count++;
+                       }
+                       if (!count)
+                       {
+                               for (i = m_max - 1; i > 0; i--)
+                               {
+                                       m_ptr = &m_list[i];
+                                       if (!m_ptr->r_idx) continue;
+                                       if (!((m_ptr->r_idx == MON_SUKE) || (m_ptr->r_idx == MON_KAKU))) continue;
+                                       if (!los(m_ptr->fy, m_ptr->fx, py, px)) continue;
+                                       if (!projectable(m_ptr->fy, m_ptr->fx, py, px)) continue;
+                                       count++;
+                                       break;
+                               }
+                       }
+
+                       if (count)
+                       {
+#ifdef JP
+                               msg_print("¡Ö¼Ô¤É¤â¡¢¤Ò¤«¤¨¤ª¤í¤¦¡ª¡ª¡ª¤³¤Î¤ªÊý¤ò¤É¤Ê¤¿¤È¤³¤³¤í¤¨¤ë¡£¡×");
+#else
+                               msg_format("%^s says 'WHO do you think this person is! Bow your head, down your knees!'", kakusan);
+#endif
+                               sukekaku = TRUE;
+                               stun_monsters(120);
+                               confuse_monsters(120);
+                               turn_monsters(120);
+                               stasis_monsters(120);
+                               sukekaku = FALSE;
+                       }
+                       else
+                       {
+#ifdef JP
+                               msg_print("¤·¤«¤·¡¢²¿¤âµ¯¤­¤Ê¤«¤Ã¤¿¡£");
+#else
+                               msg_print("Nothing happen.");
+#endif
+                       }
+                       o_ptr->timeout = randint0(150) + 150;
+                       break;
+               }
+
+               case ACT_MURAMASA:
+               {
+                       /* Only for Muramasa */
+                       if (o_ptr->name1 != ART_MURAMASA) return FALSE;
+#ifdef JP
+                       if (get_check("ËÜÅö¤Ë»È¤¤¤Þ¤¹¤«¡©"))
+#else
+                       if (get_check("Are you sure?!"))
+#endif
+                       {
+#ifdef JP
+                               msg_print("¼Àµ¤¬¿Ì¤¨¤¿¡¥¡¥¡¥");
+#else
+                               msg_print("The Muramasa pulsates...");
+#endif
+                               do_inc_stat(A_STR);
+                               if (one_in_(2))
+                               {
+#ifdef JP
+                                       msg_print("¼Àµ¤Ï²õ¤ì¤¿¡ª");
+#else
+                                       msg_print("The Muramasa is destroyed!");
+#endif
+                                       curse_weapon_object(TRUE, o_ptr);
+                               }
+                       }
+                       break;
+               }
+
+               case ACT_BLOODY_MOON:
+               {
+                       /* Only for Bloody Moon */
+                       if (o_ptr->name1 != ART_BLOOD) return FALSE;
+#ifdef JP
+                       msg_print("³ù¤¬ÌÀ¤ë¤¯µ±¤¤¤¿...");
+#else
+                       msg_print("Your scythe glows brightly!");
+#endif
+                       get_bloody_moon_flags(o_ptr);
+                       o_ptr->timeout = 3333;
+                       if (p_ptr->prace == RACE_ANDROID) calc_android_exp();
+                       p_ptr->update |= (PU_BONUS | PU_HP);
+                       break;
+               }
+
+               case ACT_CRIMSON:
+               {
+                       int num = 1;
+                       int i;
+                       int flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
+                       int tx, ty;
+
+                       /* Only for Crimson */
+                       if (o_ptr->name1 != ART_CRIMSON) return FALSE;
+
+#ifdef JP
+                       msg_print("¤»¤Ã¤«¤¯¤À¤«¤é¡Ø¥¯¥ê¥à¥¾¥ó¡Ù¤ò¤Ö¤Ã¤Ñ¤Ê¤¹¤¼¡ª");
+#else
+                       msg_print("I'll fire CRIMSON! SEKKAKUDAKARA!");
+#endif
+
+                       if (!get_aim_dir(&dir)) return FALSE;
+
+                       /* Use the given direction */
+                       tx = px + 99 * ddx[dir];
+                       ty = py + 99 * ddy[dir];
+
+                       /* Hack -- Use an actual "target" */
+                       if ((dir == 5) && target_okay())
+                       {
+                               tx = target_col;
+                               ty = target_row;
+                       }
+
+                       if (p_ptr->pclass == CLASS_ARCHER)
+                       {
+                               /* Extra shot at level 10 */
+                               if (p_ptr->lev >= 10) num++;
+
+                               /* Extra shot at level 30 */
+                               if (p_ptr->lev >= 30) num++;
+
+                               /* Extra shot at level 45 */
+                               if (p_ptr->lev >= 45) num++;
+                       }
+
+                       for (i = 0; i < num; i++)
+                               project(0, p_ptr->lev/20+1, ty, tx, p_ptr->lev*p_ptr->lev*6/50, GF_ROCKET, flg, -1);
+                       o_ptr->timeout = 15;
+                       break;
+               }
+
                default:
                {
 #ifdef JP
index 44e0555..735ca62 100644 (file)
@@ -4176,180 +4176,8 @@ static void do_cmd_activate_aux(int item)
                /* Choose effect */
                switch (o_ptr->name1)
                {
-                       case ART_CRIMSON:
-                       {
-                               int num = 1;
-                               int i;
-                               int flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
-                               int tx, ty;
-#ifdef JP
-                               msg_print("¤»¤Ã¤«¤¯¤À¤«¤é¡Ø¥¯¥ê¥à¥¾¥ó¡Ù¤ò¤Ö¤Ã¤Ñ¤Ê¤¹¤¼¡ª");
-#else
-                               msg_print("I'll fire CRIMSON! SEKKAKUDAKARA!");
-#endif
-
-                               if (!get_aim_dir(&dir)) return;
-
-                               /* Use the given direction */
-                               tx = px + 99 * ddx[dir];
-                               ty = py + 99 * ddy[dir];
-
-                               /* Hack -- Use an actual "target" */
-                               if ((dir == 5) && target_okay())
-                               {
-                                       tx = target_col;
-                                       ty = target_row;
-                               }
-
-                               if (p_ptr->pclass == CLASS_ARCHER)
-                               {
-                                       /* Extra shot at level 10 */
-                                       if (p_ptr->lev >= 10) num++;
-
-                                       /* Extra shot at level 30 */
-                                       if (p_ptr->lev >= 30) num++;
-
-                                       /* Extra shot at level 45 */
-                                       if (p_ptr->lev >= 45) num++;
-                               }
-
-                               for (i = 0; i < num; i++)
-                                       project(0, p_ptr->lev/20+1, ty, tx, p_ptr->lev*p_ptr->lev*6/50, GF_ROCKET, flg, -1);
-                               o_ptr->timeout = 15;
-                               break;
-                       }
-
-                       case ART_BOROMIR:
-                       {
-                               if (music_singing_any()) stop_singing();
-                               if (hex_spelling_any()) stop_hex_spell_all();
-#ifdef JP
-                               msg_print("¤¢¤Ê¤¿¤ÏÎ϶¯¤¤ÆÍÉ÷¤ò¿á¤­ÌĤ餷¤¿¡£¼þ°Ï¤ÎŨ¤¬¿Ì¤¨¾å¤Ã¤Æ¤¤¤ë!");
-#else
-                               msg_print("You wind a mighty blast; your enemies tremble!");
-#endif
-                               (void)turn_monsters((3 * p_ptr->lev / 2) + 10);
-                               o_ptr->timeout = randint0(40) + 40;
-                               break;
-                       }
-                       case ART_MURAMASA:
-                       {
-#ifdef JP
-                               if (get_check("ËÜÅö¤Ë»È¤¤¤Þ¤¹¤«¡©"))
-#else
-                               if (get_check("Are you sure?!"))
-#endif
-                               {
-#ifdef JP
-                                       msg_print("¼Àµ¤¬¿Ì¤¨¤¿¡¥¡¥¡¥");
-#else
-                                       msg_print("The Muramasa pulsates...");
-#endif
-                                       do_inc_stat(A_STR);
-                                       if (one_in_(2))
-                                       {
-#ifdef JP
-                                               msg_print("¼Àµ¤Ï²õ¤ì¤¿¡ª");
-#else
-                                               msg_print("The Muramasa is destroyed!");
-#endif
-                                               curse_weapon(TRUE, item);
-                                       }
-                               }
-                               break;
-                       }
-                       case ART_INROU:
-                       {
-                               int count = 0, i;
-                               monster_type *m_ptr;
-#ifndef JP
-                               cptr kakusan = "";
-#endif
-
-                               if (summon_named_creature(0, py, px, MON_SUKE, PM_FORCE_PET))
-                               {
-#ifdef JP
-                                       msg_print("¡Ø½õ¤µ¤ó¡Ù¤¬¸½¤ì¤¿¡£");
-#else
-                                       msg_print("Suke-san apperars.");
-                                       kakusan = "Suke-san";
-#endif
-                                       count++;
-                               }
-                               if (summon_named_creature(0, py, px, MON_KAKU, PM_FORCE_PET))
-                               {
-#ifdef JP
-                                       msg_print("¡Ø³Ê¤µ¤ó¡Ù¤¬¸½¤ì¤¿¡£");
-#else
-                                       msg_print("Kaku-san appears.");
-                                       kakusan = "Kaku-san";
-#endif
-                                       count++;
-                               }
-                               if (!count)
-                               {
-                                       for (i = m_max - 1; i > 0; i--)
-                                       {
-                                               m_ptr = &m_list[i];
-                                               if (!m_ptr->r_idx) continue;
-                                               if (!((m_ptr->r_idx == MON_SUKE) || (m_ptr->r_idx == MON_KAKU))) continue;
-                                               if (!los(m_ptr->fy, m_ptr->fx, py, px)) continue;
-                                               if (!projectable(m_ptr->fy, m_ptr->fx, py, px)) continue;
-                                               count++;
-                                               break;
-                                       }
-                               }
-
-                               if (count)
-                               {
-#ifdef JP
-                                       msg_print("¡Ö¼Ô¤É¤â¡¢¤Ò¤«¤¨¤ª¤í¤¦¡ª¡ª¡ª¤³¤Î¤ªÊý¤ò¤É¤Ê¤¿¤È¤³¤³¤í¤¨¤ë¡£¡×");
-#else
-                                       msg_format("%^s says 'WHO do you think this person is! Bow your head, down your knees!'", kakusan);
-#endif
-
-                                       sukekaku = TRUE;
-                                       stun_monsters(120);
-                                       confuse_monsters(120);
-                                       turn_monsters(120);
-                                       stasis_monsters(120);
-                                       sukekaku = FALSE;
-                               }
-                               else
-                               {
-#ifdef JP
-                                       msg_print("¤·¤«¤·¡¢²¿¤âµ¯¤­¤Ê¤«¤Ã¤¿¡£");
-#else
-                                       msg_print("Nothing happen.");
-#endif
-                               }
-                               o_ptr->timeout = randint0(150) + 150;
-                               break;
-                       }
-
-                       case ART_HYOUSIGI:
-                       {
-#ifdef JP
-                               msg_print("Çï»ÒÌÚ¤òÂǤä¿¡£");
-#else
-                               msg_print("You beat Your wooden clappers.");
-#endif
-                               aggravate_monsters(0);
-                               break;
-                       }
-                       case ART_BLOOD:
-                       {
-#ifdef JP
-                               msg_print("³ù¤¬ÌÀ¤ë¤¯µ±¤¤¤¿...");
-#else
-                               msg_print("Your scythe glows brightly!");
-#endif
-                               get_bloody_moon_flags(o_ptr);
-                               o_ptr->timeout = 3333;
-                               if (p_ptr->prace == RACE_ANDROID) calc_android_exp();
-                               p_ptr->update |= (PU_BONUS | PU_HP);
-                               break;
-                       }
+               default:
+                       break;
                }
 
                /* Window stuff */
index 2e91ddd..f890e8b 100644 (file)
 #define ACT_BANISH_EVIL         56
 #define ACT_GENOCIDE            57
 #define ACT_MASS_GENO           58
+#define ACT_SCARE_AREA          59
+#define ACT_AGGRAVATE           60
 /* 59 - 64 unused */
 #define ACT_CHARM_ANIMAL        65
 #define ACT_CHARM_UNDEAD        66
 #define ACT_LORE                134
 #define ACT_SHIKOFUMI           135
 /* 127 -> unused */
-#define ACT_FISHING             200
-
+#define ACT_FISHING             251
+#define ACT_INROU               252
+#define ACT_MURAMASA            253
+#define ACT_BLOODY_MOON         254
+#define ACT_CRIMSON             255
 
 /*** Object "tval" and "sval" codes ***/
 
index b49fa21..56b6bf2 100644 (file)
@@ -1264,6 +1264,7 @@ extern int fire_dam(int dam, cptr kb_str, int monspell);
 extern int cold_dam(int dam, cptr kb_str, int monspell);
 extern bool rustproof(void);
 extern bool curse_armor(void);
+extern bool curse_weapon_object(bool force, object_type *o_ptr);
 extern bool curse_weapon(bool force, int slot);
 extern bool brand_bolts(void);
 extern bool polymorph_monster(int y, int x);
index c661c11..c0bc33f 100644 (file)
@@ -867,6 +867,8 @@ struct k_info_activation_flag
        { "BANISH_EVIL", ACT_BANISH_EVIL },
        { "GENOCIDE", ACT_GENOCIDE },
        { "MASS_GENO", ACT_MASS_GENO },
+       { "SCARE_AREA", ACT_SCARE_AREA },
+       { "AGGRAVATE", ACT_AGGRAVATE },
 
        { "CHARM_ANIMAL", ACT_CHARM_ANIMAL },
        { "CHARM_UNDEAD", ACT_CHARM_UNDEAD },
@@ -936,6 +938,10 @@ struct k_info_activation_flag
        { "SHIKOFUMI", ACT_SHIKOFUMI },
 
        { "FISHING", ACT_FISHING },
+       { "INROU", ACT_INROU },
+       { "MURAMASA", ACT_MURAMASA },
+       { "BLOODY_MOON", ACT_BLOODY_MOON },
+       { "CRIMSON", ACT_CRIMSON },
 
        { NULL, 0 }
 };
index c155e39..fbd60c0 100644 (file)
@@ -456,7 +456,11 @@ cptr item_activation(object_type *o_ptr)
                                return "Ëõ»¦ : 500 ¥¿¡¼¥óËè";
                        case ACT_MASS_GENO:
                                return "¼þÊÕËõ»¦ : 1000 ¥¿¡¼¥óËè";
-
+                       case ACT_SCARE_AREA:
+                               return "¥â¥ó¥¹¥¿¡¼¶²¹² : 40+d40¥¿¡¼¥óËè";
+                       case ACT_AGGRAVATE:
+                               if (o_ptr->name1 == ART_HYOUSIGI) return "Çï»ÒÌÚ¤òÂǤÁ¤Ê¤é¤¹ : ¤¤¤Ä¤Ç¤â";
+                               return "¥â¥ó¥¹¥¿¡¼¤òÅܤ餻¤ë : ¤¤¤Ä¤Ç¤â";
                        case ACT_CHARM_ANIMAL:
                                return "ưʪ̥λ : 200 ¥¿¡¼¥óËè";
                        case ACT_CHARM_UNDEAD:
@@ -578,6 +582,14 @@ cptr item_activation(object_type *o_ptr)
                        /* Unique activation */
                        case ACT_FISHING:
                                return "Äà¤ê¤ò¤¹¤ë : ¤¤¤Ä¤Ç¤â";
+                       case ACT_INROU:
+                               return "Îã¤Î¥¢¥ì : 150+d150 ¥¿¡¼¥óËè";
+                       case ACT_MURAMASA:
+                               return "ÏÓÎϤξ徺 : ³ÎΨ50%¤Ç²õ¤ì¤ë";
+                       case ACT_BLOODY_MOON:
+                               return "°À­Êѹ¹ : 3333 ¥¿¡¼¥óËè";
+                       case ACT_CRIMSON:
+                               return "¥Õ¥¡¥¤¥¢¡ª : 15 ¥¿¡¼¥óËè";
 
                        default:
                                return "̤ÄêµÁ";
@@ -673,6 +685,11 @@ cptr item_activation(object_type *o_ptr)
                                return "genocide every 500 turns";
                        case ACT_MASS_GENO:
                                return "mass genocide every 1000 turns";
+                       case ACT_SCARE_AREA:
+                               return "frighten monsters every 40+d40 turns";
+                       case ACT_AGGRAVATE:
+                               if (o_ptr->name1 == ART_HYOUSIGI) return "beat wooden clappers every turn";
+                               return "aggravete monsters every turn";
 
                        case ACT_CHARM_ANIMAL:
                                return "charm animal every 200 turns";
@@ -805,6 +822,14 @@ cptr item_activation(object_type *o_ptr)
                        /* Unique activation */
                        case ACT_FISHING:
                                return "fishing : every time";
+                       case ACT_INROU:
+                               return "reveal your identity every 150+d150 turns";
+                       case ACT_MURAMASA:
+                               return "increase STR (destroyed 50%)";
+                       case ACT_BLOODY_MOON:
+                               return "change zokusei every 3333 turns";
+                       case ACT_CRIMSON:
+                               return "fire! every 15 turns";
 
                        default:
                                return "something undefined";
@@ -815,55 +840,13 @@ cptr item_activation(object_type *o_ptr)
        /* Some artifacts can be activated */
        switch (o_ptr->name1)
        {
-               case ART_CRIMSON:
-               {
-#ifdef JP
-                       return "¥Õ¥¡¥¤¥¢¡ª : 15 ¥¿¡¼¥óËè";
-#else
-                       return "fire! every 15 turns";
-#endif
-               }
-               case ART_BOROMIR:
-               {
-#ifdef JP
-                       return "¥â¥ó¥¹¥¿¡¼¶²¹² : 40+d40¥¿¡¼¥óËè";
-#else
-                       return "frighten monsters every 40+d40 turns";
-#endif
-               }
-               case ART_MURAMASA:
-               {
-#ifdef JP
-                       return "ÏÓÎϤξ徺 : ³ÎΨ50%¤Ç²õ¤ì¤ë";
-#else
-                       return "increase STR (destroyed 50%)";
-#endif
-               }
-               case ART_INROU:
-               {
-#ifdef JP
-                       return "Îã¤Î¥¢¥ì : 150+d150 ¥¿¡¼¥óËè";
-#else
-                       return "reveal your identity every 150+d150 turns";
-#endif
-               }
-               case ART_HYOUSIGI:
-               {
-#ifdef JP
-                       return "Çï»ÒÌÚ¤òÂǤÁ¤Ê¤é¤¹ : ¤¤¤Ä¤Ç¤â";
-#else
-                       return "beat wooden clappers every turn";
-#endif
-               }
-               case ART_BLOOD:
-               {
+               /* Nothing */
+       default:
 #ifdef JP
-                       return "°À­Êѹ¹ : 3333 ¥¿¡¼¥óËè";
+               return "̤ÄêµÁ";
 #else
-                       return "change zokusei every 3333 turns";
+               return "something undefined";
 #endif
-
-               }
        }
 
        if (object_is_smith(o_ptr))
index 93535da..232975f 100644 (file)
@@ -5298,22 +5298,14 @@ msg_format("
 /*
  * Curse the players weapon
  */
-bool curse_weapon(bool force, int slot)
+bool curse_weapon_object(bool force, object_type *o_ptr)
 {
        int i;
-
-       object_type *o_ptr;
-
        char o_name[MAX_NLEN];
 
-
-       /* Curse the weapon */
-       o_ptr = &inventory[slot];
-
        /* Nothing to curse */
        if (!o_ptr->k_idx) return (FALSE);
 
-
        /* Describe */
        object_desc(o_name, o_ptr, OD_OMIT_PREFIX);
 
@@ -5322,13 +5314,12 @@ bool curse_weapon(bool force, int slot)
        {
                /* Cool */
 #ifdef JP
-msg_format("%s¤¬%s¤òÊñ¤ß¹þ¤â¤¦¤È¤·¤¿¤¬¡¢%s¤Ï¤½¤ì¤òÄ·¤ÍÊÖ¤·¤¿¡ª",
-"¶²ÉݤΰŹõ¥ª¡¼¥é", "Éð´ï", o_name);
+               msg_format("%s¤¬%s¤òÊñ¤ß¹þ¤â¤¦¤È¤·¤¿¤¬¡¢%s¤Ï¤½¤ì¤òÄ·¤ÍÊÖ¤·¤¿¡ª",
+                               "¶²ÉݤΰŹõ¥ª¡¼¥é", "Éð´ï", o_name);
 #else
                msg_format("A %s tries to %s, but your %s resists the effects!",
-                          "terrible black aura", "surround your weapon", o_name);
+                               "terrible black aura", "surround your weapon", o_name);
 #endif
-
        }
 
        /* not artifact or failed save... */
@@ -5336,11 +5327,10 @@ msg_format("%s
        {
                /* Oops */
 #ifdef JP
-if (!force) msg_format("¶²ÉݤΰŹõ¥ª¡¼¥é¤¬¤¢¤Ê¤¿¤Î%s¤òÊñ¤ß¹þ¤ó¤À¡ª", o_name);
+               if (!force) msg_format("¶²ÉݤΰŹõ¥ª¡¼¥é¤¬¤¢¤Ê¤¿¤Î%s¤òÊñ¤ß¹þ¤ó¤À¡ª", o_name);
 #else
                if (!force) msg_format("A terrible black aura blasts your %s!", o_name);
 #endif
-
                chg_virtue(V_ENCHANT, -5);
 
                /* Shatter the weapon */
@@ -5356,7 +5346,6 @@ if (!force) msg_format("
                for (i = 0; i < TR_FLAG_SIZE; i++)
                        o_ptr->art_flags[i] = 0;
 
-
                /* Curse it */
                o_ptr->curse_flags = TRC_CURSED;
 
@@ -5377,6 +5366,12 @@ if (!force) msg_format("
        return (TRUE);
 }
 
+bool curse_weapon(bool force, int slot)
+{
+       /* Curse the weapon */
+       return curse_weapon_object(force, &inventory[slot]);
+}
+
 
 /*
  * Enchant some bolts