-extern s16b feat_up_stair;
-extern s16b feat_down_stair;
-extern s16b feat_entrance;
-extern s16b feat_trap_open;
-extern s16b feat_trap_armageddon;
-extern s16b feat_trap_piranha;
-extern s16b feat_rubble;
-extern s16b feat_magma_vein;
-extern s16b feat_quartz_vein;
-extern s16b feat_granite;
-extern s16b feat_permanent;
-extern s16b feat_glass_floor;
-extern s16b feat_glass_wall;
-extern s16b feat_permanent_glass_wall;
-extern s16b feat_pattern_start;
-extern s16b feat_pattern_1;
-extern s16b feat_pattern_2;
-extern s16b feat_pattern_3;
-extern s16b feat_pattern_4;
-extern s16b feat_pattern_end;
-extern s16b feat_pattern_old;
-extern s16b feat_pattern_exit;
-extern s16b feat_pattern_corrupted;
-extern s16b feat_black_market;
-extern s16b feat_town;
-extern s16b feat_deep_water;
-extern s16b feat_shallow_water;
-extern s16b feat_deep_lava;
-extern s16b feat_shallow_lava;
-extern s16b feat_dirt;
-extern s16b feat_grass;
-extern s16b feat_flower;
-extern s16b feat_brake;
-extern s16b feat_tree;
-extern s16b feat_mountain;
-extern s16b feat_swamp;
-extern s16b feat_undetected;
-
-extern byte dungeon_type;
-extern s16b *max_dlv;
-extern s16b feat_wall_outer;
-extern s16b feat_wall_inner;
-extern s16b feat_wall_solid;
-extern s16b floor_type[100], fill_type[100];
+extern FEAT_IDX feat_up_stair;
+extern FEAT_IDX feat_down_stair;
+extern FEAT_IDX feat_entrance;
+extern FEAT_IDX feat_trap_open;
+extern FEAT_IDX feat_trap_armageddon;
+extern FEAT_IDX feat_trap_piranha;
+extern FEAT_IDX feat_rubble;
+extern FEAT_IDX feat_magma_vein;
+extern FEAT_IDX feat_quartz_vein;
+extern FEAT_IDX feat_granite;
+extern FEAT_IDX feat_permanent;
+extern FEAT_IDX feat_glass_floor;
+extern FEAT_IDX feat_glass_wall;
+extern FEAT_IDX feat_permanent_glass_wall;
+extern FEAT_IDX feat_pattern_start;
+extern FEAT_IDX feat_pattern_1;
+extern FEAT_IDX feat_pattern_2;
+extern FEAT_IDX feat_pattern_3;
+extern FEAT_IDX feat_pattern_4;
+extern FEAT_IDX feat_pattern_end;
+extern FEAT_IDX feat_pattern_old;
+extern FEAT_IDX feat_pattern_exit;
+extern FEAT_IDX feat_pattern_corrupted;
+extern FEAT_IDX feat_black_market;
+extern FEAT_IDX feat_town;
+extern FEAT_IDX feat_deep_water;
+extern FEAT_IDX feat_shallow_water;
+extern FEAT_IDX feat_deep_lava;
+extern FEAT_IDX feat_shallow_lava;
+extern FEAT_IDX feat_dirt;
+extern FEAT_IDX feat_grass;
+extern FEAT_IDX feat_flower;
+extern FEAT_IDX feat_brake;
+extern FEAT_IDX feat_tree;
+extern FEAT_IDX feat_mountain;
+extern FEAT_IDX feat_swamp;
+extern FEAT_IDX feat_undetected;
+
+extern DUNGEON_IDX dungeon_type;
+extern DEPTH *max_dlv;
+extern FEAT_IDX feat_wall_outer;
+extern FEAT_IDX feat_wall_inner;
+extern FEAT_IDX feat_wall_solid;
+extern FEAT_IDX floor_type[100], fill_type[100];
-extern bool set_monster_csleep(int m_idx, int v);
-extern bool set_monster_fast(int m_idx, int v);
-extern bool set_monster_slow(int m_idx, int v);
-extern bool set_monster_stunned(int m_idx, int v);
-extern bool set_monster_confused(int m_idx, int v);
-extern bool set_monster_monfear(int m_idx, int v);
-extern bool set_monster_invulner(int m_idx, int v, bool energy_need);
+extern bool set_monster_csleep(MONSTER_IDX m_idx, int v);
+extern bool set_monster_fast(MONSTER_IDX m_idx, int v);
+extern bool set_monster_slow(MONSTER_IDX m_idx, int v);
+extern bool set_monster_stunned(MONSTER_IDX m_idx, int v);
+extern bool set_monster_confused(MONSTER_IDX m_idx, int v);
+extern bool set_monster_monfear(MONSTER_IDX m_idx, int v);
+extern bool set_monster_invulner(MONSTER_IDX m_idx, int v, bool energy_need);
-extern bool summon_specific(int who, int y1, int x1, int lev, int type, u32b mode);
-extern bool summon_named_creature (int who, int oy, int ox, int r_idx, u32b mode);
-extern bool multiply_monster(int m_idx, bool clone, u32b mode);
-extern void update_smart_learn(int m_idx, int what);
-extern void choose_new_monster(int m_idx, bool born, int r_idx);
+extern bool summon_specific(MONSTER_IDX who, POSITION y1, POSITION x1, DEPTH lev, int type, BIT_FLAGS mode);
+extern bool summon_named_creature (MONSTER_IDX who, POSITION oy, POSITION ox, MONRACE_IDX r_idx, BIT_FLAGS mode);
+extern bool multiply_monster(MONSTER_IDX m_idx, bool clone, u32b mode);
+extern void update_smart_learn(MONSTER_IDX m_idx, int what);
+extern void choose_new_monster(MONSTER_IDX m_idx, bool born, MONRACE_IDX r_idx);
-extern bool in_disintegration_range(int y1, int x1, int y2, int x2);
-extern void breath_shape(u16b *path_g, int dist, int *pgrids, byte *gx, byte *gy, byte *gm, int *pgm_rad, int rad, int y1, int x1, int y2, int x2, int typ);
-extern int take_hit(int damage_type, int damage, cptr kb_str, int monspell);
-extern u16b bolt_pict(int y, int x, int ny, int nx, int typ);
-extern sint project_path(u16b *gp, int range, int y1, int x1, int y2, int x2, int flg);
-extern int dist_to_line(int y, int x, int y1, int x1, int y2, int x2);
-extern bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int monspell);
+extern bool in_disintegration_range(POSITION y1, POSITION x1, POSITION y2, POSITION x2);
+extern void breath_shape(u16b *path_g, int dist, int *pgrids, POSITION *gx, POSITION *gy, POSITION *gm, POSITION *pgm_rad, POSITION rad, POSITION y1, POSITION x1, POSITION y2, POSITION x2, int typ);
+extern int take_hit(int damage_type, HIT_POINT damage, cptr kb_str, int monspell);
+extern u16b bolt_pict(POSITION y, POSITION x, POSITION ny, POSITION nx, int typ);
+extern sint project_path(u16b *gp, POSITION range, POSITION y1, POSITION x1, POSITION y2, POSITION x2, int flg);
+extern POSITION dist_to_line(POSITION y, POSITION x, POSITION y1, POSITION x1, POSITION y2, POSITION x2);
+extern bool project(MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT dam, int typ, int flg, int monspell);
-extern bool detect_traps(int range, bool known);
-extern bool detect_doors(int range);
-extern bool detect_stairs(int range);
-extern bool detect_treasure(int range);
-extern bool detect_objects_gold(int range);
-extern bool detect_objects_normal(int range);
-extern bool detect_objects_magic(int range);
-extern bool detect_monsters_normal(int range);
-extern bool detect_monsters_invis(int range);
-extern bool detect_monsters_evil(int range);
-extern bool detect_monsters_xxx(int range, u32b match_flag);
-extern bool detect_monsters_string(int range, cptr);
-extern bool detect_monsters_nonliving(int range);
-extern bool detect_monsters_mind(int range);
-extern bool detect_all(int range);
+extern bool detect_traps(POSITION range, bool known);
+extern bool detect_doors(POSITION range);
+extern bool detect_stairs(POSITION range);
+extern bool detect_treasure(POSITION range);
+extern bool detect_objects_gold(POSITION range);
+extern bool detect_objects_normal(POSITION range);
+extern bool detect_objects_magic(POSITION range);
+extern bool detect_monsters_normal(POSITION range);
+extern bool detect_monsters_invis(POSITION range);
+extern bool detect_monsters_evil(POSITION range);
+extern bool detect_monsters_xxx(POSITION range, u32b match_flag);
+extern bool detect_monsters_string(POSITION range, cptr);
+extern bool detect_monsters_nonliving(POSITION range);
+extern bool detect_monsters_mind(POSITION range);
+extern bool detect_all(POSITION range);
-extern bool lite_area(int dam, int rad);
-extern bool unlite_area(int dam, int rad);
-extern bool fire_ball(int typ, int dir, int dam, int rad);
-extern bool fire_rocket(int typ, int dir, int dam, int rad);
-extern bool fire_ball_hide(int typ, int dir, int dam, int rad);
-extern bool fire_meteor(int who, int typ, int x, int y, int dam, int rad);
-extern bool fire_bolt(int typ, int dir, int dam);
+extern bool lite_area(HIT_POINT dam, int rad);
+extern bool unlite_area(HIT_POINT dam, int rad);
+extern bool fire_ball(int typ, int dir, HIT_POINT dam, int rad);
+extern bool fire_rocket(int typ, int dir, HIT_POINT dam, int rad);
+extern bool fire_ball_hide(int typ, int dir, HIT_POINT dam, int rad);
+extern bool fire_meteor(int who, int typ, int x, int y, HIT_POINT dam, int rad);
+extern bool fire_bolt(int typ, int dir, HIT_POINT dam);
-extern bool set_mimic(time_effect v, int p, bool do_dec);
-extern bool set_blind(time_effect v);
-extern bool set_confused(time_effect v);
-extern bool set_poisoned(time_effect v);
-extern bool set_afraid(time_effect v);
-extern bool set_paralyzed(time_effect v);
-extern bool set_image(time_effect v);
-extern bool set_fast(time_effect v, bool do_dec);
-extern bool set_slow(time_effect v, bool do_dec);
-extern bool set_shield(time_effect v, bool do_dec);
-extern bool set_tsubureru(time_effect v, bool do_dec);
-extern bool set_magicdef(time_effect v, bool do_dec);
-extern bool set_blessed(time_effect v, bool do_dec);
-extern bool set_hero(time_effect v, bool do_dec);
-extern bool set_shero(time_effect v, bool do_dec);
-extern bool set_protevil(time_effect v, bool do_dec);
-extern bool set_invuln(time_effect v, bool do_dec);
-extern bool set_tim_invis(time_effect v, bool do_dec);
-extern bool set_tim_infra(time_effect v, bool do_dec);
-extern bool set_tim_regen(time_effect v, bool do_dec);
-extern bool set_tim_stealth(time_effect v, bool do_dec);
-extern bool set_lightspeed(time_effect v, bool do_dec);
-extern bool set_tim_levitation(time_effect v, bool do_dec);
-extern bool set_tim_sh_touki(time_effect v, bool do_dec);
-extern bool set_tim_sh_fire(time_effect v, bool do_dec);
-extern bool set_tim_sh_holy(time_effect v, bool do_dec);
-extern bool set_tim_eyeeye(time_effect v, bool do_dec);
-extern bool set_resist_magic(time_effect v, bool do_dec);
-extern bool set_tim_reflect(time_effect v, bool do_dec);
-extern bool set_multishadow(time_effect v, bool do_dec);
-extern bool set_dustrobe(time_effect v, bool do_dec);
-extern bool set_kabenuke(time_effect v, bool do_dec);
-extern bool set_tsuyoshi(time_effect v, bool do_dec);
-extern bool set_ele_attack(u32b attack_type, time_effect v);
-extern bool set_ele_immune(u32b immune_type, time_effect v);
-extern bool set_oppose_acid(time_effect v, bool do_dec);
-extern bool set_oppose_elec(time_effect v, bool do_dec);
-extern bool set_oppose_fire(time_effect v, bool do_dec);
-extern bool set_oppose_cold(time_effect v, bool do_dec);
-extern bool set_oppose_pois(time_effect v, bool do_dec);
-extern bool set_stun(time_effect v);
-extern bool set_cut(time_effect v);
-extern bool set_food(time_effect v);
+extern bool set_mimic(TIME_EFFECT v, IDX p, bool do_dec);
+extern bool set_blind(TIME_EFFECT v);
+extern bool set_confused(TIME_EFFECT v);
+extern bool set_poisoned(TIME_EFFECT v);
+extern bool set_afraid(TIME_EFFECT v);
+extern bool set_paralyzed(TIME_EFFECT v);
+extern bool set_image(TIME_EFFECT v);
+extern bool set_fast(TIME_EFFECT v, bool do_dec);
+extern bool set_slow(TIME_EFFECT v, bool do_dec);
+extern bool set_shield(TIME_EFFECT v, bool do_dec);
+extern bool set_tsubureru(TIME_EFFECT v, bool do_dec);
+extern bool set_magicdef(TIME_EFFECT v, bool do_dec);
+extern bool set_blessed(TIME_EFFECT v, bool do_dec);
+extern bool set_hero(TIME_EFFECT v, bool do_dec);
+extern bool set_shero(TIME_EFFECT v, bool do_dec);
+extern bool set_protevil(TIME_EFFECT v, bool do_dec);
+extern bool set_invuln(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_invis(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_infra(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_regen(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_stealth(TIME_EFFECT v, bool do_dec);
+extern bool set_lightspeed(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_levitation(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_sh_touki(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_sh_fire(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_sh_holy(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_eyeeye(TIME_EFFECT v, bool do_dec);
+extern bool set_resist_magic(TIME_EFFECT v, bool do_dec);
+extern bool set_tim_reflect(TIME_EFFECT v, bool do_dec);
+extern bool set_multishadow(TIME_EFFECT v, bool do_dec);
+extern bool set_dustrobe(TIME_EFFECT v, bool do_dec);
+extern bool set_kabenuke(TIME_EFFECT v, bool do_dec);
+extern bool set_tsuyoshi(TIME_EFFECT v, bool do_dec);
+extern bool set_ele_attack(u32b attack_type, TIME_EFFECT v);
+extern bool set_ele_immune(u32b immune_type, TIME_EFFECT v);
+extern bool set_oppose_acid(TIME_EFFECT v, bool do_dec);
+extern bool set_oppose_elec(TIME_EFFECT v, bool do_dec);
+extern bool set_oppose_fire(TIME_EFFECT v, bool do_dec);
+extern bool set_oppose_cold(TIME_EFFECT v, bool do_dec);
+extern bool set_oppose_pois(TIME_EFFECT v, bool do_dec);
+extern bool set_stun(TIME_EFFECT v);
+extern bool set_cut(TIME_EFFECT v);
+extern bool set_food(TIME_EFFECT v);
-extern bool dispel_check(int m_idx);
-extern bool spell_is_inate(u16b spell);
-extern bool make_attack_spell(int m_idx);
-extern void beam(int m_idx, int y, int x, int typ, int dam_hp, int monspell, int target_type);
-extern void bolt(int m_idx, int y, int x, int typ, int dam_hp, int monspell, int target_type);
-extern void breath(int y, int x, int m_idx, int typ, int dam_hp, int rad, bool breath, int monspell, int target_type);
-
-/* mspells1.c */
-extern bool clean_shot(int y1, int x1, int y2, int x2, bool is_friend);
-extern bool summon_possible(int y1, int x1);
-extern bool raise_possible(monster_type *m_ptr);
-extern bool dispel_check(int m_idx);
-extern bool spell_is_inate(u16b spell);
-extern bool make_attack_spell(int m_idx);
-extern void beam(int m_idx, int y, int x, int typ, int dam_hp, int monspell, int target_type);
-extern void bolt(int m_idx, int y, int x, int typ, int dam_hp, int monspell, int target_type);
-extern void breath(int y, int x, int m_idx, int typ, int dam_hp, int rad, bool breath, int monspell, int target_type);
+extern bool dispel_check(MONSTER_IDX m_idx);
+extern bool spell_is_inate(SPELL_IDX spell);
+extern bool make_attack_spell(MONSTER_IDX m_idx);
+extern void beam(MONSTER_IDX m_idx, int y, int x, int typ, int dam_hp, int monspell, int target_type);
+extern void bolt(MONSTER_IDX m_idx, int y, int x, int typ, int dam_hp, int monspell, int target_type);
+extern void breath(int y, int x, MONSTER_IDX m_idx, int typ, int dam_hp, int rad, bool breath, int monspell, int target_type);