@@ -203,105 +203,85 @@ GJGameLevel* EventsPush::convertLevelToJSON(std::string& data) {
203203 auto_level = " 0" ;
204204 }
205205
206- std::string levelIDStr = level_data_list[1 ];
207- level->m_levelID = std::stoi (levelIDStr);
206+ level->m_levelID = numFromString<int >(level_data_list[1 ]).unwrapOrDefault ();
208207
209208 level->m_levelName = level_data_list[3 ];
210209 level->m_levelDesc = level_data_list[35 ];
211- std::string levelVersionStr = level_data_list[5 ];
212- level->m_levelVersion = std::stoi (levelVersionStr);
213- std::string levelUserIDStr = level_data_list[7 ];
214- level->m_userID = std::stoi (levelUserIDStr);
210+ level->m_levelVersion = numFromString<int >(level_data_list[5 ]).unwrapOrDefault ();
211+ level->m_userID = numFromString<int >(level_data_list[7 ]).unwrapOrDefault ();
215212
216- std::string levelDifficultyDenominatorStr = level_data_list[9 ];
217- level->m_ratings = std::stoi (levelDifficultyDenominatorStr);
218- std::string levelDifficultyNumeratorStr = level_data_list[11 ];
219- level->m_ratingsSum = std::stoi (levelDifficultyNumeratorStr);
213+ level->m_ratings = numFromString<int >(level_data_list[9 ]).unwrapOrDefault ();
214+ level->m_ratingsSum = numFromString<int >(level_data_list[11 ]).unwrapOrDefault ();
220215
221216 if (level_data_list[9 ] == " 10" ) {
222217 if (demon == " 1" ) {
223218 std::string levelDemonDifficultyStr = level_data_list[23 ];
224- level->m_difficulty = getDemonDifficulty (std::stoi (levelDemonDifficultyStr));
219+ level->m_difficulty = getDemonDifficulty (numFromString< int > (levelDemonDifficultyStr). unwrapOrDefault ( ));
225220 } else {
226221 if (auto_level == " 1" ) {
227222 level->m_difficulty = getDifficulty (0 );
228223 } else {
229- std::string numeratorDifstr = level_data_list[11 ];
230- level->m_difficulty = getDifficulty (std::stoi (numeratorDifstr));
224+ level->m_difficulty = getDifficulty (numFromString<int >(level_data_list[11 ]).unwrapOrDefault ());
231225 }
232226 }
233227 }
234- std::string levelDownloadsStr = level_data_list[13 ];
235- level->m_downloads = std::stoi (levelDownloadsStr);
228+ level->m_downloads = numFromString<int >(level_data_list[13 ]).unwrapOrDefault ();
236229 if (level_data_list[53 ] == " 0" ) {
237- std::string levelAudioTrackStr = level_data_list[15 ];
238- level->m_audioTrack = std::stoi (levelAudioTrackStr);
230+ level->m_audioTrack = numFromString<int >(level_data_list[15 ]).unwrapOrDefault ();
239231 } else {
240- std::string levelSongIDStr = level_data_list[53 ];
241- level->m_songID = std::stoi (levelSongIDStr);
232+ level->m_songID = numFromString<int >(level_data_list[53 ]).unwrapOrDefault ();
242233 }
243234
244235 std::string levelGameVersionStr = level_data_list[17 ];
245- level->m_gameVersion = std::stoi (levelGameVersionStr);
246- std::string levelLikesStr = level_data_list[19 ];
247- if (std::stoi (level_data_list[ 19 ]) >= 0 ) {
248- level->m_likes = std::stoi (levelLikesStr) ;
236+ level->m_gameVersion = numFromString< int > (levelGameVersionStr). unwrapOrDefault ( );
237+ int levelLikes = numFromString< int >( level_data_list[19 ]). unwrapOrDefault () ;
238+ if (levelLikes >= 0 ) {
239+ level->m_likes = levelLikes ;
249240 level->m_dislikes = 0 ;
250241 } else {
251242 level->m_likes = 0 ;
252- level->m_dislikes = 0 - std::stoi (levelLikesStr) ;
243+ level->m_dislikes = 0 - levelLikes ;
253244 }
254- std::string levelLengthStr = level_data_list[37 ];
255- level->m_levelLength = std::stoi (levelLengthStr);
245+ level->m_levelLength = numFromString<int >(level_data_list[37 ]).unwrapOrDefault ();
256246
257- std::string levelDemonStr = demon;
258- level->m_demon = std::stoi (levelDemonStr);
259- std::string levelStarsStr = level_data_list[27 ];
260- level->m_stars = std::stoi (levelStarsStr);
247+ level->m_demon = numFromString<int >(demon).unwrapOrDefault ();
248+ level->m_stars = numFromString<int >(level_data_list[27 ]).unwrapOrDefault ();
261249
262250 if (auto_level == " 1" ) {
263251 level->m_autoLevel = true ;
264252 } else {
265253 level->m_autoLevel = false ;
266254 }
267255
268- std::string levelOriginalStr = level_data_list[39 ];
269- level->m_originalLevel = std::stoi (levelOriginalStr);
256+ level->m_originalLevel = numFromString<int >(level_data_list[39 ]).unwrapOrDefault ();
270257 if (level_data_list[41 ] == " 1" ) {
271258 level->m_twoPlayerMode = true ;
272259 } else {
273260 level->m_twoPlayerMode = false ;
274261 }
275262
276- std::string levelCoinsStr = level_data_list[43 ];
277- level->m_coins = std::stoi (levelCoinsStr);
278- std::string levelCoinsVerifiedStr = level_data_list[45 ];
279- level->m_coinsVerified = std::stoi (levelCoinsVerifiedStr);
280- std::string levelStarsRequestedStr = level_data_list[47 ];
281- level->m_starsRequested = std::stoi (levelStarsRequestedStr);
282- std::string levelFeaturedStr = level_data_list[29 ];
283- level->m_featured = std::stoi (levelFeaturedStr);
263+ level->m_coins = numFromString<int >(level_data_list[43 ]).unwrapOrDefault ();
264+ level->m_coinsVerified = numFromString<int >(level_data_list[45 ]).unwrapOrDefault ();
265+ level->m_starsRequested = numFromString<int >(level_data_list[47 ]).unwrapOrDefault ();
266+ level->m_featured = numFromString<int >(level_data_list[29 ]).unwrapOrDefault ();
284267 if (level_data_list[31 ] == " 1" ) {
285268 level->m_isEpic = true ;
286269 } else {
287270 level->m_isEpic = false ;
288271 }
289- std::string levelDemonDifficultyStr = level_data_list[23 ];
290- level->m_demonDifficulty = std::stoi (levelDemonDifficultyStr);
272+ level->m_demonDifficulty = numFromString<int >(level_data_list[23 ]).unwrapOrDefault ();
291273
292- std::string levelObjectCountStr = level_data_list[33 ];
293- level->m_objectCount = std::stoi (levelObjectCountStr);
274+ level->m_objectCount = numFromString<int >(level_data_list[33 ]).unwrapOrDefault ();
294275
295276 level->m_levelNotDownloaded = true ;
296277
297- std::string levelWorkingTimeStr = level_data_list[49 ];
298- level->m_workingTime = std::stoi (levelWorkingTimeStr);
278+ level->m_workingTime = numFromString<int >(level_data_list[49 ]).unwrapOrDefault ();
299279
300280 CCArray* levelids = gamelevelmanager->m_onlineLevels ->allKeys ();
301281 CCObject* obj;
302282 CCARRAY_FOREACH (levelids, obj) {
303283 std::string levelid = (static_cast <CCString*>(obj))->getCString ();
304- if (std::stoi (levelid) == level->m_levelID ) {
284+ if (numFromString< int > (levelid). unwrapOrDefault ( ) == level->m_levelID ) {
305285 auto levelFromSaved = static_cast <GJGameLevel*>(gamelevelmanager->m_onlineLevels ->objectForKey (levelid));
306286 level->m_normalPercent = levelFromSaved->m_normalPercent ;
307287 level->m_newNormalPercent2 = levelFromSaved->m_newNormalPercent2 ;
@@ -325,8 +305,7 @@ GJGameLevel* EventsPush::convertLevelToJSON(std::string& data) {
325305 // Creator data
326306 auto creator_data_list = split_str (creator_data, ' :' );
327307 level->m_creatorName = creator_data_list[1 ];
328- std::string levelAccountIDStr = creator_data_list[2 ];
329- level->m_accountID = std::stoi (levelAccountIDStr);
308+ level->m_accountID = numFromString<int >(creator_data_list[2 ]).unwrapOrDefault ();
330309#endif
331310 return level;
332311}
0 commit comments