OSDN Git Service

Merge pull request #716 from sikabane-works/release/3.0.0Alpha16
[hengbandforosx/hengbandosx.git] / src / lore / lore-util.cpp
1 #include "lore/lore-util.h"
2 #include "game-option/birth-options.h"
3 #include "monster-race/monster-race.h"
4 #include "term/screen-processor.h"
5 #include "term/term-color-types.h"
6
7 const who_word_definition Who::words = {
8     { WHO_WORD_TYPE::WHO,
9         {
10             { false, { { MSEX_NONE, _("それ", "it") }, { MSEX_MALE, _("彼", "he") }, { MSEX_FEMALE, _("彼女", "she") } } },
11             { true, { { MSEX_NONE, _("それら", "they") }, { MSEX_MALE, _("彼ら", "they") }, { MSEX_FEMALE, _("彼女ら", "they") } } },
12         } },
13     { WHO_WORD_TYPE::WHOSE,
14         {
15             { false, { { MSEX_NONE, _("それの", "its") }, { MSEX_MALE, _("彼の", "his") }, { MSEX_FEMALE, _("彼女の", "her") } } },
16             { true, { { MSEX_NONE, _("それらの", "their") }, { MSEX_MALE, _("彼らの", "their") }, { MSEX_FEMALE, _("彼女らの", "their") } } },
17         } },
18     { WHO_WORD_TYPE::WHOM,
19         {
20             { false, { { MSEX_NONE, _("それ", "it") }, { MSEX_MALE, _("彼", "him") }, { MSEX_FEMALE, _("彼女", "her") } } },
21             { true, { { MSEX_NONE, _("それら", "them") }, { MSEX_MALE, _("彼ら", "them") }, { MSEX_FEMALE, _("彼女ら", "them") } } },
22         } },
23 };
24
25 /*
26  * Prepare hook for c_roff(). It will be changed for spoiler generation in wizard1.c.
27  */
28 hook_c_roff_pf hook_c_roff = c_roff;
29
30 lore_type *initialize_lore_type(lore_type *lore_ptr, MONRACE_IDX r_idx, monster_lore_mode mode)
31 {
32 #ifdef JP
33 #else
34     lore_ptr->sin = FALSE;
35 #endif
36     lore_ptr->r_idx = r_idx;
37     lore_ptr->nightmare = ironman_nightmare && (mode != MONSTER_LORE_DEBUG);
38     lore_ptr->r_ptr = &r_info[r_idx];
39     lore_ptr->speed = lore_ptr->nightmare ? lore_ptr->r_ptr->speed + 5 : lore_ptr->r_ptr->speed;
40     lore_ptr->drop_gold = lore_ptr->r_ptr->r_drop_gold;
41     lore_ptr->drop_item = lore_ptr->r_ptr->r_drop_item;
42     lore_ptr->flags1 = (lore_ptr->r_ptr->flags1 & lore_ptr->r_ptr->r_flags1);
43     lore_ptr->flags2 = (lore_ptr->r_ptr->flags2 & lore_ptr->r_ptr->r_flags2);
44     lore_ptr->flags3 = (lore_ptr->r_ptr->flags3 & lore_ptr->r_ptr->r_flags3);
45     lore_ptr->flags4 = (lore_ptr->r_ptr->flags4 & lore_ptr->r_ptr->r_flags4);
46     lore_ptr->a_ability_flags1 = (lore_ptr->r_ptr->a_ability_flags1 & lore_ptr->r_ptr->r_flags5);
47     lore_ptr->a_ability_flags2 = (lore_ptr->r_ptr->a_ability_flags2 & lore_ptr->r_ptr->r_flags6);
48     lore_ptr->flags7 = (lore_ptr->r_ptr->flags7 & lore_ptr->r_ptr->flags7);
49     lore_ptr->flagsr = (lore_ptr->r_ptr->flagsr & lore_ptr->r_ptr->r_flagsr);
50     lore_ptr->reinforce = FALSE;
51     lore_ptr->know_everything = FALSE;
52     lore_ptr->mode = mode;
53     lore_ptr->old = FALSE;
54     lore_ptr->count = 0;
55     return lore_ptr;
56 }
57
58 /*!
59  * @brief モンスターの思い出メッセージをあらかじめ指定された関数ポインタに基づき出力する
60  * @param str 出力文字列
61  * @return なし
62  */
63 void hooked_roff(concptr str) { hook_c_roff(TERM_WHITE, str); }