aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStrangerke2016-05-20 21:56:12 +0200
committerStrangerke2016-05-20 21:56:12 +0200
commitbd4ef7ffb4db991df8f3cbc6619f54cb599fb535 (patch)
treea267fa7cfb3b37d127dcc9428c2542222012b078
parent3981d8514e00b9094d7119e5c251e74006c03b84 (diff)
downloadscummvm-rg350-bd4ef7ffb4db991df8f3cbc6619f54cb599fb535.tar.gz
scummvm-rg350-bd4ef7ffb4db991df8f3cbc6619f54cb599fb535.tar.bz2
scummvm-rg350-bd4ef7ffb4db991df8f3cbc6619f54cb599fb535.zip
GNAP: Rework gfxItem, remove the code related to impossible flag values
-rw-r--r--engines/gnap/gamesys.cpp24
1 files changed, 6 insertions, 18 deletions
diff --git a/engines/gnap/gamesys.cpp b/engines/gnap/gamesys.cpp
index eedd7fa534..3285985474 100644
--- a/engines/gnap/gamesys.cpp
+++ b/engines/gnap/gamesys.cpp
@@ -803,7 +803,7 @@ void GameSys::drawSprites() {
if (gfxItem2->_prevFrame._spriteId != -1) {
bool transparent = false;
- if (gfxItem2->_currFrame._spriteId != -1 && !(gfxItem2->_flags & 2)) {
+ if (gfxItem2->_currFrame._spriteId != -1) {
if (gfxItem2->_flags & 1) {
transparent = true;
} else {
@@ -813,8 +813,7 @@ void GameSys::drawSprites() {
_vm->_spriteCache->release(resourceId);
}
}
- if ((gfxItem2->_flags & 8) || gfxItem2->_currFrame._spriteId == -1 ||
- (!(gfxItem2->_flags & 2) && (!gfxItem2->_prevFrame._rect.equals(gfxItem2->_currFrame._rect) || !transparent))) {
+ if (gfxItem2->_currFrame._spriteId == -1 || !gfxItem2->_prevFrame._rect.equals(gfxItem2->_currFrame._rect) || !transparent) {
restoreBackgroundRect(gfxItem2->_prevFrame._rect);
for (int l = 0; l < _gfxItemsCount; ++l)
_gfxItems[l].testUpdRect(gfxItem2->_prevFrame._rect);
@@ -825,15 +824,13 @@ void GameSys::drawSprites() {
bool transparent = false;
if (gfxItem2->_flags & 1) {
transparent = true;
- } else if (!(gfxItem2->_flags & 2)) {
+ } else {
int resourceId = (gfxItem2->_sequenceId & 0xFFFF0000) | gfxItem2->_currFrame._spriteId;
SpriteResource *spriteResource = _vm->_spriteCache->get(resourceId);
transparent = spriteResource->_transparent;
_vm->_spriteCache->release(resourceId);
}
- if (((gfxItem2->_flags & 2) && !(gfxItem2->_flags & 8)) ||
- gfxItem2->_prevFrame._spriteId == -1 ||
- !gfxItem2->_prevFrame._rect.equals(gfxItem2->_currFrame._rect) || transparent) {
+ if (gfxItem2->_prevFrame._spriteId == -1 || !gfxItem2->_prevFrame._rect.equals(gfxItem2->_currFrame._rect) || transparent) {
for (int l = k; l < _gfxItemsCount; ++l)
_gfxItems[l].testUpdRect(gfxItem2->_currFrame._rect);
}
@@ -850,8 +847,6 @@ void GameSys::drawSprites() {
if (gfxItem5->_currFrame._spriteId != -1) {
if (gfxItem5->_flags & 1) {
seqDrawStaticFrame(gfxItem5->_surface, gfxItem5->_currFrame, nullptr);
- } else if (gfxItem5->_flags & 2) {
- error("drawSprites - Unexpected AVI frame");
} else {
int resourceId = (gfxItem5->_sequenceId & 0xFFFF0000) | gfxItem5->_currFrame._spriteId;
SpriteResource *spriteResource = _vm->_spriteCache->get(resourceId);
@@ -863,8 +858,6 @@ void GameSys::drawSprites() {
if (gfxItem5->_flags & 1) {
for (int n = 0; n < gfxItem5->_updRectsCount; ++n)
seqDrawStaticFrame(gfxItem5->_surface, gfxItem5->_prevFrame, &gfxItem5->_updRects[n]);
- } else if (gfxItem5->_flags & 2) {
- error("drawSprites - Unexpected AVI frame");
} else {
int resourceId = (gfxItem5->_sequenceId & 0xFFFF0000) | gfxItem5->_prevFrame._spriteId;
SpriteResource *spriteResource = _vm->_spriteCache->get(resourceId);
@@ -1008,13 +1001,8 @@ void GameSys::fatUpdateFrame() {
for (int i = 0; i < _gfxItemsCount; ++i) {
GfxItem *gfxItem = &_gfxItems[i];
SequenceAnimation *animation = gfxItem->_animation;
- if ((gfxItem->_sequenceId != -1 && animation) || (gfxItem->_flags & 2) ||
- gfxItem->_prevFrame._spriteId != -1 || gfxItem->_prevFrame._duration > 0) {
- if (gfxItem->_sequenceId == -1 || gfxItem->_updFlag) {
- if ((gfxItem->_flags & 2) && !gfxItem->_updFlag) {
- // NOTE Skipped avi code
- }
- } else {
+ if ((gfxItem->_sequenceId != -1 && animation) || gfxItem->_prevFrame._spriteId != -1 || gfxItem->_prevFrame._duration > 0) {
+ if (gfxItem->_sequenceId != -1 && !gfxItem->_updFlag) {
Sequence *seqItem = seqFind(gfxItem->_sequenceId, gfxItem->_id, nullptr);
if (!animation) {
gfxItem->_sequenceId = -1;