From e215a75e7b314176fccb2b386db72a285d1af3fa Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 5 Dec 2015 08:03:36 +0100 Subject: AGI: stub for AGI1 newRoom() --- engines/agi/cycle.cpp | 20 +++++++++++++++----- engines/agi/op_cmd.cpp | 16 ---------------- engines/agi/opcodes.cpp | 4 ++-- engines/agi/opcodes.h | 2 -- 4 files changed, 17 insertions(+), 25 deletions(-) (limited to 'engines') 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); -- cgit v1.2.3