aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/mads/sprites.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/engines/mads/sprites.cpp b/engines/mads/sprites.cpp
index 6488add86c..67d5e20fe5 100644
--- a/engines/mads/sprites.cpp
+++ b/engines/mads/sprites.cpp
@@ -402,10 +402,13 @@ void SpriteSets::remove(int idx) {
} else if (idx >= 0) {
delete (*this)[idx];
- if (idx == ((int)size() - 1))
- remove_at(size() - 1);
- else
+ if (idx < ((int)size() - 1)) {
(*this)[idx] = nullptr;
+ } else {
+ do {
+ remove_at(size() - 1);
+ } while (size() > 0 && (*this)[size() - 1] == nullptr);
+ }
}
}