| 566 | } |
| 567 | |
| 568 | PartConstPtr parsePart(DungeonDefinition* dungeon, Json const& definition, Maybe<ImageTilesetConstPtr> tileset) { |
| 569 | String kind = definition.get("def").getString(0); |
| 570 | if (kind == "image") { |
| 571 | if (tileset.isNothing()) |
| 572 | throw DungeonException("Dungeon parts designed in images require the 'tiles' key in the .dungeon file"); |
| 573 | return make_shared<const Part>(dungeon, definition, make_shared<ImagePartReader>(*tileset)); |
| 574 | } else if (kind == "tmx") |
| 575 | return make_shared<const Part>(dungeon, definition, make_shared<TMXPartReader>()); |
| 576 | throw DungeonException::format("Unknown dungeon part kind: {}", kind); |
| 577 | } |
| 578 | |
| 579 | Part::Part(DungeonDefinition* dungeon, Json const& part, PartReaderPtr reader) { |
| 580 | m_dungeon = dungeon; |
no test coverage detected