On switching scenes:
Reset _actor->_lastZone in Actor::updateActorsScene().
Actors can store a pointer to a HitZone in _lastZone
(see Actor::handleActions()).
The HitZone pointed to is held by ObjectMap vm->_scene->_objectMap
in array _hitZoneList.
When changing scenes the array elements are cleared via
ObjectMap::clear() and _lastZone can become stale since
only some code paths reset it (e.g. Actor::takeExit()).
The stale pointer is then passed to Actor::stepZoneAction()
from Actor::handleActions() and dereferenced.
Fixes#13661
This read of 1 byte past the end of the buffer has existed since
the dragonMove() function was implemented, but since the change
in bfb0986c to use ByteArray, this now causes an assertion due to
the stricter bounds checking.
This commit corrects the original issue.
Thanks to fuzzie for this fix.
- Stopped loading the isomap and puzzle game modules for IHNM, as they are not used for that game (this saves some memory for IHNM)
- Removed getDisplayWidth() and getDisplayHeight()
svn-id: r35473
- Removed sagaresnames.h
- Moved all special scenes to scene.h, and named them consistently (e.g. RID_ITE_OVERMAP_SCENE -> ITE_SCENE_OVERMAP)
- Moved all resources which were used by the ITE intro into ite_introproc.cpp
- Removed several defines which were only used once (e.g. the SFX names)
- Reordered the GameResourceDescription resources so that ITE and IHNM specific resources are placed in the end
- Updated the comment about the IHNM Mac music
- Changed the callocs in loadPalAnim to mallocs, like in the rest of the code
- Removed the MEM error
svn-id: r32282
uncompletable. I sense a great disturbance in the Force... as if millions of
voices cried out "ScummVM 0.11.1" and were suddenly silenced.
svn-id: r30562