1 #include "load/lore-loader.h"
2 #include "game-option/runtime-arguments.h"
3 #include "monster-race/monster-race.h"
4 #include "load/load-util.h"
5 #include "load/load-v1-5-0.h"
6 #include "load/angband-version-comparer.h"
9 * @brief モンスターの思い出を読み込む / Read the monster lore
10 * @param r_idx 読み込み先モンスターID
13 void rd_lore(MONRACE_IDX r_idx)
15 monster_race *r_ptr = &r_info[r_idx];
19 r_ptr->r_sights = (MONSTER_NUMBER)tmp16s;
22 r_ptr->r_deaths = (MONSTER_NUMBER)tmp16s;
25 r_ptr->r_pkills = (MONSTER_NUMBER)tmp16s;
27 if (h_older_than(1, 7, 0, 5)) {
28 r_ptr->r_akills = r_ptr->r_pkills;
31 r_ptr->r_akills = (MONSTER_NUMBER)tmp16s;
35 r_ptr->r_tkills = (MONSTER_NUMBER)tmp16s;
37 rd_byte(&r_ptr->r_wake);
38 rd_byte(&r_ptr->r_ignore);
39 rd_byte(&r_ptr->r_xtra1);
40 rd_byte(&r_ptr->r_xtra2);
44 r_ptr->r_drop_gold = (ITEM_NUMBER)tmp8u;
46 r_ptr->r_drop_item = (ITEM_NUMBER)tmp8u;
49 rd_byte(&r_ptr->r_cast_spell);
51 rd_byte(&r_ptr->r_blows[0]);
52 rd_byte(&r_ptr->r_blows[1]);
53 rd_byte(&r_ptr->r_blows[2]);
54 rd_byte(&r_ptr->r_blows[3]);
56 rd_u32b(&r_ptr->r_flags1);
57 rd_u32b(&r_ptr->r_flags2);
58 rd_u32b(&r_ptr->r_flags3);
59 rd_u32b(&r_ptr->r_flags4);
60 rd_u32b(&r_ptr->r_flags5);
61 rd_u32b(&r_ptr->r_flags6);
62 if (h_older_than(1, 5, 0, 3))
63 set_old_lore(r_ptr, r_idx);
65 rd_u32b(&r_ptr->r_flagsr);
68 r_ptr->max_num = (MONSTER_NUMBER)tmp8u;
70 rd_s16b(&r_ptr->floor_id);
73 r_ptr->r_flags1 &= r_ptr->flags1;
74 r_ptr->r_flags2 &= r_ptr->flags2;
75 r_ptr->r_flags3 &= r_ptr->flags3;
76 r_ptr->r_flags4 &= r_ptr->flags4;
77 r_ptr->r_flags5 &= r_ptr->a_ability_flags1;
78 r_ptr->r_flags6 &= r_ptr->a_ability_flags2;
79 r_ptr->r_flagsr &= r_ptr->flagsr;
86 if (tmp16u > max_r_idx) {
87 load_note(format(_("モンスターの種族が多すぎる(%u)!", "Too many (%u) monster races!"), tmp16u));
91 for (int i = 0; i < tmp16u; i++)
92 rd_lore((MONRACE_IDX)i);
95 load_note(_("モンスターの思い出をロードしました", "Loaded Monster Memory"));