QTfrontend/ui/widget/bgwidget.cpp
author alfadur
Wed, 27 Mar 2024 02:57:44 +0300
changeset 16002 e915ed28726e
parent 11046 47a8c19ecb60
permissions -rw-r--r--
thread server reference through dispatch to ensure rooms can be auto dropped
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
     1
/*
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
     2
 * Hedgewars, a free turn based strategy game
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
     3
 * Copyright (c) 2009 Kristian Lehmann <email@thexception.net>
11046
47a8c19ecb60 more copyright fixes
sheepluva
parents: 10108
diff changeset
     4
 * Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com>
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
     5
 *
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
     6
 * This program is free software; you can redistribute it and/or modify
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
     7
 * it under the terms of the GNU General Public License as published by
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
     8
 * the Free Software Foundation; version 2 of the License
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
     9
 *
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    10
 * This program is distributed in the hope that it will be useful,
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    13
 * GNU General Public License for more details.
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    14
 *
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    16
 * along with this program; if not, write to the Free Software
10108
c68cf030eded update FSF address. note: two sdl include files (by Sam Lantinga) still have the old FSF address in their copyright - but I ain't gonna touch their copyright headers
sheepluva
parents: 9998
diff changeset
    17
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    18
 */
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    19
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    20
#include "bgwidget.h"
6579
fc52f7c22c9b GCI task: season greetings
valnut
parents: 6574
diff changeset
    21
#include "hwconsts.h"
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    22
6242
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    23
SpritePosition::SpritePosition(QWidget * parent, int sw, int sh)
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    24
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    25
    wParent = parent;
6242
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    26
    iSpriteWidth = sw;
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    27
    iSpriteHeight = sh;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    28
    reset();
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    29
}
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    30
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    31
SpritePosition::~SpritePosition()
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    32
{
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    33
}
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    34
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    35
void SpritePosition::move()
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    36
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    37
    fX += fXMov;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    38
    fY += fYMov;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    39
    iAngle += 4;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    40
    if (iAngle >= 360) iAngle = 0;
6241
e2c7771162ae frontend flakes:
sheepluva
parents: 6060
diff changeset
    41
    if ((fX - fXMov) > wParent->width()) reset();
e2c7771162ae frontend flakes:
sheepluva
parents: 6060
diff changeset
    42
    else if ((fY - fYMov) > wParent->height()) reset();
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    43
}
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    44
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    45
void SpritePosition::reset()
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    46
{
6242
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    47
    // random movement values
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    48
    fYMov = ((qrand() % 400)+300) / 100.0f;
6242
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    49
    fXMov = fYMov * 0.2f+((qrand()%100)/100.0f * 0.6f); //so between 0.2 and 0.8, or 0.5 +/- 0.3
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    50
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    51
    // random respawn locations
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    52
    int tmp = fXMov * (wParent->height() / fYMov);
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    53
    fX = (qrand() % (wParent->width() + tmp)) - tmp;
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    54
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    55
    // adjust respawn location to be next to (but outside) the parent's limits
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    56
    if (fX > -iSpriteWidth)
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    57
    {
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    58
        fY = -1 * iSpriteHeight;
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    59
    }
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    60
    else
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    61
    {
6243
9777d802be1a whoops, I'm a nerd
sheepluva
parents: 6242
diff changeset
    62
        fY = qrand() % wParent->height();
6242
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    63
        fX = -iSpriteWidth;
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    64
    }
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    65
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
    66
    // random initial angle
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    67
    iAngle = qrand() % 360;
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    68
}
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    69
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    70
QPoint SpritePosition::pos()
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    71
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    72
    return QPoint((int)fX,(int)fY);
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    73
}
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    74
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    75
int SpritePosition::getAngle()
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    76
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    77
    return iAngle;
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    78
}
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    79
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    80
void SpritePosition::init()
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    81
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    82
    fY = qrand() % (wParent->height() + 1);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
    83
    fX = qrand() % (wParent->width() + 1);
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    84
}
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    85
6574
ec059b55aa72 GCI task: stars
bovi
parents: 6243
diff changeset
    86
