OSDN Git Service

[Refactor]グローバル変数 error_lineをなくした
[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 #include <tuple>
8
9 enum class FixedArtifactId : short;
10 enum parse_error_type : int;
11
12 struct dungeon_grid {
13     FEAT_IDX feature; /* Terrain feature */
14     MONSTER_IDX monster; /* Monster */
15     OBJECT_IDX object; /* Object */
16     EgoType ego; /* Ego-Item */
17     FixedArtifactId artifact; /* Artifact */
18     IDX trap; /* Trap */
19     BIT_FLAGS cave_info; /* Flags for CAVE_MARK, CAVE_GLOW, CAVE_ICKY, CAVE_ROOM */
20     int16_t special; /* Reserved for special terrain info */
21     int random; /* Number of the random effect */
22 };
23
24 extern dungeon_grid letter[255];
25
26 struct angband_header;
27 class FloorType;
28
29 using Parser = std::function<errr(std::string_view, angband_header *)>;
30 std::tuple<errr, int> init_info_txt(FILE *fp, char *buf, angband_header *head, Parser parse_info_txt_line);
31 parse_error_type parse_line_feature(FloorType *floor_ptr, char *buf);
32 parse_error_type parse_line_building(char *buf);