X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fspells3.c;h=ba0e2825d234f919d38d987e5f48d1ffbbc939fe;hb=00f341adda94315aae0c3543ec4f713473d02186;hp=85be234188e66f85829b58f79c6b6338f74d5741;hpb=31ccf1a8b7326da5e38d86ef1a323d0aaff35588;p=hengband%2Fhengband.git diff --git a/src/spells3.c b/src/spells3.c index 85be23418..ba0e2825d 100644 --- a/src/spells3.c +++ b/src/spells3.c @@ -91,7 +91,7 @@ bool teleport_away(MONSTER_IDX m_idx, POSITION dis, BIT_FLAGS mode) /* No teleporting into vaults and such */ if (!(p_ptr->inside_quest || p_ptr->inside_arena)) - if (cave[ny][nx].info & CAVE_ICKY) continue; + if (grid_array[ny][nx].info & CAVE_ICKY) continue; /* This grid looks good */ look = FALSE; @@ -113,10 +113,10 @@ bool teleport_away(MONSTER_IDX m_idx, POSITION dis, BIT_FLAGS mode) sound(SOUND_TPOTHER); /* Update the old location */ - cave[oy][ox].m_idx = 0; + grid_array[oy][ox].m_idx = 0; /* Update the new location */ - cave[ny][nx].m_idx = m_idx; + grid_array[ny][nx].m_idx = m_idx; /* Move the monster */ m_ptr->fy = ny; @@ -193,7 +193,7 @@ void teleport_monster_to(MONSTER_IDX m_idx, POSITION ty, POSITION tx, int power, if (!cave_monster_teleportable_bold(m_idx, ny, nx, mode)) continue; /* No teleporting into vaults and such */ - /* if (cave[ny][nx].info & (CAVE_ICKY)) continue; */ + /* if (grid_array[ny][nx].info & (CAVE_ICKY)) continue; */ /* This grid looks good */ look = FALSE; @@ -214,10 +214,10 @@ void teleport_monster_to(MONSTER_IDX m_idx, POSITION ty, POSITION tx, int power, sound(SOUND_TPOTHER); /* Update the old location */ - cave[oy][ox].m_idx = 0; + grid_array[oy][ox].m_idx = 0; /* Update the new location */ - cave[ny][nx].m_idx = m_idx; + grid_array[ny][nx].m_idx = m_idx; /* Move the monster */ m_ptr->fy = ny; @@ -381,7 +381,7 @@ void teleport_player(POSITION dis, BIT_FLAGS mode) { for (yy = -1; yy < 2; yy++) { - MONSTER_IDX tmp_m_idx = cave[oy+yy][ox+xx].m_idx; + MONSTER_IDX tmp_m_idx = grid_array[oy+yy][ox+xx].m_idx; /* A monster except your mount may follow */ if (tmp_m_idx && (p_ptr->riding != tmp_m_idx)) @@ -423,7 +423,7 @@ void teleport_player_away(MONSTER_IDX m_idx, POSITION dis) { for (yy = -1; yy < 2; yy++) { - MONSTER_IDX tmp_m_idx = cave[oy+yy][ox+xx].m_idx; + MONSTER_IDX tmp_m_idx = grid_array[oy+yy][ox+xx].m_idx; /* A monster except your mount or caster may follow */ if (tmp_m_idx && (p_ptr->riding != tmp_m_idx) && (m_idx != tmp_m_idx)) @@ -482,7 +482,7 @@ void teleport_player_to(POSITION ny, POSITION nx, BIT_FLAGS mode) } /* Accept any grid when wizard mode */ - if (p_ptr->wizard && !(mode & TELEPORT_PASSIVE) && (!cave[y][x].m_idx || (cave[y][x].m_idx == p_ptr->riding))) break; + if (p_ptr->wizard && !(mode & TELEPORT_PASSIVE) && (!grid_array[y][x].m_idx || (grid_array[y][x].m_idx == p_ptr->riding))) break; /* Accept teleportable floor grids */ if (cave_player_teleportable_bold(y, x, mode)) break; @@ -561,7 +561,7 @@ bool teleport_level_other(player_type *creature_ptr) GAME_TEXT m_name[MAX_NLEN]; if (!target_set(TARGET_KILL)) return FALSE; - target_m_idx = cave[target_row][target_col].m_idx; + target_m_idx = grid_array[target_row][target_col].m_idx; if (!target_m_idx) return TRUE; if (!player_has_los_bold(target_row, target_col)) return TRUE; if (!projectable(creature_ptr->y, creature_ptr->x, target_row, target_col)) return TRUE; @@ -629,7 +629,7 @@ void teleport_level(MONSTER_IDX m_idx) } /* Down only */ - if ((ironman_downward && (m_idx <= 0)) || (dun_level <= d_info[dungeon_type].mindepth)) + if ((ironman_downward && (m_idx <= 0)) || (dun_level <= d_info[p_ptr->dungeon_idx].mindepth)) { #ifdef JP if (see_m) msg_format("%^sは床を突き破って沈んでいく。", m_name); @@ -640,7 +640,7 @@ void teleport_level(MONSTER_IDX m_idx) { if (!dun_level) { - dungeon_type = ironman_downward ? DUNGEON_ANGBAND : p_ptr->recall_dungeon; + p_ptr->dungeon_idx = ironman_downward ? DUNGEON_ANGBAND : p_ptr->recall_dungeon; p_ptr->oldpy = p_ptr->y; p_ptr->oldpx = p_ptr->x; } @@ -651,7 +651,7 @@ void teleport_level(MONSTER_IDX m_idx) if (!dun_level) { - dun_level = d_info[dungeon_type].mindepth; + dun_level = d_info[p_ptr->dungeon_idx].mindepth; prepare_change_floor_mode(CFM_RAND_PLACE); } else @@ -665,7 +665,7 @@ void teleport_level(MONSTER_IDX m_idx) } /* Up only */ - else if (quest_number(dun_level) || (dun_level >= d_info[dungeon_type].maxdepth)) + else if (quest_number(dun_level) || (dun_level >= d_info[p_ptr->dungeon_idx].maxdepth)) { #ifdef JP if (see_m) msg_format("%^sは天井を突き破って宙へ浮いていく。", m_name); @@ -721,7 +721,7 @@ void teleport_level(MONSTER_IDX m_idx) if (m_idx <= 0) /* To player */ { /* Never reach this code on the surface */ - /* if (!dun_level) dungeon_type = p_ptr->recall_dungeon; */ + /* if (!dun_level) p_ptr->dungeon_idx = p_ptr->recall_dungeon; */ if (record_stair) do_cmd_write_nikki(NIKKI_TELE_LEV, 1, NULL); @@ -784,7 +784,7 @@ DUNGEON_IDX choose_dungeon(concptr note, POSITION y, POSITION x) } /* Allocate the "dun" array */ - C_MAKE(dun, max_d_idx, s16b); + C_MAKE(dun, max_d_idx, DUNGEON_IDX); screen_save(); for(i = 1; i < max_d_idx; i++) @@ -818,7 +818,7 @@ DUNGEON_IDX choose_dungeon(concptr note, POSITION y, POSITION x) if ((i == ESCAPE) || !num) { /* Free the "dun" array */ - C_KILL(dun, max_d_idx, s16b); + C_KILL(dun, max_d_idx, DUNGEON_IDX); screen_load(); return 0; @@ -833,7 +833,7 @@ DUNGEON_IDX choose_dungeon(concptr note, POSITION y, POSITION x) screen_load(); /* Free the "dun" array */ - C_KILL(dun, max_d_idx, s16b); + C_KILL(dun, max_d_idx, DUNGEON_IDX); return select_dungeon; } @@ -859,13 +859,13 @@ bool recall_player(player_type *creature_ptr, TIME_EFFECT turns) return TRUE; } - if (dun_level && (max_dlv[dungeon_type] > dun_level) && !creature_ptr->inside_quest && !creature_ptr->word_recall) + if (dun_level && (max_dlv[p_ptr->dungeon_idx] > dun_level) && !creature_ptr->inside_quest && !creature_ptr->word_recall) { if (get_check(_("ここは最深到達階より浅い階です。この階に戻って来ますか? ", "Reset recall depth? "))) { - max_dlv[dungeon_type] = dun_level; + max_dlv[p_ptr->dungeon_idx] = dun_level; if (record_maxdepth) - do_cmd_write_nikki(NIKKI_TRUMP, dungeon_type, _("帰還のときに", "when recall from dungeon")); + do_cmd_write_nikki(NIKKI_TRUMP, p_ptr->dungeon_idx, _("帰還のときに", "when recall from dungeon")); } } @@ -1100,8 +1100,8 @@ void mutate_player(void) int ii, jj, i; /* Pick a pair of stats */ - ii = randint0(6); - for (jj = ii; jj == ii; jj = randint0(6)) /* loop */; + ii = randint0(A_MAX); + for (jj = ii; jj == ii; jj = randint0(A_MAX)) /* loop */; max1 = p_ptr->stat_max[ii]; cur1 = p_ptr->stat_cur[ii]; @@ -1113,7 +1113,7 @@ void mutate_player(void) p_ptr->stat_max[jj] = max1; p_ptr->stat_cur[jj] = cur1; - for (i=0;i<6;i++) + for (i = 0; i < A_MAX; i++) { if(p_ptr->stat_max[i] > p_ptr->stat_max_max[i]) p_ptr->stat_max[i] = p_ptr->stat_max_max[i]; if(p_ptr->stat_cur[i] > p_ptr->stat_max_max[i]) p_ptr->stat_cur[i] = p_ptr->stat_max_max[i]; @@ -1377,7 +1377,7 @@ void brand_weapon(int brand_type) static bool vanish_dungeon(void) { POSITION y, x; - cave_type *c_ptr; + grid_type *g_ptr; feature_type *f_ptr; monster_type *m_ptr; GAME_TEXT m_name[MAX_NLEN]; @@ -1393,21 +1393,21 @@ static bool vanish_dungeon(void) { for (x = 1; x < cur_wid - 1; x++) { - c_ptr = &cave[y][x]; + g_ptr = &grid_array[y][x]; /* Seeing true feature code (ignore mimic) */ - f_ptr = &f_info[c_ptr->feat]; + f_ptr = &f_info[g_ptr->feat]; /* Lose room and vault */ - c_ptr->info &= ~(CAVE_ROOM | CAVE_ICKY); + g_ptr->info &= ~(CAVE_ROOM | CAVE_ICKY); - m_ptr = &m_list[c_ptr->m_idx]; + m_ptr = &m_list[g_ptr->m_idx]; /* Awake monster */ - if (c_ptr->m_idx && MON_CSLEEP(m_ptr)) + if (g_ptr->m_idx && MON_CSLEEP(m_ptr)) { /* Reset sleep counter */ - (void)set_monster_csleep(c_ptr->m_idx, 0); + (void)set_monster_csleep(g_ptr->m_idx, 0); /* Notice the "waking up" */ if (m_ptr->ml) @@ -1425,68 +1425,68 @@ static bool vanish_dungeon(void) /* Special boundary walls -- Top and bottom */ for (x = 0; x < cur_wid; x++) { - c_ptr = &cave[0][x]; - f_ptr = &f_info[c_ptr->mimic]; + g_ptr = &grid_array[0][x]; + f_ptr = &f_info[g_ptr->mimic]; /* Lose room and vault */ - c_ptr->info &= ~(CAVE_ROOM | CAVE_ICKY); + g_ptr->info &= ~(CAVE_ROOM | CAVE_ICKY); /* Set boundary mimic if needed */ - if (c_ptr->mimic && have_flag(f_ptr->flags, FF_HURT_DISI)) + if (g_ptr->mimic && have_flag(f_ptr->flags, FF_HURT_DISI)) { - c_ptr->mimic = feat_state(c_ptr->mimic, FF_HURT_DISI); + g_ptr->mimic = feat_state(g_ptr->mimic, FF_HURT_DISI); /* Check for change to boring grid */ - if (!have_flag(f_info[c_ptr->mimic].flags, FF_REMEMBER)) c_ptr->info &= ~(CAVE_MARK); + if (!have_flag(f_info[g_ptr->mimic].flags, FF_REMEMBER)) g_ptr->info &= ~(CAVE_MARK); } - c_ptr = &cave[cur_hgt - 1][x]; - f_ptr = &f_info[c_ptr->mimic]; + g_ptr = &grid_array[cur_hgt - 1][x]; + f_ptr = &f_info[g_ptr->mimic]; /* Lose room and vault */ - c_ptr->info &= ~(CAVE_ROOM | CAVE_ICKY); + g_ptr->info &= ~(CAVE_ROOM | CAVE_ICKY); /* Set boundary mimic if needed */ - if (c_ptr->mimic && have_flag(f_ptr->flags, FF_HURT_DISI)) + if (g_ptr->mimic && have_flag(f_ptr->flags, FF_HURT_DISI)) { - c_ptr->mimic = feat_state(c_ptr->mimic, FF_HURT_DISI); + g_ptr->mimic = feat_state(g_ptr->mimic, FF_HURT_DISI); /* Check for change to boring grid */ - if (!have_flag(f_info[c_ptr->mimic].flags, FF_REMEMBER)) c_ptr->info &= ~(CAVE_MARK); + if (!have_flag(f_info[g_ptr->mimic].flags, FF_REMEMBER)) g_ptr->info &= ~(CAVE_MARK); } } /* Special boundary walls -- Left and right */ for (y = 1; y < (cur_hgt - 1); y++) { - c_ptr = &cave[y][0]; - f_ptr = &f_info[c_ptr->mimic]; + g_ptr = &grid_array[y][0]; + f_ptr = &f_info[g_ptr->mimic]; /* Lose room and vault */ - c_ptr->info &= ~(CAVE_ROOM | CAVE_ICKY); + g_ptr->info &= ~(CAVE_ROOM | CAVE_ICKY); /* Set boundary mimic if needed */ - if (c_ptr->mimic && have_flag(f_ptr->flags, FF_HURT_DISI)) + if (g_ptr->mimic && have_flag(f_ptr->flags, FF_HURT_DISI)) { - c_ptr->mimic = feat_state(c_ptr->mimic, FF_HURT_DISI); + g_ptr->mimic = feat_state(g_ptr->mimic, FF_HURT_DISI); /* Check for change to boring grid */ - if (!have_flag(f_info[c_ptr->mimic].flags, FF_REMEMBER)) c_ptr->info &= ~(CAVE_MARK); + if (!have_flag(f_info[g_ptr->mimic].flags, FF_REMEMBER)) g_ptr->info &= ~(CAVE_MARK); } - c_ptr = &cave[y][cur_wid - 1]; - f_ptr = &f_info[c_ptr->mimic]; + g_ptr = &grid_array[y][cur_wid - 1]; + f_ptr = &f_info[g_ptr->mimic]; /* Lose room and vault */ - c_ptr->info &= ~(CAVE_ROOM | CAVE_ICKY); + g_ptr->info &= ~(CAVE_ROOM | CAVE_ICKY); /* Set boundary mimic if needed */ - if (c_ptr->mimic && have_flag(f_ptr->flags, FF_HURT_DISI)) + if (g_ptr->mimic && have_flag(f_ptr->flags, FF_HURT_DISI)) { - c_ptr->mimic = feat_state(c_ptr->mimic, FF_HURT_DISI); + g_ptr->mimic = feat_state(g_ptr->mimic, FF_HURT_DISI); /* Check for change to boring grid */ - if (!have_flag(f_info[c_ptr->mimic].flags, FF_REMEMBER)) c_ptr->info &= ~(CAVE_MARK); + if (!have_flag(f_info[g_ptr->mimic].flags, FF_REMEMBER)) g_ptr->info &= ~(CAVE_MARK); } } @@ -1505,17 +1505,17 @@ static bool vanish_dungeon(void) void call_the_(void) { int i; - cave_type *c_ptr; + grid_type *g_ptr; bool do_call = TRUE; for (i = 0; i < 9; i++) { - c_ptr = &cave[p_ptr->y + ddy_ddd[i]][p_ptr->x + ddx_ddd[i]]; + g_ptr = &grid_array[p_ptr->y + ddy_ddd[i]][p_ptr->x + ddx_ddd[i]]; - if (!cave_have_flag_grid(c_ptr, FF_PROJECT)) + if (!cave_have_flag_grid(g_ptr, FF_PROJECT)) { - if (!c_ptr->mimic || !have_flag(f_info[c_ptr->mimic].flags, FF_PROJECT) || - !permanent_wall(&f_info[c_ptr->feat])) + if (!g_ptr->mimic || !have_flag(f_info[g_ptr->mimic].flags, FF_PROJECT) || + !permanent_wall(&f_info[g_ptr->feat])) { do_call = FALSE; break; @@ -1588,12 +1588,12 @@ void fetch(DIRECTION dir, WEIGHT wgt, bool require_los) { POSITION ty, tx; OBJECT_IDX i; - cave_type *c_ptr; + grid_type *g_ptr; object_type *o_ptr; GAME_TEXT o_name[MAX_NLEN]; /* Check to see if an object is already there */ - if (cave[p_ptr->y][p_ptr->x].o_idx) + if (grid_array[p_ptr->y][p_ptr->x].o_idx) { msg_print(_("自分の足の下にある物は取れません。", "You can't fetch when you're already standing on something.")); return; @@ -1611,17 +1611,17 @@ void fetch(DIRECTION dir, WEIGHT wgt, bool require_los) return; } - c_ptr = &cave[ty][tx]; + g_ptr = &grid_array[ty][tx]; /* We need an item to fetch */ - if (!c_ptr->o_idx) + if (!g_ptr->o_idx) { msg_print(_("そこには何もありません。", "There is no object at this place.")); return; } /* No fetching from vault */ - if (c_ptr->info & CAVE_ICKY) + if (g_ptr->info & CAVE_ICKY) { msg_print(_("アイテムがコントロールを外れて落ちた。", "The item slips from your control.")); return; @@ -1650,15 +1650,15 @@ void fetch(DIRECTION dir, WEIGHT wgt, bool require_los) { ty += ddy[dir]; tx += ddx[dir]; - c_ptr = &cave[ty][tx]; + g_ptr = &grid_array[ty][tx]; if ((distance(p_ptr->y, p_ptr->x, ty, tx) > MAX_RANGE) || !cave_have_flag_bold(ty, tx, FF_PROJECT)) return; } - while (!c_ptr->o_idx); + while (!g_ptr->o_idx); } - o_ptr = &o_list[c_ptr->o_idx]; + o_ptr = &o_list[g_ptr->o_idx]; if (o_ptr->weight > wgt) { @@ -1667,9 +1667,9 @@ void fetch(DIRECTION dir, WEIGHT wgt, bool require_los) return; } - i = c_ptr->o_idx; - c_ptr->o_idx = o_ptr->next_o_idx; - cave[p_ptr->y][p_ptr->x].o_idx = i; /* 'move' it */ + i = g_ptr->o_idx; + g_ptr->o_idx = o_ptr->next_o_idx; + grid_array[p_ptr->y][p_ptr->x].o_idx = i; /* 'move' it */ o_ptr->next_o_idx = 0; o_ptr->iy = p_ptr->y; @@ -1728,8 +1728,8 @@ bool warding_glyph(void) } /* Create a glyph */ - cave[p_ptr->y][p_ptr->x].info |= CAVE_OBJECT; - cave[p_ptr->y][p_ptr->x].mimic = feat_glyph; + grid_array[p_ptr->y][p_ptr->x].info |= CAVE_OBJECT; + grid_array[p_ptr->y][p_ptr->x].mimic = feat_glyph; note_spot(p_ptr->y, p_ptr->x); lite_spot(p_ptr->y, p_ptr->x); @@ -1750,11 +1750,11 @@ bool place_mirror(void) } /* Create a mirror */ - cave[p_ptr->y][p_ptr->x].info |= CAVE_OBJECT; - cave[p_ptr->y][p_ptr->x].mimic = feat_mirror; + grid_array[p_ptr->y][p_ptr->x].info |= CAVE_OBJECT; + grid_array[p_ptr->y][p_ptr->x].mimic = feat_mirror; /* Turn on the light */ - cave[p_ptr->y][p_ptr->x].info |= CAVE_GLOW; + grid_array[p_ptr->y][p_ptr->x].info |= CAVE_GLOW; note_spot(p_ptr->y, p_ptr->x); lite_spot(p_ptr->y, p_ptr->x); @@ -1778,8 +1778,8 @@ bool explosive_rune(void) } /* Create a glyph */ - cave[p_ptr->y][p_ptr->x].info |= CAVE_OBJECT; - cave[p_ptr->y][p_ptr->x].mimic = feat_explosive_rune; + grid_array[p_ptr->y][p_ptr->x].info |= CAVE_OBJECT; + grid_array[p_ptr->y][p_ptr->x].mimic = feat_explosive_rune; note_spot(p_ptr->y, p_ptr->x); lite_spot(p_ptr->y, p_ptr->x); @@ -4141,18 +4141,18 @@ static MONRACE_IDX poly_r_idx(MONRACE_IDX r_idx) */ bool polymorph_monster(POSITION y, POSITION x) { - cave_type *c_ptr = &cave[y][x]; - monster_type *m_ptr = &m_list[c_ptr->m_idx]; + grid_type *g_ptr = &grid_array[y][x]; + monster_type *m_ptr = &m_list[g_ptr->m_idx]; bool polymorphed = FALSE; MONRACE_IDX new_r_idx; MONRACE_IDX old_r_idx = m_ptr->r_idx; - bool targeted = (target_who == c_ptr->m_idx) ? TRUE : FALSE; - bool health_tracked = (p_ptr->health_who == c_ptr->m_idx) ? TRUE : FALSE; + bool targeted = (target_who == g_ptr->m_idx) ? TRUE : FALSE; + bool health_tracked = (p_ptr->health_who == g_ptr->m_idx) ? TRUE : FALSE; monster_type back_m; if (p_ptr->inside_arena || p_ptr->inside_battle) return (FALSE); - if ((p_ptr->riding == c_ptr->m_idx) || (m_ptr->mflag2 & MFLAG2_KAGE)) return (FALSE); + if ((p_ptr->riding == g_ptr->m_idx) || (m_ptr->mflag2 & MFLAG2_KAGE)) return (FALSE); /* Memorize the monster before polymorphing */ back_m = *m_ptr; @@ -4176,7 +4176,7 @@ bool polymorph_monster(POSITION y, POSITION x) m_ptr->hold_o_idx = 0; /* "Kill" the "old" monster */ - delete_monster_idx(c_ptr->m_idx); + delete_monster_idx(g_ptr->m_idx); /* Create a new monster (no groups) */ if (place_monster_aux(0, y, x, new_r_idx, mode)) @@ -4562,9 +4562,7 @@ bool eat_magic(int power) p_ptr->csp = p_ptr->msp; } - /* Redraw mana and hp */ p_ptr->redraw |= (PR_MANA); - p_ptr->update |= (PU_COMBINE | PU_REORDER); p_ptr->window |= (PW_INVEN); @@ -4581,7 +4579,7 @@ bool eat_magic(int power) void massacre(void) { POSITION x, y; - cave_type *c_ptr; + grid_type *g_ptr; monster_type *m_ptr; DIRECTION dir; @@ -4589,11 +4587,11 @@ void massacre(void) { y = p_ptr->y + ddy_ddd[dir]; x = p_ptr->x + ddx_ddd[dir]; - c_ptr = &cave[y][x]; - m_ptr = &m_list[c_ptr->m_idx]; + g_ptr = &grid_array[y][x]; + m_ptr = &m_list[g_ptr->m_idx]; /* Hack -- attack monsters */ - if (c_ptr->m_idx && (m_ptr->ml || cave_have_flag_bold(y, x, FF_PROJECT))) + if (g_ptr->m_idx && (m_ptr->ml || cave_have_flag_bold(y, x, FF_PROJECT))) py_attack(y, x, 0); } } @@ -4601,16 +4599,16 @@ void massacre(void) bool eat_lock(void) { POSITION x, y; - cave_type *c_ptr; + grid_type *g_ptr; feature_type *f_ptr, *mimic_f_ptr; DIRECTION dir; if (!get_direction(&dir, FALSE, FALSE)) return FALSE; y = p_ptr->y + ddy[dir]; x = p_ptr->x + ddx[dir]; - c_ptr = &cave[y][x]; - f_ptr = &f_info[c_ptr->feat]; - mimic_f_ptr = &f_info[get_feat_mimic(c_ptr)]; + g_ptr = &grid_array[y][x]; + f_ptr = &f_info[g_ptr->feat]; + mimic_f_ptr = &f_info[get_feat_mimic(g_ptr)]; stop_mouth(); @@ -4622,9 +4620,9 @@ bool eat_lock(void) { msg_format(_("いてっ!この%sはあなたの歯より硬い!", "Ouch! This %s is harder than your teeth!"), f_name + mimic_f_ptr->name); } - else if (c_ptr->m_idx) + else if (g_ptr->m_idx) { - monster_type *m_ptr = &m_list[c_ptr->m_idx]; + monster_type *m_ptr = &m_list[g_ptr->m_idx]; msg_print(_("何かが邪魔しています!", "There's something in the way!")); if (!m_ptr->ml || !is_pet(m_ptr)) py_attack(y, x, 0); @@ -4675,12 +4673,12 @@ bool shock_power(void) x = p_ptr->x + ddx[dir]; dam = damroll(8 + ((plev - 5) / 4) + boost / 12, 8); fire_beam(GF_MISSILE, dir, dam); - if (cave[y][x].m_idx) + if (grid_array[y][x].m_idx) { int i; - int ty = y, tx = x; - int oy = y, ox = x; - MONSTER_IDX m_idx = cave[y][x].m_idx; + POSITION ty = y, tx = x; + POSITION oy = y, ox = x; + MONSTER_IDX m_idx = grid_array[y][x].m_idx; monster_type *m_ptr = &m_list[m_idx]; monster_race *r_ptr = &r_info[m_ptr->r_idx]; GAME_TEXT m_name[MAX_NLEN]; @@ -4707,10 +4705,10 @@ bool shock_power(void) if ((ty != oy) || (tx != ox)) { msg_format(_("%sを吹き飛ばした!", "You blow %s away!"), m_name); - cave[oy][ox].m_idx = 0; - cave[ty][tx].m_idx = (s16b)m_idx; - m_ptr->fy = (byte_hack)ty; - m_ptr->fx = (byte_hack)tx; + grid_array[oy][ox].m_idx = 0; + grid_array[ty][tx].m_idx = m_idx; + m_ptr->fy = ty; + m_ptr->fx = tx; update_monster(m_idx, TRUE); lite_spot(oy, ox);