Skip to content

Commit

Permalink
KYRA: rename some flags
Browse files Browse the repository at this point in the history
  • Loading branch information
athrxx committed Jun 7, 2022
1 parent 4325e4a commit 8461189
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 35 deletions.
50 changes: 25 additions & 25 deletions engines/kyra/graphics/screen.cpp
Expand Up @@ -1592,7 +1592,7 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
shapeData += 2;

if (*shapeData & 1)
flags |= 0x400;
flags |= kDRAWSHP_COMPACT;

va_list args;
va_start(args, flags);
Expand All @@ -1609,44 +1609,44 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
_dsBackgroundFadingTable = nullptr;
_dsDrawLayer = 0;

if (flags & DSF_CUSTOM_PALETTE) {
if (flags & kDRAWSHP_COLOR) {
_dsColorTable = va_arg(args, uint8 *);
}

if (flags & DSF_SHAPE_FADING) {
if (flags & kDRAWSHP_FADE) {
_dsShapeFadingTable = va_arg(args, uint8 *);
_dsShapeFadingLevel = va_arg(args, int);
if (!_dsShapeFadingLevel)
flags &= ~DSF_SHAPE_FADING;
flags &= ~kDRAWSHP_FADE;
}

if (flags & DSF_TRANSPARENCY) {
if (flags & kDRAWSHP_TRANSPARENT) {
_dsTransparencyTable1 = va_arg(args, uint8 *);
_dsTransparencyTable2 = va_arg(args, uint8 *);
}

if (flags & 0x200) {
if (flags & kDRAWSHP_PREDATOR) {
_drawShapeVar1 = (_drawShapeVar1 + 1) & 0x7;
_drawShapeVar3 = drawShapeVar2[_drawShapeVar1];
_drawShapeVar4 = 0;
_drawShapeVar5 = 256;
}

if (flags & 0x4000)
if (flags & kDRAWSHP_MORPH)
_drawShapeVar5 = va_arg(args, int);

if (flags & 0x800)
if (flags & kDRAWSHP_PRIORITY)
_dsDrawLayer = va_arg(args, int);

if (flags & DSF_SCALE) {
if (flags & kDRAWSHP_SCALE) {
_dsScaleW = va_arg(args, int);
_dsScaleH = va_arg(args, int);
} else {
_dsScaleW = 0x100;
_dsScaleH = 0x100;
}

if ((flags & DSF_BACKGROUND_FADING) && _vm->game() != GI_KYRA1)
if ((flags & kDRAWSHP_BCKGRNDFADE) && _vm->game() != GI_KYRA1)
_dsBackgroundFadingTable = va_arg(args, uint8 *);

va_end(args);
Expand Down Expand Up @@ -1728,7 +1728,7 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
const int ppc = (flags >> 8) & 0x3F;
_dsPlot = dsPlotFunc[ppc];
DsPlotFunc dsPlot2 = dsPlotFunc[ppc], dsPlot3 = dsPlotFunc[ppc];
if (flags & 0x800)
if (flags & kDRAWSHP_PRIORITY)
dsPlot3 = dsPlotFunc[((flags >> 8) & 0xF7) & 0x3F];

if (!_dsPlot || !dsPlot2 || !dsPlot3) {
Expand All @@ -1746,12 +1746,12 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
const ScreenDim *dsDim = getScreenDim(sd);
dst += (dsDim->sx << 3);

if (!(flags & 0x10))
if (!(flags & kDRAWSHP_WINREL))
x -= (dsDim->sx << 3);

int x2 = (dsDim->w << 3);
int y1 = dsDim->sy;
if (flags & 0x10)
if (flags & kDRAWSHP_WINREL)
y += y1;

int y2 = y1 + dsDim->h;
Expand All @@ -1764,15 +1764,15 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
int shpWidthScaled1 = shapeWidth;
int shpWidthScaled2 = shapeWidth;

if (flags & DSF_SCALE) {
if (flags & kDRAWSHP_SCALE) {
shapeHeight = (shapeHeight * _dsScaleH) >> 8;
shpWidthScaled1 = shpWidthScaled2 = (shapeWidth * _dsScaleW) >> 8;

if (!shapeHeight || !shpWidthScaled1)
return;
}

if (flags & DSF_CENTER) {
if (flags & kDRAWSHP_CENTER) {
x -= (shpWidthScaled1 >> 1);
y -= (shapeHeight >> 1);
}
Expand All @@ -1783,18 +1783,18 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int

int colorTableColors = ((_vm->game() != GI_KYRA1) && (shapeFlags & 4)) ? *src++ : 16;

if (!(flags & 0x8000) && (shapeFlags & 1))
if (!(flags & kDRAWSHP_COLOR) && (shapeFlags & 1))
_dsColorTable = src;

if (flags & 0x400)
if (flags & kDRAWSHP_COMPACT)
src += colorTableColors;

if (!(shapeFlags & 2)) {
decodeFrame4(src, _animBlockPtr, frameSize);
src = _animBlockPtr;
}

int t = (flags & 2) ? y2 - y - shapeHeight : y - y1;
int t = (flags & kDRAWSHP_YFLIP) ? y2 - y - shapeHeight : y - y1;

if (t < 0) {
shapeHeight += t;
Expand Down Expand Up @@ -1827,17 +1827,17 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
scaleCounterV += (-t << 8);
}

if (!(flags & 2))
if (!(flags & kDRAWSHP_YFLIP))
y = y1;
}

t = (flags & 2) ? y + shapeHeight - y1 : y2 - y;
t = (flags & kDRAWSHP_YFLIP) ? y + shapeHeight - y1 : y2 - y;
if (t <= 0)
return;

if (t < shapeHeight) {
shapeHeight = t;
if (flags & 2)
if (flags & kDRAWSHP_YFLIP)
y = y1;
}

Expand All @@ -1864,19 +1864,19 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
int dsPitch = 320;
int ty = y;

if (flags & 2) {
if (flags & kDRAWSHP_YFLIP) {
dsPitch *= -1;
ty = ty - 1 + shapeHeight;
}

if (flags & DSF_X_FLIPPED) {
if (flags & kDRAWSHP_XFLIP) {
SWAP(_dsOffscreenLeft, _dsOffscreenRight);
dst += (shpWidthScaled1 - 1);
}

dst += (320 * ty + x);

if (flags & DSF_SCALE) {
if (flags & kDRAWSHP_SCALE) {
_dsOffscreenRight = 0;
_dsOffscreenScaleVal2 = _dsOffscreenLeft;
_dsOffscreenLeft <<= 8;
Expand Down Expand Up @@ -1915,7 +1915,7 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
if (_dsTmpWidth) {
cnt += shpWidthScaled1;
if (cnt > 0) {
if (flags & 0x800)
if (flags & kDRAWSHP_PRIORITY)
normalPlot = (curY > _maskMinY && curY < _maskMaxY);
_dsPlot = normalPlot ? dsPlot2 : dsPlot3;
(this->*_dsProcessLine)(d, src, cnt, scaleState);
Expand Down
23 changes: 13 additions & 10 deletions engines/kyra/graphics/screen.h
Expand Up @@ -518,16 +518,19 @@ class Screen {
};

enum DrawShapeFlags {
DSF_X_FLIPPED = 0x01,
DSF_Y_FLIPPED = 0x02,
DSF_SCALE = 0x04,
DSF_WND_COORDS = 0x10,
DSF_CENTER = 0x20,

DSF_SHAPE_FADING = 0x100,
DSF_TRANSPARENCY = 0x1000,
DSF_BACKGROUND_FADING = 0x2000,
DSF_CUSTOM_PALETTE = 0x8000
kDRAWSHP_XFLIP = 0x01,
kDRAWSHP_YFLIP = 0x02,
kDRAWSHP_SCALE = 0x04,
kDRAWSHP_WINREL = 0x10,
kDRAWSHP_CENTER = 0x20,
kDRAWSHP_FADE = 0x100,
kDRAWSHP_PREDATOR = 0x200,
kDRAWSHP_COMPACT = 0x400,
kDRAWSHP_PRIORITY = 0x800,
kDRAWSHP_TRANSPARENT = 0x1000,
kDRAWSHP_BCKGRNDFADE = 0x2000,
kDRAWSHP_MORPH = 0x4000,
kDRAWSHP_COLOR = 0x8000
};

enum FontId {
Expand Down

0 comments on commit 8461189

Please sign in to comment.