*/
void player_outfit(void)
{
- int i, tv, sv;
+ int i;
+ OBJECT_TYPE_VALUE tv;
+ OBJECT_SUBTYPE_VALUE sv;
object_type forge;
object_type *q_ptr;
}
else if (p_ptr->pclass == CLASS_SORCERER)
{
- for (i = TV_LIFE_BOOK; i <= TV_LIFE_BOOK+MAX_MAGIC-1; i++)
+ OBJECT_TYPE_VALUE book_tval;
+ for (book_tval = TV_LIFE_BOOK; book_tval <= TV_LIFE_BOOK+MAX_MAGIC-1; book_tval++)
{
/* Hack -- Give the player some arrows */
- object_prep(q_ptr, lookup_kind(i, 0));
+ object_prep(q_ptr, lookup_kind(book_tval, 0));
q_ptr->number = 1;
add_outfit(q_ptr);
* 賞金首の報酬テーブル / List of prize object
*/
static struct {
- s16b tval; /*!< ベースアイテムのメイン種別ID */
- s16b sval; /*!< ベースアイテムのサブ種別ID */
+ OBJECT_TYPE_VALUE tval; /*!< ベースアイテムのメイン種別ID */
+ OBJECT_SUBTYPE_VALUE sval; /*!< ベースアイテムのサブ種別ID */
} prize_list[MAX_KUBI] =
{
{TV_POTION, SV_POTION_CURING},
{
monster_type *m_ptr;
bool all_pets = FALSE;
- int pet_ctr, i;
+ IDX pet_ctr;
+ int i;
int Dismissed = 0;
u16b *who;
#endif
{
int pet_ctr, i;
- u16b *who;
+ IDX *who;
int max_pet = 0;
u16b dummy_why;
/* Allocate the "who" array */
- C_MAKE(who, max_m_idx, u16b);
+ C_MAKE(who, max_m_idx, IDX);
/* Process the monsters (backwards) */
for (pet_ctr = m_max - 1; pet_ctr >= 1; pet_ctr--)
}
/* Free the "who" array */
- C_KILL(who, max_m_idx, u16b);
+ C_KILL(who, max_m_idx, IDX);
}
o_ptr->timeout = 100+randint1(100);
return;
for (i = 0; i < 3; i++)
{
- int y, x;
- int ny, nx;
- int m_idx;
+ POSITION y, x;
+ POSITION ny, nx;
+ IDX m_idx;
cave_type *c_ptr;
monster_type *m_ptr;
*/
bool dec_stat(int stat, int amount, int permanent)
{
- int cur, max, loss, same, res = FALSE;
+ BASE_STATUS cur, max;
+ int loss, same, res = FALSE;
/* Acquire current value */
/*
* Change player race
*/
-void change_race(int new_race, cptr effect_msg)
+void change_race(CHARACTER_IDX new_race, cptr effect_msg)
{
cptr title = race_info[new_race].title;
int old_race = p_ptr->prace;
/* spells3.c */
extern bool teleport_away(IDX m_idx, int dis, u32b mode);
-extern void teleport_monster_to(int m_idx, int ty, int tx, int power, u32b mode);
+extern void teleport_monster_to(IDX m_idx, POSITION ty, POSITION tx, int power, u32b mode);
extern bool cave_player_teleportable_bold(int y, int x, u32b mode);
extern bool teleport_player_aux(int dis, u32b mode);
extern void teleport_player(int dis, u32b mode);
extern void gain_level_reward(int chosen_reward);
extern bool tgt_pt(POSITION *x, POSITION *y);
extern void do_poly_wounds(void);
-extern void change_race(int new_race, cptr effect_msg);
+extern void change_race(CHARACTER_IDX new_race, cptr effect_msg);
extern HIT_POINT mon_damage_mod(monster_type *m_ptr, HIT_POINT dam, bool is_psy_spear);
extern s16b gain_energy(void);
extern s16b bow_energy(int sval);
/* mspells4.c */
extern bool spell_learnable(int m_idx);
-extern int monspell_to_player(int SPELL_NUM, int y, int x, int m_idx);
-extern int monspell_to_monster(int SPELL_NUM, int y, int x, int m_idx, int t_idx);
+extern int monspell_to_player(int SPELL_NUM, POSITION y, POSITION x, IDX m_idx);
+extern int monspell_to_monster(int SPELL_NUM, POSITION y, POSITION x, IDX m_idx, IDX t_idx);
extern int monspell_damage(int SPELL_NUM, int m_idx, int TYPE);
extern int monspell_race_damage(int SPELL_NUM, int r_idx, int TYPE);
extern int monspell_bluemage_damage(int SPELL_NUM, int plev, int TYPE);
/* Hack -- Add some rivers */
if (one_in_(3) && (randint1(dun_level) > 5))
{
- int feat1 = 0, feat2 = 0;
+ IDX feat1 = 0, feat2 = 0;
/* Choose water or lava */
if ((randint1(MAX_DEPTH * 2) - 1 > dun_level) && (d_info[dungeon_type].flags1 & DF1_WATER_RIVER))
typedef s32b DEPTH; /*!< ゲーム中の階層レベルの型定義 */
typedef byte RARITY; /*!< ゲーム中の希少度の型定義 */
+typedef s32b GAME_TURN; /*!< ゲーム中のターンの型定義 */
/*** Pointers to all the basic types defined above ***/
* @param i2 配列移動先添字
* @return なし
*/
-static void compact_monsters_aux(int i1, int i2)
+static void compact_monsters_aux(IDX i1, IDX i2)
{
int y, x, i;
n = damroll(r_ptr->reinforce_dd[i], r_ptr->reinforce_ds[i]);
for(j = 0; j < n; j++)
{
- int nx, ny, d = 7;
+ POSITION nx, ny, d = 7;
scatter(&ny, &nx, y, x, d, 0);
(void)place_monster_one(place_monster_m_idx, ny, nx, r_ptr->reinforce_id[i], mode);
}
bool alloc_horde(POSITION y, POSITION x)
{
monster_race *r_ptr = NULL;
- int r_idx = 0;
- int m_idx;
+ IDX r_idx = 0;
+ IDX m_idx;
int attempts = 1000;
- int cy = y;
- int cx = x;
+ POSITION cy = y;
+ POSITION cx = x;
/* Prepare allocation table */
get_mon_num_prep(get_monster_hook(), get_monster_hook2(y, x));
int dam = 0;
/* Target location */
- int x = p_ptr->x;
- int y = p_ptr->y;
+ POSITION x = p_ptr->x;
+ POSITION y = p_ptr->y;
/* Target location for lite breath */
int x_br_lite = 0;
* @param m_idx 呪文を唱えるモンスターID
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void spell_RF6_BLINK(int m_idx, int TARGET_TYPE)
+void spell_RF6_BLINK(IDX m_idx, int TARGET_TYPE)
{
char m_name[80];
monster_name(m_idx, m_name);
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF6_SPECIAL_B(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+int spell_RF6_SPECIAL_B(POSITION y, POSITION x, IDX m_idx, IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monster_type *m_ptr = &m_list[m_idx];
monster_type *t_ptr = &m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF6_SPECIAL(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+int spell_RF6_SPECIAL(POSITION y, POSITION x, IDX m_idx, IDX t_idx, int TARGET_TYPE)
{
monster_type *m_ptr = &m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-void spell_RF6_TELE_TO(int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_TELE_TO(IDX m_idx, IDX t_idx, int TARGET_TYPE)
{
monster_type *m_ptr = &m_list[m_idx];
monster_type *t_ptr = &m_list[t_idx];
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_HI_UNDEAD(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_HI_UNDEAD(POSITION y, POSITION x, IDX m_idx, IDX t_idx, int TARGET_TYPE)
{
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
* @param m_idx 呪文を唱えるモンスターID
* @return 攻撃呪文のダメージ、または召喚したモンスターの数を返す。その他の場合0。以降の処理を中断するなら-1を返す。
*/
-int monspell_to_player(int SPELL_NUM, int y, int x, int m_idx)
+int monspell_to_player(int SPELL_NUM, POSITION y, POSITION x, IDX m_idx)
{
switch (SPELL_NUM)
{
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
* @return 攻撃呪文のダメージ、または召喚したモンスターの数を返す。その他の場合0。以降の処理を中断するなら-1を返す。
*/
-int monspell_to_monster(int SPELL_NUM, int y, int x, int m_idx, int t_idx)
+int monspell_to_monster(int SPELL_NUM, POSITION y, POSITION x, IDX m_idx, IDX t_idx)
{
switch (SPELL_NUM)
{
case '\r':
case '+':
{
- int i, o_idx;
+ int i;
+ IDX o_idx;
cave_type *c_ptr = &cave[p_ptr->y][p_ptr->x];
if (command_wrk != (USE_FLOOR)) break;
*/
IDX lookup_kind(OBJECT_TYPE_VALUE tval, OBJECT_SUBTYPE_VALUE sval)
{
- int k;
+ IDX k;
int num = 0;
- int bk = 0;
+ IDX bk = 0;
/* Look for it */
for (k = 1; k < max_k_idx; k++)
/* Generate a special object, or a normal object */
if (!one_in_(prob) || !make_artifact_special(j_ptr))
{
- int k_idx;
+ IDX k_idx;
/* Good objects */
if ((mode & AM_GOOD) && !get_obj_num_hook)
object_type *o_ptr;
cptr q, s;
POSITION iy, ix;
- byte_hack marked, number;
+ byte_hack marked;
+ ITEM_NUMBER number;
s16b next_o_idx, weight;
for (i = 0; i < sizeof(drain_value) / sizeof(int); i++)
* @param mode オプション
* @return なし
*/
-void teleport_monster_to(int m_idx, int ty, int tx, int power, u32b mode)
+void teleport_monster_to(IDX m_idx, POSITION ty, POSITION tx, int power, u32b mode)
{
int ny, nx, oy, ox, d, i, min;
int attempts = 500;
*/
void add_river(IDX feat1, IDX feat2)
{
- int y2, x2;
- int y1 = 0, x1 = 0;
- int wid;
+ POSITION y2, x2;
+ POSITION y1 = 0, x1 = 0;
+ POSITION wid;
/* Hack -- Choose starting point */
DEPTH monster_level; /* Current monster creation level */
DEPTH base_level; /* Base dungeon level */
-s32b turn; /*!< 画面表示上のゲーム時間基準となるターン / Current game turn */
-s32b turn_limit; /*!< turnの最大値 / Limit of game turn */
-s32b dungeon_turn; /*!< NASTY生成の計算に関わる内部ターン値 / Game turn in dungeon */
-s32b dungeon_turn_limit; /*!< dungeon_turnの最大値 / Limit of game turn in dungeon */
-s32b old_turn; /* Turn when level began */
-s32b old_battle;
+GAME_TURN turn; /*!< 画面表示上のゲーム時間基準となるターン / Current game turn */
+GAME_TURN turn_limit; /*!< turnの最大値 / Limit of game turn */
+GAME_TURN dungeon_turn; /*!< NASTY生成の計算に関わる内部ターン値 / Game turn in dungeon */
+GAME_TURN dungeon_turn_limit; /*!< dungeon_turnの最大値 / Limit of game turn in dungeon */
+GAME_TURN old_turn; /* Turn when level began */
+GAME_TURN old_battle;
bool use_sound; /* The "sound" mode is enabled */
bool use_music; /* The "music" mode is enabled */
* @param name1 生成するアーティファクトID
* @return 生成が成功した場合TRUEを返す
*/
-static bool make_fake_artifact(object_type *o_ptr, int name1)
+static bool make_fake_artifact(object_type *o_ptr, IDX name1)
{
- int i;
+ IDX i;
artifact_type *a_ptr = &a_info[name1];
while (1)
{
/* Pre-calculate level 1 hitdice */
- p_ptr->player_hp[0] = p_ptr->hitdie;
+ p_ptr->player_hp[0] = (HIT_POINT)p_ptr->hitdie;
for (i = 1; i < 4; i++)
{
*/
static void do_cmd_wiz_learn(void)
{
- int i;
+ IDX i;
object_type forge;
object_type *q_ptr;
cave_type *c_ptr;
feature_type *f_ptr;
char tmp_val[160];
- int tmp_feat, tmp_mimic;
+ IDX tmp_feat, tmp_mimic;
POSITION y, x;
if (!tgt_pt(&x, &y)) return;