X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fxtra2.c;h=1a9c1916fefa0128b5bdd8f624eb7d42ccf30707;hb=e70ba712cf4b753e7d3876f60980c87cfeec09e3;hp=bb0e76c8cd31504c3507395b25778c13c46f6054;hpb=170485f3f5ce84e63f0ba5c0c559b72a1f9c90e2;p=hengband%2Fhengband.git diff --git a/src/xtra2.c b/src/xtra2.c index bb0e76c8c..1a9c1916f 100644 --- a/src/xtra2.c +++ b/src/xtra2.c @@ -14,6 +14,8 @@ #include "angband.h" #include "cmd-pet.h" #include "object-curse.h" +#include "monsterrace-hook.h" +#include "objectkind-hook.h" #define REWARD_CHANCE 10 @@ -116,43 +118,28 @@ void check_experience(void) int n; char tmp[32]; -#ifdef JP cnv_stat(p_ptr->stat_max[0], tmp); - prt(format(" a) 腕力 (現在値 %s)", tmp), 2, 14); + prt(format(_(" a) 腕力 (現在値 %s)", " a) Str (cur %s)"), tmp), 2, 14); cnv_stat(p_ptr->stat_max[1], tmp); - prt(format(" b) 知能 (現在値 %s)", tmp), 3, 14); + prt(format(_(" b) 知能 (現在値 %s)", " a) Int (cur %s)"), tmp), 3, 14); cnv_stat(p_ptr->stat_max[2], tmp); - prt(format(" c) 賢さ (現在値 %s)", tmp), 4, 14); + prt(format(_(" c) 賢さ (現在値 %s)", " a) Wis (cur %s)"), tmp), 4, 14); cnv_stat(p_ptr->stat_max[3], tmp); - prt(format(" d) 器用 (現在値 %s)", tmp), 5, 14); + prt(format(_(" d) 器用 (現在値 %s)", " a) Dex (cur %s)"), tmp), 5, 14); cnv_stat(p_ptr->stat_max[4], tmp); - prt(format(" e) 耐久 (現在値 %s)", tmp), 6, 14); + prt(format(_(" e) 耐久 (現在値 %s)", " a) Con (cur %s)"), tmp), 6, 14); cnv_stat(p_ptr->stat_max[5], tmp); - prt(format(" f) 魅力 (現在値 %s)", tmp), 7, 14); - prt("", 8, 14); - prt(" どの能力値を上げますか?", 1, 14); -#else - cnv_stat(p_ptr->stat_max[0], tmp); - prt(format(" a) Str (cur %s)", tmp), 2, 14); - cnv_stat(p_ptr->stat_max[1], tmp); - prt(format(" b) Int (cur %s)", tmp), 3, 14); - cnv_stat(p_ptr->stat_max[2], tmp); - prt(format(" c) Wis (cur %s)", tmp), 4, 14); - cnv_stat(p_ptr->stat_max[3], tmp); - prt(format(" d) Dex (cur %s)", tmp), 5, 14); - cnv_stat(p_ptr->stat_max[4], tmp); - prt(format(" e) Con (cur %s)", tmp), 6, 14); - cnv_stat(p_ptr->stat_max[5], tmp); - prt(format(" f) Chr (cur %s)", tmp), 7, 14); + prt(format(_(" f) 魅力 (現在値 %s)", " a) Chr (cur %s)"), tmp), 7, 14); + prt("", 8, 14); - prt(" Which stat do you want to raise?", 1, 14); -#endif + prt(_(" どの能力値を上げますか?", " Which stat do you want to raise?"), 1, 14); + while(1) { choice = inkey(); if ((choice >= 'a') && (choice <= 'f')) break; } - for(n = 0; n < 6; n++) + for(n = 0; n < A_MAX; n++) if (n != choice - 'a') prt("",n+2,14); if (get_check(_("よろしいですか?", "Are you sure? "))) break; @@ -201,7 +188,7 @@ void check_experience(void) * Used to allocate proper treasure when "Creeping coins" die * Note the use of actual "monster names" */ -static int get_coin_type(MONRACE_IDX r_idx) +static OBJECT_SUBTYPE_VALUE get_coin_type(MONRACE_IDX r_idx) { /* Analyze monsters */ switch (r_idx) @@ -219,151 +206,6 @@ static int get_coin_type(MONRACE_IDX r_idx) } -/*! - * @brief オブジェクトがクロークかどうかを判定する / - * Hack -- determine if a template is Cloak - * @param k_idx 判定したいオブジェクトのベースアイテムID - * @return オブジェクトがクロークならばTRUEを返す - */ -static bool kind_is_cloak(KIND_OBJECT_IDX k_idx) -{ - object_kind *k_ptr = &k_info[k_idx]; - - /* Analyze the item type */ - if (k_ptr->tval == TV_CLOAK) - { - return (TRUE); - } - - /* Assume not good */ - return (FALSE); -} - - -/*! - * @brief オブジェクトが竿状武器かどうかを判定する / - * Hack -- determine if a template is Polearm - * @param k_idx 判定したいオブジェクトのベースアイテムID - * @return オブジェクトが竿状武器ならばTRUEを返す - */ -static bool kind_is_polearm(KIND_OBJECT_IDX k_idx) -{ - object_kind *k_ptr = &k_info[k_idx]; - - /* Analyze the item type */ - if (k_ptr->tval == TV_POLEARM) - { - return (TRUE); - } - - /* Assume not good */ - return (FALSE); -} - - -/*! - * @brief オブジェクトが剣かどうかを判定する / - * Hack -- determine if a template is Sword - * @param k_idx 判定したいオブジェクトのベースアイテムID - * @return オブジェクトが剣ならばTRUEを返す - */ -static bool kind_is_sword(KIND_OBJECT_IDX k_idx) -{ - object_kind *k_ptr = &k_info[k_idx]; - - /* Analyze the item type */ - if ((k_ptr->tval == TV_SWORD) && (k_ptr->sval > 2)) - { - return (TRUE); - } - - /* Assume not good */ - return (FALSE); -} - - -/*! - * @brief オブジェクトが魔法書かどうかを判定する / - * Hack -- determine if a template is Book - * @param k_idx 判定したいオブジェクトのベースアイテムID - * @return オブジェクトが魔法書ならばTRUEを返す - */ -static bool kind_is_book(KIND_OBJECT_IDX k_idx) -{ - object_kind *k_ptr = &k_info[k_idx]; - - /* Analyze the item type */ - if ((k_ptr->tval >= TV_LIFE_BOOK) && (k_ptr->tval <= TV_CRUSADE_BOOK)) - { - return (TRUE); - } - - /* Assume not good */ - return (FALSE); -} - - -/*! - * @brief オブジェクトがベースアイテム時点でGOODかどうかを判定する / - * Hack -- determine if a template is Good book - * @param k_idx 判定したいオブジェクトのベースアイテムID - * @return オブジェクトがベースアイテム時点でGOODなアイテムならばTRUEを返す - */ -static bool kind_is_good_book(KIND_OBJECT_IDX k_idx) -{ - object_kind *k_ptr = &k_info[k_idx]; - - /* Analyze the item type */ - if ((k_ptr->tval >= TV_LIFE_BOOK) && (k_ptr->tval <= TV_CRUSADE_BOOK) && (k_ptr->tval != TV_ARCANE_BOOK) && (k_ptr->sval > 1)) - { - return (TRUE); - } - - /* Assume not good */ - return (FALSE); -} - - -/*! - * @brief オブジェクトが鎧かどうかを判定する / - * Hack -- determine if a template is Armor - * @param k_idx 判定したいオブジェクトのベースアイテムID - * @return オブジェクトが鎧ならばTRUEを返す - */ -static bool kind_is_armor(KIND_OBJECT_IDX k_idx) -{ - object_kind *k_ptr = &k_info[k_idx]; - - /* Analyze the item type */ - if (k_ptr->tval == TV_HARD_ARMOR) - { - return (TRUE); - } - - /* Assume not good */ - return (FALSE); -} - - -/*! - * @brief オブジェクトが打撃武器かどうかを判定する / - * Hack -- determine if a template is hafted weapon - * @param k_idx 判定したいオブジェクトのベースアイテムID - * @return オブジェクトが打撃武器ならばTRUEを返す - */ -static bool kind_is_hafted(KIND_OBJECT_IDX k_idx) -{ - object_kind *k_ptr = &k_info[k_idx]; - - /* Analyze the item type */ - if (k_ptr->tval == TV_HAFTED) - { - return (TRUE); - } - - /* Assume not good */ - return (FALSE); -} /*! * @brief クエストを達成状態にする / @@ -439,7 +281,6 @@ void check_quest_completion(monster_type *m_ptr) object_type forge; object_type *o_ptr; - /* Get the location */ y = m_ptr->fy; x = m_ptr->fx; @@ -630,8 +471,6 @@ void check_quest_completion(monster_type *m_ptr) /* Make a great object */ make_object(o_ptr, AM_GOOD | AM_GREAT); - - /* Drop it in the dungeon */ (void)drop_near(o_ptr, -1, y, x); } } @@ -665,10 +504,11 @@ void check_find_art_quest_completion(object_type *o_ptr) * @param r_ptr 撃破されたモンスターの種族情報を持つ構造体の参照ポインタ * @return 撃破されたモンスターの述語 */ -cptr extract_note_dies(monster_race *r_ptr) +cptr extract_note_dies(MONRACE_IDX r_idx) { + monster_race *r_ptr = &r_info[r_idx]; /* Some monsters get "destroyed" */ - if (!monster_living(r_ptr)) + if (!monster_living(r_idx)) { int i; @@ -741,13 +581,12 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) p_ptr->update |= (PU_MON_LITE); } - /* Get the location */ y = m_ptr->fy; x = m_ptr->fx; if (record_named_pet && is_pet(m_ptr) && m_ptr->nickname) { - char m_name[80]; + GAME_TEXT m_name[MAX_NLEN]; monster_desc(m_name, m_ptr, MD_INDEF_VISIBLE); do_cmd_write_nikki(NIKKI_NAMED_PET, 3, m_name); @@ -799,8 +638,6 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) /* Prepare to make a prize */ object_prep(q_ptr, lookup_kind(arena_info[p_ptr->arena_number].tval, arena_info[p_ptr->arena_number].sval)); apply_magic(q_ptr, object_level, AM_NO_FIXED_ART); - - /* Drop it in the dungeon */ (void)drop_near(q_ptr, -1, y, x); } @@ -808,7 +645,7 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) p_ptr->arena_number++; if (record_arena) { - char m_name[80]; + GAME_TEXT m_name[MAX_NLEN]; /* Extract monster name */ monster_desc(m_name, m_ptr, MD_IGNORE_HALLU | MD_ASSUME_VISIBLE | MD_INDEF_VISIBLE); @@ -863,8 +700,6 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) apply_magic(q_ptr, object_level, AM_NO_FIXED_ART); q_ptr->pval = m_ptr->r_idx; - - /* Drop it in the dungeon */ (void)drop_near(q_ptr, -1, y, x); } @@ -884,21 +719,19 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) for (i = 0; i < 2; i++) { - int wy = y, wx = x; + POSITION wy = y, wx = x; bool pet = is_pet(m_ptr); BIT_FLAGS mode = 0L; if (pet) mode |= PM_FORCE_PET; - if (summon_specific((pet ? -1 : m_idx), wy, wx, 100, SUMMON_BLUE_HORROR, mode)) + if (summon_specific((pet ? -1 : m_idx), wy, wx, 100, SUMMON_BLUE_HORROR, mode, '\0')) { - if (player_can_see_bold(wy, wx)) - notice = TRUE; + if (player_can_see_bold(wy, wx)) notice = TRUE; } } - if (notice) - msg_print(_("ピンク・ホラーは分裂した!", "The Pink horror divides!")); + if (notice) msg_print(_("ピンク・ホラーは分裂した!", "The Pink horror divides!")); } break; @@ -912,8 +745,6 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) object_prep(q_ptr, lookup_kind(TV_SWORD, SV_BLADE_OF_CHAOS)); apply_magic(q_ptr, object_level, AM_NO_FIXED_ART | mo_mode); - - /* Drop it in the dungeon */ (void)drop_near(q_ptr, -1, y, x); } break; @@ -932,8 +763,6 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) /* Make a book */ make_object(q_ptr, mo_mode); - - /* Drop it in the dungeon */ (void)drop_near(q_ptr, -1, y, x); } break; @@ -962,7 +791,7 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) BIT_FLAGS mode = 0L; if (pet) mode |= PM_FORCE_PET; - if (summon_specific((pet ? -1 : m_idx), wy, wx, 100, SUMMON_DAWN, mode)) + if (summon_specific((pet ? -1 : m_idx), wy, wx, 100, SUMMON_DAWN, mode, '\0')) { if (player_can_see_bold(wy, wx)) msg_print(_("新たな戦士が現れた!", "A new warrior steps forth!")); @@ -1034,8 +863,6 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) /* Mega-Hack -- Actually create "Grond" */ apply_magic(q_ptr, -1, AM_GOOD | AM_GREAT); - - /* Drop it in the dungeon */ (void)drop_near(q_ptr, -1, y, x); q_ptr = &forge; @@ -1047,8 +874,6 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) /* Mega-Hack -- Actually create "Chaos" */ apply_magic(q_ptr, -1, AM_GOOD | AM_GREAT); - - /* Drop it in the dungeon */ (void)drop_near(q_ptr, -1, y, x); break; @@ -1059,8 +884,6 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) /* Prepare to make a broken sword */ object_prep(q_ptr, lookup_kind(TV_SWORD, randint1(2))); - - /* Drop it in the dungeon */ (void)drop_near(q_ptr, -1, y, x); } break; @@ -1076,8 +899,6 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) object_prep(q_ptr, lookup_kind(TV_CHEST, SV_CHEST_KANDUME)); apply_magic(q_ptr, object_level, AM_NO_FIXED_ART); - - /* Drop it in the dungeon */ (void)drop_near(q_ptr, -1, y, x); } break; @@ -1105,8 +926,6 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) /* Make a cloak */ make_object(q_ptr, mo_mode); - - /* Drop it in the dungeon */ (void)drop_near(q_ptr, -1, y, x); } break; @@ -1122,8 +941,6 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) /* Make a poleweapon */ make_object(q_ptr, mo_mode); - - /* Drop it in the dungeon */ (void)drop_near(q_ptr, -1, y, x); } break; @@ -1139,8 +956,6 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) /* Make a hard armor */ make_object(q_ptr, mo_mode); - - /* Drop it in the dungeon */ (void)drop_near(q_ptr, -1, y, x); } break; @@ -1156,8 +971,6 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) /* Make a hafted weapon */ make_object(q_ptr, mo_mode); - - /* Drop it in the dungeon */ (void)drop_near(q_ptr, -1, y, x); } break; @@ -1173,8 +986,6 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) /* Make a sword */ make_object(q_ptr, mo_mode); - - /* Drop it in the dungeon */ (void)drop_near(q_ptr, -1, y, x); } break; @@ -1248,8 +1059,6 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) object_prep(q_ptr, k_idx); apply_magic(q_ptr, object_level, AM_NO_FIXED_ART | AM_GOOD); - - /* Drop it in the dungeon */ (void)drop_near(q_ptr, -1, y, x); } msg_format(_("あなたは%sを制覇した!", "You have conquered %s!"),d_name+d_info[dungeon_type].name); @@ -1303,8 +1112,6 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) dump_item++; } - - /* Drop it in the dungeon */ (void)drop_near(q_ptr, -1, y, x); } @@ -1556,7 +1363,7 @@ bool mon_take_hit(MONSTER_IDX m_idx, HIT_POINT dam, bool *fear, cptr note) /* It is dead now */ if (m_ptr->hp < 0) { - char m_name[80]; + GAME_TEXT m_name[MAX_NLEN]; if (r_info[m_ptr->r_idx].flags7 & RF7_TANUKI) { @@ -1646,8 +1453,6 @@ bool mon_take_hit(MONSTER_IDX m_idx, HIT_POINT dam, bool *fear, cptr note) if (r_ptr->flags2 & RF2_CAN_SPEAK) { char line_got[1024]; - - /* Dump a message */ if (!get_rnd_line(_("mondeath_j.txt", "mondeath.txt"), m_ptr->r_idx, line_got)) { msg_format("%^s %s", m_name, line_got); @@ -1799,7 +1604,7 @@ bool mon_take_hit(MONSTER_IDX m_idx, HIT_POINT dam, bool *fear, cptr note) } /* Death by Physical attack -- non-living monster */ - else if (!monster_living(r_ptr)) + else if (!monster_living(m_ptr->r_idx)) { bool explode = FALSE; @@ -1945,7 +1750,7 @@ void get_screen_size(TERM_LEN *wid_p, TERM_LEN *hgt_p) */ void panel_bounds_center(void) { - int wid, hgt; + TERM_LEN wid, hgt; get_screen_size(&wid, &hgt); @@ -1977,20 +1782,11 @@ void resize_map(void) verify_panel(); p_ptr->update |= (PU_TORCH | PU_BONUS | PU_HP | PU_MANA | PU_SPELLS); - - /* Forget lite/view */ p_ptr->update |= (PU_UN_VIEW | PU_UN_LITE); - - /* Update lite/view */ p_ptr->update |= (PU_VIEW | PU_LITE | PU_MON_LITE); - - /* Update monsters */ p_ptr->update |= (PU_MONSTERS); - - /* Redraw everything */ p_ptr->redraw |= (PR_WIPE | PR_BASIC | PR_EXTRA | PR_MAP | PR_EQUIPPY); - /* Hack -- update */ handle_stuff(); Term_redraw(); @@ -2000,7 +1796,6 @@ void resize_map(void) */ if (can_save) move_cursor_relative(p_ptr->y, p_ptr->x); - /* Refresh */ Term_fresh(); } @@ -2017,7 +1812,6 @@ void redraw_window(void) p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER); p_ptr->window |= (PW_MESSAGE | PW_OVERHEAD | PW_DUNGEON | PW_MONSTER | PW_OBJECT); - /* Hack -- update */ handle_stuff(); Term_redraw(); } @@ -2062,7 +1856,6 @@ bool change_panel(POSITION dy, POSITION dx) panel_bounds_center(); p_ptr->update |= (PU_MONSTERS); - p_ptr->redraw |= (PR_MAP); handle_stuff(); @@ -2115,7 +1908,7 @@ void verify_panel(void) { POSITION y = p_ptr->y; POSITION x = p_ptr->x; - int wid, hgt; + TERM_LEN wid, hgt; int prow_min; int pcol_min; @@ -2204,9 +1997,7 @@ void verify_panel(void) panel_bounds_center(); p_ptr->update |= (PU_MONSTERS); - p_ptr->redraw |= (PR_MAP); - p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON); } @@ -2217,70 +2008,44 @@ void verify_panel(void) cptr look_mon_desc(monster_type *m_ptr, BIT_FLAGS mode) { monster_race *ap_r_ptr = &r_info[m_ptr->ap_r_idx]; - bool living; - int perc; + bool living; + int perc; cptr desc; cptr attitude; cptr clone; /* Determine if the monster is "living" */ - living = monster_living(ap_r_ptr); + living = monster_living(m_ptr->ap_r_idx); /* Calculate a health "percentage" */ - perc = 100L * m_ptr->hp / m_ptr->maxhp; + perc = m_ptr->maxhp > 0 ? 100L * m_ptr->hp / m_ptr->maxhp : 0; /* Healthy monsters */ if (m_ptr->hp >= m_ptr->maxhp) { - /* No damage */ -#ifdef JP - desc = living ? "無傷" : "無ダメージ"; -#else - desc = living ? "unhurt" : "undamaged"; -#endif - + desc = living ? _("無傷", "unhurt") : _("無ダメージ", "undamaged"); } else if (perc >= 60) { -#ifdef JP - desc = living ? "軽傷" : "小ダメージ"; -#else - desc = living ? "somewhat wounded" : "somewhat damaged"; -#endif - + desc = living ? _("軽傷", "somewhat wounded") : _("小ダメージ", "somewhat damaged"); } else if (perc >= 25) { -#ifdef JP - desc = living ? "負傷" : "中ダメージ"; -#else - desc = living ? "wounded" : "damaged"; -#endif - + desc = living ? _("負傷", "wounded") : _("中ダメージ", "damaged"); } else if (perc >= 10) { -#ifdef JP - desc = living ? "重傷" : "大ダメージ"; -#else - desc = living ? "badly wounded" : "badly damaged"; -#endif - + desc = living ? _("重傷", "badly wounded") : _("大ダメージ", "badly damaged"); } else { -#ifdef JP - desc = living ? "半死半生" : "倒れかけ"; -#else - desc = living ? "almost dead" : "almost destroyed"; -#endif + desc = living ? _("半死半生", "almost dead") : _("倒れかけ", "almost destroyed"); } - /* Need attitude information? */ if (!(mode & 0x01)) { @@ -2300,7 +2065,6 @@ cptr look_mon_desc(monster_type *m_ptr, BIT_FLAGS mode) attitude = _("", ""); } - /* Clone monster? */ if (m_ptr->smart & SM_CLONED) { @@ -2320,6 +2084,7 @@ cptr look_mon_desc(monster_type *m_ptr, BIT_FLAGS mode) { return format(_("レベル???, %s%s%s", "Level ???, %s%s%s"), desc, attitude, clone); } + } @@ -2891,15 +2656,12 @@ static char target_set_aux(POSITION y, POSITION x, BIT_FLAGS mode, cptr info) /* Hack -- under the player */ if (player_bold(y, x)) { - /* Description */ #ifdef JP s1 = "あなたは"; s2 = "の上"; s3 = "にいる"; #else s1 = "You are "; - - /* Preposition */ s2 = "on "; #endif } @@ -2937,7 +2699,7 @@ static char target_set_aux(POSITION y, POSITION x, BIT_FLAGS mode, cptr info) { monster_type *m_ptr = &m_list[c_ptr->m_idx]; monster_race *ap_r_ptr = &r_info[m_ptr->ap_r_idx]; - char m_name[80]; + GAME_TEXT m_name[MAX_NLEN]; bool recall = FALSE; /* Not boring */ @@ -2951,8 +2713,6 @@ static char target_set_aux(POSITION y, POSITION x, BIT_FLAGS mode, cptr info) /* Hack -- health bar for this monster */ health_track(c_ptr->m_idx); - - /* Hack -- handle stuff */ handle_stuff(); /* Interact */ @@ -3039,7 +2799,7 @@ static char target_set_aux(POSITION y, POSITION x, BIT_FLAGS mode, cptr info) /* Scan all objects being carried */ for (this_o_idx = m_ptr->hold_o_idx; this_o_idx; this_o_idx = next_o_idx) { - char o_name[MAX_NLEN]; + GAME_TEXT o_name[MAX_NLEN]; object_type *o_ptr; o_ptr = &o_list[this_o_idx]; @@ -3087,7 +2847,7 @@ static char target_set_aux(POSITION y, POSITION x, BIT_FLAGS mode, cptr info) { if (floor_num == 1) { - char o_name[MAX_NLEN]; + GAME_TEXT o_name[MAX_NLEN]; object_type *o_ptr; o_ptr = &o_list[floor_list[0]]; @@ -3195,10 +2955,9 @@ static char target_set_aux(POSITION y, POSITION x, BIT_FLAGS mode, cptr info) /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; - /* Describe it */ if (o_ptr->marked & OM_FOUND) { - char o_name[MAX_NLEN]; + GAME_TEXT o_name[MAX_NLEN]; /* Not boring */ boring = FALSE; @@ -3320,11 +3079,7 @@ static char target_set_aux(POSITION y, POSITION x, BIT_FLAGS mode, cptr info) (have_flag(f_ptr->flags, FF_BLDG) && !p_ptr->inside_arena) || have_flag(f_ptr->flags, FF_ENTRANCE)) { -#ifdef JP - s2 = "の入口"; -#else - s3 = ""; -#endif + s2 = _("の入口", ""); } #ifndef JP else if (have_flag(f_ptr->flags, FF_FLOOR) || @@ -3419,19 +3174,19 @@ static char target_set_aux(POSITION y, POSITION x, BIT_FLAGS mode, cptr info) */ bool target_set(BIT_FLAGS mode) { - int i, d, m, t, bd; + int i, d, m, t, bd; POSITION y = p_ptr->y; POSITION x = p_ptr->x; - bool done = FALSE; - bool flag = TRUE; - char query; - char info[80]; - char same_key; + bool done = FALSE; + bool flag = TRUE; + char query; + char info[80]; + char same_key; - cave_type *c_ptr; + cave_type *c_ptr; - int wid, hgt; + TERM_LEN wid, hgt; get_screen_size(&wid, &hgt); @@ -3490,8 +3245,7 @@ bool target_set(BIT_FLAGS mode) { char cheatinfo[30]; sprintf(cheatinfo, " LOS:%d, PROJECTABLE:%d", - los(p_ptr->y, p_ptr->x, y, x), - projectable(p_ptr->y, p_ptr->x, y, x)); + los(p_ptr->y, p_ptr->x, y, x), projectable(p_ptr->y, p_ptr->x, y, x)); strcat(info, cheatinfo); } @@ -4148,7 +3902,7 @@ bool get_direction(DIRECTION *dp, bool allow_under, bool with_steed) } else { - char m_name[80]; + GAME_TEXT m_name[MAX_NLEN]; monster_type *m_ptr = &m_list[p_ptr->riding]; monster_desc(m_name, m_ptr, 0); @@ -4293,7 +4047,7 @@ bool get_rep_dir(DIRECTION *dp, bool under) } else { - char m_name[80]; + GAME_TEXT m_name[MAX_NLEN]; monster_type *m_ptr = &m_list[p_ptr->riding]; monster_desc(m_name, m_ptr, 0); @@ -4328,7 +4082,7 @@ void gain_level_reward(int chosen_reward) OBJECT_SUBTYPE_VALUE dummy2 = 0; int type, effect; cptr reward = NULL; - char o_name[MAX_NLEN]; + GAME_TEXT o_name[MAX_NLEN]; int count = 0; @@ -4535,8 +4289,6 @@ void gain_level_reward(int chosen_reward) q_ptr->to_d = 3 + randint1(dun_level) % 10; one_resistance(q_ptr); q_ptr->name2 = EGO_CHAOTIC; - - /* Drop it in the dungeon */ (void)drop_near(q_ptr, -1, p_ptr->y, p_ptr->x); reward = _("(混沌)の武器を手に入れた。", "chaos weapon"); break; @@ -4579,7 +4331,7 @@ void gain_level_reward(int chosen_reward) for (dummy = 0; dummy < randint1(5) + 1; dummy++) { - (void)summon_specific(0, p_ptr->y, p_ptr->x, dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET)); + (void)summon_specific(0, p_ptr->y, p_ptr->x, dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0'); } reward = _("モンスターを召喚された。", "summoning hostile monsters"); break; @@ -4662,7 +4414,7 @@ void gain_level_reward(int chosen_reward) msg_print(_("「汝、謙虚たることを学ぶべし!」", "'Thou needst a lesson in humility, mortal!'")); msg_print(_("あなたは以前より弱くなった!", "You feel less powerful!")); - for (dummy = 0; dummy < 6; dummy++) + for (dummy = 0; dummy < A_MAX; dummy++) { (void)dec_stat(dummy, 10 + randint1(15), TRUE); } @@ -4683,7 +4435,7 @@ void gain_level_reward(int chosen_reward) msg_print(_("「我がささやかなる賜物を受けとるがよい!」", "'Receive this modest gift from me!'")); - for (dummy = 0; dummy < 6; dummy++) + for (dummy = 0; dummy < A_MAX; dummy++) { (void)do_inc_stat(dummy); } @@ -4774,7 +4526,7 @@ void gain_level_reward(int chosen_reward) } break; default: - for (dummy = 0; dummy < 6; dummy++) + for (dummy = 0; dummy < A_MAX; dummy++) { (void)dec_stat(dummy, 10 + randint1(15), TRUE); } @@ -4789,7 +4541,7 @@ void gain_level_reward(int chosen_reward) msg_print(_("「死ぬがよい、下僕よ!」", "'Die, mortal!'")); take_hit(DAMAGE_LOSELIFE, p_ptr->lev * 4, wrath_reason, -1); - for (dummy = 0; dummy < 6; dummy++) + for (dummy = 0; dummy < A_MAX; dummy++) { (void)dec_stat(dummy, 10 + randint1(15), FALSE); } @@ -4852,7 +4604,7 @@ void gain_level_reward(int chosen_reward) msg_format(_("%sは褒美として悪魔の使いをよこした!", "%s rewards you with a demonic servant!"),chaos_patrons[p_ptr->chaos_patron]); - if (!summon_specific(-1, p_ptr->y, p_ptr->x, dun_level, SUMMON_DEMON, PM_FORCE_PET)) + if (!summon_specific(-1, p_ptr->y, p_ptr->x, dun_level, SUMMON_DEMON, PM_FORCE_PET, '\0')) msg_print(_("何も現れなかった...", "Nobody ever turns up...")); else reward = _("悪魔がペットになった。", "a demonic servant"); @@ -4862,7 +4614,7 @@ void gain_level_reward(int chosen_reward) case REW_SER_MONS: msg_format(_("%sは褒美として使いをよこした!", "%s rewards you with a servant!"),chaos_patrons[p_ptr->chaos_patron]); - if (!summon_specific(-1, p_ptr->y, p_ptr->x, dun_level, 0, PM_FORCE_PET)) + if (!summon_specific(-1, p_ptr->y, p_ptr->x, dun_level, 0, PM_FORCE_PET, '\0')) msg_print(_("何も現れなかった...", "Nobody ever turns up...")); else reward = _("モンスターがペットになった。", "a servant"); @@ -4872,7 +4624,7 @@ void gain_level_reward(int chosen_reward) case REW_SER_UNDE: msg_format(_("%sは褒美としてアンデッドの使いをよこした。", "%s rewards you with an undead servant!"),chaos_patrons[p_ptr->chaos_patron]); - if (!summon_specific(-1, p_ptr->y, p_ptr->x, dun_level, SUMMON_UNDEAD, PM_FORCE_PET)) + if (!summon_specific(-1, p_ptr->y, p_ptr->x, dun_level, SUMMON_UNDEAD, PM_FORCE_PET, '\0')) msg_print(_("何も現れなかった...", "Nobody ever turns up...")); else reward = _("アンデッドがペットになった。", "an undead servant"); @@ -4976,7 +4728,7 @@ bool tgt_pt(POSITION *x_ptr, POSITION *y_ptr) POSITION x, y; bool success = FALSE; - int wid, hgt; + TERM_LEN wid, hgt; get_screen_size(&wid, &hgt); @@ -5245,29 +4997,6 @@ bool get_hack_dir(DIRECTION *dp) } -/* - * エネルギーの増加量10d5を速く計算するための関数 - */ - -#define Go_no_JuuJou 5*5*5*5*5*5*5*5*5*5 - -s16b gain_energy(void) -{ - int i; - s32b energy_result = 10; - s32b tmp; - - tmp = randint0(Go_no_JuuJou); - - for (i = 0; i < 9; i ++){ - energy_result += tmp % 5; - tmp /= 5; - } - - return (s16b)(energy_result + tmp); -} - - /*! * @brief 射撃武器の攻撃に必要な基本消費エネルギーを返す/Return bow energy * @param sval 射撃武器のアイテム副分類ID @@ -5383,69 +5112,6 @@ int bow_tmul(OBJECT_SUBTYPE_VALUE sval) return (tmul); } -/* - * Return alignment title - */ -cptr your_alignment(void) -{ -#ifdef JP - if (p_ptr->align > 150) return "大善"; - else if (p_ptr->align > 50) return "中善"; - else if (p_ptr->align > 10) return "小善"; - else if (p_ptr->align > -11) return "中立"; - else if (p_ptr->align > -51) return "小悪"; - else if (p_ptr->align > -151) return "中悪"; - else return "大悪"; -#else - if (p_ptr->align > 150) return "Lawful"; - else if (p_ptr->align > 50) return "Good"; - else if (p_ptr->align > 10) return "Neutral Good"; - else if (p_ptr->align > -11) return "Neutral"; - else if (p_ptr->align > -51) return "Neutral Evil"; - else if (p_ptr->align > -151) return "Evil"; - else return "Chaotic"; -#endif -} - - -/* - * Return proficiency level of weapons and misc. skills (except riding) - */ -int weapon_exp_level(int weapon_exp) -{ - if (weapon_exp < WEAPON_EXP_BEGINNER) return EXP_LEVEL_UNSKILLED; - else if (weapon_exp < WEAPON_EXP_SKILLED) return EXP_LEVEL_BEGINNER; - else if (weapon_exp < WEAPON_EXP_EXPERT) return EXP_LEVEL_SKILLED; - else if (weapon_exp < WEAPON_EXP_MASTER) return EXP_LEVEL_EXPERT; - else return EXP_LEVEL_MASTER; -} - - -/* - * Return proficiency level of riding - */ -int riding_exp_level(int riding_exp) -{ - if (riding_exp < RIDING_EXP_BEGINNER) return EXP_LEVEL_UNSKILLED; - else if (riding_exp < RIDING_EXP_SKILLED) return EXP_LEVEL_BEGINNER; - else if (riding_exp < RIDING_EXP_EXPERT) return EXP_LEVEL_SKILLED; - else if (riding_exp < RIDING_EXP_MASTER) return EXP_LEVEL_EXPERT; - else return EXP_LEVEL_MASTER; -} - - -/* - * Return proficiency level of spells - */ -int spell_exp_level(int spell_exp) -{ - if (spell_exp < SPELL_EXP_BEGINNER) return EXP_LEVEL_UNSKILLED; - else if (spell_exp < SPELL_EXP_SKILLED) return EXP_LEVEL_BEGINNER; - else if (spell_exp < SPELL_EXP_EXPERT) return EXP_LEVEL_SKILLED; - else if (spell_exp < SPELL_EXP_MASTER) return EXP_LEVEL_EXPERT; - else return EXP_LEVEL_MASTER; -} - /* * Display a rumor and apply its effects