From 919aca7f9be168fb7ba39ed76ec0d3b7fd51577e Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Thu, 9 Jan 2014 23:30:25 +0200 Subject: FULLPIPE: Implement sceneHandler33_clickZones() --- engines/fullpipe/scenes/scene33.cpp | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'engines') diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp index 838cb526e8..35446f8fea 100644 --- a/engines/fullpipe/scenes/scene33.cpp +++ b/engines/fullpipe/scenes/scene33.cpp @@ -103,8 +103,31 @@ void sceneHandler33_handleDown() { warning("STUB: sceneHandler33_handleDown("); } +void sceneHandler33_zoneClickProcess(StaticANIObject *ani) { + warning("STUB: sceneHandler33_zoneClickProcess()"); +} + void sceneHandler33_clickZones(ExCommand *cmd) { - warning("STUB: sceneHandler33_clickZones(cmd)"); + StaticANIObject *closest = 0; + double mindist = 1e10; + + for (uint i = 0; i < g_fp->_currentScene->_staticANIObjectList1.size(); i++) { + StaticANIObject *ani = (StaticANIObject *)g_fp->_currentScene->_staticANIObjectList1[i]; + + if (ani->_id == ANI_VENT_33) { + int dx = ani->_ox - cmd->_sceneClickX; + int dy = ani->_oy - cmd->_sceneClickY; + double dist = sqrt((double)(dx * dx + dy * dy)); + + if (dist < mindist) { + mindist = dist; + closest = ani; + } + } + } + + if (closest) + sceneHandler33_zoneClickProcess(closest); } int sceneHandler33(ExCommand *cmd) { -- cgit v1.2.3