#include "angband.h"
#include "floor.h"
+#include "grid.h"
#include "melee.h"
#include "sort.h"
#include "player-move.h"
#include "player-move.h"
#include "object-broken.h"
#include "object-flavor.h"
+#include "shoot.h"
/*!
* @brief フロア脱出時に出戻りが不可能だった場合に警告を加える処理
extern bool cave_player_teleportable_bold(POSITION y, POSITION x, BIT_FLAGS mode);
extern bool is_open(FEAT_IDX feat);
-/* cmd1.c */
-extern HIT_POINT critical_shot(WEIGHT weight, int plus_ammo, int plus_bow, HIT_POINT dam);
-extern void search(void);
-extern void py_pickup_aux(OBJECT_IDX o_idx);
-extern void carry(bool pickup);
-extern bool pattern_seq(POSITION c_y, POSITION c_x, POSITION n_y, POSITION n_x);
-extern bool player_can_enter(FEAT_IDX feature, BIT_FLAGS16 mode);
-extern bool move_player_effect(POSITION ny, POSITION nx, BIT_FLAGS mpe_mode);
-extern bool trap_can_be_ignored(FEAT_IDX feat);
-extern void move_player(DIRECTION dir, bool do_pickup, bool break_trap);
-extern void run_step(DIRECTION dir);
-#ifdef TRAVEL
-extern void travel_step(void);
-#endif
-
/* cmd2.c */
extern bool cmd_limit_cast(player_type *creature_ptr);
extern bool cmd_limit_arena(player_type *creature_ptr);
return have_flag(f_info[feat].flags, FF_CLOSE) && (feat != feat_state(feat, FF_CLOSE));
}
+/*!
+ * @brief プレイヤーが地形踏破可能かを返す
+ * @param feature 判定したい地形ID
+ * @param mode 移動に関するオプションフラグ
+ * @return 移動可能ならばTRUEを返す
+ */
+bool player_can_enter(FEAT_IDX feature, BIT_FLAGS16 mode)
+{
+ feature_type *f_ptr = &f_info[feature];
+
+ if (p_ptr->riding) return monster_can_cross_terrain(feature, &r_info[current_floor_ptr->m_list[p_ptr->riding].r_idx], mode | CEM_RIDING);
+
+ if (have_flag(f_ptr->flags, FF_PATTERN))
+ {
+ if (!(mode & CEM_P_CAN_ENTER_PATTERN)) return FALSE;
+ }
+
+ if (have_flag(f_ptr->flags, FF_CAN_FLY) && p_ptr->levitation) return TRUE;
+ if (have_flag(f_ptr->flags, FF_CAN_SWIM) && p_ptr->can_swim) return TRUE;
+ if (have_flag(f_ptr->flags, FF_CAN_PASS) && p_ptr->pass_wall) return TRUE;
+
+ if (!have_flag(f_ptr->flags, FF_MOVE)) return FALSE;
+
+ return TRUE;
+}
+
extern bool is_glyph_grid(grid_type *g_ptr);
extern bool is_explosive_rune_grid(grid_type *g_ptr);
+extern bool player_can_enter(FEAT_IDX feature, BIT_FLAGS16 mode);
+
/*!
* マス構造体のspecial要素を利用する地形かどうかを判定するマクロ / Is this feature has special meaning (except floor_id) with g_ptr->special?
*/
}
}
-
-/*!
- * @brief プレイヤーが地形踏破可能かを返す
- * @param feature 判定したい地形ID
- * @param mode 移動に関するオプションフラグ
- * @return 移動可能ならばTRUEを返す
- */
-bool player_can_enter(FEAT_IDX feature, BIT_FLAGS16 mode)
-{
- feature_type *f_ptr = &f_info[feature];
-
- if (p_ptr->riding) return monster_can_cross_terrain(feature, &r_info[current_floor_ptr->m_list[p_ptr->riding].r_idx], mode | CEM_RIDING);
-
- if (have_flag(f_ptr->flags, FF_PATTERN))
- {
- if (!(mode & CEM_P_CAN_ENTER_PATTERN)) return FALSE;
- }
-
- if (have_flag(f_ptr->flags, FF_CAN_FLY) && p_ptr->levitation) return TRUE;
- if (have_flag(f_ptr->flags, FF_CAN_SWIM) && p_ptr->can_swim) return TRUE;
- if (have_flag(f_ptr->flags, FF_CAN_PASS) && p_ptr->pass_wall) return TRUE;
-
- if (!have_flag(f_ptr->flags, FF_MOVE)) return FALSE;
-
- return TRUE;
-}
-
-
/*!
* @brief 移動に伴うプレイヤーのステータス変化処理
* @param ny 移動先Y座標
extern void disturb(bool stop_search, bool flush_output);
+extern void move_player(DIRECTION dir, bool do_pickup, bool break_trap);
+extern void run_step(DIRECTION dir);
+extern bool move_player_effect(POSITION ny, POSITION nx, BIT_FLAGS mpe_mode);
+extern void py_pickup_aux(OBJECT_IDX o_idx);
+extern bool pattern_seq(POSITION c_y, POSITION c_x, POSITION n_y, POSITION n_x);
+extern bool trap_can_be_ignored(FEAT_IDX feat);
+extern void search(void);
+extern void carry(bool pickup);
+#ifdef TRAVEL
+extern void travel_step(void);
+#endif
/* Types of pattern tiles */
#define NOT_PATTERN_TILE -1
#include "player-status.h"
#include "feature.h"
#include "spells.h"
+#include "grid.h"
/*!
* @brief 剣術の各処理を行う
#pragma once
+extern HIT_POINT critical_shot(WEIGHT weight, int plus_ammo, int plus_bow, HIT_POINT dam);
extern ENERGY bow_energy(OBJECT_SUBTYPE_VALUE sval);
extern int bow_tmul(OBJECT_SUBTYPE_VALUE sval);