diff options
author | Sven Hesse | 2006-02-21 14:22:25 +0000 |
---|---|---|
committer | Sven Hesse | 2006-02-21 14:22:25 +0000 |
commit | 08a57f08376cffd5007f216917969bef48a343bb (patch) | |
tree | d902f0fb62390a01bddf964d36a5b4f12767af83 /engines/gob/mult.cpp | |
parent | c5cf806f8276786017bd69e61a2db1c014ec52ce (diff) | |
download | scummvm-rg350-08a57f08376cffd5007f216917969bef48a343bb.tar.gz scummvm-rg350-08a57f08376cffd5007f216917969bef48a343bb.tar.bz2 scummvm-rg350-08a57f08376cffd5007f216917969bef48a343bb.zip |
More GOB2 changes (Mult::loadMult()) + correcting some mistakes I made
svn-id: r20806
Diffstat (limited to 'engines/gob/mult.cpp')
-rw-r--r-- | engines/gob/mult.cpp | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/engines/gob/mult.cpp b/engines/gob/mult.cpp index 25e8a15079..3f6706081c 100644 --- a/engines/gob/mult.cpp +++ b/engines/gob/mult.cpp @@ -908,170 +908,6 @@ void Mult::zeroMultData(void) { _multData = 0; } -void Mult::loadMult(int16 resId) { - char animCount; - char staticCount; - int16 palIndex; - int16 i, j; - - _sndSlotsCount = 0; - _frameStart = 0; - _multData = _vm->_game->loadExtData(resId, 0, 0); - _dataPtr = _multData; - - staticCount = _dataPtr[0]; - animCount = _dataPtr[1]; - _dataPtr += 2; - staticCount++; - animCount++; - - for (i = 0; i < staticCount; i++, _dataPtr += 14) { - _staticIndices[i] = _vm->_scenery->loadStatic(1); - - if (_staticIndices[i] >= 100) { - _staticIndices[i] -= 100; - _staticLoaded[i] = 1; - } else { - _staticLoaded[i] = 0; - } - } - - for (i = 0; i < animCount; i++, _dataPtr += 14) { - _animIndices[i] = _vm->_scenery->loadAnim(1); - - if (_animIndices[i] >= 100) { - _animIndices[i] -= 100; - _animLoaded[i] = 1; - } else { - _animLoaded[i] = 0; - } - } - - _frameRate = READ_LE_UINT16(_dataPtr); - _dataPtr += 2; - - _staticKeysCount = READ_LE_UINT16(_dataPtr); - _dataPtr += 2; - - _staticKeys = new Mult_StaticKey[_staticKeysCount]; - for (i = 0; i < _staticKeysCount; i++, _dataPtr += 4) { - _staticKeys[i].frame = (int16)READ_LE_UINT16(_dataPtr); - _staticKeys[i].layer = (int16)READ_LE_UINT16(_dataPtr + 2); - } - - for (j = 0; j < 4; j++) { - _animKeysCount[j] = READ_LE_UINT16(_dataPtr); - _dataPtr += 2; - - _animKeys[j] = new Mult_AnimKey[_animKeysCount[j]]; - for (i = 0; i < _animKeysCount[j]; i++, _dataPtr += 10) { - _animKeys[j][i].frame = (int16)READ_LE_UINT16(_dataPtr); - _animKeys[j][i].layer = (int16)READ_LE_UINT16(_dataPtr + 2); - _animKeys[j][i].posX = (int16)READ_LE_UINT16(_dataPtr + 4); - _animKeys[j][i].posY = (int16)READ_LE_UINT16(_dataPtr + 6); - _animKeys[j][i].order = (int16)READ_LE_UINT16(_dataPtr + 8); - } - } - - for (palIndex = 0; palIndex < 5; palIndex++) { - for (i = 0; i < 16; i++) { - _fadePal[palIndex][i].red = _dataPtr[0]; - _fadePal[palIndex][i].green = _dataPtr[1]; - _fadePal[palIndex][i].blue = _dataPtr[2]; - _dataPtr += 3; - } - } - - _palFadeKeysCount = READ_LE_UINT16(_dataPtr); - _dataPtr += 2; - _palFadeKeys = new Mult_PalFadeKey[_palFadeKeysCount]; - - for (i = 0; i < _palFadeKeysCount; i++, _dataPtr += 7) { - _palFadeKeys[i].frame = (int16)READ_LE_UINT16(_dataPtr); - _palFadeKeys[i].fade = (int16)READ_LE_UINT16(_dataPtr + 2); - _palFadeKeys[i].palIndex = (int16)READ_LE_UINT16(_dataPtr + 4); - _palFadeKeys[i].flag = *(_dataPtr + 6); - } - - _palKeysCount = READ_LE_UINT16(_dataPtr); - _dataPtr += 2; - - _palKeys = new Mult_PalKey[_palKeysCount]; - for (i = 0; i < _palKeysCount; i++, _dataPtr += 80) { - _palKeys[i].frame = (int16)READ_LE_UINT16(_dataPtr); - _palKeys[i].cmd = (int16)READ_LE_UINT16(_dataPtr + 2); - _palKeys[i].rates[0] = (int16)READ_LE_UINT16(_dataPtr + 4); - _palKeys[i].rates[1] = (int16)READ_LE_UINT16(_dataPtr + 6); - _palKeys[i].rates[2] = (int16)READ_LE_UINT16(_dataPtr + 8); - _palKeys[i].rates[3] = (int16)READ_LE_UINT16(_dataPtr + 10); - _palKeys[i].unknown0 = (int16)READ_LE_UINT16(_dataPtr + 12); - _palKeys[i].unknown1 = (int16)READ_LE_UINT16(_dataPtr + 14); - memcpy(_palKeys[i].subst, _dataPtr + 16, 64); - } - - _textKeysCount = READ_LE_UINT16(_dataPtr); - _dataPtr += 2; - _textKeys = new Mult_TextKey[_textKeysCount]; - - for (i = 0; i < _textKeysCount; i++, _dataPtr += 28) { - _textKeys[i].frame = (int16)READ_LE_UINT16(_dataPtr); - _textKeys[i].cmd = (int16)READ_LE_UINT16(_dataPtr + 2); - for (int k = 0; k < 9; ++k) - _textKeys[i].unknown0[k] = (int16)READ_LE_UINT16(_dataPtr + 4 + (k * 2)); - _textKeys[i].index = (int16)READ_LE_UINT16(_dataPtr + 22); - _textKeys[i].unknown1[0] = (int16)READ_LE_UINT16(_dataPtr + 24); - _textKeys[i].unknown1[1] = (int16)READ_LE_UINT16(_dataPtr + 26); - } - - _sndKeysCount = READ_LE_UINT16(_dataPtr); - _dataPtr += 2; - - _sndKeys = new Mult_SndKey[_sndKeysCount]; - for (i = 0; i < _sndKeysCount; i++) { - _sndKeys[i].frame = (int16)READ_LE_UINT16(_dataPtr); - _sndKeys[i].cmd = (int16)READ_LE_UINT16(_dataPtr + 2); - _sndKeys[i].freq = (int16)READ_LE_UINT16(_dataPtr + 4); - _sndKeys[i].channel = (int16)READ_LE_UINT16(_dataPtr + 6); - _sndKeys[i].repCount = (int16)READ_LE_UINT16(_dataPtr + 8); - _sndKeys[i].resId = (int16)READ_LE_UINT16(_dataPtr + 10); - _sndKeys[i].soundIndex = (int16)READ_LE_UINT16(_dataPtr + 12); - - _sndKeys[i].soundIndex = -1; - _sndKeys[i].resId = -1; - _dataPtr += 36; - switch (_sndKeys[i].cmd) { - case 1: - case 4: - _sndKeys[i].resId = READ_LE_UINT16(_vm->_global->_inter_execPtr); - - for (j = 0; j < i; j++) { - if (_sndKeys[i].resId == - _sndKeys[j].resId) { - _sndKeys[i].soundIndex = - _sndKeys[j].soundIndex; - _vm->_global->_inter_execPtr += 2; - break; - } - } - if (i == j) { - _vm->_game->interLoadSound(19 - _sndSlotsCount); - _sndKeys[i].soundIndex = - 19 - _sndSlotsCount; - _sndSlotsCount++; - } - break; - - case 3: - _vm->_global->_inter_execPtr += 6; - break; - - case 5: - _vm->_global->_inter_execPtr += _sndKeys[i].freq * 2; - break; - } - } -} - void Mult::freeMultKeys(void) { int i; char animCount; |