QTfrontend/game.h
author nemo
Sun, 10 Oct 2010 20:16:17 -0400
changeset 3951 c9a63db3e603
parent 3760 d30f1ba768d7
child 4084 0d0bf0533eee
permissions -rw-r--r--
Correct another bug in slot switching, adjust width of theme list, really truly fix reset of weps (I hope) should also fix infinite teleport bug in place hogs mode. Slow update of health to 5s for inf attack mode.
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: 883
diff changeset
     2
 * Hedgewars, a free turn based strategy game
3236
4ab3917d7d44 Update (c) lines to 2010 as unc0rr requested - they all had varying values so I just took the first year mentioned, then tacked on -2010
nemo
parents: 2948
diff changeset
     3
 * Copyright (c) 2005-2010 Andrey Korotaev <unC0Rr@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
#ifndef GAME_H
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    20
#define GAME_H
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    21
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    22
#include <QString>
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    23
#include "team.h"
1907
a104432e8301 Random team generator rework by ttsmj
unc0rr
parents: 1375
diff changeset
    24
#include "namegen.h"
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    25
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    26
#include "tcpBase.h"
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    27
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    28
class GameUIConfig;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    29
class GameCFGWidget;
339
7535ab6c3820 Run game message added, team and config info provided for net game
displacer
parents: 324
diff changeset
    30
class TeamSelWidget;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    31
306
7b61834edcf6 - Better blowtorch
unc0rr
parents: 253
diff changeset
    32
enum GameState {
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    33
    gsNotStarted = 0,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    34
    gsStarted  = 1,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    35
    gsInterrupted = 2,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    36
    gsFinished = 3,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    37
    gsStopped = 4,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    38
    gsDestroyed = 5
306
7b61834edcf6 - Better blowtorch
unc0rr
parents: 253
diff changeset
    39
};
7b61834edcf6 - Better blowtorch
unc0rr
parents: 253
diff changeset
    40
7b61834edcf6 - Better blowtorch
unc0rr
parents: 253
diff changeset
    41
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    42
class HWGame : public TCPBase
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    43
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    44
    Q_OBJECT
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    45
public:
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    46
    HWGame(GameUIConfig * config, GameCFGWidget * gamecfg, QString ammo, TeamSelWidget* pTeamSelWidget = 0);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    47
    virtual ~HWGame();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    48
    void AddTeam(const QString & team);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    49
    void PlayDemo(const QString & demofilename);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    50
    void StartLocal();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    51
    void StartQuick();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    52
    void StartNet();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    53
    void StartTraining(const QString & file);
3760
d30f1ba768d7 Frontend:
smaxx
parents: 3236
diff changeset
    54
    void StartCampaign(const QString & file);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    55
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    56
 protected:
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    57
    virtual QStringList setArguments();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    58
    virtual void onClientRead();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    59
    virtual void onClientDisconnect();
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    60
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    61
signals:
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    62
    void SendNet(const QByteArray & msg);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    63
    void SendChat(const QString & msg);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    64
    void SendTeamMessage(const QString & msg);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    65
    void GameStateChanged(GameState gameState);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    66
    void GameStats(char type, const QString & info);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    67
    void HaveRecord(bool isDemo, const QByteArray & record);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    68
    void ErrorMessage(const QString &);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    69
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    70
public slots:
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    71
    void FromNet(const QByteArray & msg);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    72
    void FromNetChat(const QString & msg);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    73
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    74
private:
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    75
    enum GameType {
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    76
        gtLocal    = 1,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    77
        gtQLocal   = 2,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    78
        gtDemo     = 3,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    79
        gtNet      = 4,
3760
d30f1ba768d7 Frontend:
smaxx
parents: 3236
diff changeset
    80
        gtTraining = 5,
d30f1ba768d7 Frontend:
smaxx
parents: 3236
diff changeset
    81
        gtCampaign = 6,
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    82
    };
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    83
    char msgbuf[MAXMSGCHARS];
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    84
    QString teams[5];
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    85
    QString ammostr;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    86
    int TeamCount;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    87
    GameUIConfig * config;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    88
    GameCFGWidget * gamecfg;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    89
    TeamSelWidget* m_pTeamSelWidget;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    90
    GameType gameType;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    91
    GameState gameState;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    92
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    93
    void commonConfig();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    94
    void SendConfig();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    95
    void SendQuickConfig();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    96
    void SendNetConfig();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    97
    void SendTrainingConfig();
3760
d30f1ba768d7 Frontend:
smaxx
parents: 3236
diff changeset
    98
    void SendCampaignConfig();
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    99
    void ParseMessage(const QByteArray & msg);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
   100
    void SetGameState(GameState state);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   101
};
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   102
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   103
#endif