Lines Matching refs:p_ptr

144 	player_type *p_ptr = Players[Ind];  in prt_stat()  local
145 …Send_stat(Ind, stat, p_ptr->stat_top[stat], p_ptr->stat_use[stat], p_ptr->stat_ind[stat], p_ptr->s… in prt_stat()
155 player_type *p_ptr = Players[Ind]; in prt_title() local
159 if (p_ptr->ghost) p = "\377rGhost (dead)"; in prt_title()
163 else if (p_ptr->total_winner || (p_ptr->lev > PY_MAX_LEVEL)) { in prt_title()
164 if (p_ptr->mode & (MODE_HARD | MODE_NO_GHOST)) in prt_title()
165 p = (p_ptr->male ? "**EMPEROR**" : "**EMPRESS**"); in prt_title()
167 p = (p_ptr->male ? "**KING**" : "**QUEEN**"); in prt_title()
170 else if (p_ptr->total_winner || (p_ptr->lev > PY_MAX_LEVEL)) { in prt_title()
173 strcat(t, get_ptitle(p_ptr, TRUE)); in prt_title()
179 else p = get_ptitle(p_ptr, TRUE); in prt_title()
189 player_type *p_ptr = Players[Ind]; in prt_level() local
192 if (p_ptr->lev >= (is_admin(p_ptr) ? PY_MAX_LEVEL : PY_MAX_PLAYER_LEVEL)) in prt_level()
195 else adv_exp = (s64b)((s64b)player_exp[p_ptr->lev - 1] * (s64b)p_ptr->expfact / 100L); in prt_level()
197 else adv_exp = (s64b)player_exp[p_ptr->lev - 1]; in prt_level()
200 if (p_ptr->lev > 1) in prt_level()
202 adv_exp_prev = (s64b)((s64b)player_exp[p_ptr->lev - 2] * (s64b)p_ptr->expfact / 100L); in prt_level()
204 adv_exp_prev = (s64b)player_exp[p_ptr->lev - 2]; in prt_level()
207 Send_experience(Ind, p_ptr->lev, p_ptr->max_exp, p_ptr->exp, adv_exp, adv_exp_prev); in prt_level()
215 player_type *p_ptr = Players[Ind]; in prt_exp() local
218 if (p_ptr->lev >= (is_admin(p_ptr) ? PY_MAX_LEVEL : PY_MAX_PLAYER_LEVEL)) in prt_exp()
221 else adv_exp = (s64b)((s64b)player_exp[p_ptr->lev - 1] * (s64b)p_ptr->expfact / 100L); in prt_exp()
223 else adv_exp = (s64b)player_exp[p_ptr->lev - 1]; in prt_exp()
226 if (p_ptr->lev > 1) in prt_exp()
228 adv_exp_prev = (s64b)((s64b)player_exp[p_ptr->lev - 2] * (s64b)p_ptr->expfact / 100L); in prt_exp()
230 adv_exp_prev = (s64b)player_exp[p_ptr->lev - 2]; in prt_exp()
233 Send_experience(Ind, p_ptr->lev, p_ptr->max_exp, p_ptr->exp, adv_exp, adv_exp_prev); in prt_exp()
242 player_type *p_ptr = Players[Ind]; in prt_gold() local
244 Send_gold(Ind, p_ptr->au, p_ptr->balance); in prt_gold()
254 player_type *p_ptr = Players[Ind]; in prt_ac() local
256 Send_ac(Ind, p_ptr->dis_ac, p_ptr->dis_to_a); in prt_ac()
262 player_type *p_ptr = Players[Ind]; in prt_sanity() local
264 Send_sanity(Ind, p_ptr->msane, p_ptr->csane); in prt_sanity()
268 int skill = get_skill(p_ptr, SKILL_HEALTH); in prt_sanity()
270 ratio = p_ptr->msane ? (p_ptr->csane * 100) / p_ptr->msane : 100; in prt_sanity()
273 if (p_ptr->pclass == CLASS_MINDCRAFTER && in prt_sanity()
274 p_ptr->lev >= skill) in prt_sanity()
275 skill = p_ptr->lev; in prt_sanity()
303 switch (p_ptr->sanity_bar) { in prt_sanity()
305 snprintf(buf, sizeof(buf), "%4d/%4d", p_ptr->csane, p_ptr->msane); in prt_sanity()
333 player_type *p_ptr = Players[Ind]; in prt_hp() local
335 Send_hp(Ind, p_ptr->mhp, p_ptr->chp); in prt_hp()
343 player_type *p_ptr = Players[Ind]; in prt_stamina() local
345 Send_stamina(Ind, p_ptr->mst, p_ptr->cst); in prt_stamina()
353 player_type *p_ptr = Players[Ind]; in prt_sp() local
356 Send_sp(Ind, p_ptr->msp, p_ptr->csp); in prt_sp()
365 player_type *p_ptr = Players[Ind]; in prt_depth() local
367 Send_depth(Ind, &p_ptr->wpos); in prt_depth()
376 player_type *p_ptr = Players[Ind]; in prt_hunger() local
378 Send_food(Ind, p_ptr->food); in prt_hunger()
387 player_type *p_ptr = Players[Ind]; in prt_blind() local
389 if (p_ptr->blind) Send_blind(Ind, TRUE); in prt_blind()
399 player_type *p_ptr = Players[Ind]; in prt_confused() local
401 if (p_ptr->confused) Send_confused(Ind, TRUE); in prt_confused()
411 player_type *p_ptr = Players[Ind]; in prt_afraid() local
413 if (p_ptr->afraid) Send_fear(Ind, TRUE); in prt_afraid()
423 player_type *p_ptr = Players[Ind]; in prt_poisoned() local
425 if (p_ptr->poisoned) Send_poison(Ind, TRUE); in prt_poisoned()
439 player_type *p_ptr = Players[Ind]; in prt_state() local
444 if (p_ptr->paralyzed) in prt_state()
454 if (p_ptr->searching) in prt_state()
464 if (p_ptr->resting) in prt_state()
482 player_type *p_ptr = Players[Ind]; in prt_speed() local
484 int i = p_ptr->pspeed; in prt_speed()
490 if (p_ptr->searching) i += 10; in prt_speed()
499 player_type *p_ptr = Players[Ind]; in prt_study() local
501 if (p_ptr->skill_points) in prt_study()
514 player_type *p_ptr = Players[Ind]; in prt_bpr() local
517 switch (p_ptr->pclass) { in prt_bpr()
524 if (p_ptr->num_blow == 1) attr = TERM_ORANGE; in prt_bpr()
525 else if (p_ptr->num_blow == 2) attr = TERM_YELLOW; in prt_bpr()
532 if (p_ptr->num_blow == 1) attr = TERM_YELLOW; in prt_bpr()
539 Send_bpr(Ind, p_ptr->num_blow, attr); in prt_bpr()
545 player_type *p_ptr = Players[Ind]; in prt_cut() local
547 int c = p_ptr->cut; in prt_cut()
551 if ((zcave = getcave(&p_ptr->wpos))) in prt_cut()
552 if (zcave[p_ptr->py][p_ptr->px].info & CAVE_STCK) return; in prt_cut()
561 player_type *p_ptr = Players[Ind]; in prt_stun() local
563 int s = p_ptr->stun; in prt_stun()
570 player_type *p_ptr = Players[Ind]; in prt_history() local
575 Send_history(Ind, i, p_ptr->history[i]); in prt_history()
581 player_type *p_ptr = Players[Ind]; in prt_various() local
583 …Send_various(Ind, p_ptr->ht, p_ptr->wt, p_ptr->age, p_ptr->sc, r_name + r_info[p_ptr->body_monster… in prt_various()
588 player_type *p_ptr = Players[Ind]; in prt_plusses() local
591 int show_tohit_m = p_ptr->dis_to_h + p_ptr->to_h_melee; in prt_plusses()
592 int show_todam_m = p_ptr->dis_to_d + p_ptr->to_d_melee; in prt_plusses()
596 int show_tohit_r = p_ptr->dis_to_h + p_ptr->to_h_ranged; in prt_plusses()
597 int show_todam_r = p_ptr->to_d_ranged; in prt_plusses()
601 object_type *o_ptr = &p_ptr->inventory[INVEN_WIELD]; in prt_plusses()
602 object_type *o_ptr2 = &p_ptr->inventory[INVEN_BOW]; in prt_plusses()
603 object_type *o_ptr3 = &p_ptr->inventory[INVEN_AMMO]; in prt_plusses()
604 object_type *o_ptr4 = &p_ptr->inventory[INVEN_ARM]; in prt_plusses()
620 if (o_ptr4->k_idx && o_ptr4->tval != TV_SHIELD && p_ptr->dual_mode) { in prt_plusses()
638 p_ptr->overall_tohit_r = show_tohit_r; in prt_plusses()
639 p_ptr->overall_todam_r = show_todam_r; in prt_plusses()
640 p_ptr->overall_tohit_m = show_tohit_m; in prt_plusses()
641 p_ptr->overall_todam_m = show_todam_m; in prt_plusses()
651 player_type *p_ptr = Players[Ind]; in prt_AFK() local
653 byte afk = (p_ptr->afk ? 1 : 0); in prt_AFK()
659 player_type *p_ptr = Players[Ind]; in prt_encumberment() local
661 byte cumber_armor = p_ptr->cumber_armor ? 1 : 0; in prt_encumberment()
662 byte awkward_armor = p_ptr->awkward_armor ? 1 : 0; in prt_encumberment()
665 byte cumber_glove = p_ptr->cumber_glove || p_ptr->cumber_helm ? 1 : 0; in prt_encumberment()
666 byte heavy_wield = p_ptr->heavy_wield ? 1 : 0; in prt_encumberment()
667 byte heavy_shield = p_ptr->heavy_shield ? 1 : 0; /* added in 4.4.0f */ in prt_encumberment()
668 byte heavy_shoot = p_ptr->heavy_shoot ? 1 : 0; in prt_encumberment()
669 byte icky_wield = p_ptr->icky_wield ? 1 : 0; in prt_encumberment()
670 byte awkward_wield = p_ptr->awkward_wield ? 1 : 0; in prt_encumberment()
671 byte easy_wield = p_ptr->easy_wield ? 1 : 0; in prt_encumberment()
672 byte cumber_weight = p_ptr->cumber_weight ? 1 : 0; in prt_encumberment()
677 byte awkward_shoot = p_ptr->awkward_shoot ? 1 : 0; in prt_encumberment()
678 bool heavy_swim = p_ptr->heavy_swim ? 1 : 0; in prt_encumberment()
679 if (!is_newer_than(&p_ptr->version, 4, 4, 2, 0, 0, 0)) { in prt_encumberment()
680 monk_heavyarmor = (p_ptr->monk_heavyarmor || p_ptr->rogue_heavyarmor) ? 1 : 0; in prt_encumberment()
682 monk_heavyarmor = p_ptr->monk_heavyarmor ? 1 : 0; in prt_encumberment()
683 rogue_heavyarmor = p_ptr->rogue_heavyarmor ? 1 : 0; in prt_encumberment()
686 if (p_ptr->pclass == CLASS_WARRIOR || p_ptr->pclass == CLASS_ARCHER) { in prt_encumberment()
698 player_type *p_ptr = Players[Ind]; in prt_extra_status() local
701 if (!is_newer_than(&p_ptr->version, 4, 4, 1, 5, 0, 0)) return; in prt_extra_status()
704 if (get_skill(p_ptr, SKILL_STANCE)) { in prt_extra_status()
705 switch(p_ptr->combat_stance) { in prt_extra_status()
716 if (get_skill(p_ptr, SKILL_DUAL) && p_ptr->dual_wield) { in prt_extra_status()
717 if (p_ptr->dual_mode) in prt_extra_status()
724 if (p_ptr->shoot_till_kill) in prt_extra_status()
730 if (p_ptr->spell_project) in prt_extra_status()
757 player_type *p_ptr = Players[Ind]; in health_redraw() local
762 if (p_ptr->health_who == 0) { in health_redraw()
768 else if (p_ptr->image) { in health_redraw()
774 else if (p_ptr->health_who < 0) { in health_redraw()
775 player_type *q_ptr = Players[0 - p_ptr->health_who]; in health_redraw()
782 if (0 - p_ptr->health_who < NumPlayers) { in health_redraw()
783 if(Players[0-p_ptr->health_who]->conn == NOT_CONNECTED ) { in health_redraw()
800 else if (!p_ptr->play_vis[0 - p_ptr->health_who] && !is_admin(p_ptr)) { in health_redraw()
842 else if (!m_list[p_ptr->health_who].r_idx) { in health_redraw()
848 else if (!p_ptr->mon_vis[p_ptr->health_who] && !is_admin(p_ptr)) { in health_redraw()
854 else if (m_list[p_ptr->health_who].hp < 0) { in health_redraw()
863 monster_type *m_ptr = &m_list[p_ptr->health_who]; in health_redraw()
915 player_type *p_ptr = Players[Ind]; in prt_frame_basic() local
919 …Send_char_info(Ind, p_ptr->prace, p_ptr->pclass, p_ptr->ptrait, p_ptr->male, p_ptr->mode, p_ptr->n… in prt_frame_basic()
1066 player_type *p_ptr = Players[Ind]; in calc_sanity() local
1069 int lev = p_ptr->lev > 50 ? 50 : p_ptr->lev; in calc_sanity()
1072 bonus = ((int)(adj_wis_msane[p_ptr->stat_ind[A_WIS]]) - 128); in calc_sanity()
1079 if (p_ptr->msane != msane) { in calc_sanity()
1082 p_ptr->csane += (msane - p_ptr->msane); in calc_sanity()
1084 if (p_ptr->csane < 0) { in calc_sanity()
1085 if (!p_ptr->safe_sane) { in calc_sanity()
1088 (void)strcpy(p_ptr->died_from, "insanity"); in calc_sanity()
1089 (void)strcpy(p_ptr->really_died_from, "insanity"); in calc_sanity()
1090 if (!p_ptr->ghost) { in calc_sanity()
1091 strcpy(p_ptr->died_from_list, "insanity"); in calc_sanity()
1092 p_ptr->died_from_depth = getlevel(&p_ptr->wpos); in calc_sanity()
1094 if (p_ptr->total_winner) strcat(p_ptr->died_from_list, "\001"); in calc_sanity()
1099 p_ptr->death = TRUE; in calc_sanity()
1100 p_ptr->deathblow = 0; in calc_sanity()
1102 p_ptr->csane = 0; in calc_sanity()
1106 p_ptr->msane = msane; in calc_sanity()
1108 if (p_ptr->csane >= msane) { in calc_sanity()
1109 p_ptr->csane = msane; in calc_sanity()
1110 p_ptr->csane_frac = 0; in calc_sanity()
1113 p_ptr->redraw |= (PR_SANITY); in calc_sanity()
1114 p_ptr->window |= (PW_PLAYER); in calc_sanity()
1127 player_type *p_ptr = Players[Ind]; in calc_mana() local
1141 tmp_lev = p_ptr->lev * 10; in calc_mana()
1142 if (p_ptr->lev <= 50) levels = tmp_lev; in calc_mana()
1144 else if (p_ptr->lev <= 70) levels = 500 + (tmp_lev - 500) / 2; in calc_mana()
1145 else if (p_ptr->lev <= 85) levels = 500 + 100 + (tmp_lev - 700) / 3; in calc_mana()
1152 switch(p_ptr->pclass) { in calc_mana()
1155 new_mana = get_skill_scale(p_ptr, SKILL_MAGIC, 200) + in calc_mana()
1156 (adj_mag_mana[p_ptr->stat_ind[A_INT]] * 85 * levels + in calc_mana()
1157 adj_mag_mana[p_ptr->stat_ind[A_WIS]] * 15 * levels) / 3000; in calc_mana()
1161 new_mana = get_skill_scale(p_ptr, SKILL_MAGIC, 200) + in calc_mana()
1162 (adj_mag_mana[p_ptr->stat_ind[A_INT]] * 85 * levels + in calc_mana()
1163 adj_mag_mana[p_ptr->stat_ind[A_WIS]] * 15 * levels) / 5000; in calc_mana()
1167 new_mana = get_skill_scale(p_ptr, SKILL_MAGIC, 200) + in calc_mana()
1168 (adj_mag_mana[p_ptr->stat_ind[A_INT]] * 15 * levels + in calc_mana()
1169 adj_mag_mana[p_ptr->stat_ind[A_WIS]] * 85 * levels) / 3750; in calc_mana()
1173 new_mana = get_skill_scale(p_ptr, SKILL_MAGIC, 200) + in calc_mana()
1174 (adj_mag_mana[p_ptr->stat_ind[A_INT]] * 15 * levels + in calc_mana()
1175 adj_mag_mana[p_ptr->stat_ind[A_WIS]] * 85 * levels) / 4000; in calc_mana()
1179 new_mana = get_skill_scale(p_ptr, SKILL_MAGIC, 200) + in calc_mana()
1180 (adj_mag_mana[p_ptr->stat_ind[A_INT]] * 15 * levels + in calc_mana()
1181 adj_mag_mana[p_ptr->stat_ind[A_WIS]] * 85 * levels) / 5500; in calc_mana()
1185 new_mana = get_skill_scale(p_ptr, SKILL_MAGIC, 200) + in calc_mana()
1186 (adj_mag_mana[p_ptr->stat_ind[A_INT]] * 85 * levels + in calc_mana()
1187 adj_mag_mana[p_ptr->stat_ind[A_WIS]] * 15 * levels) / 5500; in calc_mana()
1190 new_mana = get_skill_scale(p_ptr, SKILL_MAGIC, 200) + in calc_mana()
1191 (adj_mag_mana[p_ptr->stat_ind[A_INT]] * 85 * levels + in calc_mana()
1192 adj_mag_mana[p_ptr->stat_ind[A_WIS]] * 15 * levels) / 5000; in calc_mana()
1201 new_mana = get_skill_scale(p_ptr, SKILL_MAGIC, 200) + in calc_mana()
1202 (adj_mag_mana[p_ptr->stat_ind[A_INT]] * 35 * levels + in calc_mana()
1203 adj_mag_mana[p_ptr->stat_ind[A_WIS]] * 65 * levels) / 4000; in calc_mana()
1206 new_mana = get_skill_scale(p_ptr, SKILL_MAGIC, 200) + in calc_mana()
1207 ((p_ptr->stat_ind[A_INT] > p_ptr->stat_ind[A_WIS]) ? in calc_mana()
1208 (adj_mag_mana[p_ptr->stat_ind[A_INT]] * 100 * levels) : in calc_mana()
1209 (adj_mag_mana[p_ptr->stat_ind[A_WIS]] * 100 * levels)) / 4000; in calc_mana()
1214 new_mana = get_skill_scale(p_ptr, SKILL_MAGIC, 200) + in calc_mana()
1215 (adj_mag_mana[p_ptr->stat_ind[A_INT]] * 65 * levels + in calc_mana()
1216 adj_mag_mana[p_ptr->stat_ind[A_DEX]] * 35 * levels) / 3000; in calc_mana()
1220 …new_mana = get_skill_scale(p_ptr, SKILL_MAGIC, 200) + /* <- seems this might be important actually… in calc_mana()
1221 (adj_mag_mana[p_ptr->stat_ind[A_INT]] * 85 * levels + in calc_mana()
1222 adj_mag_mana[p_ptr->stat_ind[A_CHR]] * 10 * levels + in calc_mana()
1223 adj_mag_mana[p_ptr->stat_ind[A_WIS]] * 5 * levels) / 4000; in calc_mana()
1230 new_mana = get_skill_scale(p_ptr, SKILL_MAGIC, 200) + in calc_mana()
1231 (adj_mag_mana[p_ptr->stat_ind[A_INT]] * 50 * levels + in calc_mana()
1232 adj_mag_mana[p_ptr->stat_ind[A_WIS]] * 50 * levels) / 5500; in calc_mana()
1240 o_ptr = &p_ptr->inventory[INVEN_HANDS]; in calc_mana()
1246 if (get_skill(p_ptr, SKILL_SORCERY) || get_skill(p_ptr, SKILL_MAGERY)) { in calc_mana()
1248 p_ptr->cumber_glove = FALSE; in calc_mana()
1257 p_ptr->cumber_glove = TRUE; in calc_mana()
1266 o_ptr = &p_ptr->inventory[INVEN_HEAD]; in calc_mana()
1269 if (get_skill(p_ptr, SKILL_PPOWER) || in calc_mana()
1270 get_skill(p_ptr, SKILL_TCONTACT) || in calc_mana()
1271 get_skill(p_ptr, SKILL_MINTRUSION)) in calc_mana()
1274 p_ptr->cumber_helm = FALSE; in calc_mana()
1279 p_ptr->cumber_helm = TRUE; in calc_mana()
1293 switch(p_ptr->pclass) { in calc_mana()
1296 if (p_ptr->to_m) new_mana += new_mana * p_ptr->to_m / 100; in calc_mana()
1303 if (p_ptr->to_m) new_mana += new_mana * p_ptr->to_m / 130; in calc_mana()
1306 if (p_ptr->to_m) new_mana += new_mana * p_ptr->to_m / 200; in calc_mana()
1312 if (p_ptr->to_m) new_mana += new_mana * p_ptr->to_m / 150; in calc_mana()
1314 if (p_ptr->to_m) new_mana += new_mana * p_ptr->to_m / 100; in calc_mana()
1321 if (p_ptr->to_m) new_mana += new_mana * p_ptr->to_m / 100; in calc_mana()
1326 if (p_ptr->tim_meditation) new_mana += (new_mana * get_skill(p_ptr, SKILL_SORCERY)) / 100; in calc_mana()
1329 if (p_ptr->tim_manashield) { in calc_mana()
1336 p_ptr->awkward_armor = FALSE; in calc_mana()
1339 cur_wgt = worn_armour_weight(p_ptr); in calc_mana()
1343 switch (p_ptr->pclass) { in calc_mana()
1344 case CLASS_MAGE: max_wgt = 150 + get_skill_scale(p_ptr, SKILL_COMBAT, 150); break; in calc_mana()
1345 case CLASS_RANGER: max_wgt = 240 + get_skill_scale(p_ptr, SKILL_COMBAT, 150); break; in calc_mana()
1346 case CLASS_PRIEST: max_wgt = 250 + get_skill_scale(p_ptr, SKILL_COMBAT, 150); break; in calc_mana()
1347 case CLASS_PALADIN: max_wgt = 300 + get_skill_scale(p_ptr, SKILL_COMBAT, 150); break; in calc_mana()
1348 case CLASS_DRUID: max_wgt = 200 + get_skill_scale(p_ptr, SKILL_COMBAT, 150); break; in calc_mana()
1349 case CLASS_SHAMAN: max_wgt = 170 + get_skill_scale(p_ptr, SKILL_COMBAT, 150); break; in calc_mana()
1350 case CLASS_ROGUE: max_wgt = 200 + get_skill_scale(p_ptr, SKILL_COMBAT, 150); break; in calc_mana()
1351 case CLASS_RUNEMASTER: max_wgt = 230 + get_skill_scale(p_ptr, SKILL_COMBAT, 150); break;/*was 270*/ in calc_mana()
1352 case CLASS_MIMIC: max_wgt = 280 + get_skill_scale(p_ptr, SKILL_COMBAT, 150); break; in calc_mana()
1353 case CLASS_ADVENTURER: max_wgt = 210 + get_skill_scale(p_ptr, SKILL_COMBAT, 150); break; in calc_mana()
1355 case CLASS_MINDCRAFTER: max_wgt = 260 + get_skill_scale(p_ptr, SKILL_COMBAT, 150); break; in calc_mana()
1383 p_ptr->awkward_armor = TRUE; in calc_mana()
1393 if ((p_ptr->pclass == CLASS_WARRIOR) || in calc_mana()
1394 (p_ptr->pclass == CLASS_ARCHER)) in calc_mana()
1402 if (p_ptr->msp != new_mana) { in calc_mana()
1406 p_ptr->csp = 0; in calc_mana()
1407 p_ptr->csp_frac = 0; in calc_mana()
1411 else if (!p_ptr->msp) { in calc_mana()
1414 p_ptr->csp = new_mana; in calc_mana()
1416 p_ptr->csp_frac = 0; in calc_mana()
1425 value = ((((long)p_ptr->csp << 16) + p_ptr->csp_frac) / in calc_mana()
1426 p_ptr->msp * new_mana); in calc_mana()
1429 p_ptr->csp = (value >> 16); in calc_mana()
1430 p_ptr->csp_frac = (value & 0xFFFF); in calc_mana()
1434 p_ptr->msp = new_mana; in calc_mana()
1437 p_ptr->redraw |= (PR_MANA); in calc_mana()
1440 p_ptr->window |= (PW_PLAYER); in calc_mana()
1444 if (p_ptr->old_cumber_glove != p_ptr->cumber_glove) { in calc_mana()
1446 if (p_ptr->cumber_glove) in calc_mana()
1452 p_ptr->old_cumber_glove = p_ptr->cumber_glove; in calc_mana()
1456 if (p_ptr->old_cumber_helm != p_ptr->cumber_helm) { in calc_mana()
1458 if (p_ptr->cumber_helm) in calc_mana()
1464 p_ptr->old_cumber_helm = p_ptr->cumber_helm; in calc_mana()
1469 if (p_ptr->old_awkward_armor != p_ptr->awkward_armor) { in calc_mana()
1470 if (p_ptr->pclass != CLASS_WARRIOR && p_ptr->pclass != CLASS_ARCHER) { in calc_mana()
1472 if (p_ptr->awkward_armor) in calc_mana()
1478 p_ptr->old_awkward_armor = p_ptr->awkward_armor; in calc_mana()
1499 player_type *p_ptr = Players[Ind], *p_ptr2 = NULL; /* silence the warning */ in calc_hitpoints() local
1505 int bonus, Ind2 = 0, cr_mhp = p_ptr->cp_ptr->c_mhp + p_ptr->rp_ptr->r_mhp; in calc_hitpoints()
1515 if (p_ptr->lev <= 50) player_hp_eff = p_ptr->player_hp[p_ptr->lev - 1]; /* the usual way */ in calc_hitpoints()
1518 player_hp_eff = p_ptr->player_hp[50 - 1]; in calc_hitpoints()
1519 …if (p_ptr->lev <= 70) player_hp_eff += (p_ptr->player_hp[p_ptr->lev - 1] - p_ptr->player_hp[50 - 1… in calc_hitpoints()
1521 player_hp_eff += (p_ptr->player_hp[70 - 1] - p_ptr->player_hp[50 - 1]) / 2; in calc_hitpoints()
1522 …if (p_ptr->lev <= 85) player_hp_eff += (p_ptr->player_hp[p_ptr->lev - 1] - p_ptr->player_hp[70 - 1… in calc_hitpoints()
1524 player_hp_eff += (p_ptr->player_hp[85 - 1] - p_ptr->player_hp[70 - 1]) / 3; in calc_hitpoints()
1525 player_hp_eff += (p_ptr->player_hp[p_ptr->lev - 1] - p_ptr->player_hp[85 - 1]) / 4; in calc_hitpoints()
1531 bonus = ((int)(adj_con_mhp[p_ptr->stat_ind[A_CON]]) - 128); in calc_hitpoints()
1536 mhp = player_hp_eff + (bonus * p_ptr->lev / 2); in calc_hitpoints()
1539 bonus_cap = ((p_ptr->lev + 5) * (p_ptr->lev + 5)) / 100; in calc_hitpoints()
1572 weakling_boost = (p_ptr->lev <= 50) ? in calc_hitpoints()
1573 …(((p_ptr->lev * p_ptr->lev * p_ptr->lev) / 2500) * ((576 - cr_mhp * cr_mhp) + 105)) / 105 : /* <- … in calc_hitpoints()
1580 …((100 - p_ptr->lev) * ((576 - cr_mhp * cr_mhp) + 105)) / 105; /* <- above 50, bonus is slowly dimi… in calc_hitpoints()
1585 …mhp += (weakling_boost * 50) / ((p_ptr->pclass == CLASS_MAGE && p_ptr->lev > 50) ? p_ptr->lev : 50… in calc_hitpoints()
1594 mhp += get_skill_scale(p_ptr, SKILL_HEALTH, 100); in calc_hitpoints()
1598 if (p_ptr->prace == RACE_MAIA && (p_ptr->ptrait == TRAIT_CORRUPTED) && p_ptr->lev >= 20) { in calc_hitpoints()
1599 mhp += (p_ptr->lev - 20) * 2; in calc_hitpoints()
1610 if (p_ptr->body_monster) { in calc_hitpoints()
1611 …long rhp = ((long)(r_info[p_ptr->body_monster].hdice)) * ((long)(r_info[p_ptr->body_monster].hside… in calc_hitpoints()
1626 …mHPLim += p_ptr->lev > 50 ? (((p_ptr->lev - 50) * (r_info[p_ptr->body_monster].level + 30)) / 100)… in calc_hitpoints()
1629 raceHPbonus = mhp - ((mhp * 16) / p_ptr->hitdie); /* 10 human + 6 mimic */ in calc_hitpoints()
1639 levD = p_ptr->lev - r_info[p_ptr->body_monster].level; in calc_hitpoints()
1656 if (mhp < p_ptr->lev + 1) mhp = p_ptr->lev + 1; in calc_hitpoints()
1659 if (!p_ptr->body_monster) p_ptr->form_hp_ratio = 100; in calc_hitpoints()
1660 else p_ptr->form_hp_ratio = (mhp * 100) / mhp_playerform; in calc_hitpoints()
1663 to_life = p_ptr->to_l; in calc_hitpoints()
1667 if (p_ptr->divine_hp > 0) { in calc_hitpoints()
1669 to_life += p_ptr->divine_hp_mod; in calc_hitpoints()
1674 if (to_life > 3 && !is_admin(p_ptr)) to_life = 3; in calc_hitpoints()
1691 if (p_ptr->body_monster) { in calc_hitpoints()
1693 mhp += (p_ptr->lev > 50) ? in calc_hitpoints()
1694 (((p_ptr->lev - 50) * ((r_info[p_ptr->body_monster].level > 80 ? 80 : in calc_hitpoints()
1696 r_info[p_ptr->body_monster].level) + 30)) / 100) * 5 : 0; in calc_hitpoints()
1698 r_info[p_ptr->body_monster].level) + 30)) / 25) : 0; in calc_hitpoints()
1710 if (p_ptr->hero) mhp += 10; in calc_hitpoints()
1711 if (p_ptr->shero) mhp += 20; in calc_hitpoints()
1713 else if (p_ptr->fury) mhp += 20; in calc_hitpoints()
1714 else if (p_ptr->berserk) mhp += 20; in calc_hitpoints()
1719 if (!is_admin(p_ptr) && p_ptr->to_hp > 200) p_ptr->to_hp = 200; in calc_hitpoints()
1723 if (p_ptr->to_hp > 0) in calc_hitpoints()
1724 mhp += (mhp_playerform * p_ptr->to_hp) / mhp; in calc_hitpoints()
1726 mhp += p_ptr->to_hp; in calc_hitpoints()
1728 mhp += p_ptr->to_hp; in calc_hitpoints()
1733 if (p_ptr->tim_meditation) mhp = mhp * 3 / 5; in calc_hitpoints()
1736 if (mhp != p_ptr->mhp) { in calc_hitpoints()
1741 value = (((long)p_ptr->chp << 16) + p_ptr->chp_frac) / p_ptr->mhp; in calc_hitpoints()
1743 p_ptr->chp = (value >> 16); in calc_hitpoints()
1744 p_ptr->chp_frac = (value & 0xFFFF); in calc_hitpoints()
1747 p_ptr->mhp = mhp; in calc_hitpoints()
1750 if (p_ptr->chp > p_ptr->mhp) p_ptr->chp = p_ptr->mhp; in calc_hitpoints()
1753 p_ptr->redraw |= (PR_HP); in calc_hitpoints()
1756 p_ptr->window |= (PW_PLAYER); in calc_hitpoints()
1770 player_type *p_ptr = Players[Ind]; in calc_torch() local
1773 object_type *o_ptr = &p_ptr->inventory[INVEN_LITE]; in calc_torch()
1776 p_ptr->cur_lite = p_ptr->lite; in calc_torch()
1782 p_ptr->cur_lite += 1; in calc_torch()
1786 p_ptr->cur_lite += 2; in calc_torch()
1790 p_ptr->cur_lite += 2; in calc_torch()
1794 p_ptr->cur_lite += 3; in calc_torch()
1797 if (artifact_p(o_ptr)) p_ptr->cur_lite += 3; in calc_torch()
1802 if (p_ptr->running && p_ptr->view_reduce_lite) { in calc_torch()
1804 if (p_ptr->cur_lite > 1) p_ptr->cur_lite = 1; in calc_torch()
1805 if (p_ptr->cur_vlite > 1) p_ptr->cur_vlite = 1; in calc_torch()
1809 if ((p_ptr->old_lite != p_ptr->cur_lite) || (p_ptr->old_vlite != p_ptr->cur_vlite)) { in calc_torch()
1811 p_ptr->update |= (PU_LITE); in calc_torch()
1814 p_ptr->update |= (PU_MONSTERS); in calc_torch()
1817 p_ptr->old_lite = p_ptr->cur_lite; in calc_torch()
1818 p_ptr->old_vlite = p_ptr->cur_vlite; in calc_torch()
1829 player_type *p_ptr = Players[Ind]; in weight_limit() local
1834 i = adj_str_wgt[p_ptr->stat_ind[A_STR]] * 100; in weight_limit()
1843 player_type *p_ptr = Players[Ind]; in calc_body_bonus() local
1844 dun_level *l_ptr = getfloor(&p_ptr->wpos); in calc_body_bonus()
1846 if (!(zcave = getcave(&p_ptr->wpos))) return; in calc_body_bonus()
1850 monster_race *r_ptr = &r_info[p_ptr->body_monster]; in calc_body_bonus()
1854 if (!p_ptr->body_monster) return; in calc_body_bonus()
1865 Rand_value = p_ptr->mimic_seed; in calc_body_bonus()
1868 if (!r_ptr->body_parts[BODY_WEAPON]) p_ptr->num_blow = 1; in calc_body_bonus()
1879 p_ptr->hold_life = TRUE; in calc_body_bonus()
1883 p_ptr->stat_add[A_STR]++; in calc_body_bonus()
1887 p_ptr->sustain_str = TRUE; in calc_body_bonus()
1891 p_ptr->sustain_int = TRUE; in calc_body_bonus()
1895 p_ptr->sustain_wis = TRUE; in calc_body_bonus()
1899 p_ptr->sustain_dex = TRUE; in calc_body_bonus()
1903 p_ptr->sustain_con = TRUE; in calc_body_bonus()
1907 p_ptr->sustain_chr = TRUE; in calc_body_bonus()
1911 p_ptr->sustain_str = TRUE; in calc_body_bonus()
1913 p_ptr->sustain_int = TRUE; in calc_body_bonus()
1915 p_ptr->sustain_wis = TRUE; in calc_body_bonus()
1917 p_ptr->sustain_dex = TRUE; in calc_body_bonus()
1919 p_ptr->sustain_con = TRUE; in calc_body_bonus()
1921 p_ptr->sustain_chr = TRUE; in calc_body_bonus()
1948 p_ptr->stat_add[A_STR] += i; in calc_body_bonus()
1952 if (r_ptr->d_char == 'f') { p_ptr->stat_add[A_DEX] += 2; csheet_boni->pdex += 2; }/* Cats! */ in calc_body_bonus()
1954 if (r_ptr->level >= 23) { p_ptr->stat_add[A_DEX] += 2; csheet_boni->pdex += 2; } in calc_body_bonus()
1955 else { p_ptr->stat_add[A_DEX]++; csheet_boni->pdex++; } in calc_body_bonus()
1957 …if (r_ptr->d_char == 'p' && r_ptr->d_attr == TERM_UMBER && strstr(mname, "master")) { p_ptr->stat_… in calc_body_bonus()
1958 …if (r_ptr->d_char == 'p' && r_ptr->d_attr == TERM_ORANGE) { p_ptr->stat_add[A_DEX] += 2; csheet_bo… in calc_body_bonus()
1959 if (p_ptr->body_monster == 370) { p_ptr->stat_add[A_DEX]++; csheet_boni->pdex++; }/* Jade Monk */ in calc_body_bonus()
1960 if (p_ptr->body_monster == 492) { p_ptr->stat_add[A_DEX]++; csheet_boni->pdex++; }/* Ivory Monk */ in calc_body_bonus()
1961 if (p_ptr->body_monster == 532) { p_ptr->stat_add[A_DEX]++; csheet_boni->pdex++; }/* Dagashi */ in calc_body_bonus()
1962 …if (p_ptr->body_monster == 485) { p_ptr->stat_add[A_DEX] += 2; csheet_boni->pdex += 2; } /* Ninja … in calc_body_bonus()
1966 p_ptr->pspeed = 110 - (((110 - r_ptr->speed) * 20) / 100); in calc_body_bonus()
1973p_ptr->pspeed = (((r_ptr->speed - 110 - (p_ptr->prace == RACE_ENT ? 2 : 0) ) * 30) / 100) + 110;//… in calc_body_bonus()
1975 csheet_boni->spd = p_ptr->pspeed - 110; in calc_body_bonus()
1980 p_ptr->skill_srh /= 2; in calc_body_bonus()
1981 p_ptr->skill_srh += r_ptr->aaf / 10; in calc_body_bonus()
1984 p_ptr->skill_fos /= 2; in calc_body_bonus()
1985 p_ptr->skill_fos += r_ptr->aaf / 10; in calc_body_bonus()
1988 p_ptr->skill_srh += r_ptr->aaf / 20 - 5; in calc_body_bonus()
1991 p_ptr->skill_fos += r_ptr->aaf / 20 - 5; in calc_body_bonus()
1996 if (r_ptr->weight <= 500) { p_ptr->skill_stl += 2; csheet_boni->slth += 2; } in calc_body_bonus()
1997 else if (r_ptr->weight <= 500) { p_ptr->skill_stl += 2; csheet_boni->slth += 2; } in calc_body_bonus()
1998 else if (r_ptr->weight <= 1000) { p_ptr->skill_stl += 1; csheet_boni->slth += 1; } in calc_body_bonus()
1999 else if (r_ptr->weight <= 1500) { p_ptr->skill_stl += 0; csheet_boni->slth += 0; } in calc_body_bonus()
2000 else if (r_ptr->weight <= 4500) { p_ptr->skill_stl -= 1; csheet_boni->slth -= 1; } in calc_body_bonus()
2001 else if (r_ptr->weight <= 20000) { p_ptr->skill_stl -= 2; csheet_boni->slth -= 2; } in calc_body_bonus()
2002 else if (r_ptr->weight <= 100000) { p_ptr->skill_stl -= 3; csheet_boni->slth -= 3; } in calc_body_bonus()
2003 else { p_ptr->skill_stl -= 4; csheet_boni->slth -= 4; } in calc_body_bonus()
2012 (p_ptr->inventory[INVEN_BOW].k_idx) && (p_ptr->inventory[INVEN_BOW].tval == TV_BOW)) in calc_body_bonus()
2016 if ((p_ptr->inventory[INVEN_BOW].sval == SV_SLING) || in calc_body_bonus()
2017 (p_ptr->inventory[INVEN_BOW].sval == SV_SHORT_BOW) || in calc_body_bonus()
2018 (p_ptr->inventory[INVEN_BOW].sval == SV_LONG_BOW)) p_ptr->num_fire++; in calc_body_bonus()
2019 if (r_ptr->freq_innate > 30) p_ptr->num_fire++; /* this time for crossbows too */ in calc_body_bonus()
2022 if ((p_ptr->inventory[INVEN_BOW].sval == SV_SLING) || in calc_body_bonus()
2023 (p_ptr->inventory[INVEN_BOW].sval == SV_SHORT_BOW) || in calc_body_bonus()
2024 (p_ptr->inventory[INVEN_BOW].sval == SV_LONG_BOW)) p_ptr->num_fire++; in calc_body_bonus()
2025 p_ptr->num_fire++; /* this time for crossbows too */ in calc_body_bonus()
2028 if ((p_ptr->inventory[INVEN_BOW].sval == SV_SLING) || in calc_body_bonus()
2029 (p_ptr->inventory[INVEN_BOW].sval == SV_SHORT_BOW) || in calc_body_bonus()
2030 (p_ptr->inventory[INVEN_BOW].sval == SV_LONG_BOW)) { p_ptr->num_fire++; csheet_boni->shot++; } in calc_body_bonus()
2032 { p_ptr->num_fire++; csheet_boni->shot++; } /* this time for crossbows too */ in calc_body_bonus()
2041 p_ptr->num_spell++; // 1_IN_3 in calc_body_bonus()
2042 p_ptr->stat_add[A_INT] += 1; csheet_boni->pint += 1; in calc_body_bonus()
2043 p_ptr->to_m += 20; csheet_boni->mxmp += 2; in calc_body_bonus()
2046 p_ptr->num_spell++; // 1_IN_2 in calc_body_bonus()
2047 p_ptr->stat_add[A_INT] += 2; csheet_boni->pint += 2; in calc_body_bonus()
2048 p_ptr->to_m += 15; csheet_boni->mxmp += 1; in calc_body_bonus()
2051 p_ptr->num_spell++; // 1_IN_1 in calc_body_bonus()
2052 p_ptr->stat_add[A_INT] += 1; csheet_boni->pint += 1; in calc_body_bonus()
2053 p_ptr->to_m += 15; csheet_boni->mxmp += 2; in calc_body_bonus()
2059 switch(p_ptr->body_monster) { in calc_body_bonus()
2063 p_ptr->feather_fall = TRUE; in calc_body_bonus()
2066 if (p_ptr->body_monster == 391) { p_ptr->vampiric_melee = 100; csheet_boni->cb[6] |= CB7_RVAMP; } in calc_body_bonus()
2069 …if (p_ptr->body_monster == 37 && p_ptr->vampiric_melee < 50) { p_ptr->vampiric_melee = 50; csheet_… in calc_body_bonus()
2074 p_ptr->vampiric_melee = 100; csheet_boni->cb[6] |= CB7_RVAMP; in calc_body_bonus()
2077 if (p_ptr->vampiric_melee < 50) p_ptr->vampiric_melee = 50; in calc_body_bonus()
2084 p_ptr->resist_dark = TRUE; csheet_boni->cb[2] |= CB3_RDARK; in calc_body_bonus()
2087 p_ptr->resist_lite = TRUE; csheet_boni->cb[2] |= CB3_RLITE; in calc_body_bonus()
2092 if (!p_ptr->inventory[INVEN_FEET].k_idx) in calc_body_bonus()
2093 { p_ptr->stat_add[A_DEX] += 2; csheet_boni->pdex += 2; } in calc_body_bonus()
2098 p_ptr->free_act = TRUE; csheet_boni->cb[4] |= CB5_RPARA; in calc_body_bonus()
2103 p_ptr->resist_blind = TRUE; csheet_boni->cb[4] |= CB5_RBLND; in calc_body_bonus()
2104 if (p_ptr->lev >= 30) { p_ptr->climb = TRUE; csheet_boni->cb[6] |= CB7_RCLMB; } in calc_body_bonus()
2109 p_ptr->resist_lite = TRUE; csheet_boni->cb[2] |= CB3_RLITE; in calc_body_bonus()
2110 p_ptr->see_inv = TRUE; csheet_boni->cb[5] |= CB6_RSINV; in calc_body_bonus()
2115 p_ptr->feather_fall = TRUE; csheet_boni->cb[4] |= CB5_RFALL; in calc_body_bonus()
2120 p_ptr->slow_digest = TRUE; csheet_boni->cb[4] |= CB5_RFOOD; in calc_body_bonus()
2122 p_ptr->pspeed -= 2; in calc_body_bonus()
2123 p_ptr->suscep_fire = TRUE; csheet_boni->cb[0] |= CB1_SFIRE; in calc_body_bonus()
2124 p_ptr->resist_water = TRUE; csheet_boni->cb[2] |= CB3_RWATR; in calc_body_bonus()
2126 p_ptr->can_swim = TRUE; csheet_boni->cb[12] |= CB13_XSWIM; /* wood? */ in calc_body_bonus()
2127 p_ptr->pass_trees = TRUE; csheet_boni->cb[12] |= CB13_XTREE; in calc_body_bonus()
2139 p_ptr->see_inv = TRUE; csheet_boni->cb[5] |= CB6_RSINV; in calc_body_bonus()
2145 if (p_ptr->vampiric_melee < 50) { p_ptr->vampiric_melee = 50; csheet_boni->cb[6] |= CB7_RVAMP; } in calc_body_bonus()
2146 p_ptr->suscep_lite = TRUE; csheet_boni->cb[1] |= CB2_SLITE; in calc_body_bonus()
2152 p_ptr->see_inv = TRUE; csheet_boni->cb[5] |= CB6_RSINV; in calc_body_bonus()
2155 p_ptr->resist_blind = TRUE; csheet_boni->cb[4] |= CB5_RBLND; in calc_body_bonus()
2164 { p_ptr->cur_lite += 1; csheet_boni->lite += 1; } in calc_body_bonus()
2168 { p_ptr->pass_trees = TRUE; csheet_boni->cb[12] |= CB13_XTREE; } in calc_body_bonus()
2172 { p_ptr->climb = TRUE; csheet_boni->cb[6] |= CB7_RCLMB; } in calc_body_bonus()
2174 if (r_ptr->flags7 & RF7_SPIDER) { p_ptr->climb = TRUE; csheet_boni->cb[6] |= CB7_RCLMB; } in calc_body_bonus()
2177 if(r_ptr->flags3 & RF3_ORC) { p_ptr->resist_dark = TRUE; csheet_boni->cb[2] |= CB3_RDARK; } in calc_body_bonus()
2180 …if ((r_ptr->flags3 & RF3_TROLL) || (r_ptr->flags3 & RF3_GIANT)) { p_ptr->sustain_str = TRUE; cshee… in calc_body_bonus()
2184 p_ptr->feather_fall = TRUE; csheet_boni->cb[4] |= CB5_RFALL; in calc_body_bonus()
2185 if (p_ptr->lev >= 5) { p_ptr->telepathy |= ESP_DRAGON; csheet_boni->cb[8] |= CB9_EDRGN; } in calc_body_bonus()
2186 if (p_ptr->lev >= 30) { p_ptr->levitate = TRUE; csheet_boni->cb[6] |= CB7_RRLEV; } in calc_body_bonus()
2201 p_ptr->resist_pois = TRUE; csheet_boni->cb[1] |= CB2_RPOIS; in calc_body_bonus()
2202 p_ptr->resist_dark = TRUE; csheet_boni->cb[2] |= CB3_RDARK; in calc_body_bonus()
2203 p_ptr->resist_blind = TRUE; csheet_boni->cb[4] |= CB5_RBLND; in calc_body_bonus()
2204 p_ptr->no_cut = TRUE; csheet_boni->cb[12] |= CB13_XNCUT; in calc_body_bonus()
2205 p_ptr->reduce_insanity = 1; csheet_boni->cb[3] |= CB4_RMIND; in calc_body_bonus()
2206 p_ptr->see_infra += 1; csheet_boni->infr += 1; in calc_body_bonus()
2209 p_ptr->see_infra += 4; csheet_boni->infr += 4; in calc_body_bonus()
2215 p_ptr->resist_pois = TRUE; csheet_boni->cb[1] |= CB2_RPOIS; in calc_body_bonus()
2216 p_ptr->resist_fear = TRUE; csheet_boni->cb[4] |= CB5_RFEAR; in calc_body_bonus()
2217 p_ptr->reduce_insanity = 2; csheet_boni->cb[3] |= CB4_RMIND; in calc_body_bonus()
2221 …if ((r_ptr->d_char == 'U') && (r_ptr->flags3 & RF3_DEMON)) { p_ptr->resist_pois = TRUE; csheet_bon… in calc_body_bonus()
2246 p_ptr->stat_add[A_CHR] += d; csheet_boni->pchr += d; in calc_body_bonus()
2250 if (r_ptr->flags2 & RF2_STUPID) { p_ptr->stat_add[A_INT] -= 2; csheet_boni->pint -= 2; } in calc_body_bonus()
2251 if (r_ptr->flags2 & RF2_SMART) { p_ptr->stat_add[A_INT] += 2; csheet_boni->pint += 2; } in calc_body_bonus()
2253 d = ((r_ptr->level > 100 ? 50 : r_ptr->level / 2) + (p_ptr->lev > 50 ? 50 : p_ptr->lev)) / 2; in calc_body_bonus()
2254 p_ptr->tim_invis_power = d * 4 / 5; csheet_boni->cb[6] |= CB7_RINVS; in calc_body_bonus()
2256 if (r_ptr->flags2 & RF2_REGENERATE) { p_ptr->regenerate = TRUE; csheet_boni->cb[5] |= CB6_RRGHP; } in calc_body_bonus()
2259 if (!(zcave[p_ptr->py][p_ptr->px].info & CAVE_STCK) && in calc_body_bonus()
2260 !(p_ptr->wpos.wz && (l_ptr->flags1 & LF1_NO_MAGIC))) in calc_body_bonus()
2263 p_ptr->tim_wraith = 30000; csheet_boni->cb[5] |= CB6_RWRTH; in calc_body_bonus()
2265 p_ptr->drain_life++; csheet_boni->cb[5] |= CB6_SRGHP; in calc_body_bonus()
2267 …if (r_ptr->flags2 & RF2_KILL_WALL) { p_ptr->auto_tunnel = TRUE; csheet_boni->cb[12] |= CB13_XWALL;… in calc_body_bonus()
2268 …if (r_ptr->flags2 & RF2_AURA_FIRE) { p_ptr->sh_fire = p_ptr->sh_fire_fix = TRUE; csheet_boni->cb[1… in calc_body_bonus()
2269 …if (r_ptr->flags2 & RF2_AURA_ELEC) { p_ptr->sh_elec = p_ptr->sh_elec_fix = TRUE; csheet_boni->cb[1… in calc_body_bonus()
2270 …if (r_ptr->flags3 & RF3_AURA_COLD) { p_ptr->sh_cold = p_ptr->sh_cold_fix = TRUE; csheet_boni->cb[1… in calc_body_bonus()
2272 …if (r_ptr->flags5 & RF5_MIND_BLAST) { p_ptr->reduce_insanity = 1; csheet_boni->cb[3] |= CB4_RMIND;… in calc_body_bonus()
2273 …if (r_ptr->flags5 & RF5_BRAIN_SMASH) { p_ptr->reduce_insanity = 2; csheet_boni->cb[3] |= CB4_RMIND… in calc_body_bonus()
2275 …if (r_ptr->flags3 & RF3_SUSCEP_FIRE) { p_ptr->suscep_fire = TRUE; csheet_boni->cb[0] |= CB1_SFIRE;… in calc_body_bonus()
2276 …if (r_ptr->flags3 & RF3_SUSCEP_COLD) { p_ptr->suscep_cold = TRUE; csheet_boni->cb[0] |= CB1_SCOLD;… in calc_body_bonus()
2280 …if (r_ptr->flags9 & RF9_SUSCEP_ELEC) { p_ptr->suscep_elec = TRUE; csheet_boni->cb[0] |= CB1_SELEC;… in calc_body_bonus()
2281 …if (r_ptr->flags9 & RF9_SUSCEP_ACID) { p_ptr->suscep_acid = TRUE; csheet_boni->cb[1] |= CB2_SACID;… in calc_body_bonus()
2282 …if (r_ptr->flags9 & RF9_SUSCEP_POIS) { p_ptr->suscep_pois = TRUE; csheet_boni->cb[1] |= CB2_SPOIS;… in calc_body_bonus()
2284 if (r_ptr->flags9 & RF9_RES_ACID) { p_ptr->resist_acid = TRUE; csheet_boni->cb[1] |= CB2_RACID; } in calc_body_bonus()
2285 if (r_ptr->flags9 & RF9_RES_ELEC) { p_ptr->resist_elec = TRUE; csheet_boni->cb[0] |= CB1_RELEC; } in calc_body_bonus()
2286 if (r_ptr->flags9 & RF9_RES_FIRE) { p_ptr->resist_fire = TRUE; csheet_boni->cb[0] |= CB1_RFIRE; } in calc_body_bonus()
2287 if (r_ptr->flags9 & RF9_RES_COLD) { p_ptr->resist_cold = TRUE; csheet_boni->cb[0] |= CB1_RCOLD; } in calc_body_bonus()
2288 if (r_ptr->flags9 & RF9_RES_POIS) { p_ptr->resist_pois = TRUE; csheet_boni->cb[1] |= CB2_RPOIS; } in calc_body_bonus()
2290 if (r_ptr->flags3 & RF3_HURT_LITE) { p_ptr->suscep_lite = TRUE; csheet_boni->cb[1] |= CB2_SLITE; } in calc_body_bonus()
2292 if (r_ptr->flags3 & RF3_EVIL) p_ptr->suscep_good = TRUE; in calc_body_bonus()
2294 if (r_ptr->flags3 & RF3_DEMON || r_ptr->flags3 & RF3_UNDEAD) p_ptr->suscep_good = TRUE; in calc_body_bonus()
2296 if (r_ptr->flags3 & RF3_UNDEAD) p_ptr->suscep_life = TRUE; in calc_body_bonus()
2297 if (r_ptr->flags3 & RF3_GOOD) p_ptr->suscep_evil = TRUE; in calc_body_bonus()
2304 p_ptr->resist_acid = TRUE; csheet_boni->cb[1] |= CB2_RACID; in calc_body_bonus()
2309 p_ptr->resist_elec = TRUE; csheet_boni->cb[0] |= CB1_RELEC; in calc_body_bonus()
2314 p_ptr->resist_fire = TRUE; csheet_boni->cb[0] |= CB1_RFIRE; in calc_body_bonus()
2319 p_ptr->resist_cold = TRUE; csheet_boni->cb[0] |= CB1_RCOLD; in calc_body_bonus()
2324 p_ptr->resist_pois = TRUE; csheet_boni->cb[1] |= CB2_RPOIS; in calc_body_bonus()
2329 p_ptr->resist_water = TRUE; csheet_boni->cb[2] |= CB3_RWATR; in calc_body_bonus()
2334 if (r_ptr->flags3 & RF3_IM_ACID) { p_ptr->immune_acid = TRUE; csheet_boni->cb[1] |= CB2_IACID; } in calc_body_bonus()
2335 if (r_ptr->flags3 & RF3_IM_ELEC) { p_ptr->immune_elec = TRUE; csheet_boni->cb[1] |= CB2_IELEC; } in calc_body_bonus()
2336 if (r_ptr->flags3 & RF3_IM_FIRE) { p_ptr->immune_fire = TRUE; csheet_boni->cb[0] |= CB1_IFIRE; } in calc_body_bonus()
2337 if (r_ptr->flags3 & RF3_IM_COLD) { p_ptr->immune_cold = TRUE; csheet_boni->cb[0] |= CB1_ICOLD; } in calc_body_bonus()
2338 if (r_ptr->flags3 & RF3_IM_POIS) { p_ptr->immune_poison = TRUE; csheet_boni->cb[1] |= CB2_IPOIS; } in calc_body_bonus()
2339 if (r_ptr->flags9 & RF9_IM_WATER) { p_ptr->immune_water = TRUE; csheet_boni->cb[2] |= CB3_IWATR; } in calc_body_bonus()
2343 switch (p_ptr->mimic_immunity) { in calc_body_bonus()
2364 if (immunity[immrand] == 1) { p_ptr->immune_acid = TRUE; csheet_boni->cb[1] |= CB2_IACID; } in calc_body_bonus()
2365 if (immunity[immrand] == 2) { p_ptr->immune_elec = TRUE; csheet_boni->cb[1] |= CB2_IELEC; } in calc_body_bonus()
2366 if (immunity[immrand] == 3) { p_ptr->immune_fire = TRUE; csheet_boni->cb[0] |= CB1_IFIRE; } in calc_body_bonus()
2367 if (immunity[immrand] == 4) { p_ptr->immune_cold = TRUE; csheet_boni->cb[0] |= CB1_ICOLD; } in calc_body_bonus()
2368 if (immunity[immrand] == 5) { p_ptr->immune_poison = TRUE; csheet_boni->cb[1] |= CB2_IPOIS; } in calc_body_bonus()
2369 if (immunity[immrand] == 6) { p_ptr->immune_water = TRUE; csheet_boni->cb[2] |= CB3_IWATR; } in calc_body_bonus()
2372 if (r_ptr->flags9 & RF9_RES_LITE) { p_ptr->resist_lite = TRUE; csheet_boni->cb[2] |= CB3_RLITE; } in calc_body_bonus()
2373 if (r_ptr->flags9 & RF9_RES_DARK) { p_ptr->resist_dark = TRUE; csheet_boni->cb[2] |= CB3_RDARK; } in calc_body_bonus()
2374 if (r_ptr->flags9 & RF9_RES_BLIND) { p_ptr->resist_blind = TRUE; csheet_boni->cb[4] |= CB5_RBLND; } in calc_body_bonus()
2375 if (r_ptr->flags9 & RF9_RES_SOUND) { p_ptr->resist_sound = TRUE; csheet_boni->cb[2] |= CB3_RSOUN; } in calc_body_bonus()
2376 if (r_ptr->flags3 & RF3_RES_PLAS) { p_ptr->resist_plasma = TRUE; csheet_boni->cb[2] |= CB3_RPLAS; } in calc_body_bonus()
2377 if (r_ptr->flags9 & RF9_RES_CHAOS) { p_ptr->resist_chaos = TRUE; csheet_boni->cb[3] |= CB4_RCHAO; } in calc_body_bonus()
2378 if (r_ptr->flags9 & RF9_RES_TIME) { p_ptr->resist_time = TRUE; csheet_boni->cb[3] |= CB4_RTIME; } in calc_body_bonus()
2379 if (r_ptr->flags9 & RF9_RES_MANA) { p_ptr->resist_mana = TRUE; csheet_boni->cb[3] |= CB4_RMANA; } in calc_body_bonus()
2381 { p_ptr->resist_shard = TRUE; csheet_boni->cb[2] |= CB3_RSHRD; } in calc_body_bonus()
2383 if (r_ptr->flags3 & RF3_RES_TELE) { p_ptr->res_tele = TRUE; csheet_boni->cb[4] |= CB5_RTELE; } in calc_body_bonus()
2384 if (r_ptr->flags9 & RF9_IM_TELE) { p_ptr->res_tele = TRUE; csheet_boni->cb[4] |= CB5_RTELE; } in calc_body_bonus()
2386 p_ptr->resist_fire = TRUE; csheet_boni->cb[0] |= CB1_RFIRE; in calc_body_bonus()
2389 if (r_ptr->flags3 & RF3_RES_WATE) { p_ptr->resist_water = TRUE; csheet_boni->cb[2] |= CB3_RWATR; } in calc_body_bonus()
2390 if (r_ptr->flags3 & RF3_RES_NETH) { p_ptr->resist_neth = TRUE; csheet_boni->cb[3] |= CB4_RNETH; } in calc_body_bonus()
2391 if (r_ptr->flags3 & RF3_RES_NEXU) { p_ptr->resist_nexus = TRUE; csheet_boni->cb[3] |= CB4_RNEXU; } in calc_body_bonus()
2392 if (r_ptr->flags3 & RF3_RES_DISE) { p_ptr->resist_disen = TRUE; csheet_boni->cb[3] |= CB4_RDISE; } in calc_body_bonus()
2393 if (r_ptr->flags3 & RF3_NO_FEAR) { p_ptr->resist_fear = TRUE; csheet_boni->cb[4] |= CB5_RFEAR; } in calc_body_bonus()
2394 if (r_ptr->flags3 & RF3_NO_SLEEP) { p_ptr->free_act = TRUE; csheet_boni->cb[4] |= CB5_RPARA; } in calc_body_bonus()
2395 if (r_ptr->flags3 & RF3_NO_CONF) { p_ptr->resist_conf = TRUE; csheet_boni->cb[2] |= CB3_RCONF; } in calc_body_bonus()
2396 if (r_ptr->flags3 & RF3_NO_STUN) { p_ptr->resist_sound = TRUE; csheet_boni->cb[2] |= CB3_RSOUN; } in calc_body_bonus()
2397 if (r_ptr->flags8 & RF8_NO_CUT) { p_ptr->no_cut = TRUE; csheet_boni->cb[12] |= CB13_XNCUT; } in calc_body_bonus()
2399 p_ptr->levitate = TRUE; csheet_boni->cb[6] |= CB7_RRLEV; in calc_body_bonus()
2400 p_ptr->feather_fall = TRUE; csheet_boni->cb[4] |= CB5_RFALL; in calc_body_bonus()
2402 if (r_ptr->flags7 & RF7_CAN_SWIM) { p_ptr->can_swim = TRUE; csheet_boni->cb[12] |= CB13_XSWIM; } in calc_body_bonus()
2403 if (r_ptr->flags2 & RF2_REFLECTING) { p_ptr->reflect = TRUE; csheet_boni->cb[6] |= CB7_RREFL; } in calc_body_bonus()
2406 p_ptr->antimagic += r_ptr->level / 2 + 20; csheet_boni->amfi += r_ptr->level / 2 + 20; in calc_body_bonus()
2407 p_ptr->antimagic_dis += r_ptr->level / 15 + 3; in calc_body_bonus()
2409 p_ptr->antimagic += r_ptr->level / 2 + 10; csheet_boni->amfi += r_ptr->level / 2 + 10; in calc_body_bonus()
2410 p_ptr->antimagic_dis += r_ptr->level / 50 + 2; in calc_body_bonus()
2416 { p_ptr->reduce_insanity = 1; csheet_boni->cb[3] |= CB4_RMIND; } in calc_body_bonus()
2419 { p_ptr->reduce_insanity = 2; csheet_boni->cb[3] |= CB4_RMIND; } in calc_body_bonus()
2422 if (r_ptr->flags4 & RF4_BR_LITE) { p_ptr->resist_lite = TRUE; csheet_boni->cb[2] |= CB3_RLITE; } in calc_body_bonus()
2423 if (r_ptr->flags4 & RF4_BR_DARK) { p_ptr->resist_dark = TRUE; csheet_boni->cb[2] |= CB3_RDARK; } in calc_body_bonus()
2425 if (r_ptr->flags4 & RF4_BR_SOUN) { p_ptr->resist_sound = TRUE; csheet_boni->cb[2] |= CB3_RSOUN; } in calc_body_bonus()
2426 if (r_ptr->flags4 & RF4_BR_SHAR) { p_ptr->resist_shard = TRUE; csheet_boni->cb[2] |= CB3_RSHRD; } in calc_body_bonus()
2427 if (r_ptr->flags4 & RF4_BR_CHAO) { p_ptr->resist_chaos = TRUE; csheet_boni->cb[3] |= CB4_RCHAO; } in calc_body_bonus()
2428 if (r_ptr->flags4 & RF4_BR_TIME) { p_ptr->resist_time = TRUE; csheet_boni->cb[3] |= CB4_RTIME; } in calc_body_bonus()
2429 if (r_ptr->flags4 & RF4_BR_MANA) { p_ptr->resist_mana = TRUE; csheet_boni->cb[3] |= CB4_RMANA; } in calc_body_bonus()
2431 p_ptr->resist_fire = TRUE; csheet_boni->cb[0] |= CB1_RFIRE; in calc_body_bonus()
2435 if (r_ptr->flags7 & RF7_AQUATIC) { p_ptr->resist_water = TRUE; csheet_boni->cb[2] |= CB3_RWATR; } in calc_body_bonus()
2436 if (r_ptr->flags4 & RF4_BR_NETH) { p_ptr->resist_neth = TRUE; csheet_boni->cb[3] |= CB4_RNETH; } in calc_body_bonus()
2438 if (r_ptr->flags4 & RF4_BR_NEXU) { p_ptr->resist_nexus = TRUE; csheet_boni->cb[3] |= CB4_RNEXU; } in calc_body_bonus()
2439 if (r_ptr->flags4 & RF4_BR_DISE) { p_ptr->resist_disen = TRUE; csheet_boni->cb[3] |= CB4_RDISE; } in calc_body_bonus()
2442 if (r_ptr->flags4 & RF4_BR_GRAV) { p_ptr->feather_fall = TRUE; csheet_boni->cb[4] |= CB5_RFALL; } in calc_body_bonus()
2443 if (r_ptr->flags4 & RF4_BR_INER) { p_ptr->free_act = TRUE; csheet_boni->cb[4] |= CB5_RPARA; } in calc_body_bonus()
2446 if (!p_ptr->body_changed) { in calc_body_bonus()
2451 p_ptr->body_changed = FALSE; in calc_body_bonus()
2459 if (!(r_ptr->flags2 & RF2_PASS_WALL) && p_ptr->tim_wraith) in calc_body_bonus()
2460 p_ptr->tim_wraith = 1; in calc_body_bonus()
2471 player_type *p_ptr = Players[Ind]; in calc_body_spells() local
2475 if (!p_ptr->body_monster) return; in calc_body_spells()
2477 r_ptr = &r_info[p_ptr->body_monster]; in calc_body_spells()
2479 p_ptr->innate_spells[0] = r_ptr->flags4 & RF4_PLAYER_SPELLS; in calc_body_spells()
2480 p_ptr->innate_spells[1] = r_ptr->flags5 & RF5_PLAYER_SPELLS; in calc_body_spells()
2481 p_ptr->innate_spells[2] = r_ptr->flags6 & RF6_PLAYER_SPELLS; in calc_body_spells()
2488 player_type *p_ptr = Players[Ind];
2492 if (!get_skill(p_ptr, SKILL_MARTIAL_ARTS)) return FALSE;
2495 monk_arm_wgt = armour_weight(p_ptr);
2497 monk_arm_wgt += p_ptr->inventory[INVEN_BODY].weight;
2498 monk_arm_wgt += p_ptr->inventory[INVEN_HEAD].weight;
2499 monk_arm_wgt += p_ptr->inventory[INVEN_ARM].weight;
2500 monk_arm_wgt += p_ptr->inventory[INVEN_OUTER].weight;
2501 monk_arm_wgt += p_ptr->inventory[INVEN_HANDS].weight;
2502 monk_arm_wgt += p_ptr->inventory[INVEN_FEET].weight;
2506 return (monk_arm_wgt > 50 + get_skill_scale(p_ptr, SKILL_MARTIAL_ARTS, 200));
2512 int get_weaponmastery_skill(player_type *p_ptr, object_type *o_ptr) { in get_weaponmastery_skill() argument
2542 int get_archery_skill(player_type *p_ptr) { in get_archery_skill() argument
2546 o_ptr = &p_ptr->inventory[INVEN_BOW]; in get_archery_skill()
2574 player_type *p_ptr = Players[Ind]; in calc_blows_obj() local
2586 …if ((!p_ptr->inventory[INVEN_ARM].k_idx || /* don't forget dual-wield.. weapon might be in the oth… in calc_blows_obj()
2587 (!p_ptr->inventory[INVEN_WIELD].k_idx && p_ptr->inventory[INVEN_ARM].tval != TV_SHIELD)) && in calc_blows_obj()
2593 switch (p_ptr->pclass) { in calc_blows_obj()
2643 str_adj = adj_str_blow[p_ptr->stat_ind[A_STR]]; in calc_blows_obj()
2651 dex_index = (adj_dex_blow[p_ptr->stat_ind[A_DEX]]); in calc_blows_obj()
2666 if (get_weaponmastery_skill(p_ptr, o_ptr) != -1) in calc_blows_obj()
2667 num_blow += get_skill_scale(p_ptr, get_weaponmastery_skill(p_ptr, o_ptr), 2); in calc_blows_obj()
2698 player_type *p_ptr = Players[Ind]; in calc_blows_weapons() local
2704 …if (p_ptr->inventory[INVEN_WIELD].k_idx) blows1 = calc_blows_obj(Ind, &p_ptr->inventory[INVEN_WIEL… in calc_blows_weapons()
2705 …else if (p_ptr->inventory[INVEN_ARM].k_idx) blows1 = calc_blows_obj(Ind, &p_ptr->inventory[INVEN_A… in calc_blows_weapons()
2706 if (p_ptr->dual_wield) blows2 = calc_blows_obj(Ind, &p_ptr->inventory[INVEN_ARM]); in calc_blows_weapons()
2713 if (p_ptr->dual_wield && p_ptr->dual_mode) num_blow = (blows1 + blows2) / 2; in calc_blows_weapons()
2715 if (p_ptr->dual_wield && p_ptr->dual_mode) num_blow = (blows1 + blows2 + 1) / 2; in calc_blows_weapons()
2717 if (p_ptr->dual_wield && p_ptr->dual_mode) { in calc_blows_weapons()
2718 if (!p_ptr->rogue_heavyarmor) num_blow = (blows1 + blows2 + 1) / 2; in calc_blows_weapons()
2726 if (!p_ptr->rogue_heavyarmor && p_ptr->dual_wield && p_ptr->dual_mode) in calc_blows_weapons()
2793 player_type *p_ptr = Players[Ind]; local
2794 dun_level *l_ptr = getfloor(&p_ptr->wpos);
2805 if (!(zcave = getcave(&p_ptr->wpos))) {
2807 p_ptr->update |= PU_BONUS;
2867 monster_race *r_ptr = &r_info[p_ptr->body_monster];
2872 bool old_auto_id = p_ptr->auto_id;
2873 bool old_dual_wield = p_ptr->dual_wield;
2893 old_speed = p_ptr->pspeed;
2896 old_telepathy = p_ptr->telepathy;
2897 old_see_inv = p_ptr->see_inv;
2900 old_dis_ac = p_ptr->dis_ac;
2901 old_dis_to_a = p_ptr->dis_to_a;
2904 old_dis_to_h = p_ptr->dis_to_h;
2905 old_dis_to_d = p_ptr->dis_to_d;
2907 old_to_h_melee = p_ptr->to_h_melee;
2908 old_to_d_melee = p_ptr->to_d_melee;
2915 for (i = 0; i < 6; i++) p_ptr->stat_add[i] = 0;
2918 if (p_ptr->xtrastat > 0) {
2919 p_ptr->stat_add[A_STR] = p_ptr->xstr;
2920 p_ptr->stat_add[A_INT] = p_ptr->xint;
2921 p_ptr->stat_add[A_DEX] = p_ptr->xdex;
2922 p_ptr->stat_add[A_CON] = p_ptr->xcon;
2923 p_ptr->stat_add[A_CHR] = p_ptr->xchr;
2927 p_ptr->dis_ac = p_ptr->ac = 0;
2930 p_ptr->dis_to_h = p_ptr->to_h = p_ptr->to_h_melee = p_ptr->to_h_ranged = 0;
2931 p_ptr->dis_to_d = p_ptr->to_d = p_ptr->to_d_melee = p_ptr->to_d_ranged = 0;
2932 p_ptr->dis_to_a = p_ptr->to_a = 0;
2936 p_ptr->aggravate = FALSE;
2937 p_ptr->teleport = FALSE;
2938 p_ptr->drain_exp = 0;
2939 p_ptr->drain_mana = 0;
2940 p_ptr->drain_life = 0;
2941 p_ptr->bless_blade = FALSE;
2942 p_ptr->xtra_might = 0;
2943 p_ptr->impact = FALSE;
2944 p_ptr->see_inv = FALSE;
2945 p_ptr->free_act = FALSE;
2946 p_ptr->slow_digest = FALSE;
2947 p_ptr->regenerate = FALSE;
2948 p_ptr->resist_time = FALSE;
2949 p_ptr->resist_mana = FALSE;
2950 p_ptr->resist_plasma = FALSE;
2951 p_ptr->immune_poison = FALSE;
2952 p_ptr->immune_water = FALSE;
2953 p_ptr->resist_water = FALSE;
2954 p_ptr->regen_mana = FALSE;
2955 p_ptr->feather_fall = FALSE;
2956 p_ptr->hold_life = FALSE;
2957 p_ptr->telepathy = 0;
2958 p_ptr->lite = FALSE;
2959 p_ptr->cur_lite = 0;
2960 p_ptr->cur_vlite = 0;
2961 p_ptr->sustain_str = FALSE;
2962 p_ptr->sustain_int = FALSE;
2963 p_ptr->sustain_wis = FALSE;
2964 p_ptr->sustain_con = FALSE;
2965 p_ptr->sustain_dex = FALSE;
2966 p_ptr->sustain_chr = FALSE;
2967 p_ptr->resist_acid = FALSE;
2968 p_ptr->resist_elec = FALSE;
2969 p_ptr->resist_fire = FALSE;
2970 p_ptr->resist_cold = FALSE;
2971 p_ptr->resist_pois = FALSE;
2972 p_ptr->resist_conf = FALSE;
2973 p_ptr->resist_sound = FALSE;
2974 p_ptr->resist_lite = FALSE;
2975 p_ptr->resist_dark = FALSE;
2976 p_ptr->resist_chaos = FALSE;
2977 p_ptr->resist_disen = FALSE;
2978 p_ptr->resist_shard = FALSE;
2979 p_ptr->resist_nexus = FALSE;
2980 p_ptr->resist_blind = FALSE;
2981 p_ptr->resist_neth = FALSE;
2982 p_ptr->resist_fear = FALSE;
2983 p_ptr->immune_acid = FALSE;
2984 p_ptr->immune_elec = FALSE;
2985 p_ptr->immune_fire = FALSE;
2986 p_ptr->immune_cold = FALSE;
2987 p_ptr->sh_fire = p_ptr->sh_fire_fix = FALSE;
2988 p_ptr->sh_elec = p_ptr->sh_elec_fix = FALSE;
2989 p_ptr->sh_cold = p_ptr->sh_cold_fix = FALSE;
2990 p_ptr->brand_fire = FALSE;
2991 p_ptr->brand_cold = FALSE;
2992 p_ptr->brand_elec = FALSE;
2993 p_ptr->brand_acid = FALSE;
2994 p_ptr->brand_pois = FALSE;
2995 p_ptr->auto_tunnel = FALSE;
2996 p_ptr->levitate = FALSE;
2997 p_ptr->can_swim = FALSE;
2998 p_ptr->climb = FALSE;
2999 p_ptr->pass_trees = FALSE;
3000 p_ptr->luck = 0;
3001 p_ptr->reduc_fire = 0;
3002 p_ptr->reduc_cold = 0;
3003 p_ptr->reduc_elec = 0;
3004 p_ptr->reduc_acid = 0;
3005 p_ptr->anti_magic = FALSE;
3006 p_ptr->auto_id = FALSE;
3007 p_ptr->reflect = FALSE;
3008 p_ptr->shield_deflect = 0;
3009 p_ptr->weapon_parry = 0;
3010 p_ptr->no_cut = FALSE;
3011 p_ptr->reduce_insanity = 0;
3013 p_ptr->to_m = 0;
3014 p_ptr->to_l = 0;
3015 p_ptr->to_hp = 0;
3016 p_ptr->black_breath_tmp = FALSE;
3018 p_ptr->dual_wield = FALSE;
3019 if (p_ptr->inventory[INVEN_WIELD].k_idx &&
3020 p_ptr->inventory[INVEN_ARM].k_idx && p_ptr->inventory[INVEN_ARM].tval != TV_SHIELD) {
3021 p_ptr->dual_wield = TRUE;
3024 if (p_ptr->warning_dual_mode == 0 && !old_dual_wield && !p_ptr->dual_mode) {
3026 s_printf("warning_dual_mode: %s\n", p_ptr->name);
3027 p_ptr->warning_dual_mode = 1;
3031 p_ptr->stormbringer = FALSE;
3034 p_ptr->invis = 0;
3035 p_ptr->tim_invis_power = 0;
3037 p_ptr->immune_neth = FALSE;
3038 p_ptr->anti_tele = FALSE;
3039 p_ptr->res_tele = FALSE;
3040 p_ptr->antimagic = 0;
3041 p_ptr->antimagic_dis = 0;
3042 p_ptr->xtra_crit = 0;
3043 p_ptr->dodge_level = 1; /* everyone may get a lucky evasion :) - C. Blue */
3045 p_ptr->suscep_fire = FALSE;
3046 p_ptr->suscep_cold = FALSE;
3047 p_ptr->suscep_elec = FALSE;
3048 p_ptr->suscep_acid = FALSE;
3049 p_ptr->suscep_pois = FALSE;
3050 p_ptr->suscep_lite = FALSE;
3051 p_ptr->suscep_good = FALSE;
3052 p_ptr->suscep_evil = FALSE;
3053 p_ptr->suscep_life = FALSE;
3054 p_ptr->resist_continuum = FALSE;
3055 p_ptr->vampiric_melee = 0;
3056 p_ptr->vampiric_ranged = 0;
3059 p_ptr->ty_curse = FALSE;
3060 p_ptr->dg_curse = FALSE;
3063 old_num_blow = p_ptr->num_blow;
3064 p_ptr->num_blow = 1;
3065 p_ptr->extra_blows = 0;
3067 p_ptr->num_fire = 1;
3069 p_ptr->num_spell = 1;
3072 p_ptr->tval_xtra = 0;
3074 p_ptr->tval_ammo = 0;
3077 p_ptr->see_infra = p_ptr->rp_ptr->infra;
3081 p_ptr->skill_dis = p_ptr->rp_ptr->r_dis + p_ptr->cp_ptr->c_dis;
3083 p_ptr->skill_dev = p_ptr->rp_ptr->r_dev + p_ptr->cp_ptr->c_dev;
3085 p_ptr->skill_sav = p_ptr->rp_ptr->r_sav + p_ptr->cp_ptr->c_sav;
3087 p_ptr->skill_stl = p_ptr->rp_ptr->r_stl + p_ptr->cp_ptr->c_stl;
3089 p_ptr->skill_srh = p_ptr->rp_ptr->r_srh + p_ptr->cp_ptr->c_srh;
3091 p_ptr->skill_fos = p_ptr->rp_ptr->r_fos + p_ptr->cp_ptr->c_fos;
3093 p_ptr->skill_thn = p_ptr->rp_ptr->r_thn + p_ptr->cp_ptr->c_thn;
3095 p_ptr->skill_thb = p_ptr->rp_ptr->r_thb + p_ptr->cp_ptr->c_thb;
3097 p_ptr->skill_tht = p_ptr->rp_ptr->r_thb + p_ptr->cp_ptr->c_thb;
3100 p_ptr->skill_dig = 0;
3103 p_ptr->admin_invuln = p_ptr->admin_invinc = FALSE;
3105 p_ptr->no_heal = FALSE;
3110 (in_sector00(&p_ptr->wpos) && (sector00flags2 & LF2_NO_RES_HEAL)))
3111 p_ptr->no_heal = TRUE;
3115 if (!p_ptr->body_monster) {
3117 csheet_boni[14].symbol = (p_ptr->fruit_bat) ? 'b' : '@';
3118 csheet_boni[14].color = class_info[p_ptr->pclass].color;
3121 csheet_boni[14].symbol = r_info[p_ptr->body_monster].d_char;
3122 csheet_boni[14].color = r_info[p_ptr->body_monster].d_attr;
3124 if (p_ptr->body_monster) calc_body_bonus(Ind, &csheet_boni[14]);
3128 p_ptr->innate_spells[0] = 0x0;
3129 p_ptr->innate_spells[1] = 0x0;
3130 p_ptr->innate_spells[2] = 0x0;
3134 p_ptr->pspeed = 110;
3137 p_ptr->pspeed = 130;
3138 if (p_ptr->stun > 0) p_ptr->pspeed -= 3;
3142 if (p_ptr->fruit_bat) {
3143 if (p_ptr->fruit_bat == 1)
3144 p_ptr->pspeed += 10; //disabled due to bat-party-powerlevel-cheezing
3149 p_ptr->pspeed += 3;
3150 p_ptr->levitate = TRUE; csheet_boni[14].cb[6] |= CB7_RRLEV;
3151 p_ptr->feather_fall = TRUE; csheet_boni[14].cb[4] |= CB5_RFALL;
3152 if (p_ptr->vampiric_melee < 50) { p_ptr->vampiric_melee = 50; csheet_boni->cb[6] |= CB7_RVAMP; }
3155 csheet_boni[14].spd = p_ptr->pspeed - 110;
3161 if (p_ptr->prace == RACE_HALF_ELF) {
3162 p_ptr->resist_lite = TRUE; csheet_boni[14].cb[2] |= CB3_RLITE;
3166 else if (p_ptr->prace == RACE_ELF) {
3167 p_ptr->see_inv = TRUE; csheet_boni[14].cb[5] |= CB6_RSINV;
3168 p_ptr->resist_lite = TRUE; csheet_boni[14].cb[2] |= CB3_RLITE;
3172 else if (p_ptr->prace == RACE_HOBBIT) {
3173 p_ptr->sustain_dex = TRUE; csheet_boni[14].cb[11] |= CB12_RSDEX;
3177 if (!p_ptr->body_monster && !p_ptr->inventory[INVEN_FEET].k_idx)
3178 { p_ptr->stat_add[A_DEX] += 2; csheet_boni[14].pdex += 2; }
3182 …else if (p_ptr->prace == RACE_GNOME) { p_ptr->free_act = TRUE; csheet_boni[14].cb[4] |= CB5_RPARA;…
3185 else if (p_ptr->prace == RACE_DWARF) {
3186 p_ptr->resist_blind = TRUE; csheet_boni[14].cb[4] |= CB5_RBLND;
3188 …if (!p_ptr->body_monster && p_ptr->lev >= 30) { p_ptr->climb = TRUE; csheet_boni[14].cb[6] |= CB7_…
3192 …else if (p_ptr->prace == RACE_HALF_ORC) { p_ptr->resist_dark = TRUE; csheet_boni[14].cb[2] |= CB3_…
3195 else if (p_ptr->prace == RACE_HALF_TROLL) {
3196 p_ptr->sustain_str = TRUE; csheet_boni[14].cb[11] |= CB12_RSSTR;
3197 p_ptr->regenerate = TRUE; csheet_boni[14].cb[5] |= CB6_RRGHP;
3201 …else if (p_ptr->prace == RACE_DUNADAN) { p_ptr->sustain_con = TRUE; csheet_boni[14].cb[11] |= CB1…
3204 else if (p_ptr->prace == RACE_HIGH_ELF) {
3205 p_ptr->resist_lite = TRUE; csheet_boni[14].cb[2] |= CB3_RLITE;
3206 p_ptr->see_inv = TRUE; csheet_boni[14].cb[5] |= CB6_RSINV;
3207 p_ptr->resist_time = TRUE; csheet_boni[14].cb[3] |= CB4_RTIME;
3211 else if (p_ptr->prace == RACE_YEEK) {
3212 p_ptr->feather_fall = TRUE; csheet_boni[14].cb[4] |= CB5_RFALL;
3214 if (!p_ptr->body_monster) p_ptr->pass_trees = TRUE; csheet_boni[14].cb[12] |= CB13_XTREE;
3218 else if (p_ptr->prace == RACE_GOBLIN) {
3219 p_ptr->resist_dark = TRUE; csheet_boni[14].cb[2] |= CB3_RDARK;
3225 else if (p_ptr->prace == RACE_ENT) {
3227 p_ptr->slow_digest = TRUE; csheet_boni[14].cb[4] |= CB5_RFOOD;
3229 p_ptr->suscep_fire = TRUE; csheet_boni[14].cb[0] |= CB1_SFIRE;
3230 p_ptr->resist_water = TRUE; csheet_boni[14].cb[2] |= CB3_RWATR;
3233 if (!p_ptr->body_monster) {
3234 p_ptr->pspeed -= 2; csheet_boni[14].spd -= 2;
3235 p_ptr->can_swim = TRUE; csheet_boni[14].cb[12] |= CB13_XSWIM; /* wood? */
3236 p_ptr->pass_trees = TRUE; csheet_boni[14].cb[12] |= CB13_XTREE;
3237 } else { p_ptr->pspeed -= 1; csheet_boni[14].spd -= 1; } /* it's cost of ent's power, isn't it? */
3239 if (p_ptr->lev >= 4) { p_ptr->see_inv = TRUE; csheet_boni[14].cb[5] |= CB6_RSINV; }
3241 if (p_ptr->lev >= 10) { p_ptr->telepathy |= ESP_ANIMAL; csheet_boni[14].cb[7] |= CB8_EANIM; }
3242 if (p_ptr->lev >= 15) { p_ptr->telepathy |= ESP_ORC; csheet_boni[14].cb[7] |= CB8_EORCS; }
3243 if (p_ptr->lev >= 20) { p_ptr->telepathy |= ESP_TROLL; csheet_boni[14].cb[7] |= CB8_ETROL; }
3244 if (p_ptr->lev >= 25) { p_ptr->telepathy |= ESP_GIANT; csheet_boni[14].cb[7] |= CB8_EGIAN; }
3245 if (p_ptr->lev >= 30) { p_ptr->telepathy |= ESP_DRAGON; csheet_boni[14].cb[8] |= CB9_EDRGN; }
3246 if (p_ptr->lev >= 40) { p_ptr->telepathy |= ESP_DEMON; csheet_boni[14].cb[8] |= CB9_EDEMN; }
3247 if (p_ptr->lev >= 50) { p_ptr->telepathy |= ESP_EVIL; csheet_boni[14].cb[9] |= CB10_EEVIL; }
3251 else if (p_ptr->prace == RACE_DRACONIAN) {
3253 if (!p_ptr->body_monster) { p_ptr->feather_fall = TRUE; csheet_boni[14].cb[4] |= CB5_RFALL; }
3255 if (p_ptr->lev >= 5) { p_ptr->telepathy |= ESP_DRAGON; csheet_boni[14].cb[8] |= CB9_EDRGN; }
3257 if (p_ptr->lev >= 10) { p_ptr->resist_fire = TRUE; csheet_boni[14].cb[0] |= CB1_RFIRE; }
3258 if (p_ptr->lev >= 15) { p_ptr->resist_cold = TRUE; csheet_boni[14].cb[0] |= CB1_RCOLD; }
3259 if (p_ptr->lev >= 20) { p_ptr->resist_acid = TRUE; csheet_boni[14].cb[1] |= CB2_RACID; }
3260 if (p_ptr->lev >= 25) { p_ptr->resist_elec = TRUE; csheet_boni[14].cb[0] |= CB1_RELEC; }
3263 if (!p_ptr->body_monster)
3264 if (p_ptr->lev >= 30) { p_ptr->levitate = TRUE; csheet_boni[14].cb[6] |= CB7_RRLEV; }
3268 else if (p_ptr->prace == RACE_DARK_ELF) {
3269 p_ptr->suscep_lite = TRUE; csheet_boni[14].cb[1] |= CB2_SLITE;
3271 p_ptr->resist_dark = TRUE; csheet_boni[14].cb[2] |= CB3_RDARK;
3272 if (p_ptr->lev >= 20) { p_ptr->see_inv = TRUE; csheet_boni[14].cb[5] |= CB6_RSINV; }
3276 else if (p_ptr->prace == RACE_VAMPIRE) {
3277 p_ptr->suscep_lite = TRUE; csheet_boni[14].cb[1] |= CB2_SLITE;
3278 p_ptr->suscep_good = TRUE;
3279 p_ptr->suscep_life = TRUE;
3281 p_ptr->resist_time = TRUE; csheet_boni[14].cb[3] |= CB4_RTIME;
3282 p_ptr->resist_dark = TRUE; csheet_boni[14].cb[2] |= CB3_RDARK;
3283 p_ptr->resist_neth = TRUE; csheet_boni[14].cb[3] |= CB4_RNETH;
3284 p_ptr->resist_pois = TRUE; csheet_boni[14].cb[1] |= CB2_RPOIS;
3285 p_ptr->hold_life = TRUE; csheet_boni[14].cb[5] |= CB6_RLIFE;
3287 p_ptr->reduce_insanity = 1; csheet_boni[14].cb[3] |= CB4_RMIND;
3289 …if (p_ptr->vampiric_melee < 50) p_ptr->vampiric_melee = 50; /* mimic forms give 50 (50% bite attac…
3292 p_ptr->cur_vlite = 1 + p_ptr->lev / 10; csheet_boni[14].lite = 1 + p_ptr->lev / 10;
3297 else if (p_ptr->prace == RACE_MAIA) {
3299 p_ptr->telepathy |= ESP_DEMON; csheet_boni[14].cb[8] |= CB9_EDEMN;
3300 p_ptr->telepathy |= ESP_GOOD; csheet_boni[14].cb[9] |= CB10_EGOOD;
3302 if (p_ptr->ptrait == TRAIT_ENLIGHTENED) {
3303 if (p_ptr->lev >= 20) csheet_boni[14].cb[5] |= CB6_IFOOD;
3304 if (p_ptr->lev >= 50) csheet_boni[14].cb[9] |= CB10_SEVIL;
3305 p_ptr->suscep_evil = TRUE;
3307 p_ptr->see_inv = TRUE; csheet_boni[14].cb[5] |= CB6_RSINV;
3308 p_ptr->resist_lite = TRUE; csheet_boni[14].cb[2] |= CB3_RLITE;
3309 if (p_ptr->lev >= 20) {
3310p_ptr->cur_lite += 1 + (p_ptr->lev - 20) / 6; csheet_boni[14].lite = 1 + p_ptr->lev / 10; //REAL l…
3312 lite_inc_white += 1 + (p_ptr->lev - 20) / 6;
3313 p_ptr->to_a += (p_ptr->lev - 20)/2;
3314 p_ptr->dis_to_a += (p_ptr->lev - 20)/2;
3317 if (p_ptr->lev >= 50) {
3318 p_ptr->resist_pois = TRUE; csheet_boni[14].cb[1] |= CB2_RPOIS;
3319 p_ptr->resist_elec = TRUE; csheet_boni[14].cb[0] |= CB1_RELEC;
3320 p_ptr->sh_elec = TRUE; csheet_boni[14].cb[10] |= CB11_AELEC;
3321 p_ptr->resist_cold = TRUE; csheet_boni[14].cb[0] |= CB1_RCOLD;
3322 p_ptr->sh_cold = TRUE; csheet_boni[14].cb[10] |= CB11_ACOLD;
3323 p_ptr->levitate = TRUE; csheet_boni[14].cb[6] |= CB7_RRLEV;
3324 p_ptr->feather_fall = TRUE; csheet_boni[14].cb[4] |= CB5_RFALL;
3328 if (p_ptr->divine_xtra_res_time > 0)
3329 p_ptr->resist_time = TRUE;
3330 } else if (p_ptr->ptrait == TRAIT_CORRUPTED) {
3331 if (p_ptr->lev >= 20) csheet_boni[14].cb[5] |= CB6_IFOOD;
3332 p_ptr->suscep_good = TRUE;
3334 p_ptr->resist_fire = TRUE; csheet_boni[14].cb[0] |= CB1_RFIRE;
3335 p_ptr->resist_dark = TRUE; csheet_boni[14].cb[2] |= CB3_RDARK;
3337 if (p_ptr->lev >= 50) {
3338 p_ptr->resist_pois = TRUE; csheet_boni[14].cb[1] |= CB2_RPOIS;
3339 p_ptr->immune_fire = TRUE; csheet_boni[14].cb[0] |= CB1_IFIRE;
3340 p_ptr->sh_fire = p_ptr->sh_fire_fix = TRUE; csheet_boni[14].cb[10] |= CB11_AFIRE;
3344 if (p_ptr->divine_crit > 0)
3345 p_ptr->xtra_crit = p_ptr->divine_crit_mod;
3346 } else { p_ptr->slow_digest = TRUE; csheet_boni[14].cb[4] |= CB5_RFOOD; }
3351 else if (p_ptr->prace == RACE_KOBOLD)
3352 { p_ptr->resist_pois = TRUE; csheet_boni[14].cb[1] |= CB2_RPOIS; }
3356 switch (p_ptr->ptrait) {
3362 if (p_ptr->lev >= 5) { p_ptr->brand_elec = TRUE; csheet_boni[14].cb[10] |= CB11_BELEC; }
3363 if (p_ptr->lev >= 15) { p_ptr->sh_elec = TRUE; csheet_boni[14].cb[10] |= CB11_AELEC; }
3364 if (p_ptr->lev < 25) { p_ptr->resist_elec = TRUE; csheet_boni[14].cb[0] |= CB1_RELEC; }
3365 else { p_ptr->immune_elec = TRUE; csheet_boni[14].cb[1] |= CB2_IELEC; }
3368 p_ptr->suscep_fire = TRUE; csheet_boni[14].cb[0] |= CB1_SFIRE;
3369 if (p_ptr->lev >= 15) { p_ptr->sh_cold = TRUE; csheet_boni[14].cb[10] |= CB11_ACOLD; }
3370 if (p_ptr->lev < 25) { p_ptr->resist_cold = TRUE; csheet_boni[14].cb[0] |= CB1_RCOLD; }
3371 else { p_ptr->immune_cold = TRUE; csheet_boni[14].cb[0] |= CB1_ICOLD; }
3374 p_ptr->suscep_cold = TRUE; csheet_boni[14].cb[0] |= CB1_SCOLD;
3375 if (p_ptr->lev < 25) { p_ptr->resist_fire = TRUE; csheet_boni[14].cb[0] |= CB1_RFIRE; }
3376 else { p_ptr->immune_fire = TRUE; csheet_boni[14].cb[0] |= CB1_IFIRE; }
3379 if (p_ptr->lev < 25) { p_ptr->resist_acid = TRUE; csheet_boni[14].cb[1] |= CB2_RACID; }
3380 else { p_ptr->immune_acid = TRUE; csheet_boni[14].cb[1] |= CB2_IACID; }
3383 if (p_ptr->lev < 25) { p_ptr->resist_pois = TRUE; csheet_boni[14].cb[1] |= CB2_RPOIS; }
3384 else { p_ptr->immune_poison = TRUE; csheet_boni[14].cb[1] |= CB2_IPOIS; }
3387 if (p_ptr->lev >= 5) { p_ptr->resist_elec = TRUE; csheet_boni[14].cb[0] |= CB1_RELEC; }
3388 if (p_ptr->lev >= 10) { p_ptr->resist_cold = TRUE; csheet_boni[14].cb[0] |= CB1_RCOLD; }
3389 if (p_ptr->lev >= 15) { p_ptr->resist_fire = TRUE; csheet_boni[14].cb[0] |= CB1_RFIRE; }
3390 if (p_ptr->lev >= 20) { p_ptr->resist_acid = TRUE; csheet_boni[14].cb[1] |= CB2_RACID; }
3391 if (p_ptr->lev >= 25) { p_ptr->resist_pois = TRUE; csheet_boni[14].cb[1] |= CB2_RPOIS; }
3394 if (p_ptr->lev >= 5) { p_ptr->resist_conf = TRUE; csheet_boni[14].cb[2] |= CB3_RCONF; }
3395 if (p_ptr->lev >= 10) { p_ptr->resist_elec = TRUE; csheet_boni[14].cb[0] |= CB1_RELEC; }
3396 if (p_ptr->lev >= 10) { p_ptr->free_act = TRUE; csheet_boni[14].cb[4] |= CB5_RPARA; }
3397 if (p_ptr->lev >= 20) { p_ptr->reflect = TRUE; csheet_boni[14].cb[6] |= CB7_RREFL; }
3400 if (p_ptr->lev >= 5) { p_ptr->resist_cold = TRUE; csheet_boni[14].cb[0] |= CB1_RCOLD; }
3401 if (p_ptr->lev >= 10) { p_ptr->resist_acid = TRUE; csheet_boni[14].cb[1] |= CB2_RACID; }
3402 if (p_ptr->lev >= 15) { p_ptr->resist_pois = TRUE; csheet_boni[14].cb[1] |= CB2_RPOIS; }
3403 if (p_ptr->lev >= 20) { p_ptr->reflect = TRUE; csheet_boni[14].cb[6] |= CB7_RREFL; }
3406 if (p_ptr->lev >= 5) { p_ptr->resist_fire = TRUE; csheet_boni[14].cb[0] |= CB1_RFIRE; }
3407 if (p_ptr->lev >= 10) { p_ptr->resist_acid = TRUE; csheet_boni[14].cb[1] |= CB2_RACID; }
3408 if (p_ptr->lev >= 15) { p_ptr->resist_sound = TRUE; csheet_boni[14].cb[2] |= CB3_RSOUN; }
3409 if (p_ptr->lev >= 20) { p_ptr->reflect = TRUE; csheet_boni[14].cb[6] |= CB7_RREFL; }
3412 if (p_ptr->lev >= 5) { p_ptr->resist_shard = TRUE; csheet_boni[14].cb[2] |= CB3_RSHRD; }
3413 if (p_ptr->lev >= 10) { p_ptr->free_act = TRUE; csheet_boni[14].cb[4] |= CB5_RPARA; }
3414 if (p_ptr->lev >= 15) { p_ptr->resist_sound = TRUE; csheet_boni[14].cb[2] |= CB3_RSOUN; }
3417 if (p_ptr->lev >= 5) { p_ptr->resist_conf = TRUE; csheet_boni[14].cb[2] |= CB3_RCONF; }
3418 if (p_ptr->lev >= 15) { p_ptr->resist_chaos = TRUE; csheet_boni[14].cb[3] |= CB4_RCHAO; }
3419 if (p_ptr->lev >= 20) { p_ptr->resist_disen = TRUE; csheet_boni[14].cb[3] |= CB4_RDISE; }
3422 if (p_ptr->lev >= 10) { p_ptr->resist_disen = TRUE; csheet_boni[14].cb[3] |= CB4_RDISE; }
3423 if (p_ptr->lev >= 20) { p_ptr->resist_sound = TRUE; csheet_boni[14].cb[2] |= CB3_RSOUN; }
3426 p_ptr->resist_fear = TRUE; csheet_boni[14].cb[4] |= CB5_RFEAR;
3427 if (p_ptr->lev >= 5) { p_ptr->resist_blind = TRUE; csheet_boni[14].cb[4] |= CB5_RBLND; }
3428 if (p_ptr->lev >= 20) { p_ptr->reflect = TRUE; csheet_boni[14].cb[6] |= CB7_RREFL; }
3433 if (p_ptr->pclass == CLASS_RANGER) {
3434 if (p_ptr->lev >= 15) { p_ptr->pass_trees = TRUE; csheet_boni[14].cb[12] |= CB13_XTREE; }
3435 if (p_ptr->lev >= 25) { p_ptr->can_swim = TRUE; csheet_boni[14].cb[12] |= CB13_XSWIM; }
3438 if (p_ptr->pclass == CLASS_SHAMAN)
3439 if (p_ptr->lev >= 20) { p_ptr->see_inv = TRUE; csheet_boni[14].cb[5] |= CB6_RSINV; }
3441 if (p_ptr->pclass == CLASS_DRUID)
3442 if (p_ptr->lev >= 10) { p_ptr->pass_trees = TRUE; csheet_boni[14].cb[12] |= CB13_XTREE; }
3444 if (p_ptr->pclass == CLASS_MINDCRAFTER) {
3445 if (p_ptr->lev >= 20) { p_ptr->reduce_insanity = 2; csheet_boni[14].cb[3] |= CB4_RMIND; }
3446 else if (p_ptr->lev >= 10) { p_ptr->reduce_insanity = 1; csheet_boni[14].cb[3] |= CB4_RMIND; }
3451 …if (get_skill(p_ptr, SKILL_CLIMB) >= 1) { p_ptr->climb = TRUE; csheet_boni[14].cb[6] |= CB7_RCLMB;…
3452 if (get_skill(p_ptr, SKILL_LEVITATE) >= 1) {
3453 p_ptr->levitate = TRUE; csheet_boni[14].cb[6] |= CB7_RRLEV;
3454 p_ptr->feather_fall = TRUE; csheet_boni[14].cb[4] |= CB5_RFALL;
3456 …if (get_skill(p_ptr, SKILL_FREEACT) >= 1) { p_ptr->free_act = TRUE; csheet_boni[14].cb[4] |= CB5_R…
3457 …if (get_skill(p_ptr, SKILL_RESCONF) >= 1) { p_ptr->resist_conf = TRUE; csheet_boni[14].cb[2] |= CB…
3461 if (get_skill(p_ptr, SKILL_ANTIMAGIC)) {
3464p_ptr->antimagic += get_skill_scale(p_ptr, SKILL_ANTIMAGIC, 50); csheet_boni[14].amfi += get_skill…
3465p_ptr->antimagic_dis += 1 + (get_skill(p_ptr, SKILL_ANTIMAGIC) / 10); /* was /11, but let's reward…
3467p_ptr->antimagic += get_skill_scale(p_ptr, SKILL_ANTIMAGIC, 30); csheet_boni[14].amfi += get_skill…
3468p_ptr->antimagic_dis += 1 + (get_skill(p_ptr, SKILL_ANTIMAGIC) / 10); /* was /11, but let's reward…
3473 if (p_ptr->ghost) {
3474 p_ptr->see_inv = TRUE; csheet_boni[14].cb[5] |= CB6_RSINV;
3477 p_ptr->free_act = TRUE; csheet_boni[14].cb[4] |= CB5_RPARA;
3478 p_ptr->see_infra += 3; csheet_boni[14].infr += 3;
3479 p_ptr->resist_dark = TRUE; csheet_boni[14].cb[2] |= CB3_RDARK;
3480 p_ptr->resist_blind = TRUE; csheet_boni[14].cb[4] |= CB5_RBLND;
3481 p_ptr->immune_poison = TRUE; csheet_boni[14].cb[1] |= CB2_IPOIS;
3482 p_ptr->resist_cold = TRUE; csheet_boni[14].cb[0] |= CB1_RCOLD;
3483 p_ptr->resist_fear = TRUE; csheet_boni[14].cb[4] |= CB5_RFEAR;
3484 p_ptr->resist_conf = TRUE; csheet_boni[14].cb[2] |= CB3_RCONF;
3485 p_ptr->no_cut = TRUE; csheet_boni[14].cb[12] |= CB13_XNCUT;
3486 p_ptr->reduce_insanity = 1; csheet_boni[14].cb[3] |= CB4_RMIND;
3487 p_ptr->levitate = TRUE; csheet_boni[14].cb[6] |= CB7_RRLEV; /* redundant */
3488 p_ptr->feather_fall = TRUE; csheet_boni[14].cb[4] |= CB5_RFALL;
3494 if (p_ptr->maximize) {
3501 p_ptr->stat_add[i] += p_ptr->rp_ptr->r_adj[i];
3502 p_ptr->stat_add[i] += p_ptr->cp_ptr->c_adj[i];
3507 if (p_ptr->mode & MODE_HARD) {
3510 p_ptr->stat_add[i]--;
3516 if (p_ptr->admin_dm) {
3517 p_ptr->pspeed += 50; //csheet_boni[14].spd += 50; //Don't show these for the admin/tester
3518 p_ptr->telepathy |= ESP_ALL;
3526 p_ptr->total_weight = 0;
3527 p_ptr->inven_cnt = 0;
3530 o_ptr = &p_ptr->inventory[i];
3535 p_ptr->inven_cnt++;
3536 p_ptr->total_weight += o_ptr->weight * o_ptr->number;
3540 p_ptr->to_h += p_ptr->focus_val;
3541 p_ptr->dis_to_h += p_ptr->focus_val;
3543 p_ptr->to_h_ranged += p_ptr->focus_val;
3544 p_ptr->dis_to_h_ranged += p_ptr->focus_val;
3548 o_ptr = &p_ptr->inventory[i];
3566 p_ptr->admin_invinc = TRUE;
3569 p_ptr->admin_invuln = TRUE;
3624 p_ptr->total_weight += o_ptr->weight * o_ptr->number;
3638 if (i == INVEN_ARM && o_ptr->tval != TV_SHIELD && rogue_heavy_armor(p_ptr)) continue;
3642 p_ptr->resist_continuum = TRUE;
3648 p_ptr->see_infra += 50;
3668 …if (k_ptr->flags1 & TR1_STR) { p_ptr->stat_add[A_STR] += o_ptr->bpval; csheet_boni[i-INVEN_WIELD].…
3669 …if (k_ptr->flags1 & TR1_INT) { p_ptr->stat_add[A_INT] += o_ptr->bpval; csheet_boni[i-INVEN_WIELD].…
3670 …if (k_ptr->flags1 & TR1_WIS) { p_ptr->stat_add[A_WIS] += o_ptr->bpval; csheet_boni[i-INVEN_WIELD].…
3671 …if (k_ptr->flags1 & TR1_DEX) { p_ptr->stat_add[A_DEX] += o_ptr->bpval; csheet_boni[i-INVEN_WIELD].…
3672 …if (k_ptr->flags1 & TR1_CON) { p_ptr->stat_add[A_CON] += o_ptr->bpval; csheet_boni[i-INVEN_WIELD].…
3673 …if (k_ptr->flags1 & TR1_CHR) { p_ptr->stat_add[A_CHR] += o_ptr->bpval; csheet_boni[i-INVEN_WIELD].…
3676 …if (k_ptr->flags1 & TR1_STEALTH) { p_ptr->skill_stl += o_ptr->bpval; csheet_boni[i-INVEN_WIELD].sl…
3678 …if (k_ptr->flags1 & TR1_SEARCH) { p_ptr->skill_srh += (o_ptr->bpval * 5); csheet_boni[i-INVEN_WIEL…
3680 if (k_ptr->flags1 & TR1_SEARCH) p_ptr->skill_fos += (o_ptr->bpval * 3);
3682 …if (k_ptr->flags1 & TR1_INFRA) { p_ptr->see_infra += o_ptr->bpval; csheet_boni[i-INVEN_WIELD].infr…
3685 …if (k_ptr->flags1 & TR1_TUNNEL) { p_ptr->skill_dig += (o_ptr->bpval * 20); csheet_boni[i-INVEN_WIE…
3688 …if (k_ptr->flags1 & TR1_SPEED) { p_ptr->pspeed += o_ptr->bpval; csheet_boni[i-INVEN_WIELD].spd += …
3693 …if (k_ptr->flags1 & TR1_BLOWS) { p_ptr->extra_blows += o_ptr->bpval; csheet_boni[i-INVEN_WIELD].bl…
3702 (p_ptr->inventory[INVEN_WIELD].k_idx && p_ptr->inventory[INVEN_ARM].k_idx))
3703 { p_ptr->to_m += (o_ptr->bpval * 20) / 3; csheet_boni[i-INVEN_WIELD].mxmp += o_ptr->bpval; }
3705 { p_ptr->to_m += o_ptr->bpval * 10; csheet_boni[i-INVEN_WIELD].mxmp += o_ptr->bpval; }
3711 (make_resf(p_ptr) & RESF_LIFE) ||
3713 { p_ptr->to_l += o_ptr->bpval; csheet_boni[i-INVEN_WIELD].mxhp += o_ptr->bpval; }
3717 if (f5 & TR5_DISARM) p_ptr->skill_dis += (o_ptr->bpval) * 5;
3718 …if (f5 & TR5_LUCK) { p_ptr->luck += o_ptr->bpval; csheet_boni[i-INVEN_WIELD].luck += o_ptr->bpval;…
3721 …if (f5 & TR5_CRIT) { p_ptr->xtra_crit += o_ptr->bpval; csheet_boni[i-INVEN_WIELD].crit += o_ptr->b…
3734 p_ptr->to_l -= o_ptr->pval + o_ptr->bpval;
3738 p_ptr->to_l += o_ptr->pval;
3756 p_ptr->stormbringer = TRUE;
3761 p_ptr->pkill |= PKILL_KILLABLE;
3762 if (!(p_ptr->pkill & PKILL_KILLER) &&
3763 !(p_ptr->pkill & PKILL_SET))
3766 p_ptr->pkill |= PKILL_SET; //Flag ON
3783 if (f1 & TR1_STR) { p_ptr->stat_add[A_STR] += pval; csheet_boni[i-INVEN_WIELD].pstr += pval; }
3784 if (f1 & TR1_INT) { p_ptr->stat_add[A_INT] += pval; csheet_boni[i-INVEN_WIELD].pint += pval; }
3785 if (f1 & TR1_WIS) { p_ptr->stat_add[A_WIS] += pval; csheet_boni[i-INVEN_WIELD].pwis += pval; }
3786 if (f1 & TR1_DEX) { p_ptr->stat_add[A_DEX] += pval; csheet_boni[i-INVEN_WIELD].pdex += pval; }
3787 if (f1 & TR1_CON) { p_ptr->stat_add[A_CON] += pval; csheet_boni[i-INVEN_WIELD].pcon += pval; }
3788 if (f1 & TR1_CHR) { p_ptr->stat_add[A_CHR] += pval; csheet_boni[i-INVEN_WIELD].pchr += pval; }
3791 if (f5 & (TR5_LUCK)) { p_ptr->luck += pval; csheet_boni[i-INVEN_WIELD].luck += pval; }
3799 (p_ptr->inventory[INVEN_WIELD].k_idx && p_ptr->inventory[INVEN_ARM].k_idx))
3800 { p_ptr->to_m += (pval * 20) / 3; csheet_boni[i-INVEN_WIELD].mxmp += pval; }
3802 { p_ptr->to_m += pval * 10; csheet_boni[i-INVEN_WIELD].mxmp += pval; }
3808 (make_resf(p_ptr) & RESF_LIFE) ||
3810 { p_ptr->to_l += o_ptr->pval; csheet_boni[i-INVEN_WIELD].mxhp += o_ptr->pval; }
3813 if (f1 & TR1_STEALTH) { p_ptr->skill_stl += pval; csheet_boni[i-INVEN_WIELD].slth += pval; }
3815 if (f1 & TR1_SEARCH) { p_ptr->skill_srh += (pval * 5); csheet_boni[i-INVEN_WIELD].srch += pval; }
3817 if (f1 & TR1_SEARCH) p_ptr->skill_fos += (pval * 3);
3819 if (f1 & TR1_INFRA) { p_ptr->see_infra += pval; csheet_boni[i-INVEN_WIELD].infr += pval; }
3822 if (f1 & TR1_TUNNEL) { p_ptr->skill_dig += (pval * 20); csheet_boni[i-INVEN_WIELD].dig += pval; }
3825 if (f1 & TR1_SPEED) { p_ptr->pspeed += pval; csheet_boni[i-INVEN_WIELD].spd += pval; }
3832 if (f5 & (TR5_DISARM)) p_ptr->skill_dis += pval * 5;
3844 if (f4 & TR4_AUTO_ID) { p_ptr->auto_id = TRUE; csheet_boni[i-INVEN_WIELD].cb[6] |= CB7_RIDNT; }
3850 if ((f3 & TR3_TY_CURSE) && (o_ptr->ident & ID_CURSED)) p_ptr->ty_curse = TRUE;
3851 if ((f4 & TR4_DG_CURSE) && (o_ptr->ident & ID_CURSED)) p_ptr->dg_curse = TRUE;
3855 p_ptr->aggravate = TRUE; csheet_boni[i-INVEN_WIELD].cb[6] |= CB7_RAGGR;
3860 p_ptr->teleport = TRUE; csheet_boni[i-INVEN_WIELD].cb[4] |= CB5_STELE;
3862 inscription = quark_str(p_ptr->inventory[i].note);
3872 p_ptr->teleport = FALSE; csheet_boni[i-INVEN_WIELD].cb[4] &= (~CB5_STELE);
3880 if (f3 & TR3_DRAIN_EXP) p_ptr->drain_exp++;
3881 if (f5 & (TR5_DRAIN_MANA)) { p_ptr->drain_mana++; csheet_boni[i-INVEN_WIELD].cb[5] |= CB6_SRGMP; }
3882 if (f5 & (TR5_DRAIN_HP)) { p_ptr->drain_life++; csheet_boni[i-INVEN_WIELD].cb[5] |= CB6_SRGHP; }
3884 j = (p_ptr->lev > 50 ? 50 : p_ptr->lev) * 4 / 5;
3886 if (j > p_ptr->tim_invis_power) p_ptr->tim_invis_power = j;
3889 if (f3 & TR3_BLESSED) p_ptr->bless_blade = TRUE;
3890 if (f3 & TR3_XTRA_MIGHT) { p_ptr->xtra_might++; csheet_boni[i-INVEN_WIELD].migh++; }
3891 …if (f3 & TR3_SLOW_DIGEST) { p_ptr->slow_digest = TRUE; csheet_boni[i-INVEN_WIELD].cb[4] |= CB5_RFO…
3892 if (f3 & TR3_REGEN) { p_ptr->regenerate = TRUE; csheet_boni[i-INVEN_WIELD].cb[5] |= CB6_RRGHP; }
3893 …if (f5 & TR5_RES_PLASMA) { p_ptr->resist_plasma = TRUE; csheet_boni[i-INVEN_WIELD].cb[2] |= CB3_RP…
3894 …if (f5 & TR5_RES_TIME) { p_ptr->resist_time = TRUE; csheet_boni[i-INVEN_WIELD].cb[3] |= CB4_RTIME;…
3895 …if (f5 & TR5_RES_MANA) { p_ptr->resist_mana = TRUE; csheet_boni[i-INVEN_WIELD].cb[3] |= CB4_RMANA;…
3896 …if (f5 & TR5_IM_POISON) { p_ptr->immune_poison = TRUE; csheet_boni[i-INVEN_WIELD].cb[1] |= CB2_IPO…
3897 …if (f5 & TR5_IM_WATER) { p_ptr->immune_water = TRUE; csheet_boni[i-INVEN_WIELD].cb[2] |= CB3_IWATR…
3898 …if (f5 & TR5_RES_WATER) { p_ptr->resist_water = TRUE; csheet_boni[i-INVEN_WIELD].cb[2] |= CB3_RWAT…
3899 …if (f5 & TR5_PASS_WATER) { p_ptr->can_swim = TRUE; csheet_boni[i-INVEN_WIELD].cb[12] |= CB13_XSWIM…
3900 …if (f5 & TR5_REGEN_MANA) { p_ptr->regen_mana = TRUE; csheet_boni[i-INVEN_WIELD].cb[5] |= CB6_RRGMP…
3902 p_ptr->telepathy |= esp;
3926 if (f3 & TR3_SEE_INVIS) { p_ptr->see_inv = TRUE; csheet_boni[i-INVEN_WIELD].cb[5] |= CB6_RSINV; }
3927 …if (f3 & TR3_FEATHER) { p_ptr->feather_fall = TRUE; csheet_boni[i-INVEN_WIELD].cb[4] |= CB5_RFALL;…
3928 if (f2 & TR2_FREE_ACT) { p_ptr->free_act = TRUE; csheet_boni[i-INVEN_WIELD].cb[4] |= CB5_RPARA; }
3929 …if (f2 & TR2_HOLD_LIFE) { p_ptr->hold_life = TRUE; csheet_boni[i-INVEN_WIELD].cb[5] |= CB6_RLIFE; }
3939 p_ptr->cur_lite += j;
3942 if (j && !(f4 & TR4_FUEL_LITE)) p_ptr->lite = TRUE;
3950 if (p_ptr->prace == RACE_VAMPIRE && anti_undead(o_ptr)) p_ptr->drain_life++;
3953 …if (f2 & TR2_IM_FIRE) { p_ptr->immune_fire = TRUE; csheet_boni[i-INVEN_WIELD].cb[0] |= CB1_IFIRE; }
3954 …if (f2 & TR2_IM_ACID) { p_ptr->immune_acid = TRUE; csheet_boni[i-INVEN_WIELD].cb[1] |= CB2_IACID; }
3955 …if (f2 & TR2_IM_COLD) { p_ptr->immune_cold = TRUE; csheet_boni[i-INVEN_WIELD].cb[0] |= CB1_ICOLD; }
3956 …if (f2 & TR2_IM_ELEC) { p_ptr->immune_elec = TRUE; csheet_boni[i-INVEN_WIELD].cb[1] |= CB2_IELEC; }
3958 if (f2 & TR2_REDUC_FIRE) p_ptr->reduc_fire += 5 * o_ptr->to_a;
3959 if (f2 & TR2_REDUC_COLD) p_ptr->reduc_cold += 5 * o_ptr->to_a;
3960 if (f2 & TR2_REDUC_ELEC) p_ptr->reduc_elec += 5 * o_ptr->to_a;
3961 if (f2 & TR2_REDUC_ACID) p_ptr->reduc_acid += 5 * o_ptr->to_a;
3964 …if (f2 & TR2_RES_ACID) { p_ptr->resist_acid = TRUE; csheet_boni[i-INVEN_WIELD].cb[1] |= CB2_RACID;…
3965 …if (f2 & TR2_RES_ELEC) { p_ptr->resist_elec = TRUE; csheet_boni[i-INVEN_WIELD].cb[0] |= CB1_RELEC;…
3966 …if (f2 & TR2_RES_FIRE) { p_ptr->resist_fire = TRUE; csheet_boni[i-INVEN_WIELD].cb[0] |= CB1_RFIRE;…
3967 …if (f2 & TR2_RES_COLD) { p_ptr->resist_cold = TRUE; csheet_boni[i-INVEN_WIELD].cb[0] |= CB1_RCOLD;…
3968 …if (f2 & TR2_RES_POIS) { p_ptr->resist_pois = TRUE; csheet_boni[i-INVEN_WIELD].cb[1] |= CB2_RPOIS;…
3969 …if (f2 & TR2_RES_FEAR) { p_ptr->resist_fear = TRUE; csheet_boni[i-INVEN_WIELD].cb[4] |= CB5_RFEAR;…
3970 …if (f2 & TR2_RES_CONF) { p_ptr->resist_conf = TRUE; csheet_boni[i-INVEN_WIELD].cb[2] |= CB3_RCONF;…
3971 …if (f2 & TR2_RES_SOUND) { p_ptr->resist_sound = TRUE; csheet_boni[i-INVEN_WIELD].cb[2] |= CB3_RSOU…
3972 …if (f2 & TR2_RES_LITE) { p_ptr->resist_lite = TRUE; csheet_boni[i-INVEN_WIELD].cb[2] |= CB3_RLITE;…
3973 …if (f2 & TR2_RES_DARK) { p_ptr->resist_dark = TRUE; csheet_boni[i-INVEN_WIELD].cb[2] |= CB3_RDARK;…
3974 …if (f2 & TR2_RES_CHAOS) { p_ptr->resist_chaos = TRUE; csheet_boni[i-INVEN_WIELD].cb[3] |= CB4_RCHA…
3975 …if (f2 & TR2_RES_DISEN) { p_ptr->resist_disen = TRUE; csheet_boni[i-INVEN_WIELD].cb[3] |= CB4_RDIS…
3976 …if (f2 & TR2_RES_SHARDS) { p_ptr->resist_shard = TRUE; csheet_boni[i-INVEN_WIELD].cb[2] |= CB3_RSH…
3977 …if (f2 & TR2_RES_NEXUS) { p_ptr->resist_nexus = TRUE; csheet_boni[i-INVEN_WIELD].cb[3] |= CB4_RNEX…
3978 if (f5 & TR5_RES_TELE) { p_ptr->res_tele = TRUE; csheet_boni[i-INVEN_WIELD].cb[4] |= CB5_RTELE; }
3979 …if (f2 & TR2_RES_BLIND) { p_ptr->resist_blind = TRUE; csheet_boni[i-INVEN_WIELD].cb[4] |= CB5_RBLN…
3980 …if (f2 & TR2_RES_NETHER) { p_ptr->resist_neth = TRUE; csheet_boni[i-INVEN_WIELD].cb[3] |= CB4_RNET…
3984 …if (f2 & TR2_SUST_STR) { p_ptr->sustain_str = TRUE; csheet_boni[i-INVEN_WIELD].cb[11] |= CB12_RSST…
3985 …if (f2 & TR2_SUST_INT) { p_ptr->sustain_int = TRUE; csheet_boni[i-INVEN_WIELD].cb[11] |= CB12_RSIN…
3986 …if (f2 & TR2_SUST_WIS) { p_ptr->sustain_wis = TRUE; csheet_boni[i-INVEN_WIELD].cb[11] |= CB12_RSWI…
3987 …if (f2 & TR2_SUST_DEX) { p_ptr->sustain_dex = TRUE; csheet_boni[i-INVEN_WIELD].cb[11] |= CB12_RSDE…
3988 …if (f2 & TR2_SUST_CON) { p_ptr->sustain_con = TRUE; csheet_boni[i-INVEN_WIELD].cb[11] |= CB12_RSCO…
3989 …if (f2 & TR2_SUST_CHR) { p_ptr->sustain_chr = TRUE; csheet_boni[i-INVEN_WIELD].cb[11] |= CB12_RSCH…
3994 if (!(zcave[p_ptr->py][p_ptr->px].info & CAVE_STCK) &&
3995 !(p_ptr->wpos.wz && (l_ptr->flags1 & LF1_NO_MAGIC))) {
3997 p_ptr->tim_wraith = 30000; csheet_boni[i-INVEN_WIELD].cb[5] |= CB6_RWRTH;
4001 p_ptr->levitate = TRUE; csheet_boni[i-INVEN_WIELD].cb[6] |= CB7_RRLEV;
4002 p_ptr->feather_fall = TRUE; csheet_boni[i-INVEN_WIELD].cb[4] |= CB5_RFALL;
4006 if (o_ptr->tval != TV_TOOL || o_ptr->sval != SV_TOOL_CLIMB || !p_ptr->body_monster)
4007 …{ p_ptr->climb = TRUE; csheet_boni[i-INVEN_WIELD].cb[6] |= CB7_RCLMB; } /* item isn't a climbing k…
4010 …{ p_ptr->climb = TRUE; csheet_boni[i-INVEN_WIELD].cb[6] |= CB7_RCLMB; } /* only for normal-sized …
4013 …{ p_ptr->climb = TRUE; csheet_boni[i-INVEN_WIELD].cb[6] |= CB7_RCLMB; } /* everyone with arms and …
4017 …if (f4 & (TR4_IM_NETHER)) { p_ptr->immune_neth = TRUE; csheet_boni[i-INVEN_WIELD].cb[3] |= CB4_INE…
4019 (o_ptr->tval != TV_SHIELD || !p_ptr->heavy_shield))
4020 { p_ptr->reflect = TRUE; csheet_boni[i-INVEN_WIELD].cb[6] |= CB7_RREFL; }
4021 …if (f3 & (TR3_SH_FIRE)) { p_ptr->sh_fire = p_ptr->sh_fire_fix = TRUE; csheet_boni[i-INVEN_WIELD].c…
4022 …if (f5 & (TR5_SH_COLD)) { p_ptr->sh_cold = p_ptr->sh_cold_fix = TRUE; csheet_boni[i-INVEN_WIELD].c…
4023 …if (f3 & (TR3_SH_ELEC)) { p_ptr->sh_elec = p_ptr->sh_elec_fix = TRUE; csheet_boni[i-INVEN_WIELD].c…
4024 …if (f3 & (TR3_NO_MAGIC)) { p_ptr->anti_magic = TRUE; csheet_boni[i-INVEN_WIELD].cb[6] |= CB7_RAMSH…
4025 …if (f3 & (TR3_NO_TELE)) { p_ptr->anti_tele = TRUE; csheet_boni[i-INVEN_WIELD].cb[4] |= CB5_ITELE; }
4029 if (f4 & (TR4_IM_NETHER)) p_ptr->immune_neth = TRUE;
4049 if (f4 & (TR4_BLACK_BREATH)) p_ptr->black_breath_tmp = TRUE;
4064 if (o_ptr->tval == TV_SHIELD && p_ptr->heavy_shield)
4065 p_ptr->ac += o_ptr->ac / 2;
4068 p_ptr->ac += o_ptr->ac;
4074 if (o_ptr->tval == TV_SHIELD && p_ptr->heavy_shield)
4075 p_ptr->dis_ac += o_ptr->ac / 2;
4078 p_ptr->dis_ac += o_ptr->ac;
4082 if (o_ptr->tval == TV_SHIELD && p_ptr->heavy_shield)
4083 p_ptr->to_a += o_ptr->to_a / 2;
4085 p_ptr->to_a += o_ptr->to_a;
4087 p_ptr->to_a += o_ptr->to_a;
4093 if (o_ptr->tval == TV_SHIELD && p_ptr->heavy_shield)
4094 p_ptr->dis_to_a += o_ptr->to_a / 2;
4096 p_ptr->dis_to_a += o_ptr->to_a;
4098 p_ptr->dis_to_a += o_ptr->to_a;
4130 …if (f1 & TR1_VAMPIRIC) { p_ptr->vampiric_ranged = 100; csheet_boni[i-INVEN_WIELD].cb[6] |= CB7_RVA…
4135 if (f1 & TR1_BLOWS) { p_ptr->extra_blows += pval; csheet_boni[i-INVEN_WIELD].blow += pval; }
4136 if (f5 & TR5_CRIT) { p_ptr->xtra_crit += pval; csheet_boni[i-INVEN_WIELD].crit += pval; }
4139 …if (f5 & TR5_IMPACT) p_ptr->impact = TRUE; /* non-weapons/tools, so this could be gloves or jewelr…
4145 …if (p_ptr->vampiric_melee < NON_WEAPON_VAMPIRIC_CHANCE) p_ptr->vampiric_melee = NON_WEAPON_VAMPIRI…
4146 …if (p_ptr->vampiric_ranged < NON_WEAPON_VAMPIRIC_CHANCE_RANGED) p_ptr->vampiric_ranged = NON_WEAPO…
4151 …if (o_ptr->xtra2 & 0x01) { p_ptr->immune_fire = TRUE; csheet_boni[i-INVEN_WIELD].cb[0] |= CB1_IFIR…
4152 …if (o_ptr->xtra2 & 0x02) { p_ptr->immune_cold = TRUE; csheet_boni[i-INVEN_WIELD].cb[0] |= CB1_ICOL…
4153 …if (o_ptr->xtra2 & 0x04) { p_ptr->immune_elec = TRUE; csheet_boni[i-INVEN_WIELD].cb[1] |= CB2_IELE…
4154 …if (o_ptr->xtra2 & 0x08) { p_ptr->immune_acid = TRUE; csheet_boni[i-INVEN_WIELD].cb[1] |= CB2_IACI…
4155 …if (o_ptr->xtra2 & 0x10) { p_ptr->immune_poison = TRUE; csheet_boni[i-INVEN_WIELD].cb[1] |= CB2_IP…
4159 p_ptr->to_h += o_ptr->to_h;
4160 p_ptr->to_d += o_ptr->to_d;
4163 if (object_known_p(Ind, o_ptr)) p_ptr->dis_to_h += o_ptr->to_h;
4164 if (object_known_p(Ind, o_ptr)) p_ptr->dis_to_d += o_ptr->to_d;
4168 p_ptr->antimagic += am_bonus;
4170 p_ptr->antimagic_dis += (am_bonus / 9);
4172 p_ptr->antimagic_dis += (am_bonus / 15);
4176 if (p_ptr->mode & MODE_HARD) p_ptr->to_m = (p_ptr->to_m * 2) / 3;
4179 if (p_ptr->bless_temp_luck) {
4180 p_ptr->luck += p_ptr->bless_temp_luck_power;
4182 csheet_boni[14].luck += p_ptr->bless_temp_luck_power;
4201 p_ptr->luck += equipment_set_bonus;
4207 if (p_ptr->antimagic > ANTIMAGIC_CAP) p_ptr->antimagic = ANTIMAGIC_CAP; /* AM cap */
4208 if (p_ptr->luck < -10) p_ptr->luck = -10; /* luck caps at -10 */
4209 if (p_ptr->luck > 40) p_ptr->luck = 40; /* luck caps at 40 */
4211 old_sun_burn = p_ptr->sun_burn;
4212 p_ptr->sun_burn = FALSE;
4213 if ((p_ptr->prace == RACE_VAMPIRE ||
4214 (p_ptr->body_monster && r_info[p_ptr->body_monster].d_char == 'V'))
4215 && !p_ptr->ghost && !(p_ptr->global_event_temp & PEVF_INDOORS_00)
4217 && !(in_sector00(&p_ptr->wpos) && (sector00flags2 & LF2_INDOORS))) {
4219 if (!p_ptr->wpos.wz && !night_surface && //!(zcave[p_ptr->py][p_ptr->px].info & CAVE_ICKY) &&
4220 !p_ptr->resist_lite && (TOOL_EQUIPPED(p_ptr) != SV_TOOL_WRAPPING) &&
4222 !(zcave[p_ptr->py][p_ptr->px].info & CAVE_PROT) &&
4223 !(f_info[zcave[p_ptr->py][p_ptr->px].feat].flags1 & FF1_PROTECTED) &&
4224 zcave[p_ptr->py][p_ptr->px].feat != FEAT_SHOP) {
4225 p_ptr->sun_burn = TRUE;
4228 if (p_ptr->body_monster != RI_VAMPIRE_BAT) {
4231 if (p_ptr->total_winner) i = (i + 1) / 2;//1..3
4232 p_ptr->drain_life += i;
4233 } else p_ptr->drain_life++;
4239 if (p_ptr->stun > 50) {
4240 p_ptr->to_h /= 2;
4241 p_ptr->dis_to_h /= 2;
4242 p_ptr->to_d /= 2;
4243 p_ptr->dis_to_d /= 2;
4244 } else if (p_ptr->stun) {
4245 p_ptr->to_h = (p_ptr->to_h * 2) / 3;
4246 p_ptr->dis_to_h = (p_ptr->dis_to_h * 2) / 3;
4247 p_ptr->to_d = (p_ptr->to_d * 2) / 3;
4248 p_ptr->dis_to_d = (p_ptr->dis_to_h * 2) / 3;
4252 if (p_ptr->adrenaline) {
4255 i = p_ptr->lev / 7;
4257 p_ptr->stat_add[A_CON] += i;
4258 p_ptr->stat_add[A_STR] += i;
4259 p_ptr->stat_add[A_DEX] += (i + 1) / 2;
4260 p_ptr->to_h += 12;
4261 p_ptr->dis_to_h += 12;
4262 if (p_ptr->adrenaline & 1) {
4263 p_ptr->to_d += 8;
4264 p_ptr->dis_to_d += 8;
4266 if (p_ptr->adrenaline & 2) p_ptr->extra_blows++;
4267 p_ptr->to_a -= 20;
4268 p_ptr->dis_to_a -= 20;
4272 …if (p_ptr->zeal) p_ptr->extra_blows += p_ptr->zeal_power / 10 > 3 ? 3 : (p_ptr->zeal_power / 10 < …
4273 else if (p_ptr->mindboost && p_ptr->mindboost_power >= 65) p_ptr->extra_blows++;
4275 if (p_ptr->mindboost) p_ptr->skill_sav += p_ptr->mindboost_power / 5;
4278 if (p_ptr->tim_ffall || p_ptr->tim_lev) p_ptr->feather_fall = TRUE;
4279 if (p_ptr->tim_lev) p_ptr->levitate = TRUE;
4282 if (p_ptr->tim_esp) {
4284 p_ptr->telepathy |= ESP_ALL;
4288 if (p_ptr->tim_invis_power > p_ptr->tim_invis_power2)
4289 p_ptr->invis = p_ptr->tim_invis_power;
4291 p_ptr->invis = p_ptr->tim_invis_power2;
4294 if (p_ptr->tim_deflect) p_ptr->reflect = TRUE;
4297 if (p_ptr->hero || (p_ptr->mindboost && p_ptr->mindboost_power >= 5)) {
4298 p_ptr->to_h += 12;
4299 p_ptr->dis_to_h += 12;
4303 if (p_ptr->shero) {
4305 p_ptr->to_h += 5;//24
4306 p_ptr->dis_to_h += 5;//24
4307 p_ptr->to_d += 10;
4308 p_ptr->dis_to_d += 10;
4310 p_ptr->to_a -= 10;//10
4311 p_ptr->dis_to_a -= 10;//10
4314 p_ptr->stat_add[A_STR] += 10;
4318 if (p_ptr->berserk) {
4319 p_ptr->to_h -= 5;
4320 p_ptr->dis_to_h -= 5;
4321 p_ptr->to_d += 15;
4322 p_ptr->dis_to_d += 15;
4323 p_ptr->to_a -= 10;
4324 p_ptr->dis_to_a -= 10;
4325 p_ptr->extra_blows++;
4329 if (p_ptr->fury) {
4330 p_ptr->to_h -= 10;
4331 p_ptr->dis_to_h -= 10;
4332 p_ptr->to_d += 20;
4333 p_ptr->dis_to_d += 20;
4334 p_ptr->pspeed += 5;
4335 p_ptr->to_a -= 30;
4336 p_ptr->dis_to_a -= 30;
4340 if (p_ptr->fast) p_ptr->pspeed += p_ptr->fast_mod;
4343 if (p_ptr->slow) p_ptr->pspeed -= 10;
4346 if (p_ptr->tim_invis) p_ptr->see_inv = TRUE;
4349 if (p_ptr->tim_infra) {
4351 p_ptr->see_infra += 5;
4355 if (p_ptr->resist_chaos) p_ptr->resist_conf = TRUE;
4358 if (p_ptr->res_fear_temp || p_ptr->hero || p_ptr->shero ||
4359 p_ptr->fury || p_ptr->berserk || p_ptr->mindboost)
4360 p_ptr->resist_fear = TRUE;
4364 if (p_ptr->telepathy != old_telepathy) p_ptr->update |= (PU_MONSTERS);
4367 if (p_ptr->see_inv != old_see_inv) p_ptr->update |= (PU_MONSTERS);
4370 if (p_ptr->st_anchor) {
4371 p_ptr->anti_tele = TRUE;
4372 p_ptr->resist_continuum = TRUE;
4377 if (p_ptr->food >= PY_FOOD_MAX) p_ptr->pspeed -= 10;
4383 if (p_ptr->searching) {
4384 int stealth = get_skill(p_ptr, SKILL_STEALTH);
4385 int sneakiness = get_skill(p_ptr, SKILL_SNEAKINESS);
4386 p_ptr->pspeed -= 10 - sneakiness / 7;
4390 p_ptr->skill_stl = p_ptr->skill_stl + stealth / 10;
4395 if (p_ptr->skill_srh >= 0) p_ptr->skill_srh = (p_ptr->skill_srh * (sneakiness + 50)) / 50;
4401 if (p_ptr->cloaked) {
4405 if (p_ptr->cur_lite) break_cloaking(Ind, 0);
4407 if (p_ptr->cur_lite) p_ptr->cur_lite = 1; /* dim it */
4410 if (p_ptr->cloaked == 1) {
4411 p_ptr->pspeed -= 10 - get_skill_scale(p_ptr, SKILL_SNEAKINESS, 3);
4412 csheet_boni[14].spd -= 10 - get_skill_scale(p_ptr, SKILL_SNEAKINESS, 3);
4413 p_ptr->skill_stl = p_ptr->skill_stl + 25;
4415 p_ptr->skill_srh = p_ptr->skill_srh + 10;
4419 if (p_ptr->shadow_running) { p_ptr->pspeed += 10; csheet_boni[14].spd += 10; }
4421 if (p_ptr->sh_fire_tim) p_ptr->sh_fire = TRUE;
4422 if (p_ptr->sh_cold_tim) p_ptr->sh_cold = TRUE;
4423 if (p_ptr->sh_elec_tim) p_ptr->sh_elec = TRUE;
4427 if (!is_admin(p_ptr) && p_ptr->to_l > 3) p_ptr->to_l = 3;
4435 top = modify_stat_value(p_ptr->stat_max[i], p_ptr->stat_add[i]);
4438 if (p_ptr->stat_top[i] != top) {
4440 p_ptr->stat_top[i] = top;
4443 p_ptr->redraw |= (PR_STATS);
4445 p_ptr->window |= (PW_PLAYER);
4450 use = modify_stat_value(p_ptr->stat_cur[i], p_ptr->stat_add[i]);
4453 if (p_ptr->stat_use[i] != use) {
4455 p_ptr->stat_use[i] = use;
4458 p_ptr->redraw |= (PR_STATS);
4460 p_ptr->window |= (PW_PLAYER);
4472 if (p_ptr->stat_ind[i] != ind) {
4474 p_ptr->stat_ind[i] = ind;
4477 if (i == A_CON) p_ptr->update |= (PU_HP);
4481 p_ptr->update |= (PU_MANA);
4484 p_ptr->window |= (PW_PLAYER);
4490 p_ptr->cumber_armor = FALSE;
4492 if (((armour_weight(p_ptr) - (100 + get_skill_scale(p_ptr, SKILL_COMBAT, 300)
4493 + adj_str_hold[p_ptr->stat_ind[A_STR]] * 6)) / 10) > 0) {
4495 p_ptr->cumber_armor = TRUE;
4498 if (p_ptr->old_cumber_armor != p_ptr->cumber_armor) {
4500 if (p_ptr->cumber_armor)
4506 p_ptr->old_cumber_armor = p_ptr->cumber_armor;
4510 p_ptr->rogue_heavyarmor = rogue_heavy_armor(p_ptr);
4511 if (p_ptr->old_rogue_heavyarmor != p_ptr->rogue_heavyarmor) {
4514 if (p_ptr->rogue_heavyarmor) {
4518 if (!p_ptr->warning_dual && p_ptr->dual_wield && p_ptr->pclass != CLASS_ROGUE) {
4519 p_ptr->warning_dual = 1;
4523 s_printf("warning_dual: %s\n", p_ptr->name);
4527 else if (armour_weight(p_ptr)) {
4528 if (p_ptr->pclass == CLASS_ROGUE || p_ptr->dual_wield) {
4535 else if (p_ptr->pclass == CLASS_ROGUE || p_ptr->dual_wield) {
4541 p_ptr->old_rogue_heavyarmor = p_ptr->rogue_heavyarmor;
4544 if (p_ptr->stormbringer && !suppress_boni) {
4545 if (p_ptr->cloaked) {
4549 if (p_ptr->shadow_running) {
4554 if (p_ptr->aggravate && !suppress_boni) {
4555 if (p_ptr->cloaked) {
4560 if (p_ptr->inventory[INVEN_WIELD].k_idx &&
4561 (k_info[p_ptr->inventory[INVEN_WIELD].k_idx].flags4 & (TR4_MUST2H | TR4_SHOULD2H))
4563 if (p_ptr->cloaked && !instakills(Ind)) {
4567 if (p_ptr->shadow_running && !instakills(Ind)) {
4572 if (p_ptr->inventory[INVEN_ARM].k_idx && p_ptr->inventory[INVEN_ARM].tval == TV_SHIELD
4574 if (p_ptr->cloaked) {
4578 if (p_ptr->shadow_running) {
4584 p_ptr->monk_heavyarmor = monk_heavy_armor(p_ptr);
4585 if (p_ptr->old_monk_heavyarmor != p_ptr->monk_heavyarmor) {
4586 if (p_ptr->monk_heavyarmor)
4590 p_ptr->old_monk_heavyarmor = p_ptr->monk_heavyarmor;
4592 if (get_skill(p_ptr, SKILL_MARTIAL_ARTS) && !monk_heavy_armor(p_ptr)) {
4593 long int k = get_skill_scale(p_ptr, SKILL_MARTIAL_ARTS, 5), w = 0;
4597 w = p_ptr->total_weight;
4606 p_ptr->cumber_weight = FALSE;
4610 if (get_skill(p_ptr, SKILL_MARTIAL_ARTS) > 9)
4611 { p_ptr->feather_fall = TRUE; csheet_boni[14].cb[4] |= CB5_RFALL; }
4614 if (get_skill(p_ptr, SKILL_MARTIAL_ARTS) > 14)
4615 { p_ptr->resist_fear = TRUE; csheet_boni[14].cb[4] |= CB5_RFEAR; }
4618 if (get_skill(p_ptr, SKILL_MARTIAL_ARTS) > 19)
4619 { p_ptr->resist_conf = TRUE; csheet_boni[14].cb[2] |= CB3_RCONF; }
4622 if (get_skill(p_ptr, SKILL_MARTIAL_ARTS) > 24)
4623 { p_ptr->free_act = TRUE; csheet_boni[14].cb[4] |= CB5_RPARA; }
4626 if (get_skill(p_ptr, SKILL_MARTIAL_ARTS) > 29)
4627 { p_ptr->can_swim = TRUE; csheet_boni[14].cb[12] |= CB13_XSWIM; }
4630 if (get_skill(p_ptr, SKILL_MARTIAL_ARTS) > 39)
4631 { p_ptr->climb = TRUE; csheet_boni[14].cb[6] |= CB7_RCLMB; }
4634 if (get_skill(p_ptr, SKILL_MARTIAL_ARTS) > 49) {
4635 p_ptr->levitate = TRUE; csheet_boni[14].cb[6] |= CB7_RRLEV;
4636 p_ptr->feather_fall = TRUE; csheet_boni[14].cb[4] |= CB5_RFALL;
4640 if (p_ptr->inventory[INVEN_ARM].k_idx) w += k_info[p_ptr->inventory[INVEN_ARM].k_idx].weight;
4641 if (p_ptr->inventory[INVEN_BOW].k_idx) w += k_info[p_ptr->inventory[INVEN_BOW].k_idx].weight;
4642 … if (p_ptr->inventory[INVEN_WIELD].k_idx) w += k_info[p_ptr->inventory[INVEN_WIELD].k_idx].weight;
4645 p_ptr->pspeed += k; csheet_boni[14].spd += k;
4648 p_ptr->skill_stl += k; csheet_boni[14].slth += k;
4651 else p_ptr->cumber_weight = TRUE;
4653 if (p_ptr->old_cumber_weight != p_ptr->cumber_weight) {
4654 if (p_ptr->cumber_weight)
4658 p_ptr->old_cumber_weight = p_ptr->cumber_weight;
4664 if (!p_ptr->inventory[INVEN_BOW].k_idx &&
4666 if (p_ptr->inventory[INVEN_BOW].tval != TV_BOW &&
4668 !p_ptr->inventory[INVEN_WIELD].k_idx &&
4669 …(!p_ptr->inventory[INVEN_ARM].k_idx || p_ptr->inventory[INVEN_ARM].tval == TV_SHIELD) && /* for du…
4670 !p_ptr->cumber_weight) {
4671 int marts = get_skill_scale(p_ptr, SKILL_MARTIAL_ARTS, 60);
4675 martsweight = p_ptr->inventory[INVEN_BODY].weight;
4676 …martscapacity = get_skill_scale(p_ptr, SKILL_MARTIAL_ARTS, 80) + 20;//(90/100/110) wire fleece/har…
4677 if (!(p_ptr->inventory[INVEN_BODY].k_idx)) {
4678 p_ptr->to_a += martsbonus;
4679 p_ptr->dis_to_a += martsbonus;
4682 p_ptr->to_a += (martsbonus * (martscapacity - martsweight / 3) / (martscapacity + 40));
4683 p_ptr->dis_to_a += (martsbonus * (martscapacity - martsweight / 3) / (martscapacity + 40));
4687 martsweight = p_ptr->inventory[INVEN_OUTER].weight;
4688 martscapacity = get_skill_scale(p_ptr, SKILL_MARTIAL_ARTS, 40);
4689 if (!(p_ptr->inventory[INVEN_OUTER].k_idx) && (marts > 15)) {
4690 p_ptr->to_a += martsbonus;
4691 p_ptr->dis_to_a += martsbonus;
4694 p_ptr->to_a += (martsbonus * (martscapacity - martsweight / 3) / (martscapacity + 15));
4695 p_ptr->dis_to_a += (martsbonus * (martscapacity - martsweight / 3) / (martscapacity + 15));
4699 martsweight = p_ptr->inventory[INVEN_ARM].weight;
4700 martscapacity = get_skill_scale(p_ptr, SKILL_MARTIAL_ARTS, 30);
4701 if ((!p_ptr->inventory[INVEN_ARM].k_idx ||
4702 p_ptr->inventory[INVEN_ARM].tval != TV_SHIELD) && (marts > 10)) { /* for dual-wielders */
4703 p_ptr->to_a += martsbonus;
4704 p_ptr->dis_to_a += martsbonus;
4707 p_ptr->to_a += (martsbonus * (martscapacity - martsweight) / (martscapacity + 0));
4708 p_ptr->dis_to_a += (martsbonus * (martscapacity - martsweight) / (martscapacity + 0));
4712 martsweight = p_ptr->inventory[INVEN_HEAD].weight;
4713 martscapacity = get_skill_scale(p_ptr, SKILL_MARTIAL_ARTS, 50);
4714 if (!(p_ptr->inventory[INVEN_HEAD].k_idx)&& (marts > 4)) {
4715 p_ptr->to_a += martsbonus;
4716 p_ptr->dis_to_a += martsbonus;
4719 p_ptr->to_a += (martsbonus * (martscapacity - martsweight / 3) / (martscapacity + 20));
4720 p_ptr->dis_to_a += (martsbonus * (martscapacity - martsweight / 3) / (martscapacity + 20));
4724 martsweight = p_ptr->inventory[INVEN_HANDS].weight;
4725 martscapacity = get_skill_scale(p_ptr, SKILL_MARTIAL_ARTS, 20);
4726 if (!(p_ptr->inventory[INVEN_HANDS].k_idx)) {
4727 p_ptr->to_a += martsbonus;
4728 p_ptr->dis_to_a += martsbonus;
4731 p_ptr->to_a += (martsbonus * (martscapacity - martsweight / 2) / (martscapacity + 10));
4732 p_ptr->dis_to_a += (martsbonus * (martscapacity - martsweight / 2) / (martscapacity + 10));
4736 martsweight = p_ptr->inventory[INVEN_FEET].weight;
4737 martscapacity = get_skill_scale(p_ptr, SKILL_MARTIAL_ARTS, 45);
4738 if (!(p_ptr->inventory[INVEN_FEET].k_idx)) {
4739 p_ptr->to_a += martsbonus;
4740 p_ptr->dis_to_a += martsbonus;
4743 p_ptr->to_a += (martsbonus * (martscapacity - martsweight / 3) / (martscapacity + 20));
4744 p_ptr->dis_to_a += (martsbonus * (martscapacity - martsweight / 3) / (martscapacity + 20));
4750 p_ptr->to_a += ((int)(adj_dex_ta[p_ptr->stat_ind[A_DEX]]) - 128);
4751 p_ptr->to_d_melee += ((int)(adj_str_td[p_ptr->stat_ind[A_STR]]) - 128);
4753 p_ptr->to_h_melee += ((int)(adj_dex_th[p_ptr->stat_ind[A_DEX]]) - 128);
4755 p_ptr->to_h_melee = ((int)((p_ptr->to_h_melee * adj_dex_th_mul[p_ptr->stat_ind[A_DEX]]) / 100));
4762 p_ptr->dis_to_a += ((int)(adj_dex_ta[p_ptr->stat_ind[A_DEX]]) - 128);
4769 p_ptr->to_h_ranged += ((int)(adj_dex_th[p_ptr->stat_ind[A_DEX]]) - 128);
4771 …if (p_ptr->to_h_ranged > 0) p_ptr->to_h_ranged = ((int)((p_ptr->to_h_ranged * adj_dex_th_mul[p_ptr
4772 …else p_ptr->to_h_ranged = ((int)((p_ptr->to_h_ranged * 100) / adj_dex_th_mul[p_ptr->stat_ind[A_DEX…
4777 if (p_ptr->body_monster) {
4778 if (p_ptr->pclass == CLASS_DRUID)
4783 else if ((p_ptr->pclass == CLASS_SHAMAN) && mimic_shaman_fulleq(r_ptr->d_char))
4794 if (toac < (p_ptr->ac + p_ptr->to_a)) {
4795 p_ptr->ac = (p_ptr->ac * 3) / 4;
4796 p_ptr->to_a = ((p_ptr->to_a * 3) + toac) / 4;
4797 p_ptr->dis_ac = (p_ptr->dis_ac * 3) / 4;
4798 p_ptr->dis_to_a = ((p_ptr->dis_to_a * 3) + toac) / 4;
4800 p_ptr->ac = (p_ptr->ac * 1) / 2;
4801 p_ptr->to_a = ((p_ptr->to_a * 1) + (toac * 1)) / 2;
4802 p_ptr->dis_ac = (p_ptr->dis_ac * 1) / 2;
4803 p_ptr->dis_to_a = ((p_ptr->dis_to_a * 1) + (toac * 1)) / 2;
4814 if (p_ptr->invuln) {
4815 p_ptr->to_a += 100;
4816 p_ptr->dis_to_a += 100;
4820 if (p_ptr->blessed) {
4821 p_ptr->to_a += p_ptr->blessed_power;
4822 p_ptr->dis_to_a += p_ptr->blessed_power;
4823 p_ptr->to_h += p_ptr->blessed_power / 2;
4824 p_ptr->dis_to_h += p_ptr->blessed_power / 2;
4828 if (p_ptr->shield) {
4829 p_ptr->to_a += p_ptr->shield_power;
4830 p_ptr->dis_to_a += p_ptr->shield_power;
4833 if (p_ptr->combat_stance == 2) {
4834 p_ptr->to_a -= 30;
4835 p_ptr->dis_to_a -= 30;
4838 if (p_ptr->mode & MODE_HARD) {
4839 if (p_ptr->dis_to_a > 0) p_ptr->dis_to_a = (p_ptr->dis_to_a * 2) / 3;
4840 if (p_ptr->to_a > 0) p_ptr->to_a = (p_ptr->to_a * 2) / 3;
4845 if ((p_ptr->dis_ac != old_dis_ac) || (p_ptr->dis_to_a != old_dis_to_a)) {
4847 p_ptr->redraw |= (PR_ARMOR);
4849 p_ptr->window |= (PW_PLAYER);
4854 hold = adj_str_hold[p_ptr->stat_ind[A_STR]];
4857 o_ptr = &p_ptr->inventory[INVEN_BOW];
4860 p_ptr->heavy_shoot = FALSE;
4865 p_ptr->to_h += 2 * (hold - o_ptr->weight / 10);
4866 p_ptr->dis_to_h += 2 * (hold - o_ptr->weight / 10);
4869 p_ptr->heavy_shoot = TRUE;
4873 if (o_ptr->k_idx && !p_ptr->heavy_shoot) {
4874 int archery = get_archery_skill(p_ptr);
4876 p_ptr->tval_ammo = 0;
4881 p_ptr->tval_ammo = TV_SHOT;
4885 p_ptr->tval_ammo = TV_ARROW;
4889 p_ptr->tval_ammo = TV_BOLT;
4894 p_ptr->to_h_ranged += get_skill_scale(p_ptr, archery, 25);
4897 p_ptr->num_fire += get_skill_scale(p_ptr, archery, 500) / 100;
4898 csheet_boni[14].shot += get_skill_scale(p_ptr, archery, 500) / 100;
4901 p_ptr->num_fire += get_skill_scale(p_ptr, archery, 500) / 125;
4902 csheet_boni[14].shot += get_skill_scale(p_ptr, archery, 500) / 125;
4907 if (get_skill_scale(p_ptr, archery, 500) >= 125) { //EM
4908 p_ptr->xtra_might++;
4911 if (get_skill_scale(p_ptr, archery, 500) >= 250) { //ES
4912 p_ptr->num_fire++;
4915 if (get_skill_scale(p_ptr, archery, 500) >= 375) { //EM
4916 p_ptr->xtra_might++;
4919 if (get_skill_scale(p_ptr, archery, 500) == 500) { //ES
4920 p_ptr->num_fire++;
4924 p_ptr->num_fire += get_skill_scale(p_ptr, archery, 500) / 250;
4925 csheet_boni[14].shot += get_skill_scale(p_ptr, archery, 500) / 250;
4926 p_ptr->xtra_might += get_skill_scale(p_ptr, archery, 500) / 250;
4927 csheet_boni[14].migh += get_skill_scale(p_ptr, archery, 500) / 250;
4931 if (get_skill_scale(p_ptr, archery, 500) >= 500) { p_ptr->num_fire++; csheet_boni[14].shot++; }
4932 if (get_skill_scale(p_ptr, archery, 500) >= 333) { p_ptr->num_fire++; csheet_boni[14].shot++; }
4933 if (get_skill_scale(p_ptr, archery, 500) >= 166) { p_ptr->num_fire++; csheet_boni[14].shot++; }
4936 p_ptr->to_d_ranged += get_skill_scale(p_ptr, archery, 20);
4950 p_ptr->xtra_might += get_skill_scale(p_ptr, archery, 1);
4951 csheet_boni[14].migh += get_skill_scale(p_ptr, archery, 1);
4953 p_ptr->xtra_might += (get_skill(p_ptr, SKILL_ARCHERY) / 50);
4957 p_ptr->to_d_ranged += get_skill_scale(p_ptr, SKILL_ARCHERY, 10);
4962 p_ptr->num_fire += extra_shots;
4965 if (p_ptr->num_fire < 1) p_ptr->num_fire = 1;
4977 p_ptr->num_spell += extra_spells;
4981 o_ptr = &p_ptr->inventory[INVEN_TOOL];
4985 p_ptr->skill_dig += (o_ptr->weight / 10);
4988 p_ptr->skill_dig += o_ptr->to_h;
4989 p_ptr->skill_dig += o_ptr->to_d;
4991 p_ptr->skill_dig += p_ptr->skill_dig *
4992 get_skill_scale(p_ptr, SKILL_DIG, 200) / 100;
4997 o_ptr = &p_ptr->inventory[INVEN_ARM];
4999 p_ptr->heavy_shield = FALSE;
5002 p_ptr->heavy_shield = TRUE;
5008p_ptr->shield_deflect = o_ptr->ac * 10; /* add a figure by multiplying by _10_ for more accuracy */
5010p_ptr->shield_deflect = 20 * (o_ptr->ac + 3); /* add a figure by multiplying by 2*_10_ for more ac…
5013 p_ptr->shield_deflect /= malus > 0 ? 10 + (malus + 4) / 3 : 10;
5016 switch (p_ptr->pclass) {
5017 case CLASS_ADVENTURER: p_ptr->shield_deflect = (p_ptr->shield_deflect * 4 + 2) / 6; break;
5018 case CLASS_WARRIOR: p_ptr->shield_deflect = p_ptr->shield_deflect; break;
5019 case CLASS_PRIEST: p_ptr->shield_deflect = (p_ptr->shield_deflect * 3 + 3) / 6; break;
5020 case CLASS_MAGE: p_ptr->shield_deflect = (p_ptr->shield_deflect * 2 + 4) / 6; break;
5021 case CLASS_ARCHER: p_ptr->shield_deflect = (p_ptr->shield_deflect * 4 + 2) / 6; break;
5022 case CLASS_ROGUE: p_ptr->shield_deflect = (p_ptr->shield_deflect * 4 + 2) / 6; break;
5023 case CLASS_MIMIC: p_ptr->shield_deflect = (p_ptr->shield_deflect * 5 + 1) / 6; break;
5024 case CLASS_RANGER: p_ptr->shield_deflect = (p_ptr->shield_deflect * 4 + 2) / 6; break;
5025 case CLASS_PALADIN: p_ptr->shield_deflect = p_ptr->shield_deflect; break;
5026 case CLASS_SHAMAN: p_ptr->shield_deflect = (p_ptr->shield_deflect * 3 + 3) / 6; break;
5027 case CLASS_DRUID: p_ptr->shield_deflect = (p_ptr->shield_deflect * 4 + 2) / 6; break;
5028 case CLASS_RUNEMASTER: p_ptr->shield_deflect = (p_ptr->shield_deflect * 4 + 2) / 6; break;
5029 case CLASS_MINDCRAFTER: p_ptr->shield_deflect = (p_ptr->shield_deflect * 4 + 2) / 6; break;
5039 o_ptr = &p_ptr->inventory[INVEN_WIELD];
5041 …if (!o_ptr->k_idx && p_ptr->inventory[INVEN_ARM].k_idx && p_ptr->inventory[INVEN_ARM].tval != TV_S…
5042 o_ptr = &p_ptr->inventory[INVEN_ARM];
5044 p_ptr->heavy_wield = FALSE;
5049 p_ptr->weapon_parry = 10 + get_skill_scale(p_ptr, SKILL_MASTERY, 20);
5051 …if (!p_ptr->inventory[INVEN_ARM].k_idx) p_ptr->weapon_parry = 10 + get_skill_scale(p_ptr, SKILL_MA…
5052 else p_ptr->weapon_parry = 3 + get_skill_scale(p_ptr, SKILL_MASTERY, 7);
5054 if (!p_ptr->inventory[INVEN_ARM].k_idx || !p_ptr->inventory[INVEN_WIELD].k_idx)
5055 p_ptr->weapon_parry = 10 + get_skill_scale(p_ptr, SKILL_MASTERY, 10);
5056 else p_ptr->weapon_parry = 5 + get_skill_scale(p_ptr, SKILL_MASTERY, 10);
5058 p_ptr->weapon_parry = 5 + get_skill_scale(p_ptr, SKILL_MASTERY, 10);
5061 if (p_ptr->dual_wield && p_ptr->dual_mode && !p_ptr->rogue_heavyarmor)
5063 p_ptr->weapon_parry += 10;//pretty high, because independent of mastery skill^^
5066 switch (p_ptr->pclass) {
5067 case CLASS_ADVENTURER: p_ptr->weapon_parry = (p_ptr->weapon_parry * 4 + 2) / 6; break;
5068 case CLASS_WARRIOR: p_ptr->weapon_parry = p_ptr->weapon_parry; break;
5069 case CLASS_PRIEST: p_ptr->weapon_parry = (p_ptr->weapon_parry * 3 + 3) / 6; break;
5070 case CLASS_MAGE: p_ptr->weapon_parry = (p_ptr->weapon_parry * 2 + 4) / 6; break;
5071 case CLASS_ARCHER: p_ptr->weapon_parry = (p_ptr->weapon_parry * 4 + 2) / 6; break;
5072 case CLASS_ROGUE: p_ptr->weapon_parry = p_ptr->weapon_parry; break;
5073 case CLASS_MIMIC: p_ptr->weapon_parry = (p_ptr->weapon_parry * 5 + 1) / 6; break;
5074 case CLASS_RANGER: p_ptr->weapon_parry = p_ptr->weapon_parry; break;
5075 case CLASS_PALADIN: p_ptr->weapon_parry = (p_ptr->weapon_parry * 5 + 1) / 6; break;
5076 case CLASS_SHAMAN: p_ptr->weapon_parry = (p_ptr->weapon_parry * 3 + 3) / 6; break;
5077 case CLASS_DRUID: p_ptr->weapon_parry = (p_ptr->weapon_parry * 4 + 2) / 6; break;
5078 case CLASS_RUNEMASTER: p_ptr->weapon_parry = (p_ptr->weapon_parry * 4 + 2) / 6; break;
5079 case CLASS_MINDCRAFTER: p_ptr->weapon_parry = (p_ptr->weapon_parry * 5 + 1) / 6; break;
5086 o_ptr = &p_ptr->inventory[INVEN_WIELD];
5089 p_ptr->to_h += 2 * (hold - o_ptr->weight / 10);
5090 p_ptr->dis_to_h += 2 * (hold - o_ptr->weight / 10);
5092 if (p_ptr->weapon_parry > 0) p_ptr->weapon_parry /= 2; /* easy for now */
5095 p_ptr->heavy_wield = TRUE;
5100 o_ptr = &p_ptr->inventory[INVEN_ARM];
5103 p_ptr->to_h += 2 * (hold - o_ptr->weight / 10);
5104 p_ptr->dis_to_h += 2 * (hold - o_ptr->weight / 10);
5106 if (p_ptr->weapon_parry > 0) p_ptr->weapon_parry /= 2; /* easy for now */
5109 p_ptr->heavy_wield = TRUE;
5114 o_ptr = &p_ptr->inventory[INVEN_WIELD];
5115 o2_ptr = &p_ptr->inventory[INVEN_ARM];
5116 if ((o_ptr->k_idx || (o2_ptr->k_idx && o2_ptr->tval != TV_SHIELD)) && !p_ptr->heavy_wield) {
5119 p_ptr->num_blow = calc_blows_weapons(Ind);
5122 if (get_weaponmastery_skill(p_ptr, o_ptr) != -1)
5123 csheet_boni[14].blow += get_skill_scale(p_ptr, get_weaponmastery_skill(p_ptr, o_ptr), 2);
5125 p_ptr->num_blow += p_ptr->extra_blows;
5129 if (get_weaponmastery_skill(p_ptr, &p_ptr->inventory[INVEN_WIELD]) != -1)
5130 lev1 = get_skill(p_ptr, get_weaponmastery_skill(p_ptr, &p_ptr->inventory[INVEN_WIELD]));
5131 if (get_weaponmastery_skill(p_ptr, &p_ptr->inventory[INVEN_ARM]) != -1)
5132 lev2 = get_skill(p_ptr, get_weaponmastery_skill(p_ptr, &p_ptr->inventory[INVEN_ARM]));
5139 if (p_ptr->dual_mode) {
5140 p_ptr->to_h_melee += ((lev1 + lev2) / 2);
5141 p_ptr->to_d_melee += ((lev1 + lev2) / 6);
5143 p_ptr->to_h_melee += lev1;
5144 p_ptr->to_d_melee += lev1 / 3;
5150 if (get_skill(p_ptr, SKILL_MARTIAL_ARTS) && !o_ptr->k_idx &&
5152 !(p_ptr->inventory[INVEN_BOW].k_idx)) {
5154 p_ptr->inventory[INVEN_BOW].tval != TV_BOW) {
5156 int marts = get_skill_scale(p_ptr, SKILL_MARTIAL_ARTS, 50);
5157 p_ptr->num_blow = 0;
5160 if (marts > 0) { p_ptr->num_blow++; csheet_boni[14].blow++; }
5161 if (marts > 9) { p_ptr->num_blow++; csheet_boni[14].blow++; }
5162 if (marts > 19) { p_ptr->num_blow++; csheet_boni[14].blow++; }
5163 if (marts > 29) { p_ptr->num_blow++; csheet_boni[14].blow++; }
5165 if (marts > 39) { p_ptr->num_blow++; csheet_boni[14].blow++; }
5166 if (marts > 44) { p_ptr->num_blow++; csheet_boni[14].blow++; }
5167 if (marts > 49) { p_ptr->num_blow++; csheet_boni[14].blow++; }
5169 if (monk_heavy_armor(p_ptr)) p_ptr->num_blow /= 2;
5171 p_ptr->num_blow += 1 + p_ptr->extra_blows;
5173 if (!monk_heavy_armor(p_ptr)) {
5174 p_ptr->to_h_melee += (marts * 4) / 2;//was *3/2
5177 p_ptr->to_d_melee += ((marts * 3) / 5); /* new MA boost */
5179 p_ptr->to_d_melee += ((marts * 2) / 5); /* for better form influence of MA mimics */
5181 p_ptr->to_d_melee += (marts / 2); /* was 3 */
5187p_ptr->to_d_melee += 20 - (400 / (marts + 20)); /* get strong quickly and early - quite special ;-…
5191 p_ptr->to_d += 20 - (400 / (marts + 20)); /* get strong quickly and early - quite special ;-o */
5192 p_ptr->dis_to_d += 20 - (400 / (marts + 20));
5197 …if (p_ptr->cumber_armor && (p_ptr->to_h_melee > 0)) p_ptr->to_h_melee = (p_ptr->to_h_melee * 2) / …
5201 if (p_ptr->cumber_armor) {
5202 p_ptr->pspeed += get_skill_scale(p_ptr, SKILL_SNEAKINESS, 4);
5203 csheet_boni[14].spd += get_skill_scale(p_ptr, SKILL_SNEAKINESS, 4);
5205 p_ptr->pspeed += get_skill_scale(p_ptr, SKILL_SNEAKINESS, 7);
5206 csheet_boni[14].spd += get_skill_scale(p_ptr, SKILL_SNEAKINESS, 7);
5209 p_ptr->redraw |= (PR_SPEED | PR_EXTRA) ;
5212 if ((p_ptr->mode & MODE_HARD)) {
5213 if (p_ptr->pspeed > 110) {
5214 int speed = p_ptr->pspeed - 110;
5216 p_ptr->pspeed = speed + 110;
5218 if (p_ptr->num_blow > 1) p_ptr->num_blow--;
5222 if ((p_ptr->mode & MODE_PVP)) {
5224 if (p_ptr->pspeed > 110) {
5225 int sneak = get_skill_scale(p_ptr, SKILL_SNEAKINESS, 7), speed = p_ptr->pspeed - 110 - sneak;
5227 p_ptr->pspeed = speed + 110 + sneak;
5230 p_ptr->to_d = (p_ptr->to_d + 1) / 2;
5231 p_ptr->dis_to_d = (p_ptr->dis_to_d + 1) / 2;
5233 p_ptr->to_h = (p_ptr->to_h + 1) / 2;
5234 p_ptr->dis_to_h = (p_ptr->dis_to_h + 1) / 2;
5237 p_ptr->to_a = (p_ptr->to_a + 1) / 2;
5238 p_ptr->dis_to_a = (p_ptr->dis_to_a + 1) / 2;
5241 p_ptr->xtra_crit = (p_ptr->xtra_crit + 2) / 3;
5247 if ((p_ptr->inventory[INVEN_WIELD].k_idx ||
5248 (p_ptr->inventory[INVEN_ARM].k_idx && p_ptr->inventory[INVEN_ARM].tval != TV_SHIELD)) &&
5249 (!r_info[p_ptr->body_monster].body_parts[BODY_WEAPON]) &&
5250 (p_ptr->num_blow > 1)) p_ptr->num_blow = 1;
5253 if (get_skill(p_ptr, SKILL_MASTERY) && o_ptr->k_idx) {
5254 int lev = get_skill(p_ptr, SKILL_MASTERY);
5255 p_ptr->to_h_melee += lev / 3;
5256 p_ptr->to_d_melee += lev / 10;
5259 if (get_skill(p_ptr, SKILL_DODGE) && !p_ptr->rogue_heavyarmor)
5266 …int cur_wgt = armour_weight(p_ptr); /* change to worn_armour_weight if ever reactivated, and possi…
5268 temp_chance = get_skill_scale(p_ptr, SKILL_DODGE, 150);
5273 temp_chance -= p_ptr->total_weight / 100;
5275 temp_chance -= UNAWARENESS(p_ptr);
5279 p_ptr->dodge_level = temp_chance;
5290 …long int e = equip_weight(p_ptr), w = e - armour_weight(p_ptr), i = p_ptr->total_weight - e; /* po…
5308 i = (i * 100) / (100 + UNAWARENESS(p_ptr) * 4);
5314 p_ptr->dodge_level = i;
5319 p_ptr->icky_wield = FALSE;
5320 p_ptr->awkward_wield = FALSE;
5321 p_ptr->easy_wield = FALSE;
5322 p_ptr->awkward_shoot = FALSE;
5326 if (p_ptr->inventory[INVEN_WIELD].k_idx && p_ptr->inventory[INVEN_ARM].k_idx) {
5328 object_flags(&p_ptr->inventory[INVEN_WIELD], &f1, &f2, &f3, &f4, &f5, &f6, &esp);
5332 if (p_ptr->to_h > 0) p_ptr->to_h = (2 * p_ptr->to_h) / 3;
5333 if (p_ptr->to_d > 0) p_ptr->to_d = (2 * p_ptr->to_d) / 3;
5336 if (p_ptr->dis_to_h > 0) p_ptr->dis_to_h = (2 * p_ptr->dis_to_h) / 3;
5337 if (p_ptr->dis_to_d > 0) p_ptr->dis_to_d = (2 * p_ptr->dis_to_d) / 3;
5340 if (p_ptr->to_h_melee > 0) p_ptr->to_h_melee = (2 * p_ptr->to_h_melee) / 3;
5341 if (p_ptr->to_d_melee > 0) p_ptr->to_d_melee = (2 * p_ptr->to_d_melee) / 3;
5343 p_ptr->awkward_wield = TRUE;
5346 if (p_ptr->inventory[INVEN_WIELD].k_idx && !p_ptr->inventory[INVEN_ARM].k_idx) {
5347 object_flags(&p_ptr->inventory[INVEN_WIELD], &f1, &f2, &f3, &f4, &f5, &f6, &esp);
5348 if (f4 & TR4_COULD2H) p_ptr->easy_wield = TRUE;
5351 if (!p_ptr->inventory[INVEN_WIELD].k_idx &&
5352 p_ptr->inventory[INVEN_ARM].k_idx && p_ptr->inventory[INVEN_ARM].tval != TV_SHIELD) {
5353 object_flags(&p_ptr->inventory[INVEN_ARM], &f1, &f2, &f3, &f4, &f5, &f6, &esp);
5354 if (f4 & TR4_COULD2H) p_ptr->easy_wield = TRUE;
5360 i = armour_weight(p_ptr) / 10;
5363 p_ptr->to_h_ranged -= i;
5367 if (p_ptr->inventory[INVEN_BOW].k_idx && p_ptr->inventory[INVEN_ARM].k_idx
5368 && p_ptr->inventory[INVEN_ARM].tval == TV_SHIELD) {
5373 if (p_ptr->to_h_ranged >= 25) p_ptr->to_h_ranged = 0;
5375 …else if (p_ptr->to_h_ranged >= 0) p_ptr->to_h_ranged -= 10 + (p_ptr->to_h_ranged * (160 + p_ptr->i…
5376 else p_ptr->to_h_ranged -= 10;
5378 p_ptr->awkward_shoot = TRUE;
5382 if (p_ptr->inventory[INVEN_WIELD].k_idx &&
5383 (p_ptr->pclass == CLASS_PRIEST) && (!p_ptr->bless_blade) &&
5389 p_ptr->to_h = p_ptr->to_h * 3 / 5;
5390 p_ptr->to_d = p_ptr->to_d * 3 / 5;
5391 p_ptr->to_h_melee = p_ptr->to_h_melee * 3 / 5;
5392 p_ptr->to_d_melee = p_ptr->to_d_melee * 3 / 5;
5397 p_ptr->dis_to_h = p_ptr->dis_to_h * 3 / 5;
5398 p_ptr->dis_to_d = p_ptr->dis_to_d * 3 / 5;
5401 p_ptr->icky_wield = TRUE;
5404 if (p_ptr->body_monster) {
5442 if (d < p_ptr->to_d_melee)
5444 p_ptr->to_d_melee = (p_ptr->to_d_melee * 5 + d * 2) / 7;
5447 d = p_ptr->to_d_melee;
5449 p_ptr->to_d_melee = (p_ptr->to_d_melee + d) / 2;
5455 …if (p_ptr->dual_wield && p_ptr->dual_mode) p_ptr->to_h_melee = (p_ptr->to_h_melee * 17) / 20; /* 8…
5465 if ((p_ptr->combat_stance == 1) &&
5466 (p_ptr->inventory[INVEN_ARM].tval == TV_SHIELD)) switch (p_ptr->combat_stance_power) {
5468 case 0: p_ptr->shield_deflect += 8;
5469 p_ptr->dis_to_d = (p_ptr->dis_to_d * 7) / 10;
5470 p_ptr->to_d = (p_ptr->to_d * 7) / 10;
5471 p_ptr->to_d_melee = (p_ptr->to_d_melee * 7) / 10;
5472 p_ptr->to_d_ranged = (p_ptr->to_d_ranged * 5) / 10;
5474 case 1: p_ptr->shield_deflect += 10;
5475 p_ptr->dis_to_d = (p_ptr->dis_to_d * 7) / 10;
5476 p_ptr->to_d = (p_ptr->to_d * 7) / 10;
5477 p_ptr->to_d_melee = (p_ptr->to_d_melee * 7) / 10;
5478 p_ptr->to_d_ranged = (p_ptr->to_d_ranged * 5) / 10;
5480 case 2: p_ptr->shield_deflect += 12;
5481 p_ptr->dis_to_d = (p_ptr->dis_to_d * 7) / 10;
5482 p_ptr->to_d = (p_ptr->to_d * 7) / 10;
5483 p_ptr->to_d_melee = (p_ptr->to_d_melee * 7) / 10;
5484 p_ptr->to_d_ranged = (p_ptr->to_d_ranged * 5) / 10;
5486 case 3: p_ptr->shield_deflect += 20;
5487 p_ptr->dis_to_d = (p_ptr->dis_to_d * 8) / 10;
5488 p_ptr->to_d = (p_ptr->to_d * 8) / 10;
5489 p_ptr->to_d_melee = (p_ptr->to_d_melee * 8) / 10;
5490 p_ptr->to_d_ranged = (p_ptr->to_d_ranged * 5) / 10;
5495 if (p_ptr->combat_stance == 2) switch (p_ptr->combat_stance_power) {
5496 case 0: p_ptr->weapon_parry = (p_ptr->weapon_parry * 2) / 10;
5497 p_ptr->dodge_level = (p_ptr->dodge_level * 2) / 10;
5499 case 1: p_ptr->weapon_parry = (p_ptr->weapon_parry * 3) / 10;
5500 p_ptr->dodge_level = (p_ptr->dodge_level * 3) / 10;
5502 case 2: p_ptr->weapon_parry = (p_ptr->weapon_parry * 4) / 10;
5503 p_ptr->dodge_level = (p_ptr->dodge_level * 4) / 10;
5505 case 3: p_ptr->weapon_parry = (p_ptr->weapon_parry * 5) / 10;
5506 p_ptr->dodge_level = (p_ptr->dodge_level * 5) / 10;
5510 else if ((p_ptr->combat_stance == 1) &&
5511 (p_ptr->inventory[INVEN_ARM].tval != TV_SHIELD)) switch (p_ptr->combat_stance_power) {
5512 case 0: p_ptr->weapon_parry = (p_ptr->weapon_parry * 13) / 10;
5513 p_ptr->dis_to_d = (p_ptr->dis_to_d * 6) / 10;
5514 p_ptr->to_d = (p_ptr->to_d * 6) / 10;
5515 p_ptr->to_d_melee = (p_ptr->to_d_melee * 6) / 10;
5516 p_ptr->to_d_ranged = (p_ptr->to_d_ranged * 5) / 10;
5518 case 1: p_ptr->weapon_parry = (p_ptr->weapon_parry * 13) / 10;
5519 p_ptr->dis_to_d = (p_ptr->dis_to_d * 7) / 10;
5520 p_ptr->to_d = (p_ptr->to_d * 7) / 10;
5521 p_ptr->to_d_melee = (p_ptr->to_d_melee * 7) / 10;
5522 p_ptr->to_d_ranged = (p_ptr->to_d_ranged * 5) / 10;
5524 case 2: p_ptr->weapon_parry = (p_ptr->weapon_parry * 14) / 10;
5525 p_ptr->dis_to_d = (p_ptr->dis_to_d * 7) / 10;
5526 p_ptr->to_d = (p_ptr->to_d * 7) / 10;
5527 p_ptr->to_d_melee = (p_ptr->to_d_melee * 7) / 10;
5528 p_ptr->to_d_ranged = (p_ptr->to_d_ranged * 5) / 10;
5530 case 3: p_ptr->weapon_parry = (p_ptr->weapon_parry * 17) / 10;
5531 p_ptr->dis_to_d = (p_ptr->dis_to_d * 7) / 10;
5532 p_ptr->to_d = (p_ptr->to_d * 7) / 10;
5533 p_ptr->to_d_melee = (p_ptr->to_d_melee * 7) / 10;
5534 p_ptr->to_d_ranged = (p_ptr->to_d_ranged * 5) / 10;
5544 if (p_ptr->paralyzed || p_ptr->stun > 100) {
5545 p_ptr->shield_deflect /= 4;
5546 p_ptr->weapon_parry = 0;
5548 } else if (p_ptr->blind || p_ptr->confused) {
5549 p_ptr->shield_deflect /= 3;
5550 p_ptr->weapon_parry /= 3;
5551 } else if (p_ptr->stun) {
5552 p_ptr->shield_deflect /= 2;
5553 p_ptr->weapon_parry /= 2;
5559 if (p_ptr->dis_to_h != old_dis_to_h || p_ptr->dis_to_d != old_dis_to_d ||
5560 p_ptr->to_h_melee != old_to_h_melee || p_ptr->to_d_melee != old_to_d_melee) {
5562 p_ptr->redraw |= (PR_PLUSSES);
5566 p_ptr->skill_stl += 1; /* <- ??? */
5569 p_ptr->skill_dis += adj_dex_dis[p_ptr->stat_ind[A_DEX]];
5570 p_ptr->skill_dis += adj_int_dis[p_ptr->stat_ind[A_INT]];
5573 p_ptr->skill_dev += get_skill_scale(p_ptr, SKILL_DEVICE, 20);
5576 p_ptr->skill_sav += adj_wis_sav[p_ptr->stat_ind[A_WIS]];
5579 p_ptr->skill_dig += adj_str_dig[p_ptr->stat_ind[A_STR]];
5583 p_ptr->skill_dis += (p_ptr->cp_ptr->x_dis * get_skill(p_ptr, SKILL_TRAPPING) / 10);
5586 p_ptr->skill_dev += (p_ptr->cp_ptr->x_dev * get_skill(p_ptr, SKILL_DEVICE) / 10);
5587 p_ptr->skill_dev += adj_int_dev[p_ptr->stat_ind[A_INT]];
5590 p_ptr->skill_sav += (p_ptr->cp_ptr->x_sav * p_ptr->lev / 10);
5593p_ptr->skill_stl += (get_skill_scale(p_ptr, SKILL_STEALTH, p_ptr->cp_ptr->x_stl * 5)) + get_skill_…
5594 …sheet_boni[14].slth += (get_skill_scale(p_ptr, SKILL_STEALTH, p_ptr->cp_ptr->x_stl * 5)) + get_ski…
5597p_ptr->skill_srh += (get_skill_scale(p_ptr, SKILL_SNEAKINESS, p_ptr->cp_ptr->x_srh * 2));// + get_…
5600p_ptr->skill_fos += (get_skill_scale(p_ptr, SKILL_SNEAKINESS, p_ptr->cp_ptr->x_fos * 2));// + get_…
5603p_ptr->skill_thn += (p_ptr->cp_ptr->x_thn * (((2 * get_skill(p_ptr, SKILL_MASTERY)) + (1 * get_ski…
5607p_ptr->skill_thb += (p_ptr->cp_ptr->x_thb * (((get_skill(p_ptr, SKILL_ARCHERY) + get_skill(p_ptr, …
5610 p_ptr->skill_tht += (p_ptr->cp_ptr->x_thb * get_skill_scale(p_ptr, SKILL_COMBAT, 10));
5617 …if (get_skill(p_ptr, SKILL_EARTH) >= 30) { p_ptr->resist_shard = TRUE; csheet_boni[14].cb[2] |= CB…
5618 …if (get_skill(p_ptr, SKILL_AIR) >= 30) { p_ptr->feather_fall = TRUE; csheet_boni[14].cb[4] |= CB5_…
5619 …if (get_skill(p_ptr, SKILL_AIR) >= 40) { p_ptr->resist_pois = TRUE; csheet_boni[14].cb[1] |= CB2_R…
5620 if (get_skill(p_ptr, SKILL_AIR) >= 50) {
5621 p_ptr->levitate = TRUE; csheet_boni[14].cb[6] |= CB7_RRLEV;
5622 p_ptr->feather_fall = TRUE; csheet_boni[14].cb[4] |= CB5_RFALL;
5624 …if (get_skill(p_ptr, SKILL_WATER) >= 30) { p_ptr->resist_water = TRUE; csheet_boni[14].cb[2] |= CB…
5625 …if (get_skill(p_ptr, SKILL_WATER) >= 40) { p_ptr->can_swim = TRUE; csheet_boni[14].cb[12] |= CB13_…
5626 …if (get_skill(p_ptr, SKILL_WATER) >= 50) { p_ptr->immune_water = TRUE; csheet_boni[14].cb[2] |= CB…
5627 …if (get_skill(p_ptr, SKILL_FIRE) >= 30) { p_ptr->resist_fire = TRUE; csheet_boni[14].cb[0] |= CB1_…
5628 …if (get_skill(p_ptr, SKILL_FIRE) >= 50) { p_ptr->immune_fire = TRUE; csheet_boni[14].cb[0] |= CB1_…
5629 …if (get_skill(p_ptr, SKILL_MANA) >= 40) { p_ptr->resist_mana = TRUE; csheet_boni[14].cb[3] |= CB4_…
5630 …if (get_skill(p_ptr, SKILL_CONVEYANCE) >= 30) { p_ptr->res_tele = TRUE; csheet_boni[14].cb[4] |= C…
5631 …if (get_skill(p_ptr, SKILL_DIVINATION) >= 50) { p_ptr->auto_id = TRUE; csheet_boni[14].cb[6] |= CB…
5632 …if (get_skill(p_ptr, SKILL_NATURE) >= 30) { p_ptr->regenerate = TRUE; csheet_boni[14].cb[5] |= CB6…
5633 …if (get_skill(p_ptr, SKILL_NATURE) >= 30) { p_ptr->pass_trees = TRUE; csheet_boni[14].cb[12] |= CB…
5634 …if (get_skill(p_ptr, SKILL_NATURE) >= 40) { p_ptr->can_swim = TRUE; csheet_boni[14].cb[12] |= CB13…
5636 …if (get_skill(p_ptr, SKILL_MIND) >= 40 && !p_ptr->reduce_insanity) { p_ptr->reduce_insanity = 1; c…
5637 …if (get_skill(p_ptr, SKILL_MIND) >= 50) { p_ptr->reduce_insanity = 2; csheet_boni[14].cb[3] |= CB4…
5638 …if (get_skill(p_ptr, SKILL_TEMPORAL) >= 50) { p_ptr->resist_time = TRUE; csheet_boni[14].cb[3] |= …
5639 …if (get_skill(p_ptr, SKILL_UDUN) >= 30) { p_ptr->res_tele = TRUE; csheet_boni[14].cb[4] |= CB5_RTE…
5640 …if (get_skill(p_ptr, SKILL_UDUN) >= 40) { p_ptr->hold_life = TRUE; csheet_boni[14].cb[5] |= CB6_RL…
5641 if (get_skill(p_ptr, SKILL_META) >= 20) p_ptr->skill_sav += get_skill(p_ptr, SKILL_META) - 20;
5649 if (get_skill(p_ptr, SKILL_HSUPPORT) >= 40) csheet_boni[14].cb[5] |= CB6_IFOOD;
5652 if (get_skill(p_ptr, SKILL_HOFFENSE) >= 50) csheet_boni[14].cb[9] |= CB10_SEVIL;
5653 if (get_skill(p_ptr, SKILL_HOFFENSE) >= 40) csheet_boni[14].cb[8] |= CB9_SDEMN;
5654 if (get_skill(p_ptr, SKILL_HOFFENSE) >= 30) csheet_boni[14].cb[9] |= CB10_SUNDD;
5658 if (p_ptr->old_heavy_shoot != p_ptr->heavy_shoot) {
5660 if (p_ptr->heavy_shoot)
5662 else if (p_ptr->inventory[INVEN_BOW].k_idx)
5668 p_ptr->old_heavy_shoot = p_ptr->heavy_shoot;
5673 if (p_ptr->old_heavy_wield != p_ptr->heavy_wield) {
5675 if (p_ptr->heavy_wield)
5677 else if (p_ptr->inventory[INVEN_WIELD].k_idx || /* dual-wield */
5678 (p_ptr->inventory[INVEN_ARM].k_idx && p_ptr->inventory[INVEN_ARM].tval != TV_SHIELD))
5684 p_ptr->old_heavy_wield = p_ptr->heavy_wield;
5688 if (p_ptr->old_heavy_shield != p_ptr->heavy_shield) {
5690 if (p_ptr->heavy_shield)
5692 …else if (p_ptr->inventory[INVEN_ARM].k_idx && p_ptr->inventory[INVEN_ARM].tval == TV_SHIELD) /* du…
5698 p_ptr->old_heavy_shield = p_ptr->heavy_shield;
5702 if (p_ptr->old_icky_wield != p_ptr->icky_wield) {
5704 if (p_ptr->icky_wield)
5706 else if (p_ptr->inventory[INVEN_WIELD].k_idx || /* dual-wield */
5707 (p_ptr->inventory[INVEN_ARM].k_idx && p_ptr->inventory[INVEN_ARM].tval != TV_SHIELD))
5713 p_ptr->old_icky_wield = p_ptr->icky_wield;
5717 if (p_ptr->old_awkward_wield != p_ptr->awkward_wield) {
5719 if (p_ptr->awkward_wield)
5721 else if (p_ptr->inventory[INVEN_WIELD].k_idx)
5723 else if (!p_ptr->inventory[INVEN_ARM].k_idx)
5727 p_ptr->old_awkward_wield = p_ptr->awkward_wield;
5730 if (p_ptr->old_easy_wield != p_ptr->easy_wield) {
5732 if (!p_ptr->heavy_wield) {
5734 if (p_ptr->easy_wield) {
5735 if (get_skill(p_ptr, SKILL_DUAL)) /* dual-wield */
5739 } else if (p_ptr->inventory[INVEN_WIELD].k_idx) {
5747 p_ptr->old_easy_wield = p_ptr->easy_wield;
5751 if (p_ptr->old_awkward_shoot != p_ptr->awkward_shoot) {
5753 if (p_ptr->awkward_shoot) {
5754 if (p_ptr->inventory[INVEN_ARM].tval == TV_SHIELD)
5758 } else if (p_ptr->inventory[INVEN_BOW].k_idx)
5762 p_ptr->old_awkward_shoot = p_ptr->awkward_shoot;
5767 p_ptr->heavy_swim = FALSE;
5769 if (!p_ptr->can_swim) {
5770 if (!(p_ptr->body_monster) || (
5771 !(r_info[p_ptr->body_monster].flags7 &
5773 int swim = get_skill_scale(p_ptr, SKILL_SWIM, 4500);
5776 if (p_ptr->wt + p_ptr->total_weight / 10 > 170 + swim * 2) {
5777 long factor = (p_ptr->wt + p_ptr->total_weight / 10) - 150 - swim * 2;
5779 if (factor >= 20) p_ptr->heavy_swim = TRUE;
5783 if (p_ptr->old_heavy_swim != p_ptr->heavy_swim) {
5784 if (p_ptr->heavy_swim)
5789 p_ptr->old_heavy_swim = p_ptr->heavy_swim;
5794 if (p_ptr->resist_fire || p_ptr->oppose_fire || p_ptr->immune_fire)
5795 p_ptr->suscep_fire = FALSE;
5797 if (p_ptr->resist_cold || p_ptr->oppose_cold || p_ptr->immune_cold)
5798 p_ptr->suscep_cold = FALSE;
5800 if (p_ptr->resist_elec || p_ptr->oppose_elec || p_ptr->immune_elec)
5801 p_ptr->suscep_elec = FALSE;
5803 if (p_ptr->resist_acid || p_ptr->oppose_acid || p_ptr->immune_acid)
5804 p_ptr->suscep_acid = FALSE;
5806 if (p_ptr->resist_lite) p_ptr->suscep_lite = FALSE;
5811 if (p_ptr->blood_bond && (Ind2 = find_player(p_ptr->blood_bond))) {
5813 if (p_ptr->pspeed < 110) {
5814 factor2 = (factor2 * (10 + (110 - p_ptr->pspeed))) / 10;
5816 factor1 = (factor1 * (10 + (p_ptr->pspeed - 110))) / 10;
5824 if (p_ptr->pspeed > 120) /* top (cur atm) speed for moving during blood bond */
5825 p_ptr->pspeed = 120;
5827 if (factor1 >= (p_ptr->pspeed - 110) + 10) {
5828 factor1 = (factor * 10) / (p_ptr->pspeed - 110) + 10;
5841 w = p_ptr->total_weight;
5850 if (w > 70000) p_ptr->pspeed = 10; /* roughly ;-p */
5851 else p_ptr->pspeed -= ((w - (i / 2)) / (i / 10));
5855 if (p_ptr->pspeed != old_speed) p_ptr->redraw |= (PR_SPEED);
5861 if (p_ptr->auto_id && !old_auto_id && !suppress_boni && logged_in) {
5864 o_ptr = &p_ptr->inventory[i];
5875 if (!p_ptr->inventory_changes) Send_inventory_revision(Ind);
5883 if (p_ptr->skill_stl < 0) p_ptr->skill_stl = 0;
5887 if (!is_admin(p_ptr)) {
5888 …if ((p_ptr->to_a > 400) && (!p_ptr->total_winner)) p_ptr->to_a = 400; /* Lebohaum / Illuvatar bonu…
5889 if ((p_ptr->to_a > 300) && (p_ptr->total_winner)) p_ptr->to_a = 300;
5890 if (p_ptr->ac > 100) p_ptr->ac = 100;
5895 (in_sector00(&p_ptr->wpos) && (sector00flags2 & LF2_NO_SPEED)))
5896 && p_ptr->pspeed > 110 && !p_ptr->admin_dm)
5897 p_ptr->pspeed = 110;
5900 (in_sector00(&p_ptr->wpos) && (sector00flags2 & LF2_NO_RES_HEAL)))
5901 && !p_ptr->admin_dm) {
5902 p_ptr->resist_acid = FALSE;
5903 p_ptr->resist_elec = FALSE;
5904 p_ptr->resist_fire = FALSE;
5905 p_ptr->resist_cold = FALSE;
5906 p_ptr->resist_pois = FALSE;
5907 p_ptr->resist_conf = FALSE;
5908 p_ptr->resist_sound = FALSE;
5909 p_ptr->resist_lite = FALSE;
5910 p_ptr->resist_dark = FALSE;
5911 p_ptr->resist_chaos = FALSE;
5912 p_ptr->resist_disen = FALSE;
5913 p_ptr->resist_shard = FALSE;
5914 p_ptr->resist_nexus = FALSE;
5915 p_ptr->resist_neth = FALSE;
5916 p_ptr->resist_plasma = FALSE;
5917 p_ptr->resist_water = FALSE;
5918 p_ptr->resist_time = FALSE;
5919 p_ptr->resist_mana = FALSE;
5920 p_ptr->immune_acid = FALSE;
5921 p_ptr->immune_elec = FALSE;
5922 p_ptr->immune_fire = FALSE;
5923 p_ptr->immune_cold = FALSE;
5924 p_ptr->immune_poison = FALSE;
5925 p_ptr->immune_water = FALSE;
5926 p_ptr->immune_neth = FALSE;
5930 if ((p_ptr->to_m > 300) && !is_admin(p_ptr)) p_ptr->to_m = 300;
5933 if (p_ptr->skill_stl > 30) p_ptr->skill_stl = 30;
5934 if (p_ptr->skill_stl < 0) p_ptr->skill_stl = 0;
5935 if (p_ptr->aggravate) p_ptr->skill_stl = 0;
5938 if (p_ptr->skill_dig < 1) p_ptr->skill_dig = 1;
5940 if ((p_ptr->anti_magic) && (p_ptr->skill_sav < 95)) p_ptr->skill_sav = 95;
5943 if (p_ptr->skill_sav > 95) p_ptr->skill_sav = 95;
5946 if ((p_ptr->xtra_crit > 50) && !is_admin(p_ptr)) p_ptr->xtra_crit = 50;
5949 if ((p_ptr->pspeed < 10) && !is_admin(p_ptr)) p_ptr->pspeed = 10;
5950 if (p_ptr->pspeed < 100 && is_admin(p_ptr)) p_ptr->pspeed = 100;
5953 if ((p_ptr->pspeed > 210) && !is_admin(p_ptr)) p_ptr->pspeed = 210;
5956 if (p_ptr->num_blow < 0) p_ptr->num_blow = 0;
5957 if ((p_ptr->num_blow > 20) && !is_admin(p_ptr)) p_ptr->num_blow = 20;
5959 if (p_ptr->ghost && !is_admin(p_ptr)) p_ptr->num_blow = (p_ptr->lev + 15) / 16;
5963 old_lite_type = p_ptr->lite_type;
5964 if (p_ptr->cur_vlite > p_ptr->cur_lite) p_ptr->lite_type = 1; /* vampiric */
5965 else if (lite_inc_white > lite_inc_norm) p_ptr->lite_type = 2; /* artificial */
5966 else p_ptr->lite_type = 0; /* normal, fiery */
5967 if (old_lite_type != p_ptr->lite_type) {
5968 if (p_ptr->px /* calc_boni() is called once on birth, where player isn't positioned yet. */
5973 old_lite_type = p_ptr->lite_type; /* erm, this isnt needed? */
5978 p_ptr->redraw |= (PR_SKILLS);
5980 p_ptr->redraw |= (PR_ENCUMBERMENT);
5981 if (is_newer_than(&p_ptr->version, 4, 4, 8, 4, 0, 0))
5983 p_ptr->redraw |= PR_BPR;
5986 if (is_newer_than(&p_ptr->version, 4, 5, 3, 2, 0, 0) && logged_in)
6026 o_ptr = &p_ptr->inventory[i + INVEN_WIELD];
6152 inscription = quark_str(p_ptr->inventory[i].note);
6320 if (p_ptr->warning_bpr == 0 && /* limit, so it won't annoy priests anymore who use zeal spell */
6321 p_ptr->num_blow == 1 && old_num_blow > 1 &&
6322 p_ptr->inventory[INVEN_WIELD].k_idx && is_weapon(p_ptr->inventory[INVEN_WIELD].tval)) {
6323 p_ptr->warning_bpr = 1;
6330 s_printf("warning_bpr: %s\n", p_ptr->name);
6332 if (p_ptr->warning_bpr3 == 2 &&
6333 p_ptr->num_blow == 1 && old_num_blow == 1 &&
6335 p_ptr->inventory[INVEN_WIELD].k_idx && is_weapon(p_ptr->inventory[INVEN_WIELD].tval)) {
6336 p_ptr->warning_bpr2 = p_ptr->warning_bpr3 = 1;
6340 if (p_ptr->inventory[INVEN_ARM].tval == TV_SHIELD) {
6341 if (p_ptr->rogue_like_commands)
6346 switch (p_ptr->pclass) {
6363 s_printf("warning_bpr23: %s\n", p_ptr->name);
6375 player_type *p_ptr = Players[Ind]; local
6378 if (!p_ptr->notice) return;
6382 if (p_ptr->notice & PN_COMBINE) {
6383 p_ptr->notice &= ~(PN_COMBINE);
6388 if (p_ptr->notice & PN_REORDER) {
6389 p_ptr->notice &= ~(PN_REORDER);
6400 player_type *p_ptr = Players[Ind]; local
6403 if (!p_ptr->update) return;
6407 if (p_ptr->update & PU_SKILL_INFO) {
6412 p_ptr->update &= ~(PU_SKILL_INFO);
6420 if (p_ptr->update & PU_SKILL_MOD) {
6423 p_ptr->update &= ~(PU_SKILL_MOD);
6425 if (s_info[i].name && p_ptr->s_info[i].touched) {
6427 p_ptr->s_info[i].touched = FALSE;
6433 if (p_ptr->update & PU_BONUS) {
6434 p_ptr->update &= ~(PU_BONUS);
6440 if (p_ptr->update & PU_TORCH) {
6441 p_ptr->update &= ~(PU_TORCH);
6445 if (p_ptr->update & PU_HP) {
6446 p_ptr->update &= ~(PU_HP);
6450 if (p_ptr->update & (PU_SANITY)) {
6451 p_ptr->update &= ~(PU_SANITY);
6455 if (p_ptr->update & PU_MANA) {
6456 p_ptr->update &= ~(PU_MANA);
6464 if (p_ptr->new_level_flag) return;
6466 if (p_ptr->update & PU_UN_LITE) {
6467 p_ptr->update &= ~(PU_UN_LITE);
6471 if (p_ptr->update & PU_UN_VIEW) {
6472 p_ptr->update &= ~(PU_UN_VIEW);
6477 if (p_ptr->update & PU_VIEW) {
6478 p_ptr->update &= ~(PU_VIEW);
6482 if (p_ptr->update & PU_LITE) {
6483 p_ptr->update &= ~(PU_LITE);
6488 if (p_ptr->update & PU_FLOW) {
6489 p_ptr->update &= ~(PU_FLOW);
6494 if (p_ptr->update & PU_DISTANCE) {
6495 p_ptr->update &= ~(PU_DISTANCE);
6496 p_ptr->update &= ~(PU_MONSTERS);
6501 if (p_ptr->update & PU_MONSTERS) {
6502 p_ptr->update &= ~(PU_MONSTERS);
6510 if (p_ptr->update & PU_MUSIC) {
6511 p_ptr->update &= ~PU_MUSIC;
6531 handle_ambient_sfx(Ind, &(getcave(&p_ptr->wpos)[p_ptr->py][p_ptr->px]), &p_ptr->wpos, FALSE);
6537 if (p_ptr->update & PU_LUA) {
6539 p_ptr->update &= ~(PU_LUA);
6540 p_ptr->warning_lua_update = p_ptr->warning_lua_count = 0;
6551 player_type *p_ptr = Players[Ind]; local
6554 if (!p_ptr->redraw) return;
6561 if (p_ptr->redraw & PR_WIPE) {
6562 p_ptr->redraw &= ~PR_WIPE;
6567 if (p_ptr->redraw & PR_MAP) {
6568 p_ptr->redraw &= ~(PR_MAP);
6576 if (p_ptr->panel_changed) player_weather(Ind, FALSE, FALSE, TRUE);
6578 p_ptr->panel_changed = FALSE;
6582 if (p_ptr->redraw & PR_BASIC) {
6583 p_ptr->redraw &= ~(PR_BASIC);
6584 p_ptr->redraw &= ~(PR_MISC | PR_TITLE | PR_STATS);
6585 p_ptr->redraw &= ~(PR_LEV | PR_EXP | PR_GOLD);
6586 p_ptr->redraw &= ~(PR_ARMOR | PR_HP | PR_MANA | PR_STAMINA);
6587 p_ptr->redraw &= ~(PR_DEPTH | PR_HEALTH);
6591 if (p_ptr->redraw & PR_ENCUMBERMENT) {
6592 p_ptr->redraw &= ~(PR_ENCUMBERMENT);
6596 if (p_ptr->redraw & PR_MISC) {
6597 p_ptr->redraw &= ~(PR_MISC);
6598 …Send_char_info(Ind, p_ptr->prace, p_ptr->pclass, p_ptr->ptrait, p_ptr->male, p_ptr->mode, p_ptr->n…
6601 if (p_ptr->redraw & PR_TITLE) {
6602 p_ptr->redraw &= ~(PR_TITLE);
6606 if (p_ptr->redraw & PR_LEV) {
6607 p_ptr->redraw &= ~(PR_LEV);
6611 if (p_ptr->redraw & PR_EXP) {
6612 p_ptr->redraw &= ~(PR_EXP);
6616 if (p_ptr->redraw & PR_STATS) {
6617 p_ptr->redraw &= ~(PR_STATS);
6626 if (p_ptr->redraw & PR_ARMOR) {
6627 p_ptr->redraw &= ~(PR_ARMOR);
6631 if (p_ptr->redraw & PR_HP) {
6632 p_ptr->redraw &= ~(PR_HP);
6636 if (p_ptr->redraw & PR_STAMINA) {
6637 p_ptr->redraw &= ~(PR_STAMINA);
6641 if (p_ptr->redraw & PR_SANITY) {
6642 p_ptr->redraw &= ~(PR_SANITY);
6648 if (p_ptr->redraw & PR_MANA) {
6649 p_ptr->redraw &= ~(PR_MANA);
6653 if (p_ptr->redraw & PR_GOLD) {
6654 p_ptr->redraw &= ~(PR_GOLD);
6658 if (p_ptr->redraw & PR_DEPTH) {
6659 p_ptr->redraw &= ~(PR_DEPTH);
6663 if (p_ptr->redraw & PR_HEALTH) {
6664 p_ptr->redraw &= ~(PR_HEALTH);
6668 if (p_ptr->redraw & PR_HISTORY) {
6669 p_ptr->redraw &= ~(PR_HISTORY);
6673 if (p_ptr->redraw & PR_VARIOUS) {
6674 p_ptr->redraw &= ~(PR_VARIOUS);
6678 if (p_ptr->redraw & PR_PLUSSES) {
6679 p_ptr->redraw &= ~(PR_PLUSSES);
6683 if (p_ptr->redraw & PR_SKILLS) {
6684 p_ptr->redraw &= ~(PR_SKILLS);
6688 if (p_ptr->redraw & PR_EXTRA) {
6689 p_ptr->redraw &= ~(PR_EXTRA);
6690 p_ptr->redraw &= ~(PR_CUT | PR_STUN);
6691 p_ptr->redraw &= ~(PR_HUNGER);
6692 p_ptr->redraw &= ~(PR_BLIND | PR_CONFUSED);
6693 p_ptr->redraw &= ~(PR_AFRAID | PR_POISONED);
6694 p_ptr->redraw &= ~(PR_STATE | PR_SPEED);
6695 if (is_older_than(&p_ptr->version, 4, 4, 8, 5, 0, 0)) p_ptr->redraw &= ~PR_STUDY;
6700 if (p_ptr->redraw & PR_CUT) {
6701 p_ptr->redraw &= ~(PR_CUT);
6705 if (p_ptr->redraw & PR_STUN) {
6706 p_ptr->redraw &= ~(PR_STUN);
6710 if (p_ptr->redraw & PR_HUNGER) {
6711 p_ptr->redraw &= ~(PR_HUNGER);
6715 if (p_ptr->redraw & PR_BLIND) {
6716 p_ptr->redraw &= ~(PR_BLIND);
6720 if (p_ptr->redraw & PR_CONFUSED) {
6721 p_ptr->redraw &= ~(PR_CONFUSED);
6725 if (p_ptr->redraw & PR_AFRAID) {
6726 p_ptr->redraw &= ~(PR_AFRAID);
6730 if (p_ptr->redraw & PR_POISONED) {
6731 p_ptr->redraw &= ~(PR_POISONED);
6735 if (p_ptr->redraw & PR_STATE) {
6736 p_ptr->redraw &= ~(PR_STATE);
6741 if (p_ptr->redraw & PR_SPEED) {
6742 p_ptr->redraw &= ~(PR_SPEED);
6746 if (is_older_than(&p_ptr->version, 4, 4, 8, 5, 0, 0)) {
6747 if (p_ptr->redraw & PR_STUDY) {
6748 p_ptr->redraw &= ~(PR_STUDY);
6752 if (p_ptr->redraw & PR_BPR) {
6753 p_ptr->redraw &= ~(PR_BPR);
6765 player_type *p_ptr = Players[Ind]; local
6768 if (!p_ptr->window) return;
6771 if (p_ptr->window & PW_INVEN) {
6772 p_ptr->window &= ~(PW_INVEN);
6777 if (p_ptr->window & PW_EQUIP) {
6778 p_ptr->window &= ~(PW_EQUIP);
6783 if (p_ptr->window & PW_PLAYER) {
6784 p_ptr->window &= ~(PW_PLAYER);
6789 if (p_ptr->window & PW_MESSAGE) {
6790 p_ptr->window &= ~(PW_MESSAGE);
6795 if (p_ptr->window & PW_OVERHEAD) {
6796 p_ptr->window &= ~(PW_OVERHEAD);
6801 if (p_ptr->window & PW_MONSTER) {
6802 p_ptr->window &= ~(PW_MONSTER);
6813 player_type *p_ptr = Players[Ind]; local
6816 if (p_ptr->new_level_flag) return;
6819 if (p_ptr->update) update_stuff(Ind);
6822 if (p_ptr->redraw) redraw_stuff(Ind);
6825 if (p_ptr->window) window_stuff(Ind);
6835 player_type *p_ptr = NULL; local
6837 if (Ind) p_ptr = Players[Ind];
6856 if (Ind) ge->creator = p_ptr->id;
7054 player_type *p_ptr = Players[Ind]; local
7082 for (i = 0; i < max_p; i++) if (ge->participant[i] == p_ptr->id) {
7087 if (p_ptr->inval) {
7095 if (p_ptr->mode & MODE_DED_IDDC) {
7097 if (!is_admin(p_ptr)) return;
7099 if (p_ptr->mode & MODE_PVP) {
7101 if (!is_admin(p_ptr)) return;
7103 if (p_ptr->global_event_participated[ge->getype]) {
7105 if (!is_admin(p_ptr)) return;
7107 if (p_ptr->max_exp > 0 || p_ptr->max_plv > 1) {
7109 if (!is_admin(p_ptr)) return;
7111 if (p_ptr->fruit_bat == 1) { /* 1 = native bat, 2 = from chauve-souris */
7113 if (!is_admin(p_ptr)) return;
7122 if (!in_bree(&p_ptr->wpos) &&
7123 …(p_ptr->wpos.wx != WPOS_ARENA_X || p_ptr->wpos.wy != WPOS_ARENA_Y || p_ptr->wpos.wz != WPOS_ARENA_…
7126 if (!in_bree(&p_ptr->wpos) && !in_trainingtower(&p_ptr->wpos)
7127 && !is_admin(p_ptr)) {
7241 if (!is_admin(p_ptr) &&
7315 if (!is_admin(p_ptr) &&
7331 msg_broadcast_format(0, "\376\377c** %s challenges %s! **", p_ptr->name, c);
7350 if (p_ptr->mode & MODE_DED_IDDC) {
7352 if (!is_admin(p_ptr)) return;
7354 if (p_ptr->mode & MODE_PVP) {
7356 if (!is_admin(p_ptr)) return;
7358 if (p_ptr->max_plv > 14) {
7360 if (!is_admin(p_ptr)) return;
7363 if (p_ptr->fruit_bat == 1) { /* 1 = native bat, 2 = from chauve-souris */
7365 if (!is_admin(p_ptr)) return;
7368 if (p_ptr->ghost) {
7370 if (!is_admin(p_ptr)) return;
7372 if (p_ptr->global_event_participated[ge->getype]) {
7374 if (!is_admin(p_ptr)) return;
7379 …rintf("%s EVENT_SIGNUP: %d (%s): %s (%s).\n", showtime(), n + 1, ge->title, p_ptr->name, parm_log);
7380 else s_printf("%s EVENT_SIGNUP: %d (%s): %s.\n", showtime(), n + 1, ge->title, p_ptr->name);
7387 msg_broadcast_format(Ind, "\374\377c%s signed up for %s.", p_ptr->name, ge->title);
7388 ge->participant[p] = p_ptr->id;
7389 p_ptr->global_event_type[n] = ge->getype;
7390 time(&p_ptr->global_event_signup[n]);
7391 p_ptr->global_event_started[n] = ge->started;
7392 for (i = 0; i < 4; i++) p_ptr->global_event_progress[n][i] = 0; /* WIPE :p */
7400 player_type *p_ptr; local
7466 p_ptr = Players[j];
7467 d_ptr = getdungeon(&p_ptr->wpos);
7472 if ((p_ptr->max_exp || p_ptr->max_plv > 1) && !is_admin(p_ptr)) {
7473 s_printf("EVENT_CHECK_PARTICIPANTS: Player '%s' no longer eligible.\n", p_ptr->name);
7475 p_ptr->global_event_type[ge_id] = GE_NONE;
7480 s_printf("EVENT_CHECK_PARTICIPANTS: Player '%s' stuck in dungeon.\n", p_ptr->name);
7482 p_ptr->global_event_type[ge_id] = GE_NONE;
7488 if ((p_ptr->max_plv > 14) && !is_admin(p_ptr)) {
7489 s_printf("EVENT_CHECK_PARTICIPANTS: Player '%s' no longer eligible.\n", p_ptr->name);
7491 p_ptr->global_event_type[ge_id] = GE_NONE;
7496 s_printf("EVENT_CHECK_PARTICIPANTS: Player '%s' stuck in dungeon.\n", p_ptr->name);
7498 p_ptr->global_event_type[ge_id] = GE_NONE;
7645 p_ptr = Players[i];
7647 if (p_ptr->wpos.wx != WPOS_SECTOR00_X || p_ptr->wpos.wy != WPOS_SECTOR00_Y) {
7648 p_ptr->recall_pos.wx = WPOS_SECTOR00_X;
7649 p_ptr->recall_pos.wy = WPOS_SECTOR00_Y;
7650 p_ptr->recall_pos.wz = -1;
7651 p_ptr->global_event_temp = PEVF_PASS_00 | PEVF_NOGHOST_00 |
7653 p_ptr->new_level_method = LEVEL_OUTSIDE_RAND;
7662 o_ptr->owner = p_ptr->id;
7663 o_ptr->mode = p_ptr->mode;
7672 p_ptr->pkill &= ~PKILL_KILLABLE;
7675 p_ptr->global_event_progress[ge_id][0] = 1; /* now in 0,0,0-dungeon! */
7741 p_ptr = Players[i];
7742 …if (p_ptr->admin_dm || p_ptr->wpos.wx != WPOS_SECTOR00_X || p_ptr->wpos.wy != WPOS_SECTOR00_Y) con…
7744 if (p_ptr->party) {
7749 if (Players[j]->party == p_ptr->party) party_leave(i, FALSE);
7755 if (p_ptr->inventory[j].tval == TV_AMULET && p_ptr->inventory[j].sval == SV_AMULET_HIGHLANDS) {
7756 invcopy(&p_ptr->inventory[j], lookup_kind(TV_AMULET, SV_AMULET_HIGHLANDS2));
7757 p_ptr->inventory[j].number = 1;
7758 p_ptr->inventory[j].level = 0;
7759 p_ptr->inventory[j].discount = 0;
7760 p_ptr->inventory[j].ident |= ID_MENTAL;
7761 p_ptr->inventory[j].owner = p_ptr->id;
7762 p_ptr->inventory[j].mode = p_ptr->mode;
7763 object_aware(i, &p_ptr->inventory[j]);
7764 object_known(&p_ptr->inventory[j]);
7766 p_ptr->update |= (PU_BONUS | PU_VIEW);
7767 p_ptr->window |= (PW_INVEN | PW_EQUIP);
7770 p_ptr->global_event_temp &= ~PEVF_SAFEDUN_00; /* no longer safe from death */
7771 p_ptr->global_event_temp |= PEVF_AUTOPVP_00;
7774 p_ptr->recall_pos.wx = WPOS_SECTOR00_X;
7775 p_ptr->recall_pos.wy = WPOS_SECTOR00_Y;
7776 p_ptr->recall_pos.wz = 0;
7777 p_ptr->new_level_method = LEVEL_OUTSIDE_RAND;
7781 p_ptr->global_event_progress[ge_id][0] = 4; /* now before deathmatch */
7792 p_ptr = Players[i];
7796 if (p_ptr->wpos.wz && !p_ptr->admin_dm) {
7798 strcpy(p_ptr->died_from,"a mysterious accident");
7799 p_ptr->global_event_temp = PEVF_NONE; /* clear no-WoR/perma-death/no-death flags */
7800 p_ptr->deathblow = 0;
7803 p_ptr->global_event_progress[ge_id][0] = 5; /* now in deathmatch */
7854 p_ptr = Players[j];
7855 if (p_ptr->wpos.wx != WPOS_SECTOR00_X || p_ptr->wpos.wy != WPOS_SECTOR00_Y
7856 || p_ptr->wpos.wz != 0) { /* not ok.. */
7861 sprintf(buf, "\374\377a>>%s wins %s!<<", p_ptr->name, ge->title);
7866 if (!p_ptr->max_exp) gain_exp(j, 1); /* may only take part in one tournament per char */
7880 s_printf("%s EVENT_WON: %s wins %d (%s)\n", showtime(), p_ptr->name, ge_id + 1, ge->title);
7881 l_printf("%s \\{s%s has won %s\n", showdate(), p_ptr->name, ge->title);
7902 p_ptr = Players[i];
7903 if (p_ptr->wpos.wx == WPOS_SECTOR00_X && p_ptr->wpos.wy == WPOS_SECTOR00_Y
7904 && p_ptr->wpos.wz == 0) {
7906 if (p_ptr->inventory[j].tval == TV_AMULET &&
7907 ((p_ptr->inventory[j].sval == SV_AMULET_HIGHLANDS) ||
7908 (p_ptr->inventory[j].sval == SV_AMULET_HIGHLANDS2))) {
7909 inven_item_increase(i, j, -p_ptr->inventory[j].number);
7912 p_ptr->global_event_type[ge_id] = GE_NONE; /* no longer participant */
7913 p_ptr->recall_pos.wx = cfg.town_x;
7914 p_ptr->recall_pos.wy = cfg.town_y;
7915 p_ptr->recall_pos.wz = 0;
7916 p_ptr->new_level_method = LEVEL_OUTSIDE_RAND;
7917 p_ptr->global_event_temp = PEVF_PASS_00; /* clear all other flags, allow a final recall out */
8288 p_ptr = Players[i];
8290 if (p_ptr->wpos.wx != WPOS_SECTOR00_X || p_ptr->wpos.wy != WPOS_SECTOR00_Y
8291 || p_ptr->wpos.wz != WPOS_SECTOR00_Z) {
8292 p_ptr->recall_pos.wx = WPOS_SECTOR00_X;
8293 p_ptr->recall_pos.wy = WPOS_SECTOR00_Y;
8294 p_ptr->recall_pos.wz = WPOS_SECTOR00_Z;
8295 p_ptr->global_event_temp = PEVF_PASS_00;
8296 p_ptr->new_level_method = LEVEL_OUTSIDE_RAND;
8298 p_ptr->avoid_loc = k;
8299 p_ptr->avoid_loc_x = bx;
8300 p_ptr->avoid_loc_y = by;
8302 p_ptr->avoid_loc = 0;
8304p_ptr->global_event_temp |= PEVF_NOGHOST_00 | PEVF_NO_RUN_00 | PEVF_NOTELE_00 | PEVF_INDOORS_00 | …
8305 p_ptr->update |= PU_BONUS;
8306 p_ptr->global_event_progress[ge_id][0] = 1; /* now in 0,0,0 sector */
8468 player_type *p_ptr = Players[Ind]; local
8470 p_ptr->using_up_item = -1;
8472 p_ptr->current_enchant_h = 0;
8473 p_ptr->current_enchant_d = 0;
8474 p_ptr->current_enchant_a = 0;
8476 p_ptr->current_identify = 0;
8477 p_ptr->current_star_identify = 0;
8478 p_ptr->current_recharge = 0;
8479 p_ptr->current_artifact = 0;
8480 p_ptr->current_artifact_nolife = FALSE;
8481 p_ptr->current_curse = 0;
8482 p_ptr->current_tome_creation = 0;
8483 p_ptr->current_rune = 0;
8484 p_ptr->current_telekinesis = NULL;
8488 player_type *p_ptr = Players[Ind]; local
8490 p_ptr->melee_techniques = MT_NONE;
8491 p_ptr->ranged_techniques = RT_NONE;
8493 if (mtech_lev[p_ptr->pclass][0] &&
8494 p_ptr->lev >= mtech_lev[p_ptr->pclass][0])
8495 p_ptr->melee_techniques |= MT_SPRINT;
8496 if (mtech_lev[p_ptr->pclass][1] &&
8497 p_ptr->lev >= mtech_lev[p_ptr->pclass][1])
8498 p_ptr->melee_techniques |= MT_TAUNT;
8499 if (mtech_lev[p_ptr->pclass][2] &&
8500 p_ptr->lev >= mtech_lev[p_ptr->pclass][2])
8501 p_ptr->melee_techniques |= MT_JUMP;
8502 if (mtech_lev[p_ptr->pclass][3] &&
8503 p_ptr->lev >= mtech_lev[p_ptr->pclass][3])
8504 p_ptr->melee_techniques |= MT_DISTRACT;
8505 if (mtech_lev[p_ptr->pclass][4] &&
8506 p_ptr->lev >= mtech_lev[p_ptr->pclass][4])
8507 p_ptr->melee_techniques |= MT_BASH;
8508 if (mtech_lev[p_ptr->pclass][5] &&
8509 p_ptr->lev >= mtech_lev[p_ptr->pclass][5])
8510 p_ptr->melee_techniques |= MT_KNOCK;
8511 if (mtech_lev[p_ptr->pclass][6] &&
8512 p_ptr->lev >= mtech_lev[p_ptr->pclass][6])
8513 p_ptr->melee_techniques |= MT_CHARGE;
8514 if (mtech_lev[p_ptr->pclass][7] &&
8515 p_ptr->lev >= mtech_lev[p_ptr->pclass][7])
8516 p_ptr->melee_techniques |= MT_FLASH;
8517 if (mtech_lev[p_ptr->pclass][8] &&
8518 p_ptr->lev >= mtech_lev[p_ptr->pclass][8])
8519 p_ptr->melee_techniques |= MT_CLOAK;
8520 if (mtech_lev[p_ptr->pclass][9] &&
8521 p_ptr->lev >= mtech_lev[p_ptr->pclass][9])
8522 p_ptr->melee_techniques |= MT_SPIN;
8523 if (mtech_lev[p_ptr->pclass][10] &&
8524 p_ptr->lev >= mtech_lev[p_ptr->pclass][10])
8525 p_ptr->melee_techniques |= MT_ASSA;
8526 if (mtech_lev[p_ptr->pclass][11] &&
8527 p_ptr->lev >= mtech_lev[p_ptr->pclass][11])
8528 p_ptr->melee_techniques |= MT_BERSERK;
8529 if (mtech_lev[p_ptr->pclass][12] &&
8530 p_ptr->lev >= mtech_lev[p_ptr->pclass][12])
8531 p_ptr->melee_techniques |= MT_XXX1000;
8532 if (mtech_lev[p_ptr->pclass][13] &&
8533 p_ptr->lev >= mtech_lev[p_ptr->pclass][13])
8534 p_ptr->melee_techniques |= MT_SJUMP;
8535 if (mtech_lev[p_ptr->pclass][14] &&
8536 p_ptr->lev >= mtech_lev[p_ptr->pclass][14])
8537 p_ptr->melee_techniques |= MT_SRUN;
8538 if (mtech_lev[p_ptr->pclass][15] &&
8539 p_ptr->lev >= mtech_lev[p_ptr->pclass][15])
8540 p_ptr->melee_techniques |= MT_ICLOAK;
8542 if (get_skill(p_ptr, SKILL_ARCHERY) >= 4) p_ptr->ranged_techniques |= RT_FLARE; /* Flare missile */
8543 …if (get_skill(p_ptr, SKILL_ARCHERY) >= 8) p_ptr->ranged_techniques |= RT_PRECS; /* Precision shot …
8544 …if (get_skill(p_ptr, SKILL_ARCHERY) >= 10) p_ptr->ranged_techniques |= RT_CRAFT; /* Craft some amm…
8545 if (get_skill(p_ptr, SKILL_ARCHERY) >= 16) p_ptr->ranged_techniques |= RT_DOUBLE; /* Double-shot */
8546 if (get_skill(p_ptr, SKILL_ARCHERY) >= 25) p_ptr->ranged_techniques |= RT_BARRAGE; /* Barrage */
8554 player_type *p_ptr = Players[Ind]; local
8558 if (p_ptr->esp_link_type &&
8559 p_ptr->esp_link &&
8560 ((p_ptr->esp_link_flags & flags) || flags == 0x0)) {
8561 Ind2 = find_player(p_ptr->esp_link);
8576 player_type *p_ptr = Players[(*Ind)]; local
8578 if (p_ptr->esp_link_type &&
8579 p_ptr->esp_link &&
8580 ((p_ptr->esp_link_flags & flags) || flags == 0x0)) {
8581 Ind2 = find_player(p_ptr->esp_link);
8592 player_type *p_ptr = Players[Ind]; local
8595 if (id != p_ptr->request_id) return;
8596 p_ptr->request_id = RID_NONE;
8598 if (RTYPE_STR != p_ptr->request_type) return;
8610 if (p_ptr->store_num == -1) return; /* Discard if we left the building */
8626 player_type *p_ptr = Players[Ind]; local
8629 if (id != p_ptr->request_id) return;
8630 p_ptr->request_id = RID_NONE;
8632 if (RTYPE_NUM != p_ptr->request_type) return;
8641 player_type *p_ptr = Players[Ind]; local
8644 if (id != p_ptr->request_id) return;
8645 p_ptr->request_id = RID_NONE;
8647 if (RTYPE_KEY != p_ptr->request_type) return;
8652 if (p_ptr->store_num == -1) return; /* Discard if we left the building */
8656 if (p_ptr->store_num == -1) return; /* Discard if we left the building */
8666 player_type *p_ptr = Players[Ind]; local
8669 if (id != p_ptr->request_id) return;
8670 p_ptr->request_id = RID_NONE;
8672 if (RTYPE_CFR != p_ptr->request_type) return;
8692 if (p_ptr->store_num == -1) return; /* Discard if we left the building */
8696 p_ptr->store_action = 0;
8706 if (cfr) guild_create(Ind, p_ptr->cur_file_title);
8707 p_ptr->cur_file_title[0] = 0;//not really needed
8716 void limit_energy(player_type *p_ptr) { argument
8719 if (p_ptr->energy > (level_speed(&p_ptr->wpos) * 2) - 1)
8720 p_ptr->energy = (level_speed(&p_ptr->wpos) * 2) - 1;