OSDN Git Service

7079d62f24cf60b00329c441de90d0f20456bb06
[hengbandforosx/hengbandosx.git] / src / system / terrain-type-definition.cpp
1 /*
2  * @brief 地形特性定義
3  * @author Hourier
4  * @date 2022/10/15
5  */
6
7 #include "system/terrain-type-definition.h"
8
9 std::vector<TerrainType> terrains_info;
10
11 bool TerrainType::is_permanent_wall() const
12 {
13     return this->flags.has_all_of({ TerrainCharacteristics::WALL, TerrainCharacteristics::PERMANENT });
14 }
15
16 TerrainList TerrainList::instance{};
17
18 TerrainList &TerrainList::get_instance()
19 {
20     return instance;
21 }
22
23 TerrainType &TerrainList::operator[](short terrain_id)
24 {
25     return terrains_info.at(terrain_id);
26 }
27
28 const TerrainType &TerrainList::operator[](short terrain_id) const
29 {
30     return terrains_info.at(terrain_id);
31 }
32
33 std::vector<TerrainType>::iterator TerrainList::begin()
34 {
35     return terrains_info.begin();
36 }
37
38 const std::vector<TerrainType>::const_iterator TerrainList::begin() const
39 {
40     return terrains_info.begin();
41 }
42
43 std::vector<TerrainType>::iterator TerrainList::end()
44 {
45     return terrains_info.end();
46 }
47
48 const std::vector<TerrainType>::const_iterator TerrainList::end() const
49 {
50     return terrains_info.end();
51 }
52
53 size_t TerrainList::size() const
54 {
55     return terrains_info.size();
56 }
57
58 bool TerrainList::empty() const
59 {
60     return terrains_info.empty();
61 }
62
63 void TerrainList::resize(size_t new_size)
64 {
65     terrains_info.resize(new_size);
66 }