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