From baffdd97e22851ad050bbeb1e800e38606b8f4c1 Mon Sep 17 00:00:00 2001 From: uruk Date: Sun, 15 Jun 2014 21:11:27 +0200 Subject: 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. --- engines/cge2/cge2_main.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'engines/cge2/cge2_main.cpp') 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 -- cgit v1.2.3