BGWidget::BGWidget(QWidget * parent) : QWidget(parent), enabled(false)
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    87
{
2071
0faa147c47df Still trying to improve perf of stars - this seems to help a little bit
nemo
parents: 2069
diff changeset
    88
    setAttribute(Qt::WA_NoSystemBackground, true);
6579
fc52f7c22c9b GCI task: season greetings
valnut
parents: 6574
diff changeset
    89
fc52f7c22c9b GCI task: season greetings
valnut
parents: 6574
diff changeset
    90
    QString fname;
fc52f7c22c9b GCI task: season greetings
valnut
parents: 6574
diff changeset
    91
fc52f7c22c9b GCI task: season greetings
valnut
parents: 6574
diff changeset
    92
    //For each season, there is a replacement for the star (Star.png)
fc52f7c22c9b GCI task: season greetings
valnut
parents: 6574
diff changeset
    93
    //Todo: change element for easter and birthday
fc52f7c22c9b GCI task: season greetings
valnut
parents: 6574
diff changeset
    94
    //Simply replace Confetti.png and Egg.png with an appropriate graphic)
fc52f7c22c9b GCI task: season greetings
valnut
parents: 6574
diff changeset
    95
    switch (season)
fc52f7c22c9b GCI task: season greetings
valnut
parents: 6574
diff changeset
    96
    {
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6583
diff changeset
    97
        case SEASON_CHRISTMAS :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6583
diff changeset
    98
            fname = "Flake.png";
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6583
diff changeset
    99
            break;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6583
diff changeset
   100
        case SEASON_EASTER :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6583
diff changeset
   101
            fname = "Egg.png";
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6583
diff changeset
   102
            break;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6583
diff changeset
   103
        case SEASON_HWBDAY :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6583
diff changeset
   104
            fname = "Confetti.png";
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6583
diff changeset
   105
            break;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6583
diff changeset
   106
        default :
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6583
diff changeset
   107
            fname = "Star.png";
6579
fc52f7c22c9b GCI task: season greetings
valnut
parents: 6574
diff changeset
   108
    }
fc52f7c22c9b GCI task: season greetings
valnut
parents: 6574
diff changeset
   109
fc52f7c22c9b GCI task: season greetings
valnut
parents: 6574
diff changeset
   110
    sprite.load(":/res/" + fname);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2071
diff changeset
   111
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   112
    setAutoFillBackground(false);
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   113
6242
27297c421bbc frontend flakes:
sheepluva
parents: 6241
diff changeset
   114
    for (int i = 0; i < SPRITE_MAX; i++) spritePositions[i] = new SpritePosition(this, sprite.width(), sprite.height());
2377
f3fab2b09e0c And in frontend
nemo
parents: 2071
diff changeset
   115
6241
e2c7771162ae frontend flakes:
sheepluva
parents: 6060
diff changeset
   116
    for (int i = 0; i < 90; i++)
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   117
    {
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   118
        rotatedSprites[i] = new QImage(sprite.width(), sprite.height(), QImage::Format_ARGB32);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   119
        rotatedSprites[i]->fill(0);
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   120
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   121
        QPoint translate(sprite.width()/2, sprite.height()/2);
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   122
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   123
        QPainter p;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   124
        p.begin(rotatedSprites[i]);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6583
diff changeset
   125
        //  p.setRenderHint(QPainter::Antialiasing);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   126
        p.setRenderHint(QPainter::SmoothPixmapTransform);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   127
        p.translate(translate.x(), translate.y());
6241
e2c7771162ae frontend flakes:
sheepluva
parents: 6060
diff changeset
   128
        p.rotate(4 * i);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   129
        p.translate(-1*translate.x(), -1*translate.y());
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   130
        p.drawImage(0, 0, sprite);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   131
    }
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   132
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   133
    timerAnimation = new QTimer();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   134
    connect(timerAnimation, SIGNAL(timeout()), this, SLOT(animate()));
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   135
    timerAnimation->setInterval(ANIMATION_INTERVAL);
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   136
}
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   137
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   138
BGWidget::~BGWidget()
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   139
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   140
    for (int i = 0; i < SPRITE_MAX; i++) delete spritePositions[i];
