OSDN Git Service

[Refactor] #38993 o_list と max_o_idx を floor_type に取り込む。 / Move o_list and max_o_idx...
authordeskull <deskull@users.sourceforge.jp>
Wed, 27 Feb 2019 04:41:10 +0000 (13:41 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Wed, 27 Feb 2019 05:01:47 +0000 (14:01 +0900)
39 files changed:
doxygen/Hengband.doxyfile
src/autopick.c
src/chest.c
src/cmd-activate.c
src/cmd-eat.c
src/cmd-quaff.c
src/cmd-read.c
src/cmd-usestaff.c
src/cmd-zaprod.c
src/cmd-zapwand.c
src/cmd2.c
src/cmd4.c
src/dungeon.c
src/externs.h
src/floor-generate.c
src/floor-save.c
src/floor-streams.c
src/grid.c
src/init1.c
src/init2.c
src/load.c
src/melee1.c
src/monster-process.c
src/monster2.c
src/mspells1.c
src/object1.c
src/object2.c
src/player-move.c
src/player-status.c
src/save.c
src/shoot.c
src/spells-floor.c
src/spells-status.c
src/spells1.c
src/spells2.c
src/spells3.c
src/types.h
src/variable.c
src/xtra2.c

index d775f1b..1f5f449 100644 (file)
@@ -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.
index 098d3aa..1113255 100644 (file)
@@ -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 = &current_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 = &current_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 = &current_floor_ptr->o_list[this_o_idx];
                
                /* Acquire next object */
                next_o_idx = o_ptr->next_o_idx;
index cf6c6f4..e18f206 100644 (file)
@@ -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 = &current_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 = &current_floor_ptr->o_list[o_idx];
 
        int mon_level = o_ptr->xtra3;
 
index e2fd834..0ef37da 100644 (file)
@@ -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 = &current_floor_ptr->o_list[0 - item];
        }
 
        take_turn(p_ptr, 100);
index b53f2a4..9a0b7a4 100644 (file)
@@ -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 = &current_floor_ptr->o_list[0 - item];
        }
 
        sound(SOUND_EAT);
index ff934ec..f8b4822 100644 (file)
@@ -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 = &current_floor_ptr->o_list[0 - item];
        }
        q_ptr = &forge;
 
index fb1ec6d..36de7f6 100644 (file)
@@ -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 = &current_floor_ptr->o_list[0 - item];
        }
 
        take_turn(p_ptr, 100);
index 6d22b92..4ab7403 100644 (file)
@@ -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 = &current_floor_ptr->o_list[0 - item];
        }
 
 
index a8be1e4..f7a5466 100644 (file)
@@ -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 = &current_floor_ptr->o_list[0 - item];
        }
 
 
index 9e38955..8396a44 100644 (file)
@@ -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 = &current_floor_ptr->o_list[0 - item];
        }
 
        /* Mega-Hack -- refuse to aim a pile from the ground */
index d0db6e5..fe2d5ab 100644 (file)
@@ -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 = &current_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 = &current_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 = &current_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 = &current_floor_ptr->o_list[o_idx];
 
        take_turn(p_ptr, 100);
 
index e2fe86f..f8b48e5 100644 (file)
@@ -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 = &current_floor_ptr->o_list[this_o_idx];
 
                                /* Acquire next object */
                                next_o_idx = o_ptr->next_o_idx;
index f4ff45d..57a0bdf 100644 (file)
@@ -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 = &current_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 = &current_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);
index 76853b4..28b9602 100644 (file)
@@ -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;
index 8911d37..daae1e7 100644 (file)
@@ -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;
index 9f0d77a..cf886a6 100644 (file)
@@ -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 = &current_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 = &current_floor_ptr->o_list[i];
 
                                /* Skip dead objects */
                                if (!o_ptr->k_idx) continue;
index ba49bb8..2642103 100644 (file)
@@ -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 = &current_floor_ptr->o_list[this_o_idx];
 
                                        /* Acquire next object */
                                        next_o_idx = o_ptr->next_o_idx;
index 90a8e0f..bf980ce 100644 (file)
@@ -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 = &current_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 = &current_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 = &current_floor_ptr->o_list[this_o_idx];
 
                /* Acquire next object */
                next_o_idx = o_ptr->next_o_idx;
