diff options
author | Willem Jan Palenstijn | 2011-12-28 14:58:44 +0100 |
---|---|---|
committer | Willem Jan Palenstijn | 2011-12-28 15:19:59 +0100 |
commit | 4e207dbc7a374f47fd6c66e1a38e264e8787bd23 (patch) | |
tree | 367b3388ef61d7a5bccbc1f5f759ff085ae21fe7 | |
parent | 6e95c6d690cd2fc3e5e8de950ccab7be5e1f2794 (diff) | |
download | scummvm-rg350-4e207dbc7a374f47fd6c66e1a38e264e8787bd23.tar.gz scummvm-rg350-4e207dbc7a374f47fd6c66e1a38e264e8787bd23.tar.bz2 scummvm-rg350-4e207dbc7a374f47fd6c66e1a38e264e8787bd23.zip |
DREAMWEB: Clean up Sprite::_updateCallback
-rw-r--r-- | engines/dreamweb/backdrop.cpp | 2 | ||||
-rw-r--r-- | engines/dreamweb/dreamweb.h | 5 | ||||
-rw-r--r-- | engines/dreamweb/sprite.cpp | 12 | ||||
-rw-r--r-- | engines/dreamweb/structs.h | 2 |
4 files changed, 7 insertions, 14 deletions
diff --git a/engines/dreamweb/backdrop.cpp b/engines/dreamweb/backdrop.cpp index f2356eb0b0..9f47c72285 100644 --- a/engines/dreamweb/backdrop.cpp +++ b/engines/dreamweb/backdrop.cpp @@ -114,7 +114,7 @@ void DreamWebEngine::makeBackOb(SetObject *objData, uint16 x, uint16 y) { return; uint8 priority = objData->priority; uint8 type = objData->type; - Sprite *sprite = makeSprite(x, y, addr_backobject, &_setFrames, 0); + Sprite *sprite = makeSprite(x, y, false, &_setFrames, 0); sprite->_objData = objData; if (priority == 255) diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h index 9e1341bfa2..95f92960be 100644 --- a/engines/dreamweb/dreamweb.h +++ b/engines/dreamweb/dreamweb.h @@ -94,9 +94,6 @@ const unsigned int kNumexobjects = (114); const unsigned int kExtextlen = (18000); const unsigned int kExframeslen = (30000); const unsigned int kItempicsize = (44); -// These are for ReelRoutine::reelPointer, which is a callback field. -const uint16 addr_backobject = 0xc170; -const uint16 addr_mainman = 0xc138; // Keyboard buffer. data.word(kBufferin) and data.word(kBufferout) are indexes // into this, making it a ring buffer @@ -729,7 +726,7 @@ public: void printSprites(); void printASprite(const Sprite *sprite); void clearSprites(); - Sprite *makeSprite(uint8 x, uint8 y, uint16 updateCallback, const GraphicsFile *frameData, uint16 somethingInDi); + Sprite *makeSprite(uint8 x, uint8 y, bool _mainManCallback, const GraphicsFile *frameData, uint16 somethingInDi); void initMan(); void walking(Sprite *sprite); void aboutTurn(Sprite *sprite); diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp index 33dbc0f18b..97d8d72b1f 100644 --- a/engines/dreamweb/sprite.cpp +++ b/engines/dreamweb/sprite.cpp @@ -29,7 +29,6 @@ void DreamWebEngine::printSprites() { Common::List<Sprite>::const_iterator i; for (i = _spriteTable.begin(); i != _spriteTable.end(); ++i) { const Sprite &sprite = *i; - assert(sprite._updateCallback != 0x0ffff); if (priority != sprite.priority) continue; if (sprite.hidden == 1) @@ -65,7 +64,7 @@ void DreamWebEngine::clearSprites() { _spriteTable.clear(); } -Sprite *DreamWebEngine::makeSprite(uint8 x, uint8 y, uint16 updateCallback, const GraphicsFile *frameData, uint16 somethingInDi) { +Sprite *DreamWebEngine::makeSprite(uint8 x, uint8 y, bool mainManCallback, const GraphicsFile *frameData, uint16 somethingInDi) { // Note: the original didn't append sprites here, but filled up the // first unused entry. This can change the order of entries, but since they // are drawn based on the priority field, this shouldn't matter. @@ -74,7 +73,7 @@ Sprite *DreamWebEngine::makeSprite(uint8 x, uint8 y, uint16 updateCallback, cons memset(sprite, 0xff, sizeof(Sprite)); - sprite->_updateCallback = updateCallback; + sprite->_mainManCallback = mainManCallback; sprite->x = x; sprite->y = y; sprite->_frameData = frameData; @@ -94,13 +93,10 @@ void DreamWebEngine::spriteUpdate() { Common::List<Sprite>::iterator i; for (i = _spriteTable.begin(); i != _spriteTable.end(); ++i) { Sprite &sprite = *i; - assert(sprite._updateCallback != 0xffff); - sprite.w24 = sprite.w2; - if (sprite._updateCallback == addr_mainman) // NB : Let's consider the callback as an enum while more code is not ported to C++ + if (sprite._mainManCallback) mainMan(&sprite); else { - assert(sprite._updateCallback == addr_backobject); backObject(&sprite); } @@ -110,7 +106,7 @@ void DreamWebEngine::spriteUpdate() { } void DreamWebEngine::initMan() { - Sprite *sprite = makeSprite(_ryanX, _ryanY, addr_mainman, &_mainSprites, 0); + Sprite *sprite = makeSprite(_ryanX, _ryanY, true, &_mainSprites, 0); sprite->priority = 4; sprite->speed = 0; sprite->walkFrame = 0; diff --git a/engines/dreamweb/structs.h b/engines/dreamweb/structs.h index 08aa9048b4..55ed7bf3df 100644 --- a/engines/dreamweb/structs.h +++ b/engines/dreamweb/structs.h @@ -32,7 +32,7 @@ struct GraphicsFile; struct SetObject; struct Sprite { - uint16 _updateCallback; + bool _mainManCallback; uint16 w2; uint16 w4; const GraphicsFile *_frameData; |