aboutsummaryrefslogtreecommitdiff
path: root/engines/cge2
diff options
context:
space:
mode:
authoruruk2014-05-31 15:22:29 +0200
committeruruk2014-05-31 15:22:29 +0200
commit82898716cf24098e664211a5e2f904f9fe98d2d5 (patch)
tree6a1139d04299c3203bb24fd6f21d860e850733ac /engines/cge2
parent7e8923f757d990972f2bc5ff995c98c0243b7fba (diff)
downloadscummvm-rg350-82898716cf24098e664211a5e2f904f9fe98d2d5.tar.gz
scummvm-rg350-82898716cf24098e664211a5e2f904f9fe98d2d5.tar.bz2
scummvm-rg350-82898716cf24098e664211a5e2f904f9fe98d2d5.zip
CGE2: Reimplement Vga::show().
Diffstat (limited to 'engines/cge2')
-rw-r--r--engines/cge2/vga13h.cpp34
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() {