OSDN Git Service

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