X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fcmd3.c;h=fb1bbe9a2ad3c734b291ebf1f59dea8b4e00b44a;hb=0ab66085b181d0d4169985827efe930306a461a1;hp=39d65691a2441bdebdc4422c05352fd1563450c1;hpb=2a41c9428cd1e996df76f4d48c1c3093f90c77af;p=hengband%2Fhengband.git diff --git a/src/cmd3.c b/src/cmd3.c index 39d65691a..fb1bbe9a2 100644 --- a/src/cmd3.c +++ b/src/cmd3.c @@ -1,8 +1,8 @@ -/* File: cmd3.c */ - -/* Purpose: Inventory commands */ - -/* +/*! + * @file cmd3.c + * @brief プレイヤーのアイテムに関するコマンドの実装1 / Inventory commands + * @date 2014/01/02 + * @author * Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke * * This software may be copied and distributed for educational, research, @@ -10,12 +10,14 @@ * are included in all such copies. Other copyrights may also apply. */ + #include "angband.h" -/* - * Display inventory +/*! + * @brief 持ち物一覧を表示するコマンドのメインルーチン / Display inventory + * @return なし */ void do_cmd_inven(void) { @@ -45,14 +47,13 @@ void do_cmd_inven(void) item_tester_full = FALSE; #ifdef JP - sprintf(out_val, "»ý¤Áʪ¡§ ¹ç·× %3d.%1d kg (¸Â³¦¤Î%ld%%) ¥³¥Þ¥ó¥É: ", - lbtokg1(p_ptr->total_weight) , lbtokg2(p_ptr->total_weight) , - (p_ptr->total_weight * 100) / ((adj_str_wgt[p_ptr->stat_ind[A_STR]] * (p_ptr->pclass == CLASS_BERSERKER ? 150 : 100)) -/ 2)); + sprintf(out_val, "持ち物: 合計 %3d.%1d kg (限界の%ld%%) コマンド: ", + (int)lbtokg1(p_ptr->total_weight) , (int)lbtokg2(p_ptr->total_weight) , + (long int)((p_ptr->total_weight * 100) / weight_limit())); #else sprintf(out_val, "Inventory: carrying %d.%d pounds (%ld%% of capacity). Command: ", (int)(p_ptr->total_weight / 10), (int)(p_ptr->total_weight % 10), - (p_ptr->total_weight * 100) / ((adj_str_wgt[p_ptr->stat_ind[A_STR]] * (p_ptr->pclass == CLASS_BERSERKER ? 150 : 100)) / 2)); + (p_ptr->total_weight * 100) / weight_limit()); #endif @@ -88,8 +89,9 @@ void do_cmd_inven(void) } -/* - * Display equipment +/*! + * @brief 装備一覧を表示するコマンドのメインルーチン / Display equipment + * @return なし */ void do_cmd_equip(void) { @@ -120,14 +122,13 @@ void do_cmd_equip(void) /* Build a prompt */ #ifdef JP - sprintf(out_val, "ÁõÈ÷¡§ ¹ç·× %3d.%1d kg (¸Â³¦¤Î%ld%%) ¥³¥Þ¥ó¥É: ", - lbtokg1(p_ptr->total_weight) , lbtokg2(p_ptr->total_weight) , - (p_ptr->total_weight * 100) / ((adj_str_wgt[p_ptr->stat_ind[A_STR]] * (p_ptr->pclass == CLASS_BERSERKER ? 150 : 100)) -/ 2)); + sprintf(out_val, "装備: 合計 %3d.%1d kg (限界の%ld%%) コマンド: ", + (int)lbtokg1(p_ptr->total_weight) , (int)lbtokg2(p_ptr->total_weight) , + (long int)((p_ptr->total_weight * 100) / weight_limit())); #else sprintf(out_val, "Equipment: carrying %d.%d pounds (%ld%% of capacity). Command: ", (int)(p_ptr->total_weight / 10), (int)(p_ptr->total_weight % 10), - (p_ptr->total_weight * 100) / ((adj_str_wgt[p_ptr->stat_ind[A_STR]] * (p_ptr->pclass == CLASS_BERSERKER ? 150 : 100)) / 2)); + (long int)((p_ptr->total_weight * 100) / weight_limit())); #endif @@ -163,8 +164,10 @@ void do_cmd_equip(void) } -/* - * The "wearable" tester +/*! + * @brief オブジェクトを防具として装備できるかの判定 / The "wearable" tester + * @param o_ptr 判定するオブジェクトの構造体参照ポインタ + * @return オブジェクトが防具として装備できるならTRUEを返す。 */ static bool item_tester_hook_wear(object_type *o_ptr) { @@ -179,6 +182,11 @@ static bool item_tester_hook_wear(object_type *o_ptr) } +/*! + * @brief オブジェクトがどちらの手にも装備できる武器かどうかの判定 + * @param o_ptr 判定するオブジェクトの構造体参照ポインタ + * @return 左右両方の手で装備できるならばTRUEを返す。 + */ static bool item_tester_hook_mochikae(object_type *o_ptr) { /* Check for a usable slot */ @@ -190,7 +198,11 @@ static bool item_tester_hook_mochikae(object_type *o_ptr) return (FALSE); } - +/*! + * @brief オブジェクトが右手か左手に装備できる武器かどうかの判定 + * @param o_ptr 判定するオブジェクトの構造体参照ポインタ + * @return 右手か左手の武器として装備できるならばTRUEを返す。 + */ static bool item_tester_hook_melee_weapon(object_type *o_ptr) { /* Check for a usable slot */ @@ -201,12 +213,15 @@ static bool item_tester_hook_melee_weapon(object_type *o_ptr) } -/* - * Wield or wear a single item from the pack or floor +bool select_ring_slot = FALSE; + +/*! + * @brief 装備するコマンドのメインルーチン / Wield or wear a single item from the pack or floor + * @return なし */ void do_cmd_wield(void) { - int i, item, slot; + OBJECT_IDX item, slot; object_type forge; object_type *q_ptr; @@ -219,6 +234,8 @@ void do_cmd_wield(void) cptr q, s; + int need_switch_wielding = 0; + if (p_ptr->special_defense & KATA_MUSOU) { set_action(ACTION_NONE); @@ -228,13 +245,8 @@ void do_cmd_wield(void) item_tester_hook = item_tester_hook_wear; /* Get an item */ -#ifdef JP - q = "¤É¤ì¤òÁõÈ÷¤·¤Þ¤¹¤«? "; - s = "ÁõÈ÷²Äǽ¤Ê¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¡£"; -#else - q = "Wear/Wield which item? "; - s = "You have nothing you can wear or wield."; -#endif + q = _("どれを装備しますか? ", "Wear/Wield which item? "); + s = _("装備可能なアイテムがない。", "You have nothing you can wear or wield."); if (!get_item(&item, q, s, (USE_INVEN | USE_FLOOR))) return; @@ -260,6 +272,7 @@ void do_cmd_wield(void) case TV_CAPTURE: case TV_SHIELD: case TV_CARD: + /* Dual wielding */ if (buki_motteruka(INVEN_RARM) && buki_motteruka(INVEN_LARM)) { /* Restrict the choices */ @@ -267,36 +280,25 @@ void do_cmd_wield(void) item_tester_no_ryoute = TRUE; /* Choose a weapon from the equipment only */ -#ifdef JP - q = "¤É¤Á¤é¤ÎÉð´ï¤È¼è¤êÂؤ¨¤Þ¤¹¤«?"; - s = "¤ª¤Ã¤È¡£"; -#else - q = "Replace which weapon? "; - s = "Oops."; -#endif - + q = _("どちらの武器と取り替えますか?", "Replace which weapon? "); + s = _("おっと。", "Oops."); if (!get_item(&slot, q, s, (USE_EQUIP))) return; - if ((slot == INVEN_RARM) && !cursed_p(&inventory[INVEN_RARM])) - { - object_type *or_ptr = &inventory[INVEN_RARM]; - object_type *ol_ptr = &inventory[INVEN_LARM]; - object_type object_tmp; - object_type *otmp_ptr = &object_tmp; - char ol_name[MAX_NLEN]; + if (slot == INVEN_RARM) need_switch_wielding = INVEN_LARM; + } - object_desc(ol_name, ol_ptr, FALSE, 0); + else if (buki_motteruka(INVEN_LARM)) slot = INVEN_RARM; - object_copy(otmp_ptr, ol_ptr); - object_copy(ol_ptr, or_ptr); - object_copy(or_ptr, otmp_ptr); -#ifdef JP - msg_format("%s¤ò%s¤Ë¹½¤¨¤Ê¤ª¤·¤¿¡£", ol_name, left_hander ? "º¸¼ê" : "±¦¼ê"); -#else - msg_format("You wield %s at %s hand.", ol_name, left_hander ? "left" : "right"); -#endif + /* Both arms are already used by non-weapon */ + else if (inventory[INVEN_RARM].k_idx && !object_is_melee_weapon(&inventory[INVEN_RARM]) && + inventory[INVEN_LARM].k_idx && !object_is_melee_weapon(&inventory[INVEN_LARM])) + { + /* Restrict the choices */ + item_tester_hook = item_tester_hook_mochikae; - slot = INVEN_LARM; - } + /* Choose a hand */ + q = _("どちらの手に装備しますか?", "Equip which hand? "); + s = _("おっと。", "Oops."); + if (!get_item(&slot, q, s, (USE_EQUIP))) return; } break; @@ -308,11 +310,12 @@ void do_cmd_wield(void) /* Asking for dual wielding */ if (slot == INVEN_LARM) { -#ifdef JP - if (!get_check("ÆóÅáή¤ÇÀ襤¤Þ¤¹¤«¡©")) slot = INVEN_RARM; -#else - if (!get_check("Dual wielding? ")) slot = INVEN_RARM; -#endif + if (!get_check(_("二刀流で戦いますか?", "Dual wielding? "))) slot = INVEN_RARM; + } + + else if (!inventory[INVEN_RARM].k_idx && buki_motteruka(INVEN_LARM)) + { + if (!get_check(_("二刀流で戦いますか?", "Dual wielding? "))) slot = INVEN_LARM; } /* Both arms are already used */ @@ -322,49 +325,50 @@ void do_cmd_wield(void) item_tester_hook = item_tester_hook_mochikae; /* Choose a hand */ -#ifdef JP - q = "¤É¤Á¤é¤Î¼ê¤ËÁõÈ÷¤·¤Þ¤¹¤«?"; - s = "¤ª¤Ã¤È¡£"; -#else - q = "Equip which hand? "; - s = "Oops."; -#endif - + q = _("どちらの手に装備しますか?", "Equip which hand? "); + s = _("おっと。", "Oops."); + if (!get_item(&slot, q, s, (USE_EQUIP))) return; + if ((slot == INVEN_LARM) && !buki_motteruka(INVEN_RARM)) + need_switch_wielding = INVEN_RARM; } break; /* Rings */ case TV_RING: + /* Choose a ring slot */ if (inventory[INVEN_LEFT].k_idx && inventory[INVEN_RIGHT].k_idx) { - /* Restrict the choices */ - item_tester_tval = TV_RING; - item_tester_no_ryoute = TRUE; + q = _("どちらの指輪と取り替えますか?", "Replace which ring? "); + } + else + { + q = _("どちらの手に装備しますか?", "Equip which hand? "); + } + s = _("おっと。", "Oops."); - /* Choose a ring from the equipment only */ -#ifdef JP - q = "¤É¤Á¤é¤Î»ØÎؤȼè¤êÂؤ¨¤Þ¤¹¤«?"; - s = "¤ª¤Ã¤È¡£"; -#else - q = "Replace which ring? "; - s = "Oops."; -#endif + /* Restrict the choices */ + select_ring_slot = TRUE; + item_tester_no_ryoute = TRUE; - if (!get_item(&slot, q, s, (USE_EQUIP))) return; + if (!get_item(&slot, q, s, (USE_EQUIP))) + { + select_ring_slot = FALSE; + return; } + select_ring_slot = FALSE; break; } /* Prevent wielding into a cursed slot */ - if (cursed_p(&inventory[slot])) + if (object_is_cursed(&inventory[slot])) { /* Describe it */ - object_desc(o_name, &inventory[slot], FALSE, 0); + object_desc(o_name, &inventory[slot], (OD_OMIT_PREFIX | OD_NAME_ONLY)); /* Message */ #ifdef JP - msg_format("%s%s¤Ï¼ö¤ï¤ì¤Æ¤¤¤ë¤è¤¦¤À¡£", + msg_format("%s%sは呪われているようだ。", describe_use(slot) , o_name ); #else msg_format("The %s you are %s appears to be cursed.", @@ -375,32 +379,29 @@ void do_cmd_wield(void) return; } - if (cursed_p(o_ptr) && confirm_wear && - (object_known_p(o_ptr) || (o_ptr->ident & IDENT_SENSE))) + if (confirm_wear && + ((object_is_cursed(o_ptr) && object_is_known(o_ptr)) || + ((o_ptr->ident & IDENT_SENSE) && + (FEEL_BROKEN <= o_ptr->feeling) && (o_ptr->feeling <= FEEL_CURSED)))) { char dummy[MAX_NLEN+80]; /* Describe it */ - object_desc(o_name, o_ptr, FALSE, 0); - -#ifdef JP -sprintf(dummy, "ËÜÅö¤Ë%s{¼ö¤ï¤ì¤Æ¤¤¤ë}¤ò»È¤¤¤Þ¤¹¤«¡©", o_name); -#else - sprintf(dummy, "Really use the %s {cursed}? ", o_name); -#endif + object_desc(o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY)); + sprintf(dummy, _("本当に%s{呪われている}を使いますか?", "Really use the %s {cursed}? "), o_name); if (!get_check(dummy)) return; } - if ((o_ptr->name1 == ART_STONEMASK) && object_known_p(o_ptr) && (p_ptr->prace != RACE_VAMPIRE) && (p_ptr->prace != RACE_ANDROID)) + if ((o_ptr->name1 == ART_STONEMASK) && object_is_known(o_ptr) && (p_ptr->prace != RACE_VAMPIRE) && (p_ptr->prace != RACE_ANDROID)) { char dummy[MAX_NLEN+80]; /* Describe it */ - object_desc(o_name, o_ptr, FALSE, 0); + object_desc(o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY)); #ifdef JP -sprintf(dummy, "%s¤òÁõÈ÷¤¹¤ë¤ÈµÛ·ìµ´¤Ë¤Ê¤ê¤Þ¤¹¡£¤è¤í¤·¤¤¤Ç¤¹¤«¡©", o_name); + sprintf(dummy, "%sを装備すると吸血鬼になります。よろしいですか?", o_name); #else msg_format("%s will transforms you into a vampire permanently when equiped.", o_name); sprintf(dummy, "Do you become a vampire?"); @@ -409,36 +410,38 @@ sprintf(dummy, "%s if (!get_check(dummy)) return; } - /* Check if completed a quest */ - for (i = 0; i < max_quests; i++) + if (need_switch_wielding && !object_is_cursed(&inventory[need_switch_wielding])) { - if ((quest[i].type == QUEST_TYPE_FIND_ARTIFACT) && - (quest[i].status == QUEST_STATUS_TAKEN) && - (quest[i].k_idx == o_ptr->name1)) - { - if (record_fix_quest) do_cmd_write_nikki(NIKKI_FIX_QUEST_C, i, NULL); - quest[i].status = QUEST_STATUS_COMPLETED; - quest[i].complev = (byte)p_ptr->lev; -#ifdef JP -msg_print("¥¯¥¨¥¹¥È¤òãÀ®¤·¤¿¡ª"); -#else - msg_print("You completed the quest!"); -#endif + object_type *slot_o_ptr = &inventory[slot]; + object_type *switch_o_ptr = &inventory[need_switch_wielding]; + object_type object_tmp; + object_type *otmp_ptr = &object_tmp; + char switch_name[MAX_NLEN]; - msg_print(NULL); - } + object_desc(switch_name, switch_o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY)); + + object_copy(otmp_ptr, switch_o_ptr); + object_copy(switch_o_ptr, slot_o_ptr); + object_copy(slot_o_ptr, otmp_ptr); + + msg_format(_("%sを%sに構えなおした。", "You wield %s at %s hand."), switch_name, + (slot == INVEN_RARM) ? (left_hander ? _("左手", "left") : _("右手", "right")) : + (left_hander ? _("右手", "right") : _("左手", "left"))); + slot = need_switch_wielding; } + check_find_art_quest_completion(o_ptr); + if (p_ptr->pseikaku == SEIKAKU_MUNCHKIN) { identify_item(o_ptr); /* Auto-inscription */ - auto_inscribe_item(item, is_autopick(o_ptr)); + autopick_alter_item(item, FALSE); } /* Take a turn */ - energy_use = 100; + p_ptr->energy_use = 100; /* Get local object */ q_ptr = &forge; @@ -476,144 +479,78 @@ msg_print(" /* Wear the new stuff */ object_copy(o_ptr, q_ptr); + /* Player touches it */ + o_ptr->marked |= OM_TOUCHED; + /* Increase the weight */ p_ptr->total_weight += q_ptr->weight; /* Increment the equip counter by hand */ equip_cnt++; +#ifdef JP +#define STR_WIELD_RARM "%s(%c)を右手に装備した。" +#define STR_WIELD_LARM "%s(%c)を左手に装備した。" +#define STR_WIELD_ARMS "%s(%c)を両手で構えた。" +#else +#define STR_WIELD_RARM "You are wielding %s (%c) in your right hand." +#define STR_WIELD_LARM "You are wielding %s (%c) in your left hand." +#define STR_WIELD_ARMS "You are wielding %s (%c) with both hands." +#endif + /* Where is the item now */ switch (slot) { case INVEN_RARM: - if ((o_ptr->tval != TV_SHIELD) && (o_ptr->tval != TV_CAPTURE) && (o_ptr->tval != TV_CARD) && (empty_hands(FALSE) & EMPTY_HAND_LARM) && ((o_ptr->weight > 99) || (o_ptr->tval == TV_POLEARM)) && (!p_ptr->riding || (p_ptr->pet_extra_flags & PF_RYOUTE))) -#ifdef JP - act = "%s(%c)¤òξ¼ê¤Ç¹½¤¨¤¿¡£"; -#else - act = "You are wielding %s (%c) with both hands."; -#endif + if (object_allow_two_hands_wielding(o_ptr) && (empty_hands(FALSE) == EMPTY_HAND_LARM) && CAN_TWO_HANDS_WIELDING()) + act = STR_WIELD_ARMS; else -#ifdef JP - act = (left_hander ? "%s(%c)¤òº¸¼ê¤ËÁõÈ÷¤·¤¿¡£" : "%s(%c)¤ò±¦¼ê¤ËÁõÈ÷¤·¤¿¡£"); -#else - act = (left_hander ? "You are wielding %s (%c) on left hand." : "You are wielding %s (%c) on right hand."); -#endif + act = (left_hander ? STR_WIELD_LARM : STR_WIELD_RARM); break; case INVEN_LARM: -#ifdef JP - act = (left_hander ? "%s(%c)¤ò±¦¼ê¤ËÁõÈ÷¤·¤¿¡£" : "%s(%c)¤òº¸¼ê¤ËÁõÈ÷¤·¤¿¡£"); -#else - act = (left_hander ? "You are wielding %s (%c) on right hand." : "You are wielding %s (%c) on left hand."); -#endif + if (object_allow_two_hands_wielding(o_ptr) && (empty_hands(FALSE) == EMPTY_HAND_RARM) && CAN_TWO_HANDS_WIELDING()) + act = STR_WIELD_ARMS; + else + act = (left_hander ? STR_WIELD_RARM : STR_WIELD_LARM); break; case INVEN_BOW: -#ifdef JP - act = "%s(%c)¤ò¼Í·âÍѤËÁõÈ÷¤·¤¿¡£"; -#else - act = "You are shooting with %s (%c)."; -#endif + act = _("%s(%c)を射撃用に装備した。", "You are shooting with %s (%c)."); break; case INVEN_LITE: -#ifdef JP - act = "%s(%c)¤ò¸÷¸»¤Ë¤·¤¿¡£"; -#else - act = "Your light source is %s (%c)."; -#endif + act = _("%s(%c)を光源にした。", "Your light source is %s (%c)."); break; default: -#ifdef JP - act = "%s(%c)¤òÁõÈ÷¤·¤¿¡£"; -#else - act = "You are wearing %s (%c)."; -#endif + act = _("%s(%c)を装備した。", "You are wearing %s (%c)."); break; } /* Describe the result */ - object_desc(o_name, o_ptr, TRUE, 3); + object_desc(o_name, o_ptr, 0); /* Message */ msg_format(act, o_name, index_to_label(slot)); /* Cursed! */ - if (cursed_p(o_ptr)) + if (object_is_cursed(o_ptr)) { /* Warn the player */ -#ifdef JP - msg_print("¤¦¤ï¡ª ¤¹¤µ¤Þ¤¸¤¯Î䤿¤¤¡ª"); -#else - msg_print("Oops! It feels deathly cold!"); -#endif - - + msg_print(_("うわ! すさまじく冷たい!", "Oops! It feels deathly cold!")); chg_virtue(V_HARMONY, -1); /* Note the curse */ o_ptr->ident |= (IDENT_SENSE); } + /* The Stone Mask make the player turn into a vampire! */ if ((o_ptr->name1 == ART_STONEMASK) && (p_ptr->prace != RACE_VAMPIRE) && (p_ptr->prace != RACE_ANDROID)) { - int h_percent; - if (p_ptr->prace < 32) - { - p_ptr->old_race1 |= 1L << p_ptr->prace; - } - else - { - p_ptr->old_race2 |= 1L << (p_ptr->prace-32); - } - p_ptr->prace = RACE_VAMPIRE; -#ifdef JP - msg_format("¤¢¤Ê¤¿¤ÏµÛ·ìµ´¤ËÊѲ½¤·¤¿¡ª"); -#else - msg_format("You polymorphed into a vampire!"); -#endif - - rp_ptr = &race_info[p_ptr->prace]; - - /* Experience factor */ - p_ptr->expfact = rp_ptr->r_exp + cp_ptr->c_exp; - - /* Calculate the height/weight for males */ - if (p_ptr->psex == SEX_MALE) - { - p_ptr->ht = randnor(rp_ptr->m_b_ht, rp_ptr->m_m_ht); - h_percent = (int)(p_ptr->ht) * 100 / (int)(rp_ptr->m_b_ht); - p_ptr->wt = randnor((int)(rp_ptr->m_b_wt) * h_percent /100 - , (int)(rp_ptr->m_m_wt) * h_percent / 300 ); - } - - /* Calculate the height/weight for females */ - else if (p_ptr->psex == SEX_FEMALE) - { - p_ptr->ht = randnor(rp_ptr->f_b_ht, rp_ptr->f_m_ht); - h_percent = (int)(p_ptr->ht) * 100 / (int)(rp_ptr->f_b_ht); - p_ptr->wt = randnor((int)(rp_ptr->f_b_wt) * h_percent /100 - , (int)(rp_ptr->f_m_wt) * h_percent / 300 ); - } - - check_experience(); - - /* Hitdice */ - if (p_ptr->pclass == CLASS_SORCERER) - p_ptr->hitdie = rp_ptr->r_mhp/2 + cp_ptr->c_mhp + ap_ptr->a_mhp; - else - p_ptr->hitdie = rp_ptr->r_mhp + cp_ptr->c_mhp + ap_ptr->a_mhp; - - do_cmd_rerate(FALSE); - - p_ptr->redraw |= (PR_BASIC); - - p_ptr->update |= (PU_BONUS); - - handle_stuff(); - lite_spot(py, px); + /* Turn into a vampire */ + change_race(RACE_VAMPIRE, ""); } /* Recalculate bonuses */ @@ -633,68 +570,69 @@ msg_print(" calc_android_exp(); } - +/*! + * @brief 持ち替え処理 + * @param item 持ち替えを行いたい装備部位ID + * @return なし + */ void kamaenaoshi(int item) { - object_type *o_ptr, *o2_ptr; + object_type *o_ptr, *new_o_ptr; char o_name[MAX_NLEN]; - if ((item == INVEN_RARM) && buki_motteruka(INVEN_LARM)) + if (item == INVEN_RARM) { - o_ptr = &inventory[INVEN_RARM]; - o2_ptr = &inventory[INVEN_LARM]; - object_copy(o_ptr, o2_ptr); - p_ptr->total_weight += o2_ptr->weight; - inven_item_increase(INVEN_LARM,-1); - inven_item_optimize(INVEN_LARM); - object_desc(o_name, o_ptr, TRUE, 3); - if (((o_ptr->weight > 99) || (o_ptr->tval == TV_POLEARM)) && (!p_ptr->riding || (p_ptr->pet_extra_flags & PF_RYOUTE))) -#ifdef JP - msg_format("%s¤òξ¼ê¤Ç¹½¤¨¤¿¡£", o_name ); -#else - msg_format("You are wielding %s with both hands.", o_name ); -#endif - else -#ifdef JP - msg_format("%s¤ò%s¤Ç¹½¤¨¤¿¡£", o_name, (left_hander ? "º¸¼ê" : "±¦¼ê")); -#else - msg_format("You are wielding %s on %s hand.", o_name, (left_hander ? "left":"right") ); -#endif + if (buki_motteruka(INVEN_LARM)) + { + o_ptr = &inventory[INVEN_LARM]; + object_desc(o_name, o_ptr, 0); + + if (!object_is_cursed(o_ptr)) + { + new_o_ptr = &inventory[INVEN_RARM]; + object_copy(new_o_ptr, o_ptr); + p_ptr->total_weight += o_ptr->weight; + inven_item_increase(INVEN_LARM, -((int)o_ptr->number)); + inven_item_optimize(INVEN_LARM); + if (object_allow_two_hands_wielding(o_ptr) && CAN_TWO_HANDS_WIELDING()) + msg_format(_("%sを両手で構えた。", "You are wielding %s with both hands."), o_name); + else + msg_format(_("%sを%sで構えた。", "You are wielding %s in your %s hand."), o_name, + (left_hander ? _("左手", "left") : _("右手", "right"))); + } + else + { + if (object_allow_two_hands_wielding(o_ptr) && CAN_TWO_HANDS_WIELDING()) + msg_format(_("%sを両手で構えた。", "You are wielding %s with both hands."), o_name); + } + } } else if (item == INVEN_LARM) { + o_ptr = &inventory[INVEN_RARM]; + if (o_ptr->k_idx) object_desc(o_name, o_ptr, 0); + if (buki_motteruka(INVEN_RARM)) { - o_ptr = &inventory[INVEN_RARM]; - object_desc(o_name, o_ptr, TRUE, 3); - if (((o_ptr->weight > 99) || (o_ptr->tval == TV_POLEARM)) && (!p_ptr->riding || (p_ptr->pet_extra_flags & PF_RYOUTE))) -#ifdef JP - msg_format("%s¤òξ¼ê¤Ç¹½¤¨¤¿¡£", o_name ); -#else - msg_format("You are wielding %s with both hands.", o_name ); -#endif + if (object_allow_two_hands_wielding(o_ptr) && CAN_TWO_HANDS_WIELDING()) + msg_format(_("%sを両手で構えた。", "You are wielding %s with both hands."), o_name); } - else if (!(empty_hands(FALSE) & EMPTY_HAND_RARM)) + else if (!(empty_hands(FALSE) & EMPTY_HAND_RARM) && !object_is_cursed(o_ptr)) { - o_ptr = &inventory[INVEN_LARM]; - o2_ptr = &inventory[INVEN_RARM]; - object_copy(o_ptr, o2_ptr); - p_ptr->total_weight += o2_ptr->weight; - inven_item_increase(INVEN_RARM,-1); + new_o_ptr = &inventory[INVEN_LARM]; + object_copy(new_o_ptr, o_ptr); + p_ptr->total_weight += o_ptr->weight; + inven_item_increase(INVEN_RARM, -((int)o_ptr->number)); inven_item_optimize(INVEN_RARM); - object_desc(o_name, o_ptr, TRUE, 3); -#ifdef JP - msg_format("%s¤ò»ý¤ÁÂؤ¨¤¿¡£", o_name); -#else - msg_format("You switched hand of %s.", o_name); -#endif + msg_format(_("%sを持ち替えた。", "You switched hand of %s."), o_name); } } } -/* - * Take off an item +/*! + * @brief 装備を外すコマンドのメインルーチン / Take off an item + * @return なし */ void do_cmd_takeoff(void) { @@ -712,8 +650,8 @@ void do_cmd_takeoff(void) item_tester_no_ryoute = TRUE; /* Get an item */ #ifdef JP - q = "¤É¤ì¤òÁõÈ÷¤«¤é¤Ï¤º¤·¤Þ¤¹¤«? "; - s = "¤Ï¤º¤»¤ëÁõÈ÷¤¬¤Ê¤¤¡£"; + q = "どれを装備からはずしますか? "; + s = "はずせる装備がない。"; #else q = "Take off which item? "; s = "You are not wearing anything to take off."; @@ -735,16 +673,12 @@ void do_cmd_takeoff(void) /* Item is cursed */ - if (cursed_p(o_ptr)) + if (object_is_cursed(o_ptr)) { if ((o_ptr->curse_flags & TRC_PERMA_CURSE) || (p_ptr->pclass != CLASS_BERSERKER)) { /* Oops */ -#ifdef JP - msg_print("¤Õ¡¼¤à¡¢¤É¤¦¤ä¤é¼ö¤ï¤ì¤Æ¤¤¤ë¤è¤¦¤À¡£"); -#else - msg_print("Hmmm, it seems to be cursed."); -#endif + msg_print(_("ふーむ、どうやら呪われているようだ。", "Hmmm, it seems to be cursed.")); /* Nope */ return; @@ -752,11 +686,7 @@ void do_cmd_takeoff(void) if (((o_ptr->curse_flags & TRC_HEAVY_CURSE) && one_in_(7)) || one_in_(4)) { -#ifdef JP - msg_print("¼ö¤ï¤ì¤¿ÁõÈ÷¤òÎϤŤ¯¤ÇÇí¤¬¤·¤¿¡ª"); -#else - msg_print("You teared a cursed equipment off by sheer strength!"); -#endif + msg_print(_("呪われた装備を力づくで剥がした!", "You teared a cursed equipment off by sheer strength!")); /* Hack -- Assume felt */ o_ptr->ident |= (IDENT_SENSE); @@ -772,26 +702,18 @@ void do_cmd_takeoff(void) /* Window stuff */ p_ptr->window |= (PW_EQUIP); -#ifdef JP - msg_print("¼ö¤¤¤òÂǤÁÇˤä¿¡£"); -#else - msg_print("You break the curse."); -#endif + msg_print(_("呪いを打ち破った。", "You break the curse.")); } else { -#ifdef JP - msg_print("ÁõÈ÷¤ò³°¤»¤Ê¤«¤Ã¤¿¡£"); -#else - msg_print("You couldn't remove the equipment."); -#endif - energy_use = 50; + msg_print(_("装備を外せなかった。", "You couldn't remove the equipment.")); + p_ptr->energy_use = 50; return; } } /* Take a partial turn */ - energy_use = 50; + p_ptr->energy_use = 50; /* Take off the item */ (void)inven_takeoff(item, 255); @@ -804,8 +726,9 @@ void do_cmd_takeoff(void) } -/* - * Drop an item +/*! + * @brief アイテムを落とすコマンドのメインルーチン / Drop an item + * @return なし */ void do_cmd_drop(void) { @@ -823,8 +746,8 @@ void do_cmd_drop(void) item_tester_no_ryoute = TRUE; /* Get an item */ #ifdef JP - q = "¤É¤Î¥¢¥¤¥Æ¥à¤òÍî¤È¤·¤Þ¤¹¤«? "; - s = "Íî¤È¤»¤ë¥¢¥¤¥Æ¥à¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£"; + q = "どのアイテムを落としますか? "; + s = "落とせるアイテムを持っていない。"; #else q = "Drop which item? "; s = "You have nothing to drop."; @@ -846,16 +769,10 @@ void do_cmd_drop(void) /* Hack -- Cannot remove cursed items */ - if ((item >= INVEN_RARM) && cursed_p(o_ptr)) + if ((item >= INVEN_RARM) && object_is_cursed(o_ptr)) { /* Oops */ -#ifdef JP - msg_print("¤Õ¡¼¤à¡¢¤É¤¦¤ä¤é¼ö¤ï¤ì¤Æ¤¤¤ë¤è¤¦¤À¡£"); -#else - msg_print("Hmmm, it seems to be cursed."); -#endif - - + msg_print(_("ふーむ、どうやら呪われているようだ。", "Hmmm, it seems to be cursed.")); /* Nope */ return; } @@ -873,19 +790,25 @@ void do_cmd_drop(void) /* Take a partial turn */ - energy_use = 50; + p_ptr->energy_use = 50; /* Drop (some of) the item */ inven_drop(item, amt); - if ((item == INVEN_RARM) || (item == INVEN_LARM)) kamaenaoshi(item); - - if (item >= INVEN_RARM) calc_android_exp(); + if (item >= INVEN_RARM) + { + kamaenaoshi(item); + calc_android_exp(); + } p_ptr->redraw |= (PR_EQUIPPY); } - +/*! + * @brief オブジェクトが高位の魔法書かどうかを判定する + * @param o_ptr 判定したいオブジェクトの構造体参照ポインタ + * @return オブジェクトが高位の魔法書ならばTRUEを返す + */ static bool high_level_book(object_type *o_ptr) { if ((o_ptr->tval == TV_LIFE_BOOK) || @@ -894,10 +817,11 @@ static bool high_level_book(object_type *o_ptr) (o_ptr->tval == TV_CHAOS_BOOK) || (o_ptr->tval == TV_DEATH_BOOK) || (o_ptr->tval == TV_TRUMP_BOOK) || - (o_ptr->tval == TV_ENCHANT_BOOK) || + (o_ptr->tval == TV_CRAFT_BOOK) || (o_ptr->tval == TV_DAEMON_BOOK) || (o_ptr->tval == TV_CRUSADE_BOOK) || - (o_ptr->tval == TV_MUSIC_BOOK)) + (o_ptr->tval == TV_MUSIC_BOOK) || + (o_ptr->tval == TV_HEX_BOOK)) { if (o_ptr->sval > 1) return TRUE; @@ -909,8 +833,9 @@ static bool high_level_book(object_type *o_ptr) } -/* - * Destroy an item +/*! + * @brief アイテムを破壊するコマンドのメインルーチン / Destroy an item + * @return なし */ void do_cmd_destroy(void) { @@ -940,8 +865,8 @@ void do_cmd_destroy(void) /* Get an item */ #ifdef JP - q = "¤É¤Î¥¢¥¤¥Æ¥à¤ò²õ¤·¤Þ¤¹¤«? "; - s = "²õ¤»¤ë¥¢¥¤¥Æ¥à¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£"; + q = "どのアイテムを壊しますか? "; + s = "壊せるアイテムを持っていない。"; #else q = "Destroy which item? "; s = "You have nothing to destroy."; @@ -961,36 +886,13 @@ void do_cmd_destroy(void) o_ptr = &o_list[0 - item]; } - - /* See how many items */ - if (o_ptr->number > 1) - { - /* Get a quantity */ - amt = get_quantity(NULL, o_ptr->number); - - /* Allow user abort */ - if (amt <= 0) return; - } - - - /* Describe the object */ - old_number = o_ptr->number; - o_ptr->number = amt; - object_desc(o_name, o_ptr, TRUE, 3); - o_ptr->number = old_number; - - /* Verify unless quantity given */ + /* Verify unless quantity given beforehand */ if (!force && (confirm_destroy || (object_value(o_ptr) > 0))) { - /* Make a verification */ - sprintf(out_val, -#ifdef JP - "ËÜÅö¤Ë%s¤ò²õ¤·¤Þ¤¹¤«? [y/n/Auto]", -#else - "Really destroy %s? [y/n/Auto]", -#endif - o_name); + object_desc(o_name, o_ptr, OD_OMIT_PREFIX); + /* Make a verification */ + sprintf(out_val, _("本当に%sを壊しますか? [y/n/Auto]", "Really destroy %s? [y/n/Auto]"), o_name); msg_print(NULL); /* HACK : Add the line to message buffer */ @@ -1021,39 +923,48 @@ void do_cmd_destroy(void) /* Cancel */ return; } - if (i == 'a' || i == 'A') + if (i == 'A') { - int idx; - /* Add an auto-destroy preference line */ - if (add_auto_register(o_ptr)) + if (autopick_autoregister(o_ptr)) { /* Auto-destroy it */ - idx = is_autopick(o_ptr); - auto_destroy_item(item, idx); + autopick_alter_item(item, TRUE); } /* The object is already destroyed. */ return; } - } + } /* while (TRUE) */ } + /* See how many items */ + if (o_ptr->number > 1) + { + /* Get a quantity */ + amt = get_quantity(NULL, o_ptr->number); + + /* Allow user abort */ + if (amt <= 0) return; + } + + + /* Describe the object */ + old_number = o_ptr->number; + o_ptr->number = amt; + object_desc(o_name, o_ptr, 0); + o_ptr->number = old_number; + /* Take a turn */ - energy_use = 100; + p_ptr->energy_use = 100; /* Artifacts cannot be destroyed */ if (!can_player_destroy_object(o_ptr)) { - energy_use = 0; + p_ptr->energy_use = 0; /* Message */ -#ifdef JP - msg_format("%s¤ÏÇ˲õÉÔ²Äǽ¤À¡£", o_name); -#else - msg_format("You cannot destroy %s.", o_name); -#endif - + msg_format(_("%sは破壊不可能だ。", "You cannot destroy %s."), o_name); /* Done */ return; } @@ -1061,12 +972,7 @@ void do_cmd_destroy(void) object_copy(q_ptr, o_ptr); /* Message */ -#ifdef JP - msg_format("%s¤ò²õ¤·¤¿¡£", o_name); -#else - msg_format("You destroy %s.", o_name); -#endif - + msg_format(_("%sを壊した。", "You destroy %s."), o_name); sound(SOUND_DESTITEM); /* Reduce the charges of rods/wands */ @@ -1118,12 +1024,7 @@ void do_cmd_destroy(void) if (q_ptr->sval < 3) tester_exp /= 4; if (tester_exp<1) tester_exp = 1; -#ifdef JP -msg_print("¹¹¤Ë·Ð¸³¤òÀѤó¤À¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£"); -#else - msg_print("You feel more experienced."); -#endif - + msg_print(_("更に経験を積んだような気がする。", "You feel more experienced.")); gain_exp(tester_exp * amt); } if (high_level_book(q_ptr) && q_ptr->tval == TV_LIFE_BOOK) @@ -1154,8 +1055,9 @@ msg_print(" } -/* - * Observe an item which has been *identify*-ed +/*! + * @brief アイテムを調査するコマンドのメインルーチン / Observe an item which has been *identify*-ed + * @return なし */ void do_cmd_observe(void) { @@ -1170,8 +1072,8 @@ void do_cmd_observe(void) item_tester_no_ryoute = TRUE; /* Get an item */ #ifdef JP - q = "¤É¤Î¥¢¥¤¥Æ¥à¤òÄ´¤Ù¤Þ¤¹¤«? "; - s = "Ä´¤Ù¤é¤ì¤ë¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¡£"; + q = "どのアイテムを調べますか? "; + s = "調べられるアイテムがない。"; #else q = "Examine which item? "; s = "You have nothing to examine."; @@ -1195,40 +1097,26 @@ void do_cmd_observe(void) /* Require full knowledge */ if (!(o_ptr->ident & IDENT_MENTAL)) { -#ifdef JP - msg_print("¤³¤Î¥¢¥¤¥Æ¥à¤Ë¤Ä¤¤¤ÆÆäËÃΤäƤ¤¤ë¤³¤È¤Ï¤Ê¤¤¡£"); -#else - msg_print("You have no special knowledge about that item."); -#endif - + msg_print(_("このアイテムについて特に知っていることはない。", "You have no special knowledge about that item.")); return; } /* Description */ - object_desc(o_name, o_ptr, TRUE, 3); + object_desc(o_name, o_ptr, 0); /* Describe */ -#ifdef JP - msg_format("%s¤òÄ´¤Ù¤Æ¤¤¤ë...", o_name); -#else - msg_format("Examining %s...", o_name); -#endif - + msg_format(_("%sを調べている...", "Examining %s..."), o_name); /* Describe it fully */ -#ifdef JP - if (!screen_object(o_ptr, TRUE)) msg_print("ÆäËÊѤï¤Ã¤¿¤È¤³¤í¤Ï¤Ê¤¤¤è¤¦¤À¡£"); -#else - if (!screen_object(o_ptr, TRUE)) msg_print("You see nothing special."); -#endif - + if (!screen_object(o_ptr, SCROBJ_FORCE_DETAIL)) msg_print(_("特に変わったところはないようだ。", "You see nothing special.")); } -/* - * Remove the inscription from an object - * XXX Mention item (when done)? +/*! + * @brief アイテムの銘を消すコマンドのメインルーチン + * Remove the inscription from an object XXX Mention item (when done)? + * @return なし */ void do_cmd_uninscribe(void) { @@ -1241,8 +1129,8 @@ void do_cmd_uninscribe(void) item_tester_no_ryoute = TRUE; /* Get an item */ #ifdef JP - q = "¤É¤Î¥¢¥¤¥Æ¥à¤ÎÌäò¾Ã¤·¤Þ¤¹¤«? "; - s = "Ìäò¾Ã¤»¤ë¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¡£"; + q = "どのアイテムの銘を消しますか? "; + s = "銘を消せるアイテムがない。"; #else q = "Un-inscribe which item? "; s = "You have nothing to un-inscribe."; @@ -1265,22 +1153,12 @@ void do_cmd_uninscribe(void) /* Nothing to remove */ if (!o_ptr->inscription) { -#ifdef JP - msg_print("¤³¤Î¥¢¥¤¥Æ¥à¤Ë¤Ï¾Ã¤¹¤Ù¤­Ì䬤ʤ¤¡£"); -#else - msg_print("That item had no inscription to remove."); -#endif - + msg_print(_("このアイテムには消すべき銘がない。", "That item had no inscription to remove.")); return; } /* Message */ -#ifdef JP - msg_print("Ìäò¾Ã¤·¤¿¡£"); -#else - msg_print("Inscription removed."); -#endif - + msg_print(_("銘を消した。", "Inscription removed.")); /* Remove the incription */ o_ptr->inscription = 0; @@ -1291,14 +1169,16 @@ void do_cmd_uninscribe(void) /* Window stuff */ p_ptr->window |= (PW_INVEN | PW_EQUIP); - /* .¤ä$¤Î´Ø·¸¤Ç, ºÆ·×»»¤¬É¬ÍפʤϤº -- henkma */ + /* .や$の関係で, 再計算が必要なはず -- henkma */ p_ptr->update |= (PU_BONUS); } -/* +/*! + * @brief アイテムの銘を刻むコマンドのメインルーチン * Inscribe an object with a comment + * @return なし */ void do_cmd_inscribe(void) { @@ -1315,8 +1195,8 @@ void do_cmd_inscribe(void) item_tester_no_ryoute = TRUE; /* Get an item */ #ifdef JP - q = "¤É¤Î¥¢¥¤¥Æ¥à¤ËÌäò¹ï¤ß¤Þ¤¹¤«? "; - s = "Ìäò¹ï¤á¤ë¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¡£"; + q = "どのアイテムに銘を刻みますか? "; + s = "銘を刻めるアイテムがない。"; #else q = "Inscribe which item? "; s = "You have nothing to inscribe."; @@ -1337,15 +1217,10 @@ void do_cmd_inscribe(void) } /* Describe the activity */ - object_desc(o_name, o_ptr, TRUE, 2); + object_desc(o_name, o_ptr, OD_OMIT_INSCRIPTION); /* Message */ -#ifdef JP - msg_format("%s¤ËÌäò¹ï¤à¡£", o_name); -#else - msg_format("Inscribing %s.", o_name); -#endif - + msg_format(_("%sに銘を刻む。", "Inscribing %s."), o_name); msg_print(NULL); /* Start with nothing */ @@ -1359,11 +1234,7 @@ void do_cmd_inscribe(void) } /* Get a new inscription (possibly empty) */ -#ifdef JP - if (get_string("ÌÃ: ", out_val, 80)) -#else - if (get_string("Inscription: ", out_val, 80)) -#endif + if (get_string(_("銘: ", "Inscription: "), out_val, 80)) { /* Save the inscription */ o_ptr->inscription = quark_add(out_val); @@ -1374,15 +1245,18 @@ void do_cmd_inscribe(void) /* Window stuff */ p_ptr->window |= (PW_INVEN | PW_EQUIP); - /* .¤ä$¤Î´Ø·¸¤Ç, ºÆ·×»»¤¬É¬ÍפʤϤº -- henkma */ + /* .や$の関係で, 再計算が必要なはず -- henkma */ p_ptr->update |= (PU_BONUS); } } -/* +/*! + * @brief オブジェクトがランタンの燃料になるかどうかを判定する * An "item_tester_hook" for refilling lanterns + * @param o_ptr 判定したいオブジェクトの構造体参照ポインタ + * @return オブジェクトがランタンの燃料になるならばTRUEを返す */ static bool item_tester_refill_lantern(object_type *o_ptr) { @@ -1398,8 +1272,10 @@ static bool item_tester_refill_lantern(object_type *o_ptr) } -/* +/*! + * @brief ランタンに燃料を加えるコマンドのメインルーチン * Refill the players lamp (from the pack or floor) + * @return なし */ static void do_cmd_refill_lamp(void) { @@ -1416,8 +1292,8 @@ static void do_cmd_refill_lamp(void) /* Get an item */ #ifdef JP - q = "¤É¤ÎÌý¤Ä¤Ü¤«¤éÃí¤®¤Þ¤¹¤«? "; - s = "Ìý¤Ä¤Ü¤¬¤Ê¤¤¡£"; + q = "どの油つぼから注ぎますか? "; + s = "油つぼがない。"; #else q = "Refill with which flask? "; s = "You have no flasks of oil."; @@ -1439,7 +1315,7 @@ static void do_cmd_refill_lamp(void) /* Take a partial turn */ - energy_use = 50; + p_ptr->energy_use = 50; /* Access the lantern */ j_ptr = &inventory[INVEN_LITE]; @@ -1448,40 +1324,23 @@ static void do_cmd_refill_lamp(void) j_ptr->xtra4 += o_ptr->xtra4; /* Message */ -#ifdef JP - msg_print("¥é¥ó¥×¤ËÌý¤òÃí¤¤¤À¡£"); -#else - msg_print("You fuel your lamp."); -#endif + msg_print(_("ランプに油を注いだ。", "You fuel your lamp.")); /* Comment */ if ((o_ptr->name2 == EGO_LITE_DARKNESS) && (j_ptr->xtra4 > 0)) { j_ptr->xtra4 = 0; -#ifdef JP - msg_print("¥é¥ó¥×¤¬¾Ã¤¨¤Æ¤·¤Þ¤Ã¤¿¡ª"); -#else - msg_print("Your lamp has gone out!"); -#endif + msg_print(_("ランプが消えてしまった!", "Your lamp has gone out!")); } else if ((o_ptr->name2 == EGO_LITE_DARKNESS) || (j_ptr->name2 == EGO_LITE_DARKNESS)) { j_ptr->xtra4 = 0; -#ifdef JP - msg_print("¤·¤«¤·¥é¥ó¥×¤ÏÁ´¤¯¸÷¤é¤Ê¤¤¡£"); -#else - msg_print("Curiously, your lamp doesn't light."); -#endif + msg_print(_("しかしランプは全く光らない。", "Curiously, your lamp doesn't light.")); } else if (j_ptr->xtra4 >= FUEL_LAMP) { j_ptr->xtra4 = FUEL_LAMP; -#ifdef JP - msg_print("¥é¥ó¥×¤ÎÌý¤Ï°ìÇÕ¤À¡£"); -#else - msg_print("Your lamp is full."); -#endif - + msg_print(_("ランプの油は一杯だ。", "Your lamp is full.")); } /* Decrease the item (from the pack) */ @@ -1505,8 +1364,11 @@ static void do_cmd_refill_lamp(void) } -/* +/*! + * @brief オブジェクトが松明に束ねられるかどうかを判定する * An "item_tester_hook" for refilling torches + * @param o_ptr 判定したいオブジェクトの構造体参照ポインタ + * @return オブジェクトが松明に束ねられるならばTRUEを返す */ static bool item_tester_refill_torch(object_type *o_ptr) { @@ -1519,8 +1381,10 @@ static bool item_tester_refill_torch(object_type *o_ptr) } -/* +/*! + * @brief 松明を束ねるコマンドのメインルーチン * Refuel the players torch (from the pack or floor) + * @return なし */ static void do_cmd_refill_torch(void) { @@ -1537,8 +1401,8 @@ static void do_cmd_refill_torch(void) /* Get an item */ #ifdef JP - q = "¤É¤Î¾¾ÌÀ¤ÇÌÀ¤«¤ê¤ò¶¯¤á¤Þ¤¹¤«? "; - s = "¾¤Ë¾¾ÌÀ¤¬¤Ê¤¤¡£"; + q = "どの松明で明かりを強めますか? "; + s = "他に松明がない。"; #else q = "Refuel with which torch? "; s = "You have no extra torches."; @@ -1560,7 +1424,7 @@ static void do_cmd_refill_torch(void) /* Take a partial turn */ - energy_use = 50; + p_ptr->energy_use = 50; /* Access the primary torch */ j_ptr = &inventory[INVEN_LITE]; @@ -1569,53 +1433,30 @@ static void do_cmd_refill_torch(void) j_ptr->xtra4 += o_ptr->xtra4 + 5; /* Message */ -#ifdef JP - msg_print("¾¾ÌÀ¤ò·ë¹ç¤·¤¿¡£"); -#else - msg_print("You combine the torches."); -#endif - + msg_print(_("松明を結合した。", "You combine the torches.")); /* Comment */ if ((o_ptr->name2 == EGO_LITE_DARKNESS) && (j_ptr->xtra4 > 0)) { j_ptr->xtra4 = 0; -#ifdef JP - msg_print("¾¾ÌÀ¤¬¾Ã¤¨¤Æ¤·¤Þ¤Ã¤¿¡ª"); -#else - msg_print("Your torch has gone out!"); -#endif + msg_print(_("松明が消えてしまった!", "Your torch has gone out!")); } else if ((o_ptr->name2 == EGO_LITE_DARKNESS) || (j_ptr->name2 == EGO_LITE_DARKNESS)) { j_ptr->xtra4 = 0; -#ifdef JP - msg_print("¤·¤«¤·¾¾ÌÀ¤ÏÁ´¤¯¸÷¤é¤Ê¤¤¡£"); -#else - msg_print("Curiously, your torche don't light."); -#endif + msg_print(_("しかし松明は全く光らない。", "Curiously, your torche don't light.")); } /* Over-fuel message */ else if (j_ptr->xtra4 >= FUEL_TORCH) { j_ptr->xtra4 = FUEL_TORCH; -#ifdef JP - msg_print("¾¾ÌÀ¤Î¼÷Ì¿¤Ï½½Ê¬¤À¡£"); -#else - msg_print("Your torch is fully fueled."); -#endif - + msg_print(_("松明の寿命は十分だ。", "Your torch is fully fueled.")); } /* Refuel message */ else { -#ifdef JP - msg_print("¾¾ÌÀ¤Ï¤¤¤Ã¤½¤¦ÌÀ¤ë¤¯µ±¤¤¤¿¡£"); -#else - msg_print("Your torch glows more brightly."); -#endif - + msg_print(_("松明はいっそう明るく輝いた。", "Your torch glows more brightly.")); } /* Decrease the item (from the pack) */ @@ -1639,8 +1480,10 @@ static void do_cmd_refill_torch(void) } -/* +/*! + * @brief 燃料を補充するコマンドのメインルーチン * Refill the players lamp, or restock his torches + * @return なし */ void do_cmd_refill(void) { @@ -1657,12 +1500,7 @@ void do_cmd_refill(void) /* It is nothing */ if (o_ptr->tval != TV_LITE) { -#ifdef JP - msg_print("¸÷¸»¤òÁõÈ÷¤·¤Æ¤¤¤Ê¤¤¡£"); -#else - msg_print("You are not wielding a light."); -#endif - + msg_print(_("光源を装備していない。", "You are not wielding a light.")); } /* It's a lamp */ @@ -1680,67 +1518,57 @@ void do_cmd_refill(void) /* No torch to refill */ else { -#ifdef JP - msg_print("¤³¤Î¸÷¸»¤Ï¼÷Ì¿¤ò±ä¤Ð¤»¤Ê¤¤¡£"); -#else - msg_print("Your light cannot be refilled."); -#endif - + msg_print(_("この光源は寿命を延ばせない。", "Your light cannot be refilled.")); } } -/* +/*! + * @brief ターゲットを設定するコマンドのメインルーチン * Target command + * @return なし */ void do_cmd_target(void) { /* Target set */ if (target_set(TARGET_KILL)) { -#ifdef JP - msg_print("¥¿¡¼¥²¥Ã¥È·èÄê¡£"); -#else - msg_print("Target Selected."); -#endif - + msg_print(_("ターゲット決定。", "Target Selected.")); } /* Target aborted */ else { -#ifdef JP - msg_print("¥¿¡¼¥²¥Ã¥È²ò½ü¡£"); -#else - msg_print("Target Aborted."); -#endif - + msg_print(_("ターゲット解除。", "Target Aborted.")); } } -/* +/*! + * @brief 周囲を見渡すコマンドのメインルーチン * Look command + * @return なし */ void do_cmd_look(void) { + /*TEST*/ + p_ptr->window |= PW_MONSTER_LIST; + window_stuff(); + /*TEST*/ + /* Look around */ if (target_set(TARGET_LOOK)) { -#ifdef JP - msg_print("¥¿¡¼¥²¥Ã¥È·èÄê¡£"); -#else - msg_print("Target Selected."); -#endif - + msg_print(_("ターゲット決定。", "Target Selected.")); } } - -/* +/*! + * @brief 位置を確認するコマンドのメインルーチン * Allow the player to examine other sectors on the map + * @return なし */ void do_cmd_locate(void) { @@ -1767,7 +1595,7 @@ void do_cmd_locate(void) if ((y2 == y1) && (x2 == x1)) { #ifdef JP - strcpy(tmp_val, "¿¿¾å"); + strcpy(tmp_val, "真上"); #else tmp_val[0] = '\0'; #endif @@ -1777,8 +1605,8 @@ void do_cmd_locate(void) { #ifdef JP sprintf(tmp_val, "%s%s", - ((y2 < y1) ? "ËÌ" : (y2 > y1) ? "Æî" : ""), - ((x2 < x1) ? "À¾" : (x2 > x1) ? "Åì" : "")); + ((y2 < y1) ? "北" : (y2 > y1) ? "南" : ""), + ((x2 < x1) ? "西" : (x2 > x1) ? "東" : "")); #else sprintf(tmp_val, "%s%s of", ((y2 < y1) ? " North" : (y2 > y1) ? " South" : ""), @@ -1788,13 +1616,8 @@ void do_cmd_locate(void) } /* Prepare to ask which way to look */ - sprintf(out_val, -#ifdef JP - "¥Þ¥Ã¥×°ÌÃÖ [%d(%02d),%d(%02d)] (¥×¥ì¥¤¥ä¡¼¤Î%s) Êý¸þ?", -#else - "Map sector [%d(%02d),%d(%02d)], which is%s your sector. Direction?", -#endif - + sprintf(out_val, _("マップ位置 [%d(%02d),%d(%02d)] (プレイヤーの%s) 方向?", + "Map sector [%d(%02d),%d(%02d)], which is%s your sector. Direction?"), y2 / (hgt / 2), y2 % (hgt / 2), x2 / (wid / 2), x2 % (wid / 2), tmp_val); @@ -1846,9 +1669,14 @@ void do_cmd_locate(void) -/* +/*! + * @brief モンスター種族情報を特定の基準によりソートするための比較処理 * Sorting hook -- Comp function -- see below - * + * @param u モンスター種族情報の入れるポインタ + * @param v 条件基準ID + * @param a 比較するモンスター種族のID1 + * @param b 比較するモンスター種族のID2 + * @return 2の方が大きければTRUEを返す * We use "u" to point to array of monster indexes, * and "v" to select the type of sorting to perform on "u". */ @@ -1920,9 +1748,15 @@ bool ang_sort_comp_hook(vptr u, vptr v, int a, int b) } -/* +/*! + * @brief モンスター種族情報を特定の基準によりソートするためのスワップ処理 * Sorting hook -- Swap function -- see below - * + * @param u モンスター種族情報の入れるポインタ + * @param v 未使用 + * @param a スワップするモンスター種族のID1 + * @param b スワップするモンスター種族のID2 + * @return なし + * @details * We use "u" to point to array of monster indexes, * and "v" to select the type of sorting to perform. */ @@ -1943,9 +1777,12 @@ void ang_sort_swap_hook(vptr u, vptr v, int a, int b) -/* +/*! + * @brief モンスターの思い出を見るコマンドのメインルーチン * Identify a character, allow recall of monsters - * + * @return なし + * @details + *
  * Several "special" responses recall "multiple" monsters:
  *   ^A (all monsters)
  *   ^U (all unique monsters)
