[Scummvm-cvs-logs] scummvm master -> 2fb7acb0009b3ac60bd6000bf398b743394626b8

Strangerke arnaud.boutonne at gmail.com
Sun Apr 17 11:21:01 CEST 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
2fb7acb000 TSAGE: Add listobjects and moveobject commands to the debugger


Commit: 2fb7acb0009b3ac60bd6000bf398b743394626b8
    https://github.com/scummvm/scummvm/commit/2fb7acb0009b3ac60bd6000bf398b743394626b8
Author: strangerke (arnaud.boutonne at gmail.com)
Date: 2011-04-17T02:20:08-07:00

Commit Message:
TSAGE: Add listobjects and moveobject commands to the debugger

Changed paths:
    engines/tsage/debugger.cpp
    engines/tsage/debugger.h



diff --git a/engines/tsage/debugger.cpp b/engines/tsage/debugger.cpp
index 730a8f2..bebf463 100644
--- a/engines/tsage/debugger.cpp
+++ b/engines/tsage/debugger.cpp
@@ -40,6 +40,8 @@ Debugger::Debugger() : GUI::Debugger() {
 	DCmd_Register("setflag",		WRAP_METHOD(Debugger, Cmd_SetFlag));
 	DCmd_Register("getflag",		WRAP_METHOD(Debugger, Cmd_GetFlag));
 	DCmd_Register("clearflag",		WRAP_METHOD(Debugger, Cmd_ClearFlag));
+	DCmd_Register("listobjects",	WRAP_METHOD(Debugger, Cmd_ListObjects));
+	DCmd_Register("moveobject",		WRAP_METHOD(Debugger, Cmd_MoveObject));
 
 	DCmd_Register("item",			WRAP_METHOD(Debugger, Cmd_Item));
 }
@@ -210,6 +212,175 @@ bool Debugger::Cmd_ClearFlag(int argc, const char **argv) {
 	return true;
 }
 
