void GameLevel::setCurrentFile(const std::string &file) { std::string rawFile = file; std::regex rx("(\\/|\\\\)?maps(\\/|\\\\)(local|remote)(\\/|\\\\)(\\w)*.json$", std::regex_constants::icase); std::regex rxback("(\\/|\\\\)(\\w)*.json$", std::regex_constants::icase); std::smatch base_match; auto ret = std::regex_search(rawFile, base_match, rx); if (ret) { rawFile = base_match[0].str(); } else { ret = std::regex_search(rawFile, base_match, rxback); if (ret) { rawFile = base_match[0].str(); } } if (rawFile.empty()) { rawFile = file; } if (rawFile[0] == '\\' || rawFile[0] == '/') { rawFile.erase(rawFile.begin(), rawFile.begin() + 1); } mCurrentLevelFile = rawFile; }
void UILayer::setFileName(const char* file) { std::string rawFile = file; std::regex rx("(\\/|\\\\)(local|remote)(\\/|\\\\)(\\w)*.json$", std::regex_constants::icase); std::regex rxback("(\\/|\\\\)(\\w)*.json$", std::regex_constants::icase); std::smatch base_match; auto ret = std::regex_search(rawFile, base_match, rx ); if(ret) { rawFile = base_match[0].str(); } else { ret = std::regex_search(rawFile, base_match, rxback ); if(ret) { rawFile = base_match[0].str(); } } if(rawFile.empty()) rawFile = file; if(rawFile[0] == '\\' || rawFile[0] == '/') rawFile.erase(rawFile.begin(), rawFile.begin()+1); std::string text = "File: "; mFileNameLabel->setString(text + rawFile); auto size = mFileNameLabel->getBoundingBox().size; auto h = mLayer->getBoundingBox().size.height; mFileNameLabel->setPosition(LEFT_GAP + size.width/2, h - size.height/2); }