aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra
diff options
context:
space:
mode:
authorathrxx2015-11-10 18:46:53 +0100
committerathrxx2018-11-14 17:22:19 +0100
commit35126dba8a22aea3b0235ffbe5ae9df2ad248f7b (patch)
treecf913503a9801cc15d75d5233a33b0336ef79e55 /engines/kyra
parentf67ca1ba4704d450a4a2b3139da46da135122c0e (diff)
downloadscummvm-rg350-35126dba8a22aea3b0235ffbe5ae9df2ad248f7b.tar.gz
scummvm-rg350-35126dba8a22aea3b0235ffbe5ae9df2ad248f7b.tar.bz2
scummvm-rg350-35126dba8a22aea3b0235ffbe5ae9df2ad248f7b.zip
KYRA: (EOB) - minor cleanup of shape drawing code
Diffstat (limited to 'engines/kyra')
-rw-r--r--engines/kyra/eobcommon.cpp16
-rw-r--r--engines/kyra/eobcommon.h6
-rw-r--r--engines/kyra/gui_eob.cpp16
-rw-r--r--engines/kyra/items_eob.cpp8
-rw-r--r--engines/kyra/scene_eob.cpp16
-rw-r--r--engines/kyra/screen_eob.cpp82
-rw-r--r--engines/kyra/screen_eob.h17
-rw-r--r--engines/kyra/sequences_darkmoon.cpp35
-rw-r--r--engines/kyra/sprites_eob.cpp20
9 files changed, 124 insertions, 92 deletions
diff --git a/engines/kyra/eobcommon.cpp b/engines/kyra/eobcommon.cpp
index d5327c859d..4f5dfcdd47 100644
--- a/engines/kyra/eobcommon.cpp
+++ b/engines/kyra/eobcommon.cpp
@@ -114,6 +114,8 @@ EoBCoreEngine::EoBCoreEngine(OSystem *system, const GameFlags &flags)
_dscDoorY1 = 0;
_dscDoorXE = 0;
+ _greenFadingTable = _blueFadingTable = _lightBlueFadingTable = _blackFadingTable = _greyFadingTable = 0;
+
_menuDefs = 0;
_exchangeCharacterId = -1;
@@ -297,6 +299,12 @@ EoBCoreEngine::~EoBCoreEngine() {
delete[] _levelDecorationRects;
_dscWallMapping.clear();
+ delete[] _greenFadingTable;
+ delete[] _blueFadingTable;
+ delete[] _lightBlueFadingTable;
+ delete[] _blackFadingTable;
+ delete[] _greyFadingTable;
+
delete[] _spells;
delete[] _spellAnimBuffer;
delete[] _wallsOfForce;
@@ -447,6 +455,12 @@ Common::Error EoBCoreEngine::init() {
_wllVcnOffset = 16;
+ _greenFadingTable = new uint8[256];
+ _blueFadingTable = new uint8[256];
+ _lightBlueFadingTable = new uint8[256];
+ _blackFadingTable = new uint8[256];
+ _greyFadingTable = new uint8[256];
+
_monsters = new EoBMonsterInPlay[30];
memset(_monsters, 0, 30 * sizeof(EoBMonsterInPlay));
@@ -842,7 +856,7 @@ void EoBCoreEngine::setHandItem(Item itemIndex) {
const uint8 *ovl = 0;
if (icon && (_items[_itemInHand].flags & 0x80) && (_partyEffectFlags & 2))
- ovl = _flags.gameID == GI_EOB1 ? ((_configRenderMode == Common::kRenderCGA) ? _itemsOverlayCGA : &_itemsOverlay[icon << 4]) : _screen->generateShapeOverlay(shp, 3);
+ ovl = _flags.gameID == GI_EOB1 ? ((_configRenderMode == Common::kRenderCGA) ? _itemsOverlayCGA : &_itemsOverlay[icon << 4]) : _screen->generateShapeOverlay(shp, _lightBlueFadingTable);
int mouseOffs = itemIndex ? 8 : 0;
_screen->setMouseCursor(mouseOffs, mouseOffs, shp, ovl);
diff --git a/engines/kyra/eobcommon.h b/engines/kyra/eobcommon.h
index 157c820c5d..810b792eb2 100644
--- a/engines/kyra/eobcommon.h
+++ b/engines/kyra/eobcommon.h
@@ -639,6 +639,12 @@ protected:
const uint8 *_dscDoorY1;
const uint8 *_dscDoorXE;
+ uint8 *_greenFadingTable;
+ uint8 *_blueFadingTable;
+ uint8 *_lightBlueFadingTable;
+ uint8 *_blackFadingTable;
+ uint8 *_greyFadingTable;
+
const uint8 *_wllFlagPreset;
int _wllFlagPresetSize;
const uint8 *_teleporterShapeCoords;
diff --git a/engines/kyra/gui_eob.cpp b/engines/kyra/gui_eob.cpp
index 968bca2be2..cdc5fba5c1 100644
--- a/engines/kyra/gui_eob.cpp
+++ b/engines/kyra/gui_eob.cpp
@@ -236,18 +236,18 @@ void EoBCoreEngine::gui_drawFaceShape(int index) {
}
} else {
if (c->effectFlags & 0x140) {
- _screen->setFadeTableIndex(1);
- _screen->setShapeFadeMode(1, true);
+ _screen->setFadeTable(_blackFadingTable);
+ _screen->setShapeFadingLevel(1);
}
if (c->flags & 2) {
- _screen->setFadeTableIndex(0);
- _screen->setShapeFadeMode(1, true);
+ _screen->setFadeTable(_greenFadingTable);
+ _screen->setShapeFadingLevel(1);
}
if (c->flags & 8) {
- _screen->setFadeTableIndex(2);
- _screen->setShapeFadeMode(1, true);
+ _screen->setFadeTable(_blueFadingTable);
+ _screen->setShapeFadingLevel(1);
}
}
@@ -256,8 +256,8 @@ void EoBCoreEngine::gui_drawFaceShape(int index) {
if (c->hitPointsCur < 1)
_screen->drawShape(_screen->_curPage, _disabledCharGrid, x, y, 0);
- _screen->setFadeTableIndex(4);
- _screen->setShapeFadeMode(1, false);
+ _screen->setFadeTable(_greyFadingTable);
+ _screen->setShapeFadingLevel(0);
}
void EoBCoreEngine::gui_drawWeaponSlot(int charIndex, int slot) {
diff --git a/engines/kyra/items_eob.cpp b/engines/kyra/items_eob.cpp
index e2d4b1be56..6ec9b331a3 100644
--- a/engines/kyra/items_eob.cpp
+++ b/engines/kyra/items_eob.cpp
@@ -468,16 +468,16 @@ void EoBCoreEngine::drawItemIconShape(int pageNum, Item itemId, int x, int y) {
if (_flags.gameID == GI_EOB1) {
ovl = (_configRenderMode == Common::kRenderCGA) ? _itemsOverlayCGA : &_itemsOverlay[icn << 4];
} else {
- _screen->setFadeTableIndex(3);
- _screen->setShapeFadeMode(1, true);
+ _screen->setFadeTable(_lightBlueFadingTable);
+ _screen->setShapeFadingLevel(1);
}
}
_screen->drawShape(pageNum, _itemIconShapes[icn], x, y, 0, ovl ? 2 : 0, ovl);
if (applyBluePal) {
- _screen->setFadeTableIndex(4);
- _screen->setShapeFadeMode(1, false);
+ _screen->setFadeTable(_greyFadingTable);
+ _screen->setShapeFadingLevel(0);
}
}
diff --git a/engines/kyra/scene_eob.cpp b/engines/kyra/scene_eob.cpp
index 84822c3fd2..6fac56f12c 100644
--- a/engines/kyra/scene_eob.cpp
+++ b/engines/kyra/scene_eob.cpp
@@ -168,8 +168,8 @@ Common::String EoBCoreEngine::initLevelData(int sub) {
if (_flags.gameID == GI_EOB1) {
pos += 11;
- _screen->setShapeFadeMode(0, false);
- _screen->setShapeFadeMode(1, false);
+ _screen->setShapeFadingLevel(0);
+ _screen->enableShapeBackgroundFading(false);
}
if (_flags.gameID == GI_EOB2 || _configRenderMode != Common::kRenderEGA)
@@ -181,14 +181,14 @@ Common::String EoBCoreEngine::initLevelData(int sub) {
_screen->getPalette(0).fill(224, 32, 0x3F);
uint8 *src = _screen->getPalette(0).getData();
- _screen->createFadeTable(src, _screen->getFadeTable(0), 4, 75); // green
- _screen->createFadeTable(src, _screen->getFadeTable(1), 12, 200); // black
- _screen->createFadeTable(src, _screen->getFadeTable(2), 10, 85); // blue
- _screen->createFadeTable(src, _screen->getFadeTable(3), 11, 125); // light blue
+ _screen->createFadeTable(src, _greenFadingTable, 4, 75);
+ _screen->createFadeTable(src, _blackFadingTable, 12, 200);
+ _screen->createFadeTable(src, _blueFadingTable, 10, 85);
+ _screen->createFadeTable(src, _lightBlueFadingTable, 11, 125);
_screen->getPalette(0).copy(backupPal, 224, 32, 224);
- _screen->createFadeTable(src, _screen->getFadeTable(4), 12, 85); // grey (shadow)
- _screen->setFadeTableIndex(4);
+ _screen->createFadeTable(src, _greyFadingTable, 12, 85);
+ _screen->setFadeTable(_greyFadingTable);
if (_flags.gameID == GI_EOB2 && _configRenderMode == Common::kRenderEGA)
_screen->setScreenPalette(_screen->getPalette(0));
}
diff --git a/engines/kyra/screen_eob.cpp b/engines/kyra/screen_eob.cpp
index 3a9a647fa5..6553ffa76c 100644
--- a/engines/kyra/screen_eob.cpp
+++ b/engines/kyra/screen_eob.cpp
@@ -38,10 +38,10 @@
namespace Kyra {
Screen_EoB::Screen_EoB(EoBCoreEngine *vm, OSystem *system) : Screen(vm, system, _screenDimTable, _screenDimTableCount) {
- _shapeFadeMode[0] = _shapeFadeMode[1] = 0;
- _shapeFadeInternal = 0;
- _fadeData = 0;
- _fadeDataIndex = 0;
+ _dsBackgroundFading = false;
+ _dsShapeFadingLevel = 0;
+ _dsBackgroundFadingXOffs = 0;
+ _dsShapeFadingTable = 0;
_dsX1 = _dsX2 = _dsY1 = _dsY2 = 0;
_gfxX = _gfxY = 0;
_gfxCol = 0;
@@ -59,7 +59,6 @@ Screen_EoB::Screen_EoB(EoBCoreEngine *vm, OSystem *system) : Screen(vm, system,
}
Screen_EoB::~Screen_EoB() {
- delete[] _fadeData;
delete[] _dsTempPage;
delete[] _cgaScaleTable;
delete[] _egaDitheringTable;
@@ -73,20 +72,6 @@ bool Screen_EoB::init() {
int temp;
_gfxMaxY = _vm->staticres()->loadRawData(kEoBBaseExpObjectY, temp);
- if (_renderMode != Common::kRenderCGA && _renderMode != Common::kRenderEGA)
- _fadeData = _vm->resource()->fileData("FADING.DAT", 0);
-
- if (!_fadeData) {
- _fadeData = new uint8[0x700];
- memset(_fadeData, 0, 0x700);
- if (_renderMode != Common::kRenderCGA && _renderMode != Common::kRenderEGA) {
- uint8 *pal = _vm->resource()->fileData("PALETTE1.PAL", 0);
- for (int i = 0; i < 7; i++)
- createFadeTable(pal, &_fadeData[i << 8], 18, (i + 1) * 36);
- delete[] pal;
- }
- }
-
_dsTempPage = new uint8[12000];
if (_vm->gameFlags().useHiRes && _renderMode == Common::kRenderEGA) {
@@ -379,7 +364,7 @@ uint8 *Screen_EoB::encodeShape(uint16 x, uint16 y, uint16 w, uint16 h, bool enco
memset(shp, 0, shapesize);
uint8 *dst = shp;
- *dst++ = 8;
+ *dst++ = 1;
*dst++ = (h & 0xFF);
*dst++ = (w & 0xFF);
*dst++ = (h & 0xFF);
@@ -483,11 +468,6 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
if (!src)
return;
- va_list args;
- va_start(args, flags);
- uint8 *ovl = (flags & 2) ? va_arg(args, uint8 *) : 0;
- va_end(args);
-
if (sd != -1) {
const ScreenDim *dm = getScreenDim(sd);
setShapeFrame(dm->sx, dm->sy, dm->sx + dm->w, dm->sy + dm->h);
@@ -495,12 +475,22 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
y += _dsY1;
}
+ uint8 *ovl = 0;
+
+ va_list args;
+ va_start(args, flags);
+ if (flags & 2) {
+ ovl = va_arg(args, uint8 *);
+ _dsBackgroundFadingXOffs = x;
+ }
+ va_end(args);
+
dst += (_dsX1 << 3);
int16 dX = x - (_dsX1 << 3);
int16 dY = y;
int16 dW = _dsX2 - _dsX1;
+
uint8 pixelsPerByte = *src++;
-
uint16 dH = *src++;
uint16 width = (*src++) << 3;
uint16 transOffset = (pixelsPerByte == 4) ? (dH * width) >> 2 : 0;
@@ -516,7 +506,7 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
int pixelStep = (flags & 1) ? -1 : 1;
- if (pixelsPerByte == 8) {
+ if (pixelsPerByte == 1) {
uint16 marginLeft = 0;
uint16 marginRight = 0;
@@ -773,7 +763,7 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
}
const uint8 *Screen_EoB::scaleShape(const uint8 *shapeData, int steps) {
- setShapeFadeMode(1, steps ? true : false);
+ setShapeFadingLevel(steps);
while (shapeData && steps--)
shapeData = scaleShapeStep(shapeData);
@@ -842,14 +832,13 @@ const uint8 *Screen_EoB::scaleShapeStep(const uint8 *shp) {
return (const uint8 *)dst;
}
-const uint8 *Screen_EoB::generateShapeOverlay(const uint8 *shp, int paletteOverlayIndex) {
+const uint8 *Screen_EoB::generateShapeOverlay(const uint8 *shp, const uint8 *fadingTable) {
if (*shp != 2)
return 0;
shp += 4;
- uint8 *ovl = getFadeTable(paletteOverlayIndex);
for (int i = 0; i < 16; i++)
- _shapeOverlay[i] = ovl[shp[i]];
+ _shapeOverlay[i] = fadingTable[shp[i]];
return _shapeOverlay;
}
@@ -860,9 +849,12 @@ void Screen_EoB::setShapeFrame(int x1, int y1, int x2, int y2) {
_dsY2 = y2;
}
-void Screen_EoB::setShapeFadeMode(uint8 i, bool b) {
- if (!i || i == 1)
- _shapeFadeMode[i] = b;
+void Screen_EoB::enableShapeBackgroundFading(bool enable) {
+ _dsBackgroundFading = enable;
+}
+
+void Screen_EoB::setShapeFadingLevel(int level) {
+ _dsShapeFadingLevel = level;
}
void Screen_EoB::setGfxParameters(int x, int y, int col) {
@@ -1171,8 +1163,8 @@ int Screen_EoB::getRectSize(int w, int h) {
return w * h;
}
-void Screen_EoB::setFadeTableIndex(int index) {
- _fadeDataIndex = (CLIP(index, 0, 7) << 8);
+void Screen_EoB::setFadeTable(const uint8 *table) {
+ _dsShapeFadingTable = table;
}
void Screen_EoB::createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, uint8 weight) {
@@ -1218,10 +1210,6 @@ void Screen_EoB::createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, ui
}
}
-uint8 *Screen_EoB::getFadeTable(int index) {
- return (index >= 0 && index < 5) ? &_fadeData[index << 8] : 0;
-}
-
const uint16 *Screen_EoB::getCGADitheringTable(int index) {
return !(index & ~1) ? _cgaDitheringTables[index] : 0;
}
@@ -1273,19 +1261,19 @@ void Screen_EoB::ditherRect(const uint8 *src, uint8 *dst, int dstPitch, int srcW
void Screen_EoB::drawShapeSetPixel(uint8 *dst, uint8 col) {
if ((_renderMode != Common::kRenderCGA && _renderMode != Common::kRenderEGA) || _useHiResEGADithering) {
- if (_shapeFadeMode[0]) {
- if (_shapeFadeMode[1]) {
+ if (_dsBackgroundFading) {
+ if (_dsShapeFadingLevel) {
col = *dst;
} else {
- _shapeFadeInternal &= 7;
- col = *(dst + _shapeFadeInternal++);
+ _dsBackgroundFadingXOffs &= 7;
+ col = *(dst + _dsBackgroundFadingXOffs++);
}
}
- if (_shapeFadeMode[1]) {
- uint8 cnt = _shapeFadeMode[1];
+ if (_dsShapeFadingLevel) {
+ uint8 cnt = _dsShapeFadingLevel;
while (cnt--)
- col = _fadeData[_fadeDataIndex + col];
+ col = _dsShapeFadingTable[col];
}
}
diff --git a/engines/kyra/screen_eob.h b/engines/kyra/screen_eob.h
index 3634ae1a39..42c7e59e28 100644
--- a/engines/kyra/screen_eob.h
+++ b/engines/kyra/screen_eob.h
@@ -59,10 +59,11 @@ public:
void drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int sd = -1, int flags = 0, ...);
const uint8 *scaleShape(const uint8 *shapeData, int blockDistance);
const uint8 *scaleShapeStep(const uint8 *shp);
- const uint8 *generateShapeOverlay(const uint8 *shp, int paletteOverlayIndex);
+ const uint8 *generateShapeOverlay(const uint8 *shp, const uint8 *fadingTable);
void setShapeFrame(int x1, int y1, int x2, int y2);
- void setShapeFadeMode(uint8 i, bool b);
+ void enableShapeBackgroundFading(bool enable);
+ void setShapeFadingLevel(int val);
void setGfxParameters(int x, int y, int col);
void drawExplosion(int scale, int radius, int numElements, int stepSize, int aspectRatio, const uint8 *colorTable, int colorTableSize);
@@ -74,10 +75,9 @@ public:
void setTextColorMap(const uint8 *cmap) {}
int getRectSize(int w, int h);
- void setFadeTableIndex(int index);
+ void setFadeTable(const uint8 *table);
void createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, uint8 weight);
- uint8 *getFadeTable(int index);
-
+
const uint16 *getCGADitheringTable(int index);
const uint8 *getEGADitheringTable();
@@ -100,10 +100,9 @@ private:
const uint8 *_gfxMaxY;
int16 _dsX1, _dsX2, _dsY1, _dsY2;
- bool _shapeFadeMode[2];
- uint16 _shapeFadeInternal;
- uint8 *_fadeData;
- int _fadeDataIndex;
+
+ bool _dsBackgroundFading;
+ int16 _dsBackgroundFadingXOffs;
uint8 _shapeOverlay[16];
uint8 *_dsTempPage;
diff --git a/engines/kyra/sequences_darkmoon.cpp b/engines/kyra/sequences_darkmoon.cpp
index 68d6f752e0..befa8aa6a6 100644
--- a/engines/kyra/sequences_darkmoon.cpp
+++ b/engines/kyra/sequences_darkmoon.cpp
@@ -82,6 +82,7 @@ private:
const Config *_config;
Palette *_palettes[12];
+ uint8 *_fadingTables[7];
const uint8 **_shapes;
@@ -972,6 +973,27 @@ DarkmoonSequenceHelper::DarkmoonSequenceHelper(OSystem *system, DarkMoonEngine *
_palettes[11] = new Palette(256);
_palettes[11]->fill(0, 256, 0);
+ for (int i = 0; i < 7; i++)
+ _fadingTables[i] = 0;
+
+ uint8 *fadeData = (_vm->_configRenderMode != Common::kRenderCGA && _vm->_configRenderMode != Common::kRenderEGA) ? _vm->resource()->fileData("FADING.DAT", 0) : 0;
+
+ if (fadeData) {
+ for (int i = 0; i < 7; i++) {
+ _fadingTables[i] = new uint8[256];
+ memcpy(_fadingTables[i], fadeData + (i << 8), 256);
+ }
+ } else {
+ if (_vm->_configRenderMode != Common::kRenderCGA && _vm->_configRenderMode != Common::kRenderEGA) {
+ uint8 *pal = _vm->resource()->fileData("PALETTE1.PAL", 0);
+ for (int i = 0; i < 7; i++)
+ _screen->createFadeTable(pal, _fadingTables[i], 18, (i + 1) * 36);
+ delete[] pal;
+ }
+ }
+
+ delete[] fadeData;
+
_shapes = new const uint8*[30];
memset(_shapes, 0, 30 * sizeof(uint8 *));
@@ -994,6 +1016,9 @@ DarkmoonSequenceHelper::~DarkmoonSequenceHelper() {
delete _palettes[10];
delete _palettes[11];
+ for (int i = 0; i < 7; i++)
+ delete[] _fadingTables[i];
+
for (int i = 0; i < 30; i++)
delete[] _shapes[i];
delete[] _shapes;
@@ -1152,13 +1177,13 @@ void DarkmoonSequenceHelper::animCommand(int index, int del) {
_screen->updateScreen();
delay(s->delay /** 7*/);
} else {
- _screen->setShapeFadeMode(0, true);
- _screen->setShapeFadeMode(1, true);
+ _screen->enableShapeBackgroundFading(true);
+ _screen->setShapeFadingLevel(1);
end = _system->getMillis() + s->delay * _vm->tickLength();
if (palIndex) {
- _screen->setFadeTableIndex(palIndex - 1);
+ _screen->setFadeTable(_fadingTables[palIndex - 1]);
_screen->copyRegion(s->x1 - 8, s->y1 - 8, 0, 0, (_shapes[s->obj][2] + 1) << 3, _shapes[s->obj][3], 2, 4, Screen::CR_NO_P_CHECK);
_screen->drawShape(4, _shapes[s->obj], s->x1 & 7, 0, 0);
@@ -1169,8 +1194,8 @@ void DarkmoonSequenceHelper::animCommand(int index, int del) {
_screen->updateScreen();
_vm->delayUntil(end);
- _screen->setShapeFadeMode(0, false);
- _screen->setShapeFadeMode(1, false);
+ _screen->enableShapeBackgroundFading(false);
+ _screen->setShapeFadingLevel(0);
}
break;
diff --git a/engines/kyra/sprites_eob.cpp b/engines/kyra/sprites_eob.cpp
index 5a82cf604c..c93bf0edb7 100644
--- a/engines/kyra/sprites_eob.cpp
+++ b/engines/kyra/sprites_eob.cpp
@@ -429,7 +429,7 @@ void EoBCoreEngine::drawBlockItems(int index) {
y += itemPosFin[(o >> 1) & 7];
drawBlockObject(0, 2, shp, x, y, 5);
- _screen->setShapeFadeMode(1, false);
+ _screen->setShapeFadingLevel(0);
}
}
@@ -535,7 +535,7 @@ void EoBCoreEngine::drawMonsters(int index) {
drawMonsterShape(shp, x, y, f >= 0 ? 0 : 1, d->flags, palIndex);
if (_flags.gameID == GI_EOB1) {
- _screen->setShapeFadeMode(1, false);
+ _screen->setShapeFadingLevel(0);
continue;
}
@@ -559,7 +559,7 @@ void EoBCoreEngine::drawMonsters(int index) {
drawMonsterShape(shp, x + ((f < 0) ? (w - dx - (shp[2] << 3)) : dx), y + dy, f >= 0 ? 0 : 1, d->flags, -1);
}
- _screen->setShapeFadeMode(1, false);
+ _screen->setShapeFadingLevel(0);
}
}
@@ -614,12 +614,12 @@ void EoBCoreEngine::drawFlyingObjects(int index) {
int flipped = 0;
if (sclValue < 0) {
- _screen->setShapeFadeMode(1, false);
+ _screen->setShapeFadingLevel(0);
continue;
}
const uint8 *shp = 0;
- bool rstFade = false;
+ bool noFade = false;
if (fo->enable == 1) {
int shpIx = _dscItemShapeMap[_items[fo->item].icon];
@@ -634,7 +634,7 @@ void EoBCoreEngine::drawFlyingObjects(int index) {
}
} else {
- rstFade = true;
+ noFade = true;
shp = (fo->objectType < _numThrownItemShapes) ? _thrownItemShapes[fo->objectType] : _spellShapes[fo->objectType - _numThrownItemShapes];
flipped = _flightObjFlipIndex[(fo->direction << 2) + (fo->curPos & 3)];
@@ -648,16 +648,16 @@ void EoBCoreEngine::drawFlyingObjects(int index) {
shp = _screen->scaleShape(shp, sclValue);
- if (rstFade) {
- _screen->setShapeFadeMode(1, false);
- rstFade = false;
+ if (noFade) {
+ _screen->setShapeFadingLevel(0);
+ noFade = false;
}
x -= (shp[2] << 2);
y -= (y == 44 ? (shp[1] >> 1) : shp[1]);
drawBlockObject(flipped, 2, shp, x, y, 5);
- _screen->setShapeFadeMode(1, false);
+ _screen->setShapeFadingLevel(0);
}
}