X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Ffiles.c;h=11c9abccd1bf7567e2caf2958e12756685d0af7f;hb=bd519d53bf8418cc2225f944092684de915be365;hp=bacdf476c305f4ecb9b65fad236740d38fae0bc4;hpb=d8143f0620924ea0212118d90782a86eeba39e6a;p=hengband%2Fhengband.git diff --git a/src/files.c b/src/files.c index bacdf476c..11c9abccd 100644 --- a/src/files.c +++ b/src/files.c @@ -406,7 +406,7 @@ static named_num gf_desc[] = * F:\:\:\ * Specify the attr/char values for unaware "objects" by kind tval * U:\:\:\ - * Specify the attr/char values for p_ptr->inventory_list "objects" by kind tval + * Specify the attr/char values for inventory "objects" by kind tval * E:\:\:\ * Define a macro action, given an encoded macro action * A:\ @@ -570,7 +570,7 @@ errr process_pref_file_command(char *buf) } break; - /* Process "E::" -- attribute for p_ptr->inventory_list objects */ + /* Process "E::" -- attribute for inventory objects */ case 'E': if (tokenize(buf+2, 2, zz, TOKENIZE_CHECKQUOTE) == 2) { @@ -631,8 +631,8 @@ errr process_pref_file_command(char *buf) } break; - /* Process "X:" -- current_world_ptr->game_turn option off */ - /* Process "Y:" -- current_world_ptr->game_turn option on */ + /* Process "X:" -- turn option off */ + /* Process "Y:" -- turn option on */ case 'X': case 'Y': for (i = 0; option_info[i].o_desc; i++) @@ -1866,14 +1866,14 @@ static void display_player_middle(player_type *creature_ptr) if (!creature_ptr->riding) { - if (IS_FAST()) tmp_speed += 10; + if (IS_FAST(creature_ptr)) tmp_speed += 10; if (creature_ptr->slow) tmp_speed -= 10; if (creature_ptr->lightspeed) tmp_speed = 99; } else { - if (MON_FAST(¤t_floor_ptr->m_list[creature_ptr->riding])) tmp_speed += 10; - if (MON_SLOW(¤t_floor_ptr->m_list[creature_ptr->riding])) tmp_speed -= 10; + if (MON_FAST(&p_ptr->current_floor_ptr->m_list[creature_ptr->riding])) tmp_speed += 10; + if (MON_SLOW(&p_ptr->current_floor_ptr->m_list[creature_ptr->riding])) tmp_speed -= 10; } if (tmp_speed) @@ -2069,7 +2069,7 @@ static concptr likert(int x, int y) * @details * This code is "imitated" elsewhere to "dump" a character sheet. */ -static void display_player_various(void) +static void display_player_various(player_type *creature_ptr) { int tmp, damage[2], to_h[2], blows1, blows2, i, basedam; int xthn, xthb, xfos, xsrh; @@ -2083,18 +2083,18 @@ static void display_player_various(void) object_type *o_ptr; - if (p_ptr->muta2 & MUT2_HORNS) muta_att++; - if (p_ptr->muta2 & MUT2_SCOR_TAIL) muta_att++; - if (p_ptr->muta2 & MUT2_BEAK) muta_att++; - if (p_ptr->muta2 & MUT2_TRUNK) muta_att++; - if (p_ptr->muta2 & MUT2_TENTACLES) muta_att++; + if (creature_ptr->muta2 & MUT2_HORNS) muta_att++; + if (creature_ptr->muta2 & MUT2_SCOR_TAIL) muta_att++; + if (creature_ptr->muta2 & MUT2_BEAK) muta_att++; + if (creature_ptr->muta2 & MUT2_TRUNK) muta_att++; + if (creature_ptr->muta2 & MUT2_TENTACLES) muta_att++; - xthn = p_ptr->skill_thn + (p_ptr->to_h_m * BTH_PLUS_ADJ); + xthn = creature_ptr->skill_thn + (creature_ptr->to_h_m * BTH_PLUS_ADJ); /* Shooting Skill (with current bow and normal missile) */ - o_ptr = &p_ptr->inventory_list[INVEN_BOW]; - tmp = p_ptr->to_h_b + o_ptr->to_h; - xthb = p_ptr->skill_thb + (tmp * BTH_PLUS_ADJ); + o_ptr = &creature_ptr->inventory_list[INVEN_BOW]; + tmp = creature_ptr->to_h_b + o_ptr->to_h; + xthb = creature_ptr->skill_thb + (tmp * BTH_PLUS_ADJ); /* If the player is wielding one? */ if (o_ptr->k_idx) @@ -2102,23 +2102,23 @@ static void display_player_various(void) ENERGY energy_fire = bow_energy(o_ptr->sval); /* Calculate shots per round */ - shots = p_ptr->num_fire * 100; + shots = creature_ptr->num_fire * 100; shot_frac = (shots * 100 / energy_fire) % 100; shots = shots / energy_fire; if (o_ptr->name1 == ART_CRIMSON) { shots = 1; shot_frac = 0; - if (p_ptr->pclass == CLASS_ARCHER) + if (creature_ptr->pclass == CLASS_ARCHER) { /* Extra shot at level 10 */ - if (p_ptr->lev >= 10) shots++; + if (creature_ptr->lev >= 10) shots++; /* Extra shot at level 30 */ - if (p_ptr->lev >= 30) shots++; + if (creature_ptr->lev >= 30) shots++; /* Extra shot at level 45 */ - if (p_ptr->lev >= 45) shots++; + if (creature_ptr->lev >= 45) shots++; } } } @@ -2130,26 +2130,26 @@ static void display_player_various(void) for(i = 0; i < 2; i++) { - damage[i] = p_ptr->dis_to_d[i] * 100; - if (((p_ptr->pclass == CLASS_MONK) || (p_ptr->pclass == CLASS_FORCETRAINER)) && (empty_hands(p_ptr, TRUE) & EMPTY_HAND_RARM)) + damage[i] = creature_ptr->dis_to_d[i] * 100; + if (((creature_ptr->pclass == CLASS_MONK) || (creature_ptr->pclass == CLASS_FORCETRAINER)) && (empty_hands(creature_ptr, TRUE) & EMPTY_HAND_RARM)) { - PLAYER_LEVEL level = p_ptr->lev; + PLAYER_LEVEL level = creature_ptr->lev; if (i) { damage[i] = 0; break; } - if (p_ptr->pclass == CLASS_FORCETRAINER) level = MAX(1, level - 3); - if (p_ptr->special_defense & KAMAE_BYAKKO) + if (creature_ptr->pclass == CLASS_FORCETRAINER) level = MAX(1, level - 3); + if (creature_ptr->special_defense & KAMAE_BYAKKO) basedam = monk_ave_damage[level][1]; - else if (p_ptr->special_defense & (KAMAE_GENBU | KAMAE_SUZAKU)) + else if (creature_ptr->special_defense & (KAMAE_GENBU | KAMAE_SUZAKU)) basedam = monk_ave_damage[level][2]; else basedam = monk_ave_damage[level][0]; } else { - o_ptr = &p_ptr->inventory_list[INVEN_RARM + i]; + o_ptr = &creature_ptr->inventory_list[INVEN_RARM + i]; /* Average damage per round */ if (o_ptr->k_idx) @@ -2163,10 +2163,10 @@ static void display_player_various(void) damage[i] += o_ptr->to_d * 100; to_h[i] += o_ptr->to_h; } - basedam = ((o_ptr->dd + p_ptr->to_dd[i]) * (o_ptr->ds + p_ptr->to_ds[i] + 1)) * 50; + basedam = ((o_ptr->dd + creature_ptr->to_dd[i]) * (o_ptr->ds + creature_ptr->to_ds[i] + 1)) * 50; object_flags_known(o_ptr, flgs); - basedam = calc_expect_crit(o_ptr->weight, to_h[i], basedam, p_ptr->dis_to_h[i], dokubari); + basedam = calc_expect_crit(o_ptr->weight, to_h[i], basedam, creature_ptr->dis_to_h[i], dokubari); if ((o_ptr->ident & IDENT_MENTAL) && ((o_ptr->name1 == ART_VORPAL_BLADE) || (o_ptr->name1 == ART_CHAINSWORD))) { /* vorpal blade */ @@ -2179,7 +2179,7 @@ static void display_player_various(void) basedam *= 11; basedam /= 9; } - if ((p_ptr->pclass != CLASS_SAMURAI) && have_flag(flgs, TR_FORCE_WEAPON) && (p_ptr->csp > (o_ptr->dd * o_ptr->ds / 5))) + if ((creature_ptr->pclass != CLASS_SAMURAI) && have_flag(flgs, TR_FORCE_WEAPON) && (creature_ptr->csp > (o_ptr->dd * o_ptr->ds / 5))) basedam = basedam * 7 / 2; } else basedam = 0; @@ -2188,18 +2188,18 @@ static void display_player_various(void) if ((o_ptr->tval == TV_SWORD) && (o_ptr->sval == SV_DOKUBARI)) damage[i] = 1; if (damage[i] < 0) damage[i] = 0; } - blows1 = p_ptr->migite ? p_ptr->num_blow[0]: 0; - blows2 = p_ptr->hidarite ? p_ptr->num_blow[1] : 0; + blows1 = creature_ptr->migite ? creature_ptr->num_blow[0]: 0; + blows2 = creature_ptr->hidarite ? creature_ptr->num_blow[1] : 0; /* Basic abilities */ - xdis = p_ptr->skill_dis; - xdev = p_ptr->skill_dev; - xsav = p_ptr->skill_sav; - xstl = p_ptr->skill_stl; - xsrh = p_ptr->skill_srh; - xfos = p_ptr->skill_fos; - xdig = p_ptr->skill_dig; + xdis = creature_ptr->skill_dis; + xdev = creature_ptr->skill_dev; + xsav = creature_ptr->skill_sav; + xstl = creature_ptr->skill_stl; + xsrh = creature_ptr->skill_srh; + xfos = creature_ptr->skill_fos; + xdig = creature_ptr->skill_dig; desc = likert(xthn, 12); @@ -2248,7 +2248,7 @@ static void display_player_various(void) display_player_one_line(ENTRY_AVG_DMG, desc, TERM_L_BLUE); - display_player_one_line(ENTRY_INFRA, format("%d feet", p_ptr->see_infra * 10), TERM_WHITE); + display_player_one_line(ENTRY_INFRA, format("%d feet", creature_ptr->see_infra * 10), TERM_WHITE); } @@ -2256,6 +2256,7 @@ static void display_player_various(void) /*! * @brief プレイヤーの職業、種族に応じた耐性フラグを返す * Prints ratings on certain abilities + * @param creature_ptr 参照元クリーチャーポインタ * @param flgs フラグを保管する配列 * @return なし * @details @@ -2263,64 +2264,64 @@ static void display_player_various(void) * @todo * xtra1.c周りと多重実装になっているのを何とかする */ -static void player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE]) +static void player_flags(player_type *creature_ptr, BIT_FLAGS flgs[TR_FLAG_SIZE]) { int i; for (i = 0; i < TR_FLAG_SIZE; i++) flgs[i] = 0L; /* Classes */ - switch (p_ptr->pclass) + switch (creature_ptr->pclass) { case CLASS_WARRIOR: - if (p_ptr->lev > 44) + if (creature_ptr->lev > 44) add_flag(flgs, TR_REGEN); case CLASS_SAMURAI: - if (p_ptr->lev > 29) + if (creature_ptr->lev > 29) add_flag(flgs, TR_RES_FEAR); break; case CLASS_PALADIN: - if (p_ptr->lev > 39) + if (creature_ptr->lev > 39) add_flag(flgs, TR_RES_FEAR); break; case CLASS_CHAOS_WARRIOR: - if (p_ptr->lev > 29) + if (creature_ptr->lev > 29) add_flag(flgs, TR_RES_CHAOS); - if (p_ptr->lev > 39) + if (creature_ptr->lev > 39) add_flag(flgs, TR_RES_FEAR); break; case CLASS_MONK: case CLASS_FORCETRAINER: - if ((p_ptr->lev > 9) && !heavy_armor(p_ptr)) + if ((creature_ptr->lev > 9) && !heavy_armor(creature_ptr)) add_flag(flgs, TR_SPEED); - if ((p_ptr->lev>24) && !heavy_armor(p_ptr)) + if ((creature_ptr->lev>24) && !heavy_armor(creature_ptr)) add_flag(flgs, TR_FREE_ACT); break; case CLASS_NINJA: - if (heavy_armor(p_ptr)) + if (heavy_armor(creature_ptr)) add_flag(flgs, TR_SPEED); else { - if ((!p_ptr->inventory_list[INVEN_RARM].k_idx || p_ptr->migite) && - (!p_ptr->inventory_list[INVEN_LARM].k_idx || p_ptr->hidarite)) + if ((!creature_ptr->inventory_list[INVEN_RARM].k_idx || creature_ptr->migite) && + (!creature_ptr->inventory_list[INVEN_LARM].k_idx || creature_ptr->hidarite)) add_flag(flgs, TR_SPEED); - if (p_ptr->lev>24) + if (creature_ptr->lev>24) add_flag(flgs, TR_FREE_ACT); } add_flag(flgs, TR_SLOW_DIGEST); add_flag(flgs, TR_RES_FEAR); - if (p_ptr->lev > 19) add_flag(flgs, TR_RES_POIS); - if (p_ptr->lev > 24) add_flag(flgs, TR_SUST_DEX); - if (p_ptr->lev > 29) add_flag(flgs, TR_SEE_INVIS); + if (creature_ptr->lev > 19) add_flag(flgs, TR_RES_POIS); + if (creature_ptr->lev > 24) add_flag(flgs, TR_SUST_DEX); + if (creature_ptr->lev > 29) add_flag(flgs, TR_SEE_INVIS); break; case CLASS_MINDCRAFTER: - if (p_ptr->lev > 9) + if (creature_ptr->lev > 9) add_flag(flgs, TR_RES_FEAR); - if (p_ptr->lev > 19) + if (creature_ptr->lev > 19) add_flag(flgs, TR_SUST_WIS); - if (p_ptr->lev > 29) + if (creature_ptr->lev > 29) add_flag(flgs, TR_RES_CONF); - if (p_ptr->lev > 39) + if (creature_ptr->lev > 39) add_flag(flgs, TR_TELEPATHY); break; case CLASS_BARD: @@ -2333,19 +2334,19 @@ static void player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE]) add_flag(flgs, TR_REGEN); add_flag(flgs, TR_FREE_ACT); add_flag(flgs, TR_SPEED); - if (p_ptr->lev > 39) add_flag(flgs, TR_REFLECT); + if (creature_ptr->lev > 39) add_flag(flgs, TR_REFLECT); break; case CLASS_MIRROR_MASTER: - if(p_ptr->lev > 39)add_flag(flgs, TR_REFLECT); + if(creature_ptr->lev > 39)add_flag(flgs, TR_REFLECT); break; default: break; /* Do nothing */ } /* Races */ - if (p_ptr->mimic_form) + if (creature_ptr->mimic_form) { - switch(p_ptr->mimic_form) + switch(creature_ptr->mimic_form) { case MIMIC_DEMON: add_flag(flgs, TR_HOLD_EXP); @@ -2379,7 +2380,7 @@ static void player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE]) add_flag(flgs, TR_HOLD_EXP); add_flag(flgs, TR_RES_DARK); add_flag(flgs, TR_RES_NETHER); - if (p_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE_1); + if (creature_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE_1); add_flag(flgs, TR_RES_POIS); add_flag(flgs, TR_RES_COLD); add_flag(flgs, TR_SEE_INVIS); @@ -2389,7 +2390,7 @@ static void player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE]) } else { - switch (p_ptr->prace) + switch (creature_ptr->prace) { case RACE_ELF: add_flag(flgs, TR_RES_LITE); @@ -2408,10 +2409,10 @@ static void player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE]) break; case RACE_HALF_TROLL: add_flag(flgs, TR_SUST_STR); - if (p_ptr->lev > 14) + if (creature_ptr->lev > 14) { add_flag(flgs, TR_REGEN); - if ((p_ptr->pclass == CLASS_WARRIOR) || (p_ptr->pclass == CLASS_BERSERKER)) + if ((creature_ptr->pclass == CLASS_WARRIOR) || (creature_ptr->pclass == CLASS_BERSERKER)) { add_flag(flgs, TR_SLOW_DIGEST); /* @@ -2451,13 +2452,13 @@ static void player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE]) break; case RACE_YEEK: add_flag(flgs, TR_RES_ACID); - if (p_ptr->lev > 19) + if (creature_ptr->lev > 19) add_flag(flgs, TR_IM_ACID); break; case RACE_KLACKON: add_flag(flgs, TR_RES_CONF); add_flag(flgs, TR_RES_ACID); - if (p_ptr->lev > 9) + if (creature_ptr->lev > 9) add_flag(flgs, TR_SPEED); break; case RACE_KOBOLD: @@ -2469,33 +2470,33 @@ static void player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE]) break; case RACE_DARK_ELF: add_flag(flgs, TR_RES_DARK); - if (p_ptr->lev > 19) + if (creature_ptr->lev > 19) add_flag(flgs, TR_SEE_INVIS); break; case RACE_DRACONIAN: add_flag(flgs, TR_LEVITATION); - if (p_ptr->lev > 4) + if (creature_ptr->lev > 4) add_flag(flgs, TR_RES_FIRE); - if (p_ptr->lev > 9) + if (creature_ptr->lev > 9) add_flag(flgs, TR_RES_COLD); - if (p_ptr->lev > 14) + if (creature_ptr->lev > 14) add_flag(flgs, TR_RES_ACID); - if (p_ptr->lev > 19) + if (creature_ptr->lev > 19) add_flag(flgs, TR_RES_ELEC); - if (p_ptr->lev > 34) + if (creature_ptr->lev > 34) add_flag(flgs, TR_RES_POIS); break; case RACE_MIND_FLAYER: add_flag(flgs, TR_SUST_INT); add_flag(flgs, TR_SUST_WIS); - if (p_ptr->lev > 14) + if (creature_ptr->lev > 14) add_flag(flgs, TR_SEE_INVIS); - if (p_ptr->lev > 29) + if (creature_ptr->lev > 29) add_flag(flgs, TR_TELEPATHY); break; case RACE_IMP: add_flag(flgs, TR_RES_FIRE); - if (p_ptr->lev > 9) + if (creature_ptr->lev > 9) add_flag(flgs, TR_SEE_INVIS); break; case RACE_GOLEM: @@ -2503,7 +2504,7 @@ static void player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE]) add_flag(flgs, TR_FREE_ACT); add_flag(flgs, TR_RES_POIS); add_flag(flgs, TR_SLOW_DIGEST); - if (p_ptr->lev > 34) + if (creature_ptr->lev > 34) add_flag(flgs, TR_HOLD_EXP); break; case RACE_SKELETON: @@ -2511,7 +2512,7 @@ static void player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE]) add_flag(flgs, TR_RES_SHARDS); add_flag(flgs, TR_HOLD_EXP); add_flag(flgs, TR_RES_POIS); - if (p_ptr->lev > 9) + if (creature_ptr->lev > 9) add_flag(flgs, TR_RES_COLD); break; case RACE_ZOMBIE: @@ -2520,14 +2521,14 @@ static void player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE]) add_flag(flgs, TR_RES_NETHER); add_flag(flgs, TR_RES_POIS); add_flag(flgs, TR_SLOW_DIGEST); - if (p_ptr->lev > 4) + if (creature_ptr->lev > 4) add_flag(flgs, TR_RES_COLD); break; case RACE_VAMPIRE: add_flag(flgs, TR_HOLD_EXP); add_flag(flgs, TR_RES_DARK); add_flag(flgs, TR_RES_NETHER); - if (p_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE_1); + if (creature_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE_1); add_flag(flgs, TR_RES_POIS); add_flag(flgs, TR_RES_COLD); break; @@ -2541,13 +2542,13 @@ static void player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE]) add_flag(flgs, TR_RES_POIS); add_flag(flgs, TR_SLOW_DIGEST); /* XXX pass_wall */ - if (p_ptr->lev > 34) + if (creature_ptr->lev > 34) add_flag(flgs, TR_TELEPATHY); break; case RACE_SPRITE: add_flag(flgs, TR_RES_LITE); add_flag(flgs, TR_LEVITATION); - if (p_ptr->lev > 9) + if (creature_ptr->lev > 9) add_flag(flgs, TR_SPEED); break; case RACE_BEASTMAN: @@ -2562,7 +2563,7 @@ static void player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE]) add_flag(flgs, TR_RES_FIRE); add_flag(flgs, TR_RES_NETHER); add_flag(flgs, TR_HOLD_EXP); - if (p_ptr->lev > 9) + if (creature_ptr->lev > 9) add_flag(flgs, TR_SEE_INVIS); break; case RACE_DUNADAN: @@ -2586,77 +2587,77 @@ static void player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE]) } /* Mutations */ - if (p_ptr->muta3) + if (creature_ptr->muta3) { - if (p_ptr->muta3 & MUT3_FLESH_ROT) + if (creature_ptr->muta3 & MUT3_FLESH_ROT) { remove_flag(flgs, TR_REGEN); } - if ((p_ptr->muta3 & MUT3_XTRA_FAT) || - (p_ptr->muta3 & MUT3_XTRA_LEGS) || - (p_ptr->muta3 & MUT3_SHORT_LEG)) + if ((creature_ptr->muta3 & MUT3_XTRA_FAT) || + (creature_ptr->muta3 & MUT3_XTRA_LEGS) || + (creature_ptr->muta3 & MUT3_SHORT_LEG)) { add_flag(flgs, TR_SPEED); } - if (p_ptr->muta3 & MUT3_ELEC_TOUC) + if (creature_ptr->muta3 & MUT3_ELEC_TOUC) { add_flag(flgs, TR_SH_ELEC); } - if (p_ptr->muta3 & MUT3_FIRE_BODY) + if (creature_ptr->muta3 & MUT3_FIRE_BODY) { add_flag(flgs, TR_SH_FIRE); add_flag(flgs, TR_LITE_1); } - if (p_ptr->muta3 & MUT3_WINGS) + if (creature_ptr->muta3 & MUT3_WINGS) { add_flag(flgs, TR_LEVITATION); } - if (p_ptr->muta3 & MUT3_FEARLESS) + if (creature_ptr->muta3 & MUT3_FEARLESS) { add_flag(flgs, TR_RES_FEAR); } - if (p_ptr->muta3 & MUT3_REGEN) + if (creature_ptr->muta3 & MUT3_REGEN) { add_flag(flgs, TR_REGEN); } - if (p_ptr->muta3 & MUT3_ESP) + if (creature_ptr->muta3 & MUT3_ESP) { add_flag(flgs, TR_TELEPATHY); } - if (p_ptr->muta3 & MUT3_MOTION) + if (creature_ptr->muta3 & MUT3_MOTION) { add_flag(flgs, TR_FREE_ACT); } } - if (p_ptr->pseikaku == SEIKAKU_SEXY) + if (creature_ptr->pseikaku == SEIKAKU_SEXY) add_flag(flgs, TR_AGGRAVATE); - if (p_ptr->pseikaku == SEIKAKU_CHARGEMAN) + if (creature_ptr->pseikaku == SEIKAKU_CHARGEMAN) add_flag(flgs, TR_RES_CONF); - if (p_ptr->pseikaku == SEIKAKU_MUNCHKIN) + if (creature_ptr->pseikaku == SEIKAKU_MUNCHKIN) { add_flag(flgs, TR_RES_BLIND); add_flag(flgs, TR_RES_CONF); add_flag(flgs, TR_HOLD_EXP); - if (p_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE_1); - if (p_ptr->lev > 9) + if (creature_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE_1); + if (creature_ptr->lev > 9) add_flag(flgs, TR_SPEED); } - if (p_ptr->special_defense & KATA_FUUJIN) + if (creature_ptr->special_defense & KATA_FUUJIN) add_flag(flgs, TR_REFLECT); - if (p_ptr->special_defense & KAMAE_GENBU) + if (creature_ptr->special_defense & KAMAE_GENBU) add_flag(flgs, TR_REFLECT); - if (p_ptr->special_defense & KAMAE_SUZAKU) + if (creature_ptr->special_defense & KAMAE_SUZAKU) add_flag(flgs, TR_LEVITATION); - if (p_ptr->special_defense & KAMAE_SEIRYU) + if (creature_ptr->special_defense & KAMAE_SEIRYU) { add_flag(flgs, TR_RES_FIRE); add_flag(flgs, TR_RES_COLD); @@ -2668,7 +2669,7 @@ static void player_flags(BIT_FLAGS flgs[TR_FLAG_SIZE]) add_flag(flgs, TR_SH_ELEC); add_flag(flgs, TR_SH_COLD); } - if (p_ptr->special_defense & KATA_MUSOU) + if (creature_ptr->special_defense & KATA_MUSOU) { add_flag(flgs, TR_RES_FEAR); add_flag(flgs, TR_RES_LITE); @@ -2716,7 +2717,7 @@ static void tim_player_flags(player_type *creature_ptr, BIT_FLAGS flgs[TR_FLAG_S for (i = 0; i < TR_FLAG_SIZE; i++) flgs[i] = 0L; - if (IS_HERO() || creature_ptr->shero) + if (IS_HERO(creature_ptr) || creature_ptr->shero) add_flag(flgs, TR_RES_FEAR); if (creature_ptr->tim_invis) add_flag(flgs, TR_SEE_INVIS); @@ -2724,7 +2725,7 @@ static void tim_player_flags(player_type *creature_ptr, BIT_FLAGS flgs[TR_FLAG_S add_flag(flgs, TR_REGEN); if (IS_TIM_ESP()) add_flag(flgs, TR_TELEPATHY); - if (IS_FAST() || creature_ptr->slow) + if (IS_FAST(creature_ptr) || creature_ptr->slow) add_flag(flgs, TR_SPEED); if (IS_OPPOSE_ACID() && !(creature_ptr->special_defense & DEFENSE_ACID) && !(PRACE_IS_(creature_ptr, RACE_YEEK) && (creature_ptr->lev > 19))) @@ -2881,7 +2882,7 @@ void display_player_equippy(TERM_LEN y, TERM_LEN x, BIT_FLAGS16 mode) * @todo * xtra1.c周りと多重実装になっているのを何とかする */ -static void known_obj_immunity(BIT_FLAGS flgs[TR_FLAG_SIZE]) +static void known_obj_immunity(player_type *creature_ptr, BIT_FLAGS flgs[TR_FLAG_SIZE]) { int i; for (i = 0; i < TR_FLAG_SIZE; i++) @@ -2895,7 +2896,7 @@ static void known_obj_immunity(BIT_FLAGS flgs[TR_FLAG_SIZE]) object_type *o_ptr; /* Object */ - o_ptr = &p_ptr->inventory_list[i]; + o_ptr = &creature_ptr->inventory_list[i]; if (!o_ptr->k_idx) continue; @@ -2916,19 +2917,19 @@ static void known_obj_immunity(BIT_FLAGS flgs[TR_FLAG_SIZE]) * @todo * xtra1.c周りと多重実装になっているのを何とかする */ -static void player_immunity(BIT_FLAGS flgs[TR_FLAG_SIZE]) +static void player_immunity(player_type *creature_ptr, BIT_FLAGS flgs[TR_FLAG_SIZE]) { int i; for (i = 0; i < TR_FLAG_SIZE; i++) flgs[i] = 0L; - if (PRACE_IS_(p_ptr, RACE_SPECTRE)) + if (PRACE_IS_(creature_ptr, RACE_SPECTRE)) add_flag(flgs, TR_RES_NETHER); - if (p_ptr->mimic_form == MIMIC_VAMPIRE || PRACE_IS_(p_ptr, RACE_VAMPIRE)) + if (creature_ptr->mimic_form == MIMIC_VAMPIRE || PRACE_IS_(creature_ptr, RACE_VAMPIRE)) add_flag(flgs, TR_RES_DARK); - if (p_ptr->mimic_form == MIMIC_DEMON_LORD) + if (creature_ptr->mimic_form == MIMIC_DEMON_LORD) add_flag(flgs, TR_RES_FIRE); - else if (PRACE_IS_(p_ptr, RACE_YEEK) && p_ptr->lev > 19) + else if (PRACE_IS_(creature_ptr, RACE_YEEK) && creature_ptr->lev > 19) add_flag(flgs, TR_RES_ACID); } @@ -2939,21 +2940,21 @@ static void player_immunity(BIT_FLAGS flgs[TR_FLAG_SIZE]) * @todo * xtra1.c周りと多重実装になっているのを何とかする */ -static void tim_player_immunity(BIT_FLAGS flgs[TR_FLAG_SIZE]) +static void tim_player_immunity(player_type *creature_ptr, BIT_FLAGS flgs[TR_FLAG_SIZE]) { int i; for (i = 0; i < TR_FLAG_SIZE; i++) flgs[i] = 0L; - if (p_ptr->special_defense & DEFENSE_ACID) + if (creature_ptr->special_defense & DEFENSE_ACID) add_flag(flgs, TR_RES_ACID); - if (p_ptr->special_defense & DEFENSE_ELEC) + if (creature_ptr->special_defense & DEFENSE_ELEC) add_flag(flgs, TR_RES_ELEC); - if (p_ptr->special_defense & DEFENSE_FIRE) + if (creature_ptr->special_defense & DEFENSE_FIRE) add_flag(flgs, TR_RES_FIRE); - if (p_ptr->special_defense & DEFENSE_COLD) + if (creature_ptr->special_defense & DEFENSE_COLD) add_flag(flgs, TR_RES_COLD); - if (p_ptr->wraith_form) + if (creature_ptr->wraith_form) add_flag(flgs, TR_RES_DARK); } @@ -2964,25 +2965,25 @@ static void tim_player_immunity(BIT_FLAGS flgs[TR_FLAG_SIZE]) * @todo * xtra1.c周りと多重実装になっているのを何とかする */ -static void player_vuln_flags(BIT_FLAGS flgs[TR_FLAG_SIZE]) +static void player_vuln_flags(player_type *creature_ptr, BIT_FLAGS flgs[TR_FLAG_SIZE]) { int i; for (i = 0; i < TR_FLAG_SIZE; i++) flgs[i] = 0L; - if ((p_ptr->muta3 & MUT3_VULN_ELEM) || (p_ptr->special_defense & KATA_KOUKIJIN)) + if ((creature_ptr->muta3 & MUT3_VULN_ELEM) || (creature_ptr->special_defense & KATA_KOUKIJIN)) { add_flag(flgs, TR_RES_ACID); add_flag(flgs, TR_RES_ELEC); add_flag(flgs, TR_RES_FIRE); add_flag(flgs, TR_RES_COLD); } - if (PRACE_IS_(p_ptr, RACE_ANDROID)) + if (PRACE_IS_(creature_ptr, RACE_ANDROID)) add_flag(flgs, TR_RES_ELEC); - if (PRACE_IS_(p_ptr, RACE_ENT)) + if (PRACE_IS_(creature_ptr, RACE_ENT)) add_flag(flgs, TR_RES_FIRE); - if (PRACE_IS_(p_ptr, RACE_VAMPIRE) || PRACE_IS_(p_ptr, RACE_S_FAIRY) || - (p_ptr->mimic_form == MIMIC_VAMPIRE)) + if (PRACE_IS_(creature_ptr, RACE_VAMPIRE) || PRACE_IS_(creature_ptr, RACE_S_FAIRY) || + (creature_ptr->mimic_form == MIMIC_VAMPIRE)) add_flag(flgs, TR_RES_LITE); } @@ -3148,7 +3149,7 @@ static void display_flag_aux(TERM_LEN row, TERM_LEN col, concptr header, * Special display, part 1 * @return なし */ -static void display_player_flag_info(void) +static void display_player_flag_info(player_type *creature_ptr) { TERM_LEN row; TERM_LEN col; @@ -3156,12 +3157,12 @@ static void display_player_flag_info(void) all_player_flags f; /* Extract flags and store */ - player_flags(f.player_flags); - tim_player_flags(p_ptr, f.tim_player_flags); - player_immunity(f.player_imm); - tim_player_immunity(f.tim_player_imm); - known_obj_immunity(f.known_obj_imm); - player_vuln_flags(f.player_vuln); + player_flags(creature_ptr, f.player_flags); + tim_player_flags(creature_ptr, f.tim_player_flags); + player_immunity(creature_ptr, f.player_imm); + tim_player_immunity(creature_ptr, f.tim_player_imm); + known_obj_immunity(creature_ptr, f.known_obj_imm); + player_vuln_flags(creature_ptr, f.player_vuln); /*** Set 1 ***/ @@ -3262,7 +3263,7 @@ static void display_player_flag_info(void) display_flag_aux(row+0, col, "Speed :", TR_SPEED, &f, 0); display_flag_aux(row+1, col, "FreeAction:", TR_FREE_ACT, &f, 0); display_flag_aux(row+2, col, "SeeInvisi.:", TR_SEE_INVIS, &f, 0); - display_flag_aux(row+3, col, "Hold Exp :", TR_HOLD_EXP, &f, 0); + display_flag_aux(row+3, col, "Hold Exp :", TR_HOLD_EXP, &f, 0); display_flag_aux(row+4, col, "Warning :", TR_WARNING, &f, 0); display_flag_aux(row+5, col, "SlowDigest:", TR_SLOW_DIGEST, &f, 0); display_flag_aux(row+6, col, "Regene. :", TR_REGEN, &f, 0); @@ -3279,7 +3280,7 @@ static void display_player_flag_info(void) * Special display, part 2 * @return なし */ -static void display_player_other_flag_info(void) +static void display_player_other_flag_info(player_type *creature_ptr) { TERM_LEN row; TERM_LEN col; @@ -3287,12 +3288,12 @@ static void display_player_other_flag_info(void) all_player_flags f; /* Extract flags and store */ - player_flags(f.player_flags); - tim_player_flags(p_ptr, f.tim_player_flags); - player_immunity(f.player_imm); - tim_player_immunity(f.tim_player_imm); - known_obj_immunity(f.known_obj_imm); - player_vuln_flags(f.player_vuln); + player_flags(creature_ptr, f.player_flags); + tim_player_flags(creature_ptr, f.tim_player_flags); + player_immunity(creature_ptr, f.player_imm); + tim_player_immunity(creature_ptr, f.tim_player_imm); + known_obj_immunity(creature_ptr, f.known_obj_imm); + player_vuln_flags(creature_ptr, f.player_vuln); /*** Set 1 ***/ @@ -3472,7 +3473,7 @@ static void display_player_other_flag_info(void) * Special display, part 2a * @return なし */ -static void display_player_misc_info(void) +static void display_player_misc_info(player_type *creature_ptr) { char buf[80]; char tmp[80]; @@ -3497,11 +3498,11 @@ put_str("職業 :", 5, 1); #else strcat(tmp," "); #endif - strcat(tmp,p_ptr->name); + strcat(tmp,creature_ptr->name); c_put_str(TERM_L_BLUE, tmp, 1, 34); c_put_str(TERM_L_BLUE, sp_ptr->title, 3, 9); - c_put_str(TERM_L_BLUE, (p_ptr->mimic_form ? mimic_info[p_ptr->mimic_form].title : rp_ptr->title), 4, 9); + c_put_str(TERM_L_BLUE, (creature_ptr->mimic_form ? mimic_info[creature_ptr->mimic_form].title : rp_ptr->title), 4, 9); c_put_str(TERM_L_BLUE, cp_ptr->title, 5, 9); /* Display extras */ @@ -3516,11 +3517,11 @@ put_str("ï¼­ï¼° :", 8, 1); #endif - (void)sprintf(buf, "%d", (int)p_ptr->lev); + (void)sprintf(buf, "%d", (int)creature_ptr->lev); c_put_str(TERM_L_BLUE, buf, 6, 9); - (void)sprintf(buf, "%d/%d", (int)p_ptr->chp, (int)p_ptr->mhp); + (void)sprintf(buf, "%d/%d", (int)creature_ptr->chp, (int)creature_ptr->mhp); c_put_str(TERM_L_BLUE, buf, 7, 9); - (void)sprintf(buf, "%d/%d", (int)p_ptr->csp, (int)p_ptr->msp); + (void)sprintf(buf, "%d/%d", (int)creature_ptr->csp, (int)creature_ptr->msp); c_put_str(TERM_L_BLUE, buf, 8, 9); } @@ -3722,7 +3723,7 @@ static void display_player_stat_info(player_type *creature_ptr) } /* Player flags */ - player_flags(flgs); + player_flags(p_ptr, flgs); /* Check stats */ for (stat = 0; stat < A_MAX; stat++) @@ -3951,7 +3952,7 @@ void display_player(player_type *creature_ptr, int mode) if (creature_ptr->is_dead) { - if (creature_ptr->total_winner) + if (current_world_ptr->total_winner) { #ifdef JP sprintf(statmsg, "…あなたは勝利の後%sした。", streq(creature_ptr->died_from, "Seppuku") ? "切腹" : "引退"); @@ -3959,7 +3960,7 @@ void display_player(player_type *creature_ptr, int mode) sprintf(statmsg, "...You %s after the winning.", streq(creature_ptr->died_from, "Seppuku") ? "did Seppuku" : "retired from the adventure"); #endif } - else if (!current_floor_ptr->dun_level) + else if (!p_ptr->current_floor_ptr->dun_level) { #ifdef JP sprintf(statmsg, "…あなたは%sで%sに殺された。", map_name(), creature_ptr->died_from); @@ -3967,36 +3968,36 @@ void display_player(player_type *creature_ptr, int mode) sprintf(statmsg, "...You were killed by %s in %s.", creature_ptr->died_from, map_name()); #endif } - else if (creature_ptr->inside_quest && is_fixed_quest_idx(creature_ptr->inside_quest)) + else if (creature_ptr->current_floor_ptr->inside_quest && is_fixed_quest_idx(creature_ptr->current_floor_ptr->inside_quest)) { /* Get the quest text */ /* Bewere that INIT_ASSIGN resets the cur_num. */ init_flags = INIT_NAME_ONLY; - process_dungeon_file("q_info.txt", 0, 0, 0, 0); + process_dungeon_file(creature_ptr, "q_info.txt", 0, 0, 0, 0); #ifdef JP - sprintf(statmsg, "…あなたは、クエスト「%s」で%sに殺された。", quest[creature_ptr->inside_quest].name, creature_ptr->died_from); + sprintf(statmsg, "…あなたは、クエスト「%s」で%sに殺された。", quest[creature_ptr->current_floor_ptr->inside_quest].name, creature_ptr->died_from); #else - sprintf(statmsg, "...You were killed by %s in the quest '%s'.", creature_ptr->died_from, quest[creature_ptr->inside_quest].name); + sprintf(statmsg, "...You were killed by %s in the quest '%s'.", creature_ptr->died_from, quest[creature_ptr->current_floor_ptr->inside_quest].name); #endif } else { #ifdef JP - sprintf(statmsg, "…あなたは、%sの%d階で%sに殺された。", map_name(), (int)current_floor_ptr->dun_level, creature_ptr->died_from); + sprintf(statmsg, "…あなたは、%sの%d階で%sに殺された。", map_name(), (int)p_ptr->current_floor_ptr->dun_level, creature_ptr->died_from); #else - sprintf(statmsg, "...You were killed by %s on level %d of %s.", creature_ptr->died_from, current_floor_ptr->dun_level, map_name()); + sprintf(statmsg, "...You were killed by %s on level %d of %s.", creature_ptr->died_from, p_ptr->current_floor_ptr->dun_level, map_name()); #endif } } else if (current_world_ptr->character_dungeon) { - if (!current_floor_ptr->dun_level) + if (!p_ptr->current_floor_ptr->dun_level) { sprintf(statmsg, _("…あなたは現在、 %s にいる。", "...Now, you are in %s."), map_name()); } - else if (creature_ptr->inside_quest && is_fixed_quest_idx(creature_ptr->inside_quest)) + else if (creature_ptr->current_floor_ptr->inside_quest && is_fixed_quest_idx(creature_ptr->current_floor_ptr->inside_quest)) { /* Clear the text */ /* Must be done before doing INIT_SHOW_TEXT */ @@ -4009,16 +4010,16 @@ void display_player(player_type *creature_ptr, int mode) /* Get the quest text */ init_flags = INIT_NAME_ONLY; - process_dungeon_file("q_info.txt", 0, 0, 0, 0); + process_dungeon_file(creature_ptr, "q_info.txt", 0, 0, 0, 0); - sprintf(statmsg, _("…あなたは現在、 クエスト「%s」を遂行中だ。", "...Now, you are in the quest '%s'."), quest[creature_ptr->inside_quest].name); + sprintf(statmsg, _("…あなたは現在、 クエスト「%s」を遂行中だ。", "...Now, you are in the quest '%s'."), quest[creature_ptr->current_floor_ptr->inside_quest].name); } else { #ifdef JP - sprintf(statmsg, "…あなたは現在、 %s の %d 階で探索している。", map_name(), (int)current_floor_ptr->dun_level); + sprintf(statmsg, "…あなたは現在、 %s の %d 階で探索している。", map_name(), (int)p_ptr->current_floor_ptr->dun_level); #else - sprintf(statmsg, "...Now, you are exploring level %d of %s.", current_floor_ptr->dun_level, map_name()); + sprintf(statmsg, "...Now, you are exploring level %d of %s.", p_ptr->current_floor_ptr->dun_level, map_name()); #endif } } @@ -4046,7 +4047,7 @@ void display_player(player_type *creature_ptr, int mode) else { display_player_middle(creature_ptr); - display_player_various(); + display_player_various(creature_ptr); } } @@ -4056,15 +4057,15 @@ void display_player(player_type *creature_ptr, int mode) /* See "http://www.cs.berkeley.edu/~davidb/angband.html" */ /* Dump the info */ - display_player_misc_info(); + display_player_misc_info(creature_ptr); display_player_stat_info(creature_ptr); - display_player_flag_info(); + display_player_flag_info(creature_ptr); } /* Special */ else if (mode == 3) { - display_player_other_flag_info(); + display_player_other_flag_info(creature_ptr); } else if (mode == 4) @@ -4078,14 +4079,14 @@ void display_player(player_type *creature_ptr, int mode) * @param fff ファイルポインタ * @return なし */ -static void dump_aux_display_player(FILE *fff) +static void dump_aux_display_player(player_type *creature_ptr, FILE *fff) { TERM_LEN x, y; TERM_COLOR a; char c; char buf[1024]; - display_player(p_ptr, 0); + display_player(creature_ptr, 0); /* Dump part of the screen */ for (y = 1; y < 22; y++) @@ -4111,7 +4112,7 @@ static void dump_aux_display_player(FILE *fff) } /* Display history */ - display_player(p_ptr, 1); + display_player(creature_ptr, 1); /* Dump part of the screen */ for (y = 10; y < 19; y++) @@ -4139,7 +4140,7 @@ static void dump_aux_display_player(FILE *fff) fprintf(fff, "\n"); /* Display flags (part 1) */ - display_player(p_ptr, 2); + display_player(creature_ptr, 2); /* Dump part of the screen */ for (y = 2; y < 22; y++) @@ -4170,7 +4171,7 @@ static void dump_aux_display_player(FILE *fff) fprintf(fff, "\n"); /* Display flags (part 2) */ - display_player(p_ptr, 3); + display_player(creature_ptr, 3); /* Dump part of the screen */ for (y = 1; y < 22; y++) @@ -4207,21 +4208,21 @@ static void dump_aux_display_player(FILE *fff) * @param fff ファイルポインタ * @return なし */ -static void dump_aux_pet(FILE *fff) +static void dump_aux_pet(player_type *master_ptr, FILE *fff) { int i; bool pet = FALSE; bool pet_settings = FALSE; GAME_TEXT pet_name[MAX_NLEN]; - for (i = current_floor_ptr->m_max - 1; i >= 1; i--) + for (i = master_ptr->current_floor_ptr->m_max - 1; i >= 1; i--) { - monster_type *m_ptr = ¤t_floor_ptr->m_list[i]; + monster_type *m_ptr = &master_ptr->current_floor_ptr->m_list[i]; if (!monster_is_valid(m_ptr)) continue; if (!is_pet(m_ptr)) continue; pet_settings = TRUE; - if (!m_ptr->nickname && (p_ptr->riding != i)) continue; + if (!m_ptr->nickname && (master_ptr->riding != i)) continue; if (!pet) { fprintf(fff, _("\n\n [主なペット]\n\n", "\n\n [Leading Pets]\n\n")); @@ -4236,22 +4237,22 @@ static void dump_aux_pet(FILE *fff) fprintf(fff, _("\n\n [ペットへの命令]\n", "\n\n [Command for Pets]\n")); fprintf(fff, _("\n ドアを開ける: %s", "\n Pets open doors: %s"), - (p_ptr->pet_extra_flags & PF_OPEN_DOORS) ? "ON" : "OFF"); + (master_ptr->pet_extra_flags & PF_OPEN_DOORS) ? "ON" : "OFF"); fprintf(fff, _("\n アイテムを拾う: %s", "\n Pets pick up items: %s"), - (p_ptr->pet_extra_flags & PF_PICKUP_ITEMS) ? "ON" : "OFF"); + (master_ptr->pet_extra_flags & PF_PICKUP_ITEMS) ? "ON" : "OFF"); fprintf(fff, _("\n テレポート系魔法を使う: %s", "\n Allow teleport: %s"), - (p_ptr->pet_extra_flags & PF_TELEPORT) ? "ON" : "OFF"); + (master_ptr->pet_extra_flags & PF_TELEPORT) ? "ON" : "OFF"); fprintf(fff, _("\n 攻撃魔法を使う: %s", "\n Allow cast attack spell: %s"), - (p_ptr->pet_extra_flags & PF_ATTACK_SPELL) ? "ON" : "OFF"); + (master_ptr->pet_extra_flags & PF_ATTACK_SPELL) ? "ON" : "OFF"); fprintf(fff, _("\n 召喚魔法を使う: %s", "\n Allow cast summon spell: %s"), - (p_ptr->pet_extra_flags & PF_SUMMON_SPELL) ? "ON" : "OFF"); + (master_ptr->pet_extra_flags & PF_SUMMON_SPELL) ? "ON" : "OFF"); fprintf(fff, _("\n プレイヤーを巻き込む範囲魔法を使う: %s", "\n Allow involve player in area spell: %s"), - (p_ptr->pet_extra_flags & PF_BALL_SPELL) ? "ON" : "OFF"); + (master_ptr->pet_extra_flags & PF_BALL_SPELL) ? "ON" : "OFF"); fputc('\n', fff); } @@ -4465,10 +4466,11 @@ static void dump_aux_class_special(FILE *fff) /*! * @brief クエスト情報をファイルにダンプする + * @param creature_ptr プレーヤーへの参照ポインタ * @param fff ファイルポインタ * @return なし */ -static void dump_aux_quest(FILE *fff) +static void dump_aux_quest(player_type *creature_ptr, FILE *fff) { QUEST_IDX i; QUEST_IDX *quest_num; @@ -4485,9 +4487,9 @@ static void dump_aux_quest(FILE *fff) /* Dump Quest Information */ fputc('\n', fff); - do_cmd_knowledge_quests_completed(fff, quest_num); + do_cmd_knowledge_quests_completed(creature_ptr, fff, quest_num); fputc('\n', fff); - do_cmd_knowledge_quests_failed(fff, quest_num); + do_cmd_knowledge_quests_failed(creature_ptr, fff, quest_num); fputc('\n', fff); /* Free Memory */ @@ -4504,7 +4506,7 @@ static void dump_aux_last_message(FILE *fff) { if (p_ptr->is_dead) { - if (!p_ptr->total_winner) + if (!current_world_ptr->total_winner) { int i; @@ -4536,7 +4538,7 @@ static void dump_aux_recall(FILE *fff) int y; fprintf(fff, _("\n [帰還場所]\n\n", "\n [Recall Depth]\n\n")); - for (y = 1; y < max_d_idx; y++) + for (y = 1; y < current_world_ptr->max_d_idx; y++) { bool seiha = FALSE; @@ -4607,7 +4609,7 @@ static void dump_aux_options(FILE *fff) fputc('\n', fff); - if (p_ptr->noscore) + if (current_world_ptr->noscore) fprintf(fff, _("\n 何か不正なことをしてしまっています。\n", "\n You have done something illegal.\n")); fputc('\n', fff); @@ -4619,42 +4621,42 @@ static void dump_aux_options(FILE *fff) * @param fff ファイルポインタ * @return なし */ -static void dump_aux_arena(FILE *fff) +static void dump_aux_arena(player_type *creature_ptr, FILE *fff) { if (lite_town || vanilla_town) return; - if (p_ptr->arena_number < 0) + if (creature_ptr->arena_number < 0) { - if (p_ptr->arena_number <= ARENA_DEFEATED_OLD_VER) + if (creature_ptr->arena_number <= ARENA_DEFEATED_OLD_VER) { fprintf(fff, _("\n 闘技場: 敗北\n", "\n Arena: Defeated\n")); } else { #ifdef JP - fprintf(fff, "\n 闘技場: %d回戦で%sの前に敗北\n", -p_ptr->arena_number, - r_name + r_info[arena_info[-1 - p_ptr->arena_number].r_idx].name); + fprintf(fff, "\n 闘技場: %d回戦で%sの前に敗北\n", -creature_ptr->arena_number, + r_name + r_info[arena_info[-1 - creature_ptr->arena_number].r_idx].name); #else fprintf(fff, "\n Arena: Defeated by %s in the %d%s fight\n", - r_name + r_info[arena_info[-1 - p_ptr->arena_number].r_idx].name, - -p_ptr->arena_number, get_ordinal_number_suffix(-p_ptr->arena_number)); + r_name + r_info[arena_info[-1 - creature_ptr->arena_number].r_idx].name, + -creature_ptr->arena_number, get_ordinal_number_suffix(-creature_ptr->arena_number)); #endif } } - else if (p_ptr->arena_number > MAX_ARENA_MONS + 2) + else if (creature_ptr->arena_number > MAX_ARENA_MONS + 2) { fprintf(fff, _("\n 闘技場: 真のチャンピオン\n", "\n Arena: True Champion\n")); } - else if (p_ptr->arena_number > MAX_ARENA_MONS - 1) + else if (creature_ptr->arena_number > MAX_ARENA_MONS - 1) { fprintf(fff, _("\n 闘技場: チャンピオン\n", "\n Arena: Champion\n")); } else { #ifdef JP - fprintf(fff, "\n 闘技場: %2d勝\n", (p_ptr->arena_number > MAX_ARENA_MONS ? MAX_ARENA_MONS : p_ptr->arena_number)); + fprintf(fff, "\n 闘技場: %2d勝\n", (creature_ptr->arena_number > MAX_ARENA_MONS ? MAX_ARENA_MONS : creature_ptr->arena_number)); #else - fprintf(fff, "\n Arena: %2d Victor%s\n", (p_ptr->arena_number > MAX_ARENA_MONS ? MAX_ARENA_MONS : p_ptr->arena_number), (p_ptr->arena_number > 1) ? "ies" : "y"); + fprintf(fff, "\n Arena: %2d Victor%s\n", (creature_ptr->arena_number > MAX_ARENA_MONS ? MAX_ARENA_MONS : creature_ptr->arena_number), (creature_ptr->arena_number > 1) ? "ies" : "y"); #endif } @@ -4761,23 +4763,23 @@ static void dump_aux_monsters(FILE *fff) * @param fff ファイルポインタ * @return なし */ -static void dump_aux_race_history(FILE *fff) +static void dump_aux_race_history(player_type *creature_ptr, FILE *fff) { - if (p_ptr->old_race1 || p_ptr->old_race2) + if (creature_ptr->old_race1 || creature_ptr->old_race2) { int i; - fprintf(fff, _("\n\n あなたは%sとして生まれた。", "\n\n You were born as %s."), race_info[p_ptr->start_race].title); + fprintf(fff, _("\n\n あなたは%sとして生まれた。", "\n\n You were born as %s."), race_info[creature_ptr->start_race].title); for (i = 0; i < MAX_RACES; i++) { - if (p_ptr->start_race == i) continue; + if (creature_ptr->start_race == i) continue; if (i < 32) { - if (!(p_ptr->old_race1 & 1L << i)) continue; + if (!(creature_ptr->old_race1 & 1L << i)) continue; } else { - if (!(p_ptr->old_race2 & 1L << (i-32))) continue; + if (!(creature_ptr->old_race2 & 1L << (i-32))) continue; } fprintf(fff, _("\n あなたはかつて%sだった。", "\n You were a %s before."), race_info[i].title); } @@ -4886,7 +4888,6 @@ static void dump_aux_equipment_inventory(FILE *fff) fprintf(fff, "\n\n"); } - /* Dump the p_ptr->inventory_list */ fprintf(fff, _(" [キャラクタの持ち物]\n\n", " [Character Inventory]\n\n")); for (i = 0; i < INVEN_PACK; i++) @@ -4894,7 +4895,6 @@ static void dump_aux_equipment_inventory(FILE *fff) /* Don't dump the empty slots */ if (!p_ptr->inventory_list[i].k_idx) break; - /* Dump the p_ptr->inventory_list slots */ object_desc(o_name, &p_ptr->inventory_list[i], 0); fprintf(fff, "%c) %s\n", index_to_label(i), o_name); } @@ -4977,10 +4977,11 @@ static void dump_aux_home_museum(FILE *fff) /*! * @brief ダンプ出力のメインルーチン * Output the character dump to a file + * @param creature_ptr プレーヤーへの参照ポインタ * @param fff ファイルポインタ * @return エラーコード */ -errr make_character_dump(FILE *fff) +errr make_character_dump(player_type *creature_ptr, FILE *fff) { #ifdef JP fprintf(fff, " [変愚蛮怒 %d.%d.%d キャラクタ情報]\n\n", @@ -4992,19 +4993,19 @@ errr make_character_dump(FILE *fff) update_playtime(); - dump_aux_display_player(fff); + dump_aux_display_player(p_ptr, fff); dump_aux_last_message(fff); dump_aux_options(fff); dump_aux_recall(fff); - dump_aux_quest(fff); - dump_aux_arena(fff); + dump_aux_quest(creature_ptr, fff); + dump_aux_arena(p_ptr, fff); dump_aux_monsters(fff); dump_aux_virtues(fff); - dump_aux_race_history(fff); + dump_aux_race_history(p_ptr, fff); dump_aux_realm_history(fff); dump_aux_class_special(fff); dump_aux_mutations(fff); - dump_aux_pet(fff); + dump_aux_pet(p_ptr, fff); fputs("\n\n", fff); dump_aux_equipment_inventory(fff); dump_aux_home_museum(fff); @@ -5016,13 +5017,14 @@ errr make_character_dump(FILE *fff) /*! * @brief プレイヤーステータスをファイルダンプ出力する * Hack -- Dump a character description file + * @param creature_ptr プレーヤーへの参照ポインタ * @param name 出力ファイル名 * @return エラーコード * @details * Allow the "full" flag to dump additional info, * and trigger its usage from various places in the code. */ -errr file_character(concptr name) +errr file_character(player_type *creature_ptr, concptr name) { int fd = -1; FILE *fff = NULL; @@ -5062,7 +5064,7 @@ errr file_character(concptr name) return (-1); } - (void)make_character_dump(fff); + (void)make_character_dump(creature_ptr, fff); my_fclose(fff); @@ -5341,7 +5343,7 @@ bool show_file(bool show_version, concptr name, concptr what, int line, BIT_FLAG msg_format(_("'%s'をオープンできません。", "Cannot open '%s'."), name); msg_print(NULL); - return (TRUE); + return TRUE; } @@ -5416,7 +5418,7 @@ bool show_file(bool show_version, concptr name, concptr what, int line, BIT_FLAG /* Hack -- Re-Open the file */ fff = my_fopen(path, "r"); - if (!fff) return (FALSE); + if (!fff) return FALSE; /* File has been restarted */ next = 0; @@ -5729,10 +5731,10 @@ bool show_file(bool show_version, concptr name, concptr what, int line, BIT_FLAG my_fclose(fff); /* Escape */ - if (skey == 'q') return (FALSE); + if (skey == 'q') return FALSE; /* Normal return */ - return (TRUE); + return TRUE; } @@ -5755,13 +5757,14 @@ void do_cmd_help(void) /*! * @brief プレイヤーの名前をチェックして修正する * Process the player name. + * @param player_ptr プレーヤーへの参照ポインタ * @param sf セーブファイル名に合わせた修正を行うならばTRUE * @return なし * @details * Extract a clean "base name". * Build the savefile name if needed. */ -void process_player_name(bool sf) +void process_player_name(player_type *creature_ptr, bool sf) { int i, k = 0; char old_player_base[32] = ""; @@ -5869,7 +5872,7 @@ void process_player_name(bool sf) { concptr s; s = savefile; - while (1) + while (TRUE) { concptr t; t = my_strstr(s, PATH_SEP); @@ -5903,7 +5906,7 @@ void process_player_name(bool sf) /* Load an autopick preference file */ if (current_world_ptr->character_generated) { - if (!streq(old_player_base, p_ptr->base_name)) autopick_load_pref(FALSE); + if (!streq(old_player_base, p_ptr->base_name)) autopick_load_pref(creature_ptr, FALSE); } } @@ -5914,30 +5917,30 @@ void process_player_name(bool sf) * @return なし * @details *
- * Assumes that "display_player(p_ptr, 0)" has just been called
+ * Assumes that "display_player()" has just been called
  * Perhaps we should NOT ask for a name (at "birth()") on
  * Unix machines?  XXX XXX
  * What a horrible name for a global function.  
  * 
*/ -void get_name(void) +void get_name(player_type *creature_ptr) { char tmp[64]; /* Save the player name */ - strcpy(tmp, p_ptr->name); + strcpy(tmp, creature_ptr->name); /* Prompt for a new name */ if (get_string(_("キャラクターの名前を入力して下さい: ", "Enter a name for your character: "), tmp, 15)) { /* Use the name */ - strcpy(p_ptr->name, tmp); + strcpy(creature_ptr->name, tmp); } - if (0 == strlen(p_ptr->name)) + if (0 == strlen(creature_ptr->name)) { /* Use default name */ - strcpy(p_ptr->name, "PLAYER"); + strcpy(creature_ptr->name, "PLAYER"); } strcpy(tmp,ap_ptr->title); @@ -5947,7 +5950,7 @@ void get_name(void) #else strcat(tmp, " "); #endif - strcat(tmp,p_ptr->name); + strcat(tmp,creature_ptr->name); /* Re-Draw the name (in light blue) */ Term_erase(34, 1, 255); @@ -5962,11 +5965,12 @@ void get_name(void) /*! * @brief セーブするコマンドのメインルーチン * Save the game + * @param creature_ptr プレーヤーへの参照ポインタ * @param is_autosave オートセーブ中の処理ならばTRUE * @return なし * @details */ -void do_cmd_save_game(int is_autosave) +void do_cmd_save_game(player_type *creature_ptr, int is_autosave) { /* Autosaves do not disturb */ if (is_autosave) @@ -5980,7 +5984,7 @@ void do_cmd_save_game(int is_autosave) /* Clear messages */ msg_print(NULL); - handle_stuff(); + handle_stuff(creature_ptr); prt(_("ゲームをセーブしています...", "Saving game..."), 0, 0); @@ -5993,7 +5997,7 @@ void do_cmd_save_game(int is_autosave) signals_ignore_tstp(); /* Save the player */ - if (save_player()) + if (save_player(creature_ptr)) { prt(_("ゲームをセーブしています... 終了", "Saving game... done."), 0, 0); } @@ -6081,15 +6085,15 @@ static void make_bones(void) /* Ignore wizards and borgs */ - if (!(p_ptr->noscore & 0x00FF)) + if (!(current_world_ptr->noscore & 0x00FF)) { /* Ignore people who die in town */ - if (current_floor_ptr->dun_level) + if (p_ptr->current_floor_ptr->dun_level) { char tmp[128]; /* "Bones" name */ - sprintf(tmp, "bone.%03d", current_floor_ptr->dun_level); + sprintf(tmp, "bone.%03d", p_ptr->current_floor_ptr->dun_level); path_build(str, sizeof(str), ANGBAND_DIR_BONE, tmp); /* Attempt to open the bones file */ @@ -6141,7 +6145,7 @@ bool (*tombstone_aux)(void) = NULL; * Display a "tomb-stone" * @return なし */ -void print_tomb(void) +void print_tomb(player_type *dead_ptr) { bool done = FALSE; @@ -6188,7 +6192,7 @@ void print_tomb(void) } /* King or Queen */ - if (p_ptr->total_winner || (p_ptr->lev > PY_MAX_LEVEL)) + if (current_world_ptr->total_winner || (dead_ptr->lev > PY_MAX_LEVEL)) { #ifdef JP /* 英日切り替え */ @@ -6201,10 +6205,10 @@ void print_tomb(void) /* Normal */ else { - p = player_title[p_ptr->pclass][(p_ptr->lev - 1) / 5]; + p = player_title[dead_ptr->pclass][(dead_ptr->lev - 1) / 5]; } - center_string(buf, p_ptr->name); + center_string(buf, dead_ptr->name); put_str(buf, 6, 11); #ifndef JP @@ -6218,35 +6222,35 @@ void print_tomb(void) center_string(buf, cp_ptr->title); put_str(buf, 10, 11); - (void)sprintf(tmp, _("レベル: %d", "Level: %d"), (int)p_ptr->lev); + (void)sprintf(tmp, _("レベル: %d", "Level: %d"), (int)dead_ptr->lev); center_string(buf, tmp); put_str(buf, 11, 11); - (void)sprintf(tmp, _("経験値: %ld", "Exp: %ld"), (long)p_ptr->exp); + (void)sprintf(tmp, _("経験値: %ld", "Exp: %ld"), (long)dead_ptr->exp); center_string(buf, tmp); put_str(buf, 12, 11); - (void)sprintf(tmp, _("所持金: %ld", "AU: %ld"), (long)p_ptr->au); + (void)sprintf(tmp, _("所持金: %ld", "AU: %ld"), (long)dead_ptr->au); center_string(buf, tmp); put_str(buf, 13, 11); #ifdef JP /* 墓に刻む言葉をオリジナルより細かく表示 */ - if (streq(p_ptr->died_from, "途中終了")) + if (streq(dead_ptr->died_from, "途中終了")) { strcpy(tmp, "<自殺>"); } - else if (streq(p_ptr->died_from, "ripe")) + else if (streq(dead_ptr->died_from, "ripe")) { strcpy(tmp, "引退後に天寿を全う"); } - else if (streq(p_ptr->died_from, "Seppuku")) + else if (streq(dead_ptr->died_from, "Seppuku")) { strcpy(tmp, "勝利の後、切腹"); } else { - roff_to_buf(p_ptr->died_from, GRAVE_LINE_WIDTH + 1, tmp, sizeof tmp); + roff_to_buf(dead_ptr->died_from, GRAVE_LINE_WIDTH + 1, tmp, sizeof tmp); t = tmp + strlen(tmp) + 1; if (*t) { @@ -6286,12 +6290,12 @@ void print_tomb(void) center_string(buf, tmp); put_str(buf, 14, 11); - if (!streq(p_ptr->died_from, "ripe") && !streq(p_ptr->died_from, "Seppuku")) + if (!streq(dead_ptr->died_from, "ripe") && !streq(dead_ptr->died_from, "Seppuku")) { - if (current_floor_ptr->dun_level == 0) + if (dead_ptr->current_floor_ptr->dun_level == 0) { - concptr field_name = p_ptr->town_num ? "街" : "荒野"; - if (streq(p_ptr->died_from, "途中終了")) + concptr field_name = dead_ptr->town_num ? "街" : "荒野"; + if (streq(dead_ptr->died_from, "途中終了")) { sprintf(tmp, "%sで死んだ", field_name); } @@ -6302,24 +6306,24 @@ void print_tomb(void) } else { - if (streq(p_ptr->died_from, "途中終了")) + if (streq(dead_ptr->died_from, "途中終了")) { - sprintf(tmp, "地下 %d 階で死んだ", (int)current_floor_ptr->dun_level); + sprintf(tmp, "地下 %d 階で死んだ", (int)dead_ptr->current_floor_ptr->dun_level); } else { - sprintf(tmp, "に地下 %d 階で殺された", (int)current_floor_ptr->dun_level); + sprintf(tmp, "に地下 %d 階で殺された", (int)dead_ptr->current_floor_ptr->dun_level); } } center_string(buf, tmp); put_str(buf, 15 + extra_line, 11); } #else - (void)sprintf(tmp, "Killed on Level %d", current_floor_ptr->dun_level); + (void)sprintf(tmp, "Killed on Level %d", dead_ptr->current_floor_ptr->dun_level); center_string(buf, tmp); put_str(buf, 14, 11); - roff_to_buf(format("by %s.", p_ptr->died_from), GRAVE_LINE_WIDTH + 1, tmp, sizeof tmp); + roff_to_buf(format("by %s.", dead_ptr->died_from), GRAVE_LINE_WIDTH + 1, tmp, sizeof tmp); center_string(buf, tmp); put_str(buf, 15, 11); t = tmp + strlen(tmp) + 1; @@ -6339,7 +6343,7 @@ void print_tomb(void) (void)sprintf(tmp, "%-.24s", ctime(&ct)); center_string(buf, tmp); put_str(buf, 17, 11); - msg_format(_("さようなら、%s!", "Goodbye, %s!"), p_ptr->name); + msg_format(_("さようなら、%s!", "Goodbye, %s!"), dead_ptr->name); } } @@ -6347,9 +6351,10 @@ void print_tomb(void) /*! * @brief 死亡、引退時の簡易ステータス表示 / * Display some character info + * @param creature_ptr プレーヤーへの参照ポインタ * @return なし */ -void show_info(void) +void show_info(player_type *creature_ptr) { int i, j, k, l; object_type *o_ptr; @@ -6358,11 +6363,11 @@ void show_info(void) /* Hack -- Know everything in the inven/equip */ for (i = 0; i < INVEN_TOTAL; i++) { - o_ptr = &p_ptr->inventory_list[i]; + o_ptr = &creature_ptr->inventory_list[i]; if (!o_ptr->k_idx) continue; /* Aware and Known */ - object_aware(o_ptr); + object_aware(creature_ptr, o_ptr); object_known(o_ptr); } @@ -6377,14 +6382,14 @@ void show_info(void) if (!o_ptr->k_idx) continue; /* Aware and Known */ - object_aware(o_ptr); + object_aware(creature_ptr, o_ptr); object_known(o_ptr); } } /* Hack -- Recalculate bonuses */ - p_ptr->update |= (PU_BONUS); - handle_stuff(); + creature_ptr->update |= (PU_BONUS); + handle_stuff(creature_ptr); /* Flush all input keys */ flush(); @@ -6415,37 +6420,33 @@ void show_info(void) screen_save(); /* Dump a character file */ - (void)file_character(out_val); + (void)file_character(creature_ptr, out_val); screen_load(); } update_playtime(); - display_player(p_ptr, 0); + display_player(creature_ptr, 0); - /* Prompt for p_ptr->inventory_list */ prt(_("何かキーを押すとさらに情報が続きます (ESCで中断): ", "Hit any key to see more information (ESC to abort): "), 23, 0); /* Allow abort at this point */ if (inkey() == ESCAPE) return; - - /* Show equipment and p_ptr->inventory_list */ - /* Equipment -- if any */ - if (p_ptr->equip_cnt) + if (creature_ptr->equip_cnt) { Term_clear(); - (void)show_equip(0, USE_FULL, 0); + (void)show_equip(creature_ptr, 0, USE_FULL, 0); prt(_("装備していたアイテム: -続く-", "You are using: -more-"), 0, 0); if (inkey() == ESCAPE) return; } /* Inventory -- if any */ - if (p_ptr->inven_cnt) + if (creature_ptr->inven_cnt) { Term_clear(); - (void)show_inven(0, USE_FULL, 0); + (void)show_inven(creature_ptr, 0, USE_FULL, 0); prt(_("持っていたアイテム: -続く-", "You are carrying: -more-"), 0, 0); if (inkey() == ESCAPE) return; @@ -6495,6 +6496,7 @@ void show_info(void) /*! * @brief 異常発生時のゲーム緊急終了処理 / * Handle abrupt death of the visual system + * @param creature_ptr プレーヤーへの参照ポインタ * @return なし * @details *
@@ -6504,7 +6506,7 @@ void show_info(void)
  * save file so that player can see tombstone when restart.
  * 
*/ -void exit_game_panic(void) +void exit_game_panic(player_type *creature_ptr) { /* If nothing important has happened, just quit */ if (!current_world_ptr->character_generated || current_world_ptr->character_saved) quit(_("緊急事態", "panic")); @@ -6515,7 +6517,7 @@ void exit_game_panic(void) /* Clear the top line */ prt("", 0, 0); - /* Hack -- current_world_ptr->game_turn off some things */ + /* Hack -- turn off some things */ disturb(p_ptr, TRUE, TRUE); /* Mega-Hack -- Delay death */ @@ -6531,7 +6533,7 @@ void exit_game_panic(void) (void)strcpy(p_ptr->died_from, _("(緊急セーブ)", "(panic save)")); /* Panic save, or get worried */ - if (!save_player()) quit(_("緊急セーブ失敗!", "panic save failed!")); + if (!save_player(creature_ptr)) quit(_("緊急セーブ失敗!", "panic save failed!")); /* Successful panic save */ quit(_("緊急セーブ成功!", "panic save succeeded!")); @@ -6736,7 +6738,7 @@ static errr counts_seek(int fd, u32b where, bool flag) temp1[i] ^= (i+1) * 63; seekpoint = 0; - while (1) + while (TRUE) { if (fd_seek(fd, seekpoint + 3 * sizeof(u32b))) return 1; @@ -6932,12 +6934,12 @@ static void handle_signal_simple(int sig) /* Mark the savefile */ (void)strcpy(p_ptr->died_from, _("強制終了", "Abortion")); - forget_lite(); - forget_view(); - clear_mon_lite(current_floor_ptr); + forget_lite(p_ptr->current_floor_ptr); + forget_view(p_ptr->current_floor_ptr); + clear_mon_lite(p_ptr->current_floor_ptr); /* Close stuff */ - close_game(); + close_game(p_ptr); /* Quit */ quit(_("強制終了", "interrupt")); @@ -6949,9 +6951,9 @@ static void handle_signal_simple(int sig) /* Cause of "death" */ (void)strcpy(p_ptr->died_from, _("強制終了中", "Interrupting")); - forget_lite(); - forget_view(); - clear_mon_lite(current_floor_ptr); + forget_lite(p_ptr->current_floor_ptr); + forget_view(p_ptr->current_floor_ptr); + clear_mon_lite(p_ptr->current_floor_ptr); /* Stop playing */ p_ptr->playing = FALSE; @@ -6961,7 +6963,7 @@ static void handle_signal_simple(int sig) p_ptr->leaving = TRUE; /* Close stuff */ - close_game(); + close_game(p_ptr); /* Quit */ quit(_("強制終了", "interrupt")); @@ -7025,9 +7027,9 @@ static void handle_signal_abort(int sig) if (!current_world_ptr->character_generated || current_world_ptr->character_saved) quit(NULL); - forget_lite(); - forget_view(); - clear_mon_lite(current_floor_ptr); + forget_lite(p_ptr->current_floor_ptr); + forget_view(p_ptr->current_floor_ptr); + clear_mon_lite(p_ptr->current_floor_ptr); /* Clear the bottom line */ Term_erase(0, hgt - 1, 255); @@ -7054,7 +7056,7 @@ static void handle_signal_abort(int sig) signals_ignore_tstp(); /* Attempt to save */ - if (save_player()) + if (save_player(p_ptr)) { Term_putstr(45, hgt - 1, -1, TERM_RED, _("緊急セーブ成功!", "Panic save succeeded!")); }