~ubuntu-branches/ubuntu/trusty/hedgewars/trusty-proposed

« back to all changes in this revision

Viewing changes to QTfrontend/ui/page/pagemain.cpp

  • Committer: Package Import Robot
  • Author(s): Dmitry E. Oboukhov
  • Date: 2011-11-20 18:31:17 UTC
  • mfrom: (1.2.12)
  • Revision ID: package-import@ubuntu.com-20111120183117-pjhz1n2pvnmxa246
Tags: 0.9.17-1
* [Paul Wise]
 * Mention the homing bee in the package description (Closes: #577092)
 * Also install the hwengine desktop file (LP: #811770)
 * Depend on ttf-dejavu-core since it is smaller
 * Depend on ttf-wqy-zenhei instead of embedding a copy of it
* [Dmitry E. Oboukhov]
 * New upstream version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Hedgewars, a free turn based strategy game
 
3
 * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
 
4
 *
 
5
 * This program is free software; you can redistribute it and/or modify
 
6
 * it under the terms of the GNU General Public License as published by
 
7
 * the Free Software Foundation; version 2 of the License
 
8
 *
 
9
 * This program is distributed in the hope that it will be useful,
 
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
 * GNU General Public License for more details.
 
13
 *
 
14
 * You should have received a copy of the GNU General Public License
 
15
 * along with this program; if not, write to the Free Software
 
16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
 
17
 */
 
18
 
 
19
#include <QGridLayout>
 
20
#include <QHBoxLayout>
 
21
#include <QPushButton>
 
22
#include <QLabel>
 
23
#include <QTime>
 
24
 
 
25
#include "pagemain.h"
 
26
#include "hwconsts.h"
 
27
#include "hwform.h"
 
28
 
 
29
QLayout * PageMain::bodyLayoutDefinition()
 
30
{
 
31
    QGridLayout * pageLayout = new QGridLayout();
 
32
    //pageLayout->setColumnStretch(0, 1);
 
33
    //pageLayout->setColumnStretch(1, 2);
 
34
    //pageLayout->setColumnStretch(2, 1);
 
35
 
 
36
    //QPushButton* btnLogo = addButton(":/res/HedgewarsTitle.png", pageLayout, 0, 0, 1, 4, true);
 
37
    //pageLayout->setAlignment(btnLogo, Qt::AlignHCenter);
 
38
    pageLayout->setRowStretch(0, 1);
 
39
    pageLayout->setRowStretch(1, 1);
 
40
    pageLayout->setRowStretch(2, 0);
 
41
    pageLayout->setRowStretch(3, 1);
 
42
    pageLayout->setRowStretch(4, 1);
 
43
 
 
44
    BtnSinglePlayer = addButton(":/res/LocalPlay.png", pageLayout, 2, 0, 1, 2, true);
 
45
    BtnSinglePlayer->setToolTip(tr("Local Game (Play a game on a single computer)"));
 
46
    pageLayout->setAlignment(BtnSinglePlayer, Qt::AlignHCenter);
 
47
 
 
48
    BtnNet = addButton(":/res/NetworkPlay.png", pageLayout, 2, 2, 1, 2, true);
 
49
    BtnNet->setToolTip(tr("Network Game (Play a game across a network)"));
 
50
    pageLayout->setAlignment(BtnNet, Qt::AlignHCenter);
 
51
 
 
52
    // button order matters for overlapping (what's on top and what isn't)
 
53
    BtnInfo = addButton(":/res/HedgewarsTitle.png", pageLayout, 0, 0, 1, 4, true);
 
54
    BtnInfo->setStyleSheet("border: transparent;background: transparent;");
 
55
    pageLayout->setAlignment(BtnInfo, Qt::AlignHCenter);
 
56
 
 
57
    BtnDataDownload = addButton(tr("Downloadable Content"), pageLayout, 4, 0, 1, 4, false);
 
58
    pageLayout->setAlignment(BtnDataDownload, Qt::AlignHCenter);
 
59
 
 
60
    return pageLayout;
 
61
}
 
62
 
 
63
QLayout * PageMain::footerLayoutDefinition()
 
64
{
 
65
    QHBoxLayout * bottomLayout = new QHBoxLayout();
 
66
 
 
67
    mainNote = new QLabel(this);
 
68
    mainNote->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
 
69
    mainNote->setWordWrap(true);
 
70
    
 
71
    bottomLayout->addWidget(mainNote, 0);
 
72
    bottomLayout->setStretch(0,1);
 
73
 
 
74
    BtnSetup = addButton(":/res/Settings.png", bottomLayout, 1, true);
 
75
    bottomLayout->setStretch(1,0);
 
76
 
 
77
    return bottomLayout;
 
78
}
 
79
 
 
80
void PageMain::connectSignals()
 
81
{
 
82
    //TODO
 
83
}
 
84
 
 
85
PageMain::PageMain(QWidget* parent) : AbstractPage(parent)
 
86
{
 
87
    initPage();
 
88
 
 
89
    if(frontendEffects) setAttribute(Qt::WA_NoSystemBackground, true);
 
90
    mainNote->setOpenExternalLinks(true);
 
91
 
 
92
    if(!isDevBuild)
 
93
    {
 
94
        mainNote->setText(QLabel::tr("Tip: ") + randomTip());
 
95
    }
 
96
    else
 
97
        mainNote->setText(QLabel::tr("This development build is 'work in progress' and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!"));
 
98
 
 
99
}
 
100
 
 
101
QString PageMain::randomTip() const
 
102
{
 
103
    QStringList Tips;
 
104
        Tips << tr("Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they'll win or lose together.", "Tips");
 
105
        Tips << tr("Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.", "Tips");
 
106
        Tips << tr("If you're unsure what to do and don't want to waste ammo, skip one round. But don't let too much time pass as there will be Sudden Death!", "Tips");
 
107
        Tips << tr("Want to save ropes? Release the rope in mid air and then shoot again. As long as you don't touch the ground you'll reuse your rope without wasting ammo!", "Tips");
 
108
        Tips << tr("If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.", "Tips");
 
109
        Tips << tr("You're bored of default gameplay? Try one of the missions - they'll offer different gameplay depending on the one you picked.", "Tips");
 
110
        Tips << tr("By default the game will always record the last game played as a demo. Select 'Local Game' and pick the 'Demos' button on the lower right corner to play or manage them.", "Tips");
 
111
        Tips << tr("Hedgewars is Open Source and Freeware we create in our spare time. If you've got problems, ask on our forums but please don't expect 24/7 support!", "Tips");
 
112
        Tips << tr("Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!", "Tips");
 
113
        Tips << tr("Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!", "Tips");
 
114
        Tips << tr("Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!", "Tips");
 
115
        Tips << tr("From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.", "Tips");
 
116
        Tips << tr("Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!", "Tips");
 
117
        Tips << tr("Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.", "Tips");
 
118
        Tips << tr("Always remember you're able to set up your own games in local and network/online play. You're not restricted to the 'Simple Game' option.", "Tips");
 
119
        Tips << tr("Connect one or more gamepads before starting the game to be able to assign their controls to your teams.", "Tips");
 
120
        Tips << tr("Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.", "Tips").arg("<a href=\"http://www.hedgewars.org/\">http://www.hedgewars.org/</a>");
 
121
        Tips << tr("While playing you should give yourself a short break at least once an hour.", "Tips");
 
122
        Tips << tr("If your graphics card isn't able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.", "Tips");
 
123
        Tips << tr("If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.", "Tips");
 
124
        Tips << tr("We're open to suggestions and constructive feedback. If you don't like something or got a great idea, let us know!", "Tips");
 
125
        Tips << tr("Especially while playing online be polite and always remember there might be some minors playing with or against you as well!", "Tips");
 
126
        Tips << tr("Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game!", "Tips");
 
127
        Tips << tr("The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.", "Tips");
 
128
        Tips << tr("You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead!", "Tips");
 
129
        Tips << tr("Hedgewars can be perfect for short games during breaks. Just ensure you don't add too many hedgehogs or use an huge map. Reducing time and health might help as well.", "Tips");
 
130
        Tips << tr("No hedgehogs were harmed in making this game.", "Tips");
 
131
        Tips << tr("There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.", "Tips");
 
132
        Tips << tr("Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.", "Tips");
 
133
        Tips << tr("Some weapons require special strategies or just lots of training, so don't give up on a particular tool if you miss an enemy once.", "Tips");
 
134
        Tips << tr("Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.", "Tips");
 
135
        Tips << tr("The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.", "Tips");
 
136
        Tips << tr("The Piano Strike is the most damaging air strike. You'll lose the hedgehog performing it, so there's a huge downside as well.", "Tips");
 
137
        Tips << tr("The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.", "Tips");
 
138
        Tips << tr("Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.", "Tips");
 
139
        Tips << tr("The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.", "Tips");
 
140
        Tips << tr("If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.", "Tips");
 
141
        Tips << tr("The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.", "Tips");
 
142
        Tips << tr("The Flame Thrower is a weapon but it can be used for tunnel digging as well.", "Tips");
 
143
        Tips << tr("Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.", "Tips");
 
144
        Tips << tr("Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.", "Tips");
 
145
        Tips << tr("Like Hedgewars? Become a fan on %1 or follow us on %2!", "Tips").arg("<a href=\"http://www.facebook.com/Hedgewars\">Facebook</a>").arg("<a href=\"http://twitter.com/hedgewars\">Twitter</a>");
 
146
        Tips << tr("Feel free to draw your own graves, hats, flags or even maps and themes! But note that you'll have to share them somewhere to use them online.", "Tips");
 
147
        Tips << tr("Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!", "Tips");
 
148
        // The following tip will require links to app store entries first.
 
149
        //Tips << tr("Want to play Hedgewars any time? Grab the Mobile version for %1 and %2.", "Tips").arg("").arg("");
 
150
        // the ios version is located here: http://itunes.apple.com/us/app/hedgewars/id391234866
 
151
        Tips << tr("Keep your video card drivers up to date to avoid issues playing the game.", "Tips");
 
152
        Tips << tr("You're able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.", "Tips");
 
153
#ifdef _WIN32
 
154
        Tips << tr("You can find your Hedgewars configuration files under \"My Documents\\Hedgewars\". Create backups or take the files with you, but don't edit them by hand.", "Tips");
 
155
#elif defined __APPLE__
 
156
        Tips << tr("You can find your Hedgewars configuration files under \"Library/Application Support/Hedgewars\" in your home directory. Create backups or take the files with you, but don't edit them by hand.", "Tips");
 
157
#else
 
158
        Tips << tr("You can find your Hedgewars configuration files under \".hedgewars\" in your home directory. Create backups or take the files with you, but don't edit them by hand.", "Tips");
 
159
#endif
 
160
 
 
161
        return Tips[QTime(0, 0, 0).secsTo(QTime::currentTime()) % Tips.length()];
 
162
}