diff --git a/source/gui/screen/ScriptScreen.cpp b/source/gui/screen/ScriptScreen.cpp index d53995490..3e732eb0e 100644 --- a/source/gui/screen/ScriptScreen.cpp +++ b/source/gui/screen/ScriptScreen.cpp @@ -255,10 +255,9 @@ static std::pair scriptRead(std::string path) { u8* data = nullptr; size_t size = 0; - std::ifstream in(path, std::ios::binary); + std::ifstream in(path, std::ios::binary | std::ios::ate); if (in.good()) { - in.seekg(0, std::ios::end); size = in.tellg(); in.seekg(0, std::ios::beg); data = new u8[size]; diff --git a/source/mysterygift.cpp b/source/mysterygift.cpp index daef22d72..7ab1ed937 100644 --- a/source/mysterygift.cpp +++ b/source/mysterygift.cpp @@ -35,8 +35,7 @@ void MysteryGift::init(Generation g) sheet >> mysteryGiftSheet; sheet.close(); - std::ifstream data(StringUtils::format("romfs:/mg/data%s.bin", genToString(g).c_str()), std::ios::binary); - data.seekg(0, std::ios::end); + std::ifstream data(StringUtils::format("romfs:/mg/data%s.bin", genToString(g).c_str()), std::ios::binary | std::ios::ate); size_t size = data.tellg(); data.seekg(0, std::ios::beg); diff --git a/source/sav/Bank.cpp b/source/sav/Bank.cpp index f6ebb3b2d..c4f64a14b 100644 --- a/source/sav/Bank.cpp +++ b/source/sav/Bank.cpp @@ -36,9 +36,8 @@ Bank::Bank() if (io::exists("/3ds/PKSM/bank/bank.bin")) { bool deleteOld = true; - std::ifstream in("/3ds/PKSM/bank/bank.bin"); + std::ifstream in("/3ds/PKSM/bank/bank.bin", std::ios::binary | std::ios::ate); Gui::waitFrame(i18n::localize("BANK_CONVERT")); - in.seekg(0, std::ios::end); size_t oldSize = in.tellg(); in.seekg(0, std::ios::beg); u8* oldData = new u8[oldSize]; @@ -240,11 +239,10 @@ void Bank::loadExtData() void Bank::loadSD() { bool needResize = false, needSave = false; - std::fstream in("/3ds/PKSM/banks/pksm_1.bnk", std::ios::in); + std::fstream in("/3ds/PKSM/banks/pksm_1.bnk", std::ios::in | std::ios::binary | std::ios::ate); if (in.good()) { Gui::waitFrame(i18n::localize("BANK_LOAD")); - in.seekg(0, std::ios::end); size = in.tellg(); in.seekg(0, std::ios::beg); data = new u8[size];