aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/dreamweb/backdrop.cpp2
-rw-r--r--engines/dreamweb/dreamweb.h5
-rw-r--r--engines/dreamweb/sprite.cpp12
-rw-r--r--engines/dreamweb/structs.h2
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;