[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