aboutsummaryrefslogtreecommitdiff
path: root/engines/cge2/cge2_main.cpp
diff options
context:
space:
mode:
authoruruk2014-06-15 21:11:27 +0200
committeruruk2014-06-15 21:11:42 +0200
commitbaffdd97e22851ad050bbeb1e800e38606b8f4c1 (patch)
tree62b31a8062dad8da01aa715d6e97226e5fd874c3 /engines/cge2/cge2_main.cpp
parentae96463036ff99540478b7355746d8fd653ff527 (diff)
downloadscummvm-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.cpp23
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