Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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);
}