| 29 | } |
| 30 | |
| 31 | GJGameLevel* GJGameLevel::createWithResponse(std::string_view backendResponse) |
| 32 | { |
| 33 | GJGameLevel* level = new GJGameLevel(); |
| 34 | if (!level) return nullptr; |
| 35 | |
| 36 | if(!backendResponse.compare("-1")) |
| 37 | { |
| 38 | delete level; |
| 39 | return nullptr; |
| 40 | } |
| 41 | // - |
| 42 | // 1:6508283:2:ReTraY:3:VGhhbmtzIGZvciBwbGF5aW5nIEdlb21ldHJ5IERhc2g=:4:{levelString}:5:3:6:4993756:8:10:9:10:10:39431612:12:0:13:21:14:4125578:17::43:3:25::18:2:19:7730:42:0:45:20000:15:3:30:0:31:0:28:5 years:29:1 year:35:557117:36:0_733_0_0_0_0_574_716_0_0_352_78_729_0_42_0_833_68_0_347_0_38_240_205_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0:37:3:38:1:39:2:46:7729:47:13773:40:0:27:AwMABAYDBw==#eb541c03f8355c0709f8007a1d9a595ae5bedc5d#291568b26b08d70a198fca10a87c736a2823be0c |
| 43 | |
| 44 | auto stuff = GameToolbox::splitByDelimStringView(backendResponse, ':'); |
| 45 | |
| 46 | std::map<std::string_view, std::string_view> levelResponse; |
| 47 | |
| 48 | for (size_t i = 0; i < stuff.size(); i += 2) |
| 49 | { |
| 50 | if (!stuff[i + 1].empty()) |
| 51 | levelResponse.insert({stuff[i], stuff[i + 1]}); |
| 52 | } |
| 53 | |
| 54 | if (levelResponse.contains("1")) level->_levelID = GameToolbox::stoi(levelResponse["1"]); |
| 55 | if (levelResponse.contains("2")) level->_levelName = _toString(levelResponse["2"]); |
| 56 | if (levelResponse.contains("3")) level->_description = _toString(levelResponse["3"]); |
| 57 | if (levelResponse.contains("4")) level->_levelString = _toString(levelResponse["4"]); |
| 58 | if (levelResponse.contains("5")) level->_version = GameToolbox::stoi(levelResponse["5"]); |
| 59 | if (levelResponse.contains("6")) level->_playerID = GameToolbox::stoi(levelResponse["6"]); |
| 60 | if (levelResponse.contains("8")) level->_difficultyDenominator = GameToolbox::stoi(levelResponse["8"]); |
| 61 | if (levelResponse.contains("9")) level->_difficultyNumerator = GameToolbox::stoi(levelResponse["9"]); |
| 62 | if (levelResponse.contains("10")) level->_downloads = GameToolbox::stoi(levelResponse["10"]); |
| 63 | if (levelResponse.contains("11")) level->_setCompletes = GameToolbox::stoi(levelResponse["11"]); |
| 64 | if (levelResponse.contains("12")) level->_officialSongID = GameToolbox::stoi(levelResponse["12"]); |
| 65 | if (levelResponse.contains("13")) level->_gameVersion = GameToolbox::stoi(levelResponse["13"]); |
| 66 | if (levelResponse.contains("14")) level->_likes = GameToolbox::stoi(levelResponse["14"]); |
| 67 | if (levelResponse.contains("15")) level->_length = GameToolbox::stoi(levelResponse["15"]); |
| 68 | if (levelResponse.contains("16")) level->_dislikes = GameToolbox::stoi(levelResponse["16"]); |
| 69 | if (levelResponse.contains("17")) level->_demon = GameToolbox::stoi(levelResponse["17"]); |
| 70 | if (levelResponse.contains("18")) level->_stars = GameToolbox::stoi(levelResponse["18"]); |
| 71 | if (levelResponse.contains("19")) level->_featureScore = GameToolbox::stoi(levelResponse["19"]); |
| 72 | if (levelResponse.contains("25")) level->_auto = GameToolbox::stoi(levelResponse["25"]); |
| 73 | if (levelResponse.contains("26")) level->_recordString = _toString(levelResponse["26"]); |
| 74 | if (levelResponse.contains("28")) level->_uploadDate = _toString(levelResponse["28"]); |
| 75 | if (levelResponse.contains("29")) level->_updateDate = _toString(levelResponse["29"]); |
| 76 | if (levelResponse.contains("30")) level->_copiedID = GameToolbox::stoi(levelResponse["30"]); |
| 77 | if (levelResponse.contains("35")) level->_songID = GameToolbox::stoi(levelResponse["35"]); |
| 78 | if (levelResponse.contains("37")) level->_coins = GameToolbox::stoi(levelResponse["37"]); |
| 79 | if (levelResponse.contains("38")) level->_verifiedCoins = GameToolbox::stoi(levelResponse["38"]); |
| 80 | if (levelResponse.contains("39")) level->_starsRequested = GameToolbox::stoi(levelResponse["39"]); |
| 81 | if (levelResponse.contains("40")) level->_LDM = GameToolbox::stoi(levelResponse["40"]); |
| 82 | if (levelResponse.contains("41")) level->_dailyNumber = GameToolbox::stoi(levelResponse["41"]); |
| 83 | if (levelResponse.contains("42")) level->_epic = GameToolbox::stoi(levelResponse["42"]); |
| 84 | if (levelResponse.contains("43")) level->_demonDifficulty = GameToolbox::stoi(levelResponse["43"]); |
| 85 | if (levelResponse.contains("44")) level->_gauntlet = GameToolbox::stoi(levelResponse["44"]); |
| 86 | if (levelResponse.contains("45")) level->_objects = GameToolbox::stoi(levelResponse["45"]); |
| 87 | if (levelResponse.contains("46")) level->_editorTime = GameToolbox::stoi(levelResponse["46"]); |
| 88 | if (levelResponse.contains("47")) level->_editorTimeTotal = GameToolbox::stoi(levelResponse["47"]); |