rd_byte(&o_ptr->discount);
rd_byte(&tmp8u);
o_ptr->number = (ITEM_NUMBER)tmp8u;
- rd_s16b(&o_ptr->weight);
+
+ rd_s16b(&tmp16s);
+ o_ptr->weight = tmp16s;
rd_byte(&tmp8u);
o_ptr->name1 = tmp8u;
}
else o_ptr->number = 1;
- rd_s16b(&o_ptr->weight);
+ rd_s16b(&tmp16s);
+ o_ptr->weight = tmp16s;
if (flags & SAVE_ITEM_NAME1)
{
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);
rd_byte(&r_ptr->r_xtra2);
/* Count drops */
- rd_byte(&r_ptr->r_drop_gold);
- rd_byte(&r_ptr->r_drop_item);
+ rd_byte(&tmp8u);
+ r_ptr->r_drop_gold = (ITEM_NUMBER)tmp8u;
+ rd_byte(&tmp8u);
+ r_ptr->r_drop_item = (ITEM_NUMBER)tmp8u;
/* Count spells */
rd_byte(&tmp8u);
}
/* Read the "Racial" monster limit per level */
- rd_byte(&r_ptr->max_num);
+ rd_byte(&tmp8u);
+ r_ptr->max_num = (MONSTER_NUMBER)tmp8u;
/* Location in saved floor */
rd_s16b(&r_ptr->floor_id);
p_ptr->autopick_autoregister = tmp8u ? TRUE : FALSE;
rd_byte(&tmp8u); /* oops */
- rd_byte(&p_ptr->action);
+ rd_byte(&tmp8u);
+ p_ptr->action = (ACTION_IDX)tmp8u;
if (!z_older_than(10, 4, 3))
{
rd_byte(&tmp8u);