QTfrontend/hwform.h
author unc0rr
Mon, 29 Sep 2008 22:14:23 +0000
changeset 1301 c6fe8a4bfd34
parent 1235 070629f3902d
child 1311 49beb1221c0b
permissions -rw-r--r--
Fix a bug screwing team selection up in network game (REMOVETEAM message doesn't have teamID, and after removing the team QMap still contains old info, when add and remove team with the same name, total hedgehogs number will be decreased by first team hh number)
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: 788
diff changeset
     2
 * Hedgewars, a free turn based strategy game
486
7ea71cd3acd5 - Change proto version to 4
unc0rr
parents: 475
diff changeset
     3
 * Copyright (c) 2005-2007 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 HWFORM_H
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    20
#define HWFORM_H
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    21
471
e1eb64ba5e9c Small cleanup, faster compilation as a result
unc0rr
parents: 461
diff changeset
    22
#include <QMainWindow>
289
604c4a779c20 Stacked walking trough pages
unc0rr
parents: 245
diff changeset
    23
#include <QStack>
530
f0b962214436 Easter egg (with stub image, will paint later)
unc0rr
parents: 496
diff changeset
    24
#include <QTime>
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    25
314
83773ccf4f09 client/server net pre-alpha
displacer
parents: 311
diff changeset
    26
#include "netserver.h"
306
7b61834edcf6 - Better blowtorch
unc0rr
parents: 289
diff changeset
    27
#include "game.h"
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    28
#include "ui_hwform.h"
1225
f882a92ef872 Play music in menu also, with fading effects when run game
unc0rr
parents: 1223
diff changeset
    29
#include "SDLs.h"
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    30
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    31
class HWGame;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    32
class HWTeam;
314
83773ccf4f09 client/server net pre-alpha
displacer
parents: 311
diff changeset
    33
class HWNewNet;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    34
class GameUIConfig;
634
b9db5ff5cfdb Fix some bugs
unc0rr
parents: 600
diff changeset
    35
class HWNetRegisterServer;
674
a15c8e3c69b3 Save and restore window size
unc0rr
parents: 666
diff changeset
    36
class QCloseEvent;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    37
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    38
class HWForm : public QMainWindow
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    39
{
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    40
	Q_OBJECT
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    41
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    42
public:
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    43
	HWForm(QWidget *parent = 0);
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    44
	Ui_HWForm ui;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    45
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    46
private slots:
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    47
	void GoToMain();
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    48
	void GoToSinglePlayer();
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    49
	void GoToSetup();
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    50
	void GoToMultiplayer();
579
94db15de0392 - Some changes to make build process clear
unc0rr
parents: 535
diff changeset
    51
	void GoToSaves();
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    52
	void GoToDemos();
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    53
	void GoToNet();
187
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
    54
	void GoToInfo();
587
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
    55
	void GoToTraining();
600
f6e5f4e122db Select weapon scheme page
unc0rr
parents: 587
diff changeset
    56
	void GoToSelectWeapon();
694
436045756181 working save weapons to file
displacer
parents: 686
diff changeset
    57
	void GoToSelectNewWeapon();
646
ed610c2cd0a4 Some work on network widgets
unc0rr
parents: 634
diff changeset
    58
	void GoToNetServer();
289
604c4a779c20 Stacked walking trough pages
unc0rr
parents: 245
diff changeset
    59
	void GoToPage(quint8 id);
604c4a779c20 Stacked walking trough pages
unc0rr
parents: 245
diff changeset
    60
	void GoBack();
530
f0b962214436 Easter egg (with stub image, will paint later)
unc0rr
parents: 496
diff changeset
    61
	void btnExitPressed();
f0b962214436 Easter egg (with stub image, will paint later)
unc0rr
parents: 496
diff changeset
    62
	void btnExitClicked();
535
a14eaf35cf4b "Setup" button instead of "New team", exclude playing teams from setup
displacer
parents: 533
diff changeset
    63
	void IntermediateSetup();
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    64
	void NewTeam();
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    65
	void EditTeam();
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    66
	void TeamSave();
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    67
	void TeamDiscard();
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    68
	void SimpleGame();
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    69
	void PlayDemo();
587
74db4115064a More work on Training mode
unc0rr
parents: 586
diff changeset
    70
	void StartTraining();
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    71
	void NetConnect();
666
07fa9a74a074 Abstract HWForm from custom PageNet implementation
unc0rr
parents: 662
diff changeset
    72
	void NetConnectServer(const QString & host, quint16 port);
314
83773ccf4f09 client/server net pre-alpha
displacer
parents: 311
diff changeset
    73
	void NetStartServer();
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    74
	void NetDisconnect();
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    75
	void NetGameEnter();
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    76
	void NetStartGame();
339
7535ab6c3820 Run game message added, team and config info provided for net game
displacer
parents: 338
diff changeset
    77
	void AddNetTeam(const HWTeam& team);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    78
	void StartMPGame();
306
7b61834edcf6 - Better blowtorch
unc0rr
parents: 289
diff changeset
    79
	void GameStateChanged(GameState gameState);
7b61834edcf6 - Better blowtorch
unc0rr
parents: 289
diff changeset
    80
	void GameStats(char type, const QString & info);
383
09a8795105a4 some disconnect and remove teams bugfixes
displacer
parents: 341
diff changeset
    81
	void ForcedDisconnect();
425
a7e1dabc8fb7 - Better AI thinking behavior
unc0rr
parents: 416
diff changeset
    82
	void ShowErrorMessage(const QString &);
533
eebb7684ac22 Save saves in Save directory
unc0rr
parents: 530
diff changeset
    83
	void GetRecord(bool isDemo, const QByteArray & record);
660
7c155e849602 - Simplify net game objects relationship
unc0rr
parents: 646
diff changeset
    84
	void CreateNetGame();
695
34a93d123712 update weapons combo fixed
displacer
parents: 694
diff changeset
    85
	void UpdateWeapons();
697
44f167938201 pre-alpha network weapons selection
displacer
parents: 696
diff changeset
    86
	void NetWeaponNameChanged(const QString& name);
1162
91bf5e3e558d Frontend Fullscreen mode added
displacer
parents: 1066
diff changeset
    87
	void onFrontendFullscreen(bool value);
1235
070629f3902d - Set frontend's music volume level to 50%
unc0rr
parents: 1225
diff changeset
    88
	void Music(bool checked);
660
7c155e849602 - Simplify net game objects relationship
unc0rr
parents: 646
diff changeset
    89
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    90
private:
314
83773ccf4f09 client/server net pre-alpha
displacer
parents: 311
diff changeset
    91
	void _NetConnect(const QString & hostName, quint16 port, const QString & nick);
535
a14eaf35cf4b "Setup" button instead of "New team", exclude playing teams from setup
displacer
parents: 533
diff changeset
    92
	void UpdateTeamsLists(const QStringList* editable_teams=0);
696
d6f32ed6edc8 working multiplayer weapons combo
displacer
parents: 695
diff changeset
    93
	void CreateGame(GameCFGWidget * gamecfg, TeamSelWidget* pTeamSelWidget, QString ammo);
674
a15c8e3c69b3 Save and restore window size
unc0rr
parents: 666
diff changeset
    94
	void closeEvent(QCloseEvent *event);
187
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
    95
	enum PageIDs {
788
00720357601f - Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents: 697
diff changeset
    96
		ID_PAGE_SETUP_TEAM      =  0,
00720357601f - Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents: 697
diff changeset
    97
		ID_PAGE_SETUP           =  1,
00720357601f - Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents: 697
diff changeset
    98
		ID_PAGE_MULTIPLAYER     =  2,
00720357601f - Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents: 697
diff changeset
    99
		ID_PAGE_DEMOS           =  3,
00720357601f - Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents: 697
diff changeset
   100
		ID_PAGE_NET             =  4,
00720357601f - Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents: 697
diff changeset
   101
		ID_PAGE_NETCFG          =  5,
00720357601f - Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents: 697
diff changeset
   102
		ID_PAGE_INFO            =  6,
00720357601f - Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents: 697
diff changeset
   103
		ID_PAGE_MAIN            =  7,
00720357601f - Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents: 697
diff changeset
   104
		ID_PAGE_GAMESTATS       =  8,
00720357601f - Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents: 697
diff changeset
   105
		ID_PAGE_SINGLEPLAYER    =  9,
00720357601f - Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents: 697
diff changeset
   106
		ID_PAGE_TRAINING        = 10,
00720357601f - Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents: 697
diff changeset
   107
		ID_PAGE_SELECTWEAPON    = 11,
00720357601f - Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents: 697
diff changeset
   108
		ID_PAGE_NETSERVER       = 12,
00720357601f - Get rid of PageSimpleGame, now pressing 'quick game' just starts round
unc0rr
parents: 697
diff changeset
   109
		ID_PAGE_INGAME          = 13
187
96c3154efee5 "About" page, not yet filled with content
unc0rr
parents: 184
diff changeset
   110
		};
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   111
	HWGame * game;
245
4f6b53b7a567 Make teams config file name be team name
unc0rr
parents: 187
diff changeset
   112
	HWTeam * editedTeam;
314
83773ccf4f09 client/server net pre-alpha
displacer
parents: 311
diff changeset
   113
	HWNewNet * hwnet;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   114
	GameUIConfig * config;
289
604c4a779c20 Stacked walking trough pages
unc0rr
parents: 245
diff changeset
   115
	QStack<quint8> PagesStack;
314
83773ccf4f09 client/server net pre-alpha
displacer
parents: 311
diff changeset
   116
	HWNetServer* pnetserver;
634
b9db5ff5cfdb Fix some bugs
unc0rr
parents: 600
diff changeset
   117
	HWNetRegisterServer* pRegisterServer;
530
f0b962214436 Easter egg (with stub image, will paint later)
unc0rr
parents: 496
diff changeset
   118
	QTime eggTimer;
1225
f882a92ef872 Play music in menu also, with fading effects when run game
unc0rr
parents: 1223
diff changeset
   119
	SDLInteraction sdli;
307
96b428ac11f2 More statistics
unc0rr
parents: 306
diff changeset
   120
	void AddStatText(const QString & msg);
496
00465a8ef129 merged new team from branch
displacer
parents: 486
diff changeset
   121
	void OnPageShown(quint8 id, quint8 lastid=0);
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   122
};
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   123
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   124
#endif