extern MONRACE_IDX get_mon_num(DEPTH level);
extern void monster_desc(char *desc, monster_type *m_ptr, int mode);
extern int lore_do_probe(MONRACE_IDX r_idx);
-extern void lore_treasure(MONSTER_IDX m_idx, int num_item, int num_gold);
+extern void lore_treasure(MONSTER_IDX m_idx, ITEM_NUMBER num_item, ITEM_NUMBER num_gold);
extern void sanity_blast(monster_type *m_ptr, bool necro);
extern void update_mon(MONSTER_IDX m_idx, bool full);
extern void update_monsters(bool full);
typedef s16b IDX; /*!< ゲーム中のID型を定義 */
typedef s16b FEAT_IDX; /*!< ゲーム中の地形ID型を定義 */
+typedef s16b FLOOR_IDX; /*!< ゲーム中の地形ID型を定義 */
typedef s16b RACE_IDX; /*!< ゲーム中のプレイヤー種族ID型を定義 */
typedef s16b CLASS_IDX; /*!< ゲーム中のプレイヤー職業ID型を定義 */
static void rd_lore(MONRACE_IDX r_idx)
{
byte tmp8u;
+ s16b tmp16s;
monster_race *r_ptr = &r_info[r_idx];
/* Count sights/deaths/kills */
- rd_s16b(&r_ptr->r_sights);
- rd_s16b(&r_ptr->r_deaths);
- rd_s16b(&r_ptr->r_pkills);
+ rd_s16b(&tmp16s);
+ r_ptr->r_sights = (MONSTER_NUMBER)tmp16s;
+ rd_s16b(&tmp16s);
+ r_ptr->r_deaths = (MONSTER_NUMBER)tmp16s;
+ rd_s16b(&tmp16s);
+ r_ptr->r_pkills = (MONSTER_NUMBER)tmp16s;
if (h_older_than(1, 7, 0, 5))
{
r_ptr->r_akills = r_ptr->r_pkills;
}
else
{
- rd_s16b(&r_ptr->r_akills);
+ rd_s16b(&tmp16s);
+ r_ptr->r_akills = (MONSTER_NUMBER)tmp16s;
}
- rd_s16b(&r_ptr->r_tkills);
+ rd_s16b(&tmp16s);
+ r_ptr->r_tkills = (MONSTER_NUMBER)tmp16s;
/* Count wakes and ignores */
rd_byte(&r_ptr->r_wake);
* gold and items are dropped, and remembers that information to be
* described later by the monster recall code.
*/
-void lore_treasure(MONSTER_IDX m_idx, int num_item, int num_gold)
+void lore_treasure(MONSTER_IDX m_idx, ITEM_NUMBER num_item, ITEM_NUMBER num_gold)
{
monster_type *m_ptr = &m_list[m_idx];
char out_desc[23][MAX_NLEN];
COMMAND_CODE target_item_label = 0;
- int floor_list[23], floor_num;
- int wid, hgt;
+ int floor_list[23];
+ int floor_num;
+ TERM_POSITION wid, hgt;
char floor_label[52 + 1];
bool dont_need_to_show_weights = TRUE;
monster_race *r_ptr = &r_info[r_idx];
/* Count sights/deaths/kills */
- wr_s16b(r_ptr->r_sights);
- wr_s16b(r_ptr->r_deaths);
- wr_s16b(r_ptr->r_pkills);
- wr_s16b(r_ptr->r_akills);
- wr_s16b(r_ptr->r_tkills);
+ wr_s16b((s16b)r_ptr->r_sights);
+ wr_s16b((s16b)r_ptr->r_deaths);
+ wr_s16b((s16b)r_ptr->r_pkills);
+ wr_s16b((s16b)r_ptr->r_akills);
+ wr_s16b((s16b)r_ptr->r_tkills);
/* Count wakes and ignores */
wr_byte(r_ptr->r_wake);
wr_byte(r_ptr->r_xtra2);
/* Count drops */
- wr_byte(r_ptr->r_drop_gold);
- wr_byte(r_ptr->r_drop_item);
+ wr_byte((byte_hack)r_ptr->r_drop_gold);
+ wr_byte((byte_hack)r_ptr->r_drop_item);
/* Count spells */
wr_byte(0); /* unused now */
/* Monster limit per level */
- wr_byte(r_ptr->max_num);
+ wr_byte((byte_hack)r_ptr->max_num);
/* Location in saved floor */
wr_s16b(r_ptr->floor_id);
void fetch(int dir, int wgt, bool require_los)
{
int ty, tx;
- DEPTH i;
+ OBJECT_IDX i;
cave_type *c_ptr;
object_type *o_ptr;
char o_name[MAX_NLEN];
i = c_ptr->o_idx;
c_ptr->o_idx = o_ptr->next_o_idx;
cave[p_ptr->y][p_ptr->x].o_idx = i; /* 'move' it */
+
o_ptr->next_o_idx = 0;
o_ptr->iy = (byte)p_ptr->y;
o_ptr->ix = (byte)p_ptr->x;
SYMBOL_CODE x_char; /* Desired monster character */
- byte max_num; /* Maximum population allowed per level */
+ MONSTER_NUMBER max_num; /* Maximum population allowed per level */
+ MONSTER_NUMBER cur_num; /* Monster population on current level */
- byte cur_num; /* Monster population on current level */
+ FLOOR_IDX floor_id; /* Location of unique monster */
- s16b floor_id; /* Location of unique monster */
+ MONSTER_NUMBER r_sights; /* Count sightings of this monster */
+ MONSTER_NUMBER r_deaths; /* Count deaths from this monster */
- s16b r_sights; /* Count sightings of this monster */
- s16b r_deaths; /* Count deaths from this monster */
-
- s16b r_pkills; /* Count visible monsters killed in this life */
- s16b r_akills; /* Count all monsters killed in this life */
- s16b r_tkills; /* Count monsters killed in all lives */
+ MONSTER_NUMBER r_pkills; /* Count visible monsters killed in this life */
+ MONSTER_NUMBER r_akills; /* Count all monsters killed in this life */
+ MONSTER_NUMBER r_tkills; /* Count monsters killed in all lives */
byte r_wake; /* Number of times woken up (?) */
byte r_ignore; /* Number of times ignored (?) */
byte r_xtra1; /* Something (unused) */
byte r_xtra2; /* Something (unused) */
- byte r_drop_gold; /* Max number of gold dropped at once */
- byte r_drop_item; /* Max number of item dropped at once */
+ ITEM_NUMBER r_drop_gold; /*!< これまでに撃破時に落とした財宝の数 / Max number of gold dropped at once */
+ ITEM_NUMBER r_drop_item; /*!< これまでに撃破時に落としたアイテムの数 / Max number of item dropped at once */
byte r_cast_spell; /* Max number of other spells seen */
void display_rumor(bool ex)
{
- bool err;
+ errr err;
int section = 0;
char Rumor[1024];