* 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;
* @param x1 指定X座標
* @return なし
*/
-void unlite_room(int y1, int x1)
+void unlite_room(POSITION y1, POSITION x1)
{
- int i, x, y;
+ int i;
+ POSITION x, y;
/* Add the initial grid */
cave_temp_unlite_room_aux(y1, x1);
* @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, int 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, int 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, int 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, int 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, int 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;
* @param dir 方向(5ならばグローバル変数 target_col/target_row の座標を目標にする)
* @return 作用が実際にあった場合TRUEを返す
*/
-bool teleport_swap(int dir)
+bool teleport_swap(DIRECTION dir)
{
int tx, ty;
cave_type * c_ptr;
* @param flg フラグ
* @return 作用が実際にあった場合TRUEを返す
*/
-bool project_hook(int typ, int 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, int 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, int 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, int dir, HIT_POINT dam)
+bool fire_bolt_or_beam(int prob, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam)
{
if (randint0(100) < prob)
{
* @param dam 威力
* @return 作用が実際にあった場合TRUEを返す
*/
-bool lite_line(int dir, HIT_POINT dam)
+bool lite_line(DIRECTION dir, HIT_POINT dam)
{
BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_KILL;
return (project_hook(GF_LITE_WEAK, dir, dam, flg));
* @param dam 威力
* @return 作用が実際にあった場合TRUEを返す
*/
-bool hypodynamic_bolt(int dir, HIT_POINT dam)
+bool hypodynamic_bolt(DIRECTION dir, HIT_POINT dam)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
return (project_hook(GF_HYPODYNAMIA, dir, dam, flg));
* @param dam 威力
* @return 作用が実際にあった場合TRUEを返す
*/
-bool wall_to_mud(int dir, HIT_POINT dam)
+bool wall_to_mud(DIRECTION dir, HIT_POINT dam)
{
BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
return (project_hook(GF_KILL_WALL, dir, dam, flg));
* @param dir 方向(5ならばグローバル変数 target_col/target_row の座標を目標にする)
* @return 作用が実際にあった場合TRUEを返す
*/
-bool wizard_lock(int dir)
+bool wizard_lock(DIRECTION dir)
{
BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
return (project_hook(GF_JAM_DOOR, dir, 20 + randint1(30), flg));
* @param dir 方向(5ならばグローバル変数 target_col/target_row の座標を目標にする)
* @return 作用が実際にあった場合TRUEを返す
*/
-bool destroy_door(int dir)
+bool destroy_door(DIRECTION dir)
{
BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM;
return (project_hook(GF_KILL_DOOR, dir, 0, flg));
* @param dir 方向(5ならばグローバル変数 target_col/target_row の座標を目標にする)
* @return 作用が実際にあった場合TRUEを返す
*/
-bool disarm_trap(int dir)
+bool disarm_trap(DIRECTION dir)
{
BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM;
return (project_hook(GF_KILL_TRAP, dir, 0, flg));
* @param dam 威力
* @return 作用が実際にあった場合TRUEを返す
*/
-bool heal_monster(int dir, HIT_POINT dam)
+bool heal_monster(DIRECTION dir, HIT_POINT dam)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
return (project_hook(GF_OLD_HEAL, dir, dam, flg));
* @param power 効力
* @return 作用が実際にあった場合TRUEを返す
*/
-bool speed_monster(int dir, int power)
+bool speed_monster(DIRECTION dir, int power)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
return (project_hook(GF_OLD_SPEED, dir, power, flg));
* @param power 効力
* @return 作用が実際にあった場合TRUEを返す
*/
-bool slow_monster(int dir, int power)
+bool slow_monster(DIRECTION dir, int power)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
return (project_hook(GF_OLD_SLOW, dir, power, flg));
* @param power 効力
* @return 作用が実際にあった場合TRUEを返す
*/
-bool sleep_monster(int dir, int power)
+bool sleep_monster(DIRECTION dir, int power)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
return (project_hook(GF_OLD_SLEEP, dir, power, flg));
* @return 作用が実際にあった場合TRUEを返す
* @details 威力はプレイヤーレベル*2に固定
*/
-bool stasis_monster(int dir)
+bool stasis_monster(DIRECTION dir)
{
return (fire_ball_hide(GF_STASIS, dir, p_ptr->lev*2, 0));
}
* @return 作用が実際にあった場合TRUEを返す
* @details 威力はプレイヤーレベル*2に固定
*/
-bool stasis_evil(int dir)
+bool stasis_evil(DIRECTION dir)
{
return (fire_ball_hide(GF_STASIS_EVIL, dir, p_ptr->lev*2, 0));
}
* @param plev プレイヤーレベル(=効力)
* @return 作用が実際にあった場合TRUEを返す
*/
-bool confuse_monster(int dir, int plev)
+bool confuse_monster(DIRECTION dir, int 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(int dir, int plev)
+bool stun_monster(DIRECTION dir, int plev)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
return (project_hook(GF_STUN, dir, plev, flg));
* @param power 効力
* @return 作用が実際にあった場合TRUEを返す
*/
-bool poly_monster(int dir, int power)
+bool poly_monster(DIRECTION dir, int power)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
bool tester = (project_hook(GF_OLD_POLY, dir, power, flg));
* @param dir 方向(5ならばグローバル変数 target_col/target_row の座標を目標にする)
* @return 作用が実際にあった場合TRUEを返す
*/
-bool clone_monster(int dir)
+bool clone_monster(DIRECTION dir)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
return (project_hook(GF_OLD_CLONE, dir, 0, flg));
* @param plev プレイヤーレベル(=効力)
* @return 作用が実際にあった場合TRUEを返す
*/
-bool fear_monster(int dir, int plev)
+bool fear_monster(DIRECTION dir, int 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(int dir, int plev)
+bool death_ray(DIRECTION dir, int plev)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
return (project_hook(GF_DEATH_RAY, dir, plev * 200, flg));
* @param distance 移動距離
* @return 作用が実際にあった場合TRUEを返す
*/
-bool teleport_monster(int dir, int distance)
+bool teleport_monster(DIRECTION dir, int distance)
{
BIT_FLAGS flg = PROJECT_BEAM | PROJECT_KILL;
return (project_hook(GF_AWAY_ALL, dir, distance, flg));
* @param plev パワー
* @return 作用が実際にあった場合TRUEを返す
*/
-bool charm_monster(int dir, int plev)
+bool charm_monster(DIRECTION dir, int plev)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL;
return (project_hook(GF_CHARM, dir, plev, flg));
* @param plev パワー
* @return 作用が実際にあった場合TRUEを返す
*/
-bool control_one_undead(int dir, int plev)
+bool control_one_undead(DIRECTION dir, int 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(int dir, int plev)
+bool control_one_demon(DIRECTION dir, int plev)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL;
return (project_hook(GF_CONTROL_DEMON, dir, plev, flg));
* @param plev パワー
* @return 作用が実際にあった場合TRUEを返す
*/
-bool charm_animal(int dir, int plev)
+bool charm_animal(DIRECTION dir, int plev)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL;
return (project_hook(GF_CONTROL_ANIMAL, dir, plev, flg));
*/
bool rush_attack(bool *mdeath)
{
- int dir;
+ DIRECTION dir;
int tx, ty;
int tm_idx = 0;
u16b path_g[32];
* @param dir 発動の方向ID
* @return なし
*/
-void ring_of_power(int dir)
+void ring_of_power(DIRECTION dir)
{
/* Pick a random effect */
switch (randint1(10))
* @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;
* while keeping the results quite random. It also allows some potent\n
* effects only at high level.
*/
-void cast_wonder(int dir)
+void cast_wonder(DIRECTION dir)
{
int plev = p_ptr->lev;
int die = randint1(100) + plev / 5;
* @param dir 方向ID
* @return なし
*/
-void cast_invoke_spirits(int dir)
+void cast_invoke_spirits(DIRECTION dir)
{
int plev = p_ptr->lev;
int die = randint1(100) + plev / 5;
void cast_shuffle(void)
{
int plev = p_ptr->lev;
- int dir;
+ DIRECTION dir;
int die;
int vir = virtue_number(V_CHANCE);
int i;