[Scummvm-cvs-logs] scummvm master -> b4d06ccfe0dde0d9399616a7c67d7bfea196e43f
sev-
sev at scummvm.org
Thu Apr 10 11:22:41 CEST 2014
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
a30c646cae FULLPIPE: Implement ModalMainMenu::enableDebugMenuButton()
d991a139f0 FULLPIPE: Implement ModalMainMenu::enableDebugMenu()
b4d06ccfe0 FULLPIPE: Implement ModalMainMenu::handleMessage()
Commit: a30c646cae0602e78d0bec73fee6637e24c4ced2
https://github.com/scummvm/scummvm/commit/a30c646cae0602e78d0bec73fee6637e24c4ced2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-04-10T06:13:24+03:00
Commit Message:
FULLPIPE: Implement ModalMainMenu::enableDebugMenuButton()
Changed paths:
engines/fullpipe/modal.cpp
engines/fullpipe/modal.h
diff --git a/engines/fullpipe/modal.cpp b/engines/fullpipe/modal.cpp
index 833d47f..2473071 100644
--- a/engines/fullpipe/modal.cpp
+++ b/engines/fullpipe/modal.cpp
@@ -780,7 +780,7 @@ ModalMainMenu::ModalMainMenu() {
area = new MenuArea();
area->picIdL = PIC_MNU_EXIT_L;
area->picObjD = 0;
- area->picObjL = _scene->getPictureObjectById(PIC_MNU_EXIT_L, 0);
+ area->picObjL = _scene->getPictureObjectById(area->picIdL, 0);
area->picObjL->_flags &= 0xFFFB;
_areas.push_back(area);
@@ -845,6 +845,10 @@ ModalMainMenu::ModalMainMenu() {
setSliderPos();
}
+void ModalMainMenu::update() {
+ _scene->draw();
+}
+
bool ModalMainMenu::isSaveAllowed() {
warning("STUB: ModalMainMenu::isSaveAllowed()");
@@ -852,7 +856,18 @@ bool ModalMainMenu::isSaveAllowed() {
}
void ModalMainMenu::enableDebugMenuButton() {
- warning("STUB: ModalMainMenu::enableDebugMenuButton()");
+ MenuArea *area;
+
+ for (uint i = 0; i < _areas.size(); i++)
+ if (_areas[i]->picIdL == PIC_MNU_DEBUG_L)
+ return;
+
+ area = new MenuArea();
+ area->picIdL = PIC_MNU_DEBUG_L;
+ area->picObjD = 0;
+ area->picObjL = _scene->getPictureObjectById(area->picIdL, 0);
+ area->picObjL->_flags &= 0xFFFB;
+ _areas.push_back(area);
}
void ModalMainMenu::setSliderPos() {
diff --git a/engines/fullpipe/modal.h b/engines/fullpipe/modal.h
index 532d145..d1568ce 100644
--- a/engines/fullpipe/modal.h
+++ b/engines/fullpipe/modal.h
@@ -175,7 +175,7 @@ public:
virtual bool pollEvent() { return true; }
virtual bool handleMessage(ExCommand *message) { return false; }
virtual bool init(int counterdiff) { return true; }
- virtual void update() {}
+ virtual void update();
virtual void saveload() {}
private:
Commit: d991a139f056c52dd15ac2a931bfcca317273f94
https://github.com/scummvm/scummvm/commit/d991a139f056c52dd15ac2a931bfcca317273f94
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-04-10T06:21:46+03:00
Commit Message:
FULLPIPE: Implement ModalMainMenu::enableDebugMenu()
Changed paths:
engines/fullpipe/modal.cpp
engines/fullpipe/modal.h
diff --git a/engines/fullpipe/modal.cpp b/engines/fullpipe/modal.cpp
index 2473071..999bcc4 100644
--- a/engines/fullpipe/modal.cpp
+++ b/engines/fullpipe/modal.cpp
@@ -752,11 +752,12 @@ void ModalCredits::update() {
ModalMainMenu::ModalMainMenu() {
_areas.clear();
- _mfield_2C = 0;
+ _lastArea = 0;
_mfield_C = 0;
_mfield_34 = 0;
_scene = g_fp->accessScene(SC_MAINMENU);
- _mfield_50 = 0;
+ _debugKeyCount = 0;
+ _sliderOffset = 0;
_screct.left = g_fp->_sceneRect.left;
_screct.top = g_fp->_sceneRect.top;
_screct.right = g_fp->_sceneRect.right;
@@ -855,6 +856,21 @@ bool ModalMainMenu::isSaveAllowed() {
return true;
}
+void ModalMainMenu::enableDebugMenu(int objId, char c) {
+ const char deb[] = "DEBUGER";
+
+ if (c == deb[_debugKeyCount]) {
+ _debugKeyCount++;
+
+ if (deb[_debugKeyCount] )
+ return;
+
+ enableDebugMenuButton();
+ }
+
+ _debugKeyCount = 0;
+}
+
void ModalMainMenu::enableDebugMenuButton() {
MenuArea *area;
diff --git a/engines/fullpipe/modal.h b/engines/fullpipe/modal.h
index d1568ce..1530b61 100644
--- a/engines/fullpipe/modal.h
+++ b/engines/fullpipe/modal.h
@@ -160,13 +160,13 @@ public:
Common::Array<MenuArea *> _areas;
int _menuSliderIdx;
int _musicSliderIdx;
- int _mfield_2C;
- int _mfield_30;
+ MenuArea *_lastArea;
+ int _sliderOffset;
int _mfield_34;
Common::Rect _screct;
int _bgX;
int _bgY;
- int _mfield_50;
+ int _debugKeyCount;
public:
ModalMainMenu();
@@ -182,6 +182,8 @@ private:
bool isSaveAllowed();
void enableDebugMenuButton();
void setSliderPos();
+ void enableDebugMenu(int objId, char c);
+
};
class ModalHelp : public BaseModalObject {
Commit: b4d06ccfe0dde0d9399616a7c67d7bfea196e43f
https://github.com/scummvm/scummvm/commit/b4d06ccfe0dde0d9399616a7c67d7bfea196e43f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-04-10T06:49:15+03:00
Commit Message:
FULLPIPE: Implement ModalMainMenu::handleMessage()
Changed paths:
engines/fullpipe/modal.cpp
engines/fullpipe/modal.h
diff --git a/engines/fullpipe/modal.cpp b/engines/fullpipe/modal.cpp
index 999bcc4..46830fc 100644
--- a/engines/fullpipe/modal.cpp
+++ b/engines/fullpipe/modal.cpp
@@ -753,7 +753,7 @@ ModalMainMenu::ModalMainMenu() {
_areas.clear();
_lastArea = 0;
- _mfield_C = 0;
+ _hoverAreaId = 0;
_mfield_34 = 0;
_scene = g_fp->accessScene(SC_MAINMENU);
_debugKeyCount = 0;
@@ -850,13 +850,70 @@ void ModalMainMenu::update() {
_scene->draw();
}
+bool ModalMainMenu::handleMessage(ExCommand *message) {
+ if (message->_messageKind != 17)
+ return false;
+
+ Common::Point point;
+
+ if (message->_messageNum == 29) {
+ point.x = message->_x;
+ point.y = message->_y;
+
+ int numarea = checkHover(point);
+
+ if (numarea >= 0) {
+ if (numarea == _menuSliderIdx) {
+ _lastArea = _areas[_menuSliderIdx];
+ _sliderOffset = _lastArea->picObjL->_ox - point.x;
+
+ return false;
+ }
+
+ if (numarea == _musicSliderIdx) {
+ _lastArea = _areas[_musicSliderIdx];
+ _sliderOffset = _lastArea->picObjL->_ox - point.x;
+
+ return false;
+ }
+
+ _hoverAreaId = _areas[numarea]->picIdL;
+ }
+
+ return false;
+ }
+
+ if (message->_messageNum == 30) {
+ if (_lastArea)
+ _lastArea = 0;
+
+ return false;
+ }
+
+ if (message->_messageNum != 36)
+ return false;
+
+ if (message->_keyCode == 27)
+ _hoverAreaId = PIC_MNU_CONTINUE_L;
+ else
+ enableDebugMenu(message->_keyCode);
+
+ return false;
+}
+
+int ModalMainMenu::checkHover(Common::Point &point) {
+ warning("STUB: ModalMainMenu::checkHover()");
+
+ return 0;
+}
+
bool ModalMainMenu::isSaveAllowed() {
warning("STUB: ModalMainMenu::isSaveAllowed()");
return true;
}
-void ModalMainMenu::enableDebugMenu(int objId, char c) {
+void ModalMainMenu::enableDebugMenu(char c) {
const char deb[] = "DEBUGER";
if (c == deb[_debugKeyCount]) {
diff --git a/engines/fullpipe/modal.h b/engines/fullpipe/modal.h
index 1530b61..b932b69 100644
--- a/engines/fullpipe/modal.h
+++ b/engines/fullpipe/modal.h
@@ -156,7 +156,7 @@ struct MenuArea {
class ModalMainMenu : public BaseModalObject {
public:
Scene *_scene;
- int _mfield_C;
+ int _hoverAreaId;
Common::Array<MenuArea *> _areas;
int _menuSliderIdx;
int _musicSliderIdx;
@@ -173,7 +173,7 @@ public:
virtual ~ModalMainMenu() {}
virtual bool pollEvent() { return true; }
- virtual bool handleMessage(ExCommand *message) { return false; }
+ virtual bool handleMessage(ExCommand *message);
virtual bool init(int counterdiff) { return true; }
virtual void update();
virtual void saveload() {}
@@ -182,8 +182,8 @@ private:
bool isSaveAllowed();
void enableDebugMenuButton();
void setSliderPos();
- void enableDebugMenu(int objId, char c);
-
+ void enableDebugMenu(char c);
+ int checkHover(Common::Point &point);
};
class ModalHelp : public BaseModalObject {
More information about the Scummvm-git-logs
mailing list