[Scummvm-git-logs] scummvm master -> 33dc1c88f2975e402f9a44b372ef688e49b51cf5

waltervn walter at vanniftrik-it.nl
Thu Dec 22 22:44:32 CET 2016


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:
33dc1c88f2 ADL: Make 'room' debug command behave like opcode


Commit: 33dc1c88f2975e402f9a44b372ef688e49b51cf5
    https://github.com/scummvm/scummvm/commit/33dc1c88f2975e402f9a44b372ef688e49b51cf5
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2016-12-22T22:33:02+01:00

Commit Message:
ADL: Make 'room' debug command behave like opcode

Changed paths:
    engines/adl/adl.cpp
    engines/adl/adl.h
    engines/adl/adl_v4.cpp
    engines/adl/adl_v4.h
    engines/adl/console.cpp
    engines/adl/hires5.cpp


diff --git a/engines/adl/adl.cpp b/engines/adl/adl.cpp
index bc5bc74..8195045 100644
--- a/engines/adl/adl.cpp
+++ b/engines/adl/adl.cpp
@@ -427,6 +427,11 @@ void AdlEngine::initState() {
 	initGameState();
 }
 
+void AdlEngine::switchRoom(byte roomNr) {
+	getCurRoom().curPicture = getCurRoom().picture;
+	_state.room = roomNr;
+}
+
 byte AdlEngine::roomArg(byte room) const {
 	return room;
 }
@@ -1073,8 +1078,7 @@ int AdlEngine::o1_moveItem(ScriptEnv &e) {
 int AdlEngine::o1_setRoom(ScriptEnv &e) {
 	OP_DEBUG_1("\tROOM = %d", e.arg(1));
 
-	getCurRoom().curPicture = getCurRoom().picture;
-	_state.room = e.arg(1);
+	switchRoom(e.arg(1));
 	return 1;
 }
 
diff --git a/engines/adl/adl.h b/engines/adl/adl.h
index 67d9a73..dcc8f44 100644
--- a/engines/adl/adl.h
+++ b/engines/adl/adl.h
@@ -262,6 +262,7 @@ protected:
 
 	virtual void setupOpcodeTables();
 	virtual void initState();
+	virtual void switchRoom(byte roomNr);
 	virtual byte roomArg(byte room) const;
 	virtual void advanceClock() { }
 	void loadDroppedItemOffsets(Common::ReadStream &stream, byte count);
diff --git a/engines/adl/adl_v4.cpp b/engines/adl/adl_v4.cpp
index 456ee10..613ffd8 100644
--- a/engines/adl/adl_v4.cpp
+++ b/engines/adl/adl_v4.cpp
@@ -268,6 +268,14 @@ void AdlEngine_v4::switchRegion(byte region) {
 	_picOnScreen = _roomOnScreen = 0;
 }
 
+void AdlEngine_v4::switchRoom(byte roomNr) {
+	getCurRoom().curPicture = getCurRoom().picture;
+	getCurRoom().isFirstTime = false;
+	backupRoomState(_state.room);
+	_state.room = roomNr;
+	restoreRoomState(_state.room);
+}
+
 int AdlEngine_v4::o4_isItemInRoom(ScriptEnv &e) {
 	OP_DEBUG_2("\t&& GET_ITEM_ROOM(%s) == %s", itemStr(e.arg(1)).c_str(), itemRoomStr(e.arg(2)).c_str());
 
@@ -297,17 +305,6 @@ int AdlEngine_v4::o4_moveItem(ScriptEnv &e) {
 	return 2;
 }
 
-int AdlEngine_v4::o4_setRoom(ScriptEnv &e) {
-	OP_DEBUG_1("\tROOM = %d", e.arg(1));
-
-	getCurRoom().curPicture = getCurRoom().picture;
-	getCurRoom().isFirstTime = false;
-	backupRoomState(_state.room);
-	_state.room = e.arg(1);
-	restoreRoomState(_state.room);
-	return 1;
-}
-
 int AdlEngine_v4::o4_setRegionToPrev(ScriptEnv &e) {
 	OP_DEBUG_0("\tREGION = PREV_REGION");
 
diff --git a/engines/adl/adl_v4.h b/engines/adl/adl_v4.h
index 0ddd1b9..1fd0a72 100644
--- a/engines/adl/adl_v4.h
+++ b/engines/adl/adl_v4.h
@@ -52,6 +52,7 @@ protected:
 	virtual Common::String loadMessage(uint idx) const;
 	virtual Common::String getItemDescription(const Item &item) const;
 	virtual void switchRegion(byte region);
+	virtual void switchRoom(byte roomNr);
 
 	// AdlEngine_v2
 	virtual void adjustDataBlockPtr(byte &track, byte &sector, byte &offset, byte &size) const;
@@ -72,7 +73,6 @@ protected:
 	int o4_isItemInRoom(ScriptEnv &e);
 	int o4_isVarGT(ScriptEnv &e);
 	int o4_moveItem(ScriptEnv &e);
-	int o4_setRoom(ScriptEnv &e);
 	int o4_setRegionToPrev(ScriptEnv &e);
 	int o4_moveAllItems(ScriptEnv &e);
 	int o4_setRegion(ScriptEnv &e);
diff --git a/engines/adl/console.cpp b/engines/adl/console.cpp
index e761141..7305ec8 100644
--- a/engines/adl/console.cpp
+++ b/engines/adl/console.cpp
@@ -227,7 +227,7 @@ bool Console::Cmd_Room(int argc, const char **argv) {
 			return true;
 		}
 
-		_engine->_state.room = room;
+		_engine->switchRoom(room);
 		prepareGame();
 	}
 
diff --git a/engines/adl/hires5.cpp b/engines/adl/hires5.cpp
index a3ed6d8..299d1ec 100644
--- a/engines/adl/hires5.cpp
+++ b/engines/adl/hires5.cpp
@@ -100,7 +100,7 @@ void HiRes5Engine::setupOpcodeTables() {
 	// 0x04
 	Opcode(o1_listInv);
 	Opcode(o4_moveItem);
-	Opcode(o4_setRoom);
+	Opcode(o1_setRoom);
 	Opcode(o2_setCurPic);
 	// 0x08
 	Opcode(o2_setPic);





More information about the Scummvm-git-logs mailing list