* this is done in two passes. -- JDL
* </pre>
*/
-bool project_hack(int typ, HIT_POINT dam)
+bool project_hack(EFFECT_ID typ, HIT_POINT dam)
{
int i, x, y;
int flg = PROJECT_JUMP | PROJECT_KILL | PROJECT_HIDE;
Term->scr->cv = cv;
Term_fresh();
- /* Done */
if (probe)
{
chg_virtue(V_KNOWLEDGE, 1);
/* During generation, destroyed artifacts are "preserved" */
if (preserve_mode || in_generate)
{
- s16b this_o_idx, next_o_idx = 0;
+ OBJECT_IDX this_o_idx, next_o_idx = 0;
/* Scan all objects in the grid */
for (this_o_idx = c_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx)
/* Hack -- Affect player */
if (flag)
{
- /* Message */
msg_print(_("燃えるような閃光が発生した!", "There is a searing blast of light!"));
/* Blind the player */
/* Delete (not kill) "dead" monsters */
if (m_ptr->hp < 0)
{
- /* Message */
if (!ignore_unview || is_seen(m_ptr))
msg_format(_("%^sは岩石に埋もれてしまった!", "%^s is embedded in the rock!"), m_name);
* @param rad 効果半径
* @return 作用が実際にあった場合TRUEを返す
*/
-bool lite_area(HIT_POINT dam, int rad)
+bool lite_area(HIT_POINT dam, POSITION rad)
{
BIT_FLAGS flg = PROJECT_GRID | PROJECT_KILL;
* @param rad 効果半径
* @return 作用が実際にあった場合TRUEを返す
*/
-bool unlite_area(HIT_POINT dam, int rad)
+bool unlite_area(HIT_POINT dam, POSITION rad)
{
BIT_FLAGS flg = PROJECT_GRID | PROJECT_KILL;
* Affect grids, objects, and monsters
* </pre>
*/
-bool fire_ball(int typ, DIRECTION dir, HIT_POINT dam, int rad)
+bool fire_ball(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad)
{
- int tx, ty;
+ POSITION tx, ty;
BIT_FLAGS flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
* Affect grids, objects, and monsters
* </pre>
*/
-bool fire_breath(int typ, DIRECTION dir, HIT_POINT dam, int rad)
+bool fire_breath(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad)
{
return fire_ball(typ, dir, dam, -rad);
}
* Affect grids, objects, and monsters
* </pre>
*/
-bool fire_rocket(int typ, DIRECTION dir, HIT_POINT dam, int rad)
+bool fire_rocket(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad)
{
int tx, ty;
* Affect grids, objects, and monsters
* </pre>
*/
-bool fire_ball_hide(int typ, DIRECTION dir, HIT_POINT dam, int rad)
+bool fire_ball_hide(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad)
{
int tx, ty;
* @param dev 回数分散
* @return 作用が実際にあった場合TRUEを返す
*/
-bool fire_blast(int typ, DIRECTION dir, int dd, int ds, int num, int dev)
+bool fire_blast(EFFECT_ID typ, DIRECTION dir, int dd, int ds, int num, int dev)
{
int ly, lx, ld;
int ty, tx, y, x;
*/
bool teleport_swap(DIRECTION dir)
{
- int tx, ty;
- cave_type * c_ptr;
- monster_type * m_ptr;
- monster_race * r_ptr;
+ POSITION tx, ty;
+ cave_type* c_ptr;
+ monster_type* m_ptr;
+ monster_race* r_ptr;
if ((dir == 5) && target_okay())
{
* @param flg フラグ
* @return 作用が実際にあった場合TRUEを返す
*/
-bool project_hook(int typ, DIRECTION dir, HIT_POINT dam, BIT_FLAGS flg)
+bool project_hook(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, BIT_FLAGS flg)
{
int tx, ty;
* Affect monsters and grids (not objects).
* </pre>
*/
-bool fire_bolt(int typ, DIRECTION dir, HIT_POINT dam)
+bool fire_bolt(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_GRID;
if (typ != GF_ARROW) flg |= PROJECT_REFLECTABLE;
* Affect monsters, grids and objects.
* </pre>
*/
-bool fire_beam(int typ, DIRECTION dir, HIT_POINT dam)
+bool fire_beam(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam)
{
BIT_FLAGS flg = PROJECT_BEAM | PROJECT_KILL | PROJECT_GRID | PROJECT_ITEM;
return (project_hook(typ, dir, dam, flg));
* Affect monsters, grids and objects.
* </pre>
*/
-bool fire_bolt_or_beam(int prob, int typ, DIRECTION dir, HIT_POINT dam)
+bool fire_bolt_or_beam(PERCENTAGE prob, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam)
{
if (randint0(100) < prob)
{
* @param plev プレイヤーレベル(=効力)
* @return 作用が実際にあった場合TRUEを返す
*/
-bool confuse_monster(DIRECTION dir, int plev)
+bool confuse_monster(DIRECTION dir, PLAYER_LEVEL plev)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
return (project_hook(GF_OLD_CONF, dir, plev, flg));
* @param plev プレイヤーレベル(=効力)
* @return 作用が実際にあった場合TRUEを返す
*/
-bool stun_monster(DIRECTION dir, int plev)
+bool stun_monster(DIRECTION dir, PLAYER_LEVEL plev)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
return (project_hook(GF_STUN, dir, plev, flg));
* @param plev プレイヤーレベル(=効力)
* @return 作用が実際にあった場合TRUEを返す
*/
-bool fear_monster(DIRECTION dir, int plev)
+bool fear_monster(DIRECTION dir, PLAYER_LEVEL plev)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
return (project_hook(GF_TURN_ALL, dir, plev, flg));
* @param plev プレイヤーレベル(効力はplev*200)
* @return 作用が実際にあった場合TRUEを返す
*/
-bool death_ray(DIRECTION dir, int plev)
+bool death_ray(DIRECTION dir, PLAYER_LEVEL plev)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
return (project_hook(GF_DEATH_RAY, dir, plev * 200, flg));
void call_chaos(void)
{
int Chaos_type, dummy, dir;
- int plev = p_ptr->lev;
+ PLAYER_LEVEL plev = p_ptr->lev;
bool line_chaos = FALSE;
int hurt_types[31] =
* @param plev パワー
* @return 作用が実際にあった場合TRUEを返す
*/
-bool charm_monster(DIRECTION dir, int plev)
+bool charm_monster(DIRECTION dir, PLAYER_LEVEL plev)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL;
return (project_hook(GF_CHARM, dir, plev, flg));
* @param plev パワー
* @return 作用が実際にあった場合TRUEを返す
*/
-bool control_one_undead(DIRECTION dir, int plev)
+bool control_one_undead(DIRECTION dir, PLAYER_LEVEL plev)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL;
return (project_hook(GF_CONTROL_UNDEAD, dir, plev, flg));
* @param plev パワー
* @return 作用が実際にあった場合TRUEを返す
*/
-bool control_one_demon(DIRECTION dir, int plev)
+bool control_one_demon(DIRECTION dir, PLAYER_LEVEL plev)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL;
return (project_hook(GF_CONTROL_DEMON, dir, plev, flg));
* @param plev パワー
* @return 作用が実際にあった場合TRUEを返す
*/
-bool charm_animal(DIRECTION dir, int plev)
+bool charm_animal(DIRECTION dir, PLAYER_LEVEL plev)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL;
return (project_hook(GF_CONTROL_ANIMAL, dir, plev, flg));
{
object_type forge;
object_type *q_ptr = &forge;
- int y, x;
+ POSITION y, x;
if (p_ptr->is_dead) return FALSE;
if (p_ptr->confused || p_ptr->blind || p_ptr->paralyzed || p_ptr->image) return FALSE;
case 1:
case 2:
{
- /* Message */
msg_print(_("あなたは悪性のオーラに包み込まれた。", "You are surrounded by a malignant aura."));
sound(SOUND_EVIL);
case 3:
{
- /* Message */
msg_print(_("あなたは強力なオーラに包み込まれた。", "You are surrounded by a powerful aura."));
/* Dispel monsters */
* @param rad 効力の半径
* @return なし
*/
-void cast_meteor(HIT_POINT dam, int rad)
+void cast_meteor(HIT_POINT dam, POSITION rad)
{
int i;
int b = 10 + randint1(10);
* @param rad 効力の半径
* @return ターゲットを指定し、実行したならばTRUEを返す。
*/
-bool cast_wrath_of_the_god(HIT_POINT dam, int rad)
+bool cast_wrath_of_the_god(HIT_POINT dam, POSITION rad)
{
POSITION x, y, tx, ty;
POSITION nx, ny;
*/
void cast_wonder(DIRECTION dir)
{
- int plev = p_ptr->lev;
+ PLAYER_LEVEL plev = p_ptr->lev;
int die = randint1(100) + plev / 5;
int vir = virtue_number(V_CHANCE);
*/
void cast_invoke_spirits(DIRECTION dir)
{
- int plev = p_ptr->lev;
+ PLAYER_LEVEL plev = p_ptr->lev;
int die = randint1(100) + plev / 5;
int vir = virtue_number(V_CHANCE);
*/
void cast_shuffle(void)
{
- int plev = p_ptr->lev;
+ PLAYER_LEVEL plev = p_ptr->lev;
DIRECTION dir;
int die;
int vir = virtue_number(V_CHANCE);
return ident;
}
-bool_hack cure_light_wounds(int dice, int sides)
+bool_hack cure_light_wounds(DICE_NUMBER dice, DICE_SID sides)
{
bool_hack ident = FALSE;
if (hp_player(damroll(dice, sides))) ident = TRUE;
return ident;
}
-bool_hack cure_serious_wounds(int dice, int sides)
+bool_hack cure_serious_wounds(DICE_NUMBER dice, DICE_SID sides)
{
bool_hack ident = FALSE;
if (hp_player(damroll(dice, sides))) ident = TRUE;