GRIFFON: Move to useing ManagedSurface

This commit is contained in:
Wyatt Radkiewicz 2023-08-09 09:48:49 -07:00 committed by Eugene Sandulenko
parent 4fbde03866
commit b16ae30ebd
9 changed files with 156 additions and 156 deletions

View File

@ -730,7 +730,7 @@ void GriffonEngine::damageNPC(int npcnum, int damage, int spell) {
rcDest.setWidth(16);
rcDest.setHeight(16);
_tiles[curTileL]->blit(*_mapBg, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_tiles[curTileL]->blendBlitTo(*_mapBg, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
// firehydra sword chest

View File

@ -169,7 +169,7 @@ void GriffonEngine::showLogos() {
}
_videoBuffer->fillRect(Common::Rect(0, 0, 320, 240), 0);
_logosImg->blit(*_videoBuffer, 0, 0, Graphics::FLIP_NONE, nullptr, MS_ARGB((int)y, (int)y, (int)y, (int)y));
_logosImg->blendBlitTo(*_videoBuffer, 0, 0, Graphics::FLIP_NONE, nullptr, MS_ARGB((int)y, (int)y, (int)y, (int)y));
g_system->copyRectToScreen(_videoBuffer->getPixels(), _videoBuffer->pitch, 0, 0, _videoBuffer->w, _videoBuffer->h);
g_system->updateScreen();
@ -206,8 +206,8 @@ void GriffonEngine::intro() {
_ticks = g_system->getMillis();
_videoBuffer->blit(*_videoBuffer3);
_videoBuffer->blit(*_videoBuffer2);
_videoBuffer->blendBlitTo(*_videoBuffer3);
_videoBuffer->blendBlitTo(*_videoBuffer2);
_fpsr = 0.0;
int y = 140;
@ -245,12 +245,12 @@ void GriffonEngine::intro() {
rc.left = -xofs;
rc.top = 0;
_titleImg->blit(*_videoBuffer, rc.left, rc.top);
_titleImg->blendBlitTo(*_videoBuffer, rc.left, rc.top);
rc.left = -xofs + 320;
rc.top = 0;
_titleImg->blit(*_videoBuffer, rc.left, rc.top);
_titleImg->blendBlitTo(*_videoBuffer, rc.left, rc.top);
if (++cnt >= 6) {
cnt = 0;
@ -361,8 +361,8 @@ void GriffonEngine::endOfGame() {
break;
_videoBuffer2->fillRect(Common::Rect(0, 0, _videoBuffer2->w, _videoBuffer2->h), 0);
_videoBuffer->setAlpha(255 - ya);
_videoBuffer->blit(*_videoBuffer2);
_videoBuffer->surfacePtr()->setAlpha(255 - ya);
_videoBuffer->blendBlitTo(*_videoBuffer2);
g_system->copyRectToScreen(_videoBuffer2->getPixels(), _videoBuffer2->pitch, 0, 0, _videoBuffer2->w, _videoBuffer2->h);
@ -395,12 +395,12 @@ void GriffonEngine::endOfGame() {
rc.left = -xofs;
rc.top = 0;
_titleImg->blit(*_videoBuffer, rc.left, rc.top);
_titleImg->blendBlitTo(*_videoBuffer, rc.left, rc.top);
rc.left = -xofs + 320;
rc.top = 0;
_titleImg->blit(*_videoBuffer, rc.left, rc.top);
_titleImg->blendBlitTo(*_videoBuffer, rc.left, rc.top);
y = y - spd * _fpsr;
@ -427,7 +427,7 @@ void GriffonEngine::endOfGame() {
ya = CLIP(ya, 0, 255);
}
_videoBuffer->setAlpha(ya);
_videoBuffer->surfacePtr()->setAlpha(ya);
g_system->copyRectToScreen(_videoBuffer->getPixels(), _videoBuffer->pitch, 0, 0, _videoBuffer->w, _videoBuffer->h);
_ticksPassed = _ticks;
@ -486,9 +486,9 @@ void GriffonEngine::endOfGame() {
_videoBuffer->fillRect(Common::Rect(0, 0, _videoBuffer->w, _videoBuffer->h), 0);
_videoBuffer->setAlpha(y1);
_videoBuffer2->blit(*_videoBuffer3);
_videoBuffer->blit(*_videoBuffer3);
_videoBuffer->surfacePtr()->setAlpha(y1);
_videoBuffer2->blendBlitTo(*_videoBuffer3);
_videoBuffer->blendBlitTo(*_videoBuffer3);
g_system->copyRectToScreen(_videoBuffer3->getPixels(), _videoBuffer3->pitch, 0, 0, _videoBuffer3->w, _videoBuffer3->h);
g_system->updateScreen();
@ -526,10 +526,10 @@ void GriffonEngine::endOfGame() {
y1 = CLIP(y1, 0, 255);
}
_videoBuffer->setAlpha(y1);
_videoBuffer->surfacePtr()->setAlpha(y1);
_videoBuffer2->fillRect(Common::Rect(0, 0, _videoBuffer2->w, _videoBuffer2->h), 0);
_videoBuffer->blit(*_videoBuffer2);
_videoBuffer->blendBlitTo(*_videoBuffer2);
g_system->copyRectToScreen(_videoBuffer2->getPixels(), _videoBuffer2->pitch, 0, 0, _videoBuffer2->w, _videoBuffer2->h);
@ -572,8 +572,8 @@ void GriffonEngine::theEnd() {
for (float y = 0; y < 100; y += _fpsr) {
_videoBuffer2->fillRect(Common::Rect(0, 0, _videoBuffer2->w, _videoBuffer2->h), 0);
_videoBuffer->setAlpha((int)((100.0 - y) / 100 * 255));
_videoBuffer->blit(*_videoBuffer2);
_videoBuffer->surfacePtr()->setAlpha((int)((100.0 - y) / 100 * 255));
_videoBuffer->blendBlitTo(*_videoBuffer2);
g_system->copyRectToScreen(_videoBuffer2->getPixels(), _videoBuffer2->pitch, 0, 0, _videoBuffer2->w, _videoBuffer2->h);
g_system->updateScreen();

View File

@ -71,8 +71,8 @@ void GriffonEngine::title(int mode) {
_ticks = g_system->getMillis();
_videoBuffer->blit(*_videoBuffer3);
_videoBuffer->blit(*_videoBuffer2);
_videoBuffer->blendBlitTo(*_videoBuffer3);
_videoBuffer->blendBlitTo(*_videoBuffer2);
int cursel = 0;
int ticks1 = _ticks;
@ -104,17 +104,17 @@ void GriffonEngine::title(int mode) {
rc.left = -xofs;
rc.top = 0;
_titleImg->blit(*_videoBuffer, rc.left, rc.top);
_titleImg->blendBlitTo(*_videoBuffer, rc.left, rc.top);
rc.left = -xofs + 320.0;
rc.top = 0;
_titleImg->blit(*_videoBuffer, rc.left, rc.top);
_titleImg->blendBlitTo(*_videoBuffer, rc.left, rc.top);
rc.left = 0;
rc.top = 0;
_titleImg2->blit(*_videoBuffer, rc.left, rc.top);
_titleImg2->blendBlitTo(*_videoBuffer, rc.left, rc.top);
int y = 172;
int x = 160 - 14 * 4;
@ -131,7 +131,7 @@ void GriffonEngine::title(int mode) {
rc.left = (int16)(x - 16 - 4 * cos(2 * PI * _itemyloc / 16));
rc.top = (int16)(y - 4 + 16 * cursel);
_itemImg[15]->blit(*_videoBuffer, rc.left, rc.top);
_itemImg[15]->blendBlitTo(*_videoBuffer, rc.left, rc.top);
float yf = 255.0;
if (_ticks < ticks1 + 1000) {
@ -139,7 +139,7 @@ void GriffonEngine::title(int mode) {
yf = CLIP<float>(yf, 0.0, 255.0);
}
_videoBuffer->setAlpha((int)yf);
_videoBuffer->surfacePtr()->setAlpha((int)yf);
g_system->copyRectToScreen(_videoBuffer->getPixels(), _videoBuffer->pitch, 0, 0, _videoBuffer->w, _videoBuffer->h);
g_system->updateScreen();
@ -300,8 +300,8 @@ void GriffonEngine::configMenu() {
_ticks = g_system->getMillis();
Graphics::TransparentSurface *configwindow = loadImage("art/configwindow.bmp", true);
configwindow->setAlpha(160, true);
Graphics::ManagedSurface *configwindow = loadImage("art/configwindow.bmp", true);
configwindow->surfacePtr()->setAlpha(160, true);
int ticks1 = _ticks;
@ -316,16 +316,16 @@ void GriffonEngine::configMenu() {
rcDest.setWidth(320);
rcDest.setHeight(240);
_cloudImg->blit(*_videoBuffer, 0, 0, Graphics::FLIP_NONE, &rcDest, MS_ARGB(128, 255, 255, 255));
_cloudImg->blendBlitTo(*_videoBuffer, 0, 0, Graphics::FLIP_NONE, &rcDest, MS_ARGB(128, 255, 255, 255));
rcDest.left = 256;
rcDest.top = 192;
rcDest.setWidth(320);
rcDest.setHeight(240);
_cloudImg->blit(*_videoBuffer, 0, 0, Graphics::FLIP_NONE, &rcDest, MS_ARGB(128, 255, 255, 255));
_cloudImg->blendBlitTo(*_videoBuffer, 0, 0, Graphics::FLIP_NONE, &rcDest, MS_ARGB(128, 255, 255, 255));
configwindow->blit(*_videoBuffer);
configwindow->blendBlitTo(*_videoBuffer);
int sy = SY;
@ -377,16 +377,16 @@ void GriffonEngine::configMenu() {
rc.left = 148 + 3 * cos(2 * PI * _itemyloc / 16.0);
rc.top = sy + 8 * curselt - 4;
_itemImg[15]->blit(*_videoBuffer, rc.left, rc.top);
_itemImg[15]->blendBlitTo(*_videoBuffer, rc.left, rc.top);
if (_ticks < ticks1 + 1000) {
float yy = 255.0 * ((float)(_ticks - ticks1) / 1000.0);
yy = CLIP<float>(yy, 0.0, 255.0);
_videoBuffer->setAlpha((uint8)yy);
_videoBuffer->surfacePtr()->setAlpha((uint8)yy);
}
_videoBuffer->blit(*_videoBuffer2);
_videoBuffer->blendBlitTo(*_videoBuffer2);
g_system->copyRectToScreen(_videoBuffer2->getPixels(), _videoBuffer2->pitch, 0, 0, _videoBuffer2->w, _videoBuffer2->h);
_ticksPassed = _ticks;
@ -591,19 +591,19 @@ void GriffonEngine::renderSaveStates() {
int ss = (_playera.sword - 1) * 3;
if (_playera.sword == 3)
ss = 18;
_itemImg[ss]->blit(*_videoBuffer2, rcSrc.left, rcSrc.top);
_itemImg[ss]->blendBlitTo(*_videoBuffer2, rcSrc.left, rcSrc.top);
rcSrc.left += 16;
ss = (_playera.shield - 1) * 3 + 1;
if (_playera.shield == 3)
ss = 19;
_itemImg[ss]->blit(*_videoBuffer2, rcSrc.left, rcSrc.top);
_itemImg[ss]->blendBlitTo(*_videoBuffer2, rcSrc.left, rcSrc.top);
rcSrc.left += 16;
ss = (_playera.armour - 1) * 3 + 2;
if (_playera.armour == 3)
ss = 20;
_itemImg[ss]->blit(*_videoBuffer2, rcSrc.left, rcSrc.top);
_itemImg[ss]->blendBlitTo(*_videoBuffer2, rcSrc.left, rcSrc.top);
int nx = rcSrc.left + 13 + 3 * 8;
rcSrc.left = nx - 17;
@ -612,7 +612,7 @@ void GriffonEngine::renderSaveStates() {
for (int i = 0; i < 5; i++) {
rcSrc.left += 17;
if (_playera.foundSpell[i])
_itemImg[7 + i]->blit(*_videoBuffer2, rcSrc.left, rcSrc.top);
_itemImg[7 + i]->blendBlitTo(*_videoBuffer2, rcSrc.left, rcSrc.top);
}
}
} else {
@ -648,7 +648,7 @@ void GriffonEngine::saveLoadNew() {
uint32 color = *(uint32 *)_saveLoadImg->getBasePtr(120, 10);
_saveLoadImg->fillRect(Common::Rect(125, 15, 160, 33), color);
}
_saveLoadImg->setAlpha(192, true);
_saveLoadImg->surfacePtr()->setAlpha(192, true);
Common::TextToSpeechManager *ttsMan = g_system->getTextToSpeechManager();
@ -661,16 +661,16 @@ void GriffonEngine::saveLoadNew() {
rcDest.setWidth(320);
rcDest.setHeight(240);
_cloudImg->blit(*_videoBuffer, 0, 0, Graphics::FLIP_NONE, &rcDest, MS_ARGB(128, 255, 255, 255));
_cloudImg->blendBlitTo(*_videoBuffer, 0, 0, Graphics::FLIP_NONE, &rcDest, MS_ARGB(128, 255, 255, 255));
rcDest.left = 256;
rcDest.top = 192;
rcDest.setWidth(320);
rcDest.setHeight(240);
_cloudImg->blit(*_videoBuffer, 0, 0, Graphics::FLIP_NONE, &rcDest, MS_ARGB(128, 255, 255, 255));
_cloudImg->blendBlitTo(*_videoBuffer, 0, 0, Graphics::FLIP_NONE, &rcDest, MS_ARGB(128, 255, 255, 255));
_saveLoadImg->blit(*_videoBuffer);
_saveLoadImg->blendBlitTo(*_videoBuffer);
if (g_system->getEventManager()->pollEvent(_event)) {
if (_event.type == Common::EVENT_QUIT || _event.type == Common::EVENT_RETURN_TO_LAUNCHER) {
@ -790,7 +790,7 @@ void GriffonEngine::saveLoadNew() {
}
// Render savestates
_videoBuffer2->blit(*_videoBuffer);
_videoBuffer2->blendBlitTo(*_videoBuffer);
// ------------------------------------------
@ -820,7 +820,7 @@ void GriffonEngine::saveLoadNew() {
rcDest.top = (int16)(53 + (curRow - 1) * 48);
}
_itemImg[15]->blit(*_videoBuffer, rcDest.left, rcDest.top);
_itemImg[15]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top);
if (curRow != 0) {
rcDest.top = 18;
@ -829,18 +829,18 @@ void GriffonEngine::saveLoadNew() {
else if (curCol == 2)
rcDest.left = 170;
_itemImg[15]->blit(*_videoBuffer, rcDest.left, rcDest.top);
_itemImg[15]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top);
}
if (_ticks < ticks1 + 1000) {
int yy = 255 * (_ticks - ticks1) / 1000;
yy = CLIP(yy, 0, 255);
_videoBuffer->setAlpha((uint8)yy);
_videoBuffer->surfacePtr()->setAlpha((uint8)yy);
}
_videoBuffer3->fillRect(Common::Rect(0, 0, _videoBuffer3->w, _videoBuffer3->h), 0);
_videoBuffer->blit(*_videoBuffer3);
_videoBuffer->blendBlitTo(*_videoBuffer3);
g_system->copyRectToScreen(_videoBuffer3->getPixels(), _videoBuffer3->pitch, 0, 0, _videoBuffer3->w, _videoBuffer3->h);
g_system->updateScreen();

View File

@ -85,7 +85,7 @@ const int invmap[4][7][13] = {
};
void game_fillrect(Graphics::TransparentSurface *surface, int x, int y, int w, int h, int color) {
void game_fillrect(Graphics::ManagedSurface *surface, int x, int y, int w, int h, int color) {
surface->fillRect(Common::Rect(x, y, x + w, y + h), color);
}
@ -124,7 +124,7 @@ void GriffonEngine::drawAnims(int Layer) {
rcDest.setWidth(16);
rcDest.setHeight(16);
_tiles[curtilel]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_tiles[curtilel]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
if (Layer == 1) {
@ -160,7 +160,7 @@ void GriffonEngine::drawAnims(int Layer) {
}
if (pass)
_tiles[curtilel]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_tiles[curtilel]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
}
}
@ -217,7 +217,7 @@ void GriffonEngine::drawHud() {
rcDest.top = iy;
if (ico != 99)
_itemImg[ico]->blit(*_videoBuffer, rcDest.left, rcDest.top);
_itemImg[ico]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top);
if (ico == 99) {
int alpha = (int)(RND() * 96) + 96;
@ -229,7 +229,7 @@ void GriffonEngine::drawHud() {
rcDest.left = ix;
rcDest.top = iy;
_spellImg->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(alpha, 255, 255, 255));
_spellImg->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(alpha, 255, 255, 255));
}
}
}
@ -247,7 +247,7 @@ void GriffonEngine::drawHud() {
rcSrc.left = rcSrc.left + 17;
if (_player.foundSpell[i]) {
_itemImg[7 + i]->blit(*_videoBuffer, rcSrc.left, rcSrc.top);
_itemImg[7 + i]->blendBlitTo(*_videoBuffer, rcSrc.left, rcSrc.top);
game_fillrect(_videoBuffer, rcSrc.left, sy + 16, 16, 4, RGB(0, 32, 32));
game_fillrect(_videoBuffer, rcSrc.left + 1, sy + 17,
@ -262,16 +262,16 @@ void GriffonEngine::drawHud() {
if (_selEnemyOn == false) {
rcDest = Common::Rect(320, 240);
_videoBuffer2->fillRect(rcDest, 0);
_videoBuffer2->setAlpha((int)(_player.itemselshade * 4));
_videoBuffer2->blit(*_videoBuffer);
_videoBuffer2->surfacePtr()->setAlpha((int)(_player.itemselshade * 4));
_videoBuffer2->blendBlitTo(*_videoBuffer);
int sy = 202;
rcSrc.left = 46;
rcSrc.top = 46;
_inventoryImg->setAlpha(160, true); // 128
_inventoryImg->blit(*_videoBuffer, rcSrc.left, rcSrc.top);
_inventoryImg->setAlpha(255, true);
_inventoryImg->surfacePtr()->setAlpha(160, true); // 128
_inventoryImg->blendBlitTo(*_videoBuffer, rcSrc.left, rcSrc.top);
_inventoryImg->surfacePtr()->setAlpha(255, true);
int sx = 54;
sy = 55;
@ -287,7 +287,7 @@ void GriffonEngine::drawHud() {
amap = 3;
if (_curMap > 5 && _curMap < 42)
amap = 1;
mapImg[amap]->blit(*_videoBuffer, rcDest.left, rcDest.top);
mapImg[amap]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top);
long ccc = _videoBuffer->format.RGBToColor(128 + 127 * sin(3.141592 * 2 * _itemyloc / 16), 0, 0);
@ -348,19 +348,19 @@ void GriffonEngine::drawHud() {
int ss = (_player.sword - 1) * 3;
if (_player.sword == 3)
ss = 18;
_itemImg[ss]->blit(*_videoBuffer, rcSrc.left, rcSrc.top);
_itemImg[ss]->blendBlitTo(*_videoBuffer, rcSrc.left, rcSrc.top);
rcSrc.left = rcSrc.left + 16;
ss = (_player.shield - 1) * 3 + 1;
if (_player.shield == 3)
ss = 19;
_itemImg[ss]->blit(*_videoBuffer, rcSrc.left, rcSrc.top);
_itemImg[ss]->blendBlitTo(*_videoBuffer, rcSrc.left, rcSrc.top);
rcSrc.left = rcSrc.left + 16;
ss = (_player.armour - 1) * 3 + 2;
if (_player.armour == 3)
ss = 20;
_itemImg[ss]->blit(*_videoBuffer, rcSrc.left, rcSrc.top);
_itemImg[ss]->blendBlitTo(*_videoBuffer, rcSrc.left, rcSrc.top);
for (int i = 0; i <= 4; i++) {
sx = 188;
@ -368,15 +368,15 @@ void GriffonEngine::drawHud() {
rcSrc.left = sx;
rcSrc.top = sy;
if (i == 0)
_itemImg[6]->blit(*_videoBuffer, rcSrc.left, rcSrc.top);
_itemImg[6]->blendBlitTo(*_videoBuffer, rcSrc.left, rcSrc.top);
else if (i == 1)
_itemImg[12]->blit(*_videoBuffer, rcSrc.left, rcSrc.top);
_itemImg[12]->blendBlitTo(*_videoBuffer, rcSrc.left, rcSrc.top);
else if (i == 2)
_itemImg[17]->blit(*_videoBuffer, rcSrc.left, rcSrc.top);
_itemImg[17]->blendBlitTo(*_videoBuffer, rcSrc.left, rcSrc.top);
else if (i == 3)
_itemImg[16]->blit(*_videoBuffer, rcSrc.left, rcSrc.top);
_itemImg[16]->blendBlitTo(*_videoBuffer, rcSrc.left, rcSrc.top);
else if (i == 4)
_itemImg[14]->blit(*_videoBuffer, rcSrc.left, rcSrc.top);
_itemImg[14]->blendBlitTo(*_videoBuffer, rcSrc.left, rcSrc.top);
Common::sprintf_s(line, "x%i", _player.inventory[i]);
drawString(_videoBuffer, line, sx + 17, sy + 7, 0);
@ -390,7 +390,7 @@ void GriffonEngine::drawHud() {
sy = rcSrc.top;
if (_player.foundSpell[i]) {
_itemImg[7 + i]->blit(*_videoBuffer, rcSrc.left, rcSrc.top);
_itemImg[7 + i]->blendBlitTo(*_videoBuffer, rcSrc.left, rcSrc.top);
game_fillrect(_videoBuffer, rcSrc.left, sy + 16, 16, 4, RGB(0, 32, 32));
game_fillrect(_videoBuffer, rcSrc.left + 1, sy + 17,
@ -405,11 +405,11 @@ void GriffonEngine::drawHud() {
if (_curItem == 5 + i) {
rcDest.left = (float)(243 - 12 + 3 * sin(3.141592 * 2 * _itemyloc / 16));
rcDest.top = 67 + 24 * i;
_itemImg[15]->blit(*_videoBuffer, rcDest.left, rcDest.top);
_itemImg[15]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top);
} else if (_curItem == i) {
rcDest.left = (float)(189 - 12 + 3 * sin(3.141592 * 2 * _itemyloc / 16));
rcDest.top = 70 + 24 * i;
_itemImg[15]->blit(*_videoBuffer, rcDest.left, rcDest.top);
_itemImg[15]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top);
}
}
}
@ -425,7 +425,7 @@ void GriffonEngine::drawHud() {
rcDest.top = (float)(_npcInfo[_curEnemy].y + 4 - 16 - sin(3.141592 / 8 * _itemyloc));
}
_itemImg[13]->blit(*_videoBuffer, rcDest.left, rcDest.top);
_itemImg[13]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top);
}
}
@ -475,7 +475,7 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.top += (int)(RND() * 3) - 1;
}
_anims[sprite]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_anims[sprite]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
} else {
int cframe = _npcInfo[i].cattackframe;
@ -489,7 +489,7 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.setWidth(24);
rcDest.setHeight(24);
_animsAttack[sprite]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_animsAttack[sprite]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
}
@ -506,7 +506,7 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.left = _npcInfo[i].bodysection[f].x - _animSet2[s].xofs;
rcDest.top = _npcInfo[i].bodysection[f].y - _animSet2[s].yofs + 2;
_anims[2]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_anims[2]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
}
@ -527,7 +527,7 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.left = _npcInfo[i].bodysection[f].x - _animSet9[s].xofs;
rcDest.top = _npcInfo[i].bodysection[f].y - _animSet9[s].yofs + 2;
_anims[9]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_anims[9]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
}
@ -549,7 +549,7 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.left = npx - 2;
rcDest.top = npy - 24;
_anims[3]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_anims[3]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
@ -568,7 +568,7 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.left = npx - 2;
rcDest.top = npy - 24;
_anims[4]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_anims[4]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
@ -587,7 +587,7 @@ void GriffonEngine::drawNPCs(int mode) {
int x = 192 + ((int)(_itemyloc + ff * 5) % 3) * 64;
if (x > 255)
x = 255;
_spellImg->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(x, 255, 255, 255));
_spellImg->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(x, 255, 255, 255));
for (int f = 1; f <= 8; f++) {
rcSrc.left = 16 * (int)(RND() * 2);
@ -601,7 +601,7 @@ void GriffonEngine::drawNPCs(int mode) {
x = 192 + f % 3 * 64;
if (x > 255)
x = 255;
_spellImg->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(x, 255, 255, 255));
_spellImg->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(x, 255, 255, 255));
}
rcSrc.left = 0;
@ -612,8 +612,8 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.left = _npcInfo[i].bodysection[10 * ff + 9].x - 21;
rcDest.top = _npcInfo[i].bodysection[10 * ff + 9].y - 21;
_spellImg->setAlpha(192, true);
_anims[5]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_spellImg->surfacePtr()->setAlpha(192, true);
_anims[5]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
}
@ -640,7 +640,7 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.top = rcDest.top + (int)(RND() * 3) - 1;
}
_anims[sprite]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_anims[sprite]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
// wizard
@ -663,7 +663,7 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.left = rcDest.left + (int)(RND() * 3) - 1;
rcDest.top = rcDest.top + (int)(RND() * 3) - 1;
}
_anims[sprite]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_anims[sprite]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
// yellow dragon
@ -685,7 +685,7 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.left = rcDest.left + (int)(RND() * 3) - 1;
rcDest.top = rcDest.top + (int)(RND() * 3) - 1;
}
_anims[sprite]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_anims[sprite]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
@ -725,7 +725,7 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.top = rcDest.top + (int)(RND() * 3) - 1;
}
_anims[sprite]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_anims[sprite]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
} else {
_npcInfo[i].floating = _npcInfo[i].floating + 0.25 * _fpsr;
while (_npcInfo[i].floating >= 16)
@ -743,7 +743,7 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.setWidth(24);
rcDest.setHeight(24);
_animsAttack[sprite]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_animsAttack[sprite]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
}
@ -777,7 +777,7 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.left = sx + 32 + (int)(RND() * 3) - 1;
rcDest.top = sy - (int)(RND() * 6);
_spellImg->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(alpha, 255, 255, 255));
_spellImg->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(alpha, 255, 255, 255));
}
for (int ii = 0; ii <= 8; ii++) {
@ -796,7 +796,7 @@ void GriffonEngine::drawNPCs(int mode) {
int alpha = i2 / 3 * 224;
_spellImg->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(alpha, 255, 255, 255));
_spellImg->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(alpha, 255, 255, 255));
int xloc = rcDest.left;
int yloc = rcDest.top;
@ -820,7 +820,7 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.left = (float)(sx + 36 - ii * 8 + ii * cos(3.14159 * 2 * (fr3 - ii) / 16) * 2);
rcDest.top = (float)(sy + 16 + ii * sin(3.14159 * 2 * (fr3 - ii) / 16) * 3 - ii); // * 4
_spellImg->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_spellImg->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
xloc = rcDest.left;
yloc = rcDest.top;
@ -857,7 +857,7 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.left = rcDest.top + (int)(RND() * 3) - 1;
}
_anims[sprite]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_anims[sprite]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
} else {
int cframe = (int)(_npcInfo[i].cattackframe);
@ -869,7 +869,7 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.left = sx;
rcDest.top = sy;
_animsAttack[sprite]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_animsAttack[sprite]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
}
@ -908,7 +908,7 @@ void GriffonEngine::drawNPCs(int mode) {
rcDest.top = rcDest.top + (int)(RND() * 3) - 1;
}
_anims[sprite]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_anims[sprite]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
rcDest.left = npx + 4;
@ -989,7 +989,7 @@ void GriffonEngine::drawOver(int modx, int mody) {
}
if (pass)
_tiles[curtilel]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_tiles[curtilel]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
}
}
@ -1012,7 +1012,7 @@ void GriffonEngine::drawPlayer() {
rcDest.setWidth(24);
rcDest.setHeight(24);
_anims[f]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_anims[f]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
} else {
rcSrc.left = (int)(_player.attackFrame / 4) * 24;
rcSrc.top = _player.walkDir * 24;
@ -1024,7 +1024,7 @@ void GriffonEngine::drawPlayer() {
rcDest.setWidth(24);
rcDest.setHeight(24);
_animsAttack[f]->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
_animsAttack[f]->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
long ccc = _videoBuffer->format.RGBToColor(224, 224, 64);
@ -1120,7 +1120,7 @@ void GriffonEngine::drawView() {
rc.setWidth(320);
rc.setHeight(240);
_cloudImg->blit(*_videoBuffer, 0, 0, Graphics::FLIP_NONE, &rc);
_cloudImg->blendBlitTo(*_videoBuffer, 0, 0, Graphics::FLIP_NONE, &rc);
}
drawHud();
@ -1133,7 +1133,7 @@ void GriffonEngine::swash() {
do {
y += 1 * _fpsr;
_videoBuffer->setAlpha((int)y);
_videoBuffer->surfacePtr()->setAlpha((int)y);
_videoBuffer->fillRect(Common::Rect(0, 0, _videoBuffer->w, _videoBuffer->h), 0);
g_system->copyRectToScreen(_videoBuffer->getPixels(), _videoBuffer->pitch, 0, 0, _videoBuffer->w, _videoBuffer->h);
@ -1167,8 +1167,8 @@ void GriffonEngine::swash() {
do {
y += _fpsr;
_videoBuffer->setAlpha((int)(y * 25));
_mapBg->blit(*_videoBuffer);
_videoBuffer->surfacePtr()->setAlpha((int)(y * 25));
_mapBg->blendBlitTo(*_videoBuffer);
if (_cloudsOn) {
rcDest.left = (float)(256 + 256 * cos(3.141592 / 180 * _cloudAngle));
@ -1176,7 +1176,7 @@ void GriffonEngine::swash() {
rcDest.setWidth(320);
rcDest.setHeight(240);
_cloudImg->blit(*_videoBuffer, 0, 0, Graphics::FLIP_NONE, &rcDest);
_cloudImg->blendBlitTo(*_videoBuffer, 0, 0, Graphics::FLIP_NONE, &rcDest);
}
g_system->copyRectToScreen(_videoBuffer->getPixels(), _videoBuffer->pitch, 0, 0, _videoBuffer->w, _videoBuffer->h);
@ -1205,7 +1205,7 @@ void GriffonEngine::swash() {
} while (y <= 10);
_videoBuffer->setAlpha(255);
_videoBuffer->surfacePtr()->setAlpha(255);
}

View File

@ -74,15 +74,15 @@ void GriffonEngine::eventText(const char *stri) {
int pause_ticks = _ticks + 500;
int b_ticks = _ticks;
_videoBuffer->blit(*_videoBuffer3);
_videoBuffer->blit(*_videoBuffer2);
_videoBuffer->blendBlitTo(*_videoBuffer3);
_videoBuffer->blendBlitTo(*_videoBuffer2);
do {
g_system->getEventManager()->pollEvent(_event);
if ((_event.type == Common::EVENT_KEYDOWN || _event.type == Common::EVENT_CUSTOM_ENGINE_ACTION_START) && pause_ticks < _ticks)
break;
_videoBuffer2->blit(*_videoBuffer);
_videoBuffer2->blendBlitTo(*_videoBuffer);
int fr = 192;
@ -91,9 +91,9 @@ void GriffonEngine::eventText(const char *stri) {
if (fr > 192)
fr = 192;
_windowImg->setAlpha(fr, true);
_windowImg->surfacePtr()->setAlpha(fr, true);
_windowImg->blit(*_videoBuffer);
_windowImg->blendBlitTo(*_videoBuffer);
if (pause_ticks < _ticks)
drawString(_videoBuffer, stri, x, 15, 0);
@ -119,12 +119,12 @@ void GriffonEngine::eventText(const char *stri) {
g_system->delayMillis(10);
} while (1);
_videoBuffer3->blit(*_videoBuffer);
_videoBuffer3->blendBlitTo(*_videoBuffer);
_itemTicks = _ticks + 210;
}
void GriffonEngine::drawLine(Graphics::TransparentSurface *buffer, int x1, int y1, int x2, int y2, int col) {
void GriffonEngine::drawLine(Graphics::ManagedSurface *buffer, int x1, int y1, int x2, int y2, int col) {
int xdif = x2 - x1;
int ydif = y2 - y1;
@ -143,14 +143,14 @@ void GriffonEngine::drawLine(Graphics::TransparentSurface *buffer, int x1, int y
}
}
void GriffonEngine::drawString(Graphics::TransparentSurface *buffer, const char *stri, int xloc, int yloc, int col) {
void GriffonEngine::drawString(Graphics::ManagedSurface *buffer, const char *stri, int xloc, int yloc, int col) {
int l = strlen(stri);
for (int i = 0; i < l; i++) {
rcDest.left = xloc + i * 8;
rcDest.top = yloc;
_fontChr[stri[i] - 32][col]->blit(*buffer, rcDest.left, rcDest.top);
_fontChr[stri[i] - 32][col]->blendBlitTo(*buffer, rcDest.left, rcDest.top);
}
}

View File

@ -43,7 +43,7 @@
#include "audio/mixer.h"
#include "graphics/transparent_surface.h"
#include "graphics/managed_surface.h"
namespace Griffon {
@ -395,8 +395,8 @@ private:
void addFloatIcon(int ico, float xloc, float yloc);
void addFloatText(const char *stri, float xloc, float yloc, int col);
void eventText(const char *stri);
void drawLine(Graphics::TransparentSurface *buffer, int x1, int y1, int x2, int y2, int col);
void drawString(Graphics::TransparentSurface *buffer, const char *stri, int xloc, int yloc, int col);
void drawLine(Graphics::ManagedSurface *buffer, int x1, int y1, int x2, int y2, int col);
void drawString(Graphics::ManagedSurface *buffer, const char *stri, int xloc, int yloc, int col);
void drawProgress(int w, int wm);
// input.cpp
@ -414,7 +414,7 @@ private:
// resources.cpp
void initialize();
Graphics::TransparentSurface *loadImage(const char *name, bool colorkey = false);
Graphics::ManagedSurface *loadImage(const char *name, bool colorkey = false);
void loadMap(int mapnum);
void loadAnims();
void loadFont();
@ -450,23 +450,23 @@ private:
bool hasFeature(EngineFeature f) const override;
private:
Graphics::TransparentSurface *_video, *_videoBuffer, *_videoBuffer2, *_videoBuffer3;
Graphics::ManagedSurface *_video, *_videoBuffer, *_videoBuffer2, *_videoBuffer3;
// system
Graphics::TransparentSurface *_titleImg, *_titleImg2, *_inventoryImg;
Graphics::TransparentSurface *_logosImg, *_theEndImg;
Graphics::ManagedSurface *_titleImg, *_titleImg2, *_inventoryImg;
Graphics::ManagedSurface *_logosImg, *_theEndImg;
Common::Event _event;
Graphics::TransparentSurface *_mapBg, *_clipBg, *_clipBg2;
Graphics::ManagedSurface *_mapBg, *_clipBg, *_clipBg2;
unsigned int _clipSurround[4][4];
float _animSpeed; // CHECKME: it seems to always be 0.5
int _rampData[40][24];
int _curMap;
Graphics::TransparentSurface *_fontChr[224][5]; // 256 - 32
Graphics::TransparentSurface *_itemImg[21], *_windowImg;
Graphics::TransparentSurface *_spellImg;
Graphics::ManagedSurface *_fontChr[224][5]; // 256 - 32
Graphics::ManagedSurface *_itemImg[21], *_windowImg;
Graphics::ManagedSurface *_spellImg;
bool _itemSelOn;
int _curItem, _itemTicks;
@ -482,7 +482,7 @@ private:
float _fp, _fps, _fpsr; // CHECKME: _fp and _fps seems to be integers
int _secsInGame, _secStart;
Graphics::TransparentSurface *mapImg[4];
Graphics::ManagedSurface *mapImg[4];
Common::Rect rcSrc, rcDest;
@ -490,14 +490,14 @@ private:
bool _dontDrawOver; // used in map24 so that the candles don't draw over the boss, default set to 0
// saveload info
Graphics::TransparentSurface *_saveLoadImg;
Graphics::ManagedSurface *_saveLoadImg;
// post info
float _postInfo[21][3];
int _postInfoNbr;
// cloud info
Graphics::TransparentSurface *_cloudImg;
Graphics::ManagedSurface *_cloudImg;
float _cloudAngle;
int _cloudsOn;
@ -512,13 +512,13 @@ private:
int _asecstart;
// tile info
Graphics::TransparentSurface *_tiles[4];
Graphics::ManagedSurface *_tiles[4];
int _tileinfo[3][40][24][3]; // maplayer, x, y, tiledata (tile, tilelayer)
// animation info
Graphics::TransparentSurface *_anims[100];
Graphics::ManagedSurface *_anims[100];
// id number 0&1 = players
Graphics::TransparentSurface *_animsAttack[100];
Graphics::ManagedSurface *_animsAttack[100];
// attack anims
AttackOffsetStruct _playerAttackOfs[4][16];

View File

@ -1307,7 +1307,7 @@ void GriffonEngine::updateSpells() {
}
if (xloc > -16 && xloc < 304 && yloc > -16 && yloc < 224) {
_spellImg->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB((int)alf, 255, 255, 255));
_spellImg->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB((int)alf, 255, 255, 255));
if (_spellInfo[i].damagewho == 0) {
for (int e = 1; e <= _lastNpc; e++) {
@ -1382,7 +1382,7 @@ void GriffonEngine::updateSpells() {
rcDest.left = xloc;
rcDest.top = yloc;
_spellImg->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(255, 255, 255, 255));
_spellImg->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(255, 255, 255, 255));
_spellInfo[i].frame = _spellInfo[i].frame - 0.2 * _fpsr;
if (_spellInfo[i].frame < 0)
@ -1504,7 +1504,7 @@ void GriffonEngine::updateSpells() {
rcDest.top = yloc;
if (xloc > -16 && xloc < 304 && yloc > -16 && yloc < 224) {
_spellImg->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(255, 255, 255, 255));
_spellImg->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(255, 255, 255, 255));
if (scatter) {
if (_spellInfo[i].damagewho == 0) {
@ -1583,7 +1583,7 @@ void GriffonEngine::updateSpells() {
if (fra > 24)
f = 192 * (1 - (fra - 24) / 8);
_spellImg->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(f, 255, 255, 255));
_spellImg->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(f, 255, 255, 255));
_spellInfo[i].frame = _spellInfo[i].frame - 0.3 * _fpsr;
if (_spellInfo[i].frame < 0) {
@ -1680,7 +1680,7 @@ void GriffonEngine::updateSpells() {
rcDest.left = xloc;
rcDest.top = yloc;
_spellImg->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(alpha, 255, 255, 255));
_spellImg->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(alpha, 255, 255, 255));
}
} else {
@ -1712,7 +1712,7 @@ void GriffonEngine::updateSpells() {
rcDest.left = xloc;
rcDest.top = yloc;
_spellImg->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(192, 255, 255, 255));
_spellImg->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(192, 255, 255, 255));
}
if (xloc < -1 || yloc < -1 || xloc > 304 || yloc > 224)
@ -2089,7 +2089,7 @@ void GriffonEngine::updateSpellsUnder() {
if (fra > 24)
f = 160 * (1 - (fra - 24) / 8);
_spellImg->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(f, 255, 255, 255));
_spellImg->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(f, 255, 255, 255));
_spellInfo[i].frame = _spellInfo[i].frame - 0.2 * _fpsr;
if (_spellInfo[i].frame < 0)
@ -2191,7 +2191,7 @@ void GriffonEngine::updateSpellsUnder() {
rcDest.top = (int)yloc;
if (xloc > -1 && xloc < 304 && yloc > -1 && yloc < 224) {
_spellImg->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(alpha, 255, 255, 255));
_spellImg->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(alpha, 255, 255, 255));
int sx = (xloc / 2 + 4);
int sy = (yloc / 2 + 8);
@ -2313,7 +2313,7 @@ void GriffonEngine::updateSpellsUnder() {
rcDest.top = yloc;
if (xloc > -16 && xloc < 320 && yloc > -16 && yloc < 240) {
_spellImg->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(alpha, 255, 255, 255));
_spellImg->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(alpha, 255, 255, 255));
if (_spellInfo[i].damagewho == 1) {
float xdif = (xloc + 8) - (_player.px + 12);

View File

@ -66,19 +66,19 @@ void GriffonEngine::initialize() {
_floatIcon[i].ico = 0;
}
_video = new Graphics::TransparentSurface;
_video = new Graphics::ManagedSurface;
_video->create(320, 240, g_system->getScreenFormat());
_videoBuffer = new Graphics::TransparentSurface;
_videoBuffer = new Graphics::ManagedSurface;
_videoBuffer->create(320, 240, g_system->getScreenFormat());
_videoBuffer2 = new Graphics::TransparentSurface;
_videoBuffer2 = new Graphics::ManagedSurface;
_videoBuffer2->create(320, 240, g_system->getScreenFormat());
_videoBuffer3 = new Graphics::TransparentSurface;
_videoBuffer3 = new Graphics::ManagedSurface;
_videoBuffer3->create(320, 240, g_system->getScreenFormat());
_mapBg = new Graphics::TransparentSurface;
_mapBg = new Graphics::ManagedSurface;
_mapBg->create(320, 240, g_system->getScreenFormat());
_clipBg = new Graphics::TransparentSurface;
_clipBg = new Graphics::ManagedSurface;
_clipBg->create(320, 240, g_system->getScreenFormat());
_clipBg2 = new Graphics::TransparentSurface;
_clipBg2 = new Graphics::ManagedSurface;
_clipBg2->create(320, 240, g_system->getScreenFormat());
for (int i = 0; i <= 3; i++) {
@ -89,13 +89,13 @@ void GriffonEngine::initialize() {
}
_cloudImg = loadImage("art/clouds.bmp", true);
_cloudImg->setAlpha(64, true);
_cloudImg->surfacePtr()->setAlpha(64, true);
_saveLoadImg = nullptr;
_titleImg = loadImage("art/titleb.bmp");
_titleImg2 = loadImage("art/titlea.bmp", true);
//_titleimg2->setAlpha(204, true);
//_titleimg2->surfacePtr()->setAlpha(204, true);
_inventoryImg = loadImage("art/inventory.bmp", true);
@ -130,7 +130,7 @@ void GriffonEngine::initialize() {
setupAudio();
}
Graphics::TransparentSurface *GriffonEngine::loadImage(const char *name, bool colorkey) {
Graphics::ManagedSurface *GriffonEngine::loadImage(const char *name, bool colorkey) {
Common::File file;
file.open(name);
@ -144,10 +144,10 @@ Graphics::TransparentSurface *GriffonEngine::loadImage(const char *name, bool co
bitmapDecoder.loadStream(file);
file.close();
Graphics::TransparentSurface *surface = new Graphics::TransparentSurface(*bitmapDecoder.getSurface()->convertTo(g_system->getScreenFormat()));
Graphics::ManagedSurface *surface = new Graphics::ManagedSurface(bitmapDecoder.getSurface()->convertTo(g_system->getScreenFormat()));
if (colorkey)
surface->applyColorKey(255, 0, 255);
surface->surfacePtr()->applyColorKey(255, 0, 255);
return surface;
}
@ -321,7 +321,7 @@ void GriffonEngine::loadMap(int mapnum) {
}
}
_tiles[curtilel]->blit(*_mapBg, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(alpha, 255, 255, 255));
_tiles[curtilel]->blendBlitTo(*_mapBg, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(alpha, 255, 255, 255));
rcDest.left = x * 8;
rcDest.top = y * 8;
@ -1087,10 +1087,10 @@ void GriffonEngine::loadAnims() {
}
void GriffonEngine::loadItemImgs() {
Graphics::TransparentSurface *temp = loadImage("art/icons.bmp", true);
Graphics::ManagedSurface *temp = loadImage("art/icons.bmp", true);
for (int i = 0; i <= 20; i++) {
_itemImg[i] = new Graphics::TransparentSurface;
_itemImg[i] = new Graphics::ManagedSurface;
_itemImg[i]->create(16, 16, g_system->getScreenFormat());
rcSrc.left = i * 16;
@ -1098,20 +1098,20 @@ void GriffonEngine::loadItemImgs() {
rcSrc.setWidth(16);
rcSrc.setHeight(16);
temp->blit(*_itemImg[i], 0, 0, Graphics::FLIP_NONE, &rcSrc);
temp->blendBlitTo(*_itemImg[i], 0, 0, Graphics::FLIP_NONE, &rcSrc);
}
temp->free();
}
void GriffonEngine::loadFont() {
Graphics::TransparentSurface *font = loadImage("art/font.bmp", true);
Graphics::ManagedSurface *font = loadImage("art/font.bmp", true);
for (int i = 32; i <= 255; i++)
for (int f = 0; f <= 4; f++) {
int i2 = i - 32;
_fontChr[i2][f] = new Graphics::TransparentSurface;
_fontChr[i2][f] = new Graphics::ManagedSurface;
_fontChr[i2][f]->create(8, 8, g_system->getScreenFormat());
int col = i2 % 40;
@ -1125,7 +1125,7 @@ void GriffonEngine::loadFont() {
rcDest.left = 0;
rcDest.top = 0;
font->blit(*_fontChr[i2][f], rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
font->blendBlitTo(*_fontChr[i2][f], rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc);
}
font->free();

View File

@ -122,7 +122,7 @@ void GriffonEngine::setupAudio() {
const char *stri = "Loading...";
drawString(_videoBuffer, stri, 160 - 4 * strlen(stri), 116, 0);
Graphics::TransparentSurface *loadimg = loadImage("art/load.bmp", true);
Graphics::ManagedSurface *loadimg = loadImage("art/load.bmp", true);
rcSrc.left = 0;
rcSrc.top = 0;
@ -132,7 +132,7 @@ void GriffonEngine::setupAudio() {
rcDest.left = 160 - 44;
rcDest.top = 116 + 12;
loadimg->blit(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(160, 255, 255, 255));
loadimg->blendBlitTo(*_videoBuffer, rcDest.left, rcDest.top, Graphics::FLIP_NONE, &rcSrc, MS_ARGB(160, 255, 255, 255));
g_system->copyRectToScreen(_videoBuffer->getPixels(), _videoBuffer->pitch, 0, 0, _videoBuffer->w, _videoBuffer->h);
g_system->updateScreen();