diff --git a/rwengine/src/loaders/LoaderIFP.cpp b/rwengine/src/loaders/LoaderIFP.cpp index 8cc73052..eeb88c92 100644 --- a/rwengine/src/loaders/LoaderIFP.cpp +++ b/rwengine/src/loaders/LoaderIFP.cpp @@ -76,6 +76,8 @@ bool LoaderIFP::loadFromMemory(char* data) { DGAN* animroot = read(data, dataI); std::string infoname = readString(data, dataI); + animation->bones.reserve(static_cast(animroot->info.entries)); + for (int c = 0; c < animroot->info.entries; ++c) { size_t start = data_offs; CPAN* cpan = read(data, dataI); @@ -83,7 +85,7 @@ bool LoaderIFP::loadFromMemory(char* data) { AnimationBone boneData{}; boneData.name = frames->name; - boneData.frames.reserve(frames->frames); + boneData.frames.reserve(static_cast(frames->frames)); data_offs += ((8 + frames->base.size) - sizeof(ANIM)); diff --git a/rwengine/src/loaders/LoaderIFP.hpp b/rwengine/src/loaders/LoaderIFP.hpp index d4ce8534..0c8fdc42 100644 --- a/rwengine/src/loaders/LoaderIFP.hpp +++ b/rwengine/src/loaders/LoaderIFP.hpp @@ -3,8 +3,8 @@ #include #include -#include #include +#include #include #include @@ -67,7 +67,7 @@ struct AnimationBone { */ struct Animation { std::string name; - std::map bones; + std::unordered_map bones; ~Animation() = default;