QTfrontend/net/newnetclient.h
author nemo
Mon, 22 Dec 2014 17:47:22 -0500
changeset 10695 e295995348f9
parent 10108 c68cf030eded
child 10721 9b789de8e5df
permissions -rw-r--r--
this bugs me every time I look at it
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
     1
/*
1066
1f1b3686a2b0 Update copyright headers a bit
unc0rr
parents: 883
diff changeset
     2
 * Hedgewars, a free turn based strategy game
4976
088d40d8aba2 Happy 2011 :)
koda
parents: 4908
diff changeset
     3
 * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
9998
736015b847e3 update copyright to 2014
sheepluva
parents: 9549
diff changeset
     4
 * Copyright (c) 2004-2014 Andrey Korotaev <unC0Rr@gmail.com>
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
     5
 *
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
     6
 * This program is free software; you can redistribute it and/or modify
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
     7
 * it under the terms of the GNU General Public License as published by
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
     8
 * the Free Software Foundation; version 2 of the License
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
     9
 *
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    10
 * This program is distributed in the hope that it will be useful,
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    13
 * GNU General Public License for more details.
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    14
 *
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    16
 * along with this program; if not, write to the Free Software
10108
c68cf030eded update FSF address. note: two sdl include files (by Sam Lantinga) still have the old FSF address in their copyright - but I ain't gonna touch their copyright headers
sheepluva
parents: 10074
diff changeset
    17
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    18
 */
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    19
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    20
#ifndef _NEW_NETCLIENT_INCLUDED
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    21
#define _NEW_NETCLIENT_INCLUDED
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    22
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    23
#include <QObject>
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    24
#include <QString>
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    25
#include <QTcpSocket>
354
60e4af0a4375 network to local teams map, addteams from server before team config bug, fixed some segfaults
displacer
parents: 352
diff changeset
    26
#include <QMap>
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    27
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    28
#include "team.h"
448
e968e19a464c waiting state for net Go button
displacer
parents: 431
diff changeset
    29
#include "game.h" // for GameState
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    30
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    31
class GameUIConfig;
334
85eacbd9827f protocol changes
displacer
parents: 329
diff changeset
    32
class GameCFGWidget;
339
7535ab6c3820 Run game message added, team and config info provided for net game
displacer
parents: 338
diff changeset
    33
class TeamSelWidget;
6732
c906dc78091f Start switching to rooms list model. To be continued.
unc0rr
parents: 6700
diff changeset
    34
class RoomsListModel;
7723
ca05b576ec74 Start moving to players list model.
unc0rr
parents: 7684
diff changeset
    35
class PlayersListModel;
7728
664738870325 Bring back sorting
unc0rr
parents: 7723
diff changeset
    36
class QSortFilterProxyModel;
664738870325 Bring back sorting
unc0rr
parents: 7723
diff changeset
    37
class QAbstractItemModel;
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    38
10695
e295995348f9 this bugs me every time I look at it
nemo
parents: 10108
diff changeset
    39
