QTfrontend/game.h
author koda
Sat, 05 Jun 2010 14:07:58 +0000
changeset 3495 a6b4f351d400
parent 3236 4ab3917d7d44
child 3760 d30f1ba768d7
permissions -rw-r--r--
now engine can be optionally built as library, there's an example wrapper of how to use it building server is now disabled by default, saves users some headaches
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);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    54
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    55
 protected:
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    56
    virtual QStringList setArguments();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    57
    virtual void onClientRead();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    58
    virtual void onClientDisconnect();
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    59
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    60
signals:
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    61
    void SendNet(const QByteArray & msg);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    62
    void SendChat(const QString & msg);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    63
    void SendTeamMessage(const QString & msg);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    64
    void GameStateChanged(GameState gameState);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    65
    void GameStats(char type, const QString & info);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    66
    void HaveRecord(bool isDemo, const QByteArray & record);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    67
    void ErrorMessage(const QString &);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    68
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    69
public slots:
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    70
    void FromNet(const QByteArray & msg);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    71
    void FromNetChat(const QString & msg);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    72
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    73
private:
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    74
    enum GameType {
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    75
        gtLocal    = 1,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    76
        gtQLocal   = 2,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    77
        gtDemo     = 3,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    78
        gtNet      = 4,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    79
        gtTraining = 5
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    80
    };
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    81
    char msgbuf[MAXMSGCHARS];
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    82
    QString teams[5];
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    83
    QString ammostr;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    84
    int TeamCount;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    85
    GameUIConfig * config;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    86
    GameCFGWidget * gamecfg;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    87
    TeamSelWidget* m_pTeamSelWidget;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    88
    GameType gameType;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    89
    GameState gameState;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    90
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    91
    void commonConfig();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    92
    void SendConfig();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    93
    void SendQuickConfig();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    94
    void SendNetConfig();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    95
    void SendTrainingConfig();
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    96
    void ParseMessage(const QByteArray & msg);
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    97
    void SetGameState(GameState state);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    98
};
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    99
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   100
#endif