From b138823cd6c5891a1c8ea857c34503f59131c163 Mon Sep 17 00:00:00 2001 From: deskull Date: Wed, 27 Feb 2019 13:41:10 +0900 Subject: [PATCH] =?utf8?q?[Refactor]=20#38993=20o=5Flist=20=E3=81=A8=20max?= =?utf8?q?=5Fo=5Fidx=20=E3=82=92=20floor=5Ftype=20=E3=81=AB=E5=8F=96?= =?utf8?q?=E3=82=8A=E8=BE=BC=E3=82=80=E3=80=82=20/=20Move=20o=5Flist=20and?= =?utf8?q?=20max=5Fo=5Fidx=20to=20floor=5Ftype=20structure.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- doxygen/Hengband.doxyfile | 2 +- src/autopick.c | 8 ++++---- src/chest.c | 4 ++-- src/cmd-activate.c | 2 +- src/cmd-eat.c | 2 +- src/cmd-quaff.c | 2 +- src/cmd-read.c | 2 +- src/cmd-usestaff.c | 2 +- src/cmd-zaprod.c | 2 +- src/cmd-zapwand.c | 2 +- src/cmd2.c | 8 ++++---- src/cmd4.c | 2 +- src/dungeon.c | 6 +++--- src/externs.h | 1 - src/floor-generate.c | 4 ++-- src/floor-save.c | 4 ++-- src/floor-streams.c | 2 +- src/grid.c | 6 +++--- src/init1.c | 4 ++-- src/init2.c | 2 +- src/load.c | 8 ++++---- src/melee1.c | 4 ++-- src/monster-process.c | 2 +- src/monster2.c | 6 +++--- src/mspells1.c | 2 +- src/object1.c | 42 +++++++++++++++++++-------------------- src/object2.c | 50 +++++++++++++++++++++++------------------------ src/player-move.c | 8 ++++---- src/player-status.c | 4 ++-- src/save.c | 2 +- src/shoot.c | 4 ++-- src/spells-floor.c | 4 ++-- src/spells-status.c | 2 +- src/spells1.c | 2 +- src/spells2.c | 8 ++++---- src/spells3.c | 6 +++--- src/types.h | 7 ++++++- src/variable.c | 10 ---------- src/xtra2.c | 16 +++++++-------- 39 files changed, 124 insertions(+), 130 deletions(-) diff --git a/doxygen/Hengband.doxyfile b/doxygen/Hengband.doxyfile index d775f1b0d..1f5f449e7 100644 --- a/doxygen/Hengband.doxyfile +++ b/doxygen/Hengband.doxyfile @@ -2220,7 +2220,7 @@ MSCGEN_PATH = # DIA_PATH tag allows you to specify the directory where the dia binary resides. # If left empty dia is assumed to be found in the default search path. -DIA_PATH = +DIA_PATH = "../../../../../../Program Files (x86)/Graphviz2.38/bin" # If set to YES the inheritance and collaboration graphs will hide inheritance # and usage relations if the target is undocumented or is not a class. diff --git a/src/autopick.c b/src/autopick.c index 098d3aa3f..1113255d6 100644 --- a/src/autopick.c +++ b/src/autopick.c @@ -1616,7 +1616,7 @@ static void autopick_delayed_alter_aux(INVENTORY_IDX item) if (item >= 0) o_ptr = &inventory[item]; /* Get the item (on the floor) */ - else o_ptr = &o_list[0 - item]; + else o_ptr = ¤t_floor_ptr->o_list[0 - item]; if (o_ptr->k_idx && (o_ptr->marked & OM_AUTODESTROY)) { @@ -1661,7 +1661,7 @@ void autopick_delayed_alter(void) item = current_floor_ptr->grid_array[p_ptr->y][p_ptr->x].o_idx; while (item) { - OBJECT_IDX next = o_list[item].next_o_idx; + OBJECT_IDX next = current_floor_ptr->o_list[item].next_o_idx; autopick_delayed_alter_aux(-item); item = next; } @@ -1683,7 +1683,7 @@ void autopick_alter_item(INVENTORY_IDX item, bool destroy) if (item >= 0) o_ptr = &inventory[item]; /* Get the item (on the floor) */ - else o_ptr = &o_list[0 - item]; + else o_ptr = ¤t_floor_ptr->o_list[0 - item]; /* Get the index in the auto-pick/destroy list */ idx = is_autopick(o_ptr); @@ -1708,7 +1708,7 @@ void autopick_pickup_items(grid_type *g_ptr) for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { int idx; - object_type *o_ptr = &o_list[this_o_idx]; + object_type *o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; diff --git a/src/chest.c b/src/chest.c index cf6c6f4bb..e18f2065f 100644 --- a/src/chest.c +++ b/src/chest.c @@ -31,7 +31,7 @@ void chest_death(bool scatter, POSITION y, POSITION x, OBJECT_IDX o_idx) object_type forge; object_type *q_ptr; - object_type *o_ptr = &o_list[o_idx]; + object_type *o_ptr = ¤t_floor_ptr->o_list[o_idx]; /* Small chests often hold "gold" */ @@ -134,7 +134,7 @@ void chest_trap(POSITION y, POSITION x, OBJECT_IDX o_idx) { int i, trap; - object_type *o_ptr = &o_list[o_idx]; + object_type *o_ptr = ¤t_floor_ptr->o_list[o_idx]; int mon_level = o_ptr->xtra3; diff --git a/src/cmd-activate.c b/src/cmd-activate.c index e2fd834d9..0ef37da34 100644 --- a/src/cmd-activate.c +++ b/src/cmd-activate.c @@ -364,7 +364,7 @@ void do_cmd_activate_aux(INVENTORY_IDX item) /* Get the item (on the floor) */ else { - o_ptr = &o_list[0 - item]; + o_ptr = ¤t_floor_ptr->o_list[0 - item]; } take_turn(p_ptr, 100); diff --git a/src/cmd-eat.c b/src/cmd-eat.c index b53f2a41e..9a0b7a492 100644 --- a/src/cmd-eat.c +++ b/src/cmd-eat.c @@ -36,7 +36,7 @@ void do_cmd_eat_food_aux(INVENTORY_IDX item) /* Get the item (on the floor) */ else { - o_ptr = &o_list[0 - item]; + o_ptr = ¤t_floor_ptr->o_list[0 - item]; } sound(SOUND_EAT); diff --git a/src/cmd-quaff.c b/src/cmd-quaff.c index ff934eceb..f8b482238 100644 --- a/src/cmd-quaff.c +++ b/src/cmd-quaff.c @@ -54,7 +54,7 @@ void do_cmd_quaff_potion_aux(INVENTORY_IDX item) /* Get the item (on the floor) */ else { - o_ptr = &o_list[0 - item]; + o_ptr = ¤t_floor_ptr->o_list[0 - item]; } q_ptr = &forge; diff --git a/src/cmd-read.c b/src/cmd-read.c index fb1ec6d2a..36de7f677 100644 --- a/src/cmd-read.c +++ b/src/cmd-read.c @@ -46,7 +46,7 @@ void do_cmd_read_scroll_aux(INVENTORY_IDX item, bool known) /* Get the item (on the floor) */ else { - o_ptr = &o_list[0 - item]; + o_ptr = ¤t_floor_ptr->o_list[0 - item]; } take_turn(p_ptr, 100); diff --git a/src/cmd-usestaff.c b/src/cmd-usestaff.c index 6d22b929b..4ab7403f4 100644 --- a/src/cmd-usestaff.c +++ b/src/cmd-usestaff.c @@ -288,7 +288,7 @@ void do_cmd_use_staff_aux(INVENTORY_IDX item) /* Get the item (on the floor) */ else { - o_ptr = &o_list[0 - item]; + o_ptr = ¤t_floor_ptr->o_list[0 - item]; } diff --git a/src/cmd-zaprod.c b/src/cmd-zaprod.c index a8be1e423..f7a546688 100644 --- a/src/cmd-zaprod.c +++ b/src/cmd-zaprod.c @@ -277,7 +277,7 @@ void do_cmd_zap_rod_aux(INVENTORY_IDX item) /* Get the item (on the floor) */ else { - o_ptr = &o_list[0 - item]; + o_ptr = ¤t_floor_ptr->o_list[0 - item]; } diff --git a/src/cmd-zapwand.c b/src/cmd-zapwand.c index 9e3895569..8396a446e 100644 --- a/src/cmd-zapwand.c +++ b/src/cmd-zapwand.c @@ -333,7 +333,7 @@ void do_cmd_aim_wand_aux(INVENTORY_IDX item) /* Get the item (on the floor) */ else { - o_ptr = &o_list[0 - item]; + o_ptr = ¤t_floor_ptr->o_list[0 - item]; } /* Mega-Hack -- refuse to aim a pile from the ground */ diff --git a/src/cmd2.c b/src/cmd2.c index d0db6e500..fe2d5ab45 100644 --- a/src/cmd2.c +++ b/src/cmd2.c @@ -489,7 +489,7 @@ static OBJECT_IDX chest_check(POSITION y, POSITION x, bool trapped) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; next_o_idx = o_ptr->next_o_idx; /* Skip unknown chests XXX XXX */ @@ -521,7 +521,7 @@ static bool do_cmd_open_chest(POSITION y, POSITION x, OBJECT_IDX o_idx) int i, j; bool flag = TRUE; bool more = FALSE; - object_type *o_ptr = &o_list[o_idx]; + object_type *o_ptr = ¤t_floor_ptr->o_list[o_idx]; take_turn(p_ptr, 100); @@ -664,7 +664,7 @@ static int count_chests(POSITION *y, POSITION *x, bool trapped) if ((o_idx = chest_check(yy, xx, FALSE)) == 0) continue; /* Grab the object */ - o_ptr = &o_list[o_idx]; + o_ptr = ¤t_floor_ptr->o_list[o_idx]; /* Already open */ if (o_ptr->pval == 0) continue; @@ -1368,7 +1368,7 @@ static bool do_cmd_disarm_chest(POSITION y, POSITION x, OBJECT_IDX o_idx) { int i, j; bool more = FALSE; - object_type *o_ptr = &o_list[o_idx]; + object_type *o_ptr = ¤t_floor_ptr->o_list[o_idx]; take_turn(p_ptr, 100); diff --git a/src/cmd4.c b/src/cmd4.c index e2fe86fbc..f8b48e5aa 100644 --- a/src/cmd4.c +++ b/src/cmd4.c @@ -5282,7 +5282,7 @@ static void do_cmd_knowledge_artifacts(void) for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; diff --git a/src/dungeon.c b/src/dungeon.c index f4ff45d92..57a0bdfd3 100644 --- a/src/dungeon.c +++ b/src/dungeon.c @@ -2953,7 +2953,7 @@ static void process_world_aux_recharge(void) /* Process objects on floor */ for (i = 1; i < o_max; i++) { - object_type *o_ptr = &o_list[i]; + object_type *o_ptr = ¤t_floor_ptr->o_list[i]; /* Skip dead objects */ if (!o_ptr->k_idx) continue; @@ -3242,7 +3242,7 @@ static byte get_dungeon_feeling(void) /* Examine each unidentified object */ for (i = 1; i < o_max; i++) { - object_type *o_ptr = &o_list[i]; + object_type *o_ptr = ¤t_floor_ptr->o_list[i]; object_kind *k_ptr = &k_info[o_ptr->k_idx]; int delta = 0; @@ -5446,7 +5446,7 @@ static void dungeon(bool load_game) /* Hack -- Compact the object list occasionally */ - if (o_cnt + 32 > max_o_idx) compact_objects(64); + if (o_cnt + 32 > current_floor_ptr->max_o_idx) compact_objects(64); /* Hack -- Compress the object list occasionally */ if (o_cnt + 32 < o_max) compact_objects(0); diff --git a/src/externs.h b/src/externs.h index 76853b407..28b960274 100644 --- a/src/externs.h +++ b/src/externs.h @@ -340,7 +340,6 @@ extern FEAT_IDX max_f_idx; extern ARTIFACT_IDX max_a_idx; extern EGO_IDX max_e_idx; extern DUNGEON_IDX max_d_idx; -extern OBJECT_IDX max_o_idx; extern MONSTER_IDX max_m_idx; extern POSITION max_wild_x; extern POSITION max_wild_y; diff --git a/src/floor-generate.c b/src/floor-generate.c index 8911d3768..daae1e71c 100644 --- a/src/floor-generate.c +++ b/src/floor-generate.c @@ -1313,7 +1313,7 @@ void clear_cave(void) int i; /* Very simplified version of wipe_o_list() */ - (void)C_WIPE(o_list, o_max, object_type); + (void)C_WIPE(current_floor_ptr->o_list, o_max, object_type); o_max = 1; o_cnt = 0; @@ -1418,7 +1418,7 @@ void generate_random_floor(void) /* Prevent object over-flow */ - if (o_max >= max_o_idx) + if (o_max >= current_floor_ptr->max_o_idx) { why = _("アイテムが多すぎる", "too many objects"); okay = FALSE; diff --git a/src/floor-save.c b/src/floor-save.c index 9f0d77a10..cf886a62d 100644 --- a/src/floor-save.c +++ b/src/floor-save.c @@ -653,7 +653,7 @@ static void update_unique_artifact(s16b cur_floor_id) /* Maintain artifatcs */ for (i = 1; i < o_max; i++) { - object_type *o_ptr = &o_list[i]; + object_type *o_ptr = ¤t_floor_ptr->o_list[i]; /* Skip dead objects */ if (!o_ptr->k_idx) continue; @@ -1238,7 +1238,7 @@ void change_floor(void) /* Maintain artifatcs */ for (i = 1; i < o_max; i++) { - object_type *o_ptr = &o_list[i]; + object_type *o_ptr = ¤t_floor_ptr->o_list[i]; /* Skip dead objects */ if (!o_ptr->k_idx) continue; diff --git a/src/floor-streams.c b/src/floor-streams.c index ba49bb8be..2642103f3 100644 --- a/src/floor-streams.c +++ b/src/floor-streams.c @@ -294,7 +294,7 @@ void build_streamer(IDX feat, int chance) /* Scan all objects in the grid */ for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { - object_type *o_ptr = &o_list[this_o_idx]; + object_type *o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; diff --git a/src/grid.c b/src/grid.c index 90a8e0f06..bf980ce60 100644 --- a/src/grid.c +++ b/src/grid.c @@ -1375,7 +1375,7 @@ bool cave_valid_bold(POSITION y, POSITION x) for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -1942,7 +1942,7 @@ void map_info(POSITION y, POSITION x, TERM_COLOR *ap, SYMBOL_CODE *cp, TERM_COLO for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -2230,7 +2230,7 @@ void note_spot(POSITION y, POSITION x) /* Hack -- memorize objects */ for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { - object_type *o_ptr = &o_list[this_o_idx]; + object_type *o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; diff --git a/src/init1.c b/src/init1.c index a872e97ac..96b75cd44 100644 --- a/src/init1.c +++ b/src/init1.c @@ -3907,7 +3907,7 @@ static void drop_here(object_type *j_ptr, POSITION y, POSITION x) OBJECT_IDX o_idx = o_pop(); /* Access new object */ - o_ptr = &o_list[o_idx]; + o_ptr = ¤t_floor_ptr->o_list[o_idx]; /* Structure copy */ object_copy(o_ptr, j_ptr); @@ -4377,7 +4377,7 @@ static errr process_dungeon_file_aux(char *buf, int ymin, int xmin, int ymax, in /* Maximum o_idx */ else if (zz[0][0] == 'O') { - max_o_idx = (IDX)atoi(zz[1]); + current_floor_ptr->max_o_idx = (IDX)atoi(zz[1]); } /* Maximum m_idx */ diff --git a/src/init2.c b/src/init2.c index 94f886c02..2325fbabc 100644 --- a/src/init2.c +++ b/src/init2.c @@ -1221,7 +1221,7 @@ static errr init_other(void) /*** Prepare the "dungeon" information ***/ /* Allocate and Wipe the object list */ - C_MAKE(o_list, max_o_idx, object_type); + C_MAKE(current_floor_ptr->o_list, current_floor_ptr->max_o_idx, object_type); /* Allocate and Wipe the monster list */ C_MAKE(m_list, max_m_idx, monster_type); diff --git a/src/load.c b/src/load.c index 768b91958..1d561e01c 100644 --- a/src/load.c +++ b/src/load.c @@ -2835,7 +2835,7 @@ static errr rd_dungeon_old(void) rd_u16b(&limit); /* Verify maximum */ - if (limit > max_o_idx) + if (limit > current_floor_ptr->max_o_idx) { note(format(_("アイテムの配列が大きすぎる(%d)!", "Too many (%d) object entries!"), limit)); return (151); @@ -2860,7 +2860,7 @@ static errr rd_dungeon_old(void) /* Acquire place */ - o_ptr = &o_list[o_idx]; + o_ptr = ¤t_floor_ptr->o_list[o_idx]; /* Read the item */ rd_item(o_ptr); @@ -3164,7 +3164,7 @@ static errr rd_saved_floor(saved_floor_type *sf_ptr) rd_u16b(&limit); /* Verify maximum */ - if (limit > max_o_idx) return 151; + if (limit > current_floor_ptr->max_o_idx) return 151; /* Read the dungeon items */ @@ -3180,7 +3180,7 @@ static errr rd_saved_floor(saved_floor_type *sf_ptr) if (i != o_idx) return 152; /* Acquire place */ - o_ptr = &o_list[o_idx]; + o_ptr = ¤t_floor_ptr->o_list[o_idx]; /* Read the item */ rd_item(o_ptr); diff --git a/src/melee1.c b/src/melee1.c index dc707fc97..95a52b195 100644 --- a/src/melee1.c +++ b/src/melee1.c @@ -1167,7 +1167,7 @@ static void py_attack_aux(POSITION y, POSITION x, bool *fear, bool *mdeath, s16b if (target_ptr->hold_o_idx) { - object_type *q_ptr = &o_list[target_ptr->hold_o_idx]; + object_type *q_ptr = ¤t_floor_ptr->o_list[target_ptr->hold_o_idx]; GAME_TEXT o_name[MAX_NLEN]; object_desc(o_name, q_ptr, OD_NAME_ONLY); @@ -2187,7 +2187,7 @@ bool make_attack_normal(MONSTER_IDX m_idx) if (o_idx) { object_type *j_ptr; - j_ptr = &o_list[o_idx]; + j_ptr = ¤t_floor_ptr->o_list[o_idx]; object_copy(j_ptr, o_ptr); /* Modify number */ diff --git a/src/monster-process.c b/src/monster-process.c index 2c9ff589b..3b8bc1aa4 100644 --- a/src/monster-process.c +++ b/src/monster-process.c @@ -3073,7 +3073,7 @@ void process_monster(MONSTER_IDX m_idx) { BIT_FLAGS flgs[TR_FLAG_SIZE], flg2 = 0L, flg3 = 0L, flgr = 0L; GAME_TEXT m_name[MAX_NLEN], o_name[MAX_NLEN]; - object_type *o_ptr = &o_list[this_o_idx]; + object_type *o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; diff --git a/src/monster2.c b/src/monster2.c index 5ba445cf3..b9362ca6b 100644 --- a/src/monster2.c +++ b/src/monster2.c @@ -272,7 +272,7 @@ void delete_monster_idx(MONSTER_IDX i) for (this_o_idx = m_ptr->hold_o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -358,7 +358,7 @@ static void compact_monsters_aux(IDX i1, IDX i2) for (this_o_idx = m_ptr->hold_o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -4477,7 +4477,7 @@ void monster_drop_carried_objects(monster_type *m_ptr) /* Drop objects being carried */ for (this_o_idx = m_ptr->hold_o_idx; this_o_idx; this_o_idx = next_o_idx) { - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; diff --git a/src/mspells1.c b/src/mspells1.c index 1fb1a9237..cb621d636 100644 --- a/src/mspells1.c +++ b/src/mspells1.c @@ -418,7 +418,7 @@ bool raise_possible(monster_type *m_ptr) /* Scan the pile of objects */ for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { - object_type *o_ptr = &o_list[this_o_idx]; + object_type *o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; diff --git a/src/object1.c b/src/object1.c index c30fe900e..4963cddba 100644 --- a/src/object1.c +++ b/src/object1.c @@ -1952,7 +1952,7 @@ static bool get_tag_floor(COMMAND_CODE *cp, char tag, FLOOR_IDX floor_list[], IT /* Check every object in the grid */ for (i = 0; i < floor_num && i < 23; i++) { - object_type *o_ptr = &o_list[floor_list[i]]; + object_type *o_ptr = ¤t_floor_ptr->o_list[floor_list[i]]; /* Skip empty inscriptions */ if (!o_ptr->inscription) continue; @@ -1991,7 +1991,7 @@ static bool get_tag_floor(COMMAND_CODE *cp, char tag, FLOOR_IDX floor_list[], IT /* Check every object in the grid */ for (i = 0; i < floor_num && i < 23; i++) { - object_type *o_ptr = &o_list[floor_list[i]]; + object_type *o_ptr = ¤t_floor_ptr->o_list[floor_list[i]]; /* Skip empty inscriptions */ if (!o_ptr->inscription) continue; @@ -2507,7 +2507,7 @@ static bool verify(concptr prompt, INVENTORY_IDX item) /* Floor */ else { - o_ptr = &o_list[0 - item]; + o_ptr = ¤t_floor_ptr->o_list[0 - item]; } object_desc(o_name, o_ptr, 0); @@ -2541,7 +2541,7 @@ static bool get_item_allow(INVENTORY_IDX item) /* Floor */ else { - o_ptr = &o_list[0 - item]; + o_ptr = ¤t_floor_ptr->o_list[0 - item]; } /* No inscription */ @@ -2726,7 +2726,7 @@ bool get_item(OBJECT_IDX *cp, concptr pmt, concptr str, BIT_FLAGS mode) /* Special index */ k = 0 - (*cp); - o_ptr = &o_list[k]; + o_ptr = ¤t_floor_ptr->o_list[k]; /* Validate the item */ if (item_tester_okay(o_ptr) || (mode & USE_FULL)) @@ -2842,7 +2842,7 @@ bool get_item(OBJECT_IDX *cp, concptr pmt, concptr str, BIT_FLAGS mode) for (this_o_idx = current_floor_ptr->grid_array[p_ptr->y][p_ptr->x].o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -3192,7 +3192,7 @@ bool get_item(OBJECT_IDX *cp, concptr pmt, concptr str, BIT_FLAGS mode) for (this_o_idx = current_floor_ptr->grid_array[p_ptr->y][p_ptr->x].o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -3454,7 +3454,7 @@ object_type *choose_object(OBJECT_IDX *idx, concptr q, concptr s, BIT_FLAGS opti else if (item >= 0) return &inventory[item]; /* Get the item (on the floor) */ - else return &o_list[0 - item]; + else return ¤t_floor_ptr->o_list[0 - item]; } @@ -3486,7 +3486,7 @@ ITEM_NUMBER scan_floor(OBJECT_IDX *items, POSITION y, POSITION x, BIT_FLAGS mode for (this_o_idx = current_floor_ptr->grid_array[y][x].o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -3554,7 +3554,7 @@ COMMAND_CODE show_floor(int target_item, POSITION y, POSITION x, TERM_LEN *min_w /* Display the floor objects */ for (k = 0, i = 0; i < floor_num && i < 23; i++) { - o_ptr = &o_list[floor_list[i]]; + o_ptr = ¤t_floor_ptr->o_list[floor_list[i]]; object_desc(o_name, o_ptr, 0); @@ -3598,7 +3598,7 @@ COMMAND_CODE show_floor(int target_item, POSITION y, POSITION x, TERM_LEN *min_w /* Get the index */ m = floor_list[out_index[j]]; - o_ptr = &o_list[m]; + o_ptr = ¤t_floor_ptr->o_list[m]; /* Clear the line */ prt("", j + 1, col ? col - 2 : col); @@ -3732,7 +3732,7 @@ bool get_item_floor(COMMAND_CODE *cp, concptr pmt, concptr str, BIT_FLAGS mode) } /* Validate the item */ - else if (item_tester_okay(&o_list[0 - (*cp)]) || (mode & USE_FULL)) + else if (item_tester_okay(¤t_floor_ptr->o_list[0 - (*cp)]) || (mode & USE_FULL)) { /* Forget restrictions */ item_tester_tval = 0; @@ -4377,18 +4377,18 @@ bool get_item_floor(COMMAND_CODE *cp, concptr pmt, concptr str, BIT_FLAGS mode) o_idx = g_ptr->o_idx; /* Only rotate a pile of two or more objects. */ - if (!(o_idx && o_list[o_idx].next_o_idx)) break; + if (!(o_idx && current_floor_ptr->o_list[o_idx].next_o_idx)) break; /* Remove the first object from the list. */ excise_object_idx(o_idx); /* Find end of the list. */ i = g_ptr->o_idx; - while (o_list[i].next_o_idx) - i = o_list[i].next_o_idx; + while (current_floor_ptr->o_list[i].next_o_idx) + i = current_floor_ptr->o_list[i].next_o_idx; /* Add after the last object. */ - o_list[i].next_o_idx = o_idx; + current_floor_ptr->o_list[i].next_o_idx = o_idx; /* Re-scan floor list */ floor_num = scan_floor(floor_list, p_ptr->y, p_ptr->x, 0x03); @@ -4846,7 +4846,7 @@ void py_pickup_floor(bool pickup) for (this_o_idx = current_floor_ptr->grid_array[p_ptr->y][p_ptr->x].o_idx; this_o_idx; this_o_idx = next_o_idx) { /* Access the object */ - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; object_desc(o_name, o_ptr, 0); @@ -4913,7 +4913,7 @@ void py_pickup_floor(bool pickup) if (floor_num == 1) { /* Access the object */ - o_ptr = &o_list[floor_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[floor_o_idx]; #ifdef ALLOW_EASY_SENSE @@ -4947,7 +4947,7 @@ void py_pickup_floor(bool pickup) if (floor_num == 1) { /* Access the object */ - o_ptr = &o_list[floor_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[floor_o_idx]; #ifdef ALLOW_EASY_SENSE @@ -4984,7 +4984,7 @@ void py_pickup_floor(bool pickup) char out_val[MAX_NLEN+20]; /* Access the object */ - o_ptr = &o_list[floor_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[floor_o_idx]; #ifdef ALLOW_EASY_SENSE @@ -5010,7 +5010,7 @@ void py_pickup_floor(bool pickup) } /* Access the object */ - o_ptr = &o_list[floor_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[floor_o_idx]; #ifdef ALLOW_EASY_SENSE diff --git a/src/object2.c b/src/object2.c index e0a5d56c6..7b6618d43 100644 --- a/src/object2.c +++ b/src/object2.c @@ -70,7 +70,7 @@ void excise_object_idx(OBJECT_IDX o_idx) OBJECT_IDX prev_o_idx = 0; /* Object */ - j_ptr = &o_list[o_idx]; + j_ptr = ¤t_floor_ptr->o_list[o_idx]; /* Monster */ if (j_ptr->held_m_idx) @@ -84,7 +84,7 @@ void excise_object_idx(OBJECT_IDX o_idx) for (this_o_idx = m_ptr->hold_o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -104,7 +104,7 @@ void excise_object_idx(OBJECT_IDX o_idx) object_type *k_ptr; /* Previous object */ - k_ptr = &o_list[prev_o_idx]; + k_ptr = ¤t_floor_ptr->o_list[prev_o_idx]; /* Remove from list */ k_ptr->next_o_idx = next_o_idx; @@ -135,7 +135,7 @@ void excise_object_idx(OBJECT_IDX o_idx) for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -155,7 +155,7 @@ void excise_object_idx(OBJECT_IDX o_idx) object_type *k_ptr; /* Previous object */ - k_ptr = &o_list[prev_o_idx]; + k_ptr = ¤t_floor_ptr->o_list[prev_o_idx]; /* Remove from list */ k_ptr->next_o_idx = next_o_idx; @@ -189,7 +189,7 @@ void delete_object_idx(OBJECT_IDX o_idx) excise_object_idx(o_idx); /* Object */ - j_ptr = &o_list[o_idx]; + j_ptr = ¤t_floor_ptr->o_list[o_idx]; /* Dungeon floor */ if (!(j_ptr->held_m_idx)) @@ -230,7 +230,7 @@ void delete_object(POSITION y, POSITION x) for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -267,7 +267,7 @@ static void compact_objects_aux(OBJECT_IDX i1, OBJECT_IDX i2) /* Repair objects */ for (i = 1; i < o_max; i++) { - o_ptr = &o_list[i]; + o_ptr = ¤t_floor_ptr->o_list[i]; /* Skip "dead" objects */ if (!o_ptr->k_idx) continue; @@ -279,7 +279,7 @@ static void compact_objects_aux(OBJECT_IDX i1, OBJECT_IDX i2) o_ptr->next_o_idx = i2; } } - o_ptr = &o_list[i1]; + o_ptr = ¤t_floor_ptr->o_list[i1]; /* Monster */ if (o_ptr->held_m_idx) @@ -318,7 +318,7 @@ static void compact_objects_aux(OBJECT_IDX i1, OBJECT_IDX i2) } /* Structure copy */ - o_list[i2] = o_list[i1]; + current_floor_ptr->o_list[i2] = current_floor_ptr->o_list[i1]; /* Wipe the hole */ object_wipe(o_ptr); @@ -370,7 +370,7 @@ void compact_objects(int size) /* Examine the objects */ for (i = 1; i < o_max; i++) { - o_ptr = &o_list[i]; + o_ptr = ¤t_floor_ptr->o_list[i]; /* Skip dead objects */ if (!o_ptr->k_idx) continue; @@ -424,7 +424,7 @@ void compact_objects(int size) /* Excise dead objects (backwards!) */ for (i = o_max - 1; i >= 1; i--) { - o_ptr = &o_list[i]; + o_ptr = ¤t_floor_ptr->o_list[i]; /* Skip real objects */ if (o_ptr->k_idx) continue; @@ -457,7 +457,7 @@ void wipe_o_list(void) /* Delete the existing objects */ for (i = 1; i < o_max; i++) { - object_type *o_ptr = &o_list[i]; + object_type *o_ptr = ¤t_floor_ptr->o_list[i]; /* Skip dead objects */ if (!o_ptr->k_idx) continue; @@ -524,7 +524,7 @@ OBJECT_IDX o_pop(void) OBJECT_IDX i; /* Initial allocation */ - if (o_max < max_o_idx) + if (o_max < current_floor_ptr->max_o_idx) { /* Get next space */ i = o_max; @@ -544,7 +544,7 @@ OBJECT_IDX o_pop(void) for (i = 1; i < o_max; i++) { object_type *o_ptr; - o_ptr = &o_list[i]; + o_ptr = ¤t_floor_ptr->o_list[i]; /* Skip live objects */ if (o_ptr->k_idx) continue; @@ -4757,7 +4757,7 @@ void place_object(POSITION y, POSITION x, BIT_FLAGS mode) if (o_idx) { object_type *o_ptr; - o_ptr = &o_list[o_idx]; + o_ptr = ¤t_floor_ptr->o_list[o_idx]; /* Structure Copy */ object_copy(o_ptr, q_ptr); @@ -4870,7 +4870,7 @@ void place_gold(POSITION y, POSITION x) if (o_idx) { object_type *o_ptr; - o_ptr = &o_list[o_idx]; + o_ptr = ¤t_floor_ptr->o_list[o_idx]; /* Copy the object */ object_copy(o_ptr, q_ptr); @@ -5004,7 +5004,7 @@ OBJECT_IDX drop_near(object_type *j_ptr, PERCENTAGE chance, POSITION y, POSITION for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -5155,7 +5155,7 @@ OBJECT_IDX drop_near(object_type *j_ptr, PERCENTAGE chance, POSITION y, POSITION for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -5200,10 +5200,10 @@ OBJECT_IDX drop_near(object_type *j_ptr, PERCENTAGE chance, POSITION y, POSITION if (!done) { /* Structure copy */ - object_copy(&o_list[o_idx], j_ptr); + object_copy(¤t_floor_ptr->o_list[o_idx], j_ptr); /* Access new object */ - j_ptr = &o_list[o_idx]; + j_ptr = ¤t_floor_ptr->o_list[o_idx]; /* Locate */ j_ptr->iy = by; @@ -5426,7 +5426,7 @@ void inven_item_optimize(INVENTORY_IDX item) */ void floor_item_charges(INVENTORY_IDX item) { - object_type *o_ptr = &o_list[item]; + object_type *o_ptr = ¤t_floor_ptr->o_list[item]; /* Require staff/wand */ if ((o_ptr->tval != TV_STAFF) && (o_ptr->tval != TV_WAND)) return; @@ -5467,7 +5467,7 @@ void floor_item_charges(INVENTORY_IDX item) */ void floor_item_describe(INVENTORY_IDX item) { - object_type *o_ptr = &o_list[item]; + object_type *o_ptr = ¤t_floor_ptr->o_list[item]; GAME_TEXT o_name[MAX_NLEN]; object_desc(o_name, o_ptr, 0); @@ -5498,7 +5498,7 @@ void floor_item_describe(INVENTORY_IDX item) */ void floor_item_increase(INVENTORY_IDX item, ITEM_NUMBER num) { - object_type *o_ptr = &o_list[item]; + object_type *o_ptr = ¤t_floor_ptr->o_list[item]; /* Apply */ num += o_ptr->number; @@ -5523,7 +5523,7 @@ void floor_item_increase(INVENTORY_IDX item, ITEM_NUMBER num) */ void floor_item_optimize(INVENTORY_IDX item) { - object_type *o_ptr = &o_list[item]; + object_type *o_ptr = ¤t_floor_ptr->o_list[item]; /* Paranoia -- be sure it exists */ if (!o_ptr->k_idx) return; diff --git a/src/player-move.c b/src/player-move.c index 8509dcb91..360bf23bb 100644 --- a/src/player-move.c +++ b/src/player-move.c @@ -392,7 +392,7 @@ static void discover_hidden_things(POSITION y, POSITION x) for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -474,7 +474,7 @@ void py_pickup_aux(OBJECT_IDX o_idx) object_type *o_ptr; - o_ptr = &o_list[o_idx]; + o_ptr = ¤t_floor_ptr->o_list[o_idx]; #ifdef JP object_desc(old_name, o_ptr, OD_NAME_ONLY); @@ -575,7 +575,7 @@ void carry(bool pickup) for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; #ifdef ALLOW_EASY_SENSE /* TNB */ @@ -1802,7 +1802,7 @@ static bool run_test(void) for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; diff --git a/src/player-status.c b/src/player-status.c index a1dcc390d..258976b36 100644 --- a/src/player-status.c +++ b/src/player-status.c @@ -2646,7 +2646,7 @@ void calc_bonuses(void) for (this_o_idx = current_floor_ptr->grid_array[p_ptr->y][p_ptr->x].o_idx; this_o_idx; this_o_idx = next_o_idx) { - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -3809,7 +3809,7 @@ bool player_has_no_spellbooks(void) for (i = current_floor_ptr->grid_array[p_ptr->y][p_ptr->x].o_idx; i; i = o_ptr->next_o_idx) { - o_ptr = &o_list[i]; + o_ptr = ¤t_floor_ptr->o_list[i]; if (o_ptr->k_idx && (o_ptr->marked & OM_FOUND) && check_book_realm(o_ptr->tval, o_ptr->sval)) return FALSE; } diff --git a/src/save.c b/src/save.c index eac56fff8..7b627fcdc 100644 --- a/src/save.c +++ b/src/save.c @@ -1119,7 +1119,7 @@ static void wr_saved_floor(saved_floor_type *sf_ptr) /* Dump the objects */ for (i = 1; i < o_max; i++) { - object_type *o_ptr = &o_list[i]; + object_type *o_ptr = ¤t_floor_ptr->o_list[i]; /* Dump it */ wr_item(o_ptr); diff --git a/src/shoot.c b/src/shoot.c index d4aff5723..db345eaa8 100644 --- a/src/shoot.c +++ b/src/shoot.c @@ -370,7 +370,7 @@ void exe_fire(INVENTORY_IDX item, object_type *j_ptr) } else { - o_ptr = &o_list[0 - item]; + o_ptr = ¤t_floor_ptr->o_list[0 - item]; } /* Sniper - Cannot shot a single arrow twice */ @@ -839,7 +839,7 @@ void exe_fire(INVENTORY_IDX item, object_type *j_ptr) return; } - o_ptr = &o_list[o_idx]; + o_ptr = ¤t_floor_ptr->o_list[o_idx]; object_copy(o_ptr, q_ptr); /* Forget mark */ diff --git a/src/spells-floor.c b/src/spells-floor.c index 9dc3abe66..db04cb39a 100644 --- a/src/spells-floor.c +++ b/src/spells-floor.c @@ -27,7 +27,7 @@ void wiz_lite(bool ninja) /* Memorize objects */ for (i = 1; i < o_max; i++) { - object_type *o_ptr = &o_list[i]; + object_type *o_ptr = ¤t_floor_ptr->o_list[i]; /* Skip dead objects */ if (!o_ptr->k_idx) continue; @@ -144,7 +144,7 @@ void wiz_dark(void) /* Forget all objects */ for (i = 1; i < o_max; i++) { - object_type *o_ptr = &o_list[i]; + object_type *o_ptr = ¤t_floor_ptr->o_list[i]; /* Skip dead objects */ if (!o_ptr->k_idx) continue; diff --git a/src/spells-status.c b/src/spells-status.c index 16b15e770..4bde3984e 100644 --- a/src/spells-status.c +++ b/src/spells-status.c @@ -441,7 +441,7 @@ bool cosmic_cast_off(player_type *creature_ptr, object_type *o_ptr) inven_item_increase(inv, (0 - o_ptr->number)); inven_item_optimize(inv); o_idx = drop_near(&forge, 0, creature_ptr->y, creature_ptr->x); - o_ptr = &o_list[o_idx]; + o_ptr = ¤t_floor_ptr->o_list[o_idx]; object_desc(o_name, o_ptr, OD_NAME_ONLY); msg_format(_("%sを脱ぎ捨てた。", "You cast off %s."), o_name); diff --git a/src/spells1.c b/src/spells1.c index f368d7e5c..18ec2c3c7 100644 --- a/src/spells1.c +++ b/src/spells1.c @@ -639,7 +639,7 @@ static bool project_o(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P /* Scan all objects in the grid */ for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { - object_type *o_ptr = &o_list[this_o_idx]; + object_type *o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; bool is_art = FALSE; bool ignore = FALSE; diff --git a/src/spells2.c b/src/spells2.c index e53f27519..e86bca33a 100644 --- a/src/spells2.c +++ b/src/spells2.c @@ -179,7 +179,7 @@ bool detect_objects_gold(POSITION range) /* Scan objects */ for (i = 1; i < o_max; i++) { - object_type *o_ptr = &o_list[i]; + object_type *o_ptr = ¤t_floor_ptr->o_list[i]; /* Skip dead objects */ if (!o_ptr->k_idx) continue; @@ -234,7 +234,7 @@ bool detect_objects_normal(POSITION range) /* Scan objects */ for (i = 1; i < o_max; i++) { - object_type *o_ptr = &o_list[i]; + object_type *o_ptr = ¤t_floor_ptr->o_list[i]; /* Skip dead objects */ if (!o_ptr->k_idx) continue; @@ -297,7 +297,7 @@ bool detect_objects_magic(POSITION range) /* Scan all objects */ for (i = 1; i < o_max; i++) { - object_type *o_ptr = &o_list[i]; + object_type *o_ptr = ¤t_floor_ptr->o_list[i]; /* Skip dead objects */ if (!o_ptr->k_idx) continue; @@ -1490,7 +1490,7 @@ bool destroy_area(POSITION y1, POSITION x1, POSITION r, bool in_generate) for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; diff --git a/src/spells3.c b/src/spells3.c index 48505ba45..d14084981 100644 --- a/src/spells3.c +++ b/src/spells3.c @@ -1659,7 +1659,7 @@ void fetch(DIRECTION dir, WEIGHT wgt, bool require_los) while (!g_ptr->o_idx); } - o_ptr = &o_list[g_ptr->o_idx]; + o_ptr = ¤t_floor_ptr->o_list[g_ptr->o_idx]; if (o_ptr->weight > wgt) { @@ -3976,7 +3976,7 @@ bool polymorph_monster(POSITION y, POSITION x) { for (this_o_idx = back_m.hold_o_idx; this_o_idx; this_o_idx = next_o_idx) { - object_type *o_ptr = &o_list[this_o_idx]; + object_type *o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -3990,7 +3990,7 @@ bool polymorph_monster(POSITION y, POSITION x) for (this_o_idx = back_m.hold_o_idx; this_o_idx; this_o_idx = next_o_idx) { /* Acquire next object */ - next_o_idx = o_list[this_o_idx].next_o_idx; + next_o_idx = current_floor_ptr->o_list[this_o_idx].next_o_idx; delete_object_idx(this_o_idx); } } diff --git a/src/types.h b/src/types.h index 511eb5e06..082695444 100644 --- a/src/types.h +++ b/src/types.h @@ -1883,4 +1883,9 @@ typedef struct { POSITION width; /* Current dungeon width */ POSITION height; /* Current dungeon height */ MONSTER_NUMBER num_repro; /*!< Current reproducer count */ -} floor_type; \ No newline at end of file + + object_type *o_list; /*!< The array of dungeon items [current_floor_ptr->max_o_idx] */ + OBJECT_IDX max_o_idx; /*!< Maximum number of objects in the level */ + +} floor_type; + diff --git a/src/variable.c b/src/variable.c index af9387067..23006b6c3 100644 --- a/src/variable.c +++ b/src/variable.c @@ -483,11 +483,6 @@ u32b saved_floor_file_sign; /* - * The array of dungeon items [max_o_idx] - */ -object_type *o_list; - -/* * The array of dungeon monsters [max_m_idx] */ monster_type *m_list; @@ -772,11 +767,6 @@ EGO_IDX max_e_idx; DUNGEON_IDX max_d_idx; /* - * Maximum number of objects in the level - */ -OBJECT_IDX max_o_idx; - -/* * Maximum number of monsters in the level */ MONSTER_IDX max_m_idx; diff --git a/src/xtra2.c b/src/xtra2.c index e68406f42..d62b99eae 100644 --- a/src/xtra2.c +++ b/src/xtra2.c @@ -756,7 +756,7 @@ static bool target_set_accept(POSITION y, POSITION x) for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -1112,7 +1112,7 @@ static char target_set_aux(POSITION y, POSITION x, BIT_FLAGS mode, concptr info) GAME_TEXT o_name[MAX_NLEN]; object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -1160,7 +1160,7 @@ static char target_set_aux(POSITION y, POSITION x, BIT_FLAGS mode, concptr info) GAME_TEXT o_name[MAX_NLEN]; object_type *o_ptr; - o_ptr = &o_list[floor_list[0]]; + o_ptr = ¤t_floor_ptr->o_list[floor_list[0]]; object_desc(o_name, o_ptr, 0); @@ -1236,18 +1236,18 @@ static char target_set_aux(POSITION y, POSITION x, BIT_FLAGS mode, concptr info) o_idx = g_ptr->o_idx; /* Only rotate a pile of two or more objects. */ - if (!(o_idx && o_list[o_idx].next_o_idx)) continue; + if (!(o_idx && current_floor_ptr->o_list[o_idx].next_o_idx)) continue; /* Remove the first object from the list. */ excise_object_idx(o_idx); /* Find end of the list. */ i = g_ptr->o_idx; - while (o_list[i].next_o_idx) - i = o_list[i].next_o_idx; + while (current_floor_ptr->o_list[i].next_o_idx) + i = current_floor_ptr->o_list[i].next_o_idx; /* Add after the last object. */ - o_list[i].next_o_idx = o_idx; + current_floor_ptr->o_list[i].next_o_idx = o_idx; /* Loop and re-display the list */ } @@ -1260,7 +1260,7 @@ static char target_set_aux(POSITION y, POSITION x, BIT_FLAGS mode, concptr info) for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; -- 2.11.0