@@ -1954,10 +1791,13 @@ void ang_sort_swap_hook(vptr u, vptr v, int a, int b)
  * The responses may be sorted in several ways, see below.
  *
  * Note that the player ghosts are ignored. XXX XXX XXX
+ * 
*/ void do_cmd_query_symbol(void) { - int i, n, r_idx; + IDX i; + int n; + MONRACE_IDX r_idx; char sym, query; char buf[128]; @@ -1970,14 +1810,11 @@ void do_cmd_query_symbol(void) bool recall = FALSE; u16b why = 0; - u16b *who; + IDX *who; /* Get a character, or abort */ -#ifdef JP - if (!get_com("ÃΤꤿ¤¤Ê¸»ú¤òÆþÎϤ·¤Æ²¼¤µ¤¤(µ­¹æ or ^AÁ´,^U¥æ,^NÈó¥æ,^R¾èÇÏ,^M̾Á°): ", &sym, FALSE)) return; -#else - if (!get_com("Enter character to be identified(^A:All,^U:Uniqs,^N:Non uniqs,^M:Name): ", &sym, FALSE)) return; -#endif + if (!get_com(_("知りたい文字を入力して下さい(記号 or ^A全,^Uユ,^N非ユ,^R乗馬,^M名前): ", + "Enter character to be identified(^A:All,^U:Uniqs,^N:Non uniqs,^M:Name): "), &sym, FALSE)) return; /* Find that character info, and describe it */ for (i = 0; ident_info[i]; ++i) @@ -1989,57 +1826,33 @@ void do_cmd_query_symbol(void) if (sym == KTRL('A')) { all = TRUE; -#ifdef JP - strcpy(buf, "Á´¥â¥ó¥¹¥¿¡¼¤Î¥ê¥¹¥È"); -#else - strcpy(buf, "Full monster list."); -#endif + strcpy(buf, _("全モンスターのリスト", "Full monster list.")); } else if (sym == KTRL('U')) { all = uniq = TRUE; -#ifdef JP - strcpy(buf, "¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼¤Î¥ê¥¹¥È"); -#else - strcpy(buf, "Unique monster list."); -#endif + strcpy(buf, _("ユニーク・モンスターのリスト", "Unique monster list.")); } else if (sym == KTRL('N')) { all = norm = TRUE; -#ifdef JP - strcpy(buf, "¥æ¥Ë¡¼¥¯³°¥â¥ó¥¹¥¿¡¼¤Î¥ê¥¹¥È"); -#else - strcpy(buf, "Non-unique monster list."); -#endif + strcpy(buf, _("ユニーク外モンスターのリスト", "Non-unique monster list.")); } else if (sym == KTRL('R')) { all = ride = TRUE; -#ifdef JP - strcpy(buf, "¾èÇϲÄǽ¥â¥ó¥¹¥¿¡¼¤Î¥ê¥¹¥È"); -#else - strcpy(buf, "Ridable monster list."); -#endif + strcpy(buf, _("乗馬可能モンスターのリスト", "Ridable monster list.")); } /* XTRA HACK WHATSEARCH */ else if (sym == KTRL('M')) { all = TRUE; -#ifdef JP - if (!get_string("̾Á°(±Ñ¸ì¤Î¾ì¹ç¾®Ê¸»ú¤Ç²Ä)",temp, 70)) -#else - if (!get_string("Enter name:",temp, 70)) -#endif + if (!get_string(_("名前(英語の場合小文字で可)", "Enter name:"),temp, 70)) { temp[0]=0; return; } -#ifdef JP - sprintf(buf, "̾Á°:%s¤Ë¥Þ¥Ã¥Á",temp); -#else - sprintf(buf, "Monsters with a name \"%s\"",temp); -#endif + sprintf(buf, _("名前:%sにマッチ", "Monsters with a name \"%s\""),temp); } else if (ident_info[i]) { @@ -2047,18 +1860,14 @@ void do_cmd_query_symbol(void) } else { -#ifdef JP - sprintf(buf, "%c - %s", sym, "̵¸ú¤Êʸ»ú"); -#else - sprintf(buf, "%c - %s.", sym, "Unknown Symbol"); -#endif + sprintf(buf, "%c - %s", sym, _("無効な文字", "Unknown Symbol")); } /* Display the result */ prt(buf, 0, 0); /* Allocate the "who" array */ - C_MAKE(who, max_r_idx, u16b); + C_MAKE(who, max_r_idx, IDX); /* Collect matching monsters */ for (n = 0, i = 1; i < max_r_idx; i++) @@ -2088,7 +1897,7 @@ void do_cmd_query_symbol(void) #ifdef JP if (iskanji( temp[xx])) { xx++; continue; } #endif - if (isupper(temp[xx])) temp[xx]=tolower(temp[xx]); + if (isupper(temp[xx])) temp[xx] = (char)tolower(temp[xx]); } #ifdef JP @@ -2097,14 +1906,14 @@ void do_cmd_query_symbol(void) strcpy(temp2, r_name+r_ptr->name); #endif for (xx=0; temp2[xx] && xx<80; xx++) - if (isupper(temp2[xx])) temp2[xx]=tolower(temp2[xx]); + if (isupper(temp2[xx])) temp2[xx] = (char)tolower(temp2[xx]); #ifdef JP - if (strstr(temp2, temp) || strstr_j(r_name + r_ptr->name, temp) ) + if (my_strstr(temp2, temp) || my_strstr(r_name + r_ptr->name, temp) ) #else - if (strstr(temp2, temp)) + if (my_strstr(temp2, temp)) #endif - who[n++]=i; + who[n++] = i; } /* Collect "appropriate" monsters */ @@ -2115,18 +1924,14 @@ void do_cmd_query_symbol(void) if (!n) { /* Free the "who" array */ - C_KILL(who, max_r_idx, u16b); + C_KILL(who, max_r_idx, IDX); return; } /* Prompt XXX XXX XXX */ -#ifdef JP - put_str("»×¤¤½Ð¤ò¸«¤Þ¤¹¤«? (k:»¦³²½ç/y/n): ", 0, 36); -#else - put_str("Recall details? (k/y/n): ", 0, 40); -#endif + put_str(_("思い出を見ますか? (k:殺害順/y/n): ", "Recall details? (k/y/n): "), 0, _(36, 40)); /* Query */ @@ -2155,7 +1960,7 @@ void do_cmd_query_symbol(void) if (query != 'y') { /* Free the "who" array */ - C_KILL(who, max_r_idx, u16b); + C_KILL(who, max_r_idx, IDX); return; } @@ -2204,11 +2009,7 @@ void do_cmd_query_symbol(void) roff_top(r_idx); /* Hack -- Complete the prompt */ -#ifdef JP - Term_addstr(-1, TERM_WHITE, " ['r'»×¤¤½Ð, ESC]"); -#else - Term_addstr(-1, TERM_WHITE, " [(r)ecall, ESC]"); -#endif + Term_addstr(-1, TERM_WHITE, _(" ['r'思い出, ESC]", " [(r)ecall, ESC]")); /* Command */ query = inkey(); @@ -2252,7 +2053,7 @@ void do_cmd_query_symbol(void) } /* Free the "who" array */ - C_KILL(who, max_r_idx, u16b); + C_KILL(who, max_r_idx, IDX); /* Re-display the identity */ prt(buf, 0, 0);