• R/O
  • HTTP
  • SSH
  • HTTPS

hengband: 提交

変愚蛮怒のメインリポジトリです


Commit MetaInfo

修订版3ab020f90814d9a5550de49d97bad963f40f43f9 (tree)
时间2019-10-06 19:33:05
作者deskull <deskull@user...>
Commiterdeskull

Log Message

[Refactor] #38997 exe_fire() 内のポインタ参照再修正. / Fix pointer reference in exe_fire().

更改概述

差异

--- a/src/combat/shoot.c
+++ b/src/combat/shoot.c
@@ -389,7 +389,7 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
389389 }
390390 else
391391 {
392- o_ptr = &p_ptr->current_floor_ptr->o_list[0 - item];
392+ o_ptr = &shooter_ptr->current_floor_ptr->o_list[0 - item];
393393 }
394394
395395 /* Sniper - Cannot shot a single arrow twice */
@@ -536,7 +536,7 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
536536 /* Shatter Arrow */
537537 if (snipe_type == SP_KILL_WALL)
538538 {
539- g_ptr = &p_ptr->current_floor_ptr->grid_array[ny][nx];
539+ g_ptr = &shooter_ptr->current_floor_ptr->grid_array[ny][nx];
540540
541541 if (cave_have_flag_grid(g_ptr, FF_HURT_ROCK) && !g_ptr->m_idx)
542542 {
@@ -554,7 +554,7 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
554554 }
555555
556556 /* Stopped by walls/doors */
557- if (!cave_have_flag_bold(ny, nx, FF_PROJECT) && !p_ptr->current_floor_ptr->grid_array[ny][nx].m_idx) break;
557+ if (!cave_have_flag_bold(ny, nx, FF_PROJECT) && !shooter_ptr->current_floor_ptr->grid_array[ny][nx].m_idx) break;
558558
559559 /* Advance the distance */
560560 cur_dis++;
@@ -562,7 +562,7 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
562562 /* Sniper */
563563 if (snipe_type == SP_LITE)
564564 {
565- p_ptr->current_floor_ptr->grid_array[ny][nx].info |= (CAVE_GLOW);
565+ shooter_ptr->current_floor_ptr->grid_array[ny][nx].info |= (CAVE_GLOW);
566566 note_spot(ny, nx);
567567 lite_spot(ny, nx);
568568 }
@@ -599,7 +599,7 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
599599 /* Sniper */
600600 if (snipe_type == SP_EVILNESS)
601601 {
602- p_ptr->current_floor_ptr->grid_array[ny][nx].info &= ~(CAVE_GLOW | CAVE_MARK);
602+ shooter_ptr->current_floor_ptr->grid_array[ny][nx].info &= ~(CAVE_GLOW | CAVE_MARK);
603603 note_spot(ny, nx);
604604 lite_spot(ny, nx);
605605 }
@@ -612,11 +612,11 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
612612 y = ny;
613613
614614 /* Monster here, Try to hit it */
615- if (p_ptr->current_floor_ptr->grid_array[y][x].m_idx)
615+ if (shooter_ptr->current_floor_ptr->grid_array[y][x].m_idx)
616616 {
617- grid_type *c_mon_ptr = &p_ptr->current_floor_ptr->grid_array[y][x];
617+ grid_type *c_mon_ptr = &shooter_ptr->current_floor_ptr->grid_array[y][x];
618618
619- monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[c_mon_ptr->m_idx];
619+ monster_type *m_ptr = &shooter_ptr->current_floor_ptr->m_list[c_mon_ptr->m_idx];
620620 monster_race *r_ptr = &r_info[m_ptr->r_idx];
621621
622622 /* Check the visibility */
@@ -649,7 +649,7 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
649649 if (shooter_ptr->riding)
650650 {
651651 if ((shooter_ptr->skill_exp[GINOU_RIDING] < s_info[shooter_ptr->pclass].s_max[GINOU_RIDING])
652- && ((shooter_ptr->skill_exp[GINOU_RIDING] - (RIDING_EXP_BEGINNER * 2)) / 200 < r_info[p_ptr->current_floor_ptr->m_list[shooter_ptr->riding].r_idx].level)
652+ && ((shooter_ptr->skill_exp[GINOU_RIDING] - (RIDING_EXP_BEGINNER * 2)) / 200 < r_info[shooter_ptr->current_floor_ptr->m_list[shooter_ptr->riding].r_idx].level)
653653 && one_in_(2))
654654 {
655655 shooter_ptr->skill_exp[GINOU_RIDING] += 1;
@@ -735,7 +735,7 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
735735 /* Sniper */
736736 if (snipe_type == SP_HOLYNESS)
737737 {
738- p_ptr->current_floor_ptr->grid_array[ny][nx].info |= (CAVE_GLOW);
738+ shooter_ptr->current_floor_ptr->grid_array[ny][nx].info |= (CAVE_GLOW);
739739 note_spot(ny, nx);
740740 lite_spot(ny, nx);
741741 }
@@ -796,13 +796,13 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
796796 if (!in_bounds2(shooter_ptr->current_floor_ptr, ny, nx)) break;
797797
798798 /* Stopped by walls/doors */
799- if (!player_can_enter(p_ptr->current_floor_ptr->grid_array[ny][nx].feat, 0)) break;
799+ if (!player_can_enter(shooter_ptr->current_floor_ptr->grid_array[ny][nx].feat, 0)) break;
800800
801801 /* Stopped by monsters */
802802 if (!cave_empty_bold(ny, nx)) break;
803803
804- p_ptr->current_floor_ptr->grid_array[ny][nx].m_idx = m_idx;
805- p_ptr->current_floor_ptr->grid_array[oy][ox].m_idx = 0;
804+ shooter_ptr->current_floor_ptr->grid_array[ny][nx].m_idx = m_idx;
805+ shooter_ptr->current_floor_ptr->grid_array[oy][ox].m_idx = 0;
806806
807807 m_ptr->fx = nx;
808808 m_ptr->fy = ny;
@@ -842,8 +842,8 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
842842
843843 if (stick_to)
844844 {
845- MONSTER_IDX m_idx = p_ptr->current_floor_ptr->grid_array[y][x].m_idx;
846- monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[m_idx];
845+ MONSTER_IDX m_idx = shooter_ptr->current_floor_ptr->grid_array[y][x].m_idx;
846+ monster_type *m_ptr = &shooter_ptr->current_floor_ptr->m_list[m_idx];
847847 OBJECT_IDX o_idx = o_pop();
848848
849849 if (!o_idx)
@@ -856,7 +856,7 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
856856 return;
857857 }
858858
859- o_ptr = &p_ptr->current_floor_ptr->o_list[o_idx];
859+ o_ptr = &shooter_ptr->current_floor_ptr->o_list[o_idx];
860860 object_copy(o_ptr, q_ptr);
861861
862862 /* Forget mark */
Show on old repository browser