mirror of
https://github.com/vcmi/vcmi.git
synced 2025-09-16 09:26:28 +02:00
Flags coloring
This commit is contained in:
@@ -144,6 +144,22 @@ void MapHandler::drawRiver(QPainter & painter, int x, int y, int z)
|
|||||||
painter.drawImage(x * tileSize, y * tileSize, riverImages.at(tinfo.riverType)[tinfo.riverDir]->mirrored(hflip, vflip));
|
painter.drawImage(x * tileSize, y * tileSize, riverImages.at(tinfo.riverType)[tinfo.riverDir]->mirrored(hflip, vflip));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setPlayerColor(QImage * sur, PlayerColor player)
|
||||||
|
{
|
||||||
|
if(player == PlayerColor::UNFLAGGABLE)
|
||||||
|
return;
|
||||||
|
if(sur->format() == QImage::Format_Indexed8)
|
||||||
|
{
|
||||||
|
QRgb color = graphics->neutralColor;
|
||||||
|
if(player != PlayerColor::NEUTRAL)
|
||||||
|
color = graphics->playerColors[player.getNum()];
|
||||||
|
|
||||||
|
sur->setColor(5, color);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
logGlobal->warn("Warning, setPlayerColor called on not 8bpp surface!");
|
||||||
|
}
|
||||||
|
|
||||||
void MapHandler::initObjectRects()
|
void MapHandler::initObjectRects()
|
||||||
{
|
{
|
||||||
//initializing objects / rects
|
//initializing objects / rects
|
||||||
@@ -374,6 +390,8 @@ MapHandler::AnimBitmapHolder MapHandler::findObjectBitmap(const CGObjectInstance
|
|||||||
auto bitmap = animation->getImage((anim + getPhaseShift(obj)) % groupSize);
|
auto bitmap = animation->getImage((anim + getPhaseShift(obj)) % groupSize);
|
||||||
if(!bitmap)
|
if(!bitmap)
|
||||||
return MapHandler::AnimBitmapHolder();
|
return MapHandler::AnimBitmapHolder();
|
||||||
|
|
||||||
|
setPlayerColor(bitmap.get(), obj->tempOwner);
|
||||||
|
|
||||||
return MapHandler::AnimBitmapHolder(bitmap);
|
return MapHandler::AnimBitmapHolder(bitmap);
|
||||||
}
|
}
|
||||||
@@ -405,19 +423,20 @@ void MapHandler::drawObjects(QPainter & painter, int x, int y, int z)
|
|||||||
painter.drawImage(QPoint(x * 32, y * 32), *objData.objBitmap, object.rect);
|
painter.drawImage(QPoint(x * 32, y * 32), *objData.objBitmap, object.rect);
|
||||||
//painter.drawImage(pos.x * 32 - object.rect.x(), pos.y * 32 - object.rect.y(), *objData.objBitmap);
|
//painter.drawImage(pos.x * 32 - object.rect.x(), pos.y * 32 - object.rect.y(), *objData.objBitmap);
|
||||||
//drawObject(targetSurf, objData.objBitmap, &srcRect, objData.isMoving);
|
//drawObject(targetSurf, objData.objBitmap, &srcRect, objData.isMoving);
|
||||||
if (objData.flagBitmap)
|
if(objData.flagBitmap)
|
||||||
{
|
{
|
||||||
/*if (objData.isMoving)
|
/*if (objData.isMoving)
|
||||||
{
|
{
|
||||||
srcRect.y += FRAMES_PER_MOVE_ANIM_GROUP * 2 - tileSize;
|
srcRect.y += FRAMES_PER_MOVE_ANIM_GROUP * 2 - tileSize;
|
||||||
Rect dstRect(realPos.x, realPos.y - tileSize / 2, tileSize, tileSize);
|
Rect dstRect(realPos.x, realPos.y - tileSize / 2, tileSize, tileSize);
|
||||||
drawHeroFlag(targetSurf, objData.flagBitmap, &srcRect, &dstRect, true);
|
drawHeroFlag(targetSurf, objData.flagBitmap, &srcRect, &dstRect, true);
|
||||||
}
|
|
||||||
else if (obj->pos.x == pos.x && obj->pos.y == pos.y)
|
|
||||||
{
|
|
||||||
Rect dstRect(realPos.x - 2 * tileSize, realPos.y - tileSize, 3 * tileSize, 2 * tileSize);
|
|
||||||
drawHeroFlag(targetSurf, objData.flagBitmap, nullptr, &dstRect, false);
|
|
||||||
}*/
|
}*/
|
||||||
|
if (obj->pos.x == pos.x && obj->pos.y == pos.y)
|
||||||
|
{
|
||||||
|
//Rect dstRect(realPos.x - 2 * tileSize, realPos.y - tileSize, 3 * tileSize, 2 * tileSize);
|
||||||
|
painter.drawImage(QPoint(x * 32, y * 32), *objData.flagBitmap, object.rect);
|
||||||
|
//drawHeroFlag(targetSurf, objData.flagBitmap, nullptr, &dstRect, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -451,11 +470,13 @@ void MapHandler::drawObject(QPainter & painter, const TerrainTileObject & object
|
|||||||
Rect dstRect(realPos.x, realPos.y - tileSize / 2, tileSize, tileSize);
|
Rect dstRect(realPos.x, realPos.y - tileSize / 2, tileSize, tileSize);
|
||||||
drawHeroFlag(targetSurf, objData.flagBitmap, &srcRect, &dstRect, true);
|
drawHeroFlag(targetSurf, objData.flagBitmap, &srcRect, &dstRect, true);
|
||||||
}
|
}
|
||||||
else if (obj->pos.x == pos.x && obj->pos.y == pos.y)
|
else */
|
||||||
|
if (obj->pos.x == pos.x && obj->pos.y == pos.y)
|
||||||
{
|
{
|
||||||
Rect dstRect(realPos.x - 2 * tileSize, realPos.y - tileSize, 3 * tileSize, 2 * tileSize);
|
//Rect dstRect(realPos.x - 2 * tileSize, realPos.y - tileSize, 3 * tileSize, 2 * tileSize);
|
||||||
drawHeroFlag(targetSurf, objData.flagBitmap, nullptr, &dstRect, false);
|
//drawHeroFlag(targetSurf, objData.flagBitmap, nullptr, &dstRect, false);
|
||||||
}*/
|
painter.drawImage(pos.x * 32 - object.rect.x(), pos.y * 32 - object.rect.y(), *objData.flagBitmap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -475,21 +496,9 @@ void MapHandler::drawObjectAt(QPainter & painter, const CGObjectInstance * obj,
|
|||||||
if (objData.objBitmap)
|
if (objData.objBitmap)
|
||||||
{
|
{
|
||||||
painter.drawImage(QPoint((x + 1) * 32 - objData.objBitmap->width(), (y + 1) * 32 - objData.objBitmap->height()), *objData.objBitmap);
|
painter.drawImage(QPoint((x + 1) * 32 - objData.objBitmap->width(), (y + 1) * 32 - objData.objBitmap->height()), *objData.objBitmap);
|
||||||
|
|
||||||
//drawObject(targetSurf, objData.objBitmap, &srcRect, objData.isMoving);
|
|
||||||
if (objData.flagBitmap)
|
if (objData.flagBitmap)
|
||||||
{
|
{
|
||||||
/*if (objData.isMoving)
|
painter.drawImage(QPoint((x + 1) * 32 - objData.objBitmap->width(), (y + 1) * 32 - objData.objBitmap->height()), *objData.flagBitmap);
|
||||||
{
|
|
||||||
srcRect.y += FRAMES_PER_MOVE_ANIM_GROUP * 2 - tileSize;
|
|
||||||
Rect dstRect(realPos.x, realPos.y - tileSize / 2, tileSize, tileSize);
|
|
||||||
drawHeroFlag(targetSurf, objData.flagBitmap, &srcRect, &dstRect, true);
|
|
||||||
}
|
|
||||||
else if (obj->pos.x == pos.x && obj->pos.y == pos.y)
|
|
||||||
{
|
|
||||||
Rect dstRect(realPos.x - 2 * tileSize, realPos.y - tileSize, 3 * tileSize, 2 * tileSize);
|
|
||||||
drawHeroFlag(targetSurf, objData.flagBitmap, nullptr, &dstRect, false);
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -68,5 +68,7 @@ void PlayerSettings::on_pushButton_clicked()
|
|||||||
{
|
{
|
||||||
header.players[w->playerColor] = w->playerInfo;
|
header.players[w->playerColor] = w->playerInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -21,6 +21,8 @@ private slots:
|
|||||||
|
|
||||||
void on_playersCount_currentIndexChanged(int index);
|
void on_playersCount_currentIndexChanged(int index);
|
||||||
|
|
||||||
|
void on_pushButton_clicked();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::PlayerSettings *ui;
|
Ui::PlayerSettings *ui;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user