6241
e2c7771162ae frontend flakes:
sheepluva
parents: 6060
diff changeset
   141
    for (int i = 0; i < 90; i++) delete rotatedSprites[i];
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   142
    delete timerAnimation;
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   143
}
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   144
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   145
void BGWidget::paintEvent(QPaintEvent *event)
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   146
{
4560
5d6c7f88db73 - Some work on drawMap widget and scene to allow undo, clear, save and load operations
unc0rr
parents: 2948
diff changeset
   147
    Q_UNUSED(event);
6574
ec059b55aa72 GCI task: stars
bovi
parents: 6243
diff changeset
   148
    if (!enabled)
ec059b55aa72 GCI task: stars
bovi
parents: 6243
diff changeset
   149
        return;
4560
5d6c7f88db73 - Some work on drawMap widget and scene to allow undo, clear, save and load operations
unc0rr
parents: 2948
diff changeset
   150
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   151
    QPainter p;
6241
e2c7771162ae frontend flakes:
sheepluva
parents: 6060
diff changeset
   152
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   153
    p.begin(this);
6241
e2c7771162ae frontend flakes:
sheepluva
parents: 6060
diff changeset
   154
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   155
    for (int i = 0; i < SPRITE_MAX; i++)
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   156
    {
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   157
        QPoint point = spritePositions[i]->pos();
6241
e2c7771162ae frontend flakes:
sheepluva
parents: 6060
diff changeset
   158
        p.drawImage(point.x(), point.y(), *rotatedSprites[spritePositions[i]->getAngle()/4]);
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   159
    }
6241
e2c7771162ae frontend flakes:
sheepluva
parents: 6060
diff changeset
   160
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   161
    p.end();
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   162
}
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   163
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   164
void BGWidget::animate()
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   165
{
6574
ec059b55aa72 GCI task: stars
bovi
parents: 6243
diff changeset
   166
    if (!enabled)
ec059b55aa72 GCI task: stars
bovi
parents: 6243
diff changeset
   167
        return;
ec059b55aa72 GCI task: stars
bovi
parents: 6243
diff changeset
   168
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   169
    for (int i = 0; i < SPRITE_MAX; i++)
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   170
    {
6241
e2c7771162ae frontend flakes:
sheepluva
parents: 6060
diff changeset
   171
        QPoint oldPos = spritePositions[i]->pos();
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   172
        spritePositions[i]->move();
6241
e2c7771162ae frontend flakes:
sheepluva
parents: 6060
diff changeset
   173
        QPoint newPos = spritePositions[i]->pos();
e2c7771162ae frontend flakes:
sheepluva
parents: 6060
diff changeset
   174
e2c7771162ae frontend flakes:
sheepluva
parents: 6060
diff changeset
   175
        int xdiff = newPos.x() - oldPos.x();
e2c7771162ae frontend flakes:
sheepluva
parents: 6060
diff changeset
   176
        int ydiff = newPos.y() - oldPos.y();
e2c7771162ae frontend flakes:
sheepluva
parents: 6060
diff changeset
   177
        update(oldPos.x(), oldPos.y(), xdiff+sprite.width(), ydiff+sprite.height());
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   178
    }
8393
85bd6c7b2641 Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents: 6952
diff changeset
   179
8420
98e3cc0418f9 Removed constant repainting of bgwidget on every frame.
dag10
parents: 8393
diff changeset
   180
    //repaint(); // Repaint every frame. Prevents ghosting of widgets if widgets resize in runtime.
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   181
}
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   182
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   183
void BGWidget::startAnimation()
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   184
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   185
    timerAnimation->start();
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   186
}
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   187
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   188
void BGWidget::stopAnimation()
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   189
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   190
    timerAnimation->stop();
6583
4218782d8ca0 skip button sound when exiting
bovi
parents: 6579
diff changeset
   191
    repaint();
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   192
}
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   193
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   194
void BGWidget::init()
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   195
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2377
diff changeset
   196
    for (int i = 0; i < SPRITE_MAX; i++) spritePositions[i]->init();
2012
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
   197
}