[Scummvm-cvs-logs] SF.net SVN: scummvm: [31738] scummvm/trunk/engines/kyra
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Sun Apr 27 00:22:21 CEST 2008
Revision: 31738
http://scummvm.svn.sourceforge.net/scummvm/?rev=31738&view=rev
Author: lordhoto
Date: 2008-04-26 15:22:21 -0700 (Sat, 26 Apr 2008)
Log Message:
-----------
Implemented opcode 129 o3_chapterChange.
Modified Paths:
--------------
scummvm/trunk/engines/kyra/kyra_v3.cpp
scummvm/trunk/engines/kyra/kyra_v3.h
scummvm/trunk/engines/kyra/script_v3.cpp
Modified: scummvm/trunk/engines/kyra/kyra_v3.cpp
===================================================================
--- scummvm/trunk/engines/kyra/kyra_v3.cpp 2008-04-26 22:13:19 UTC (rev 31737)
+++ scummvm/trunk/engines/kyra/kyra_v3.cpp 2008-04-26 22:22:21 UTC (rev 31738)
@@ -1678,6 +1678,25 @@
#pragma mark -
+void KyraEngine_v3::changeChapter(int newChapter, int sceneId, int malcolmShapes, int facing) {
+ debugC(9, kDebugLevelMain, "KyraEngine_v3::changeChapter(%d, %d, %d, %d)", newChapter, sceneId, malcolmShapes, facing);
+ resetItemList();
+
+ _curChapter = newChapter;
+ runStartupScript(newChapter, 0);
+ _mainCharacter.dlgIndex = 0;
+
+ _malcolmsMood = 1;
+ memset(_newSceneDlgState, 0, sizeof(_newSceneDlgState));
+
+ if (malcolmShapes >= 0)
+ loadMalcolmShapes(malcolmShapes);
+
+ enterNewScene(sceneId, facing, 0, 0, 0);
+}
+
+#pragma mark -
+
Movie *KyraEngine_v3::createWSAMovie() {
WSAMovieV2 *movie = new WSAMovieV2(this, _screen);
assert(movie);
Modified: scummvm/trunk/engines/kyra/kyra_v3.h
===================================================================
--- scummvm/trunk/engines/kyra/kyra_v3.h 2008-04-26 22:13:19 UTC (rev 31737)
+++ scummvm/trunk/engines/kyra/kyra_v3.h 2008-04-26 22:22:21 UTC (rev 31738)
@@ -662,7 +662,9 @@
uint8 *_screenBuffer;
uint8 *_paletteOverlay;
bool _useActorBuffer;
+
int _curChapter;
+ void changeChapter(int newChapter, int sceneId, int malcolmShapes, int facing);
static const uint8 _chapterLowestScene[];
@@ -760,6 +762,7 @@
int o3_setDlgIndex(ScriptState *script);
int o3_getDlgIndex(ScriptState *script);
int o3_defineScene(ScriptState *script);
+ int o3_changeChapter(ScriptState *script);
int o3_countItemInstances(ScriptState *script);
int o3_dialogStartScript(ScriptState *script);
int o3_dialogEndScript(ScriptState *script);
Modified: scummvm/trunk/engines/kyra/script_v3.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_v3.cpp 2008-04-26 22:13:19 UTC (rev 31737)
+++ scummvm/trunk/engines/kyra/script_v3.cpp 2008-04-26 22:22:21 UTC (rev 31738)
@@ -1041,6 +1041,12 @@
return 0;
}
+int KyraEngine_v3::o3_changeChapter(ScriptState *script) {
+ debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_changeChapter(%p) (%d, %d, %d, %d)", (const void *)script, stackPos(0), stackPos(1), stackPos(2), stackPos(3));
+ changeChapter(stackPos(0), stackPos(1), stackPos(2), stackPos(3));
+ return 0;
+}
+
int KyraEngine_v3::o3_countItemInstances(ScriptState *script) {
debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_countItemInstances(%p) (%d)", (const void *)script, stackPos(0));
int count = 0;
@@ -1406,7 +1412,7 @@
Opcode(o3_dummy);
// 0x80
Opcode(o3_dummy);
- OpcodeUnImpl();
+ Opcode(o3_changeChapter);
Opcode(o3_dummy);
Opcode(o3_dummy);
// 0x84
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list