aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra
diff options
context:
space:
mode:
authorJohannes Schickel2008-04-27 12:40:56 +0000
committerJohannes Schickel2008-04-27 12:40:56 +0000
commit7eef01cec48ac26d406a73a431120e56d919f63b (patch)
tree5cd0d6b19a5eb4a41ee06b09a6366185d14df482 /engines/kyra
parent1aac349da42f0a4c21204d2fc88041c4b63aa3c9 (diff)
downloadscummvm-rg350-7eef01cec48ac26d406a73a431120e56d919f63b.tar.gz
scummvm-rg350-7eef01cec48ac26d406a73a431120e56d919f63b.tar.bz2
scummvm-rg350-7eef01cec48ac26d406a73a431120e56d919f63b.zip
Moved newShape code to sequences_v3.cpp
svn-id: r31752
Diffstat (limited to 'engines/kyra')
-rw-r--r--engines/kyra/animator_v3.cpp73
-rw-r--r--engines/kyra/sequences_v3.cpp76
2 files changed, 76 insertions, 73 deletions
diff --git a/engines/kyra/animator_v3.cpp b/engines/kyra/animator_v3.cpp
index 078b914e86..07a3713908 100644
--- a/engines/kyra/animator_v3.cpp
+++ b/engines/kyra/animator_v3.cpp
@@ -532,79 +532,6 @@ void KyraEngine_v3::showIdleAnim() {
_nextIdleType = !_nextIdleType;
}
-int KyraEngine_v3::initNewShapes(uint8 *filedata) {
- debugC(9, kDebugLevelAnimator, "KyraEngine_v3::initNewShapes(%p)", (const void*)filedata);
- const int lastEntry = MIN(_newShapeLastEntry, 41);
- for (int i = 0; i < lastEntry; ++i)
- _gameShapes[9+i] = _screen->getPtrToShape(filedata, i);
- return lastEntry;
-}
-
-void KyraEngine_v3::processNewShapes(int allowSkip, int resetChar) {
- debugC(9, kDebugLevelAnimator, "KyraEngine_v3::processNewShapes(%d, %d)", allowSkip, resetChar);
- setCharacterAnimDim(_newShapeWidth, _newShapeHeight);
-
- _scriptInterpreter->initScript(&_temporaryScriptState, &_temporaryScriptData);
- _scriptInterpreter->startScript(&_temporaryScriptState, 1);
-
- resetSkipFlag();
-
- while (_scriptInterpreter->validScript(&_temporaryScriptState)) {
- _temporaryScriptExecBit = false;
- while (_scriptInterpreter->validScript(&_temporaryScriptState) && !_temporaryScriptExecBit)
- _scriptInterpreter->runScript(&_temporaryScriptState);
-
- if (_newShapeAnimFrame < 0)
- continue;
-
- _mainCharacter.animFrame = _newShapeAnimFrame + 9;
- updateCharacterAnim(0);
- if (_chatText)
- updateWithText();
- else
- update();
-
- uint32 delayEnd = _system->getMillis() + _newShapeDelay * _tickLength;
-
- while ((!skipFlag() || !allowSkip) && _system->getMillis() < delayEnd) {
- if (_chatText)
- updateWithText();
- else
- update();
-
- delay(10);
- }
-
- if (skipFlag())
- resetSkipFlag();
- }
-
- if (resetChar) {
- if (_newShapeFlag >= 0) {
- _mainCharacter.animFrame = _newShapeFlag + 9;
- updateCharacterAnim(0);
- if (_chatText)
- updateWithText();
- else
- update();
- }
-
- _mainCharacter.animFrame = _characterFrameTable[_mainCharacter.facing];
- updateCharacterAnim(0);
- }
-
- _newShapeFlag = -1;
- resetCharacterAnimDim();
-}
-
-void KyraEngine_v3::resetNewShapes(int count, uint8 *filedata) {
- debugC(9, kDebugLevelAnimator, "KyraEngine_v3::resetNewShapes(%d, %p)", count, (const void*)filedata);
- for (int i = 0; i < count; ++i)
- _gameShapes[9+i] = 0;
- delete [] filedata;
- setNextIdleAnimTimer();
-}
-
void KyraEngine_v3::addItemToAnimList(int item) {
debugC(9, kDebugLevelAnimator, "KyraEngine_v3::addItemToAnimList(%d)", item);
restorePage3();
diff --git a/engines/kyra/sequences_v3.cpp b/engines/kyra/sequences_v3.cpp
index d697da60db..0c833b1b3a 100644
--- a/engines/kyra/sequences_v3.cpp
+++ b/engines/kyra/sequences_v3.cpp
@@ -169,6 +169,9 @@ void KyraEngine_v3::eelScript() {
objectChat((const char*)getTableEntry(_cCodeFile, 35), 0, 204, 35);
objectChat((const char*)getTableEntry(_cCodeFile, 40), 0, 204, 40);
+
+ setGameFlag(0xD1);
+
playSoundEffect(0x2A, 0xC8);
setGameFlag(0x171);
@@ -200,5 +203,78 @@ void KyraEngine_v3::eelScript() {
_screen->showMouse();
}
+int KyraEngine_v3::initNewShapes(uint8 *filedata) {
+ debugC(9, kDebugLevelAnimator, "KyraEngine_v3::initNewShapes(%p)", (const void*)filedata);
+ const int lastEntry = MIN(_newShapeLastEntry, 41);
+ for (int i = 0; i < lastEntry; ++i)
+ _gameShapes[9+i] = _screen->getPtrToShape(filedata, i);
+ return lastEntry;
+}
+
+void KyraEngine_v3::processNewShapes(int allowSkip, int resetChar) {
+ debugC(9, kDebugLevelAnimator, "KyraEngine_v3::processNewShapes(%d, %d)", allowSkip, resetChar);
+ setCharacterAnimDim(_newShapeWidth, _newShapeHeight);
+
+ _scriptInterpreter->initScript(&_temporaryScriptState, &_temporaryScriptData);
+ _scriptInterpreter->startScript(&_temporaryScriptState, 1);
+
+ resetSkipFlag();
+
+ while (_scriptInterpreter->validScript(&_temporaryScriptState)) {
+ _temporaryScriptExecBit = false;
+ while (_scriptInterpreter->validScript(&_temporaryScriptState) && !_temporaryScriptExecBit)
+ _scriptInterpreter->runScript(&_temporaryScriptState);
+
+ if (_newShapeAnimFrame < 0)
+ continue;
+
+ _mainCharacter.animFrame = _newShapeAnimFrame + 9;
+ updateCharacterAnim(0);
+ if (_chatText)
+ updateWithText();
+ else
+ update();
+
+ uint32 delayEnd = _system->getMillis() + _newShapeDelay * _tickLength;
+
+ while ((!skipFlag() || !allowSkip) && _system->getMillis() < delayEnd) {
+ if (_chatText)
+ updateWithText();
+ else
+ update();
+
+ delay(10);
+ }
+
+ if (skipFlag())
+ resetSkipFlag();
+ }
+
+ if (resetChar) {
+ if (_newShapeFlag >= 0) {
+ _mainCharacter.animFrame = _newShapeFlag + 9;
+ updateCharacterAnim(0);
+ if (_chatText)
+ updateWithText();
+ else
+ update();
+ }
+
+ _mainCharacter.animFrame = _characterFrameTable[_mainCharacter.facing];
+ updateCharacterAnim(0);
+ }
+
+ _newShapeFlag = -1;
+ resetCharacterAnimDim();
+}
+
+void KyraEngine_v3::resetNewShapes(int count, uint8 *filedata) {
+ debugC(9, kDebugLevelAnimator, "KyraEngine_v3::resetNewShapes(%d, %p)", count, (const void*)filedata);
+ for (int i = 0; i < count; ++i)
+ _gameShapes[9+i] = 0;
+ delete [] filedata;
+ setNextIdleAnimTimer();
+}
+
} // end of namespace Kyra