X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fspells2.c;h=02526dfa7006a560a1d94814eb7c1e131982b90f;hb=f6f1b8f578139332edc085ba303df5c1f3f0652e;hp=da40ea91f1e209dbfeed8595ad6db9d747762195;hpb=17ce1992d9ae3babce1a147be2eb03de89edac17;p=hengband%2Fhengband.git diff --git a/src/spells2.c b/src/spells2.c index da40ea91f..02526dfa7 100644 --- a/src/spells2.c +++ b/src/spells2.c @@ -109,52 +109,52 @@ void self_knowledge(void) info[i++] = buf[1]; for (v_nr = 0; v_nr < 8; v_nr++) { - char v_name [20]; + char vir_name [20]; char vir_desc[80]; int tester = p_ptr->virtues[v_nr]; - strcpy(v_name, virtue[(p_ptr->vir_types[v_nr])-1]); + strcpy(vir_name, virtue[(p_ptr->vir_types[v_nr])-1]); - sprintf(vir_desc, _("ãã£ã¨ã%sã®æ å ±ãªãã", "Oops. No info about %s."), v_name); + sprintf(vir_desc, _("ãã£ã¨ã%sã®æ å ±ãªãã", "Oops. No info about %s."), vir_name); if (tester < -100) sprintf(vir_desc, _("[%s]ã®å¯¾æ¥µ (%d)", "You are the polar opposite of %s (%d)."), - v_name, tester); + vir_name, tester); else if (tester < -80) sprintf(vir_desc, _("[%s]ã®å¤§æµ (%d)", "You are an arch-enemy of %s (%d)."), - v_name, tester); + vir_name, tester); else if (tester < -60) sprintf(vir_desc, _("[%s]ã®å¼·æµ (%d)", "You are a bitter enemy of %s (%d)."), - v_name, tester); + vir_name, tester); else if (tester < -40) sprintf(vir_desc, _("[%s]ã®æµ (%d)", "You are an enemy of %s (%d)."), - v_name, tester); + vir_name, tester); else if (tester < -20) sprintf(vir_desc, _("[%s]ã®ç½ªè (%d)", "You have sinned against %s (%d)."), - v_name, tester); + vir_name, tester); else if (tester < 0) sprintf(vir_desc, _("[%s]ã®è¿·éè (%d)", "You have strayed from the path of %s (%d)."), - v_name, tester); + vir_name, tester); else if (tester == 0) sprintf(vir_desc, _("[%s]ã®ä¸ç«è (%d)", "You are neutral to %s (%d)."), - v_name, tester); + vir_name, tester); else if (tester < 20) sprintf(vir_desc, _("[%s]ã®å°å¾³è (%d)", "You are somewhat virtuous in %s (%d)."), - v_name, tester); + vir_name, tester); else if (tester < 40) sprintf(vir_desc, _("[%s]ã®ä¸å¾³è (%d)", "You are virtuous in %s (%d)."), - v_name, tester); + vir_name, tester); else if (tester < 60) sprintf(vir_desc, _("[%s]ã®é«å¾³è (%d)", "You are very virtuous in %s (%d)."), - v_name, tester); + vir_name, tester); else if (tester < 80) sprintf(vir_desc, _("[%s]ã®è¦è (%d)", "You are a champion of %s (%d)."), - v_name, tester); + vir_name, tester); else if (tester < 100) sprintf(vir_desc, _("[%s]ã®å大ãªè¦è (%d)", "You are a great champion of %s (%d)."), - v_name, tester); + vir_name, tester); else sprintf(vir_desc, _("[%s]ã®å ·ç¾è (%d)", "You are the living embodiment of %s (%d)."), - v_name, tester); + vir_name, tester); strcpy(v_string[v_nr], vir_desc); @@ -1821,7 +1821,7 @@ void report_magics(void) * @param known å°å½¢ããå±éºãã©ã°ãå¤ããªãTRUE * @return å¹åããã£ãå ´åTRUEãè¿ã */ -static bool detect_feat_flag(int range, int flag, bool known) +static bool detect_feat_flag(POSITION range, int flag, bool known) { int x, y; bool detect = FALSE; @@ -1834,7 +1834,7 @@ static bool detect_feat_flag(int range, int flag, bool known) { for (x = 1; x <= cur_wid - 1; x++) { - int dist = distance(py, px, y, x); + int dist = distance(p_ptr->y, p_ptr->x, y, x); if (dist > range) continue; /* Access the grid */ @@ -1884,13 +1884,13 @@ static bool detect_feat_flag(int range, int flag, bool known) * @param known æç¥å¤ç¯å²ãè¶ ããè¦åãã©ã°ãç«ã¦ãå ´åTRUEãè¿ã * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool detect_traps(int range, bool known) +bool detect_traps(POSITION range, bool known) { bool detect = detect_feat_flag(range, FF_TRAP, known); if (known) p_ptr->dtrap = TRUE; - if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 0) detect = FALSE; + if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 0) detect = FALSE; /* Describe */ if (detect) @@ -1908,11 +1908,11 @@ bool detect_traps(int range, bool known) * @param range å¹æç¯å² * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool detect_doors(int range) +bool detect_doors(POSITION range) { bool detect = detect_feat_flag(range, FF_DOOR, TRUE); - if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 0) detect = FALSE; + if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 0) detect = FALSE; /* Describe */ if (detect) @@ -1930,11 +1930,11 @@ bool detect_doors(int range) * @param range å¹æç¯å² * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool detect_stairs(int range) +bool detect_stairs(POSITION range) { bool detect = detect_feat_flag(range, FF_STAIRS, TRUE); - if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 0) detect = FALSE; + if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 0) detect = FALSE; /* Describe */ if (detect) @@ -1952,11 +1952,11 @@ bool detect_stairs(int range) * @param range å¹æç¯å² * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool detect_treasure(int range) +bool detect_treasure(POSITION range) { bool detect = detect_feat_flag(range, FF_HAS_GOLD, TRUE); - if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 6) detect = FALSE; + if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 6) detect = FALSE; /* Describe */ if (detect) @@ -1974,10 +1974,10 @@ bool detect_treasure(int range) * @param range å¹æç¯å² * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool detect_objects_gold(int range) +bool detect_objects_gold(POSITION range) { int i, y, x; - int range2 = range; + POSITION range2 = range; bool detect = FALSE; @@ -1999,7 +1999,7 @@ bool detect_objects_gold(int range) x = o_ptr->ix; /* Only detect nearby objects */ - if (distance(py, px, y, x) > range2) continue; + if (distance(p_ptr->y, p_ptr->x, y, x) > range2) continue; /* Detect "gold" objects */ if (o_ptr->tval == TV_GOLD) @@ -2015,7 +2015,7 @@ bool detect_objects_gold(int range) } } - if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 6) detect = FALSE; + if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 6) detect = FALSE; /* Describe */ if (detect) @@ -2038,10 +2038,10 @@ bool detect_objects_gold(int range) * @param range å¹æç¯å² * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool detect_objects_normal(int range) +bool detect_objects_normal(POSITION range) { int i, y, x; - int range2 = range; + POSITION range2 = range; bool detect = FALSE; @@ -2063,7 +2063,7 @@ bool detect_objects_normal(int range) x = o_ptr->ix; /* Only detect nearby objects */ - if (distance(py, px, y, x) > range2) continue; + if (distance(p_ptr->y, p_ptr->x, y, x) > range2) continue; /* Detect "real" objects */ if (o_ptr->tval != TV_GOLD) @@ -2079,7 +2079,7 @@ bool detect_objects_normal(int range) } } - if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 6) detect = FALSE; + if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 6) detect = FALSE; /* Describe */ if (detect) @@ -2110,7 +2110,7 @@ bool detect_objects_normal(int range) * It can probably be argued that this function is now too powerful. * */ -bool detect_objects_magic(int range) +bool detect_objects_magic(POSITION range) { int i, y, x, tv; @@ -2134,7 +2134,7 @@ bool detect_objects_magic(int range) x = o_ptr->ix; /* Only detect nearby objects */ - if (distance(py, px, y, x) > range) continue; + if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue; /* Examine the tval */ tv = o_ptr->tval; @@ -2192,9 +2192,10 @@ bool detect_objects_magic(int range) * @param range å¹æç¯å² * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool detect_monsters_normal(int range) +bool detect_monsters_normal(POSITION range) { - int i, y, x; + MONSTER_IDX i; + POSITION y, x; bool flag = FALSE; @@ -2214,7 +2215,7 @@ bool detect_monsters_normal(int range) x = m_ptr->fx; /* Only detect nearby monsters */ - if (distance(py, px, y, x) > range) continue; + if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue; /* Detect all non-invisible monsters */ if (!(r_ptr->flags2 & RF2_INVISIBLE) || p_ptr->see_inv) @@ -2233,7 +2234,7 @@ bool detect_monsters_normal(int range) } } - if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 3) flag = FALSE; + if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 3) flag = FALSE; /* Describe */ if (flag) @@ -2252,9 +2253,10 @@ bool detect_monsters_normal(int range) * @param range å¹æç¯å² * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool detect_monsters_invis(int range) +bool detect_monsters_invis(POSITION range) { - int i, y, x; + MONSTER_IDX i; + POSITION y, x; bool flag = FALSE; if (d_info[dungeon_type].flags1 & DF1_DARKNESS) range /= 3; @@ -2273,7 +2275,7 @@ bool detect_monsters_invis(int range) x = m_ptr->fx; /* Only detect nearby monsters */ - if (distance(py, px, y, x) > range) continue; + if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue; /* Detect invisible monsters */ if (r_ptr->flags2 & RF2_INVISIBLE) @@ -2299,7 +2301,7 @@ bool detect_monsters_invis(int range) } } - if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 3) flag = FALSE; + if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 3) flag = FALSE; /* Describe */ if (flag) @@ -2317,9 +2319,10 @@ bool detect_monsters_invis(int range) * @param range å¹æç¯å² * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool detect_monsters_evil(int range) +bool detect_monsters_evil(POSITION range) { - int i, y, x; + MONSTER_IDX i; + POSITION y, x; bool flag = FALSE; if (d_info[dungeon_type].flags1 & DF1_DARKNESS) range /= 3; @@ -2338,7 +2341,7 @@ bool detect_monsters_evil(int range) x = m_ptr->fx; /* Only detect nearby monsters */ - if (distance(py, px, y, x) > range) continue; + if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue; /* Detect evil monsters */ if (r_ptr->flags3 & RF3_EVIL) @@ -2386,10 +2389,11 @@ bool detect_monsters_evil(int range) * @param range å¹æç¯å² * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool detect_monsters_nonliving(int range) +bool detect_monsters_nonliving(POSITION range) { - int i, y, x; - bool flag = FALSE; + MONSTER_IDX i; + POSITION y, x; + bool flag = FALSE; if (d_info[dungeon_type].flags1 & DF1_DARKNESS) range /= 3; @@ -2407,7 +2411,7 @@ bool detect_monsters_nonliving(int range) x = m_ptr->fx; /* Only detect nearby monsters */ - if (distance(py, px, y, x) > range) continue; + if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue; /* Detect non-living monsters */ if (!monster_living(r_ptr)) @@ -2449,9 +2453,10 @@ bool detect_monsters_nonliving(int range) * @param range å¹æç¯å² * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool detect_monsters_mind(int range) +bool detect_monsters_mind(POSITION range) { - int i, y, x; + MONSTER_IDX i; + POSITION y, x; bool flag = FALSE; if (d_info[dungeon_type].flags1 & DF1_DARKNESS) range /= 3; @@ -2470,7 +2475,7 @@ bool detect_monsters_mind(int range) x = m_ptr->fx; /* Only detect nearby monsters */ - if (distance(py, px, y, x) > range) continue; + if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue; /* Detect non-living monsters */ if (!(r_ptr->flags2 & RF2_EMPTY_MIND)) @@ -2514,9 +2519,10 @@ bool detect_monsters_mind(int range) * @param Match 対å¿ã·ã³ãã«ã®æ··ãã£ãã¢ã³ã¹ã¿ã¼æåå(è¤æ°æå®å) * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool detect_monsters_string(int range, cptr Match) +bool detect_monsters_string(POSITION range, cptr Match) { - int i, y, x; + MONSTER_IDX i; + POSITION y, x; bool flag = FALSE; if (d_info[dungeon_type].flags1 & DF1_DARKNESS) range /= 3; @@ -2535,7 +2541,7 @@ bool detect_monsters_string(int range, cptr Match) x = m_ptr->fx; /* Only detect nearby monsters */ - if (distance(py, px, y, x) > range) continue; + if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue; /* Detect monsters with the same symbol */ if (my_strchr(Match, r_ptr->d_char)) @@ -2561,7 +2567,7 @@ bool detect_monsters_string(int range, cptr Match) } } - if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 3) flag = FALSE; + if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 3) flag = FALSE; /* Describe */ if (flag) @@ -2580,9 +2586,10 @@ bool detect_monsters_string(int range, cptr Match) * @param match_flag æç¥ãã©ã° * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool detect_monsters_xxx(int range, u32b match_flag) +bool detect_monsters_xxx(POSITION range, u32b match_flag) { - int i, y, x; + MONSTER_IDX i; + POSITION y, x; bool flag = FALSE; cptr desc_monsters = _("å¤ãªã¢ã³ã¹ã¿ã¼", "weird monsters"); @@ -2602,7 +2609,7 @@ bool detect_monsters_xxx(int range, u32b match_flag) x = m_ptr->fx; /* Only detect nearby monsters */ - if (distance(py, px, y, x) > range) continue; + if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue; /* Detect evil monsters */ if (r_ptr->flags3 & (match_flag)) @@ -2662,7 +2669,7 @@ bool detect_monsters_xxx(int range, u32b match_flag) * @param range å¹æç¯å² * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool detect_all(int range) +bool detect_all(POSITION range) { bool detect = FALSE; @@ -2697,7 +2704,7 @@ bool detect_all(int range) * this is done in two passes. -- JDL * */ -bool project_hack(int typ, int dam) +bool project_hack(int typ, HIT_POINT dam) { int i, x, y; int flg = PROJECT_JUMP | PROJECT_KILL | PROJECT_HIDE; @@ -2717,7 +2724,7 @@ bool project_hack(int typ, int dam) x = m_ptr->fx; /* Require line of sight */ - if (!player_has_los_bold(y, x) || !projectable(py, px, y, x)) continue; + if (!player_has_los_bold(y, x) || !projectable(p_ptr->y, p_ptr->x, y, x)) continue; /* Mark the monster */ m_ptr->mflag |= (MFLAG_TEMP); @@ -2799,7 +2806,7 @@ bool turn_undead(void) * @brief è¦çå ã®ã¢ã³ãããã»ã¢ã³ã¹ã¿ã¼ã«ãã¡ã¼ã¸ãä¸ããå¦ç / Dispel undead monsters * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool dispel_undead(int dam) +bool dispel_undead(HIT_POINT dam) { bool tester = (project_hack(GF_DISP_UNDEAD, dam)); if (tester) @@ -2811,7 +2818,7 @@ bool dispel_undead(int dam) * @brief è¦çå ã®éªæªãªã¢ã³ã¹ã¿ã¼ã«ãã¡ã¼ã¸ãä¸ããå¦ç / Dispel evil monsters * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool dispel_evil(int dam) +bool dispel_evil(HIT_POINT dam) { return (project_hack(GF_DISP_EVIL, dam)); } @@ -2820,7 +2827,7 @@ bool dispel_evil(int dam) * @brief è¦çå ã®åè¯ãªã¢ã³ã¹ã¿ã¼ã«ãã¡ã¼ã¸ãä¸ããå¦ç / Dispel good monsters * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool dispel_good(int dam) +bool dispel_good(HIT_POINT dam) { return (project_hack(GF_DISP_GOOD, dam)); } @@ -2829,7 +2836,7 @@ bool dispel_good(int dam) * @brief è¦çå ã®ããããã¢ã³ã¹ã¿ã¼ã«ãã¡ã¼ã¸ãä¸ããå¦ç / Dispel all monsters * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool dispel_monsters(int dam) +bool dispel_monsters(HIT_POINT dam) { return (project_hack(GF_DISP_ALL, dam)); } @@ -2838,7 +2845,7 @@ bool dispel_monsters(int dam) * @brief è¦çå ã®çå½ã®ããã¢ã³ã¹ã¿ã¼ã«ãã¡ã¼ã¸ãä¸ããå¦ç / Dispel 'living' monsters * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool dispel_living(int dam) +bool dispel_living(HIT_POINT dam) { return (project_hack(GF_DISP_LIVING, dam)); } @@ -2847,7 +2854,7 @@ bool dispel_living(int dam) * @brief è¦çå ã®æªéç³»ã¢ã³ã¹ã¿ã¼ã«ãã¡ã¼ã¸ãä¸ããå¦ç / Dispel 'living' monsters * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool dispel_demons(int dam) +bool dispel_demons(HIT_POINT dam) { return (project_hack(GF_DISP_DEMON, dam)); } @@ -2866,9 +2873,9 @@ bool crusade(void) * @param who æãããåå ãèµ·ãããã¢ã³ã¹ã¿ã¼(0ãªãã°ãã¬ã¤ã¤ã¼) * @return ãªã */ -void aggravate_monsters(int who) +void aggravate_monsters(MONSTER_IDX who) { - int i; + MONSTER_IDX i; bool sleep = FALSE; bool speed = FALSE; @@ -2929,7 +2936,7 @@ void aggravate_monsters(int who) * @param spell_name æ¹æ®ºå¹æãèµ·ãããéæ³ã®åå * @return å¹åããã£ãå ´åTRUEãè¿ã */ -bool genocide_aux(int m_idx, int power, bool player_cast, int dam_side, cptr spell_name) +bool genocide_aux(MONSTER_IDX m_idx, int power, bool player_cast, int dam_side, cptr spell_name) { int msec = delay_factor * delay_factor * delay_factor; monster_type *m_ptr = &m_list[m_idx]; @@ -3001,7 +3008,7 @@ bool genocide_aux(int m_idx, int power, bool player_cast, int dam_side, cptr spe } /* Visual feedback */ - move_cursor_relative(py, px); + move_cursor_relative(p_ptr->y, p_ptr->x); /* Redraw */ p_ptr->redraw |= (PR_HP); @@ -3030,7 +3037,7 @@ bool genocide_aux(int m_idx, int power, bool player_cast, int dam_side, cptr spe */ bool symbol_genocide(int power, bool player_cast) { - int i; + MONSTER_IDX i; char typ; bool result = FALSE; @@ -3077,7 +3084,7 @@ bool symbol_genocide(int power, bool player_cast) */ bool mass_genocide(int power, bool player_cast) { - int i; + MONSTER_IDX i; bool result = FALSE; /* Prevent mass genocide in quest levels */ @@ -3119,7 +3126,7 @@ bool mass_genocide(int power, bool player_cast) */ bool mass_genocide_undead(int power, bool player_cast) { - int i; + MONSTER_IDX i; bool result = FALSE; /* Prevent mass genocide in quest levels */ @@ -3162,9 +3169,9 @@ bool mass_genocide_undead(int power, bool player_cast) */ bool probing(void) { - int i, speed; - int cu, cv; - bool probe = FALSE; + int i, speed; + bool_hack cu, cv; + bool probe = FALSE; char buf[256]; cptr align; @@ -3233,11 +3240,9 @@ bool probing(void) #endif /* Describe the monster */ -#ifdef JP -sprintf(buf,"%s ... å±æ§:%s HP:%d/%d AC:%d é度:%s%d çµé¨:", m_name, align, m_ptr->hp, m_ptr->maxhp, r_ptr->ac, (speed > 0) ? "+" : "", speed); -#else -sprintf(buf, "%s ... align:%s HP:%d/%d AC:%d speed:%s%d exp:", m_name, align, m_ptr->hp, m_ptr->maxhp, r_ptr->ac, (speed > 0) ? "+" : "", speed); -#endif + sprintf(buf,_("%s ... å±æ§:%s HP:%d/%d AC:%d é度:%s%d çµé¨:", "%s ... align:%s HP:%d/%d AC:%d speed:%s%d exp:"), + m_name, align, (int)m_ptr->hp, (int)m_ptr->maxhp, r_ptr->ac, (speed > 0) ? "+" : "", speed); + if (r_ptr->next_r_idx) { strcat(buf, format("%d/%d ", m_ptr->exp, r_ptr->next_exp)); @@ -3276,8 +3281,6 @@ sprintf(buf, "%s ... align:%s HP:%d/%d AC:%d speed:%s%d exp:", m_name, align, m_ /* Learn everything about this monster */ if (lore_do_probe(m_ptr->r_idx)) { - char buf[80]; - /* Get base name of monster */ strcpy(buf, (r_name + r_ptr->name)); @@ -3592,7 +3595,7 @@ bool destroy_area(int y1, int x1, int r, bool in_generate) if (p_ptr->special_defense & NINJA_S_STEALTH) { - if (cave[py][px].info & CAVE_GLOW) set_superstealth(FALSE); + if (cave[p_ptr->y][p_ptr->x].info & CAVE_GLOW) set_superstealth(FALSE); } } @@ -3628,11 +3631,12 @@ bool destroy_area(int y1, int x1, int r, bool in_generate) * This has allowed massive simplification of the "monster" code. * */ -bool earthquake_aux(int cy, int cx, int r, int m_idx) +bool earthquake_aux(int cy, int cx, int r, MONSTER_IDX m_idx) { int i, t, y, x, yy, xx, dy, dx; int damage = 0; - int sn = 0, sy = 0, sx = 0; + int sn = 0; + POSITION sy = 0, sx = 0; bool hurt = FALSE; cave_type *c_ptr; bool map[32][32]; @@ -3701,8 +3705,8 @@ bool earthquake_aux(int cy, int cx, int r, int m_idx) for (i = 0; i < 8; i++) { /* Access the location */ - y = py + ddy_ddd[i]; - x = px + ddx_ddd[i]; + y = p_ptr->y + ddy_ddd[i]; + x = p_ptr->x + ddx_ddd[i]; /* Skip non-empty grids */ if (!cave_empty_bold(y, x)) continue; @@ -3783,7 +3787,7 @@ bool earthquake_aux(int cy, int cx, int r, int m_idx) } /* Important -- no wall on player */ - map[16+py-cy][16+px-cx] = FALSE; + map[16+p_ptr->y-cy][16+p_ptr->x-cx] = FALSE; /* Take some damage */ if (damage) @@ -3930,13 +3934,13 @@ bool earthquake_aux(int cy, int cx, int r, int m_idx) /* Hack -- Escape from the rock */ if (sn) { - int m_idx = cave[yy][xx].m_idx; + IDX m_idx_aux = cave[yy][xx].m_idx; /* Update the old location */ cave[yy][xx].m_idx = 0; /* Update the new location */ - cave[sy][sx].m_idx = m_idx; + cave[sy][sx].m_idx = m_idx_aux; /* Move the monster */ m_ptr->fy = sy; @@ -4076,7 +4080,7 @@ bool earthquake_aux(int cy, int cx, int r, int m_idx) if (p_ptr->special_defense & NINJA_S_STEALTH) { - if (cave[py][px].info & CAVE_GLOW) set_superstealth(FALSE); + if (cave[p_ptr->y][p_ptr->x].info & CAVE_GLOW) set_superstealth(FALSE); } /* Success */ @@ -4089,6 +4093,7 @@ bool earthquake_aux(int cy, int cx, int r, int m_idx) * @return å¹åããã£ãå ´åTRUEãè¿ã * @param cy ä¸å¿Yåº§æ¨ * @param cx ä¸å¿Xåº§æ¨ + * @param r å¹æåå¾ */ bool earthquake(int cy, int cx, int r) { @@ -4101,7 +4106,7 @@ bool earthquake(int cy, int cx, int r) */ void discharge_minion(void) { - int i; + MONSTER_IDX i; bool okay = TRUE; for (i = 1; i < m_max; i++) @@ -4117,7 +4122,7 @@ void discharge_minion(void) } for (i = 1; i < m_max; i++) { - int dam; + HIT_POINT dam; monster_type *m_ptr = &m_list[i]; monster_race *r_ptr; @@ -4424,7 +4429,7 @@ static void cave_temp_room_aux(int y, int x, bool only_room, bool (*pass_bold)(i if (!in_bounds2(y, x)) return; /* Do not exceed the maximum spell range */ - if (distance(py, px, y, x) > MAX_RANGE) return; + if (distance(p_ptr->y, p_ptr->x, y, x) > MAX_RANGE) return; /* Verify this grid */ /* @@ -4454,7 +4459,7 @@ static void cave_temp_room_aux(int y, int x, bool only_room, bool (*pass_bold)(i /*! * @brief æå®ã®ãã¹ãå ãéãã(LOSãã©ã°ãæã¤ã)ãè¿ãã / Aux function -- see below * @param y æå®Yåº§æ¨ - * @param y æå®Xåº§æ¨ + * @param x æå®Xåº§æ¨ * @return å ãéããªãã°trueãè¿ãã */ static bool cave_pass_lite_bold(int y, int x) @@ -4465,7 +4470,7 @@ static bool cave_pass_lite_bold(int y, int x) /*! * @brief é¨å±å ã«ããä¸ç¹ã®å¨å²ãããã¤å ãéãããã°ãã¼ãã«å¤æ°temp_nã«è¿ã / Aux function -- see below * @param y æå®Yåº§æ¨ - * @param y æå®Xåº§æ¨ + * @param x æå®Xåº§æ¨ * @return ãªã */ static void cave_temp_lite_room_aux(int y, int x) @@ -4476,7 +4481,7 @@ static void cave_temp_lite_room_aux(int y, int x) /*! * @brief æå®ã®ãã¹ãå ãéããå°ç·ã®ã¿ãéãããè¿ãã / Aux function -- see below * @param y æå®Yåº§æ¨ - * @param y æå®Xåº§æ¨ + * @param x æå®Xåº§æ¨ * @return å°ç·ãéããªãã°trueãè¿ãã */ static bool cave_pass_dark_bold(int y, int x) @@ -4488,7 +4493,7 @@ static bool cave_pass_dark_bold(int y, int x) /*! * @brief é¨å±å ã«ããä¸ç¹ã®å¨å²ãããã¤å°ç·ãéãããã°ãã¼ãã«å¤æ°temp_nã«è¿ã / Aux function -- see below * @param y æå®Yåº§æ¨ - * @param y æå®Xåº§æ¨ + * @param x æå®Xåº§æ¨ * @return ãªã */ static void cave_temp_unlite_room_aux(int y, int x) @@ -4499,8 +4504,8 @@ static void cave_temp_unlite_room_aux(int y, int x) /*! * @brief æå®ãããé¨å±å ãç §ãã / Illuminate any room containing the given location. - * @param y æå®Yåº§æ¨ - * @param y æå®Xåº§æ¨ + * @param y1 æå®Yåº§æ¨ + * @param x1 æå®Xåº§æ¨ * @return ãªã */ void lite_room(int y1, int x1) @@ -4536,15 +4541,15 @@ void lite_room(int y1, int x1) if (p_ptr->special_defense & NINJA_S_STEALTH) { - if (cave[py][px].info & CAVE_GLOW) set_superstealth(FALSE); + if (cave[p_ptr->y][p_ptr->x].info & CAVE_GLOW) set_superstealth(FALSE); } } /*! * @brief æå®ãããé¨å±å ãæããã / Darken all rooms containing the given location - * @param y æå®Yåº§æ¨ - * @param y æå®Xåº§æ¨ + * @param y1 æå®Yåº§æ¨ + * @param x1 æå®Xåº§æ¨ * @return ãªã */ void unlite_room(int y1, int x1) @@ -4583,13 +4588,13 @@ void unlite_room(int y1, int x1) /*! * @brief ãã¬ã¤ã¤ã¼ä½ç½®ãä¸å¿ã«LITE_WEAKå±æ§ãéããç §æå¦çãè¡ã / Hack -- call light around the player Affect all monsters in the projection radius - * @param y æå®Yåº§æ¨ - * @param y æå®Xåº§æ¨ + * @param dam å¨å + * @param rad å¹æåå¾ * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ -bool lite_area(int dam, int rad) +bool lite_area(HIT_POINT dam, int rad) { - int flg = PROJECT_GRID | PROJECT_KILL; + BIT_FLAGS flg = PROJECT_GRID | PROJECT_KILL; if (d_info[dungeon_type].flags1 & DF1_DARKNESS) { @@ -4604,10 +4609,10 @@ bool lite_area(int dam, int rad) } /* Hook into the "project()" function */ - (void)project(0, rad, py, px, dam, GF_LITE_WEAK, flg, -1); + (void)project(0, rad, p_ptr->y, p_ptr->x, dam, GF_LITE_WEAK, flg, -1); /* Lite up the room */ - lite_room(py, px); + lite_room(p_ptr->y, p_ptr->x); /* Assume seen */ return (TRUE); @@ -4616,13 +4621,13 @@ bool lite_area(int dam, int rad) /*! * @brief ãã¬ã¤ã¤ã¼ä½ç½®ãä¸å¿ã«LITE_DARKå±æ§ãéããæ¶ç¯å¦çãè¡ã / Hack -- call light around the player Affect all monsters in the projection radius - * @param y æå®Yåº§æ¨ - * @param y æå®Xåº§æ¨ + * @param dam å¨å + * @param rad å¹æåå¾ * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ -bool unlite_area(int dam, int rad) +bool unlite_area(HIT_POINT dam, int rad) { - int flg = PROJECT_GRID | PROJECT_KILL; + BIT_FLAGS flg = PROJECT_GRID | PROJECT_KILL; /* Hack -- Message */ if (!p_ptr->blind) @@ -4631,10 +4636,10 @@ bool unlite_area(int dam, int rad) } /* Hook into the "project()" function */ - (void)project(0, rad, py, px, dam, GF_DARK_WEAK, flg, -1); + (void)project(0, rad, p_ptr->y, p_ptr->x, dam, GF_DARK_WEAK, flg, -1); /* Lite up the room */ - unlite_room(py, px); + unlite_room(p_ptr->y, p_ptr->x); /* Assume seen */ return (TRUE); @@ -4656,16 +4661,16 @@ bool unlite_area(int dam, int rad) * Affect grids, objects, and monsters * */ -bool fire_ball(int typ, int dir, int dam, int rad) +bool fire_ball(int typ, int dir, HIT_POINT dam, int rad) { int tx, ty; - int flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL; if (typ == GF_CONTROL_LIVING) flg|= PROJECT_HIDE; /* Use the given direction */ - tx = px + 99 * ddx[dir]; - ty = py + 99 * ddy[dir]; + tx = p_ptr->x + 99 * ddx[dir]; + ty = p_ptr->y + 99 * ddy[dir]; /* Hack -- Use an actual "target" */ if ((dir == 5) && target_okay()) @@ -4695,15 +4700,15 @@ bool fire_ball(int typ, int dir, int dam, int rad) * Affect grids, objects, and monsters * */ -bool fire_rocket(int typ, int dir, int dam, int rad) +bool fire_rocket(int typ, int dir, HIT_POINT dam, int rad) { int tx, ty; - int flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL; /* Use the given direction */ - tx = px + 99 * ddx[dir]; - ty = py + 99 * ddy[dir]; + tx = p_ptr->x + 99 * ddx[dir]; + ty = p_ptr->y + 99 * ddy[dir]; /* Hack -- Use an actual "target" */ if ((dir == 5) && target_okay()) @@ -4731,15 +4736,15 @@ bool fire_rocket(int typ, int dir, int dam, int rad) * Affect grids, objects, and monsters * */ -bool fire_ball_hide(int typ, int dir, int dam, int rad) +bool fire_ball_hide(int typ, int dir, HIT_POINT dam, int rad) { int tx, ty; - int flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_HIDE; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_HIDE; /* Use the given direction */ - tx = px + 99 * ddx[dir]; - ty = py + 99 * ddy[dir]; + tx = p_ptr->x + 99 * ddx[dir]; + ty = p_ptr->y + 99 * ddy[dir]; /* Hack -- Use an actual "target" */ if ((dir == 5) && target_okay()) @@ -4754,30 +4759,50 @@ bool fire_ball_hide(int typ, int dir, int dam, int rad) } -/* +/*! + * @brief ã¡ããªç³»ã¹ãã«ã®çºå / Cast a meteor spell + * @param who ã¹ãºã«è© å±è ã®ã¢ã³ã¹ã¿ã¼ID(0=ãã¬ã¤ã¤ã¼) + * @param typ å¹æå±æ§ + * @param dam å¨å + * @param rad åå¾ + * @param y ä¸å¿ç¹Yåº§æ¨ + * @param x ä¸å¿ç¹Xåº§æ¨ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + * @details + *
* Cast a meteor spell, defined as a ball spell cast by an arbitary monster, * player, or outside source, that starts out at an arbitrary location, and * leaving no trail from the "caster" to the target. This function is * especially useful for bombardments and similar. -LM- - * * Option to hurt the player. + **/ -bool fire_meteor(int who, int typ, int y, int x, int dam, int rad) +bool fire_meteor(MONSTER_IDX who, EFFECT_ID typ, POSITION y, POSITION x, HIT_POINT dam, POSITION rad) { - int flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL; /* Analyze the "target" and the caster. */ return (project(who, rad, y, x, dam, typ, flg, -1)); } +/*! + * @brief ãã©ã¹ãç³»ã¹ãã«ã®çºå / Cast a blast spell + * @param typ å¹æå±æ§ + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param dd å¨åãã¤ã¹æ° + * @param ds å¨åãã¤ã¹ç® + * @param num åºæ¬åæ° + * @param dev åæ°åæ£ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool fire_blast(int typ, int dir, int dd, int ds, int num, int dev) { int ly, lx, ld; int ty, tx, y, x; int i; - int flg = PROJECT_FAST | PROJECT_THRU | PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE | PROJECT_GRID; + BIT_FLAGS flg = PROJECT_FAST | PROJECT_THRU | PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE | PROJECT_GRID; /* Assume okay */ bool result = TRUE; @@ -4785,8 +4810,8 @@ bool fire_blast(int typ, int dir, int dd, int ds, int num, int dev) /* Use the given direction */ if (dir != 5) { - ly = ty = py + 20 * ddy[dir]; - lx = tx = px + 20 * ddx[dir]; + ly = ty = p_ptr->y + 20 * ddy[dir]; + lx = tx = p_ptr->x + 20 * ddx[dir]; } /* Use an actual "target" */ @@ -4795,11 +4820,11 @@ bool fire_blast(int typ, int dir, int dd, int ds, int num, int dev) tx = target_col; ty = target_row; - lx = 20 * (tx - px) + px; - ly = 20 * (ty - py) + py; + lx = 20 * (tx - p_ptr->x) + p_ptr->x; + ly = 20 * (ty - p_ptr->y) + p_ptr->y; } - ld = distance(py, px, ly, lx); + ld = distance(p_ptr->y, p_ptr->x, ly, lx); /* Blast */ for (i = 0; i < num; i++) @@ -4824,8 +4849,10 @@ bool fire_blast(int typ, int dir, int dd, int ds, int num, int dev) } -/* - * Switch position with a monster. +/*! + * @brief ã¢ã³ã¹ã¿ã¼ã¨ã®ä½ç½®äº¤æå¦ç / Switch position with a monster. + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ bool teleport_swap(int dir) { @@ -4841,8 +4868,8 @@ bool teleport_swap(int dir) } else { - tx = px + ddx[dir]; - ty = py + ddy[dir]; + tx = p_ptr->x + ddx[dir]; + ty = p_ptr->y + ddy[dir]; } c_ptr = &cave[ty][tx]; @@ -4860,7 +4887,7 @@ bool teleport_swap(int dir) return FALSE; } - if ((c_ptr->info & CAVE_ICKY) || (distance(ty, tx, py, px) > p_ptr->lev * 3 / 2 + 10)) + if ((c_ptr->info & CAVE_ICKY) || (distance(ty, tx, p_ptr->y, p_ptr->x) > p_ptr->lev * 3 / 2 + 10)) { msg_print(_("失æããã", "Failed to swap.")); @@ -4893,10 +4920,15 @@ bool teleport_swap(int dir) } -/* - * Hack -- apply a "projection()" in a direction (or at the target) +/*! + * @brief æå®æ¹åã«é£ã³éå ·ãé£ã°ãï¼ãã©ã°ä»»ææå®ï¼ / Hack -- apply a "projection()" in a direction (or at the target) + * @param typ å¹æå±æ§ + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param dam å¨å + * @param flg ãã©ã° + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ -bool project_hook(int typ, int dir, int dam, int flg) +bool project_hook(int typ, int dir, HIT_POINT dam, BIT_FLAGS flg) { int tx, ty; @@ -4904,8 +4936,8 @@ bool project_hook(int typ, int dir, int dam, int flg) flg |= (PROJECT_THRU); /* Use the given direction */ - tx = px + ddx[dir]; - ty = py + ddy[dir]; + tx = p_ptr->x + ddx[dir]; + ty = p_ptr->y + ddy[dir]; /* Hack -- Use an actual "target" */ if ((dir == 5) && target_okay()) @@ -4919,35 +4951,59 @@ bool project_hook(int typ, int dir, int dam, int flg) } -/* - * Cast a bolt spell. +/*! + * @brief ãã«ãç³»ã¹ãã«ã®çºå / Cast a bolt spell. + * @param typ å¹æå±æ§ + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param dam å¨å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + * @details + *
* Stop if we hit a monster, as a "bolt". * Affect monsters and grids (not objects). + **/ -bool fire_bolt(int typ, int dir, int dam) +bool fire_bolt(int typ, int dir, HIT_POINT dam) { - int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_GRID; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_GRID; if (typ != GF_ARROW) flg |= PROJECT_REFLECTABLE; return (project_hook(typ, dir, dam, flg)); } -/* - * Cast a beam spell. +/*! + * @brief ãã¼ã ç³»ã¹ãã«ã®çºå / Cast a beam spell. + * @param typ å¹æå±æ§ + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param dam å¨å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + * @details + *
* Pass through monsters, as a "beam". * Affect monsters, grids and objects. + **/ -bool fire_beam(int typ, int dir, int dam) +bool fire_beam(int typ, int dir, HIT_POINT dam) { - int flg = PROJECT_BEAM | PROJECT_KILL | PROJECT_GRID | PROJECT_ITEM; + BIT_FLAGS flg = PROJECT_BEAM | PROJECT_KILL | PROJECT_GRID | PROJECT_ITEM; return (project_hook(typ, dir, dam, flg)); } -/* - * Cast a bolt spell, or rarely, a beam spell +/*! + * @brief 確çã«å¿ãããã«ãç³»/ãã¼ã ç³»ã¹ãã«ã®çºå / Cast a bolt spell, or rarely, a beam spell. + * @param prob ãã¼ã åãã確ç(%) + * @param typ å¹æå±æ§ + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param dam å¨å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + * @details + *
+ * Pass through monsters, as a "beam". + * Affect monsters, grids and objects. + **/ -bool fire_bolt_or_beam(int prob, int typ, int dir, int dam) +bool fire_bolt_or_beam(int prob, int typ, int dir, HIT_POINT dam) { if (randint0(100) < prob) { @@ -4959,179 +5015,282 @@ bool fire_bolt_or_beam(int prob, int typ, int dir, int dam) } } - -/* - * Some of the old functions +/*! + * @brief LITE_WEAKå±æ§ã«ããå æºãã¼ã å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param dam å¨å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ -bool lite_line(int dir, int dam) +bool lite_line(int dir, HIT_POINT dam) { - int flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_KILL; + BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_KILL; return (project_hook(GF_LITE_WEAK, dir, dam, flg)); } - -bool drain_life(int dir, int dam) +/*! + * @brief å¸è¡ãã«ãå¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param dam å¨å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ +bool drain_life(int dir, HIT_POINT dam) { - int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; return (project_hook(GF_OLD_DRAIN, dir, dam, flg)); } - -bool wall_to_mud(int dir, int dam) +/*! + * @brief 岩ç³æº¶è§£å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param dam å¨å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ +bool wall_to_mud(int dir, HIT_POINT dam) { - int flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL; + BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL; return (project_hook(GF_KILL_WALL, dir, dam, flg)); } - +/*! + * @brief éæ³ã®æ½é å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool wizard_lock(int dir) { - int flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL; + BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL; return (project_hook(GF_JAM_DOOR, dir, 20 + randint1(30), flg)); } - +/*! + * @brief ãã¢ç ´å£å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool destroy_door(int dir) { - int flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM; + BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM; return (project_hook(GF_KILL_DOOR, dir, 0, flg)); } - +/*! + * @brief ãã©ãã解é¤å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool disarm_trap(int dir) { - int flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM; + BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM; return (project_hook(GF_KILL_TRAP, dir, 0, flg)); } - -bool heal_monster(int dir, int dam) +/*! + * @brief ã¢ã³ã¹ã¿ã¼å復å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param dam å¨å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ +bool heal_monster(int dir, HIT_POINT dam) { - int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; return (project_hook(GF_OLD_HEAL, dir, dam, flg)); } - +/*! + * @brief ã¢ã³ã¹ã¿ã¼å éå¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param power å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool speed_monster(int dir, int power) { - int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; return (project_hook(GF_OLD_SPEED, dir, power, flg)); } - +/*! + * @brief ã¢ã³ã¹ã¿ã¼æ¸éå¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param power å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool slow_monster(int dir, int power) { - int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; return (project_hook(GF_OLD_SLOW, dir, power, flg)); } - +/*! + * @brief ã¢ã³ã¹ã¿ã¼å¬ç å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param power å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool sleep_monster(int dir, int power) { - int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; return (project_hook(GF_OLD_SLEEP, dir, power, flg)); } - +/*! + * @brief ã¢ã³ã¹ã¿ã¼ææ(STASIS)å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + * @details å¨åã¯ãã¬ã¤ã¤ã¼ã¬ãã«*2ã«åºå® + */ bool stasis_monster(int dir) { return (fire_ball_hide(GF_STASIS, dir, p_ptr->lev*2, 0)); } - +/*! + * @brief éªæªãªã¢ã³ã¹ã¿ã¼ææ(STASIS)å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + * @details å¨åã¯ãã¬ã¤ã¤ã¼ã¬ãã«*2ã«åºå® + */ bool stasis_evil(int dir) { return (fire_ball_hide(GF_STASIS_EVIL, dir, p_ptr->lev*2, 0)); } - +/*! + * @brief ã¢ã³ã¹ã¿ã¼æ··ä¹±å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param plev ãã¬ã¤ã¤ã¼ã¬ãã«(=å¹å) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool confuse_monster(int dir, int plev) { - int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; return (project_hook(GF_OLD_CONF, dir, plev, flg)); } - +/*! + * @brief ã¢ã³ã¹ã¿ã¼æ¦æ§å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param plev ãã¬ã¤ã¤ã¼ã¬ãã«(=å¹å) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool stun_monster(int dir, int plev) { - int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; return (project_hook(GF_STUN, dir, plev, flg)); } - +/*! + * @brief ãã§ã³ã¸ã¢ã³ã¹ã¿ã¼å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param power å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool poly_monster(int dir, int power) { - int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; bool tester = (project_hook(GF_OLD_POLY, dir, power, flg)); if (tester) chg_virtue(V_CHANCE, 1); return(tester); } - +/*! + * @brief ã¯ãã¼ã³ã¢ã³ã¹ã¿ã¼å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool clone_monster(int dir) { - int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; return (project_hook(GF_OLD_CLONE, dir, 0, flg)); } - +/*! + * @brief ã¢ã³ã¹ã¿ã¼ææ å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param plev ãã¬ã¤ã¤ã¼ã¬ãã«(=å¹å) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool fear_monster(int dir, int plev) { - int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; return (project_hook(GF_TURN_ALL, dir, plev, flg)); } - +/*! + * @brief æ»ã®å ç·å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param plev ãã¬ã¤ã¤ã¼ã¬ãã«(å¹åã¯plev*200) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool death_ray(int dir, int plev) { - int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; return (project_hook(GF_DEATH_RAY, dir, plev * 200, flg)); } - +/*! + * @brief ã¢ã³ã¹ã¿ã¼ç¨ãã¬ãã¼ãå¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param distance 移åè·é¢ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool teleport_monster(int dir, int distance) { - int flg = PROJECT_BEAM | PROJECT_KILL; + BIT_FLAGS flg = PROJECT_BEAM | PROJECT_KILL; return (project_hook(GF_AWAY_ALL, dir, distance, flg)); } -/* - * Hooks -- affect adjacent grids (radius 1 ball attack) +/*! + * @brief ãã¢çæå¦ç(ãã¬ã¤ã¤ã¼ä¸å¿ã«å¨å²1ãã¹) / Hooks -- affect adjacent grids (radius 1 ball attack) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ bool door_creation(void) { - int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE; - return (project(0, 1, py, px, 0, GF_MAKE_DOOR, flg, -1)); + BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE; + return (project(0, 1, p_ptr->y, p_ptr->x, 0, GF_MAKE_DOOR, flg, -1)); } - +/*! + * @brief ãã©ããçæå¦ç(èµ·ç¹ããå¨å²1ãã¹) + * @param y èµ·ç¹Yåº§æ¨ + * @param x èµ·ç¹Xåº§æ¨ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool trap_creation(int y, int x) { - int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE; + BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE; return (project(0, 1, y, x, 0, GF_MAKE_TRAP, flg, -1)); } - +/*! + * @brief 森æçæå¦ç(ãã¬ã¤ã¤ã¼ä¸å¿ã«å¨å²1ãã¹) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool tree_creation(void) { - int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE; - return (project(0, 1, py, px, 0, GF_MAKE_TREE, flg, -1)); + BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE; + return (project(0, 1, p_ptr->y, p_ptr->x, 0, GF_MAKE_TREE, flg, -1)); } - +/*! + * @brief éæ³ã®ã«ã¼ã³çæå¦ç(ãã¬ã¤ã¤ã¼ä¸å¿ã«å¨å²1ãã¹) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool glyph_creation(void) { - int flg = PROJECT_GRID | PROJECT_ITEM; - return (project(0, 1, py, px, 0, GF_MAKE_GLYPH, flg, -1)); + BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM; + return (project(0, 1, p_ptr->y, p_ptr->x, 0, GF_MAKE_GLYPH, flg, -1)); } - +/*! + * @brief å£çæå¦ç(ãã¬ã¤ã¤ã¼ä¸å¿ã«å¨å²1ãã¹) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool wall_stone(void) { - int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE; + BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE; - bool dummy = (project(0, 1, py, px, 0, GF_STONE_WALL, flg, -1)); + bool dummy = (project(0, 1, p_ptr->y, p_ptr->x, 0, GF_STONE_WALL, flg, -1)); /* Update stuff */ p_ptr->update |= (PU_FLOW); @@ -5142,33 +5301,54 @@ bool wall_stone(void) return dummy; } - +/*! + * @brief ãã¢ç ´å£å¦ç(ãã¬ã¤ã¤ã¼ä¸å¿ã«å¨å²1ãã¹) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool destroy_doors_touch(void) { - int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE; - return (project(0, 1, py, px, 0, GF_KILL_DOOR, flg, -1)); + BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE; + return (project(0, 1, p_ptr->y, p_ptr->x, 0, GF_KILL_DOOR, flg, -1)); } +/*! + * @brief ãã©ãã解é¤å¦ç(ãã¬ã¤ã¤ã¼ä¸å¿ã«å¨å²1ãã¹) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool disarm_traps_touch(void) { - int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE; - return (project(0, 1, py, px, 0, GF_KILL_TRAP, flg, -1)); + BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE; + return (project(0, 1, p_ptr->y, p_ptr->x, 0, GF_KILL_TRAP, flg, -1)); } +/*! + * @brief ã¹ãªã¼ãã¢ã³ã¹ã¿ã¼å¦ç(ãã¬ã¤ã¤ã¼ä¸å¿ã«å¨å²1ãã¹) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool sleep_monsters_touch(void) { - int flg = PROJECT_KILL | PROJECT_HIDE; - return (project(0, 1, py, px, p_ptr->lev, GF_OLD_SLEEP, flg, -1)); + BIT_FLAGS flg = PROJECT_KILL | PROJECT_HIDE; + return (project(0, 1, p_ptr->y, p_ptr->x, p_ptr->lev, GF_OLD_SLEEP, flg, -1)); } -bool animate_dead(int who, int y, int x) +/*! + * @brief æ»è 復活å¦ç(èµ·ç¹ããå¨å²5ãã¹) + * @param who è¡è ã¢ã³ã¹ã¿ã¼ID(0ãªãã°ãã¬ã¤ãã¼) + * @param y èµ·ç¹Yåº§æ¨ + * @param x èµ·ç¹Xåº§æ¨ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ +bool animate_dead(MONSTER_IDX who, POSITION y, POSITION x) { - int flg = PROJECT_ITEM | PROJECT_HIDE; + BIT_FLAGS flg = PROJECT_ITEM | PROJECT_HIDE; return (project(who, 5, y, x, 0, GF_ANIM_DEAD, flg, -1)); } - +/*! + * @brief æ··æ²ææ¥å¦ç + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ void call_chaos(void) { int Chaos_type, dummy, dir; @@ -5180,7 +5360,7 @@ void call_chaos(void) GF_ELEC, GF_POIS, GF_ACID, GF_COLD, GF_FIRE, GF_MISSILE, GF_ARROW, GF_PLASMA, GF_HOLY_FIRE, GF_WATER, GF_LITE, GF_DARK, - GF_FORCE, GF_INERTIA, GF_MANA, GF_METEOR, + GF_FORCE, GF_INERTIAL, GF_MANA, GF_METEOR, GF_ICE, GF_CHAOS, GF_NETHER, GF_DISENCHANT, GF_SHARDS, GF_SOUND, GF_NEXUS, GF_CONFUSION, GF_TIME, GF_GRAVITY, GF_ROCKET, GF_NUKE, @@ -5217,17 +5397,22 @@ void call_chaos(void) } } - -/* - * Activate the evil Topi Ylinen curse +/*! + * @brief TY_CURSEå¦ççºå / Activate the evil Topi Ylinen curse + * @param stop_ty å帰å¦çåæ¢ãã©ã° + * @param count çºååæ° + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + * @details + *
* rr9: Stop the nasty things when a Cyberdemon is summoned * or the player gets paralyzed. + **/ bool activate_ty_curse(bool stop_ty, int *count) { int i = 0; - int flg = (PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_JUMP); + BIT_FLAGS flg = (PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_JUMP); do { @@ -5237,15 +5422,15 @@ bool activate_ty_curse(bool stop_ty, int *count) if (!(*count)) { msg_print(_("å°é¢ãæºãã...", "The ground trembles...")); - earthquake(py, px, 5 + randint0(10)); + earthquake(p_ptr->y, p_ptr->x, 5 + randint0(10)); if (!one_in_(6)) break; } case 30: case 31: if (!(*count)) { - int dam = damroll(10, 10); + HIT_POINT dam = damroll(10, 10); msg_print(_("ç´ç²ãªéåã®æ¬¡å ã¸ã®æãéããï¼", "A portal opens to a plane of raw mana!")); - project(0, 8, py, px, dam, GF_MANA, flg, -1); + project(0, 8, p_ptr->y, p_ptr->x, dam, GF_MANA, flg, -1); take_hit(DAMAGE_NOESCAPE, dam, _("ç´ç²ãªéåã®è§£æ¾", "released pure mana"), -1); if (!one_in_(6)) break; } @@ -5254,7 +5439,7 @@ bool activate_ty_curse(bool stop_ty, int *count) { msg_print(_("å¨å²ã®ç©ºéãæªãã ï¼", "Space warps about you!")); teleport_player(damroll(10, 10), TELEPORT_PASSIVE); - if (randint0(13)) (*count) += activate_hi_summon(py, px, FALSE); + if (randint0(13)) (*count) += activate_hi_summon(p_ptr->y, p_ptr->x, FALSE); if (!one_in_(6)) break; } case 34: @@ -5262,7 +5447,7 @@ bool activate_ty_curse(bool stop_ty, int *count) wall_breaker(); if (!randint0(7)) { - project(0, 7, py, px, 50, GF_KILL_WALL, flg, -1); + project(0, 7, p_ptr->y, p_ptr->x, 50, GF_KILL_WALL, flg, -1); take_hit(DAMAGE_NOESCAPE, 50, _("ã¨ãã«ã®ã¼ã®ããã", "surge of energy"), -1); } if (!one_in_(6)) break; @@ -5270,10 +5455,10 @@ bool activate_ty_curse(bool stop_ty, int *count) aggravate_monsters(0); if (!one_in_(6)) break; case 4: case 5: case 6: - (*count) += activate_hi_summon(py, px, FALSE); + (*count) += activate_hi_summon(p_ptr->y, p_ptr->x, FALSE); if (!one_in_(6)) break; case 7: case 8: case 9: case 18: - (*count) += summon_specific(0, py, px, dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET)); + (*count) += summon_specific(0, p_ptr->y, p_ptr->x, dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET)); if (!one_in_(6)) break; case 10: case 11: case 12: msg_print(_("çµé¨å¤ãä½ããå¸ãåãããæ°ãããï¼", "You feel your experience draining away...")); @@ -5307,7 +5492,7 @@ bool activate_ty_curse(bool stop_ty, int *count) */ if ((dun_level > 65) && !stop_ty) { - (*count) += summon_cyber(-1, py, px); + (*count) += summon_cyber(-1, p_ptr->y, p_ptr->x); stop_ty = TRUE; break; } @@ -5330,13 +5515,19 @@ bool activate_ty_curse(bool stop_ty, int *count) return stop_ty; } - -int activate_hi_summon(int y, int x, bool can_pet) +/*! + * @brief HI_SUMMON(ä¸ç´å¬å)å¦ççºå + * @param y å¬åä½ç½®Yåº§æ¨ + * @param x å¬åä½ç½®Xåº§æ¨ + * @param can_pet ãã¬ã¤ã¤ã¼ã®ãããã¨ãªãå¯è½æ§ããããªãã°TRUEã«ãã + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ +int activate_hi_summon(POSITION y, POSITION x, bool can_pet) { int i; int count = 0; - int summon_lev; - u32b mode = PM_ALLOW_GROUP; + DEPTH summon_lev; + BIT_FLAGS mode = PM_ALLOW_GROUP; bool pet = FALSE; if (can_pet) @@ -5413,13 +5604,19 @@ int activate_hi_summon(int y, int x, bool can_pet) } -/* ToDo: check */ -int summon_cyber(int who, int y, int x) +/*! + * @brief ãµã¤ãã¼ãã¼ã¢ã³ã®å¬å + * @param who å¬å主ã®ã¢ã³ã¹ã¿ã¼ID(0ãªãã°ãã¬ã¤ã¤ã¼) + * @param y å¬åä½ç½®Yåº§æ¨ + * @param x å¬åä½ç½®Xåº§æ¨ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ +int summon_cyber(MONSTER_IDX who, POSITION y, POSITION x) { int i; int max_cyber = (easy_band ? 1 : (dun_level / 50) + randint1(2)); int count = 0; - u32b mode = PM_ALLOW_GROUP; + BIT_FLAGS mode = PM_ALLOW_GROUP; /* Summoned by a monster */ if (who > 0) @@ -5438,18 +5635,21 @@ int summon_cyber(int who, int y, int x) return count; } - +/*! + * @brief å¨è¾ºç ´å£å¹æ(ãã¬ã¤ã¤ã¼ä¸å¿) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ void wall_breaker(void) { int i; - int y, x; + POSITION y = 0, x = 0; int attempts = 1000; if (randint1(80 + p_ptr->lev) < 70) { while (attempts--) { - scatter(&y, &x, py, px, 4, 0); + scatter(&y, &x, p_ptr->y, p_ptr->x, 4, 0); if (!cave_have_flag_bold(y, x, FF_PROJECT)) continue; @@ -5461,7 +5661,7 @@ void wall_breaker(void) } else if (randint1(100) > 30) { - earthquake(py, px, 1); + earthquake(p_ptr->y, p_ptr->x, 1); } else { @@ -5471,7 +5671,7 @@ void wall_breaker(void) { while (1) { - scatter(&y, &x, py, px, 10, 0); + scatter(&y, &x, p_ptr->y, p_ptr->x, 10, 0); if (!player_bold(y, x)) break; } @@ -5483,62 +5683,76 @@ void wall_breaker(void) } -/* - * Confuse monsters +/*! + * @brief ãããã¯ã»ã¢ã³ã¹ã¿ã¼å¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Confuse monsters + * @param dam å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ -bool confuse_monsters(int dam) +bool confuse_monsters(HIT_POINT dam) { return (project_hack(GF_OLD_CONF, dam)); } -/* - * Charm monsters +/*! + * @brief ãã£ã¼ã ã»ã¢ã³ã¹ã¿ã¼å¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Charm monsters + * @param dam å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ -bool charm_monsters(int dam) +bool charm_monsters(HIT_POINT dam) { return (project_hack(GF_CHARM, dam)); } -/* - * Charm animals +/*! + * @brief åç©é äºå¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Charm Animals + * @param dam å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ -bool charm_animals(int dam) +bool charm_animals(HIT_POINT dam) { return (project_hack(GF_CONTROL_ANIMAL, dam)); } -/* - * Stun monsters +/*! + * @brief ã¢ã³ã¹ã¿ã¼æ¦æ§å¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Stun monsters + * @param dam å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ -bool stun_monsters(int dam) +bool stun_monsters(HIT_POINT dam) { return (project_hack(GF_STUN, dam)); } -/* - * Stasis monsters +/*! + * @brief ã¢ã³ã¹ã¿ã¼åæ¢å¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Stasis monsters + * @param dam å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ -bool stasis_monsters(int dam) +bool stasis_monsters(HIT_POINT dam) { return (project_hack(GF_STASIS, dam)); } -/* - * Mindblast monsters +/*! + * @brief ã¢ã³ã¹ã¿ã¼ç²¾ç¥æ»æå¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Mindblast monsters + * @param dam å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ -bool mindblast_monsters(int dam) +bool mindblast_monsters(HIT_POINT dam) { return (project_hack(GF_PSI, dam)); } -/* - * Banish all monsters +/*! + * @brief ã¢ã³ã¹ã¿ã¼è¿½æ¾å¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Banish all monsters + * @param dist å¹åï¼è·é¢ï¼ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ bool banish_monsters(int dist) { @@ -5546,68 +5760,102 @@ bool banish_monsters(int dist) } -/* - * Turn evil +/*! + * @brief éªæªéæ£å¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Turn evil + * @param dam å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ -bool turn_evil(int dam) +bool turn_evil(HIT_POINT dam) { return (project_hack(GF_TURN_EVIL, dam)); } -/* - * Turn everyone +/*! + * @brief å ¨ã¢ã³ã¹ã¿ã¼éæ£å¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Turn everyone + * @param dam å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ -bool turn_monsters(int dam) +bool turn_monsters(HIT_POINT dam) { return (project_hack(GF_TURN_ALL, dam)); } -/* - * Death-ray all monsters (note: OBSCENELY powerful) +/*! + * @brief æ»ã®å ç·(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Death-ray all monsters (note: OBSCENELY powerful) + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ bool deathray_monsters(void) { return (project_hack(GF_DEATH_RAY, p_ptr->lev * 200)); } - +/*! + * @brief ãã£ã¼ã ã»ã¢ã³ã¹ã¿ã¼(1ä½) + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param plev ãã¯ã¼ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool charm_monster(int dir, int plev) { - int flg = PROJECT_STOP | PROJECT_KILL; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL; return (project_hook(GF_CHARM, dir, plev, flg)); } - +/*! + * @brief ã¢ã³ãããæ¯é (1ä½) + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param plev ãã¯ã¼ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool control_one_undead(int dir, int plev) { - int flg = PROJECT_STOP | PROJECT_KILL; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL; return (project_hook(GF_CONTROL_UNDEAD, dir, plev, flg)); } - +/*! + * @brief æªéæ¯é (1ä½) + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param plev ãã¯ã¼ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool control_one_demon(int dir, int plev) { - int flg = PROJECT_STOP | PROJECT_KILL; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL; return (project_hook(GF_CONTROL_DEMON, dir, plev, flg)); } - +/*! + * @brief åç©æ¯é (1ä½) + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param plev ãã¯ã¼ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool charm_animal(int dir, int plev) { - int flg = PROJECT_STOP | PROJECT_KILL; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL; return (project_hook(GF_CONTROL_ANIMAL, dir, plev, flg)); } - +/*! + * @brief çç©æ¯é (1ä½) + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param plev ãã¯ã¼ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool charm_living(int dir, int plev) { - int flg = PROJECT_STOP | PROJECT_KILL; + BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL; return (project_hook(GF_CONTROL_LIVING, dir, plev, flg)); } - +/*! + * @brief å¤ãã身å¦ç + * @param success å¤å®æåä¸ã®å¦çãªãã°TRUE + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool kawarimi(bool success) { object_type forge; @@ -5626,8 +5874,8 @@ bool kawarimi(bool success) return FALSE; } - y = py; - x = px; + y = p_ptr->y; + x = p_ptr->x; teleport_player(10 + randint1(90), 0L); @@ -5656,9 +5904,10 @@ bool kawarimi(bool success) } -/* - * "Rush Attack" routine for Samurai or Ninja - * Return value is for checking "done" +/*! + * @brief å ¥èº«å¦ç / "Rush Attack" routine for Samurai or Ninja + * @param mdeath ç®æ¨ã¢ã³ã¹ã¿ã¼ãæ»äº¡ããããè¿ã + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã / Return value is for checking "done" */ bool rush_attack(bool *mdeath) { @@ -5676,8 +5925,8 @@ bool rush_attack(bool *mdeath) if (!get_aim_dir(&dir)) return FALSE; /* Use the given direction */ - tx = px + project_length * ddx[dir]; - ty = py + project_length * ddy[dir]; + tx = p_ptr->x + project_length * ddx[dir]; + ty = p_ptr->y + project_length * ddy[dir]; /* Hack -- Use an actual "target" */ if ((dir == 5) && target_okay()) @@ -5688,15 +5937,15 @@ bool rush_attack(bool *mdeath) if (in_bounds(ty, tx)) tm_idx = cave[ty][tx].m_idx; - path_n = project_path(path_g, project_length, py, px, ty, tx, PROJECT_STOP | PROJECT_KILL); + path_n = project_path(path_g, project_length, p_ptr->y, p_ptr->x, ty, tx, PROJECT_STOP | PROJECT_KILL); project_length = 0; /* No need to move */ if (!path_n) return TRUE; /* Use ty and tx as to-move point */ - ty = py; - tx = px; + ty = p_ptr->y; + tx = p_ptr->x; /* Project along the path */ for (i = 0; i < path_n; i++) @@ -5772,8 +6021,10 @@ bool rush_attack(bool *mdeath) } -/* - * Remove all mirrors in this floor +/*! + * @brief å ¨é¡ã®æ¶å» / Remove all mirrors in this floor + * @param explode ççºå¦çãä¼´ããªãã°TRUE + * @return ãªã */ void remove_all_mirrors(bool explode) {