Open varnholt opened 9 months ago
auto instance = std::make_shared<SoundEmitter>(parent); instance->_position.x = data._tmx_object->_x_px; instance->_position.y = data._tmx_object->_y_px; instance->_size.x = data._tmx_object->_width_px; instance->_size.y = data._tmx_object->_height_px; instance->setObjectId(data._tmx_object->_name); instance->_rect = sf::FloatRect{data._tmx_object->_x_px, data._tmx_object->_y_px, data._tmx_object->_width_px, data._tmx_object->_height_px}; // deserialize range data if (data._tmx_object->_properties) { // read audio range properties AudioRange audio_range; const auto radius_far_px = data._tmx_object->_properties->_map.find("radius_far_px"); if (radius_far_px != data._tmx_object->_properties->_map.cend()) { audio_range._radius_far_px = radius_far_px->second->_value_float.value(); } const auto volume_far = data._tmx_object->_properties->_map.find("volume_far"); if (volume_far != data._tmx_object->_properties->_map.cend()) { audio_range._volume_far = volume_far->second->_value_float.value(); } const auto radius_near_px = data._tmx_object->_properties->_map.find("radius_near_px"); if (radius_near_px != data._tmx_object->_properties->_map.cend()) { audio_range._radius_near_px = radius_near_px->second->_value_float.value(); } const auto volume_near = data._tmx_object->_properties->_map.find("volume_near"); if (volume_near != data._tmx_object->_properties->_map.cend()) { audio_range._volume_near = volume_near->second->_value_float.value(); } instance->_audio_range = audio_range; // read sample properties const auto looped = data._tmx_object->_properties->_map.find("looped"); if (looped != data._tmx_object->_properties->_map.cend()) { instance->_looped = looped->second->_value_bool.value(); } const auto filename = data._tmx_object->_properties->_map.find("filename"); if (filename != data._tmx_object->_properties->_map.cend()) { instance->_filename = filename->second->_value_string.value(); } Audio::getInstance().addSample(instance->_filename); }