OSDN Git Service

Merge pull request #3569 from sikabane-works/release/3.0.0.88-alpha
[hengbandforosx/hengbandosx.git] / src / info-reader / general-parser.h
1 #pragma once
2
3 #include "object-enchant/object-ego.h"
4 #include "system/angband.h"
5 #include <functional>
6 #include <string_view>
7
8 enum class FixedArtifactId : short;
9 enum parse_error_type : int;
10
11 struct dungeon_grid {
12     FEAT_IDX feature; /* Terrain feature */
13     MONSTER_IDX monster; /* Monster */
14     OBJECT_IDX object; /* Object */
15     EgoType ego; /* Ego-Item */
16     FixedArtifactId artifact; /* Artifact */
17     IDX trap; /* Trap */
18     BIT_FLAGS cave_info; /* Flags for CAVE_MARK, CAVE_GLOW, CAVE_ICKY, CAVE_ROOM */
19     int16_t special; /* Reserved for special terrain info */
20     int random; /* Number of the random effect */
21 };
22
23 extern dungeon_grid letter[255];
24
25 struct angband_header;
26 class FloorType;
27
28 using Parser = std::function<errr(std::string_view, angband_header *)>;
29 errr init_info_txt(FILE *fp, char *buf, angband_header *head, Parser parse_info_txt_line);
30 parse_error_type parse_line_feature(FloorType *floor_ptr, char *buf);
31 parse_error_type parse_line_building(char *buf);