aboutsummaryrefslogtreecommitdiff
path: root/engines/cge2/spare.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/cge2/spare.cpp')
-rw-r--r--engines/cge2/spare.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/engines/cge2/spare.cpp b/engines/cge2/spare.cpp
index 4c66e96285..dbd8425eed 100644
--- a/engines/cge2/spare.cpp
+++ b/engines/cge2/spare.cpp
@@ -48,10 +48,16 @@ Sprite *Spare::locate(int ref) {
return nullptr;
}
-void Spare::takeCave(int ref) {
- Sprite *spr = locate(ref);
- if (spr != nullptr)
- _vm->_vga->_showQ->insert(spr);
+void Spare::takeCave(int cav) {
+ int bakRef = cav << 8;
+ Common::Array<Sprite*> tempCont = _container;
+ for (int i = 0; i < tempCont.size(); i++) {
+ Sprite *spr = tempCont[i];
+ int c = spr->_scene;
+ if ((c == _vm->_now || c == 0) && spr->_ref != bakRef) {
+ _vm->_vga->_showQ->insert(spr);
+ }
+ }
}
void Spare::store(Sprite *spr) {