diff --git a/src/eepp/graphics/image.cpp b/src/eepp/graphics/image.cpp index 8086d8d2d..f2538a563 100644 --- a/src/eepp/graphics/image.cpp +++ b/src/eepp/graphics/image.cpp @@ -1092,6 +1092,14 @@ std::pair, int> Image::loadGif( IOStream& stream ) { } auto delay = delays[0]; + if ( delay == 0 ) { + for ( int i = 0; i < frames; i++ ) { + if ( delays[i] != 0 ) { + delay = delays[i]; + break; + } + } + } free( data ); free( delays ); return { std::move( gif ), delay ? delay : 100 }; diff --git a/src/eepp/graphics/sprite.cpp b/src/eepp/graphics/sprite.cpp index f11435162..247b04e77 100644 --- a/src/eepp/graphics/sprite.cpp +++ b/src/eepp/graphics/sprite.cpp @@ -717,11 +717,15 @@ Sizef Sprite::setSize( const unsigned int& FrameNum, const unsigned int& SubFram } Sizef Sprite::getSize() { - return mFrames[mCurrentFrame].Spr[mCurrentSubFrame]->getSize(); + return mCurrentFrame < mFrames.size() && mCurrentSubFrame < mFrames[mCurrentFrame].Spr.size() + ? mFrames[mCurrentFrame].Spr[mCurrentSubFrame]->getSize() + : Sizef::Zero; } Sizef Sprite::getPixelsSize() { - return mFrames[mCurrentFrame].Spr[mCurrentSubFrame]->getPixelsSize(); + return mCurrentFrame < mFrames.size() && mCurrentSubFrame < mFrames[mCurrentFrame].Spr.size() + ? mFrames[mCurrentFrame].Spr[mCurrentSubFrame]->getPixelsSize() + : Sizef::Zero; } void Sprite::setRepetitions( const int& Repeations ) { diff --git a/src/eepp/graphics/texture.cpp b/src/eepp/graphics/texture.cpp index d96faab32..ea8964eab 100644 --- a/src/eepp/graphics/texture.cpp +++ b/src/eepp/graphics/texture.cpp @@ -980,6 +980,14 @@ std::pair, int> Texture::loadGif( IOStream& stream ) { } auto delay = delays[0]; + if ( delay == 0 ) { + for ( int i = 0; i < frames; i++ ) { + if ( delays[i] != 0 ) { + delay = delays[i]; + break; + } + } + } free( data ); free( delays ); return { std::move( gif ), delay ? delay : 100 }; diff --git a/src/thirdparty/SOIL2 b/src/thirdparty/SOIL2 index 5b4b2e6ea..1acee655f 160000 --- a/src/thirdparty/SOIL2 +++ b/src/thirdparty/SOIL2 @@ -1 +1 @@ -Subproject commit 5b4b2e6ead1d0d6b63b5fd53aba28c4c207405bf +Subproject commit 1acee655f069cf50eb433d0146a53c56c2cc5da6