index a872e97..96b75cd 100644 (file)
@@ -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 = &current_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 */
index 94f886c..2325fba 100644 (file)
@@ -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);
index 768b919..1d561e0 100644 (file)
@@ -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 = &current_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 = &current_floor_ptr->o_list[o_idx];
 
                /* Read the item */
                rd_item(o_ptr);
index dc707fc..95a52b1 100644 (file)
@@ -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 = &current_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 = &current_floor_ptr->o_list[o_idx];
                                                        object_copy(j_ptr, o_ptr);
 
                                                        /* Modify number */
index 2c9ff58..3b8bc1a 100644 (file)
@@ -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 = &current_floor_ptr->o_list[this_o_idx];
 
                                        /* Acquire next object */
                                        next_o_idx = o_ptr->next_o_idx;
index 5ba445c..b9362ca 100644 (file)
@@ -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 = &current_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 = &current_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 = &current_floor_ptr->o_list[this_o_idx];
 
                /* Acquire next object */
                next_o_idx = o_ptr->next_o_idx;
index 1fb1a92..cb621d6 100644 (file)
@@ -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 = &current_floor_ptr->o_list[this_o_idx];
 
                                /* Acquire next object */
                                next_o_idx = o_ptr->next_o_idx;
index c30fe90..4963cdd 100644 (file)
@@ -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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_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 &current_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 = &current_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 = &current_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 = &current_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(&current_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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_floor_ptr->o_list[floor_o_idx];
 
 #ifdef ALLOW_EASY_SENSE
 
index e0a5d56..7b6618d 100644 (file)
@@ -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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_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 = &current_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(&current_floor_ptr->o_list[o_idx], j_ptr);
 
                /* Access new object */
-               j_ptr = &o_list[o_idx];
+               j_ptr = &current_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 = &current_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 = &current_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 = &current_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 = &current_floor_ptr->o_list[item];
 
        /* Paranoia -- be sure it exists */
        if (!o_ptr->k_idx) return;
index 8509dcb..360bf23 100644 (file)
@@ -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 = &current_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 = &current_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 = &current_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 = &current_floor_ptr->o_list[this_o_idx];
 
                        /* Acquire next object */
                        next_o_idx = o_ptr->next_o_idx;
index a1dcc39..258976b 100644 (file)
@@ -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 = &current_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 = &current_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;
        }
 
index eac56ff..7b627fc 100644 (file)
@@ -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 = &current_floor_ptr->o_list[i];
 
                /* Dump it */
                wr_item(o_ptr);
index d4aff57..db345ea 100644 (file)
@@ -370,7 +370,7 @@ void exe_fire(INVENTORY_IDX item, object_type *j_ptr)
        }
        else
        {
-               o_ptr = &o_list[0 - item];
+               o_ptr = &current_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 = &current_floor_ptr->o_list[o_idx];
                        object_copy(o_ptr, q_ptr);
 
                        /* Forget mark */
index 9dc3abe..db04cb3 100644 (file)
@@ -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 = &current_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 = &current_floor_ptr->o_list[i];
 
                /* Skip dead objects */
                if (!o_ptr->k_idx) continue;
index 16b15e7..4bde398 100644 (file)
@@ -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 = &current_floor_ptr->o_list[o_idx];
 
        object_desc(o_name, o_ptr, OD_NAME_ONLY);
        msg_format(_("%sを脱ぎ捨てた。", "You cast off %s."), o_name);
index f368d7e..18ec2c3 100644 (file)
@@ -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 = &current_floor_ptr->o_list[this_o_idx];
 
                bool is_art = FALSE;
                bool ignore = FALSE;
index e53f275..e86bca3 100644 (file)
@@ -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 = &current_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 = &current_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 = &current_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 = &current_floor_ptr->o_list[this_o_idx];
 
                                        /* Acquire next object */
                                        next_o_idx = o_ptr->next_o_idx;
index 48505ba..d140849 100644 (file)
@@ -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 = &current_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 = &current_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);
                        }
                }
index 511eb5e..0826954 100644 (file)
@@ -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;
+
index af93870..23006b6 100644 (file)
@@ -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;
index e68406f..d62b99e 100644 (file)
@@ -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 = &current_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 = &current_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 = &current_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 = &current_floor_ptr->o_list[this_o_idx];
 
                /* Acquire next object */
                next_o_idx = o_ptr->next_o_idx;