case SV_WAND_DRAGON_BREATH: {
HIT_POINT dam;
- EFFECT_ID typ;
+ spell_type typ;
switch (randint1(5)) {
case 1:
}
BIT_FLAGS flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
- EFFECT_ID typ[4][2] = { { INVEN_HEAD, GF_OLD_CONF }, { INVEN_LARM, GF_OLD_SLEEP }, { INVEN_HANDS, GF_TURN_ALL }, { INVEN_FEET, GF_OLD_SLOW } };
+ spell_type typ[4][2] = { { INVEN_HEAD, GF_OLD_CONF }, { INVEN_LARM, GF_OLD_SLEEP }, { INVEN_HANDS, GF_TURN_ALL }, { INVEN_FEET, GF_OLD_SLOW } };
/* Some cursed armours gives an extra effect */
for (int j = 0; j < 4; j++) {
* Perhaps we should affect doors?
* </pre>
*/
-bool affect_feature(player_type *caster_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, EFFECT_ID typ)
+bool affect_feature(player_type *caster_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, spell_type typ)
{
floor_type *floor_ptr = caster_ptr->current_floor_ptr;
grid_type *g_ptr = &floor_ptr->grid_array[y][x];
#include "system/angband.h"
-bool affect_feature(player_type *caster_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, EFFECT_ID typ);
+bool affect_feature(player_type *caster_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, spell_type typ);
* @param typ 効果属性 / Type of damage to apply to monsters (and objects)
* @return 何か一つでも効力があればTRUEを返す / TRUE if any "effects" of the projection were observed, else FALSE
*/
-bool affect_item(player_type *caster_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, EFFECT_ID typ)
+bool affect_item(player_type *caster_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, spell_type typ)
{
grid_type *g_ptr = &caster_ptr->current_floor_ptr->grid_array[y][x];
#include "system/angband.h"
-bool affect_item(player_type *caster_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, EFFECT_ID typ);
+bool affect_item(player_type *caster_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, spell_type typ);
* @param see_s_msg TRUEならばメッセージを表示する
* @return なし
*/
-static void substitute_effect_monster(effect_monster_type *em_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, EFFECT_ID effect_type, BIT_FLAGS flag, bool see_s_msg)
+static void substitute_effect_monster(effect_monster_type *em_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, spell_type effect_type, BIT_FLAGS flag, bool see_s_msg)
{
em_ptr->who = who;
em_ptr->r = r;
* @param see_s_msg TRUEならばメッセージを表示する
* @return なし
*/
-effect_monster_type *initialize_effect_monster(player_type *caster_ptr, effect_monster_type *em_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, EFFECT_ID effect_type, BIT_FLAGS flag, bool see_s_msg)
+effect_monster_type *initialize_effect_monster(player_type *caster_ptr, effect_monster_type *em_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, spell_type effect_type, BIT_FLAGS flag, bool see_s_msg)
{
substitute_effect_monster(em_ptr, who, r, y, x, dam, effect_type, flag, see_s_msg);
POSITION y;
POSITION x;
HIT_POINT dam;
- EFFECT_ID effect_type;
+ spell_type effect_type;
BIT_FLAGS flag;
bool see_s_msg;
} effect_monster_type;
-effect_monster_type *initialize_effect_monster(player_type *caster_ptr, effect_monster_type *em_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, EFFECT_ID effect_type, BIT_FLAGS flag, bool see_s_msg);
+effect_monster_type *initialize_effect_monster(player_type *caster_ptr, effect_monster_type *em_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, spell_type effect_type, BIT_FLAGS flag, bool see_s_msg);
* @return 何か一つでも効力があればTRUEを返す / TRUE if any "effects" of the projection were observed, else FALSE
*/
bool affect_monster(
- player_type *caster_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, EFFECT_ID effect_type, BIT_FLAGS flag, bool see_s_msg)
+ player_type *caster_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, spell_type effect_type, BIT_FLAGS flag, bool see_s_msg)
{
effect_monster_type tmp_effect;
effect_monster_type *em_ptr = initialize_effect_monster(caster_ptr, &tmp_effect, who, r, y, x, dam, effect_type, flag, see_s_msg);
#include "system/angband.h"
#include "effect/effect-monster-util.h"
-bool affect_monster(player_type *caster_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, EFFECT_ID typ, BIT_FLAGS flag, bool see_s_msg);
+bool affect_monster(player_type *caster_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, spell_type typ, BIT_FLAGS flag, bool see_s_msg);
MONSTER_IDX who;
HIT_POINT dam;
- EFFECT_ID effect_type;
+ spell_type effect_type;
BIT_FLAGS flag;
int monspell;
} effect_player_type;
* @return 初期化後の構造体ポインタ
*/
static effect_player_type *initialize_effect_player(
- effect_player_type *ep_ptr, MONSTER_IDX who, HIT_POINT dam, EFFECT_ID effect_type, BIT_FLAGS flag, int monspell)
+ effect_player_type *ep_ptr, MONSTER_IDX who, HIT_POINT dam, spell_type effect_type, BIT_FLAGS flag, int monspell)
{
ep_ptr->rlev = 0;
ep_ptr->m_ptr = NULL;
* @param monspell 効果元のモンスター魔法ID
* @return 何か一つでも効力があればTRUEを返す / TRUE if any "effects" of the projection were observed, else FALSE
*/
-bool affect_player(MONSTER_IDX who, player_type *target_ptr, concptr who_name, int r, POSITION y, POSITION x, HIT_POINT dam, EFFECT_ID effect_type,
+bool affect_player(MONSTER_IDX who, player_type *target_ptr, concptr who_name, int r, POSITION y, POSITION x, HIT_POINT dam, spell_type effect_type,
BIT_FLAGS flag, int monspell, project_func project)
{
effect_player_type tmp_effect;
#include "system/angband.h"
typedef bool (*project_func)(
- player_type *caster_ptr, MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT dam, EFFECT_ID typ, BIT_FLAGS flag, int monspell);
+ player_type *caster_ptr, MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT dam, spell_type typ, BIT_FLAGS flag, int monspell);
-bool affect_player(MONSTER_IDX who, player_type *target_ptr, concptr who_name, int r, POSITION y, POSITION x, HIT_POINT dam, EFFECT_ID typ, BIT_FLAGS flag,
+bool affect_player(MONSTER_IDX who, player_type *target_ptr, concptr who_name, int r, POSITION y, POSITION x, HIT_POINT dam, spell_type typ, BIT_FLAGS flag,
int monspell, project_func project);
* @return 何か一つでも効力があればTRUEを返す / TRUE if any "effects" of the
* projection were observed, else FALSE
*/
-bool project(player_type *caster_ptr, const MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, const HIT_POINT dam, const EFFECT_ID typ, BIT_FLAGS flag,
+bool project(player_type *caster_ptr, const MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, const HIT_POINT dam, const spell_type typ, BIT_FLAGS flag,
const int monspell)
{
int dist;
#include "system/angband.h"
-bool project(player_type *caster_ptr, const MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, const HIT_POINT dam, const EFFECT_ID typ, BIT_FLAGS flag,
+bool project(player_type *caster_ptr, const MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, const HIT_POINT dam, const spell_type typ, BIT_FLAGS flag,
const int monspell);
* @param num 配置したい数
* @return 規定数通りに生成に成功したらTRUEを返す。
*/
-void alloc_object(player_type *owner_ptr, dap_type set, EFFECT_ID typ, int num)
+void alloc_object(player_type *owner_ptr, dap_type set, spell_type typ, int num)
{
POSITION y = 0;
POSITION x = 0;
typedef enum dap_type dap_type;
bool alloc_stairs(player_type *owner_ptr, FEAT_IDX feat, int num, int walls);
-void alloc_object(player_type *owner_ptr, dap_type set, EFFECT_ID typ, int num);
+void alloc_object(player_type *owner_ptr, dap_type set, spell_type typ, int num);
if (!add_text(&v_ptr->text, head, s, FALSE))
return 7;
} else if (buf[0] == 'X') {
- EFFECT_ID typ, rat, hgt, wid;
+ spell_type typ, rat, hgt, wid;
if (4 != sscanf(buf + 2, "%d:%d:%d:%d", &typ, &rat, &hgt, &wid))
return 1;
case PURGATORY_FLAME: {
int num = damroll(3, 9);
for (int k = 0; k < num; k++) {
- EFFECT_ID typ = one_in_(2) ? GF_FIRE : one_in_(3) ? GF_NETHER : GF_PLASMA;
+ spell_type typ = one_in_(2) ? GF_FIRE : one_in_(3) ? GF_NETHER : GF_PLASMA;
int attempts = 1000;
while (attempts--) {
scatter(caster_ptr, &y, &x, caster_ptr->y, caster_ptr->x, 4, PROJECT_NONE);
continue;
BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
- EFFECT_ID typ = mbe_info[md_ptr->r_ptr->blow[i].effect].explode_type;
+ spell_type typ = mbe_info[md_ptr->r_ptr->blow[i].effect].explode_type;
DICE_NUMBER d_dice = md_ptr->r_ptr->blow[i].d_dice;
DICE_SID d_side = md_ptr->r_ptr->blow[i].d_side;
HIT_POINT damage = damroll(d_dice, d_side);
* @param target_type モンスターからモンスターへ撃つならMONSTER_TO_MONSTER、モンスターからプレイヤーならMONSTER_TO_PLAYER
* @return なし
*/
-void bolt(player_type *target_ptr, MONSTER_IDX m_idx, POSITION y, POSITION x, EFFECT_ID typ, int dam_hp, int monspell, int target_type)
+void bolt(player_type *target_ptr, MONSTER_IDX m_idx, POSITION y, POSITION x, spell_type typ, int dam_hp, int monspell, int target_type)
{
BIT_FLAGS flg = 0;
switch (target_type) {
* @param target_type モンスターからモンスターへ撃つならMONSTER_TO_MONSTER、モンスターからプレイヤーならMONSTER_TO_PLAYER
* @return なし
*/
-void beam(player_type *target_ptr, MONSTER_IDX m_idx, POSITION y, POSITION x, EFFECT_ID typ, int dam_hp, int monspell, int target_type)
+void beam(player_type *target_ptr, MONSTER_IDX m_idx, POSITION y, POSITION x, spell_type typ, int dam_hp, int monspell, int target_type)
{
BIT_FLAGS flg = 0;
switch (target_type) {
* @return なし
*/
void breath(
- player_type *target_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, EFFECT_ID typ, int dam_hp, POSITION rad, bool breath, int monspell, int target_type)
+ player_type *target_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, spell_type typ, int dam_hp, POSITION rad, bool breath, int monspell, int target_type)
{
monster_type *m_ptr = &target_ptr->current_floor_ptr->m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
bool summon_possible(player_type *target_ptr, POSITION y1, POSITION x1);
bool raise_possible(player_type *target_ptr, monster_type *m_ptr);
bool spell_is_inate(SPELL_IDX spell);
-void beam(player_type *target_ptr, MONSTER_IDX m_idx, POSITION y, POSITION x, EFFECT_ID typ, int dam_hp, int monspell, int target_type);
-void bolt(player_type *target_ptr, MONSTER_IDX m_idx, POSITION y, POSITION x, EFFECT_ID typ, int dam_hp, int monspell, int target_type);
+void beam(player_type *target_ptr, MONSTER_IDX m_idx, POSITION y, POSITION x, spell_type typ, int dam_hp, int monspell, int target_type);
+void bolt(player_type *target_ptr, MONSTER_IDX m_idx, POSITION y, POSITION x, spell_type typ, int dam_hp, int monspell, int target_type);
void breath(
- player_type *target_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, EFFECT_ID typ, int dam_hp, POSITION rad, bool breath, int monspell, int target_type);
+ player_type *target_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, spell_type typ, int dam_hp, POSITION rad, bool breath, int monspell, int target_type);
* @param is_friend TRUEならば、プレイヤーを巻き込む時にブレスの判定をFALSEにする。
* @return ブレスを直接当てられるならばTRUEを返す
*/
-bool breath_direct(player_type *master_ptr, POSITION y1, POSITION x1, POSITION y2, POSITION x2, POSITION rad, EFFECT_ID typ, bool is_friend)
+bool breath_direct(player_type *master_ptr, POSITION y1, POSITION x1, POSITION y2, POSITION x2, POSITION rad, spell_type typ, bool is_friend)
{
BIT_FLAGS flg;
switch (typ) {
typedef struct monster_type monster_type;
bool direct_beam(player_type *target_ptr, POSITION y1, POSITION x1, POSITION y2, POSITION x2, monster_type *m_ptr);
-bool breath_direct(player_type *master_ptr, POSITION y1, POSITION x1, POSITION y2, POSITION x2, POSITION rad, EFFECT_ID typ, bool is_friend);
+bool breath_direct(player_type *master_ptr, POSITION y1, POSITION x1, POSITION y2, POSITION x2, POSITION rad, spell_type typ, bool is_friend);
void get_project_point(player_type *target_ptr, POSITION sy, POSITION sx, POSITION *ty, POSITION *tx, BIT_FLAGS flg);
bool dispel_check_monster(player_type *target_ptr, MONSTER_IDX m_idx, MONSTER_IDX t_idx);
bool dispel_check(player_type *creature_ptr, MONSTER_IDX m_idx);
* @param max 算出した最大ダメージを返すポインタ
* @return なし
*/
-static void spell_damcalc(player_type *target_ptr, monster_type *m_ptr, EFFECT_ID typ, HIT_POINT dam, int *max)
+static void spell_damcalc(player_type *target_ptr, monster_type *m_ptr, spell_type typ, HIT_POINT dam, int *max)
{
monster_race *r_ptr = &r_info[m_ptr->r_idx];
int rlev = r_ptr->level;
* @param max 算出した最大ダメージを返すポインタ
* @return なし
*/
-void spell_damcalc_by_spellnum(player_type *creature_ptr, monster_spell_type ms_type, EFFECT_ID typ, MONSTER_IDX m_idx, int *max)
+void spell_damcalc_by_spellnum(player_type *creature_ptr, monster_spell_type ms_type, spell_type typ, MONSTER_IDX m_idx, int *max)
{
monster_type *m_ptr = &creature_ptr->current_floor_ptr->m_list[m_idx];
HIT_POINT dam = monspell_damage(creature_ptr, ms_type, m_idx, DAM_MAX);
* @note that we restrict the number of "crowded" rooms to reduce the chance of overflowing the monster list during level creation.
* @return 部屋の生成に成功した場合 TRUE を返す。
*/
-static bool room_build(player_type *player_ptr, dun_data_type *dd_ptr, EFFECT_ID typ)
+static bool room_build(player_type *player_ptr, dun_data_type *dd_ptr, spell_type typ)
{
switch (typ) {
case ROOM_T_NORMAL:
* Affect grids, objects, and monsters
* </pre>
*/
-bool fire_ball(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad)
+bool fire_ball(player_type *caster_ptr, spell_type typ, DIRECTION dir, HIT_POINT dam, POSITION rad)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
if (typ == GF_CHARM_LIVING)
* Affect grids, objects, and monsters
* </pre>
*/
-bool fire_breath(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad) { return fire_ball(caster_ptr, typ, dir, dam, -rad); }
+bool fire_breath(player_type *caster_ptr, spell_type typ, DIRECTION dir, HIT_POINT dam, POSITION rad) { return fire_ball(caster_ptr, typ, dir, dam, -rad); }
/*!
* @brief ロケット系スペルの発動(詳細な差は確認中) / Cast a ball spell
* Affect grids, objects, and monsters
* </pre>
*/
-bool fire_rocket(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad)
+bool fire_rocket(player_type *caster_ptr, spell_type typ, DIRECTION dir, HIT_POINT dam, POSITION rad)
{
POSITION tx = caster_ptr->x + 99 * ddx[dir];
POSITION ty = caster_ptr->y + 99 * ddy[dir];
* Affect grids, objects, and monsters
* </pre>
*/
-bool fire_ball_hide(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad)
+bool fire_ball_hide(player_type *caster_ptr, spell_type typ, DIRECTION dir, HIT_POINT dam, POSITION rad)
{
POSITION tx = caster_ptr->x + 99 * ddx[dir];
POSITION ty = caster_ptr->y + 99 * ddy[dir];
* Option to hurt the player.
* </pre>
*/
-bool fire_meteor(player_type *caster_ptr, MONSTER_IDX who, EFFECT_ID typ, POSITION y, POSITION x, HIT_POINT dam, POSITION rad)
+bool fire_meteor(player_type *caster_ptr, MONSTER_IDX who, spell_type typ, POSITION y, POSITION x, HIT_POINT dam, POSITION rad)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
return (project(caster_ptr, who, rad, y, x, dam, typ, flg, -1));
* @param dev 回数分散
* @return 作用が実際にあった場合TRUEを返す
*/
-bool fire_blast(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, DICE_NUMBER dd, DICE_SID ds, int num, int dev)
+bool fire_blast(player_type *caster_ptr, spell_type typ, DIRECTION dir, DICE_NUMBER dd, DICE_SID ds, int num, int dev)
{
POSITION ty, tx, y, x;
POSITION ly, lx;
* Affect monsters and grids (not objects).
* </pre>
*/
-bool fire_bolt(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam)
+bool fire_bolt(player_type *caster_ptr, spell_type typ, DIRECTION dir, HIT_POINT dam)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_GRID;
if (typ != GF_ARROW)
* Affect monsters, grids and objects.
* </pre>
*/
-bool fire_beam(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam)
+bool fire_beam(player_type *caster_ptr, spell_type typ, DIRECTION dir, HIT_POINT dam)
{
BIT_FLAGS flg = PROJECT_BEAM | PROJECT_KILL | PROJECT_GRID | PROJECT_ITEM;
return (project_hook(caster_ptr, typ, dir, dam, flg));
* Affect monsters, grids and objects.
* </pre>
*/
-bool fire_bolt_or_beam(player_type *caster_ptr, PERCENTAGE prob, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam)
+bool fire_bolt_or_beam(player_type *caster_ptr, PERCENTAGE prob, spell_type typ, DIRECTION dir, HIT_POINT dam)
{
if (randint0(100) < prob) {
return (fire_beam(caster_ptr, typ, dir, dam));
* @param flg フラグ
* @return 作用が実際にあった場合TRUEを返す
*/
-bool project_hook(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, BIT_FLAGS flg)
+bool project_hook(player_type *caster_ptr, spell_type typ, DIRECTION dir, HIT_POINT dam, BIT_FLAGS flg)
{
flg |= (PROJECT_THRU);
POSITION tx = caster_ptr->x + ddx[dir];
#include "system/angband.h"
-bool fire_ball(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad);
-bool fire_breath(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad);
-bool fire_rocket(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad);
-bool fire_ball_hide(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad);
-bool fire_meteor(player_type *caster_ptr, MONSTER_IDX who, EFFECT_ID typ, POSITION x, POSITION y, HIT_POINT dam, POSITION rad);
-bool fire_bolt(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam);
-bool fire_blast(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, DICE_NUMBER dd, DICE_SID ds, int num, int dev);
-bool fire_beam(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam);
-bool fire_bolt_or_beam(player_type *caster_ptr, PERCENTAGE prob, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam);
-bool project_hook(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, BIT_FLAGS flg);
+bool fire_ball(player_type *caster_ptr, spell_type typ, DIRECTION dir, HIT_POINT dam, POSITION rad);
+bool fire_breath(player_type *caster_ptr, spell_type typ, DIRECTION dir, HIT_POINT dam, POSITION rad);
+bool fire_rocket(player_type *caster_ptr, spell_type typ, DIRECTION dir, HIT_POINT dam, POSITION rad);
+bool fire_ball_hide(player_type *caster_ptr, spell_type typ, DIRECTION dir, HIT_POINT dam, POSITION rad);
+bool fire_meteor(player_type *caster_ptr, MONSTER_IDX who, spell_type typ, POSITION x, POSITION y, HIT_POINT dam, POSITION rad);
+bool fire_bolt(player_type *caster_ptr, spell_type typ, DIRECTION dir, HIT_POINT dam);
+bool fire_blast(player_type *caster_ptr, spell_type typ, DIRECTION dir, DICE_NUMBER dd, DICE_SID ds, int num, int dev);
+bool fire_beam(player_type *caster_ptr, spell_type typ, DIRECTION dir, HIT_POINT dam);
+bool fire_bolt_or_beam(player_type *caster_ptr, PERCENTAGE prob, spell_type typ, DIRECTION dir, HIT_POINT dam);
+bool project_hook(player_type *caster_ptr, spell_type typ, DIRECTION dir, HIT_POINT dam, BIT_FLAGS flg);
* this is done in two passes. -- JDL
* </pre>
*/
-bool project_all_los(player_type *caster_ptr, EFFECT_ID typ, HIT_POINT dam)
+bool project_all_los(player_type *caster_ptr, spell_type typ, HIT_POINT dam)
{
for (MONSTER_IDX i = 1; i < caster_ptr->current_floor_ptr->m_max; i++) {
monster_type *m_ptr = &caster_ptr->current_floor_ptr->m_list[i];
#include "system/angband.h"
-bool project_all_los(player_type *caster_ptr, EFFECT_ID typ, HIT_POINT dam);
+bool project_all_los(player_type *caster_ptr, spell_type typ, HIT_POINT dam);
bool speed_monsters(player_type *caster_ptr);
bool slow_monsters(player_type *caster_ptr, int power);
bool sleep_monsters(player_type *caster_ptr, int power);
/*
* breath shape
*/
-void breath_shape(player_type *caster_ptr, u16b *path_g, int dist, int *pgrids, POSITION *gx, POSITION *gy, POSITION *gm, POSITION *pgm_rad, POSITION rad, POSITION y1, POSITION x1, POSITION y2, POSITION x2, EFFECT_ID typ)
+void breath_shape(player_type *caster_ptr, u16b *path_g, int dist, int *pgrids, POSITION *gx, POSITION *gy, POSITION *gm, POSITION *pgm_rad, POSITION rad, POSITION y1, POSITION x1, POSITION y2, POSITION x2, spell_type typ)
{
POSITION by = y1;
POSITION bx = x1;
#include "system/angband.h"
bool in_disintegration_range(floor_type *floor_ptr, POSITION y1, POSITION x1, POSITION y2, POSITION x2);
-void breath_shape(player_type *caster_ptr, u16b *path_g, int dist, int *pgrids, POSITION *gx, POSITION *gy, POSITION *gm, POSITION *pgm_rad, POSITION rad, POSITION y1, POSITION x1, POSITION y2, POSITION x2, EFFECT_ID typ);
+void breath_shape(player_type *caster_ptr, u16b *path_g, int dist, int *pgrids, POSITION *gx, POSITION *gy, POSITION *gm, POSITION *pgm_rad, POSITION rad, POSITION y1, POSITION x1, POSITION y2, POSITION x2, spell_type typ);
POSITION dist_to_line(POSITION y, POSITION x, POSITION y1, POSITION x1, POSITION y2, POSITION x2);
typedef int QUANTITY; /*!< インターフェース上の指定個数 */
-typedef int EFFECT_ID; /*!< 効果属性ID */
-
typedef s16b QUEST_TYPE; /*!< クエストの種別ID */
typedef s16b QUEST_STATUS; /*!< クエストの状態ID */
* @param type 魔法属性
* @return 対応する色ID
*/
-static TERM_COLOR spell_color(EFFECT_ID type)
+static TERM_COLOR spell_color(spell_type type)
{
/* Check if A.B.'s new graphics should be used (rr9) */
if (streq(ANGBAND_GRAF, "new") || streq(ANGBAND_GRAF, "ne2"))
* If the distance is not "one", we (may) return "*".
* </pre>
*/
-u16b bolt_pict(POSITION y, POSITION x, POSITION ny, POSITION nx, EFFECT_ID typ)
+u16b bolt_pict(POSITION y, POSITION x, POSITION ny, POSITION nx, spell_type typ)
{
int base;
extern TERM_COLOR gf_color[MAX_GF];
extern TERM_COLOR color_char_to_attr(SYMBOL_CODE c);
-u16b bolt_pict(POSITION y, POSITION x, POSITION ny, POSITION nx, EFFECT_ID typ);
+u16b bolt_pict(POSITION y, POSITION x, POSITION ny, POSITION nx, spell_type typ);