| 409 | } |
| 410 | |
| 411 | Room* RoomManager::getRoomFromStream(GameMap* gameMap, std::istream& is) |
| 412 | { |
| 413 | RoomType type; |
| 414 | if(!(is >> type)) |
| 415 | return nullptr; |
| 416 | |
| 417 | std::vector<const RoomFactory*>& factories = getFactories(); |
| 418 | uint32_t index = static_cast<uint32_t>(type); |
| 419 | if(index >= factories.size()) |
| 420 | { |
| 421 | OD_LOG_ERR("type=" + Helper::toString(index) + ", factories.size=" + Helper::toString(factories.size())); |
| 422 | return nullptr; |
| 423 | } |
| 424 | |
| 425 | const RoomFactory& factory = *factories[index]; |
| 426 | return factory.getRoomFromStream(gameMap, is); |
| 427 | } |
| 428 | |
| 429 | bool RoomManager::buildRoomOnTiles(GameMap* gameMap, RoomType type, Player* player, const std::vector<Tile*>& tiles) |
| 430 | { |