aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2015-12-05 08:03:36 +0100
committerEugene Sandulenko2015-12-05 08:03:36 +0100
commite215a75e7b314176fccb2b386db72a285d1af3fa (patch)
tree5a6c5b3f5c115714c74bc7d8c119bf066b9564bc /engines
parent1779fba59bb94b136be640834036df0f67881319 (diff)
downloadscummvm-rg350-e215a75e7b314176fccb2b386db72a285d1af3fa.tar.gz
scummvm-rg350-e215a75e7b314176fccb2b386db72a285d1af3fa.tar.bz2
scummvm-rg350-e215a75e7b314176fccb2b386db72a285d1af3fa.zip
AGI: stub for AGI1 newRoom()
Diffstat (limited to 'engines')
-rw-r--r--engines/agi/cycle.cpp20
-rw-r--r--engines/agi/op_cmd.cpp16
-rw-r--r--engines/agi/opcodes.cpp4
-rw-r--r--engines/agi/opcodes.h2
4 files changed, 17 insertions, 25 deletions
diff --git a/engines/agi/cycle.cpp b/engines/agi/cycle.cpp
index 6b34605364..145b827160 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 662454f3c1..bf2a2ed77b 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 621fbb8e82..0d7d180ec9 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 6bd31c339a..5466bc6ee0 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);