diff options
author | uruk | 2014-05-31 15:22:29 +0200 |
---|---|---|
committer | uruk | 2014-05-31 15:22:29 +0200 |
commit | 82898716cf24098e664211a5e2f904f9fe98d2d5 (patch) | |
tree | 6a1139d04299c3203bb24fd6f21d860e850733ac /engines | |
parent | 7e8923f757d990972f2bc5ff995c98c0243b7fba (diff) | |
download | scummvm-rg350-82898716cf24098e664211a5e2f904f9fe98d2d5.tar.gz scummvm-rg350-82898716cf24098e664211a5e2f904f9fe98d2d5.tar.bz2 scummvm-rg350-82898716cf24098e664211a5e2f904f9fe98d2d5.zip |
CGE2: Reimplement Vga::show().
Diffstat (limited to 'engines')
-rw-r--r-- | engines/cge2/vga13h.cpp | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/engines/cge2/vga13h.cpp b/engines/cge2/vga13h.cpp index 618fb8a987..bc042a5e5b 100644 --- a/engines/cge2/vga13h.cpp +++ b/engines/cge2/vga13h.cpp @@ -957,13 +957,41 @@ void Vga::sunset() { } void Vga::show() { - for (Sprite *spr = _showQ->first(); spr; spr = spr->_next) + _vm->_infoLine->update(); + + for (Sprite *spr = _showQ->first(); spr; spr = spr->_next) { spr->show(); + } + + //_vm->_mouse->show(); update(); - for (Sprite *spr = _showQ->first(); spr; spr = spr->_next) + + for (Sprite *spr = _showQ->first(); spr; spr = spr->_next) { spr->hide(); + if (spr->_flags._zmov) { + Sprite *s = nullptr; + Sprite *p = spr->_prev; + Sprite *n = spr->_next; + + if (spr->_flags._shad) { + s = p; + p = s->_prev; + } - _frmCnt++; + if ((p && spr->_pos3D._z > p->_pos3D._z) || + (n && spr->_pos3D._z < n->_pos3D._z)) { + _showQ->insert(_showQ->remove(spr)); + if (s) { + //s->gotoxyz(V3D(s->_pos3D._x, s->_pos3D._y, spr->_pos3D._z)); + //_showQ->insert(_showQ->remove(s), spr); + // These two lines are also commented out in the original. + } + } + spr->_flags._zmov = false; + } + } + //_vm->_mouse->hide(); + warning("STUB: Vga::show() - Mouse handling is missing!"); } void Vga::updateColors() { |