extern char delimiter;
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    40
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    41
class HWNewNet : public QObject
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    42
{
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    43
        Q_OBJECT
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    44
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    45
    public:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    46
        enum ClientState { Disconnected, Connecting, Connected, InLobby, InRoom, InGame };
6036
727d13409891 small cleanup: enum instead of magic numbers
sheepluva
parents: 5998
diff changeset
    47
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    48
        HWNewNet();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    49
        ~HWNewNet();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    50
        void Connect(const QString & hostName, quint16 port, const QString & nick);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    51
        void Disconnect();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    52
        void SendPasswordHash(const QString & hash);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    53
        void NewNick(const QString & nick);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    54
        bool isRoomChief();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    55
        bool isInRoom();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    56
        ClientState clientState();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    57
        QString getNick();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    58
        QString getRoom();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    59
        QString getHost();
6732
c906dc78091f Start switching to rooms list model. To be continued.
unc0rr
parents: 6700
diff changeset
    60
        RoomsListModel * roomsListModel();
7728
664738870325 Bring back sorting
unc0rr
parents: 7723
diff changeset
    61
        QAbstractItemModel * lobbyPlayersModel();
664738870325 Bring back sorting
unc0rr
parents: 7723
diff changeset
    62
        QAbstractItemModel * roomPlayersModel();
8416
e691acd778f5 It is now possible to start a game even if not all players are "ready"; a confirmation prompt is shown. This commit updates the server.
dag10
parents: 8396
diff changeset
    63
        bool allPlayersReady();
8720
5603527f9803 this should prevent the password prompt from appearing on local games (issue 548)
koda
parents: 8559
diff changeset
    64
        bool m_private_game;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3283
diff changeset
    65
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    66
    private:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    67
        bool isChief;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    68
        QString mynick;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    69
        QString myroom;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    70
        QString myhost;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    71
        QTcpSocket NetSocket;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    72
        QString seed;
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    73
        bool m_game_connected;
8299
ef2e284255cd Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents: 8291
diff changeset
    74
        bool m_nick_registered;
6732
c906dc78091f Start switching to rooms list model. To be continued.
unc0rr
parents: 6700
diff changeset
    75
        RoomsListModel * m_roomsListModel;
7728
664738870325 Bring back sorting
unc0rr
parents: 7723
diff changeset
    76
        PlayersListModel * m_playersModel;
664738870325 Bring back sorting
unc0rr
parents: 7723
diff changeset
    77
        QSortFilterProxyModel * m_lobbyPlayersModel;
664738870325 Bring back sorting
unc0rr
parents: 7723
diff changeset
    78
        QSortFilterProxyModel * m_roomPlayersModel;
9549
ac5c1f691ce2 Allow user to enter password for the room he joins
unc0rr
parents: 9541
diff changeset
    79
        QString m_lastRoom;
10074
66cab76eb56f Mutual authentication: client side
unc0rr
parents: 10015
diff changeset
    80
        QString m_passwordHash;
66cab76eb56f Mutual authentication: client side
unc0rr
parents: 10015
diff changeset
    81
        QString m_serverSalt;
66cab76eb56f Mutual authentication: client side
unc0rr
parents: 10015
diff changeset
    82
        QString m_clientSalt;
66cab76eb56f Mutual authentication: client side
unc0rr
parents: 10015
diff changeset
    83
        QString m_serverHash;
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    84
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    85
        QStringList cmdbuf;
1082
596b1dcdc1df - Modify network protocol to use new delimiter
unc0rr
parents: 1066
diff changeset
    86
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    87
        void RawSendNet(const QString & buf);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    88
        void RawSendNet(const QByteArray & buf);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    89
        void ParseCmd(const QStringList & lst);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    90
        void handleNotice(int n);
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    91
10074
66cab76eb56f Mutual authentication: client side
unc0rr
parents: 10015
diff changeset
    92
        void maybeSendPassword();
66cab76eb56f Mutual authentication: client side
unc0rr
parents: 10015
diff changeset
    93
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    94
        ClientState netClientState;
1313
f4c54e9e1b8c - Introduce a bit of state miachine in client code (should be more robust and verbosive now)
unc0rr
parents: 1311
diff changeset
    95
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    96
    signals:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    97
        void AskForRunGame();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    98
        void connected();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
    99
        void disconnected(const QString & reason);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   100
        void Error(const QString & errmsg);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   101
        void Warning(const QString & wrnmsg);
8291
e4a0d980d1e2 Patched login dialog bugs, added retry dialogs
Ondrej Skopek <skopekondrej@gmail.com>
parents: 8157
diff changeset
   102
        void NickRegistered(const QString & nick);
8299
ef2e284255cd Added handling of not registered nicks (no change-server side tho), clearPasswordHash() also now sets the savepassword setting to false
Ondrej Skopek <skopekondrej@gmail.com>
parents: 8291
diff changeset
   103
        void NickNotRegistered(const QString & nick);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   104
        void NickTaken(const QString & nick);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   105
        void AuthFailed();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   106
        void EnteredGame();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   107
        void LeftRoom(const QString & reason);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   108
        void FromNet(const QByteArray & buf);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   109
        void adminAccess(bool);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   110
        void roomMaster(bool);
8489
25cb6f4a1d1b Implements protocol message JOINING on frontend, so client in a room always displays correct room name, even when room name changes. Fixes issue 522.
dag10
parents: 8434
diff changeset
   111
        void roomNameUpdated(const QString & name);
9549
ac5c1f691ce2 Allow user to enter password for the room he joins
unc0rr
parents: 9541
diff changeset
   112
        void askForRoomPassword();
1856
e71dbf958c87 Enable admin button when have privilege. Button does nothing yet.
unc0rr
parents: 1797
diff changeset
   113
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   114
        void netSchemeConfig(QStringList &);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   115
        void paramChanged(const QString & param, const QStringList & value);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   116
        void configAsked();
1875
189370d394db - Send initial room config
unc0rr
parents: 1874
diff changeset
   117
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   118
        void TeamAccepted(const QString&);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   119
        void AddNetTeam(const HWTeam&);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   120
        void RemoveNetTeam(const HWTeam&);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   121
        void hhnumChanged(const HWTeam&);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   122
        void teamColorChanged(const HWTeam&);
8759
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8720
diff changeset
   123
        void playerInfo(
8762
388d2bf73ff9 fix player info
sheepluva
parents: 8759
diff changeset
   124
            const QString & nick,
8759
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8720
diff changeset
   125
            const QString & ip,
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8720
diff changeset
   126
            const QString & version,
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8720
diff changeset
   127
            const QString & roomInfo);
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8720
diff changeset
   128
        void lobbyChatMessage(const QString & nick, const QString & message);
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8720
diff changeset
   129
        void lobbyChatAction(const QString & nick, const QString & action);
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8720
diff changeset
   130
        void roomChatMessage(const QString & nick, const QString & message);
1a4b9b9fe2b0 add lobby chat features to room chat
sheepluva
parents: 8720
diff changeset
   131
        void roomChatAction(const QString & nick, const QString & action);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   132
        void chatStringFromNet(const QString&);
1377
a9e768739345 - Customize QTextBrowser look
unc0rr
parents: 1360
diff changeset
   133
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   134
        void roomsList(const QStringList&);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   135
        void serverMessage(const QString &);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   136
        void serverMessageNew(const QString &);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   137
        void serverMessageOld(const QString &);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   138
        void latestProtocolVar(int);
8157
695f1eef72c8 Bans manager
unc0rr
parents: 7857
diff changeset
   139
        void bansList(const QStringList &);
329
4c3aad46baa5 Send game parameters by net... Currently it leads to infinite loop, flooding traffic with messages about changes
unc0rr
parents: 328
diff changeset
   140
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   141
        void setMyReadyStatus(bool isReady);
1405
ee4b28a1861d Show players ready status in chat nick list
unc0rr
parents: 1404
diff changeset
   142
8534
92da587691c9 Workaround queued signals problem in netclient instead. Should fix everything.
unc0rr
parents: 8489
diff changeset
   143
        void messageProcessed();
92da587691c9 Workaround queued signals problem in netclient instead. Should fix everything.
unc0rr
parents: 8489
diff changeset
   144
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   145
    public slots:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   146
        void ToggleReady();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   147
        void chatLineToNet(const QString& str);
8765
688062f1db59 fix/hack so that (own) messages sent in frontend are also visible in the game chat
sheepluva
parents: 8762
diff changeset
   148
        void chatLineToNetWithEcho(const QString&);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   149
        void chatLineToLobby(const QString& str);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   150
        void SendTeamMessage(const QString& str);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   151
        void SendNet(const QByteArray & buf);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   152
        void AddTeam(const HWTeam & team);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   153
        void RemoveTeam(const HWTeam& team);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   154
        void onHedgehogsNumChanged(const HWTeam& team);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   155
        void onTeamColorChanged(const HWTeam& team);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   156
        void onParamChanged(const QString & param, const QStringList & value);
2377
f3fab2b09e0c And in frontend
nemo
parents: 2345
diff changeset
   157
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   158
        void setServerMessageNew(const QString &);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   159
        void setServerMessageOld(const QString &);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   160
        void setLatestProtocolVar(int proto);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   161
        void askServerVars();
1873
815a3ff1fe4b Start refactoring some things. Frontend becomes temporarily unusable for network game
unc0rr
parents: 1860
diff changeset
   162
9549
ac5c1f691ce2 Allow user to enter password for the room he joins
unc0rr
parents: 9541
diff changeset
   163
        void JoinRoom(const QString & room, const QString & password);
9541
312bb4384f33 - Frontend finally learns how to create passworded room
unc0rr
parents: 9080
diff changeset
   164
        void CreateRoom(const QString & room, const QString &password);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   165
        void updateRoomName(const QString &);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   166
        void askRoomsList();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   167
        void gameFinished(bool correcly);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   168
        void banPlayer(const QString &);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   169
        void kickPlayer(const QString &);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   170
        void infoPlayer(const QString &);
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   171
        void followPlayer(const QString &);
8396
5123eac2f9d6 - Pass unknown chat commands to server
unc0rr
parents: 8299
diff changeset
   172
        void consoleCommand(const QString &);
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   173
        void startGame();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   174
        void toggleRestrictJoins();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   175
        void toggleRestrictTeamAdds();
8559
29e420194558 Support 'registered only' room flag in frontend
unc0rr
parents: 8534
diff changeset
   176
        void toggleRegisteredOnly();
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   177
        void partRoom();
8434
4821897a0f10 big indentation/whitespaces cleanup
sheepluva
parents: 8416
diff changeset
   178
        void clearAccountsCache();
8157
695f1eef72c8 Bans manager
unc0rr
parents: 7857
diff changeset
   179
        void getBanList();
695f1eef72c8 Bans manager
unc0rr
parents: 7857
diff changeset
   180
        void removeBan(const QString &);
695f1eef72c8 Bans manager
unc0rr
parents: 7857
diff changeset
   181
        void banIP(const QString & ip, const QString & reason, int seconds);
695f1eef72c8 Bans manager
unc0rr
parents: 7857
diff changeset
   182
        void banNick(const QString & nick, const QString & reason, int seconds);
9549
ac5c1f691ce2 Allow user to enter password for the room he joins
unc0rr
parents: 9541
diff changeset
   183
        void roomPasswordEntered(const QString & password);
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
   184
6616
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   185
    private slots:
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   186
        void ClientRead();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   187
        void OnConnect();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   188
        void OnDisconnect();
f77bb02b669f astyle -C -S -L -N --style=allman --recursive "QTfrontend/*.cpp" "QTfrontend/*.h"
nemo
parents: 6060
diff changeset
   189
        void displayError(QAbstractSocket::SocketError socketError);
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
   190
};
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
   191
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
   192
#endif // _NEW_NETCLIENT_INCLUDED