diff options
-rw-r--r-- | engines/cge2/vga13h.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/engines/cge2/vga13h.cpp b/engines/cge2/vga13h.cpp index 9141f426f3..db96682237 100644 --- a/engines/cge2/vga13h.cpp +++ b/engines/cge2/vga13h.cpp @@ -516,7 +516,7 @@ void Sprite::step(int nr) { if (nr >= 0) _seqPtr = nr; - if (_ext) { + if (_ext && _ext->_seq) { V3D p = _pos3D; Seq *seq = nullptr; @@ -556,13 +556,15 @@ void Sprite::step(int nr) { gotoxyz(p); } else { seq = _ext->_seq + _seqPtr; - if (seq->_dz == 127 && seq->_dx != 0) { - _vm->_commandHandlerTurbo->addCommand(kCmdSound, -1, 256 * seq->_dy + seq->_dx, this); - } else { - p._x += seq->_dx; - p._y += seq->_dy; - p._z += seq->_dz; - gotoxyz(p); + if (seq) { + if (seq->_dz == 127 && seq->_dx != 0) { + _vm->_commandHandlerTurbo->addCommand(kCmdSound, -1, 256 * seq->_dy + seq->_dx, this); + } else { + p._x += seq->_dx; + p._y += seq->_dy; + p._z += seq->_dz; + gotoxyz(p); + } } } if (seq && (seq->_dly >= 0)) |