diff options
author | Max Horn | 2004-01-11 21:48:31 +0000 |
---|---|---|
committer | Max Horn | 2004-01-11 21:48:31 +0000 |
commit | c1f34030f9a0ded0ad4a7848121a73f82a69f333 (patch) | |
tree | 77fea07a98767fa797c3b8978a1cae1e6a9a5612 | |
parent | 7237b6a2ec6a83d2a421d8c990848dbadaa947f9 (diff) | |
download | scummvm-rg350-c1f34030f9a0ded0ad4a7848121a73f82a69f333.tar.gz scummvm-rg350-c1f34030f9a0ded0ad4a7848121a73f82a69f333.tar.bz2 scummvm-rg350-c1f34030f9a0ded0ad4a7848121a73f82a69f333.zip |
cleanup
svn-id: r12327
-rw-r--r-- | scumm/object.cpp | 21 | ||||
-rw-r--r-- | scumm/script_v6.cpp | 14 | ||||
-rw-r--r-- | scumm/script_v8.cpp | 7 |
3 files changed, 25 insertions, 17 deletions
diff --git a/scumm/object.cpp b/scumm/object.cpp index d7ea606902..56e4b49eaf 100644 --- a/scumm/object.cpp +++ b/scumm/object.cpp @@ -413,6 +413,7 @@ void ScummEngine::drawObject(int obj, int arg) { width = od.width / 8; height = od.height &= 0xFFFFFFF8; // Mask out last 3 bits + // Short circuit for objects which aren't visible at all. if (width == 0 || xpos > _screenEndStrip || xpos + width < _screenStartStrip) return; @@ -809,6 +810,16 @@ void ScummEngine::processDrawQue() { _drawObjectQueNr = 0; } +void ScummEngine::addObjectToDrawQue(int object) { + if ((unsigned int)_drawObjectQueNr >= ARRAYSIZE(_drawObjectQue)) + error("Draw Object Que overflow"); + _drawObjectQue[_drawObjectQueNr++] = object; +} + +void ScummEngine::clearDrawObjectQueue() { + _drawObjectQueNr = 0; +} + void ScummEngine::clearOwnerOf(int obj) { int i, j; uint16 *a; @@ -873,16 +884,6 @@ void ScummEngine::markObjectRectAsDirty(int obj) { } } -void ScummEngine::addObjectToDrawQue(int object) { - _drawObjectQue[_drawObjectQueNr++] = object; - if ((unsigned int)_drawObjectQueNr > ARRAYSIZE(_drawObjectQue)) - error("Draw Object Que overflow"); -} - -void ScummEngine::clearDrawObjectQueue() { - _drawObjectQueNr = 0; -} - const byte *ScummEngine::getObjOrActorName(int obj) { byte *objptr; int i; diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp index 3a7b28e4e2..2f86774fa0 100644 --- a/scumm/script_v6.cpp +++ b/scumm/script_v6.cpp @@ -749,13 +749,17 @@ void ScummEngine_v6::o6_startObjectQuick() { } void ScummEngine_v6::o6_drawObject() { - int a = pop(); - int b = pop(); + int state = pop(); + int obj = pop(); - if (a == 0) - a = 1; + // FIXME: Why is the following here? Is it based on disassembly, or was + // it simply added to work around a bug (in ScummVM or scripts) ? + // In either case, the answer should be put into a comment (replacing this + // one, of course :-) + if (state == 0) + state = 1; - setObjectState(b, a, -1, -1); + setObjectState(obj, state, -1, -1); } void ScummEngine_v6::o6_drawObjectAt() { diff --git a/scumm/script_v8.cpp b/scumm/script_v8.cpp index 7afb48fa32..9abaff196c 100644 --- a/scumm/script_v8.cpp +++ b/scumm/script_v8.cpp @@ -1565,7 +1565,11 @@ void ScummEngine_v8::o8_getStringWidth() { } void ScummEngine_v8::o8_drawObject() { - int state = pop(), y = pop(), x = pop(), obj = pop(), objnum = getObjectIndex(obj); + int state = pop(); + int y = pop(); + int x = pop(); + int obj = pop(); + int objnum = getObjectIndex(obj); ObjectData *od; if (!objnum) @@ -1575,7 +1579,6 @@ void ScummEngine_v8::o8_drawObject() { if (x != 0x7FFFFFFF) { od->x_pos = x; od->y_pos = y; - debug(1, "setting position: 0x%X b 0x%X", x, y); } addObjectToDrawQue(objnum); |