diff options
author | uruk | 2014-06-15 21:11:27 +0200 |
---|---|---|
committer | uruk | 2014-06-15 21:11:42 +0200 |
commit | baffdd97e22851ad050bbeb1e800e38606b8f4c1 (patch) | |
tree | 62b31a8062dad8da01aa715d6e97226e5fd874c3 /engines/cge2/cge2_main.cpp | |
parent | ae96463036ff99540478b7355746d8fd653ff527 (diff) | |
download | scummvm-rg350-baffdd97e22851ad050bbeb1e800e38606b8f4c1.tar.gz scummvm-rg350-baffdd97e22851ad050bbeb1e800e38606b8f4c1.tar.bz2 scummvm-rg350-baffdd97e22851ad050bbeb1e800e38606b8f4c1.zip |
CGE2: Fix coordinates of mouse handling.
Now infoLine is working properly. Rework solidAt() to achieve that.
Also move spriteAt from talk.cpp to cge2_main.cpp, and remove the older version which didn't use V2D as a parameter.
Diffstat (limited to 'engines/cge2/cge2_main.cpp')
-rw-r--r-- | engines/cge2/cge2_main.cpp | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/engines/cge2/cge2_main.cpp b/engines/cge2/cge2_main.cpp index 802b72ed4d..198f4a359e 100644 --- a/engines/cge2/cge2_main.cpp +++ b/engines/cge2/cge2_main.cpp @@ -868,17 +868,6 @@ void CGE2Engine::switchHero(int sex) { _commandHandler->addCommand(kCmdSeq, -1, 1, face); } -Sprite *CGE2Engine::spriteAt(int x, int y) { - Sprite *spr = NULL, *queueTail = _vga->_showQ->last(); - if (queueTail) { - for (spr = queueTail->_prev; spr; spr = spr->_prev) { - if (!spr->_flags._hide && !spr->_flags._tran && spr->getShp()->solidAt(x - spr->_pos2D.x, y - spr->_pos2D.y)) - break; - } - } - return spr; -} - #pragma argsused void Sprite::touch(uint16 mask, int x, int y, Common::KeyCode keyCode) { if ((mask & kEventAttn) != 0) @@ -961,5 +950,17 @@ void CGE2Engine::offUse() { warning("STUB: CGE2Engine::offUse()"); } +Sprite *CGE2Engine::spriteAt(V2D pos) { + Sprite *spr; + + for (spr = _vga->_showQ->last(); spr; spr = spr->_prev) { + if (!spr->_flags._hide && !spr->_flags._tran) { + if (spr->getShp()->solidAt(pos - spr->_pos2D)) + break; + } + } + + return spr; +} } // End of namespace CGE2 |