diff options
author | Alyssa Milburn | 2011-03-29 15:09:15 +0200 |
---|---|---|
committer | Alyssa Milburn | 2011-03-29 15:09:15 +0200 |
commit | bd526aac1dc64ead135b42b08e46566636ba5a90 (patch) | |
tree | d5bf3ff3b9f533a7e9d34c96ddd240896986b2d6 /engines/mohawk | |
parent | ad7b6f68173db0ecb6d5a7925770c423874ded8b (diff) | |
download | scummvm-rg350-bd526aac1dc64ead135b42b08e46566636ba5a90.tar.gz scummvm-rg350-bd526aac1dc64ead135b42b08e46566636ba5a90.tar.bz2 scummvm-rg350-bd526aac1dc64ead135b42b08e46566636ba5a90.zip |
MOHAWK: Destroying an LBGroupItem destroys the whole group.
Diffstat (limited to 'engines/mohawk')
-rw-r--r-- | engines/mohawk/livingbooks.cpp | 10 | ||||
-rw-r--r-- | engines/mohawk/livingbooks.h | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/engines/mohawk/livingbooks.cpp b/engines/mohawk/livingbooks.cpp index 9dd5c9c032..bd2891ef7a 100644 --- a/engines/mohawk/livingbooks.cpp +++ b/engines/mohawk/livingbooks.cpp @@ -2909,6 +2909,16 @@ void LBGroupItem::readData(uint16 type, uint16 size, Common::SeekableSubReadStre } } +void LBGroupItem::destroySelf() { + LBItem::destroySelf(); + + for (uint i = 0; i < _groupEntries.size(); i++) { + LBItem *item = _vm->getItemById(_groupEntries[i].entryId); + if (item) + item->destroySelf(); + } +} + void LBGroupItem::setEnabled(bool enabled) { if (_starting) { _starting = false; diff --git a/engines/mohawk/livingbooks.h b/engines/mohawk/livingbooks.h index 6c22187cf3..3cd9142793 100644 --- a/engines/mohawk/livingbooks.h +++ b/engines/mohawk/livingbooks.h @@ -424,6 +424,7 @@ public: void readData(uint16 type, uint16 size, Common::SeekableSubReadStreamEndian *stream); + void destroySelf(); void setEnabled(bool enabled); void setGlobalEnabled(bool enabled); bool contains(Common::Point point); |