Implemented opcodes:

- 70: o2_backUpInventoryGfx
 - 71: o2_disableSceneAnim
 - 72: o2_enableSceneAnim
 - 73: o2_restoreInventoryGfx

svn-id: r31167
This commit is contained in:
Johannes Schickel 2008-03-17 23:01:50 +00:00
parent 8752939fe4
commit 1042c6dccf
3 changed files with 36 additions and 4 deletions

View File

@ -107,6 +107,7 @@ KyraEngine_v2::KyraEngine_v2(OSystem *system, const GameFlags &flags) : KyraEngi
_gamePlayBuffer = 0;
_unkBuf500Bytes = 0;
_screenBuffer = 0;
_inventorySaved = false;
_unkBuf200kByte = 0;
memset(&_defaultShapeTable, 0, sizeof(_defaultShapeTable));
memset(&_sceneShapeTable, 0, sizeof(_sceneShapeTable));

View File

@ -341,6 +341,7 @@ protected:
void restorePage3();
uint8 *_screenBuffer;
bool _inventorySaved;
void backUpPage0();
void restorePage0();
@ -997,6 +998,10 @@ protected:
int o2_disableAnimObject(ScriptState *script);
int o2_enableAnimObject(ScriptState *script);
int o2_restoreBackBuffer(ScriptState *script);
int o2_backUpInventoryGfx(ScriptState *script);
int o2_disableSceneAnim(ScriptState *script);
int o2_enableSceneAnim(ScriptState *script);
int o2_restoreInventoryGfx(ScriptState *script);
int o2_update(ScriptState *script);
int o2_fadeScenePal(ScriptState *script);
int o2_enterNewSceneEx(ScriptState *script);

View File

@ -593,6 +593,32 @@ int KyraEngine_v2::o2_restoreBackBuffer(ScriptState *script) {
return 0;
}
int KyraEngine_v2::o2_backUpInventoryGfx(ScriptState *script) {
debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v2::o2_backUpInventoryGfx(%p) ()", (const void *)script);
_screen->copyRegionToBuffer(1, 0, 144, 320, 56, _screenBuffer);
_inventorySaved = true;
return 0;
}
int KyraEngine_v2::o2_disableSceneAnim(ScriptState *script) {
debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v2::o2_disableSceneAnim(%p) (%d)", (const void *)script, stackPos(0));
_sceneAnims[stackPos(0)].flags &= ~1;
return 0;
}
int KyraEngine_v2::o2_enableSceneAnim(ScriptState *script) {
debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v2::o2_enableSceneAnim(%p) (%d)", (const void *)script, stackPos(0));
_sceneAnims[stackPos(0)].flags |= 1;
return 0;
}
int KyraEngine_v2::o2_restoreInventoryGfx(ScriptState *script) {
debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v2::o2_restoreInventoryGfx(%p) ()", (const void *)script);
_screen->copyBlockToPage(1, 0, 144, 320, 56, _screenBuffer);
_inventorySaved = false;
return 0;
}
int KyraEngine_v2::o2_update(ScriptState *script) {
debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v2::o2_update(%p) (%d)", (const void *)script, stackPos(0));
@ -1487,11 +1513,11 @@ void KyraEngine_v2::setupOpcodeTable() {
// 0x44
OpcodeUnImpl(),
Opcode(o2_restoreBackBuffer),
OpcodeUnImpl(),
OpcodeUnImpl(),
Opcode(o2_backUpInventoryGfx),
Opcode(o2_disableSceneAnim),
// 0x48
OpcodeUnImpl(),
OpcodeUnImpl(),
Opcode(o2_enableSceneAnim),
Opcode(o2_restoreInventoryGfx),
OpcodeUnImpl(),
Opcode(o2_update),
// 0x4c