<ClCompile Include="..\..\src\spell\spells-hex.c" />\r
<ClCompile Include="..\..\src\spell\spells-launcher.c" />\r
<ClCompile Include="..\..\src\spell\spells-lite.c" />\r
+ <ClCompile Include="..\..\src\spell\spells-neighbor.c" />\r
<ClCompile Include="..\..\src\spell\spells-pet.c" />\r
<ClCompile Include="..\..\src\spell\spells-sight.c" />\r
<ClCompile Include="..\..\src\spell\spells-staff-only.c" />\r
<ClInclude Include="..\..\src\spell\spells-hex.h" />\r
<ClInclude Include="..\..\src\spell\spells-launcher.h" />\r
<ClInclude Include="..\..\src\spell\spells-lite.h" />\r
+ <ClInclude Include="..\..\src\spell\spells-neighbor.h" />\r
<ClInclude Include="..\..\src\spell\spells-pet.h" />\r
<ClInclude Include="..\..\src\spell\spells-sight.h" />\r
<ClInclude Include="..\..\src\spell\spells-staff-only.h" />\r
<ClCompile Include="..\..\src\spell\spells-beam.c">
<Filter>spell</Filter>
</ClCompile>
+ <ClCompile Include="..\..\src\spell\spells-neighbor.c">
+ <Filter>spell</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\cmd\cmd-basic.h">
<ClInclude Include="..\..\src\spell\spells-beam.h">
<Filter>spell</Filter>
</ClInclude>
+ <ClInclude Include="..\..\src\spell\spells-neighbor.h">
+ <Filter>spell</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\src\wall.bmp" />
spell/spells-hex.c spell/spells-hex.h \
spell/spells-launcher.c spell/spells-launcher.h \
spell/spells-lite.c spell/spells-lite.h \
+ spell/spells-neighbor.c spell/spells-neighbor.h \
spell/spells-object.c spell/spells-object.h \
spell/spells-pet.c spell/spells-pet.h \
spell/spells-sight.c spell/spells-sight.h \
#include "player/player-status.h"
#include "spell/spells-launcher.h"
#include "spell/spells-lite.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-sight.h"
#include "spell/spells-status.h"
#include "spell/spells-summon.h"
#include "spell/spells-teleport.h"
#include "spell/spells-type.h"
-#include "spell/spells2.h"
#include "util/util.h"
#include "view/display-main-window.h"
#include "spell/spells-hex.h"
#include "spell/spells-launcher.h"
#include "spell/spells-lite.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-object.h"
#include "spell/spells-sight.h"
#include "spell/spells-status.h"
#include "spell/spells-hex.h"
#include "spell/spells-launcher.h"
#include "spell/spells-lite.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-object.h"
#include "spell/spells-sight.h"
#include "spell/spells-status.h"
#include "spell/spells-summon.h"
#include "spell/spells-teleport.h"
#include "spell/spells-type.h"
-#include "spell/spells2.h"
#include "spell/spells3.h"
#include "store/rumor.h"
#include "util/util.h"
#include "spell/spells-floor.h"
#include "spell/spells-genocide.h"
#include "spell/spells-lite.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-sight.h"
#include "spell/spells-staff-only.h"
#include "spell/spells-status.h"
#include "spell/spells-summon.h"
#include "spell/spells-teleport.h"
-#include "spell/spells2.h"
#include "spell/spells3.h"
#include "util/util.h"
#include "view/display-main-window.h"
#include "spell/spells-floor.h"
#include "spell/spells-launcher.h"
#include "spell/spells-lite.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-sight.h"
#include "spell/spells-status.h"
#include "spell/spells-teleport.h"
#include "spell/spells-beam.h"
#include "spell/spells-launcher.h"
#include "spell/spells-lite.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-status.h"
#include "spell/spells-teleport.h"
#include "spell/spells-type.h"
#include "spell/spells-floor.h"
#include "spell/spells-hex.h"
#include "spell/spells-launcher.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-object.h"
#include "spell/spells-sight.h"
#include "spell/spells-status.h"
#include "spell/process-effect.h"
#include "spell/spells-hex.h"
#include "spell/spells-lite.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-sight.h"
#include "spell/spells-teleport.h"
#include "spell/spells-type.h"
-#include "spell/spells2.h"
/*!
* @brief RF4_SHRIEKの処理。叫び。 /
#include "view/display-main-window.h"
#include "spell/spells-launcher.h"
#include "spell/spells-lite.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-sight.h"
#include "spell/spells-teleport.h"
-#include "spell/spells2.h"
#include "spell/spells3.h"
#include "mspell/mspell-type.h"
#include "mspell/mspell-damage-calculator.h"
#include "spell/spells-floor.h"
#include "spell/spells-launcher.h"
#include "spell/spells-lite.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-object.h"
#include "spell/spells-status.h"
#include "spell/spells-summon.h"
#include "spell/spells-diceroll.h"
#include "spell/spells-floor.h"
#include "spell/spells-launcher.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-object.h"
#include "spell/spells-sight.h"
#include "spell/spells-status.h"
#include "spell/spells-diceroll.h"
#include "spell/spells-genocide.h"
#include "spell/spells-launcher.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-object.h"
#include "spell/spells-sight.h"
#include "spell/spells-status.h"
#include "spell/spells-execution.h"
#include "spell/spells-hex.h"
#include "spell/spells-launcher.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-sight.h"
#include "spell/spells-status.h"
#include "spell/spells-teleport.h"
#include "spell/spells-type.h"
-#include "spell/spells2.h"
#include "spell/spells3.h"
#include "spell/technic-info-table.h"
#include "util/util.h"
#include "spell/spells-genocide.h"
#include "spell/spells-lite.h"
#include "spell/spells-launcher.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-sight.h"
#include "spell/spells-status.h"
#include "spell/spells-type.h"
-#include "spell/spells2.h"
#include "spell/spells3.h"
/*!
#include "spell/spells-floor.h"
#include "spell/spells-launcher.h"
#include "spell/spells-lite.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-object.h"
#include "spell/spells-sight.h"
#include "spell/spells-status.h"
#include "spell/spells-floor.h"
#include "spell/spells-launcher.h"
#include "spell/spells-lite.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-sight.h"
#include "spell/spells-status.h"
#include "spell/spells-type.h"
-#include "spell/spells2.h"
#include "spell/spells3.h"
#include "util/util.h"
#include "view/display-main-window.h"
--- /dev/null
+#include "spell/spells-neighbor.h"
+#include "effect/effect-characteristics.h"
+#include "spell/process-effect.h"
+#include "spell/spells-type.h"
+
+/*!
+ * @brief \83h\83A\90¶\90¬\8f\88\97\9d(\83v\83\8c\83C\83\84\81[\92\86\90S\82É\8eü\88Í1\83}\83X) / Hooks -- affect adjacent grids (radius 1 ball attack)
+ * @param caster_ptr \83v\83\8c\81[\83\84\81[\82Ö\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
+ * @return \8dì\97p\82ª\8eÀ\8dÛ\82É\82 \82Á\82½\8fê\8d\87TRUE\82ð\95Ô\82·
+ */
+bool door_creation(player_type *caster_ptr, POSITION y, POSITION x)
+{
+ BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
+ return (project(caster_ptr, 0, 1, y, x, 0, GF_MAKE_DOOR, flg, -1));
+}
+
+/*!
+ * @brief \83g\83\89\83b\83v\90¶\90¬\8f\88\97\9d(\8bN\93_\82©\82ç\8eü\88Í1\83}\83X)
+ * @param caster_ptr \83v\83\8c\81[\83\84\81[\82Ö\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
+ * @param y \8bN\93_Y\8dÀ\95W
+ * @param x \8bN\93_X\8dÀ\95W
+ * @return \8dì\97p\82ª\8eÀ\8dÛ\82É\82 \82Á\82½\8fê\8d\87TRUE\82ð\95Ô\82·
+ */
+bool trap_creation(player_type *caster_ptr, POSITION y, POSITION x)
+{
+ BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
+ return (project(caster_ptr, 0, 1, y, x, 0, GF_MAKE_TRAP, flg, -1));
+}
+
+/*!
+ * @brief \90X\97Ñ\90¶\90¬\8f\88\97\9d(\83v\83\8c\83C\83\84\81[\92\86\90S\82É\8eü\88Í1\83}\83X)
+ * @param caster_ptr \83v\83\8c\81[\83\84\81[\82Ö\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
+ * @return \8dì\97p\82ª\8eÀ\8dÛ\82É\82 \82Á\82½\8fê\8d\87TRUE\82ð\95Ô\82·
+ */
+bool tree_creation(player_type *caster_ptr, POSITION y, POSITION x)
+{
+ BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
+ return (project(caster_ptr, 0, 1, y, x, 0, GF_MAKE_TREE, flg, -1));
+}
+
+/*!
+ * @brief \96\82\96@\82Ì\83\8b\81[\83\93\90¶\90¬\8f\88\97\9d(\83v\83\8c\83C\83\84\81[\92\86\90S\82É\8eü\88Í1\83}\83X)
+ * @param caster_ptr \83v\83\8c\81[\83\84\81[\82Ö\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
+ * @return \8dì\97p\82ª\8eÀ\8dÛ\82É\82 \82Á\82½\8fê\8d\87TRUE\82ð\95Ô\82·
+ */
+bool glyph_creation(player_type *caster_ptr, POSITION y, POSITION x)
+{
+ BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM;
+ return (project(caster_ptr, 0, 1, y, x, 0, GF_MAKE_GLYPH, flg, -1));
+}
+
+/*!
+ * @brief \95Ç\90¶\90¬\8f\88\97\9d(\83v\83\8c\83C\83\84\81[\92\86\90S\82É\8eü\88Í1\83}\83X)
+ * @param caster_ptr \83v\83\8c\81[\83\84\81[\82Ö\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
+ * @return \8dì\97p\82ª\8eÀ\8dÛ\82É\82 \82Á\82½\8fê\8d\87TRUE\82ð\95Ô\82·
+ */
+bool wall_stone(player_type *caster_ptr)
+{
+ BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
+ bool dummy = (project(caster_ptr, 0, 1, caster_ptr->y, caster_ptr->x, 0, GF_STONE_WALL, flg, -1));
+ caster_ptr->update |= (PU_FLOW);
+ caster_ptr->redraw |= (PR_MAP);
+ return dummy;
+}
+
+/*!
+ * @brief \83h\83A\94j\89ó\8f\88\97\9d(\83v\83\8c\83C\83\84\81[\92\86\90S\82É\8eü\88Í1\83}\83X)
+ * @param caster_ptr \83v\83\8c\81[\83\84\81[\82Ö\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
+ * @return \8dì\97p\82ª\8eÀ\8dÛ\82É\82 \82Á\82½\8fê\8d\87TRUE\82ð\95Ô\82·
+ */
+bool destroy_doors_touch(player_type *caster_ptr)
+{
+ BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
+ return (project(caster_ptr, 0, 1, caster_ptr->y, caster_ptr->x, 0, GF_KILL_DOOR, flg, -1));
+}
+
+/*!
+ * @brief \83g\83\89\83b\83v\89ð\8f\9c\8f\88\97\9d(\83v\83\8c\83C\83\84\81[\92\86\90S\82É\8eü\88Í1\83}\83X)
+ * @param caster_ptr \83v\83\8c\81[\83\84\81[\82Ö\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
+ * @return \8dì\97p\82ª\8eÀ\8dÛ\82É\82 \82Á\82½\8fê\8d\87TRUE\82ð\95Ô\82·
+ */
+bool disarm_traps_touch(player_type *caster_ptr)
+{
+ BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
+ return (project(caster_ptr, 0, 1, caster_ptr->y, caster_ptr->x, 0, GF_KILL_TRAP, flg, -1));
+}
+
+/*!
+ * @brief \83X\83\8a\81[\83v\83\82\83\93\83X\83^\81[\8f\88\97\9d(\83v\83\8c\83C\83\84\81[\92\86\90S\82É\8eü\88Í1\83}\83X)
+ * @param caster_ptr \83v\83\8c\81[\83\84\81[\82Ö\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
+ * @return \8dì\97p\82ª\8eÀ\8dÛ\82É\82 \82Á\82½\8fê\8d\87TRUE\82ð\95Ô\82·
+ */
+bool sleep_monsters_touch(player_type *caster_ptr)
+{
+ BIT_FLAGS flg = PROJECT_KILL | PROJECT_HIDE;
+ return (project(caster_ptr, 0, 1, caster_ptr->y, caster_ptr->x, caster_ptr->lev, GF_OLD_SLEEP, flg, -1));
+}
+
+/*!
+ * @brief \8e\80\8eÒ\95\9c\8a\88\8f\88\97\9d(\8bN\93_\82æ\82è\8eü\88Í5\83}\83X)
+ * @param caster_ptr \83v\83\8c\81[\83\84\81[\82Ö\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
+ * @param who \8fp\8eÒ\83\82\83\93\83X\83^\81[ID(0\82È\82ç\82Î\83v\83\8c\83C\83\84\81[)
+ * @param y \8bN\93_Y\8dÀ\95W
+ * @param x \8bN\93_X\8dÀ\95W
+ * @return \8dì\97p\82ª\8eÀ\8dÛ\82É\82 \82Á\82½\8fê\8d\87TRUE\82ð\95Ô\82·
+ */
+bool animate_dead(player_type *caster_ptr, MONSTER_IDX who, POSITION y, POSITION x)
+{
+ BIT_FLAGS flg = PROJECT_ITEM | PROJECT_HIDE;
+ return (project(caster_ptr, who, 5, y, x, 0, GF_ANIM_DEAD, flg, -1));
+}
--- /dev/null
+#pragma once
+
+#include "system/angband.h"
+
+bool door_creation(player_type *caster_ptr, POSITION y, POSITION x);
+bool trap_creation(player_type *caster_ptr, POSITION y, POSITION x);
+bool tree_creation(player_type *caster_ptr, POSITION y, POSITION x);
+bool glyph_creation(player_type *caster_ptr, POSITION y, POSITION x);
+bool wall_stone(player_type *caster_ptr);
+bool destroy_doors_touch(player_type *caster_ptr);
+bool disarm_traps_touch(player_type *caster_ptr);
+bool sleep_monsters_touch(player_type *caster_ptr);
+bool animate_dead(player_type *caster_ptr, MONSTER_IDX who, POSITION y, POSITION x);
#include "spell/spells-genocide.h"
#include "spell/spells-launcher.h"
#include "spell/spells-lite.h"
+#include "spell/spells-neighbor.h"
#include "spell/spells-sight.h"
#include "spell/spells-status.h"
#include "spell/spells-summon.h"
/*!
- * @brief ドア生成処理(プレイヤー中心に周囲1マス) / Hooks -- affect adjacent grids (radius 1 ball attack)
- * @param caster_ptr プレーヤーへの参照ポインタ
- * @return 作用が実際にあった場合TRUEを返す
- */
-bool door_creation(player_type *caster_ptr, POSITION y, POSITION x)
-{
- BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
- return (project(caster_ptr, 0, 1, y, x, 0, GF_MAKE_DOOR, flg, -1));
-}
-
-
-/*!
- * @brief トラップ生成処理(起点から周囲1マス)
- * @param caster_ptr プレーヤーへの参照ポインタ
- * @param y 起点Y座標
- * @param x 起点X座標
- * @return 作用が実際にあった場合TRUEを返す
- */
-bool trap_creation(player_type *caster_ptr, POSITION y, POSITION x)
-{
- BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
- return (project(caster_ptr, 0, 1, y, x, 0, GF_MAKE_TRAP, flg, -1));
-}
-
-
-/*!
- * @brief 森林生成処理(プレイヤー中心に周囲1マス)
- * @param caster_ptr プレーヤーへの参照ポインタ
- * @return 作用が実際にあった場合TRUEを返す
- */
-bool tree_creation(player_type *caster_ptr, POSITION y, POSITION x)
-{
- BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
- return (project(caster_ptr, 0, 1, y, x, 0, GF_MAKE_TREE, flg, -1));
-}
-
-
-/*!
- * @brief 魔法のルーン生成処理(プレイヤー中心に周囲1マス)
- * @param caster_ptr プレーヤーへの参照ポインタ
- * @return 作用が実際にあった場合TRUEを返す
- */
-bool glyph_creation(player_type *caster_ptr, POSITION y, POSITION x)
-{
- BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM;
- return (project(caster_ptr, 0, 1, y, x, 0, GF_MAKE_GLYPH, flg, -1));
-}
-
-
-/*!
- * @brief 壁生成処理(プレイヤー中心に周囲1マス)
- * @param caster_ptr プレーヤーへの参照ポインタ
- * @return 作用が実際にあった場合TRUEを返す
- */
-bool wall_stone(player_type *caster_ptr)
-{
- BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
- bool dummy = (project(caster_ptr, 0, 1, caster_ptr->y, caster_ptr->x, 0, GF_STONE_WALL, flg, -1));
- caster_ptr->update |= (PU_FLOW);
- caster_ptr->redraw |= (PR_MAP);
- return dummy;
-}
-
-
-/*!
- * @brief ドア破壊処理(プレイヤー中心に周囲1マス)
- * @param caster_ptr プレーヤーへの参照ポインタ
- * @return 作用が実際にあった場合TRUEを返す
- */
-bool destroy_doors_touch(player_type *caster_ptr)
-{
- BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
- return (project(caster_ptr, 0, 1, caster_ptr->y, caster_ptr->x, 0, GF_KILL_DOOR, flg, -1));
-}
-
-
-/*!
- * @brief トラップ解除処理(プレイヤー中心に周囲1マス)
- * @param caster_ptr プレーヤーへの参照ポインタ
- * @return 作用が実際にあった場合TRUEを返す
- */
-bool disarm_traps_touch(player_type *caster_ptr)
-{
- BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
- return (project(caster_ptr, 0, 1, caster_ptr->y, caster_ptr->x, 0, GF_KILL_TRAP, flg, -1));
-}
-
-
-/*!
- * @brief スリープモンスター処理(プレイヤー中心に周囲1マス)
- * @param caster_ptr プレーヤーへの参照ポインタ
- * @return 作用が実際にあった場合TRUEを返す
- */
-bool sleep_monsters_touch(player_type *caster_ptr)
-{
- BIT_FLAGS flg = PROJECT_KILL | PROJECT_HIDE;
- return (project(caster_ptr, 0, 1, caster_ptr->y, caster_ptr->x, caster_ptr->lev, GF_OLD_SLEEP, flg, -1));
-}
-
-
-/*!
- * @brief 死者復活処理(起点より周囲5マス)
- * @param caster_ptr プレーヤーへの参照ポインタ
- * @param who 術者モンスターID(0ならばプレイヤー)
- * @param y 起点Y座標
- * @param x 起点X座標
- * @return 作用が実際にあった場合TRUEを返す
- */
-bool animate_dead(player_type *caster_ptr, MONSTER_IDX who, POSITION y, POSITION x)
-{
- BIT_FLAGS flg = PROJECT_ITEM | PROJECT_HIDE;
- return (project(caster_ptr, who, 5, y, x, 0, GF_ANIM_DEAD, flg, -1));
-}
-
-
-/*!
* @brief 混沌招来処理
* @return 作用が実際にあった場合TRUEを返す
*/
#include "system/angband.h"
-bool wall_stone(player_type *caster_ptr);
void call_chaos(player_type* caster_ptr);
bool hypodynamic_bolt(player_type* caster_ptr, DIRECTION dir, HIT_POINT dam);
bool death_ray(player_type* caster_ptr, DIRECTION dir, PLAYER_LEVEL plev);
-bool door_creation(player_type *caster_ptr, POSITION y, POSITION x);
-bool trap_creation(player_type* caster_ptr, POSITION y, POSITION x);
-bool tree_creation(player_type* caster_ptr, POSITION y, POSITION x);
-bool glyph_creation(player_type* caster_ptr, POSITION y, POSITION x);
-bool destroy_doors_touch(player_type* caster_ptr);
-bool disarm_traps_touch(player_type* caster_ptr);
-bool animate_dead(player_type* caster_ptr, MONSTER_IDX who, POSITION y, POSITION x);
-bool sleep_monsters_touch(player_type* caster_ptr);
bool activate_ty_curse(player_type* target_ptr, bool stop_ty, int* count);
int activate_hi_summon(player_type* caster_ptr, POSITION y, POSITION x, bool can_pet);
void wall_breaker(player_type* caster_ptr);