From 531867cc3cd1cba7d036024a12898126d41195be Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Tue, 10 Sep 2013 22:49:39 +0300 Subject: FULLPIPE: Finish sceneHandlerDbgMenu() --- engines/fullpipe/constants.h | 1 + engines/fullpipe/scenes.cpp | 34 ++++++++++++++++++++++++++-------- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index f99e679e4e..4f389f80a8 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -36,6 +36,7 @@ namespace Fullpipe { #define MSG_HMRKICK_STUCCO 4765 #define MSG_MANSHADOWSOFF 5196 #define MSG_MANSHADOWSON 5197 +#define MSG_RESTARTGAME 4767 #define MSG_SC1_SHOWOSK 1019 #define MSG_SC1_SHOWOSK2 468 #define MSG_SC1_UTRUBACLICK 1100 diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp index 980dae7f62..37be7facc9 100644 --- a/engines/fullpipe/scenes.cpp +++ b/engines/fullpipe/scenes.cpp @@ -1440,12 +1440,30 @@ void sceneDbgMenu_initScene(Scene *sc) { setInputDisabled(0); } +GameObject *sceneHandlerDbgMenu_getObjectAtXY(int x, int y) { + if (g_fullpipe->_currentScene) + for (uint i = 0; i < g_fullpipe->_currentScene->_picObjList.size(); i++) { + PictureObject *pic = (PictureObject *)g_fullpipe->_currentScene->_picObjList[i]; + + if (x >= pic->_ox && y >= pic->_oy) { + Common::Point point; + + pic->getDimensions(&point); + + if (x <= pic->_ox + point.x && y <= pic->_oy + point.y && pic != g_vars->selector) + return pic; + } + } + + return 0; +} + int sceneHandlerDbgMenu(ExCommand *ex) { if (ex->_messageKind != 17) return 0; -#if 0 - int mx = g_fullpipe->_mouseScreenPos.x + g_sceneRect.left; - int my = g_fullpipe->_mouseScreenPos.y + g_sceneRect.top; + + int mx = g_fullpipe->_mouseScreenPos.x + g_fullpipe->_sceneRect.left; + int my = g_fullpipe->_mouseScreenPos.y + g_fullpipe->_sceneRect.top; if (ex->_messageNum == 29) { GameObject *obj = sceneHandlerDbgMenu_getObjectAtXY(mx, my); @@ -1467,8 +1485,8 @@ int sceneHandlerDbgMenu(ExCommand *ex) { GameObject *obj = g_fullpipe->_currentScene->getStaticANIObjectAtPos(mx, my); if (obj) { if (canInteractAny(0, obj, -3)) { - g_cursorId = PIC_CSR_DEFAULT; - input_setCursor(PIC_CSR_DEFAULT); + g_fullpipe->_cursorId = PIC_CSR_DEFAULT; + g_fullpipe->setCursor(PIC_CSR_DEFAULT); return 0; } } else { @@ -1477,13 +1495,13 @@ int sceneHandlerDbgMenu(ExCommand *ex) { g_vars->selector->_flags |= 4; g_vars->selector->setOXY(obj->_ox, obj->_oy); g_fullpipe->_cursorId = PIC_CSR_DEFAULT; - input_setCursor(PIC_CSR_DEFAULT); + g_fullpipe->setCursor(PIC_CSR_DEFAULT); return 0; } g_vars->selector->_flags &= 0xFFFB; } - input_setCursor(g_cursorId); -#endif + g_fullpipe->setCursor(g_fullpipe->_cursorId); + return 0; } -- cgit v1.2.3