Skip to content

Commit e059867

Browse files
committed
change everything from using stoi and stof to numFromString
1 parent 35d8789 commit e059867

File tree

8 files changed

+213
-257
lines changed

8 files changed

+213
-257
lines changed

mod.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"geode": "4.2.1",
2+
"geode": "4.3.1",
33
"version": "v1.4.0",
44
"gd": {
55
"win": "2.2074",

src/MoreLeaderboards/MoreLeaderboards.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ CCDictionary* MoreLeaderboards::responseToDict(const std::string& response){
158158
i++;
159159
}
160160
if (playerID.length() > 0 && username.length() > 0 && accountID.length() > 0) {
161-
glm->storeUserName(std::stoi(playerID), std::stoi(accountID), username);
161+
glm->storeUserName(numFromString<int>(playerID).unwrapOrDefault(), numFromString<int>(accountID).unwrapOrDefault(), username);
162162
}
163163
return dict;
164164
}
@@ -683,19 +683,19 @@ void MoreLeaderboards::handle_request_more(std::string const& data) {
683683

684684
int id = 0;
685685
while (data_page.size() > 0) {
686-
std::string page_test = data_page[0];
686+
int page_test = numFromString<int>(data_page[0]).unwrapOrDefault();
687687

688688
if (id == 0) {
689-
start_count = std::stoi(page_test);
689+
start_count = page_test;
690690
} else if (id == 1) {
691-
end_count = std::stoi(page_test);
691+
end_count = page_test;
692692
} else if (id == 2) {
693-
total_count = std::stoi(page_test);
693+
total_count = page_test;
694694
} else if (id == 3) {
695-
page = std::stoi(page_test);
695+
page = page_test;
696696
} else if (id == 4) {
697-
if (std::stoi(page_test) != 0) {
698-
MoreLeaderboards::scroll_int = std::stoi(page_test);
697+
if (page_test != 0) {
698+
MoreLeaderboards::scroll_int = page_test;
699699
}
700700
}
701701

src/MoreLeaderboards/MoreLeaderboardsCell.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,13 +146,14 @@ void MoreLeaderboardsCell::callback_user(CCObject* pSender) {
146146
GameLevelManager* glm = GameLevelManager::sharedState();
147147

148148
auto data = static_cast<CCDictionary*>(static_cast<CCNode*>(pSender)->getUserObject());
149-
auto accountID = data->valueForKey("accountID")->getCString();
150-
auto playerID = data->valueForKey("playerID")->getCString();
149+
auto accountID = numFromString<int>(data->valueForKey("accountID")->getCString()).unwrapOrDefault();
150+
auto playerID = numFromString<int>(data->valueForKey("playerID")->getCString()).unwrapOrDefault();
151151
auto username = data->valueForKey("username")->getCString();
152152

153-
glm->storeUserName(std::stoi(playerID), std::stoi(accountID), username);
154153

155-
ProfilePage::create(std::stoi(accountID), true)->show();
154+
glm->storeUserName(playerID, accountID, username);
155+
156+
ProfilePage::create(accountID, true)->show();
156157
}
157158

158159
void MoreLeaderboardsCell::callback_link(CCObject* pSender) {

src/MoreLeaderboards/SelectRegionCell.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ bool SelectRegionCell::init(std::string mod) {
4040
nbPlayers->setScale(.375f);
4141
addChild(nbPlayers);
4242
} else if (id == "4") {
43-
id_ctr = std::stoi(name);
43+
id_ctr = numFromString<int>(name).unwrapOrDefault();
4444
}
4545

4646
data.erase(data.begin());

src/Notifications/EventsPush.cpp

Lines changed: 28 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

src/Styles/NewGJCommentList.cpp

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@
99

1010
std::string result_global = "";
1111

12+
int hexStringToInt(const std::string& hexStr) {
13+
int value;
14+
std::istringstream iss(hexStr);
15+
iss >> std::hex >> value;
16+
return value;
17+
}
18+
1219
// Mod badges descriptions & GDUtils dev badge
1320
class $modify(CommentCell) {
1421
struct Fields {
@@ -52,29 +59,29 @@ class $modify(CommentCell) {
5259
std::string name = data[1];
5360

5461
if (id == "1") {
55-
accountID_data = std::stoi(name);
62+
accountID_data = geode::utils::numFromString<int>(name).unwrapOrDefault();
5663
} else if (id == "3") {
57-
badge = std::stoi(name);
64+
badge = geode::utils::numFromString<int>(name).unwrapOrDefault();
5865
} else if (id == "4") {
5966
badge_sprite = name;
6067
} else if (id == "5") {
6168
badge_id = name;
6269
} else if (id == "7") {
63-
badge_scale = std::stof(name);
70+
badge_scale = geode::utils::numFromString<float>(name).unwrapOrDefault();
6471
} else if (id == "8") {
6572
alertTitle = name;
6673
} else if (id == "9") {
6774
alertDesc = name;
6875
} else if (id == "10") {
69-
alertWidth = std::stof(name);
76+
alertWidth = geode::utils::numFromString<float>(name).unwrapOrDefault();
7077
} else if (id == "11") {
7178
isKofi = name == "1";
7279
} else if (id == "12") {
7380
// Get color from HEX
7481
color = ccc3(
75-
std::stoi(name.substr(0, 2), nullptr, 16),
76-
std::stoi(name.substr(2, 2), nullptr, 16),
77-
std::stoi(name.substr(4, 2), nullptr, 16)
82+
hexStringToInt(name.substr(0, 2)),
83+
hexStringToInt(name.substr(2, 2)),
84+
hexStringToInt(name.substr(4, 2))
7885
);
7986
}
8087

src/Styles/NewProfilePage.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "NewProfilePage.h"
22
#include "../includes.h"
3+
#include "Geode/utils/general.hpp"
34
#include <Geode/modify/ProfilePage.hpp>
45
#include <Geode/utils/web.hpp>
56

@@ -211,21 +212,21 @@ class $modify(ProfilePage) {
211212
std::string name = data[1];
212213

213214
if (id == "1") {
214-
accountID_data = std::stoi(name);
215+
accountID_data = numFromString<int>(name).unwrapOrDefault();
215216
} else if (id == "3") {
216-
badge = std::stoi(name);
217+
badge = numFromString<int>(name).unwrapOrDefault();
217218
} else if (id == "4") {
218219
badge_sprite = name;
219220
} else if (id == "5") {
220221
badge_id = name;
221222
} else if (id == "6") {
222-
badge_scale = std::stof(name);
223+
badge_scale = numFromString<float>(name).unwrapOrDefault();
223224
} else if (id == "8") {
224225
alertTitle = name;
225226
} else if (id == "9") {
226227
alertDesc = name;
227228
} else if (id == "10") {
228-
alertWidth = std::stof(name);
229+
alertWidth = numFromString<float>(name).unwrapOrDefault();
229230
} else if (id == "11") {
230231
isKofi = name == "1";
231232
}

0 commit comments

Comments
 (0)