OSDN Git Service

[Refactor] #37353 CFM_* 定義を prepare_change_floor_mode() 付近に移動。
[hengband/hengband.git] / src / floor-save.h
1 #pragma once
2
3 #define MAX_SAVED_FLOORS       20 /*!< 保存フロアの最大数 / Maximum number of saved floors. */
4
5 /*
6  *  A structure type for the saved floor
7  */
8 typedef struct
9 {
10         FLOOR_IDX floor_id;        /* No recycle until 65536 IDs are all used */
11         s16b savefile_id;     /* ID for savefile (from 0 to MAX_SAVED_FLOOR) */
12         DEPTH dun_level;
13         s32b last_visit;      /* Time count of last visit. 0 for new floor. */
14         u32b visit_mark;      /* Older has always smaller mark. */
15         FLOOR_IDX upper_floor_id;  /* a floor connected with level teleportation */
16         FLOOR_IDX lower_floor_id;  /* a floor connected with level tel. and trap door */
17 } saved_floor_type;
18
19 extern u32b saved_floor_file_sign;
20
21 extern void init_saved_floors(bool force);
22 extern void change_floor(void);
23 extern void leave_floor(void);
24 extern void clear_saved_floor_files(void);
25 extern saved_floor_type *get_sf_ptr(FLOOR_IDX floor_id);
26 extern FLOOR_IDX get_new_floor_id(void);
27
28 /*
29  * Flags for change floor mode
30  */
31 #define CFM_UP           0x0001  /* Move up */
32 #define CFM_DOWN         0x0002  /* Move down */
33 #define CFM_LONG_STAIRS  0x0004  /* Randomly occurred long stairs/shaft */
34 #define CFM_XXX          0x0008  /* XXX */
35 #define CFM_SHAFT        0x0010  /* Shaft */
36 #define CFM_RAND_PLACE   0x0020  /* Arrive at random grid */
37 #define CFM_RAND_CONNECT 0x0040  /* Connect with random stairs */
38 #define CFM_SAVE_FLOORS  0x0080  /* Save floors */
39 #define CFM_NO_RETURN    0x0100  /* Flee from random quest etc... */
40 #define CFM_FIRST_FLOOR  0x0200  /* Create exit from the dungeon */
41 extern void prepare_change_floor_mode(BIT_FLAGS mode);
42
43 extern void precalc_cur_num_of_pet(void);
44 extern FLOOR_IDX max_floor_id;