QTfrontend/ui/widget/bgwidget.cpp
author dag10 <gottlieb.drew@gmail.com>
Wed, 16 Jan 2013 18:34:43 -0500
changeset 8393 85bd6c7b2641
parent 6952 7f70f37bbf08
child 8420 98e3cc0418f9
permissions -rw-r--r--
Can now change theme for static and mission maps. Fixed mission map descriptions that had commas which broke them. Now, you must escape commas in map descriptions. Made bgwidget repaint on animation tick to avoid buffer-not-clearing issue with widgets that change overtop the background leaving a ghost image of the widget's previous state. Generated map is now the default map in the mapconfig widget.
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>
6952
7f70f37bbf08 license header year range adjustments
sheepluva
parents: 6700
diff changeset
     4
 * Copyright (c) 2004-2012 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
76fff564246b TheXception's patch:
unc0rr
parents:
diff changeset
    17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
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
85bd6c7b2641 Can now change theme for static and mission maps.
dag10 <gottlieb.drew@gmail.com>
parents: 6952
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
}