From d29005ff5a226ffa378aa2316b5b0e66c3b754c3 Mon Sep 17 00:00:00 2001 From: Hourier Date: Thu, 11 Jun 2020 22:31:31 +0900 Subject: [PATCH] [Refactor] #40014 Separated display_kill_unique() and display_killed() from display_kill_numbers() --- src/view/display-monster-lore.c | 87 +++++++++++++++++++++++------------------ 1 file changed, 50 insertions(+), 37 deletions(-) diff --git a/src/view/display-monster-lore.c b/src/view/display-monster-lore.c index 9c53bd32d..8cb930545 100644 --- a/src/view/display-monster-lore.c +++ b/src/view/display-monster-lore.c @@ -97,53 +97,66 @@ void output_monster_spoiler(player_type *player_ptr, MONRACE_IDX r_idx, void (*r process_monster_lore(player_ptr, r_idx, 0x03); } -void display_kill_numbers(lore_type *lore_ptr) +static bool display_kill_unique(lore_type *lore_ptr) { - if ((lore_ptr->mode & 0x02) != 0) - return; + if ((lore_ptr->flags1 & RF1_UNIQUE) == 0) + return FALSE; + + bool dead = (lore_ptr->r_ptr->max_num == 0); + if (lore_ptr->r_ptr->r_deaths) { + hooked_roff(format(_("%^sはあなたの先祖を %d 人葬っている", "%^s has slain %d of your ancestors"), wd_he[lore_ptr->msex], lore_ptr->r_ptr->r_deaths)); - if (lore_ptr->flags1 & RF1_UNIQUE) { - bool dead = (lore_ptr->r_ptr->max_num == 0) ? TRUE : FALSE; - if (lore_ptr->r_ptr->r_deaths) { + if (dead) { hooked_roff( - format(_("%^sはあなたの先祖を %d 人葬っている", "%^s has slain %d of your ancestors"), wd_he[lore_ptr->msex], lore_ptr->r_ptr->r_deaths)); - - if (dead) { - hooked_roff( - _(format("が、すでに仇討ちは果たしている!"), format(", but you have avenged %s! ", plural(lore_ptr->r_ptr->r_deaths, "him", "them")))); - } else { - hooked_roff( - _(format("のに、まだ仇討ちを果たしていない。"), format(", who %s unavenged. ", plural(lore_ptr->r_ptr->r_deaths, "remains", "remain")))); - } - - hooked_roff("\n"); - } else if (dead) { - hooked_roff(_("あなたはこの仇敵をすでに葬り去っている。", "You have slain this foe. ")); - hooked_roff("\n"); + _(format("が、すでに仇討ちは果たしている!"), format(", but you have avenged %s! ", plural(lore_ptr->r_ptr->r_deaths, "him", "them")))); + } else { + hooked_roff( + _(format("のに、まだ仇討ちを果たしていない。"), format(", who %s unavenged. ", plural(lore_ptr->r_ptr->r_deaths, "remains", "remain")))); } - return; + hooked_roff("\n"); + } else if (dead) { + hooked_roff(_("あなたはこの仇敵をすでに葬り去っている。", "You have slain this foe. ")); + hooked_roff("\n"); } - if (lore_ptr->r_ptr->r_deaths) { - hooked_roff(_(format("このモンスターはあなたの先祖を %d 人葬っている", lore_ptr->r_ptr->r_deaths), - format("%d of your ancestors %s been killed by this creature, ", lore_ptr->r_ptr->r_deaths, plural(lore_ptr->r_ptr->r_deaths, "has", "have")))); - - if (lore_ptr->r_ptr->r_pkills) { - hooked_roff(format(_("が、あなたはこのモンスターを少なくとも %d 体は倒している。", "and you have exterminated at least %d of the creatures. "), - lore_ptr->r_ptr->r_pkills)); - } else if (lore_ptr->r_ptr->r_tkills) { - hooked_roff(format( - _("が、あなたの先祖はこのモンスターを少なくとも %d 体は倒している。", "and your ancestors have exterminated at least %d of the creatures. "), - lore_ptr->r_ptr->r_tkills)); - } else { - hooked_roff(format(_("が、まだ%sを倒したことはない。", "and %s is not ever known to have been defeated. "), wd_he[lore_ptr->msex])); - } + return TRUE; +} - hooked_roff("\n"); - return; +static bool display_killed(lore_type *lore_ptr) +{ + if (lore_ptr->r_ptr->r_deaths == 0) + return FALSE; + + hooked_roff(_(format("このモンスターはあなたの先祖を %d 人葬っている", lore_ptr->r_ptr->r_deaths), + format("%d of your ancestors %s been killed by this creature, ", lore_ptr->r_ptr->r_deaths, plural(lore_ptr->r_ptr->r_deaths, "has", "have")))); + + if (lore_ptr->r_ptr->r_pkills) { + hooked_roff(format(_("が、あなたはこのモンスターを少なくとも %d 体は倒している。", "and you have exterminated at least %d of the creatures. "), + lore_ptr->r_ptr->r_pkills)); + } else if (lore_ptr->r_ptr->r_tkills) { + hooked_roff(format( + _("が、あなたの先祖はこのモンスターを少なくとも %d 体は倒している。", "and your ancestors have exterminated at least %d of the creatures. "), + lore_ptr->r_ptr->r_tkills)); + } else { + hooked_roff(format(_("が、まだ%sを倒したことはない。", "and %s is not ever known to have been defeated. "), wd_he[lore_ptr->msex])); } + hooked_roff("\n"); + return TRUE; +} + +void display_kill_numbers(lore_type *lore_ptr) +{ + if ((lore_ptr->mode & 0x02) != 0) + return; + + if (display_kill_unique(lore_ptr)) + return; + + if (display_killed(lore_ptr)) + return; + if (lore_ptr->r_ptr->r_pkills) { hooked_roff(format( _("あなたはこのモンスターを少なくとも %d 体は殺している。", "You have killed at least %d of these creatures. "), lore_ptr->r_ptr->r_pkills)); -- 2.11.0