[Scummvm-cvs-logs] CVS: scummvm/scumm dialogs.cpp,1.29,1.30 dialogs.h,1.11,1.12 scumm.h,1.79,1.80 scummvm.cpp,1.95,1.96

James Brown ender at users.sourceforge.net
Sat Dec 14 02:47:02 CET 2002


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv19431/scumm

Modified Files:
	dialogs.cpp dialogs.h scumm.h scummvm.cpp 
Log Message:
Commit some junk in-case I don't get time to finish this tonight and Fingolfin starts working on it :)


Index: dialogs.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/dialogs.cpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- dialogs.cpp	4 Dec 2002 13:10:15 -0000	1.29
+++ dialogs.cpp	14 Dec 2002 10:46:00 -0000	1.30
@@ -665,12 +665,55 @@
 
 #pragma mark -
 
+PauseDialog::PauseDialog(NewGui *gui, Scumm *scumm)
+	: InfoDialog(gui, scumm, 10)
+{
+}
 
 #pragma mark -
 
-PauseDialog::PauseDialog(NewGui *gui, Scumm *scumm)
-	: InfoDialog(gui, scumm, 10)
+DebuggerDialog::DebuggerDialog(NewGui *gui, Scumm *scumm, int width, int height)
+        : ScummDialog(gui, scumm, 0, 0, width, height)
+{
+	draw();
+}
+
+void DebuggerDialog::drawDialog()
 {
+        //int    history_len = cmd_history.size();
+
+	// Draw box and border
+	_gui->blendRect(_x, _y, _w, _h, _gui->_bgcolor);
+	/*_gui->line(_x, _y, _x, _h, _gui->_color);
+	_gui->line(_w, _y, _w, _y, _gui->_color);
+	_gui->line(_x, _h, _w, _h, _gui->_shadowcolor);*/
+
+	_gui->addDirtyRect(_x, _y, _w, _h);
+
+	// Draw items
+	//  ... history_len - ((_h / kLineHeight) * _page)
+}
+
+void DebuggerDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) {
+ if ((ascii == '~') || (keycode == 27)) {		// Total abort on tilde or escape
+	close();
+	return;
+ } else if (ascii == '\r' || ascii == '\n') {		// Run command on enter/newline
+	// TODO: Add some kind of pop() method to StringList,
+	// so we can remove old obsolete entries and not waste memory
+	cmd_history.push_back(cmd_current);
+	// _scumm.debugger.parseCommand(cmd_current, (void*)this.printCallback);
+	cmd_current.clear();
+	draw();
+ } else if (keycode == 8) {				// Backspace
+	cmd_current.deleteLastChar();
+	draw();
+ } else if ((keycode >= 31) && (keycode <= 122)) {	// Printable ASCII, add to string
+	cmd_current+=(char)ascii;
+	draw();
+ } else {
+	debug(2, "Unhandled keycode from DebuggerDialog: %d\n", keycode);
+ }
 }
 
 #ifdef _WIN32_WCE

Index: dialogs.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/dialogs.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- dialogs.h	22 Nov 2002 14:02:54 -0000	1.11
+++ dialogs.h	14 Dec 2002 10:46:00 -0000	1.12
@@ -134,6 +134,17 @@
 	PauseDialog(NewGui *gui, Scumm *scumm);
 };
 
+class DebuggerDialog : public ScummDialog {
+protected:
+	ScummVM::StringList cmd_history;
+	String cmd_current;
+
+public:
+	DebuggerDialog(NewGui *gui, Scumm *scumm, int width, int height);
+	virtual void handleKeyDown(uint16 ascii, int keycode, int modifiers);
+	virtual void drawDialog();
+};
+
 #ifdef _WIN32_WCE
 
 class KeysDialog : public ScummDialog {

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -d -r1.79 -r1.80
--- scumm.h	13 Dec 2002 03:23:17 -0000	1.79
+++ scumm.h	14 Dec 2002 10:46:00 -0000	1.80
@@ -337,11 +337,13 @@
 	Dialog *_pauseDialog;
 	Dialog *_optionsDialog;
 	Dialog *_saveLoadDialog;
+	Dialog *_debuggerDialog;
 
 	int runDialog(Dialog *dialog);
 	void pauseDialog();
 	void saveloadDialog();
 	void optionsDialog();
+	void debuggerDialog();
 	void displayError(const char *message, ...);
 
 	// Misc startup/event functions

Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scummvm.cpp,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -d -r1.95 -r1.96
--- scummvm.cpp	13 Dec 2002 17:12:02 -0000	1.95
+++ scummvm.cpp	14 Dec 2002 10:46:00 -0000	1.96
@@ -988,10 +988,8 @@
 
 void Scumm::pauseDialog()
 {
-	if (!_pauseDialog) {
+	if (!_pauseDialog)
 		_pauseDialog = new PauseDialog(_newgui, this);
-	}
-
 	runDialog(_pauseDialog);
 }
 
@@ -1002,6 +1000,13 @@
 	runDialog(_saveLoadDialog);
 }
 
+void Scumm::debuggerDialog()
+{
+	if (!_debuggerDialog)
+		_debuggerDialog = new DebuggerDialog(_newgui, this, _realWidth, _realHeight / 5);
+	runDialog(_debuggerDialog);
+}
+
 void Scumm::optionsDialog()
 {
 	if (!_optionsDialog)
@@ -1130,7 +1135,9 @@
 			_defaultTalkDelay = 5;
 
 		_vars[VAR_CHARINC] = _defaultTalkDelay / 20;
-	} 
+	} else if (_lastKeyHit == '~') { // Debug console
+		debuggerDialog();
+	}
 
 	_mouseButStat = _lastKeyHit;
 }





More information about the Scummvm-git-logs mailing list