Merge pull request #573 Fix crash for Footraces on Windows

Corrected ambiguous string to number conversion  which would cause a crash on operating systems where a long is 32 bits and not 64 bits.
This commit is contained in:
David Markowitz 2022-06-06 23:09:10 -07:00 committed by GitHub
commit db773e9778
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 5 additions and 5 deletions

View File

@ -54,7 +54,7 @@ LDFBaseData * LDFBaseData::DataFromString(const std::string& format) {
}
case LDF_TYPE_S32: {
int32_t data = static_cast<int32_t>(stol(dataArray[1]));
int32_t data = static_cast<int32_t>(stoull(dataArray[1]));
return new LDFData<int32_t>(key, data);
}

View File

@ -168,7 +168,7 @@ std::map<LOT, uint32_t> CDItemComponentTable::ParseCraftingCurrencies(const CDIt
// Checking for 2 here, not sure what to do when there's more stuff than expected
if (amountSplit.size() == 2) {
currencies.insert({
std::stol(amountSplit[0]),
std::stoull(amountSplit[0]),
std::stoi(amountSplit[1])
});
}

View File

@ -12,7 +12,7 @@ void BaseFootRaceManager::OnFireEventServerSide(Entity *self, Entity *sender, st
if (splitArguments.size() > 1) {
const auto eventName = splitArguments[0];
const auto player = EntityManager::Instance()->GetEntity(std::stol(splitArguments[1]));
const auto player = EntityManager::Instance()->GetEntity(std::stoull(splitArguments[1]));
if (player != nullptr) {
if (eventName == "updatePlayer") {

View File

@ -99,7 +99,7 @@ void NjMonastryBossInstance::OnPlayerExit(Entity *self, Entity *player) {
void NjMonastryBossInstance::OnActivityTimerDone(Entity *self, const std::string &name) {
auto split = GeneralUtils::SplitString(name, TimerSplitChar);
auto timerName = split[0];
auto objectID = split.size() > 1 ? (LWOOBJID) std::stol(split[1]) : LWOOBJID_EMPTY;
auto objectID = split.size() > 1 ? (LWOOBJID) std::stoull(split[1]) : LWOOBJID_EMPTY;
if (timerName == WaitingForPlayersTimer) {
StartFight(self);

View File

@ -55,7 +55,7 @@ bool SpawnPetBaseServer::CheckNumberOfPets(Entity *self, Entity* user) {
if (petID.empty())
continue;
const auto* spawnedPet = EntityManager::Instance()->GetEntity(std::stol(petID));
const auto* spawnedPet = EntityManager::Instance()->GetEntity(std::stoull(petID));
if (spawnedPet == nullptr)
continue;