OSDN Git Service

[Refactor] #40634 Separated muramasa.c/h from activation-switcher.c
authorHourier <hourier@users.sourceforge.jp>
Wed, 19 Aug 2020 04:46:07 +0000 (13:46 +0900)
committerHourier <hourier@users.sourceforge.jp>
Wed, 19 Aug 2020 04:46:07 +0000 (13:46 +0900)
Hengband/Hengband/Hengband.vcxproj
Hengband/Hengband/Hengband.vcxproj.filters
src/Makefile.am
src/object-activation/activation-switcher.c
src/specific-object/muramasa.c [new file with mode: 0644]
src/specific-object/muramasa.h [new file with mode: 0644]

index 2d85f5d..e209763 100644 (file)
     <ClCompile Include="..\..\src\save\player-writer.c" />\r
     <ClCompile Include="..\..\src\save\save-util.c" />\r
     <ClCompile Include="..\..\src\specific-object\death-crimson.c" />\r
+    <ClCompile Include="..\..\src\specific-object\muramasa.c" />\r
     <ClCompile Include="..\..\src\spell-kind\blood-curse.c" />\r
     <ClCompile Include="..\..\src\spell-kind\spells-enchant.c" />\r
     <ClCompile Include="..\..\src\spell-kind\spells-equipment.c" />\r
     <ClInclude Include="..\..\src\save\player-writer.h" />\r
     <ClInclude Include="..\..\src\save\save-util.h" />\r
     <ClInclude Include="..\..\src\specific-object\death-crimson.h" />\r
+    <ClInclude Include="..\..\src\specific-object\muramasa.h" />\r
     <ClInclude Include="..\..\src\spell-kind\blood-curse.h" />\r
     <ClInclude Include="..\..\src\spell-kind\spells-enchant.h" />\r
     <ClInclude Include="..\..\src\spell-kind\spells-equipment.h" />\r
index 40eba0b..09cf124 100644 (file)
     <ClCompile Include="..\..\src\object-activation\activation-resistance.c">
       <Filter>object-activation</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\specific-object\muramasa.c">
+      <Filter>specific-object</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\src\combat\shoot.h">
     <ClInclude Include="..\..\src\object-activation\activation-resistance.h">
       <Filter>object-activation</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\specific-object\muramasa.h">
+      <Filter>specific-object</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\..\src\wall.bmp" />
index de90766..392b373 100644 (file)
@@ -675,6 +675,7 @@ hengband_SOURCES = \
        specific-object/chest.c specific-object/chest.h \
        specific-object/death-crimson.c specific-object/death-crimson.h \
        specific-object/death-scythe.c specific-object/death-scythe.h \
+       specific-object/muramasa.c specific-object/muramasa.h \
        specific-object/torch.c specific-object/torch.h \
        \
        spell/process-effect.c spell/process-effect.h \
index 5a1121c..bde80c5 100644 (file)
@@ -61,6 +61,7 @@
 #include "player/special-defense-types.h"
 #include "racial/racial-android.h"
 #include "specific-object/death-crimson.h"
+#include "specific-object/muramasa.h"
 #include "spell-kind/earthquake.h"
 #include "spell-kind/magic-item-recharger.h"
 #include "spell-kind/spells-beam.h"
@@ -298,6 +299,15 @@ bool activate_escape(player_type *user_ptr)
     }
 }
 
+bool activate_teleport_level(player_type *user_ptr)
+{
+    if (!get_check(_("本当に他の階にテレポートしますか?", "Are you sure? (Teleport Level)")))
+        return FALSE;
+
+    teleport_level(user_ptr, 0);
+    return TRUE;
+}
+
 bool switch_activation(player_type *user_ptr, object_type *o_ptr, const activation_type *const act_ptr, concptr name)
 {
     switch (act_ptr->index) {
@@ -654,11 +664,7 @@ bool switch_activation(player_type *user_ptr, object_type *o_ptr, const activati
         (void)project(user_ptr, 0, 8, user_ptr->y, user_ptr->x, (randint1(100) + 200) * 2, GF_HOLY_FIRE, PROJECT_KILL | PROJECT_ITEM | PROJECT_GRID, -1);
         return TRUE;
     case ACT_TELEPORT_LEVEL:
-        if (!get_check(_("本当に他の階にテレポートしますか?", "Are you sure? (Teleport Level)")))
-            return FALSE;
-
-        teleport_level(user_ptr, 0);
-        return TRUE;
+        return activate_teleport_level(user_ptr);
     case ACT_STRAIN_HASTE:
         msg_format(_("%sはあなたの体力を奪った...", "The %s drains your vitality..."), name);
         take_hit(user_ptr, DAMAGE_LOSELIFE, damroll(3, 8), _("加速した疲労", "the strain of haste"), -1);
@@ -670,20 +676,7 @@ bool switch_activation(player_type *user_ptr, object_type *o_ptr, const activati
         mitokohmon(user_ptr);
         return TRUE;
     case ACT_MURAMASA:
-        if (o_ptr->name1 != ART_MURAMASA)
-            return FALSE;
-
-        if (!get_check(_("本当に使いますか?", "Are you sure?!")))
-            return TRUE;
-
-        msg_print(_("村正が震えた...", "The Muramasa pulsates..."));
-        do_inc_stat(user_ptr, A_STR);
-        if (one_in_(2)) {
-            msg_print(_("村正は壊れた!", "The Muramasa is destroyed!"));
-            curse_weapon_object(user_ptr, TRUE, o_ptr);
-        }
-
-        return TRUE;
+        return activate_muramasa(user_ptr, o_ptr);
     case ACT_BLOODY_MOON:
         if (o_ptr->name1 != ART_BLOOD)
             return FALSE;
diff --git a/src/specific-object/muramasa.c b/src/specific-object/muramasa.c
new file mode 100644 (file)
index 0000000..0d710f8
--- /dev/null
@@ -0,0 +1,25 @@
+#include "specific-object/muramasa.h"
+#include "core/asking-player.h"
+#include "art-definition/art-sword-types.h"
+#include "spell/spells-object.h"
+#include "status/base-status.h"
+#include "system/object-type-definition.h"
+#include "view/display-messages.h"
+
+bool activate_muramasa(player_type *user_ptr, object_type *o_ptr)
+{
+    if (o_ptr->name1 != ART_MURAMASA)
+        return FALSE;
+
+    if (!get_check(_("\96{\93\96\82É\8eg\82¢\82Ü\82·\82©\81H", "Are you sure?!")))
+        return TRUE;
+
+    msg_print(_("\91º\90³\82ª\90k\82¦\82½\81D\81D\81D", "The Muramasa pulsates..."));
+    do_inc_stat(user_ptr, A_STR);
+    if (one_in_(2)) {
+        msg_print(_("\91º\90³\82Í\89ó\82ê\82½\81I", "The Muramasa is destroyed!"));
+        curse_weapon_object(user_ptr, TRUE, o_ptr);
+    }
+
+    return TRUE;
+}
diff --git a/src/specific-object/muramasa.h b/src/specific-object/muramasa.h
new file mode 100644 (file)
index 0000000..2d74821
--- /dev/null
@@ -0,0 +1,5 @@
+#pragma once
+
+#include "system/angband.h"
+
+bool activate_muramasa(player_type *user_ptr, object_type *o_ptr);