From d66bfb131caa1ef3eb57c7cf98d423444eaecb66 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Sun, 8 Jan 2012 23:00:41 +0100 Subject: KYRA: Cleanup v2 item animation a little bit. --- engines/kyra/animator_hof.cpp | 11 +++++------ engines/kyra/animator_mr.cpp | 9 ++++----- engines/kyra/kyra_hof.cpp | 6 +++--- engines/kyra/kyra_hof.h | 4 ++-- engines/kyra/kyra_mr.h | 2 +- engines/kyra/kyra_v2.h | 4 ++-- engines/kyra/resource.h | 8 ++++---- engines/kyra/sequences_hof.cpp | 2 +- engines/kyra/staticres.cpp | 18 +++++++++--------- 9 files changed, 31 insertions(+), 33 deletions(-) (limited to 'engines/kyra') diff --git a/engines/kyra/animator_hof.cpp b/engines/kyra/animator_hof.cpp index 741e358143..5a2378f4d0 100644 --- a/engines/kyra/animator_hof.cpp +++ b/engines/kyra/animator_hof.cpp @@ -115,15 +115,14 @@ void KyraEngine_HoF::refreshAnimObjects(int force) { void KyraEngine_HoF::updateItemAnimations() { bool nextFrame = false; - if (_itemAnimData[0].itemIndex == -1 || _inventorySaved) + if (_itemAnimDefinition[0].itemIndex == -1 || _inventorySaved) return; - const ItemAnimData_v2 *s = &_itemAnimData[_nextAnimItem]; + const ItemAnimDefinition *s = &_itemAnimDefinition[_nextAnimItem]; ActiveItemAnim *a = &_activeItemAnim[_nextAnimItem]; - _nextAnimItem = (_nextAnimItem + 1) % _itemAnimDataSize; + _nextAnimItem = (_nextAnimItem + 1) % _itemAnimDefinitionSize; - uint32 ctime = _system->getMillis(); - if (ctime < a->nextFrame) + if (_system->getMillis() < a->nextFrameTime) return; uint16 shpIdx = s->frames[a->currentFrame].index + 64; @@ -164,7 +163,7 @@ void KyraEngine_HoF::updateItemAnimations() { } if (nextFrame) { - a->nextFrame = _system->getMillis() + (s->frames[a->currentFrame].delay * _tickLength); + a->nextFrameTime = _system->getMillis() + (s->frames[a->currentFrame].delay * _tickLength); a->currentFrame = (a->currentFrame + 1) % s->numFrames; } } diff --git a/engines/kyra/animator_mr.cpp b/engines/kyra/animator_mr.cpp index 31c5cd1a53..29fa3aba80 100644 --- a/engines/kyra/animator_mr.cpp +++ b/engines/kyra/animator_mr.cpp @@ -187,15 +187,14 @@ void KyraEngine_MR::refreshAnimObjects(int force) { void KyraEngine_MR::updateItemAnimations() { bool nextFrame = false; - if (_itemAnimData[0].itemIndex == -1) + if (_itemAnimDefinition[0].itemIndex == -1) return; - const ItemAnimData_v2 *s = &_itemAnimData[_nextAnimItem]; + const ItemAnimDefinition *s = &_itemAnimDefinition[_nextAnimItem]; ActiveItemAnim *a = &_activeItemAnim[_nextAnimItem]; _nextAnimItem = (_nextAnimItem + 1) % 10; - uint32 ctime = _system->getMillis(); - if (ctime < a->nextFrame) + if (_system->getMillis() < a->nextFrameTime) return; uint16 shpIdx = s->frames[a->currentFrame].index + 248; @@ -230,7 +229,7 @@ void KyraEngine_MR::updateItemAnimations() { } if (nextFrame) { - a->nextFrame = _system->getMillis() + (s->frames[a->currentFrame].delay * _tickLength); + a->nextFrameTime = _system->getMillis() + (s->frames[a->currentFrame].delay * _tickLength); a->currentFrame = (a->currentFrame + 1) % s->numFrames; } } diff --git a/engines/kyra/kyra_hof.cpp b/engines/kyra/kyra_hof.cpp index c3c4e6083c..fd2c1870a8 100644 --- a/engines/kyra/kyra_hof.cpp +++ b/engines/kyra/kyra_hof.cpp @@ -88,7 +88,7 @@ KyraEngine_HoF::KyraEngine_HoF(OSystem *system, const GameFlags &flags) : KyraEn _currentTalkSections.ENDTim = 0; memset(&_invWsa, 0, sizeof(_invWsa)); - _itemAnimData = 0; + _itemAnimDefinition = 0; _demoAnimData = 0; _nextAnimItem = 0; @@ -211,8 +211,8 @@ void KyraEngine_HoF::pauseEngineIntern(bool pause) { _nextIdleAnim += pausedTime; - for (int x = 0; x < _itemAnimDataSize; x++) - _activeItemAnim[x].nextFrame += pausedTime; + for (int x = 0; x < _itemAnimDefinitionSize; x++) + _activeItemAnim[x].nextFrameTime += pausedTime; _tim->refreshTimersAfterPause(pausedTime); } diff --git a/engines/kyra/kyra_hof.h b/engines/kyra/kyra_hof.h index 4b8303b2e4..320f930b56 100644 --- a/engines/kyra/kyra_hof.h +++ b/engines/kyra/kyra_hof.h @@ -874,8 +874,8 @@ protected: const char * const *_ingameTimJpStr; int _ingameTimJpStrSize; const HofSeqData *_sequences; - const ItemAnimData_v2 *_itemAnimData; - int _itemAnimDataSize; + const ItemAnimDefinition *_itemAnimDefinition; + int _itemAnimDefinitionSize; const ItemAnimData_v1 *_demoAnimData; int _demoAnimSize; diff --git a/engines/kyra/kyra_mr.h b/engines/kyra/kyra_mr.h index 38ff271037..7c022534a2 100644 --- a/engines/kyra/kyra_mr.h +++ b/engines/kyra/kyra_mr.h @@ -219,7 +219,7 @@ private: bool _nextIdleType; void showIdleAnim(); - const ItemAnimData_v2 *_itemAnimData; + const ItemAnimDefinition *_itemAnimDefinition; ActiveItemAnim _activeItemAnim[10]; int _nextAnimItem; diff --git a/engines/kyra/kyra_v2.h b/engines/kyra/kyra_v2.h index 3d7b9c4997..72d743710d 100644 --- a/engines/kyra/kyra_v2.h +++ b/engines/kyra/kyra_v2.h @@ -38,7 +38,7 @@ struct FrameControl { uint16 delay; }; -struct ItemAnimData_v2 { +struct ItemAnimDefinition { Item itemIndex; uint8 numFrames; const FrameControl *frames; @@ -46,7 +46,7 @@ struct ItemAnimData_v2 { struct ActiveItemAnim { uint16 currentFrame; - uint32 nextFrame; + uint32 nextFrameTime; }; class Screen_v2; diff --git a/engines/kyra/resource.h b/engines/kyra/resource.h index 5b0af9840d..5de1577943 100644 --- a/engines/kyra/resource.h +++ b/engines/kyra/resource.h @@ -744,7 +744,7 @@ public: const Room *loadRoomTable(int id, int &entries); const HofSeqData *loadHofSequenceData(int id, int &entries); const ItemAnimData_v1 *loadShapeAnimData_v1(int id, int &entries); - const ItemAnimData_v2 *loadShapeAnimData_v2(int id, int &entries); + const ItemAnimDefinition *loadItemAnimDefinition(int id, int &entries); #if defined(ENABLE_EOB) || defined(ENABLE_LOL) const uint16 *loadRawDataBe16(int id, int &entries); const uint32 *loadRawDataBe32(int id, int &entries); @@ -787,7 +787,7 @@ private: bool loadRoomTable(Common::SeekableReadStream &stream, void *&ptr, int &size); bool loadHofSequenceData(Common::SeekableReadStream &stream, void *&ptr, int &size); bool loadShapeAnimData_v1(Common::SeekableReadStream &stream, void *&ptr, int &size); - bool loadShapeAnimData_v2(Common::SeekableReadStream &stream, void *&ptr, int &size); + bool loadItemAnimDefinition(Common::SeekableReadStream &stream, void *&ptr, int &size); #if defined(ENABLE_EOB) || defined(ENABLE_LOL) bool loadRawDataBe16(Common::SeekableReadStream &stream, void *&ptr, int &size); bool loadRawDataBe32(Common::SeekableReadStream &stream, void *&ptr, int &size); @@ -813,7 +813,7 @@ private: void freeRoomTable(void *&ptr, int &size); void freeHofSequenceData(void *&ptr, int &size); void freeHofShapeAnimDataV1(void *&ptr, int &size); - void freeHofShapeAnimDataV2(void *&ptr, int &size); + void freeItemAnimDefinition(void *&ptr, int &size); #if defined(ENABLE_EOB) || defined(ENABLE_LOL) void freeRawDataBe16(void *&ptr, int &size); void freeRawDataBe32(void *&ptr, int &size); @@ -840,7 +840,7 @@ private: k2SeqData = 5, k2ShpAnimDataV1 = 6, - k2ShpAnimDataV2 = 7, + k2ItemAnimDefinition = 7, kLoLCharData = 8, kLoLSpellData = 9, diff --git a/engines/kyra/sequences_hof.cpp b/engines/kyra/sequences_hof.cpp index b27f0df137..2e5e20c02f 100644 --- a/engines/kyra/sequences_hof.cpp +++ b/engines/kyra/sequences_hof.cpp @@ -2773,7 +2773,7 @@ void KyraEngine_HoF::seq_init() { return; if (_flags.isDemo && !_flags.isTalkie) { - _demoAnimData = _staticres->loadShapeAnimData_v1(k2SeqplayShapeAnimData, _itemAnimDataSize); + _demoAnimData = _staticres->loadShapeAnimData_v1(k2SeqplayShapeAnimData, _itemAnimDefinitionSize); uint8 *shp = _res->fileData("icons.shp", 0); uint32 outsize = READ_LE_UINT16(shp + 4); _animShapeFiledata = new uint8[outsize]; diff --git a/engines/kyra/staticres.cpp b/engines/kyra/staticres.cpp index 6c95451c5f..99ad6ea7aa 100644 --- a/engines/kyra/staticres.cpp +++ b/engines/kyra/staticres.cpp @@ -247,7 +247,7 @@ bool StaticResource::init() { { k2SeqData, proc(loadHofSequenceData), proc(freeHofSequenceData) }, { k2ShpAnimDataV1, proc(loadShapeAnimData_v1), proc(freeHofShapeAnimDataV1) }, - { k2ShpAnimDataV2, proc(loadShapeAnimData_v2), proc(freeHofShapeAnimDataV2) }, + { k2ItemAnimDefinition, proc(loadItemAnimDefinition), proc(freeItemAnimDefinition) }, #ifdef ENABLE_LOL { kLoLCharData, proc(loadCharData), proc(freeCharData) }, @@ -316,8 +316,8 @@ const ItemAnimData_v1 *StaticResource::loadShapeAnimData_v1(int id, int &entries return (const ItemAnimData_v1 *)getData(id, k2ShpAnimDataV1, entries); } -const ItemAnimData_v2 *StaticResource::loadShapeAnimData_v2(int id, int &entries) { - return (const ItemAnimData_v2 *)getData(id, k2ShpAnimDataV2, entries); +const ItemAnimDefinition *StaticResource::loadItemAnimDefinition(int id, int &entries) { + return (const ItemAnimDefinition *)getData(id, k2ItemAnimDefinition, entries); } bool StaticResource::prefetchId(int id) { @@ -610,9 +610,9 @@ bool StaticResource::loadShapeAnimData_v1(Common::SeekableReadStream &stream, vo return true; } -bool StaticResource::loadShapeAnimData_v2(Common::SeekableReadStream &stream, void *&ptr, int &size) { +bool StaticResource::loadItemAnimDefinition(Common::SeekableReadStream &stream, void *&ptr, int &size) { size = stream.readByte(); - ItemAnimData_v2 *loadTo = new ItemAnimData_v2[size]; + ItemAnimDefinition *loadTo = new ItemAnimDefinition[size]; assert(loadTo); for (int i = 0; i < size; i++) { @@ -699,8 +699,8 @@ void StaticResource::freeHofShapeAnimDataV1(void *&ptr, int &size) { size = 0; } -void StaticResource::freeHofShapeAnimDataV2(void *&ptr, int &size) { - ItemAnimData_v2 *d = (ItemAnimData_v2 *)ptr; +void StaticResource::freeItemAnimDefinition(void *&ptr, int &size) { + ItemAnimDefinition *d = (ItemAnimDefinition *)ptr; for (int i = 0; i < size; i++) delete[] d[i].frames; delete[] d; @@ -1007,7 +1007,7 @@ void KyraEngine_HoF::initStaticResource() { _cdaTrackTableFinale = _staticres->loadRawData(k2SeqplayFinaleCDA, _cdaTrackTableFinaleSize); _ingameTalkObjIndex = (const uint16 *)_staticres->loadRawData(k2IngameTalkObjIndex, _ingameTalkObjIndexSize); _ingameTimJpStr = _staticres->loadStrings(k2IngameTimJpStrings, _ingameTimJpStrSize); - _itemAnimData = _staticres->loadShapeAnimData_v2(k2IngameShapeAnimData, _itemAnimDataSize); + _itemAnimDefinition = _staticres->loadItemAnimDefinition(k2IngameShapeAnimData, _itemAnimDefinitionSize); // replace sequence talkie files with localized versions const char *const *seqSoundList = _staticres->loadStrings(k2SeqplaySfxFiles, _sequenceSoundListSize); @@ -1143,7 +1143,7 @@ void KyraEngine_MR::initStaticResource() { _scoreTable = _staticres->loadRawData(k3ScoreTable, _scoreTableSize); _sfxFileList = _staticres->loadStrings(k3SfxFiles, _sfxFileListSize); _sfxFileMap = _staticres->loadRawData(k3SfxMap, _sfxFileMapSize); - _itemAnimData = _staticres->loadShapeAnimData_v2(k3ItemAnimData, tmp); + _itemAnimDefinition = _staticres->loadItemAnimDefinition(k3ItemAnimData, tmp); _itemMagicTable = _staticres->loadRawData(k3ItemMagicTable, tmp); _itemStringMap = _staticres->loadRawData(k3ItemStringMap, _itemStringMapSize); } -- cgit v1.2.3