[Scummvm-cvs-logs] scummvm master -> e215a75e7b314176fccb2b386db72a285d1af3fa

sev- sev at scummvm.org
Sun Dec 6 11:08:49 CET 2015


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:
e215a75e7b AGI: stub for AGI1 newRoom()


Commit: e215a75e7b314176fccb2b386db72a285d1af3fa
    https://github.com/scummvm/scummvm/commit/e215a75e7b314176fccb2b386db72a285d1af3fa
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2015-12-05T08:03:36+01:00

Commit Message:
AGI: stub for AGI1 newRoom()

Changed paths:
    engines/agi/cycle.cpp
    engines/agi/op_cmd.cpp
    engines/agi/opcodes.cpp
    engines/agi/opcodes.h



diff --git a/engines/agi/cycle.cpp b/engines/agi/cycle.cpp
index 6b34605..145b827 100644
--- a/engines/agi/cycle.cpp
+++ b/engines/agi/cycle.cpp
@@ -84,13 +84,23 @@ void AgiEngine::newRoom(int n) {
 		break;
 	}
 
-	_game.vars[vBorderTouchEgo] = 0;
-	setflag(fNewRoomExec, true);
+	if (getVersion() < 0x2000) {
+		warning("STUB: NewRoom(%d)", n);
 
-	_game.exitAllLogics = true;
+		v->flags &= ~fDidntMove;
+		// animateObject(0);
+		agiLoadResource(rVIEW, _game.viewTable[0].currentView);
+		setView(&_game.viewTable[0], _game.viewTable[0].currentView);
 
-	writeStatus();
-	writePrompt();
+	} else {
+		_game.vars[vBorderTouchEgo] = 0;
+		setflag(fNewRoomExec, true);
+
+		_game.exitAllLogics = true;
+
+		writeStatus();
+		writePrompt();
+	}
 }
 
 void AgiEngine::resetControllers() {
diff --git a/engines/agi/op_cmd.cpp b/engines/agi/op_cmd.cpp
index 662454f..bf2a2ed 100644
--- a/engines/agi/op_cmd.cpp
+++ b/engines/agi/op_cmd.cpp
@@ -1711,22 +1711,6 @@ void cmdCallV1(AgiGame *state, uint8 *p) {
 	_v[13] = 1;
 }
 
-void cmdNewRoomV1(AgiGame *state, uint8 *p) {
-	warning("cmdNewRoomV1()");
-	state->_vm->agiLoadResource(rLOGIC, p0);
-	state->max_logics = 1;
-	state->logic_list[1] = p0;
-	_v[13] = 1;
-}
-
-void cmdNewRoomVV1(AgiGame *state, uint8 *p) {
-	warning("cmdNewRoomVV1()");
-	state->_vm->agiLoadResource(rLOGIC, _v[p0]);
-	state->max_logics = 1;
-	state->logic_list[1] = _v[p0];
-	_v[13] = 1;
-}
-
 void cmdUnknown(AgiGame *state, uint8 *p) {
 	warning("Skipping unknown opcode %2X", *(code + ip - 1));
 }
diff --git a/engines/agi/opcodes.cpp b/engines/agi/opcodes.cpp
index 621fbb8..0d7d180 100644
--- a/engines/agi/opcodes.cpp
+++ b/engines/agi/opcodes.cpp
@@ -60,7 +60,7 @@ AgiInstruction insV1[] = {
 	{ "subv",				"vv",		&cmdSubV },				// 08
 	{ "load.view",			"n",		&cmdLoadView },			// 09
 	{ "animate.obj",		"n",		&cmdAnimateObj },		// 0A
-	{ "new.room",			"n",		&cmdNewRoomV1 },		// 0B
+	{ "new.room",			"n",		&cmdNewRoom },			// 0B
 	{ "draw.pic",			"v",		&cmdDrawPicV1 },		// 0C
 	{ "print",				"s",		&cmdPrint },			// 0D TODO
 	{ "status",				"",			&cmdStatus },			// 0E TODO
@@ -112,7 +112,7 @@ AgiInstruction insV1[] = {
 	{ "set.v",				"v",		&cmdSetV },				// 3C
 	{ "reset.v",			"v",		&cmdResetV },			// 3D
 	{ "toggle.v",			"v",		&cmdToggleV },			// 3E
-	{ "new.room.v",			"v",		&cmdNewRoomVV1 },		// 3F TODO
+	{ "new.room.v",			"v",		&cmdNewRoom },			// 3F
 	{ "call",				"n",		&cmdCallV1 },			// 40 TODO
 	{ "quit",				"",			&cmdQuitV1 },			// 41
 	{ "set.speed",			"v",		&cmdSetSpeed },			// 42
diff --git a/engines/agi/opcodes.h b/engines/agi/opcodes.h
index 6bd31c3..5466bc6 100644
--- a/engines/agi/opcodes.h
+++ b/engines/agi/opcodes.h
@@ -237,8 +237,6 @@ void cmdAdjEgoMoveToXY(AgiGame *state, uint8 *p);
 void cmdSetSpeed(AgiGame *state, uint8 *p);
 void cmdSetItemView(AgiGame *state, uint8 *p);
 void cmdCallV1(AgiGame *state, uint8 *p);
-void cmdNewRoomV1(AgiGame *state, uint8 *p);
-void cmdNewRoomVV1(AgiGame *state, uint8 *p);
 void cmdUnknown(AgiGame *state, uint8 *p);
 
 void condEqual(AgiGame *state, uint8 *p);






More information about the Scummvm-git-logs mailing list