QTfrontend/game.h
author sheepluva
Thu, 23 Jan 2014 13:56:53 +0100
changeset 10061 b7161f00a6ca
parent 9998 736015b847e3
child 10108 c68cf030eded
permissions -rw-r--r--
hide complete IP of other users, when non-admin requests player info. showing the first two parts of the IP was kinda pointless to begin with (what for?) and has recently lead to increased abuse and lobby flooding due to bots collecting/posting IP tracking information
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
9998
736015b847e3 update copyright to 2014
sheepluva
parents: 9466
diff changeset
     3
 * Copyright (c) 2004-2014 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
8901
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    32
enum GameType
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    33
{
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    34
    gtNone     = 0,
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    35
    gtLocal    = 1,
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    36
    gtQLocal   = 2,
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    37
    gtDemo     = 3,
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    38
    gtNet      = 4,
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    39
    gtTraining = 5,
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    40
    gtCampaign = 6,
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    41
    gtSave     = 7,
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    42
};
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    43
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    44
enum GameState
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    45
{
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    46
    gsNotStarted = 0,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    47
    gsStarted  = 1,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    48
    gsInterrupted = 2,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    49
    gsFinished = 3,
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2468
diff changeset
    50
    gsStopped = 4,
4746
3ae448aebe7e implemented actions for closing/enging program (needs testing over the net)
koda
parents: 4430
diff changeset
    51
    gsDestroyed = 5,
3ae448aebe7e implemented actions for closing/enging program (needs testing over the net)
koda
parents: 4430
diff changeset
    52
    gsHalted = 6
306
7b61834edcf6 - Better blowtorch
unc0rr
parents: 253
diff changeset
    53
};
7b61834edcf6 - Better blowtorch
unc0rr
parents: 253
diff changeset
    54
7180
53ffc8853008 here it is
Stepan777 <stepik-777@mail.ru>
parents: 6952
diff changeset
    55
enum RecordType
53ffc8853008 here it is
Stepan777 <stepik-777@mail.ru>
parents: 6952
diff changeset
    56
{
53ffc8853008 here it is
Stepan777 <stepik-777@mail.ru>
parents: 6952
diff changeset
    57
    rtDemo,
53ffc8853008 here it is
Stepan777 <stepik-777@mail.ru>
parents: 6952
diff changeset
    58
    rtSave,
53ffc8853008 here it is
Stepan777 <stepik-777@mail.ru>
parents: 6952
diff changeset
    59
    rtNeither,
53ffc8853008 here it is
Stepan777 <stepik-777@mail.ru>
parents: 6952
diff changeset
    60
};
53ffc8853008 here it is
Stepan777 <stepik-777@mail.ru>
parents: 6952
diff changeset
    61
4084
0d0bf0533eee Add opendesktop association of files for non-windows. NEEDS TESTING.
nemo
parents: 3760
diff changeset
    62
bool checkForDir(const QString & dir);
306
7b61834edcf6 - Better blowtorch
unc0rr
parents: 253
diff changeset
    63
8901
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    64
// last game info
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    65
extern QList<QVariant> lastGameStartArgs;
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    66
extern GameType lastGameType;
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    67
extern GameCFGWidget * lastGameCfg;
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    68
extern QString lastGameAmmo;
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    69
extern TeamSelWidget * lastGameTeamSel;
505307b9735d implementation of a restart-game button. location and appearance is not final :P
thunderstruck
parents: 8472
diff changeset
    70
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    71
class HWGame : public TCPBase
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    72
{
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    73
        Q_OBJECT
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    74
    public:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    75
        HWGame(GameUIConfig * config, GameCFGWidget * gamecfg, QString ammo, TeamSelWidget* pTeamSelWidget = 0);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    76
        virtual ~HWGame();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    77
        void AddTeam(const QString & team);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    78
        void PlayDemo(const QString & demofilename, bool isSave);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    79
        void StartLocal();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    80
        void StartQuick();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    81
        void StartNet();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    82
        void StartTraining(const QString & file);
7201
dc17ffdf0702 The first campaign commit with a lot of changes...
belphegorr <szabibibi@gmail.com>
parents: 6952
diff changeset
    83
        void StartCampaign(const QString & camp, const QString & campScript, const QString & campTeam);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    84
        void abort();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    85
        GameState gameState;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    86
        bool netSuspend;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    87
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    88
    protected:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    89
        virtual QStringList getArguments();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    90
        virtual void onClientRead();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    91
        virtual void onClientDisconnect();
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    92
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    93
    signals:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    94
        void SendNet(const QByteArray & msg);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    95
        void SendChat(const QString & msg);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    96
        void SendTeamMessage(const QString & msg);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    97
        void GameStateChanged(GameState gameState);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
    98
        void GameStats(char type, const QString & info);
7180
53ffc8853008 here it is
Stepan777 <stepik-777@mail.ru>
parents: 6952
diff changeset
    99
        void HaveRecord(RecordType type, const QByteArray & record);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   100
        void ErrorMessage(const QString &);
7207
b216efbc00ff Fixed a bug where, after finishing a campaign mission, the user needed to reselect the team in the frontend in order to see the next mission.
belphegorr <szabibibi@gmail.com>
parents: 7201
diff changeset
   101
        void CampStateChanged(int);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   102
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   103
    public slots:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   104
        void FromNet(const QByteArray & msg);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   105
        void FromNetChat(const QString & msg);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   106
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   107
    private:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   108
        char msgbuf[MAXMSGCHARS];
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   109
        QString ammostr;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   110
        GameUIConfig * config;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   111
        GameCFGWidget * gamecfg;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   112
        TeamSelWidget* m_pTeamSelWidget;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   113
        GameType gameType;
8472
da6b569ac930 - Collect synced packets to send within 1 second (cSendEmptyPacketTime) into buffer which is flushed each second.
unc0rr
parents: 8346
diff changeset
   114
        QByteArray m_netSendBuffer;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   115
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   116
        void commonConfig();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   117
        void SendConfig();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   118
        void SendQuickConfig();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   119
        void SendNetConfig();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   120
        void SendTrainingConfig();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   121
        void SendCampaignConfig();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   122
        void ParseMessage(const QByteArray & msg);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6217
diff changeset
   123
        void SetGameState(GameState state);
7665
e556b44f5bd8 More Qt-ish code, fix couple warnings.
unc0rr
parents: 7628
diff changeset
   124
        void sendCampaignVar(const QByteArray & varToSend);
e556b44f5bd8 More Qt-ish code, fix couple warnings.
unc0rr
parents: 7628
diff changeset
   125
        void writeCampaignVar(const QByteArray &varVal);
8472
da6b569ac930 - Collect synced packets to send within 1 second (cSendEmptyPacketTime) into buffer which is flushed each second.
unc0rr
parents: 8346
diff changeset
   126
        void flushNetBuffer();
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   127
};
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   128
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   129
#endif