OSDN Git Service

[Refactor] #37353 floor.c を作成して floor_type 型整理。
[hengband/hengband.git] / src / floor.h
index 864a5cb..112560f 100644 (file)
@@ -1,4 +1,44 @@
-
+#pragma once
+
+typedef struct {
+       grid_type *grid_array[MAX_HGT];
+       DEPTH dun_level;                /*!< 現在の実ダンジョン階層base_levelの参照元となる / Current dungeon level */
+       DEPTH base_level;               /*!< 基本生成レベル、後述のobject_level, monster_levelの参照元となる / Base dungeon level */
+       DEPTH object_level;             /*!< アイテムの生成レベル、current_floor_ptr->base_levelを起点に一時変更する時に参照 / Current object creation level */
+       DEPTH monster_level;    /*!< モンスターの生成レベル、current_floor_ptr->base_levelを起点に一時変更する時に参照 / Current monster creation level */
+       POSITION width;                 /* Current dungeon width */
+       POSITION height;                /* Current dungeon height */
+       MONSTER_NUMBER num_repro; /*!< Current reproducer count */
+
+       GAME_TURN generated_turn; /* Turn when level began */
+
+       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 */
+
+       monster_type *m_list; /*!< The array of dungeon monsters [current_floor_ptr->max_m_idx] */
+       MONSTER_IDX max_m_idx; /*!< Maximum number of monsters in the level */
+
+       s16b *mproc_list[MAX_MTIMED]; /*!< The array to process dungeon monsters[max_m_idx] */
+       s16b mproc_max[MAX_MTIMED]; /*!< Number of monsters to be processed */
+
+       POSITION_IDX lite_n; //!< Array of grids lit by player lite (see "current_floor_ptr->grid_array.c")
+       POSITION lite_y[LITE_MAX];
+       POSITION lite_x[LITE_MAX];
+
+       POSITION_IDX mon_lite_n; //!< Array of grids lit by player lite (see "current_floor_ptr->grid_array.c")
+       POSITION mon_lite_y[MON_LITE_MAX];
+       POSITION mon_lite_x[MON_LITE_MAX];
+
+       POSITION_IDX view_n; //!< Array of grids viewable to the player (see "grid_array")
+       POSITION view_y[VIEW_MAX];
+       POSITION view_x[VIEW_MAX];
+
+       POSITION_IDX redraw_n; //!< Array of grids for delayed visual updating (see "current_floor_ptr->grid_array.c")
+       POSITION redraw_y[REDRAW_MAX];
+       POSITION redraw_x[REDRAW_MAX];
+
+} floor_type;
+
 #define DUNGEON_MODE_NONE       0
 #define DUNGEON_MODE_AND        1
 #define DUNGEON_MODE_NAND       2
 #define permanent_wall(F) \
        (have_flag((F)->flags, FF_WALL) && \
         have_flag((F)->flags, FF_PERMANENT))
+
+extern floor_type *current_floor_ptr;
\ No newline at end of file