QTfrontend/hedgehogerWidget.cpp
author nemo
Sun, 10 Oct 2010 16:51:40 -0400
changeset 3949 4c4c0a2507cc
parent 3871 c91aefe1dca2
child 4412 c9a78ba03679
permissions -rw-r--r--
Add the standard delay (1.25 seconds) between attacks on inf attack mode, as well as checks for damage and win. There is probably some better way to do this. Weapons still need fixing.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     1
/*
1066
1f1b3686a2b0 Update copyright headers a bit
unc0rr
parents: 951
diff changeset
     2
 * Hedgewars, a free turn based strategy game
883
07a568ba44e0 Update copyright info in source files headers
unc0rr
parents: 624
diff changeset
     3
 * Copyright (c) 2006-2008 Ulyanov Igor <iulyanov@gmail.com>
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     4
 *
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     8
 *
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    12
 * GNU General Public License for more details.
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    13
 *
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    14
 * You should have received a copy of the GNU General Public License
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    15
 * along with this program; if not, write to the Free Software
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    17
 */
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    18
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    19
#include "hedgehogerWidget.h"
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    20
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    21
#include "frameTeam.h"
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    22
612
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 579
diff changeset
    23
CHedgehogerWidget::CHedgehogerWidget(const QImage& im, QWidget * parent) :
951
c021955435b2 Minimum number of hedgehogs in team is 1 now
unc0rr
parents: 883
diff changeset
    24
    ItemNum(im, parent, 1)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    25
{
3871
c91aefe1dca2 Frontend:
smaxx
parents: 1784
diff changeset
    26
  // TODO: maxHedgehogsPerGame doesn't reset properly and won't match map limits for now
c91aefe1dca2 Frontend:
smaxx
parents: 1784
diff changeset
    27
  /*if(parent) {
1300
22c03f69e142 Fix arithmetic bug in CHedgehogerWidget
unc0rr
parents: 1066
diff changeset
    28
    pOurFrameTeams = dynamic_cast<FrameTeams*>(parent->parentWidget());
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    29
  }
1300
22c03f69e142 Fix arithmetic bug in CHedgehogerWidget
unc0rr
parents: 1066
diff changeset
    30
  if(pOurFrameTeams->overallHedgehogs + 4 > pOurFrameTeams->maxHedgehogsPerGame) {
22c03f69e142 Fix arithmetic bug in CHedgehogerWidget
unc0rr
parents: 1066
diff changeset
    31
    numItems = pOurFrameTeams->maxHedgehogsPerGame - pOurFrameTeams->overallHedgehogs;
22c03f69e142 Fix arithmetic bug in CHedgehogerWidget
unc0rr
parents: 1066
diff changeset
    32
  } else numItems = 4;
3871
c91aefe1dca2 Frontend:
smaxx
parents: 1784
diff changeset
    33
  pOurFrameTeams->overallHedgehogs += numItems;*/
612
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 579
diff changeset
    34
}
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 579
diff changeset
    35
1300
22c03f69e142 Fix arithmetic bug in CHedgehogerWidget
unc0rr
parents: 1066
diff changeset
    36
void CHedgehogerWidget::incItems()
612
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 579
diff changeset
    37
{
3871
c91aefe1dca2 Frontend:
smaxx
parents: 1784
diff changeset
    38
  //if (pOurFrameTeams->overallHedgehogs < pOurFrameTeams->maxHedgehogsPerGame) {
624
e7673b036db5 weaponItem added
displacer
parents: 612
diff changeset
    39
    numItems++;
3871
c91aefe1dca2 Frontend:
smaxx
parents: 1784
diff changeset
    40
    //pOurFrameTeams->overallHedgehogs++;
624
e7673b036db5 weaponItem added
displacer
parents: 612
diff changeset
    41
    emit hedgehogsNumChanged();
3871
c91aefe1dca2 Frontend:
smaxx
parents: 1784
diff changeset
    42
  //}
612
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 579
diff changeset
    43
}
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 579
diff changeset
    44
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 579
diff changeset
    45
void CHedgehogerWidget::decItems()
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 579
diff changeset
    46
{
624
e7673b036db5 weaponItem added
displacer
parents: 612
diff changeset
    47
  numItems--;
3871
c91aefe1dca2 Frontend:
smaxx
parents: 1784
diff changeset
    48
  //pOurFrameTeams->overallHedgehogs--;
624
e7673b036db5 weaponItem added
displacer
parents: 612
diff changeset
    49
  emit hedgehogsNumChanged();
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    50
}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    51
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    52
CHedgehogerWidget::~CHedgehogerWidget()
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    53
{
3871
c91aefe1dca2 Frontend:
smaxx
parents: 1784
diff changeset
    54
  // TODO: not called?
c91aefe1dca2 Frontend:
smaxx
parents: 1784
diff changeset
    55
  //pOurFrameTeams->overallHedgehogs-=numItems;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    56
}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    57
362
b28e0dd48269 hedgehogs num modification now allowed to chief client only
displacer
parents: 352
diff changeset
    58
void CHedgehogerWidget::setNonInteractive()
b28e0dd48269 hedgehogs num modification now allowed to chief client only
displacer
parents: 352
diff changeset
    59
{
b28e0dd48269 hedgehogs num modification now allowed to chief client only
displacer
parents: 352
diff changeset
    60
  nonInteractive=true;
b28e0dd48269 hedgehogs num modification now allowed to chief client only
displacer
parents: 352
diff changeset
    61
}
b28e0dd48269 hedgehogs num modification now allowed to chief client only
displacer
parents: 352
diff changeset
    62
352
4665bfe25470 first buggy hedgehogs num net change
displacer
parents: 207
diff changeset
    63
void CHedgehogerWidget::setHHNum(unsigned int num)
4665bfe25470 first buggy hedgehogs num net change
displacer
parents: 207
diff changeset
    64
{
3871
c91aefe1dca2 Frontend:
smaxx
parents: 1784
diff changeset
    65
  /*unsigned int diff = num - numItems;
1300
22c03f69e142 Fix arithmetic bug in CHedgehogerWidget
unc0rr
parents: 1066
diff changeset
    66
  numItems += diff;
3871
c91aefe1dca2 Frontend:
smaxx
parents: 1784
diff changeset
    67
  pOurFrameTeams->overallHedgehogs += diff;*/
c91aefe1dca2 Frontend:
smaxx
parents: 1784
diff changeset
    68
  numItems = num;
352
4665bfe25470 first buggy hedgehogs num net change
displacer
parents: 207
diff changeset
    69
  repaint();
4665bfe25470 first buggy hedgehogs num net change
displacer
parents: 207
diff changeset
    70
}
4665bfe25470 first buggy hedgehogs num net change
displacer
parents: 207
diff changeset
    71
207
287077789132 coosing colors added
displacer
parents: 184
diff changeset
    72
unsigned char CHedgehogerWidget::getHedgehogsNum() const
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    73
{
612
333d095319de abstract class for items container (hedgehogs num, bullets, etc.)
displacer
parents: 579
diff changeset
    74
  return numItems;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    75
}