X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fspells2.c;h=e0559f55374574bb1b8739d6654bb5c6b12fd85d;hb=7358da8a134c7f9911e69e1ec6162e51aed82ed0;hp=a235213e3dfa2bf47efe70f49051ca9b7baff168;hpb=54f8e038011f781490518d2220c278040a5a907e;p=hengband%2Fhengband.git diff --git a/src/spells2.c b/src/spells2.c index a235213e3..e0559f553 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,7 +1884,7 @@ 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); @@ -1908,7 +1908,7 @@ 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); @@ -1930,7 +1930,7 @@ 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); @@ -1952,7 +1952,7 @@ 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); @@ -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) @@ -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) @@ -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) @@ -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) @@ -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)) @@ -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; @@ -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); @@ -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; @@ -2920,10 +2927,16 @@ void aggravate_monsters(int who) } -/* - * Delete a non-unique/non-quest monster +/*! + * @brief ã¢ã³ã¹ã¿ã¼ã¸ã®åä½æ¹æ®ºå¦çãµãã«ã¼ãã³ / Delete a non-unique/non-quest monster + * @param m_idx æ¹æ®ºããã¢ã³ã¹ã¿ã¼ID + * @param power æ¹æ®ºã®å¨å + * @param player_cast ãã¬ã¤ã¤ã¼ã®éæ³ã«ãããã®ãªãã° TRUE + * @param dam_side ãã¬ã¤ã¤ã¼ã¸ã®è² æ ãã¡ã¼ã¸é(1d(dam_side)) + * @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]; @@ -2995,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); @@ -3016,12 +3029,15 @@ bool genocide_aux(int m_idx, int power, bool player_cast, int dam_side, cptr spe } -/* - * Delete all non-unique/non-quest monsters of a given "type" from the level +/*! + * @brief ã¢ã³ã¹ã¿ã¼ã¸ã®ã·ã³ãã«æ¹æ®ºå¦çã«ã¼ãã³ / Delete all non-unique/non-quest monsters of a given "type" from the level + * @param power æ¹æ®ºã®å¨å + * @param player_cast ãã¬ã¤ã¤ã¼ã®éæ³ã«ãããã®ãªãã° TRUE + * @return å¹åããã£ãå ´åTRUEãè¿ã */ bool symbol_genocide(int power, bool player_cast) { - int i; + MONSTER_IDX i; char typ; bool result = FALSE; @@ -3060,12 +3076,15 @@ bool symbol_genocide(int power, bool player_cast) } -/* - * Delete all nearby (non-unique) monsters +/*! + * @brief ã¢ã³ã¹ã¿ã¼ã¸ã®å¨è¾ºæ¹æ®ºå¦çã«ã¼ãã³ / Delete all nearby (non-unique) monsters + * @param power æ¹æ®ºã®å¨å + * @param player_cast ãã¬ã¤ã¤ã¼ã®éæ³ã«ãããã®ãªãã° TRUE + * @return å¹åããã£ãå ´åTRUEãè¿ã */ bool mass_genocide(int power, bool player_cast) { - int i; + MONSTER_IDX i; bool result = FALSE; /* Prevent mass genocide in quest levels */ @@ -3099,13 +3118,15 @@ bool mass_genocide(int power, bool player_cast) } - -/* - * Delete all nearby (non-unique) undead +/*! + * @brief ã¢ã³ãããã»ã¢ã³ã¹ã¿ã¼ã¸ã®å¨è¾ºæ¹æ®ºå¦çã«ã¼ãã³ / Delete all nearby (non-unique) undead + * @param power æ¹æ®ºã®å¨å + * @param player_cast ãã¬ã¤ã¤ã¼ã®éæ³ã«ãããã®ãªãã° TRUE + * @return å¹åããã£ãå ´åTRUEãè¿ã */ bool mass_genocide_undead(int power, bool player_cast) { - int i; + POSITION i; bool result = FALSE; /* Prevent mass genocide in quest levels */ @@ -3142,9 +3163,9 @@ bool mass_genocide_undead(int power, bool player_cast) } - -/* - * Probe nearby monsters +/*! + * @brief å¨è¾ºã¢ã³ã¹ã¿ã¼ã調æ»ãã / Probe nearby monsters + * @return å¹åããã£ãå ´åTRUEãè¿ã */ bool probing(void) { @@ -3219,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)); @@ -3262,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)); @@ -3303,13 +3320,20 @@ sprintf(buf, "%s ... align:%s HP:%d/%d AC:%d speed:%s%d exp:", m_name, align, m_ -/* - * The spell of destruction - * +/*! + * @brief *ç ´å£*å¦çãè¡ã / The spell of destruction + * @param y1 ç ´å£ã®ä¸å¿Yåº§æ¨ + * @param x1 ç ´å£ã®ä¸å¿Xåº§æ¨ + * @param r ç ´å£ã®åå¾ + * @param in_generate ãã³ã¸ã§ã³ããã¢çæä¸ã®å¦çãªãã°TRUE + * @return å¹åããã£ãå ´åTRUEãè¿ã + * @details + *
* This spell "deletes" monsters (instead of "killing" them). * * Later we may use one function for both "destruction" and * "earthquake" by using the "full" to select "destruction". + **/ bool destroy_area(int y1, int x1, int r, bool in_generate) { @@ -3571,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); } } @@ -3580,8 +3604,16 @@ bool destroy_area(int y1, int x1, int r, bool in_generate) } -/* +/*! + * @brief å°éå¦ç(ãµãã«ã¼ãã³) / * Induce an "earthquake" of the given radius at the given location. + * @return å¹åããã£ãå ´åTRUEãè¿ã + * @param cy ä¸å¿Yåº§æ¨ + * @param cx ä¸å¿Xåº§æ¨ + * @param r å¹æåå¾ + * @param m_idx å°éãèµ·ãããã¢ã³ã¹ã¿ã¼ID(0ãªãã°ãã¬ã¤ã¤ã¼) + * @details + *
* * This will turn some walls into floors and some floors into walls. * @@ -3597,12 +3629,14 @@ bool destroy_area(int y1, int x1, int r, bool in_generate) * Note that as of now (2.7.8) no monster may occupy a "wall" grid, even * for a single turn, unless that monster can pass_walls or kill_walls. * 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]; @@ -3671,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; @@ -3753,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) @@ -3900,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; @@ -4046,22 +4080,33 @@ 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 */ return (TRUE); } +/*! + * @brief å°éå¦ç(ãã¬ã¤ã¤ã¼ã®ä¸å¿çºå) / + * Induce an "earthquake" of the given radius at the given location. + * @return å¹åããã£ãå ´åTRUEãè¿ã + * @param cy ä¸å¿Yåº§æ¨ + * @param cx ä¸å¿Xåº§æ¨ + * @param r å¹æåå¾ + */ bool earthquake(int cy, int cx, int r) { return earthquake_aux(cy, cx, r, 0); } - +/*! + * @brief ãããçç ´å¦ç / + * @return ãªã + */ void discharge_minion(void) { - int i; + MONSTER_IDX i; bool okay = TRUE; for (i = 1; i < m_max; i++) @@ -4114,20 +4159,21 @@ void discharge_minion(void) } -/* +/*! + * @brief é¨å±å ¨ä½ãç §ãããµãã«ã¼ãã³ + * @return ãªã + * @details + *
* This routine clears the entire "temp" set. - * * This routine will Perma-Lite all "temp" grids. - * * This routine is used (only) by "lite_room()" - * * Dark grids are illuminated. - * * Also, process all affected monsters. * * SMART monsters always wake up when illuminated * NORMAL monsters wake up 1/4 the time when illuminated * STUPID monsters wake up 1/10 the time when illuminated + **/ static void cave_temp_room_lite(void) { @@ -4203,16 +4249,17 @@ static void cave_temp_room_lite(void) -/* +/*! + * @brief é¨å±å ¨ä½ãæããããµãã«ã¼ãã³ + * @return ãªã + * @details + *
* This routine clears the entire "temp" set. - * * This routine will "darken" all "temp" grids. - * * In addition, some of these grids will be "unmarked". - * * This routine is used (only) by "unlite_room()" - * * Also, process all affected monsters + **/ static void cave_temp_room_unlite(void) { @@ -4287,8 +4334,12 @@ static void cave_temp_room_unlite(void) } -/* - * Determine how much contiguous open space this grid is next to +/*! + * @brief å¨è¾ºã«é¢æ°ãã¤ã³ã¿ã®æ¡ä»¶ã«è©²å½ããå°å½¢ãããã¤ããããè¨ç®ãã / Determine how much contiguous open space this grid is next to + * @param cy Yåº§æ¨ + * @param cx Xåº§æ¨ + * @param pass_bold å°å½¢æ¡ä»¶ãè¿ãé¢æ°ãã¤ã³ã¿ + * @return 該å½å°å½¢ã®æ° */ static int next_to_open(int cy, int cx, bool (*pass_bold)(int, int)) { @@ -4324,7 +4375,13 @@ static int next_to_open(int cy, int cx, bool (*pass_bold)(int, int)) return (MAX(len, blen)); } - +/*! + * @brief å¨è¾ºã«é¢æ°ãã¤ã³ã¿ã®æ¡ä»¶ã«è©²å½ããå°å½¢ãããã¤ããããè¨ç®ãã / Determine how much contiguous open space this grid is next to + * @param cy Yåº§æ¨ + * @param cx Xåº§æ¨ + * @param pass_bold å°å½¢æ¡ä»¶ãè¿ãé¢æ°ãã¤ã³ã¿ + * @return 該å½å°å½¢ã®æ° + */ static int next_to_walls_adj(int cy, int cx, bool (*pass_bold)(int, int)) { int i; @@ -4345,8 +4402,13 @@ static int next_to_walls_adj(int cy, int cx, bool (*pass_bold)(int, int)) } -/* - * Aux function -- see below +/*! + * @brief é¨å±å ã«ããä¸ç¹ã®å¨å²ã«è©²å½ããå°å½¢æ°ãããã¤ããããã°ãã¼ãã«å¤æ°temp_nã«è¿ã / Aux function -- see below + * @param y é¨å±å ã®y座æ¨1ç¹ + * @param x é¨å±å ã®x座æ¨1ç¹ + * @param only_room é¨å±å å°å½¢ã®ã¿ããã§ãã¯å¯¾è±¡ã«ãããªãã° TRUE + * @param pass_bold å°å½¢æ¡ä»¶ãè¿ãé¢æ°ãã¤ã³ã¿ + * @return 該å½å°å½¢ã®æ° */ static void cave_temp_room_aux(int y, int x, bool only_room, bool (*pass_bold)(int, int)) { @@ -4367,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 */ /* @@ -4394,32 +4456,45 @@ static void cave_temp_room_aux(int y, int x, bool only_room, bool (*pass_bold)(i temp_n++; } -/* - * Aux function -- see below +/*! + * @brief æå®ã®ãã¹ãå ãéãã(LOSãã©ã°ãæã¤ã)ãè¿ãã / Aux function -- see below + * @param y æå®Yåº§æ¨ + * @param x æå®Xåº§æ¨ + * @return å ãéããªãã°trueãè¿ãã */ static bool cave_pass_lite_bold(int y, int x) { return cave_los_bold(y, x); } -/* - * Aux function -- see below +/*! + * @brief é¨å±å ã«ããä¸ç¹ã®å¨å²ãããã¤å ãéãããã°ãã¼ãã«å¤æ°temp_nã«è¿ã / Aux function -- see below + * @param y æå®Yåº§æ¨ + * @param x æå®Xåº§æ¨ + * @return ãªã */ static void cave_temp_lite_room_aux(int y, int x) { cave_temp_room_aux(y, x, FALSE, cave_pass_lite_bold); } -/* - * Aux function -- see below +/*! + * @brief æå®ã®ãã¹ãå ãéããå°ç·ã®ã¿ãéãããè¿ãã / Aux function -- see below + * @param y æå®Yåº§æ¨ + * @param x æå®Xåº§æ¨ + * @return å°ç·ãéããªãã°trueãè¿ãã */ static bool cave_pass_dark_bold(int y, int x) { return cave_have_flag_bold(y, x, FF_PROJECT); } -/* - * Aux function -- see below + +/*! + * @brief é¨å±å ã«ããä¸ç¹ã®å¨å²ãããã¤å°ç·ãéãããã°ãã¼ãã«å¤æ°temp_nã«è¿ã / Aux function -- see below + * @param y æå®Yåº§æ¨ + * @param x æå®Xåº§æ¨ + * @return ãªã */ static void cave_temp_unlite_room_aux(int y, int x) { @@ -4427,10 +4502,11 @@ static void cave_temp_unlite_room_aux(int y, int x) } - - -/* - * Illuminate any room containing the given location. +/*! + * @brief æå®ãããé¨å±å ãç §ãã / Illuminate any room containing the given location. + * @param y1 æå®Yåº§æ¨ + * @param x1 æå®Xåº§æ¨ + * @return ãªã */ void lite_room(int y1, int x1) { @@ -4465,13 +4541,16 @@ 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); } } -/* - * Darken all rooms containing the given location +/*! + * @brief æå®ãããé¨å±å ãæããã / Darken all rooms containing the given location + * @param y1 æå®Yåº§æ¨ + * @param x1 æå®Xåº§æ¨ + * @return ãªã */ void unlite_room(int y1, int x1) { @@ -4507,9 +4586,11 @@ void unlite_room(int y1, int x1) -/* - * Hack -- call light around the player - * Affect all monsters in the projection radius +/*! + * @brief ãã¬ã¤ã¤ã¼ä½ç½®ãä¸å¿ã«LITE_WEAKå±æ§ãéããç §æå¦çãè¡ã / Hack -- call light around the player Affect all monsters in the projection radius + * @param dam å¨å + * @param rad å¹æåå¾ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ bool lite_area(int dam, int rad) { @@ -4528,19 +4609,21 @@ 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); } -/* - * Hack -- call darkness around the player - * Affect all monsters in the projection radius +/*! + * @brief ãã¬ã¤ã¤ã¼ä½ç½®ãä¸å¿ã«LITE_DARKå±æ§ãéããæ¶ç¯å¦çãè¡ã / Hack -- call light around the player Affect all monsters in the projection radius + * @param dam å¨å + * @param rad å¹æåå¾ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ bool unlite_area(int dam, int rad) { @@ -4553,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); @@ -4564,11 +4647,19 @@ bool unlite_area(int dam, int rad) -/* - * Cast a ball spell +/*! + * @brief ãã¼ã«ç³»ã¹ãã«ã®çºå / Cast a ball spell + * @param typ å¹æå±æ§ + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param dam å¨å + * @param rad åå¾ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + * @details + *
* Stop if we hit a monster, act as a "ball" * Allow "target" mode to pass over monsters * Affect grids, objects, and monsters + **/ bool fire_ball(int typ, int dir, int dam, int rad) { @@ -4578,8 +4669,8 @@ bool fire_ball(int typ, int dir, int dam, int rad) 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()) @@ -4594,11 +4685,20 @@ bool fire_ball(int typ, int dir, int dam, int rad) } -/* - * Cast a ball spell + +/*! + * @brief ãã±ããç³»ã¹ãã«ã®çºå(詳細ãªå·®ã¯ç¢ºèªä¸) / Cast a ball spell + * @param typ å¹æå±æ§ + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param dam å¨å + * @param rad åå¾ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + * @details + *
* Stop if we hit a monster, act as a "ball" * Allow "target" mode to pass over monsters * Affect grids, objects, and monsters + **/ bool fire_rocket(int typ, int dir, int dam, int rad) { @@ -4607,8 +4707,8 @@ bool fire_rocket(int typ, int dir, int dam, int rad) int 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()) @@ -4622,11 +4722,19 @@ bool fire_rocket(int typ, int dir, int dam, int rad) } -/* - * Cast a ball spell +/*! + * @brief ãã¼ã«(ãã¤ã)ç³»ã¹ãã«ã®çºå / Cast a ball spell + * @param typ å¹æå±æ§ + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param dam å¨å + * @param rad åå¾ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + * @details + *
* Stop if we hit a monster, act as a "ball" * Allow "target" mode to pass over monsters * Affect grids, objects, and monsters + **/ bool fire_ball_hide(int typ, int dir, int dam, int rad) { @@ -4635,8 +4743,8 @@ bool fire_ball_hide(int typ, int dir, int dam, int rad) int 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()) @@ -4651,13 +4759,23 @@ 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) { @@ -4668,6 +4786,16 @@ bool fire_meteor(int who, int typ, int y, int x, int dam, int rad) } +/*! + * @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; @@ -4682,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" */ @@ -4692,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++) @@ -4721,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) { @@ -4738,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]; @@ -4757,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.")); @@ -4790,8 +4920,13 @@ 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) { @@ -4801,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()) @@ -4816,10 +4951,17 @@ 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) { @@ -4829,10 +4971,17 @@ bool fire_bolt(int typ, int dir, int dam) } -/* - * 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) { @@ -4841,8 +4990,18 @@ bool fire_beam(int typ, int dir, int dam) } -/* - * 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) { @@ -4856,9 +5015,11 @@ 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) { @@ -4866,96 +5027,163 @@ bool lite_line(int dir, int dam) return (project_hook(GF_LITE_WEAK, dir, dam, flg)); } - +/*! + * @brief å¸è¡ãã«ãå¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param dam å¨å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool drain_life(int dir, int dam) { int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE; return (project_hook(GF_OLD_DRAIN, dir, dam, flg)); } - +/*! + * @brief 岩ç³æº¶è§£å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param dam å¨å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool wall_to_mud(int dir, int dam) { int 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; 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; 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; return (project_hook(GF_KILL_TRAP, dir, 0, flg)); } - +/*! + * @brief ã¢ã³ã¹ã¿ã¼å復å¦ç + * @param dir æ¹å(5ãªãã°ã°ãã¼ãã«å¤æ° target_col/target_row ã®åº§æ¨ãç®æ¨ã«ãã) + * @param dam å¨å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool heal_monster(int dir, int dam) { int 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; 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; 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; 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; 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; 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; @@ -4965,70 +5193,104 @@ bool poly_monster(int dir, int power) 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; 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; 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; 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; 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)); + 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; 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)); + 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)); + 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; - 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); @@ -5039,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)); + 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)); + 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)); + 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; return (project(who, 5, y, x, 0, GF_ANIM_DEAD, flg, -1)); } - +/*! + * @brief æ··æ²ææ¥å¦ç + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ void call_chaos(void) { int Chaos_type, dummy, dir; @@ -5077,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, @@ -5114,11 +5397,16 @@ 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) { @@ -5134,7 +5422,7 @@ 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: @@ -5142,7 +5430,7 @@ bool activate_ty_curse(bool stop_ty, int *count) { int 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; } @@ -5151,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: @@ -5159,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; @@ -5167,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...")); @@ -5204,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; } @@ -5227,12 +5515,18 @@ 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; + DEPTH summon_lev; u32b mode = PM_ALLOW_GROUP; bool pet = FALSE; @@ -5310,8 +5604,14 @@ 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)); @@ -5335,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; @@ -5358,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 { @@ -5368,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; } @@ -5380,8 +5683,10 @@ void wall_breaker(void) } -/* - * Confuse monsters +/*! + * @brief ãããã¯ã»ã¢ã³ã¹ã¿ã¼å¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Confuse monsters + * @param dam å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ bool confuse_monsters(int dam) { @@ -5389,8 +5694,10 @@ bool confuse_monsters(int dam) } -/* - * Charm monsters +/*! + * @brief ãã£ã¼ã ã»ã¢ã³ã¹ã¿ã¼å¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Charm monsters + * @param dam å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ bool charm_monsters(int dam) { @@ -5398,8 +5705,10 @@ bool charm_monsters(int dam) } -/* - * Charm animals +/*! + * @brief åç©é äºå¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Charm Animals + * @param dam å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ bool charm_animals(int dam) { @@ -5407,8 +5716,10 @@ bool charm_animals(int dam) } -/* - * Stun monsters +/*! + * @brief ã¢ã³ã¹ã¿ã¼æ¦æ§å¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Stun monsters + * @param dam å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ bool stun_monsters(int dam) { @@ -5416,8 +5727,10 @@ bool stun_monsters(int dam) } -/* - * Stasis monsters +/*! + * @brief ã¢ã³ã¹ã¿ã¼åæ¢å¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Stasis monsters + * @param dam å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ bool stasis_monsters(int dam) { @@ -5425,8 +5738,10 @@ bool stasis_monsters(int dam) } -/* - * Mindblast monsters +/*! + * @brief ã¢ã³ã¹ã¿ã¼ç²¾ç¥æ»æå¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Mindblast monsters + * @param dam å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ bool mindblast_monsters(int dam) { @@ -5434,8 +5749,10 @@ bool mindblast_monsters(int dam) } -/* - * Banish all monsters +/*! + * @brief ã¢ã³ã¹ã¿ã¼è¿½æ¾å¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Banish all monsters + * @param dist å¹åï¼è·é¢ï¼ + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ bool banish_monsters(int dist) { @@ -5443,8 +5760,10 @@ bool banish_monsters(int dist) } -/* - * Turn evil +/*! + * @brief éªæªéæ£å¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Turn evil + * @param dam å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ bool turn_evil(int dam) { @@ -5452,8 +5771,10 @@ bool turn_evil(int dam) } -/* - * Turn everyone +/*! + * @brief å ¨ã¢ã³ã¹ã¿ã¼éæ£å¹æ(ãã¬ã¤ã¤ã¼è¦çç¯å²å ) / Turn everyone + * @param dam å¹å + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã */ bool turn_monsters(int dam) { @@ -5461,50 +5782,80 @@ bool turn_monsters(int 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; 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; 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; 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; 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; return (project_hook(GF_CONTROL_LIVING, dir, plev, flg)); } - +/*! + * @brief å¤ãã身å¦ç + * @param success å¤å®æåä¸ã®å¦çãªãã°TRUE + * @return ä½ç¨ãå®éã«ãã£ãå ´åTRUEãè¿ã + */ bool kawarimi(bool success) { object_type forge; @@ -5523,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); @@ -5553,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) { @@ -5573,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()) @@ -5585,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++) @@ -5669,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) {