+/*
+ * This command lists the objects available, and their ID
+ */
+bool Debugger::Cmd_ListObjects(int argc, const char **argv) {
+	if (argc != 1) {
+		DebugPrintf("Usage: %s\n", argv[0]);
+		return true;
+	}
+	
+	DebugPrintf("Available objects for this game are:\n");
+	DebugPrintf("0 - Stunner\n");
+	DebugPrintf("1 - Scanner\n");
+	DebugPrintf("2 - Stasis Box\n");
+	DebugPrintf("3 - Info Disk\n");
+	DebugPrintf("4 - Stasis Negator\n");
+	DebugPrintf("5 - Key Device\n");
+	DebugPrintf("6 - Medkit\n");
+	DebugPrintf("7 - Ladder\n");
+	DebugPrintf("8 - Rope\n");
+	DebugPrintf("9 - Key\n");
+	DebugPrintf("10 - Translator\n");
+	DebugPrintf("11 - Ale\n");
+	DebugPrintf("12 - Paper\n");
+	DebugPrintf("13 - Waldos\n");
+	DebugPrintf("14 - Stasis Box 2\n");
+	DebugPrintf("15 - Ring\n");
+	DebugPrintf("16 - Cloak\n");
+	DebugPrintf("17 - Tunic\n");
+	DebugPrintf("18 - Candle\n");
+	DebugPrintf("19 - Straw\n");
+	DebugPrintf("20 - Scimitar\n");
+	DebugPrintf("21 - Sword\n");
+	DebugPrintf("22 - Helmet\n");
+	DebugPrintf("23 - Items\n");
+	DebugPrintf("24 - Concentrator\n");
+	DebugPrintf("25 - Nullifier\n");
+	DebugPrintf("26 - Peg\n");
+	DebugPrintf("27 - Vial\n");
+	DebugPrintf("28 - Jacket\n");
+	DebugPrintf("29 - Tunic 2\n");
+	DebugPrintf("30 - Bone\n");
+	DebugPrintf("31 - Empty Jar\n");
+	DebugPrintf("32 - Jar\n");
+	return true;
+}
+
+/*
+ * This command gets an item, or move it to a room
+ */
+bool Debugger::Cmd_MoveObject(int argc, const char **argv) {
+	// Check for a flag to clear
+	if ((argc < 2) || (argc > 3)){
+		DebugPrintf("Usage: %s <object number> [<scene number>]\n", argv[0]);
+		DebugPrintf("If no scene is specified, the object will be added to inventory\n", argv[0]);
+		return true;
+	}
+
+	int objNum = strToInt(argv[1]);
+	int sceneNum = 1;
+	if (argc == 3)
+		sceneNum = strToInt(argv[2]);
+
+	switch (objNum) {
+	case OBJECT_STUNNER:
+		_globals->_inventory._stunner._sceneNumber = sceneNum;
+		break;
+	case OBJECT_SCANNER:
+		_globals->_inventory._scanner._sceneNumber = sceneNum;
+		break;
+	case OBJECT_STASIS_BOX:
+		_globals->_inventory._stasisBox._sceneNumber = sceneNum;
+		break;
+	case OBJECT_INFODISK:
+		_globals->_inventory._infoDisk._sceneNumber = sceneNum;
+		break;
+	case OBJECT_STASIS_NEGATOR:
+		_globals->_inventory._stasisNegator._sceneNumber = sceneNum;
+		break;
+	case OBJECT_KEY_DEVICE:
+		_globals->_inventory._keyDevice._sceneNumber = sceneNum;
+		break;
+	case OBJECT_MEDKIT:
+		_globals->_inventory._medkit._sceneNumber = sceneNum;
+		break;
+	case OBJECT_LADDER:
+		_globals->_inventory._ladder._sceneNumber = sceneNum;
+		break;
+	case OBJECT_ROPE:
+		_globals->_inventory._rope._sceneNumber = sceneNum;
+		break;
+	case OBJECT_KEY:
+		_globals->_inventory._key._sceneNumber = sceneNum;
+		break;
+	case OBJECT_TRANSLATOR:
+		_globals->_inventory._translator._sceneNumber = sceneNum;
+		break;
+	case OBJECT_ALE:
+		_globals->_inventory._ale._sceneNumber = sceneNum;
+		break;
+	case OBJECT_PAPER:
+		_globals->_inventory._paper._sceneNumber = sceneNum;
+		break;
+	case OBJECT_WALDOS:
+		_globals->_inventory._waldos._sceneNumber = sceneNum;
+		break;
+	case OBJECT_STASIS_BOX2:
+		_globals->_inventory._stasisBox2._sceneNumber = sceneNum;
+		break;
+	case OBJECT_RING:
+		_globals->_inventory._ring._sceneNumber = sceneNum;
+		break;
+	case OBJECT_CLOAK:
+		_globals->_inventory._cloak._sceneNumber = sceneNum;
+		break;
+	case OBJECT_TUNIC:
+		_globals->_inventory._tunic._sceneNumber = sceneNum;
+		break;
+	case OBJECT_CANDLE:
+		_globals->_inventory._candle._sceneNumber = sceneNum;
+		break;
+	case OBJECT_STRAW:
+		_globals->_inventory._straw._sceneNumber = sceneNum;
+		break;
+	case OBJECT_SCIMITAR:
+		_globals->_inventory._scimitar._sceneNumber = sceneNum;
+		break;
+	case OBJECT_SWORD:
+		_globals->_inventory._sword._sceneNumber = sceneNum;
+		break;
+	case OBJECT_HELMET:
+		_globals->_inventory._helmet._sceneNumber = sceneNum;
+		break;
+	case OBJECT_ITEMS:
+		_globals->_inventory._items._sceneNumber = sceneNum;
+		break;
+	case OBJECT_CONCENTRATOR:
+		_globals->_inventory._concentrator._sceneNumber = sceneNum;
+		break;
+	case OBJECT_NULLIFIER:
+		_globals->_inventory._nullifier._sceneNumber = sceneNum;
+		break;
+	case OBJECT_PEG:
+		_globals->_inventory._peg._sceneNumber = sceneNum;
+		break;
+	case OBJECT_VIAL:
+		_globals->_inventory._vial._sceneNumber = sceneNum;
+		break;
+	case OBJECT_JACKET:
+		_globals->_inventory._jacket._sceneNumber = sceneNum;
+		break;
+	case OBJECT_TUNIC2:
+		_globals->_inventory._tunic2._sceneNumber = sceneNum;
+		break;
+	case OBJECT_BONE:
+		_globals->_inventory._bone._sceneNumber = sceneNum;
+		break;
+	case OBJECT_EMPTY_JAR:
+		_globals->_inventory._emptyJar._sceneNumber = sceneNum;
+		break;
+	case OBJECT_JAR:
+		_globals->_inventory._jar._sceneNumber = sceneNum;
+		break;
+	default:
+		DebugPrintf("Invlid object Id %s\n", argv[1]);
+	}
+
+	return true;
+}
+
 /**
  * Give a specified item to the player
  */
diff --git a/engines/tsage/debugger.h b/engines/tsage/debugger.h
index ee097e1..a34bb1e 100644
--- a/engines/tsage/debugger.h
+++ b/engines/tsage/debugger.h
@@ -40,11 +40,13 @@ protected:
 	bool Cmd_Scene(int argc, const char **argv);
 	bool Cmd_WalkRegions(int argc, const char **argv);
 	bool Cmd_PriorityRegions(int argc, const char **argv);
-	bool Cmd_Item(int argc, const char **argv);
 	bool Cmd_SetFlag(int argc, const char **argv);
 	bool Cmd_GetFlag(int argc, const char **argv);
 	bool Cmd_ClearFlag(int argc, const char **argv);
+	bool Cmd_ListObjects(int argc, const char **argv);
+	bool Cmd_MoveObject(int argc, const char **argv);
 
+	bool Cmd_Item(int argc, const char **argv);
 };
 
 } // End of namespace tSage






More information about the Scummvm-git-logs mailing list